@hotmeshio/long-tail 0.14.0 → 0.14.3

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 (263) hide show
  1. package/build/api/escalations/bulk.d.ts +18 -0
  2. package/build/api/escalations/bulk.js +49 -1
  3. package/build/api/escalations/claim.d.ts +4 -1
  4. package/build/api/escalations/claim.js +6 -2
  5. package/build/api/escalations/helpers.d.ts +11 -1
  6. package/build/api/escalations/helpers.js +30 -3
  7. package/build/api/escalations/index.d.ts +1 -1
  8. package/build/api/escalations/index.js +2 -1
  9. package/build/index.js +4 -0
  10. package/build/routes/escalations/bulk.js +6 -0
  11. package/build/routes/escalations/single.js +3 -1
  12. package/build/sdk/index.d.ts +5 -0
  13. package/build/sdk/index.js +1 -0
  14. package/build/services/escalation/bulk.d.ts +27 -0
  15. package/build/services/escalation/bulk.js +39 -0
  16. package/build/services/escalation/crud.d.ts +10 -2
  17. package/build/services/escalation/crud.js +20 -12
  18. package/build/services/escalation/sql.d.ts +17 -0
  19. package/build/services/escalation/sql.js +44 -1
  20. package/build/system/mcp-servers/admin/escalations.js +13 -1
  21. package/build/system/mcp-servers/admin/schemas.d.ts +10 -0
  22. package/build/system/mcp-servers/admin/schemas.js +6 -2
  23. package/build/system/seed/tool-manifests-admin.d.ts +88 -0
  24. package/build/system/seed/tool-manifests-admin.js +2 -1
  25. package/dashboard/dist/assets/{AdminDashboard-DeZsR4pA.js → AdminDashboard-BS3wd7Zg.js} +2 -2
  26. package/dashboard/dist/assets/{AdminDashboard-DeZsR4pA.js.map → AdminDashboard-BS3wd7Zg.js.map} +1 -1
  27. package/dashboard/dist/assets/{AgentConfigPage-Bi5ZAsjf.js → AgentConfigPage-4C9aU0dj.js} +6 -6
  28. package/dashboard/dist/assets/{AgentConfigPage-Bi5ZAsjf.js.map → AgentConfigPage-4C9aU0dj.js.map} +1 -1
  29. package/dashboard/dist/assets/{AgentDetailPage-CIbKor5E.js → AgentDetailPage-B6uvDnMF.js} +3 -3
  30. package/dashboard/dist/assets/{AgentDetailPage-CIbKor5E.js.map → AgentDetailPage-B6uvDnMF.js.map} +1 -1
  31. package/dashboard/dist/assets/{AgentsPage-CRFZ6KDu.js → AgentsPage-vtxdvdrQ.js} +2 -2
  32. package/dashboard/dist/assets/{AgentsPage-CRFZ6KDu.js.map → AgentsPage-vtxdvdrQ.js.map} +1 -1
  33. package/dashboard/dist/assets/AvailableEscalationsPage-C9VKPhD6.js +2 -0
  34. package/dashboard/dist/assets/AvailableEscalationsPage-C9VKPhD6.js.map +1 -0
  35. package/dashboard/dist/assets/BotPicker-CkY9u7nD.js +2 -0
  36. package/dashboard/dist/assets/{BotPicker-dUpw1wW6.js.map → BotPicker-CkY9u7nD.js.map} +1 -1
  37. package/dashboard/dist/assets/BulkAssignModal-OIbUDYlC.js +2 -0
  38. package/dashboard/dist/assets/BulkAssignModal-OIbUDYlC.js.map +1 -0
  39. package/dashboard/dist/assets/CapabilitiesPage-Bkbq_GO6.js +2 -0
  40. package/dashboard/dist/assets/{CapabilitiesPage-Ca2jEln-.js.map → CapabilitiesPage-Bkbq_GO6.js.map} +1 -1
  41. package/dashboard/dist/assets/{CollapsibleSection-BXlR5QmW.js → CollapsibleSection-Zuz9HkFL.js} +2 -2
  42. package/dashboard/dist/assets/{CollapsibleSection-BXlR5QmW.js.map → CollapsibleSection-Zuz9HkFL.js.map} +1 -1
  43. package/dashboard/dist/assets/CountdownTimer-CGnk4Bw_.js +2 -0
  44. package/dashboard/dist/assets/CountdownTimer-CGnk4Bw_.js.map +1 -0
  45. package/dashboard/dist/assets/{CredentialsPage-CGyCCzGh.js → CredentialsPage-CAmDMnzV.js} +2 -2
  46. package/dashboard/dist/assets/{CredentialsPage-CGyCCzGh.js.map → CredentialsPage-CAmDMnzV.js.map} +1 -1
  47. package/dashboard/dist/assets/{CronLabel-CAu2hmQf.js → CronLabel-DX2woCPZ.js} +2 -2
  48. package/dashboard/dist/assets/{CronLabel-CAu2hmQf.js.map → CronLabel-DX2woCPZ.js.map} +1 -1
  49. package/dashboard/dist/assets/{DataTable-Bir0Xs1p.js → DataTable-DFPMeqyQ.js} +2 -2
  50. package/dashboard/dist/assets/DataTable-DFPMeqyQ.js.map +1 -0
  51. package/dashboard/dist/assets/{DropZone-DovkhN2p.js → DropZone-7UoXQ4qL.js} +2 -2
  52. package/dashboard/dist/assets/{DropZone-DovkhN2p.js.map → DropZone-7UoXQ4qL.js.map} +1 -1
  53. package/dashboard/dist/assets/{ElapsedCell-B1eoCzEw.js → ElapsedCell-D2old1NF.js} +2 -2
  54. package/dashboard/dist/assets/{ElapsedCell-B1eoCzEw.js.map → ElapsedCell-D2old1NF.js.map} +1 -1
  55. package/dashboard/dist/assets/{EntityTimelinePanel-CIOyjwjM.js → EntityTimelinePanel-m9baDiW0.js} +2 -2
  56. package/dashboard/dist/assets/{EntityTimelinePanel-CIOyjwjM.js.map → EntityTimelinePanel-m9baDiW0.js.map} +1 -1
  57. package/dashboard/dist/assets/{EscalationListSchemaPage-DQNQ7o_4.js → EscalationListSchemaPage-BPr7Ou8c.js} +3 -3
  58. package/dashboard/dist/assets/{EscalationListSchemaPage-DQNQ7o_4.js.map → EscalationListSchemaPage-BPr7Ou8c.js.map} +1 -1
  59. package/dashboard/dist/assets/{EscalationSchemaPage-DFgDn4R3.js → EscalationSchemaPage-83n5JyAh.js} +3 -3
  60. package/dashboard/dist/assets/{EscalationSchemaPage-DFgDn4R3.js.map → EscalationSchemaPage-83n5JyAh.js.map} +1 -1
  61. package/dashboard/dist/assets/{EscalationsOverview-DfbKtXVZ.js → EscalationsOverview-CDJ5wRlq.js} +2 -2
  62. package/dashboard/dist/assets/{EscalationsOverview-DfbKtXVZ.js.map → EscalationsOverview-CDJ5wRlq.js.map} +1 -1
  63. package/dashboard/dist/assets/{EventTable-CZPkvhao.js → EventTable-DRUHkKtv.js} +2 -2
  64. package/dashboard/dist/assets/{EventTable-CZPkvhao.js.map → EventTable-DRUHkKtv.js.map} +1 -1
  65. package/dashboard/dist/assets/{FilterBar-CYjKK9Cp.js → FilterBar-C06DK5Oa.js} +2 -2
  66. package/dashboard/dist/assets/{FilterBar-CYjKK9Cp.js.map → FilterBar-C06DK5Oa.js.map} +1 -1
  67. package/dashboard/dist/assets/{GraphInvokePage-DY9u42vt.js → GraphInvokePage-DSlyTmyq.js} +2 -2
  68. package/dashboard/dist/assets/{GraphInvokePage-DY9u42vt.js.map → GraphInvokePage-DSlyTmyq.js.map} +1 -1
  69. package/dashboard/dist/assets/{HomePage-p_CYlGnh.js → HomePage-DXzDBkQV.js} +2 -2
  70. package/dashboard/dist/assets/{HomePage-p_CYlGnh.js.map → HomePage-DXzDBkQV.js.map} +1 -1
  71. package/dashboard/dist/assets/{ListToolbar-Dz-1RXSH.js → ListToolbar-BvpGFFYp.js} +2 -2
  72. package/dashboard/dist/assets/{ListToolbar-Dz-1RXSH.js.map → ListToolbar-BvpGFFYp.js.map} +1 -1
  73. package/dashboard/dist/assets/{McpOverview-BUI9sVTk.js → McpOverview-C2atR_B6.js} +2 -2
  74. package/dashboard/dist/assets/{McpOverview-BUI9sVTk.js.map → McpOverview-C2atR_B6.js.map} +1 -1
  75. package/dashboard/dist/assets/{McpQueryDetailPage-CVN_UAB3.js → McpQueryDetailPage-BUxPspjB.js} +3 -3
  76. package/dashboard/dist/assets/{McpQueryDetailPage-CVN_UAB3.js.map → McpQueryDetailPage-BUxPspjB.js.map} +1 -1
  77. package/dashboard/dist/assets/McpQueryPage-CM_Fgl9G.js +2 -0
  78. package/dashboard/dist/assets/{McpQueryPage-DRTKSPDR.js.map → McpQueryPage-CM_Fgl9G.js.map} +1 -1
  79. package/dashboard/dist/assets/{McpRunDetailPage-CTb1AxR3.js → McpRunDetailPage-Bo9vXQBA.js} +2 -2
  80. package/dashboard/dist/assets/{McpRunDetailPage-CTb1AxR3.js.map → McpRunDetailPage-Bo9vXQBA.js.map} +1 -1
  81. package/dashboard/dist/assets/{McpRunsPage-BWLwjVd0.js → McpRunsPage-BwsgvGtg.js} +2 -2
  82. package/dashboard/dist/assets/{McpRunsPage-BWLwjVd0.js.map → McpRunsPage-BwsgvGtg.js.map} +1 -1
  83. package/dashboard/dist/assets/{NamespacePill-BeifzjUm.js → NamespacePill-CKp_9EaI.js} +2 -2
  84. package/dashboard/dist/assets/{NamespacePill-BeifzjUm.js.map → NamespacePill-CKp_9EaI.js.map} +1 -1
  85. package/dashboard/dist/assets/OperationsPage-BftWAJ9m.js +3 -0
  86. package/dashboard/dist/assets/OperationsPage-BftWAJ9m.js.map +1 -0
  87. package/dashboard/dist/assets/{OperatorDashboard-DGs9kPOZ.js → OperatorDashboard-CKjrYYFi.js} +2 -2
  88. package/dashboard/dist/assets/{OperatorDashboard-DGs9kPOZ.js.map → OperatorDashboard-CKjrYYFi.js.map} +1 -1
  89. package/dashboard/dist/assets/{PageHeader-BpeBHqyc.js → PageHeader-CDDpHpdv.js} +2 -2
  90. package/dashboard/dist/assets/{PageHeader-BpeBHqyc.js.map → PageHeader-CDDpHpdv.js.map} +1 -1
  91. package/dashboard/dist/assets/{PageHeaderWithStats-JXeUFa_g.js → PageHeaderWithStats-DIWH6fRv.js} +2 -2
  92. package/dashboard/dist/assets/{PageHeaderWithStats-JXeUFa_g.js.map → PageHeaderWithStats-DIWH6fRv.js.map} +1 -1
  93. package/dashboard/dist/assets/{PersonaDetailPage-C33MgXUY.js → PersonaDetailPage-BsIPtBxZ.js} +2 -2
  94. package/dashboard/dist/assets/{PersonaDetailPage-C33MgXUY.js.map → PersonaDetailPage-BsIPtBxZ.js.map} +1 -1
  95. package/dashboard/dist/assets/{PersonasPage-BbLOHq5X.js → PersonasPage-62hANmNf.js} +2 -2
  96. package/dashboard/dist/assets/{PersonasPage-BbLOHq5X.js.map → PersonasPage-62hANmNf.js.map} +1 -1
  97. package/dashboard/dist/assets/{ProcessDetailPage-zwd0HCJl.js → ProcessDetailPage-DS_t9DcR.js} +2 -2
  98. package/dashboard/dist/assets/{ProcessDetailPage-zwd0HCJl.js.map → ProcessDetailPage-DS_t9DcR.js.map} +1 -1
  99. package/dashboard/dist/assets/{ProcessesListPage-DnfmK6jf.js → ProcessesListPage-Ch2tSICc.js} +2 -2
  100. package/dashboard/dist/assets/{ProcessesListPage-DnfmK6jf.js.map → ProcessesListPage-Ch2tSICc.js.map} +1 -1
  101. package/dashboard/dist/assets/{RoleDetailPage-axZtFPC_.js → RoleDetailPage-DVbtnTvn.js} +3 -3
  102. package/dashboard/dist/assets/{RoleDetailPage-axZtFPC_.js.map → RoleDetailPage-DVbtnTvn.js.map} +1 -1
  103. package/dashboard/dist/assets/{RolePill-EocCXZh0.js → RolePill-C0hExOmI.js} +2 -2
  104. package/dashboard/dist/assets/{RolePill-EocCXZh0.js.map → RolePill-C0hExOmI.js.map} +1 -1
  105. package/dashboard/dist/assets/{RolesPage-DN6yqH7-.js → RolesPage-CK6FjD5P.js} +2 -2
  106. package/dashboard/dist/assets/{RolesPage-DN6yqH7-.js.map → RolesPage-CK6FjD5P.js.map} +1 -1
  107. package/dashboard/dist/assets/RunAsSelector-ImueSaJ4.js +2 -0
  108. package/dashboard/dist/assets/{RunAsSelector-DrGsUhL8.js.map → RunAsSelector-ImueSaJ4.js.map} +1 -1
  109. package/dashboard/dist/assets/{ScanCodesPage-BmQjEyWZ.js → ScanCodesPage-CDqLJuCq.js} +2 -2
  110. package/dashboard/dist/assets/{ScanCodesPage-BmQjEyWZ.js.map → ScanCodesPage-CDqLJuCq.js.map} +1 -1
  111. package/dashboard/dist/assets/ScanSchemeDetailPage-DO6qtJdM.js +2 -0
  112. package/dashboard/dist/assets/ScanSchemeDetailPage-DO6qtJdM.js.map +1 -0
  113. package/dashboard/dist/assets/ScanStationPage-ID3xMhds.js +2 -0
  114. package/dashboard/dist/assets/ScanStationPage-ID3xMhds.js.map +1 -0
  115. package/dashboard/dist/assets/{ScopeBadge-H5dEqeHi.js → ScopeBadge-BBQvz4pj.js} +2 -2
  116. package/dashboard/dist/assets/{ScopeBadge-H5dEqeHi.js.map → ScopeBadge-BBQvz4pj.js.map} +1 -1
  117. package/dashboard/dist/assets/StatusBadge-BDeUwPtb.js +2 -0
  118. package/dashboard/dist/assets/StatusBadge-BDeUwPtb.js.map +1 -0
  119. package/dashboard/dist/assets/{StickyPagination-9VkHiOsT.js → StickyPagination-XA1krmz5.js} +2 -2
  120. package/dashboard/dist/assets/{StickyPagination-9VkHiOsT.js.map → StickyPagination-XA1krmz5.js.map} +1 -1
  121. package/dashboard/dist/assets/{StreamMessageDetail-C37J6Qyz.js → StreamMessageDetail-DziA1g1e.js} +2 -2
  122. package/dashboard/dist/assets/{StreamMessageDetail-C37J6Qyz.js.map → StreamMessageDetail-DziA1g1e.js.map} +1 -1
  123. package/dashboard/dist/assets/{SwimlaneTimeline-NVGsBIX-.js → SwimlaneTimeline-DTNEnHiF.js} +2 -2
  124. package/dashboard/dist/assets/{SwimlaneTimeline-NVGsBIX-.js.map → SwimlaneTimeline-DTNEnHiF.js.map} +1 -1
  125. package/dashboard/dist/assets/{TagInput-Ch5u6iPH.js → TagInput-BXxXs1JD.js} +2 -2
  126. package/dashboard/dist/assets/{TagInput-Ch5u6iPH.js.map → TagInput-BXxXs1JD.js.map} +1 -1
  127. package/dashboard/dist/assets/{TaskDetailPage-5sbMHi5U.js → TaskDetailPage-U19sJHAI.js} +2 -2
  128. package/dashboard/dist/assets/{TaskDetailPage-5sbMHi5U.js.map → TaskDetailPage-U19sJHAI.js.map} +1 -1
  129. package/dashboard/dist/assets/{TaskQueuePill-Bz146p-P.js → TaskQueuePill-BKGJBVZG.js} +2 -2
  130. package/dashboard/dist/assets/{TaskQueuePill-Bz146p-P.js.map → TaskQueuePill-BKGJBVZG.js.map} +1 -1
  131. package/dashboard/dist/assets/{TasksListPage-C9AN7IBb.js → TasksListPage-jc4Xk7kI.js} +2 -2
  132. package/dashboard/dist/assets/{TasksListPage-C9AN7IBb.js.map → TasksListPage-jc4Xk7kI.js.map} +1 -1
  133. package/dashboard/dist/assets/{TimeAgo-CsbQGlSd.js → TimeAgo-GWgJ0LVq.js} +2 -2
  134. package/dashboard/dist/assets/{TimeAgo-CsbQGlSd.js.map → TimeAgo-GWgJ0LVq.js.map} +1 -1
  135. package/dashboard/dist/assets/{TimestampCell-DlbIkV-G.js → TimestampCell-Dk1TVsFV.js} +2 -2
  136. package/dashboard/dist/assets/{TimestampCell-DlbIkV-G.js.map → TimestampCell-Dk1TVsFV.js.map} +1 -1
  137. package/dashboard/dist/assets/{ToolPill-sj8OkBB0.js → ToolPill-BY6zLSfA.js} +2 -2
  138. package/dashboard/dist/assets/{ToolPill-sj8OkBB0.js.map → ToolPill-BY6zLSfA.js.map} +1 -1
  139. package/dashboard/dist/assets/{ToolTestPanel-BKbLocvr.js → ToolTestPanel-BKcqnR68.js} +2 -2
  140. package/dashboard/dist/assets/{ToolTestPanel-BKbLocvr.js.map → ToolTestPanel-BKcqnR68.js.map} +1 -1
  141. package/dashboard/dist/assets/{TopicDetailPage-fOnTfDso.js → TopicDetailPage-D8GcDu_0.js} +4 -4
  142. package/dashboard/dist/assets/{TopicDetailPage-fOnTfDso.js.map → TopicDetailPage-D8GcDu_0.js.map} +1 -1
  143. package/dashboard/dist/assets/{TopicsPage-BoVkp7DM.js → TopicsPage-BT9LV3yH.js} +2 -2
  144. package/dashboard/dist/assets/{TopicsPage-BoVkp7DM.js.map → TopicsPage-BT9LV3yH.js.map} +1 -1
  145. package/dashboard/dist/assets/UserName-BrwZnLjU.js +2 -0
  146. package/dashboard/dist/assets/{UserName-0gjVPU_U.js.map → UserName-BrwZnLjU.js.map} +1 -1
  147. package/dashboard/dist/assets/WorkflowExecutionPage-CldfHwky.js +2 -0
  148. package/dashboard/dist/assets/WorkflowExecutionPage-CldfHwky.js.map +1 -0
  149. package/dashboard/dist/assets/{WorkflowPill-BcA7S3gI.js → WorkflowPill-qp5UF3-y.js} +2 -2
  150. package/dashboard/dist/assets/{WorkflowPill-BcA7S3gI.js.map → WorkflowPill-qp5UF3-y.js.map} +1 -1
  151. package/dashboard/dist/assets/{WorkflowsDashboard-Bzvz6tTY.js → WorkflowsDashboard-DkyGkxW1.js} +2 -2
  152. package/dashboard/dist/assets/{WorkflowsDashboard-Bzvz6tTY.js.map → WorkflowsDashboard-DkyGkxW1.js.map} +1 -1
  153. package/dashboard/dist/assets/{WorkflowsOverview-BkcRU4Ej.js → WorkflowsOverview-DACADuUE.js} +2 -2
  154. package/dashboard/dist/assets/{WorkflowsOverview-BkcRU4Ej.js.map → WorkflowsOverview-DACADuUE.js.map} +1 -1
  155. package/dashboard/dist/assets/{YamlWorkflowDetailPage-CmM78sYi.js → YamlWorkflowDetailPage-DSAjzido.js} +2 -2
  156. package/dashboard/dist/assets/{YamlWorkflowDetailPage-CmM78sYi.js.map → YamlWorkflowDetailPage-DSAjzido.js.map} +1 -1
  157. package/dashboard/dist/assets/{YamlWorkflowsPage-Dp6vG1au.js → YamlWorkflowsPage-CqoSFz5B.js} +2 -2
  158. package/dashboard/dist/assets/{YamlWorkflowsPage-Dp6vG1au.js.map → YamlWorkflowsPage-CqoSFz5B.js.map} +1 -1
  159. package/dashboard/dist/assets/{agents-MeqzOPD6.js → agents-Cg_e-aaf.js} +2 -2
  160. package/dashboard/dist/assets/{agents-MeqzOPD6.js.map → agents-Cg_e-aaf.js.map} +1 -1
  161. package/dashboard/dist/assets/{bots-DTGXnvX_.js → bots-B047yNJ0.js} +2 -2
  162. package/dashboard/dist/assets/{bots-DTGXnvX_.js.map → bots-B047yNJ0.js.map} +1 -1
  163. package/dashboard/dist/assets/{capabilities-BjlARR7F.js → capabilities-CI1dbCDk.js} +2 -2
  164. package/dashboard/dist/assets/{capabilities-BjlARR7F.js.map → capabilities-CI1dbCDk.js.map} +1 -1
  165. package/dashboard/dist/assets/{controlplane-DMYI0OaL.js → controlplane-Cy7snw7f.js} +2 -2
  166. package/dashboard/dist/assets/{controlplane-DMYI0OaL.js.map → controlplane-Cy7snw7f.js.map} +1 -1
  167. package/dashboard/dist/assets/{escalation-columns-BMO_H3cb.js → escalation-columns-BNrONMYj.js} +2 -2
  168. package/dashboard/dist/assets/{escalation-columns-BMO_H3cb.js.map → escalation-columns-BNrONMYj.js.map} +1 -1
  169. package/dashboard/dist/assets/index-B6Grf1WQ.js +6 -0
  170. package/dashboard/dist/assets/index-B6Grf1WQ.js.map +1 -0
  171. package/dashboard/dist/assets/{index-D3iDAWK2.js → index-Bf3hVGXZ.js} +2 -2
  172. package/dashboard/dist/assets/{index-D3iDAWK2.js.map → index-Bf3hVGXZ.js.map} +1 -1
  173. package/dashboard/dist/assets/{index-D6kXz3H8.js → index-Bxd2sXqz.js} +2 -2
  174. package/dashboard/dist/assets/{index-D6kXz3H8.js.map → index-Bxd2sXqz.js.map} +1 -1
  175. package/dashboard/dist/assets/index-CJV2pWNH.css +1 -0
  176. package/dashboard/dist/assets/{index-CGCD5hTX.js → index-COKZW8Xx.js} +2 -2
  177. package/dashboard/dist/assets/{index-CGCD5hTX.js.map → index-COKZW8Xx.js.map} +1 -1
  178. package/dashboard/dist/assets/{index-k5vcLICm.js → index-C_y0lQ_o.js} +3 -3
  179. package/dashboard/dist/assets/{index-k5vcLICm.js.map → index-C_y0lQ_o.js.map} +1 -1
  180. package/dashboard/dist/assets/{index-3QEnMBNG.js → index-DAUV3eJ-.js} +2 -2
  181. package/dashboard/dist/assets/{index-3QEnMBNG.js.map → index-DAUV3eJ-.js.map} +1 -1
  182. package/dashboard/dist/assets/{index-DuhqzYwC.js → index-DVtIMrTb.js} +2 -2
  183. package/dashboard/dist/assets/{index-DuhqzYwC.js.map → index-DVtIMrTb.js.map} +1 -1
  184. package/dashboard/dist/assets/index-Ds5rGe-i.js +3 -0
  185. package/dashboard/dist/assets/index-Ds5rGe-i.js.map +1 -0
  186. package/dashboard/dist/assets/{index-B3FzpDEG.js → index-DyTb77Jb.js} +2 -2
  187. package/dashboard/dist/assets/{index-B3FzpDEG.js.map → index-DyTb77Jb.js.map} +1 -1
  188. package/dashboard/dist/assets/{index-Ch-OS1pk.js → index-Uk6N1qiH.js} +2 -2
  189. package/dashboard/dist/assets/{index-Ch-OS1pk.js.map → index-Uk6N1qiH.js.map} +1 -1
  190. package/dashboard/dist/assets/index-X3_AxcUk.js +2 -0
  191. package/dashboard/dist/assets/{index-Dsgqxdyh.js.map → index-X3_AxcUk.js.map} +1 -1
  192. package/dashboard/dist/assets/{index-BU4oujVO.js → index-lGfBW1PB.js} +29 -28
  193. package/dashboard/dist/assets/index-lGfBW1PB.js.map +1 -0
  194. package/dashboard/dist/assets/{index-CkkOh8y9.js → index-nUmEwQrg.js} +2 -2
  195. package/dashboard/dist/assets/{index-CkkOh8y9.js.map → index-nUmEwQrg.js.map} +1 -1
  196. package/dashboard/dist/assets/{knowledge-DAV1Jy7b.js → knowledge-DsIUzscY.js} +2 -2
  197. package/dashboard/dist/assets/{knowledge-DAV1Jy7b.js.map → knowledge-DsIUzscY.js.map} +1 -1
  198. package/dashboard/dist/assets/{mcp-CivbxL1P.js → mcp-D889kZ-c.js} +2 -2
  199. package/dashboard/dist/assets/{mcp-CivbxL1P.js.map → mcp-D889kZ-c.js.map} +1 -1
  200. package/dashboard/dist/assets/{mcp-query-CGvWNrgo.js → mcp-query-Cs9J2pVT.js} +2 -2
  201. package/dashboard/dist/assets/{mcp-query-CGvWNrgo.js.map → mcp-query-Cs9J2pVT.js.map} +1 -1
  202. package/dashboard/dist/assets/metadata-display-DHjqWkLG.js +2 -0
  203. package/dashboard/dist/assets/metadata-display-DHjqWkLG.js.map +1 -0
  204. package/dashboard/dist/assets/{personas-lI3aUr6t.js → personas-xHB16O-Q.js} +2 -2
  205. package/dashboard/dist/assets/{personas-lI3aUr6t.js.map → personas-xHB16O-Q.js.map} +1 -1
  206. package/dashboard/dist/assets/{pipelines-DjPfnTmx.js → pipelines-DnTPjw1v.js} +2 -2
  207. package/dashboard/dist/assets/{pipelines-DjPfnTmx.js.map → pipelines-DnTPjw1v.js.map} +1 -1
  208. package/dashboard/dist/assets/{tasks-Co_S55BO.js → tasks-BcDvp6dL.js} +2 -2
  209. package/dashboard/dist/assets/{tasks-Co_S55BO.js.map → tasks-BcDvp6dL.js.map} +1 -1
  210. package/dashboard/dist/assets/{topics-2IGhZXBi.js → topics-DXw6BNy5.js} +2 -2
  211. package/dashboard/dist/assets/{topics-2IGhZXBi.js.map → topics-DXw6BNy5.js.map} +1 -1
  212. package/dashboard/dist/assets/{useEventHooks-D0C5yke4.js → useEventHooks-C-bsD8zP.js} +2 -2
  213. package/dashboard/dist/assets/{useEventHooks-D0C5yke4.js.map → useEventHooks-C-bsD8zP.js.map} +1 -1
  214. package/dashboard/dist/assets/{useNamespace-LG52DTT-.js → useNamespace-wZCsEF6O.js} +2 -2
  215. package/dashboard/dist/assets/{useNamespace-LG52DTT-.js.map → useNamespace-wZCsEF6O.js.map} +1 -1
  216. package/dashboard/dist/assets/{useYamlActivityEvents-1IZGVpWC.js → useYamlActivityEvents-Cu_o4-ow.js} +2 -2
  217. package/dashboard/dist/assets/{useYamlActivityEvents-1IZGVpWC.js.map → useYamlActivityEvents-Cu_o4-ow.js.map} +1 -1
  218. package/dashboard/dist/assets/{users-C-eHT1i6.js → users-XpCq_umD.js} +2 -2
  219. package/dashboard/dist/assets/{users-C-eHT1i6.js.map → users-XpCq_umD.js.map} +1 -1
  220. package/dashboard/dist/assets/{vendor-icons-BPsNpK3Y.js → vendor-icons-BgsXTN4h.js} +145 -140
  221. package/dashboard/dist/assets/vendor-icons-BgsXTN4h.js.map +1 -0
  222. package/dashboard/dist/assets/{workflows-C16CeY4e.js → workflows-CMxHVqQ8.js} +2 -2
  223. package/dashboard/dist/assets/{workflows-C16CeY4e.js.map → workflows-CMxHVqQ8.js.map} +1 -1
  224. package/dashboard/dist/assets/{yaml-workflows-BBenayT9.js → yaml-workflows-kxOF5yEC.js} +2 -2
  225. package/dashboard/dist/assets/{yaml-workflows-BBenayT9.js.map → yaml-workflows-kxOF5yEC.js.map} +1 -1
  226. package/dashboard/dist/index.html +3 -3
  227. package/docs/api/http/escalations.md +34 -1
  228. package/docs/dashboard.md +2 -0
  229. package/docs/events.md +1 -1
  230. package/docs/hitl/iframe.md +56 -6
  231. package/docs/hitl/x-lt-footer.md +6 -0
  232. package/docs/hitl/x-lt-list-schema.md +4 -2
  233. package/package.json +1 -1
  234. package/dashboard/dist/assets/AvailableEscalationsPage-DDsmXjpi.js +0 -2
  235. package/dashboard/dist/assets/AvailableEscalationsPage-DDsmXjpi.js.map +0 -1
  236. package/dashboard/dist/assets/BotPicker-dUpw1wW6.js +0 -2
  237. package/dashboard/dist/assets/CapabilitiesPage-Ca2jEln-.js +0 -2
  238. package/dashboard/dist/assets/CountdownTimer-rnoWmFqx.js +0 -2
  239. package/dashboard/dist/assets/CountdownTimer-rnoWmFqx.js.map +0 -1
  240. package/dashboard/dist/assets/CustomDurationPicker-hlnadaFt.js +0 -2
  241. package/dashboard/dist/assets/CustomDurationPicker-hlnadaFt.js.map +0 -1
  242. package/dashboard/dist/assets/DataTable-Bir0Xs1p.js.map +0 -1
  243. package/dashboard/dist/assets/McpQueryPage-DRTKSPDR.js +0 -2
  244. package/dashboard/dist/assets/OperationsPage-BSl_oUAJ.js +0 -3
  245. package/dashboard/dist/assets/OperationsPage-BSl_oUAJ.js.map +0 -1
  246. package/dashboard/dist/assets/RunAsSelector-DrGsUhL8.js +0 -2
  247. package/dashboard/dist/assets/ScanSchemeDetailPage-VODehqGs.js +0 -2
  248. package/dashboard/dist/assets/ScanSchemeDetailPage-VODehqGs.js.map +0 -1
  249. package/dashboard/dist/assets/ScanStationPage-Y-9Gs7t5.js +0 -2
  250. package/dashboard/dist/assets/ScanStationPage-Y-9Gs7t5.js.map +0 -1
  251. package/dashboard/dist/assets/StatusBadge-DkgllZHv.js +0 -2
  252. package/dashboard/dist/assets/StatusBadge-DkgllZHv.js.map +0 -1
  253. package/dashboard/dist/assets/UserName-0gjVPU_U.js +0 -2
  254. package/dashboard/dist/assets/WorkflowExecutionPage-B28OxTS_.js +0 -2
  255. package/dashboard/dist/assets/WorkflowExecutionPage-B28OxTS_.js.map +0 -1
  256. package/dashboard/dist/assets/index-B5jxf81r.css +0 -1
  257. package/dashboard/dist/assets/index-BU4oujVO.js.map +0 -1
  258. package/dashboard/dist/assets/index-Dsgqxdyh.js +0 -2
  259. package/dashboard/dist/assets/index-DuyzcDuV.js +0 -6
  260. package/dashboard/dist/assets/index-DuyzcDuV.js.map +0 -1
  261. package/dashboard/dist/assets/index-LF1gEc6w.js +0 -3
  262. package/dashboard/dist/assets/index-LF1gEc6w.js.map +0 -1
  263. package/dashboard/dist/assets/vendor-icons-BPsNpK3Y.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{a as x,j as t}from"./vendor-query-RUZdMvN6.js";import{b as C,u as k}from"./workflows-C16CeY4e.js";import{b as $}from"./useEventHooks-D0C5yke4.js";import{P as D}from"./PageHeader-BpeBHqyc.js";import{S as h}from"./StatCard-BXQ8dD9Y.js";import{u as w}from"./vendor-react-CdqEC2zv.js";import"./index-BU4oujVO.js";import"./vendor-icons-BPsNpK3Y.js";const v=[{label:"1h",ms:36e5},{label:"24h",ms:864e5},{label:"7d",ms:6048e5},{label:"30d",ms:2592e6}];function T(r){return r<1e3?`${Math.round(r)}ms`:r<6e4?`${(r/1e3).toFixed(1)}s`:r<36e5?`${(r/6e4).toFixed(1)}m`:`${(r/36e5).toFixed(1)}h`}function p({value:r,colorClass:o,onClick:f}){return r===0?t.jsx("span",{className:"text-text-tertiary",children:"0"}):t.jsx("button",{onClick:f,className:`${o} hover:underline tabular-nums font-medium`,children:r})}function _(){$();const r=w(),[o,f]=x.useState("24h"),{data:c}=C({limit:500}),{data:g}=k(),b=x.useMemo(()=>{const e=v.find(i=>i.label===o);return Date.now()-e.ms},[o]),n=x.useMemo(()=>((c==null?void 0:c.jobs)??[]).filter(e=>new Date(e.created_at).getTime()>=b),[c==null?void 0:c.jobs,b]),j=x.useMemo(()=>{const e=new Map;for(const a of n){const s=e.get(a.entity)??{total:0,running:0,completed:0,failed:0,durations:[]};if(s.total++,a.status==="running"&&s.running++,a.status==="completed"){s.completed++;const m=new Date(a.updated_at).getTime()-new Date(a.created_at).getTime();m>0&&s.durations.push(m)}a.status==="failed"&&s.failed++,e.set(a.entity,s)}const i=[];for(const[a,s]of e)i.push({type:a,...s,avgDuration:s.durations.length>0?s.durations.reduce((m,N)=>m+N,0)/s.durations.length:null});return i.sort((a,s)=>s.total-a.total)},[n]),u=x.useMemo(()=>({total:n.length,running:n.filter(e=>e.status==="running").length,completed:n.filter(e=>e.status==="completed").length,failed:n.filter(e=>e.status==="failed").length}),[n]),y=(g==null?void 0:g.length)??0,l=(e,i)=>{const a=new URLSearchParams;e&&a.set("entity",e),i&&a.set("status",i);const s=a.toString();r(`/workflows/executions${s?`?${s}`:""}`)},d="pb-2 text-2xs font-semibold uppercase tracking-widest text-text-tertiary";return t.jsxs("div",{children:[t.jsx(D,{title:"Workflows",actions:t.jsxs("span",{className:"text-xs text-text-tertiary",children:[y," certified type",y!==1?"s":""]})}),t.jsx("div",{className:"flex items-center gap-1 mb-6",children:v.map(e=>t.jsx("button",{onClick:()=>f(e.label),className:`px-3 py-1 text-xs rounded-full transition-colors ${o===e.label?"bg-accent text-text-inverse":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:e.label},e.label))}),t.jsxs("div",{className:"grid grid-cols-4 gap-4 mb-8",children:[t.jsx(h,{label:"Total",value:u.total,onClick:()=>l()}),t.jsx(h,{label:"Running",value:u.running,colorClass:"text-status-active",onClick:()=>l(void 0,"running")}),t.jsx(h,{label:"Completed",value:u.completed,colorClass:"text-status-success",onClick:()=>l(void 0,"completed")}),t.jsx(h,{label:"Failed",value:u.failed,colorClass:"text-status-error",onClick:()=>l(void 0,"failed")})]}),j.length>0&&t.jsxs("table",{className:"w-full text-left",children:[t.jsx("thead",{children:t.jsxs("tr",{className:"border-b border-surface-border",children:[t.jsx("th",{className:d,children:"Type"}),t.jsx("th",{className:`${d} text-right w-20`,children:"Total"}),t.jsx("th",{className:`${d} text-right w-20`,children:"Running"}),t.jsx("th",{className:`${d} text-right w-24`,children:"Completed"}),t.jsx("th",{className:`${d} text-right w-20`,children:"Failed"}),t.jsx("th",{className:`${d} text-right w-28`,children:"Avg Duration"})]})}),t.jsx("tbody",{children:j.map(e=>t.jsxs("tr",{className:"border-b border-surface-border last:border-b-0",children:[t.jsx("td",{className:"py-3 text-sm font-mono text-text-primary",children:t.jsx("button",{onClick:()=>l(e.type),className:"hover:text-accent hover:underline",children:e.type})}),t.jsx("td",{className:"py-3 text-sm text-right",children:t.jsx(p,{value:e.total,colorClass:"text-text-secondary",onClick:()=>l(e.type)})}),t.jsx("td",{className:"py-3 text-sm text-right",children:t.jsx(p,{value:e.running,colorClass:"text-status-active",onClick:()=>l(e.type,"running")})}),t.jsx("td",{className:"py-3 text-sm text-right",children:t.jsx(p,{value:e.completed,colorClass:"text-status-success",onClick:()=>l(e.type,"completed")})}),t.jsx("td",{className:"py-3 text-sm text-right",children:t.jsx(p,{value:e.failed,colorClass:"text-status-error",onClick:()=>l(e.type,"failed")})}),t.jsx("td",{className:"py-3 text-sm font-mono text-text-secondary text-right",children:e.avgDuration!==null?T(e.avgDuration):"—"})]},e.type))})]}),j.length===0&&t.jsx("div",{className:"py-16 text-center",children:t.jsxs("p",{className:"text-sm text-text-tertiary",children:["No workflow activity in the last ",o]})})]})}export{_ as WorkflowsOverview};
2
- //# sourceMappingURL=WorkflowsOverview-BkcRU4Ej.js.map
1
+ import{a as x,j as t}from"./vendor-query-RUZdMvN6.js";import{b as C,u as k}from"./workflows-CMxHVqQ8.js";import{b as $}from"./useEventHooks-C-bsD8zP.js";import{P as D}from"./PageHeader-CDDpHpdv.js";import{S as h}from"./StatCard-BXQ8dD9Y.js";import{u as w}from"./vendor-react-CdqEC2zv.js";import"./index-lGfBW1PB.js";import"./vendor-icons-BgsXTN4h.js";const v=[{label:"1h",ms:36e5},{label:"24h",ms:864e5},{label:"7d",ms:6048e5},{label:"30d",ms:2592e6}];function T(r){return r<1e3?`${Math.round(r)}ms`:r<6e4?`${(r/1e3).toFixed(1)}s`:r<36e5?`${(r/6e4).toFixed(1)}m`:`${(r/36e5).toFixed(1)}h`}function p({value:r,colorClass:o,onClick:f}){return r===0?t.jsx("span",{className:"text-text-tertiary",children:"0"}):t.jsx("button",{onClick:f,className:`${o} hover:underline tabular-nums font-medium`,children:r})}function _(){$();const r=w(),[o,f]=x.useState("24h"),{data:c}=C({limit:500}),{data:g}=k(),b=x.useMemo(()=>{const e=v.find(i=>i.label===o);return Date.now()-e.ms},[o]),n=x.useMemo(()=>((c==null?void 0:c.jobs)??[]).filter(e=>new Date(e.created_at).getTime()>=b),[c==null?void 0:c.jobs,b]),j=x.useMemo(()=>{const e=new Map;for(const a of n){const s=e.get(a.entity)??{total:0,running:0,completed:0,failed:0,durations:[]};if(s.total++,a.status==="running"&&s.running++,a.status==="completed"){s.completed++;const m=new Date(a.updated_at).getTime()-new Date(a.created_at).getTime();m>0&&s.durations.push(m)}a.status==="failed"&&s.failed++,e.set(a.entity,s)}const i=[];for(const[a,s]of e)i.push({type:a,...s,avgDuration:s.durations.length>0?s.durations.reduce((m,N)=>m+N,0)/s.durations.length:null});return i.sort((a,s)=>s.total-a.total)},[n]),u=x.useMemo(()=>({total:n.length,running:n.filter(e=>e.status==="running").length,completed:n.filter(e=>e.status==="completed").length,failed:n.filter(e=>e.status==="failed").length}),[n]),y=(g==null?void 0:g.length)??0,l=(e,i)=>{const a=new URLSearchParams;e&&a.set("entity",e),i&&a.set("status",i);const s=a.toString();r(`/workflows/executions${s?`?${s}`:""}`)},d="pb-2 text-2xs font-semibold uppercase tracking-widest text-text-tertiary";return t.jsxs("div",{children:[t.jsx(D,{title:"Workflows",actions:t.jsxs("span",{className:"text-xs text-text-tertiary",children:[y," certified type",y!==1?"s":""]})}),t.jsx("div",{className:"flex items-center gap-1 mb-6",children:v.map(e=>t.jsx("button",{onClick:()=>f(e.label),className:`px-3 py-1 text-xs rounded-full transition-colors ${o===e.label?"bg-accent text-text-inverse":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:e.label},e.label))}),t.jsxs("div",{className:"grid grid-cols-4 gap-4 mb-8",children:[t.jsx(h,{label:"Total",value:u.total,onClick:()=>l()}),t.jsx(h,{label:"Running",value:u.running,colorClass:"text-status-active",onClick:()=>l(void 0,"running")}),t.jsx(h,{label:"Completed",value:u.completed,colorClass:"text-status-success",onClick:()=>l(void 0,"completed")}),t.jsx(h,{label:"Failed",value:u.failed,colorClass:"text-status-error",onClick:()=>l(void 0,"failed")})]}),j.length>0&&t.jsxs("table",{className:"w-full text-left",children:[t.jsx("thead",{children:t.jsxs("tr",{className:"border-b border-surface-border",children:[t.jsx("th",{className:d,children:"Type"}),t.jsx("th",{className:`${d} text-right w-20`,children:"Total"}),t.jsx("th",{className:`${d} text-right w-20`,children:"Running"}),t.jsx("th",{className:`${d} text-right w-24`,children:"Completed"}),t.jsx("th",{className:`${d} text-right w-20`,children:"Failed"}),t.jsx("th",{className:`${d} text-right w-28`,children:"Avg Duration"})]})}),t.jsx("tbody",{children:j.map(e=>t.jsxs("tr",{className:"border-b border-surface-border last:border-b-0",children:[t.jsx("td",{className:"py-3 text-sm font-mono text-text-primary",children:t.jsx("button",{onClick:()=>l(e.type),className:"hover:text-accent hover:underline",children:e.type})}),t.jsx("td",{className:"py-3 text-sm text-right",children:t.jsx(p,{value:e.total,colorClass:"text-text-secondary",onClick:()=>l(e.type)})}),t.jsx("td",{className:"py-3 text-sm text-right",children:t.jsx(p,{value:e.running,colorClass:"text-status-active",onClick:()=>l(e.type,"running")})}),t.jsx("td",{className:"py-3 text-sm text-right",children:t.jsx(p,{value:e.completed,colorClass:"text-status-success",onClick:()=>l(e.type,"completed")})}),t.jsx("td",{className:"py-3 text-sm text-right",children:t.jsx(p,{value:e.failed,colorClass:"text-status-error",onClick:()=>l(e.type,"failed")})}),t.jsx("td",{className:"py-3 text-sm font-mono text-text-secondary text-right",children:e.avgDuration!==null?T(e.avgDuration):"—"})]},e.type))})]}),j.length===0&&t.jsx("div",{className:"py-16 text-center",children:t.jsxs("p",{className:"text-sm text-text-tertiary",children:["No workflow activity in the last ",o]})})]})}export{_ as WorkflowsOverview};
2
+ //# sourceMappingURL=WorkflowsOverview-DACADuUE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowsOverview-BkcRU4Ej.js","sources":["../../src/pages/workflows/WorkflowsOverview.tsx"],"sourcesContent":["import { useState, useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { useJobs, useWorkflowConfigs } from '../../api/workflows';\nimport { useWorkflowListEvents } from '../../hooks/useEventHooks';\nimport { PageHeader } from '../../components/common/layout/PageHeader';\nimport { StatCard } from '../../components/common/data/StatCard';\n\n// ── Duration filter ──────────────────────────────────────────────────────────\n\nconst DURATIONS = [\n { label: '1h', ms: 3_600_000 },\n { label: '24h', ms: 86_400_000 },\n { label: '7d', ms: 604_800_000 },\n { label: '30d', ms: 2_592_000_000 },\n] as const;\n\ntype DurationLabel = (typeof DURATIONS)[number]['label'];\n\n// ── Helpers ──────────────────────────────────────────────────────────────────\n\nfunction formatDuration(ms: number): string {\n if (ms < 1000) return `${Math.round(ms)}ms`;\n if (ms < 60_000) return `${(ms / 1000).toFixed(1)}s`;\n if (ms < 3_600_000) return `${(ms / 60_000).toFixed(1)}m`;\n return `${(ms / 3_600_000).toFixed(1)}h`;\n}\n\ninterface TypeStats {\n type: string;\n total: number;\n running: number;\n completed: number;\n failed: number;\n avgDuration: number | null;\n}\n\n// ── Clickable stat cell ──────────────────────────────────────────────────────\n\nfunction StatCell({\n value,\n colorClass,\n onClick,\n}: {\n value: number;\n colorClass: string;\n onClick: () => void;\n}) {\n if (value === 0) {\n return <span className=\"text-text-tertiary\">0</span>;\n }\n return (\n <button\n onClick={onClick}\n className={`${colorClass} hover:underline tabular-nums font-medium`}\n >\n {value}\n </button>\n );\n}\n\n// ── Page ─────────────────────────────────────────────────────────────────────\n\nexport function WorkflowsOverview() {\n useWorkflowListEvents();\n const navigate = useNavigate();\n const [duration, setDuration] = useState<DurationLabel>('24h');\n\n const { data: allJobs } = useJobs({ limit: 500 });\n const { data: configs } = useWorkflowConfigs();\n\n const cutoff = useMemo(() => {\n const d = DURATIONS.find((d) => d.label === duration)!;\n return Date.now() - d.ms;\n }, [duration]);\n\n const jobs = useMemo(\n () => (allJobs?.jobs ?? []).filter((j) => new Date(j.created_at).getTime() >= cutoff),\n [allJobs?.jobs, cutoff],\n );\n\n const byType = useMemo(() => {\n const map = new Map<string, { total: number; running: number; completed: number; failed: number; durations: number[] }>();\n for (const j of jobs) {\n const entry = map.get(j.entity) ?? { total: 0, running: 0, completed: 0, failed: 0, durations: [] };\n entry.total++;\n if (j.status === 'running') entry.running++;\n if (j.status === 'completed') {\n entry.completed++;\n const dur = new Date(j.updated_at).getTime() - new Date(j.created_at).getTime();\n if (dur > 0) entry.durations.push(dur);\n }\n if (j.status === 'failed') entry.failed++;\n map.set(j.entity, entry);\n }\n\n const result: TypeStats[] = [];\n for (const [type, stats] of map) {\n result.push({\n type,\n ...stats,\n avgDuration: stats.durations.length > 0\n ? stats.durations.reduce((a, b) => a + b, 0) / stats.durations.length\n : null,\n });\n }\n return result.sort((a, b) => b.total - a.total);\n }, [jobs]);\n\n // Totals\n const totals = useMemo(() => ({\n total: jobs.length,\n running: jobs.filter((j) => j.status === 'running').length,\n completed: jobs.filter((j) => j.status === 'completed').length,\n failed: jobs.filter((j) => j.status === 'failed').length,\n }), [jobs]);\n\n const registered = configs?.length ?? 0;\n\n const goToList = (entity?: string, status?: string) => {\n const params = new URLSearchParams();\n if (entity) params.set('entity', entity);\n if (status) params.set('status', status);\n const qs = params.toString();\n navigate(`/workflows/executions${qs ? `?${qs}` : ''}`);\n };\n\n const thCls = 'pb-2 text-2xs font-semibold uppercase tracking-widest text-text-tertiary';\n\n return (\n <div>\n <PageHeader\n title=\"Workflows\"\n actions={\n <span className=\"text-xs text-text-tertiary\">\n {registered} certified type{registered !== 1 ? 's' : ''}\n </span>\n }\n />\n\n {/* Duration tabs */}\n <div className=\"flex items-center gap-1 mb-6\">\n {DURATIONS.map((d) => (\n <button\n key={d.label}\n onClick={() => setDuration(d.label)}\n className={`px-3 py-1 text-xs rounded-full transition-colors ${\n duration === d.label\n ? 'bg-accent text-text-inverse'\n : 'text-text-tertiary hover:text-text-primary hover:bg-surface-hover'\n }`}\n >\n {d.label}\n </button>\n ))}\n </div>\n\n {/* Summary cards */}\n <div className=\"grid grid-cols-4 gap-4 mb-8\">\n <StatCard label=\"Total\" value={totals.total} onClick={() => goToList()} />\n <StatCard label=\"Running\" value={totals.running} colorClass=\"text-status-active\" onClick={() => goToList(undefined, 'running')} />\n <StatCard label=\"Completed\" value={totals.completed} colorClass=\"text-status-success\" onClick={() => goToList(undefined, 'completed')} />\n <StatCard label=\"Failed\" value={totals.failed} colorClass=\"text-status-error\" onClick={() => goToList(undefined, 'failed')} />\n </div>\n\n {/* By-type table */}\n {byType.length > 0 && (\n <table className=\"w-full text-left\">\n <thead>\n <tr className=\"border-b border-surface-border\">\n <th className={thCls}>Type</th>\n <th className={`${thCls} text-right w-20`}>Total</th>\n <th className={`${thCls} text-right w-20`}>Running</th>\n <th className={`${thCls} text-right w-24`}>Completed</th>\n <th className={`${thCls} text-right w-20`}>Failed</th>\n <th className={`${thCls} text-right w-28`}>Avg Duration</th>\n </tr>\n </thead>\n <tbody>\n {byType.map((row) => (\n <tr key={row.type} className=\"border-b border-surface-border last:border-b-0\">\n <td className=\"py-3 text-sm font-mono text-text-primary\">\n <button\n onClick={() => goToList(row.type)}\n className=\"hover:text-accent hover:underline\"\n >\n {row.type}\n </button>\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.total} colorClass=\"text-text-secondary\" onClick={() => goToList(row.type)} />\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.running} colorClass=\"text-status-active\" onClick={() => goToList(row.type, 'running')} />\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.completed} colorClass=\"text-status-success\" onClick={() => goToList(row.type, 'completed')} />\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.failed} colorClass=\"text-status-error\" onClick={() => goToList(row.type, 'failed')} />\n </td>\n <td className=\"py-3 text-sm font-mono text-text-secondary text-right\">\n {row.avgDuration !== null ? formatDuration(row.avgDuration) : '—'}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n )}\n\n {byType.length === 0 && (\n <div className=\"py-16 text-center\">\n <p className=\"text-sm text-text-tertiary\">\n No workflow activity in the last {duration}\n </p>\n </div>\n )}\n </div>\n );\n}"],"names":["DURATIONS","formatDuration","ms","StatCell","value","colorClass","onClick","jsx","WorkflowsOverview","useWorkflowListEvents","navigate","useNavigate","duration","setDuration","useState","allJobs","useJobs","configs","useWorkflowConfigs","cutoff","useMemo","d","jobs","j","byType","map","entry","dur","result","type","stats","a","b","totals","registered","goToList","entity","status","params","qs","thCls","PageHeader","jsxs","StatCard","row"],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowsOverview-DACADuUE.js","sources":["../../src/pages/workflows/WorkflowsOverview.tsx"],"sourcesContent":["import { useState, useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { useJobs, useWorkflowConfigs } from '../../api/workflows';\nimport { useWorkflowListEvents } from '../../hooks/useEventHooks';\nimport { PageHeader } from '../../components/common/layout/PageHeader';\nimport { StatCard } from '../../components/common/data/StatCard';\n\n// ── Duration filter ──────────────────────────────────────────────────────────\n\nconst DURATIONS = [\n { label: '1h', ms: 3_600_000 },\n { label: '24h', ms: 86_400_000 },\n { label: '7d', ms: 604_800_000 },\n { label: '30d', ms: 2_592_000_000 },\n] as const;\n\ntype DurationLabel = (typeof DURATIONS)[number]['label'];\n\n// ── Helpers ──────────────────────────────────────────────────────────────────\n\nfunction formatDuration(ms: number): string {\n if (ms < 1000) return `${Math.round(ms)}ms`;\n if (ms < 60_000) return `${(ms / 1000).toFixed(1)}s`;\n if (ms < 3_600_000) return `${(ms / 60_000).toFixed(1)}m`;\n return `${(ms / 3_600_000).toFixed(1)}h`;\n}\n\ninterface TypeStats {\n type: string;\n total: number;\n running: number;\n completed: number;\n failed: number;\n avgDuration: number | null;\n}\n\n// ── Clickable stat cell ──────────────────────────────────────────────────────\n\nfunction StatCell({\n value,\n colorClass,\n onClick,\n}: {\n value: number;\n colorClass: string;\n onClick: () => void;\n}) {\n if (value === 0) {\n return <span className=\"text-text-tertiary\">0</span>;\n }\n return (\n <button\n onClick={onClick}\n className={`${colorClass} hover:underline tabular-nums font-medium`}\n >\n {value}\n </button>\n );\n}\n\n// ── Page ─────────────────────────────────────────────────────────────────────\n\nexport function WorkflowsOverview() {\n useWorkflowListEvents();\n const navigate = useNavigate();\n const [duration, setDuration] = useState<DurationLabel>('24h');\n\n const { data: allJobs } = useJobs({ limit: 500 });\n const { data: configs } = useWorkflowConfigs();\n\n const cutoff = useMemo(() => {\n const d = DURATIONS.find((d) => d.label === duration)!;\n return Date.now() - d.ms;\n }, [duration]);\n\n const jobs = useMemo(\n () => (allJobs?.jobs ?? []).filter((j) => new Date(j.created_at).getTime() >= cutoff),\n [allJobs?.jobs, cutoff],\n );\n\n const byType = useMemo(() => {\n const map = new Map<string, { total: number; running: number; completed: number; failed: number; durations: number[] }>();\n for (const j of jobs) {\n const entry = map.get(j.entity) ?? { total: 0, running: 0, completed: 0, failed: 0, durations: [] };\n entry.total++;\n if (j.status === 'running') entry.running++;\n if (j.status === 'completed') {\n entry.completed++;\n const dur = new Date(j.updated_at).getTime() - new Date(j.created_at).getTime();\n if (dur > 0) entry.durations.push(dur);\n }\n if (j.status === 'failed') entry.failed++;\n map.set(j.entity, entry);\n }\n\n const result: TypeStats[] = [];\n for (const [type, stats] of map) {\n result.push({\n type,\n ...stats,\n avgDuration: stats.durations.length > 0\n ? stats.durations.reduce((a, b) => a + b, 0) / stats.durations.length\n : null,\n });\n }\n return result.sort((a, b) => b.total - a.total);\n }, [jobs]);\n\n // Totals\n const totals = useMemo(() => ({\n total: jobs.length,\n running: jobs.filter((j) => j.status === 'running').length,\n completed: jobs.filter((j) => j.status === 'completed').length,\n failed: jobs.filter((j) => j.status === 'failed').length,\n }), [jobs]);\n\n const registered = configs?.length ?? 0;\n\n const goToList = (entity?: string, status?: string) => {\n const params = new URLSearchParams();\n if (entity) params.set('entity', entity);\n if (status) params.set('status', status);\n const qs = params.toString();\n navigate(`/workflows/executions${qs ? `?${qs}` : ''}`);\n };\n\n const thCls = 'pb-2 text-2xs font-semibold uppercase tracking-widest text-text-tertiary';\n\n return (\n <div>\n <PageHeader\n title=\"Workflows\"\n actions={\n <span className=\"text-xs text-text-tertiary\">\n {registered} certified type{registered !== 1 ? 's' : ''}\n </span>\n }\n />\n\n {/* Duration tabs */}\n <div className=\"flex items-center gap-1 mb-6\">\n {DURATIONS.map((d) => (\n <button\n key={d.label}\n onClick={() => setDuration(d.label)}\n className={`px-3 py-1 text-xs rounded-full transition-colors ${\n duration === d.label\n ? 'bg-accent text-text-inverse'\n : 'text-text-tertiary hover:text-text-primary hover:bg-surface-hover'\n }`}\n >\n {d.label}\n </button>\n ))}\n </div>\n\n {/* Summary cards */}\n <div className=\"grid grid-cols-4 gap-4 mb-8\">\n <StatCard label=\"Total\" value={totals.total} onClick={() => goToList()} />\n <StatCard label=\"Running\" value={totals.running} colorClass=\"text-status-active\" onClick={() => goToList(undefined, 'running')} />\n <StatCard label=\"Completed\" value={totals.completed} colorClass=\"text-status-success\" onClick={() => goToList(undefined, 'completed')} />\n <StatCard label=\"Failed\" value={totals.failed} colorClass=\"text-status-error\" onClick={() => goToList(undefined, 'failed')} />\n </div>\n\n {/* By-type table */}\n {byType.length > 0 && (\n <table className=\"w-full text-left\">\n <thead>\n <tr className=\"border-b border-surface-border\">\n <th className={thCls}>Type</th>\n <th className={`${thCls} text-right w-20`}>Total</th>\n <th className={`${thCls} text-right w-20`}>Running</th>\n <th className={`${thCls} text-right w-24`}>Completed</th>\n <th className={`${thCls} text-right w-20`}>Failed</th>\n <th className={`${thCls} text-right w-28`}>Avg Duration</th>\n </tr>\n </thead>\n <tbody>\n {byType.map((row) => (\n <tr key={row.type} className=\"border-b border-surface-border last:border-b-0\">\n <td className=\"py-3 text-sm font-mono text-text-primary\">\n <button\n onClick={() => goToList(row.type)}\n className=\"hover:text-accent hover:underline\"\n >\n {row.type}\n </button>\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.total} colorClass=\"text-text-secondary\" onClick={() => goToList(row.type)} />\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.running} colorClass=\"text-status-active\" onClick={() => goToList(row.type, 'running')} />\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.completed} colorClass=\"text-status-success\" onClick={() => goToList(row.type, 'completed')} />\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.failed} colorClass=\"text-status-error\" onClick={() => goToList(row.type, 'failed')} />\n </td>\n <td className=\"py-3 text-sm font-mono text-text-secondary text-right\">\n {row.avgDuration !== null ? formatDuration(row.avgDuration) : '—'}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n )}\n\n {byType.length === 0 && (\n <div className=\"py-16 text-center\">\n <p className=\"text-sm text-text-tertiary\">\n No workflow activity in the last {duration}\n </p>\n </div>\n )}\n </div>\n );\n}"],"names":["DURATIONS","formatDuration","ms","StatCell","value","colorClass","onClick","jsx","WorkflowsOverview","useWorkflowListEvents","navigate","useNavigate","duration","setDuration","useState","allJobs","useJobs","configs","useWorkflowConfigs","cutoff","useMemo","d","jobs","j","byType","map","entry","dur","result","type","stats","a","b","totals","registered","goToList","entity","status","params","qs","thCls","PageHeader","jsxs","StatCard","row"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{j as p}from"./vendor-query-RUZdMvN6.js";import{c as vn,d as An}from"./yaml-workflows-BBenayT9.js";import{S as yn}from"./StatusBadge-DkgllZHv.js";import{N as _n}from"./NamespacePill-BeifzjUm.js";import{_ as Cn}from"./index-BU4oujVO.js";import{B as wn,h as bn,J as Sn,o as se,W as En,ae as Nn,as as Fn}from"./vendor-icons-BPsNpK3Y.js";import{e as Tn,u as kn}from"./vendor-react-CdqEC2zv.js";/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */function Te(e){return typeof e>"u"||e===null}function On(e){return typeof e=="object"&&e!==null}function In(e){return Array.isArray(e)?e:Te(e)?[]:[e]}function jn(e,n){var i,l,r,u;if(n)for(u=Object.keys(n),i=0,l=u.length;i<l;i+=1)r=u[i],e[r]=n[r];return e}function Ln(e,n){var i="",l;for(l=0;l<n;l+=1)i+=e;return i}function Rn(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var Dn=Te,Mn=On,Yn=In,Bn=Ln,Pn=Rn,Hn=jn,_={isNothing:Dn,isObject:Mn,toArray:Yn,repeat:Bn,isNegativeZero:Pn,extend:Hn};function ke(e,n){var i="",l=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(i+='in "'+e.mark.name+'" '),i+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!n&&e.mark.snippet&&(i+=`
1
+ import{j as p}from"./vendor-query-RUZdMvN6.js";import{c as vn,d as An}from"./yaml-workflows-kxOF5yEC.js";import{S as yn}from"./StatusBadge-BDeUwPtb.js";import{N as _n}from"./NamespacePill-CKp_9EaI.js";import{a0 as Cn}from"./index-lGfBW1PB.js";import{B as wn,i as bn,K as Sn,p as se,W as En,af as Nn,at as Fn}from"./vendor-icons-BgsXTN4h.js";import{e as Tn,u as kn}from"./vendor-react-CdqEC2zv.js";/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */function Te(e){return typeof e>"u"||e===null}function On(e){return typeof e=="object"&&e!==null}function In(e){return Array.isArray(e)?e:Te(e)?[]:[e]}function jn(e,n){var i,l,r,u;if(n)for(u=Object.keys(n),i=0,l=u.length;i<l;i+=1)r=u[i],e[r]=n[r];return e}function Ln(e,n){var i="",l;for(l=0;l<n;l+=1)i+=e;return i}function Rn(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var Dn=Te,Mn=On,Yn=In,Bn=Ln,Pn=Rn,Hn=jn,_={isNothing:Dn,isObject:Mn,toArray:Yn,repeat:Bn,isNegativeZero:Pn,extend:Hn};function ke(e,n){var i="",l=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(i+='in "'+e.mark.name+'" '),i+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!n&&e.mark.snippet&&(i+=`
2
2
 
3
3
  `+e.mark.snippet),l+" "+i):l}function P(e,n){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=n,this.message=ke(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}P.prototype=Object.create(Error.prototype);P.prototype.constructor=P;P.prototype.toString=function(n){return this.name+": "+ke(this,n)};var b=P;function X(e,n,i,l,r){var u="",o="",c=Math.floor(r/2)-1;return l-n>c&&(u=" ... ",n=l-c+u.length),i-l>c&&(o=" ...",i=l+c-o.length),{str:u+e.slice(n,i).replace(/\t/g,"→")+o,pos:l-n+u.length}}function Z(e,n){return _.repeat(" ",n-e.length)+e}function Un(e,n){if(n=Object.create(n||null),!e.buffer)return null;n.maxLength||(n.maxLength=79),typeof n.indent!="number"&&(n.indent=1),typeof n.linesBefore!="number"&&(n.linesBefore=3),typeof n.linesAfter!="number"&&(n.linesAfter=2);for(var i=/\r?\n|\r|\0/g,l=[0],r=[],u,o=-1;u=i.exec(e.buffer);)r.push(u.index),l.push(u.index+u[0].length),e.position<=u.index&&o<0&&(o=l.length-2);o<0&&(o=l.length-1);var c="",a,t,s=Math.min(e.line+n.linesAfter,r.length).toString().length,f=n.maxLength-(n.indent+s+3);for(a=1;a<=n.linesBefore&&!(o-a<0);a++)t=X(e.buffer,l[o-a],r[o-a],e.position-(l[o]-l[o-a]),f),c=_.repeat(" ",n.indent)+Z((e.line-a+1).toString(),s)+" | "+t.str+`
4
4
  `+c;for(t=X(e.buffer,l[o],r[o],e.position,f),c+=_.repeat(" ",n.indent)+Z((e.line+1).toString(),s)+" | "+t.str+`
@@ -30,4 +30,4 @@ import{j as p}from"./vendor-query-RUZdMvN6.js";import{c as vn,d as An}from"./yam
30
30
  `,e.length-r>n&&o>r?a+=e.slice(r,o)+`
31
31
  `+e.slice(o+1):a+=e.slice(r),a.slice(1)}function Fr(e){for(var n="",i=0,l,r=0;r<e.length;i>=65536?r+=2:r++)i=B(e,r),l=w[i],!l&&q(i)?(n+=e[r],i>=65536&&(n+=e[r+1])):n+=l||Ar(i);return n}function Tr(e,n,i){var l="",r=e.tag,u,o,c;for(u=0,o=i.length;u<o;u+=1)c=i[u],e.replacer&&(c=e.replacer.call(i,String(u),c)),(F(e,n,c,!1,!1)||typeof c>"u"&&F(e,n,null,!1,!1))&&(l!==""&&(l+=","+(e.condenseFlow?"":" ")),l+=e.dump);e.tag=r,e.dump="["+l+"]"}function Ee(e,n,i,l){var r="",u=e.tag,o,c,a;for(o=0,c=i.length;o<c;o+=1)a=i[o],e.replacer&&(a=e.replacer.call(i,String(o),a)),(F(e,n+1,a,!0,!0,!1,!0)||typeof a>"u"&&F(e,n+1,null,!0,!0,!1,!0))&&((!l||r!=="")&&(r+=ie(e,n)),e.dump&&H===e.dump.charCodeAt(0)?r+="-":r+="- ",r+=e.dump);e.tag=u,e.dump=r||"[]"}function kr(e,n,i){var l="",r=e.tag,u=Object.keys(i),o,c,a,t,s;for(o=0,c=u.length;o<c;o+=1)s="",l!==""&&(s+=", "),e.condenseFlow&&(s+='"'),a=u[o],t=i[a],e.replacer&&(t=e.replacer.call(i,a,t)),F(e,n,a,!1,!1)&&(e.dump.length>1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),F(e,n,t,!1,!1)&&(s+=e.dump,l+=s));e.tag=r,e.dump="{"+l+"}"}function Or(e,n,i,l){var r="",u=e.tag,o=Object.keys(i),c,a,t,s,f,h;if(e.sortKeys===!0)o.sort();else if(typeof e.sortKeys=="function")o.sort(e.sortKeys);else if(e.sortKeys)throw new b("sortKeys must be a boolean or a function");for(c=0,a=o.length;c<a;c+=1)h="",(!l||r!=="")&&(h+=ie(e,n)),t=o[c],s=i[t],e.replacer&&(s=e.replacer.call(i,t,s)),F(e,n+1,t,!0,!0,!0)&&(f=e.tag!==null&&e.tag!=="?"||e.dump&&e.dump.length>1024,f&&(e.dump&&H===e.dump.charCodeAt(0)?h+="?":h+="? "),h+=e.dump,f&&(h+=ie(e,n)),F(e,n+1,s,!0,f)&&(e.dump&&H===e.dump.charCodeAt(0)?h+=":":h+=": ",h+=e.dump,r+=h));e.tag=u,e.dump=r||"{}"}function Ne(e,n,i){var l,r,u,o,c,a;for(r=i?e.explicitTypes:e.implicitTypes,u=0,o=r.length;u<o;u+=1)if(c=r[u],(c.instanceOf||c.predicate)&&(!c.instanceOf||typeof n=="object"&&n instanceof c.instanceOf)&&(!c.predicate||c.predicate(n))){if(i?c.multi&&c.representName?e.tag=c.representName(n):e.tag=c.tag:e.tag="?",c.represent){if(a=e.styleMap[c.tag]||c.defaultStyle,cn.call(c.represent)==="[object Function]")l=c.represent(n,a);else if(an.call(c.represent,a))l=c.represent[a](n,a);else throw new b("!<"+c.tag+'> tag resolver accepts not "'+a+'" style');e.dump=l}return!0}return!1}function F(e,n,i,l,r,u,o){e.tag=null,e.dump=i,Ne(e,i,!1)||Ne(e,i,!0);var c=cn.call(e.dump),a=l,t;l&&(l=e.flowLevel<0||e.flowLevel>n);var s=c==="[object Object]"||c==="[object Array]",f,h;if(s&&(f=e.duplicates.indexOf(i),h=f!==-1),(e.tag!==null&&e.tag!=="?"||h||e.indent!==2&&n>0)&&(r=!1),h&&e.usedDuplicates[f])e.dump="*ref_"+f;else{if(s&&h&&!e.usedDuplicates[f]&&(e.usedDuplicates[f]=!0),c==="[object Object]")l&&Object.keys(e.dump).length!==0?(Or(e,n,e.dump,r),h&&(e.dump="&ref_"+f+e.dump)):(kr(e,n,e.dump),h&&(e.dump="&ref_"+f+" "+e.dump));else if(c==="[object Array]")l&&e.dump.length!==0?(e.noArrayIndent&&!o&&n>0?Ee(e,n-1,e.dump,r):Ee(e,n,e.dump,r),h&&(e.dump="&ref_"+f+e.dump)):(Tr(e,n,e.dump),h&&(e.dump="&ref_"+f+" "+e.dump));else if(c==="[object String]")e.tag!=="?"&&Er(e,e.dump,n,u,a);else{if(c==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new b("unacceptable kind of an object to dump "+c)}e.tag!==null&&e.tag!=="?"&&(t=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?t="!"+t:t.slice(0,18)==="tag:yaml.org,2002:"?t="!!"+t.slice(18):t="!<"+t+">",e.dump=t+" "+e.dump)}return!0}function Ir(e,n){var i=[],l=[],r,u;for(le(e,i,l),r=0,u=l.length;r<u;r+=1)n.duplicates.push(i[l[r]]);n.usedDuplicates=new Array(u)}function le(e,n,i){var l,r,u;if(e!==null&&typeof e=="object")if(r=n.indexOf(e),r!==-1)i.indexOf(r)===-1&&i.push(r);else if(n.push(e),Array.isArray(e))for(r=0,u=e.length;r<u;r+=1)le(e[r],n,i);else for(l=Object.keys(e),r=0,u=l.length;r<u;r+=1)le(e[l[r]],n,i)}function jr(e,n){n=n||{};var i=new _r(n);i.noRefs||Ir(e,i);var l=e;return i.replacer&&(l=i.replacer.call({"":l},"",l)),F(i,0,l,!0,!0)?i.dump+`
32
32
  `:""}var Lr=jr,Rr={dump:Lr};function pe(e,n){return function(){throw new Error("Function yaml."+e+" is removed in js-yaml 4. Use yaml."+n+" instead, which is now safe by default.")}}var Dr=C,Mr=Oe,Yr=Re,Br=Pe,Pr=He,Hr=ce,Ur=un.load,qr=un.loadAll,Kr=Rr.dump,Wr=b,Gr={binary:Ge,float:Be,map:Le,null:De,pairs:Qe,set:Ve,timestamp:Ke,bool:Me,int:Ye,merge:We,omap:$e,seq:je,str:Ie},$r=pe("safeLoad","load"),Qr=pe("safeLoadAll","loadAll"),Vr=pe("safeDump","dump"),Xr={Type:Dr,Schema:Mr,FAILSAFE_SCHEMA:Yr,JSON_SCHEMA:Br,CORE_SCHEMA:Pr,DEFAULT_SCHEMA:Hr,load:Ur,loadAll:qr,dump:Kr,YAMLException:Wr,types:Gr,safeLoad:$r,safeLoadAll:Qr,safeDump:Vr};function Zr({children:e,className:n=""}){return p.jsx("span",{className:`px-2 py-0.5 text-2xs bg-surface-sunken rounded-full text-text-secondary ${n}`,children:e})}function j({icon:e,color:n,children:i}){return p.jsxs("div",{className:"flex items-center gap-2 mb-3 pb-2 border-b border-surface-border",children:[p.jsx(e,{className:`w-4 h-4 ${n}`,strokeWidth:1.5}),p.jsx("h2",{className:"section-h2",children:i})]})}function oe({text:e}){return p.jsx("p",{className:"text-2xs text-text-quaternary py-2",children:e})}function L({label:e,children:n}){return p.jsxs("div",{className:"flex items-baseline justify-between py-2 gap-4",children:[p.jsx("span",{className:"text-2xs uppercase tracking-widest text-text-quaternary shrink-0",children:e}),p.jsx("span",{className:"text-xs text-text-primary text-right min-w-0 truncate",children:n})]})}function J(e){return e?new Date(e).toLocaleString("en-US",{dateStyle:"medium",timeStyle:"short"}):"—"}function zr(e){const n=(e==null?void 0:e.properties)??{};return Object.entries(n).map(([i,l])=>({key:i,type:(l==null?void 0:l.type)??"any",description:(l==null?void 0:l.description)??""}))}function Fe({schema:e,empty:n}){const i=zr(e);return i.length===0?p.jsx(oe,{text:n}):p.jsx("div",{className:"divide-y divide-surface-border/30",children:i.map(l=>p.jsxs("div",{className:"py-2",children:[p.jsxs("div",{className:"flex items-baseline gap-2",children:[p.jsx("code",{className:"text-xs font-mono text-text-primary",children:l.key}),p.jsx("span",{className:"text-2xs font-mono text-text-quaternary",children:l.type})]}),l.description&&p.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5 leading-snug",children:l.description})]},l.key))})}function ul(){var a;const{id:e=""}=Tn(),n=kn(),{data:i,isLoading:l}=vn(e),{data:r}=An(e),u=(r==null?void 0:r.versions)??[];if(l||!i)return p.jsxs("div",{className:"animate-pulse space-y-4",children:[p.jsx("div",{className:"h-8 bg-surface-sunken rounded w-64"}),p.jsx("div",{className:"h-40 bg-surface-sunken rounded"})]});const o=i.activity_manifest??[],c=(()=>{var s,f,h,x;const t=i.output_schema;if(t&&Object.keys(t).length>0)return t;try{const m=Xr.load(i.yaml_content);return((x=(h=(f=(s=m==null?void 0:m.app)==null?void 0:s.graphs)==null?void 0:f[0])==null?void 0:h.output)==null?void 0:x.schema)??void 0}catch{return}})();return p.jsxs("div",{children:[p.jsxs("div",{className:"flex items-start justify-between mb-3",children:[p.jsxs("div",{className:"flex items-center gap-2",children:[p.jsx("h1",{className:"text-3xl font-light text-text-primary font-mono",children:i.graph_topic}),p.jsx("button",{onClick:()=>{window.location.hash="#docs:dashboard.md:graph-workflows"},className:"text-text-quaternary hover:text-accent transition-colors mt-1",title:"Docs",children:p.jsx(wn,{className:"w-4 h-4",strokeWidth:1.5})})]}),p.jsx("div",{className:"flex items-center gap-3",children:i.status==="active"&&p.jsxs("button",{onClick:()=>n(`/mcp/workflows/invoke?id=${i.id}`),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:[p.jsx(bn,{className:"w-3 h-3"})," Run"]})})]}),p.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[p.jsx(yn,{status:i.status}),p.jsx(_n,{namespace:i.app_id}),p.jsxs("span",{className:"text-2xs font-mono text-text-quaternary",children:["v",i.content_version]})]}),i.description&&p.jsx("div",{className:"text-sm text-text-secondary mb-8 max-w-2xl leading-relaxed",children:p.jsx(Cn,{content:i.description})}),((a=i.tags)==null?void 0:a.length)>0&&p.jsx("div",{className:"flex items-center gap-1.5 mb-10",children:i.tags.map(t=>p.jsx(Zr,{children:t},t))}),p.jsxs("div",{className:"grid grid-cols-1 @wall:grid-cols-3 gap-x-14 gap-y-10 mb-12",children:[p.jsxs("div",{children:[p.jsx(j,{icon:Sn,color:"text-accent",children:"Overview"}),p.jsxs("div",{className:"divide-y divide-surface-border/30",children:[p.jsx(L,{label:"Topic",children:p.jsx("code",{className:"font-mono",children:i.graph_topic})}),p.jsx(L,{label:"Namespace",children:p.jsx("code",{className:"font-mono",children:i.app_id})}),p.jsx(L,{label:"App version",children:i.app_version}),p.jsx(L,{label:"Runs as",children:i.execute_as||"caller"}),p.jsx(L,{label:"Deployed",children:J(i.deployed_at)}),p.jsx(L,{label:"Activated",children:J(i.activated_at)})]})]}),p.jsxs("div",{className:"space-y-10",children:[p.jsxs("div",{children:[p.jsx(j,{icon:se,color:"text-accent",children:"Input"}),p.jsx(Fe,{schema:i.input_schema,empty:"No declared input fields"})]}),p.jsxs("div",{children:[p.jsx(j,{icon:se,color:"text-accent",children:"Output"}),p.jsx(Fe,{schema:c,empty:"No declared output fields"})]})]}),p.jsxs("div",{children:[p.jsx(j,{icon:En,color:"text-accent",children:"Graph"}),o.length===0?p.jsx(oe,{text:"A single trigger maps the input straight to the output — see the graph definition below."}):p.jsx("div",{className:"divide-y divide-surface-border/30",children:o.map(t=>p.jsxs("div",{className:"flex items-center justify-between py-2 gap-3",children:[p.jsxs("div",{className:"min-w-0",children:[p.jsx("code",{className:"text-xs font-mono text-text-primary",children:t.title||t.activity_id}),t.topic&&p.jsx("p",{className:"text-2xs font-mono text-text-quaternary truncate",children:t.topic})]}),p.jsx("span",{className:"text-2xs uppercase tracking-widest text-text-quaternary shrink-0",children:t.tool_source||t.type})]},t.activity_id))})]})]}),p.jsxs("div",{className:"mb-12",children:[p.jsx(j,{icon:Nn,color:"text-accent",children:"Definition"}),p.jsx("pre",{className:"text-2xs font-mono text-text-secondary bg-surface-sunken/50 rounded-md p-4 overflow-x-auto leading-relaxed",children:i.yaml_content})]}),p.jsxs("div",{children:[p.jsxs(j,{icon:Fn,color:"text-accent",children:["Versions (",u.length,")"]}),u.length===0?p.jsx(oe,{text:"No prior versions"}):p.jsx("div",{className:"divide-y divide-surface-border/30",children:u.map(t=>p.jsxs("div",{className:"flex items-center justify-between py-2 gap-3",children:[p.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[p.jsxs("span",{className:"text-xs font-mono text-text-primary",children:["v",t.version]}),t.change_summary&&p.jsx("span",{className:"text-2xs text-text-tertiary truncate",children:t.change_summary})]}),p.jsx("span",{className:"text-2xs text-text-quaternary shrink-0",children:J(t.created_at)})]},t.id))})]})]})}export{ul as YamlWorkflowDetailPage};
33
- //# sourceMappingURL=YamlWorkflowDetailPage-CmM78sYi.js.map
33
+ //# sourceMappingURL=YamlWorkflowDetailPage-DSAjzido.js.map