@hotmeshio/long-tail 0.9.2 → 0.9.4
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.
- package/dashboard/dist/assets/{AdminDashboard-JobmypiO.js → AdminDashboard-DmQG0fUK.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-JobmypiO.js.map → AdminDashboard-DmQG0fUK.js.map} +1 -1
- package/dashboard/dist/assets/{AgentConfigPage-D_HuaRN9.js → AgentConfigPage-BZ8g7Ml8.js} +5 -5
- package/dashboard/dist/assets/{AgentConfigPage-D_HuaRN9.js.map → AgentConfigPage-BZ8g7Ml8.js.map} +1 -1
- package/dashboard/dist/assets/{AgentDetailPage-Cj22NZLI.js → AgentDetailPage-Cdinl7bx.js} +3 -3
- package/dashboard/dist/assets/{AgentDetailPage-Cj22NZLI.js.map → AgentDetailPage-Cdinl7bx.js.map} +1 -1
- package/dashboard/dist/assets/{AgentsPage-DTKto-gL.js → AgentsPage-GEYMgmez.js} +2 -2
- package/dashboard/dist/assets/{AgentsPage-DTKto-gL.js.map → AgentsPage-GEYMgmez.js.map} +1 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-qRf3tBYi.js +2 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-qRf3tBYi.js.map +1 -0
- package/dashboard/dist/assets/{BotPicker-AwKouk26.js → BotPicker-Bpglj7RE.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-AwKouk26.js.map → BotPicker-Bpglj7RE.js.map} +1 -1
- package/dashboard/dist/assets/{CapabilitiesPage-1ZMO_0UU.js → CapabilitiesPage-ARIQzRiq.js} +2 -2
- package/dashboard/dist/assets/{CapabilitiesPage-1ZMO_0UU.js.map → CapabilitiesPage-ARIQzRiq.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-D6kUTrq4.js → CollapsibleSection-BuZl37uS.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-D6kUTrq4.js.map → CollapsibleSection-BuZl37uS.js.map} +1 -1
- package/dashboard/dist/assets/{CountdownTimer-Bj9YbInO.js → CountdownTimer-CRK-E2UF.js} +2 -2
- package/dashboard/dist/assets/{CountdownTimer-Bj9YbInO.js.map → CountdownTimer-CRK-E2UF.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialsPage-D5H_kyRL.js → CredentialsPage-CjBiPahB.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-D5H_kyRL.js.map → CredentialsPage-CjBiPahB.js.map} +1 -1
- package/dashboard/dist/assets/{CronLabel-DvmJ0EFz.js → CronLabel-DTXl2Rgj.js} +2 -2
- package/dashboard/dist/assets/{CronLabel-DvmJ0EFz.js.map → CronLabel-DTXl2Rgj.js.map} +1 -1
- package/dashboard/dist/assets/{CustomDurationPicker-DT_g8Hr4.js → CustomDurationPicker-qhb23E3p.js} +2 -2
- package/dashboard/dist/assets/{CustomDurationPicker-DT_g8Hr4.js.map → CustomDurationPicker-qhb23E3p.js.map} +1 -1
- package/dashboard/dist/assets/{DropZone-wJqP4zA4.js → DropZone-C1TpkVQG.js} +2 -2
- package/dashboard/dist/assets/{DropZone-wJqP4zA4.js.map → DropZone-C1TpkVQG.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-7_8YpC3D.js → ElapsedCell-BMhamzj3.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-7_8YpC3D.js.map → ElapsedCell-BMhamzj3.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationListSchemaPage-ClFRLeKV.js → EscalationListSchemaPage-BEi89A7y.js} +3 -3
- package/dashboard/dist/assets/{EscalationListSchemaPage-ClFRLeKV.js.map → EscalationListSchemaPage-BEi89A7y.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationSchemaPage-BcYcj-b8.js → EscalationSchemaPage-9NY4Q4ku.js} +3 -3
- package/dashboard/dist/assets/{EscalationSchemaPage-BcYcj-b8.js.map → EscalationSchemaPage-9NY4Q4ku.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-uHb8ni_5.js → EscalationsOverview-2VRjFxPV.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-uHb8ni_5.js.map → EscalationsOverview-2VRjFxPV.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-CkdWqmEL.js → EventTable-hHPNI3Yq.js} +2 -2
- package/dashboard/dist/assets/{EventTable-CkdWqmEL.js.map → EventTable-hHPNI3Yq.js.map} +1 -1
- package/dashboard/dist/assets/{GraphInvokePage-C6sfPjSc.js → GraphInvokePage-B6qAC8zt.js} +2 -2
- package/dashboard/dist/assets/{GraphInvokePage-C6sfPjSc.js.map → GraphInvokePage-B6qAC8zt.js.map} +1 -1
- package/dashboard/dist/assets/{HomePage-CUHZxihq.js → HomePage-DDyQOu57.js} +2 -2
- package/dashboard/dist/assets/{HomePage-CUHZxihq.js.map → HomePage-DDyQOu57.js.map} +1 -1
- package/dashboard/dist/assets/{ListToolbar-nWxpujpH.js → ListToolbar-BUgEY8Oc.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-nWxpujpH.js.map → ListToolbar-BUgEY8Oc.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-DXrkDkU-.js → McpOverview-DIenRt0e.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-DXrkDkU-.js.map → McpOverview-DIenRt0e.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-CnLYE26v.js → McpQueryDetailPage-CxAR4Bpw.js} +2 -2
- package/dashboard/dist/assets/{McpQueryDetailPage-CnLYE26v.js.map → McpQueryDetailPage-CxAR4Bpw.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryPage-oE9eWAus.js → McpQueryPage-CkT4A2c5.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-oE9eWAus.js.map → McpQueryPage-CkT4A2c5.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunDetailPage-B7e6AVl1.js → McpRunDetailPage-DDiOtG5r.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-B7e6AVl1.js.map → McpRunDetailPage-DDiOtG5r.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-Bx5DiGk7.js → McpRunsPage-BWe6WVzw.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-Bx5DiGk7.js.map → McpRunsPage-BWe6WVzw.js.map} +1 -1
- package/dashboard/dist/assets/{NamespacePill-BlhSWa5S.js → NamespacePill--ikKtMvx.js} +2 -2
- package/dashboard/dist/assets/{NamespacePill-BlhSWa5S.js.map → NamespacePill--ikKtMvx.js.map} +1 -1
- package/dashboard/dist/assets/{OperationsPage-BmG3qzdR.js → OperationsPage-CzJx-zxj.js} +2 -2
- package/dashboard/dist/assets/{OperationsPage-BmG3qzdR.js.map → OperationsPage-CzJx-zxj.js.map} +1 -1
- package/dashboard/dist/assets/{OperatorDashboard-r6hQ57eO.js → OperatorDashboard-CVq7V7hE.js} +2 -2
- package/dashboard/dist/assets/{OperatorDashboard-r6hQ57eO.js.map → OperatorDashboard-CVq7V7hE.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeader-Ji1AtA4f.js → PageHeader-CiFhzGc0.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-Ji1AtA4f.js.map → PageHeader-CiFhzGc0.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-B2qrFAaG.js → PageHeaderWithStats-_zOnWAhq.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-B2qrFAaG.js.map → PageHeaderWithStats-_zOnWAhq.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-C3gE4OHq.js → ProcessDetailPage-BWVFB-nL.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-C3gE4OHq.js.map → ProcessDetailPage-BWVFB-nL.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-DSsIGmBB.js → ProcessesListPage-kyRO3E9d.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-DSsIGmBB.js.map → ProcessesListPage-kyRO3E9d.js.map} +1 -1
- package/dashboard/dist/assets/{RoleDetailPage-DiFISbnq.js → RoleDetailPage-DrSlAQUQ.js} +3 -3
- package/dashboard/dist/assets/{RoleDetailPage-DiFISbnq.js.map → RoleDetailPage-DrSlAQUQ.js.map} +1 -1
- package/dashboard/dist/assets/{RolePill-ColM_ynA.js → RolePill-CUIJSgRq.js} +2 -2
- package/dashboard/dist/assets/{RolePill-ColM_ynA.js.map → RolePill-CUIJSgRq.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-CE5fui18.js → RolesPage-tT21PIEb.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-CE5fui18.js.map → RolesPage-tT21PIEb.js.map} +1 -1
- package/dashboard/dist/assets/{RunAsSelector-Ct8NNadu.js → RunAsSelector-BqhOzi2p.js} +2 -2
- package/dashboard/dist/assets/{RunAsSelector-Ct8NNadu.js.map → RunAsSelector-BqhOzi2p.js.map} +1 -1
- package/dashboard/dist/assets/{SlidePanel-BzeKveus.js → SlidePanel-BcWKelpn.js} +2 -2
- package/dashboard/dist/assets/{SlidePanel-BzeKveus.js.map → SlidePanel-BcWKelpn.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-BfgBtP_B.js → StickyPagination-BTDj99Vb.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-BfgBtP_B.js.map → StickyPagination-BTDj99Vb.js.map} +1 -1
- package/dashboard/dist/assets/StreamMessageDetail-DjjnJ31Q.js +2 -0
- package/dashboard/dist/assets/{StreamMessageDetail-2rwp7Ynx.js.map → StreamMessageDetail-DjjnJ31Q.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-BwWyYBCo.js → SwimlaneTimeline-Db7ATobq.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-BwWyYBCo.js.map → SwimlaneTimeline-Db7ATobq.js.map} +1 -1
- package/dashboard/dist/assets/{TagInput-By0E_Jym.js → TagInput-BaFJCq9A.js} +2 -2
- package/dashboard/dist/assets/{TagInput-By0E_Jym.js.map → TagInput-BaFJCq9A.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-BUKHu2oD.js → TaskDetailPage-BVlCa-PR.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-BUKHu2oD.js.map → TaskDetailPage-BVlCa-PR.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-CY1ZSwWu.js → TaskQueuePill-D9e16qkU.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-CY1ZSwWu.js.map → TaskQueuePill-D9e16qkU.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-C_PwExQC.js → TasksListPage-PKscNTJs.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-C_PwExQC.js.map → TasksListPage-PKscNTJs.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-Bagm-L2o.js → TimeAgo-CGx_Ffwq.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-Bagm-L2o.js.map → TimeAgo-CGx_Ffwq.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-BwDo7knq.js → TimestampCell-CdD5hp9o.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-BwDo7knq.js.map → TimestampCell-CdD5hp9o.js.map} +1 -1
- package/dashboard/dist/assets/{ToolPill-D0IzqLEe.js → ToolPill-Enc3nyic.js} +2 -2
- package/dashboard/dist/assets/{ToolPill-D0IzqLEe.js.map → ToolPill-Enc3nyic.js.map} +1 -1
- package/dashboard/dist/assets/{ToolTestPanel-CVZ2M1yv.js → ToolTestPanel-DWs0DNGB.js} +2 -2
- package/dashboard/dist/assets/{ToolTestPanel-CVZ2M1yv.js.map → ToolTestPanel-DWs0DNGB.js.map} +1 -1
- package/dashboard/dist/assets/{TopicDetailPage-DKAvbkxD.js → TopicDetailPage-BaL3m3yb.js} +3 -3
- package/dashboard/dist/assets/{TopicDetailPage-DKAvbkxD.js.map → TopicDetailPage-BaL3m3yb.js.map} +1 -1
- package/dashboard/dist/assets/{TopicsPage-BZknsApe.js → TopicsPage-bFjJUYmO.js} +2 -2
- package/dashboard/dist/assets/{TopicsPage-BZknsApe.js.map → TopicsPage-bFjJUYmO.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-ByDxLHPZ.js → UserName-IdFyeFle.js} +2 -2
- package/dashboard/dist/assets/{UserName-ByDxLHPZ.js.map → UserName-IdFyeFle.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-DrwKB2x8.js → WorkflowExecutionPage-DtC-71vO.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-DrwKB2x8.js.map → WorkflowExecutionPage-DtC-71vO.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowPill-BXmmLR0t.js → WorkflowPill-S6VV2Eax.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPill-BXmmLR0t.js.map → WorkflowPill-S6VV2Eax.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsDashboard-DEq9fkhl.js → WorkflowsDashboard-DGtMG5vL.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-DEq9fkhl.js.map → WorkflowsDashboard-DGtMG5vL.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-l-0KYP7Y.js → WorkflowsOverview-BFs-ZSTn.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-l-0KYP7Y.js.map → WorkflowsOverview-BFs-ZSTn.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-BgimL3VT.js → YamlWorkflowDetailPage-6FTLoVfO.js} +25 -25
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-BgimL3VT.js.map → YamlWorkflowDetailPage-6FTLoVfO.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-CabXXA9r.js → YamlWorkflowsPage-0Moxrj_c.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-CabXXA9r.js.map → YamlWorkflowsPage-0Moxrj_c.js.map} +1 -1
- package/dashboard/dist/assets/{agents-D_L6lV0f.js → agents-Dpg829fG.js} +2 -2
- package/dashboard/dist/assets/{agents-D_L6lV0f.js.map → agents-Dpg829fG.js.map} +1 -1
- package/dashboard/dist/assets/{bots-wdZz1nJw.js → bots-BiS_mYcH.js} +2 -2
- package/dashboard/dist/assets/{bots-wdZz1nJw.js.map → bots-BiS_mYcH.js.map} +1 -1
- package/dashboard/dist/assets/{capabilities-C35_V8eu.js → capabilities-Cpe3amV5.js} +2 -2
- package/dashboard/dist/assets/{capabilities-C35_V8eu.js.map → capabilities-Cpe3amV5.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-kR2P6zYv.js → controlplane-CjK2cXaD.js} +2 -2
- package/dashboard/dist/assets/{controlplane-kR2P6zYv.js.map → controlplane-CjK2cXaD.js.map} +1 -1
- package/dashboard/dist/assets/escalation-columns-_KrFogWG.js +2 -0
- package/dashboard/dist/assets/escalation-columns-_KrFogWG.js.map +1 -0
- package/dashboard/dist/assets/{index-xBNf5aFb.js → index-3ewF-RsR.js} +2 -2
- package/dashboard/dist/assets/{index-xBNf5aFb.js.map → index-3ewF-RsR.js.map} +1 -1
- package/dashboard/dist/assets/{index-BMQopgAx.js → index-BFh7zbQF.js} +2 -2
- package/dashboard/dist/assets/{index-BMQopgAx.js.map → index-BFh7zbQF.js.map} +1 -1
- package/dashboard/dist/assets/{index-BmbO85oT.js → index-BYpOpKoM.js} +2 -2
- package/dashboard/dist/assets/{index-BmbO85oT.js.map → index-BYpOpKoM.js.map} +1 -1
- package/dashboard/dist/assets/{index-wZzl3bcK.js → index-Be9bw5cd.js} +2 -2
- package/dashboard/dist/assets/{index-wZzl3bcK.js.map → index-Be9bw5cd.js.map} +1 -1
- package/dashboard/dist/assets/{index-QOTnrFd1.js → index-C42kzl9D.js} +2 -2
- package/dashboard/dist/assets/{index-QOTnrFd1.js.map → index-C42kzl9D.js.map} +1 -1
- package/dashboard/dist/assets/{index-BfDn7j4K.js → index-CTTxpoEl.js} +2 -2
- package/dashboard/dist/assets/{index-BfDn7j4K.js.map → index-CTTxpoEl.js.map} +1 -1
- package/dashboard/dist/assets/index-DWXhbO4b.js +5 -0
- package/dashboard/dist/assets/index-DWXhbO4b.js.map +1 -0
- package/dashboard/dist/assets/index-DYcP4jyl.js +63 -0
- package/dashboard/dist/assets/index-DYcP4jyl.js.map +1 -0
- package/dashboard/dist/assets/{index-C75E0-Wd.js → index-Dq5RU7sm.js} +2 -2
- package/dashboard/dist/assets/{index-C75E0-Wd.js.map → index-Dq5RU7sm.js.map} +1 -1
- package/dashboard/dist/assets/{index-BZfX_ziz.js → index-Fc1qNrqI.js} +2 -2
- package/dashboard/dist/assets/{index-BZfX_ziz.js.map → index-Fc1qNrqI.js.map} +1 -1
- package/dashboard/dist/assets/{index-B4zWCfQr.js → index-IHOuIqlt.js} +2 -2
- package/dashboard/dist/assets/{index-B4zWCfQr.js.map → index-IHOuIqlt.js.map} +1 -1
- package/dashboard/dist/assets/{index-1WCiN-pF.js → index-JQCy1mnu.js} +2 -2
- package/dashboard/dist/assets/{index-1WCiN-pF.js.map → index-JQCy1mnu.js.map} +1 -1
- package/dashboard/dist/assets/{index-CJFA7aLp.js → index-p85Oqfqc.js} +2 -2
- package/dashboard/dist/assets/{index-CJFA7aLp.js.map → index-p85Oqfqc.js.map} +1 -1
- package/dashboard/dist/assets/index-waKF7bKZ.css +1 -0
- package/dashboard/dist/assets/{knowledge-DDt599ea.js → knowledge-Bed_1toa.js} +2 -2
- package/dashboard/dist/assets/{knowledge-DDt599ea.js.map → knowledge-Bed_1toa.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-BPXRXEje.js → mcp-LRVvEX8W.js} +2 -2
- package/dashboard/dist/assets/{mcp-BPXRXEje.js.map → mcp-LRVvEX8W.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-HUZuboi-.js → mcp-query-k2J65UbP.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-HUZuboi-.js.map → mcp-query-k2J65UbP.js.map} +1 -1
- package/dashboard/dist/assets/{pipelines-CH8q3ok_.js → pipelines-C9fpHxJR.js} +2 -2
- package/dashboard/dist/assets/{pipelines-CH8q3ok_.js.map → pipelines-C9fpHxJR.js.map} +1 -1
- package/dashboard/dist/assets/{roles-B7rzw8wD.js → roles-BO-4Ieun.js} +2 -2
- package/dashboard/dist/assets/{roles-B7rzw8wD.js.map → roles-BO-4Ieun.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-j-mVt2EA.js → tasks-BiyBXdk7.js} +2 -2
- package/dashboard/dist/assets/{tasks-j-mVt2EA.js.map → tasks-BiyBXdk7.js.map} +1 -1
- package/dashboard/dist/assets/{topics-DATyaYWW.js → topics-m_BXjCFf.js} +2 -2
- package/dashboard/dist/assets/{topics-DATyaYWW.js.map → topics-m_BXjCFf.js.map} +1 -1
- package/dashboard/dist/assets/{useEventHooks-CwIAhqJk.js → useEventHooks-CtkD_tnd.js} +2 -2
- package/dashboard/dist/assets/{useEventHooks-CwIAhqJk.js.map → useEventHooks-CtkD_tnd.js.map} +1 -1
- package/dashboard/dist/assets/{useNamespace-hV7rcAfa.js → useNamespace-Dt2COnsG.js} +2 -2
- package/dashboard/dist/assets/{useNamespace-hV7rcAfa.js.map → useNamespace-Dt2COnsG.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-Dwuuu3F0.js → useYamlActivityEvents--i7p1Ta9.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-Dwuuu3F0.js.map → useYamlActivityEvents--i7p1Ta9.js.map} +1 -1
- package/dashboard/dist/assets/{users-DS9yeHe4.js → users-BsRZkm9v.js} +2 -2
- package/dashboard/dist/assets/{users-DS9yeHe4.js.map → users-BsRZkm9v.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-BX2Vih4L.js → vendor-icons-DPmIjhZB.js} +129 -124
- package/dashboard/dist/assets/vendor-icons-DPmIjhZB.js.map +1 -0
- package/dashboard/dist/assets/{workflows-FF8WUHaC.js → workflows-B0djSSvg.js} +2 -2
- package/dashboard/dist/assets/{workflows-FF8WUHaC.js.map → workflows-B0djSSvg.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-y-eo6Rwj.js → yaml-workflows-CupO7vvi.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-y-eo6Rwj.js.map → yaml-workflows-CupO7vvi.js.map} +1 -1
- package/dashboard/dist/index.html +3 -3
- package/docs/hitl-guide.md +125 -1
- package/package.json +1 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-CUvrKkgS.js +0 -2
- package/dashboard/dist/assets/AvailableEscalationsPage-CUvrKkgS.js.map +0 -1
- package/dashboard/dist/assets/StreamMessageDetail-2rwp7Ynx.js +0 -2
- package/dashboard/dist/assets/escalation-columns-BVj16HuR.js +0 -2
- package/dashboard/dist/assets/escalation-columns-BVj16HuR.js.map +0 -1
- package/dashboard/dist/assets/index-CsMAT5cs.css +0 -1
- package/dashboard/dist/assets/index-DIrYjyRG.js +0 -5
- package/dashboard/dist/assets/index-DIrYjyRG.js.map +0 -1
- package/dashboard/dist/assets/index-so192yXP.js +0 -63
- package/dashboard/dist/assets/index-so192yXP.js.map +0 -1
- package/dashboard/dist/assets/vendor-icons-BX2Vih4L.js.map +0 -1
package/dashboard/dist/assets/{WorkflowsDashboard-DEq9fkhl.js → WorkflowsDashboard-DGtMG5vL.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as d,j as t}from"./vendor-query-B2UbickB.js";import{E as z}from"./ElapsedCell-
|
|
2
|
-
//# sourceMappingURL=WorkflowsDashboard-
|
|
1
|
+
import{a as d,j as t}from"./vendor-query-B2UbickB.js";import{E as z}from"./ElapsedCell-BMhamzj3.js";import{l as A,b as v}from"./index-DYcP4jyl.js";import{u as E,d as $,b as L}from"./workflows-B0djSSvg.js";import{u as M}from"./useNamespace-Dt2COnsG.js";import{b as I}from"./useEventHooks-CtkD_tnd.js";import{u as U}from"./useFilterParams-x-Dg0Vgz.js";import{b as O}from"./api-path-u2Jf9QXS.js";import{D as B}from"./DataTable-Byn3oyT9.js";import{W as H}from"./WorkflowPill-S6VV2Eax.js";import{P as V}from"./PageHeader-CiFhzGc0.js";import{F as G,c as f,b as x}from"./FilterBar-DDIn8TOs.js";import{S as J}from"./StickyPagination-BTDj99Vb.js";import{L as q}from"./ListToolbar-BUgEY8Oc.js";import{R as K,a as k}from"./RowActions-BA9L9djf.js";import{v as Q,z as X}from"./vendor-icons-DPmIjhZB.js";import{c as Y}from"./vendor-react-CXumBFUA.js";import"./controlplane-CjK2cXaD.js";import"./EmptyState-BcsfPq9T.js";const Z={running:"in_progress",completed:"completed",failed:"failed"},ee={in_progress:"bg-status-active",completed:"bg-status-success",failed:"bg-status-error"},te={running:"text-status-active",completed:"text-status-success",failed:"text-status-error"};function se(p,n,m,l,a){return[{key:"workflow_id",label:"Workflow ID",render:e=>{const o=ee[Z[e.status]??e.status]??"bg-status-pending",r=e.status==="running"?" animate-pulse":"";return t.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[t.jsx("span",{className:`w-1.5 h-1.5 shrink-0 rounded-full dot-ring ${o}${r}`,title:e.status}),t.jsx("span",{className:"font-mono text-xs text-text-primary truncate",children:e.workflow_id})]})}},{key:"entity",label:"Type",render:e=>t.jsx(H,{type:e.entity,variant:a.get(e.entity)??"durable",size:"xs"}),className:"w-44 shrink-0"},{key:"created_at",label:"Created",render:e=>t.jsx(v,{date:e.created_at,format:"relative",className:"text-xs text-text-secondary whitespace-nowrap"}),className:"w-32",sortable:!0},{key:"updated_at",label:"Updated",render:e=>t.jsx(v,{date:e.updated_at,format:"relative",className:"text-xs text-text-secondary whitespace-nowrap"}),className:"w-32",sortable:!0},{key:"duration",label:"Duration",render:e=>t.jsx(z,{startDate:e.created_at,endDate:e.status==="running"?null:e.updated_at,isLive:e.status==="running"}),className:"w-28"},{key:"actions",label:"",render:e=>t.jsxs(K,{children:[t.jsx(k,{icon:Q,title:`Filter by ${e.entity}`,onClick:()=>p(e.entity)}),t.jsx("button",{onClick:o=>{o.stopPropagation(),n(e.status)},className:"opacity-0 group-hover/row:opacity-100 transition-opacity",title:`Filter by ${e.status}`,children:t.jsx("svg",{className:`w-[18px] h-[18px] ${te[e.status]??"text-text-tertiary"} hover:opacity-70`,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:t.jsx("circle",{cx:"12",cy:"12",r:"6"})})}),m&&t.jsx(k,{icon:X,title:"View config",onClick:()=>l(`/workflows/registry/${encodeURIComponent(e.entity)}`)})]}),className:"w-24 text-right"}]}function ke({tier:p="all"}){I();const n=Y(),{isSuperAdmin:m}=A(),{namespace:l}=M(),{filters:a,setFilter:e,pagination:o,sort:r,setSort:j}=U({filters:{search:"",entity:"",status:"",tier:p}}),c=a.tier||"all",g=c==="certified"?"true":c==="durable"?"false":void 0,{data:b}=E(),{data:y}=$(),S=d.useMemo(()=>{const s=new Map;for(const w of y??[])s.set(w.workflow_type,w.tier??"durable");return s},[y]),_=se(s=>e("entity",s),s=>e("status",s),m,n,S),[u,C]=d.useState(a.search);d.useEffect(()=>{if(u===a.search)return;const s=setTimeout(()=>e("search",u),300);return()=>clearTimeout(s)},[u,e,a.search]);const{data:i,isLoading:N,refetch:P,isFetching:T}=L({limit:o.pageSize,offset:o.offset,entity:a.entity||void 0,search:a.search||void 0,status:a.status||void 0,sort_by:r.sort_by||"created_at",order:r.order||"desc",registered:g,namespace:l||void 0}),h=(i==null?void 0:i.total)??0,F=(i==null?void 0:i.jobs)??[],D=d.useMemo(()=>[...new Set((b??[]).map(s=>s.workflow_type))].sort(),[b]),R="Workflow Executions",W=c==="certified"?"No certified workflow executions found":c==="durable"?"No durable workflow executions found":"No workflow executions found";return t.jsxs("div",{children:[t.jsx(V,{title:R,docsHash:"#docs:dashboard.md:procedural-executions"}),t.jsxs(G,{actions:t.jsx(q,{onRefresh:()=>P(),isFetching:T,apiPath:O("/workflow-states/jobs",{limit:o.pageSize,offset:o.offset,entity:a.entity||void 0,search:a.search||void 0,status:a.status||void 0,sort_by:r.sort_by||"created_at",order:r.order||"desc",registered:g,namespace:l||void 0})}),children:[t.jsx("input",{type:"text",placeholder:"Search workflow ID...",value:u,onChange:s=>C(s.target.value),className:"input text-[11px] py-1 px-2 w-56"}),t.jsx(f,{}),t.jsx(x,{label:"Type",value:a.entity,onChange:s=>e("entity",s),options:D.map(s=>({value:s,label:s}))}),t.jsx(f,{}),t.jsx(x,{label:"Status",value:a.status,onChange:s=>e("status",s),options:[{value:"running",label:"Running"},{value:"completed",label:"Completed"},{value:"failed",label:"Failed"}]}),t.jsx(f,{}),t.jsx(x,{label:"Tier",value:a.tier==="all"?"":a.tier,onChange:s=>e("tier",s||"all"),options:[{value:"certified",label:"Certified"},{value:"durable",label:"Durable"}]})]}),t.jsx(B,{columns:_,data:F,keyFn:s=>s.workflow_id,onRowClick:s=>n(`/workflows/executions/${s.workflow_id}`),isLoading:N,emptyMessage:W,sort:r,onSort:j}),t.jsx(J,{page:o.page,totalPages:o.totalPages(h),onPageChange:o.setPage,total:h,pageSize:o.pageSize,onPageSizeChange:o.setPageSize})]})}export{ke as WorkflowsDashboard};
|
|
2
|
+
//# sourceMappingURL=WorkflowsDashboard-DGtMG5vL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowsDashboard-DEq9fkhl.js","sources":["../../src/pages/workflows/WorkflowsDashboard.tsx"],"sourcesContent":["import { useState, useEffect, useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { Filter, Settings } from 'lucide-react';\nimport { ElapsedCell } from '../../components/common/display/ElapsedCell';\nimport { DateValue } from '../../components/common/display/DateValue';\nimport { useJobs, useWorkflowConfigs, useDiscoveredWorkflows } from '../../api/workflows';\nimport { useAuth } from '../../hooks/useAuth';\nimport { useNamespace } from '../../hooks/useNamespace';\nimport { useWorkflowListEvents } from '../../hooks/useEventHooks';\nimport { useFilterParams } from '../../hooks/useFilterParams';\nimport { buildApiPath } from '../../lib/api-path';\nimport { DataTable, type Column } from '../../components/common/data/DataTable';\nimport { WorkflowPill } from '../../components/common/display/WorkflowPill';\nimport { PageHeader } from '../../components/common/layout/PageHeader';\nimport { FilterBar, FilterSelect, FilterDivider } from '../../components/common/data/FilterBar';\nimport { StickyPagination } from '../../components/common/data/StickyPagination';\nimport { ListToolbar } from '../../components/common/data/ListToolbar';\nimport { RowAction, RowActionGroup } from '../../components/common/layout/RowActions';\nimport type { LTJob, WorkflowTier } from '../../api/types';\n\nexport type ExecutionsTier = 'all' | 'certified' | 'durable';\n\nconst jobStatusMap: Record<string, string> = {\n running: 'in_progress',\n completed: 'completed',\n failed: 'failed',\n};\n\nconst STATUS_DOT: Record<string, string> = {\n in_progress: 'bg-status-active',\n completed: 'bg-status-success',\n failed: 'bg-status-error',\n};\n\nconst STATUS_COLORS: Record<string, string> = {\n running: 'text-status-active',\n completed: 'text-status-success',\n failed: 'text-status-error',\n};\n\nfunction buildColumns(\n onFilterEntity: (entity: string) => void,\n onFilterStatus: (status: string) => void,\n isSuperAdmin: boolean,\n navigate: (path: string) => void,\n tierMap: Map<string, WorkflowTier>,\n): Column<LTJob>[] {\n return [\n {\n key: 'workflow_id',\n label: 'Workflow ID',\n render: (row) => {\n const dotClass = STATUS_DOT[jobStatusMap[row.status] ?? row.status] ?? 'bg-status-pending';\n const pulseClass = row.status === 'running' ? ' animate-pulse' : '';\n return (\n <div className=\"flex items-center gap-2 min-w-0\">\n <span className={`w-1.5 h-1.5 shrink-0 rounded-full dot-ring ${dotClass}${pulseClass}`} title={row.status} />\n <span className=\"font-mono text-xs text-text-primary truncate\">{row.workflow_id}</span>\n </div>\n );\n },\n },\n {\n key: 'entity',\n label: 'Type',\n render: (row) => <WorkflowPill type={row.entity} variant={tierMap.get(row.entity) ?? 'durable'} size=\"xs\" />,\n className: 'w-44 shrink-0',\n },\n {\n key: 'created_at',\n label: 'Created',\n render: (row) => <DateValue date={row.created_at} format=\"relative\" className=\"text-xs text-text-secondary whitespace-nowrap\" />,\n className: 'w-32',\n sortable: true,\n },\n {\n key: 'updated_at',\n label: 'Updated',\n render: (row) => <DateValue date={row.updated_at} format=\"relative\" className=\"text-xs text-text-secondary whitespace-nowrap\" />,\n className: 'w-32',\n sortable: true,\n },\n {\n key: 'duration',\n label: 'Duration',\n render: (row) => (\n <ElapsedCell\n startDate={row.created_at}\n endDate={row.status === 'running' ? null : row.updated_at}\n isLive={row.status === 'running'}\n />\n ),\n className: 'w-28',\n },\n {\n key: 'actions',\n label: '',\n render: (row) => (\n <RowActionGroup>\n <RowAction\n icon={Filter}\n title={`Filter by ${row.entity}`}\n onClick={() => onFilterEntity(row.entity)}\n />\n <button\n onClick={(e) => { e.stopPropagation(); onFilterStatus(row.status); }}\n className=\"opacity-0 group-hover/row:opacity-100 transition-opacity\"\n title={`Filter by ${row.status}`}\n >\n <svg className={`w-[18px] h-[18px] ${STATUS_COLORS[row.status] ?? 'text-text-tertiary'} hover:opacity-70`} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={1.5}>\n <circle cx=\"12\" cy=\"12\" r=\"6\" />\n </svg>\n </button>\n {isSuperAdmin && (\n <RowAction\n icon={Settings}\n title=\"View config\"\n onClick={() => navigate(`/workflows/registry/${encodeURIComponent(row.entity)}`)}\n />\n )}\n </RowActionGroup>\n ),\n className: 'w-24 text-right',\n },\n ];\n}\n\nexport function WorkflowsDashboard({ tier: initialTier = 'all' }: { tier?: ExecutionsTier }) {\n useWorkflowListEvents();\n const navigate = useNavigate();\n const { isSuperAdmin } = useAuth();\n const { namespace } = useNamespace();\n\n const { filters, setFilter, pagination, sort, setSort } = useFilterParams({\n filters: { search: '', entity: '', status: '', tier: initialTier },\n });\n\n const activeTier = (filters.tier || 'all') as ExecutionsTier;\n\n // Map tier to server-side registered filter\n const registeredFilter = activeTier === 'certified' ? 'true'\n : activeTier === 'durable' ? 'false'\n : undefined;\n\n const { data: configs } = useWorkflowConfigs();\n const { data: discoveredData } = useDiscoveredWorkflows();\n\n const tierMap = useMemo(() => {\n const map = new Map<string, WorkflowTier>();\n for (const dw of discoveredData ?? []) {\n map.set(dw.workflow_type, dw.tier ?? 'durable');\n }\n return map;\n }, [discoveredData]);\n\n const columns = buildColumns(\n (entity) => setFilter('entity', entity),\n (status) => setFilter('status', status),\n isSuperAdmin,\n navigate,\n tierMap,\n );\n const [searchInput, setSearchInput] = useState(filters.search);\n\n useEffect(() => {\n if (searchInput === filters.search) return;\n const timer = setTimeout(() => setFilter('search', searchInput), 300);\n return () => clearTimeout(timer);\n }, [searchInput, setFilter, filters.search]);\n\n const { data: jobsData, isLoading, refetch, isFetching } = useJobs({\n limit: pagination.pageSize,\n offset: pagination.offset,\n entity: filters.entity || undefined,\n search: filters.search || undefined,\n status: filters.status || undefined,\n sort_by: sort.sort_by || 'created_at',\n order: sort.order || 'desc',\n registered: registeredFilter,\n namespace: namespace || undefined,\n });\n\n const total = jobsData?.total ?? 0;\n const jobs = jobsData?.jobs ?? [];\n\n const entities = useMemo(() => {\n return [...new Set((configs ?? []).map((c) => c.workflow_type))].sort();\n }, [configs]);\n\n const pageTitle = 'Workflow Executions';\n\n const emptyMessage = activeTier === 'certified'\n ? 'No certified workflow executions found'\n : activeTier === 'durable'\n ? 'No durable workflow executions found'\n : 'No workflow executions found';\n\n return (\n <div>\n <PageHeader title={pageTitle} docsHash=\"#docs:dashboard.md:procedural-executions\" />\n\n <FilterBar actions={\n <ListToolbar\n onRefresh={() => refetch()}\n isFetching={isFetching}\n apiPath={buildApiPath('/workflow-states/jobs', {\n limit: pagination.pageSize,\n offset: pagination.offset,\n entity: filters.entity || undefined,\n search: filters.search || undefined,\n status: filters.status || undefined,\n sort_by: sort.sort_by || 'created_at',\n order: sort.order || 'desc',\n registered: registeredFilter,\n namespace: namespace || undefined,\n })}\n />\n }>\n <input\n type=\"text\"\n placeholder=\"Search workflow ID...\"\n value={searchInput}\n onChange={(e) => setSearchInput(e.target.value)}\n className=\"input text-[11px] py-1 px-2 w-56\"\n />\n <FilterDivider />\n <FilterSelect\n label=\"Type\"\n value={filters.entity}\n onChange={(v) => setFilter('entity', v)}\n options={entities.map((e) => ({ value: e, label: e }))}\n />\n <FilterDivider />\n <FilterSelect\n label=\"Status\"\n value={filters.status}\n onChange={(v) => setFilter('status', v)}\n options={[\n { value: 'running', label: 'Running' },\n { value: 'completed', label: 'Completed' },\n { value: 'failed', label: 'Failed' },\n ]}\n />\n <FilterDivider />\n <FilterSelect\n label=\"Tier\"\n value={filters.tier === 'all' ? '' : filters.tier}\n onChange={(v) => setFilter('tier', v || 'all')}\n options={[\n { value: 'certified', label: 'Certified' },\n { value: 'durable', label: 'Durable' },\n ]}\n />\n </FilterBar>\n\n <DataTable\n columns={columns}\n data={jobs}\n keyFn={(row) => row.workflow_id}\n onRowClick={(row) => navigate(`/workflows/executions/${row.workflow_id}`)}\n isLoading={isLoading}\n emptyMessage={emptyMessage}\n sort={sort}\n onSort={setSort}\n />\n\n <StickyPagination\n page={pagination.page}\n totalPages={pagination.totalPages(total)}\n onPageChange={pagination.setPage}\n total={total}\n pageSize={pagination.pageSize}\n onPageSizeChange={pagination.setPageSize}\n />\n </div>\n );\n}\n"],"names":["jobStatusMap","STATUS_DOT","STATUS_COLORS","buildColumns","onFilterEntity","onFilterStatus","isSuperAdmin","navigate","tierMap","row","dotClass","pulseClass","jsxs","jsx","WorkflowPill","DateValue","ElapsedCell","RowActionGroup","RowAction","Filter","e","Settings","WorkflowsDashboard","initialTier","useWorkflowListEvents","useNavigate","useAuth","namespace","useNamespace","filters","setFilter","pagination","sort","setSort","useFilterParams","activeTier","registeredFilter","configs","useWorkflowConfigs","discoveredData","useDiscoveredWorkflows","useMemo","map","dw","columns","entity","status","searchInput","setSearchInput","useState","useEffect","timer","jobsData","isLoading","refetch","isFetching","useJobs","total","jobs","entities","c","pageTitle","emptyMessage","PageHeader","FilterBar","ListToolbar","buildApiPath","FilterDivider","FilterSelect","v","DataTable","StickyPagination"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkflowsDashboard-DGtMG5vL.js","sources":["../../src/pages/workflows/WorkflowsDashboard.tsx"],"sourcesContent":["import { useState, useEffect, useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { Filter, Settings } from 'lucide-react';\nimport { ElapsedCell } from '../../components/common/display/ElapsedCell';\nimport { DateValue } from '../../components/common/display/DateValue';\nimport { useJobs, useWorkflowConfigs, useDiscoveredWorkflows } from '../../api/workflows';\nimport { useAuth } from '../../hooks/useAuth';\nimport { useNamespace } from '../../hooks/useNamespace';\nimport { useWorkflowListEvents } from '../../hooks/useEventHooks';\nimport { useFilterParams } from '../../hooks/useFilterParams';\nimport { buildApiPath } from '../../lib/api-path';\nimport { DataTable, type Column } from '../../components/common/data/DataTable';\nimport { WorkflowPill } from '../../components/common/display/WorkflowPill';\nimport { PageHeader } from '../../components/common/layout/PageHeader';\nimport { FilterBar, FilterSelect, FilterDivider } from '../../components/common/data/FilterBar';\nimport { StickyPagination } from '../../components/common/data/StickyPagination';\nimport { ListToolbar } from '../../components/common/data/ListToolbar';\nimport { RowAction, RowActionGroup } from '../../components/common/layout/RowActions';\nimport type { LTJob, WorkflowTier } from '../../api/types';\n\nexport type ExecutionsTier = 'all' | 'certified' | 'durable';\n\nconst jobStatusMap: Record<string, string> = {\n running: 'in_progress',\n completed: 'completed',\n failed: 'failed',\n};\n\nconst STATUS_DOT: Record<string, string> = {\n in_progress: 'bg-status-active',\n completed: 'bg-status-success',\n failed: 'bg-status-error',\n};\n\nconst STATUS_COLORS: Record<string, string> = {\n running: 'text-status-active',\n completed: 'text-status-success',\n failed: 'text-status-error',\n};\n\nfunction buildColumns(\n onFilterEntity: (entity: string) => void,\n onFilterStatus: (status: string) => void,\n isSuperAdmin: boolean,\n navigate: (path: string) => void,\n tierMap: Map<string, WorkflowTier>,\n): Column<LTJob>[] {\n return [\n {\n key: 'workflow_id',\n label: 'Workflow ID',\n render: (row) => {\n const dotClass = STATUS_DOT[jobStatusMap[row.status] ?? row.status] ?? 'bg-status-pending';\n const pulseClass = row.status === 'running' ? ' animate-pulse' : '';\n return (\n <div className=\"flex items-center gap-2 min-w-0\">\n <span className={`w-1.5 h-1.5 shrink-0 rounded-full dot-ring ${dotClass}${pulseClass}`} title={row.status} />\n <span className=\"font-mono text-xs text-text-primary truncate\">{row.workflow_id}</span>\n </div>\n );\n },\n },\n {\n key: 'entity',\n label: 'Type',\n render: (row) => <WorkflowPill type={row.entity} variant={tierMap.get(row.entity) ?? 'durable'} size=\"xs\" />,\n className: 'w-44 shrink-0',\n },\n {\n key: 'created_at',\n label: 'Created',\n render: (row) => <DateValue date={row.created_at} format=\"relative\" className=\"text-xs text-text-secondary whitespace-nowrap\" />,\n className: 'w-32',\n sortable: true,\n },\n {\n key: 'updated_at',\n label: 'Updated',\n render: (row) => <DateValue date={row.updated_at} format=\"relative\" className=\"text-xs text-text-secondary whitespace-nowrap\" />,\n className: 'w-32',\n sortable: true,\n },\n {\n key: 'duration',\n label: 'Duration',\n render: (row) => (\n <ElapsedCell\n startDate={row.created_at}\n endDate={row.status === 'running' ? null : row.updated_at}\n isLive={row.status === 'running'}\n />\n ),\n className: 'w-28',\n },\n {\n key: 'actions',\n label: '',\n render: (row) => (\n <RowActionGroup>\n <RowAction\n icon={Filter}\n title={`Filter by ${row.entity}`}\n onClick={() => onFilterEntity(row.entity)}\n />\n <button\n onClick={(e) => { e.stopPropagation(); onFilterStatus(row.status); }}\n className=\"opacity-0 group-hover/row:opacity-100 transition-opacity\"\n title={`Filter by ${row.status}`}\n >\n <svg className={`w-[18px] h-[18px] ${STATUS_COLORS[row.status] ?? 'text-text-tertiary'} hover:opacity-70`} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={1.5}>\n <circle cx=\"12\" cy=\"12\" r=\"6\" />\n </svg>\n </button>\n {isSuperAdmin && (\n <RowAction\n icon={Settings}\n title=\"View config\"\n onClick={() => navigate(`/workflows/registry/${encodeURIComponent(row.entity)}`)}\n />\n )}\n </RowActionGroup>\n ),\n className: 'w-24 text-right',\n },\n ];\n}\n\nexport function WorkflowsDashboard({ tier: initialTier = 'all' }: { tier?: ExecutionsTier }) {\n useWorkflowListEvents();\n const navigate = useNavigate();\n const { isSuperAdmin } = useAuth();\n const { namespace } = useNamespace();\n\n const { filters, setFilter, pagination, sort, setSort } = useFilterParams({\n filters: { search: '', entity: '', status: '', tier: initialTier },\n });\n\n const activeTier = (filters.tier || 'all') as ExecutionsTier;\n\n // Map tier to server-side registered filter\n const registeredFilter = activeTier === 'certified' ? 'true'\n : activeTier === 'durable' ? 'false'\n : undefined;\n\n const { data: configs } = useWorkflowConfigs();\n const { data: discoveredData } = useDiscoveredWorkflows();\n\n const tierMap = useMemo(() => {\n const map = new Map<string, WorkflowTier>();\n for (const dw of discoveredData ?? []) {\n map.set(dw.workflow_type, dw.tier ?? 'durable');\n }\n return map;\n }, [discoveredData]);\n\n const columns = buildColumns(\n (entity) => setFilter('entity', entity),\n (status) => setFilter('status', status),\n isSuperAdmin,\n navigate,\n tierMap,\n );\n const [searchInput, setSearchInput] = useState(filters.search);\n\n useEffect(() => {\n if (searchInput === filters.search) return;\n const timer = setTimeout(() => setFilter('search', searchInput), 300);\n return () => clearTimeout(timer);\n }, [searchInput, setFilter, filters.search]);\n\n const { data: jobsData, isLoading, refetch, isFetching } = useJobs({\n limit: pagination.pageSize,\n offset: pagination.offset,\n entity: filters.entity || undefined,\n search: filters.search || undefined,\n status: filters.status || undefined,\n sort_by: sort.sort_by || 'created_at',\n order: sort.order || 'desc',\n registered: registeredFilter,\n namespace: namespace || undefined,\n });\n\n const total = jobsData?.total ?? 0;\n const jobs = jobsData?.jobs ?? [];\n\n const entities = useMemo(() => {\n return [...new Set((configs ?? []).map((c) => c.workflow_type))].sort();\n }, [configs]);\n\n const pageTitle = 'Workflow Executions';\n\n const emptyMessage = activeTier === 'certified'\n ? 'No certified workflow executions found'\n : activeTier === 'durable'\n ? 'No durable workflow executions found'\n : 'No workflow executions found';\n\n return (\n <div>\n <PageHeader title={pageTitle} docsHash=\"#docs:dashboard.md:procedural-executions\" />\n\n <FilterBar actions={\n <ListToolbar\n onRefresh={() => refetch()}\n isFetching={isFetching}\n apiPath={buildApiPath('/workflow-states/jobs', {\n limit: pagination.pageSize,\n offset: pagination.offset,\n entity: filters.entity || undefined,\n search: filters.search || undefined,\n status: filters.status || undefined,\n sort_by: sort.sort_by || 'created_at',\n order: sort.order || 'desc',\n registered: registeredFilter,\n namespace: namespace || undefined,\n })}\n />\n }>\n <input\n type=\"text\"\n placeholder=\"Search workflow ID...\"\n value={searchInput}\n onChange={(e) => setSearchInput(e.target.value)}\n className=\"input text-[11px] py-1 px-2 w-56\"\n />\n <FilterDivider />\n <FilterSelect\n label=\"Type\"\n value={filters.entity}\n onChange={(v) => setFilter('entity', v)}\n options={entities.map((e) => ({ value: e, label: e }))}\n />\n <FilterDivider />\n <FilterSelect\n label=\"Status\"\n value={filters.status}\n onChange={(v) => setFilter('status', v)}\n options={[\n { value: 'running', label: 'Running' },\n { value: 'completed', label: 'Completed' },\n { value: 'failed', label: 'Failed' },\n ]}\n />\n <FilterDivider />\n <FilterSelect\n label=\"Tier\"\n value={filters.tier === 'all' ? '' : filters.tier}\n onChange={(v) => setFilter('tier', v || 'all')}\n options={[\n { value: 'certified', label: 'Certified' },\n { value: 'durable', label: 'Durable' },\n ]}\n />\n </FilterBar>\n\n <DataTable\n columns={columns}\n data={jobs}\n keyFn={(row) => row.workflow_id}\n onRowClick={(row) => navigate(`/workflows/executions/${row.workflow_id}`)}\n isLoading={isLoading}\n emptyMessage={emptyMessage}\n sort={sort}\n onSort={setSort}\n />\n\n <StickyPagination\n page={pagination.page}\n totalPages={pagination.totalPages(total)}\n onPageChange={pagination.setPage}\n total={total}\n pageSize={pagination.pageSize}\n onPageSizeChange={pagination.setPageSize}\n />\n </div>\n );\n}\n"],"names":["jobStatusMap","STATUS_DOT","STATUS_COLORS","buildColumns","onFilterEntity","onFilterStatus","isSuperAdmin","navigate","tierMap","row","dotClass","pulseClass","jsxs","jsx","WorkflowPill","DateValue","ElapsedCell","RowActionGroup","RowAction","Filter","e","Settings","WorkflowsDashboard","initialTier","useWorkflowListEvents","useNavigate","useAuth","namespace","useNamespace","filters","setFilter","pagination","sort","setSort","useFilterParams","activeTier","registeredFilter","configs","useWorkflowConfigs","discoveredData","useDiscoveredWorkflows","useMemo","map","dw","columns","entity","status","searchInput","setSearchInput","useState","useEffect","timer","jobsData","isLoading","refetch","isFetching","useJobs","total","jobs","entities","c","pageTitle","emptyMessage","PageHeader","FilterBar","ListToolbar","buildApiPath","FilterDivider","FilterSelect","v","DataTable","StickyPagination"],"mappings":"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"}
|
package/dashboard/dist/assets/{WorkflowsOverview-l-0KYP7Y.js → WorkflowsOverview-BFs-ZSTn.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as x,j as t}from"./vendor-query-B2UbickB.js";import{b as C,u as k}from"./workflows-
|
|
2
|
-
//# sourceMappingURL=WorkflowsOverview-
|
|
1
|
+
import{a as x,j as t}from"./vendor-query-B2UbickB.js";import{b as C,u as k}from"./workflows-B0djSSvg.js";import{b as $}from"./useEventHooks-CtkD_tnd.js";import{P as D}from"./PageHeader-CiFhzGc0.js";import{S as h}from"./StatCard-DrdlUeQz.js";import{c as w}from"./vendor-react-CXumBFUA.js";import"./index-DYcP4jyl.js";import"./vendor-icons-DPmIjhZB.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-[10px] 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-BFs-ZSTn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowsOverview-l-0KYP7Y.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-[10px] 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-BFs-ZSTn.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-[10px] 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,33 +1,33 @@
|
|
|
1
|
-
import{j as p}from"./vendor-query-B2UbickB.js";import{c as vn,d as An}from"./yaml-workflows-
|
|
1
|
+
import{j as p}from"./vendor-query-B2UbickB.js";import{c as vn,d as An}from"./yaml-workflows-CupO7vvi.js";import{S as yn}from"./StatusBadge-CEQMRmSQ.js";import{N as _n}from"./NamespacePill--ikKtMvx.js";import{B as Cn,P as wn,ai as bn,h as se,W as Sn,a3 as En,au as Nn}from"./vendor-icons-DPmIjhZB.js";import{e as Fn,c as Tn}from"./vendor-react-CXumBFUA.js";import"./index-DYcP4jyl.js";/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */function Te(e){return typeof e>"u"||e===null}function kn(e){return typeof e=="object"&&e!==null}function On(e){return Array.isArray(e)?e:Te(e)?[]:[e]}function In(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 jn(e,n){var i="",l;for(l=0;l<n;l+=1)i+=e;return i}function Ln(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var Rn=Te,Dn=kn,Mn=On,Pn=jn,Yn=Ln,Bn=In,_={isNothing:Rn,isObject:Dn,toArray:Mn,repeat:Pn,isNegativeZero:Yn,extend:Bn};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
|
-
`+e.mark.snippet),l+" "+i):l}function B(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||""}B.prototype=Object.create(Error.prototype);B.prototype.constructor=B;B.prototype.toString=function(n){return this.name+": "+ke(this,n)};var b=B;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 Hn(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="",t,
|
|
4
|
-
`+c;for(
|
|
5
|
-
`,c+=_.repeat("-",n.indent+s+3+
|
|
6
|
-
`,
|
|
7
|
-
`;return c.replace(/\n$/,"")}var Un=Hn,qn=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Kn=["scalar","sequence","mapping"];function Wn(e){var n={};return e!==null&&Object.keys(e).forEach(function(i){e[i].forEach(function(l){n[String(l)]=i})}),n}function Gn(e,n){if(n=n||{},Object.keys(n).forEach(function(i){if(qn.indexOf(i)===-1)throw new b('Unknown option "'+i+'" is met in definition of "'+e+'" YAML type.')}),this.options=n,this.tag=e,this.kind=n.kind||null,this.resolve=n.resolve||function(){return!0},this.construct=n.construct||function(i){return i},this.instanceOf=n.instanceOf||null,this.predicate=n.predicate||null,this.represent=n.represent||null,this.representName=n.representName||null,this.defaultStyle=n.defaultStyle||null,this.multi=n.multi||!1,this.styleAliases=Wn(n.styleAliases||null),Kn.indexOf(this.kind)===-1)throw new b('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var C=Gn;function de(e,n){var i=[];return e[n].forEach(function(l){var r=i.length;i.forEach(function(u,o){u.tag===l.tag&&u.kind===l.kind&&u.multi===l.multi&&(r=o)}),i[r]=l}),i}function $n(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},n,i;function l(r){r.multi?(e.multi[r.kind].push(r),e.multi.fallback.push(r)):e[r.kind][r.tag]=e.fallback[r.tag]=r}for(n=0,i=arguments.length;n<i;n+=1)arguments[n].forEach(l);return e}function ee(e){return this.extend(e)}ee.prototype.extend=function(n){var i=[],l=[];if(n instanceof C)l.push(n);else if(Array.isArray(n))l=l.concat(n);else if(n&&(Array.isArray(n.implicit)||Array.isArray(n.explicit)))n.implicit&&(i=i.concat(n.implicit)),n.explicit&&(l=l.concat(n.explicit));else throw new b("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");i.forEach(function(u){if(!(u instanceof C))throw new b("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(u.loadKind&&u.loadKind!=="scalar")throw new b("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(u.multi)throw new b("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),l.forEach(function(u){if(!(u instanceof C))throw new b("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var r=Object.create(ee.prototype);return r.implicit=(this.implicit||[]).concat(i),r.explicit=(this.explicit||[]).concat(l),r.compiledImplicit=de(r,"implicit"),r.compiledExplicit=de(r,"explicit"),r.compiledTypeMap=$n(r.compiledImplicit,r.compiledExplicit),r};var Oe=ee,Ie=new C("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}}),je=new C("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}}),Le=new C("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}}),Re=new Oe({explicit:[Ie,je,Le]});function Qn(e){if(e===null)return!0;var n=e.length;return n===1&&e==="~"||n===4&&(e==="null"||e==="Null"||e==="NULL")}function Vn(){return null}function Xn(e){return e===null}var De=new C("tag:yaml.org,2002:null",{kind:"scalar",resolve:Qn,construct:Vn,predicate:Xn,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function Zn(e){if(e===null)return!1;var n=e.length;return n===4&&(e==="true"||e==="True"||e==="TRUE")||n===5&&(e==="false"||e==="False"||e==="FALSE")}function zn(e){return e==="true"||e==="True"||e==="TRUE"}function Jn(e){return Object.prototype.toString.call(e)==="[object Boolean]"}var Me=new C("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Zn,construct:zn,predicate:Jn,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"});function ei(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function ni(e){return 48<=e&&e<=55}function ii(e){return 48<=e&&e<=57}function ri(e){if(e===null)return!1;var n=e.length,i=0,l=!1,r;if(!n)return!1;if(r=e[i],(r==="-"||r==="+")&&(r=e[++i]),r==="0"){if(i+1===n)return!0;if(r=e[++i],r==="b"){for(i++;i<n;i++)if(r=e[i],r!=="_"){if(r!=="0"&&r!=="1")return!1;l=!0}return l&&r!=="_"}if(r==="x"){for(i++;i<n;i++)if(r=e[i],r!=="_"){if(!ei(e.charCodeAt(i)))return!1;l=!0}return l&&r!=="_"}if(r==="o"){for(i++;i<n;i++)if(r=e[i],r!=="_"){if(!ni(e.charCodeAt(i)))return!1;l=!0}return l&&r!=="_"}}if(r==="_")return!1;for(;i<n;i++)if(r=e[i],r!=="_"){if(!ii(e.charCodeAt(i)))return!1;l=!0}return!(!l||r==="_")}function li(e){var n=e,i=1,l;if(n.indexOf("_")!==-1&&(n=n.replace(/_/g,"")),l=n[0],(l==="-"||l==="+")&&(l==="-"&&(i=-1),n=n.slice(1),l=n[0]),n==="0")return 0;if(l==="0"){if(n[1]==="b")return i*parseInt(n.slice(2),2);if(n[1]==="x")return i*parseInt(n.slice(2),16);if(n[1]==="o")return i*parseInt(n.slice(2),8)}return i*parseInt(n,10)}function oi(e){return Object.prototype.toString.call(e)==="[object Number]"&&e%1===0&&!_.isNegativeZero(e)}var Pe=new C("tag:yaml.org,2002:int",{kind:"scalar",resolve:ri,construct:li,predicate:oi,represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),ui=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function ci(e){return!(e===null||!ui.test(e)||e[e.length-1]==="_")}function
|
|
3
|
+
`+e.mark.snippet),l+" "+i):l}function B(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||""}B.prototype=Object.create(Error.prototype);B.prototype.constructor=B;B.prototype.toString=function(n){return this.name+": "+ke(this,n)};var b=B;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 Hn(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
|
+
`+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+`
|
|
5
|
+
`,c+=_.repeat("-",n.indent+s+3+t.pos)+`^
|
|
6
|
+
`,a=1;a<=n.linesAfter&&!(o+a>=r.length);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+`
|
|
7
|
+
`;return c.replace(/\n$/,"")}var Un=Hn,qn=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Kn=["scalar","sequence","mapping"];function Wn(e){var n={};return e!==null&&Object.keys(e).forEach(function(i){e[i].forEach(function(l){n[String(l)]=i})}),n}function Gn(e,n){if(n=n||{},Object.keys(n).forEach(function(i){if(qn.indexOf(i)===-1)throw new b('Unknown option "'+i+'" is met in definition of "'+e+'" YAML type.')}),this.options=n,this.tag=e,this.kind=n.kind||null,this.resolve=n.resolve||function(){return!0},this.construct=n.construct||function(i){return i},this.instanceOf=n.instanceOf||null,this.predicate=n.predicate||null,this.represent=n.represent||null,this.representName=n.representName||null,this.defaultStyle=n.defaultStyle||null,this.multi=n.multi||!1,this.styleAliases=Wn(n.styleAliases||null),Kn.indexOf(this.kind)===-1)throw new b('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var C=Gn;function de(e,n){var i=[];return e[n].forEach(function(l){var r=i.length;i.forEach(function(u,o){u.tag===l.tag&&u.kind===l.kind&&u.multi===l.multi&&(r=o)}),i[r]=l}),i}function $n(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},n,i;function l(r){r.multi?(e.multi[r.kind].push(r),e.multi.fallback.push(r)):e[r.kind][r.tag]=e.fallback[r.tag]=r}for(n=0,i=arguments.length;n<i;n+=1)arguments[n].forEach(l);return e}function ee(e){return this.extend(e)}ee.prototype.extend=function(n){var i=[],l=[];if(n instanceof C)l.push(n);else if(Array.isArray(n))l=l.concat(n);else if(n&&(Array.isArray(n.implicit)||Array.isArray(n.explicit)))n.implicit&&(i=i.concat(n.implicit)),n.explicit&&(l=l.concat(n.explicit));else throw new b("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");i.forEach(function(u){if(!(u instanceof C))throw new b("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(u.loadKind&&u.loadKind!=="scalar")throw new b("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(u.multi)throw new b("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),l.forEach(function(u){if(!(u instanceof C))throw new b("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var r=Object.create(ee.prototype);return r.implicit=(this.implicit||[]).concat(i),r.explicit=(this.explicit||[]).concat(l),r.compiledImplicit=de(r,"implicit"),r.compiledExplicit=de(r,"explicit"),r.compiledTypeMap=$n(r.compiledImplicit,r.compiledExplicit),r};var Oe=ee,Ie=new C("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}}),je=new C("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}}),Le=new C("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}}),Re=new Oe({explicit:[Ie,je,Le]});function Qn(e){if(e===null)return!0;var n=e.length;return n===1&&e==="~"||n===4&&(e==="null"||e==="Null"||e==="NULL")}function Vn(){return null}function Xn(e){return e===null}var De=new C("tag:yaml.org,2002:null",{kind:"scalar",resolve:Qn,construct:Vn,predicate:Xn,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function Zn(e){if(e===null)return!1;var n=e.length;return n===4&&(e==="true"||e==="True"||e==="TRUE")||n===5&&(e==="false"||e==="False"||e==="FALSE")}function zn(e){return e==="true"||e==="True"||e==="TRUE"}function Jn(e){return Object.prototype.toString.call(e)==="[object Boolean]"}var Me=new C("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Zn,construct:zn,predicate:Jn,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"});function ei(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function ni(e){return 48<=e&&e<=55}function ii(e){return 48<=e&&e<=57}function ri(e){if(e===null)return!1;var n=e.length,i=0,l=!1,r;if(!n)return!1;if(r=e[i],(r==="-"||r==="+")&&(r=e[++i]),r==="0"){if(i+1===n)return!0;if(r=e[++i],r==="b"){for(i++;i<n;i++)if(r=e[i],r!=="_"){if(r!=="0"&&r!=="1")return!1;l=!0}return l&&r!=="_"}if(r==="x"){for(i++;i<n;i++)if(r=e[i],r!=="_"){if(!ei(e.charCodeAt(i)))return!1;l=!0}return l&&r!=="_"}if(r==="o"){for(i++;i<n;i++)if(r=e[i],r!=="_"){if(!ni(e.charCodeAt(i)))return!1;l=!0}return l&&r!=="_"}}if(r==="_")return!1;for(;i<n;i++)if(r=e[i],r!=="_"){if(!ii(e.charCodeAt(i)))return!1;l=!0}return!(!l||r==="_")}function li(e){var n=e,i=1,l;if(n.indexOf("_")!==-1&&(n=n.replace(/_/g,"")),l=n[0],(l==="-"||l==="+")&&(l==="-"&&(i=-1),n=n.slice(1),l=n[0]),n==="0")return 0;if(l==="0"){if(n[1]==="b")return i*parseInt(n.slice(2),2);if(n[1]==="x")return i*parseInt(n.slice(2),16);if(n[1]==="o")return i*parseInt(n.slice(2),8)}return i*parseInt(n,10)}function oi(e){return Object.prototype.toString.call(e)==="[object Number]"&&e%1===0&&!_.isNegativeZero(e)}var Pe=new C("tag:yaml.org,2002:int",{kind:"scalar",resolve:ri,construct:li,predicate:oi,represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),ui=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function ci(e){return!(e===null||!ui.test(e)||e[e.length-1]==="_")}function ai(e){var n,i;return n=e.replace(/_/g,"").toLowerCase(),i=n[0]==="-"?-1:1,"+-".indexOf(n[0])>=0&&(n=n.slice(1)),n===".inf"?i===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:n===".nan"?NaN:i*parseFloat(n,10)}var ti=/^[-+]?[0-9]+e/;function fi(e,n){var i;if(isNaN(e))switch(n){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(n){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(n){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(_.isNegativeZero(e))return"-0.0";return i=e.toString(10),ti.test(i)?i.replace("e",".e"):i}function pi(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||_.isNegativeZero(e))}var Ye=new C("tag:yaml.org,2002:float",{kind:"scalar",resolve:ci,construct:ai,predicate:pi,represent:fi,defaultStyle:"lowercase"}),Be=Re.extend({implicit:[De,Me,Pe,Ye]}),He=Be,Ue=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),qe=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function si(e){return e===null?!1:Ue.exec(e)!==null||qe.exec(e)!==null}function di(e){var n,i,l,r,u,o,c,a=0,t=null,s,f,h;if(n=Ue.exec(e),n===null&&(n=qe.exec(e)),n===null)throw new Error("Date resolve error");if(i=+n[1],l=+n[2]-1,r=+n[3],!n[4])return new Date(Date.UTC(i,l,r));if(u=+n[4],o=+n[5],c=+n[6],n[7]){for(a=n[7].slice(0,3);a.length<3;)a+="0";a=+a}return n[9]&&(s=+n[10],f=+(n[11]||0),t=(s*60+f)*6e4,n[9]==="-"&&(t=-t)),h=new Date(Date.UTC(i,l,r,u,o,c,a)),t&&h.setTime(h.getTime()-t),h}function hi(e){return e.toISOString()}var Ke=new C("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:si,construct:di,instanceOf:Date,represent:hi});function xi(e){return e==="<<"||e===null}var We=new C("tag:yaml.org,2002:merge",{kind:"scalar",resolve:xi}),ue=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
|
|
8
8
|
\r`;function mi(e){if(e===null)return!1;var n,i,l=0,r=e.length,u=ue;for(i=0;i<r;i++)if(n=u.indexOf(e.charAt(i)),!(n>64)){if(n<0)return!1;l+=6}return l%8===0}function gi(e){var n,i,l=e.replace(/[\r\n=]/g,""),r=l.length,u=ue,o=0,c=[];for(n=0;n<r;n++)n%4===0&&n&&(c.push(o>>16&255),c.push(o>>8&255),c.push(o&255)),o=o<<6|u.indexOf(l.charAt(n));return i=r%4*6,i===0?(c.push(o>>16&255),c.push(o>>8&255),c.push(o&255)):i===18?(c.push(o>>10&255),c.push(o>>2&255)):i===12&&c.push(o>>4&255),new Uint8Array(c)}function vi(e){var n="",i=0,l,r,u=e.length,o=ue;for(l=0;l<u;l++)l%3===0&&l&&(n+=o[i>>18&63],n+=o[i>>12&63],n+=o[i>>6&63],n+=o[i&63]),i=(i<<8)+e[l];return r=u%3,r===0?(n+=o[i>>18&63],n+=o[i>>12&63],n+=o[i>>6&63],n+=o[i&63]):r===2?(n+=o[i>>10&63],n+=o[i>>4&63],n+=o[i<<2&63],n+=o[64]):r===1&&(n+=o[i>>2&63],n+=o[i<<4&63],n+=o[64],n+=o[64]),n}function Ai(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}var Ge=new C("tag:yaml.org,2002:binary",{kind:"scalar",resolve:mi,construct:gi,predicate:Ai,represent:vi}),yi=Object.prototype.hasOwnProperty,_i=Object.prototype.toString;function Ci(e){if(e===null)return!0;var n=[],i,l,r,u,o,c=e;for(i=0,l=c.length;i<l;i+=1){if(r=c[i],o=!1,_i.call(r)!=="[object Object]")return!1;for(u in r)if(yi.call(r,u))if(!o)o=!0;else return!1;if(!o)return!1;if(n.indexOf(u)===-1)n.push(u);else return!1}return!0}function wi(e){return e!==null?e:[]}var $e=new C("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Ci,construct:wi}),bi=Object.prototype.toString;function Si(e){if(e===null)return!0;var n,i,l,r,u,o=e;for(u=new Array(o.length),n=0,i=o.length;n<i;n+=1){if(l=o[n],bi.call(l)!=="[object Object]"||(r=Object.keys(l),r.length!==1))return!1;u[n]=[r[0],l[r[0]]]}return!0}function Ei(e){if(e===null)return[];var n,i,l,r,u,o=e;for(u=new Array(o.length),n=0,i=o.length;n<i;n+=1)l=o[n],r=Object.keys(l),u[n]=[r[0],l[r[0]]];return u}var Qe=new C("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Si,construct:Ei}),Ni=Object.prototype.hasOwnProperty;function Fi(e){if(e===null)return!0;var n,i=e;for(n in i)if(Ni.call(i,n)&&i[n]!==null)return!1;return!0}function Ti(e){return e!==null?e:{}}var Ve=new C("tag:yaml.org,2002:set",{kind:"mapping",resolve:Fi,construct:Ti}),ce=He.extend({implicit:[Ke,We],explicit:[Ge,$e,Qe,Ve]}),k=Object.prototype.hasOwnProperty,K=1,Xe=2,Ze=3,W=4,z=1,ki=2,he=3,Oi=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Ii=/[\x85\u2028\u2029]/,ji=/[,\[\]\{\}]/,ze=/^(?:!|!!|![a-z\-]+!)$/i,Je=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function xe(e){return Object.prototype.toString.call(e)}function N(e){return e===10||e===13}function O(e){return e===9||e===32}function S(e){return e===9||e===32||e===10||e===13}function D(e){return e===44||e===91||e===93||e===123||e===125}function Li(e){var n;return 48<=e&&e<=57?e-48:(n=e|32,97<=n&&n<=102?n-97+10:-1)}function Ri(e){return e===120?2:e===117?4:e===85?8:0}function Di(e){return 48<=e&&e<=57?e-48:-1}function me(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?`
|
|
9
|
-
`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"
":e===95?" ":e===76?"\u2028":e===80?"\u2029":""}function Mi(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function en(e,n,i){n==="__proto__"?Object.defineProperty(e,n,{configurable:!0,enumerable:!0,writable:!0,value:i}):e[n]=i}var nn=new Array(256),rn=new Array(256);for(var I=0;I<256;I++)nn[I]=me(I)?1:0,rn[I]=me(I);function Pi(e,n){this.input=e,this.filename=n.filename||null,this.schema=n.schema||ce,this.onWarning=n.onWarning||null,this.legacy=n.legacy||!1,this.json=n.json||!1,this.listener=n.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function ln(e,n){var i={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return i.snippet=Un(i),new b(n,i)}function d(e,n){throw ln(e,n)}function G(e,n){e.onWarning&&e.onWarning.call(null,ln(e,n))}var ge={YAML:function(n,i,l){var r,u,o;n.version!==null&&d(n,"duplication of %YAML directive"),l.length!==1&&d(n,"YAML directive accepts exactly one argument"),r=/^([0-9]+)\.([0-9]+)$/.exec(l[0]),r===null&&d(n,"ill-formed argument of the YAML directive"),u=parseInt(r[1],10),o=parseInt(r[2],10),u!==1&&d(n,"unacceptable YAML version of the document"),n.version=l[0],n.checkLineBreaks=o<2,o!==1&&o!==2&&G(n,"unsupported YAML version of the document")},TAG:function(n,i,l){var r,u;l.length!==2&&d(n,"TAG directive accepts exactly two arguments"),r=l[0],u=l[1],ze.test(r)||d(n,"ill-formed tag handle (first argument) of the TAG directive"),k.call(n.tagMap,r)&&d(n,'there is a previously declared suffix for "'+r+'" tag handle'),Je.test(u)||d(n,"ill-formed tag prefix (second argument) of the TAG directive");try{u=decodeURIComponent(u)}catch{d(n,"tag prefix is malformed: "+u)}n.tagMap[r]=u}};function T(e,n,i,l){var r,u,o,c;if(n<i){if(c=e.input.slice(n,i),l)for(r=0,u=c.length;r<u;r+=1)o=c.charCodeAt(r),o===9||32<=o&&o<=1114111||d(e,"expected valid JSON character");else Oi.test(c)&&d(e,"the stream contains non-printable characters");e.result+=c}}function ve(e,n,i,l){var r,u,o,c;for(_.isObject(i)||d(e,"cannot merge mappings; the provided source object is unacceptable"),r=Object.keys(i),o=0,c=r.length;o<c;o+=1)u=r[o],k.call(n,u)||(en(n,u,i[u]),l[u]=!0)}function M(e,n,i,l,r,u,o,c,
|
|
10
|
-
`,n-1))}function Yi(e,n,i){var l,r,u,o,c,t,
|
|
11
|
-
`,u?1+
|
|
12
|
-
`);break}for(l?O(f)?(
|
|
13
|
-
`,u?1+
|
|
14
|
-
`,
|
|
15
|
-
`,
|
|
16
|
-
`,u?1+
|
|
17
|
-
`),e.charCodeAt(0)===65279&&(e=e.slice(1)));var i=new Pi(e,n),l=e.indexOf("\0");for(l!==-1&&(i.position=l,d(i,"null byte is not allowed in input")),i.input+="\0";i.input.charCodeAt(i.position)===32;)i.lineIndent+=1,i.position+=1;for(;i.position<i.length-1;)Qi(i);return i.documents}function Vi(e,n,i){n!==null&&typeof n=="object"&&typeof i>"u"&&(i=n,n=null);var l=on(e,i);if(typeof n!="function")return l;for(var r=0,u=l.length;r<u;r+=1)n(l[r])}function Xi(e,n){var i=on(e,n);if(i.length!==0){if(i.length===1)return i[0];throw new b("expected a single document in the stream, but found more")}}var Zi=Vi,zi=Xi,un={loadAll:Zi,load:zi},cn=Object.prototype.toString,
|
|
9
|
+
`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"
":e===95?" ":e===76?"\u2028":e===80?"\u2029":""}function Mi(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function en(e,n,i){n==="__proto__"?Object.defineProperty(e,n,{configurable:!0,enumerable:!0,writable:!0,value:i}):e[n]=i}var nn=new Array(256),rn=new Array(256);for(var I=0;I<256;I++)nn[I]=me(I)?1:0,rn[I]=me(I);function Pi(e,n){this.input=e,this.filename=n.filename||null,this.schema=n.schema||ce,this.onWarning=n.onWarning||null,this.legacy=n.legacy||!1,this.json=n.json||!1,this.listener=n.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function ln(e,n){var i={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return i.snippet=Un(i),new b(n,i)}function d(e,n){throw ln(e,n)}function G(e,n){e.onWarning&&e.onWarning.call(null,ln(e,n))}var ge={YAML:function(n,i,l){var r,u,o;n.version!==null&&d(n,"duplication of %YAML directive"),l.length!==1&&d(n,"YAML directive accepts exactly one argument"),r=/^([0-9]+)\.([0-9]+)$/.exec(l[0]),r===null&&d(n,"ill-formed argument of the YAML directive"),u=parseInt(r[1],10),o=parseInt(r[2],10),u!==1&&d(n,"unacceptable YAML version of the document"),n.version=l[0],n.checkLineBreaks=o<2,o!==1&&o!==2&&G(n,"unsupported YAML version of the document")},TAG:function(n,i,l){var r,u;l.length!==2&&d(n,"TAG directive accepts exactly two arguments"),r=l[0],u=l[1],ze.test(r)||d(n,"ill-formed tag handle (first argument) of the TAG directive"),k.call(n.tagMap,r)&&d(n,'there is a previously declared suffix for "'+r+'" tag handle'),Je.test(u)||d(n,"ill-formed tag prefix (second argument) of the TAG directive");try{u=decodeURIComponent(u)}catch{d(n,"tag prefix is malformed: "+u)}n.tagMap[r]=u}};function T(e,n,i,l){var r,u,o,c;if(n<i){if(c=e.input.slice(n,i),l)for(r=0,u=c.length;r<u;r+=1)o=c.charCodeAt(r),o===9||32<=o&&o<=1114111||d(e,"expected valid JSON character");else Oi.test(c)&&d(e,"the stream contains non-printable characters");e.result+=c}}function ve(e,n,i,l){var r,u,o,c;for(_.isObject(i)||d(e,"cannot merge mappings; the provided source object is unacceptable"),r=Object.keys(i),o=0,c=r.length;o<c;o+=1)u=r[o],k.call(n,u)||(en(n,u,i[u]),l[u]=!0)}function M(e,n,i,l,r,u,o,c,a){var t,s;if(Array.isArray(r))for(r=Array.prototype.slice.call(r),t=0,s=r.length;t<s;t+=1)Array.isArray(r[t])&&d(e,"nested arrays are not supported inside keys"),typeof r=="object"&&xe(r[t])==="[object Object]"&&(r[t]="[object Object]");if(typeof r=="object"&&xe(r)==="[object Object]"&&(r="[object Object]"),r=String(r),n===null&&(n={}),l==="tag:yaml.org,2002:merge")if(Array.isArray(u))for(t=0,s=u.length;t<s;t+=1)ve(e,n,u[t],i);else ve(e,n,u,i);else!e.json&&!k.call(i,r)&&k.call(n,r)&&(e.line=o||e.line,e.lineStart=c||e.lineStart,e.position=a||e.position,d(e,"duplicated mapping key")),en(n,r,u),delete i[r];return n}function ae(e){var n;n=e.input.charCodeAt(e.position),n===10?e.position++:n===13?(e.position++,e.input.charCodeAt(e.position)===10&&e.position++):d(e,"a line break is expected"),e.line+=1,e.lineStart=e.position,e.firstTabInLine=-1}function y(e,n,i){for(var l=0,r=e.input.charCodeAt(e.position);r!==0;){for(;O(r);)r===9&&e.firstTabInLine===-1&&(e.firstTabInLine=e.position),r=e.input.charCodeAt(++e.position);if(n&&r===35)do r=e.input.charCodeAt(++e.position);while(r!==10&&r!==13&&r!==0);if(N(r))for(ae(e),r=e.input.charCodeAt(e.position),l++,e.lineIndent=0;r===32;)e.lineIndent++,r=e.input.charCodeAt(++e.position);else break}return i!==-1&&l!==0&&e.lineIndent<i&&G(e,"deficient indentation"),l}function V(e){var n=e.position,i;return i=e.input.charCodeAt(n),!!((i===45||i===46)&&i===e.input.charCodeAt(n+1)&&i===e.input.charCodeAt(n+2)&&(n+=3,i=e.input.charCodeAt(n),i===0||S(i)))}function te(e,n){n===1?e.result+=" ":n>1&&(e.result+=_.repeat(`
|
|
10
|
+
`,n-1))}function Yi(e,n,i){var l,r,u,o,c,a,t,s,f=e.kind,h=e.result,x;if(x=e.input.charCodeAt(e.position),S(x)||D(x)||x===35||x===38||x===42||x===33||x===124||x===62||x===39||x===34||x===37||x===64||x===96||(x===63||x===45)&&(r=e.input.charCodeAt(e.position+1),S(r)||i&&D(r)))return!1;for(e.kind="scalar",e.result="",u=o=e.position,c=!1;x!==0;){if(x===58){if(r=e.input.charCodeAt(e.position+1),S(r)||i&&D(r))break}else if(x===35){if(l=e.input.charCodeAt(e.position-1),S(l))break}else{if(e.position===e.lineStart&&V(e)||i&&D(x))break;if(N(x))if(a=e.line,t=e.lineStart,s=e.lineIndent,y(e,!1,-1),e.lineIndent>=n){c=!0,x=e.input.charCodeAt(e.position);continue}else{e.position=o,e.line=a,e.lineStart=t,e.lineIndent=s;break}}c&&(T(e,u,o,!1),te(e,e.line-a),u=o=e.position,c=!1),O(x)||(o=e.position+1),x=e.input.charCodeAt(++e.position)}return T(e,u,o,!1),e.result?!0:(e.kind=f,e.result=h,!1)}function Bi(e,n){var i,l,r;if(i=e.input.charCodeAt(e.position),i!==39)return!1;for(e.kind="scalar",e.result="",e.position++,l=r=e.position;(i=e.input.charCodeAt(e.position))!==0;)if(i===39)if(T(e,l,e.position,!0),i=e.input.charCodeAt(++e.position),i===39)l=e.position,e.position++,r=e.position;else return!0;else N(i)?(T(e,l,r,!0),te(e,y(e,!1,n)),l=r=e.position):e.position===e.lineStart&&V(e)?d(e,"unexpected end of the document within a single quoted scalar"):(e.position++,r=e.position);d(e,"unexpected end of the stream within a single quoted scalar")}function Hi(e,n){var i,l,r,u,o,c;if(c=e.input.charCodeAt(e.position),c!==34)return!1;for(e.kind="scalar",e.result="",e.position++,i=l=e.position;(c=e.input.charCodeAt(e.position))!==0;){if(c===34)return T(e,i,e.position,!0),e.position++,!0;if(c===92){if(T(e,i,e.position,!0),c=e.input.charCodeAt(++e.position),N(c))y(e,!1,n);else if(c<256&&nn[c])e.result+=rn[c],e.position++;else if((o=Ri(c))>0){for(r=o,u=0;r>0;r--)c=e.input.charCodeAt(++e.position),(o=Li(c))>=0?u=(u<<4)+o:d(e,"expected hexadecimal character");e.result+=Mi(u),e.position++}else d(e,"unknown escape sequence");i=l=e.position}else N(c)?(T(e,i,l,!0),te(e,y(e,!1,n)),i=l=e.position):e.position===e.lineStart&&V(e)?d(e,"unexpected end of the document within a double quoted scalar"):(e.position++,l=e.position)}d(e,"unexpected end of the stream within a double quoted scalar")}function Ui(e,n){var i=!0,l,r,u,o=e.tag,c,a=e.anchor,t,s,f,h,x,m=Object.create(null),v,A,E,g;if(g=e.input.charCodeAt(e.position),g===91)s=93,x=!1,c=[];else if(g===123)s=125,x=!0,c={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=c),g=e.input.charCodeAt(++e.position);g!==0;){if(y(e,!0,n),g=e.input.charCodeAt(e.position),g===s)return e.position++,e.tag=o,e.anchor=a,e.kind=x?"mapping":"sequence",e.result=c,!0;i?g===44&&d(e,"expected the node content, but found ','"):d(e,"missed comma between flow collection entries"),A=v=E=null,f=h=!1,g===63&&(t=e.input.charCodeAt(e.position+1),S(t)&&(f=h=!0,e.position++,y(e,!0,n))),l=e.line,r=e.lineStart,u=e.position,P(e,n,K,!1,!0),A=e.tag,v=e.result,y(e,!0,n),g=e.input.charCodeAt(e.position),(h||e.line===l)&&g===58&&(f=!0,g=e.input.charCodeAt(++e.position),y(e,!0,n),P(e,n,K,!1,!0),E=e.result),x?M(e,c,m,A,v,E,l,r,u):f?c.push(M(e,null,m,A,v,E,l,r,u)):c.push(v),y(e,!0,n),g=e.input.charCodeAt(e.position),g===44?(i=!0,g=e.input.charCodeAt(++e.position)):i=!1}d(e,"unexpected end of the stream within a flow collection")}function qi(e,n){var i,l,r=z,u=!1,o=!1,c=n,a=0,t=!1,s,f;if(f=e.input.charCodeAt(e.position),f===124)l=!1;else if(f===62)l=!0;else return!1;for(e.kind="scalar",e.result="";f!==0;)if(f=e.input.charCodeAt(++e.position),f===43||f===45)z===r?r=f===43?he:ki:d(e,"repeat of a chomping mode identifier");else if((s=Di(f))>=0)s===0?d(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?d(e,"repeat of an indentation width identifier"):(c=n+s-1,o=!0);else break;if(O(f)){do f=e.input.charCodeAt(++e.position);while(O(f));if(f===35)do f=e.input.charCodeAt(++e.position);while(!N(f)&&f!==0)}for(;f!==0;){for(ae(e),e.lineIndent=0,f=e.input.charCodeAt(e.position);(!o||e.lineIndent<c)&&f===32;)e.lineIndent++,f=e.input.charCodeAt(++e.position);if(!o&&e.lineIndent>c&&(c=e.lineIndent),N(f)){a++;continue}if(e.lineIndent<c){r===he?e.result+=_.repeat(`
|
|
11
|
+
`,u?1+a:a):r===z&&u&&(e.result+=`
|
|
12
|
+
`);break}for(l?O(f)?(t=!0,e.result+=_.repeat(`
|
|
13
|
+
`,u?1+a:a)):t?(t=!1,e.result+=_.repeat(`
|
|
14
|
+
`,a+1)):a===0?u&&(e.result+=" "):e.result+=_.repeat(`
|
|
15
|
+
`,a):e.result+=_.repeat(`
|
|
16
|
+
`,u?1+a:a),u=!0,o=!0,a=0,i=e.position;!N(f)&&f!==0;)f=e.input.charCodeAt(++e.position);T(e,i,e.position,!1)}return!0}function Ae(e,n){var i,l=e.tag,r=e.anchor,u=[],o,c=!1,a;if(e.firstTabInLine!==-1)return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=u),a=e.input.charCodeAt(e.position);a!==0&&(e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,d(e,"tab characters must not be used in indentation")),!(a!==45||(o=e.input.charCodeAt(e.position+1),!S(o))));){if(c=!0,e.position++,y(e,!0,-1)&&e.lineIndent<=n){u.push(null),a=e.input.charCodeAt(e.position);continue}if(i=e.line,P(e,n,Ze,!1,!0),u.push(e.result),y(e,!0,-1),a=e.input.charCodeAt(e.position),(e.line===i||e.lineIndent>n)&&a!==0)d(e,"bad indentation of a sequence entry");else if(e.lineIndent<n)break}return c?(e.tag=l,e.anchor=r,e.kind="sequence",e.result=u,!0):!1}function Ki(e,n,i){var l,r,u,o,c,a,t=e.tag,s=e.anchor,f={},h=Object.create(null),x=null,m=null,v=null,A=!1,E=!1,g;if(e.firstTabInLine!==-1)return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=f),g=e.input.charCodeAt(e.position);g!==0;){if(!A&&e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,d(e,"tab characters must not be used in indentation")),l=e.input.charCodeAt(e.position+1),u=e.line,(g===63||g===58)&&S(l))g===63?(A&&(M(e,f,h,x,m,null,o,c,a),x=m=v=null),E=!0,A=!0,r=!0):A?(A=!1,r=!0):d(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,g=l;else{if(o=e.line,c=e.lineStart,a=e.position,!P(e,i,Xe,!1,!0))break;if(e.line===u){for(g=e.input.charCodeAt(e.position);O(g);)g=e.input.charCodeAt(++e.position);if(g===58)g=e.input.charCodeAt(++e.position),S(g)||d(e,"a whitespace character is expected after the key-value separator within a block mapping"),A&&(M(e,f,h,x,m,null,o,c,a),x=m=v=null),E=!0,A=!1,r=!1,x=e.tag,m=e.result;else if(E)d(e,"can not read an implicit mapping pair; a colon is missed");else return e.tag=t,e.anchor=s,!0}else if(E)d(e,"can not read a block mapping entry; a multiline key may not be an implicit key");else return e.tag=t,e.anchor=s,!0}if((e.line===u||e.lineIndent>n)&&(A&&(o=e.line,c=e.lineStart,a=e.position),P(e,n,W,!0,r)&&(A?m=e.result:v=e.result),A||(M(e,f,h,x,m,v,o,c,a),x=m=v=null),y(e,!0,-1),g=e.input.charCodeAt(e.position)),(e.line===u||e.lineIndent>n)&&g!==0)d(e,"bad indentation of a mapping entry");else if(e.lineIndent<n)break}return A&&M(e,f,h,x,m,null,o,c,a),E&&(e.tag=t,e.anchor=s,e.kind="mapping",e.result=f),E}function Wi(e){var n,i=!1,l=!1,r,u,o;if(o=e.input.charCodeAt(e.position),o!==33)return!1;if(e.tag!==null&&d(e,"duplication of a tag property"),o=e.input.charCodeAt(++e.position),o===60?(i=!0,o=e.input.charCodeAt(++e.position)):o===33?(l=!0,r="!!",o=e.input.charCodeAt(++e.position)):r="!",n=e.position,i){do o=e.input.charCodeAt(++e.position);while(o!==0&&o!==62);e.position<e.length?(u=e.input.slice(n,e.position),o=e.input.charCodeAt(++e.position)):d(e,"unexpected end of the stream within a verbatim tag")}else{for(;o!==0&&!S(o);)o===33&&(l?d(e,"tag suffix cannot contain exclamation marks"):(r=e.input.slice(n-1,e.position+1),ze.test(r)||d(e,"named tag handle cannot contain such characters"),l=!0,n=e.position+1)),o=e.input.charCodeAt(++e.position);u=e.input.slice(n,e.position),ji.test(u)&&d(e,"tag suffix cannot contain flow indicator characters")}u&&!Je.test(u)&&d(e,"tag name cannot contain such characters: "+u);try{u=decodeURIComponent(u)}catch{d(e,"tag name is malformed: "+u)}return i?e.tag=u:k.call(e.tagMap,r)?e.tag=e.tagMap[r]+u:r==="!"?e.tag="!"+u:r==="!!"?e.tag="tag:yaml.org,2002:"+u:d(e,'undeclared tag handle "'+r+'"'),!0}function Gi(e){var n,i;if(i=e.input.charCodeAt(e.position),i!==38)return!1;for(e.anchor!==null&&d(e,"duplication of an anchor property"),i=e.input.charCodeAt(++e.position),n=e.position;i!==0&&!S(i)&&!D(i);)i=e.input.charCodeAt(++e.position);return e.position===n&&d(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(n,e.position),!0}function $i(e){var n,i,l;if(l=e.input.charCodeAt(e.position),l!==42)return!1;for(l=e.input.charCodeAt(++e.position),n=e.position;l!==0&&!S(l)&&!D(l);)l=e.input.charCodeAt(++e.position);return e.position===n&&d(e,"name of an alias node must contain at least one character"),i=e.input.slice(n,e.position),k.call(e.anchorMap,i)||d(e,'unidentified alias "'+i+'"'),e.result=e.anchorMap[i],y(e,!0,-1),!0}function P(e,n,i,l,r){var u,o,c,a=1,t=!1,s=!1,f,h,x,m,v,A;if(e.listener!==null&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,u=o=c=W===i||Ze===i,l&&y(e,!0,-1)&&(t=!0,e.lineIndent>n?a=1:e.lineIndent===n?a=0:e.lineIndent<n&&(a=-1)),a===1)for(;Wi(e)||Gi(e);)y(e,!0,-1)?(t=!0,c=u,e.lineIndent>n?a=1:e.lineIndent===n?a=0:e.lineIndent<n&&(a=-1)):c=!1;if(c&&(c=t||r),(a===1||W===i)&&(K===i||Xe===i?v=n:v=n+1,A=e.position-e.lineStart,a===1?c&&(Ae(e,A)||Ki(e,A,v))||Ui(e,v)?s=!0:(o&&qi(e,v)||Bi(e,v)||Hi(e,v)?s=!0:$i(e)?(s=!0,(e.tag!==null||e.anchor!==null)&&d(e,"alias node should not have any properties")):Yi(e,v,K===i)&&(s=!0,e.tag===null&&(e.tag="?")),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):a===0&&(s=c&&Ae(e,A))),e.tag===null)e.anchor!==null&&(e.anchorMap[e.anchor]=e.result);else if(e.tag==="?"){for(e.result!==null&&e.kind!=="scalar"&&d(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"'),f=0,h=e.implicitTypes.length;f<h;f+=1)if(m=e.implicitTypes[f],m.resolve(e.result)){e.result=m.construct(e.result),e.tag=m.tag,e.anchor!==null&&(e.anchorMap[e.anchor]=e.result);break}}else if(e.tag!=="!"){if(k.call(e.typeMap[e.kind||"fallback"],e.tag))m=e.typeMap[e.kind||"fallback"][e.tag];else for(m=null,x=e.typeMap.multi[e.kind||"fallback"],f=0,h=x.length;f<h;f+=1)if(e.tag.slice(0,x[f].tag.length)===x[f].tag){m=x[f];break}m||d(e,"unknown tag !<"+e.tag+">"),e.result!==null&&m.kind!==e.kind&&d(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+m.kind+'", not "'+e.kind+'"'),m.resolve(e.result,e.tag)?(e.result=m.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):d(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||s}function Qi(e){var n=e.position,i,l,r,u=!1,o;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(o=e.input.charCodeAt(e.position))!==0&&(y(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||o!==37));){for(u=!0,o=e.input.charCodeAt(++e.position),i=e.position;o!==0&&!S(o);)o=e.input.charCodeAt(++e.position);for(l=e.input.slice(i,e.position),r=[],l.length<1&&d(e,"directive name must not be less than one character in length");o!==0;){for(;O(o);)o=e.input.charCodeAt(++e.position);if(o===35){do o=e.input.charCodeAt(++e.position);while(o!==0&&!N(o));break}if(N(o))break;for(i=e.position;o!==0&&!S(o);)o=e.input.charCodeAt(++e.position);r.push(e.input.slice(i,e.position))}o!==0&&ae(e),k.call(ge,l)?ge[l](e,l,r):G(e,'unknown document directive "'+l+'"')}if(y(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,y(e,!0,-1)):u&&d(e,"directives end mark is expected"),P(e,e.lineIndent-1,W,!1,!0),y(e,!0,-1),e.checkLineBreaks&&Ii.test(e.input.slice(n,e.position))&&G(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&V(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,y(e,!0,-1));return}if(e.position<e.length-1)d(e,"end of the stream or a document separator is expected");else return}function on(e,n){e=String(e),n=n||{},e.length!==0&&(e.charCodeAt(e.length-1)!==10&&e.charCodeAt(e.length-1)!==13&&(e+=`
|
|
17
|
+
`),e.charCodeAt(0)===65279&&(e=e.slice(1)));var i=new Pi(e,n),l=e.indexOf("\0");for(l!==-1&&(i.position=l,d(i,"null byte is not allowed in input")),i.input+="\0";i.input.charCodeAt(i.position)===32;)i.lineIndent+=1,i.position+=1;for(;i.position<i.length-1;)Qi(i);return i.documents}function Vi(e,n,i){n!==null&&typeof n=="object"&&typeof i>"u"&&(i=n,n=null);var l=on(e,i);if(typeof n!="function")return l;for(var r=0,u=l.length;r<u;r+=1)n(l[r])}function Xi(e,n){var i=on(e,n);if(i.length!==0){if(i.length===1)return i[0];throw new b("expected a single document in the stream, but found more")}}var Zi=Vi,zi=Xi,un={loadAll:Zi,load:zi},cn=Object.prototype.toString,an=Object.prototype.hasOwnProperty,fe=65279,Ji=9,H=10,er=13,nr=32,ir=33,rr=34,ne=35,lr=37,or=38,ur=39,cr=42,tn=44,ar=45,$=58,tr=61,fr=62,pr=63,sr=64,fn=91,pn=93,dr=96,sn=123,hr=124,dn=125,w={};w[0]="\\0";w[7]="\\a";w[8]="\\b";w[9]="\\t";w[10]="\\n";w[11]="\\v";w[12]="\\f";w[13]="\\r";w[27]="\\e";w[34]='\\"';w[92]="\\\\";w[133]="\\N";w[160]="\\_";w[8232]="\\L";w[8233]="\\P";var xr=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],mr=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function gr(e,n){var i,l,r,u,o,c,a;if(n===null)return{};for(i={},l=Object.keys(n),r=0,u=l.length;r<u;r+=1)o=l[r],c=String(n[o]),o.slice(0,2)==="!!"&&(o="tag:yaml.org,2002:"+o.slice(2)),a=e.compiledTypeMap.fallback[o],a&&an.call(a.styleAliases,c)&&(c=a.styleAliases[c]),i[o]=c;return i}function vr(e){var n,i,l;if(n=e.toString(16).toUpperCase(),e<=255)i="x",l=2;else if(e<=65535)i="u",l=4;else if(e<=4294967295)i="U",l=8;else throw new b("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+i+_.repeat("0",l-n.length)+n}var Ar=1,U=2;function yr(e){this.schema=e.schema||ce,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=_.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=gr(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.quotingType=e.quotingType==='"'?U:Ar,this.forceQuotes=e.forceQuotes||!1,this.replacer=typeof e.replacer=="function"?e.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function ye(e,n){for(var i=_.repeat(" ",n),l=0,r=-1,u="",o,c=e.length;l<c;)r=e.indexOf(`
|
|
18
18
|
`,l),r===-1?(o=e.slice(l),l=c):(o=e.slice(l,r+1),l=r+1),o.length&&o!==`
|
|
19
19
|
`&&(u+=i),u+=o;return u}function ie(e,n){return`
|
|
20
|
-
`+_.repeat(" ",e.indent*n)}function _r(e,n){var i,l,r;for(i=0,l=e.implicitTypes.length;i<l;i+=1)if(r=e.implicitTypes[i],r.resolve(n))return!0;return!1}function Q(e){return e===nr||e===Ji}function q(e){return 32<=e&&e<=126||161<=e&&e<=55295&&e!==8232&&e!==8233||57344<=e&&e<=65533&&e!==fe||65536<=e&&e<=1114111}function _e(e){return q(e)&&e!==fe&&e!==er&&e!==H}function Ce(e,n,i){var l=_e(e),r=l&&!Q(e);return(i?l:l&&e!==
|
|
20
|
+
`+_.repeat(" ",e.indent*n)}function _r(e,n){var i,l,r;for(i=0,l=e.implicitTypes.length;i<l;i+=1)if(r=e.implicitTypes[i],r.resolve(n))return!0;return!1}function Q(e){return e===nr||e===Ji}function q(e){return 32<=e&&e<=126||161<=e&&e<=55295&&e!==8232&&e!==8233||57344<=e&&e<=65533&&e!==fe||65536<=e&&e<=1114111}function _e(e){return q(e)&&e!==fe&&e!==er&&e!==H}function Ce(e,n,i){var l=_e(e),r=l&&!Q(e);return(i?l:l&&e!==tn&&e!==fn&&e!==pn&&e!==sn&&e!==dn)&&e!==ne&&!(n===$&&!r)||_e(n)&&!Q(n)&&e===ne||n===$&&r}function Cr(e){return q(e)&&e!==fe&&!Q(e)&&e!==ar&&e!==pr&&e!==$&&e!==tn&&e!==fn&&e!==pn&&e!==sn&&e!==dn&&e!==ne&&e!==or&&e!==cr&&e!==ir&&e!==hr&&e!==tr&&e!==fr&&e!==ur&&e!==rr&&e!==lr&&e!==sr&&e!==dr}function wr(e){return!Q(e)&&e!==$}function Y(e,n){var i=e.charCodeAt(n),l;return i>=55296&&i<=56319&&n+1<e.length&&(l=e.charCodeAt(n+1),l>=56320&&l<=57343)?(i-55296)*1024+l-56320+65536:i}function hn(e){var n=/^\n* /;return n.test(e)}var xn=1,re=2,mn=3,gn=4,R=5;function br(e,n,i,l,r,u,o,c){var a,t=0,s=null,f=!1,h=!1,x=l!==-1,m=-1,v=Cr(Y(e,0))&&wr(Y(e,e.length-1));if(n||o)for(a=0;a<e.length;t>=65536?a+=2:a++){if(t=Y(e,a),!q(t))return R;v=v&&Ce(t,s,c),s=t}else{for(a=0;a<e.length;t>=65536?a+=2:a++){if(t=Y(e,a),t===H)f=!0,x&&(h=h||a-m-1>l&&e[m+1]!==" ",m=a);else if(!q(t))return R;v=v&&Ce(t,s,c),s=t}h=h||x&&a-m-1>l&&e[m+1]!==" "}return!f&&!h?v&&!o&&!r(e)?xn:u===U?R:re:i>9&&hn(e)?R:o?u===U?R:re:h?gn:mn}function Sr(e,n,i,l,r){e.dump=(function(){if(n.length===0)return e.quotingType===U?'""':"''";if(!e.noCompatMode&&(xr.indexOf(n)!==-1||mr.test(n)))return e.quotingType===U?'"'+n+'"':"'"+n+"'";var u=e.indent*Math.max(1,i),o=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-u),c=l||e.flowLevel>-1&&i>=e.flowLevel;function a(t){return _r(e,t)}switch(br(n,c,e.indent,o,a,e.quotingType,e.forceQuotes&&!l,r)){case xn:return n;case re:return"'"+n.replace(/'/g,"''")+"'";case mn:return"|"+we(n,e.indent)+be(ye(n,u));case gn:return">"+we(n,e.indent)+be(ye(Er(n,o),u));case R:return'"'+Nr(n)+'"';default:throw new b("impossible error: invalid scalar style")}})()}function we(e,n){var i=hn(e)?String(n):"",l=e[e.length-1]===`
|
|
21
21
|
`,r=l&&(e[e.length-2]===`
|
|
22
22
|
`||e===`
|
|
23
23
|
`),u=r?"+":l?"":"-";return i+u+`
|
|
24
24
|
`}function be(e){return e[e.length-1]===`
|
|
25
|
-
`?e.slice(0,-1):e}function Er(e,n){for(var i=/(\n+)([^\n]*)/g,l=(function(){var
|
|
26
|
-
`);return
|
|
27
|
-
`||e[0]===" ",u,o;o=i.exec(e);){var c=o[1],
|
|
28
|
-
`:"")+Se(
|
|
29
|
-
`+e.slice(r,u),r=u+1),o=c;return
|
|
30
|
-
`,e.length-r>n&&o>r?
|
|
31
|
-
`+e.slice(o+1):
|
|
32
|
-
`:""}var jr=Ir,Lr={dump:jr};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 Rr=C,Dr=Oe,Mr=Re,Pr=Be,Yr=He,Br=ce,Hr=un.load,Ur=un.loadAll,qr=Lr.dump,Kr=b,Wr={binary:Ge,float:Ye,map:Le,null:De,pairs:Qe,set:Ve,timestamp:Ke,bool:Me,int:Pe,merge:We,omap:$e,seq:je,str:Ie},Gr=pe("safeLoad","load"),$r=pe("safeLoadAll","loadAll"),Qr=pe("safeDump","dump"),Vr={Type:Rr,Schema:Dr,FAILSAFE_SCHEMA:Mr,JSON_SCHEMA:Pr,CORE_SCHEMA:Yr,DEFAULT_SCHEMA:Br,load:Hr,loadAll:Ur,dump:qr,YAMLException:Kr,types:Wr,safeLoad:Gr,safeLoadAll:$r,safeDump:Qr};function Xr({children:e,className:n=""}){return p.jsx("span",{className:`px-2 py-0.5 text-[10px] 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-[11px] 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-[10px] 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-[10px] font-mono text-text-quaternary",children:l.type})]}),l.description&&p.jsx("p",{className:"text-[11px] text-text-tertiary mt-0.5 leading-snug",children:l.description})]},l.key))})}function ol(){var
|
|
33
|
-
//# sourceMappingURL=YamlWorkflowDetailPage-
|
|
25
|
+
`?e.slice(0,-1):e}function Er(e,n){for(var i=/(\n+)([^\n]*)/g,l=(function(){var t=e.indexOf(`
|
|
26
|
+
`);return t=t!==-1?t:e.length,i.lastIndex=t,Se(e.slice(0,t),n)})(),r=e[0]===`
|
|
27
|
+
`||e[0]===" ",u,o;o=i.exec(e);){var c=o[1],a=o[2];u=a[0]===" ",l+=c+(!r&&!u&&a!==""?`
|
|
28
|
+
`:"")+Se(a,n),r=u}return l}function Se(e,n){if(e===""||e[0]===" ")return e;for(var i=/ [^ ]/g,l,r=0,u,o=0,c=0,a="";l=i.exec(e);)c=l.index,c-r>n&&(u=o>r?o:c,a+=`
|
|
29
|
+
`+e.slice(r,u),r=u+1),o=c;return a+=`
|
|
30
|
+
`,e.length-r>n&&o>r?a+=e.slice(r,o)+`
|
|
31
|
+
`+e.slice(o+1):a+=e.slice(r),a.slice(1)}function Nr(e){for(var n="",i=0,l,r=0;r<e.length;i>=65536?r+=2:r++)i=Y(e,r),l=w[i],!l&&q(i)?(n+=e[r],i>=65536&&(n+=e[r+1])):n+=l||vr(i);return n}function Fr(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 Tr(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 kr(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?(kr(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 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)):(Fr(e,n,e.dump),h&&(e.dump="&ref_"+f+" "+e.dump));else if(c==="[object String]")e.tag!=="?"&&Sr(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 Or(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 Ir(e,n){n=n||{};var i=new yr(n);i.noRefs||Or(e,i);var l=e;return i.replacer&&(l=i.replacer.call({"":l},"",l)),F(i,0,l,!0,!0)?i.dump+`
|
|
32
|
+
`:""}var jr=Ir,Lr={dump:jr};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 Rr=C,Dr=Oe,Mr=Re,Pr=Be,Yr=He,Br=ce,Hr=un.load,Ur=un.loadAll,qr=Lr.dump,Kr=b,Wr={binary:Ge,float:Ye,map:Le,null:De,pairs:Qe,set:Ve,timestamp:Ke,bool:Me,int:Pe,merge:We,omap:$e,seq:je,str:Ie},Gr=pe("safeLoad","load"),$r=pe("safeLoadAll","loadAll"),Qr=pe("safeDump","dump"),Vr={Type:Rr,Schema:Dr,FAILSAFE_SCHEMA:Mr,JSON_SCHEMA:Pr,CORE_SCHEMA:Yr,DEFAULT_SCHEMA:Br,load:Hr,loadAll:Ur,dump:qr,YAMLException:Kr,types:Wr,safeLoad:Gr,safeLoadAll:$r,safeDump:Qr};function Xr({children:e,className:n=""}){return p.jsx("span",{className:`px-2 py-0.5 text-[10px] 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-[11px] 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-[10px] 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-[10px] font-mono text-text-quaternary",children:l.type})]}),l.description&&p.jsx("p",{className:"text-[11px] text-text-tertiary mt-0.5 leading-snug",children:l.description})]},l.key))})}function ol(){var a;const{id:e=""}=Fn(),n=Tn(),{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=Vr.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(Cn,{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(wn,{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-[11px] font-mono text-text-quaternary",children:["v",i.content_version]})]}),i.description&&p.jsx("p",{className:"text-sm text-text-secondary mb-8 max-w-2xl leading-relaxed",children: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(Xr,{children:t},t))}),p.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-x-14 gap-y-10 mb-12",children:[p.jsxs("div",{children:[p.jsx(j,{icon:bn,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:Sn,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-[10px] font-mono text-text-quaternary truncate",children:t.topic})]}),p.jsx("span",{className:"text-[10px] 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:En,color:"text-accent",children:"Definition"}),p.jsx("pre",{className:"text-[11px] 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:Nn,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-[11px] text-text-tertiary truncate",children:t.change_summary})]}),p.jsx("span",{className:"text-[10px] text-text-quaternary shrink-0",children:J(t.created_at)})]},t.id))})]})]})}export{ol as YamlWorkflowDetailPage};
|
|
33
|
+
//# sourceMappingURL=YamlWorkflowDetailPage-6FTLoVfO.js.map
|