@hotmeshio/long-tail 0.2.6 → 0.2.8

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 (279) hide show
  1. package/dashboard/dist/assets/AdminDashboard-45Ya2uzl.js +2 -0
  2. package/dashboard/dist/assets/{AdminDashboard-DThDjhN5.js.map → AdminDashboard-45Ya2uzl.js.map} +1 -1
  3. package/dashboard/dist/assets/AgentConfigPage-BOASC5vi.js +13 -0
  4. package/dashboard/dist/assets/AgentConfigPage-BOASC5vi.js.map +1 -0
  5. package/dashboard/dist/assets/AgentDetailPage-5M7JTcFz.js +4 -0
  6. package/dashboard/dist/assets/AgentDetailPage-5M7JTcFz.js.map +1 -0
  7. package/dashboard/dist/assets/AgentsPage--I4d5y9J.js +2 -0
  8. package/dashboard/dist/assets/{AgentsPage-pKfjHe4u.js.map → AgentsPage--I4d5y9J.js.map} +1 -1
  9. package/dashboard/dist/assets/AvailableEscalationsPage-CXUkRz18.js +2 -0
  10. package/dashboard/dist/assets/AvailableEscalationsPage-CXUkRz18.js.map +1 -0
  11. package/dashboard/dist/assets/BotPicker-DgbzCesR.js +2 -0
  12. package/dashboard/dist/assets/{BotPicker-Zxf7Npew.js.map → BotPicker-DgbzCesR.js.map} +1 -1
  13. package/dashboard/dist/assets/CapabilitiesPage-B2S8_Gsc.js +2 -0
  14. package/dashboard/dist/assets/{CapabilitiesPage-6zOJ12cB.js.map → CapabilitiesPage-B2S8_Gsc.js.map} +1 -1
  15. package/dashboard/dist/assets/CollapsibleSection-4Eo3b5ha.js +2 -0
  16. package/dashboard/dist/assets/{CollapsibleSection-DvBx4tmw.js.map → CollapsibleSection-4Eo3b5ha.js.map} +1 -1
  17. package/dashboard/dist/assets/ConfirmDeleteModal-Bac7RmDD.js +2 -0
  18. package/dashboard/dist/assets/{ConfirmDeleteModal-dOxidrSR.js.map → ConfirmDeleteModal-Bac7RmDD.js.map} +1 -1
  19. package/dashboard/dist/assets/CopyableId-BhwdwAJN.js +2 -0
  20. package/dashboard/dist/assets/{CopyableId-DmLF-RqZ.js.map → CopyableId-BhwdwAJN.js.map} +1 -1
  21. package/dashboard/dist/assets/CredentialsPage-CSEBaYx1.js +2 -0
  22. package/dashboard/dist/assets/{CredentialsPage-C5f-Bg-o.js.map → CredentialsPage-CSEBaYx1.js.map} +1 -1
  23. package/dashboard/dist/assets/CronLabel-DV2v2FlP.js +2 -0
  24. package/dashboard/dist/assets/{CronLabel-CAVTt5AG.js.map → CronLabel-DV2v2FlP.js.map} +1 -1
  25. package/dashboard/dist/assets/CustomDurationPicker-B_Oxq_nK.js +2 -0
  26. package/dashboard/dist/assets/{CustomDurationPicker-Bk7D38y7.js.map → CustomDurationPicker-B_Oxq_nK.js.map} +1 -1
  27. package/dashboard/dist/assets/DataTable-etck0Zmp.js +2 -0
  28. package/dashboard/dist/assets/{DataTable-D9yuBv0w.js.map → DataTable-etck0Zmp.js.map} +1 -1
  29. package/dashboard/dist/assets/DropZone-BDpzHWsI.js +2 -0
  30. package/dashboard/dist/assets/{DropZone-2mGyDo1P.js.map → DropZone-BDpzHWsI.js.map} +1 -1
  31. package/dashboard/dist/assets/ElapsedCell-D35Z-HSJ.js +2 -0
  32. package/dashboard/dist/assets/{ElapsedCell-BpJjG1s-.js.map → ElapsedCell-D35Z-HSJ.js.map} +1 -1
  33. package/dashboard/dist/assets/EmptyState-Bk3_P-b8.js +2 -0
  34. package/dashboard/dist/assets/{EmptyState-BcsfPq9T.js.map → EmptyState-Bk3_P-b8.js.map} +1 -1
  35. package/dashboard/dist/assets/EscalationsOverview-Bt6gGFW4.js +2 -0
  36. package/dashboard/dist/assets/{EscalationsOverview-DPNd1vjF.js.map → EscalationsOverview-Bt6gGFW4.js.map} +1 -1
  37. package/dashboard/dist/assets/EventTable-BMk93q8A.js +2 -0
  38. package/dashboard/dist/assets/{EventTable-BoP8KC3M.js.map → EventTable-BMk93q8A.js.map} +1 -1
  39. package/dashboard/dist/assets/EventTopicPill-9LcMnLF0.js +2 -0
  40. package/dashboard/dist/assets/{EventTopicPill-BUxxvpNg.js.map → EventTopicPill-9LcMnLF0.js.map} +1 -1
  41. package/dashboard/dist/assets/FilterBar-CZGTOMoo.js +2 -0
  42. package/dashboard/dist/assets/{FilterBar-Ck4K4rzu.js.map → FilterBar-CZGTOMoo.js.map} +1 -1
  43. package/dashboard/dist/assets/HomePage-Dtk7mgmf.js +2 -0
  44. package/dashboard/dist/assets/{HomePage-h8I5ZolJ.js.map → HomePage-Dtk7mgmf.js.map} +1 -1
  45. package/dashboard/dist/assets/ListToolbar-CJEzypCM.js +2 -0
  46. package/dashboard/dist/assets/{ListToolbar-BaYIIsAt.js.map → ListToolbar-CJEzypCM.js.map} +1 -1
  47. package/dashboard/dist/assets/McpOverview-ChUa4l3t.js +2 -0
  48. package/dashboard/dist/assets/{McpOverview-BhZ3lSO6.js.map → McpOverview-ChUa4l3t.js.map} +1 -1
  49. package/dashboard/dist/assets/McpQueryDetailPage-04CTIN0v.js +5 -0
  50. package/dashboard/dist/assets/{McpQueryDetailPage-DVgcKa61.js.map → McpQueryDetailPage-04CTIN0v.js.map} +1 -1
  51. package/dashboard/dist/assets/McpQueryPage-DFnHFdbr.js +2 -0
  52. package/dashboard/dist/assets/{McpQueryPage-CTWOBqKT.js.map → McpQueryPage-DFnHFdbr.js.map} +1 -1
  53. package/dashboard/dist/assets/McpRunDetailPage-B95c3bFw.js +2 -0
  54. package/dashboard/dist/assets/{McpRunDetailPage-CIpZJWRB.js.map → McpRunDetailPage-B95c3bFw.js.map} +1 -1
  55. package/dashboard/dist/assets/McpRunsPage-DS43YmLU.js +2 -0
  56. package/dashboard/dist/assets/{McpRunsPage-B3zpzPBf.js.map → McpRunsPage-DS43YmLU.js.map} +1 -1
  57. package/dashboard/dist/assets/Modal-EUrK2c_A.js +2 -0
  58. package/dashboard/dist/assets/{Modal-DEODGeqx.js.map → Modal-EUrK2c_A.js.map} +1 -1
  59. package/dashboard/dist/assets/OperatorDashboard-DBF_AbRH.js +2 -0
  60. package/dashboard/dist/assets/{OperatorDashboard-l2hVlIF3.js.map → OperatorDashboard-DBF_AbRH.js.map} +1 -1
  61. package/dashboard/dist/assets/PageHeader-BuUnJ5NY.js +2 -0
  62. package/dashboard/dist/assets/{PageHeader-DLjHNYHX.js.map → PageHeader-BuUnJ5NY.js.map} +1 -1
  63. package/dashboard/dist/assets/PageHeaderWithStats-cQKaJBAM.js +2 -0
  64. package/dashboard/dist/assets/{PageHeaderWithStats-Oljg3n4j.js.map → PageHeaderWithStats-cQKaJBAM.js.map} +1 -1
  65. package/dashboard/dist/assets/PriorityBadge-Bl0_pgex.js +2 -0
  66. package/dashboard/dist/assets/{PriorityBadge-DfQY9St9.js.map → PriorityBadge-Bl0_pgex.js.map} +1 -1
  67. package/dashboard/dist/assets/ProcessDetailPage-DgeXrHon.js +2 -0
  68. package/dashboard/dist/assets/{ProcessDetailPage-BJ1rhK9_.js.map → ProcessDetailPage-DgeXrHon.js.map} +1 -1
  69. package/dashboard/dist/assets/ProcessesListPage-BGiiH4dW.js +2 -0
  70. package/dashboard/dist/assets/{ProcessesListPage-IQKk_qkn.js.map → ProcessesListPage-BGiiH4dW.js.map} +1 -1
  71. package/dashboard/dist/assets/RolePill-DsYF2JN9.js +2 -0
  72. package/dashboard/dist/assets/{RolePill-Bp10-WfX.js.map → RolePill-DsYF2JN9.js.map} +1 -1
  73. package/dashboard/dist/assets/RolesPage-CQ7vPamb.js +2 -0
  74. package/dashboard/dist/assets/{RolesPage-Dwcirtze.js.map → RolesPage-CQ7vPamb.js.map} +1 -1
  75. package/dashboard/dist/assets/RowActions-DBpvm3Jy.js +2 -0
  76. package/dashboard/dist/assets/{RowActions-Dg-Fsm5O.js.map → RowActions-DBpvm3Jy.js.map} +1 -1
  77. package/dashboard/dist/assets/RunAsSelector-ZLKGTYP_.js +2 -0
  78. package/dashboard/dist/assets/{RunAsSelector-D4Fu8LVG.js.map → RunAsSelector-ZLKGTYP_.js.map} +1 -1
  79. package/dashboard/dist/assets/ServerName-B5-E7gZD.js +2 -0
  80. package/dashboard/dist/assets/{ServerName-C9lUCFYb.js.map → ServerName-B5-E7gZD.js.map} +1 -1
  81. package/dashboard/dist/assets/StatCard-B7ySTryP.js +2 -0
  82. package/dashboard/dist/assets/{StatCard-DlgF0CJC.js.map → StatCard-B7ySTryP.js.map} +1 -1
  83. package/dashboard/dist/assets/StatusBadge-DNXTk01O.js +2 -0
  84. package/dashboard/dist/assets/{StatusBadge-XQlNFwmH.js.map → StatusBadge-DNXTk01O.js.map} +1 -1
  85. package/dashboard/dist/assets/StepIndicator-ftNmaJsu.js +2 -0
  86. package/dashboard/dist/assets/{StepIndicator-CuUIGxKk.js.map → StepIndicator-ftNmaJsu.js.map} +1 -1
  87. package/dashboard/dist/assets/StickyPagination-CI5AyVVd.js +2 -0
  88. package/dashboard/dist/assets/{StickyPagination-F9FZsRy9.js.map → StickyPagination-CI5AyVVd.js.map} +1 -1
  89. package/dashboard/dist/assets/SwimlaneTimeline-BA4aFrHf.js +2 -0
  90. package/dashboard/dist/assets/{SwimlaneTimeline-DQqgvwmC.js.map → SwimlaneTimeline-BA4aFrHf.js.map} +1 -1
  91. package/dashboard/dist/assets/TagInput-DfbVwc27.js +2 -0
  92. package/dashboard/dist/assets/{TagInput-Dkljw_WI.js.map → TagInput-DfbVwc27.js.map} +1 -1
  93. package/dashboard/dist/assets/TaskDetailPage-A_kHjYRn.js +2 -0
  94. package/dashboard/dist/assets/TaskDetailPage-A_kHjYRn.js.map +1 -0
  95. package/dashboard/dist/assets/TaskQueuePill-Dtsa8CPO.js +2 -0
  96. package/dashboard/dist/assets/{TaskQueuePill-DPwm25Cc.js.map → TaskQueuePill-Dtsa8CPO.js.map} +1 -1
  97. package/dashboard/dist/assets/TasksListPage-Cw46VTuA.js +2 -0
  98. package/dashboard/dist/assets/{TasksListPage-CnJdTsoX.js.map → TasksListPage-Cw46VTuA.js.map} +1 -1
  99. package/dashboard/dist/assets/TimeAgo-Cx1kK1id.js +2 -0
  100. package/dashboard/dist/assets/{TimeAgo-C3A1r1Cv.js.map → TimeAgo-Cx1kK1id.js.map} +1 -1
  101. package/dashboard/dist/assets/TimestampCell-VDp4nVn6.js +2 -0
  102. package/dashboard/dist/assets/{TimestampCell-DPfLR6bZ.js.map → TimestampCell-VDp4nVn6.js.map} +1 -1
  103. package/dashboard/dist/assets/ToolPill-BNaTJhu8.js +2 -0
  104. package/dashboard/dist/assets/{ToolPill-D_DIWFJ5.js.map → ToolPill-BNaTJhu8.js.map} +1 -1
  105. package/dashboard/dist/assets/ToolTestPanel-BickLBjP.js +2 -0
  106. package/dashboard/dist/assets/{ToolTestPanel-CwZ9zkD-.js.map → ToolTestPanel-BickLBjP.js.map} +1 -1
  107. package/dashboard/dist/assets/UserName-DCdb6xnk.js +2 -0
  108. package/dashboard/dist/assets/{UserName-ClO0a6Ar.js.map → UserName-DCdb6xnk.js.map} +1 -1
  109. package/dashboard/dist/assets/WorkflowExecutionPage-BZfxY1iB.js +2 -0
  110. package/dashboard/dist/assets/{WorkflowExecutionPage-B-2aHAHK.js.map → WorkflowExecutionPage-BZfxY1iB.js.map} +1 -1
  111. package/dashboard/dist/assets/WorkflowPill-BzhfqGa-.js +2 -0
  112. package/dashboard/dist/assets/{WorkflowPill-BbgVTGgI.js.map → WorkflowPill-BzhfqGa-.js.map} +1 -1
  113. package/dashboard/dist/assets/WorkflowsDashboard-B7M8kPoH.js +2 -0
  114. package/dashboard/dist/assets/{WorkflowsDashboard-NtiQKl_i.js.map → WorkflowsDashboard-B7M8kPoH.js.map} +1 -1
  115. package/dashboard/dist/assets/WorkflowsOverview-1V8vQ-mo.js +2 -0
  116. package/dashboard/dist/assets/{WorkflowsOverview-BQip_pvL.js.map → WorkflowsOverview-1V8vQ-mo.js.map} +1 -1
  117. package/dashboard/dist/assets/YamlWorkflowsPage-BteCRoV5.js +2 -0
  118. package/dashboard/dist/assets/YamlWorkflowsPage-BteCRoV5.js.map +1 -0
  119. package/dashboard/dist/assets/{agents-5APoyRH8.js → agents-SXs4tMLb.js} +2 -2
  120. package/dashboard/dist/assets/{agents-5APoyRH8.js.map → agents-SXs4tMLb.js.map} +1 -1
  121. package/dashboard/dist/assets/{bots-BoDH-pS7.js → bots-Ci5aCzDK.js} +2 -2
  122. package/dashboard/dist/assets/{bots-BoDH-pS7.js.map → bots-Ci5aCzDK.js.map} +1 -1
  123. package/dashboard/dist/assets/{controlplane-D4NhQux3.js → controlplane-BiPTCZeL.js} +2 -2
  124. package/dashboard/dist/assets/{controlplane-D4NhQux3.js.map → controlplane-BiPTCZeL.js.map} +1 -1
  125. package/dashboard/dist/assets/escalation-D-zr9D9G.js +2 -0
  126. package/dashboard/dist/assets/{escalation-BD2wtAt2.js.map → escalation-D-zr9D9G.js.map} +1 -1
  127. package/dashboard/dist/assets/escalation-columns-Bpp7Sdbd.js +2 -0
  128. package/dashboard/dist/assets/{escalation-columns-DjHcNgjo.js.map → escalation-columns-Bpp7Sdbd.js.map} +1 -1
  129. package/dashboard/dist/assets/helpers-CQZkvg6D.js +2 -0
  130. package/dashboard/dist/assets/{helpers-D1ZPA4kI.js.map → helpers-CQZkvg6D.js.map} +1 -1
  131. package/dashboard/dist/assets/index-Bp5f2OWJ.js +2 -0
  132. package/dashboard/dist/assets/{index-D9qswqDQ.js.map → index-Bp5f2OWJ.js.map} +1 -1
  133. package/dashboard/dist/assets/index-C7FUIcaY.js +2 -0
  134. package/dashboard/dist/assets/{index-_5qNyf9o.js.map → index-C7FUIcaY.js.map} +1 -1
  135. package/dashboard/dist/assets/index-COiEQlp9.js +2 -0
  136. package/dashboard/dist/assets/{index-jp94-YlF.js.map → index-COiEQlp9.js.map} +1 -1
  137. package/dashboard/dist/assets/index-CSsOukxa.js +2 -0
  138. package/dashboard/dist/assets/{index-_dKxJhey.js.map → index-CSsOukxa.js.map} +1 -1
  139. package/dashboard/dist/assets/index-DOE7HCzb.js +6 -0
  140. package/dashboard/dist/assets/{index-B6vQeWwf.js.map → index-DOE7HCzb.js.map} +1 -1
  141. package/dashboard/dist/assets/index-DV0_tQW3.js +2 -0
  142. package/dashboard/dist/assets/{index-Zn5XforP.js.map → index-DV0_tQW3.js.map} +1 -1
  143. package/dashboard/dist/assets/index-Da8R5Fn_.js +281 -0
  144. package/dashboard/dist/assets/index-Da8R5Fn_.js.map +1 -0
  145. package/dashboard/dist/assets/index-DtbAmRkr.js +15 -0
  146. package/dashboard/dist/assets/{index-qdYsS9h2.js.map → index-DtbAmRkr.js.map} +1 -1
  147. package/dashboard/dist/assets/index-DzL5pT70.js +5 -0
  148. package/dashboard/dist/assets/index-DzL5pT70.js.map +1 -0
  149. package/dashboard/dist/assets/index-OTsFiHXP.js +2 -0
  150. package/dashboard/dist/assets/index-OTsFiHXP.js.map +1 -0
  151. package/dashboard/dist/assets/index-hfravTJF.js +2 -0
  152. package/dashboard/dist/assets/{index-BgJR7kwH.js.map → index-hfravTJF.js.map} +1 -1
  153. package/dashboard/dist/assets/index-q4T_i7zT.js +2 -0
  154. package/dashboard/dist/assets/{index-DC7f6rWu.js.map → index-q4T_i7zT.js.map} +1 -1
  155. package/dashboard/dist/assets/{knowledge-DsAU_TGL.js → knowledge-D8osen1O.js} +2 -2
  156. package/dashboard/dist/assets/{knowledge-DsAU_TGL.js.map → knowledge-D8osen1O.js.map} +1 -1
  157. package/dashboard/dist/assets/{mcp-CA3OeIyH.js → mcp-CUFhWTyT.js} +2 -2
  158. package/dashboard/dist/assets/{mcp-CA3OeIyH.js.map → mcp-CUFhWTyT.js.map} +1 -1
  159. package/dashboard/dist/assets/{mcp-query-BgmTDc7h.js → mcp-query-n1t4sNm7.js} +2 -2
  160. package/dashboard/dist/assets/{mcp-query-BgmTDc7h.js.map → mcp-query-n1t4sNm7.js.map} +1 -1
  161. package/dashboard/dist/assets/{mcp-runs-C-FK2SyD.js → mcp-runs-BkRnXbcq.js} +2 -2
  162. package/dashboard/dist/assets/{mcp-runs-C-FK2SyD.js.map → mcp-runs-BkRnXbcq.js.map} +1 -1
  163. package/dashboard/dist/assets/namespaces-CacF05ft.js +2 -0
  164. package/dashboard/dist/assets/{namespaces-B8KNk0Jb.js.map → namespaces-CacF05ft.js.map} +1 -1
  165. package/dashboard/dist/assets/{roles-BAPy1LU_.js → roles-CjLCgM_6.js} +2 -2
  166. package/dashboard/dist/assets/{roles-BAPy1LU_.js.map → roles-CjLCgM_6.js.map} +1 -1
  167. package/dashboard/dist/assets/{tasks-BHlTusW0.js → tasks-BLCzIHol.js} +2 -2
  168. package/dashboard/dist/assets/{tasks-BHlTusW0.js.map → tasks-BLCzIHol.js.map} +1 -1
  169. package/dashboard/dist/assets/{useEventHooks-DBMdj9vw.js → useEventHooks-AwwZnweF.js} +2 -2
  170. package/dashboard/dist/assets/{useEventHooks-DBMdj9vw.js.map → useEventHooks-AwwZnweF.js.map} +1 -1
  171. package/dashboard/dist/assets/{useExpandedRows-CkcEntB-.js → useExpandedRows-Cg9iq6Vy.js} +2 -2
  172. package/dashboard/dist/assets/{useExpandedRows-CkcEntB-.js.map → useExpandedRows-Cg9iq6Vy.js.map} +1 -1
  173. package/dashboard/dist/assets/{useFilterParams-DZCAaBC7.js → useFilterParams-CGRYFw_A.js} +2 -2
  174. package/dashboard/dist/assets/{useFilterParams-DZCAaBC7.js.map → useFilterParams-CGRYFw_A.js.map} +1 -1
  175. package/dashboard/dist/assets/{useYamlActivityEvents-BH_ynR_L.js → useYamlActivityEvents-9Zs0PXY6.js} +2 -2
  176. package/dashboard/dist/assets/{useYamlActivityEvents-BH_ynR_L.js.map → useYamlActivityEvents-9Zs0PXY6.js.map} +1 -1
  177. package/dashboard/dist/assets/{users-C9K2cMyb.js → users-BtLRzvZE.js} +2 -2
  178. package/dashboard/dist/assets/{users-C9K2cMyb.js.map → users-BtLRzvZE.js.map} +1 -1
  179. package/dashboard/dist/assets/{vendor-icons-E6836lXZ.js → vendor-icons-1qQ3NKfa.js} +2 -2
  180. package/dashboard/dist/assets/{vendor-icons-E6836lXZ.js.map → vendor-icons-1qQ3NKfa.js.map} +1 -1
  181. package/dashboard/dist/assets/vendor-query-DLp59M9_.js +35 -0
  182. package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +1 -0
  183. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js +26 -0
  184. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js.map +1 -0
  185. package/dashboard/dist/assets/{workflows-B2rsLjoh.js → workflows-B9xdIsfM.js} +2 -2
  186. package/dashboard/dist/assets/{workflows-B2rsLjoh.js.map → workflows-B9xdIsfM.js.map} +1 -1
  187. package/dashboard/dist/assets/{yaml-workflows-BLiTvQM2.js → yaml-workflows-xOJxyEsQ.js} +2 -2
  188. package/dashboard/dist/assets/{yaml-workflows-BLiTvQM2.js.map → yaml-workflows-xOJxyEsQ.js.map} +1 -1
  189. package/dashboard/dist/index.html +4 -4
  190. package/package.json +2 -2
  191. package/dashboard/dist/assets/AdminDashboard-DThDjhN5.js +0 -2
  192. package/dashboard/dist/assets/AgentConfigPage-NgxblxBW.js +0 -13
  193. package/dashboard/dist/assets/AgentConfigPage-NgxblxBW.js.map +0 -1
  194. package/dashboard/dist/assets/AgentDetailPage-DMS46nYY.js +0 -4
  195. package/dashboard/dist/assets/AgentDetailPage-DMS46nYY.js.map +0 -1
  196. package/dashboard/dist/assets/AgentsPage-pKfjHe4u.js +0 -2
  197. package/dashboard/dist/assets/AvailableEscalationsPage-BFzHVnPh.js +0 -2
  198. package/dashboard/dist/assets/AvailableEscalationsPage-BFzHVnPh.js.map +0 -1
  199. package/dashboard/dist/assets/BotPicker-Zxf7Npew.js +0 -2
  200. package/dashboard/dist/assets/CapabilitiesPage-6zOJ12cB.js +0 -2
  201. package/dashboard/dist/assets/CollapsibleSection-DvBx4tmw.js +0 -2
  202. package/dashboard/dist/assets/ConfirmDeleteModal-dOxidrSR.js +0 -2
  203. package/dashboard/dist/assets/CopyableId-DmLF-RqZ.js +0 -2
  204. package/dashboard/dist/assets/CredentialsPage-C5f-Bg-o.js +0 -2
  205. package/dashboard/dist/assets/CronLabel-CAVTt5AG.js +0 -2
  206. package/dashboard/dist/assets/CustomDurationPicker-Bk7D38y7.js +0 -2
  207. package/dashboard/dist/assets/DataTable-D9yuBv0w.js +0 -2
  208. package/dashboard/dist/assets/DropZone-2mGyDo1P.js +0 -2
  209. package/dashboard/dist/assets/ElapsedCell-BpJjG1s-.js +0 -2
  210. package/dashboard/dist/assets/EmptyState-BcsfPq9T.js +0 -2
  211. package/dashboard/dist/assets/EscalationsOverview-DPNd1vjF.js +0 -2
  212. package/dashboard/dist/assets/EventTable-BoP8KC3M.js +0 -2
  213. package/dashboard/dist/assets/EventTopicPill-BUxxvpNg.js +0 -2
  214. package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +0 -2
  215. package/dashboard/dist/assets/HomePage-h8I5ZolJ.js +0 -2
  216. package/dashboard/dist/assets/ListToolbar-BaYIIsAt.js +0 -2
  217. package/dashboard/dist/assets/McpOverview-BhZ3lSO6.js +0 -2
  218. package/dashboard/dist/assets/McpQueryDetailPage-DVgcKa61.js +0 -5
  219. package/dashboard/dist/assets/McpQueryPage-CTWOBqKT.js +0 -2
  220. package/dashboard/dist/assets/McpRunDetailPage-CIpZJWRB.js +0 -2
  221. package/dashboard/dist/assets/McpRunsPage-B3zpzPBf.js +0 -2
  222. package/dashboard/dist/assets/Modal-DEODGeqx.js +0 -2
  223. package/dashboard/dist/assets/OperatorDashboard-l2hVlIF3.js +0 -2
  224. package/dashboard/dist/assets/PageHeader-DLjHNYHX.js +0 -2
  225. package/dashboard/dist/assets/PageHeaderWithStats-Oljg3n4j.js +0 -2
  226. package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +0 -2
  227. package/dashboard/dist/assets/ProcessDetailPage-BJ1rhK9_.js +0 -2
  228. package/dashboard/dist/assets/ProcessesListPage-IQKk_qkn.js +0 -2
  229. package/dashboard/dist/assets/RolePill-Bp10-WfX.js +0 -2
  230. package/dashboard/dist/assets/RolesPage-Dwcirtze.js +0 -2
  231. package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +0 -2
  232. package/dashboard/dist/assets/RunAsSelector-D4Fu8LVG.js +0 -2
  233. package/dashboard/dist/assets/ServerName-C9lUCFYb.js +0 -2
  234. package/dashboard/dist/assets/StatCard-DlgF0CJC.js +0 -2
  235. package/dashboard/dist/assets/StatusBadge-XQlNFwmH.js +0 -2
  236. package/dashboard/dist/assets/StepIndicator-CuUIGxKk.js +0 -2
  237. package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js +0 -2
  238. package/dashboard/dist/assets/SwimlaneTimeline-DQqgvwmC.js +0 -2
  239. package/dashboard/dist/assets/TagInput-Dkljw_WI.js +0 -2
  240. package/dashboard/dist/assets/TaskDetailPage-AHBMSHAA.js +0 -2
  241. package/dashboard/dist/assets/TaskDetailPage-AHBMSHAA.js.map +0 -1
  242. package/dashboard/dist/assets/TaskQueuePill-DPwm25Cc.js +0 -2
  243. package/dashboard/dist/assets/TasksListPage-CnJdTsoX.js +0 -2
  244. package/dashboard/dist/assets/TimeAgo-C3A1r1Cv.js +0 -2
  245. package/dashboard/dist/assets/TimestampCell-DPfLR6bZ.js +0 -2
  246. package/dashboard/dist/assets/ToolPill-D_DIWFJ5.js +0 -2
  247. package/dashboard/dist/assets/ToolTestPanel-CwZ9zkD-.js +0 -2
  248. package/dashboard/dist/assets/UserName-ClO0a6Ar.js +0 -2
  249. package/dashboard/dist/assets/WorkflowExecutionPage-B-2aHAHK.js +0 -2
  250. package/dashboard/dist/assets/WorkflowPill-BbgVTGgI.js +0 -2
  251. package/dashboard/dist/assets/WorkflowsDashboard-NtiQKl_i.js +0 -2
  252. package/dashboard/dist/assets/WorkflowsOverview-BQip_pvL.js +0 -2
  253. package/dashboard/dist/assets/YamlWorkflowsPage-BWFCVQ8b.js +0 -2
  254. package/dashboard/dist/assets/YamlWorkflowsPage-BWFCVQ8b.js.map +0 -1
  255. package/dashboard/dist/assets/escalation-BD2wtAt2.js +0 -2
  256. package/dashboard/dist/assets/escalation-columns-DjHcNgjo.js +0 -2
  257. package/dashboard/dist/assets/helpers-D1ZPA4kI.js +0 -2
  258. package/dashboard/dist/assets/index-B-Z9TisY.js +0 -2
  259. package/dashboard/dist/assets/index-B-Z9TisY.js.map +0 -1
  260. package/dashboard/dist/assets/index-B6vQeWwf.js +0 -6
  261. package/dashboard/dist/assets/index-BD2vW8MG.js +0 -5
  262. package/dashboard/dist/assets/index-BD2vW8MG.js.map +0 -1
  263. package/dashboard/dist/assets/index-BgJR7kwH.js +0 -2
  264. package/dashboard/dist/assets/index-D9qswqDQ.js +0 -2
  265. package/dashboard/dist/assets/index-DC7f6rWu.js +0 -2
  266. package/dashboard/dist/assets/index-Zn5XforP.js +0 -2
  267. package/dashboard/dist/assets/index-_5qNyf9o.js +0 -2
  268. package/dashboard/dist/assets/index-_dKxJhey.js +0 -2
  269. package/dashboard/dist/assets/index-jp94-YlF.js +0 -2
  270. package/dashboard/dist/assets/index-oGYUhkFa.js +0 -63
  271. package/dashboard/dist/assets/index-oGYUhkFa.js.map +0 -1
  272. package/dashboard/dist/assets/index-qdYsS9h2.js +0 -15
  273. package/dashboard/dist/assets/namespaces-B8KNk0Jb.js +0 -2
  274. package/dashboard/dist/assets/settings-Da0QSQDH.js +0 -2
  275. package/dashboard/dist/assets/settings-Da0QSQDH.js.map +0 -1
  276. package/dashboard/dist/assets/vendor-query-B2UbickB.js +0 -18
  277. package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +0 -1
  278. package/dashboard/dist/assets/vendor-react-CX88sFS5.js +0 -22
  279. package/dashboard/dist/assets/vendor-react-CX88sFS5.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ import{s as n,j as o}from"./index-Da8R5Fn_.js";import{c as m}from"./tasks-BLCzIHol.js";import{f as d}from"./useEventHooks-AwwZnweF.js";import{u}from"./mcp-CUFhWTyT.js";import{P as c}from"./PageHeaderWithStats-cQKaJBAM.js";import"./vendor-query-DLp59M9_.js";import"./vendor-react-Co3Y8ikm.js";import"./vendor-icons-1qQ3NKfa.js";function N(){var e;d();const{data:a}=m({limit:1}),{data:t}=n({status:"pending",limit:1}),{data:s}=u(),i=((e=s==null?void 0:s.servers)==null?void 0:e.filter(l=>l.status==="connected").length)??0,r=s?`${i}/${s.total}`:"—";return o.jsxDEV("div",{children:o.jsxDEV(c,{title:"Admin",stats:[{label:"Tasks",value:(a==null?void 0:a.total)??"—"},{label:"Pending Escalations",value:(t==null?void 0:t.total)??"—",dotClass:"bg-status-pending"},{label:"MCP Servers",value:r},{label:"System",value:"Healthy",dotClass:"bg-status-success"}]},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/AdminDashboard.tsx",lineNumber:19,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/admin/AdminDashboard.tsx",lineNumber:18,columnNumber:5},this)}export{N as AdminDashboard};
2
+ //# sourceMappingURL=AdminDashboard-45Ya2uzl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdminDashboard-DThDjhN5.js","sources":["../../src/pages/admin/AdminDashboard.tsx"],"sourcesContent":["import { useTasks } from '../../api/tasks';\nimport { useEscalations } from '../../api/escalations';\nimport { useEscalationListEvents } from '../../hooks/useEventHooks';\nimport { useMcpServers } from '../../api/mcp';\nimport { PageHeaderWithStats } from '../../components/common/layout/PageHeaderWithStats';\n\nexport function AdminDashboard() {\n useEscalationListEvents();\n const { data: taskData } = useTasks({ limit: 1 });\n const { data: pendingEsc } = useEscalations({ status: 'pending', limit: 1 });\n const { data: mcpData } = useMcpServers();\n\n const connectedServers =\n mcpData?.servers?.filter((s) => s.status === 'connected').length ?? 0;\n const mcpLabel = mcpData ? `${connectedServers}/${mcpData.total}` : '—';\n\n return (\n <div>\n <PageHeaderWithStats\n title=\"Admin\"\n stats={[\n { label: 'Tasks', value: taskData?.total ?? '—' },\n { label: 'Pending Escalations', value: pendingEsc?.total ?? '—', dotClass: 'bg-status-pending' },\n { label: 'MCP Servers', value: mcpLabel },\n { label: 'System', value: 'Healthy', dotClass: 'bg-status-success' },\n ]}\n />\n </div>\n );\n}\n"],"names":["AdminDashboard","useEscalationListEvents","taskData","useTasks","pendingEsc","useEscalations","mcpData","useMcpServers","connectedServers","_a","s","mcpLabel","jsx","PageHeaderWithStats"],"mappings":"4UAMO,SAASA,GAAiB,OAC/BC,EAAA,EACA,KAAM,CAAE,KAAMC,CAAA,EAAaC,EAAS,CAAE,MAAO,EAAG,EAC1C,CAAE,KAAMC,CAAA,EAAeC,EAAe,CAAE,OAAQ,UAAW,MAAO,EAAG,EACrE,CAAE,KAAMC,CAAA,EAAYC,EAAA,EAEpBC,IACJC,EAAAH,GAAA,YAAAA,EAAS,UAAT,YAAAG,EAAkB,OAAQC,GAAMA,EAAE,SAAW,aAAa,SAAU,EAChEC,EAAWL,EAAU,GAAGE,CAAgB,IAAIF,EAAQ,KAAK,GAAK,IAEpE,aACG,MAAA,CACC,SAAAM,EAAAA,IAACC,EAAA,CACC,MAAM,QACN,MAAO,CACL,CAAE,MAAO,QAAS,OAAOX,GAAA,YAAAA,EAAU,QAAS,GAAA,EAC5C,CAAE,MAAO,sBAAuB,OAAOE,GAAA,YAAAA,EAAY,QAAS,IAAK,SAAU,mBAAA,EAC3E,CAAE,MAAO,cAAe,MAAOO,CAAA,EAC/B,CAAE,MAAO,SAAU,MAAO,UAAW,SAAU,mBAAA,CAAoB,CACrE,CAAA,EAEJ,CAEJ"}
1
+ {"version":3,"file":"AdminDashboard-45Ya2uzl.js","sources":["../../src/pages/admin/AdminDashboard.tsx"],"sourcesContent":["import { useTasks } from '../../api/tasks';\nimport { useEscalations } from '../../api/escalations';\nimport { useEscalationListEvents } from '../../hooks/useEventHooks';\nimport { useMcpServers } from '../../api/mcp';\nimport { PageHeaderWithStats } from '../../components/common/layout/PageHeaderWithStats';\n\nexport function AdminDashboard() {\n useEscalationListEvents();\n const { data: taskData } = useTasks({ limit: 1 });\n const { data: pendingEsc } = useEscalations({ status: 'pending', limit: 1 });\n const { data: mcpData } = useMcpServers();\n\n const connectedServers =\n mcpData?.servers?.filter((s) => s.status === 'connected').length ?? 0;\n const mcpLabel = mcpData ? `${connectedServers}/${mcpData.total}` : '—';\n\n return (\n <div>\n <PageHeaderWithStats\n title=\"Admin\"\n stats={[\n { label: 'Tasks', value: taskData?.total ?? '—' },\n { label: 'Pending Escalations', value: pendingEsc?.total ?? '—', dotClass: 'bg-status-pending' },\n { label: 'MCP Servers', value: mcpLabel },\n { label: 'System', value: 'Healthy', dotClass: 'bg-status-success' },\n ]}\n />\n </div>\n );\n}\n"],"names":["AdminDashboard","useEscalationListEvents","taskData","useTasks","pendingEsc","useEscalations","mcpData","useMcpServers","connectedServers","_a","s","mcpLabel","jsxDEV","PageHeaderWithStats"],"mappings":"uUAMO,SAASA,GAAiB,OAC/BC,EAAA,EACA,KAAM,CAAE,KAAMC,CAAA,EAAaC,EAAS,CAAE,MAAO,EAAG,EAC1C,CAAE,KAAMC,CAAA,EAAeC,EAAe,CAAE,OAAQ,UAAW,MAAO,EAAG,EACrE,CAAE,KAAMC,CAAA,EAAYC,EAAA,EAEpBC,IACJC,EAAAH,GAAA,YAAAA,EAAS,UAAT,YAAAG,EAAkB,OAAQC,GAAMA,EAAE,SAAW,aAAa,SAAU,EAChEC,EAAWL,EAAU,GAAGE,CAAgB,IAAIF,EAAQ,KAAK,GAAK,IAEpE,gBACG,MAAA,CACC,SAAAM,EAAAA,OAACC,EAAA,CACC,MAAM,QACN,MAAO,CACL,CAAE,MAAO,QAAS,OAAOX,GAAA,YAAAA,EAAU,QAAS,GAAA,EAC5C,CAAE,MAAO,sBAAuB,OAAOE,GAAA,YAAAA,EAAY,QAAS,IAAK,SAAU,mBAAA,EAC3E,CAAE,MAAO,cAAe,MAAOO,CAAA,EAC/B,CAAE,MAAO,SAAU,MAAO,UAAW,SAAU,mBAAA,CAAoB,CACrE,EAPF,OAAA,GAAA,CAAA,SAAA,oDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAA,CAQA,EATF,OAAA,GAAA,CAAA,SAAA,oDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAUA,CAEJ"}
@@ -0,0 +1,13 @@
1
+ import{j as e,d as te,k as J}from"./index-Da8R5Fn_.js";import{a as y}from"./vendor-query-DLp59M9_.js";import{a as ie,d as le,b as re}from"./agents-SXs4tMLb.js";import{C as ne,u as oe,a as de,b as ce,c as pe}from"./CronLabel-DV2v2FlP.js";import{P as me}from"./PageHeader-BuUnJ5NY.js";import{B as V,d as K,R as $,O as A,m as Y,a1 as T,a as G,aB as H,H as ue}from"./vendor-icons-1qQ3NKfa.js";import{e as he}from"./knowledge-D8osen1O.js";import{R as F}from"./RunAsSelector-ZLKGTYP_.js";import{u as Q}from"./workflows-B9xdIsfM.js";import{u as be}from"./yaml-workflows-xOJxyEsQ.js";import{E as Ne}from"./EventTopicPill-9LcMnLF0.js";import{W as z}from"./WorkflowPill-BzhfqGa-.js";import{e as xe,c as ge,f as fe}from"./vendor-react-Co3Y8ikm.js";import"./BotPicker-DgbzCesR.js";import"./bots-Ci5aCzDK.js";const B={name:"",description:"",goals:"",rules:"",user_id:"",knowledge_domain:"",subscriptions:[],schedules:[]},ve={topic:"",filter:"",reaction_type:"durable",workflow_type:"",pipeline_id:"",mcp_prompt:"",input_mapping:"{}",execute_as:"",enabled:!0},Se={cron:"0 * * * *",reaction_type:"durable",workflow_type:"",pipeline_id:"",envelope:"{}",execute_as:""};function we(s,t){var r,n,d;const l=(n=(r=s.behaviors)==null?void 0:r.schedules)!=null&&n.length?s.behaviors.schedules.map(i=>({cron:i.cron||"",reaction_type:i.reaction_type||"durable",workflow_type:i.workflow_type||"",pipeline_id:i.pipeline_id||"",envelope:i.envelope?JSON.stringify(i.envelope,null,2):"{}",execute_as:i.execute_as||""})):(d=s.behaviors)!=null&&d.cron?[{cron:s.behaviors.cron,reaction_type:"durable",workflow_type:s.workflow_type??"",pipeline_id:"",envelope:"{}",execute_as:""}]:[];return{name:s.name,description:s.description??"",goals:s.goals??"",rules:s.rules??"",user_id:s.user_id??"",knowledge_domain:s.knowledge_domain??"",subscriptions:t.map(i=>({id:i.id,topic:i.topic,filter:i.filter?JSON.stringify(i.filter,null,2):"",reaction_type:i.reaction_type,workflow_type:i.workflow_type??"",pipeline_id:i.pipeline_id??"",mcp_prompt:i.mcp_prompt??"",input_mapping:JSON.stringify(i.input_mapping??{},null,2),execute_as:i.execute_as??"",enabled:i.enabled})),schedules:l}}function Ee(s){var l;const t={};return s.schedules.length>0&&(t.schedules=s.schedules.map(r=>({cron:r.cron,reaction_type:r.reaction_type||"durable",workflow_type:r.reaction_type==="pipeline"?void 0:r.workflow_type,pipeline_id:r.reaction_type==="pipeline"?r.pipeline_id:void 0,envelope:q(r.envelope)??{},execute_as:r.execute_as||void 0})),t.cron=s.schedules[0].cron),{name:s.name,description:s.description||void 0,goals:s.goals||void 0,rules:s.rules||void 0,user_id:s.user_id||void 0,knowledge_domain:s.knowledge_domain||void 0,behaviors:t,workflow_type:((l=s.schedules[0])==null?void 0:l.workflow_type)||void 0,pipeline_id:void 0}}function De(s){return s.subscriptions.map(t=>({id:t.id,topic:t.topic,filter:t.filter?q(t.filter):void 0,reaction_type:t.reaction_type,workflow_type:t.workflow_type||void 0,pipeline_id:t.pipeline_id||void 0,mcp_prompt:t.mcp_prompt||void 0,input_mapping:q(t.input_mapping)??{},execute_as:t.execute_as||void 0,enabled:t.enabled}))}function q(s){if(s.trim())try{return JSON.parse(s)}catch{return}}const w="section-header mt-[3em] first:mt-0",f="label",x="hint",N="input",X="input-json w-full";function je({form:s,set:t}){return e.jsxDEV("div",{className:"space-y-8",children:[e.jsxDEV("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between",children:[e.jsxDEV("p",{className:"text-[12px] text-text-secondary italic leading-relaxed",children:"Give your agent a name and describe what it does. The name appears everywhere — in events, logs, and the dashboard."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/IdentityStep.tsx",lineNumber:14,columnNumber:9},this),e.jsxDEV("button",{onClick:()=>{window.location.hash="#docs:agents.md:identity"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Identity",children:e.jsxDEV(V,{className:"w-3 h-3",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/IdentityStep.tsx",lineNumber:17,columnNumber:194},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/IdentityStep.tsx",lineNumber:17,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/IdentityStep.tsx",lineNumber:13,columnNumber:7},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:f,children:"Name *"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/IdentityStep.tsx",lineNumber:21,columnNumber:9},this),e.jsxDEV("input",{type:"text",value:s.name,onChange:l=>t("name",l.target.value),placeholder:"health-monitor",className:N},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/IdentityStep.tsx",lineNumber:22,columnNumber:9},this),e.jsxDEV("p",{className:x,children:"Lowercase, kebab-case. This appears everywhere."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/IdentityStep.tsx",lineNumber:23,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/IdentityStep.tsx",lineNumber:20,columnNumber:7},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:f,children:"Description"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/IdentityStep.tsx",lineNumber:27,columnNumber:9},this),e.jsxDEV("input",{type:"text",value:s.description,onChange:l=>t("description",l.target.value),placeholder:"Watches for workflow failures and captures diagnostics",className:N},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/IdentityStep.tsx",lineNumber:28,columnNumber:9},this),e.jsxDEV("p",{className:x,children:"One sentence that explains what this agent does."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/IdentityStep.tsx",lineNumber:29,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/IdentityStep.tsx",lineNumber:26,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/IdentityStep.tsx",lineNumber:12,columnNumber:5},this)}function ye({form:s,set:t}){return e.jsxDEV("div",{className:"space-y-8",children:[e.jsxDEV("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between",children:[e.jsxDEV("p",{className:"text-[12px] text-text-secondary italic leading-relaxed",children:"Goals define what drives the agent. Rules define what constrains it. Together they give automation judgment."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/MotivationStep.tsx",lineNumber:14,columnNumber:9},this),e.jsxDEV("button",{onClick:()=>{window.location.hash="#docs:agents.md:motivation"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Motivation",children:e.jsxDEV(V,{className:"w-3 h-3",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/MotivationStep.tsx",lineNumber:17,columnNumber:198},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/MotivationStep.tsx",lineNumber:17,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/MotivationStep.tsx",lineNumber:13,columnNumber:7},this),e.jsxDEV("div",{className:"grid grid-cols-2 gap-8",children:[e.jsxDEV("div",{children:[e.jsxDEV("label",{className:f,children:"Goals"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/MotivationStep.tsx",lineNumber:22,columnNumber:11},this),e.jsxDEV("textarea",{value:s.goals,onChange:l=>t("goals",l.target.value),placeholder:"Detect failures early, capture diagnostics, alert before cascading",rows:4,className:`${N} resize-none`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/MotivationStep.tsx",lineNumber:23,columnNumber:11},this),e.jsxDEV("p",{className:x,children:"Primary motivation. What the agent is trying to achieve."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/MotivationStep.tsx",lineNumber:24,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/MotivationStep.tsx",lineNumber:21,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:f,children:"Rules"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/MotivationStep.tsx",lineNumber:27,columnNumber:11},this),e.jsxDEV("textarea",{value:s.rules,onChange:l=>t("rules",l.target.value),placeholder:"Never auto-restart failed workflows. Always escalate to humans.",rows:4,className:`${N} resize-none`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/MotivationStep.tsx",lineNumber:28,columnNumber:11},this),e.jsxDEV("p",{className:x,children:"Guardrails. What it must never do, even when goals suggest it should."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/MotivationStep.tsx",lineNumber:29,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/MotivationStep.tsx",lineNumber:26,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/MotivationStep.tsx",lineNumber:20,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/MotivationStep.tsx",lineNumber:12,columnNumber:5},this)}function Ve({form:s,set:t}){const{data:l}=he(),r=(l==null?void 0:l.domains)??[];return e.jsxDEV("div",{className:"space-y-6",children:[e.jsxDEV("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between",children:[e.jsxDEV("p",{className:"text-[12px] text-text-secondary italic leading-relaxed",children:"Assign a knowledge domain — the agent's memory. It stores context here over time, learning from every interaction."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:19,columnNumber:9},this),e.jsxDEV("button",{onClick:()=>{window.location.hash="#docs:agents.md:knowledge"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Knowledge",children:e.jsxDEV(V,{className:"w-3 h-3",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:22,columnNumber:196},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:22,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:18,columnNumber:7},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:f,children:"Knowledge Domain"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:26,columnNumber:9},this),e.jsxDEV("input",{type:"text",value:s.knowledge_domain,onChange:n=>t("knowledge_domain",n.target.value),placeholder:"e.g., system-health, content-review, vendor-data",className:N,list:"domain-suggestions"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:27,columnNumber:9},this),e.jsxDEV("datalist",{id:"domain-suggestions",children:r.map(n=>e.jsxDEV("option",{value:n.domain},n.domain,!1,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:36,columnNumber:31},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:35,columnNumber:9},this),e.jsxDEV("p",{className:x,children:"Choose an existing domain to share memory, or type a new name to create one."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:38,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:25,columnNumber:7},this),r.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("label",{className:f,children:"Existing Domains"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:43,columnNumber:11},this),e.jsxDEV("div",{className:"space-y-0.5 mt-2",children:r.map(n=>e.jsxDEV("button",{type:"button",onClick:()=>t("knowledge_domain",n.domain),className:`w-full flex items-center gap-3 px-3 py-2 rounded-md text-left transition-colors ${s.knowledge_domain===n.domain?"border-l-2 border-l-accent bg-accent/5":"hover:bg-surface-hover border-l-2 border-l-transparent"}`,children:[e.jsxDEV(K,{className:"w-3.5 h-3.5 text-text-quaternary shrink-0",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:54,columnNumber:17},this),e.jsxDEV("span",{className:"text-sm text-text-primary flex-1",children:n.domain},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:55,columnNumber:17},this),e.jsxDEV("span",{className:"text-[10px] text-text-quaternary",children:[n.count," entries"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:56,columnNumber:17},this),e.jsxDEV("span",{className:"text-[9px] text-text-quaternary",children:e.jsxDEV(te,{date:n.latest},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:57,columnNumber:67},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:57,columnNumber:17},this)]},n.domain,!0,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:46,columnNumber:15},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:44,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:42,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/KnowledgeStep.tsx",lineNumber:17,columnNumber:5},this)}const ke=["workflow.failed","activity.failed","escalation.created","knowledge.stored","app.>","app.*.*.error"];function _e({form:s,set:t}){const l=J(),{data:r}=Q(),n=(r??[]).filter(a=>a.invocable).map(a=>a.workflow_type),[d,i]=y.useState(0),m=(a,p,h)=>{const v=[...s.subscriptions];v[a]={...v[a],[p]:h},t("subscriptions",v)},b=()=>{t("subscriptions",[...s.subscriptions,{...ve}]),i(s.subscriptions.length)},k=a=>{t("subscriptions",s.subscriptions.filter((p,h)=>h!==a)),d>=s.subscriptions.length-1&&i(Math.max(0,s.subscriptions.length-2))},D=s.subscriptions,c=D[d],o=a=>!!a.topic&&(a.reaction_type==="durable"?!!a.workflow_type:a.reaction_type==="pipeline"?!!a.pipeline_id:!!a.mcp_prompt);return D.length===0?e.jsxDEV("div",{className:"max-w-xl",children:[e.jsxDEV("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between mb-8",children:[e.jsxDEV("p",{className:"text-[12px] text-text-secondary italic leading-relaxed",children:"Optional. When a matching event is published, the agent runs the configured workflow with the event payload."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:53,columnNumber:11},this),e.jsxDEV("button",{onClick:()=>{window.location.hash="#docs:agents.md:subscriptions"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Subscriptions",children:e.jsxDEV(V,{className:"w-3 h-3",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:56,columnNumber:206},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:56,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:52,columnNumber:9},this),e.jsxDEV("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsxDEV($,{className:"w-8 h-8 text-text-quaternary/40 mb-3",strokeWidth:1},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:59,columnNumber:11},this),e.jsxDEV("p",{className:"text-sm text-text-tertiary mb-2",children:"No event subscriptions yet"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:60,columnNumber:11},this),e.jsxDEV("p",{className:"text-[11px] text-text-quaternary max-w-sm mb-6",children:"Each subscription listens for a topic pattern and runs a workflow when it matches."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:61,columnNumber:11},this),e.jsxDEV("button",{onClick:b,className:"flex items-center gap-2 text-xs text-accent hover:text-accent-hover transition-colors",children:[e.jsxDEV(A,{className:"w-3.5 h-3.5"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:65,columnNumber:13},this)," Add first subscription"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:64,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:58,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:51,columnNumber:7},this):e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between mb-6",children:[e.jsxDEV("p",{className:"text-[12px] text-text-secondary italic leading-relaxed",children:"Optional. When a matching event is published, the agent runs the configured workflow with the event payload."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:75,columnNumber:9},this),e.jsxDEV("button",{onClick:()=>{window.location.hash="#docs:agents.md:subscriptions"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Subscriptions",children:e.jsxDEV(V,{className:"w-3 h-3",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:78,columnNumber:204},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:78,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:74,columnNumber:7},this),e.jsxDEV("div",{className:"flex gap-8",children:[e.jsxDEV("div",{className:"w-52 shrink-0 space-y-0.5",children:[D.map((a,p)=>e.jsxDEV("div",{className:`group/sub flex items-center rounded-md transition-colors ${d===p?"bg-accent/10 text-accent":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:[e.jsxDEV("button",{onClick:()=>i(p),className:"flex-1 text-left px-3 py-2 min-w-0",children:[e.jsxDEV("div",{className:"flex items-center gap-1.5",children:[e.jsxDEV("span",{className:`w-1.5 h-1.5 rounded-full shrink-0 ${o(a)?"bg-emerald-400":"bg-zinc-500"}`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:90,columnNumber:19},this),e.jsxDEV("span",{className:"text-[11px] font-mono truncate",children:a.topic||"new subscription"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:91,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:89,columnNumber:17},this),e.jsxDEV("span",{className:"text-[9px] text-text-quaternary ml-3",children:["→ ",a.workflow_type||a.reaction_type]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:93,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:88,columnNumber:15},this),e.jsxDEV("button",{onClick:h=>{h.stopPropagation(),confirm(`Remove subscription "${a.topic||"new"}"?
2
+
3
+ This takes effect when you save.`)&&k(p)},className:"opacity-0 group-hover/sub:opacity-100 px-2 text-text-quaternary hover:text-red-400 transition-all",title:"Remove",children:e.jsxDEV(Y,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:96,columnNumber:17},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:95,columnNumber:15},this)]},p,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:85,columnNumber:13},this)),e.jsxDEV("button",{onClick:b,className:"w-full flex items-center gap-1.5 px-3 py-2 text-[11px] text-accent hover:text-accent-hover transition-colors",children:[e.jsxDEV(A,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:101,columnNumber:13},this)," Add"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:100,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:83,columnNumber:9},this),c&&e.jsxDEV("div",{className:"flex-1 min-w-0 space-y-12",children:[e.jsxDEV("div",{children:[e.jsxDEV("label",{className:w,children:"When this event fires"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:111,columnNumber:15},this),e.jsxDEV("input",{type:"text",value:c.topic,onChange:a=>m(d,"topic",a.target.value),placeholder:"workflow.failed",className:`${N} font-mono`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:112,columnNumber:15},this),e.jsxDEV("div",{className:"flex gap-3 mt-2 overflow-x-auto",children:ke.map(a=>e.jsxDEV("button",{type:"button",onClick:()=>m(d,"topic",a),className:`text-[10px] font-mono whitespace-nowrap transition-colors ${c.topic===a?"text-accent font-medium":"text-accent/50 hover:text-accent"}`,children:a},a,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:115,columnNumber:19},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:113,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:110,columnNumber:13},this),e.jsxDEV("div",{className:"grid grid-cols-3 gap-6",children:[e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("label",{className:w,children:"Run this workflow"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:125,columnNumber:17},this),e.jsxDEV("div",{className:"flex gap-3",children:["durable","pipeline",...l?["mcp_query"]:[]].map(a=>e.jsxDEV("label",{className:"flex items-center gap-1 text-[11px] text-text-secondary cursor-pointer",children:[e.jsxDEV("input",{type:"radio",name:"reaction",checked:c.reaction_type===a,onChange:()=>m(d,"reaction_type",a),className:"accent-accent w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:129,columnNumber:23},this),a==="durable"?"Workflow":a==="pipeline"?"Pipeline":"MCP Query"]},a,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:128,columnNumber:21},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:126,columnNumber:17},this),c.reaction_type==="durable"&&e.jsxDEV("div",{children:[e.jsxDEV("label",{className:f,children:"Workflow *"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:136,columnNumber:21},this),e.jsxDEV("select",{value:c.workflow_type,onChange:a=>m(d,"workflow_type",a.target.value),className:N,children:[e.jsxDEV("option",{value:"",children:"Select..."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:138,columnNumber:23},this),n.map(a=>e.jsxDEV("option",{value:a,children:a},a,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:139,columnNumber:63},this))]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:137,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:135,columnNumber:19},this),c.reaction_type==="pipeline"&&e.jsxDEV("div",{children:[e.jsxDEV("label",{className:f,children:"Pipeline ID *"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:145,columnNumber:21},this),e.jsxDEV("input",{type:"text",value:c.pipeline_id,onChange:a=>m(d,"pipeline_id",a.target.value),placeholder:"UUID",className:`${N} font-mono text-xs`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:146,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:144,columnNumber:19},this),c.reaction_type==="mcp_query"&&e.jsxDEV("div",{children:[e.jsxDEV("label",{className:f,children:"Prompt *"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:151,columnNumber:21},this),e.jsxDEV("textarea",{value:c.mcp_prompt,onChange:a=>m(d,"mcp_prompt",a.target.value),placeholder:"Analyze the error...",rows:2,className:`${N} resize-none`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:152,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:150,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:124,columnNumber:15},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:w,children:"As identity"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:157,columnNumber:17},this),e.jsxDEV(F,{selected:c.execute_as,onChange:a=>m(d,"execute_as",a)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:158,columnNumber:17},this),e.jsxDEV("p",{className:x,children:"Identity used when invoking the workflow."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:159,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:156,columnNumber:15},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:w,children:"But only if"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:162,columnNumber:17},this),e.jsxDEV("input",{type:"text",value:c.filter,onChange:a=>m(d,"filter",a.target.value),placeholder:"No filter (all matching events)",className:`${N} font-mono text-xs`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:163,columnNumber:17},this),e.jsxDEV("p",{className:x,children:["JSON filter against event.data, e.g. ",'{"status": 422}']},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:164,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:161,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:123,columnNumber:13},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:w,children:"With this data"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:170,columnNumber:15},this),e.jsxDEV("textarea",{value:c.input_mapping,onChange:a=>m(d,"input_mapping",a.target.value),rows:10,className:X,placeholder:`{
4
+ "data": {
5
+ "orderId": "{event.data.orderId}",
6
+ "error": "{event.data.error}"
7
+ }
8
+ }`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:171,columnNumber:15},this),e.jsxDEV("p",{className:x,children:["Maps event fields to workflow input. ","{event.data.fieldName}"," resolves at runtime."]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:172,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:169,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:107,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:81,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/SubscriptionsStep.tsx",lineNumber:73,columnNumber:5},this)}const Ce=["*/5 * * * *","*/15 * * * *","0 * * * *","0 */4 * * *","0 7 * * *","0 9 * * 1-5"];function M(s){return{"* * * * *":"Every minute","*/5 * * * *":"Every 5 min","*/15 * * * *":"Every 15 min","0 * * * *":"Hourly","0 */4 * * *":"Every 4 hours","0 7 * * *":"Daily 7 AM UTC","0 9 * * 1-5":"Weekdays 9 AM UTC","0 0 * * 1":"Weekly Monday"}[s]||s}function Re({form:s,set:t}){const{data:l}=Q(),r=(l??[]).filter(a=>a.invocable).map(a=>a.workflow_type),{data:n}=be({status:"active"}),d=((n==null?void 0:n.workflows)??[]).map(a=>({id:a.id,name:a.graph_topic||a.id})),[i,m]=y.useState(0),b=(a,p,h)=>{const v=[...s.schedules];v[a]={...v[a],[p]:h},t("schedules",v)},k=()=>{t("schedules",[...s.schedules,{...Se}]),m(s.schedules.length)},D=a=>{t("schedules",s.schedules.filter((p,h)=>h!==a)),i>=s.schedules.length-1&&m(Math.max(0,s.schedules.length-2))},c=s.schedules,o=c[i];return c.length===0?e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"border-l-2 border-accent/30 pl-3 py-1 mb-8 flex items-start justify-between",children:[e.jsxDEV("p",{className:"text-[12px] text-text-secondary italic leading-relaxed",children:"Optional. Each schedule runs a workflow on a cron timer."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:67,columnNumber:11},this),e.jsxDEV("button",{onClick:()=>{window.location.hash="#docs:agents.md:schedule"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Schedule",children:e.jsxDEV(V,{className:"w-3 h-3",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:70,columnNumber:196},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:70,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:66,columnNumber:9},this),e.jsxDEV("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsxDEV(T,{className:"w-8 h-8 text-text-quaternary/40 mb-3",strokeWidth:1},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:73,columnNumber:11},this),e.jsxDEV("p",{className:"text-sm text-text-tertiary mb-2",children:"No schedules"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:74,columnNumber:11},this),e.jsxDEV("p",{className:"text-[11px] text-text-quaternary max-w-sm mb-6",children:"Add a schedule to run a workflow on a recurring cron timer."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:75,columnNumber:11},this),e.jsxDEV("button",{onClick:k,className:"flex items-center gap-2 text-xs text-accent hover:text-accent-hover transition-colors",children:[e.jsxDEV(A,{className:"w-3.5 h-3.5"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:79,columnNumber:13},this)," Add schedule"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:78,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:72,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:65,columnNumber:7},this):e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"border-l-2 border-accent/30 pl-3 py-1 mb-6 flex items-start justify-between",children:[e.jsxDEV("p",{className:"text-[12px] text-text-secondary italic leading-relaxed",children:"Each schedule runs a workflow on a timer. An agent can have multiple schedules targeting different workflows."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:89,columnNumber:9},this),e.jsxDEV("button",{onClick:()=>{window.location.hash="#docs:agents.md:schedule"},className:"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3",title:"Docs: Schedule",children:e.jsxDEV(V,{className:"w-3 h-3",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:92,columnNumber:194},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:92,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:88,columnNumber:7},this),e.jsxDEV("div",{className:"flex gap-8",children:[e.jsxDEV("div",{className:"w-48 shrink-0 space-y-0.5",children:[c.map((a,p)=>e.jsxDEV("div",{className:`group/sched flex items-center rounded-md transition-colors ${i===p?"bg-accent/10 text-accent":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:[e.jsxDEV("button",{onClick:()=>m(p),className:"flex-1 text-left px-3 py-2 min-w-0",children:[e.jsxDEV("span",{className:"text-[11px] font-mono block",children:a.cron||"new schedule"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:103,columnNumber:17},this),e.jsxDEV("span",{className:"text-[9px] text-text-quaternary",children:[(a.reaction_type==="pipeline"?a.pipeline_id:a.workflow_type)||"no target"," · ",M(a.cron)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:104,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:102,columnNumber:15},this),e.jsxDEV("button",{onClick:h=>{h.stopPropagation(),confirm(`Remove schedule "${a.cron||"new"}"?
9
+
10
+ This takes effect when you save.`)&&D(p)},className:"opacity-0 group-hover/sched:opacity-100 px-2 text-text-quaternary hover:text-red-400 transition-all",title:"Remove",children:e.jsxDEV(Y,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:107,columnNumber:17},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:106,columnNumber:15},this)]},p,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:99,columnNumber:13},this)),e.jsxDEV("button",{onClick:k,className:"w-full flex items-center gap-1.5 px-3 py-2 text-[11px] text-accent hover:text-accent-hover transition-colors",children:[e.jsxDEV(A,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:112,columnNumber:13},this)," Add"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:111,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:97,columnNumber:9},this),o&&e.jsxDEV("div",{className:"flex-1 min-w-0 space-y-12",children:[e.jsxDEV("div",{children:[e.jsxDEV("label",{className:w,children:"Run every"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:122,columnNumber:15},this),e.jsxDEV("input",{type:"text",value:o.cron,onChange:a=>b(i,"cron",a.target.value),placeholder:"0 * * * *",className:`${N} font-mono`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:123,columnNumber:15},this),o.cron&&e.jsxDEV("p",{className:"text-[11px] text-accent/80 mt-1",children:M(o.cron)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:124,columnNumber:30},this),e.jsxDEV("div",{className:"flex gap-3 mt-2 overflow-x-auto",children:Ce.map(a=>e.jsxDEV("button",{type:"button",onClick:()=>b(i,"cron",a),className:`text-[10px] font-mono whitespace-nowrap transition-colors ${o.cron===a?"text-accent font-medium":"text-accent/50 hover:text-accent"}`,children:M(a)},a,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:127,columnNumber:19},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:125,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:121,columnNumber:13},this),e.jsxDEV("div",{className:"grid grid-cols-2 gap-6",children:[e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("label",{className:w,children:"Run this workflow"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:137,columnNumber:17},this),e.jsxDEV("div",{className:"flex gap-3",children:["durable","pipeline"].map(a=>e.jsxDEV("label",{className:"flex items-center gap-1 text-[11px] text-text-secondary cursor-pointer",children:[e.jsxDEV("input",{type:"radio",name:`sched-reaction-${i}`,checked:o.reaction_type===a,onChange:()=>b(i,"reaction_type",a),className:"accent-accent w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:141,columnNumber:23},this),a==="durable"?"Workflow":"Pipeline"]},a,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:140,columnNumber:21},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:138,columnNumber:17},this),o.reaction_type==="pipeline"?e.jsxDEV("div",{children:[e.jsxDEV("label",{className:f,children:"Pipeline *"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:148,columnNumber:21},this),e.jsxDEV("select",{value:o.pipeline_id,onChange:a=>b(i,"pipeline_id",a.target.value),className:N,children:[e.jsxDEV("option",{value:"",children:"Select..."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:150,columnNumber:23},this),d.map(a=>e.jsxDEV("option",{value:a.id,children:a.name},a.id,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:151,columnNumber:75},this))]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:149,columnNumber:21},this),e.jsxDEV("p",{className:x,children:"YAML pipeline invoked on each cron tick."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:153,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:147,columnNumber:19},this):e.jsxDEV("div",{children:[e.jsxDEV("label",{className:f,children:"Workflow *"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:157,columnNumber:21},this),e.jsxDEV("select",{value:o.workflow_type,onChange:a=>b(i,"workflow_type",a.target.value),className:N,children:[e.jsxDEV("option",{value:"",children:"Select..."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:159,columnNumber:23},this),r.map(a=>e.jsxDEV("option",{value:a,children:a},a,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:160,columnNumber:63},this))]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:158,columnNumber:21},this),e.jsxDEV("p",{className:x,children:"Invoked on each cron tick."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:162,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:156,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:136,columnNumber:15},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:w,children:"As identity"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:167,columnNumber:17},this),e.jsxDEV(F,{selected:o.execute_as,onChange:a=>b(i,"execute_as",a)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:168,columnNumber:17},this),e.jsxDEV("p",{className:x,children:"Identity used when invoking."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:169,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:166,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:135,columnNumber:13},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:w,children:"With this data"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:175,columnNumber:15},this),e.jsxDEV("textarea",{value:o.envelope,onChange:a=>b(i,"envelope",a.target.value),rows:10,className:X,placeholder:`{
11
+ "data": { "source": "cron" }
12
+ }`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:176,columnNumber:15},this),e.jsxDEV("p",{className:x,children:"Static payload passed to the workflow on each invocation."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:177,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:174,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:118,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:95,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ScheduleStep.tsx",lineNumber:87,columnNumber:5},this)}function C({icon:s,color:t,title:l,children:r}){return e.jsxDEV("div",{className:"mb-10",children:[e.jsxDEV("div",{className:"flex items-center gap-2 mb-2 pb-1.5 border-b border-surface-border/40",children:[e.jsxDEV(s,{className:`w-3.5 h-3.5 ${t}`,strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:16,columnNumber:9},this),e.jsxDEV("h3",{className:"text-xs font-semibold uppercase tracking-widest text-accent/80",children:l},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:17,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:15,columnNumber:7},this),e.jsxDEV("div",{className:"pl-5.5",children:r},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:19,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:14,columnNumber:5},this)}function R({label:s,children:t}){return e.jsxDEV("div",{className:"flex gap-3 py-0.5",children:[e.jsxDEV("span",{className:"text-[10px] text-text-quaternary w-20 shrink-0",children:s},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:27,columnNumber:7},this),e.jsxDEV("span",{className:"text-xs text-text-primary",children:t},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:28,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:26,columnNumber:5},this)}function Ae({form:s,aiEnabled:t=!1}){return e.jsxDEV("div",{children:[e.jsxDEV(C,{icon:G,color:"text-accent",title:"Identity",children:[e.jsxDEV(R,{label:"Name",children:s.name||"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:37,columnNumber:9},this),s.description&&e.jsxDEV(R,{label:"Description",children:s.description},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:38,columnNumber:30},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:36,columnNumber:7},this),t&&(s.goals||s.rules)&&e.jsxDEV(C,{icon:H,color:"text-rose-400",title:"Motivation",children:[s.goals&&e.jsxDEV(R,{label:"Goals",children:s.goals},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:43,columnNumber:26},this),s.rules&&e.jsxDEV(R,{label:"Rules",children:s.rules},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:44,columnNumber:26},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:42,columnNumber:9},this),e.jsxDEV(C,{icon:K,color:"text-emerald-400",title:"Knowledge",children:e.jsxDEV(R,{label:"Domain",children:s.knowledge_domain||"None"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:49,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:48,columnNumber:7},this),e.jsxDEV("div",{className:"grid grid-cols-2 gap-x-10",children:[e.jsxDEV(C,{icon:$,color:"text-cyan-400",title:`Subscriptions (${s.subscriptions.length})`,children:s.subscriptions.length===0?e.jsxDEV("span",{className:"text-[11px] text-text-quaternary",children:"None configured"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:56,columnNumber:13},this):e.jsxDEV("div",{className:"divide-y divide-surface-border/30",children:s.subscriptions.map((l,r)=>e.jsxDEV("div",{className:"flex items-center py-1.5",children:[e.jsxDEV("div",{className:"flex-1 min-w-0",children:e.jsxDEV(Ne,{topic:l.topic||"unset"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:61,columnNumber:51},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:61,columnNumber:19},this),e.jsxDEV("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsxDEV("span",{className:"text-text-quaternary text-[10px]",children:"→"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:62,columnNumber:71},this),l.workflow_type?e.jsxDEV(z,{type:l.workflow_type},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:62,columnNumber:151},this):e.jsxDEV("span",{className:"text-[11px] text-text-quaternary",children:l.reaction_type},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:62,columnNumber:195},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:62,columnNumber:19},this)]},r,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:60,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:58,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:54,columnNumber:9},this),e.jsxDEV(C,{icon:T,color:"text-amber-400",title:`Schedules (${s.schedules.length})`,children:s.schedules.length===0?e.jsxDEV("span",{className:"text-[11px] text-text-quaternary",children:"None configured"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:71,columnNumber:13},this):e.jsxDEV("div",{className:"divide-y divide-surface-border/30",children:s.schedules.map((l,r)=>e.jsxDEV("div",{className:"flex items-center py-1.5",children:[e.jsxDEV("div",{className:"flex-1 min-w-0",children:e.jsxDEV(ne,{cron:l.cron},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:76,columnNumber:51},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:76,columnNumber:19},this),e.jsxDEV("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsxDEV("span",{className:"text-text-quaternary text-[10px]",children:"→"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:77,columnNumber:71},this),l.workflow_type?e.jsxDEV(z,{type:l.workflow_type},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:77,columnNumber:149},this):e.jsxDEV("span",{className:"text-[11px] text-text-quaternary",children:"no workflow"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:77,columnNumber:191},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:77,columnNumber:19},this)]},r,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:75,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:73,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:69,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:53,columnNumber:7},this),e.jsxDEV("div",{className:"border-l-2 border-emerald-400/30 pl-3 py-2 mt-6",children:e.jsxDEV("p",{className:"text-[11px] text-text-tertiary leading-relaxed",children:"After saving, subscriptions and schedules activate immediately. You can pause the agent anytime."},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:86,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:85,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/ReviewStep.tsx",lineNumber:35,columnNumber:5},this)}const Pe=[{id:1,label:"Identity",icon:G},{id:2,label:"Motivation",icon:H,ai:!0},{id:3,label:"Knowledge",icon:K},{id:4,label:"Subscriptions",icon:$},{id:5,label:"Schedules",icon:T},{id:6,label:"Review",icon:ue}];function He(){const s=J(),{id:t}=xe(),l=!t,r=ge(),{data:n,isLoading:d}=ie(l?null:t),{data:i}=oe(l?null:t),m=le(),b=re(),k=de(),D=ce(),c=pe(),[o,a]=y.useState(B),[p,h]=y.useState(!1),[v,O]=y.useState(""),[Z,L]=fe(),j=parseInt(Z.get("step")||"1",10),ee=y.useCallback(u=>{L(g=>{const E=new URLSearchParams(g);return E.set("step",String(u)),E},{replace:!0})},[L]);y.useEffect(()=>{if(!p){if(l){a(B),h(!0);return}n&&i&&(a(we(n,i.subscriptions??[])),h(!0))}},[n,i,l,p]);const _=(u,g)=>a(E=>({...E,[u]:g})),ae=async()=>{O("");try{const u=Ee(o);let g=t;l?g=(await m.mutateAsync(u)).id:await b.mutateAsync({id:t,...u});const E=De(o),se=(i==null?void 0:i.subscriptions)??[],P=new Set(se.map(S=>S.id));for(const S of E)if(S.id&&P.has(S.id)){const{id:I,...W}=S;await D.mutateAsync({agentId:g,subId:I,...W}),P.delete(I)}else{const{id:I,...W}=S;await k.mutateAsync({agentId:g,...W})}for(const S of P)await c.mutateAsync({agentId:g,subId:S});r(`/agents/${g}`)}catch(u){O(u.message)}};if(!l&&d)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/agents/detail/AgentConfigPage.tsx",lineNumber:112,columnNumber:53},this),e.jsxDEV("div",{className:"h-60 bg-surface-sunken rounded"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:112,columnNumber:107},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:112,columnNumber:12},this);const U=m.isPending||b.isPending;return e.jsxDEV("div",{children:[e.jsxDEV(me,{title:l?"New Agent":`Agent: ${(n==null?void 0:n.name)??""}`,docsHash:"#docs:agents.md"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:119,columnNumber:7},this),e.jsxDEV("div",{className:"flex gap-10",children:[e.jsxDEV("nav",{className:"w-44 shrink-0 sticky top-0 self-start pt-2",children:[e.jsxDEV("div",{className:"space-y-0.5",children:Pe.filter(u=>!u.ai||s).map(u=>{const g=u.icon,E=j===u.id;return e.jsxDEV("button",{onClick:()=>ee(u.id),className:`w-full flex items-center gap-2.5 px-3 py-2 rounded-md text-left transition-colors ${E?"bg-accent/10 text-accent":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:[e.jsxDEV(g,{className:"w-3.5 h-3.5 shrink-0",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:141,columnNumber:19},this),e.jsxDEV("span",{className:"text-xs font-medium",children:u.label},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:142,columnNumber:19},this)]},u.id,!0,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:132,columnNumber:17},this)})},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:127,columnNumber:11},this),e.jsxDEV("div",{className:"mt-8 pt-4 border-t border-surface-border space-y-2",children:[e.jsxDEV("button",{onClick:ae,disabled:!o.name.trim()||U,className:"w-full btn-primary text-xs disabled:opacity-50",children:U?"Saving...":l?"Create Agent":"Save"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:150,columnNumber:13},this),e.jsxDEV("button",{onClick:()=>r(l?"/agents":`/agents/${t}`),className:"w-full btn-ghost text-xs",children:"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:157,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:149,columnNumber:11},this),v&&e.jsxDEV("p",{className:"text-xs text-status-error mt-3",children:v},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:165,columnNumber:25},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:126,columnNumber:9},this),e.jsxDEV("div",{className:"flex-1 min-w-0 pt-2",children:[j===1&&e.jsxDEV(je,{form:o,set:_},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:170,columnNumber:29},this),j===2&&s&&e.jsxDEV(ye,{form:o,set:_},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:171,columnNumber:42},this),j===3&&e.jsxDEV(Ve,{form:o,set:_},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:172,columnNumber:29},this),j===4&&e.jsxDEV(_e,{form:o,set:_},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:173,columnNumber:29},this),j===5&&e.jsxDEV(Re,{form:o,set:_},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:174,columnNumber:29},this),j===6&&e.jsxDEV(Ae,{form:o,aiEnabled:s},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:175,columnNumber:29},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:169,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:124,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/detail/AgentConfigPage.tsx",lineNumber:118,columnNumber:5},this)}export{He as AgentConfigPage};
13
+ //# sourceMappingURL=AgentConfigPage-BOASC5vi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentConfigPage-BOASC5vi.js","sources":["../../src/pages/agents/detail/agent-form-types.ts","../../src/pages/agents/detail/IdentityStep.tsx","../../src/pages/agents/detail/MotivationStep.tsx","../../src/pages/agents/detail/KnowledgeStep.tsx","../../src/pages/agents/detail/SubscriptionsStep.tsx","../../src/pages/agents/detail/ScheduleStep.tsx","../../src/pages/agents/detail/ReviewStep.tsx","../../src/pages/agents/detail/AgentConfigPage.tsx"],"sourcesContent":["import type { Agent, AgentBehaviors } from '../../../api/agents';\nimport type { AgentSubscription } from '../../../api/agent-subscriptions';\n\nexport interface SubscriptionFormState {\n id?: string;\n topic: string;\n filter: string;\n reaction_type: 'durable' | 'pipeline' | 'mcp_query';\n workflow_type: string;\n pipeline_id: string;\n mcp_prompt: string;\n input_mapping: string;\n execute_as: string;\n enabled: boolean;\n}\n\nexport interface ScheduleFormState {\n cron: string;\n reaction_type: 'durable' | 'pipeline';\n workflow_type: string;\n pipeline_id: string;\n envelope: string; // JSON string\n execute_as: string;\n}\n\nexport interface AgentFormState {\n name: string;\n description: string;\n goals: string;\n rules: string;\n user_id: string;\n knowledge_domain: string;\n subscriptions: SubscriptionFormState[];\n schedules: ScheduleFormState[];\n}\n\nexport const EMPTY_FORM: AgentFormState = {\n name: '',\n description: '',\n goals: '',\n rules: '',\n user_id: '',\n knowledge_domain: '',\n subscriptions: [],\n schedules: [],\n};\n\nexport const STEP_LABELS = ['Identity', 'Motivation', 'Knowledge', 'Subscriptions', 'Schedule', 'Review'];\n\nexport const EMPTY_SUBSCRIPTION: SubscriptionFormState = {\n topic: '',\n filter: '',\n reaction_type: 'durable',\n workflow_type: '',\n pipeline_id: '',\n mcp_prompt: '',\n input_mapping: '{}',\n execute_as: '',\n enabled: true,\n};\n\nexport const EMPTY_SCHEDULE: ScheduleFormState = {\n cron: '0 * * * *',\n reaction_type: 'durable',\n workflow_type: '',\n pipeline_id: '',\n envelope: '{}',\n execute_as: '',\n};\n\nexport function isStepValid(step: number, form: AgentFormState): boolean {\n switch (step) {\n case 1: return form.name.trim().length > 0;\n case 2: return true;\n case 3: return true;\n case 4: {\n return form.subscriptions.every((s) => {\n if (!s.topic.trim()) return false;\n if (s.reaction_type === 'durable' && !s.workflow_type) return false;\n if (s.reaction_type === 'pipeline' && !s.pipeline_id) return false;\n if (s.reaction_type === 'mcp_query' && !s.mcp_prompt) return false;\n return true;\n });\n }\n case 5: {\n return form.schedules.every((s) => {\n if (!s.cron) return false;\n if (s.reaction_type === 'pipeline') return !!s.pipeline_id;\n return !!s.workflow_type;\n });\n }\n case 6: return true;\n default: return true;\n }\n}\n\nexport function agentToForm(\n agent: Agent,\n subscriptions: AgentSubscription[],\n): AgentFormState {\n // Parse schedules from behaviors.schedules or fall back to legacy single cron\n const schedules: ScheduleFormState[] = agent.behaviors?.schedules?.length\n ? (agent.behaviors.schedules as any[]).map((s: any) => ({\n cron: s.cron || '',\n reaction_type: s.reaction_type || 'durable',\n workflow_type: s.workflow_type || '',\n pipeline_id: s.pipeline_id || '',\n envelope: s.envelope ? JSON.stringify(s.envelope, null, 2) : '{}',\n execute_as: s.execute_as || '',\n }))\n : agent.behaviors?.cron\n ? [{ cron: agent.behaviors.cron, reaction_type: 'durable' as const, workflow_type: agent.workflow_type ?? '', pipeline_id: '', envelope: '{}', execute_as: '' }]\n : [];\n\n return {\n name: agent.name,\n description: agent.description ?? '',\n goals: agent.goals ?? '',\n rules: agent.rules ?? '',\n user_id: agent.user_id ?? '',\n knowledge_domain: agent.knowledge_domain ?? '',\n subscriptions: subscriptions.map((s) => ({\n id: s.id,\n topic: s.topic,\n filter: s.filter ? JSON.stringify(s.filter, null, 2) : '',\n reaction_type: s.reaction_type,\n workflow_type: s.workflow_type ?? '',\n pipeline_id: s.pipeline_id ?? '',\n mcp_prompt: s.mcp_prompt ?? '',\n input_mapping: JSON.stringify(s.input_mapping ?? {}, null, 2),\n execute_as: s.execute_as ?? '',\n enabled: s.enabled,\n })),\n schedules,\n };\n}\n\nexport function formToAgentPayload(form: AgentFormState): Record<string, any> {\n const behaviors: AgentBehaviors = {};\n // Store schedules array in behaviors\n if (form.schedules.length > 0) {\n (behaviors as any).schedules = form.schedules.map((s) => ({\n cron: s.cron,\n reaction_type: s.reaction_type || 'durable',\n workflow_type: s.reaction_type === 'pipeline' ? undefined : s.workflow_type,\n pipeline_id: s.reaction_type === 'pipeline' ? s.pipeline_id : undefined,\n envelope: tryParseJson(s.envelope) ?? {},\n execute_as: s.execute_as || undefined,\n }));\n // Legacy compat: also set top-level cron from first schedule\n behaviors.cron = form.schedules[0].cron;\n }\n\n return {\n name: form.name,\n description: form.description || undefined,\n goals: form.goals || undefined,\n rules: form.rules || undefined,\n user_id: form.user_id || undefined,\n knowledge_domain: form.knowledge_domain || undefined,\n behaviors,\n workflow_type: form.schedules[0]?.workflow_type || undefined,\n pipeline_id: undefined,\n };\n}\n\nexport function formToSubscriptionPayloads(form: AgentFormState): Array<{\n id?: string;\n topic: string;\n filter?: Record<string, any>;\n reaction_type: string;\n workflow_type?: string;\n pipeline_id?: string;\n mcp_prompt?: string;\n input_mapping: Record<string, any>;\n execute_as?: string;\n enabled: boolean;\n}> {\n return form.subscriptions.map((s) => ({\n id: s.id,\n topic: s.topic,\n filter: s.filter ? tryParseJson(s.filter) : undefined,\n reaction_type: s.reaction_type,\n workflow_type: s.workflow_type || undefined,\n pipeline_id: s.pipeline_id || undefined,\n mcp_prompt: s.mcp_prompt || undefined,\n input_mapping: tryParseJson(s.input_mapping) ?? {},\n execute_as: s.execute_as || undefined,\n enabled: s.enabled,\n }));\n}\n\nfunction tryParseJson(s: string): Record<string, any> | undefined {\n if (!s.trim()) return undefined;\n try { return JSON.parse(s); } catch { return undefined; }\n}\n\nexport const sectionCls = 'section-header mt-[3em] first:mt-0';\nexport const labelCls = 'label';\nexport const hintCls = 'hint';\nexport const inputCls = 'input';\nexport const jsonCls = 'input-json w-full';\n","import { BookOpen } from 'lucide-react';\nimport type { AgentFormState } from './agent-form-types';\nimport { labelCls, hintCls, inputCls } from './agent-form-types';\n\ninterface Props {\n form: AgentFormState;\n set: (field: keyof AgentFormState, value: any) => void;\n}\n\nexport function IdentityStep({ form, set }: Props) {\n return (\n <div className=\"space-y-8\">\n <div className=\"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between\">\n <p className=\"text-[12px] text-text-secondary italic leading-relaxed\">\n Give your agent a name and describe what it does. The name appears everywhere — in events, logs, and the dashboard.\n </p>\n <button onClick={() => { window.location.hash = '#docs:agents.md:identity'; }} className=\"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3\" title=\"Docs: Identity\"><BookOpen className=\"w-3 h-3\" strokeWidth={1.5} /></button>\n </div>\n\n <div>\n <label className={labelCls}>Name *</label>\n <input type=\"text\" value={form.name} onChange={(e) => set('name', e.target.value)} placeholder=\"health-monitor\" className={inputCls} />\n <p className={hintCls}>Lowercase, kebab-case. This appears everywhere.</p>\n </div>\n\n <div>\n <label className={labelCls}>Description</label>\n <input type=\"text\" value={form.description} onChange={(e) => set('description', e.target.value)} placeholder=\"Watches for workflow failures and captures diagnostics\" className={inputCls} />\n <p className={hintCls}>One sentence that explains what this agent does.</p>\n </div>\n </div>\n );\n}\n","import { BookOpen } from 'lucide-react';\nimport type { AgentFormState } from './agent-form-types';\nimport { labelCls, hintCls, inputCls } from './agent-form-types';\n\ninterface Props {\n form: AgentFormState;\n set: (field: keyof AgentFormState, value: any) => void;\n}\n\nexport function MotivationStep({ form, set }: Props) {\n return (\n <div className=\"space-y-8\">\n <div className=\"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between\">\n <p className=\"text-[12px] text-text-secondary italic leading-relaxed\">\n Goals define what drives the agent. Rules define what constrains it. Together they give automation judgment.\n </p>\n <button onClick={() => { window.location.hash = '#docs:agents.md:motivation'; }} className=\"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3\" title=\"Docs: Motivation\"><BookOpen className=\"w-3 h-3\" strokeWidth={1.5} /></button>\n </div>\n\n <div className=\"grid grid-cols-2 gap-8\">\n <div>\n <label className={labelCls}>Goals</label>\n <textarea value={form.goals} onChange={(e) => set('goals', e.target.value)} placeholder=\"Detect failures early, capture diagnostics, alert before cascading\" rows={4} className={`${inputCls} resize-none`} />\n <p className={hintCls}>Primary motivation. What the agent is trying to achieve.</p>\n </div>\n <div>\n <label className={labelCls}>Rules</label>\n <textarea value={form.rules} onChange={(e) => set('rules', e.target.value)} placeholder=\"Never auto-restart failed workflows. Always escalate to humans.\" rows={4} className={`${inputCls} resize-none`} />\n <p className={hintCls}>Guardrails. What it must never do, even when goals suggest it should.</p>\n </div>\n </div>\n </div>\n );\n}\n","import { Brain, BookOpen } from 'lucide-react';\nimport { useListDomains } from '../../../api/knowledge';\nimport { DateValue } from '../../../components/common/display/DateValue';\nimport type { AgentFormState } from './agent-form-types';\nimport { labelCls, hintCls, inputCls } from './agent-form-types';\n\ninterface Props {\n form: AgentFormState;\n set: (field: keyof AgentFormState, value: any) => void;\n}\n\nexport function KnowledgeStep({ form, set }: Props) {\n const { data: domainData } = useListDomains();\n const domains = domainData?.domains ?? [];\n\n return (\n <div className=\"space-y-6\">\n <div className=\"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between\">\n <p className=\"text-[12px] text-text-secondary italic leading-relaxed\">\n Assign a knowledge domain — the agent's memory. It stores context here over time, learning from every interaction.\n </p>\n <button onClick={() => { window.location.hash = '#docs:agents.md:knowledge'; }} className=\"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3\" title=\"Docs: Knowledge\"><BookOpen className=\"w-3 h-3\" strokeWidth={1.5} /></button>\n </div>\n\n <div>\n <label className={labelCls}>Knowledge Domain</label>\n <input\n type=\"text\"\n value={form.knowledge_domain}\n onChange={(e) => set('knowledge_domain', e.target.value)}\n placeholder=\"e.g., system-health, content-review, vendor-data\"\n className={inputCls}\n list=\"domain-suggestions\"\n />\n <datalist id=\"domain-suggestions\">\n {domains.map((d) => <option key={d.domain} value={d.domain} />)}\n </datalist>\n <p className={hintCls}>Choose an existing domain to share memory, or type a new name to create one.</p>\n </div>\n\n {domains.length > 0 && (\n <div>\n <label className={labelCls}>Existing Domains</label>\n <div className=\"space-y-0.5 mt-2\">\n {domains.map((d) => (\n <button\n key={d.domain}\n type=\"button\"\n onClick={() => set('knowledge_domain', d.domain)}\n className={`w-full flex items-center gap-3 px-3 py-2 rounded-md text-left transition-colors ${\n form.knowledge_domain === d.domain ? 'border-l-2 border-l-accent bg-accent/5' : 'hover:bg-surface-hover border-l-2 border-l-transparent'\n }`}\n >\n <Brain className=\"w-3.5 h-3.5 text-text-quaternary shrink-0\" strokeWidth={1.5} />\n <span className=\"text-sm text-text-primary flex-1\">{d.domain}</span>\n <span className=\"text-[10px] text-text-quaternary\">{d.count} entries</span>\n <span className=\"text-[9px] text-text-quaternary\"><DateValue date={d.latest} /></span>\n </button>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n}\n","import { useState } from 'react';\nimport { Plus, Trash2, Radio, BookOpen } from 'lucide-react';\nimport { RunAsSelector } from '../../../components/common/form/RunAsSelector';\nimport { useWorkflowConfigs } from '../../../api/workflows';\nimport { useAI } from '../../../hooks/useAI';\nimport type { AgentFormState, SubscriptionFormState } from './agent-form-types';\nimport { EMPTY_SUBSCRIPTION, sectionCls, labelCls, hintCls, inputCls, jsonCls } from './agent-form-types';\n\nconst TOPIC_EXAMPLES = [\n 'workflow.failed',\n 'activity.failed',\n 'escalation.created',\n 'knowledge.stored',\n 'app.>',\n 'app.*.*.error',\n];\n\ninterface Props {\n form: AgentFormState;\n set: (field: keyof AgentFormState, value: any) => void;\n}\n\nexport function SubscriptionsStep({ form, set }: Props) {\n const aiEnabled = useAI();\n const { data: configs } = useWorkflowConfigs();\n const invocableWorkflows = (configs ?? []).filter((c: any) => c.invocable).map((c: any) => c.workflow_type);\n const [selected, setSelected] = useState(0);\n\n const updateSub = (index: number, field: keyof SubscriptionFormState, value: any) => {\n const next = [...form.subscriptions];\n next[index] = { ...next[index], [field]: value };\n set('subscriptions', next);\n };\n\n const addSub = () => {\n set('subscriptions', [...form.subscriptions, { ...EMPTY_SUBSCRIPTION }]);\n setSelected(form.subscriptions.length);\n };\n\n const removeSub = (index: number) => {\n set('subscriptions', form.subscriptions.filter((_, i) => i !== index));\n if (selected >= form.subscriptions.length - 1) setSelected(Math.max(0, form.subscriptions.length - 2));\n };\n\n const subs = form.subscriptions;\n const sub = subs[selected];\n const isComplete = (s: SubscriptionFormState) => !!s.topic && (s.reaction_type === 'durable' ? !!s.workflow_type : s.reaction_type === 'pipeline' ? !!s.pipeline_id : !!s.mcp_prompt);\n\n if (subs.length === 0) {\n return (\n <div className=\"max-w-xl\">\n <div className=\"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between mb-8\">\n <p className=\"text-[12px] text-text-secondary italic leading-relaxed\">\n Optional. When a matching event is published, the agent runs the configured workflow with the event payload.\n </p>\n <button onClick={() => { window.location.hash = '#docs:agents.md:subscriptions'; }} className=\"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3\" title=\"Docs: Subscriptions\"><BookOpen className=\"w-3 h-3\" strokeWidth={1.5} /></button>\n </div>\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\n <Radio className=\"w-8 h-8 text-text-quaternary/40 mb-3\" strokeWidth={1} />\n <p className=\"text-sm text-text-tertiary mb-2\">No event subscriptions yet</p>\n <p className=\"text-[11px] text-text-quaternary max-w-sm mb-6\">\n Each subscription listens for a topic pattern and runs a workflow when it matches.\n </p>\n <button onClick={addSub} className=\"flex items-center gap-2 text-xs text-accent hover:text-accent-hover transition-colors\">\n <Plus className=\"w-3.5 h-3.5\" /> Add first subscription\n </button>\n </div>\n </div>\n );\n }\n\n return (\n <div>\n <div className=\"border-l-2 border-accent/30 pl-3 py-1 flex items-start justify-between mb-6\">\n <p className=\"text-[12px] text-text-secondary italic leading-relaxed\">\n Optional. When a matching event is published, the agent runs the configured workflow with the event payload.\n </p>\n <button onClick={() => { window.location.hash = '#docs:agents.md:subscriptions'; }} className=\"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3\" title=\"Docs: Subscriptions\"><BookOpen className=\"w-3 h-3\" strokeWidth={1.5} /></button>\n </div>\n\n <div className=\"flex gap-8\">\n {/* Sub-index */}\n <div className=\"w-52 shrink-0 space-y-0.5\">\n {subs.map((s, i) => (\n <div key={i} className={`group/sub flex items-center rounded-md transition-colors ${\n selected === i ? 'bg-accent/10 text-accent' : 'text-text-tertiary hover:text-text-primary hover:bg-surface-hover'\n }`}>\n <button onClick={() => setSelected(i)} className=\"flex-1 text-left px-3 py-2 min-w-0\">\n <div className=\"flex items-center gap-1.5\">\n <span className={`w-1.5 h-1.5 rounded-full shrink-0 ${isComplete(s) ? 'bg-emerald-400' : 'bg-zinc-500'}`} />\n <span className=\"text-[11px] font-mono truncate\">{s.topic || 'new subscription'}</span>\n </div>\n <span className=\"text-[9px] text-text-quaternary ml-3\">→ {s.workflow_type || s.reaction_type}</span>\n </button>\n <button onClick={(e) => { e.stopPropagation(); if (confirm(`Remove subscription \"${s.topic || 'new'}\"?\\n\\nThis takes effect when you save.`)) removeSub(i); }} className=\"opacity-0 group-hover/sub:opacity-100 px-2 text-text-quaternary hover:text-red-400 transition-all\" title=\"Remove\">\n <Trash2 className=\"w-3 h-3\" />\n </button>\n </div>\n ))}\n <button onClick={addSub} className=\"w-full flex items-center gap-1.5 px-3 py-2 text-[11px] text-accent hover:text-accent-hover transition-colors\">\n <Plus className=\"w-3 h-3\" /> Add\n </button>\n </div>\n\n {/* Detail form */}\n {sub && (\n <div className=\"flex-1 min-w-0 space-y-12\">\n\n {/* When — topic + shortcut links */}\n <div>\n <label className={sectionCls}>When this event fires</label>\n <input type=\"text\" value={sub.topic} onChange={(e) => updateSub(selected, 'topic', e.target.value)} placeholder=\"workflow.failed\" className={`${inputCls} font-mono`} />\n <div className=\"flex gap-3 mt-2 overflow-x-auto\">\n {TOPIC_EXAMPLES.map((ex) => (\n <button key={ex} type=\"button\" onClick={() => updateSub(selected, 'topic', ex)}\n className={`text-[10px] font-mono whitespace-nowrap transition-colors ${sub.topic === ex ? 'text-accent font-medium' : 'text-accent/50 hover:text-accent'}`}\n >{ex}</button>\n ))}\n </div>\n </div>\n\n {/* Run this workflow + As identity + But only if — 3 col */}\n <div className=\"grid grid-cols-3 gap-6\">\n <div className=\"space-y-4\">\n <label className={sectionCls}>Run this workflow</label>\n <div className=\"flex gap-3\">\n {(['durable', 'pipeline', ...(aiEnabled ? ['mcp_query'] : [])] as const).map((rt) => (\n <label key={rt} className=\"flex items-center gap-1 text-[11px] text-text-secondary cursor-pointer\">\n <input type=\"radio\" name=\"reaction\" checked={sub.reaction_type === rt} onChange={() => updateSub(selected, 'reaction_type', rt)} className=\"accent-accent w-3 h-3\" />\n {rt === 'durable' ? 'Workflow' : rt === 'pipeline' ? 'Pipeline' : 'MCP Query'}\n </label>\n ))}\n </div>\n {sub.reaction_type === 'durable' && (\n <div>\n <label className={labelCls}>Workflow *</label>\n <select value={sub.workflow_type} onChange={(e) => updateSub(selected, 'workflow_type', e.target.value)} className={inputCls}>\n <option value=\"\">Select...</option>\n {invocableWorkflows.map((wt: string) => <option key={wt} value={wt}>{wt}</option>)}\n </select>\n </div>\n )}\n {sub.reaction_type === 'pipeline' && (\n <div>\n <label className={labelCls}>Pipeline ID *</label>\n <input type=\"text\" value={sub.pipeline_id} onChange={(e) => updateSub(selected, 'pipeline_id', e.target.value)} placeholder=\"UUID\" className={`${inputCls} font-mono text-xs`} />\n </div>\n )}\n {sub.reaction_type === 'mcp_query' && (\n <div>\n <label className={labelCls}>Prompt *</label>\n <textarea value={sub.mcp_prompt} onChange={(e) => updateSub(selected, 'mcp_prompt', e.target.value)} placeholder=\"Analyze the error...\" rows={2} className={`${inputCls} resize-none`} />\n </div>\n )}\n </div>\n <div>\n <label className={sectionCls}>As identity</label>\n <RunAsSelector selected={sub.execute_as} onChange={(v) => updateSub(selected, 'execute_as', v)} />\n <p className={hintCls}>Identity used when invoking the workflow.</p>\n </div>\n <div>\n <label className={sectionCls}>But only if</label>\n <input type=\"text\" value={sub.filter} onChange={(e) => updateSub(selected, 'filter', e.target.value)} placeholder=\"No filter (all matching events)\" className={`${inputCls} font-mono text-xs`} />\n <p className={hintCls}>JSON filter against event.data, e.g. {`{\"status\": 422}`}</p>\n </div>\n </div>\n\n {/* Input Mapping full width */}\n <div>\n <label className={sectionCls}>With this data</label>\n <textarea value={sub.input_mapping} onChange={(e) => updateSub(selected, 'input_mapping', e.target.value)} rows={10} className={jsonCls} placeholder={'{\\n \"data\": {\\n \"orderId\": \"{event.data.orderId}\",\\n \"error\": \"{event.data.error}\"\\n }\\n}'} />\n <p className={hintCls}>Maps event fields to workflow input. {'{event.data.fieldName}'} resolves at runtime.</p>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n","import { useState } from 'react';\nimport { Plus, Trash2, Clock, BookOpen } from 'lucide-react';\nimport { RunAsSelector } from '../../../components/common/form/RunAsSelector';\nimport { useWorkflowConfigs } from '../../../api/workflows';\nimport { useYamlWorkflows } from '../../../api/yaml-workflows';\nimport type { AgentFormState, ScheduleFormState } from './agent-form-types';\nimport { EMPTY_SCHEDULE, sectionCls, labelCls, hintCls, inputCls, jsonCls } from './agent-form-types';\n\nconst CRON_PRESETS = [\n '*/5 * * * *',\n '*/15 * * * *',\n '0 * * * *',\n '0 */4 * * *',\n '0 7 * * *',\n '0 9 * * 1-5',\n];\n\nfunction describeCron(expr: string): string {\n const m: Record<string, string> = {\n '* * * * *': 'Every minute',\n '*/5 * * * *': 'Every 5 min',\n '*/15 * * * *': 'Every 15 min',\n '0 * * * *': 'Hourly',\n '0 */4 * * *': 'Every 4 hours',\n '0 7 * * *': 'Daily 7 AM UTC',\n '0 9 * * 1-5': 'Weekdays 9 AM UTC',\n '0 0 * * 1': 'Weekly Monday',\n };\n return m[expr] || expr;\n}\n\ninterface Props {\n form: AgentFormState;\n set: (field: keyof AgentFormState, value: any) => void;\n}\n\nexport function ScheduleStep({ form, set }: Props) {\n const { data: configs } = useWorkflowConfigs();\n const invocableWorkflows = (configs ?? []).filter((c: any) => c.invocable).map((c: any) => c.workflow_type);\n const { data: pipelineData } = useYamlWorkflows({ status: 'active' });\n const pipelines = (pipelineData?.workflows ?? []).map((w: any) => ({ id: w.id, name: w.graph_topic || w.id }));\n const [selected, setSelected] = useState(0);\n\n const updateSched = (index: number, field: keyof ScheduleFormState, value: any) => {\n const next = [...form.schedules];\n next[index] = { ...next[index], [field]: value };\n set('schedules', next);\n };\n\n const addSched = () => {\n set('schedules', [...form.schedules, { ...EMPTY_SCHEDULE }]);\n setSelected(form.schedules.length);\n };\n\n const removeSched = (index: number) => {\n set('schedules', form.schedules.filter((_: any, i: number) => i !== index));\n if (selected >= form.schedules.length - 1) setSelected(Math.max(0, form.schedules.length - 2));\n };\n\n const scheds = form.schedules;\n const sched = scheds[selected];\n\n if (scheds.length === 0) {\n return (\n <div>\n <div className=\"border-l-2 border-accent/30 pl-3 py-1 mb-8 flex items-start justify-between\">\n <p className=\"text-[12px] text-text-secondary italic leading-relaxed\">\n Optional. Each schedule runs a workflow on a cron timer.\n </p>\n <button onClick={() => { window.location.hash = '#docs:agents.md:schedule'; }} className=\"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3\" title=\"Docs: Schedule\"><BookOpen className=\"w-3 h-3\" strokeWidth={1.5} /></button>\n </div>\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\n <Clock className=\"w-8 h-8 text-text-quaternary/40 mb-3\" strokeWidth={1} />\n <p className=\"text-sm text-text-tertiary mb-2\">No schedules</p>\n <p className=\"text-[11px] text-text-quaternary max-w-sm mb-6\">\n Add a schedule to run a workflow on a recurring cron timer.\n </p>\n <button onClick={addSched} className=\"flex items-center gap-2 text-xs text-accent hover:text-accent-hover transition-colors\">\n <Plus className=\"w-3.5 h-3.5\" /> Add schedule\n </button>\n </div>\n </div>\n );\n }\n\n return (\n <div>\n <div className=\"border-l-2 border-accent/30 pl-3 py-1 mb-6 flex items-start justify-between\">\n <p className=\"text-[12px] text-text-secondary italic leading-relaxed\">\n Each schedule runs a workflow on a timer. An agent can have multiple schedules targeting different workflows.\n </p>\n <button onClick={() => { window.location.hash = '#docs:agents.md:schedule'; }} className=\"text-text-quaternary hover:text-accent transition-colors shrink-0 ml-3\" title=\"Docs: Schedule\"><BookOpen className=\"w-3 h-3\" strokeWidth={1.5} /></button>\n </div>\n\n <div className=\"flex gap-8\">\n {/* Sub-index */}\n <div className=\"w-48 shrink-0 space-y-0.5\">\n {scheds.map((s, i) => (\n <div key={i} className={`group/sched flex items-center rounded-md transition-colors ${\n selected === i ? 'bg-accent/10 text-accent' : 'text-text-tertiary hover:text-text-primary hover:bg-surface-hover'\n }`}>\n <button onClick={() => setSelected(i)} className=\"flex-1 text-left px-3 py-2 min-w-0\">\n <span className=\"text-[11px] font-mono block\">{s.cron || 'new schedule'}</span>\n <span className=\"text-[9px] text-text-quaternary\">{(s.reaction_type === 'pipeline' ? s.pipeline_id : s.workflow_type) || 'no target'} · {describeCron(s.cron)}</span>\n </button>\n <button onClick={(e) => { e.stopPropagation(); if (confirm(`Remove schedule \"${s.cron || 'new'}\"?\\n\\nThis takes effect when you save.`)) removeSched(i); }} className=\"opacity-0 group-hover/sched:opacity-100 px-2 text-text-quaternary hover:text-red-400 transition-all\" title=\"Remove\">\n <Trash2 className=\"w-3 h-3\" />\n </button>\n </div>\n ))}\n <button onClick={addSched} className=\"w-full flex items-center gap-1.5 px-3 py-2 text-[11px] text-accent hover:text-accent-hover transition-colors\">\n <Plus className=\"w-3 h-3\" /> Add\n </button>\n </div>\n\n {/* Detail form */}\n {sched && (\n <div className=\"flex-1 min-w-0 space-y-12\">\n\n {/* Every — cron + presets */}\n <div>\n <label className={sectionCls}>Run every</label>\n <input type=\"text\" value={sched.cron} onChange={(e) => updateSched(selected, 'cron', e.target.value)} placeholder=\"0 * * * *\" className={`${inputCls} font-mono`} />\n {sched.cron && <p className=\"text-[11px] text-accent/80 mt-1\">{describeCron(sched.cron)}</p>}\n <div className=\"flex gap-3 mt-2 overflow-x-auto\">\n {CRON_PRESETS.map((p) => (\n <button key={p} type=\"button\" onClick={() => updateSched(selected, 'cron', p)}\n className={`text-[10px] font-mono whitespace-nowrap transition-colors ${sched.cron === p ? 'text-accent font-medium' : 'text-accent/50 hover:text-accent'}`}\n >{describeCron(p)}</button>\n ))}\n </div>\n </div>\n\n {/* Run this workflow + As identity — 2 col */}\n <div className=\"grid grid-cols-2 gap-6\">\n <div className=\"space-y-4\">\n <label className={sectionCls}>Run this workflow</label>\n <div className=\"flex gap-3\">\n {(['durable', 'pipeline'] as const).map((rt) => (\n <label key={rt} className=\"flex items-center gap-1 text-[11px] text-text-secondary cursor-pointer\">\n <input type=\"radio\" name={`sched-reaction-${selected}`} checked={sched.reaction_type === rt} onChange={() => updateSched(selected, 'reaction_type', rt)} className=\"accent-accent w-3 h-3\" />\n {rt === 'durable' ? 'Workflow' : 'Pipeline'}\n </label>\n ))}\n </div>\n {sched.reaction_type === 'pipeline' ? (\n <div>\n <label className={labelCls}>Pipeline *</label>\n <select value={sched.pipeline_id} onChange={(e) => updateSched(selected, 'pipeline_id', e.target.value)} className={inputCls}>\n <option value=\"\">Select...</option>\n {pipelines.map((p: { id: string; name: string }) => <option key={p.id} value={p.id}>{p.name}</option>)}\n </select>\n <p className={hintCls}>YAML pipeline invoked on each cron tick.</p>\n </div>\n ) : (\n <div>\n <label className={labelCls}>Workflow *</label>\n <select value={sched.workflow_type} onChange={(e) => updateSched(selected, 'workflow_type', e.target.value)} className={inputCls}>\n <option value=\"\">Select...</option>\n {invocableWorkflows.map((wt: string) => <option key={wt} value={wt}>{wt}</option>)}\n </select>\n <p className={hintCls}>Invoked on each cron tick.</p>\n </div>\n )}\n </div>\n <div>\n <label className={sectionCls}>As identity</label>\n <RunAsSelector selected={sched.execute_as} onChange={(v) => updateSched(selected, 'execute_as', v)} />\n <p className={hintCls}>Identity used when invoking.</p>\n </div>\n </div>\n\n {/* Envelope */}\n <div>\n <label className={sectionCls}>With this data</label>\n <textarea value={sched.envelope} onChange={(e) => updateSched(selected, 'envelope', e.target.value)} rows={10} className={jsonCls} placeholder={'{\\n \"data\": { \"source\": \"cron\" }\\n}'} />\n <p className={hintCls}>Static payload passed to the workflow on each invocation.</p>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n","import { Bot, Compass, Brain, Radio, Clock } from 'lucide-react';\nimport { EventTopicPill } from '../../../components/common/display/EventTopicPill';\nimport { CronLabel } from '../../../components/common/display/CronLabel';\nimport { WorkflowPill } from '../../../components/common/display/WorkflowPill';\nimport type { AgentFormState } from './agent-form-types';\n\ninterface Props {\n form: AgentFormState;\n aiEnabled?: boolean;\n}\n\nfunction Section({ icon: Icon, color, title, children }: { icon: React.ElementType; color: string; title: string; children: React.ReactNode }) {\n return (\n <div className=\"mb-10\">\n <div className=\"flex items-center gap-2 mb-2 pb-1.5 border-b border-surface-border/40\">\n <Icon className={`w-3.5 h-3.5 ${color}`} strokeWidth={1.5} />\n <h3 className=\"text-xs font-semibold uppercase tracking-widest text-accent/80\">{title}</h3>\n </div>\n <div className=\"pl-5.5\">{children}</div>\n </div>\n );\n}\n\nfunction Field({ label, children }: { label: string; children: React.ReactNode }) {\n return (\n <div className=\"flex gap-3 py-0.5\">\n <span className=\"text-[10px] text-text-quaternary w-20 shrink-0\">{label}</span>\n <span className=\"text-xs text-text-primary\">{children}</span>\n </div>\n );\n}\n\nexport function ReviewStep({ form, aiEnabled = false }: Props) {\n return (\n <div>\n <Section icon={Bot} color=\"text-accent\" title=\"Identity\">\n <Field label=\"Name\">{form.name || '—'}</Field>\n {form.description && <Field label=\"Description\">{form.description}</Field>}\n </Section>\n\n {aiEnabled && (form.goals || form.rules) && (\n <Section icon={Compass} color=\"text-rose-400\" title=\"Motivation\">\n {form.goals && <Field label=\"Goals\">{form.goals}</Field>}\n {form.rules && <Field label=\"Rules\">{form.rules}</Field>}\n </Section>\n )}\n\n <Section icon={Brain} color=\"text-emerald-400\" title=\"Knowledge\">\n <Field label=\"Domain\">{form.knowledge_domain || 'None'}</Field>\n </Section>\n\n {/* Subscriptions + Schedule side by side */}\n <div className=\"grid grid-cols-2 gap-x-10\">\n <Section icon={Radio} color=\"text-cyan-400\" title={`Subscriptions (${form.subscriptions.length})`}>\n {form.subscriptions.length === 0 ? (\n <span className=\"text-[11px] text-text-quaternary\">None configured</span>\n ) : (\n <div className=\"divide-y divide-surface-border/30\">\n {form.subscriptions.map((sub, i) => (\n <div key={i} className=\"flex items-center py-1.5\">\n <div className=\"flex-1 min-w-0\"><EventTopicPill topic={sub.topic || 'unset'} /></div>\n <div className=\"flex items-center gap-1.5 shrink-0\"><span className=\"text-text-quaternary text-[10px]\">→</span>{sub.workflow_type ? <WorkflowPill type={sub.workflow_type} /> : <span className=\"text-[11px] text-text-quaternary\">{sub.reaction_type}</span>}</div>\n </div>\n ))}\n </div>\n )}\n </Section>\n\n <Section icon={Clock} color=\"text-amber-400\" title={`Schedules (${form.schedules.length})`}>\n {form.schedules.length === 0 ? (\n <span className=\"text-[11px] text-text-quaternary\">None configured</span>\n ) : (\n <div className=\"divide-y divide-surface-border/30\">\n {form.schedules.map((s, i) => (\n <div key={i} className=\"flex items-center py-1.5\">\n <div className=\"flex-1 min-w-0\"><CronLabel cron={s.cron} /></div>\n <div className=\"flex items-center gap-1.5 shrink-0\"><span className=\"text-text-quaternary text-[10px]\">→</span>{s.workflow_type ? <WorkflowPill type={s.workflow_type} /> : <span className=\"text-[11px] text-text-quaternary\">no workflow</span>}</div>\n </div>\n ))}\n </div>\n )}\n </Section>\n </div>\n\n <div className=\"border-l-2 border-emerald-400/30 pl-3 py-2 mt-6\">\n <p className=\"text-[11px] text-text-tertiary leading-relaxed\">\n After saving, subscriptions and schedules activate immediately. You can pause the agent anytime.\n </p>\n </div>\n </div>\n );\n}\n","import { useState, useEffect, useCallback } from 'react';\nimport { useParams, useNavigate, useSearchParams } from 'react-router-dom';\nimport {\n Bot, Brain, Radio, Clock, Check, Compass,\n} from 'lucide-react';\nimport { useAgent, useCreateAgent, useUpdateAgent } from '../../../api/agents';\nimport { useAgentSubscriptions, useCreateSubscription, useUpdateSubscription, useDeleteSubscription } from '../../../api/agent-subscriptions';\nimport { PageHeader } from '../../../components/common/layout/PageHeader';\nimport {\n EMPTY_FORM,\n agentToForm,\n formToAgentPayload,\n formToSubscriptionPayloads,\n} from './agent-form-types';\nimport type { AgentFormState } from './agent-form-types';\nimport { useAI } from '../../../hooks/useAI';\nimport { IdentityStep } from './IdentityStep';\nimport { MotivationStep } from './MotivationStep';\nimport { KnowledgeStep } from './KnowledgeStep';\nimport { SubscriptionsStep } from './SubscriptionsStep';\nimport { ScheduleStep } from './ScheduleStep';\nimport { ReviewStep } from './ReviewStep';\n\nconst ALL_SECTIONS = [\n { id: 1, label: 'Identity', icon: Bot },\n { id: 2, label: 'Motivation', icon: Compass, ai: true },\n { id: 3, label: 'Knowledge', icon: Brain },\n { id: 4, label: 'Subscriptions', icon: Radio },\n { id: 5, label: 'Schedules', icon: Clock },\n { id: 6, label: 'Review', icon: Check },\n];\n\nexport function AgentConfigPage() {\n const aiEnabled = useAI();\n const { id } = useParams<{ id: string }>();\n const isNew = !id;\n const navigate = useNavigate();\n const { data: existing, isLoading } = useAgent(isNew ? null : id!);\n const { data: subsData } = useAgentSubscriptions(isNew ? null : id!);\n\n const createAgent = useCreateAgent();\n const updateAgent = useUpdateAgent();\n const createSub = useCreateSubscription();\n const updateSub = useUpdateSubscription();\n const deleteSub = useDeleteSubscription();\n\n const [form, setForm] = useState<AgentFormState>(EMPTY_FORM);\n const [initialized, setInitialized] = useState(false);\n const [saveError, setSaveError] = useState('');\n\n const [searchParams, setSearchParams] = useSearchParams();\n const section = parseInt(searchParams.get('step') || '1', 10);\n const setSection = useCallback((s: number) => {\n setSearchParams((prev) => {\n const next = new URLSearchParams(prev);\n next.set('step', String(s));\n return next;\n }, { replace: true });\n }, [setSearchParams]);\n\n useEffect(() => {\n if (initialized) return;\n if (isNew) { setForm(EMPTY_FORM); setInitialized(true); return; }\n if (existing && subsData) {\n setForm(agentToForm(existing, subsData.subscriptions ?? []));\n setInitialized(true);\n }\n }, [existing, subsData, isNew, initialized]);\n\n const set = (field: keyof AgentFormState, value: any) =>\n setForm((f) => ({ ...f, [field]: value }));\n\n const handleSave = async () => {\n setSaveError('');\n try {\n const payload = formToAgentPayload(form);\n let agentId = id;\n\n if (isNew) {\n const created = await createAgent.mutateAsync(payload as any);\n agentId = created.id;\n } else {\n await updateAgent.mutateAsync({ id: id!, ...payload } as any);\n }\n\n const subPayloads = formToSubscriptionPayloads(form);\n const existingSubs = subsData?.subscriptions ?? [];\n const existingIds = new Set(existingSubs.map((s) => s.id));\n\n for (const sub of subPayloads) {\n if (sub.id && existingIds.has(sub.id)) {\n const { id: subId, ...rest } = sub;\n await updateSub.mutateAsync({ agentId: agentId!, subId: subId!, ...rest } as any);\n existingIds.delete(subId!);\n } else {\n const { id: _ignored, ...rest } = sub;\n await createSub.mutateAsync({ agentId: agentId!, ...rest } as any);\n }\n }\n\n for (const removedId of existingIds) {\n await deleteSub.mutateAsync({ agentId: agentId!, subId: removedId });\n }\n\n navigate(`/agents/${agentId}`);\n } catch (err: any) {\n setSaveError(err.message);\n }\n };\n\n if (!isNew && isLoading) {\n return <div className=\"animate-pulse space-y-4\"><div className=\"h-8 bg-surface-sunken rounded w-48\" /><div className=\"h-60 bg-surface-sunken rounded\" /></div>;\n }\n\n const isPending = createAgent.isPending || updateAgent.isPending;\n\n return (\n <div>\n <PageHeader\n title={isNew ? 'New Agent' : `Agent: ${existing?.name ?? ''}`}\n docsHash=\"#docs:agents.md\"\n />\n\n <div className=\"flex gap-10\">\n {/* Section nav — sticky left sidebar */}\n <nav className=\"w-44 shrink-0 sticky top-0 self-start pt-2\">\n <div className=\"space-y-0.5\">\n {ALL_SECTIONS.filter((s) => !s.ai || aiEnabled).map((s) => {\n const Icon = s.icon;\n const active = section === s.id;\n return (\n <button\n key={s.id}\n onClick={() => setSection(s.id)}\n className={`w-full flex items-center gap-2.5 px-3 py-2 rounded-md text-left transition-colors ${\n active\n ? 'bg-accent/10 text-accent'\n : 'text-text-tertiary hover:text-text-primary hover:bg-surface-hover'\n }`}\n >\n <Icon className=\"w-3.5 h-3.5 shrink-0\" strokeWidth={1.5} />\n <span className=\"text-xs font-medium\">{s.label}</span>\n </button>\n );\n })}\n </div>\n\n {/* Save / Cancel — always visible */}\n <div className=\"mt-8 pt-4 border-t border-surface-border space-y-2\">\n <button\n onClick={handleSave}\n disabled={!form.name.trim() || isPending}\n className=\"w-full btn-primary text-xs disabled:opacity-50\"\n >\n {isPending ? 'Saving...' : isNew ? 'Create Agent' : 'Save'}\n </button>\n <button\n onClick={() => navigate(isNew ? '/agents' : `/agents/${id}`)}\n className=\"w-full btn-ghost text-xs\"\n >\n Cancel\n </button>\n </div>\n\n {saveError && <p className=\"text-xs text-status-error mt-3\">{saveError}</p>}\n </nav>\n\n {/* Section content */}\n <div className=\"flex-1 min-w-0 pt-2\">\n {section === 1 && <IdentityStep form={form} set={set} />}\n {section === 2 && aiEnabled && <MotivationStep form={form} set={set} />}\n {section === 3 && <KnowledgeStep form={form} set={set} />}\n {section === 4 && <SubscriptionsStep form={form} set={set} />}\n {section === 5 && <ScheduleStep form={form} set={set} />}\n {section === 6 && <ReviewStep form={form} aiEnabled={aiEnabled} />}\n </div>\n </div>\n </div>\n );\n}\n"],"names":["EMPTY_FORM","EMPTY_SUBSCRIPTION","EMPTY_SCHEDULE","agentToForm","agent","subscriptions","schedules","_b","_a","s","_c","formToAgentPayload","form","behaviors","tryParseJson","formToSubscriptionPayloads","sectionCls","labelCls","hintCls","inputCls","jsonCls","IdentityStep","set","jsxDEV","BookOpen","e","MotivationStep","KnowledgeStep","domainData","useListDomains","domains","d","Brain","DateValue","TOPIC_EXAMPLES","SubscriptionsStep","aiEnabled","useAI","configs","useWorkflowConfigs","invocableWorkflows","c","selected","setSelected","useState","updateSub","index","field","value","next","addSub","removeSub","_","i","subs","sub","isComplete","Radio","Plus","Trash2","ex","rt","wt","RunAsSelector","v","CRON_PRESETS","describeCron","expr","ScheduleStep","pipelineData","useYamlWorkflows","pipelines","w","updateSched","addSched","removeSched","scheds","sched","Clock","p","Section","Icon","color","title","children","Field","label","ReviewStep","Bot","Compass","EventTopicPill","WorkflowPill","CronLabel","ALL_SECTIONS","Check","AgentConfigPage","id","useParams","isNew","navigate","useNavigate","existing","isLoading","useAgent","subsData","useAgentSubscriptions","createAgent","useCreateAgent","updateAgent","useUpdateAgent","createSub","useCreateSubscription","useUpdateSubscription","deleteSub","useDeleteSubscription","setForm","initialized","setInitialized","saveError","setSaveError","searchParams","setSearchParams","useSearchParams","section","setSection","useCallback","prev","useEffect","f","handleSave","payload","agentId","subPayloads","existingSubs","existingIds","subId","rest","_ignored","removedId","err","isPending","PageHeader","active"],"mappings":"4xBAoCO,MAAMA,EAA6B,CACxC,KAAM,GACN,YAAa,GACb,MAAO,GACP,MAAO,GACP,QAAS,GACT,iBAAkB,GAClB,cAAe,CAAA,EACf,UAAW,CAAA,CACb,EAIaC,GAA4C,CACvD,MAAO,GACP,OAAQ,GACR,cAAe,UACf,cAAe,GACf,YAAa,GACb,WAAY,GACZ,cAAe,KACf,WAAY,GACZ,QAAS,EACX,EAEaC,GAAoC,CAC/C,KAAM,YACN,cAAe,UACf,cAAe,GACf,YAAa,GACb,SAAU,KACV,WAAY,EACd,EA4BO,SAASC,GACdC,EACAC,EACgB,WAEhB,MAAMC,GAAiCC,GAAAC,EAAAJ,EAAM,YAAN,YAAAI,EAAiB,YAAjB,MAAAD,EAA4B,OAC9DH,EAAM,UAAU,UAAoB,IAAKK,IAAY,CACpD,KAAMA,EAAE,MAAQ,GAChB,cAAeA,EAAE,eAAiB,UAClC,cAAeA,EAAE,eAAiB,GAClC,YAAaA,EAAE,aAAe,GAC9B,SAAUA,EAAE,SAAW,KAAK,UAAUA,EAAE,SAAU,KAAM,CAAC,EAAI,KAC7D,WAAYA,EAAE,YAAc,EAAA,EAC5B,GACFC,EAAAN,EAAM,YAAN,MAAAM,EAAiB,KACf,CAAC,CAAE,KAAMN,EAAM,UAAU,KAAM,cAAe,UAAoB,cAAeA,EAAM,eAAiB,GAAI,YAAa,GAAI,SAAU,KAAM,WAAY,EAAA,CAAI,EAC7J,CAAA,EAEN,MAAO,CACL,KAAMA,EAAM,KACZ,YAAaA,EAAM,aAAe,GAClC,MAAOA,EAAM,OAAS,GACtB,MAAOA,EAAM,OAAS,GACtB,QAASA,EAAM,SAAW,GAC1B,iBAAkBA,EAAM,kBAAoB,GAC5C,cAAeC,EAAc,IAAKI,IAAO,CACvC,GAAIA,EAAE,GACN,MAAOA,EAAE,MACT,OAAQA,EAAE,OAAS,KAAK,UAAUA,EAAE,OAAQ,KAAM,CAAC,EAAI,GACvD,cAAeA,EAAE,cACjB,cAAeA,EAAE,eAAiB,GAClC,YAAaA,EAAE,aAAe,GAC9B,WAAYA,EAAE,YAAc,GAC5B,cAAe,KAAK,UAAUA,EAAE,eAAiB,CAAA,EAAI,KAAM,CAAC,EAC5D,WAAYA,EAAE,YAAc,GAC5B,QAASA,EAAE,OAAA,EACX,EACF,UAAAH,CAAA,CAEJ,CAEO,SAASK,GAAmBC,EAA2C,OAC5E,MAAMC,EAA4B,CAAA,EAElC,OAAID,EAAK,UAAU,OAAS,IACzBC,EAAkB,UAAYD,EAAK,UAAU,IAAKH,IAAO,CACxD,KAAMA,EAAE,KACR,cAAeA,EAAE,eAAiB,UAClC,cAAeA,EAAE,gBAAkB,WAAa,OAAYA,EAAE,cAC9D,YAAaA,EAAE,gBAAkB,WAAaA,EAAE,YAAc,OAC9D,SAAUK,EAAaL,EAAE,QAAQ,GAAK,CAAA,EACtC,WAAYA,EAAE,YAAc,MAAA,EAC5B,EAEFI,EAAU,KAAOD,EAAK,UAAU,CAAC,EAAE,MAG9B,CACL,KAAMA,EAAK,KACX,YAAaA,EAAK,aAAe,OACjC,MAAOA,EAAK,OAAS,OACrB,MAAOA,EAAK,OAAS,OACrB,QAASA,EAAK,SAAW,OACzB,iBAAkBA,EAAK,kBAAoB,OAC3C,UAAAC,EACA,gBAAeL,EAAAI,EAAK,UAAU,CAAC,IAAhB,YAAAJ,EAAmB,gBAAiB,OACnD,YAAa,MAAA,CAEjB,CAEO,SAASO,GAA2BH,EAWxC,CACD,OAAOA,EAAK,cAAc,IAAKH,IAAO,CACpC,GAAIA,EAAE,GACN,MAAOA,EAAE,MACT,OAAQA,EAAE,OAASK,EAAaL,EAAE,MAAM,EAAI,OAC5C,cAAeA,EAAE,cACjB,cAAeA,EAAE,eAAiB,OAClC,YAAaA,EAAE,aAAe,OAC9B,WAAYA,EAAE,YAAc,OAC5B,cAAeK,EAAaL,EAAE,aAAa,GAAK,CAAA,EAChD,WAAYA,EAAE,YAAc,OAC5B,QAASA,EAAE,OAAA,EACX,CACJ,CAEA,SAASK,EAAa,EAA4C,CAChE,GAAK,EAAE,KAAA,EACP,GAAI,CAAE,OAAO,KAAK,MAAM,CAAC,CAAG,MAAQ,CAAE,MAAkB,CAC1D,CAEO,MAAME,EAAa,qCACbC,EAAW,QACXC,EAAU,OACVC,EAAW,QACXC,EAAU,oBChMhB,SAASC,GAAa,CAAE,KAAAT,EAAM,IAAAU,GAAc,CACjD,OACEC,EAAAA,OAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAA,EAAAA,OAAC,MAAA,CAAI,UAAU,yEACb,SAAA,CAAAA,SAAC,IAAA,CAAE,UAAU,yDAAyD,SAAA,qHAAA,EAAtE,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAEA,EACAA,SAAC,SAAA,CAAO,QAAS,IAAM,CAAE,OAAO,SAAS,KAAO,0BAA4B,EAAG,UAAU,yEAAyE,MAAM,iBAAiB,kBAACC,EAAA,CAAS,UAAU,UAAU,YAAa,GAAA,EAA3C,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,GAAA,EAAA,IAAgD,CAAA,EAAzO,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAA2O,CAAA,CAAA,EAJ7O,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAKA,WAEC,MAAA,CACC,SAAA,CAAAD,SAAC,QAAA,CAAM,UAAWN,EAAU,SAAA,QAAA,EAA5B,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAkC,WACjC,QAAA,CAAM,KAAK,OAAO,MAAOL,EAAK,KAAM,SAAWa,GAAMH,EAAI,OAAQG,EAAE,OAAO,KAAK,EAAG,YAAY,iBAAiB,UAAWN,CAAA,EAA3H,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAqI,EACrII,SAAC,IAAA,CAAE,UAAWL,EAAS,SAAA,iDAAA,EAAvB,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAsE,CAAA,CAAA,EAHxE,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAIA,WAEC,MAAA,CACC,SAAA,CAAAK,SAAC,QAAA,CAAM,UAAWN,EAAU,SAAA,aAAA,EAA5B,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAuC,WACtC,QAAA,CAAM,KAAK,OAAO,MAAOL,EAAK,YAAa,SAAWa,GAAMH,EAAI,cAAeG,EAAE,OAAO,KAAK,EAAG,YAAY,yDAAyD,UAAWN,CAAA,EAAjL,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAA2L,EAC3LI,SAAC,IAAA,CAAE,UAAWL,EAAS,SAAA,kDAAA,EAAvB,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAuE,CAAA,CAAA,EAHzE,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAIA,CAAA,CAAA,EAlBF,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAmBA,CAEJ,CCvBO,SAASQ,GAAe,CAAE,KAAAd,EAAM,IAAAU,GAAc,CACnD,OACEC,EAAAA,OAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAA,EAAAA,OAAC,MAAA,CAAI,UAAU,yEACb,SAAA,CAAAA,SAAC,IAAA,CAAE,UAAU,yDAAyD,SAAA,8GAAA,EAAtE,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAEA,EACAA,SAAC,SAAA,CAAO,QAAS,IAAM,CAAE,OAAO,SAAS,KAAO,4BAA8B,EAAG,UAAU,yEAAyE,MAAM,mBAAmB,kBAACC,EAAA,CAAS,UAAU,UAAU,YAAa,GAAA,EAA3C,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,GAAA,EAAA,IAAgD,CAAA,EAA7O,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAA+O,CAAA,CAAA,EAJjP,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAKA,EAEAD,EAAAA,OAAC,MAAA,CAAI,UAAU,yBACb,SAAA,CAAAA,SAAC,MAAA,CACC,SAAA,CAAAA,SAAC,QAAA,CAAM,UAAWN,EAAU,SAAA,OAAA,EAA5B,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAiC,EACjCM,EAAAA,OAAC,YAAS,MAAOX,EAAK,MAAO,SAAWa,GAAMH,EAAI,QAASG,EAAE,OAAO,KAAK,EAAG,YAAY,qEAAqE,KAAM,EAAG,UAAW,GAAGN,CAAQ,gBAA5L,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA4M,EAC5MI,SAAC,IAAA,CAAE,UAAWL,EAAS,SAAA,0DAAA,EAAvB,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA+E,CAAA,CAAA,EAHjF,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAIA,WACC,MAAA,CACC,SAAA,CAAAK,SAAC,QAAA,CAAM,UAAWN,EAAU,SAAA,OAAA,EAA5B,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAiC,EACjCM,EAAAA,OAAC,YAAS,MAAOX,EAAK,MAAO,SAAWa,GAAMH,EAAI,QAASG,EAAE,OAAO,KAAK,EAAG,YAAY,kEAAkE,KAAM,EAAG,UAAW,GAAGN,CAAQ,gBAAzL,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAyM,EACzMI,SAAC,IAAA,CAAE,UAAWL,EAAS,SAAA,uEAAA,EAAvB,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA4F,CAAA,CAAA,EAH9F,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAIA,CAAA,CAAA,EAVF,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAWA,CAAA,CAAA,EAnBF,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAoBA,CAEJ,CCtBO,SAASS,GAAc,CAAE,KAAAf,EAAM,IAAAU,GAAc,CAClD,KAAM,CAAE,KAAMM,CAAA,EAAeC,GAAA,EACvBC,GAAUF,GAAA,YAAAA,EAAY,UAAW,CAAA,EAEvC,OACEL,EAAAA,OAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAA,EAAAA,OAAC,MAAA,CAAI,UAAU,yEACb,SAAA,CAAAA,SAAC,IAAA,CAAE,UAAU,yDAAyD,SAAA,oHAAA,EAAtE,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAEA,EACAA,SAAC,SAAA,CAAO,QAAS,IAAM,CAAE,OAAO,SAAS,KAAO,2BAA6B,EAAG,UAAU,yEAAyE,MAAM,kBAAkB,kBAACC,EAAA,CAAS,UAAU,UAAU,YAAa,GAAA,EAA3C,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,GAAA,EAAA,IAAgD,CAAA,EAA3O,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAA6O,CAAA,CAAA,EAJ/O,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAKA,WAEC,MAAA,CACC,SAAA,CAAAD,SAAC,QAAA,CAAM,UAAWN,EAAU,SAAA,kBAAA,EAA5B,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAA4C,EAC5CM,EAAAA,OAAC,QAAA,CACC,KAAK,OACL,MAAOX,EAAK,iBACZ,SAAWa,GAAMH,EAAI,mBAAoBG,EAAE,OAAO,KAAK,EACvD,YAAY,mDACZ,UAAWN,EACX,KAAK,oBAAA,EANP,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAA,EAQAI,EAAAA,OAAC,WAAA,CAAS,GAAG,qBACV,WAAQ,IAAKQ,GAAMR,EAAAA,OAAC,SAAA,CAAsB,MAAOQ,EAAE,MAAA,EAAnBA,EAAE,OAAf,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAwC,CAAE,GADhE,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAEA,EACAR,SAAC,IAAA,CAAE,UAAWL,EAAS,SAAA,8EAAA,EAAvB,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAmG,CAAA,CAAA,EAbrG,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAcA,EAECY,EAAQ,OAAS,GAChBP,EAAAA,OAAC,MAAA,CACC,SAAA,CAAAA,SAAC,QAAA,CAAM,UAAWN,EAAU,SAAA,kBAAA,EAA5B,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA4C,WAC3C,MAAA,CAAI,UAAU,mBACZ,SAAAa,EAAQ,IAAKC,GACZR,EAAAA,OAAC,SAAA,CAEC,KAAK,SACL,QAAS,IAAMD,EAAI,mBAAoBS,EAAE,MAAM,EAC/C,UAAW,mFACTnB,EAAK,mBAAqBmB,EAAE,OAAS,yCAA2C,wDAClF,GAEA,SAAA,CAAAR,SAACS,EAAA,CAAM,UAAU,4CAA4C,YAAa,GAAA,EAA1E,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA+E,EAC/ET,SAAC,OAAA,CAAK,UAAU,mCAAoC,WAAE,MAAA,EAAtD,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA6D,EAC7DA,EAAAA,OAAC,OAAA,CAAK,UAAU,mCAAoC,SAAA,CAAAQ,EAAE,MAAM,UAAA,CAAA,EAA5D,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAoE,EACpER,EAAAA,OAAC,QAAK,UAAU,kCAAkC,kBAACU,GAAA,CAAU,KAAMF,EAAE,MAAA,EAAnB,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA2B,CAAA,EAA7E,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA+E,CAAA,CAAA,EAV1EA,EAAE,OADT,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAA,CAaD,CAAA,EAfH,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAgBA,CAAA,CAAA,EAlBF,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAmBA,CAAA,CAAA,EA5CJ,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IA8CA,CAEJ,CCxDA,MAAMG,GAAiB,CACrB,kBACA,kBACA,qBACA,mBACA,QACA,eACF,EAOO,SAASC,GAAkB,CAAE,KAAAvB,EAAM,IAAAU,GAAc,CACtD,MAAMc,EAAYC,EAAA,EACZ,CAAE,KAAMC,CAAA,EAAYC,EAAA,EACpBC,GAAsBF,GAAW,CAAA,GAAI,OAAQG,GAAWA,EAAE,SAAS,EAAE,IAAKA,GAAWA,EAAE,aAAa,EACpG,CAACC,EAAUC,CAAW,EAAIC,EAAAA,SAAS,CAAC,EAEpCC,EAAY,CAACC,EAAeC,EAAoCC,IAAe,CACnF,MAAMC,EAAO,CAAC,GAAGrC,EAAK,aAAa,EACnCqC,EAAKH,CAAK,EAAI,CAAE,GAAGG,EAAKH,CAAK,EAAG,CAACC,CAAK,EAAGC,CAAA,EACzC1B,EAAI,gBAAiB2B,CAAI,CAC3B,EAEMC,EAAS,IAAM,CACnB5B,EAAI,gBAAiB,CAAC,GAAGV,EAAK,cAAe,CAAE,GAAGX,EAAA,CAAoB,CAAC,EACvE0C,EAAY/B,EAAK,cAAc,MAAM,CACvC,EAEMuC,EAAaL,GAAkB,CACnCxB,EAAI,gBAAiBV,EAAK,cAAc,OAAO,CAACwC,EAAGC,IAAMA,IAAMP,CAAK,CAAC,EACjEJ,GAAY9B,EAAK,cAAc,OAAS,GAAG+B,EAAY,KAAK,IAAI,EAAG/B,EAAK,cAAc,OAAS,CAAC,CAAC,CACvG,EAEM0C,EAAO1C,EAAK,cACZ2C,EAAMD,EAAKZ,CAAQ,EACnBc,EAAc/C,GAA6B,CAAC,CAACA,EAAE,QAAUA,EAAE,gBAAkB,UAAY,CAAC,CAACA,EAAE,cAAgBA,EAAE,gBAAkB,WAAa,CAAC,CAACA,EAAE,YAAc,CAAC,CAACA,EAAE,YAE1K,OAAI6C,EAAK,SAAW,EAEhB/B,EAAAA,OAAC,MAAA,CAAI,UAAU,WACb,SAAA,CAAAA,EAAAA,OAAC,MAAA,CAAI,UAAU,8EACb,SAAA,CAAAA,SAAC,IAAA,CAAE,UAAU,yDAAyD,SAAA,8GAAA,EAAtE,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAEA,EACAA,SAAC,SAAA,CAAO,QAAS,IAAM,CAAE,OAAO,SAAS,KAAO,+BAAiC,EAAG,UAAU,yEAAyE,MAAM,sBAAsB,kBAACC,EAAA,CAAS,UAAU,UAAU,YAAa,GAAA,EAA3C,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,GAAA,EAAA,IAAgD,CAAA,EAAnP,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAqP,CAAA,CAAA,EAJvP,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAKA,EACAD,EAAAA,OAAC,MAAA,CAAI,UAAU,8DACb,SAAA,CAAAA,SAACkC,EAAA,CAAM,UAAU,uCAAuC,YAAa,CAAA,EAArE,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAwE,EACxElC,SAAC,IAAA,CAAE,UAAU,kCAAkC,SAAA,4BAAA,EAA/C,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAyE,EACzEA,SAAC,IAAA,CAAE,UAAU,iDAAiD,SAAA,oFAAA,EAA9D,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAEA,EACAA,EAAAA,OAAC,SAAA,CAAO,QAAS2B,EAAQ,UAAU,wFACjC,SAAA,CAAA3B,EAAAA,OAACmC,EAAA,CAAK,UAAU,aAAA,EAAhB,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA8B,EAAE,yBAAA,CAAA,EADlC,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAEA,CAAA,CAAA,EARF,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IASA,CAAA,CAAA,EAhBF,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAiBA,WAKD,MAAA,CACC,SAAA,CAAAnC,EAAAA,OAAC,MAAA,CAAI,UAAU,8EACb,SAAA,CAAAA,SAAC,IAAA,CAAE,UAAU,yDAAyD,SAAA,8GAAA,EAAtE,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAEA,EACAA,SAAC,SAAA,CAAO,QAAS,IAAM,CAAE,OAAO,SAAS,KAAO,+BAAiC,EAAG,UAAU,yEAAyE,MAAM,sBAAsB,kBAACC,EAAA,CAAS,UAAU,UAAU,YAAa,GAAA,EAA3C,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,GAAA,EAAA,IAAgD,CAAA,EAAnP,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAqP,CAAA,CAAA,EAJvP,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAKA,EAEAD,EAAAA,OAAC,MAAA,CAAI,UAAU,aAEb,SAAA,CAAAA,EAAAA,OAAC,MAAA,CAAI,UAAU,4BACZ,SAAA,CAAA+B,EAAK,IAAI,CAAC7C,EAAG4C,IACZ9B,EAAAA,OAAC,MAAA,CAAY,UAAW,4DACtBmB,IAAaW,EAAI,2BAA6B,mEAChD,GACE,SAAA,CAAA9B,SAAC,UAAO,QAAS,IAAMoB,EAAYU,CAAC,EAAG,UAAU,qCAC/C,SAAA,CAAA9B,EAAAA,OAAC,MAAA,CAAI,UAAU,4BACb,SAAA,CAAAA,EAAAA,OAAC,OAAA,CAAK,UAAW,qCAAqCiC,EAAW/C,CAAC,EAAI,iBAAmB,aAAa,EAAA,EAAtG,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA0G,WACzG,OAAA,CAAK,UAAU,iCAAkC,SAAAA,EAAE,OAAS,oBAA7D,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAgF,CAAA,CAAA,EAFlF,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAGA,EACAc,EAAAA,OAAC,OAAA,CAAK,UAAU,uCAAuC,SAAA,CAAA,KAAGd,EAAE,eAAiBA,EAAE,aAAA,CAAA,EAA/E,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA6F,CAAA,CAAA,EAL/F,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAMA,EACAc,EAAAA,OAAC,SAAA,CAAO,QAAUE,GAAM,CAAEA,EAAE,gBAAA,EAAuB,QAAQ,wBAAwBhB,EAAE,OAAS,KAAK;AAAA;AAAA,iCAAwC,KAAa4C,CAAC,CAAG,EAAG,UAAU,oGAAoG,MAAM,SACjR,SAAA9B,SAACoC,EAAA,CAAO,UAAU,SAAA,EAAlB,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA4B,CAAA,EAD9B,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAEA,CAAA,CAAA,EAZQN,EAAV,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAaA,CACD,EACD9B,EAAAA,OAAC,SAAA,CAAO,QAAS2B,EAAQ,UAAU,+GACjC,SAAA,CAAA3B,EAAAA,OAACmC,EAAA,CAAK,UAAU,SAAA,EAAhB,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA0B,EAAE,MAAA,CAAA,EAD9B,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAEA,CAAA,CAAA,EAnBF,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAoBA,EAGCH,GACChC,EAAAA,OAAC,MAAA,CAAI,UAAU,4BAGb,SAAA,CAAAA,SAAC,MAAA,CACC,SAAA,CAAAA,SAAC,QAAA,CAAM,UAAWP,EAAY,SAAA,uBAAA,EAA9B,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAmD,EACnDO,EAAAA,OAAC,SAAM,KAAK,OAAO,MAAOgC,EAAI,MAAO,SAAW9B,GAAMoB,EAAUH,EAAU,QAASjB,EAAE,OAAO,KAAK,EAAG,YAAY,kBAAkB,UAAW,GAAGN,CAAQ,cAAxJ,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAsK,WACrK,MAAA,CAAI,UAAU,kCACZ,SAAAe,GAAe,IAAK0B,GACnBrC,EAAAA,OAAC,SAAA,CAAgB,KAAK,SAAS,QAAS,IAAMsB,EAAUH,EAAU,QAASkB,CAAE,EAC3E,UAAW,6DAA6DL,EAAI,QAAUK,EAAK,0BAA4B,kCAAkC,GACzJ,SAAAA,CAAA,EAFWA,EAAb,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAA,CAGD,CAAA,EALH,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAMA,CAAA,CAAA,EATF,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAUA,EAGArC,EAAAA,OAAC,MAAA,CAAI,UAAU,yBACb,SAAA,CAAAA,EAAAA,OAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAA,SAAC,QAAA,CAAM,UAAWP,EAAY,SAAA,mBAAA,EAA9B,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA+C,EAC/CO,SAAC,OAAI,UAAU,aACX,UAAC,UAAW,WAAY,GAAIa,EAAY,CAAC,WAAW,EAAI,CAAA,CAAG,EAAY,IAAKyB,GAC5EtC,SAAC,QAAA,CAAe,UAAU,yEACxB,SAAA,CAAAA,SAAC,SAAM,KAAK,QAAQ,KAAK,WAAW,QAASgC,EAAI,gBAAkBM,EAAI,SAAU,IAAMhB,EAAUH,EAAU,gBAAiBmB,CAAE,EAAG,UAAU,uBAAA,EAA3I,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAmK,EAClKA,IAAO,UAAY,WAAaA,IAAO,WAAa,WAAa,WAAA,CAAA,EAFxDA,EAAZ,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAGA,CACD,GANH,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAOA,EACCN,EAAI,gBAAkB,WACrBhC,EAAAA,OAAC,MAAA,CACC,SAAA,CAAAA,SAAC,QAAA,CAAM,UAAWN,EAAU,SAAA,YAAA,EAA5B,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAsC,WACrC,SAAA,CAAO,MAAOsC,EAAI,cAAe,SAAW9B,GAAMoB,EAAUH,EAAU,gBAAiBjB,EAAE,OAAO,KAAK,EAAG,UAAWN,EAClH,SAAA,CAAAI,SAAC,SAAA,CAAO,MAAM,GAAG,SAAA,WAAA,EAAjB,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA0B,EACzBiB,EAAmB,IAAKsB,YAAgB,SAAA,CAAgB,MAAOA,EAAK,SAAAA,GAAhBA,EAAb,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAgC,CAAS,CAAA,CAAA,EAFnF,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAGA,CAAA,CAAA,EALF,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAMA,EAEDP,EAAI,gBAAkB,YACrBhC,EAAAA,OAAC,MAAA,CACC,SAAA,CAAAA,SAAC,QAAA,CAAM,UAAWN,EAAU,SAAA,eAAA,EAA5B,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAyC,EACzCM,EAAAA,OAAC,SAAM,KAAK,OAAO,MAAOgC,EAAI,YAAa,SAAW9B,GAAMoB,EAAUH,EAAU,cAAejB,EAAE,OAAO,KAAK,EAAG,YAAY,OAAO,UAAW,GAAGN,CAAQ,sBAAzJ,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA+K,CAAA,CAAA,EAFjL,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAGA,EAEDoC,EAAI,gBAAkB,aACrBhC,EAAAA,OAAC,MAAA,CACC,SAAA,CAAAA,SAAC,QAAA,CAAM,UAAWN,EAAU,SAAA,UAAA,EAA5B,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAoC,EACpCM,EAAAA,OAAC,YAAS,MAAOgC,EAAI,WAAY,SAAW9B,GAAMoB,EAAUH,EAAU,aAAcjB,EAAE,OAAO,KAAK,EAAG,YAAY,uBAAuB,KAAM,EAAG,UAAW,GAAGN,CAAQ,gBAAvK,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAuL,CAAA,CAAA,EAFzL,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAGA,CAAA,CAAA,EA7BJ,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IA+BA,WACC,MAAA,CACC,SAAA,CAAAI,SAAC,QAAA,CAAM,UAAWP,EAAY,SAAA,aAAA,EAA9B,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAyC,EACzCO,EAAAA,OAACwC,EAAA,CAAc,SAAUR,EAAI,WAAY,SAAWS,GAAMnB,EAAUH,EAAU,aAAcsB,CAAC,CAAA,EAA7F,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAgG,EAChGzC,SAAC,IAAA,CAAE,UAAWL,EAAS,SAAA,2CAAA,EAAvB,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAgE,CAAA,CAAA,EAHlE,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAIA,WACC,MAAA,CACC,SAAA,CAAAK,SAAC,QAAA,CAAM,UAAWP,EAAY,SAAA,aAAA,EAA9B,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAyC,EACzCO,EAAAA,OAAC,SAAM,KAAK,OAAO,MAAOgC,EAAI,OAAQ,SAAW9B,GAAMoB,EAAUH,EAAU,SAAUjB,EAAE,OAAO,KAAK,EAAG,YAAY,kCAAkC,UAAW,GAAGN,CAAQ,sBAA1K,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAgM,EAChMI,EAAAA,OAAC,IAAA,CAAE,UAAWL,EAAS,SAAA,CAAA,wCAAsC,iBAAA,CAAA,EAA7D,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA+E,CAAA,CAAA,EAHjF,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAIA,CAAA,CAAA,EA1CF,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IA2CA,WAGC,MAAA,CACC,SAAA,CAAAK,SAAC,QAAA,CAAM,UAAWP,EAAY,SAAA,gBAAA,EAA9B,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA4C,EAC5CO,EAAAA,OAAC,YAAS,MAAOgC,EAAI,cAAe,SAAW9B,GAAMoB,EAAUH,EAAU,gBAAiBjB,EAAE,OAAO,KAAK,EAAG,KAAM,GAAI,UAAWL,EAAS,YAAa;AAAA;AAAA;AAAA;AAAA;AAAA,IAAtJ,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA2P,EAC3PG,EAAAA,OAAC,IAAA,CAAE,UAAWL,EAAS,SAAA,CAAA,wCAAsC,yBAAyB,uBAAA,CAAA,EAAtF,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA2G,CAAA,CAAA,EAH7G,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAIA,CAAA,CAAA,EAlEF,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAmEA,CAAA,CAAA,EA7FJ,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IA+FA,CAAA,CAAA,EAvGF,OAAA,GAAA,CAAA,SAAA,+DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAwGA,CAEJ,CC1KA,MAAM+C,GAAe,CACnB,cACA,eACA,YACA,cACA,YACA,aACF,EAEA,SAASC,EAAaC,EAAsB,CAW1C,MAVkC,CAChC,YAAa,eACb,cAAe,cACf,eAAgB,eAChB,YAAa,SACb,cAAe,gBACf,YAAa,iBACb,cAAe,oBACf,YAAa,eAAA,EAENA,CAAI,GAAKA,CACpB,CAOO,SAASC,GAAa,CAAE,KAAAxD,EAAM,IAAAU,GAAc,CACjD,KAAM,CAAE,KAAMgB,CAAA,EAAYC,EAAA,EACpBC,GAAsBF,GAAW,CAAA,GAAI,OAAQG,GAAWA,EAAE,SAAS,EAAE,IAAKA,GAAWA,EAAE,aAAa,EACpG,CAAE,KAAM4B,CAAA,EAAiBC,GAAiB,CAAE,OAAQ,SAAU,EAC9DC,IAAaF,GAAA,YAAAA,EAAc,YAAa,CAAA,GAAI,IAAKG,IAAY,CAAE,GAAIA,EAAE,GAAI,KAAMA,EAAE,aAAeA,EAAE,IAAK,EACvG,CAAC9B,EAAUC,CAAW,EAAIC,EAAAA,SAAS,CAAC,EAEpC6B,EAAc,CAAC3B,EAAeC,EAAgCC,IAAe,CACjF,MAAMC,EAAO,CAAC,GAAGrC,EAAK,SAAS,EAC/BqC,EAAKH,CAAK,EAAI,CAAE,GAAGG,EAAKH,CAAK,EAAG,CAACC,CAAK,EAAGC,CAAA,EACzC1B,EAAI,YAAa2B,CAAI,CACvB,EAEMyB,EAAW,IAAM,CACrBpD,EAAI,YAAa,CAAC,GAAGV,EAAK,UAAW,CAAE,GAAGV,EAAA,CAAgB,CAAC,EAC3DyC,EAAY/B,EAAK,UAAU,MAAM,CACnC,EAEM+D,EAAe7B,GAAkB,CACrCxB,EAAI,YAAaV,EAAK,UAAU,OAAO,CAACwC,EAAQC,IAAcA,IAAMP,CAAK,CAAC,EACtEJ,GAAY9B,EAAK,UAAU,OAAS,GAAG+B,EAAY,KAAK,IAAI,EAAG/B,EAAK,UAAU,OAAS,CAAC,CAAC,CAC/F,EAEMgE,EAAShE,EAAK,UACdiE,EAAQD,EAAOlC,CAAQ,EAE7B,OAAIkC,EAAO,SAAW,WAEjB,MAAA,CACC,SAAA,CAAArD,EAAAA,OAAC,MAAA,CAAI,UAAU,8EACb,SAAA,CAAAA,SAAC,IAAA,CAAE,UAAU,yDAAyD,SAAA,0DAAA,EAAtE,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAEA,EACAA,SAAC,SAAA,CAAO,QAAS,IAAM,CAAE,OAAO,SAAS,KAAO,0BAA4B,EAAG,UAAU,yEAAyE,MAAM,iBAAiB,kBAACC,EAAA,CAAS,UAAU,UAAU,YAAa,GAAA,EAA3C,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,GAAA,EAAA,IAAgD,CAAA,EAAzO,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA2O,CAAA,CAAA,EAJ7O,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAKA,EACAD,EAAAA,OAAC,MAAA,CAAI,UAAU,8DACb,SAAA,CAAAA,SAACuD,EAAA,CAAM,UAAU,uCAAuC,YAAa,CAAA,EAArE,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAwE,EACxEvD,SAAC,IAAA,CAAE,UAAU,kCAAkC,SAAA,cAAA,EAA/C,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA2D,EAC3DA,SAAC,IAAA,CAAE,UAAU,iDAAiD,SAAA,6DAAA,EAA9D,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAEA,EACAA,EAAAA,OAAC,SAAA,CAAO,QAASmD,EAAU,UAAU,wFACnC,SAAA,CAAAnD,EAAAA,OAACmC,EAAA,CAAK,UAAU,aAAA,EAAhB,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA8B,EAAE,eAAA,CAAA,EADlC,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAEA,CAAA,CAAA,EARF,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IASA,CAAA,CAAA,EAhBF,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAiBA,WAKD,MAAA,CACC,SAAA,CAAAnC,EAAAA,OAAC,MAAA,CAAI,UAAU,8EACb,SAAA,CAAAA,SAAC,IAAA,CAAE,UAAU,yDAAyD,SAAA,+GAAA,EAAtE,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAEA,EACAA,SAAC,SAAA,CAAO,QAAS,IAAM,CAAE,OAAO,SAAS,KAAO,0BAA4B,EAAG,UAAU,yEAAyE,MAAM,iBAAiB,kBAACC,EAAA,CAAS,UAAU,UAAU,YAAa,GAAA,EAA3C,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,GAAA,EAAA,IAAgD,CAAA,EAAzO,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAA2O,CAAA,CAAA,EAJ7O,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAKA,EAEAD,EAAAA,OAAC,MAAA,CAAI,UAAU,aAEb,SAAA,CAAAA,EAAAA,OAAC,MAAA,CAAI,UAAU,4BACZ,SAAA,CAAAqD,EAAO,IAAI,CAACnE,EAAG4C,IACd9B,EAAAA,OAAC,MAAA,CAAY,UAAW,8DACtBmB,IAAaW,EAAI,2BAA6B,mEAChD,GACE,SAAA,CAAA9B,SAAC,UAAO,QAAS,IAAMoB,EAAYU,CAAC,EAAG,UAAU,qCAC/C,SAAA,CAAA9B,EAAAA,OAAC,OAAA,CAAK,UAAU,8BAA+B,SAAAd,EAAE,MAAQ,gBAAzD,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAwE,EACxEc,EAAAA,OAAC,OAAA,CAAK,UAAU,kCAAoC,SAAA,EAAAd,EAAE,gBAAkB,WAAaA,EAAE,YAAcA,EAAE,gBAAkB,YAAY,MAAIyD,EAAazD,EAAE,IAAI,CAAA,CAAA,EAA5J,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA8J,CAAA,CAAA,EAFhK,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAGA,EACAc,EAAAA,OAAC,SAAA,CAAO,QAAUE,GAAM,CAAEA,EAAE,gBAAA,EAAuB,QAAQ,oBAAoBhB,EAAE,MAAQ,KAAK;AAAA;AAAA,iCAAwC,KAAe4C,CAAC,CAAG,EAAG,UAAU,sGAAsG,MAAM,SAChR,SAAA9B,SAACoC,EAAA,CAAO,UAAU,SAAA,EAAlB,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA4B,CAAA,EAD9B,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAEA,CAAA,CAAA,EATQN,EAAV,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAUA,CACD,EACD9B,EAAAA,OAAC,SAAA,CAAO,QAASmD,EAAU,UAAU,+GACnC,SAAA,CAAAnD,EAAAA,OAACmC,EAAA,CAAK,UAAU,SAAA,EAAhB,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA0B,EAAE,MAAA,CAAA,EAD9B,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAEA,CAAA,CAAA,EAhBF,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAiBA,EAGCmB,GACCtD,EAAAA,OAAC,MAAA,CAAI,UAAU,4BAGb,SAAA,CAAAA,SAAC,MAAA,CACC,SAAA,CAAAA,SAAC,QAAA,CAAM,UAAWP,EAAY,SAAA,WAAA,EAA9B,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAuC,EACvCO,EAAAA,OAAC,SAAM,KAAK,OAAO,MAAOsD,EAAM,KAAM,SAAWpD,GAAMgD,EAAY/B,EAAU,OAAQjB,EAAE,OAAO,KAAK,EAAG,YAAY,YAAY,UAAW,GAAGN,CAAQ,cAApJ,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAkK,EACjK0D,EAAM,MAAQtD,EAAAA,OAAC,IAAA,CAAE,UAAU,kCAAmC,SAAA2C,EAAaW,EAAM,IAAI,CAAA,EAAvE,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAyE,WACvF,MAAA,CAAI,UAAU,kCACZ,SAAAZ,GAAa,IAAKc,GACjBxD,EAAAA,OAAC,SAAA,CAAe,KAAK,SAAS,QAAS,IAAMkD,EAAY/B,EAAU,OAAQqC,CAAC,EAC1E,UAAW,6DAA6DF,EAAM,OAASE,EAAI,0BAA4B,kCAAkC,GACzJ,WAAaA,CAAC,CAAA,EAFHA,EAAb,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAA,CAGD,CAAA,EALH,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAMA,CAAA,CAAA,EAVF,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAWA,EAGAxD,EAAAA,OAAC,MAAA,CAAI,UAAU,yBACb,SAAA,CAAAA,EAAAA,OAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAA,SAAC,QAAA,CAAM,UAAWP,EAAY,SAAA,mBAAA,EAA9B,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA+C,EAC/CO,EAAAA,OAAC,MAAA,CAAI,UAAU,aACX,UAAC,UAAW,UAAU,EAAY,IAAKsC,GACvCtC,SAAC,QAAA,CAAe,UAAU,yEACxB,SAAA,CAAAA,EAAAA,OAAC,SAAM,KAAK,QAAQ,KAAM,kBAAkBmB,CAAQ,GAAI,QAASmC,EAAM,gBAAkBhB,EAAI,SAAU,IAAMY,EAAY/B,EAAU,gBAAiBmB,CAAE,EAAG,UAAU,yBAAnK,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA2L,EAC1LA,IAAO,UAAY,WAAa,UAAA,CAAA,EAFvBA,EAAZ,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAGA,CACD,GANH,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAOA,EACCgB,EAAM,gBAAkB,WACvBtD,EAAAA,OAAC,MAAA,CACC,SAAA,CAAAA,SAAC,QAAA,CAAM,UAAWN,EAAU,SAAA,YAAA,EAA5B,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAsC,WACrC,SAAA,CAAO,MAAO4D,EAAM,YAAa,SAAWpD,GAAMgD,EAAY/B,EAAU,cAAejB,EAAE,OAAO,KAAK,EAAG,UAAWN,EAClH,SAAA,CAAAI,SAAC,SAAA,CAAO,MAAM,GAAG,SAAA,WAAA,EAAjB,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA0B,EACzBgD,EAAU,IAAKQ,GAAoCxD,EAAAA,OAAC,SAAA,CAAkB,MAAOwD,EAAE,GAAK,SAAAA,EAAE,IAAA,EAAtBA,EAAE,GAAf,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAwC,CAAS,CAAA,CAAA,EAFvG,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAGA,EACAxD,SAAC,IAAA,CAAE,UAAWL,EAAS,SAAA,0CAAA,EAAvB,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA+D,CAAA,CAAA,EANjE,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAOA,WAEC,MAAA,CACC,SAAA,CAAAK,SAAC,QAAA,CAAM,UAAWN,EAAU,SAAA,YAAA,EAA5B,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAsC,WACrC,SAAA,CAAO,MAAO4D,EAAM,cAAe,SAAWpD,GAAMgD,EAAY/B,EAAU,gBAAiBjB,EAAE,OAAO,KAAK,EAAG,UAAWN,EACtH,SAAA,CAAAI,SAAC,SAAA,CAAO,MAAM,GAAG,SAAA,WAAA,EAAjB,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA0B,EACzBiB,EAAmB,IAAKsB,YAAgB,SAAA,CAAgB,MAAOA,EAAK,SAAAA,GAAhBA,EAAb,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAgC,CAAS,CAAA,CAAA,EAFnF,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAGA,EACAvC,SAAC,IAAA,CAAE,UAAWL,EAAS,SAAA,4BAAA,EAAvB,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAiD,CAAA,CAAA,EANnD,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAOA,CAAA,CAAA,EA3BJ,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IA6BA,WACC,MAAA,CACC,SAAA,CAAAK,SAAC,QAAA,CAAM,UAAWP,EAAY,SAAA,aAAA,EAA9B,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAyC,EACzCO,EAAAA,OAACwC,EAAA,CAAc,SAAUc,EAAM,WAAY,SAAWb,GAAMS,EAAY/B,EAAU,aAAcsB,CAAC,CAAA,EAAjG,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAoG,EACpGzC,SAAC,IAAA,CAAE,UAAWL,EAAS,SAAA,8BAAA,EAAvB,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAmD,CAAA,CAAA,EAHrD,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAIA,CAAA,CAAA,EAnCF,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAoCA,WAGC,MAAA,CACC,SAAA,CAAAK,SAAC,QAAA,CAAM,UAAWP,EAAY,SAAA,gBAAA,EAA9B,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA4C,EAC5CO,EAAAA,OAAC,YAAS,MAAOsD,EAAM,SAAU,SAAWpD,GAAMgD,EAAY/B,EAAU,WAAYjB,EAAE,OAAO,KAAK,EAAG,KAAM,GAAI,UAAWL,EAAS,YAAa;AAAA;AAAA,IAAhJ,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAwL,EACxLG,SAAC,IAAA,CAAE,UAAWL,EAAS,SAAA,2DAAA,EAAvB,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAgF,CAAA,CAAA,EAHlF,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAIA,CAAA,CAAA,EA5DF,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IA6DA,CAAA,CAAA,EApFJ,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAsFA,CAAA,CAAA,EA9FF,OAAA,GAAA,CAAA,SAAA,0DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IA+FA,CAEJ,CC5KA,SAAS8D,EAAQ,CAAE,KAAMC,EAAM,MAAAC,EAAO,MAAAC,EAAO,SAAAC,GAAkG,CAC7I,OACE7D,EAAAA,OAAC,MAAA,CAAI,UAAU,QACb,SAAA,CAAAA,EAAAA,OAAC,MAAA,CAAI,UAAU,wEACb,SAAA,CAAAA,EAAAA,OAAC0D,GAAK,UAAW,eAAeC,CAAK,GAAI,YAAa,KAAtD,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAA2D,EAC3D3D,SAAC,KAAA,CAAG,UAAU,iEAAkE,SAAA4D,CAAA,EAAhF,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAsF,CAAA,CAAA,EAFxF,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAGA,EACA5D,EAAAA,OAAC,MAAA,CAAI,UAAU,SAAU,SAAA6D,CAAA,EAAzB,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAkC,CAAA,CAAA,EALpC,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAMA,CAEJ,CAEA,SAASC,EAAM,CAAE,MAAAC,EAAO,SAAAF,GAA0D,CAChF,OACE7D,EAAAA,OAAC,MAAA,CAAI,UAAU,oBACb,SAAA,CAAAA,SAAC,OAAA,CAAK,UAAU,iDAAkD,SAAA+D,CAAA,EAAlE,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAwE,EACxE/D,EAAAA,OAAC,OAAA,CAAK,UAAU,4BAA6B,SAAA6D,CAAA,EAA7C,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAsD,CAAA,CAAA,EAFxD,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAGA,CAEJ,CAEO,SAASG,GAAW,CAAE,KAAA3E,EAAM,UAAAwB,EAAY,IAAgB,CAC7D,gBACG,MAAA,CACC,SAAA,CAAAb,SAACyD,GAAQ,KAAMQ,EAAK,MAAM,cAAc,MAAM,WAC5C,SAAA,CAAAjE,EAAAA,OAAC8D,EAAA,CAAM,MAAM,OAAQ,SAAAzE,EAAK,MAAQ,KAAlC,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAsC,EACrCA,EAAK,aAAeW,SAAC8D,GAAM,MAAM,cAAe,WAAK,aAAjC,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA6C,CAAA,CAAA,EAFpE,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAGA,EAECjD,IAAcxB,EAAK,OAASA,EAAK,QAChCW,EAAAA,OAACyD,EAAA,CAAQ,KAAMS,EAAS,MAAM,gBAAgB,MAAM,aACjD,SAAA,CAAA7E,EAAK,OAASW,SAAC8D,EAAA,CAAM,MAAM,QAAS,WAAK,OAA3B,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAiC,EAC/CzE,EAAK,OAASW,SAAC8D,GAAM,MAAM,QAAS,WAAK,OAA3B,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAiC,CAAA,CAAA,EAFlD,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAGA,EAGF9D,SAACyD,EAAA,CAAQ,KAAMhD,EAAO,MAAM,mBAAmB,MAAM,YACnD,SAAAT,EAAAA,OAAC8D,EAAA,CAAM,MAAM,SAAU,SAAAzE,EAAK,kBAAoB,MAAA,EAAhD,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAuD,CAAA,EADzD,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAEA,EAGAW,EAAAA,OAAC,MAAA,CAAI,UAAU,4BACb,SAAA,CAAAA,EAAAA,OAACyD,GAAQ,KAAMvB,EAAO,MAAM,gBAAgB,MAAO,kBAAkB7C,EAAK,cAAc,MAAM,IAC3F,SAAAA,EAAK,cAAc,SAAW,WAC5B,OAAA,CAAK,UAAU,mCAAmC,SAAA,iBAAA,EAAnD,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAkE,EAElEW,EAAAA,OAAC,MAAA,CAAI,UAAU,oCACZ,SAAAX,EAAK,cAAc,IAAI,CAAC2C,EAAKF,IAC5B9B,EAAAA,OAAC,MAAA,CAAY,UAAU,2BACrB,SAAA,CAAAA,EAAAA,OAAC,MAAA,CAAI,UAAU,iBAAiB,SAAAA,EAAAA,OAACmE,IAAe,MAAOnC,EAAI,OAAS,OAAA,EAApC,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA6C,CAAA,EAA7E,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA+E,EAC/EhC,EAAAA,OAAC,MAAA,CAAI,UAAU,qCAAqC,SAAA,CAAAA,SAAC,OAAA,CAAK,UAAU,mCAAmC,SAAA,GAAA,EAAnD,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAoD,EAAQgC,EAAI,cAAgBhC,EAAAA,OAACoE,EAAA,CAAa,KAAMpC,EAAI,aAAA,EAAxB,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,GAAA,EAAA,IAAuC,EAAKhC,SAAC,OAAA,CAAK,UAAU,mCAAoC,WAAI,eAAxD,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,GAAA,EAAA,IAAsE,CAAA,CAAA,EAAtP,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA8P,CAAA,CAAA,EAFtP8B,EAAV,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAGA,CACD,GANH,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAOA,CAAA,EAXJ,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAaA,EAEA9B,EAAAA,OAACyD,GAAQ,KAAMF,EAAO,MAAM,iBAAiB,MAAO,cAAclE,EAAK,UAAU,MAAM,IACpF,SAAAA,EAAK,UAAU,SAAW,WACxB,OAAA,CAAK,UAAU,mCAAmC,SAAA,iBAAA,EAAnD,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAkE,EAElEW,EAAAA,OAAC,MAAA,CAAI,UAAU,oCACZ,SAAAX,EAAK,UAAU,IAAI,CAACH,EAAG4C,IACtB9B,EAAAA,OAAC,MAAA,CAAY,UAAU,2BACrB,SAAA,CAAAA,EAAAA,OAAC,OAAI,UAAU,iBAAiB,kBAACqE,GAAA,CAAU,KAAMnF,EAAE,IAAA,EAAnB,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAyB,CAAA,EAAzD,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAA2D,EAC3Dc,EAAAA,OAAC,MAAA,CAAI,UAAU,qCAAqC,SAAA,CAAAA,SAAC,OAAA,CAAK,UAAU,mCAAmC,SAAA,GAAA,EAAnD,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAoD,EAAQd,EAAE,cAAgBc,EAAAA,OAACoE,EAAA,CAAa,KAAMlF,EAAE,aAAA,EAAtB,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,GAAA,EAAA,IAAqC,EAAKc,SAAC,OAAA,CAAK,UAAU,mCAAmC,SAAA,eAAnD,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,GAAA,EAAA,IAA8D,CAAA,CAAA,EAA1O,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAAkP,CAAA,CAAA,EAF1O8B,EAAV,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAGA,CACD,GANH,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,EAAA,EAAA,IAOA,CAAA,EAXJ,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAaA,CAAA,CAAA,EA7BF,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IA8BA,EAEA9B,EAAAA,OAAC,OAAI,UAAU,kDACb,kBAAC,IAAA,CAAE,UAAU,iDAAiD,SAAA,kGAAA,EAA9D,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAEA,CAAA,EAHF,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAIA,CAAA,CAAA,EAtDF,OAAA,GAAA,CAAA,SAAA,wDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAuDA,CAEJ,CCpEA,MAAMsE,GAAe,CACnB,CAAE,GAAI,EAAG,MAAO,WAAY,KAAML,CAAA,EAClC,CAAE,GAAI,EAAG,MAAO,aAAc,KAAMC,EAAS,GAAI,EAAA,EACjD,CAAE,GAAI,EAAG,MAAO,YAAa,KAAMzD,CAAA,EACnC,CAAE,GAAI,EAAG,MAAO,gBAAiB,KAAMyB,CAAA,EACvC,CAAE,GAAI,EAAG,MAAO,YAAa,KAAMqB,CAAA,EACnC,CAAE,GAAI,EAAG,MAAO,SAAU,KAAMgB,EAAA,CAClC,EAEO,SAASC,IAAkB,CAChC,MAAM3D,EAAYC,EAAA,EACZ,CAAE,GAAA2D,CAAA,EAAOC,GAAA,EACTC,EAAQ,CAACF,EACTG,EAAWC,GAAA,EACX,CAAE,KAAMC,EAAU,UAAAC,CAAA,EAAcC,GAASL,EAAQ,KAAOF,CAAG,EAC3D,CAAE,KAAMQ,CAAA,EAAaC,GAAsBP,EAAQ,KAAOF,CAAG,EAE7DU,EAAcC,GAAA,EACdC,EAAcC,GAAA,EACdC,EAAYC,GAAA,EACZlE,EAAYmE,GAAA,EACZC,EAAYC,GAAA,EAEZ,CAACtG,EAAMuG,CAAO,EAAIvE,EAAAA,SAAyB5C,CAAU,EACrD,CAACoH,EAAaC,CAAc,EAAIzE,EAAAA,SAAS,EAAK,EAC9C,CAAC0E,EAAWC,CAAY,EAAI3E,EAAAA,SAAS,EAAE,EAEvC,CAAC4E,EAAcC,CAAe,EAAIC,GAAA,EAClCC,EAAU,SAASH,EAAa,IAAI,MAAM,GAAK,IAAK,EAAE,EACtDI,GAAaC,cAAapH,GAAc,CAC5CgH,EAAiBK,GAAS,CACxB,MAAM7E,EAAO,IAAI,gBAAgB6E,CAAI,EACrC,OAAA7E,EAAK,IAAI,OAAQ,OAAOxC,CAAC,CAAC,EACnBwC,CACT,EAAG,CAAE,QAAS,GAAM,CACtB,EAAG,CAACwE,CAAe,CAAC,EAEpBM,EAAAA,UAAU,IAAM,CACd,GAAI,CAAAX,EACJ,IAAIlB,EAAO,CAAEiB,EAAQnH,CAAU,EAAGqH,EAAe,EAAI,EAAG,MAAQ,CAC5DhB,GAAYG,IACdW,EAAQhH,GAAYkG,EAAUG,EAAS,eAAiB,CAAA,CAAE,CAAC,EAC3Da,EAAe,EAAI,GAEvB,EAAG,CAAChB,EAAUG,EAAUN,EAAOkB,CAAW,CAAC,EAE3C,MAAM9F,EAAM,CAACyB,EAA6BC,IACxCmE,EAASa,IAAO,CAAE,GAAGA,EAAG,CAACjF,CAAK,EAAGC,GAAQ,EAErCiF,GAAa,SAAY,CAC7BV,EAAa,EAAE,EACf,GAAI,CACF,MAAMW,EAAUvH,GAAmBC,CAAI,EACvC,IAAIuH,EAAUnC,EAEVE,EAEFiC,GADgB,MAAMzB,EAAY,YAAYwB,CAAc,GAC1C,GAElB,MAAMtB,EAAY,YAAY,CAAE,GAAAZ,EAAS,GAAGkC,EAAgB,EAG9D,MAAME,EAAcrH,GAA2BH,CAAI,EAC7CyH,IAAe7B,GAAA,YAAAA,EAAU,gBAAiB,CAAA,EAC1C8B,EAAc,IAAI,IAAID,GAAa,IAAK5H,GAAMA,EAAE,EAAE,CAAC,EAEzD,UAAW8C,KAAO6E,EAChB,GAAI7E,EAAI,IAAM+E,EAAY,IAAI/E,EAAI,EAAE,EAAG,CACrC,KAAM,CAAE,GAAIgF,EAAO,GAAGC,GAASjF,EAC/B,MAAMV,EAAU,YAAY,CAAE,QAAAsF,EAAmB,MAAAI,EAAe,GAAGC,EAAa,EAChFF,EAAY,OAAOC,CAAM,CAC3B,KAAO,CACL,KAAM,CAAE,GAAIE,EAAU,GAAGD,GAASjF,EAClC,MAAMuD,EAAU,YAAY,CAAE,QAAAqB,EAAmB,GAAGK,EAAa,CACnE,CAGF,UAAWE,KAAaJ,EACtB,MAAMrB,EAAU,YAAY,CAAE,QAAAkB,EAAmB,MAAOO,EAAW,EAGrEvC,EAAS,WAAWgC,CAAO,EAAE,CAC/B,OAASQ,EAAU,CACjBpB,EAAaoB,EAAI,OAAO,CAC1B,CACF,EAEA,GAAI,CAACzC,GAASI,EACZ,OAAO/E,EAAAA,OAAC,MAAA,CAAI,UAAU,0BAA0B,SAAA,CAAAA,EAAAA,OAAC,MAAA,CAAI,UAAU,oCAAA,EAAf,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAoD,EAAEA,EAAAA,OAAC,MAAA,CAAI,UAAU,gCAAA,EAAf,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,GAAA,EAAA,IAAgD,CAAA,CAAA,EAA/I,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAiJ,EAG1J,MAAMqH,EAAYlC,EAAY,WAAaE,EAAY,UAEvD,gBACG,MAAA,CACC,SAAA,CAAArF,EAAAA,OAACsH,GAAA,CACC,MAAO3C,EAAQ,YAAc,WAAUG,GAAA,YAAAA,EAAU,OAAQ,EAAE,GAC3D,SAAS,iBAAA,EAFX,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,CAAA,EAAA,IAAA,EAKA9E,EAAAA,OAAC,MAAA,CAAI,UAAU,cAEb,SAAA,CAAAA,EAAAA,OAAC,MAAA,CAAI,UAAU,6CACb,SAAA,CAAAA,EAAAA,OAAC,MAAA,CAAI,UAAU,cACZ,SAAAsE,GAAa,OAAQpF,GAAM,CAACA,EAAE,IAAM2B,CAAS,EAAE,IAAK3B,GAAM,CACzD,MAAMwE,EAAOxE,EAAE,KACTqI,EAASnB,IAAYlH,EAAE,GAC7B,OACEc,EAAAA,OAAC,SAAA,CAEC,QAAS,IAAMqG,GAAWnH,EAAE,EAAE,EAC9B,UAAW,qFACTqI,EACI,2BACA,mEACN,GAEA,SAAA,CAAAvH,SAAC0D,EAAA,CAAK,UAAU,uBAAuB,YAAa,GAAA,EAApD,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAyD,EACzD1D,SAAC,OAAA,CAAK,UAAU,sBAAuB,WAAE,KAAA,EAAzC,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA+C,CAAA,CAAA,EAT1Cd,EAAE,GADT,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAA,CAaJ,CAAC,CAAA,EAlBH,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAmBA,EAGAc,EAAAA,OAAC,MAAA,CAAI,UAAU,qDACb,SAAA,CAAAA,EAAAA,OAAC,SAAA,CACC,QAAS0G,GACT,SAAU,CAACrH,EAAK,KAAK,QAAUgI,EAC/B,UAAU,iDAET,SAAAA,EAAY,YAAc1C,EAAQ,eAAiB,MAAA,EALtD,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAA,EAOA3E,EAAAA,OAAC,SAAA,CACC,QAAS,IAAM4E,EAASD,EAAQ,UAAY,WAAWF,CAAE,EAAE,EAC3D,UAAU,2BACX,SAAA,QAAA,EAHD,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAA,CAKA,CAAA,EAbF,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAcA,EAECsB,GAAa/F,EAAAA,OAAC,IAAA,CAAE,UAAU,iCAAkC,SAAA+F,CAAA,EAA/C,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAyD,CAAA,CAAA,EAvCzE,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,CAAA,EAAA,IAwCA,EAGA/F,EAAAA,OAAC,MAAA,CAAI,UAAU,sBACZ,SAAA,CAAAoG,IAAY,GAAKpG,EAAAA,OAACF,GAAA,CAAa,KAAAT,EAAY,IAAAU,CAAA,EAA1B,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAoC,EACrDqG,IAAY,GAAKvF,GAAab,SAACG,GAAA,CAAe,KAAAd,EAAY,IAAAU,CAAA,EAA5B,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAsC,EACpEqG,IAAY,GAAKpG,EAAAA,OAACI,GAAA,CAAc,KAAAf,EAAY,IAAAU,CAAA,EAA3B,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAqC,EACtDqG,IAAY,GAAKpG,EAAAA,OAACY,GAAA,CAAkB,KAAAvB,EAAY,IAAAU,CAAA,EAA/B,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAyC,EAC1DqG,IAAY,GAAKpG,EAAAA,OAAC6C,GAAA,CAAa,KAAAxD,EAAY,IAAAU,CAAA,EAA1B,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAAoC,EACrDqG,IAAY,GAAKpG,EAAAA,OAACgE,GAAA,CAAW,KAAA3E,EAAY,UAAAwB,CAAA,EAAxB,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,EAAA,EAAA,IAA8C,CAAA,CAAA,EANlE,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,CAAA,EAAA,IAOA,CAAA,CAAA,EApDF,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,CAAA,EAAA,IAqDA,CAAA,CAAA,EA3DF,OAAA,GAAA,CAAA,SAAA,6DAAA,WAAA,IAAA,aAAA,CAAA,EAAA,IA4DA,CAEJ"}
@@ -0,0 +1,4 @@
1
+ import{k as S,j as e,c as q,N as _}from"./index-Da8R5Fn_.js";import{a as f}from"./vendor-query-DLp59M9_.js";import{a as T,b as B,c as R}from"./agents-SXs4tMLb.js";import{u as W,C as j}from"./CronLabel-DV2v2FlP.js";import{i as L}from"./useEventHooks-AwwZnweF.js";import{E as V}from"./EventTopicPill-9LcMnLF0.js";import{W as D}from"./WorkflowPill-BzhfqGa-.js";import{a as I,B as z,D as K,P as M,aA as U,m as F,aB as H,R as y,a1 as G,d as J,aC as O}from"./vendor-icons-1qQ3NKfa.js";import{e as X,c as Y}from"./vendor-react-Co3Y8ikm.js";function Q(t){return new Date(t).toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function g({icon:t,color:m,children:n,actions:a}){return e.jsxDEV("div",{className:"flex items-center justify-between mb-3 pb-2 border-b border-surface-border",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(t,{className:`w-4 h-4 ${m}`,strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:27,columnNumber:9},this),e.jsxDEV("h2",{className:"text-xs font-semibold uppercase tracking-widest text-accent/80",children:n},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:28,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:26,columnNumber:7},this),a]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:25,columnNumber:5},this)}function b({text:t}){return e.jsxDEV("p",{className:"text-[11px] text-text-quaternary py-2",children:t},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:36,columnNumber:10},this)}let Z=0;function ee(t){const[m,n]=f.useState([]),[a,u]=f.useState(!1),d=f.useCallback(r=>{var c,p,N;if((c=r.type)!=null&&c.startsWith("mesh.")||t&&r.workflowName!==t)return;const x=r.activityName||((p=r.data)==null?void 0:p.domain)||((N=r.workflowId)==null?void 0:N.slice(0,16))||"";n(i=>[{id:++Z,type:r.type,timestamp:r.timestamp,label:x},...i].slice(0,10)),u(!0),setTimeout(()=>u(!1),2e3)},[t]);return q(`${_}.>`,d),{events:m,pulse:a}}function de(){var v,A,E,P;const t=S(),{id:m}=X(),n=Y(),{data:a,isLoading:u}=T(m??null),{data:d}=W(m??null),r=B(),x=R(),{events:c,pulse:p}=ee((a==null?void 0:a.workflow_type)??void 0);if(L(),u)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/agents/AgentDetailPage.tsx",lineNumber:73,columnNumber:53},this),e.jsxDEV("div",{className:"h-40 bg-surface-sunken rounded"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:73,columnNumber:107},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:73,columnNumber:12},this);if(!a)return e.jsxDEV("div",{className:"flex flex-col items-center justify-center py-20 text-center",children:[e.jsxDEV(I,{className:"w-12 h-12 text-text-quaternary mb-4",strokeWidth:1},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:79,columnNumber:9},this),e.jsxDEV("h2",{className:"text-lg font-medium text-text-primary mb-2",children:"Agent not found"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:80,columnNumber:9},this),e.jsxDEV("button",{onClick:()=>n("/agents"),className:"text-sm text-accent hover:text-accent-hover transition-colors",children:"Back to agents"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:81,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:78,columnNumber:7},this);const N=a.status==="active"?"bg-emerald-400":a.status==="paused"?"bg-amber-400":a.status==="error"?"bg-red-400":"bg-zinc-500",i=(d==null?void 0:d.subscriptions)??[],w=a.status==="active"?"Active":a.status==="paused"?"Paused":a.status==="error"?"Error":"Inactive",l=(v=a.behaviors)==null?void 0:v.schedules,h=(A=a.behaviors)==null?void 0:A.cron,o=(l==null?void 0:l.length)||(h?1:0),k=()=>{const s=[`Pause "${a.name}"?`,"","This will:",i.length>0?`• Stop ${i.length} event subscription${i.length!==1?"s":""}`:null,o>0?`• Stop ${o} schedule${o!==1?"s":""}`:null,"","Knowledge and workflow history are preserved. You can reactivate anytime."].filter(Boolean).join(`
2
+ `);confirm(s)&&r.mutate({id:a.id,status:"paused"})},C=()=>{const s=[`Delete "${a.name}"?`,"","This permanently removes:","• The agent configuration",i.length>0?`• ${i.length} event subscription${i.length!==1?"s":""}`:null,o>0?`• ${o} schedule${o!==1?"s":""}`:null,"","Knowledge entries and workflow history are preserved."].filter(Boolean).join(`
3
+ `);confirm(s)&&x.mutate(a.id,{onSuccess:()=>n("/agents")})};return e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"flex items-start justify-between mb-3",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("h1",{className:"text-3xl font-light text-text-primary",children:["Agent: ",a.name]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:125,columnNumber:11},this),e.jsxDEV("button",{onClick:()=>{window.location.hash="#docs:agents.md"},className:"text-text-quaternary hover:text-accent transition-colors mt-1",title:"Agent docs",children:e.jsxDEV(z,{className:"w-4 h-4",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:127,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:126,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:124,columnNumber:9},this),e.jsxDEV("div",{className:"flex items-center gap-3",children:[e.jsxDEV("div",{className:"flex items-center gap-1.5 mr-2",children:[e.jsxDEV("span",{className:`w-2 h-2 rounded-full ${N}`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:132,columnNumber:13},this),e.jsxDEV("span",{className:"text-xs text-text-secondary capitalize",children:w},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:133,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:131,columnNumber:11},this),e.jsxDEV("button",{onClick:()=>n(`/agents/${a.id}/edit`),className:"flex items-center gap-1.5 px-4 py-1.5 text-xs rounded-md bg-accent text-text-inverse hover:bg-accent-hover transition-colors",children:[e.jsxDEV(K,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:136,columnNumber:13},this)," Edit"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:135,columnNumber:11},this),a.status!=="active"&&e.jsxDEV("button",{onClick:()=>r.mutate({id:a.id,status:"active"}),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-emerald-400 hover:bg-emerald-600/10 transition-colors",children:[e.jsxDEV(M,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:140,columnNumber:15},this)," Activate"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:139,columnNumber:13},this),a.status==="active"&&e.jsxDEV("button",{onClick:k,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(U,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:145,columnNumber:15},this)," Pause"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:144,columnNumber:13},this),e.jsxDEV("button",{onClick:C,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-red-400/60 hover:text-red-400 hover:bg-red-600/10 transition-colors",children:[e.jsxDEV(F,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:149,columnNumber:13},this)," Delete"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:148,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:130,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:123,columnNumber:7},this),a.description&&e.jsxDEV("div",{className:"border-l-2 border-accent/30 pl-4 py-1 mb-10",children:e.jsxDEV("p",{className:"text-[13px] text-text-secondary italic leading-relaxed",children:a.description},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:157,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:156,columnNumber:9},this),t&&(a.goals||a.rules)&&e.jsxDEV("div",{className:"mb-10",children:[e.jsxDEV(g,{icon:H,color:"text-rose-400",children:"Motivation"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:164,columnNumber:11},this),e.jsxDEV("div",{className:"grid grid-cols-2 gap-x-14 bg-surface-sunken/20 rounded-lg px-5 py-4",children:[a.goals&&e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] text-text-quaternary uppercase tracking-widest mb-1.5",children:"Goals"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:168,columnNumber:17},this),e.jsxDEV("p",{className:"text-[13px] text-text-primary leading-relaxed",children:a.goals},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:169,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:167,columnNumber:15},this),a.rules&&e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] text-text-quaternary uppercase tracking-widest mb-1.5",children:"Rules"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:174,columnNumber:17},this),e.jsxDEV("p",{className:"text-[13px] text-text-primary leading-relaxed",children:a.rules},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:175,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:173,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:165,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:163,columnNumber:9},this),e.jsxDEV("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-x-14 gap-y-10",children:[e.jsxDEV("div",{children:[e.jsxDEV(g,{icon:y,color:"text-cyan-400",children:["Subscriptions (",i.length,")"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:187,columnNumber:11},this),i.length===0?e.jsxDEV(b,{text:"No event subscriptions"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:191,columnNumber:13},this):e.jsxDEV("div",{className:"divide-y divide-surface-border/30",children:i.map(s=>e.jsxDEV("div",{className:"flex items-center py-2",children:[e.jsxDEV("div",{className:"flex-1 min-w-0",children:e.jsxDEV(V,{topic:s.topic},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:196,columnNumber:51},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:196,columnNumber:19},this),e.jsxDEV("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsxDEV("span",{className:"text-text-quaternary text-[10px]",children:"→"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:198,columnNumber:21},this),e.jsxDEV(D,{type:s.workflow_type||"mcp-query",variant:s.reaction_type==="pipeline"?"pipeline":"durable"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:199,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:197,columnNumber:19},this)]},s.id,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:195,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:193,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:186,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV(g,{icon:G,color:"text-amber-400",children:["Schedules (",o,")"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:209,columnNumber:11},this),l!=null&&l.length?e.jsxDEV("div",{className:"divide-y divide-surface-border/30",children:l.map((s,$)=>e.jsxDEV("div",{className:"flex items-center py-2",children:[e.jsxDEV("div",{className:"flex-1 min-w-0",children:e.jsxDEV(j,{cron:s.cron},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:214,columnNumber:51},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:214,columnNumber:19},this),e.jsxDEV("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsxDEV("span",{className:"text-text-quaternary text-[10px]",children:"→"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:215,columnNumber:71},this),e.jsxDEV(D,{type:s.workflow_type||"workflow"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:215,columnNumber:130},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:215,columnNumber:19},this)]},$,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:213,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:211,columnNumber:13},this):h?e.jsxDEV("div",{className:"flex items-center py-1",children:[e.jsxDEV("div",{className:"flex-1 min-w-0",children:e.jsxDEV(j,{cron:h},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:221,columnNumber:47},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:221,columnNumber:15},this),a.workflow_type&&e.jsxDEV("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsxDEV("span",{className:"text-text-quaternary text-[10px]",children:"→"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:222,columnNumber:91},this),e.jsxDEV(D,{type:a.workflow_type},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:222,columnNumber:150},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:222,columnNumber:39},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:220,columnNumber:13},this):e.jsxDEV(b,{text:"No schedules configured"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:225,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:208,columnNumber:9},this),e.jsxDEV("div",{className:"space-y-10",children:[e.jsxDEV("div",{children:[e.jsxDEV(g,{icon:J,color:"text-emerald-400",children:"Knowledge"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:232,columnNumber:13},this),a.knowledge_domain?e.jsxDEV("button",{onClick:()=>n(`/knowledge?domain=${a.knowledge_domain}`),className:"group text-left flex items-center gap-3",children:[e.jsxDEV("span",{className:"text-sm font-mono text-text-primary group-hover:text-accent transition-colors",children:a.knowledge_domain},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:235,columnNumber:17},this),e.jsxDEV("span",{className:"text-[10px] text-text-quaternary",children:[((P=(E=a.stats)==null?void 0:E.knowledge_count)==null?void 0:P.toLocaleString())??0," entries"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:236,columnNumber:17},this),e.jsxDEV(O,{className:"w-3 h-3 text-accent opacity-0 group-hover:opacity-100 transition-opacity"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:237,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:234,columnNumber:15},this):e.jsxDEV(b,{text:"No knowledge domain"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:240,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:231,columnNumber:11},this),e.jsxDEV("div",{children:[e.jsxDEV(g,{icon:y,color:"text-cyan-400",actions:e.jsxDEV("div",{className:"flex items-center gap-1.5",children:[e.jsxDEV("span",{className:`w-1.5 h-1.5 rounded-full transition-colors duration-500 ${p?"bg-emerald-400":"bg-zinc-600"}`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:248,columnNumber:19},this),e.jsxDEV("span",{className:"text-[10px] text-text-quaternary",children:"live"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:249,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:247,columnNumber:17},this),children:"Activity"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:245,columnNumber:13},this),c.length===0?e.jsxDEV(b,{text:"Events appear here as the agent runs"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:256,columnNumber:15},this):e.jsxDEV("div",{className:"space-y-1.5",children:c.map(s=>e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"flex items-center justify-between mb-0.5",children:[e.jsxDEV("span",{className:"text-[11px] text-text-primary font-mono truncate flex-1",children:s.label||"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:262,columnNumber:23},this),e.jsxDEV("span",{className:"text-[10px] text-text-quaternary shrink-0 ml-2",children:Q(s.timestamp)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:263,columnNumber:23},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:261,columnNumber:21},this),e.jsxDEV(V,{topic:s.type},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:265,columnNumber:21},this)]},s.id,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:260,columnNumber:19},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:258,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:244,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:230,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:183,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:121,columnNumber:5},this)}export{de as AgentDetailPage};
4
+ //# sourceMappingURL=AgentDetailPage-5M7JTcFz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentDetailPage-5M7JTcFz.js","sources":["../../src/pages/agents/AgentDetailPage.tsx"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport {\n Bot, Play, Pause, Trash2, ArrowRight, Pencil, BookOpen,\n Radio, Clock, Brain, Compass,\n} from 'lucide-react';\nimport { useAI } from '../../hooks/useAI';\nimport { useAgent, useUpdateAgent, useDeleteAgent } from '../../api/agents';\nimport { useAgentSubscriptions } from '../../api/agent-subscriptions';\nimport { useAgentEvents } from '../../hooks/useEventHooks';\nimport { useEventSubscription } from '../../hooks/useEventContext';\nimport { NATS_SUBJECT_PREFIX } from '../../lib/nats/config';\nimport { EventTopicPill } from '../../components/common/display/EventTopicPill';\nimport { CronLabel } from '../../components/common/display/CronLabel';\nimport { WorkflowPill } from '../../components/common/display/WorkflowPill';\n\n// ── Helpers ─────────────────────────────────────────────────────────────────\n\nfunction formatTime(iso: string): string {\n return new Date(iso).toLocaleTimeString('en-US', { hour12: false, hour: '2-digit', minute: '2-digit', second: '2-digit' });\n}\n\nfunction SectionHeader({ icon: Icon, color, children, actions }: { icon: React.ElementType; color: string; children: React.ReactNode; actions?: React.ReactNode }) {\n return (\n <div className=\"flex items-center justify-between mb-3 pb-2 border-b border-surface-border\">\n <div className=\"flex items-center gap-2\">\n <Icon className={`w-4 h-4 ${color}`} strokeWidth={1.5} />\n <h2 className=\"text-xs font-semibold uppercase tracking-widest text-accent/80\">{children}</h2>\n </div>\n {actions}\n </div>\n );\n}\n\nfunction EmptyHint({ text }: { text: string }) {\n return <p className=\"text-[11px] text-text-quaternary py-2\">{text}</p>;\n}\n\n// ── Live feed ───────────────────────────────────────────────────────────────\n\ninterface FeedEvent { id: number; type: string; timestamp: string; label: string; }\nlet feedCounter = 0;\n\nfunction useAgentFeed(workflowName?: string) {\n const [events, setEvents] = useState<FeedEvent[]>([]);\n const [pulse, setPulse] = useState(false);\n const handler = useCallback((event: any) => {\n if (event.type?.startsWith('mesh.')) return;\n if (workflowName && event.workflowName !== workflowName) return;\n const label = event.activityName || event.data?.domain || event.workflowId?.slice(0, 16) || '';\n setEvents((prev) => [{ id: ++feedCounter, type: event.type, timestamp: event.timestamp, label }, ...prev].slice(0, 10));\n setPulse(true);\n setTimeout(() => setPulse(false), 2000);\n }, [workflowName]);\n useEventSubscription(`${NATS_SUBJECT_PREFIX}.>`, handler);\n return { events, pulse };\n}\n\n// ── Page ─────────────────────────────────────────────────────────────────────\n\nexport function AgentDetailPage() {\n const aiEnabled = useAI();\n const { id } = useParams<{ id: string }>();\n const navigate = useNavigate();\n const { data: agent, isLoading } = useAgent(id ?? null);\n const { data: subsData } = useAgentSubscriptions(id ?? null);\n const updateMutation = useUpdateAgent();\n const deleteMutation = useDeleteAgent();\n const { events: liveEvents, pulse } = useAgentFeed(agent?.workflow_type ?? undefined);\n useAgentEvents();\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 (!agent) {\n return (\n <div className=\"flex flex-col items-center justify-center py-20 text-center\">\n <Bot className=\"w-12 h-12 text-text-quaternary mb-4\" strokeWidth={1} />\n <h2 className=\"text-lg font-medium text-text-primary mb-2\">Agent not found</h2>\n <button onClick={() => navigate('/agents')} className=\"text-sm text-accent hover:text-accent-hover transition-colors\">Back to agents</button>\n </div>\n );\n }\n\n const statusDot = agent.status === 'active' ? 'bg-emerald-400' : agent.status === 'paused' ? 'bg-amber-400' : agent.status === 'error' ? 'bg-red-400' : 'bg-zinc-500';\n const subs = subsData?.subscriptions ?? [];\n const statusLabel = agent.status === 'active' ? 'Active' : agent.status === 'paused' ? 'Paused' : agent.status === 'error' ? 'Error' : 'Inactive';\n const schedules = (agent.behaviors as any)?.schedules as any[] | undefined;\n const legacyCron = agent.behaviors?.cron;\n const schedCount = schedules?.length || (legacyCron ? 1 : 0);\n\n const handlePause = () => {\n const msg = [\n `Pause \"${agent.name}\"?`,\n '',\n 'This will:',\n subs.length > 0 ? `• Stop ${subs.length} event subscription${subs.length !== 1 ? 's' : ''}` : null,\n schedCount > 0 ? `• Stop ${schedCount} schedule${schedCount !== 1 ? 's' : ''}` : null,\n '',\n 'Knowledge and workflow history are preserved. You can reactivate anytime.',\n ].filter(Boolean).join('\\n');\n if (confirm(msg)) updateMutation.mutate({ id: agent.id, status: 'paused' as any });\n };\n\n const handleDelete = () => {\n const msg = [\n `Delete \"${agent.name}\"?`,\n '',\n 'This permanently removes:',\n '• The agent configuration',\n subs.length > 0 ? `• ${subs.length} event subscription${subs.length !== 1 ? 's' : ''}` : null,\n schedCount > 0 ? `• ${schedCount} schedule${schedCount !== 1 ? 's' : ''}` : null,\n '',\n 'Knowledge entries and workflow history are preserved.',\n ].filter(Boolean).join('\\n');\n if (confirm(msg)) deleteMutation.mutate(agent.id, { onSuccess: () => navigate('/agents') });\n };\n\n return (\n <div>\n {/* ── Hero ──────────────────────────────────────────────────────────── */}\n <div className=\"flex items-start justify-between mb-3\">\n <div className=\"flex items-center gap-2\">\n <h1 className=\"text-3xl font-light text-text-primary\">Agent: {agent.name}</h1>\n <button onClick={() => { window.location.hash = '#docs:agents.md'; }} className=\"text-text-quaternary hover:text-accent transition-colors mt-1\" title=\"Agent docs\">\n <BookOpen className=\"w-4 h-4\" strokeWidth={1.5} />\n </button>\n </div>\n <div className=\"flex items-center gap-3\">\n <div className=\"flex items-center gap-1.5 mr-2\">\n <span className={`w-2 h-2 rounded-full ${statusDot}`} />\n <span className=\"text-xs text-text-secondary capitalize\">{statusLabel}</span>\n </div>\n <button onClick={() => navigate(`/agents/${agent.id}/edit`)} className=\"flex items-center gap-1.5 px-4 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 {agent.status !== 'active' && (\n <button onClick={() => updateMutation.mutate({ id: agent.id, status: 'active' as any })} className=\"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-emerald-400 hover:bg-emerald-600/10 transition-colors\">\n <Play className=\"w-3 h-3\" /> Activate\n </button>\n )}\n {agent.status === 'active' && (\n <button onClick={handlePause} 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 <Pause className=\"w-3 h-3\" /> Pause\n </button>\n )}\n <button onClick={handleDelete} className=\"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-red-400/60 hover:text-red-400 hover:bg-red-600/10 transition-colors\">\n <Trash2 className=\"w-3 h-3\" /> Delete\n </button>\n </div>\n </div>\n\n {/* Description callout */}\n {agent.description && (\n <div className=\"border-l-2 border-accent/30 pl-4 py-1 mb-10\">\n <p className=\"text-[13px] text-text-secondary italic leading-relaxed\">{agent.description}</p>\n </div>\n )}\n\n {/* Motivation */}\n {aiEnabled && (agent.goals || agent.rules) && (\n <div className=\"mb-10\">\n <SectionHeader icon={Compass} color=\"text-rose-400\">Motivation</SectionHeader>\n <div className=\"grid grid-cols-2 gap-x-14 bg-surface-sunken/20 rounded-lg px-5 py-4\">\n {agent.goals && (\n <div>\n <p className=\"text-[9px] text-text-quaternary uppercase tracking-widest mb-1.5\">Goals</p>\n <p className=\"text-[13px] text-text-primary leading-relaxed\">{agent.goals}</p>\n </div>\n )}\n {agent.rules && (\n <div>\n <p className=\"text-[9px] text-text-quaternary uppercase tracking-widest mb-1.5\">Rules</p>\n <p className=\"text-[13px] text-text-primary leading-relaxed\">{agent.rules}</p>\n </div>\n )}\n </div>\n </div>\n )}\n\n {/* ── 3-column grid ─────────────────────────────────────────────────── */}\n <div className=\"grid grid-cols-1 lg:grid-cols-3 gap-x-14 gap-y-10\">\n\n {/* Col 1: Subscriptions */}\n <div>\n <SectionHeader icon={Radio} color=\"text-cyan-400\">\n Subscriptions ({subs.length})\n </SectionHeader>\n {subs.length === 0 ? (\n <EmptyHint text=\"No event subscriptions\" />\n ) : (\n <div className=\"divide-y divide-surface-border/30\">\n {subs.map((sub: any) => (\n <div key={sub.id} className=\"flex items-center py-2\">\n <div className=\"flex-1 min-w-0\"><EventTopicPill topic={sub.topic} /></div>\n <div className=\"flex items-center gap-1.5 shrink-0\">\n <span className=\"text-text-quaternary text-[10px]\">→</span>\n <WorkflowPill type={sub.workflow_type || 'mcp-query'} variant={sub.reaction_type === 'pipeline' ? 'pipeline' : 'durable'} />\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n\n {/* Col 2: Schedules */}\n <div>\n <SectionHeader icon={Clock} color=\"text-amber-400\">Schedules ({schedCount})</SectionHeader>\n {schedules?.length ? (\n <div className=\"divide-y divide-surface-border/30\">\n {schedules.map((s: any, i: number) => (\n <div key={i} className=\"flex items-center py-2\">\n <div className=\"flex-1 min-w-0\"><CronLabel cron={s.cron} /></div>\n <div className=\"flex items-center gap-1.5 shrink-0\"><span className=\"text-text-quaternary text-[10px]\">→</span><WorkflowPill type={s.workflow_type || 'workflow'} /></div>\n </div>\n ))}\n </div>\n ) : legacyCron ? (\n <div className=\"flex items-center py-1\">\n <div className=\"flex-1 min-w-0\"><CronLabel cron={legacyCron} /></div>\n {agent.workflow_type && <div className=\"flex items-center gap-1.5 shrink-0\"><span className=\"text-text-quaternary text-[10px]\">→</span><WorkflowPill type={agent.workflow_type} /></div>}\n </div>\n ) : (\n <EmptyHint text=\"No schedules configured\" />\n )}\n </div>\n\n {/* Col 3: Knowledge + Activity */}\n <div className=\"space-y-10\">\n <div>\n <SectionHeader icon={Brain} color=\"text-emerald-400\">Knowledge</SectionHeader>\n {agent.knowledge_domain ? (\n <button onClick={() => navigate(`/knowledge?domain=${agent.knowledge_domain}`)} className=\"group text-left flex items-center gap-3\">\n <span className=\"text-sm font-mono text-text-primary group-hover:text-accent transition-colors\">{agent.knowledge_domain}</span>\n <span className=\"text-[10px] text-text-quaternary\">{agent.stats?.knowledge_count?.toLocaleString() ?? 0} entries</span>\n <ArrowRight className=\"w-3 h-3 text-accent opacity-0 group-hover:opacity-100 transition-opacity\" />\n </button>\n ) : (\n <EmptyHint text=\"No knowledge domain\" />\n )}\n </div>\n\n <div>\n <SectionHeader icon={Radio} color=\"text-cyan-400\"\n actions={\n <div className=\"flex items-center gap-1.5\">\n <span className={`w-1.5 h-1.5 rounded-full transition-colors duration-500 ${pulse ? 'bg-emerald-400' : 'bg-zinc-600'}`} />\n <span className=\"text-[10px] text-text-quaternary\">live</span>\n </div>\n }\n >\n Activity\n </SectionHeader>\n {liveEvents.length === 0 ? (\n <EmptyHint text=\"Events appear here as the agent runs\" />\n ) : (\n <div className=\"space-y-1.5\">\n {liveEvents.map((ev) => (\n <div key={ev.id}>\n <div className=\"flex items-center justify-between mb-0.5\">\n <span className=\"text-[11px] text-text-primary font-mono truncate flex-1\">{ev.label || '—'}</span>\n <span className=\"text-[10px] text-text-quaternary shrink-0 ml-2\">{formatTime(ev.timestamp)}</span>\n </div>\n <EventTopicPill topic={ev.type} />\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n}\n"],"names":["formatTime","iso","SectionHeader","Icon","color","children","actions","jsxDEV","EmptyHint","text","feedCounter","useAgentFeed","workflowName","events","setEvents","useState","pulse","setPulse","handler","useCallback","event","_a","label","_b","_c","prev","useEventSubscription","NATS_SUBJECT_PREFIX","AgentDetailPage","aiEnabled","useAI","id","useParams","navigate","useNavigate","agent","isLoading","useAgent","subsData","useAgentSubscriptions","updateMutation","useUpdateAgent","deleteMutation","useDeleteAgent","liveEvents","useAgentEvents","Bot","statusDot","subs","statusLabel","schedules","legacyCron","schedCount","handlePause","msg","handleDelete","BookOpen","Pencil","Play","Pause","Trash2","Compass","Radio","sub","EventTopicPill","WorkflowPill","Clock","i","CronLabel","Brain","_d","ArrowRight","ev"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{j as e,d as u}from"./index-Da8R5Fn_.js";import{u as g}from"./agents-SXs4tMLb.js";import{i as c}from"./useEventHooks-AwwZnweF.js";import{u as p}from"./useFilterParams-CGRYFw_A.js";import{D as b}from"./DataTable-etck0Zmp.js";import{S as N}from"./StickyPagination-CI5AyVVd.js";import{F as f,b as x}from"./FilterBar-CZGTOMoo.js";import{P as h}from"./PageHeader-BuUnJ5NY.js";import{L as v}from"./ListToolbar-CJEzypCM.js";import{O as P}from"./vendor-icons-1qQ3NKfa.js";import{c as A}from"./vendor-react-Co3Y8ikm.js";import"./vendor-query-DLp59M9_.js";import"./EmptyState-Bk3_P-b8.js";const D=[{value:"active",label:"Active"},{value:"inactive",label:"Inactive"},{value:"paused",label:"Paused"},{value:"error",label:"Error"}],E=[{key:"name",label:"Agent",render:a=>e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("span",{className:`w-1.5 h-1.5 rounded-full shrink-0 ${a.status==="active"?"bg-emerald-400":a.status==="paused"?"bg-amber-400":a.status==="error"?"bg-red-400":"bg-zinc-500"}`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:26,columnNumber:9},void 0),e.jsxDEV("div",{className:"min-w-0",children:[e.jsxDEV("span",{className:"text-xs font-medium text-text-primary block",children:a.name},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:28,columnNumber:11},void 0),a.description&&e.jsxDEV("p",{className:"text-[10px] text-text-tertiary truncate",children:a.description},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:29,columnNumber:31},void 0)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:27,columnNumber:9},void 0)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:25,columnNumber:7},void 0)},{key:"knowledge_domain",label:"Knowledge",render:a=>a.knowledge_domain?e.jsxDEV("span",{className:"text-[10px] font-mono text-text-secondary whitespace-nowrap",children:a.knowledge_domain},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:38,columnNumber:9},void 0):e.jsxDEV("span",{className:"text-text-quaternary",children:"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:39,columnNumber:9},void 0),className:"w-28"},{key:"schedules",label:"Schedules",render:a=>{var s,n;const t=(s=a.behaviors)==null?void 0:s.schedules,r=t!=null&&t.length?t.map(l=>l.cron):(n=a.behaviors)!=null&&n.cron?[a.behaviors.cron]:[];return r.length?e.jsxDEV("span",{className:"text-[10px] font-mono text-text-secondary whitespace-nowrap",children:[r[0],r.length>1?` +${r.length-1}`:""]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:49,columnNumber:14},void 0):e.jsxDEV("span",{className:"text-text-quaternary",children:"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:48,columnNumber:33},void 0)},className:"w-28"},{key:"subscriptions",label:"Subscriptions",render:a=>{var n;const t=a.subscription_count??0,r=a.sub_topics??[];if(!t)return e.jsxDEV("span",{className:"text-text-quaternary",children:"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:59,columnNumber:26},void 0);const s=((n=r[0])==null?void 0:n.replace(/^lt\.events\./,""))??"";return e.jsxDEV("span",{className:"text-[10px] font-mono text-text-secondary whitespace-nowrap",children:[s,t>1?` +${t-1}`:""]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:61,columnNumber:14},void 0)},className:"w-36"},{key:"last_run_at",label:"Last Run",render:a=>a.last_run_at?e.jsxDEV("span",{className:"whitespace-nowrap",children:e.jsxDEV(u,{date:a.last_run_at},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:69,columnNumber:45},void 0)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:69,columnNumber:9},void 0):e.jsxDEV("span",{className:"text-text-quaternary",children:"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:70,columnNumber:9},void 0),className:"w-32"}];function L(){const a=A();c();const{filters:t,setFilter:r,pagination:s}=p({filters:{status:""}}),{data:n,isLoading:l,refetch:m,isFetching:d}=g({status:t.status||void 0,limit:s.pageSize,offset:s.offset}),o=(n==null?void 0:n.total)??0;return e.jsxDEV("div",{children:[e.jsxDEV(h,{title:"Agents",docsHash:"#docs:agents.md",actions:e.jsxDEV("button",{onClick:()=>a("/agents/new"),className:"flex items-center gap-2 px-4 py-2 text-sm rounded-md bg-accent text-text-inverse hover:bg-accent-hover transition-colors",children:[e.jsxDEV(P,{className:"w-4 h-4"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:101,columnNumber:13},this)," Create Agent"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:97,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:93,columnNumber:7},this),e.jsxDEV(f,{actions:e.jsxDEV(v,{onRefresh:()=>m(),isFetching:d,apiPath:`/agents?limit=${s.pageSize}&offset=${s.offset}${t.status?`&status=${t.status}`:""}`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:107,columnNumber:9},this),children:e.jsxDEV(x,{label:"Status",value:t.status,onChange:i=>r("status",i),options:D},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:113,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:106,columnNumber:7},this),e.jsxDEV(b,{columns:E,data:(n==null?void 0:n.agents)??[],keyFn:i=>i.id,onRowClick:i=>a(`/agents/${i.id}`),isLoading:l,emptyMessage:"No agents found"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:121,columnNumber:7},this),e.jsxDEV(N,{page:s.page,totalPages:s.totalPages(o),onPageChange:s.setPage,total:o,pageSize:s.pageSize,onPageSizeChange:s.setPageSize},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:130,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:92,columnNumber:5},this)}export{L as AgentsPage};
2
+ //# sourceMappingURL=AgentsPage--I4d5y9J.js.map