@solidxai/core-ui 0.1.19-beta.0 → 0.1.19
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/README.md +19 -0
- package/dist/components/common/SolidPopupContainer.d.ts.map +1 -1
- package/dist/components/common/SolidPopupContainer.js +3 -2
- package/dist/components/common/SolidPopupContainer.js.map +1 -1
- package/dist/components/common/SolidPopupContainer.tsx +3 -2
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +4 -1
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +11 -5
- package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatter.js +2 -1
- package/dist/components/core/chatter/SolidChatter.js.map +1 -1
- package/dist/components/core/chatter/SolidChatter.tsx +2 -0
- package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +2 -0
- package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.js +7 -4
- package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.tsx +8 -3
- package/dist/components/core/chatter/SolidChatterMessageWidget.d.ts +5 -0
- package/dist/components/core/chatter/SolidChatterMessageWidget.d.ts.map +1 -0
- package/dist/components/core/chatter/SolidChatterMessageWidget.js +85 -0
- package/dist/components/core/chatter/SolidChatterMessageWidget.js.map +1 -0
- package/dist/components/core/chatter/SolidChatterMessageWidget.tsx +59 -0
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +6 -5
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +6 -5
- package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.d.ts +11 -0
- package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.js +102 -0
- package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.tsx +129 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.d.ts +4 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.js +29 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.module.css +226 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.tsx +57 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.d.ts +4 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.js +33 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.tsx +47 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.d.ts +5 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.js +59 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.js.map +1 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.tsx +82 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.d.ts +17 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.js +258 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.js.map +1 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.tsx +286 -0
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +102 -62
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +116 -106
- package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.d.ts +6 -0
- package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.js +37 -0
- package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.tsx +89 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.d.ts +3 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.js +18 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.tsx +51 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.d.ts +10 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.js +63 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.tsx +111 -0
- package/dist/components/core/field/FieldListViewData.d.ts.map +1 -1
- package/dist/components/core/field/FieldListViewData.js +29 -9
- package/dist/components/core/field/FieldListViewData.js.map +1 -1
- package/dist/components/core/field/FieldListViewData.tsx +7 -6
- package/dist/components/core/form/SolidFormView.d.ts +1 -0
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +49 -48
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +4 -3
- package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidPasswordField.js +13 -1
- package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
- package/dist/components/core/form/fields/SolidPasswordField.tsx +14 -3
- package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
- package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.js +2 -2
- package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.tsx +5 -1
- package/dist/components/core/kanban/KanbanCard.d.ts +3 -0
- package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanCard.js +5 -4
- package/dist/components/core/kanban/KanbanCard.js.map +1 -1
- package/dist/components/core/kanban/KanbanCard.tsx +31 -11
- package/dist/components/core/kanban/KanbanColumn.d.ts +5 -1
- package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.js +14 -3
- package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.tsx +43 -3
- package/dist/components/core/kanban/SolidKanbanView.d.ts +2 -0
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +90 -52
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +93 -13
- package/dist/components/core/list/SolidDataTable.d.ts +2 -1
- package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
- package/dist/components/core/list/SolidDataTable.js +2 -2
- package/dist/components/core/list/SolidDataTable.js.map +1 -1
- package/dist/components/core/list/SolidDataTable.tsx +3 -0
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +114 -57
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +71 -7
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +14 -0
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +13 -0
- package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.d.ts +3 -0
- package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.d.ts.map +1 -0
- package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.js +51 -0
- package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.js.map +1 -0
- package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.tsx +60 -0
- package/dist/components/core/list/widgets/SolidIconNameListViewWidget.d.ts +4 -0
- package/dist/components/core/list/widgets/SolidIconNameListViewWidget.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidIconNameListViewWidget.js +24 -0
- package/dist/components/core/list/widgets/SolidIconNameListViewWidget.js.map +1 -0
- package/dist/components/core/list/widgets/SolidIconNameListViewWidget.tsx +32 -0
- package/dist/components/core/model/ModelListViewData.d.ts.map +1 -1
- package/dist/components/core/model/ModelListViewData.js +6 -23
- package/dist/components/core/model/ModelListViewData.js.map +1 -1
- package/dist/components/core/model/ModelListViewData.tsx +1 -48
- package/dist/components/core/solid-agent/AgentModelIndicator.d.ts +5 -0
- package/dist/components/core/solid-agent/AgentModelIndicator.d.ts.map +1 -0
- package/dist/components/core/solid-agent/AgentModelIndicator.js +14 -0
- package/dist/components/core/solid-agent/AgentModelIndicator.js.map +1 -0
- package/dist/components/core/solid-agent/AgentModelIndicator.tsx +40 -0
- package/dist/components/core/solid-agent/AgentSignIn.d.ts +12 -0
- package/dist/components/core/solid-agent/AgentSignIn.d.ts.map +1 -0
- package/dist/components/core/solid-agent/AgentSignIn.js +82 -0
- package/dist/components/core/solid-agent/AgentSignIn.js.map +1 -0
- package/dist/components/core/solid-agent/AgentSignIn.tsx +91 -0
- package/dist/components/core/solid-agent/SolidAgent.module.css +596 -0
- package/dist/components/core/solid-agent/SolidAgentChat.d.ts +30 -0
- package/dist/components/core/solid-agent/SolidAgentChat.d.ts.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentChat.js +300 -0
- package/dist/components/core/solid-agent/SolidAgentChat.js.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentChat.tsx +451 -0
- package/dist/components/core/solid-agent/SolidAgentEmbedded.d.ts +44 -0
- package/dist/components/core/solid-agent/SolidAgentEmbedded.d.ts.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentEmbedded.js +46 -0
- package/dist/components/core/solid-agent/SolidAgentEmbedded.js.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentEmbedded.tsx +87 -0
- package/dist/components/core/solid-agent/SolidAgentHost.d.ts +8 -0
- package/dist/components/core/solid-agent/SolidAgentHost.d.ts.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentHost.js +152 -0
- package/dist/components/core/solid-agent/SolidAgentHost.js.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentHost.tsx +164 -0
- package/dist/components/core/solid-agent/SolidAgentMarkdown.d.ts +16 -0
- package/dist/components/core/solid-agent/SolidAgentMarkdown.d.ts.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentMarkdown.js +161 -0
- package/dist/components/core/solid-agent/SolidAgentMarkdown.js.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentMarkdown.tsx +133 -0
- package/dist/components/core/solid-agent/SolidAgentMount.d.ts +3 -0
- package/dist/components/core/solid-agent/SolidAgentMount.d.ts.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentMount.js +62 -0
- package/dist/components/core/solid-agent/SolidAgentMount.js.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentMount.tsx +31 -0
- package/dist/components/core/solid-agent/SolidXAIIcon.d.ts +5 -0
- package/dist/components/core/solid-agent/SolidXAIIcon.d.ts.map +1 -0
- package/dist/components/core/solid-agent/SolidXAIIcon.js +7 -0
- package/dist/components/core/solid-agent/SolidXAIIcon.js.map +1 -0
- package/dist/components/core/solid-agent/SolidXAIIcon.tsx +6 -0
- package/dist/components/core/solid-agent/agentAttachments.d.ts +20 -0
- package/dist/components/core/solid-agent/agentAttachments.d.ts.map +1 -0
- package/dist/components/core/solid-agent/agentAttachments.js +184 -0
- package/dist/components/core/solid-agent/agentAttachments.js.map +1 -0
- package/dist/components/core/solid-agent/agentAttachments.ts +119 -0
- package/dist/components/core/solid-agent/agentEvents.d.ts +34 -0
- package/dist/components/core/solid-agent/agentEvents.d.ts.map +1 -0
- package/dist/components/core/solid-agent/agentEvents.js +282 -0
- package/dist/components/core/solid-agent/agentEvents.js.map +1 -0
- package/dist/components/core/solid-agent/agentEvents.ts +292 -0
- package/dist/components/core/solid-agent/agentFormat.d.ts +18 -0
- package/dist/components/core/solid-agent/agentFormat.d.ts.map +1 -0
- package/dist/components/core/solid-agent/agentFormat.js +179 -0
- package/dist/components/core/solid-agent/agentFormat.js.map +1 -0
- package/dist/components/core/solid-agent/agentFormat.ts +160 -0
- package/dist/components/core/solid-agent/client/agentAttachmentMedia.d.ts +9 -0
- package/dist/components/core/solid-agent/client/agentAttachmentMedia.d.ts.map +1 -0
- package/dist/components/core/solid-agent/client/agentAttachmentMedia.js +129 -0
- package/dist/components/core/solid-agent/client/agentAttachmentMedia.js.map +1 -0
- package/dist/components/core/solid-agent/client/agentAttachmentMedia.ts +69 -0
- package/dist/components/core/solid-agent/client/agentAuth.d.ts +63 -0
- package/dist/components/core/solid-agent/client/agentAuth.d.ts.map +1 -0
- package/dist/components/core/solid-agent/client/agentAuth.js +307 -0
- package/dist/components/core/solid-agent/client/agentAuth.js.map +1 -0
- package/dist/components/core/solid-agent/client/agentAuth.ts +222 -0
- package/dist/components/core/solid-agent/client/agentRest.d.ts +30 -0
- package/dist/components/core/solid-agent/client/agentRest.d.ts.map +1 -0
- package/dist/components/core/solid-agent/client/agentRest.js +178 -0
- package/dist/components/core/solid-agent/client/agentRest.js.map +1 -0
- package/dist/components/core/solid-agent/client/agentRest.ts +100 -0
- package/dist/components/core/solid-agent/client/agentRuntime.d.ts +48 -0
- package/dist/components/core/solid-agent/client/agentRuntime.d.ts.map +1 -0
- package/dist/components/core/solid-agent/client/agentRuntime.js +406 -0
- package/dist/components/core/solid-agent/client/agentRuntime.js.map +1 -0
- package/dist/components/core/solid-agent/client/agentRuntime.ts +226 -0
- package/dist/components/core/solid-agent/client/agentSocket.d.ts +46 -0
- package/dist/components/core/solid-agent/client/agentSocket.d.ts.map +1 -0
- package/dist/components/core/solid-agent/client/agentSocket.js +535 -0
- package/dist/components/core/solid-agent/client/agentSocket.js.map +1 -0
- package/dist/components/core/solid-agent/client/agentSocket.ts +276 -0
- package/dist/components/core/solid-agent/client/agentUrls.d.ts +11 -0
- package/dist/components/core/solid-agent/client/agentUrls.d.ts.map +1 -0
- package/dist/components/core/solid-agent/client/agentUrls.js +18 -0
- package/dist/components/core/solid-agent/client/agentUrls.js.map +1 -0
- package/dist/components/core/solid-agent/client/agentUrls.ts +19 -0
- package/dist/components/core/solid-agent/composer/AgentComposer.d.ts +21 -0
- package/dist/components/core/solid-agent/composer/AgentComposer.d.ts.map +1 -0
- package/dist/components/core/solid-agent/composer/AgentComposer.js +219 -0
- package/dist/components/core/solid-agent/composer/AgentComposer.js.map +1 -0
- package/dist/components/core/solid-agent/composer/AgentComposer.tsx +241 -0
- package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.d.ts +8 -0
- package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.d.ts.map +1 -0
- package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js +87 -0
- package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js.map +1 -0
- package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.tsx +58 -0
- package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts +20 -0
- package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts.map +1 -0
- package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js +103 -0
- package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js.map +1 -0
- package/dist/components/core/solid-agent/embed/agentEmbedProtocol.ts +60 -0
- package/dist/components/core/solid-agent/embed/agentEmbedSamples.d.ts +11 -0
- package/dist/components/core/solid-agent/embed/agentEmbedSamples.d.ts.map +1 -0
- package/dist/components/core/solid-agent/embed/agentEmbedSamples.js +21 -0
- package/dist/components/core/solid-agent/embed/agentEmbedSamples.js.map +1 -0
- package/dist/components/core/solid-agent/embed/agentEmbedSamples.ts +266 -0
- package/dist/components/core/solid-agent/processes/agentHubProcessApi.d.ts +15 -0
- package/dist/components/core/solid-agent/processes/agentHubProcessApi.d.ts.map +1 -0
- package/dist/components/core/solid-agent/processes/agentHubProcessApi.js +122 -0
- package/dist/components/core/solid-agent/processes/agentHubProcessApi.js.map +1 -0
- package/dist/components/core/solid-agent/processes/agentHubProcessApi.ts +64 -0
- package/dist/components/core/solid-agent/sdk/solidAgent.d.ts +39 -0
- package/dist/components/core/solid-agent/sdk/solidAgent.d.ts.map +1 -0
- package/dist/components/core/solid-agent/sdk/solidAgent.js +44 -0
- package/dist/components/core/solid-agent/sdk/solidAgent.js.map +1 -0
- package/dist/components/core/solid-agent/sdk/solidAgent.ts +56 -0
- package/dist/components/core/solid-agent/thread/AgentThread.d.ts +17 -0
- package/dist/components/core/solid-agent/thread/AgentThread.d.ts.map +1 -0
- package/dist/components/core/solid-agent/thread/AgentThread.js +166 -0
- package/dist/components/core/solid-agent/thread/AgentThread.js.map +1 -0
- package/dist/components/core/solid-agent/thread/AgentThread.tsx +248 -0
- package/dist/components/core/solid-agent/thread/SolidAgentChatItem.d.ts +36 -0
- package/dist/components/core/solid-agent/thread/SolidAgentChatItem.d.ts.map +1 -0
- package/dist/components/core/solid-agent/thread/SolidAgentChatItem.js +148 -0
- package/dist/components/core/solid-agent/thread/SolidAgentChatItem.js.map +1 -0
- package/dist/components/core/solid-agent/thread/SolidAgentChatItem.tsx +116 -0
- package/dist/components/core/solid-agent/thread/inlineWidget.d.ts +8 -0
- package/dist/components/core/solid-agent/thread/inlineWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/thread/inlineWidget.js +30 -0
- package/dist/components/core/solid-agent/thread/inlineWidget.js.map +1 -0
- package/dist/components/core/solid-agent/thread/inlineWidget.ts +27 -0
- package/dist/components/core/solid-agent/types.d.ts +155 -0
- package/dist/components/core/solid-agent/types.d.ts.map +1 -0
- package/dist/components/core/solid-agent/types.js +31 -0
- package/dist/components/core/solid-agent/types.js.map +1 -0
- package/dist/components/core/solid-agent/types.ts +148 -0
- package/dist/components/core/solid-agent/useAdminInputContext.d.ts +4 -0
- package/dist/components/core/solid-agent/useAdminInputContext.d.ts.map +1 -0
- package/dist/components/core/solid-agent/useAdminInputContext.js +49 -0
- package/dist/components/core/solid-agent/useAdminInputContext.js.map +1 -0
- package/dist/components/core/solid-agent/useAdminInputContext.ts +52 -0
- package/dist/components/core/solid-agent/useAgentAuth.d.ts +14 -0
- package/dist/components/core/solid-agent/useAgentAuth.d.ts.map +1 -0
- package/dist/components/core/solid-agent/useAgentAuth.js +88 -0
- package/dist/components/core/solid-agent/useAgentAuth.js.map +1 -0
- package/dist/components/core/solid-agent/useAgentAuth.ts +40 -0
- package/dist/components/core/solid-agent/useAgentAvailability.d.ts +19 -0
- package/dist/components/core/solid-agent/useAgentAvailability.d.ts.map +1 -0
- package/dist/components/core/solid-agent/useAgentAvailability.js +109 -0
- package/dist/components/core/solid-agent/useAgentAvailability.js.map +1 -0
- package/dist/components/core/solid-agent/useAgentAvailability.ts +80 -0
- package/dist/components/core/solid-agent/useAgentChat.d.ts +22 -0
- package/dist/components/core/solid-agent/useAgentChat.d.ts.map +1 -0
- package/dist/components/core/solid-agent/useAgentChat.js +45 -0
- package/dist/components/core/solid-agent/useAgentChat.js.map +1 -0
- package/dist/components/core/solid-agent/useAgentChat.ts +57 -0
- package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.js +15 -0
- package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.tsx +24 -0
- package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.js +15 -0
- package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.tsx +28 -0
- package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.d.ts +4 -0
- package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.js +20 -0
- package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.tsx +8 -0
- package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.js +11 -0
- package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.tsx +16 -0
- package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.js +67 -0
- package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.tsx +135 -0
- package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.js +24 -0
- package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.tsx +17 -0
- package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.d.ts +8 -0
- package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js +30 -0
- package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.tsx +77 -0
- package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.js +40 -0
- package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.tsx +57 -0
- package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.d.ts +4 -0
- package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.js +13 -0
- package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.tsx +19 -0
- package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.js +55 -0
- package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.tsx +81 -0
- package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.d.ts +4 -0
- package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.js +15 -0
- package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.tsx +30 -0
- package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.d.ts +4 -0
- package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.js +15 -0
- package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.tsx +21 -0
- package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.js +21 -0
- package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.tsx +33 -0
- package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.d.ts +4 -0
- package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.js +11 -0
- package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.tsx +9 -0
- package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.d.ts +15 -0
- package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.js +26 -0
- package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.tsx +42 -0
- package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.js +41 -0
- package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.tsx +69 -0
- package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.js +23 -0
- package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.tsx +40 -0
- package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.d.ts +4 -0
- package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.js +32 -0
- package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.tsx +55 -0
- package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.js +17 -0
- package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.tsx +31 -0
- package/dist/components/core/solid-agent/widgets/chatWidgetUtils.d.ts +12 -0
- package/dist/components/core/solid-agent/widgets/chatWidgetUtils.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/chatWidgetUtils.js +17 -0
- package/dist/components/core/solid-agent/widgets/chatWidgetUtils.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/chatWidgetUtils.ts +19 -0
- package/dist/components/core/solid-agent/widgets/solidChatWidgets.module.css +909 -0
- package/dist/components/core/solid-ai/SolidAiChat.js +1 -1
- package/dist/components/core/solid-ai/SolidAiChat.js.map +1 -1
- package/dist/components/core/solid-ai/SolidAiChat.tsx +2 -2
- package/dist/components/layout/AdminLayout.d.ts.map +1 -1
- package/dist/components/layout/AdminLayout.js +2 -1
- package/dist/components/layout/AdminLayout.js.map +1 -1
- package/dist/components/layout/AdminLayout.tsx +2 -0
- package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.js +2 -2
- package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +19 -15
- package/dist/components/shad-cn-ui/SolidDialog.d.ts +2 -1
- package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidDialog.js +2 -2
- package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidDialog.tsx +3 -0
- package/dist/components/shad-cn-ui/SolidIconPicker.d.ts +7 -0
- package/dist/components/shad-cn-ui/SolidIconPicker.d.ts.map +1 -0
- package/dist/components/shad-cn-ui/SolidIconPicker.js +43 -0
- package/dist/components/shad-cn-ui/SolidIconPicker.js.map +1 -0
- package/dist/components/shad-cn-ui/SolidIconPicker.tsx +73 -0
- package/dist/components/shad-cn-ui/index.d.ts +1 -0
- package/dist/components/shad-cn-ui/index.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/index.js +1 -0
- package/dist/components/shad-cn-ui/index.js.map +1 -1
- package/dist/components/shad-cn-ui/index.ts +1 -0
- package/dist/constants/allowed-ai-models.d.ts +8 -0
- package/dist/constants/allowed-ai-models.d.ts.map +1 -0
- package/dist/constants/allowed-ai-models.js +33 -0
- package/dist/constants/allowed-ai-models.js.map +1 -0
- package/dist/constants/allowed-ai-models.ts +39 -0
- package/dist/helpers/hydrateRelationRules.d.ts.map +1 -1
- package/dist/helpers/hydrateRelationRules.js +3 -1
- package/dist/helpers/hydrateRelationRules.js.map +1 -1
- package/dist/helpers/hydrateRelationRules.ts +5 -1
- package/dist/helpers/registry.d.ts +4 -2
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +75 -12
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +73 -16
- package/dist/helpers/updatePasswordField.d.ts.map +1 -1
- package/dist/helpers/updatePasswordField.js +21 -15
- package/dist/helpers/updatePasswordField.js.map +1 -1
- package/dist/helpers/updatePasswordField.ts +6 -1
- package/dist/index.d.ts +21 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -3
- package/dist/index.js.map +1 -1
- package/dist/index.ts +34 -3
- package/dist/redux/api/fieldApi.js +1 -1
- package/dist/redux/api/fieldApi.js.map +1 -1
- package/dist/redux/api/fieldApi.ts +2 -2
- package/dist/redux/api/modelApi.d.ts +13 -13
- package/dist/redux/api/modelApi.d.ts.map +1 -1
- package/dist/redux/api/modelApi.js +15 -15
- package/dist/redux/api/modelApi.js.map +1 -1
- package/dist/redux/api/modelApi.ts +12 -15
- package/dist/redux/features/agentSlice.d.ts +34 -0
- package/dist/redux/features/agentSlice.d.ts.map +1 -0
- package/dist/redux/features/agentSlice.js +92 -0
- package/dist/redux/features/agentSlice.js.map +1 -0
- package/dist/redux/features/agentSlice.ts +119 -0
- package/dist/redux/store/defaultStoreConfig.d.ts +11 -10
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/redux/store/defaultStoreConfig.js +2 -0
- package/dist/redux/store/defaultStoreConfig.js.map +1 -1
- package/dist/redux/store/defaultStoreConfig.ts +2 -0
- package/dist/redux/store/solidEntityApiPool.d.ts.map +1 -1
- package/dist/redux/store/solidEntityApiPool.js +7 -0
- package/dist/redux/store/solidEntityApiPool.js.map +1 -1
- package/dist/redux/store/solidEntityApiPool.ts +6 -0
- package/dist/resources/globals.css +109 -1
- package/dist/resources/solid-custom.css +295 -0
- package/dist/resources/solid-tailwind-generated.css +1 -1
- package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.css +47 -0
- package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.d.ts +12 -0
- package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.js +80 -0
- package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.js.map +1 -0
- package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.tsx +123 -0
- package/dist/routes/pages/admin/core/AgentRegistryEditorPage.css +110 -0
- package/dist/routes/pages/admin/core/AgentRegistryEditorPage.d.ts +3 -0
- package/dist/routes/pages/admin/core/AgentRegistryEditorPage.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js +702 -0
- package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js.map +1 -0
- package/dist/routes/pages/admin/core/AgentRegistryEditorPage.tsx +630 -0
- package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.css +303 -0
- package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.d.ts +3 -0
- package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.js +330 -0
- package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.js.map +1 -0
- package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.tsx +460 -0
- package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.css +125 -0
- package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.d.ts +3 -0
- package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.js +295 -0
- package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.js.map +1 -0
- package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.tsx +275 -0
- package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js +11 -11
- package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js.map +1 -1
- package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.tsx +15 -15
- package/dist/routes/pages/embed/AgentEmbedPage.d.ts +3 -0
- package/dist/routes/pages/embed/AgentEmbedPage.d.ts.map +1 -0
- package/dist/routes/pages/embed/AgentEmbedPage.js +170 -0
- package/dist/routes/pages/embed/AgentEmbedPage.js.map +1 -0
- package/dist/routes/pages/embed/AgentEmbedPage.module.css +195 -0
- package/dist/routes/pages/embed/AgentEmbedPage.tsx +169 -0
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +8 -0
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +8 -0
- package/dist/types/extension-registry.d.ts +4 -0
- package/dist/types/extension-registry.d.ts.map +1 -1
- package/dist/types/extension-registry.js +7 -0
- package/dist/types/extension-registry.js.map +1 -1
- package/dist/types/extension-registry.ts +7 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/list-row-action.d.ts +2 -0
- package/dist/types/list-row-action.d.ts.map +1 -1
- package/dist/types/list-row-action.js.map +1 -1
- package/dist/types/list-row-action.ts +3 -0
- package/dist/types/solid-core.d.ts +36 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowDefinitionEditorPage.js","sourceRoot":"","sources":["../../../../../src/routes/pages/admin/core/WorkflowDefinitionEditorPage.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Activity,\n ArrowLeft,\n Braces,\n ChevronRight,\n Copy,\n Workflow,\n Layers3,\n Play,\n Search,\n Save,\n ShieldCheck,\n Trash2,\n X,\n} from \"lucide-react\";\nimport React from \"react\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport qs from \"qs\";\nimport YAML from \"yaml\";\nimport { createSolidEntityApi } from \"../../../../redux/api/solidEntityApi\";\nimport { useGetmodulesQuery } from \"../../../../redux/api/moduleApi\";\nimport { useGetWorkflowNodeTypesQuery } from \"../../../../redux/api/workflowNodeApi\";\nimport {\n useExecuteWorkflowDefinitionMutation,\n useValidateWorkflowDefinitionMutation,\n} from \"../../../../redux/api/workflowDefinitionEditorApi\";\nimport { showToast } from \"../../../../redux/features/toastSlice\";\nimport {\n WorkflowNodeDocsPanel,\n type WorkflowDocsModel,\n} from \"../../../../components/workflow/WorkflowNodeDocsPanel\";\nimport {\n WorkflowFlowCanvas,\n type WorkflowInsertTarget,\n} from \"../../../../components/workflow/WorkflowFlowCanvas\";\nimport {\n WorkflowAddNodeDialog,\n WorkflowExpressionAutocompleteField,\n WorkflowNodeEditorDialog,\n type WorkflowExpressionSuggestion,\n} from \"../../../../components/workflow/WorkflowNodeSchemaEditor\";\nimport type {\n WorkflowNodeConfigurationFieldDefinition,\n WorkflowNodeMetadataResponse,\n} from \"../../../../types/workflow-node\";\nimport {\n SolidAutocomplete,\n SolidButton,\n SolidCheckbox,\n SolidCodeEditor,\n SolidDatePicker,\n SolidDialog,\n SolidDialogBody,\n SolidInput,\n SolidPanel,\n SolidSelect,\n SolidSpinner,\n SolidTabGroup,\n SolidTag,\n SolidTextarea,\n} from \"../../../../components/shad-cn-ui\";\nimport { SolidJsonEditor } from \"../../../../components/core/json/SolidJsonEditor\";\nimport \"./WorkflowDefinitionEditorPage.css\";\n\nconst RESERVED_WORKFLOW_MODULE_NAMES = new Set([\"solid-core\"]);\n\nfunction isWorkflowModuleSelectable(module?: Record<string, any> | null) {\n const moduleName = String(module?.name ?? \"\").trim();\n return Boolean(moduleName) && !RESERVED_WORKFLOW_MODULE_NAMES.has(moduleName);\n}\n\ntype WorkflowDefinitionRecord = {\n id: number;\n key?: string;\n displayName?: string;\n moduleMetadata?: Record<string, any> | null;\n moduleMetadataId?: number | null;\n moduleMetadataUserKey?: string | null;\n namespace?: string;\n description?: string;\n status?: string;\n definitionYaml?: WorkflowDefinitionDsl | string | null;\n tags?: unknown;\n};\n\ntype WorkflowNodeRecord = {\n [key: string]: any;\n id: string;\n name?: string;\n description?: string;\n kind: string;\n type: string;\n disabled?: boolean;\n timeoutMs?: number;\n retryPolicy?: Record<string, any>;\n onError?: \"fail\" | \"continue\";\n configuration?: Record<string, any>;\n metadata?: Record<string, any>;\n tasks?: WorkflowNodeRecord[];\n then?: WorkflowNodeRecord[];\n else?: WorkflowNodeRecord[];\n defaults?: WorkflowNodeRecord[];\n errors?: WorkflowNodeRecord[];\n cases?: Record<string, WorkflowNodeRecord[]>;\n};\n\ntype WorkflowDefinitionDsl = {\n version?: string;\n description?: string;\n inputs?: Record<string, any>;\n variables?: Record<string, any>;\n nodes: WorkflowNodeRecord[];\n triggers?: Array<Record<string, any>>;\n errors?: WorkflowNodeRecord[];\n finally?: WorkflowNodeRecord[];\n metadata?: Record<string, any>;\n};\n\ntype WorkflowSecretSuggestionRecord = {\n id?: number;\n key?: string;\n displayName?: string;\n description?: string;\n valueType?: string;\n status?: string;\n};\n\ntype ValidationState = {\n status: \"idle\" | \"validating\" | \"valid\" | \"invalid\";\n source?: \"client\" | \"server\";\n message?: string;\n errors: string[];\n};\n\ntype WorkflowIdentityErrors = Partial<\n Record<\"displayName\" | \"key\" | \"moduleMetadata\" | \"namespace\" | \"tags\", string>\n>;\n\ntype WorkflowDefinitionParseResult =\n | {\n ok: true;\n definition: WorkflowDefinitionDsl;\n yaml: string;\n }\n | {\n ok: false;\n errors: string[];\n yaml: string;\n };\n\ntype WorkflowDetailTab =\n | \"overview\"\n | \"inputs\"\n | \"variables\"\n | \"topology\"\n | \"executions\"\n | \"triggers\";\n\ntype WorkflowTriggerGuideMode = \"curl\" | \"api\" | \"scheduled\";\n\ntype WorkflowExecutionRecord = {\n id: number;\n executionIdentifier?: string | null;\n workflowKey?: string | null;\n workflowDisplayName?: string | null;\n status?: string | null;\n triggerType?: string | null;\n startedAt?: string | null;\n finishedAt?: string | null;\n durationMs?: number | string | null;\n inputPayload?: unknown;\n outputPayload?: unknown;\n definitionVersion?: string | null;\n definitionChecksum?: string | null;\n definitionSnapshot?: string | null;\n errorSummary?: string | null;\n errorDetails?: unknown;\n requestedByUserId?: number | string | null;\n createdAt?: string | null;\n};\n\ntype WorkflowExecutionLogRecord = {\n id: number;\n logKey?: string | null;\n level?: string | null;\n message?: string | null;\n eventType?: string | null;\n source?: string | null;\n nodeId?: string | null;\n nodeType?: string | null;\n sequenceNumber?: number | null;\n occurredAt?: string | null;\n context?: unknown;\n metadata?: unknown;\n createdAt?: string | null;\n};\n\ntype WorkflowStepExecutionRecord = {\n id: number;\n stepExecutionKey?: string | null;\n nodeId?: string | null;\n nodeName?: string | null;\n nodeKind?: string | null;\n nodeType?: string | null;\n status?: string | null;\n attemptNumber?: number | null;\n retryCount?: number | null;\n maxRetries?: number | null;\n parentNodeId?: string | null;\n parentStepExecutionKey?: string | null;\n sequenceNumber?: number | null;\n startedAt?: string | null;\n finishedAt?: string | null;\n durationMs?: number | string | null;\n timeoutMs?: number | string | null;\n inputPayload?: unknown;\n outputPayload?: unknown;\n runtimeContext?: unknown;\n nodeSnapshot?: unknown;\n errorSummary?: string | null;\n errorDetails?: unknown;\n createdAt?: string | null;\n};\n\ntype WorkflowExecutionOutputEntry = {\n key: string;\n label: string;\n nodeId?: string;\n nodeType?: string;\n value: unknown;\n};\n\ntype WorkflowInputEntry = {\n key: string;\n definition: {\n type: string;\n label: string;\n required: boolean;\n default: any;\n description: string;\n };\n};\n\ntype WorkflowVariableEntry = {\n key: string;\n definition: {\n type: string;\n label: string;\n value: any;\n description: string;\n };\n};\n\nconst createEmptyWorkflowDefinition = (): WorkflowDefinitionDsl => ({\n version: \"1.0.0\",\n description: \"\",\n inputs: {},\n variables: {},\n nodes: [],\n triggers: [],\n errors: [],\n finally: [],\n metadata: {},\n});\n\nconst TOPOLOGY_SPLIT_STORAGE_KEY = \"solid.workflow.editor.topologySplitPercent\";\n\nconst WORKFLOW_STATUS_OPTIONS = [\n { label: \"Draft\", value: \"draft\" },\n { label: \"Active\", value: \"active\" },\n { label: \"Inactive\", value: \"inactive\" },\n];\n\nconst WORKFLOW_INPUT_TYPE_OPTIONS = [\n { label: \"String\", value: \"string\" },\n { label: \"Number\", value: \"number\" },\n { label: \"Boolean\", value: \"boolean\" },\n { label: \"Date\", value: \"date\" },\n { label: \"Object\", value: \"object\" },\n { label: \"Array\", value: \"array\" },\n];\n\nconst WORKFLOW_TRIGGER_GUIDE_OPTIONS: Array<{\n label: string;\n value: WorkflowTriggerGuideMode;\n description: string;\n}> = [\n {\n label: \"CURL\",\n value: \"curl\",\n description: \"Run this workflow through the authenticated execution endpoint.\",\n },\n {\n label: \"API\",\n value: \"api\",\n description: \"Call this workflow from a SolidX service, subscriber, or job.\",\n },\n {\n label: \"Scheduled\",\n value: \"scheduled\",\n description: \"Persist CRON metadata so the scheduler can run this workflow.\",\n },\n];\n\nconst WORKFLOW_EXECUTION_STATUS_OPTIONS = [\n { label: \"All statuses\", value: \"all\" },\n { label: \"Success\", value: \"success\" },\n { label: \"Failed\", value: \"failed\" },\n { label: \"Running\", value: \"running\" },\n { label: \"Pending\", value: \"pending\" },\n];\n\nconst WORKFLOW_EXECUTION_PAGE_SIZE = 25;\n\nconst WORKFLOW_LOG_LEVEL_OPTIONS = [\n { label: \"All levels\", value: \"all\" },\n { label: \"Debug\", value: \"debug\" },\n { label: \"Info\", value: \"info\" },\n { label: \"Warn\", value: \"warn\" },\n { label: \"Error\", value: \"error\" },\n];\n\nconst WORKFLOW_CRON_EXAMPLES = [\n { label: \"Every hour\", value: \"0 * * * *\" },\n { label: \"Weekdays at 9 AM\", value: \"0 9 * * 1-5\" },\n { label: \"Mondays at 2 AM\", value: \"0 2 * * 1\" },\n { label: \"Daily midnight\", value: \"0 0 * * *\" },\n];\n\nconst WORKFLOW_CRON_FIELD_HELP = [\n { key: \"minute\", label: \"Minute\", placeholder: \"0\", help: \"0-59, * or */5\" },\n { key: \"hour\", label: \"Hour\", placeholder: \"9\", help: \"0-23, * or */2\" },\n { key: \"dayOfMonth\", label: \"Day\", placeholder: \"*\", help: \"1-31 or *\" },\n { key: \"month\", label: \"Month\", placeholder: \"*\", help: \"1-12 or *\" },\n { key: \"dayOfWeek\", label: \"Weekday\", placeholder: \"*\", help: \"0-7, 1-5 or *\" },\n] as const;\n\nfunction readStoredTopologySplitPercent() {\n if (typeof window === \"undefined\") {\n return 62;\n }\n\n const storedValue = Number(window.localStorage.getItem(TOPOLOGY_SPLIT_STORAGE_KEY));\n return Number.isFinite(storedValue) ? Math.min(78, Math.max(22, storedValue)) : 62;\n}\n\nfunction splitCronExpression(expression: string) {\n const parts = String(expression ?? \"\").trim().split(/\\s+/).filter(Boolean);\n const normalized = parts.length === 5 ? parts : [\"0\", \"9\", \"*\", \"*\", \"*\"];\n return {\n minute: normalized[0] ?? \"0\",\n hour: normalized[1] ?? \"9\",\n dayOfMonth: normalized[2] ?? \"*\",\n month: normalized[3] ?? \"*\",\n dayOfWeek: normalized[4] ?? \"*\",\n };\n}\n\nfunction joinCronExpression(parts: ReturnType<typeof splitCronExpression>) {\n return [\n parts.minute || \"*\",\n parts.hour || \"*\",\n parts.dayOfMonth || \"*\",\n parts.month || \"*\",\n parts.dayOfWeek || \"*\",\n ].join(\" \");\n}\n\nfunction isValidSimpleCronExpression(expression: string) {\n return String(expression ?? \"\").trim().split(/\\s+/).filter(Boolean).length === 5;\n}\n\nfunction isNumericCronPart(value: string) {\n return /^\\d+$/.test(String(value ?? \"\"));\n}\n\nfunction getCronMinuteStep(value: string) {\n const match = String(value ?? \"\").match(/^\\*\\/(\\d+)$/);\n return match?.[1] ?? null;\n}\n\nfunction formatCronNumber(value: string) {\n return String(Number(value)).padStart(2, \"0\");\n}\n\nfunction describeCronList(value: string) {\n const items = String(value ?? \"\")\n .split(\",\")\n .map((item) => item.trim())\n .filter(Boolean);\n\n if (items.length <= 1) {\n return value;\n }\n if (items.length === 2) {\n return items.join(\" and \");\n }\n\n return `${items.slice(0, -1).join(\", \")} and ${items[items.length - 1]}`;\n}\n\nfunction describeCronMonthScope(month: string) {\n if (month === \"*\") {\n return \"\";\n }\n if (/^\\d+(,\\d+)*$/.test(month)) {\n return ` in months ${describeCronList(month)}`;\n }\n return ` in month ${month}`;\n}\n\nfunction describeCronDateScope(dayOfMonth: string) {\n if (dayOfMonth === \"*\") {\n return \"\";\n }\n if (/^\\d+(,\\d+)*$/.test(dayOfMonth)) {\n return ` on dates ${describeCronList(dayOfMonth)}`;\n }\n return ` on day ${dayOfMonth}`;\n}\n\nfunction describeCronWeekdayScope(dayOfWeek: string) {\n if (dayOfWeek === \"*\") {\n return \"\";\n }\n if (dayOfWeek === \"1\") {\n return \" on Mondays\";\n }\n if (dayOfWeek === \"1-5\") {\n return \" on weekdays\";\n }\n if (dayOfWeek === \"0\" || dayOfWeek === \"7\") {\n return \" on Sundays\";\n }\n return ` on weekday ${dayOfWeek}`;\n}\n\nfunction describeCronCalendarScope(dayOfMonth: string, month: string, dayOfWeek: string) {\n return [\n describeCronDateScope(dayOfMonth),\n describeCronWeekdayScope(dayOfWeek),\n describeCronMonthScope(month),\n ].join(\"\");\n}\n\nfunction describeWorkflowCronExpression(expression: string, timezone = \"UTC\") {\n const cron = String(expression ?? \"\").trim();\n if (!isValidSimpleCronExpression(cron)) {\n return \"Enter exactly five CRON fields: minute hour day month weekday.\";\n }\n\n const parts = splitCronExpression(cron);\n const numericHour = isNumericCronPart(parts.hour) ? formatCronNumber(parts.hour) : null;\n const numericMinute = isNumericCronPart(parts.minute) ? formatCronNumber(parts.minute) : null;\n const minuteStep = getCronMinuteStep(parts.minute);\n const time = numericHour && numericMinute ? `${numericHour}:${numericMinute}` : null;\n const timezoneSuffix = timezone ? ` (${timezone})` : \"\";\n const calendarScope = describeCronCalendarScope(\n parts.dayOfMonth,\n parts.month,\n parts.dayOfWeek,\n );\n\n if (cron === \"* * * * *\") {\n return `Runs every minute${timezoneSuffix}.`;\n }\n if (\n /^\\*\\/\\d+$/.test(parts.minute) &&\n parts.hour === \"*\" &&\n parts.dayOfMonth === \"*\" &&\n parts.month === \"*\" &&\n parts.dayOfWeek === \"*\"\n ) {\n return `Runs every ${parts.minute.replace(\"*/\", \"\")} minutes${timezoneSuffix}.`;\n }\n if (minuteStep && numericHour) {\n return `Runs every ${minuteStep} minutes between ${numericHour}:00 and ${numericHour}:59${calendarScope}${timezoneSuffix}.`;\n }\n if (time && parts.dayOfMonth === \"*\" && parts.month === \"*\" && parts.dayOfWeek === \"*\") {\n return `Runs every day at ${time}${timezoneSuffix}.`;\n }\n if (time && parts.dayOfMonth === \"*\" && parts.month === \"*\" && parts.dayOfWeek === \"1\") {\n return `Runs every Monday at ${time}${timezoneSuffix}.`;\n }\n if (time && parts.dayOfMonth === \"*\" && parts.month === \"*\" && parts.dayOfWeek === \"1-5\") {\n return `Runs every weekday at ${time}${timezoneSuffix}.`;\n }\n if (time) {\n return `Runs at ${time}${calendarScope}${timezoneSuffix}.`;\n }\n return `Runs on the schedule ${cron}${timezoneSuffix}.`;\n}\n\nfunction workflowInputHasDefault(value: any) {\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n return (\n Object.prototype.hasOwnProperty.call(value, \"default\") &&\n value.default !== undefined &&\n value.default !== null\n );\n }\n return value !== undefined && value !== null;\n}\n\nfunction isWorkflowExpressionString(value: unknown) {\n return typeof value === \"string\" && /^\\s*\\{\\{\\s*.+?\\s*\\}\\}\\s*$/.test(value);\n}\n\nfunction serializeWorkflowDefinitionYaml(definition: WorkflowDefinitionDsl) {\n return YAML.stringify(definition);\n}\n\nfunction serializeJsonDtoValue(value: unknown, fallback: unknown = null) {\n if (typeof value === \"string\") {\n return value;\n }\n\n return JSON.stringify(value ?? fallback);\n}\n\nfunction formatReadonlyJson(value: unknown, emptyValue = \"{}\") {\n if (value === undefined || value === null || value === \"\") {\n return emptyValue;\n }\n\n if (typeof value === \"string\") {\n try {\n return JSON.stringify(JSON.parse(value), null, 2);\n } catch {\n return value;\n }\n }\n\n return JSON.stringify(value, null, 2);\n}\n\nfunction formatReadonlyYaml(value: unknown) {\n if (value === undefined || value === null || value === \"\") {\n return \"\";\n }\n\n if (typeof value === \"string\") {\n return value;\n }\n\n return YAML.stringify(value);\n}\n\nfunction normalizeJsonDisplayValue(value: unknown) {\n if (value === undefined || value === null || value === \"\") {\n return null;\n }\n\n if (typeof value === \"string\") {\n try {\n return JSON.parse(value);\n } catch {\n return value;\n }\n }\n\n return value;\n}\n\nfunction isPlainObjectValue(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction formatOutputVisualValue(value: unknown) {\n if (value === null || value === undefined) {\n return \"null\";\n }\n if (typeof value === \"boolean\") {\n return value ? \"true\" : \"false\";\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n return String(value);\n }\n return JSON.stringify(value);\n}\n\nfunction isUrlLike(value: string) {\n return /^https?:\\/\\//i.test(value);\n}\n\nfunction summarizeOutputValue(value: unknown) {\n const normalizedValue = normalizeJsonDisplayValue(value);\n\n if (normalizedValue === null || normalizedValue === undefined) {\n return \"No output\";\n }\n\n if (Array.isArray(normalizedValue)) {\n return `${normalizedValue.length} item${normalizedValue.length === 1 ? \"\" : \"s\"}`;\n }\n\n if (isPlainObjectValue(normalizedValue)) {\n const count = Object.keys(normalizedValue).length;\n return `${count} field${count === 1 ? \"\" : \"s\"}`;\n }\n\n return String(formatOutputVisualValue(normalizedValue));\n}\n\nfunction slugifyWorkflowKey(value: string) {\n return value\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n}\n\nfunction camelizeWorkflowInputKey(value: string) {\n const words = String(value ?? \"\")\n .trim()\n .replace(/['’]/g, \"\")\n .split(/[^a-zA-Z0-9]+/)\n .filter(Boolean);\n\n if (!words.length) {\n return \"\";\n }\n\n return words\n .map((word, index) => {\n const hasLowercase = /[a-z]/.test(word);\n const hasUppercase = /[A-Z]/.test(word);\n const normalizedWord = hasLowercase && hasUppercase ? word : word.toLowerCase();\n return index === 0\n ? normalizedWord.charAt(0).toLowerCase() + normalizedWord.slice(1)\n : normalizedWord.charAt(0).toUpperCase() + normalizedWord.slice(1);\n })\n .join(\"\");\n}\n\nfunction buildUniqueWorkflowInputKey(baseKey: string, existingKeys: string[]) {\n const fallbackKey = camelizeWorkflowInputKey(baseKey) || \"input\";\n const existing = new Set(existingKeys);\n if (!existing.has(fallbackKey)) {\n return fallbackKey;\n }\n\n let index = 2;\n while (existing.has(`${fallbackKey}${index}`)) {\n index += 1;\n }\n return `${fallbackKey}${index}`;\n}\n\nfunction buildUniqueWorkflowVariableKey(baseKey: string, existingKeys: string[]) {\n const fallbackKey = camelizeWorkflowInputKey(baseKey) || \"variable\";\n const existing = new Set(existingKeys);\n if (!existing.has(fallbackKey)) {\n return fallbackKey;\n }\n\n let index = 2;\n while (existing.has(`${fallbackKey}${index}`)) {\n index += 1;\n }\n return `${fallbackKey}${index}`;\n}\n\nfunction normalizeWorkflowTag(value: string) {\n return value.trim();\n}\n\nfunction parseWorkflowTagInput(value: string) {\n return value\n .split(\",\")\n .map(normalizeWorkflowTag)\n .filter(Boolean);\n}\n\nfunction formatWorkflowTags(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value.map((tag) => String(tag).trim()).filter(Boolean);\n }\n\n if (typeof value === \"string\") {\n try {\n const parsed = JSON.parse(value);\n if (Array.isArray(parsed)) {\n return parsed.map((tag) => String(tag).trim()).filter(Boolean);\n }\n } catch {\n return parseWorkflowTagInput(value);\n }\n }\n\n return [];\n}\n\nfunction buildUniqueWorkflowKey(baseKey: string, existingKeys: string[]) {\n const fallbackKey = slugifyWorkflowKey(baseKey) || \"item\";\n const existing = new Set(existingKeys);\n if (!existing.has(fallbackKey)) {\n return fallbackKey;\n }\n\n let index = 2;\n while (existing.has(`${fallbackKey}-${index}`)) {\n index += 1;\n }\n return `${fallbackKey}-${index}`;\n}\n\nfunction normalizeWorkflowInputDefinition(value: any) {\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n return {\n type: value.type ?? \"string\",\n label: value.label ?? \"\",\n required: Boolean(value.required),\n default: value.default ?? \"\",\n description: value.description ?? \"\",\n };\n }\n\n return {\n type: \"string\",\n label: \"\",\n required: false,\n default: value ?? \"\",\n description: \"\",\n };\n}\n\nfunction getWorkflowInputEntries(inputs?: Record<string, any>): WorkflowInputEntry[] {\n return Object.entries(inputs ?? {}).map(([key, value]) => ({\n key,\n definition: normalizeWorkflowInputDefinition(value),\n }));\n}\n\nfunction getWorkflowVariableMetadata(metadata?: Record<string, any>) {\n const variableDefinitions = metadata?.variableDefinitions;\n return variableDefinitions && typeof variableDefinitions === \"object\" && !Array.isArray(variableDefinitions)\n ? variableDefinitions as Record<string, any>\n : {};\n}\n\nfunction inferWorkflowVariableType(value: unknown, metadataType?: string) {\n if (\n metadataType &&\n WORKFLOW_INPUT_TYPE_OPTIONS.some((option) => option.value === metadataType)\n ) {\n return metadataType;\n }\n if (Array.isArray(value)) {\n return \"array\";\n }\n if (value && typeof value === \"object\") {\n return \"object\";\n }\n if (typeof value === \"number\") {\n return \"number\";\n }\n if (typeof value === \"boolean\") {\n return \"boolean\";\n }\n return \"string\";\n}\n\nfunction getWorkflowVariableEntries(\n variables?: Record<string, any>,\n metadata?: Record<string, any>,\n): WorkflowVariableEntry[] {\n const variableMetadata = getWorkflowVariableMetadata(metadata);\n return Object.entries(variables ?? {}).map(([key, value]) => {\n const meta = variableMetadata[key] ?? {};\n const label = typeof meta.label === \"string\" ? meta.label : key;\n return {\n key,\n definition: {\n type: inferWorkflowVariableType(value, meta.type),\n label,\n value,\n description: typeof meta.description === \"string\" ? meta.description : \"\",\n },\n };\n });\n}\n\nfunction stringifyWorkflowRunInputDefault(value: unknown, type: string) {\n if (value === undefined || value === null) {\n return type === \"boolean\" ? false : \"\";\n }\n\n if (type === \"object\" || type === \"array\") {\n return typeof value === \"string\" ? value : JSON.stringify(value, null, 2);\n }\n\n if (type === \"boolean\") {\n return Boolean(value);\n }\n\n return String(value);\n}\n\nfunction buildWorkflowRunInputDefaults(entries: WorkflowInputEntry[]) {\n return entries.reduce<Record<string, any>>((values, entry) => {\n values[entry.key] = stringifyWorkflowRunInputDefault(\n entry.definition.default,\n entry.definition.type,\n );\n return values;\n }, {});\n}\n\nfunction hasWorkflowInputDefaultValue(value: unknown) {\n return value !== undefined && value !== null && value !== \"\";\n}\n\nfunction formatWorkflowInputDefaultSummary(value: unknown) {\n if (!hasWorkflowInputDefaultValue(value)) {\n return \"No default value set\";\n }\n\n if (typeof value === \"object\") {\n const serialized = JSON.stringify(value);\n return `Default - ${serialized.length > 58 ? `${serialized.slice(0, 58)}...` : serialized}`;\n }\n\n const serialized = String(value);\n return `Default - ${serialized.length > 58 ? `${serialized.slice(0, 58)}...` : serialized}`;\n}\n\nfunction formatWorkflowVariableValueSummary(value: unknown) {\n if (typeof value === \"object\" && value !== null) {\n const serialized = JSON.stringify(value);\n return `Value - ${serialized.length > 58 ? `${serialized.slice(0, 58)}...` : serialized}`;\n }\n\n if (value === \"\") {\n return 'Value - \"\"';\n }\n\n const serialized = String(value ?? \"\");\n return `Value - ${serialized.length > 58 ? `${serialized.slice(0, 58)}...` : serialized}`;\n}\n\nfunction getWorkflowInputDefaultEditorValue(value: unknown, type: string) {\n if (!hasWorkflowInputDefaultValue(value)) {\n if (type === \"array\") {\n return [];\n }\n if (type === \"object\") {\n return {};\n }\n if (type === \"boolean\") {\n return false;\n }\n return \"\";\n }\n\n if (type === \"object\" || type === \"array\") {\n if (typeof value === \"string\") {\n try {\n return JSON.parse(value);\n } catch {\n return type === \"array\" ? [] : {};\n }\n }\n return value;\n }\n\n if (type === \"boolean\") {\n return Boolean(value);\n }\n\n return String(value);\n}\n\nfunction getWorkflowVariableInitialValue(type: string) {\n if (type === \"array\") {\n return [];\n }\n if (type === \"object\") {\n return {};\n }\n if (type === \"boolean\") {\n return false;\n }\n if (type === \"number\") {\n return 0;\n }\n return \"\";\n}\n\nfunction getWorkflowVariableEditorValue(value: unknown, type: string) {\n if (value === undefined || value === null) {\n return getWorkflowVariableInitialValue(type);\n }\n if (type === \"object\" || type === \"array\") {\n if (typeof value === \"string\") {\n try {\n return JSON.parse(value);\n } catch {\n return getWorkflowVariableInitialValue(type);\n }\n }\n return value;\n }\n if (type === \"boolean\") {\n return Boolean(value);\n }\n return String(value);\n}\n\nfunction parseWorkflowRunInputValue(value: any, type: string) {\n if (type === \"boolean\") {\n return Boolean(value);\n }\n\n if (type === \"number\") {\n if (value === \"\" || value === null || value === undefined) {\n return null;\n }\n const numericValue = Number(value);\n if (!Number.isFinite(numericValue)) {\n throw new Error(\"Enter a valid number.\");\n }\n return numericValue;\n }\n\n if (type === \"object\" || type === \"array\") {\n const trimmedValue = String(value ?? \"\").trim();\n if (!trimmedValue) {\n return type === \"array\" ? [] : {};\n }\n const parsed = JSON.parse(trimmedValue);\n if (type === \"array\" && !Array.isArray(parsed)) {\n throw new Error(\"Enter a valid JSON array.\");\n }\n if (type === \"object\" && !isPlainObjectValue(parsed)) {\n throw new Error(\"Enter a valid JSON object.\");\n }\n return parsed;\n }\n\n return value ?? \"\";\n}\n\nfunction normalizeWorkflowTriggerDefinition(value: any) {\n const configuration =\n value?.configuration && typeof value.configuration === \"object\" && !Array.isArray(value.configuration)\n ? value.configuration\n : {};\n\n return {\n id: value?.id ? String(value.id) : \"\",\n name: value?.name ? String(value.name) : \"\",\n type: value?.type ? String(value.type) : \"schedule\",\n disabled: Boolean(value?.disabled),\n configuration,\n metadata:\n value?.metadata && typeof value.metadata === \"object\" && !Array.isArray(value.metadata)\n ? value.metadata\n : undefined,\n };\n}\n\nfunction getWorkflowTriggerCronExpression(\n trigger: ReturnType<typeof normalizeWorkflowTriggerDefinition>,\n) {\n return String(\n trigger.configuration.cronExpression ?? trigger.configuration.cron ?? \"0 9 * * *\",\n );\n}\n\nfunction normalizeWorkflowDefinition(parsed: Record<string, any>): WorkflowDefinitionDsl {\n return {\n ...createEmptyWorkflowDefinition(),\n ...(parsed ?? {}),\n nodes: parsed.nodes,\n triggers: parsed.triggers ?? [],\n errors: parsed.errors ?? [],\n finally: parsed.finally ?? [],\n };\n}\n\nfunction validateWorkflowDefinitionSchema(\n value: unknown,\n nodeTypes: WorkflowNodeMetadataResponse[],\n options: {\n workflowKey?: string;\n requireWorkflowKey?: boolean;\n requireRootNode?: boolean;\n } = {},\n): string[] {\n const errors: string[] = [];\n const nodeTypeMap = new Map(nodeTypes.map((item) => [item.type, item]));\n const seenNodeIds = new Set<string>();\n const validNodeKinds = new Set([\"task\", \"control\", \"subflow\"]);\n const canonicalChildKeys = [\"tasks\", \"then\", \"else\", \"defaults\", \"errors\"];\n const unsupportedChildKeys = [\"children\", \"branches\", \"nodes\"];\n\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return [\"Workflow definition YAML must resolve to an object.\"];\n }\n\n const definition = value as Record<string, any>;\n\n if (options.requireWorkflowKey && !String(options.workflowKey ?? \"\").trim()) {\n errors.push(\"Workflow key is required.\");\n }\n\n if (!Array.isArray(definition.nodes)) {\n errors.push(\"Workflow definition YAML must include a nodes array.\");\n } else if (options.requireRootNode && !definition.nodes.length) {\n errors.push(\"Workflow definition must contain at least one root node.\");\n }\n\n if (\n definition.triggers !== undefined &&\n definition.triggers !== null &&\n !Array.isArray(definition.triggers)\n ) {\n errors.push(\"Workflow definition triggers must be an array when provided.\");\n }\n\n const validateNodeSequence = (nodes: unknown, scopeLabel: string) => {\n if (!Array.isArray(nodes)) {\n errors.push(`${scopeLabel} must be an array.`);\n return;\n }\n\n nodes.forEach((nodeValue, index) => {\n const prefix = `${scopeLabel} node ${index + 1}`;\n if (!nodeValue || typeof nodeValue !== \"object\" || Array.isArray(nodeValue)) {\n errors.push(`${prefix} must be an object.`);\n return;\n }\n\n const node = nodeValue as WorkflowNodeRecord;\n unsupportedChildKeys.forEach((key) => {\n if (Object.prototype.hasOwnProperty.call(node, key)) {\n errors.push(\n `${prefix} uses unsupported child key \"${key}\". Use \"tasks\", \"then\", \"else\", \"defaults\", \"errors\", or \"cases\" instead.`,\n );\n }\n });\n\n canonicalChildKeys.forEach((key) => {\n if (\n node[key] !== undefined &&\n node[key] !== null &&\n !Array.isArray(node[key])\n ) {\n errors.push(`${prefix} field \"${key}\" must be an array when provided.`);\n }\n });\n\n if (\n node.cases !== undefined &&\n node.cases !== null &&\n (typeof node.cases !== \"object\" || Array.isArray(node.cases))\n ) {\n errors.push(`${prefix} field \"cases\" must be an object of arrays when provided.`);\n } else if (node.cases && typeof node.cases === \"object\") {\n Object.entries(node.cases).forEach(([caseKey, caseNodes]) => {\n if (!Array.isArray(caseNodes)) {\n errors.push(`${prefix} case \"${caseKey}\" must be an array.`);\n }\n });\n }\n\n if (!node.id) {\n errors.push(`${prefix} is missing an id.`);\n } else if (seenNodeIds.has(String(node.id))) {\n errors.push(`Duplicate workflow node id \"${node.id}\".`);\n } else {\n seenNodeIds.add(String(node.id));\n }\n\n if (!node.kind) {\n errors.push(`${prefix} is missing a kind.`);\n } else if (!validNodeKinds.has(String(node.kind))) {\n errors.push(\n `${prefix} has unsupported kind \"${node.kind}\". Expected task, control, or subflow.`,\n );\n }\n\n if (!node.type) {\n errors.push(`${prefix} is missing a type.`);\n }\n\n const nodeType = node.type ? nodeTypeMap.get(String(node.type)) : undefined;\n if (node.type && nodeTypes.length && !nodeType) {\n errors.push(`Node \"${node.id ?? prefix}\" uses unregistered type \"${node.type}\".`);\n }\n\n if (node.kind && nodeType && node.kind !== nodeType.kind) {\n errors.push(\n `Node \"${node.id}\" kind \"${node.kind}\" does not match registered type \"${node.type}\" kind \"${nodeType.kind}\".`,\n );\n }\n\n const configuration = node.configuration ?? {};\n if (\n node.configuration !== undefined &&\n node.configuration !== null &&\n (typeof node.configuration !== \"object\" || Array.isArray(node.configuration))\n ) {\n errors.push(`Node \"${node.id ?? prefix}\" configuration must be an object.`);\n }\n\n (nodeType?.authoring?.configurationFields ?? []).forEach((field) => {\n if (!field.required) {\n return;\n }\n\n if (\n configuration &&\n typeof configuration === \"object\" &&\n !isConfigurationFieldVisibleForValidation(field, configuration)\n ) {\n return;\n }\n\n const valueForField =\n configuration && typeof configuration === \"object\"\n ? getFieldValue(configuration, field.path ?? field.key)\n : undefined;\n const isEmptyArray = Array.isArray(valueForField) && valueForField.length === 0;\n const isMissing =\n valueForField === undefined ||\n valueForField === null ||\n valueForField === \"\" ||\n isEmptyArray;\n\n if (isMissing) {\n errors.push(\n `Node \"${node.id}\" is missing required field \"${field.label ?? field.key}\".`,\n );\n }\n });\n\n (nodeType?.authoring?.childSlots ?? []).forEach((slot) => {\n const slotNodes =\n slot.kind === \"case-collection\"\n ? Object.values(node.cases ?? {}).flat()\n : Array.isArray(node[slot.key])\n ? node[slot.key]\n : [];\n const slotCount =\n slot.kind === \"case-collection\"\n ? Object.keys(node.cases ?? {}).length\n : slotNodes.length;\n if (slot.required && slotCount === 0) {\n errors.push(\n `Node \"${node.id}\" requires at least one child node in \"${slot.label ?? slot.key}\".`,\n );\n }\n if (slot.minItems && slotCount < slot.minItems) {\n errors.push(\n `Node \"${node.id}\" requires at least ${slot.minItems} nodes in \"${slot.label ?? slot.key}\".`,\n );\n }\n });\n\n validateNodeSequence(node.tasks ?? [], `${node.id ?? prefix} tasks`);\n validateNodeSequence(node.then ?? [], `${node.id ?? prefix} then`);\n validateNodeSequence(node.else ?? [], `${node.id ?? prefix} else`);\n validateNodeSequence(node.defaults ?? [], `${node.id ?? prefix} defaults`);\n validateNodeSequence(node.errors ?? [], `${node.id ?? prefix} errors`);\n Object.entries(node.cases ?? {}).forEach(([caseKey, caseNodes]) => {\n validateNodeSequence(caseNodes, `${node.id ?? prefix} case \"${caseKey}\"`);\n });\n });\n };\n\n if (Array.isArray(definition.nodes)) {\n validateNodeSequence(definition.nodes, \"root\");\n }\n validateNodeSequence(definition.errors ?? [], \"root errors\");\n validateNodeSequence(definition.finally ?? [], \"root finally\");\n\n if (Array.isArray(definition.triggers)) {\n const triggerIds = new Set<string>();\n const activeScheduleTriggers = definition.triggers.filter(\n (trigger) => trigger?.type === \"schedule\" && !trigger.disabled,\n );\n\n definition.triggers.forEach((trigger, index) => {\n const prefix = `Trigger ${index + 1}`;\n if (!trigger || typeof trigger !== \"object\" || Array.isArray(trigger)) {\n errors.push(`${prefix} must be an object.`);\n return;\n }\n\n if (!trigger.id) {\n errors.push(`${prefix} is missing an id.`);\n } else if (triggerIds.has(String(trigger.id))) {\n errors.push(`Duplicate workflow trigger id \"${trigger.id}\".`);\n } else {\n triggerIds.add(String(trigger.id));\n }\n\n if (![\"schedule\", \"webhook\"].includes(String(trigger.type))) {\n errors.push(`${prefix} has unsupported type \"${trigger.type}\".`);\n }\n\n if (trigger.type === \"schedule\") {\n const cronExpression = trigger.configuration?.cronExpression ?? trigger.configuration?.cron;\n if (!cronExpression || !isValidSimpleCronExpression(String(cronExpression))) {\n errors.push(`${prefix} requires a five-field CRON expression.`);\n }\n }\n });\n\n if (activeScheduleTriggers.length) {\n Object.entries(definition.inputs ?? {}).forEach(([inputKey, inputDefinition]) => {\n if (!workflowInputHasDefault(inputDefinition)) {\n errors.push(\n `Input \"${inputKey}\" requires a default value before enabling a scheduled trigger.`,\n );\n }\n });\n }\n }\n\n return errors;\n}\n\nfunction parseWorkflowDefinitionYaml(\n definitionYaml: WorkflowDefinitionRecord[\"definitionYaml\"],\n nodeTypes: WorkflowNodeMetadataResponse[],\n): WorkflowDefinitionParseResult {\n if (!definitionYaml) {\n const definition = createEmptyWorkflowDefinition();\n return {\n ok: true,\n definition,\n yaml: serializeWorkflowDefinitionYaml(definition),\n };\n }\n\n let parsed: unknown = definitionYaml;\n const yaml =\n typeof definitionYaml === \"string\"\n ? definitionYaml\n : serializeWorkflowDefinitionYaml(definitionYaml);\n\n if (typeof definitionYaml === \"string\") {\n try {\n parsed = YAML.parse(definitionYaml);\n } catch (error: any) {\n return {\n ok: false,\n errors: [`Invalid workflow YAML: ${error?.message ?? \"Unable to parse YAML.\"}`],\n yaml,\n };\n }\n }\n\n const errors = validateWorkflowDefinitionSchema(parsed, nodeTypes);\n if (errors.length) {\n return {\n ok: false,\n errors,\n yaml,\n };\n }\n\n return {\n ok: true,\n definition: normalizeWorkflowDefinition(parsed as Record<string, any>),\n yaml,\n };\n}\n\nfunction flattenWorkflowNodeIds(nodes: WorkflowNodeRecord[]): string[] {\n return nodes.flatMap((node) => [\n String(node.id),\n ...flattenWorkflowNodeIds(node.tasks ?? []),\n ...flattenWorkflowNodeIds(node.then ?? []),\n ...flattenWorkflowNodeIds(node.else ?? []),\n ...flattenWorkflowNodeIds(node.defaults ?? []),\n ...flattenWorkflowNodeIds(node.errors ?? []),\n ...Object.values(node.cases ?? {}).flatMap((caseNodes) =>\n flattenWorkflowNodeIds(caseNodes),\n ),\n ]);\n}\n\nfunction flattenWorkflowNodes(nodes: WorkflowNodeRecord[]): WorkflowNodeRecord[] {\n return nodes.flatMap((node) => [\n node,\n ...flattenWorkflowNodes(node.tasks ?? []),\n ...flattenWorkflowNodes(node.then ?? []),\n ...flattenWorkflowNodes(node.else ?? []),\n ...flattenWorkflowNodes(node.defaults ?? []),\n ...flattenWorkflowNodes(node.errors ?? []),\n ...Object.values(node.cases ?? {}).flatMap((caseNodes) =>\n flattenWorkflowNodes(caseNodes),\n ),\n ]);\n}\n\nfunction buildExecutionOutputEntries(\n outputPayload: unknown,\n nodes: WorkflowNodeRecord[],\n): WorkflowExecutionOutputEntry[] {\n const normalizedValue = normalizeJsonDisplayValue(outputPayload);\n\n if (normalizedValue === null || normalizedValue === undefined) {\n return [];\n }\n\n const nodeMap = new Map(\n flattenWorkflowNodes(nodes).map((node) => [String(node.id), node]),\n );\n\n if (isPlainObjectValue(normalizedValue)) {\n return Object.entries(normalizedValue).map(([key, value]) => {\n const node = nodeMap.get(key);\n\n return {\n key,\n label: node?.name ?? key,\n nodeId: key,\n nodeType: node?.type,\n value,\n };\n });\n }\n\n return [\n {\n key: \"execution-output\",\n label: \"Execution Output\",\n value: normalizedValue,\n },\n ];\n}\n\nfunction buildNodeId(type: string, definition: WorkflowDefinitionDsl) {\n const suffix = type.split(\".\").pop() ?? \"node\";\n const base = suffix.replace(/[^a-zA-Z0-9]+/g, \"\");\n let attempt = base.charAt(0).toLowerCase() + base.slice(1);\n let counter = 1;\n const nodeIds = new Set([\n ...flattenWorkflowNodeIds(definition.nodes),\n ...flattenWorkflowNodeIds(definition.errors ?? []),\n ...flattenWorkflowNodeIds(definition.finally ?? []),\n ]);\n\n while (nodeIds.has(attempt)) {\n counter += 1;\n attempt = `${base.charAt(0).toLowerCase() + base.slice(1)}${counter}`;\n }\n\n return attempt;\n}\n\nfunction countNodes(nodes: WorkflowNodeRecord[]): number {\n return nodes.reduce(\n (sum, node) =>\n sum +\n 1 +\n countNodes(node.tasks ?? []) +\n countNodes(node.then ?? []) +\n countNodes(node.else ?? []) +\n countNodes(node.defaults ?? []) +\n countNodes(node.errors ?? []) +\n Object.values(node.cases ?? {}).reduce(\n (caseSum, caseNodes) => caseSum + countNodes(caseNodes),\n 0,\n ),\n 0,\n );\n}\n\nfunction countTriggers(triggers?: Array<Record<string, any>>): number {\n return Array.isArray(triggers) ? triggers.length : 0;\n}\n\nfunction buildWorkflowInputExample(inputs?: Record<string, any>) {\n return Object.entries(inputs ?? {}).reduce<Record<string, any>>(\n (acc, [key, inputDefinition]) => {\n const normalized = normalizeWorkflowInputDefinition(inputDefinition);\n\n if (workflowInputHasDefault(normalized.default)) {\n acc[key] = normalized.default;\n return acc;\n }\n\n if (normalized.type === \"number\") {\n acc[key] = 123;\n } else if (normalized.type === \"boolean\") {\n acc[key] = true;\n } else if (normalized.type === \"date\") {\n acc[key] = \"2026-07-21\";\n } else if (normalized.type === \"object\") {\n acc[key] = { example: true };\n } else if (normalized.type === \"array\") {\n acc[key] = [\"example\"];\n } else {\n acc[key] = `<${key}>`;\n }\n\n return acc;\n },\n {},\n );\n}\n\nfunction formatExecutionDate(value?: string | null) {\n if (!value) {\n return \"Not available\";\n }\n\n const parsed = new Date(value);\n if (Number.isNaN(parsed.getTime())) {\n return \"Not available\";\n }\n\n return parsed.toLocaleString(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"2-digit\",\n });\n}\n\nfunction formatExecutionLogTime(value?: string | null) {\n if (!value) {\n return \"-\";\n }\n\n const parsed = new Date(value);\n if (Number.isNaN(parsed.getTime())) {\n return \"-\";\n }\n\n return parsed.toLocaleTimeString(undefined, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n });\n}\n\nfunction parseExecutionTimestamp(value?: string | null) {\n if (!value) {\n return null;\n }\n\n const parsed = new Date(value).getTime();\n return Number.isFinite(parsed) ? parsed : null;\n}\n\nfunction getNumericDurationMs(value?: number | string | null) {\n const numericValue =\n typeof value === \"string\" ? Number(value) : typeof value === \"number\" ? value : null;\n\n return typeof numericValue === \"number\" && Number.isFinite(numericValue)\n ? numericValue\n : null;\n}\n\nfunction formatDurationMs(value?: number | string | null) {\n const numericValue = getNumericDurationMs(value);\n\n if (numericValue == null || Number.isNaN(numericValue) || numericValue <= 0) {\n return \"Not available\";\n }\n\n if (numericValue < 1000) {\n return `${numericValue} ms`;\n }\n\n const seconds = numericValue / 1000;\n if (seconds < 60) {\n return `${seconds.toFixed(seconds >= 10 ? 0 : 1)} s`;\n }\n\n const minutes = Math.floor(seconds / 60);\n const remainingSeconds = Math.round(seconds % 60);\n return `${minutes}m ${remainingSeconds}s`;\n}\n\nfunction getExecutionStatusCategory(status?: string | null) {\n const normalized = (status ?? \"\").trim().toLowerCase();\n\n if ([\"success\", \"succeeded\", \"completed\", \"complete\"].includes(normalized)) {\n return \"success\";\n }\n if ([\"failed\", \"error\", \"errored\", \"cancelled\", \"canceled\"].includes(normalized)) {\n return \"failed\";\n }\n if ([\"running\", \"in_progress\", \"in-progress\", \"started\", \"processing\"].includes(normalized)) {\n return \"inProgress\";\n }\n if ([\"created\", \"pending\", \"queued\", \"scheduled\"].includes(normalized)) {\n return \"pending\";\n }\n\n return \"other\";\n}\n\nfunction workflowLogLevelTone(level?: string | null) {\n const value = (level ?? \"\").toLowerCase();\n if (value === \"error\" || value === \"fatal\") {\n return \"danger\";\n }\n if (value === \"warn\" || value === \"warning\") {\n return \"warn\";\n }\n if (value === \"info\") {\n return \"success\";\n }\n return undefined;\n}\n\nfunction buildWorkflowExecutionQueryString(options: {\n workflowDefinitionId: number;\n startDate?: Date | null;\n endDate?: Date | null;\n status?: string;\n search?: string;\n limit?: number;\n offset?: number;\n}) {\n const queryData: Record<string, any> = {\n limit: options.limit ?? WORKFLOW_EXECUTION_PAGE_SIZE,\n offset: options.offset ?? 0,\n sort: [\"startedAt:desc\", \"id:desc\"],\n filters: {\n workflowDefinition: {\n id: {\n $eq: options.workflowDefinitionId,\n },\n },\n },\n };\n\n if (options.status && options.status !== \"all\") {\n queryData.filters.status = {\n $eqi: options.status,\n };\n }\n\n if (options.search?.trim()) {\n queryData.filters.executionIdentifier = {\n $containsi: options.search.trim(),\n };\n }\n\n if (options.startDate || options.endDate) {\n queryData.filters.startedAt = {};\n if (options.startDate) {\n const startDate = new Date(options.startDate);\n startDate.setHours(0, 0, 0, 0);\n queryData.filters.startedAt.$gte = startDate.toISOString();\n }\n if (options.endDate) {\n const endDate = new Date(options.endDate);\n endDate.setHours(23, 59, 59, 999);\n queryData.filters.startedAt.$lte = endDate.toISOString();\n }\n }\n\n return qs.stringify(queryData, { encodeValuesOnly: true });\n}\n\nfunction buildWorkflowExecutionLogQueryString(options: {\n workflowExecutionId: number;\n level?: string;\n search?: string;\n}) {\n const queryData: Record<string, any> = {\n limit: 200,\n offset: 0,\n populate: [\"workflowStepExecution\"],\n sort: [\"sequenceNumber:asc\", \"occurredAt:asc\", \"id:asc\"],\n filters: {\n workflowExecution: {\n id: {\n $eq: options.workflowExecutionId,\n },\n },\n },\n };\n\n if (options.level && options.level !== \"all\") {\n queryData.filters.level = {\n $eqi: options.level,\n };\n }\n\n const trimmedSearch = options.search?.trim();\n if (trimmedSearch) {\n queryData.filters.$or = [\n { message: { $containsi: trimmedSearch } },\n { nodeId: { $containsi: trimmedSearch } },\n { nodeType: { $containsi: trimmedSearch } },\n { source: { $containsi: trimmedSearch } },\n { eventType: { $containsi: trimmedSearch } },\n ];\n }\n\n return qs.stringify(queryData, { encodeValuesOnly: true });\n}\n\nfunction buildWorkflowStepExecutionQueryString(options: {\n workflowExecutionId: number;\n}) {\n const queryData: Record<string, any> = {\n limit: 500,\n offset: 0,\n sort: [\"startedAt:asc\", \"sequenceNumber:asc\", \"id:asc\"],\n filters: {\n workflowExecution: {\n id: {\n $eq: options.workflowExecutionId,\n },\n },\n },\n };\n\n return qs.stringify(queryData, { encodeValuesOnly: true });\n}\n\nfunction buildTriggerDocsModel(trigger: Record<string, any>): WorkflowDocsModel {\n const triggerEntries = Object.entries(trigger ?? {}).filter(\n ([key]) => ![\"id\", \"type\", \"description\", \"disabled\", \"name\", \"label\"].includes(key),\n );\n\n return {\n title: trigger.label ?? trigger.name ?? trigger.id ?? \"Trigger\",\n subtitle: trigger.type ?? \"Trigger\",\n summary:\n trigger.description ??\n \"Workflow trigger that can launch the workflow on a schedule or external event.\",\n badges: [\"trigger\", trigger.disabled ? \"disabled\" : \"enabled\"].filter(Boolean),\n definitions: [\n {\n key: \"behavior\",\n label: \"Behavior\",\n content: trigger.disabled\n ? \"This trigger is currently disabled and will not launch workflow executions until it is enabled.\"\n : \"This trigger is currently enabled and may launch workflow executions based on its configuration.\",\n },\n {\n key: \"configuration\",\n label: \"Configuration\",\n content: `\\`\\`\\`yaml\\n${YAML.stringify(trigger)}\\`\\`\\``,\n },\n ],\n outputs: triggerEntries.map(([key, value]) => ({\n key,\n label: key,\n description:\n typeof value === \"object\"\n ? \"Structured trigger configuration value.\"\n : `Current value: ${String(value)}`,\n valueType: Array.isArray(value)\n ? \"array\"\n : typeof value === \"boolean\"\n ? \"boolean\"\n : typeof value === \"number\"\n ? \"number\"\n : typeof value === \"object\"\n ? \"object\"\n : \"string\",\n })),\n };\n}\n\nfunction findNodeById(\n nodes: WorkflowNodeRecord[],\n nodeId: string,\n): WorkflowNodeRecord | undefined {\n for (const node of nodes) {\n if (String(node.id) === nodeId) {\n return node;\n }\n\n const fromChildren =\n findNodeById(node.tasks ?? [], nodeId) ??\n findNodeById(node.then ?? [], nodeId) ??\n findNodeById(node.else ?? [], nodeId) ??\n findNodeById(node.defaults ?? [], nodeId) ??\n findNodeById(node.errors ?? [], nodeId) ??\n Object.values(node.cases ?? {})\n .map((caseNodes) => findNodeById(caseNodes, nodeId))\n .find(Boolean);\n\n if (fromChildren) {\n return fromChildren;\n }\n }\n\n return undefined;\n}\n\nfunction createExpressionSuggestion(\n group: WorkflowExpressionSuggestion[\"group\"],\n label: string,\n path: string,\n detail?: string,\n description?: string,\n): WorkflowExpressionSuggestion {\n return {\n group,\n label,\n insertText: `{{ ${path} }}`,\n detail,\n description,\n };\n}\n\nfunction inferWorkflowValueType(value: any) {\n if (Array.isArray(value)) {\n return \"array\";\n }\n if (value === null || value === undefined) {\n return undefined;\n }\n return typeof value === \"object\" ? \"object\" : typeof value;\n}\n\nfunction getNodeOutputSuggestions(\n node: WorkflowNodeRecord,\n nodeTypesByType: Map<string, WorkflowNodeMetadataResponse>,\n options: {\n prefix?: string;\n labelPrefix?: string;\n includeParallelTaskOutputs?: boolean;\n } = {},\n): WorkflowExpressionSuggestion[] {\n const nodeId = String(node.id ?? \"\").trim();\n if (!nodeId) {\n return [];\n }\n\n const nodeType = nodeTypesByType.get(String(node.type ?? \"\"));\n const outputDefinitions = nodeType?.authoring?.outputs ?? [];\n const prefix = options.prefix ?? `outputs.${nodeId}`;\n const labelPrefix = options.labelPrefix ?? nodeId;\n const suggestions = outputDefinitions\n .filter((output) => output.includeInRuntimeContext !== false)\n .map((output) => {\n const outputPath = output.path ?? output.key;\n return createExpressionSuggestion(\n \"Outputs\",\n `${labelPrefix}.${outputPath}`,\n `${prefix}.${outputPath}`,\n output.valueType,\n output.description,\n );\n });\n\n if (node.type === \"parallel\" && options.includeParallelTaskOutputs) {\n (node.tasks ?? []).forEach((task, index) => {\n suggestions.push(\n ...getNodeOutputSuggestions(task, nodeTypesByType, {\n prefix: `${prefix}.tasks.${index}.outputs.${task.id}`,\n labelPrefix: `${labelPrefix}.tasks.${index}.${task.id}`,\n }),\n );\n });\n }\n\n return suggestions;\n}\n\nfunction buildWorkflowExpressionSuggestions(\n definition: WorkflowDefinitionDsl,\n nodeTypes: WorkflowNodeMetadataResponse[],\n currentNodeId: string,\n workflowSecrets: WorkflowSecretSuggestionRecord[] = [],\n): WorkflowExpressionSuggestion[] {\n const nodeTypesByType = new Map(nodeTypes.map((nodeType) => [nodeType.type, nodeType]));\n const suggestions: WorkflowExpressionSuggestion[] = [];\n const seenInsertText = new Set<string>();\n\n const addSuggestion = (suggestion: WorkflowExpressionSuggestion) => {\n if (seenInsertText.has(suggestion.insertText)) {\n return;\n }\n seenInsertText.add(suggestion.insertText);\n suggestions.push(suggestion);\n };\n\n Object.entries(definition.inputs ?? {}).forEach(([inputKey, inputDefinition]) => {\n const definitionObject =\n inputDefinition && typeof inputDefinition === \"object\" && !Array.isArray(inputDefinition)\n ? inputDefinition\n : {};\n addSuggestion(\n createExpressionSuggestion(\n \"Inputs\",\n inputKey,\n `inputs.${inputKey}`,\n definitionObject.type ?? inferWorkflowValueType(inputDefinition),\n definitionObject.description,\n ),\n );\n });\n\n const variableDefinitions =\n definition.metadata?.variableDefinitions &&\n typeof definition.metadata.variableDefinitions === \"object\" &&\n !Array.isArray(definition.metadata.variableDefinitions)\n ? definition.metadata.variableDefinitions\n : {};\n\n Object.entries(definition.variables ?? {}).forEach(([variableKey, variableValue]) => {\n const variableDefinition = variableDefinitions[variableKey] ?? {};\n addSuggestion(\n createExpressionSuggestion(\n \"Variables\",\n variableDefinition.label ?? variableKey,\n `variables.${variableKey}`,\n variableDefinition.type ?? inferWorkflowValueType(variableValue),\n variableDefinition.description,\n ),\n );\n });\n\n workflowSecrets\n .filter((secret) => String(secret.status ?? \"active\") === \"active\")\n .forEach((secret) => {\n const key = String(secret.key ?? \"\").trim();\n if (!key) {\n return;\n }\n addSuggestion(\n createExpressionSuggestion(\n \"Secrets\",\n secret.displayName ? `${secret.displayName} (${key})` : key,\n `secrets.${key}`,\n secret.valueType ?? \"secret\",\n secret.description,\n ),\n );\n });\n\n const addNodeOutputs = (node: WorkflowNodeRecord) => {\n getNodeOutputSuggestions(node, nodeTypesByType, {\n includeParallelTaskOutputs: true,\n }).forEach(addSuggestion);\n };\n\n const visitSequence = (nodes: WorkflowNodeRecord[]): boolean => {\n for (const node of nodes ?? []) {\n if (String(node.id) === currentNodeId) {\n return true;\n }\n\n if (node.type === \"parallel\" && Array.isArray(node.tasks)) {\n const foundInParallelBranch = node.tasks.some((task) => visitSequence([task]));\n if (foundInParallelBranch) {\n return true;\n }\n } else {\n const childSequences = [\n node.tasks,\n node.then,\n node.else,\n node.defaults,\n ...Object.values(node.cases ?? {}),\n ].filter(Array.isArray) as WorkflowNodeRecord[][];\n\n for (const childSequence of childSequences) {\n if (visitSequence(childSequence)) {\n return true;\n }\n }\n }\n\n addNodeOutputs(node);\n }\n\n return false;\n };\n\n visitSequence(definition.nodes ?? []);\n\n return suggestions;\n}\n\nfunction getFirstNodeId(nodes: WorkflowNodeRecord[]): string {\n return nodes[0]?.id ?? \"\";\n}\n\nfunction getDefinitionNodes(definition: WorkflowDefinitionDsl): WorkflowNodeRecord[] {\n return [\n ...(definition.nodes ?? []),\n ...(definition.errors ?? []),\n ...(definition.finally ?? []),\n ];\n}\n\nfunction findNodeInDefinition(\n definition: WorkflowDefinitionDsl,\n nodeId: string,\n): WorkflowNodeRecord | undefined {\n return findNodeById(getDefinitionNodes(definition), nodeId);\n}\n\nfunction updateNodeById(\n nodes: WorkflowNodeRecord[],\n nodeId: string,\n updater: (node: WorkflowNodeRecord) => WorkflowNodeRecord,\n): WorkflowNodeRecord[] {\n return nodes.map((node) => {\n if (String(node.id) === nodeId) {\n return updater(node);\n }\n\n return {\n ...node,\n tasks: node.tasks ? updateNodeById(node.tasks, nodeId, updater) : node.tasks,\n then: node.then ? updateNodeById(node.then, nodeId, updater) : node.then,\n else: node.else ? updateNodeById(node.else, nodeId, updater) : node.else,\n defaults: node.defaults\n ? updateNodeById(node.defaults, nodeId, updater)\n : node.defaults,\n errors: node.errors\n ? updateNodeById(node.errors, nodeId, updater)\n : node.errors,\n cases: node.cases\n ? Object.fromEntries(\n Object.entries(node.cases).map(([caseKey, caseNodes]) => [\n caseKey,\n updateNodeById(caseNodes, nodeId, updater),\n ]),\n )\n : node.cases,\n };\n });\n}\n\nfunction removeNodeById(\n nodes: WorkflowNodeRecord[],\n nodeId: string,\n): WorkflowNodeRecord[] {\n return nodes\n .filter((node) => String(node.id) !== nodeId)\n .map((node) => ({\n ...node,\n tasks: node.tasks ? removeNodeById(node.tasks, nodeId) : node.tasks,\n then: node.then ? removeNodeById(node.then, nodeId) : node.then,\n else: node.else ? removeNodeById(node.else, nodeId) : node.else,\n defaults: node.defaults\n ? removeNodeById(node.defaults, nodeId)\n : node.defaults,\n errors: node.errors\n ? removeNodeById(node.errors, nodeId)\n : node.errors,\n cases: node.cases\n ? Object.fromEntries(\n Object.entries(node.cases).map(([caseKey, caseNodes]) => [\n caseKey,\n removeNodeById(caseNodes, nodeId),\n ]),\n )\n : node.cases,\n }));\n}\n\nfunction insertAt<T>(items: T[], index: number, item: T): T[] {\n const safeIndex = Math.max(0, Math.min(index, items.length));\n return [...items.slice(0, safeIndex), item, ...items.slice(safeIndex)];\n}\n\nfunction insertNodeIntoDefinition(\n definition: WorkflowDefinitionDsl,\n target: WorkflowInsertTarget,\n nodeToInsert: WorkflowNodeRecord,\n): WorkflowDefinitionDsl {\n if (target.scope === \"root\") {\n return {\n ...definition,\n nodes: insertAt(definition.nodes, target.index, nodeToInsert),\n };\n }\n\n return {\n ...definition,\n nodes: updateNodeById(definition.nodes, target.parentNodeId, (node) => {\n if (target.scope === \"case\") {\n const cases = node.cases ?? {};\n const caseNodes = Array.isArray(cases[target.caseKey])\n ? cases[target.caseKey]\n : [];\n return {\n ...node,\n cases: {\n ...cases,\n [target.caseKey]: insertAt(caseNodes, target.index, nodeToInsert),\n },\n };\n }\n\n const slotNodes = Array.isArray(node[target.slotKey])\n ? (node[target.slotKey] as WorkflowNodeRecord[])\n : [];\n return {\n ...node,\n [target.slotKey]: insertAt(slotNodes, target.index, nodeToInsert),\n };\n }),\n };\n}\n\nfunction getNodesForInsertTarget(\n nodes: WorkflowNodeRecord[],\n target: WorkflowInsertTarget | null,\n): WorkflowNodeRecord[] {\n if (!target) {\n return nodes;\n }\n\n if (target.scope === \"root\") {\n return nodes;\n }\n\n const parentNode = findNodeById(nodes, target.parentNodeId);\n if (!parentNode) {\n return [];\n }\n\n if (target.scope === \"case\") {\n const cases = parentNode.cases ?? {};\n return Array.isArray(cases[target.caseKey]) ? cases[target.caseKey] : [];\n }\n\n return Array.isArray(parentNode[target.slotKey])\n ? (parentNode[target.slotKey] as WorkflowNodeRecord[])\n : [];\n}\n\nfunction getExpressionBoundaryNodeIdForInsertTarget(\n nodes: WorkflowNodeRecord[],\n target: WorkflowInsertTarget | null,\n) {\n const sequence = getNodesForInsertTarget(nodes, target);\n const nextNode = target ? sequence[target.index] : undefined;\n\n return nextNode?.id ? String(nextNode.id) : \"__workflow_pending_insert__\";\n}\n\nfunction getFieldValue(value: Record<string, any>, pathOrKey: string) {\n const parts = pathOrKey.split(\".\");\n let current: any = value;\n for (const part of parts) {\n current = current?.[part];\n if (current === undefined) {\n return undefined;\n }\n }\n return current;\n}\n\nfunction isConfigurationFieldVisibleForValidation(\n field: WorkflowNodeConfigurationFieldDefinition,\n configuration: Record<string, any>,\n) {\n const visibleWhen = field.uiSchema?.visibleWhen as\n | {\n field?: string;\n path?: string;\n equals?: any;\n notEquals?: any;\n includes?: any[];\n }\n | undefined;\n\n if (!visibleWhen) {\n return true;\n }\n\n const dependencyPath = visibleWhen.path ?? visibleWhen.field;\n if (!dependencyPath) {\n return true;\n }\n\n const dependencyValue = getFieldValue(configuration, dependencyPath);\n\n if (\"equals\" in visibleWhen) {\n return dependencyValue === visibleWhen.equals;\n }\n\n if (\"notEquals\" in visibleWhen) {\n return dependencyValue !== visibleWhen.notEquals;\n }\n\n if (Array.isArray(visibleWhen.includes)) {\n return visibleWhen.includes.includes(dependencyValue);\n }\n\n return true;\n}\n\nfunction validateWorkflowDefinitionClient(\n definition: WorkflowDefinitionDsl,\n nodeTypes: WorkflowNodeMetadataResponse[],\n workflowKey: string,\n): string[] {\n return validateWorkflowDefinitionSchema(definition, nodeTypes, {\n workflowKey,\n requireWorkflowKey: true,\n requireRootNode: true,\n });\n}\n\nexport function WorkflowDefinitionEditorPage() {\n const params = useParams();\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const entityApi = React.useMemo(\n () => createSolidEntityApi(\"workflowDefinition\"),\n [],\n );\n const workflowExecutionApi = React.useMemo(\n () => createSolidEntityApi(\"workflowExecution\"),\n [],\n );\n const workflowExecutionLogApi = React.useMemo(\n () => createSolidEntityApi(\"workflowExecutionLog\"),\n [],\n );\n const workflowStepExecutionApi = React.useMemo(\n () => createSolidEntityApi(\"workflowStepExecution\"),\n [],\n );\n const workflowSecretApi = React.useMemo(\n () => createSolidEntityApi(\"workflowSecret\"),\n [],\n );\n const {\n useCreateSolidEntityMutation,\n useGetSolidEntityByIdQuery,\n useUpdateSolidEntityMutation,\n } = entityApi;\n const {\n useLazyGetSolidEntitiesQuery: useLazyGetWorkflowExecutionsQuery,\n } = workflowExecutionApi;\n const {\n useLazyGetSolidEntitiesQuery: useLazyGetWorkflowExecutionLogsQuery,\n } = workflowExecutionLogApi;\n const {\n useLazyGetSolidEntitiesQuery: useLazyGetWorkflowStepExecutionsQuery,\n } = workflowStepExecutionApi;\n const {\n useGetSolidEntitiesQuery: useGetWorkflowSecretsQuery,\n } = workflowSecretApi;\n\n const workflowDefinitionId = params.id ?? \"\";\n\n const {\n data: workflowDefinitionResponse,\n isLoading: isWorkflowDefinitionLoading,\n refetch,\n } = useGetSolidEntityByIdQuery(\n { id: workflowDefinitionId, qs: \"populate[0]=moduleMetadata\" },\n { skip: !workflowDefinitionId || workflowDefinitionId === \"new\" },\n );\n const [createWorkflowDefinition, { isLoading: isCreating }] =\n useCreateSolidEntityMutation();\n const [updateWorkflowDefinition, { isLoading: isSaving }] =\n useUpdateSolidEntityMutation();\n const [validateWorkflowDefinition, { isLoading: isServerValidating }] =\n useValidateWorkflowDefinitionMutation();\n const [executeWorkflowDefinition, { isLoading: isExecuting }] =\n useExecuteWorkflowDefinitionMutation();\n const [triggerGetWorkflowExecutions, workflowExecutionsQuery] =\n useLazyGetWorkflowExecutionsQuery();\n const [triggerGetWorkflowExecutionPresence, workflowExecutionPresenceQuery] =\n useLazyGetWorkflowExecutionsQuery();\n const [triggerGetWorkflowExecutionLogs, workflowExecutionLogsQuery] =\n useLazyGetWorkflowExecutionLogsQuery();\n const [triggerGetWorkflowStepExecutions, workflowStepExecutionsQuery] =\n useLazyGetWorkflowStepExecutionsQuery();\n const { data: moduleMetadataResponse } = useGetmodulesQuery(\n \"offset=0&limit=100&sort[0]=displayName%3Aasc\",\n );\n const { data: workflowSecretsResponse } = useGetWorkflowSecretsQuery(\n \"offset=0&limit=1000&fields[0]=id&fields[1]=key&fields[2]=displayName&fields[3]=description&fields[4]=valueType&fields[5]=status&filters[status][$eq]=active&sort[0]=key%3Aasc\",\n );\n\n const {\n data: nodeTypes = [],\n isLoading: isNodeTypesLoading,\n isError: isNodeTypesError,\n } = useGetWorkflowNodeTypesQuery();\n\n const record = workflowDefinitionResponse?.data as\n | WorkflowDefinitionRecord\n | undefined;\n const moduleRecords = React.useMemo(\n () => ((moduleMetadataResponse?.records ?? []) as Record<string, any>[]),\n [moduleMetadataResponse?.records],\n );\n const selectableModuleRecords = React.useMemo(\n () => moduleRecords.filter(isWorkflowModuleSelectable),\n [moduleRecords],\n );\n const workflowSecretRecords = React.useMemo(\n () => ((workflowSecretsResponse?.records ?? []) as WorkflowSecretSuggestionRecord[]),\n [workflowSecretsResponse?.records],\n );\n\n const [workflowKey, setWorkflowKey] = React.useState(\"\");\n const [workflowDisplayName, setWorkflowDisplayName] = React.useState(\"\");\n const [workflowModule, setWorkflowModule] = React.useState<Record<string, any> | null>(null);\n const [workflowModuleSuggestions, setWorkflowModuleSuggestions] = React.useState<\n Record<string, any>[]\n >([]);\n const [workflowNamespace, setWorkflowNamespace] = React.useState(\"\");\n const [workflowDescription, setWorkflowDescription] = React.useState(\"\");\n const [workflowStatus, setWorkflowStatus] = React.useState(\"draft\");\n const [workflowTags, setWorkflowTags] = React.useState<string[]>([]);\n const [workflowTagDraft, setWorkflowTagDraft] = React.useState(\"\");\n const [workflowIdentityErrors, setWorkflowIdentityErrors] =\n React.useState<WorkflowIdentityErrors>({});\n const [triggerGuideMode, setTriggerGuideMode] =\n React.useState<WorkflowTriggerGuideMode>(\"curl\");\n const [runInputsOpen, setRunInputsOpen] = React.useState(false);\n const [runInputValues, setRunInputValues] = React.useState<Record<string, any>>({});\n const [runInputErrors, setRunInputErrors] = React.useState<Record<string, string>>({});\n const [defaultValueEditorInputKey, setDefaultValueEditorInputKey] =\n React.useState<string | null>(null);\n const [defaultValueEditorDraft, setDefaultValueEditorDraft] = React.useState<any>(\"\");\n const [defaultValueEditorJsonText, setDefaultValueEditorJsonText] = React.useState(\"\");\n const [defaultValueEditorError, setDefaultValueEditorError] = React.useState(\"\");\n const [defaultValueEditorResetToken, setDefaultValueEditorResetToken] =\n React.useState(\"default-value-editor\");\n const [variableValueEditorKey, setVariableValueEditorKey] =\n React.useState<string | null>(null);\n const [variableValueEditorDraft, setVariableValueEditorDraft] = React.useState<any>(\"\");\n const [variableValueEditorJsonText, setVariableValueEditorJsonText] = React.useState(\"\");\n const [variableValueEditorError, setVariableValueEditorError] = React.useState(\"\");\n const [variableValueEditorResetToken, setVariableValueEditorResetToken] =\n React.useState(\"variable-value-editor\");\n const [definitionDraft, setDefinitionDraft] = React.useState<WorkflowDefinitionDsl>(\n createEmptyWorkflowDefinition(),\n );\n const [codeValue, setCodeValue] = React.useState(\n serializeWorkflowDefinitionYaml(createEmptyWorkflowDefinition()),\n );\n const [codeError, setCodeError] = React.useState<string | null>(null);\n const [selectedNodeId, setSelectedNodeId] = React.useState<string>(\"\");\n const [selectedTriggerId, setSelectedTriggerId] = React.useState<string>(\"\");\n const [editorOpen, setEditorOpen] = React.useState(false);\n const [pendingInsertTarget, setPendingInsertTarget] =\n React.useState<WorkflowInsertTarget | null>(null);\n const [topologyDocsOpen, setTopologyDocsOpen] = React.useState(false);\n const [topologyDocsNodeTypeKey, setTopologyDocsNodeTypeKey] =\n React.useState<string>(\"\");\n const [topologyDocsModel, setTopologyDocsModel] =\n React.useState<WorkflowDocsModel | undefined>();\n const [detailTab, setDetailTab] = React.useState<WorkflowDetailTab>(\n \"overview\",\n );\n const [topologyViewOpen, setTopologyViewOpen] = React.useState(true);\n const [topologyYamlViewOpen, setTopologyYamlViewOpen] = React.useState(false);\n const [topologySplitPercent, setTopologySplitPercent] = React.useState(\n readStoredTopologySplitPercent,\n );\n const topologySplitRef = React.useRef<HTMLDivElement | null>(null);\n const [overviewStartDate, setOverviewStartDate] = React.useState<Date | null>(null);\n const [overviewEndDate, setOverviewEndDate] = React.useState<Date | null>(null);\n const [executionPage, setExecutionPage] = React.useState(1);\n const [executionStatusFilter, setExecutionStatusFilter] = React.useState(\"all\");\n const [executionSearchFilter, setExecutionSearchFilter] = React.useState(\"\");\n const [executionWorkspaceTab, setExecutionWorkspaceTab] =\n React.useState<\"summary\" | \"list\">(\"summary\");\n const [selectedExecution, setSelectedExecution] =\n React.useState<WorkflowExecutionRecord | null>(null);\n const [selectedExecutionTab, setSelectedExecutionTab] = React.useState(\"summary\");\n const [selectedExecutionOutputMode, setSelectedExecutionOutputMode] =\n React.useState<\"visual\" | \"json\">(\"visual\");\n const [expandedExecutionOutputKey, setExpandedExecutionOutputKey] =\n React.useState<string | null>(null);\n const [executionLogLevelFilter, setExecutionLogLevelFilter] = React.useState(\"all\");\n const [executionLogSearch, setExecutionLogSearch] = React.useState(\"\");\n const [expandedExecutionLogId, setExpandedExecutionLogId] =\n React.useState<number | null>(null);\n const [expandedTimelineStepId, setExpandedTimelineStepId] =\n React.useState<number | null>(null);\n const [validationState, setValidationState] = React.useState<ValidationState>({\n status: \"idle\",\n errors: [],\n });\n\n React.useEffect(() => {\n setDetailTab(\"overview\");\n }, [workflowDefinitionId]);\n\n React.useEffect(() => {\n setOverviewStartDate(null);\n setOverviewEndDate(null);\n setExecutionPage(1);\n setExecutionStatusFilter(\"all\");\n setExecutionSearchFilter(\"\");\n setExecutionWorkspaceTab(\"summary\");\n setSelectedExecution(null);\n setSelectedExecutionTab(\"summary\");\n setSelectedExecutionOutputMode(\"visual\");\n setExecutionLogLevelFilter(\"all\");\n setExecutionLogSearch(\"\");\n setExpandedExecutionLogId(null);\n setExpandedTimelineStepId(null);\n }, [workflowDefinitionId]);\n\n React.useEffect(() => {\n if (workflowDefinitionId === \"new\") {\n if (!selectableModuleRecords.length) {\n return;\n }\n\n setWorkflowModule((current) =>\n (current && isWorkflowModuleSelectable(current) ? current : null) ??\n selectableModuleRecords[0] ??\n null,\n );\n return;\n }\n\n if (!record) {\n return;\n }\n\n const selectedModule =\n record.moduleMetadata ??\n moduleRecords.find(\n (module) =>\n module.id === record.moduleMetadataId ||\n module.name === record.moduleMetadataUserKey,\n ) ??\n null;\n\n if (selectedModule && isWorkflowModuleSelectable(selectedModule)) {\n setWorkflowModule(selectedModule);\n } else if (selectedModule) {\n setWorkflowModule(null);\n setWorkflowIdentityErrors((current) => ({\n ...current,\n moduleMetadata: \"Workflows cannot be saved to Solid Core. Select an application module.\",\n }));\n }\n }, [moduleRecords, record, selectableModuleRecords, workflowDefinitionId]);\n\n React.useEffect(() => {\n if (workflowDefinitionId === \"new\") {\n const emptyDefinition = createEmptyWorkflowDefinition();\n setWorkflowKey(\"\");\n setWorkflowDisplayName(\"\");\n setWorkflowNamespace(\"\");\n setWorkflowDescription(\"\");\n setWorkflowStatus(\"draft\");\n setWorkflowTags([]);\n setWorkflowTagDraft(\"\");\n setWorkflowIdentityErrors({});\n setDefinitionDraft(emptyDefinition);\n setCodeValue(serializeWorkflowDefinitionYaml(emptyDefinition));\n setCodeError(null);\n setSelectedNodeId(\"\");\n setSelectedTriggerId(\"\");\n setValidationState({ status: \"idle\", errors: [] });\n }\n }, [workflowDefinitionId]);\n\n React.useEffect(() => {\n if (workflowDefinitionId === \"new\") {\n return;\n }\n\n if (!record || (isNodeTypesLoading && !nodeTypes.length)) {\n return;\n }\n\n const parsed = parseWorkflowDefinitionYaml(record.definitionYaml, nodeTypes);\n setWorkflowKey(record.key ?? \"\");\n setWorkflowDisplayName(record.displayName ?? \"\");\n setWorkflowNamespace(record.namespace ?? \"\");\n setWorkflowStatus(record.status ?? \"draft\");\n setWorkflowTags(formatWorkflowTags(record.tags));\n setWorkflowTagDraft(\"\");\n setWorkflowIdentityErrors({});\n setSelectedNodeId(\"\");\n setSelectedTriggerId(\"\");\n setCodeValue(parsed.yaml);\n\n if (!parsed.ok) {\n const nextError = parsed.errors.join(\"\\n\");\n setWorkflowDescription(record.description ?? \"\");\n setDefinitionDraft(createEmptyWorkflowDefinition());\n setCodeError(nextError);\n setValidationState({\n status: \"invalid\",\n source: \"client\",\n message: \"Workflow definition YAML is invalid.\",\n errors: parsed.errors,\n });\n setDetailTab(\"topology\");\n setTopologyYamlViewOpen(true);\n return;\n }\n\n setWorkflowDescription(record.description ?? parsed.definition.description ?? \"\");\n setDefinitionDraft(parsed.definition);\n setCodeError(null);\n setSelectedNodeId(getFirstNodeId(parsed.definition.nodes));\n setValidationState({ status: \"idle\", errors: [] });\n }, [isNodeTypesLoading, nodeTypes, record, workflowDefinitionId]);\n\n React.useEffect(() => {\n if (!selectedNodeId) {\n return;\n }\n\n if (!findNodeInDefinition(definitionDraft, selectedNodeId)) {\n setSelectedNodeId(getFirstNodeId(definitionDraft.nodes));\n }\n }, [definitionDraft, selectedNodeId]);\n\n React.useEffect(() => {\n if (!selectedTriggerId) {\n return;\n }\n\n const exists = (definitionDraft.triggers ?? []).some(\n (trigger) => String(trigger.id) === selectedTriggerId,\n );\n if (!exists) {\n setSelectedTriggerId(\"\");\n }\n }, [definitionDraft.triggers, selectedTriggerId]);\n\n React.useEffect(() => {\n if (typeof window === \"undefined\") {\n return;\n }\n\n window.localStorage.setItem(\n TOPOLOGY_SPLIT_STORAGE_KEY,\n String(Math.round(topologySplitPercent)),\n );\n }, [topologySplitPercent]);\n\n const selectedNode = React.useMemo(\n () => findNodeInDefinition(definitionDraft, selectedNodeId),\n [definitionDraft, selectedNodeId],\n );\n\n const selectedNodeType = React.useMemo(() => {\n if (!selectedNode?.type) {\n return undefined;\n }\n return nodeTypes.find((nodeType) => nodeType.type === selectedNode.type);\n }, [nodeTypes, selectedNode]);\n\n const selectedNodeExpressionSuggestions = React.useMemo(\n () =>\n selectedNodeId\n ? buildWorkflowExpressionSuggestions(\n definitionDraft,\n nodeTypes,\n selectedNodeId,\n workflowSecretRecords,\n )\n : [],\n [definitionDraft, nodeTypes, selectedNodeId, workflowSecretRecords],\n );\n\n const addNodeExpressionSuggestions = React.useMemo(\n () =>\n pendingInsertTarget\n ? buildWorkflowExpressionSuggestions(\n definitionDraft,\n nodeTypes,\n getExpressionBoundaryNodeIdForInsertTarget(\n definitionDraft.nodes,\n pendingInsertTarget,\n ),\n workflowSecretRecords,\n )\n : [],\n [definitionDraft, nodeTypes, pendingInsertTarget, workflowSecretRecords],\n );\n\n const validateWorkflowIdentity = React.useCallback(() => {\n const errors: WorkflowIdentityErrors = {};\n const displayName = workflowDisplayName.trim();\n const key = workflowKey.trim();\n const namespace = workflowNamespace.trim();\n const pendingTags = parseWorkflowTagInput(workflowTagDraft);\n const tags = [...workflowTags, ...pendingTags];\n\n if (!displayName) {\n errors.displayName = \"Workflow name is required.\";\n }\n\n if (!workflowModule?.id && !workflowModule?.name) {\n errors.moduleMetadata = \"Module is required.\";\n } else if (!isWorkflowModuleSelectable(workflowModule)) {\n errors.moduleMetadata = \"Workflows cannot be saved to Solid Core. Select an application module.\";\n }\n\n if (!key) {\n errors.key = \"Key is required.\";\n } else if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(key)) {\n errors.key = \"Key can only contain lowercase letters, numbers, and hyphens.\";\n }\n\n if (namespace && !/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(namespace)) {\n errors.namespace =\n \"Namespace can only contain lowercase letters, numbers, dots, and hyphens.\";\n }\n\n if (tags.some((tag) => !/^[\\w.-]+$/.test(tag))) {\n errors.tags = \"Tags can only contain letters, numbers, underscores, dots, and hyphens.\";\n }\n\n setWorkflowIdentityErrors(errors);\n return errors;\n }, [\n workflowDisplayName,\n workflowKey,\n workflowModule,\n workflowNamespace,\n workflowTagDraft,\n workflowTags,\n ]);\n\n const hasWorkflowIdentityErrors = (errors: WorkflowIdentityErrors) =>\n Object.keys(errors).length > 0;\n\n const handleWorkflowDisplayNameChange = (nextDisplayName: string) => {\n setWorkflowDisplayName(nextDisplayName);\n\n if (workflowDefinitionId === \"new\") {\n setWorkflowKey(slugifyWorkflowKey(nextDisplayName));\n }\n\n setWorkflowIdentityErrors((current) => ({\n ...current,\n displayName: undefined,\n key: undefined,\n }));\n };\n\n const handleWorkflowNamespaceChange = (nextNamespace: string) => {\n setWorkflowNamespace(nextNamespace);\n setWorkflowIdentityErrors((current) => ({ ...current, namespace: undefined }));\n };\n\n const searchWorkflowModules = React.useCallback(\n ({ query }: { query: string }) => {\n const normalizedQuery = query.trim().toLowerCase();\n const nextSuggestions = normalizedQuery\n ? selectableModuleRecords.filter((module) =>\n [module.displayName, module.name]\n .filter(Boolean)\n .some((value) => String(value).toLowerCase().includes(normalizedQuery)),\n )\n : selectableModuleRecords;\n setWorkflowModuleSuggestions(nextSuggestions);\n },\n [selectableModuleRecords],\n );\n\n const handleWorkflowModuleChange = ({ value }: { value: any }) => {\n if (value && !isWorkflowModuleSelectable(value)) {\n setWorkflowModule(null);\n setWorkflowIdentityErrors((current) => ({\n ...current,\n moduleMetadata: \"Workflows cannot be saved to Solid Core. Select an application module.\",\n }));\n return;\n }\n\n setWorkflowModule(value ?? null);\n setWorkflowIdentityErrors((current) => ({ ...current, moduleMetadata: undefined }));\n };\n\n const commitWorkflowTags = React.useCallback((value = workflowTagDraft) => {\n const nextTags = parseWorkflowTagInput(value);\n if (!nextTags.length) {\n setWorkflowTagDraft(\"\");\n return;\n }\n\n setWorkflowTags((current) => {\n const seen = new Set(current.map((tag) => tag.toLowerCase()));\n const merged = [...current];\n nextTags.forEach((tag) => {\n const normalizedKey = tag.toLowerCase();\n if (!seen.has(normalizedKey)) {\n seen.add(normalizedKey);\n merged.push(tag);\n }\n });\n return merged;\n });\n setWorkflowTagDraft(\"\");\n setWorkflowIdentityErrors((current) => ({ ...current, tags: undefined }));\n }, [workflowTagDraft]);\n\n const removeWorkflowTag = (tagToRemove: string) => {\n setWorkflowTags((current) => current.filter((tag) => tag !== tagToRemove));\n setWorkflowIdentityErrors((current) => ({ ...current, tags: undefined }));\n };\n\n const handleWorkflowTagKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Enter\" || event.key === \",\") {\n event.preventDefault();\n commitWorkflowTags();\n return;\n }\n\n if (event.key === \"Backspace\" && !workflowTagDraft && workflowTags.length) {\n event.preventDefault();\n setWorkflowTags((current) => current.slice(0, -1));\n }\n };\n\n const topologyDocsNodeType = React.useMemo(() => {\n if (!topologyDocsNodeTypeKey) {\n return undefined;\n }\n return nodeTypes.find((nodeType) => nodeType.type === topologyDocsNodeTypeKey);\n }, [nodeTypes, topologyDocsNodeTypeKey]);\n\n const workflowStats = React.useMemo(\n () => ({\n nodeCount: countNodes(getDefinitionNodes(definitionDraft)),\n triggerCount: countTriggers(definitionDraft.triggers),\n inputCount:\n definitionDraft.inputs && typeof definitionDraft.inputs === \"object\"\n ? Array.isArray(definitionDraft.inputs)\n ? definitionDraft.inputs.length\n : Object.keys(definitionDraft.inputs).length\n : 0,\n }),\n [definitionDraft],\n );\n\n const numericWorkflowDefinitionId = React.useMemo(() => {\n const candidate = record?.id ?? Number(workflowDefinitionId);\n const parsedCandidate =\n typeof candidate === \"number\" ? candidate : Number(candidate);\n return Number.isFinite(parsedCandidate) ? parsedCandidate : null;\n }, [record?.id, workflowDefinitionId]);\n\n const validationTag = React.useMemo(() => {\n if (validationState.status === \"valid\") {\n return { tone: \"success\" as const, label: \"Validated\" };\n }\n if (validationState.status === \"invalid\") {\n return { tone: \"danger\" as const, label: \"Needs fixes\" };\n }\n if (validationState.status === \"validating\") {\n return { tone: undefined, label: \"Validating\" };\n }\n return { tone: undefined, label: \"Not validated\" };\n }, [validationState.status]);\n\n const loadWorkflowExecutions = React.useCallback(async (page = executionPage) => {\n if (!numericWorkflowDefinitionId) {\n return;\n }\n\n await triggerGetWorkflowExecutions(\n buildWorkflowExecutionQueryString({\n workflowDefinitionId: numericWorkflowDefinitionId,\n startDate: overviewStartDate,\n endDate: overviewEndDate,\n status: executionStatusFilter,\n search: executionSearchFilter,\n limit: WORKFLOW_EXECUTION_PAGE_SIZE,\n offset: (page - 1) * WORKFLOW_EXECUTION_PAGE_SIZE,\n }),\n );\n }, [\n executionPage,\n executionSearchFilter,\n executionStatusFilter,\n numericWorkflowDefinitionId,\n overviewEndDate,\n overviewStartDate,\n triggerGetWorkflowExecutions,\n ]);\n\n const loadWorkflowExecutionPresence = React.useCallback(async () => {\n if (!numericWorkflowDefinitionId || workflowDefinitionId === \"new\") {\n return;\n }\n\n await triggerGetWorkflowExecutionPresence(\n buildWorkflowExecutionQueryString({\n workflowDefinitionId: numericWorkflowDefinitionId,\n limit: 1,\n }),\n );\n }, [\n numericWorkflowDefinitionId,\n triggerGetWorkflowExecutionPresence,\n workflowDefinitionId,\n ]);\n\n React.useEffect(() => {\n void loadWorkflowExecutionPresence();\n }, [loadWorkflowExecutionPresence]);\n\n React.useEffect(() => {\n if (\n detailTab !== \"executions\" ||\n !numericWorkflowDefinitionId ||\n workflowDefinitionId === \"new\"\n ) {\n return;\n }\n\n void loadWorkflowExecutions();\n }, [\n detailTab,\n loadWorkflowExecutions,\n numericWorkflowDefinitionId,\n workflowDefinitionId,\n ]);\n\n const refreshWorkflowExecutionData = React.useCallback(async () => {\n if (!numericWorkflowDefinitionId || workflowDefinitionId === \"new\") {\n return;\n }\n\n setExecutionPage(1);\n await Promise.all([loadWorkflowExecutionPresence(), loadWorkflowExecutions(1)]);\n }, [\n loadWorkflowExecutionPresence,\n loadWorkflowExecutions,\n numericWorkflowDefinitionId,\n workflowDefinitionId,\n ]);\n\n const executionRecords = React.useMemo(\n () => ((workflowExecutionsQuery.data?.records ?? []) as WorkflowExecutionRecord[]),\n [workflowExecutionsQuery.data?.records],\n );\n const executionTotalRecords = workflowExecutionsQuery.data?.meta?.totalRecords ?? 0;\n const executionTotalPages = Math.max(\n 1,\n Math.ceil(executionTotalRecords / WORKFLOW_EXECUTION_PAGE_SIZE),\n );\n const executionPageStart = executionTotalRecords\n ? (executionPage - 1) * WORKFLOW_EXECUTION_PAGE_SIZE + 1\n : 0;\n const executionPageEnd = Math.min(\n executionPage * WORKFLOW_EXECUTION_PAGE_SIZE,\n executionTotalRecords,\n );\n const openExecutionDetails = React.useCallback((execution: WorkflowExecutionRecord) => {\n navigate(`/admin/core/solid-core/workflow-execution/detail/${execution.id}`);\n }, [navigate]);\n\n const loadSelectedExecutionLogs = React.useCallback(async () => {\n if (!selectedExecution?.id) {\n return;\n }\n\n await triggerGetWorkflowExecutionLogs(\n buildWorkflowExecutionLogQueryString({\n workflowExecutionId: selectedExecution.id,\n level: executionLogLevelFilter,\n search: executionLogSearch,\n }),\n );\n }, [\n executionLogLevelFilter,\n executionLogSearch,\n selectedExecution?.id,\n triggerGetWorkflowExecutionLogs,\n ]);\n\n React.useEffect(() => {\n if (!selectedExecution?.id) {\n return;\n }\n\n void loadSelectedExecutionLogs();\n }, [loadSelectedExecutionLogs, selectedExecution?.id]);\n\n const loadSelectedExecutionSteps = React.useCallback(async () => {\n if (!selectedExecution?.id) {\n return;\n }\n\n await triggerGetWorkflowStepExecutions(\n buildWorkflowStepExecutionQueryString({\n workflowExecutionId: selectedExecution.id,\n }),\n );\n }, [selectedExecution?.id, triggerGetWorkflowStepExecutions]);\n\n React.useEffect(() => {\n if (!selectedExecution?.id) {\n return;\n }\n\n void loadSelectedExecutionSteps();\n }, [loadSelectedExecutionSteps, selectedExecution?.id]);\n\n const executionLogRecords = React.useMemo(\n () => ((workflowExecutionLogsQuery.data?.records ?? []) as WorkflowExecutionLogRecord[]),\n [workflowExecutionLogsQuery.data?.records],\n );\n\n const executionStepRecords = React.useMemo(\n () => ((workflowStepExecutionsQuery.data?.records ?? []) as WorkflowStepExecutionRecord[]),\n [workflowStepExecutionsQuery.data?.records],\n );\n\n const executionTimeline = React.useMemo(() => {\n if (!selectedExecution) {\n return {\n rows: [],\n totalDurationMs: 0,\n startLabel: \"-\",\n endLabel: \"-\",\n slowestStep: null as WorkflowStepExecutionRecord | null,\n statusCounts: {} as Record<string, number>,\n };\n }\n\n const executionStart =\n parseExecutionTimestamp(selectedExecution.startedAt) ??\n parseExecutionTimestamp(selectedExecution.createdAt) ??\n Date.now();\n const executionFinish =\n parseExecutionTimestamp(selectedExecution.finishedAt) ??\n (getNumericDurationMs(selectedExecution.durationMs) != null\n ? executionStart + (getNumericDurationMs(selectedExecution.durationMs) ?? 0)\n : executionStart);\n\n const sortedSteps = [...executionStepRecords].sort((first, second) => {\n const firstSequence = first.sequenceNumber ?? first.id;\n const secondSequence = second.sequenceNumber ?? second.id;\n const firstStart = parseExecutionTimestamp(first.startedAt) ?? executionStart;\n const secondStart = parseExecutionTimestamp(second.startedAt) ?? executionStart;\n return firstStart - secondStart || firstSequence - secondSequence;\n });\n\n const normalizedSteps = sortedSteps.map((step) => {\n const durationMs = getNumericDurationMs(step.durationMs) ?? 0;\n const startedAt =\n parseExecutionTimestamp(step.startedAt) ??\n parseExecutionTimestamp(step.createdAt) ??\n executionStart;\n const finishedAt =\n parseExecutionTimestamp(step.finishedAt) ??\n (durationMs > 0 ? startedAt + durationMs : startedAt);\n\n return {\n step,\n startedAt,\n finishedAt: Math.max(finishedAt, startedAt),\n durationMs: Math.max(durationMs, Math.max(finishedAt - startedAt, 0)),\n };\n });\n\n const startMs = Math.min(\n executionStart,\n ...normalizedSteps.map((item) => item.startedAt),\n );\n const endMs = Math.max(\n executionFinish,\n ...normalizedSteps.map((item) => item.finishedAt),\n startMs + 1,\n );\n const spanMs = Math.max(endMs - startMs, 1);\n const statusCounts: Record<string, number> = {};\n let slowestStep: WorkflowStepExecutionRecord | null = null;\n let slowestDuration = -1;\n\n const rows = normalizedSteps.map((item, index) => {\n const status = (item.step.status ?? \"unknown\").toLowerCase();\n statusCounts[status] = (statusCounts[status] ?? 0) + 1;\n if (item.durationMs > slowestDuration) {\n slowestDuration = item.durationMs;\n slowestStep = item.step;\n }\n\n const width = Math.max((item.durationMs / spanMs) * 100, item.durationMs > 0 ? 1.2 : 0.55);\n\n return {\n ...item,\n index,\n label: item.step.nodeName || item.step.nodeId || item.step.stepExecutionKey || `Step ${index + 1}`,\n startOffsetPercent: Math.min(Math.max(((item.startedAt - startMs) / spanMs) * 100, 0), 100),\n widthPercent: Math.min(width, 100),\n depth: item.step.parentStepExecutionKey || item.step.parentNodeId ? 1 : 0,\n status,\n };\n });\n\n return {\n rows,\n totalDurationMs: spanMs,\n startLabel: formatExecutionLogTime(new Date(startMs).toISOString()),\n endLabel: formatExecutionLogTime(new Date(endMs).toISOString()),\n slowestStep,\n statusCounts,\n };\n }, [executionStepRecords, selectedExecution]);\n\n const renderOutputPrimitive = React.useCallback((value: unknown) => {\n if (typeof value === \"string\" && isUrlLike(value)) {\n return (\n <a href={value} target=\"_blank\" rel=\"noreferrer\">\n {value}\n </a>\n );\n }\n\n return formatOutputVisualValue(value);\n }, []);\n\n const renderOutputVisual = React.useCallback(\n (\n value: unknown,\n options: {\n hideSummary?: boolean;\n } = {},\n ): React.ReactNode => {\n const normalizedValue = normalizeJsonDisplayValue(value);\n\n if (normalizedValue === null || normalizedValue === undefined) {\n return (\n <div className=\"workflow-editor-output-empty\">\n <h4>No output produced</h4>\n <p>This execution completed without returning an output payload.</p>\n </div>\n );\n }\n\n if (!isPlainObjectValue(normalizedValue) && !Array.isArray(normalizedValue)) {\n return (\n <div className=\"workflow-editor-output-primitive\">\n <span>Result</span>\n <strong>{renderOutputPrimitive(normalizedValue)}</strong>\n </div>\n );\n }\n\n if (Array.isArray(normalizedValue)) {\n if (!normalizedValue.length) {\n return (\n <div className=\"workflow-editor-output-empty\">\n <h4>Empty array</h4>\n <p>The execution returned an empty collection.</p>\n </div>\n );\n }\n\n const objectRows = normalizedValue.filter(isPlainObjectValue);\n const tableKeys = Array.from(\n new Set(\n objectRows\n .flatMap((item) => Object.keys(item))\n .filter((key) =>\n objectRows.some((item) => {\n const cell = item[key];\n return !isPlainObjectValue(cell) && !Array.isArray(cell);\n }),\n ),\n ),\n ).slice(0, 6);\n\n if (objectRows.length === normalizedValue.length && tableKeys.length) {\n return (\n <div className=\"workflow-editor-output-visual\">\n {options.hideSummary ? null : (\n <div className=\"workflow-editor-output-visual__summary\">\n <strong>{normalizedValue.length}</strong>\n <span>items returned</span>\n </div>\n )}\n <div className=\"workflow-editor-output-table-wrap\">\n <table className=\"workflow-editor-output-table\">\n <thead>\n <tr>\n {tableKeys.map((key) => (\n <th key={key}>{key}</th>\n ))}\n </tr>\n </thead>\n <tbody>\n {objectRows.slice(0, 25).map((item, index) => (\n <tr key={index}>\n {tableKeys.map((key) => (\n <td key={key}>{renderOutputPrimitive(item[key])}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n {normalizedValue.length > 25 ? (\n <p className=\"workflow-editor-output-note\">\n Showing the first 25 rows. Switch to JSON to inspect the full payload.\n </p>\n ) : null}\n </div>\n );\n }\n\n return (\n <div className=\"workflow-editor-output-list\">\n {normalizedValue.slice(0, 25).map((item, index) => (\n <div key={index} className=\"workflow-editor-output-list-item\">\n <span>Item {index + 1}</span>\n <strong>{renderOutputPrimitive(item)}</strong>\n </div>\n ))}\n </div>\n );\n }\n\n const entries = Object.entries(normalizedValue);\n return (\n <div className=\"workflow-editor-output-object\">\n {options.hideSummary ? null : (\n <div className=\"workflow-editor-output-visual__summary\">\n <strong>{entries.length}</strong>\n <span>top-level fields</span>\n </div>\n )}\n <div className=\"workflow-editor-output-object-grid\">\n {entries.map(([key, item]) => {\n const isNested = isPlainObjectValue(item) || Array.isArray(item);\n return (\n <div\n key={key}\n className={`workflow-editor-output-field ${isNested ? \"is-nested\" : \"\"}`}\n >\n <span>{key}</span>\n {isNested ? (\n <pre>{formatReadonlyJson(item)}</pre>\n ) : (\n <strong>{renderOutputPrimitive(item)}</strong>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n [renderOutputPrimitive],\n );\n\n const selectedExecutionModalTabs = React.useMemo(() => {\n if (!selectedExecution) {\n return [];\n }\n\n const summaryContent = (\n <div className=\"workflow-editor-execution-detail-summary\">\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Status</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.status ?? \"Unknown\"}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Execution Identifier</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.executionIdentifier ?? \"-\"}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Workflow</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.workflowDisplayName ??\n workflowDisplayName ??\n record?.displayName ??\n \"-\"}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Workflow Key</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.workflowKey ?? workflowKey ?? \"-\"}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Trigger Type</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.triggerType ?? \"manual\"}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Started</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {formatExecutionDate(selectedExecution.startedAt || selectedExecution.createdAt)}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Finished</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {formatExecutionDate(selectedExecution.finishedAt)}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Duration</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {formatDurationMs(selectedExecution.durationMs)}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Definition Version</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.definitionVersion ?? \"-\"}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Definition Checksum</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.definitionChecksum ?? \"-\"}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Requested By</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.requestedByUserId ?? \"-\"}\n </div>\n </div>\n </div>\n );\n\n const timelineContent = (\n <div className=\"workflow-editor-execution-timeline\">\n <div className=\"workflow-editor-execution-timeline__hero\">\n <div>\n <h4>Execution Timeline</h4>\n <p>\n Step-level timing across this execution. Parallel work appears as\n overlapping bars; sequential work appears left-to-right.\n </p>\n </div>\n <div className=\"workflow-editor-execution-timeline__stats\">\n <div>\n <span>Total span</span>\n <strong>{formatDurationMs(executionTimeline.totalDurationMs)}</strong>\n </div>\n <div>\n <span>Steps</span>\n <strong>{executionTimeline.rows.length}</strong>\n </div>\n <div>\n <span>Slowest</span>\n <strong>\n {executionTimeline.slowestStep?.nodeName ??\n executionTimeline.slowestStep?.nodeId ??\n \"-\"}\n </strong>\n </div>\n </div>\n </div>\n\n {workflowStepExecutionsQuery.isFetching && !executionTimeline.rows.length ? (\n <div className=\"workflow-editor-execution-timeline__loading\">\n <SolidSpinner />\n <span>Loading step timeline...</span>\n </div>\n ) : executionTimeline.rows.length ? (\n <>\n <div className=\"workflow-editor-execution-timeline__legend\">\n {Object.entries(executionTimeline.statusCounts).map(([status, count]) => (\n <SolidTag key={status} tone={workflowLogLevelTone(status) as any}>\n {status}: {count}\n </SolidTag>\n ))}\n </div>\n\n <div className=\"workflow-editor-execution-gantt\">\n <div className=\"workflow-editor-execution-gantt__ruler\">\n <span>{executionTimeline.startLabel}</span>\n <span>{formatDurationMs(executionTimeline.totalDurationMs)}</span>\n <span>{executionTimeline.endLabel}</span>\n </div>\n\n <div className=\"workflow-editor-execution-gantt__rows\">\n {executionTimeline.rows.map((row) => {\n const isExpanded = expandedTimelineStepId === row.step.id;\n\n return (\n <div\n key={row.step.id}\n className={`workflow-editor-execution-gantt-row workflow-editor-execution-gantt-row--${row.status} ${isExpanded ? \"is-expanded\" : \"\"}`}\n >\n <button\n type=\"button\"\n className=\"workflow-editor-execution-gantt-row__main\"\n aria-expanded={isExpanded}\n onClick={() =>\n setExpandedTimelineStepId((current) =>\n current === row.step.id ? null : row.step.id,\n )\n }\n >\n <span className=\"workflow-editor-execution-gantt-row__toggle\">\n <ChevronRight size={14} />\n </span>\n <span\n className=\"workflow-editor-execution-gantt-row__identity\"\n style={{ \"--workflow-step-depth\": row.depth } as React.CSSProperties}\n >\n <strong>{row.label}</strong>\n <span>{row.step.nodeType ?? row.step.nodeKind ?? \"step\"}</span>\n </span>\n <span className=\"workflow-editor-execution-gantt-row__track\">\n <span\n className=\"workflow-editor-execution-gantt-row__bar\"\n style={{\n left: `${row.startOffsetPercent}%`,\n width: `${row.widthPercent}%`,\n }}\n />\n </span>\n <SolidTag tone={workflowLogLevelTone(row.status) as any}>\n {row.step.status ?? \"unknown\"}\n </SolidTag>\n <span className=\"workflow-editor-execution-gantt-row__duration\">\n {formatDurationMs(row.durationMs)}\n </span>\n </button>\n\n {isExpanded ? (\n <div className=\"workflow-editor-execution-gantt-row__details\">\n <div className=\"workflow-editor-execution-step-inspector\">\n <div className=\"workflow-editor-execution-step-inspector__header\">\n <div>\n <span>Step Detail</span>\n <h4>{row.label}</h4>\n </div>\n <button\n type=\"button\"\n aria-label=\"Collapse step detail\"\n onClick={() => setExpandedTimelineStepId(null)}\n >\n <X size={14} />\n </button>\n </div>\n\n <div className=\"workflow-editor-execution-step-inspector__meta\">\n <div>\n <span>Status</span>\n <strong>{row.step.status ?? \"unknown\"}</strong>\n </div>\n <div>\n <span>Node Id</span>\n <strong>{row.step.nodeId ?? \"-\"}</strong>\n </div>\n <div>\n <span>Node Type</span>\n <strong>{row.step.nodeType ?? \"-\"}</strong>\n </div>\n <div>\n <span>Attempt</span>\n <strong>{row.step.attemptNumber ?? 1}</strong>\n </div>\n <div>\n <span>Started</span>\n <strong>{formatExecutionDate(row.step.startedAt)}</strong>\n </div>\n <div>\n <span>Finished</span>\n <strong>{formatExecutionDate(row.step.finishedAt)}</strong>\n </div>\n <div>\n <span>Duration</span>\n <strong>{formatDurationMs(row.durationMs)}</strong>\n </div>\n <div>\n <span>Step Key</span>\n <strong>{row.step.stepExecutionKey ?? \"-\"}</strong>\n </div>\n </div>\n\n {row.step.errorSummary ? (\n <div className=\"workflow-editor-execution-step-inspector__error\">\n {row.step.errorSummary}\n </div>\n ) : null}\n </div>\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n </div>\n </>\n ) : (\n <div className=\"workflow-editor-execution-timeline__empty\">\n <h4>No step timing captured</h4>\n <p>\n This execution does not have persisted step execution records yet. Once\n step lifecycle records are present, this tab renders a proportional\n Gantt-style timeline automatically.\n </p>\n </div>\n )}\n </div>\n );\n\n const logLevelCounts = executionLogRecords.reduce<Record<string, number>>(\n (counts, log) => {\n const key = (log.level ?? \"unknown\").toLowerCase();\n counts[key] = (counts[key] ?? 0) + 1;\n return counts;\n },\n {},\n );\n const logsContent = (\n <div className=\"workflow-editor-execution-logs\">\n <div className=\"workflow-editor-execution-logs__hero\">\n <div>\n <h4>Execution Log Stream</h4>\n <p>\n Runtime messages emitted while this execution was processed, ordered by\n sequence and occurrence time.\n </p>\n </div>\n <div className=\"workflow-editor-execution-logs__stats\">\n <span>{workflowExecutionLogsQuery.isFetching ? \"Loading\" : `${executionLogRecords.length} logs`}</span>\n {Object.entries(logLevelCounts).map(([level, count]) => (\n <SolidTag key={level} tone={workflowLogLevelTone(level) as any}>\n {level}: {count}\n </SolidTag>\n ))}\n </div>\n </div>\n\n <div className=\"workflow-editor-execution-logs__filters\">\n <div className=\"workflow-editor-execution-logs__search\">\n <Search size={14} />\n <SolidInput\n value={executionLogSearch}\n placeholder=\"Search message, node, source\"\n onChange={(event) => {\n setExecutionLogSearch(event.target.value);\n setExpandedExecutionLogId(null);\n }}\n />\n </div>\n <SolidSelect\n value={executionLogLevelFilter}\n options={WORKFLOW_LOG_LEVEL_OPTIONS}\n onChange={(event) => {\n setExecutionLogLevelFilter(event.value ?? \"all\");\n setExpandedExecutionLogId(null);\n }}\n />\n </div>\n\n {workflowExecutionLogsQuery.isFetching && !executionLogRecords.length ? (\n <div className=\"workflow-editor-execution-logs__loading\">\n <SolidSpinner />\n <span>Loading execution logs...</span>\n </div>\n ) : executionLogRecords.length ? (\n <div className=\"workflow-editor-execution-log-list\">\n {executionLogRecords.map((log) => {\n const isSelected = expandedExecutionLogId === log.id;\n return (\n <div\n key={log.id}\n className={`workflow-editor-execution-log-row workflow-editor-execution-log-row--${(log.level ?? \"info\").toLowerCase()} ${isSelected ? \"is-selected\" : \"\"}`}\n >\n <button\n type=\"button\"\n className=\"workflow-editor-execution-log-row__main\"\n aria-expanded={isSelected}\n onClick={() =>\n setExpandedExecutionLogId((current) =>\n current === log.id ? null : log.id,\n )\n }\n >\n <span className=\"workflow-editor-execution-log-row__toggle\">\n <ChevronRight size={14} />\n </span>\n <span className=\"workflow-editor-execution-log-row__sequence\">\n {log.sequenceNumber ?? log.id}\n </span>\n <span className=\"workflow-editor-execution-log-row__time\">\n {formatExecutionLogTime(log.occurredAt || log.createdAt)}\n </span>\n <SolidTag tone={workflowLogLevelTone(log.level) as any}>\n {log.level ?? \"info\"}\n </SolidTag>\n <span className=\"workflow-editor-execution-log-row__node\">\n {log.nodeId ?? log.source ?? \"runtime\"}\n </span>\n <span className=\"workflow-editor-execution-log-row__message\">\n {log.message ?? \"No message\"}\n </span>\n {log.eventType ? (\n <span className=\"workflow-editor-execution-log-row__event\">\n {log.eventType}\n </span>\n ) : null}\n </button>\n {isSelected ? (\n <div className=\"workflow-editor-execution-log-row__details\">\n <div className=\"workflow-editor-execution-log-inspector\">\n <div className=\"workflow-editor-execution-log-inspector__header\">\n <div>\n <span>Log Detail</span>\n <h4>{log.message ?? \"No message\"}</h4>\n </div>\n <button\n type=\"button\"\n aria-label=\"Collapse log detail\"\n onClick={() => setExpandedExecutionLogId(null)}\n >\n <X size={14} />\n </button>\n </div>\n\n <div className=\"workflow-editor-execution-log-inspector__meta\">\n <div>\n <span>Level</span>\n <strong>{log.level ?? \"info\"}</strong>\n </div>\n <div>\n <span>Sequence</span>\n <strong>{log.sequenceNumber ?? log.id}</strong>\n </div>\n <div>\n <span>Occurred</span>\n <strong>\n {formatExecutionDate(log.occurredAt || log.createdAt)}\n </strong>\n </div>\n <div>\n <span>Node</span>\n <strong>{log.nodeId ?? \"-\"}</strong>\n </div>\n <div>\n <span>Node Type</span>\n <strong>{log.nodeType ?? \"-\"}</strong>\n </div>\n <div>\n <span>Source</span>\n <strong>{log.source ?? \"-\"}</strong>\n </div>\n <div>\n <span>Event Type</span>\n <strong>{log.eventType ?? \"-\"}</strong>\n </div>\n <div>\n <span>Log Key</span>\n <strong>{log.logKey ?? \"-\"}</strong>\n </div>\n </div>\n\n {log.context || log.metadata ? (\n <div className=\"workflow-editor-execution-log-inspector__payloads\">\n <div>\n <h5>Context</h5>\n <SolidCodeEditor\n language=\"json\"\n height=\"180px\"\n fontSize={12}\n readOnly\n value={formatReadonlyJson(log.context)}\n />\n </div>\n <div>\n <h5>Metadata</h5>\n <SolidCodeEditor\n language=\"json\"\n height=\"180px\"\n fontSize={12}\n readOnly\n value={formatReadonlyJson(log.metadata)}\n />\n </div>\n </div>\n ) : (\n <div className=\"workflow-editor-execution-log-inspector__empty\">\n No structured context or metadata was captured for this log.\n </div>\n )}\n </div>\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n ) : (\n <div className=\"workflow-editor-execution-logs__empty\">\n <h4>No logs found</h4>\n <p>\n This execution has no log entries matching the current filters. Try another\n level or clear the search text.\n </p>\n </div>\n )}\n </div>\n );\n\n const selectedExecutionOutputEntries = buildExecutionOutputEntries(\n selectedExecution.outputPayload,\n definitionDraft.nodes,\n );\n\n const outputContent = (\n <div className=\"workflow-editor-output-viewer\">\n <div className=\"workflow-editor-output-viewer__toolbar\">\n <div>\n <h4>Execution Output</h4>\n <p>Inspect node outputs visually or switch to the raw JSON payload.</p>\n </div>\n <div className=\"workflow-editor-view-toggle\" aria-label=\"Output view\">\n <button\n type=\"button\"\n className={`workflow-editor-view-toggle__button ${selectedExecutionOutputMode === \"visual\" ? \"is-active\" : \"\"}`}\n aria-label=\"Show visual output\"\n title=\"Visual output\"\n onClick={() => setSelectedExecutionOutputMode(\"visual\")}\n >\n <Layers3 size={14} />\n </button>\n <button\n type=\"button\"\n className={`workflow-editor-view-toggle__button ${selectedExecutionOutputMode === \"json\" ? \"is-active\" : \"\"}`}\n aria-label=\"Show JSON output\"\n title=\"JSON output\"\n onClick={() => setSelectedExecutionOutputMode(\"json\")}\n >\n <Braces size={14} />\n </button>\n </div>\n </div>\n\n {selectedExecutionOutputMode === \"json\" ? (\n <div className=\"workflow-editor-output-json-editor\">\n <SolidJsonEditor\n value={normalizeJsonDisplayValue(selectedExecution.outputPayload)}\n resetToken={`execution-output-${selectedExecution.id}-${selectedExecutionOutputMode}`}\n readOnly\n className=\"sdix-json-editor workflow-editor-output-json-host\"\n />\n </div>\n ) : selectedExecutionOutputEntries.length ? (\n <div className=\"workflow-editor-output-node-list\">\n {selectedExecutionOutputEntries.map((entry, index) => {\n const isExpanded = expandedExecutionOutputKey === entry.key;\n\n return (\n <div\n key={entry.key}\n className={`workflow-editor-output-node-row ${isExpanded ? \"is-expanded\" : \"\"}`}\n >\n <button\n type=\"button\"\n className=\"workflow-editor-output-node-row__header\"\n aria-expanded={isExpanded}\n onClick={() =>\n setExpandedExecutionOutputKey((current) =>\n current === entry.key ? null : entry.key,\n )\n }\n >\n <span className=\"workflow-editor-output-node-row__toggle\">\n <ChevronRight size={15} />\n </span>\n <span className=\"workflow-editor-output-node-row__sequence\">\n {index + 1}\n </span>\n <span className=\"workflow-editor-output-node-row__identity\">\n <strong>{entry.label}</strong>\n </span>\n <span className=\"workflow-editor-output-node-row__node-key\">\n {entry.nodeId ?? entry.key}\n </span>\n {entry.nodeType ? <SolidTag>{entry.nodeType}</SolidTag> : null}\n <span className=\"workflow-editor-output-node-row__summary\">\n {summarizeOutputValue(entry.value)}\n </span>\n </button>\n\n {isExpanded ? (\n <div className=\"workflow-editor-output-node-row__body\">\n <div className=\"workflow-editor-output-node-detail\">\n <div className=\"workflow-editor-output-node-detail__header\">\n <div>\n <span>Output Detail</span>\n <h4>{entry.label}</h4>\n </div>\n <button\n type=\"button\"\n aria-label=\"Collapse output detail\"\n onClick={() => setExpandedExecutionOutputKey(null)}\n >\n <X size={14} />\n </button>\n </div>\n {renderOutputVisual(entry.value, { hideSummary: true })}\n </div>\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n ) : (\n <div className=\"workflow-editor-output-empty\">\n <h4>No output produced</h4>\n <p>This execution completed without returning an output payload.</p>\n </div>\n )}\n </div>\n );\n\n return [\n {\n value: \"summary\",\n label: \"Summary\",\n content: summaryContent,\n },\n {\n value: \"timeline\",\n label: \"Timeline\",\n content: timelineContent,\n },\n {\n value: \"logs\",\n label: \"Logs\",\n content: logsContent,\n },\n {\n value: \"input\",\n label: \"Input\",\n content: (\n <SolidCodeEditor\n language=\"json\"\n height=\"calc(100vh - 260px)\"\n fontSize={12}\n readOnly\n value={formatReadonlyJson(selectedExecution.inputPayload)}\n />\n ),\n },\n {\n value: \"output\",\n label: \"Output\",\n content: outputContent,\n },\n {\n value: \"error\",\n label: \"Error\",\n content: (\n <div className=\"workflow-editor-execution-detail-error\">\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Error Summary</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.errorSummary ?? \"-\"}\n </div>\n </div>\n <SolidCodeEditor\n language=\"json\"\n height=\"calc(100vh - 320px)\"\n fontSize={12}\n readOnly\n value={formatReadonlyJson(selectedExecution.errorDetails)}\n />\n </div>\n ),\n },\n {\n value: \"definition\",\n label: \"Definition\",\n content: (\n <SolidCodeEditor\n language=\"yaml\"\n height=\"calc(100vh - 260px)\"\n fontSize={12}\n readOnly\n value={formatReadonlyYaml(selectedExecution.definitionSnapshot)}\n />\n ),\n },\n ];\n }, [\n executionLogLevelFilter,\n executionLogRecords,\n executionLogSearch,\n executionTimeline,\n expandedExecutionOutputKey,\n expandedExecutionLogId,\n expandedTimelineStepId,\n definitionDraft.nodes,\n record?.displayName,\n renderOutputVisual,\n selectedExecution,\n selectedExecutionOutputMode,\n workflowDisplayName,\n workflowExecutionLogsQuery.isFetching,\n workflowStepExecutionsQuery.isFetching,\n workflowKey,\n ]);\n\n const hasExecutions = React.useMemo(\n () => (workflowExecutionPresenceQuery.data?.meta?.totalRecords ?? 0) > 0,\n [workflowExecutionPresenceQuery.data?.meta?.totalRecords],\n );\n\n const executionOverview = React.useMemo(() => {\n const totals = {\n total: executionRecords.length,\n success: 0,\n failed: 0,\n inProgress: 0,\n pending: 0,\n other: 0,\n totalDurationMs: 0,\n durationCount: 0,\n };\n\n for (const execution of executionRecords) {\n const category = getExecutionStatusCategory(execution.status);\n totals[category] += 1;\n\n const durationValue =\n typeof execution.durationMs === \"string\"\n ? Number(execution.durationMs)\n : execution.durationMs;\n if (\n typeof durationValue === \"number\" &&\n Number.isFinite(durationValue) &&\n durationValue > 0\n ) {\n totals.totalDurationMs += durationValue;\n totals.durationCount += 1;\n }\n }\n\n const terminalCount = totals.success + totals.failed;\n const successRatio = terminalCount ? Math.round((totals.success / terminalCount) * 100) : 0;\n const failedRatio = terminalCount ? Math.round((totals.failed / terminalCount) * 100) : 0;\n\n return {\n ...totals,\n successRatio,\n failedRatio,\n averageDurationMs: totals.durationCount\n ? Math.round(totals.totalDurationMs / totals.durationCount)\n : null,\n latestExecution: executionRecords[0],\n };\n }, [executionRecords]);\n\n const syncDraftToCode = React.useCallback((nextDraft: WorkflowDefinitionDsl) => {\n setDefinitionDraft(nextDraft);\n setCodeValue(serializeWorkflowDefinitionYaml(nextDraft));\n setCodeError(null);\n setValidationState({ status: \"idle\", errors: [] });\n }, []);\n\n const handleCodeChange = (nextValue: string | undefined) => {\n const safeValue = nextValue ?? \"\";\n setCodeValue(safeValue);\n\n const parsed = parseWorkflowDefinitionYaml(safeValue, nodeTypes);\n if (!parsed.ok) {\n const nextError = parsed.errors.join(\"\\n\");\n setCodeError(nextError);\n setValidationState({\n status: \"invalid\",\n source: \"client\",\n message: \"Definition YAML is invalid.\",\n errors: parsed.errors,\n });\n return;\n }\n\n setDefinitionDraft(parsed.definition);\n setCodeError(null);\n setValidationState({ status: \"idle\", errors: [] });\n };\n\n const startTopologySplitResize = React.useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n event.preventDefault();\n const container = topologySplitRef.current;\n if (!container) {\n return;\n }\n\n const handleMouseMove = (moveEvent: MouseEvent) => {\n const rect = container.getBoundingClientRect();\n if (!rect.width) {\n return;\n }\n\n const nextPercent = ((moveEvent.clientX - rect.left) / rect.width) * 100;\n setTopologySplitPercent(Math.min(78, Math.max(22, nextPercent)));\n };\n\n const handleMouseUp = () => {\n document.removeEventListener(\"mousemove\", handleMouseMove);\n document.removeEventListener(\"mouseup\", handleMouseUp);\n };\n\n document.addEventListener(\"mousemove\", handleMouseMove);\n document.addEventListener(\"mouseup\", handleMouseUp);\n },\n [],\n );\n\n const createNodeFromType = (nodeType: WorkflowNodeMetadataResponse): WorkflowNodeRecord => {\n const nextNode: WorkflowNodeRecord = {\n id: buildNodeId(nodeType.type, definitionDraft),\n kind: nodeType.kind,\n type: nodeType.type,\n name: nodeType.label ?? nodeType.type,\n description: nodeType.description ?? \"\",\n configuration: nodeType.authoring?.defaultConfiguration ?? {},\n };\n\n (nodeType.authoring?.childSlots ?? []).forEach((slot) => {\n if (slot.kind === \"case-collection\") {\n nextNode[slot.key] = nextNode[slot.key] ?? {\n true: [],\n false: [],\n };\n return;\n }\n\n nextNode[slot.key] = nextNode[slot.key] ?? [];\n });\n\n return nextNode;\n };\n\n const validateCurrentDefinition = React.useCallback(\n async (options?: { showSuccessToast?: boolean }) => {\n const identityErrors = validateWorkflowIdentity();\n if (hasWorkflowIdentityErrors(identityErrors)) {\n setDetailTab(\"overview\");\n return {\n valid: false,\n errors: Object.values(identityErrors).filter(Boolean) as string[],\n fieldErrors: true,\n };\n }\n\n if (codeError) {\n const nextState: ValidationState = {\n status: \"invalid\",\n source: \"client\",\n message: \"Definition YAML is invalid.\",\n errors: [codeError],\n };\n setValidationState(nextState);\n setDetailTab(\"topology\");\n return { valid: false, errors: nextState.errors };\n }\n\n setValidationState({\n status: \"validating\",\n errors: [],\n message: \"Validating workflow definition...\",\n });\n\n const clientErrors = validateWorkflowDefinitionClient(\n {\n ...definitionDraft,\n description: workflowDescription,\n },\n nodeTypes,\n workflowKey,\n );\n\n if (clientErrors.length) {\n const nextState: ValidationState = {\n status: \"invalid\",\n source: \"client\",\n message: \"Client-side validation failed.\",\n errors: clientErrors,\n };\n setValidationState(nextState);\n setDetailTab(\"topology\");\n return { valid: false, errors: clientErrors };\n }\n\n try {\n const response: any = await validateWorkflowDefinition({\n definitionYaml: serializeWorkflowDefinitionYaml({\n ...definitionDraft,\n description: workflowDescription,\n }),\n }).unwrap();\n\n const nextState: ValidationState = {\n status: \"valid\",\n source: \"server\",\n message: response?.message ?? \"Workflow definition is valid.\",\n errors: [],\n };\n setValidationState(nextState);\n\n if (options?.showSuccessToast) {\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Validation passed\",\n detail: nextState.message,\n }),\n );\n }\n\n return { valid: true, errors: [] };\n } catch (error: any) {\n const detail =\n error?.data?.message ??\n error?.message ??\n \"Workflow validation failed on the server.\";\n const nextState: ValidationState = {\n status: \"invalid\",\n source: \"server\",\n message: detail,\n errors: [detail],\n };\n setValidationState(nextState);\n setDetailTab(\"topology\");\n return { valid: false, errors: [detail] };\n }\n },\n [\n codeError,\n definitionDraft,\n dispatch,\n nodeTypes,\n validateWorkflowDefinition,\n validateWorkflowIdentity,\n workflowDescription,\n workflowKey,\n workflowModule,\n workflowNamespace,\n workflowStatus,\n workflowTagDraft,\n workflowTags,\n ],\n );\n\n const handleInsertNode = (target: WorkflowInsertTarget) => {\n setPendingInsertTarget(target);\n setDetailTab(\"topology\");\n };\n\n const handleAddNodeSubmit = (nextNode: WorkflowNodeRecord) => {\n if (!pendingInsertTarget) {\n return;\n }\n\n const nextDraft = insertNodeIntoDefinition(\n definitionDraft,\n pendingInsertTarget,\n nextNode,\n );\n syncDraftToCode(nextDraft);\n setSelectedNodeId(nextNode.id);\n setSelectedTriggerId(\"\");\n setPendingInsertTarget(null);\n setDetailTab(\"topology\");\n };\n\n const handleUpdateSelectedNode = (nextNode: WorkflowNodeRecord) => {\n if (!selectedNode) {\n return;\n }\n\n const nextDraft = {\n ...definitionDraft,\n nodes: updateNodeById(definitionDraft.nodes, selectedNode.id, () => nextNode),\n errors: definitionDraft.errors\n ? updateNodeById(definitionDraft.errors, selectedNode.id, () => nextNode)\n : definitionDraft.errors,\n finally: definitionDraft.finally\n ? updateNodeById(definitionDraft.finally, selectedNode.id, () => nextNode)\n : definitionDraft.finally,\n };\n\n syncDraftToCode(nextDraft);\n setSelectedNodeId(nextNode.id);\n };\n\n const handleRemoveNode = (nodeId: string) => {\n const nextDraft = {\n ...definitionDraft,\n nodes: removeNodeById(definitionDraft.nodes, nodeId),\n errors: definitionDraft.errors\n ? removeNodeById(definitionDraft.errors, nodeId)\n : definitionDraft.errors,\n finally: definitionDraft.finally\n ? removeNodeById(definitionDraft.finally, nodeId)\n : definitionDraft.finally,\n };\n syncDraftToCode(nextDraft);\n if (selectedNodeId === nodeId) {\n setSelectedNodeId(getFirstNodeId(nextDraft.nodes));\n }\n };\n\n const handleSave = async () => {\n const validation = await validateCurrentDefinition();\n if (!validation.valid) {\n if (!(validation as any).fieldErrors) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Validation failed\",\n detail: validation.errors[0] ?? \"Fix validation errors before saving.\",\n }),\n );\n }\n return;\n }\n\n const payload = {\n key: workflowKey,\n displayName: workflowDisplayName,\n moduleMetadataId: workflowModule?.id,\n moduleMetadataUserKey: workflowModule?.name,\n namespace: workflowNamespace || null,\n description: workflowDescription,\n status: workflowStatus,\n definitionYaml: serializeWorkflowDefinitionYaml({\n ...definitionDraft,\n description: workflowDescription,\n }),\n tags: serializeJsonDtoValue(\n [...workflowTags, ...parseWorkflowTagInput(workflowTagDraft)],\n [],\n ),\n };\n\n try {\n if (record?.id) {\n await updateWorkflowDefinition({\n id: record.id,\n data: payload,\n }).unwrap();\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Saved\",\n detail: \"Workflow definition updated successfully.\",\n }),\n );\n refetch();\n } else {\n const result: any = await createWorkflowDefinition(payload).unwrap();\n const createdId = result?.data?.id ?? result?.id;\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Created\",\n detail: \"Workflow definition created successfully.\",\n }),\n );\n if (createdId) {\n navigate(\n `/admin/core/solid-core/workflow-definition/editor/${createdId}`,\n { replace: true },\n );\n }\n }\n } catch (error: any) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Save failed\",\n detail:\n error?.data?.message ??\n error?.message ??\n \"Failed to save workflow definition.\",\n }),\n );\n }\n };\n\n const workflowInputEntries = React.useMemo(\n () => getWorkflowInputEntries(definitionDraft.inputs),\n [definitionDraft.inputs],\n );\n const workflowVariableEntries = React.useMemo(\n () => getWorkflowVariableEntries(definitionDraft.variables, definitionDraft.metadata),\n [definitionDraft.metadata, definitionDraft.variables],\n );\n const workflowExecutionReference =\n workflowDefinitionId && workflowDefinitionId !== \"new\"\n ? workflowDefinitionId\n : \"{workflowDefinitionId}\";\n const workflowExecutionKeyReference = workflowKey || \"{workflowKey}\";\n const workflowExecutionInputExample = React.useMemo(\n () => buildWorkflowInputExample(definitionDraft.inputs),\n [definitionDraft.inputs],\n );\n const workflowExecutionRequestBody = React.useMemo(\n () => ({\n input: workflowExecutionInputExample,\n triggerType: \"api\",\n }),\n [workflowExecutionInputExample],\n );\n const workflowCurlExample = React.useMemo(\n () =>\n [\n `curl -X POST \"http://localhost:3000/api/workflow-definition/${workflowExecutionReference}/execute\" \\\\`,\n ` -H \"Authorization: Bearer <access-token>\" \\\\`,\n ` -H \"Content-Type: application/json\" \\\\`,\n ` -d '${JSON.stringify(workflowExecutionRequestBody, null, 2)}'`,\n ].join(\"\\n\"),\n [workflowExecutionReference, workflowExecutionRequestBody],\n );\n const workflowApiExample = React.useMemo(\n () =>\n [\n `import { Injectable } from \"@nestjs/common\";`,\n `import { WorkflowInvocationService } from \"@solidxai/core\";`,\n ``,\n `@Injectable()`,\n `export class CustomerWorkflowSubscriber {`,\n ` constructor(private readonly workflows: WorkflowInvocationService) {}`,\n ``,\n ` async handleCustomerEvent() {`,\n ` return this.workflows.executeByKey(`,\n ` \"${workflowExecutionKeyReference}\",`,\n ` ${JSON.stringify(workflowExecutionRequestBody, null, 6).replace(/\\n/g, \"\\n \")},`,\n ` );`,\n ` }`,\n `}`,\n ].join(\"\\n\"),\n [workflowExecutionKeyReference, workflowExecutionRequestBody],\n );\n const defaultValueEditorEntry = React.useMemo(\n () =>\n workflowInputEntries.find((entry) => entry.key === defaultValueEditorInputKey) ??\n null,\n [defaultValueEditorInputKey, workflowInputEntries],\n );\n const variableValueEditorEntry = React.useMemo(\n () =>\n workflowVariableEntries.find((entry) => entry.key === variableValueEditorKey) ??\n null,\n [variableValueEditorKey, workflowVariableEntries],\n );\n\n const copyWorkflowTriggerExample = async (value: string) => {\n try {\n await navigator.clipboard.writeText(value);\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Copied\",\n detail: \"Workflow trigger example copied to clipboard.\",\n }),\n );\n } catch {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Copy failed\",\n detail: \"Unable to copy the workflow trigger example.\",\n }),\n );\n }\n };\n\n const executeWorkflowWithInput = async (input?: Record<string, any>) => {\n if (!record?.id) {\n dispatch(\n showToast({\n severity: \"warn\",\n summary: \"Save first\",\n detail: \"Create the workflow definition before launching execution.\",\n }),\n );\n return;\n }\n\n const validation = await validateCurrentDefinition();\n if (!validation.valid) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Execution blocked\",\n detail: validation.errors[0] ?? \"Workflow validation failed.\",\n }),\n );\n return;\n }\n\n try {\n const response: any = await executeWorkflowDefinition({\n id: record.id,\n ...(input ? { input } : {}),\n }).unwrap();\n dispatch(\n showToast({\n severity: response?.status === \"failed\" ? \"error\" : \"success\",\n summary:\n response?.status === \"failed\"\n ? \"Execution failed\"\n : \"Execution started\",\n detail:\n response?.executionIdentifier ??\n response?.errorSummary ??\n \"Workflow execution request completed.\",\n }),\n );\n void refreshWorkflowExecutionData();\n } catch (error: any) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Execution failed\",\n detail:\n error?.data?.message ??\n error?.message ??\n \"Failed to execute workflow definition.\",\n }),\n );\n }\n };\n\n const handleExecute = async () => {\n if (!record?.id) {\n dispatch(\n showToast({\n severity: \"warn\",\n summary: \"Save first\",\n detail: \"Create the workflow definition before launching execution.\",\n }),\n );\n return;\n }\n\n const validation = await validateCurrentDefinition();\n if (!validation.valid) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Execution blocked\",\n detail: validation.errors[0] ?? \"Workflow validation failed.\",\n }),\n );\n return;\n }\n\n if (workflowInputEntries.length) {\n setRunInputValues(buildWorkflowRunInputDefaults(workflowInputEntries));\n setRunInputErrors({});\n setRunInputsOpen(true);\n return;\n }\n\n await executeWorkflowWithInput();\n };\n\n const handleRunInputsSubmit = async () => {\n const errors: Record<string, string> = {};\n const input: Record<string, any> = {};\n\n for (const entry of workflowInputEntries) {\n const rawValue = runInputValues[entry.key];\n const isEmpty =\n entry.definition.type === \"boolean\"\n ? false\n : rawValue === undefined || rawValue === null || String(rawValue).trim() === \"\";\n\n if (entry.definition.required && isEmpty) {\n errors[entry.key] = \"This input is required.\";\n continue;\n }\n\n if (!entry.definition.required && isEmpty) {\n continue;\n }\n\n try {\n input[entry.key] = parseWorkflowRunInputValue(\n rawValue,\n entry.definition.type,\n );\n } catch (error: any) {\n errors[entry.key] = error?.message ?? \"Enter a valid value.\";\n }\n }\n\n setRunInputErrors(errors);\n if (Object.keys(errors).length) {\n return;\n }\n\n setRunInputsOpen(false);\n await executeWorkflowWithInput(input);\n };\n\n const identityFieldClass = (field: keyof WorkflowIdentityErrors) =>\n `workflow-editor-field ${workflowIdentityErrors[field] ? \"is-invalid\" : \"\"}`;\n\n const renderWorkflowTagsInput = () => (\n <div\n className={`workflow-editor-tag-input ${workflowIdentityErrors.tags ? \"is-invalid\" : \"\"}`}\n >\n {workflowTags.map((tag) => (\n <span key={tag} className=\"workflow-editor-tag-pill\">\n <span>{tag}</span>\n <button\n type=\"button\"\n aria-label={`Remove ${tag}`}\n onClick={() => removeWorkflowTag(tag)}\n >\n <X size={12} />\n </button>\n </span>\n ))}\n <SolidInput\n value={workflowTagDraft}\n placeholder={workflowTags.length ? \"Add tag\" : \"Type tag and press Enter\"}\n onChange={(event) => {\n setWorkflowTagDraft(event.target.value);\n setWorkflowIdentityErrors((current) => ({ ...current, tags: undefined }));\n }}\n onKeyDown={handleWorkflowTagKeyDown}\n onBlur={() => commitWorkflowTags()}\n />\n </div>\n );\n\n const renderWorkflowIdentityForm = () => (\n <SolidPanel header=\"Workflow Identity\">\n <div className=\"workflow-editor-create-form\">\n <div className={identityFieldClass(\"moduleMetadata\")}>\n <label>Module</label>\n <SolidAutocomplete\n value={workflowModule}\n suggestions={workflowModuleSuggestions}\n completeMethod={searchWorkflowModules}\n onChange={handleWorkflowModuleChange}\n dropdown\n forceSelection\n field=\"displayName\"\n placeholder=\"Select module\"\n className=\"workflow-editor-autocomplete\"\n inputClassName={workflowIdentityErrors.moduleMetadata ? \"is-invalid\" : undefined}\n />\n {workflowIdentityErrors.moduleMetadata ? (\n <div className=\"workflow-editor-field-error\">\n {workflowIdentityErrors.moduleMetadata}\n </div>\n ) : null}\n </div>\n\n <div className={identityFieldClass(\"displayName\")}>\n <label>Workflow Name</label>\n <SolidInput\n value={workflowDisplayName}\n placeholder=\"Send Welcome Email\"\n className={workflowIdentityErrors.displayName ? \"is-invalid\" : undefined}\n onChange={(event) => handleWorkflowDisplayNameChange(event.target.value)}\n />\n {workflowIdentityErrors.displayName ? (\n <div className=\"workflow-editor-field-error\">\n {workflowIdentityErrors.displayName}\n </div>\n ) : null}\n </div>\n\n <div className={identityFieldClass(\"key\")}>\n <label>Key</label>\n <SolidInput\n value={workflowKey}\n readOnly\n placeholder=\"generated-from-workflow-name\"\n className={workflowIdentityErrors.key ? \"is-invalid\" : undefined}\n />\n {workflowIdentityErrors.key ? (\n <div className=\"workflow-editor-field-error\">{workflowIdentityErrors.key}</div>\n ) : null}\n </div>\n\n <div className={identityFieldClass(\"namespace\")}>\n <label>Namespace</label>\n <SolidInput\n value={workflowNamespace}\n placeholder=\"customer.onboarding\"\n className={workflowIdentityErrors.namespace ? \"is-invalid\" : undefined}\n onChange={(event) => handleWorkflowNamespaceChange(event.target.value)}\n />\n {workflowIdentityErrors.namespace ? (\n <div className=\"workflow-editor-field-error\">\n {workflowIdentityErrors.namespace}\n </div>\n ) : null}\n </div>\n\n <div className=\"workflow-editor-field\">\n <label>Status</label>\n <SolidSelect\n value={workflowStatus}\n options={WORKFLOW_STATUS_OPTIONS}\n onChange={(event) => setWorkflowStatus(event.value ?? \"draft\")}\n />\n </div>\n\n <div className={identityFieldClass(\"tags\")}>\n <label>Tags</label>\n {renderWorkflowTagsInput()}\n {workflowIdentityErrors.tags ? (\n <div className=\"workflow-editor-field-error\">{workflowIdentityErrors.tags}</div>\n ) : null}\n </div>\n\n <div className=\"workflow-editor-field workflow-editor-field--wide\">\n <label>Description</label>\n <SolidTextarea\n value={workflowDescription}\n placeholder=\"Describe what this workflow does and when it should run.\"\n onChange={(event) => setWorkflowDescription(event.target.value)}\n />\n </div>\n </div>\n </SolidPanel>\n );\n\n const overviewContent = (\n <div className=\"workflow-editor-overview workflow-editor-overview--create\">\n {renderWorkflowIdentityForm()}\n </div>\n );\n\n const renderOptionalAuthoringEmptyState = ({\n icon,\n title,\n body,\n examples,\n primaryLabel,\n onPrimaryClick,\n }: {\n icon: React.ReactNode;\n title: string;\n body: string;\n examples: string[];\n primaryLabel: string;\n onPrimaryClick: () => void;\n }) => (\n <div className=\"workflow-editor-optional-state\">\n <div className=\"workflow-editor-placeholder__icon\">{icon}</div>\n <div className=\"workflow-editor-optional-state__copy\">\n <h3>{title}</h3>\n <p>{body}</p>\n </div>\n <div className=\"workflow-editor-optional-state__examples\">\n {examples.map((example) => (\n <SolidTag key={example}>{example}</SolidTag>\n ))}\n </div>\n <div className=\"workflow-editor-optional-state__actions\">\n <SolidButton onClick={onPrimaryClick}>{primaryLabel}</SolidButton>\n <SolidButton variant=\"outline\" onClick={() => setDetailTab(\"topology\")}>\n Configure Flow\n </SolidButton>\n </div>\n </div>\n );\n\n const triggerEntries = (definitionDraft.triggers ?? []).map((trigger, index) => ({\n index,\n trigger: normalizeWorkflowTriggerDefinition(trigger),\n }));\n const scheduledTriggerEntries = triggerEntries.filter(\n ({ trigger }) => trigger.type === \"schedule\",\n );\n\n const updateWorkflowInputs = (nextInputs: Record<string, any>) => {\n syncDraftToCode({\n ...definitionDraft,\n inputs: nextInputs,\n });\n };\n\n const addWorkflowInput = () => {\n const nextKey = buildUniqueWorkflowInputKey(\"Input\", Object.keys(definitionDraft.inputs ?? {}));\n updateWorkflowInputs({\n ...(definitionDraft.inputs ?? {}),\n [nextKey]: {\n type: \"string\",\n label: \"Input\",\n required: false,\n default: \"\",\n description: \"\",\n },\n });\n };\n\n const updateWorkflowInputLabel = (currentKey: string, nextLabel: string) => {\n const currentInputs = definitionDraft.inputs ?? {};\n const nextKey = buildUniqueWorkflowInputKey(\n nextLabel || currentKey,\n Object.keys(currentInputs).filter((key) => key !== currentKey),\n );\n\n if (!nextKey) {\n return;\n }\n\n const nextInputs: Record<string, any> = {};\n Object.entries(currentInputs).forEach(([key, value]) => {\n nextInputs[key === currentKey\n ? nextKey\n : key] = key === currentKey\n ? {\n ...normalizeWorkflowInputDefinition(value),\n label: nextLabel,\n }\n : value;\n });\n updateWorkflowInputs(nextInputs);\n };\n\n const updateWorkflowInput = (key: string, patch: Record<string, any>) => {\n const currentInputs = definitionDraft.inputs ?? {};\n updateWorkflowInputs({\n ...currentInputs,\n [key]: {\n ...normalizeWorkflowInputDefinition(currentInputs[key]),\n ...patch,\n },\n });\n };\n\n const closeDefaultValueEditor = () => {\n setDefaultValueEditorInputKey(null);\n setDefaultValueEditorDraft(\"\");\n setDefaultValueEditorJsonText(\"\");\n setDefaultValueEditorError(\"\");\n };\n\n const openDefaultValueEditor = (key: string) => {\n const definition = normalizeWorkflowInputDefinition((definitionDraft.inputs ?? {})[key]);\n const editorValue = getWorkflowInputDefaultEditorValue(\n definition.default,\n definition.type,\n );\n\n setDefaultValueEditorInputKey(key);\n setDefaultValueEditorDraft(editorValue);\n setDefaultValueEditorJsonText(\n definition.type === \"object\" || definition.type === \"array\"\n ? JSON.stringify(editorValue, null, 2)\n : \"\",\n );\n setDefaultValueEditorError(\"\");\n setDefaultValueEditorResetToken(`default-value-editor-${key}-${Date.now()}`);\n };\n\n const saveDefaultValueEditor = () => {\n if (!defaultValueEditorEntry) {\n return;\n }\n\n const type = defaultValueEditorEntry.definition.type;\n let nextDefaultValue: any = defaultValueEditorDraft;\n\n try {\n if (type === \"object\" || type === \"array\") {\n const trimmedText = defaultValueEditorJsonText.trim();\n nextDefaultValue = trimmedText\n ? JSON.parse(trimmedText)\n : type === \"array\"\n ? []\n : {};\n\n if (type === \"array\" && !Array.isArray(nextDefaultValue)) {\n throw new Error(\"Default value must be a JSON array.\");\n }\n\n if (type === \"object\" && !isPlainObjectValue(nextDefaultValue)) {\n throw new Error(\"Default value must be a JSON object.\");\n }\n } else if (isWorkflowExpressionString(nextDefaultValue)) {\n nextDefaultValue = String(nextDefaultValue).trim();\n } else if (type === \"number\") {\n if (nextDefaultValue === \"\" || nextDefaultValue === null || nextDefaultValue === undefined) {\n nextDefaultValue = \"\";\n } else {\n const numericValue = Number(nextDefaultValue);\n if (!Number.isFinite(numericValue)) {\n throw new Error(\"Default value must be a valid number.\");\n }\n nextDefaultValue = numericValue;\n }\n } else if (type === \"boolean\") {\n nextDefaultValue = Boolean(nextDefaultValue);\n } else {\n nextDefaultValue = nextDefaultValue ?? \"\";\n }\n } catch (error: any) {\n setDefaultValueEditorError(\n error?.message ? String(error.message) : \"Default value is invalid.\",\n );\n return;\n }\n\n updateWorkflowInput(defaultValueEditorEntry.key, { default: nextDefaultValue });\n closeDefaultValueEditor();\n };\n\n const clearDefaultValueEditor = () => {\n if (!defaultValueEditorEntry) {\n return;\n }\n\n updateWorkflowInput(defaultValueEditorEntry.key, { default: \"\" });\n closeDefaultValueEditor();\n };\n\n const removeWorkflowInput = (keyToRemove: string) => {\n const nextInputs = { ...(definitionDraft.inputs ?? {}) };\n delete nextInputs[keyToRemove];\n updateWorkflowInputs(nextInputs);\n };\n\n const updateWorkflowVariables = (\n nextVariables: Record<string, any>,\n nextVariableMetadata?: Record<string, any>,\n ) => {\n const currentMetadata = definitionDraft.metadata ?? {};\n const variableDefinitions =\n nextVariableMetadata ?? getWorkflowVariableMetadata(currentMetadata);\n syncDraftToCode({\n ...definitionDraft,\n variables: nextVariables,\n metadata: {\n ...currentMetadata,\n variableDefinitions,\n },\n });\n };\n\n const addWorkflowVariable = () => {\n const nextKey = buildUniqueWorkflowVariableKey(\n \"Variable\",\n Object.keys(definitionDraft.variables ?? {}),\n );\n updateWorkflowVariables(\n {\n ...(definitionDraft.variables ?? {}),\n [nextKey]: \"\",\n },\n {\n ...getWorkflowVariableMetadata(definitionDraft.metadata),\n [nextKey]: {\n label: \"Variable\",\n type: \"string\",\n description: \"\",\n },\n },\n );\n };\n\n const updateWorkflowVariableLabel = (currentKey: string, nextLabel: string) => {\n const currentVariables = definitionDraft.variables ?? {};\n const currentVariableMetadata = getWorkflowVariableMetadata(definitionDraft.metadata);\n const existingKeys = Object.keys(currentVariables).filter((key) => key !== currentKey);\n const nextKey = camelizeWorkflowInputKey(nextLabel)\n ? buildUniqueWorkflowVariableKey(nextLabel, existingKeys)\n : currentKey;\n\n if (!nextKey) {\n return;\n }\n\n const nextVariables: Record<string, any> = {};\n const nextVariableMetadata: Record<string, any> = {};\n\n Object.entries(currentVariables).forEach(([key, value]) => {\n const outputKey = key === currentKey ? nextKey : key;\n nextVariables[outputKey] = value;\n nextVariableMetadata[outputKey] = {\n ...(currentVariableMetadata[key] ?? {}),\n label: key === currentKey ? nextLabel : currentVariableMetadata[key]?.label,\n };\n });\n\n updateWorkflowVariables(nextVariables, nextVariableMetadata);\n };\n\n const updateWorkflowVariable = (key: string, patch: Record<string, any>) => {\n const currentVariables = definitionDraft.variables ?? {};\n const currentVariableMetadata = getWorkflowVariableMetadata(definitionDraft.metadata);\n const currentEntry =\n workflowVariableEntries.find((entry) => entry.key === key)?.definition ?? {\n type: inferWorkflowVariableType(currentVariables[key], currentVariableMetadata[key]?.type),\n label: key,\n description: \"\",\n };\n const nextType = patch.type ?? currentEntry.type;\n const nextValue = patch.value !== undefined\n ? patch.value\n : patch.type && patch.type !== currentEntry.type\n ? getWorkflowVariableInitialValue(nextType)\n : currentVariables[key];\n\n updateWorkflowVariables(\n {\n ...currentVariables,\n [key]: nextValue,\n },\n {\n ...currentVariableMetadata,\n [key]: {\n ...(currentVariableMetadata[key] ?? {}),\n label: patch.label ?? currentEntry.label,\n type: nextType,\n description: patch.description ?? currentEntry.description,\n },\n },\n );\n };\n\n const removeWorkflowVariable = (keyToRemove: string) => {\n const nextVariables = { ...(definitionDraft.variables ?? {}) };\n const nextVariableMetadata = {\n ...getWorkflowVariableMetadata(definitionDraft.metadata),\n };\n delete nextVariables[keyToRemove];\n delete nextVariableMetadata[keyToRemove];\n updateWorkflowVariables(nextVariables, nextVariableMetadata);\n };\n\n const closeVariableValueEditor = () => {\n setVariableValueEditorKey(null);\n setVariableValueEditorDraft(\"\");\n setVariableValueEditorJsonText(\"\");\n setVariableValueEditorError(\"\");\n };\n\n const openVariableValueEditor = (key: string) => {\n const entry = workflowVariableEntries.find((variableEntry) => variableEntry.key === key);\n if (!entry) {\n return;\n }\n\n const editorValue = getWorkflowVariableEditorValue(\n entry.definition.value,\n entry.definition.type,\n );\n\n setVariableValueEditorKey(key);\n setVariableValueEditorDraft(editorValue);\n setVariableValueEditorJsonText(\n entry.definition.type === \"object\" || entry.definition.type === \"array\"\n ? JSON.stringify(editorValue, null, 2)\n : \"\",\n );\n setVariableValueEditorError(\"\");\n setVariableValueEditorResetToken(`variable-value-editor-${key}-${Date.now()}`);\n };\n\n const saveVariableValueEditor = () => {\n if (!variableValueEditorEntry) {\n return;\n }\n\n const type = variableValueEditorEntry.definition.type;\n let nextValue: any = variableValueEditorDraft;\n\n try {\n if (type === \"object\" || type === \"array\") {\n const trimmedText = variableValueEditorJsonText.trim();\n nextValue = trimmedText\n ? JSON.parse(trimmedText)\n : getWorkflowVariableInitialValue(type);\n\n if (type === \"array\" && !Array.isArray(nextValue)) {\n throw new Error(\"Variable value must be a JSON array.\");\n }\n\n if (type === \"object\" && !isPlainObjectValue(nextValue)) {\n throw new Error(\"Variable value must be a JSON object.\");\n }\n } else if (isWorkflowExpressionString(nextValue)) {\n nextValue = String(nextValue).trim();\n } else if (type === \"number\") {\n const numericValue = Number(nextValue);\n if (!Number.isFinite(numericValue)) {\n throw new Error(\"Variable value must be a valid number.\");\n }\n nextValue = numericValue;\n } else if (type === \"boolean\") {\n nextValue = Boolean(nextValue);\n } else {\n nextValue = nextValue ?? \"\";\n }\n } catch (error: any) {\n setVariableValueEditorError(\n error?.message ? String(error.message) : \"Variable value is invalid.\",\n );\n return;\n }\n\n updateWorkflowVariable(variableValueEditorEntry.key, { value: nextValue });\n closeVariableValueEditor();\n };\n\n const renderDefaultValueEditorField = () => {\n if (!defaultValueEditorEntry) {\n return null;\n }\n\n const type = defaultValueEditorEntry.definition.type;\n\n if (type === \"object\" || type === \"array\") {\n return (\n <SolidJsonEditor\n value={defaultValueEditorDraft}\n resetToken={defaultValueEditorResetToken}\n className=\"workflow-editor-default-dialog__json-editor\"\n onValueChange={(value) => {\n setDefaultValueEditorDraft(value);\n setDefaultValueEditorError(\"\");\n }}\n onTextChange={(text) => setDefaultValueEditorJsonText(text)}\n onErrorChange={(message) => setDefaultValueEditorError(message ?? \"\")}\n />\n );\n }\n\n if (type === \"boolean\") {\n return (\n <SolidCheckbox\n checked={Boolean(defaultValueEditorDraft)}\n label=\"Use true as the default value\"\n onChange={(event) => {\n setDefaultValueEditorDraft(event.currentTarget.checked);\n setDefaultValueEditorError(\"\");\n }}\n />\n );\n }\n\n return (\n <WorkflowExpressionAutocompleteField\n value={String(defaultValueEditorDraft ?? \"\")}\n placeholder={type === \"date\" ? \"Select date\" : \"Enter default value\"}\n suggestions={selectedNodeExpressionSuggestions}\n onChange={(value) => {\n setDefaultValueEditorDraft(value);\n setDefaultValueEditorError(\"\");\n }}\n />\n );\n };\n\n const renderVariableValueEditorField = () => {\n if (!variableValueEditorEntry) {\n return null;\n }\n\n const type = variableValueEditorEntry.definition.type;\n\n if (type === \"object\" || type === \"array\") {\n return (\n <SolidJsonEditor\n value={variableValueEditorDraft}\n resetToken={variableValueEditorResetToken}\n className=\"workflow-editor-default-dialog__json-editor\"\n onValueChange={(value) => {\n setVariableValueEditorDraft(value);\n setVariableValueEditorError(\"\");\n }}\n onTextChange={(text) => setVariableValueEditorJsonText(text)}\n onErrorChange={(message) => setVariableValueEditorError(message ?? \"\")}\n />\n );\n }\n\n if (type === \"boolean\") {\n return (\n <SolidCheckbox\n checked={Boolean(variableValueEditorDraft)}\n label=\"Use true as the variable value\"\n onChange={(event) => {\n setVariableValueEditorDraft(event.currentTarget.checked);\n setVariableValueEditorError(\"\");\n }}\n />\n );\n }\n\n return (\n <WorkflowExpressionAutocompleteField\n value={String(variableValueEditorDraft ?? \"\")}\n placeholder={type === \"date\" ? \"Select date\" : \"Enter variable value\"}\n suggestions={selectedNodeExpressionSuggestions}\n onChange={(value) => {\n setVariableValueEditorDraft(value);\n setVariableValueEditorError(\"\");\n }}\n />\n );\n };\n\n const updateWorkflowTriggers = (nextTriggers: Array<Record<string, any>>) => {\n syncDraftToCode({\n ...definitionDraft,\n triggers: nextTriggers,\n });\n };\n\n const addWorkflowTrigger = () => {\n const nextId = buildUniqueWorkflowKey(\n \"trigger\",\n (definitionDraft.triggers ?? []).map((trigger) => String(trigger.id ?? \"\")),\n );\n updateWorkflowTriggers([\n ...(definitionDraft.triggers ?? []),\n {\n id: nextId,\n name: \"Trigger\",\n type: \"schedule\",\n disabled: false,\n configuration: {\n cronExpression: \"0 9 * * *\",\n timezone: \"UTC\",\n },\n },\n ]);\n };\n\n const updateWorkflowTrigger = (index: number, patch: Record<string, any>) => {\n const nextTriggers = (definitionDraft.triggers ?? []).map((trigger, triggerIndex) => {\n if (triggerIndex !== index) {\n return trigger;\n }\n\n const currentTrigger = normalizeWorkflowTriggerDefinition(trigger);\n const nextTrigger = {\n ...currentTrigger,\n ...patch,\n };\n\n if (patch.type && patch.type !== currentTrigger.type) {\n nextTrigger.configuration =\n patch.type === \"schedule\"\n ? { cronExpression: \"0 9 * * *\", timezone: \"UTC\" }\n : { method: \"POST\", path: `/${currentTrigger.id || \"trigger\"}` };\n }\n\n return nextTrigger;\n });\n updateWorkflowTriggers(nextTriggers);\n };\n\n const updateWorkflowTriggerConfiguration = (\n index: number,\n patch: Record<string, any>,\n ) => {\n const currentTrigger = normalizeWorkflowTriggerDefinition(\n (definitionDraft.triggers ?? [])[index],\n );\n const nextConfiguration = {\n ...currentTrigger.configuration,\n ...patch,\n };\n\n if (patch.cronExpression !== undefined) {\n delete nextConfiguration.cron;\n }\n\n updateWorkflowTrigger(index, {\n configuration: nextConfiguration,\n });\n };\n\n const removeWorkflowTrigger = (indexToRemove: number) => {\n updateWorkflowTriggers(\n (definitionDraft.triggers ?? []).filter((_, index) => index !== indexToRemove),\n );\n };\n\n const renderTriggerConfigurationFields = (\n trigger: ReturnType<typeof normalizeWorkflowTriggerDefinition>,\n index: number,\n ) => {\n const cronExpression = getWorkflowTriggerCronExpression(trigger);\n const cronParts = splitCronExpression(cronExpression);\n const timezone = String(trigger.configuration.timezone ?? \"UTC\");\n const setCronPart = (key: keyof typeof cronParts, value: string) => {\n updateWorkflowTriggerConfiguration(index, {\n timezone: \"UTC\",\n cronExpression: joinCronExpression({\n ...cronParts,\n [key]: value.trim() || \"*\",\n }),\n });\n };\n const inputsMissingDefaults = Object.entries(definitionDraft.inputs ?? {})\n .filter(([, inputDefinition]) => !workflowInputHasDefault(inputDefinition))\n .map(([inputKey]) => inputKey);\n\n return (\n <div className=\"workflow-editor-cron-builder workflow-editor-field--wide\">\n <div className=\"workflow-editor-cron-builder__header\">\n <div>\n <label>Schedule</label>\n <p>Define when this workflow should run. Times are evaluated in UTC.</p>\n </div>\n <div className=\"workflow-editor-cron-builder__header-meta\">\n <span>Generated expression</span>\n <code>{cronExpression}</code>\n <span>Timezone</span>\n <code>{timezone}</code>\n </div>\n </div>\n <div className=\"workflow-editor-cron-builder__grid\">\n {WORKFLOW_CRON_FIELD_HELP.map((field) => (\n <div className=\"workflow-editor-cron-builder__part\" key={field.key}>\n <label>{field.label}</label>\n <SolidInput\n value={cronParts[field.key]}\n placeholder={field.placeholder}\n onChange={(event) => setCronPart(field.key, event.target.value)}\n />\n <span>{field.help}</span>\n </div>\n ))}\n </div>\n <div className=\"workflow-editor-cron-builder__examples\">\n {WORKFLOW_CRON_EXAMPLES.map((example) => (\n <SolidButton\n key={example.value}\n variant=\"outline\"\n size=\"small\"\n onClick={() =>\n updateWorkflowTriggerConfiguration(index, {\n cronExpression: example.value,\n timezone: \"UTC\",\n })\n }\n >\n {example.label}\n </SolidButton>\n ))}\n </div>\n <div\n className={`workflow-editor-cron-builder__explanation${\n isValidSimpleCronExpression(cronExpression) ? \"\" : \" is-invalid\"\n }`}\n >\n {describeWorkflowCronExpression(cronExpression, timezone)}\n </div>\n {inputsMissingDefaults.length ? (\n <div className=\"workflow-editor-cron-builder__warning\">\n Scheduled workflows run without a user present. Add default values for:\n {\" \"}\n {inputsMissingDefaults.join(\", \")}.\n </div>\n ) : null}\n </div>\n );\n };\n\n const inputsContent = workflowInputEntries.length ? (\n <div className=\"workflow-editor-authoring-tab\">\n <div className=\"workflow-editor-authoring-header\">\n <div>\n <h3>Inputs</h3>\n <p>Define values that callers can provide when this workflow runs.</p>\n </div>\n <SolidButton onClick={addWorkflowInput}>Add Input</SolidButton>\n </div>\n\n <div className=\"workflow-editor-input-table\">\n <div className=\"workflow-editor-input-table__header\" role=\"row\">\n <span>Label</span>\n <span>Type</span>\n <span>Required</span>\n <span>Description</span>\n <span className=\"workflow-editor-input-table__actions-header\">Actions</span>\n </div>\n {workflowInputEntries.map(({ key, definition }, index) => (\n <div className=\"workflow-editor-input-table__row\" key={`input-row-${index}`} role=\"row\">\n <div className=\"workflow-editor-input-table__label-cell\">\n <SolidInput\n value={definition.label}\n placeholder=\"Customer ID\"\n onChange={(event) => updateWorkflowInputLabel(key, event.target.value)}\n />\n <span>\n We will use input field with name <strong>{key}</strong>.\n </span>\n </div>\n <div className=\"workflow-editor-input-table__type-cell\">\n <div className=\"workflow-editor-input-table__type-row\">\n <SolidSelect\n value={definition.type}\n options={WORKFLOW_INPUT_TYPE_OPTIONS}\n onChange={(event) =>\n updateWorkflowInput(key, { type: event.value ?? \"string\" })\n }\n />\n <button\n type=\"button\"\n className=\"workflow-editor-input-table__default-button\"\n aria-label={`Configure default value for ${key}`}\n title=\"Configure default value\"\n onClick={() => openDefaultValueEditor(key)}\n >\n <Braces size={14} />\n </button>\n </div>\n <span\n className={`workflow-editor-input-table__default-summary${\n hasWorkflowInputDefaultValue(definition.default) ? \"\" : \" is-empty\"\n }`}\n >\n {formatWorkflowInputDefaultSummary(definition.default)}\n </span>\n </div>\n <div className=\"workflow-editor-input-table__required\">\n <SolidCheckbox\n checked={definition.required}\n label=\"\"\n onChange={(event) =>\n updateWorkflowInput(key, { required: event.currentTarget.checked })\n }\n />\n </div>\n <SolidInput\n value={definition.description}\n placeholder=\"Describe this input\"\n onChange={(event) =>\n updateWorkflowInput(key, { description: event.target.value })\n }\n />\n <button\n type=\"button\"\n className=\"workflow-editor-input-table__delete\"\n aria-label={`Remove ${key}`}\n title=\"Remove input\"\n onClick={() => removeWorkflowInput(key)}\n >\n <Trash2 size={14} />\n </button>\n </div>\n ))}\n </div>\n </div>\n ) : (\n renderOptionalAuthoringEmptyState({\n icon: <Braces size={20} />,\n title: \"No inputs defined\",\n body:\n \"Inputs are optional. Add them when this workflow needs values at run time, such as a customer id, email, date range, or amount. If this workflow can run with fixed configuration or values produced inside the flow, you can skip inputs and configure the flow directly.\",\n examples: [\"customerId\", \"email\", \"startDate\", \"approvalAmount\"],\n primaryLabel: \"Add Input\",\n onPrimaryClick: addWorkflowInput,\n })\n );\n\n const variablesContent = workflowVariableEntries.length ? (\n <div className=\"workflow-editor-authoring-tab\">\n <div className=\"workflow-editor-authoring-header\">\n <div>\n <h3>Variables</h3>\n <p>Define reusable values owned by this workflow.</p>\n </div>\n <SolidButton onClick={addWorkflowVariable}>Add Variable</SolidButton>\n </div>\n\n <div className=\"workflow-editor-input-table workflow-editor-variable-table\">\n <div className=\"workflow-editor-input-table__header\" role=\"row\">\n <span>Name</span>\n <span>Type & value</span>\n <span>Description</span>\n <span className=\"workflow-editor-input-table__actions-header\">Actions</span>\n </div>\n {workflowVariableEntries.map(({ key, definition }, index) => (\n <div className=\"workflow-editor-input-table__row\" key={`variable-row-${index}`} role=\"row\">\n <div className=\"workflow-editor-input-table__label-cell\">\n <SolidInput\n value={definition.label}\n placeholder=\"API Base URL\"\n onChange={(event) => updateWorkflowVariableLabel(key, event.target.value)}\n />\n <span>\n We will use variable <strong>{key}</strong>.\n </span>\n </div>\n <div className=\"workflow-editor-input-table__type-cell\">\n <div className=\"workflow-editor-input-table__type-row\">\n <SolidSelect\n value={definition.type}\n options={WORKFLOW_INPUT_TYPE_OPTIONS}\n onChange={(event) =>\n updateWorkflowVariable(key, { type: event.value ?? \"string\" })\n }\n />\n <button\n type=\"button\"\n className=\"workflow-editor-input-table__default-button\"\n aria-label={`Configure value for ${key}`}\n title=\"Configure value\"\n onClick={() => openVariableValueEditor(key)}\n >\n <Braces size={14} />\n </button>\n </div>\n <span className=\"workflow-editor-input-table__default-summary\">\n {formatWorkflowVariableValueSummary(definition.value)}\n </span>\n </div>\n <SolidInput\n value={definition.description}\n placeholder=\"Describe this variable\"\n onChange={(event) =>\n updateWorkflowVariable(key, { description: event.target.value })\n }\n />\n <button\n type=\"button\"\n className=\"workflow-editor-input-table__delete\"\n aria-label={`Remove ${key}`}\n title=\"Remove variable\"\n onClick={() => removeWorkflowVariable(key)}\n >\n <Trash2 size={14} />\n </button>\n </div>\n ))}\n </div>\n </div>\n ) : (\n renderOptionalAuthoringEmptyState({\n icon: <Braces size={20} />,\n title: \"No variables defined\",\n body:\n \"Variables are optional workflow-owned values. Use them for constants shared across nodes, such as base URLs, thresholds, labels, or feature flags. Callers do not provide variables when executing the workflow.\",\n examples: [\"apiBaseUrl\", \"retryDelayMs\", \"notificationChannel\", \"featureEnabled\"],\n primaryLabel: \"Add Variable\",\n onPrimaryClick: addWorkflowVariable,\n })\n );\n\n const renderWorkflowTriggerCodeExample = (value: string) => (\n <div className=\"workflow-editor-trigger-guide-code\">\n <pre>\n <code>{value}</code>\n </pre>\n <SolidButton\n variant=\"outline\"\n size=\"small\"\n onClick={() => void copyWorkflowTriggerExample(value)}\n >\n <Copy size={14} />\n Copy\n </SolidButton>\n </div>\n );\n\n const scheduledTriggersContent = scheduledTriggerEntries.length ? (\n <div className=\"workflow-editor-authoring-list\">\n {scheduledTriggerEntries.map(({ trigger, index }) => (\n <SolidPanel key={`${trigger.id}-${index}`} header={trigger.name || trigger.id}>\n <div className=\"workflow-editor-form-grid\">\n <div className=\"workflow-editor-field\">\n <label>Id</label>\n <SolidInput\n value={trigger.id}\n onChange={(event) =>\n updateWorkflowTrigger(index, {\n id: slugifyWorkflowKey(event.target.value) || trigger.id,\n })\n }\n />\n </div>\n <div className=\"workflow-editor-field\">\n <label>Name</label>\n <SolidInput\n value={trigger.name}\n onChange={(event) =>\n updateWorkflowTrigger(index, { name: event.target.value })\n }\n />\n </div>\n <div className=\"workflow-editor-field\">\n <SolidCheckbox\n checked={trigger.disabled}\n label=\"Disabled\"\n onChange={(event) =>\n updateWorkflowTrigger(index, {\n disabled: event.currentTarget.checked,\n })\n }\n />\n </div>\n {renderTriggerConfigurationFields(trigger, index)}\n </div>\n <div className=\"workflow-editor-authoring-card-actions\">\n <SolidButton\n variant=\"ghost\"\n size=\"small\"\n onClick={() => removeWorkflowTrigger(index)}\n >\n Remove Trigger\n </SolidButton>\n </div>\n </SolidPanel>\n ))}\n </div>\n ) : (\n renderOptionalAuthoringEmptyState({\n icon: <Activity size={20} />,\n title: \"No scheduled triggers configured\",\n body:\n \"Scheduled triggers are optional. Add one when this workflow should run automatically on a CRON cadence. Scheduled workflows run without a user present, so every required input must have a default value.\",\n examples: [\"Every weekday at 09:00\", \"Every 15 minutes\", \"Every Monday at 02:00\"],\n primaryLabel: \"Add Scheduled Trigger\",\n onPrimaryClick: addWorkflowTrigger,\n })\n );\n\n const triggersContent = (\n <div className=\"workflow-editor-authoring-tab workflow-editor-trigger-guide\">\n <div className=\"workflow-editor-authoring-header\">\n <div>\n <h3>Triggers</h3>\n <p>\n Choose how this workflow should be started. Only scheduled triggers are saved\n into YAML; CURL and API are authenticated execution examples.\n </p>\n </div>\n {triggerGuideMode === \"scheduled\" && scheduledTriggerEntries.length ? (\n <SolidButton onClick={addWorkflowTrigger}>Add Scheduled Trigger</SolidButton>\n ) : null}\n </div>\n\n <div className=\"workflow-editor-trigger-guide-mode\" role=\"radiogroup\" aria-label=\"Trigger type\">\n {WORKFLOW_TRIGGER_GUIDE_OPTIONS.map((option) => (\n <button\n key={option.value}\n type=\"button\"\n role=\"radio\"\n aria-checked={triggerGuideMode === option.value}\n className={`workflow-editor-trigger-guide-mode__button${\n triggerGuideMode === option.value ? \" is-active\" : \"\"\n }`}\n onClick={() => setTriggerGuideMode(option.value)}\n >\n <span>{option.label}</span>\n <small>{option.description}</small>\n </button>\n ))}\n </div>\n\n {triggerGuideMode === \"curl\" ? (\n <div className=\"workflow-editor-trigger-guide-card\">\n <div>\n <h4>Run With CURL</h4>\n <p>\n Use this from scripts, Postman, or external systems that can call private\n SolidX APIs with a bearer token. The request creates a normal workflow\n execution with <code>triggerType</code> set to <code>api</code>.\n </p>\n </div>\n {renderWorkflowTriggerCodeExample(workflowCurlExample)}\n </div>\n ) : null}\n\n {triggerGuideMode === \"api\" ? (\n <div className=\"workflow-editor-trigger-guide-card\">\n <div>\n <h4>Run From SolidX Code</h4>\n <p>\n Inject the workflow invocation service inside a SolidX subscriber, service,\n scheduled job, or controller when workflow execution is part of application\n logic.\n </p>\n </div>\n {renderWorkflowTriggerCodeExample(workflowApiExample)}\n </div>\n ) : null}\n\n {triggerGuideMode === \"scheduled\" ? scheduledTriggersContent : null}\n </div>\n );\n\n const executionsContent =\n workflowDefinitionId === \"new\" || !hasExecutions ? (\n <div className=\"workflow-editor-overview workflow-editor-overview--empty\">\n <div className=\"workflow-editor-overview-cta\">\n <div className=\"workflow-editor-overview-cta__art\">\n <Workflow size={28} />\n </div>\n <div className=\"workflow-editor-overview-cta__copy\">\n <h2>{workflowDisplayName || record?.displayName || workflowKey || \"Workflow\"}</h2>\n <p>\n Run the workflow once to unlock execution history, operational KPIs,\n and workflow activity for this definition.\n </p>\n </div>\n <div className=\"workflow-editor-overview-cta__actions\">\n <SolidButton\n leftIcon={<Play size={16} />}\n loading={isExecuting}\n onClick={() => void handleExecute()}\n >\n Execute Workflow\n </SolidButton>\n <SolidButton variant=\"outline\" onClick={() => setDetailTab(\"topology\")}>\n Open Topology\n </SolidButton>\n </div>\n </div>\n </div>\n ) : (\n <div className=\"workflow-editor-executions\">\n <div\n className=\"workflow-editor-execution-subtabs\"\n role=\"tablist\"\n aria-label=\"Execution workspace views\"\n >\n <button\n type=\"button\"\n className={`workflow-editor-execution-subtabs__button${\n executionWorkspaceTab === \"summary\" ? \" is-active\" : \"\"\n }`}\n role=\"tab\"\n aria-selected={executionWorkspaceTab === \"summary\"}\n onClick={() => setExecutionWorkspaceTab(\"summary\")}\n >\n Summary\n </button>\n <button\n type=\"button\"\n className={`workflow-editor-execution-subtabs__button${\n executionWorkspaceTab === \"list\" ? \" is-active\" : \"\"\n }`}\n role=\"tab\"\n aria-selected={executionWorkspaceTab === \"list\"}\n onClick={() => setExecutionWorkspaceTab(\"list\")}\n >\n List\n </button>\n </div>\n\n {executionWorkspaceTab === \"list\" ? (\n <div className=\"workflow-editor-overview-filterbar\">\n <div className=\"workflow-editor-overview-filterbar__left\">\n <div className=\"workflow-editor-overview-filter\">\n <label>Date From</label>\n <SolidDatePicker\n selected={overviewStartDate}\n onChange={(date: Date | null) => {\n setOverviewStartDate(date);\n setExecutionPage(1);\n }}\n placeholderText=\"Start date\"\n />\n </div>\n <div className=\"workflow-editor-overview-filter\">\n <label>Date To</label>\n <SolidDatePicker\n selected={overviewEndDate}\n onChange={(date: Date | null) => {\n setOverviewEndDate(date);\n setExecutionPage(1);\n }}\n placeholderText=\"End date\"\n />\n </div>\n <div className=\"workflow-editor-overview-filter\">\n <label>Status</label>\n <SolidSelect\n value={executionStatusFilter}\n options={WORKFLOW_EXECUTION_STATUS_OPTIONS}\n onChange={(event) => {\n setExecutionStatusFilter(event.value ?? \"all\");\n setExecutionPage(1);\n }}\n />\n </div>\n <div className=\"workflow-editor-overview-filter workflow-editor-overview-filter--search\">\n <label>Execution</label>\n <SolidInput\n value={executionSearchFilter}\n placeholder=\"Search identifier\"\n onChange={(event) => {\n setExecutionSearchFilter(event.target.value);\n setExecutionPage(1);\n }}\n />\n </div>\n {(overviewStartDate ||\n overviewEndDate ||\n executionStatusFilter !== \"all\" ||\n executionSearchFilter) && (\n <SolidButton\n size=\"small\"\n variant=\"ghost\"\n onClick={() => {\n setOverviewStartDate(null);\n setOverviewEndDate(null);\n setExecutionStatusFilter(\"all\");\n setExecutionSearchFilter(\"\");\n setExecutionPage(1);\n }}\n >\n Clear\n </SolidButton>\n )}\n </div>\n </div>\n ) : null}\n\n {executionWorkspaceTab === \"summary\" ? (\n <>\n <div className=\"workflow-editor-overview-stats\">\n <div className=\"workflow-editor-overview-stat\">\n <span className=\"workflow-editor-overview-stat-label\">Success Ratio</span>\n <strong className=\"workflow-editor-overview-stat-value\">\n {executionOverview.successRatio}%\n </strong>\n <span className=\"workflow-editor-overview-stat-meta\">\n {executionOverview.success} successful runs\n </span>\n </div>\n <div className=\"workflow-editor-overview-stat\">\n <span className=\"workflow-editor-overview-stat-label\">Failed Ratio</span>\n <strong className=\"workflow-editor-overview-stat-value\">\n {executionOverview.failedRatio}%\n </strong>\n <span className=\"workflow-editor-overview-stat-meta\">\n {executionOverview.failed} failed runs\n </span>\n </div>\n <div className=\"workflow-editor-overview-stat\">\n <span className=\"workflow-editor-overview-stat-label\">In Progress</span>\n <strong className=\"workflow-editor-overview-stat-value\">\n {executionOverview.inProgress}\n </strong>\n <span className=\"workflow-editor-overview-stat-meta\">\n Currently running executions\n </span>\n </div>\n <div className=\"workflow-editor-overview-stat\">\n <span className=\"workflow-editor-overview-stat-label\">Pending</span>\n <strong className=\"workflow-editor-overview-stat-value\">\n {executionOverview.pending}\n </strong>\n <span className=\"workflow-editor-overview-stat-meta\">\n Created or queued executions\n </span>\n </div>\n </div>\n\n <div className=\"workflow-editor-overview-grid\">\n <SolidPanel header=\"Workflow Summary\">\n <div className=\"workflow-editor-overview-section\">\n <div className=\"workflow-editor-overview-kv\">\n <span>Workflow</span>\n <strong>{workflowDisplayName || record?.displayName || workflowKey}</strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Total Executions</span>\n <strong>{workflowExecutionPresenceQuery.data?.meta?.totalRecords ?? 0}</strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Executions In Range</span>\n <strong>{workflowExecutionsQuery.data?.meta?.totalRecords ?? 0}</strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Average Duration</span>\n <strong>{formatDurationMs(executionOverview.averageDurationMs)}</strong>\n </div>\n <div className=\"workflow-editor-overview-description\">\n {workflowDescription ||\n record?.description ||\n definitionDraft.description ||\n \"No workflow description has been added yet.\"}\n </div>\n </div>\n </SolidPanel>\n\n <SolidPanel header=\"Latest Execution\">\n {executionOverview.latestExecution ? (\n <div className=\"workflow-editor-overview-section\">\n <div className=\"workflow-editor-overview-kv\">\n <span>Status</span>\n <strong>{executionOverview.latestExecution.status ?? \"Unknown\"}</strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Started</span>\n <strong>\n {formatExecutionDate(executionOverview.latestExecution.startedAt)}\n </strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Finished</span>\n <strong>\n {formatExecutionDate(executionOverview.latestExecution.finishedAt)}\n </strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Trigger Type</span>\n <strong>{executionOverview.latestExecution.triggerType ?? \"manual\"}</strong>\n </div>\n </div>\n ) : (\n <div className=\"workflow-editor-empty-state workflow-editor-empty-state--compact\">\n No executions match the current date filter.\n </div>\n )}\n </SolidPanel>\n\n </div>\n </>\n ) : null}\n\n {executionWorkspaceTab === \"list\" ? (\n <SolidPanel header=\"Executions\">\n {workflowExecutionsQuery.isFetching && !executionRecords.length ? (\n <div className=\"workflow-editor-loading\">\n <SolidSpinner />\n </div>\n ) : executionRecords.length ? (\n <div className=\"workflow-editor-execution-table-wrap\">\n <table className=\"workflow-editor-execution-table\">\n <thead>\n <tr>\n <th>Id</th>\n <th>Execution Identifier</th>\n <th>Status</th>\n <th>Trigger</th>\n <th>Started</th>\n <th>Finished</th>\n <th>Duration</th>\n <th>Error</th>\n <th>Details</th>\n </tr>\n </thead>\n <tbody>\n {executionRecords.map((execution) => {\n const statusCategory = getExecutionStatusCategory(execution.status);\n\n return (\n <tr\n key={execution.id}\n className=\"workflow-editor-execution-table__row\"\n tabIndex={0}\n role=\"button\"\n onClick={() => openExecutionDetails(execution)}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n openExecutionDetails(execution);\n }\n }}\n >\n <td>{execution.id}</td>\n <td className=\"workflow-editor-execution-table__identifier\">\n {execution.executionIdentifier ?? \"-\"}\n </td>\n <td>\n <SolidTag\n className={`workflow-editor-execution-status-pill workflow-editor-execution-status-pill--${statusCategory}`}\n >\n {execution.status ?? \"Unknown\"}\n </SolidTag>\n </td>\n <td>{execution.triggerType ?? \"manual\"}</td>\n <td>{formatExecutionDate(execution.startedAt || execution.createdAt)}</td>\n <td>{formatExecutionDate(execution.finishedAt)}</td>\n <td>{formatDurationMs(execution.durationMs)}</td>\n <td className=\"workflow-editor-execution-table__error\">\n {execution.errorSummary ?? \"-\"}\n </td>\n <td>\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n onClick={(event) => {\n event.stopPropagation();\n openExecutionDetails(execution);\n }}\n >\n View\n </SolidButton>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n\n <div className=\"workflow-editor-execution-pagination\">\n <span>\n Showing {executionPageStart}-{executionPageEnd} of {executionTotalRecords}\n </span>\n <div className=\"workflow-editor-execution-pagination__actions\">\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n disabled={executionPage <= 1}\n onClick={() => setExecutionPage((current) => Math.max(1, current - 1))}\n >\n Previous\n </SolidButton>\n <SolidTag>\n Page {executionPage} of {executionTotalPages}\n </SolidTag>\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n disabled={executionPage >= executionTotalPages}\n onClick={() =>\n setExecutionPage((current) =>\n Math.min(executionTotalPages, current + 1),\n )\n }\n >\n Next\n </SolidButton>\n </div>\n </div>\n </div>\n ) : (\n <div className=\"workflow-editor-empty-state workflow-editor-empty-state--compact\">\n No executions match the current filters.\n </div>\n )}\n </SolidPanel>\n ) : null}\n </div>\n );\n\n const topologyCanvasView = (\n <div className=\"workflow-editor-canvas-shell\">\n {codeError ? (\n <div className=\"workflow-editor-definition-error\">\n <div className=\"workflow-editor-definition-error__icon\">\n <Braces size={20} />\n </div>\n <div className=\"workflow-editor-definition-error__content\">\n <h3>Workflow definition YAML is invalid</h3>\n <p>\n The topology cannot be rendered until the saved YAML parses and matches\n the current workflow schema.\n </p>\n <pre>{codeError}</pre>\n {!topologyYamlViewOpen ? (\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n onClick={() => setTopologyYamlViewOpen(true)}\n >\n Show YAML\n </SolidButton>\n ) : null}\n </div>\n </div>\n ) : (\n <WorkflowFlowCanvas\n definition={definitionDraft}\n nodeTypes={nodeTypes}\n selectedNodeId={selectedNodeId}\n selectedTriggerId={selectedTriggerId}\n activePaletteNodeType={undefined}\n onSelectNode={(nodeId) => {\n setSelectedNodeId(nodeId);\n setSelectedTriggerId(\"\");\n }}\n onSelectTrigger={(triggerId) => {\n setSelectedTriggerId(triggerId);\n setSelectedNodeId(\"\");\n }}\n onEditNode={(nodeId) => {\n setSelectedNodeId(nodeId);\n setSelectedTriggerId(\"\");\n setEditorOpen(true);\n }}\n onDeleteNode={handleRemoveNode}\n onViewDocs={(nodeId) => {\n const node = findNodeInDefinition(definitionDraft, nodeId);\n if (node?.type) {\n setSelectedNodeId(nodeId);\n setSelectedTriggerId(\"\");\n setTopologyDocsNodeTypeKey(node.type);\n setTopologyDocsModel(undefined);\n setTopologyDocsOpen(true);\n }\n }}\n onViewTriggerDocs={(triggerId) => {\n const trigger = (definitionDraft.triggers ?? []).find(\n (item) => String(item.id) === triggerId,\n );\n setSelectedTriggerId(triggerId);\n setSelectedNodeId(\"\");\n setTopologyDocsNodeTypeKey(\"\");\n setTopologyDocsModel(trigger ? buildTriggerDocsModel(trigger) : undefined);\n setTopologyDocsOpen(true);\n }}\n onInsertNode={handleInsertNode}\n />\n )}\n </div>\n );\n\n const topologyYamlEditorView = (\n <div className=\"workflow-editor-topology-code\">\n <div className=\"workflow-editor-topology-code__header\">\n <span>Definition YAML</span>\n {codeError ? (\n <SolidTag tone=\"danger\">Invalid</SolidTag>\n ) : (\n <SolidTag tone=\"success\">Synced</SolidTag>\n )}\n </div>\n <SolidCodeEditor\n language=\"yaml\"\n height=\"100%\"\n fontSize={12}\n value={codeValue}\n onChange={handleCodeChange}\n />\n {codeError ? (\n <pre className=\"workflow-editor-error workflow-editor-error--block\">\n {codeError}\n </pre>\n ) : null}\n </div>\n );\n\n const topologyContent = (\n <div className=\"workflow-editor-topology-tab\">\n <div className=\"workflow-editor-topology-actionbar\">\n <div className=\"workflow-editor-topology-actionbar__left\" />\n <div className=\"workflow-editor-view-toggle\" aria-label=\"Topology views\">\n <button\n type=\"button\"\n className={`workflow-editor-view-toggle__button ${topologyViewOpen ? \"is-active\" : \"\"}`}\n aria-label={topologyViewOpen ? \"Hide topology view\" : \"Show topology view\"}\n title={topologyViewOpen ? \"Hide topology view\" : \"Show topology view\"}\n onClick={() => setTopologyViewOpen((current) => !current)}\n >\n <Layers3 size={14} />\n </button>\n <button\n type=\"button\"\n className={`workflow-editor-view-toggle__button ${topologyYamlViewOpen ? \"is-active\" : \"\"}`}\n aria-label={topologyYamlViewOpen ? \"Hide YAML editor\" : \"Show YAML editor\"}\n title={topologyYamlViewOpen ? \"Hide YAML editor\" : \"Show YAML editor\"}\n onClick={() => setTopologyYamlViewOpen((current) => !current)}\n >\n <Braces size={14} />\n </button>\n </div>\n </div>\n\n {topologyViewOpen && topologyYamlViewOpen ? (\n <div\n ref={topologySplitRef}\n className=\"workflow-editor-topology-split\"\n style={{\n gridTemplateColumns: `${topologySplitPercent}% 0.45rem minmax(0, 1fr)`,\n }}\n >\n <div className=\"workflow-editor-topology-pane\">{topologyCanvasView}</div>\n <div\n className=\"workflow-editor-topology-resizer\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label=\"Resize topology and YAML views\"\n onMouseDown={startTopologySplitResize}\n />\n <div className=\"workflow-editor-topology-pane\">{topologyYamlEditorView}</div>\n </div>\n ) : topologyViewOpen ? (\n <div className=\"workflow-editor-topology-single\">{topologyCanvasView}</div>\n ) : topologyYamlViewOpen ? (\n <div className=\"workflow-editor-topology-single\">{topologyYamlEditorView}</div>\n ) : (\n <div className=\"workflow-editor-placeholder\">\n <div className=\"workflow-editor-placeholder__icon\">\n <Layers3 size={20} />\n </div>\n <div className=\"workflow-editor-placeholder__copy\">\n <h3>No topology view selected</h3>\n <p>Use the view toggles above to show the topology canvas or YAML editor.</p>\n </div>\n </div>\n )}\n </div>\n );\n\n const detailTabs = [\n { value: \"overview\", label: \"Overview\", content: overviewContent },\n {\n value: \"inputs\",\n label: \"Inputs\",\n content: inputsContent,\n },\n {\n value: \"variables\",\n label: \"Variables\",\n content: variablesContent,\n },\n {\n value: \"topology\",\n label: \"Topology\",\n content: topologyContent,\n },\n {\n value: \"executions\",\n label: \"Executions\",\n content: executionsContent,\n },\n {\n value: \"triggers\",\n label: \"Triggers\",\n content: triggersContent,\n },\n ] as const;\n\n const handleDetailTabChange = (value: string) => {\n const nextTab = value as WorkflowDetailTab;\n if (workflowDefinitionId === \"new\" && nextTab !== \"overview\") {\n const errors = validateWorkflowIdentity();\n if (hasWorkflowIdentityErrors(errors)) {\n setDetailTab(\"overview\");\n return;\n }\n }\n\n setDetailTab(nextTab);\n };\n\n if (isWorkflowDefinitionLoading || isNodeTypesLoading) {\n return (\n <div className=\"workflow-editor-page workflow-editor-page--loading\">\n <SolidSpinner />\n </div>\n );\n }\n\n if (isNodeTypesError) {\n return (\n <div className=\"workflow-editor-page\">\n <div className=\"workflow-editor-empty-state\">\n Failed to load workflow node types.\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"workflow-editor-page\">\n <div className=\"workflow-editor-header\">\n <div className=\"workflow-editor-header-main\">\n <SolidButton\n size=\"small\"\n variant=\"ghost\"\n leftIcon={<ArrowLeft size={16} />}\n onClick={() =>\n navigate(\"/admin/core/solid-core/workflow-definition/list\")\n }\n >\n Back\n </SolidButton>\n </div>\n <div className=\"workflow-editor-header-actions\">\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n leftIcon={<ShieldCheck size={16} />}\n loading={isServerValidating}\n onClick={() => void validateCurrentDefinition({ showSuccessToast: true })}\n >\n Validate\n </SolidButton>\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n leftIcon={<Play size={16} />}\n loading={isExecuting}\n onClick={() => void handleExecute()}\n >\n Run\n </SolidButton>\n <SolidButton\n size=\"small\"\n leftIcon={<Save size={16} />}\n loading={isSaving || isCreating}\n onClick={handleSave}\n >\n Save\n </SolidButton>\n </div>\n </div>\n\n <div className=\"workflow-editor-detail-tabs\">\n <SolidTabGroup\n tabs={detailTabs.map((tab) => ({\n value: tab.value,\n label: tab.label,\n content: tab.content,\n }))}\n value={detailTab}\n onValueChange={handleDetailTabChange}\n listClassName=\"workflow-editor-detail-tabs__list\"\n panelClassName=\"workflow-editor-detail-tabs__panel\"\n />\n </div>\n\n <SolidDialog\n open={Boolean(defaultValueEditorEntry)}\n onOpenChange={(open) => {\n if (!open) {\n closeDefaultValueEditor();\n }\n }}\n header={\n defaultValueEditorEntry\n ? `Default Value - ${defaultValueEditorEntry.definition.label || defaultValueEditorEntry.key}`\n : \"Default Value\"\n }\n className=\"workflow-editor-default-dialog\"\n style={{ width: \"min(560px, 94vw)\" }}\n footer={\n <div className=\"workflow-editor-default-dialog__footer\">\n <SolidButton\n type=\"button\"\n variant=\"secondary\"\n onClick={clearDefaultValueEditor}\n >\n Clear Default\n </SolidButton>\n <div>\n <SolidButton\n type=\"button\"\n variant=\"secondary\"\n onClick={closeDefaultValueEditor}\n >\n Cancel\n </SolidButton>\n <SolidButton\n type=\"button\"\n onClick={saveDefaultValueEditor}\n >\n Save Default\n </SolidButton>\n </div>\n </div>\n }\n >\n <SolidDialogBody>\n {defaultValueEditorEntry ? (\n <div className=\"workflow-editor-default-dialog__body\">\n <p>\n This value is used when callers do not provide{\" \"}\n <code>{defaultValueEditorEntry.key}</code>.\n </p>\n {renderDefaultValueEditorField()}\n {defaultValueEditorError ? (\n <div className=\"workflow-editor-field-error\">\n {defaultValueEditorError}\n </div>\n ) : null}\n </div>\n ) : null}\n </SolidDialogBody>\n </SolidDialog>\n\n <SolidDialog\n open={Boolean(variableValueEditorEntry)}\n onOpenChange={(open) => {\n if (!open) {\n closeVariableValueEditor();\n }\n }}\n header={\n variableValueEditorEntry\n ? `Variable Value - ${variableValueEditorEntry.definition.label || variableValueEditorEntry.key}`\n : \"Variable Value\"\n }\n className=\"workflow-editor-default-dialog\"\n style={{ width: \"min(520px, 92vw)\" }}\n footer={\n <div className=\"workflow-editor-default-dialog__footer\">\n <SolidButton\n type=\"button\"\n variant=\"secondary\"\n onClick={closeVariableValueEditor}\n >\n Cancel\n </SolidButton>\n <SolidButton\n type=\"button\"\n onClick={saveVariableValueEditor}\n >\n Save Value\n </SolidButton>\n </div>\n }\n >\n <SolidDialogBody>\n {variableValueEditorEntry ? (\n <div className=\"workflow-editor-default-dialog__body\">\n <p>\n Nodes can reference this value as{\" \"}\n <code>{`{{ variables.${variableValueEditorEntry.key} }}`}</code>.\n </p>\n {renderVariableValueEditorField()}\n {variableValueEditorError ? (\n <div className=\"workflow-editor-field-error\">\n {variableValueEditorError}\n </div>\n ) : null}\n </div>\n ) : null}\n </SolidDialogBody>\n </SolidDialog>\n\n <SolidDialog\n open={runInputsOpen}\n onOpenChange={(open) => {\n if (!isExecuting) {\n setRunInputsOpen(open);\n }\n }}\n header=\"Run Workflow\"\n className=\"workflow-editor-run-input-dialog\"\n style={{ width: \"min(620px, 94vw)\" }}\n footer={\n <div className=\"workflow-editor-run-input-dialog__footer\">\n <SolidButton\n type=\"button\"\n variant=\"secondary\"\n disabled={isExecuting}\n onClick={() => setRunInputsOpen(false)}\n >\n Cancel\n </SolidButton>\n <SolidButton\n type=\"button\"\n loading={isExecuting}\n onClick={() => void handleRunInputsSubmit()}\n >\n Run Workflow\n </SolidButton>\n </div>\n }\n >\n <SolidDialogBody>\n <form\n className=\"workflow-editor-run-input-dialog__form\"\n onSubmit={(event) => {\n event.preventDefault();\n void handleRunInputsSubmit();\n }}\n >\n <div className=\"workflow-editor-run-input-dialog__intro\">\n <h3>{workflowDisplayName || record?.displayName || workflowKey || \"Workflow\"}</h3>\n <p>Provide the runtime inputs required for this execution.</p>\n </div>\n\n {workflowInputEntries.map(({ key, definition }) => {\n const fieldId = `workflow-run-input-${key}`;\n const fieldError = runInputErrors[key];\n const label = definition.label || key;\n const type = definition.type || \"string\";\n\n return (\n <div\n key={key}\n className={`workflow-editor-run-input-field ${fieldError ? \"is-invalid\" : \"\"}`}\n >\n {type === \"boolean\" ? (\n <SolidCheckbox\n checked={Boolean(runInputValues[key])}\n label={`${label}${definition.required ? \" *\" : \"\"}`}\n onChange={(event) => {\n setRunInputValues((current) => ({\n ...current,\n [key]: event.currentTarget.checked,\n }));\n setRunInputErrors((current) => ({ ...current, [key]: \"\" }));\n }}\n />\n ) : (\n <>\n <label htmlFor={fieldId}>\n {label}\n {definition.required ? <span> *</span> : null}\n </label>\n {type === \"object\" || type === \"array\" ? (\n <SolidTextarea\n id={fieldId}\n value={runInputValues[key] ?? \"\"}\n placeholder={type === \"array\" ? \"[]\" : \"{}\"}\n rows={5}\n onChange={(event) => {\n setRunInputValues((current) => ({\n ...current,\n [key]: event.target.value,\n }));\n setRunInputErrors((current) => ({ ...current, [key]: \"\" }));\n }}\n />\n ) : (\n <SolidInput\n id={fieldId}\n type={type === \"number\" ? \"number\" : type === \"date\" ? \"date\" : \"text\"}\n value={runInputValues[key] ?? \"\"}\n onChange={(event) => {\n setRunInputValues((current) => ({\n ...current,\n [key]: event.target.value,\n }));\n setRunInputErrors((current) => ({ ...current, [key]: \"\" }));\n }}\n />\n )}\n </>\n )}\n {definition.description ? (\n <p className=\"workflow-editor-run-input-field__help\">\n {definition.description}\n </p>\n ) : null}\n {fieldError ? (\n <div className=\"workflow-editor-field-error\">{fieldError}</div>\n ) : null}\n </div>\n );\n })}\n </form>\n </SolidDialogBody>\n </SolidDialog>\n\n {selectedNode && selectedNodeType ? (\n <WorkflowNodeEditorDialog\n open={editorOpen}\n onOpenChange={setEditorOpen}\n nodeType={selectedNodeType}\n nodeValue={selectedNode}\n expressionSuggestions={selectedNodeExpressionSuggestions}\n onNodeSubmit={(nextValue) => {\n handleUpdateSelectedNode(nextValue);\n setEditorOpen(false);\n }}\n title={`${selectedNode.name ?? selectedNode.id} · ${selectedNodeType.label ?? selectedNodeType.type}`}\n />\n ) : null}\n\n <WorkflowAddNodeDialog\n open={!!pendingInsertTarget}\n nodeTypes={nodeTypes}\n expressionSuggestions={addNodeExpressionSuggestions}\n onOpenChange={(open) => {\n if (!open) {\n setPendingInsertTarget(null);\n }\n }}\n createNodeValue={createNodeFromType}\n onSubmit={handleAddNodeSubmit}\n />\n\n <SolidDialog\n open={topologyDocsOpen}\n onOpenChange={(open) => {\n setTopologyDocsOpen(open);\n if (!open) {\n setTopologyDocsNodeTypeKey(\"\");\n setTopologyDocsModel(undefined);\n }\n }}\n header=\"Node Documentation\"\n className=\"workflow-editor-topology-docs-dialog\"\n style={{ width: \"min(920px, 94vw)\", maxWidth: \"96vw\" }}\n >\n <SolidDialogBody>\n <div className=\"workflow-editor-topology-docs-dialog__body\">\n {topologyDocsNodeType || topologyDocsModel ? (\n <WorkflowNodeDocsPanel\n nodeType={topologyDocsNodeType}\n docsModel={topologyDocsModel}\n />\n ) : (\n <div className=\"workflow-editor-empty-state workflow-editor-empty-state--compact\">\n Documentation is not available for this topology item yet.\n </div>\n )}\n </div>\n </SolidDialogBody>\n </SolidDialog>\n\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"WorkflowDefinitionEditorPage.js","sourceRoot":"","sources":["../../../../../src/routes/pages/admin/core/WorkflowDefinitionEditorPage.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Activity,\n ArrowLeft,\n Braces,\n ChevronRight,\n Copy,\n Workflow,\n Layers3,\n Play,\n Search,\n Save,\n ShieldCheck,\n Trash2,\n X,\n} from \"lucide-react\";\nimport React from \"react\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport qs from \"qs\";\nimport YAML from \"yaml\";\nimport { createSolidEntityApi } from \"../../../../redux/api/solidEntityApi\";\nimport { useGetmodulesQuery } from \"../../../../redux/api/moduleApi\";\nimport { useGetWorkflowNodeTypesQuery } from \"../../../../redux/api/workflowNodeApi\";\nimport {\n useExecuteWorkflowDefinitionMutation,\n useValidateWorkflowDefinitionMutation,\n} from \"../../../../redux/api/workflowDefinitionEditorApi\";\nimport { showToast } from \"../../../../redux/features/toastSlice\";\nimport {\n WorkflowNodeDocsPanel,\n type WorkflowDocsModel,\n} from \"../../../../components/workflow/WorkflowNodeDocsPanel\";\nimport {\n WorkflowFlowCanvas,\n type WorkflowInsertTarget,\n} from \"../../../../components/workflow/WorkflowFlowCanvas\";\nimport {\n WorkflowAddNodeDialog,\n WorkflowExpressionAutocompleteField,\n WorkflowNodeEditorDialog,\n type WorkflowExpressionSuggestion,\n} from \"../../../../components/workflow/WorkflowNodeSchemaEditor\";\nimport type {\n WorkflowNodeConfigurationFieldDefinition,\n WorkflowNodeMetadataResponse,\n} from \"../../../../types/workflow-node\";\nimport {\n SolidAutocomplete,\n SolidButton,\n SolidCheckbox,\n SolidCodeEditor,\n SolidDatePicker,\n SolidDialog,\n SolidDialogBody,\n SolidInput,\n SolidPanel,\n SolidSelect,\n SolidSpinner,\n SolidTabGroup,\n SolidTag,\n SolidTextarea,\n} from \"../../../../components/shad-cn-ui\";\nimport { SolidJsonEditor } from \"../../../../components/core/json/SolidJsonEditor\";\nimport \"./WorkflowDefinitionEditorPage.css\";\n\nconst RESERVED_WORKFLOW_MODULE_NAMES = new Set([\"solid-core\"]);\n\nfunction isWorkflowModuleSelectable(module?: Record<string, any> | null) {\n const moduleName = String(module?.name ?? \"\").trim();\n return Boolean(moduleName) && !RESERVED_WORKFLOW_MODULE_NAMES.has(moduleName);\n}\n\ntype WorkflowDefinitionRecord = {\n id: number;\n key?: string;\n displayName?: string;\n moduleMetadata?: Record<string, any> | null;\n moduleMetadataId?: number | null;\n moduleMetadataUserKey?: string | null;\n namespace?: string;\n description?: string;\n status?: string;\n definitionYaml?: WorkflowDefinitionDsl | string | null;\n tags?: unknown;\n};\n\ntype WorkflowNodeRecord = {\n [key: string]: any;\n id: string;\n name?: string;\n description?: string;\n kind: string;\n type: string;\n disabled?: boolean;\n timeoutMs?: number;\n retryPolicy?: Record<string, any>;\n onError?: \"fail\" | \"continue\";\n configuration?: Record<string, any>;\n metadata?: Record<string, any>;\n tasks?: WorkflowNodeRecord[];\n then?: WorkflowNodeRecord[];\n else?: WorkflowNodeRecord[];\n defaults?: WorkflowNodeRecord[];\n errors?: WorkflowNodeRecord[];\n cases?: Record<string, WorkflowNodeRecord[]>;\n};\n\ntype WorkflowDefinitionDsl = {\n version?: string;\n description?: string;\n inputs?: Record<string, any>;\n variables?: Record<string, any>;\n nodes: WorkflowNodeRecord[];\n triggers?: Array<Record<string, any>>;\n errors?: WorkflowNodeRecord[];\n finally?: WorkflowNodeRecord[];\n metadata?: Record<string, any>;\n};\n\ntype SecretSuggestionRecord = {\n id?: number;\n key?: string;\n displayName?: string;\n description?: string;\n valueType?: string;\n status?: string;\n};\n\ntype ValidationState = {\n status: \"idle\" | \"validating\" | \"valid\" | \"invalid\";\n source?: \"client\" | \"server\";\n message?: string;\n errors: string[];\n};\n\ntype WorkflowIdentityErrors = Partial<\n Record<\"displayName\" | \"key\" | \"moduleMetadata\" | \"namespace\" | \"tags\", string>\n>;\n\ntype WorkflowDefinitionParseResult =\n | {\n ok: true;\n definition: WorkflowDefinitionDsl;\n yaml: string;\n }\n | {\n ok: false;\n errors: string[];\n yaml: string;\n };\n\ntype WorkflowDetailTab =\n | \"overview\"\n | \"inputs\"\n | \"variables\"\n | \"topology\"\n | \"executions\"\n | \"triggers\";\n\ntype WorkflowTriggerGuideMode = \"curl\" | \"api\" | \"scheduled\";\n\ntype WorkflowExecutionRecord = {\n id: number;\n executionIdentifier?: string | null;\n workflowKey?: string | null;\n workflowDisplayName?: string | null;\n status?: string | null;\n triggerType?: string | null;\n startedAt?: string | null;\n finishedAt?: string | null;\n durationMs?: number | string | null;\n inputPayload?: unknown;\n outputPayload?: unknown;\n definitionVersion?: string | null;\n definitionChecksum?: string | null;\n definitionSnapshot?: string | null;\n errorSummary?: string | null;\n errorDetails?: unknown;\n requestedByUserId?: number | string | null;\n createdAt?: string | null;\n};\n\ntype WorkflowExecutionLogRecord = {\n id: number;\n logKey?: string | null;\n level?: string | null;\n message?: string | null;\n eventType?: string | null;\n source?: string | null;\n nodeId?: string | null;\n nodeType?: string | null;\n sequenceNumber?: number | null;\n occurredAt?: string | null;\n context?: unknown;\n metadata?: unknown;\n createdAt?: string | null;\n};\n\ntype WorkflowStepExecutionRecord = {\n id: number;\n stepExecutionKey?: string | null;\n nodeId?: string | null;\n nodeName?: string | null;\n nodeKind?: string | null;\n nodeType?: string | null;\n status?: string | null;\n attemptNumber?: number | null;\n retryCount?: number | null;\n maxRetries?: number | null;\n parentNodeId?: string | null;\n parentStepExecutionKey?: string | null;\n sequenceNumber?: number | null;\n startedAt?: string | null;\n finishedAt?: string | null;\n durationMs?: number | string | null;\n timeoutMs?: number | string | null;\n inputPayload?: unknown;\n outputPayload?: unknown;\n runtimeContext?: unknown;\n nodeSnapshot?: unknown;\n errorSummary?: string | null;\n errorDetails?: unknown;\n createdAt?: string | null;\n};\n\ntype WorkflowExecutionOutputEntry = {\n key: string;\n label: string;\n nodeId?: string;\n nodeType?: string;\n value: unknown;\n};\n\ntype WorkflowInputEntry = {\n key: string;\n definition: {\n type: string;\n label: string;\n required: boolean;\n default: any;\n description: string;\n };\n};\n\ntype WorkflowVariableEntry = {\n key: string;\n definition: {\n type: string;\n label: string;\n value: any;\n description: string;\n };\n};\n\nconst createEmptyWorkflowDefinition = (): WorkflowDefinitionDsl => ({\n version: \"1.0.0\",\n description: \"\",\n inputs: {},\n variables: {},\n nodes: [],\n triggers: [],\n errors: [],\n finally: [],\n metadata: {},\n});\n\nconst TOPOLOGY_SPLIT_STORAGE_KEY = \"solid.workflow.editor.topologySplitPercent\";\n\nconst WORKFLOW_STATUS_OPTIONS = [\n { label: \"Draft\", value: \"draft\" },\n { label: \"Active\", value: \"active\" },\n { label: \"Inactive\", value: \"inactive\" },\n];\n\nconst WORKFLOW_INPUT_TYPE_OPTIONS = [\n { label: \"String\", value: \"string\" },\n { label: \"Number\", value: \"number\" },\n { label: \"Boolean\", value: \"boolean\" },\n { label: \"Date\", value: \"date\" },\n { label: \"Object\", value: \"object\" },\n { label: \"Array\", value: \"array\" },\n];\n\nconst WORKFLOW_TRIGGER_GUIDE_OPTIONS: Array<{\n label: string;\n value: WorkflowTriggerGuideMode;\n description: string;\n}> = [\n {\n label: \"CURL\",\n value: \"curl\",\n description: \"Run this workflow through the authenticated execution endpoint.\",\n },\n {\n label: \"API\",\n value: \"api\",\n description: \"Call this workflow from a SolidX service, subscriber, or job.\",\n },\n {\n label: \"Scheduled\",\n value: \"scheduled\",\n description: \"Persist CRON metadata so the scheduler can run this workflow.\",\n },\n];\n\nconst WORKFLOW_EXECUTION_STATUS_OPTIONS = [\n { label: \"All statuses\", value: \"all\" },\n { label: \"Success\", value: \"success\" },\n { label: \"Failed\", value: \"failed\" },\n { label: \"Running\", value: \"running\" },\n { label: \"Pending\", value: \"pending\" },\n];\n\nconst WORKFLOW_EXECUTION_PAGE_SIZE = 25;\n\nconst WORKFLOW_LOG_LEVEL_OPTIONS = [\n { label: \"All levels\", value: \"all\" },\n { label: \"Debug\", value: \"debug\" },\n { label: \"Info\", value: \"info\" },\n { label: \"Warn\", value: \"warn\" },\n { label: \"Error\", value: \"error\" },\n];\n\nconst WORKFLOW_CRON_EXAMPLES = [\n { label: \"Every hour\", value: \"0 * * * *\" },\n { label: \"Weekdays at 9 AM\", value: \"0 9 * * 1-5\" },\n { label: \"Mondays at 2 AM\", value: \"0 2 * * 1\" },\n { label: \"Daily midnight\", value: \"0 0 * * *\" },\n];\n\nconst WORKFLOW_CRON_FIELD_HELP = [\n { key: \"minute\", label: \"Minute\", placeholder: \"0\", help: \"0-59, * or */5\" },\n { key: \"hour\", label: \"Hour\", placeholder: \"9\", help: \"0-23, * or */2\" },\n { key: \"dayOfMonth\", label: \"Day\", placeholder: \"*\", help: \"1-31 or *\" },\n { key: \"month\", label: \"Month\", placeholder: \"*\", help: \"1-12 or *\" },\n { key: \"dayOfWeek\", label: \"Weekday\", placeholder: \"*\", help: \"0-7, 1-5 or *\" },\n] as const;\n\nfunction readStoredTopologySplitPercent() {\n if (typeof window === \"undefined\") {\n return 62;\n }\n\n const storedValue = Number(window.localStorage.getItem(TOPOLOGY_SPLIT_STORAGE_KEY));\n return Number.isFinite(storedValue) ? Math.min(78, Math.max(22, storedValue)) : 62;\n}\n\nfunction splitCronExpression(expression: string) {\n const parts = String(expression ?? \"\").trim().split(/\\s+/).filter(Boolean);\n const normalized = parts.length === 5 ? parts : [\"0\", \"9\", \"*\", \"*\", \"*\"];\n return {\n minute: normalized[0] ?? \"0\",\n hour: normalized[1] ?? \"9\",\n dayOfMonth: normalized[2] ?? \"*\",\n month: normalized[3] ?? \"*\",\n dayOfWeek: normalized[4] ?? \"*\",\n };\n}\n\nfunction joinCronExpression(parts: ReturnType<typeof splitCronExpression>) {\n return [\n parts.minute || \"*\",\n parts.hour || \"*\",\n parts.dayOfMonth || \"*\",\n parts.month || \"*\",\n parts.dayOfWeek || \"*\",\n ].join(\" \");\n}\n\nfunction isValidSimpleCronExpression(expression: string) {\n return String(expression ?? \"\").trim().split(/\\s+/).filter(Boolean).length === 5;\n}\n\nfunction isNumericCronPart(value: string) {\n return /^\\d+$/.test(String(value ?? \"\"));\n}\n\nfunction getCronMinuteStep(value: string) {\n const match = String(value ?? \"\").match(/^\\*\\/(\\d+)$/);\n return match?.[1] ?? null;\n}\n\nfunction formatCronNumber(value: string) {\n return String(Number(value)).padStart(2, \"0\");\n}\n\nfunction describeCronList(value: string) {\n const items = String(value ?? \"\")\n .split(\",\")\n .map((item) => item.trim())\n .filter(Boolean);\n\n if (items.length <= 1) {\n return value;\n }\n if (items.length === 2) {\n return items.join(\" and \");\n }\n\n return `${items.slice(0, -1).join(\", \")} and ${items[items.length - 1]}`;\n}\n\nfunction describeCronMonthScope(month: string) {\n if (month === \"*\") {\n return \"\";\n }\n if (/^\\d+(,\\d+)*$/.test(month)) {\n return ` in months ${describeCronList(month)}`;\n }\n return ` in month ${month}`;\n}\n\nfunction describeCronDateScope(dayOfMonth: string) {\n if (dayOfMonth === \"*\") {\n return \"\";\n }\n if (/^\\d+(,\\d+)*$/.test(dayOfMonth)) {\n return ` on dates ${describeCronList(dayOfMonth)}`;\n }\n return ` on day ${dayOfMonth}`;\n}\n\nfunction describeCronWeekdayScope(dayOfWeek: string) {\n if (dayOfWeek === \"*\") {\n return \"\";\n }\n if (dayOfWeek === \"1\") {\n return \" on Mondays\";\n }\n if (dayOfWeek === \"1-5\") {\n return \" on weekdays\";\n }\n if (dayOfWeek === \"0\" || dayOfWeek === \"7\") {\n return \" on Sundays\";\n }\n return ` on weekday ${dayOfWeek}`;\n}\n\nfunction describeCronCalendarScope(dayOfMonth: string, month: string, dayOfWeek: string) {\n return [\n describeCronDateScope(dayOfMonth),\n describeCronWeekdayScope(dayOfWeek),\n describeCronMonthScope(month),\n ].join(\"\");\n}\n\nfunction describeWorkflowCronExpression(expression: string, timezone = \"UTC\") {\n const cron = String(expression ?? \"\").trim();\n if (!isValidSimpleCronExpression(cron)) {\n return \"Enter exactly five CRON fields: minute hour day month weekday.\";\n }\n\n const parts = splitCronExpression(cron);\n const numericHour = isNumericCronPart(parts.hour) ? formatCronNumber(parts.hour) : null;\n const numericMinute = isNumericCronPart(parts.minute) ? formatCronNumber(parts.minute) : null;\n const minuteStep = getCronMinuteStep(parts.minute);\n const time = numericHour && numericMinute ? `${numericHour}:${numericMinute}` : null;\n const timezoneSuffix = timezone ? ` (${timezone})` : \"\";\n const calendarScope = describeCronCalendarScope(\n parts.dayOfMonth,\n parts.month,\n parts.dayOfWeek,\n );\n\n if (cron === \"* * * * *\") {\n return `Runs every minute${timezoneSuffix}.`;\n }\n if (\n /^\\*\\/\\d+$/.test(parts.minute) &&\n parts.hour === \"*\" &&\n parts.dayOfMonth === \"*\" &&\n parts.month === \"*\" &&\n parts.dayOfWeek === \"*\"\n ) {\n return `Runs every ${parts.minute.replace(\"*/\", \"\")} minutes${timezoneSuffix}.`;\n }\n if (minuteStep && numericHour) {\n return `Runs every ${minuteStep} minutes between ${numericHour}:00 and ${numericHour}:59${calendarScope}${timezoneSuffix}.`;\n }\n if (time && parts.dayOfMonth === \"*\" && parts.month === \"*\" && parts.dayOfWeek === \"*\") {\n return `Runs every day at ${time}${timezoneSuffix}.`;\n }\n if (time && parts.dayOfMonth === \"*\" && parts.month === \"*\" && parts.dayOfWeek === \"1\") {\n return `Runs every Monday at ${time}${timezoneSuffix}.`;\n }\n if (time && parts.dayOfMonth === \"*\" && parts.month === \"*\" && parts.dayOfWeek === \"1-5\") {\n return `Runs every weekday at ${time}${timezoneSuffix}.`;\n }\n if (time) {\n return `Runs at ${time}${calendarScope}${timezoneSuffix}.`;\n }\n return `Runs on the schedule ${cron}${timezoneSuffix}.`;\n}\n\nfunction workflowInputHasDefault(value: any) {\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n return (\n Object.prototype.hasOwnProperty.call(value, \"default\") &&\n value.default !== undefined &&\n value.default !== null\n );\n }\n return value !== undefined && value !== null;\n}\n\nfunction isWorkflowExpressionString(value: unknown) {\n return typeof value === \"string\" && /^\\s*\\{\\{\\s*.+?\\s*\\}\\}\\s*$/.test(value);\n}\n\nfunction serializeWorkflowDefinitionYaml(definition: WorkflowDefinitionDsl) {\n return YAML.stringify(definition);\n}\n\nfunction serializeJsonDtoValue(value: unknown, fallback: unknown = null) {\n if (typeof value === \"string\") {\n return value;\n }\n\n return JSON.stringify(value ?? fallback);\n}\n\nfunction formatReadonlyJson(value: unknown, emptyValue = \"{}\") {\n if (value === undefined || value === null || value === \"\") {\n return emptyValue;\n }\n\n if (typeof value === \"string\") {\n try {\n return JSON.stringify(JSON.parse(value), null, 2);\n } catch {\n return value;\n }\n }\n\n return JSON.stringify(value, null, 2);\n}\n\nfunction formatReadonlyYaml(value: unknown) {\n if (value === undefined || value === null || value === \"\") {\n return \"\";\n }\n\n if (typeof value === \"string\") {\n return value;\n }\n\n return YAML.stringify(value);\n}\n\nfunction normalizeJsonDisplayValue(value: unknown) {\n if (value === undefined || value === null || value === \"\") {\n return null;\n }\n\n if (typeof value === \"string\") {\n try {\n return JSON.parse(value);\n } catch {\n return value;\n }\n }\n\n return value;\n}\n\nfunction isPlainObjectValue(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction formatOutputVisualValue(value: unknown) {\n if (value === null || value === undefined) {\n return \"null\";\n }\n if (typeof value === \"boolean\") {\n return value ? \"true\" : \"false\";\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n return String(value);\n }\n return JSON.stringify(value);\n}\n\nfunction isUrlLike(value: string) {\n return /^https?:\\/\\//i.test(value);\n}\n\nfunction summarizeOutputValue(value: unknown) {\n const normalizedValue = normalizeJsonDisplayValue(value);\n\n if (normalizedValue === null || normalizedValue === undefined) {\n return \"No output\";\n }\n\n if (Array.isArray(normalizedValue)) {\n return `${normalizedValue.length} item${normalizedValue.length === 1 ? \"\" : \"s\"}`;\n }\n\n if (isPlainObjectValue(normalizedValue)) {\n const count = Object.keys(normalizedValue).length;\n return `${count} field${count === 1 ? \"\" : \"s\"}`;\n }\n\n return String(formatOutputVisualValue(normalizedValue));\n}\n\nfunction slugifyWorkflowKey(value: string) {\n return value\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n}\n\nfunction camelizeWorkflowInputKey(value: string) {\n const words = String(value ?? \"\")\n .trim()\n .replace(/['’]/g, \"\")\n .split(/[^a-zA-Z0-9]+/)\n .filter(Boolean);\n\n if (!words.length) {\n return \"\";\n }\n\n return words\n .map((word, index) => {\n const hasLowercase = /[a-z]/.test(word);\n const hasUppercase = /[A-Z]/.test(word);\n const normalizedWord = hasLowercase && hasUppercase ? word : word.toLowerCase();\n return index === 0\n ? normalizedWord.charAt(0).toLowerCase() + normalizedWord.slice(1)\n : normalizedWord.charAt(0).toUpperCase() + normalizedWord.slice(1);\n })\n .join(\"\");\n}\n\nfunction buildUniqueWorkflowInputKey(baseKey: string, existingKeys: string[]) {\n const fallbackKey = camelizeWorkflowInputKey(baseKey) || \"input\";\n const existing = new Set(existingKeys);\n if (!existing.has(fallbackKey)) {\n return fallbackKey;\n }\n\n let index = 2;\n while (existing.has(`${fallbackKey}${index}`)) {\n index += 1;\n }\n return `${fallbackKey}${index}`;\n}\n\nfunction buildUniqueWorkflowVariableKey(baseKey: string, existingKeys: string[]) {\n const fallbackKey = camelizeWorkflowInputKey(baseKey) || \"variable\";\n const existing = new Set(existingKeys);\n if (!existing.has(fallbackKey)) {\n return fallbackKey;\n }\n\n let index = 2;\n while (existing.has(`${fallbackKey}${index}`)) {\n index += 1;\n }\n return `${fallbackKey}${index}`;\n}\n\nfunction normalizeWorkflowTag(value: string) {\n return value.trim();\n}\n\nfunction parseWorkflowTagInput(value: string) {\n return value\n .split(\",\")\n .map(normalizeWorkflowTag)\n .filter(Boolean);\n}\n\nfunction formatWorkflowTags(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value.map((tag) => String(tag).trim()).filter(Boolean);\n }\n\n if (typeof value === \"string\") {\n try {\n const parsed = JSON.parse(value);\n if (Array.isArray(parsed)) {\n return parsed.map((tag) => String(tag).trim()).filter(Boolean);\n }\n } catch {\n return parseWorkflowTagInput(value);\n }\n }\n\n return [];\n}\n\nfunction buildUniqueWorkflowKey(baseKey: string, existingKeys: string[]) {\n const fallbackKey = slugifyWorkflowKey(baseKey) || \"item\";\n const existing = new Set(existingKeys);\n if (!existing.has(fallbackKey)) {\n return fallbackKey;\n }\n\n let index = 2;\n while (existing.has(`${fallbackKey}-${index}`)) {\n index += 1;\n }\n return `${fallbackKey}-${index}`;\n}\n\nfunction normalizeWorkflowInputDefinition(value: any) {\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n return {\n type: value.type ?? \"string\",\n label: value.label ?? \"\",\n required: Boolean(value.required),\n default: value.default ?? \"\",\n description: value.description ?? \"\",\n };\n }\n\n return {\n type: \"string\",\n label: \"\",\n required: false,\n default: value ?? \"\",\n description: \"\",\n };\n}\n\nfunction getWorkflowInputEntries(inputs?: Record<string, any>): WorkflowInputEntry[] {\n return Object.entries(inputs ?? {}).map(([key, value]) => ({\n key,\n definition: normalizeWorkflowInputDefinition(value),\n }));\n}\n\nfunction getWorkflowVariableMetadata(metadata?: Record<string, any>) {\n const variableDefinitions = metadata?.variableDefinitions;\n return variableDefinitions && typeof variableDefinitions === \"object\" && !Array.isArray(variableDefinitions)\n ? variableDefinitions as Record<string, any>\n : {};\n}\n\nfunction inferWorkflowVariableType(value: unknown, metadataType?: string) {\n if (\n metadataType &&\n WORKFLOW_INPUT_TYPE_OPTIONS.some((option) => option.value === metadataType)\n ) {\n return metadataType;\n }\n if (Array.isArray(value)) {\n return \"array\";\n }\n if (value && typeof value === \"object\") {\n return \"object\";\n }\n if (typeof value === \"number\") {\n return \"number\";\n }\n if (typeof value === \"boolean\") {\n return \"boolean\";\n }\n return \"string\";\n}\n\nfunction getWorkflowVariableEntries(\n variables?: Record<string, any>,\n metadata?: Record<string, any>,\n): WorkflowVariableEntry[] {\n const variableMetadata = getWorkflowVariableMetadata(metadata);\n return Object.entries(variables ?? {}).map(([key, value]) => {\n const meta = variableMetadata[key] ?? {};\n const label = typeof meta.label === \"string\" ? meta.label : key;\n return {\n key,\n definition: {\n type: inferWorkflowVariableType(value, meta.type),\n label,\n value,\n description: typeof meta.description === \"string\" ? meta.description : \"\",\n },\n };\n });\n}\n\nfunction stringifyWorkflowRunInputDefault(value: unknown, type: string) {\n if (value === undefined || value === null) {\n return type === \"boolean\" ? false : \"\";\n }\n\n if (type === \"object\" || type === \"array\") {\n return typeof value === \"string\" ? value : JSON.stringify(value, null, 2);\n }\n\n if (type === \"boolean\") {\n return Boolean(value);\n }\n\n return String(value);\n}\n\nfunction buildWorkflowRunInputDefaults(entries: WorkflowInputEntry[]) {\n return entries.reduce<Record<string, any>>((values, entry) => {\n values[entry.key] = stringifyWorkflowRunInputDefault(\n entry.definition.default,\n entry.definition.type,\n );\n return values;\n }, {});\n}\n\nfunction hasWorkflowInputDefaultValue(value: unknown) {\n return value !== undefined && value !== null && value !== \"\";\n}\n\nfunction formatWorkflowInputDefaultSummary(value: unknown) {\n if (!hasWorkflowInputDefaultValue(value)) {\n return \"No default value set\";\n }\n\n if (typeof value === \"object\") {\n const serialized = JSON.stringify(value);\n return `Default - ${serialized.length > 58 ? `${serialized.slice(0, 58)}...` : serialized}`;\n }\n\n const serialized = String(value);\n return `Default - ${serialized.length > 58 ? `${serialized.slice(0, 58)}...` : serialized}`;\n}\n\nfunction formatWorkflowVariableValueSummary(value: unknown) {\n if (typeof value === \"object\" && value !== null) {\n const serialized = JSON.stringify(value);\n return `Value - ${serialized.length > 58 ? `${serialized.slice(0, 58)}...` : serialized}`;\n }\n\n if (value === \"\") {\n return 'Value - \"\"';\n }\n\n const serialized = String(value ?? \"\");\n return `Value - ${serialized.length > 58 ? `${serialized.slice(0, 58)}...` : serialized}`;\n}\n\nfunction getWorkflowInputDefaultEditorValue(value: unknown, type: string) {\n if (!hasWorkflowInputDefaultValue(value)) {\n if (type === \"array\") {\n return [];\n }\n if (type === \"object\") {\n return {};\n }\n if (type === \"boolean\") {\n return false;\n }\n return \"\";\n }\n\n if (type === \"object\" || type === \"array\") {\n if (typeof value === \"string\") {\n try {\n return JSON.parse(value);\n } catch {\n return type === \"array\" ? [] : {};\n }\n }\n return value;\n }\n\n if (type === \"boolean\") {\n return Boolean(value);\n }\n\n return String(value);\n}\n\nfunction getWorkflowVariableInitialValue(type: string) {\n if (type === \"array\") {\n return [];\n }\n if (type === \"object\") {\n return {};\n }\n if (type === \"boolean\") {\n return false;\n }\n if (type === \"number\") {\n return 0;\n }\n return \"\";\n}\n\nfunction getWorkflowVariableEditorValue(value: unknown, type: string) {\n if (value === undefined || value === null) {\n return getWorkflowVariableInitialValue(type);\n }\n if (type === \"object\" || type === \"array\") {\n if (typeof value === \"string\") {\n try {\n return JSON.parse(value);\n } catch {\n return getWorkflowVariableInitialValue(type);\n }\n }\n return value;\n }\n if (type === \"boolean\") {\n return Boolean(value);\n }\n return String(value);\n}\n\nfunction parseWorkflowRunInputValue(value: any, type: string) {\n if (type === \"boolean\") {\n return Boolean(value);\n }\n\n if (type === \"number\") {\n if (value === \"\" || value === null || value === undefined) {\n return null;\n }\n const numericValue = Number(value);\n if (!Number.isFinite(numericValue)) {\n throw new Error(\"Enter a valid number.\");\n }\n return numericValue;\n }\n\n if (type === \"object\" || type === \"array\") {\n const trimmedValue = String(value ?? \"\").trim();\n if (!trimmedValue) {\n return type === \"array\" ? [] : {};\n }\n const parsed = JSON.parse(trimmedValue);\n if (type === \"array\" && !Array.isArray(parsed)) {\n throw new Error(\"Enter a valid JSON array.\");\n }\n if (type === \"object\" && !isPlainObjectValue(parsed)) {\n throw new Error(\"Enter a valid JSON object.\");\n }\n return parsed;\n }\n\n return value ?? \"\";\n}\n\nfunction normalizeWorkflowTriggerDefinition(value: any) {\n const configuration =\n value?.configuration && typeof value.configuration === \"object\" && !Array.isArray(value.configuration)\n ? value.configuration\n : {};\n\n return {\n id: value?.id ? String(value.id) : \"\",\n name: value?.name ? String(value.name) : \"\",\n type: value?.type ? String(value.type) : \"schedule\",\n disabled: Boolean(value?.disabled),\n configuration,\n metadata:\n value?.metadata && typeof value.metadata === \"object\" && !Array.isArray(value.metadata)\n ? value.metadata\n : undefined,\n };\n}\n\nfunction getWorkflowTriggerCronExpression(\n trigger: ReturnType<typeof normalizeWorkflowTriggerDefinition>,\n) {\n return String(\n trigger.configuration.cronExpression ?? trigger.configuration.cron ?? \"0 9 * * *\",\n );\n}\n\nfunction normalizeWorkflowDefinition(parsed: Record<string, any>): WorkflowDefinitionDsl {\n return {\n ...createEmptyWorkflowDefinition(),\n ...(parsed ?? {}),\n nodes: parsed.nodes,\n triggers: parsed.triggers ?? [],\n errors: parsed.errors ?? [],\n finally: parsed.finally ?? [],\n };\n}\n\nfunction validateWorkflowDefinitionSchema(\n value: unknown,\n nodeTypes: WorkflowNodeMetadataResponse[],\n options: {\n workflowKey?: string;\n requireWorkflowKey?: boolean;\n requireRootNode?: boolean;\n } = {},\n): string[] {\n const errors: string[] = [];\n const nodeTypeMap = new Map(nodeTypes.map((item) => [item.type, item]));\n const seenNodeIds = new Set<string>();\n const validNodeKinds = new Set([\"task\", \"control\", \"subflow\"]);\n const canonicalChildKeys = [\"tasks\", \"then\", \"else\", \"defaults\", \"errors\"];\n const unsupportedChildKeys = [\"children\", \"branches\", \"nodes\"];\n\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return [\"Workflow definition YAML must resolve to an object.\"];\n }\n\n const definition = value as Record<string, any>;\n\n if (options.requireWorkflowKey && !String(options.workflowKey ?? \"\").trim()) {\n errors.push(\"Workflow key is required.\");\n }\n\n if (!Array.isArray(definition.nodes)) {\n errors.push(\"Workflow definition YAML must include a nodes array.\");\n } else if (options.requireRootNode && !definition.nodes.length) {\n errors.push(\"Workflow definition must contain at least one root node.\");\n }\n\n if (\n definition.triggers !== undefined &&\n definition.triggers !== null &&\n !Array.isArray(definition.triggers)\n ) {\n errors.push(\"Workflow definition triggers must be an array when provided.\");\n }\n\n const validateNodeSequence = (nodes: unknown, scopeLabel: string) => {\n if (!Array.isArray(nodes)) {\n errors.push(`${scopeLabel} must be an array.`);\n return;\n }\n\n nodes.forEach((nodeValue, index) => {\n const prefix = `${scopeLabel} node ${index + 1}`;\n if (!nodeValue || typeof nodeValue !== \"object\" || Array.isArray(nodeValue)) {\n errors.push(`${prefix} must be an object.`);\n return;\n }\n\n const node = nodeValue as WorkflowNodeRecord;\n unsupportedChildKeys.forEach((key) => {\n if (Object.prototype.hasOwnProperty.call(node, key)) {\n errors.push(\n `${prefix} uses unsupported child key \"${key}\". Use \"tasks\", \"then\", \"else\", \"defaults\", \"errors\", or \"cases\" instead.`,\n );\n }\n });\n\n canonicalChildKeys.forEach((key) => {\n if (\n node[key] !== undefined &&\n node[key] !== null &&\n !Array.isArray(node[key])\n ) {\n errors.push(`${prefix} field \"${key}\" must be an array when provided.`);\n }\n });\n\n if (\n node.cases !== undefined &&\n node.cases !== null &&\n (typeof node.cases !== \"object\" || Array.isArray(node.cases))\n ) {\n errors.push(`${prefix} field \"cases\" must be an object of arrays when provided.`);\n } else if (node.cases && typeof node.cases === \"object\") {\n Object.entries(node.cases).forEach(([caseKey, caseNodes]) => {\n if (!Array.isArray(caseNodes)) {\n errors.push(`${prefix} case \"${caseKey}\" must be an array.`);\n }\n });\n }\n\n if (!node.id) {\n errors.push(`${prefix} is missing an id.`);\n } else if (seenNodeIds.has(String(node.id))) {\n errors.push(`Duplicate workflow node id \"${node.id}\".`);\n } else {\n seenNodeIds.add(String(node.id));\n }\n\n if (!node.kind) {\n errors.push(`${prefix} is missing a kind.`);\n } else if (!validNodeKinds.has(String(node.kind))) {\n errors.push(\n `${prefix} has unsupported kind \"${node.kind}\". Expected task, control, or subflow.`,\n );\n }\n\n if (!node.type) {\n errors.push(`${prefix} is missing a type.`);\n }\n\n const nodeType = node.type ? nodeTypeMap.get(String(node.type)) : undefined;\n if (node.type && nodeTypes.length && !nodeType) {\n errors.push(`Node \"${node.id ?? prefix}\" uses unregistered type \"${node.type}\".`);\n }\n\n if (node.kind && nodeType && node.kind !== nodeType.kind) {\n errors.push(\n `Node \"${node.id}\" kind \"${node.kind}\" does not match registered type \"${node.type}\" kind \"${nodeType.kind}\".`,\n );\n }\n\n const configuration = node.configuration ?? {};\n if (\n node.configuration !== undefined &&\n node.configuration !== null &&\n (typeof node.configuration !== \"object\" || Array.isArray(node.configuration))\n ) {\n errors.push(`Node \"${node.id ?? prefix}\" configuration must be an object.`);\n }\n\n (nodeType?.authoring?.configurationFields ?? []).forEach((field) => {\n if (!field.required) {\n return;\n }\n\n if (\n configuration &&\n typeof configuration === \"object\" &&\n !isConfigurationFieldVisibleForValidation(field, configuration)\n ) {\n return;\n }\n\n const valueForField =\n configuration && typeof configuration === \"object\"\n ? getFieldValue(configuration, field.path ?? field.key)\n : undefined;\n const isEmptyArray = Array.isArray(valueForField) && valueForField.length === 0;\n const isMissing =\n valueForField === undefined ||\n valueForField === null ||\n valueForField === \"\" ||\n isEmptyArray;\n\n if (isMissing) {\n errors.push(\n `Node \"${node.id}\" is missing required field \"${field.label ?? field.key}\".`,\n );\n }\n });\n\n (nodeType?.authoring?.childSlots ?? []).forEach((slot) => {\n const slotNodes =\n slot.kind === \"case-collection\"\n ? Object.values(node.cases ?? {}).flat()\n : Array.isArray(node[slot.key])\n ? node[slot.key]\n : [];\n const slotCount =\n slot.kind === \"case-collection\"\n ? Object.keys(node.cases ?? {}).length\n : slotNodes.length;\n if (slot.required && slotCount === 0) {\n errors.push(\n `Node \"${node.id}\" requires at least one child node in \"${slot.label ?? slot.key}\".`,\n );\n }\n if (slot.minItems && slotCount < slot.minItems) {\n errors.push(\n `Node \"${node.id}\" requires at least ${slot.minItems} nodes in \"${slot.label ?? slot.key}\".`,\n );\n }\n });\n\n validateNodeSequence(node.tasks ?? [], `${node.id ?? prefix} tasks`);\n validateNodeSequence(node.then ?? [], `${node.id ?? prefix} then`);\n validateNodeSequence(node.else ?? [], `${node.id ?? prefix} else`);\n validateNodeSequence(node.defaults ?? [], `${node.id ?? prefix} defaults`);\n validateNodeSequence(node.errors ?? [], `${node.id ?? prefix} errors`);\n Object.entries(node.cases ?? {}).forEach(([caseKey, caseNodes]) => {\n validateNodeSequence(caseNodes, `${node.id ?? prefix} case \"${caseKey}\"`);\n });\n });\n };\n\n if (Array.isArray(definition.nodes)) {\n validateNodeSequence(definition.nodes, \"root\");\n }\n validateNodeSequence(definition.errors ?? [], \"root errors\");\n validateNodeSequence(definition.finally ?? [], \"root finally\");\n\n if (Array.isArray(definition.triggers)) {\n const triggerIds = new Set<string>();\n const activeScheduleTriggers = definition.triggers.filter(\n (trigger) => trigger?.type === \"schedule\" && !trigger.disabled,\n );\n\n definition.triggers.forEach((trigger, index) => {\n const prefix = `Trigger ${index + 1}`;\n if (!trigger || typeof trigger !== \"object\" || Array.isArray(trigger)) {\n errors.push(`${prefix} must be an object.`);\n return;\n }\n\n if (!trigger.id) {\n errors.push(`${prefix} is missing an id.`);\n } else if (triggerIds.has(String(trigger.id))) {\n errors.push(`Duplicate workflow trigger id \"${trigger.id}\".`);\n } else {\n triggerIds.add(String(trigger.id));\n }\n\n if (![\"schedule\", \"webhook\"].includes(String(trigger.type))) {\n errors.push(`${prefix} has unsupported type \"${trigger.type}\".`);\n }\n\n if (trigger.type === \"schedule\") {\n const cronExpression = trigger.configuration?.cronExpression ?? trigger.configuration?.cron;\n if (!cronExpression || !isValidSimpleCronExpression(String(cronExpression))) {\n errors.push(`${prefix} requires a five-field CRON expression.`);\n }\n }\n });\n\n if (activeScheduleTriggers.length) {\n Object.entries(definition.inputs ?? {}).forEach(([inputKey, inputDefinition]) => {\n if (!workflowInputHasDefault(inputDefinition)) {\n errors.push(\n `Input \"${inputKey}\" requires a default value before enabling a scheduled trigger.`,\n );\n }\n });\n }\n }\n\n return errors;\n}\n\nfunction parseWorkflowDefinitionYaml(\n definitionYaml: WorkflowDefinitionRecord[\"definitionYaml\"],\n nodeTypes: WorkflowNodeMetadataResponse[],\n): WorkflowDefinitionParseResult {\n if (!definitionYaml) {\n const definition = createEmptyWorkflowDefinition();\n return {\n ok: true,\n definition,\n yaml: serializeWorkflowDefinitionYaml(definition),\n };\n }\n\n let parsed: unknown = definitionYaml;\n const yaml =\n typeof definitionYaml === \"string\"\n ? definitionYaml\n : serializeWorkflowDefinitionYaml(definitionYaml);\n\n if (typeof definitionYaml === \"string\") {\n try {\n parsed = YAML.parse(definitionYaml);\n } catch (error: any) {\n return {\n ok: false,\n errors: [`Invalid workflow YAML: ${error?.message ?? \"Unable to parse YAML.\"}`],\n yaml,\n };\n }\n }\n\n const errors = validateWorkflowDefinitionSchema(parsed, nodeTypes);\n if (errors.length) {\n return {\n ok: false,\n errors,\n yaml,\n };\n }\n\n return {\n ok: true,\n definition: normalizeWorkflowDefinition(parsed as Record<string, any>),\n yaml,\n };\n}\n\nfunction flattenWorkflowNodeIds(nodes: WorkflowNodeRecord[]): string[] {\n return nodes.flatMap((node) => [\n String(node.id),\n ...flattenWorkflowNodeIds(node.tasks ?? []),\n ...flattenWorkflowNodeIds(node.then ?? []),\n ...flattenWorkflowNodeIds(node.else ?? []),\n ...flattenWorkflowNodeIds(node.defaults ?? []),\n ...flattenWorkflowNodeIds(node.errors ?? []),\n ...Object.values(node.cases ?? {}).flatMap((caseNodes) =>\n flattenWorkflowNodeIds(caseNodes),\n ),\n ]);\n}\n\nfunction flattenWorkflowNodes(nodes: WorkflowNodeRecord[]): WorkflowNodeRecord[] {\n return nodes.flatMap((node) => [\n node,\n ...flattenWorkflowNodes(node.tasks ?? []),\n ...flattenWorkflowNodes(node.then ?? []),\n ...flattenWorkflowNodes(node.else ?? []),\n ...flattenWorkflowNodes(node.defaults ?? []),\n ...flattenWorkflowNodes(node.errors ?? []),\n ...Object.values(node.cases ?? {}).flatMap((caseNodes) =>\n flattenWorkflowNodes(caseNodes),\n ),\n ]);\n}\n\nfunction buildExecutionOutputEntries(\n outputPayload: unknown,\n nodes: WorkflowNodeRecord[],\n): WorkflowExecutionOutputEntry[] {\n const normalizedValue = normalizeJsonDisplayValue(outputPayload);\n\n if (normalizedValue === null || normalizedValue === undefined) {\n return [];\n }\n\n const nodeMap = new Map(\n flattenWorkflowNodes(nodes).map((node) => [String(node.id), node]),\n );\n\n if (isPlainObjectValue(normalizedValue)) {\n return Object.entries(normalizedValue).map(([key, value]) => {\n const node = nodeMap.get(key);\n\n return {\n key,\n label: node?.name ?? key,\n nodeId: key,\n nodeType: node?.type,\n value,\n };\n });\n }\n\n return [\n {\n key: \"execution-output\",\n label: \"Execution Output\",\n value: normalizedValue,\n },\n ];\n}\n\nfunction buildNodeId(type: string, definition: WorkflowDefinitionDsl) {\n const suffix = type.split(\".\").pop() ?? \"node\";\n const base = suffix.replace(/[^a-zA-Z0-9]+/g, \"\");\n let attempt = base.charAt(0).toLowerCase() + base.slice(1);\n let counter = 1;\n const nodeIds = new Set([\n ...flattenWorkflowNodeIds(definition.nodes),\n ...flattenWorkflowNodeIds(definition.errors ?? []),\n ...flattenWorkflowNodeIds(definition.finally ?? []),\n ]);\n\n while (nodeIds.has(attempt)) {\n counter += 1;\n attempt = `${base.charAt(0).toLowerCase() + base.slice(1)}${counter}`;\n }\n\n return attempt;\n}\n\nfunction countNodes(nodes: WorkflowNodeRecord[]): number {\n return nodes.reduce(\n (sum, node) =>\n sum +\n 1 +\n countNodes(node.tasks ?? []) +\n countNodes(node.then ?? []) +\n countNodes(node.else ?? []) +\n countNodes(node.defaults ?? []) +\n countNodes(node.errors ?? []) +\n Object.values(node.cases ?? {}).reduce(\n (caseSum, caseNodes) => caseSum + countNodes(caseNodes),\n 0,\n ),\n 0,\n );\n}\n\nfunction countTriggers(triggers?: Array<Record<string, any>>): number {\n return Array.isArray(triggers) ? triggers.length : 0;\n}\n\nfunction buildWorkflowInputExample(inputs?: Record<string, any>) {\n return Object.entries(inputs ?? {}).reduce<Record<string, any>>(\n (acc, [key, inputDefinition]) => {\n const normalized = normalizeWorkflowInputDefinition(inputDefinition);\n\n if (workflowInputHasDefault(normalized.default)) {\n acc[key] = normalized.default;\n return acc;\n }\n\n if (normalized.type === \"number\") {\n acc[key] = 123;\n } else if (normalized.type === \"boolean\") {\n acc[key] = true;\n } else if (normalized.type === \"date\") {\n acc[key] = \"2026-07-21\";\n } else if (normalized.type === \"object\") {\n acc[key] = { example: true };\n } else if (normalized.type === \"array\") {\n acc[key] = [\"example\"];\n } else {\n acc[key] = `<${key}>`;\n }\n\n return acc;\n },\n {},\n );\n}\n\nfunction formatExecutionDate(value?: string | null) {\n if (!value) {\n return \"Not available\";\n }\n\n const parsed = new Date(value);\n if (Number.isNaN(parsed.getTime())) {\n return \"Not available\";\n }\n\n return parsed.toLocaleString(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"2-digit\",\n });\n}\n\nfunction formatExecutionLogTime(value?: string | null) {\n if (!value) {\n return \"-\";\n }\n\n const parsed = new Date(value);\n if (Number.isNaN(parsed.getTime())) {\n return \"-\";\n }\n\n return parsed.toLocaleTimeString(undefined, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n });\n}\n\nfunction parseExecutionTimestamp(value?: string | null) {\n if (!value) {\n return null;\n }\n\n const parsed = new Date(value).getTime();\n return Number.isFinite(parsed) ? parsed : null;\n}\n\nfunction getNumericDurationMs(value?: number | string | null) {\n const numericValue =\n typeof value === \"string\" ? Number(value) : typeof value === \"number\" ? value : null;\n\n return typeof numericValue === \"number\" && Number.isFinite(numericValue)\n ? numericValue\n : null;\n}\n\nfunction formatDurationMs(value?: number | string | null) {\n const numericValue = getNumericDurationMs(value);\n\n if (numericValue == null || Number.isNaN(numericValue) || numericValue <= 0) {\n return \"Not available\";\n }\n\n if (numericValue < 1000) {\n return `${numericValue} ms`;\n }\n\n const seconds = numericValue / 1000;\n if (seconds < 60) {\n return `${seconds.toFixed(seconds >= 10 ? 0 : 1)} s`;\n }\n\n const minutes = Math.floor(seconds / 60);\n const remainingSeconds = Math.round(seconds % 60);\n return `${minutes}m ${remainingSeconds}s`;\n}\n\nfunction getExecutionStatusCategory(status?: string | null) {\n const normalized = (status ?? \"\").trim().toLowerCase();\n\n if ([\"success\", \"succeeded\", \"completed\", \"complete\"].includes(normalized)) {\n return \"success\";\n }\n if ([\"failed\", \"error\", \"errored\", \"cancelled\", \"canceled\"].includes(normalized)) {\n return \"failed\";\n }\n if ([\"running\", \"in_progress\", \"in-progress\", \"started\", \"processing\"].includes(normalized)) {\n return \"inProgress\";\n }\n if ([\"created\", \"pending\", \"queued\", \"scheduled\"].includes(normalized)) {\n return \"pending\";\n }\n\n return \"other\";\n}\n\nfunction workflowLogLevelTone(level?: string | null) {\n const value = (level ?? \"\").toLowerCase();\n if (value === \"error\" || value === \"fatal\") {\n return \"danger\";\n }\n if (value === \"warn\" || value === \"warning\") {\n return \"warn\";\n }\n if (value === \"info\") {\n return \"success\";\n }\n return undefined;\n}\n\nfunction buildWorkflowExecutionQueryString(options: {\n workflowDefinitionId: number;\n startDate?: Date | null;\n endDate?: Date | null;\n status?: string;\n search?: string;\n limit?: number;\n offset?: number;\n}) {\n const queryData: Record<string, any> = {\n limit: options.limit ?? WORKFLOW_EXECUTION_PAGE_SIZE,\n offset: options.offset ?? 0,\n sort: [\"startedAt:desc\", \"id:desc\"],\n filters: {\n workflowDefinition: {\n id: {\n $eq: options.workflowDefinitionId,\n },\n },\n },\n };\n\n if (options.status && options.status !== \"all\") {\n queryData.filters.status = {\n $eqi: options.status,\n };\n }\n\n if (options.search?.trim()) {\n queryData.filters.executionIdentifier = {\n $containsi: options.search.trim(),\n };\n }\n\n if (options.startDate || options.endDate) {\n queryData.filters.startedAt = {};\n if (options.startDate) {\n const startDate = new Date(options.startDate);\n startDate.setHours(0, 0, 0, 0);\n queryData.filters.startedAt.$gte = startDate.toISOString();\n }\n if (options.endDate) {\n const endDate = new Date(options.endDate);\n endDate.setHours(23, 59, 59, 999);\n queryData.filters.startedAt.$lte = endDate.toISOString();\n }\n }\n\n return qs.stringify(queryData, { encodeValuesOnly: true });\n}\n\nfunction buildWorkflowExecutionLogQueryString(options: {\n workflowExecutionId: number;\n level?: string;\n search?: string;\n}) {\n const queryData: Record<string, any> = {\n limit: 200,\n offset: 0,\n populate: [\"workflowStepExecution\"],\n sort: [\"sequenceNumber:asc\", \"occurredAt:asc\", \"id:asc\"],\n filters: {\n workflowExecution: {\n id: {\n $eq: options.workflowExecutionId,\n },\n },\n },\n };\n\n if (options.level && options.level !== \"all\") {\n queryData.filters.level = {\n $eqi: options.level,\n };\n }\n\n const trimmedSearch = options.search?.trim();\n if (trimmedSearch) {\n queryData.filters.$or = [\n { message: { $containsi: trimmedSearch } },\n { nodeId: { $containsi: trimmedSearch } },\n { nodeType: { $containsi: trimmedSearch } },\n { source: { $containsi: trimmedSearch } },\n { eventType: { $containsi: trimmedSearch } },\n ];\n }\n\n return qs.stringify(queryData, { encodeValuesOnly: true });\n}\n\nfunction buildWorkflowStepExecutionQueryString(options: {\n workflowExecutionId: number;\n}) {\n const queryData: Record<string, any> = {\n limit: 500,\n offset: 0,\n sort: [\"startedAt:asc\", \"sequenceNumber:asc\", \"id:asc\"],\n filters: {\n workflowExecution: {\n id: {\n $eq: options.workflowExecutionId,\n },\n },\n },\n };\n\n return qs.stringify(queryData, { encodeValuesOnly: true });\n}\n\nfunction buildTriggerDocsModel(trigger: Record<string, any>): WorkflowDocsModel {\n const triggerEntries = Object.entries(trigger ?? {}).filter(\n ([key]) => ![\"id\", \"type\", \"description\", \"disabled\", \"name\", \"label\"].includes(key),\n );\n\n return {\n title: trigger.label ?? trigger.name ?? trigger.id ?? \"Trigger\",\n subtitle: trigger.type ?? \"Trigger\",\n summary:\n trigger.description ??\n \"Workflow trigger that can launch the workflow on a schedule or external event.\",\n badges: [\"trigger\", trigger.disabled ? \"disabled\" : \"enabled\"].filter(Boolean),\n definitions: [\n {\n key: \"behavior\",\n label: \"Behavior\",\n content: trigger.disabled\n ? \"This trigger is currently disabled and will not launch workflow executions until it is enabled.\"\n : \"This trigger is currently enabled and may launch workflow executions based on its configuration.\",\n },\n {\n key: \"configuration\",\n label: \"Configuration\",\n content: `\\`\\`\\`yaml\\n${YAML.stringify(trigger)}\\`\\`\\``,\n },\n ],\n outputs: triggerEntries.map(([key, value]) => ({\n key,\n label: key,\n description:\n typeof value === \"object\"\n ? \"Structured trigger configuration value.\"\n : `Current value: ${String(value)}`,\n valueType: Array.isArray(value)\n ? \"array\"\n : typeof value === \"boolean\"\n ? \"boolean\"\n : typeof value === \"number\"\n ? \"number\"\n : typeof value === \"object\"\n ? \"object\"\n : \"string\",\n })),\n };\n}\n\nfunction findNodeById(\n nodes: WorkflowNodeRecord[],\n nodeId: string,\n): WorkflowNodeRecord | undefined {\n for (const node of nodes) {\n if (String(node.id) === nodeId) {\n return node;\n }\n\n const fromChildren =\n findNodeById(node.tasks ?? [], nodeId) ??\n findNodeById(node.then ?? [], nodeId) ??\n findNodeById(node.else ?? [], nodeId) ??\n findNodeById(node.defaults ?? [], nodeId) ??\n findNodeById(node.errors ?? [], nodeId) ??\n Object.values(node.cases ?? {})\n .map((caseNodes) => findNodeById(caseNodes, nodeId))\n .find(Boolean);\n\n if (fromChildren) {\n return fromChildren;\n }\n }\n\n return undefined;\n}\n\nfunction createExpressionSuggestion(\n group: WorkflowExpressionSuggestion[\"group\"],\n label: string,\n path: string,\n detail?: string,\n description?: string,\n): WorkflowExpressionSuggestion {\n return {\n group,\n label,\n insertText: `{{ ${path} }}`,\n detail,\n description,\n };\n}\n\nfunction inferWorkflowValueType(value: any) {\n if (Array.isArray(value)) {\n return \"array\";\n }\n if (value === null || value === undefined) {\n return undefined;\n }\n return typeof value === \"object\" ? \"object\" : typeof value;\n}\n\nfunction getNodeOutputSuggestions(\n node: WorkflowNodeRecord,\n nodeTypesByType: Map<string, WorkflowNodeMetadataResponse>,\n options: {\n prefix?: string;\n labelPrefix?: string;\n includeParallelTaskOutputs?: boolean;\n } = {},\n): WorkflowExpressionSuggestion[] {\n const nodeId = String(node.id ?? \"\").trim();\n if (!nodeId) {\n return [];\n }\n\n const nodeType = nodeTypesByType.get(String(node.type ?? \"\"));\n const outputDefinitions = nodeType?.authoring?.outputs ?? [];\n const prefix = options.prefix ?? `outputs.${nodeId}`;\n const labelPrefix = options.labelPrefix ?? nodeId;\n const suggestions = outputDefinitions\n .filter((output) => output.includeInRuntimeContext !== false)\n .map((output) => {\n const outputPath = output.path ?? output.key;\n return createExpressionSuggestion(\n \"Outputs\",\n `${labelPrefix}.${outputPath}`,\n `${prefix}.${outputPath}`,\n output.valueType,\n output.description,\n );\n });\n\n if (node.type === \"parallel\" && options.includeParallelTaskOutputs) {\n (node.tasks ?? []).forEach((task, index) => {\n suggestions.push(\n ...getNodeOutputSuggestions(task, nodeTypesByType, {\n prefix: `${prefix}.tasks.${index}.outputs.${task.id}`,\n labelPrefix: `${labelPrefix}.tasks.${index}.${task.id}`,\n }),\n );\n });\n }\n\n return suggestions;\n}\n\nfunction buildWorkflowExpressionSuggestions(\n definition: WorkflowDefinitionDsl,\n nodeTypes: WorkflowNodeMetadataResponse[],\n currentNodeId: string,\n secrets: SecretSuggestionRecord[] = [],\n): WorkflowExpressionSuggestion[] {\n const nodeTypesByType = new Map(nodeTypes.map((nodeType) => [nodeType.type, nodeType]));\n const suggestions: WorkflowExpressionSuggestion[] = [];\n const seenInsertText = new Set<string>();\n\n const addSuggestion = (suggestion: WorkflowExpressionSuggestion) => {\n if (seenInsertText.has(suggestion.insertText)) {\n return;\n }\n seenInsertText.add(suggestion.insertText);\n suggestions.push(suggestion);\n };\n\n Object.entries(definition.inputs ?? {}).forEach(([inputKey, inputDefinition]) => {\n const definitionObject =\n inputDefinition && typeof inputDefinition === \"object\" && !Array.isArray(inputDefinition)\n ? inputDefinition\n : {};\n addSuggestion(\n createExpressionSuggestion(\n \"Inputs\",\n inputKey,\n `inputs.${inputKey}`,\n definitionObject.type ?? inferWorkflowValueType(inputDefinition),\n definitionObject.description,\n ),\n );\n });\n\n const variableDefinitions =\n definition.metadata?.variableDefinitions &&\n typeof definition.metadata.variableDefinitions === \"object\" &&\n !Array.isArray(definition.metadata.variableDefinitions)\n ? definition.metadata.variableDefinitions\n : {};\n\n Object.entries(definition.variables ?? {}).forEach(([variableKey, variableValue]) => {\n const variableDefinition = variableDefinitions[variableKey] ?? {};\n addSuggestion(\n createExpressionSuggestion(\n \"Variables\",\n variableDefinition.label ?? variableKey,\n `variables.${variableKey}`,\n variableDefinition.type ?? inferWorkflowValueType(variableValue),\n variableDefinition.description,\n ),\n );\n });\n\n secrets\n .filter((secret) => String(secret.status ?? \"active\") === \"active\")\n .forEach((secret) => {\n const key = String(secret.key ?? \"\").trim();\n if (!key) {\n return;\n }\n addSuggestion(\n createExpressionSuggestion(\n \"Secrets\",\n secret.displayName ? `${secret.displayName} (${key})` : key,\n `secrets.${key}`,\n secret.valueType ?? \"secret\",\n secret.description,\n ),\n );\n });\n\n const addNodeOutputs = (node: WorkflowNodeRecord) => {\n getNodeOutputSuggestions(node, nodeTypesByType, {\n includeParallelTaskOutputs: true,\n }).forEach(addSuggestion);\n };\n\n const visitSequence = (nodes: WorkflowNodeRecord[]): boolean => {\n for (const node of nodes ?? []) {\n if (String(node.id) === currentNodeId) {\n return true;\n }\n\n if (node.type === \"parallel\" && Array.isArray(node.tasks)) {\n const foundInParallelBranch = node.tasks.some((task) => visitSequence([task]));\n if (foundInParallelBranch) {\n return true;\n }\n } else {\n const childSequences = [\n node.tasks,\n node.then,\n node.else,\n node.defaults,\n ...Object.values(node.cases ?? {}),\n ].filter(Array.isArray) as WorkflowNodeRecord[][];\n\n for (const childSequence of childSequences) {\n if (visitSequence(childSequence)) {\n return true;\n }\n }\n }\n\n addNodeOutputs(node);\n }\n\n return false;\n };\n\n visitSequence(definition.nodes ?? []);\n\n return suggestions;\n}\n\nfunction getFirstNodeId(nodes: WorkflowNodeRecord[]): string {\n return nodes[0]?.id ?? \"\";\n}\n\nfunction getDefinitionNodes(definition: WorkflowDefinitionDsl): WorkflowNodeRecord[] {\n return [\n ...(definition.nodes ?? []),\n ...(definition.errors ?? []),\n ...(definition.finally ?? []),\n ];\n}\n\nfunction findNodeInDefinition(\n definition: WorkflowDefinitionDsl,\n nodeId: string,\n): WorkflowNodeRecord | undefined {\n return findNodeById(getDefinitionNodes(definition), nodeId);\n}\n\nfunction updateNodeById(\n nodes: WorkflowNodeRecord[],\n nodeId: string,\n updater: (node: WorkflowNodeRecord) => WorkflowNodeRecord,\n): WorkflowNodeRecord[] {\n return nodes.map((node) => {\n if (String(node.id) === nodeId) {\n return updater(node);\n }\n\n return {\n ...node,\n tasks: node.tasks ? updateNodeById(node.tasks, nodeId, updater) : node.tasks,\n then: node.then ? updateNodeById(node.then, nodeId, updater) : node.then,\n else: node.else ? updateNodeById(node.else, nodeId, updater) : node.else,\n defaults: node.defaults\n ? updateNodeById(node.defaults, nodeId, updater)\n : node.defaults,\n errors: node.errors\n ? updateNodeById(node.errors, nodeId, updater)\n : node.errors,\n cases: node.cases\n ? Object.fromEntries(\n Object.entries(node.cases).map(([caseKey, caseNodes]) => [\n caseKey,\n updateNodeById(caseNodes, nodeId, updater),\n ]),\n )\n : node.cases,\n };\n });\n}\n\nfunction removeNodeById(\n nodes: WorkflowNodeRecord[],\n nodeId: string,\n): WorkflowNodeRecord[] {\n return nodes\n .filter((node) => String(node.id) !== nodeId)\n .map((node) => ({\n ...node,\n tasks: node.tasks ? removeNodeById(node.tasks, nodeId) : node.tasks,\n then: node.then ? removeNodeById(node.then, nodeId) : node.then,\n else: node.else ? removeNodeById(node.else, nodeId) : node.else,\n defaults: node.defaults\n ? removeNodeById(node.defaults, nodeId)\n : node.defaults,\n errors: node.errors\n ? removeNodeById(node.errors, nodeId)\n : node.errors,\n cases: node.cases\n ? Object.fromEntries(\n Object.entries(node.cases).map(([caseKey, caseNodes]) => [\n caseKey,\n removeNodeById(caseNodes, nodeId),\n ]),\n )\n : node.cases,\n }));\n}\n\nfunction insertAt<T>(items: T[], index: number, item: T): T[] {\n const safeIndex = Math.max(0, Math.min(index, items.length));\n return [...items.slice(0, safeIndex), item, ...items.slice(safeIndex)];\n}\n\nfunction insertNodeIntoDefinition(\n definition: WorkflowDefinitionDsl,\n target: WorkflowInsertTarget,\n nodeToInsert: WorkflowNodeRecord,\n): WorkflowDefinitionDsl {\n if (target.scope === \"root\") {\n return {\n ...definition,\n nodes: insertAt(definition.nodes, target.index, nodeToInsert),\n };\n }\n\n return {\n ...definition,\n nodes: updateNodeById(definition.nodes, target.parentNodeId, (node) => {\n if (target.scope === \"case\") {\n const cases = node.cases ?? {};\n const caseNodes = Array.isArray(cases[target.caseKey])\n ? cases[target.caseKey]\n : [];\n return {\n ...node,\n cases: {\n ...cases,\n [target.caseKey]: insertAt(caseNodes, target.index, nodeToInsert),\n },\n };\n }\n\n const slotNodes = Array.isArray(node[target.slotKey])\n ? (node[target.slotKey] as WorkflowNodeRecord[])\n : [];\n return {\n ...node,\n [target.slotKey]: insertAt(slotNodes, target.index, nodeToInsert),\n };\n }),\n };\n}\n\nfunction getNodesForInsertTarget(\n nodes: WorkflowNodeRecord[],\n target: WorkflowInsertTarget | null,\n): WorkflowNodeRecord[] {\n if (!target) {\n return nodes;\n }\n\n if (target.scope === \"root\") {\n return nodes;\n }\n\n const parentNode = findNodeById(nodes, target.parentNodeId);\n if (!parentNode) {\n return [];\n }\n\n if (target.scope === \"case\") {\n const cases = parentNode.cases ?? {};\n return Array.isArray(cases[target.caseKey]) ? cases[target.caseKey] : [];\n }\n\n return Array.isArray(parentNode[target.slotKey])\n ? (parentNode[target.slotKey] as WorkflowNodeRecord[])\n : [];\n}\n\nfunction getExpressionBoundaryNodeIdForInsertTarget(\n nodes: WorkflowNodeRecord[],\n target: WorkflowInsertTarget | null,\n) {\n const sequence = getNodesForInsertTarget(nodes, target);\n const nextNode = target ? sequence[target.index] : undefined;\n\n return nextNode?.id ? String(nextNode.id) : \"__workflow_pending_insert__\";\n}\n\nfunction getFieldValue(value: Record<string, any>, pathOrKey: string) {\n const parts = pathOrKey.split(\".\");\n let current: any = value;\n for (const part of parts) {\n current = current?.[part];\n if (current === undefined) {\n return undefined;\n }\n }\n return current;\n}\n\nfunction isConfigurationFieldVisibleForValidation(\n field: WorkflowNodeConfigurationFieldDefinition,\n configuration: Record<string, any>,\n) {\n const visibleWhen = field.uiSchema?.visibleWhen as\n | {\n field?: string;\n path?: string;\n equals?: any;\n notEquals?: any;\n includes?: any[];\n }\n | undefined;\n\n if (!visibleWhen) {\n return true;\n }\n\n const dependencyPath = visibleWhen.path ?? visibleWhen.field;\n if (!dependencyPath) {\n return true;\n }\n\n const dependencyValue = getFieldValue(configuration, dependencyPath);\n\n if (\"equals\" in visibleWhen) {\n return dependencyValue === visibleWhen.equals;\n }\n\n if (\"notEquals\" in visibleWhen) {\n return dependencyValue !== visibleWhen.notEquals;\n }\n\n if (Array.isArray(visibleWhen.includes)) {\n return visibleWhen.includes.includes(dependencyValue);\n }\n\n return true;\n}\n\nfunction validateWorkflowDefinitionClient(\n definition: WorkflowDefinitionDsl,\n nodeTypes: WorkflowNodeMetadataResponse[],\n workflowKey: string,\n): string[] {\n return validateWorkflowDefinitionSchema(definition, nodeTypes, {\n workflowKey,\n requireWorkflowKey: true,\n requireRootNode: true,\n });\n}\n\nexport function WorkflowDefinitionEditorPage() {\n const params = useParams();\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const entityApi = React.useMemo(\n () => createSolidEntityApi(\"workflowDefinition\"),\n [],\n );\n const workflowExecutionApi = React.useMemo(\n () => createSolidEntityApi(\"workflowExecution\"),\n [],\n );\n const workflowExecutionLogApi = React.useMemo(\n () => createSolidEntityApi(\"workflowExecutionLog\"),\n [],\n );\n const workflowStepExecutionApi = React.useMemo(\n () => createSolidEntityApi(\"workflowStepExecution\"),\n [],\n );\n const secretApi = React.useMemo(\n () => createSolidEntityApi(\"secret\"),\n [],\n );\n const {\n useCreateSolidEntityMutation,\n useGetSolidEntityByIdQuery,\n useUpdateSolidEntityMutation,\n } = entityApi;\n const {\n useLazyGetSolidEntitiesQuery: useLazyGetWorkflowExecutionsQuery,\n } = workflowExecutionApi;\n const {\n useLazyGetSolidEntitiesQuery: useLazyGetWorkflowExecutionLogsQuery,\n } = workflowExecutionLogApi;\n const {\n useLazyGetSolidEntitiesQuery: useLazyGetWorkflowStepExecutionsQuery,\n } = workflowStepExecutionApi;\n const {\n useGetSolidEntitiesQuery: useGetSecretsQuery,\n } = secretApi;\n\n const workflowDefinitionId = params.id ?? \"\";\n\n const {\n data: workflowDefinitionResponse,\n isLoading: isWorkflowDefinitionLoading,\n refetch,\n } = useGetSolidEntityByIdQuery(\n { id: workflowDefinitionId, qs: \"populate[0]=moduleMetadata\" },\n { skip: !workflowDefinitionId || workflowDefinitionId === \"new\" },\n );\n const [createWorkflowDefinition, { isLoading: isCreating }] =\n useCreateSolidEntityMutation();\n const [updateWorkflowDefinition, { isLoading: isSaving }] =\n useUpdateSolidEntityMutation();\n const [validateWorkflowDefinition, { isLoading: isServerValidating }] =\n useValidateWorkflowDefinitionMutation();\n const [executeWorkflowDefinition, { isLoading: isExecuting }] =\n useExecuteWorkflowDefinitionMutation();\n const [triggerGetWorkflowExecutions, workflowExecutionsQuery] =\n useLazyGetWorkflowExecutionsQuery();\n const [triggerGetWorkflowExecutionPresence, workflowExecutionPresenceQuery] =\n useLazyGetWorkflowExecutionsQuery();\n const [triggerGetWorkflowExecutionLogs, workflowExecutionLogsQuery] =\n useLazyGetWorkflowExecutionLogsQuery();\n const [triggerGetWorkflowStepExecutions, workflowStepExecutionsQuery] =\n useLazyGetWorkflowStepExecutionsQuery();\n const { data: moduleMetadataResponse } = useGetmodulesQuery(\n \"offset=0&limit=100&sort[0]=displayName%3Aasc\",\n );\n const { data: secretsResponse } = useGetSecretsQuery(\n \"offset=0&limit=1000&fields[0]=id&fields[1]=key&fields[2]=displayName&fields[3]=description&fields[4]=valueType&fields[5]=status&filters[status][$eq]=active&sort[0]=key%3Aasc\",\n );\n\n const {\n data: nodeTypes = [],\n isLoading: isNodeTypesLoading,\n isError: isNodeTypesError,\n } = useGetWorkflowNodeTypesQuery();\n\n const record = workflowDefinitionResponse?.data as\n | WorkflowDefinitionRecord\n | undefined;\n const moduleRecords = React.useMemo(\n () => ((moduleMetadataResponse?.records ?? []) as Record<string, any>[]),\n [moduleMetadataResponse?.records],\n );\n const selectableModuleRecords = React.useMemo(\n () => moduleRecords.filter(isWorkflowModuleSelectable),\n [moduleRecords],\n );\n const secretRecords = React.useMemo(\n () => ((secretsResponse?.records ?? []) as SecretSuggestionRecord[]),\n [secretsResponse?.records],\n );\n\n const [workflowKey, setWorkflowKey] = React.useState(\"\");\n const [workflowDisplayName, setWorkflowDisplayName] = React.useState(\"\");\n const [workflowModule, setWorkflowModule] = React.useState<Record<string, any> | null>(null);\n const [workflowModuleSuggestions, setWorkflowModuleSuggestions] = React.useState<\n Record<string, any>[]\n >([]);\n const [workflowNamespace, setWorkflowNamespace] = React.useState(\"\");\n const [workflowDescription, setWorkflowDescription] = React.useState(\"\");\n const [workflowStatus, setWorkflowStatus] = React.useState(\"draft\");\n const [workflowTags, setWorkflowTags] = React.useState<string[]>([]);\n const [workflowTagDraft, setWorkflowTagDraft] = React.useState(\"\");\n const [workflowIdentityErrors, setWorkflowIdentityErrors] =\n React.useState<WorkflowIdentityErrors>({});\n const [triggerGuideMode, setTriggerGuideMode] =\n React.useState<WorkflowTriggerGuideMode>(\"curl\");\n const [runInputsOpen, setRunInputsOpen] = React.useState(false);\n const [runInputValues, setRunInputValues] = React.useState<Record<string, any>>({});\n const [runInputErrors, setRunInputErrors] = React.useState<Record<string, string>>({});\n const [defaultValueEditorInputKey, setDefaultValueEditorInputKey] =\n React.useState<string | null>(null);\n const [defaultValueEditorDraft, setDefaultValueEditorDraft] = React.useState<any>(\"\");\n const [defaultValueEditorJsonText, setDefaultValueEditorJsonText] = React.useState(\"\");\n const [defaultValueEditorError, setDefaultValueEditorError] = React.useState(\"\");\n const [defaultValueEditorResetToken, setDefaultValueEditorResetToken] =\n React.useState(\"default-value-editor\");\n const [variableValueEditorKey, setVariableValueEditorKey] =\n React.useState<string | null>(null);\n const [variableValueEditorDraft, setVariableValueEditorDraft] = React.useState<any>(\"\");\n const [variableValueEditorJsonText, setVariableValueEditorJsonText] = React.useState(\"\");\n const [variableValueEditorError, setVariableValueEditorError] = React.useState(\"\");\n const [variableValueEditorResetToken, setVariableValueEditorResetToken] =\n React.useState(\"variable-value-editor\");\n const [definitionDraft, setDefinitionDraft] = React.useState<WorkflowDefinitionDsl>(\n createEmptyWorkflowDefinition(),\n );\n const [codeValue, setCodeValue] = React.useState(\n serializeWorkflowDefinitionYaml(createEmptyWorkflowDefinition()),\n );\n const [codeError, setCodeError] = React.useState<string | null>(null);\n const [selectedNodeId, setSelectedNodeId] = React.useState<string>(\"\");\n const [selectedTriggerId, setSelectedTriggerId] = React.useState<string>(\"\");\n const [editorOpen, setEditorOpen] = React.useState(false);\n const [pendingInsertTarget, setPendingInsertTarget] =\n React.useState<WorkflowInsertTarget | null>(null);\n const [topologyDocsOpen, setTopologyDocsOpen] = React.useState(false);\n const [topologyDocsNodeTypeKey, setTopologyDocsNodeTypeKey] =\n React.useState<string>(\"\");\n const [topologyDocsModel, setTopologyDocsModel] =\n React.useState<WorkflowDocsModel | undefined>();\n const [detailTab, setDetailTab] = React.useState<WorkflowDetailTab>(\n \"overview\",\n );\n const [topologyViewOpen, setTopologyViewOpen] = React.useState(true);\n const [topologyYamlViewOpen, setTopologyYamlViewOpen] = React.useState(false);\n const [topologySplitPercent, setTopologySplitPercent] = React.useState(\n readStoredTopologySplitPercent,\n );\n const topologySplitRef = React.useRef<HTMLDivElement | null>(null);\n const [overviewStartDate, setOverviewStartDate] = React.useState<Date | null>(null);\n const [overviewEndDate, setOverviewEndDate] = React.useState<Date | null>(null);\n const [executionPage, setExecutionPage] = React.useState(1);\n const [executionStatusFilter, setExecutionStatusFilter] = React.useState(\"all\");\n const [executionSearchFilter, setExecutionSearchFilter] = React.useState(\"\");\n const [executionWorkspaceTab, setExecutionWorkspaceTab] =\n React.useState<\"summary\" | \"list\">(\"summary\");\n const [selectedExecution, setSelectedExecution] =\n React.useState<WorkflowExecutionRecord | null>(null);\n const [selectedExecutionTab, setSelectedExecutionTab] = React.useState(\"summary\");\n const [selectedExecutionOutputMode, setSelectedExecutionOutputMode] =\n React.useState<\"visual\" | \"json\">(\"visual\");\n const [expandedExecutionOutputKey, setExpandedExecutionOutputKey] =\n React.useState<string | null>(null);\n const [executionLogLevelFilter, setExecutionLogLevelFilter] = React.useState(\"all\");\n const [executionLogSearch, setExecutionLogSearch] = React.useState(\"\");\n const [expandedExecutionLogId, setExpandedExecutionLogId] =\n React.useState<number | null>(null);\n const [expandedTimelineStepId, setExpandedTimelineStepId] =\n React.useState<number | null>(null);\n const [validationState, setValidationState] = React.useState<ValidationState>({\n status: \"idle\",\n errors: [],\n });\n\n React.useEffect(() => {\n setDetailTab(\"overview\");\n }, [workflowDefinitionId]);\n\n React.useEffect(() => {\n setOverviewStartDate(null);\n setOverviewEndDate(null);\n setExecutionPage(1);\n setExecutionStatusFilter(\"all\");\n setExecutionSearchFilter(\"\");\n setExecutionWorkspaceTab(\"summary\");\n setSelectedExecution(null);\n setSelectedExecutionTab(\"summary\");\n setSelectedExecutionOutputMode(\"visual\");\n setExecutionLogLevelFilter(\"all\");\n setExecutionLogSearch(\"\");\n setExpandedExecutionLogId(null);\n setExpandedTimelineStepId(null);\n }, [workflowDefinitionId]);\n\n React.useEffect(() => {\n if (workflowDefinitionId === \"new\") {\n if (!selectableModuleRecords.length) {\n return;\n }\n\n setWorkflowModule((current) =>\n (current && isWorkflowModuleSelectable(current) ? current : null) ??\n selectableModuleRecords[0] ??\n null,\n );\n return;\n }\n\n if (!record) {\n return;\n }\n\n const selectedModule =\n record.moduleMetadata ??\n moduleRecords.find(\n (module) =>\n module.id === record.moduleMetadataId ||\n module.name === record.moduleMetadataUserKey,\n ) ??\n null;\n\n if (selectedModule && isWorkflowModuleSelectable(selectedModule)) {\n setWorkflowModule(selectedModule);\n } else if (selectedModule) {\n setWorkflowModule(null);\n setWorkflowIdentityErrors((current) => ({\n ...current,\n moduleMetadata: \"Workflows cannot be saved to Solid Core. Select an application module.\",\n }));\n }\n }, [moduleRecords, record, selectableModuleRecords, workflowDefinitionId]);\n\n React.useEffect(() => {\n if (workflowDefinitionId === \"new\") {\n const emptyDefinition = createEmptyWorkflowDefinition();\n setWorkflowKey(\"\");\n setWorkflowDisplayName(\"\");\n setWorkflowNamespace(\"\");\n setWorkflowDescription(\"\");\n setWorkflowStatus(\"draft\");\n setWorkflowTags([]);\n setWorkflowTagDraft(\"\");\n setWorkflowIdentityErrors({});\n setDefinitionDraft(emptyDefinition);\n setCodeValue(serializeWorkflowDefinitionYaml(emptyDefinition));\n setCodeError(null);\n setSelectedNodeId(\"\");\n setSelectedTriggerId(\"\");\n setValidationState({ status: \"idle\", errors: [] });\n }\n }, [workflowDefinitionId]);\n\n React.useEffect(() => {\n if (workflowDefinitionId === \"new\") {\n return;\n }\n\n if (!record || (isNodeTypesLoading && !nodeTypes.length)) {\n return;\n }\n\n const parsed = parseWorkflowDefinitionYaml(record.definitionYaml, nodeTypes);\n setWorkflowKey(record.key ?? \"\");\n setWorkflowDisplayName(record.displayName ?? \"\");\n setWorkflowNamespace(record.namespace ?? \"\");\n setWorkflowStatus(record.status ?? \"draft\");\n setWorkflowTags(formatWorkflowTags(record.tags));\n setWorkflowTagDraft(\"\");\n setWorkflowIdentityErrors({});\n setSelectedNodeId(\"\");\n setSelectedTriggerId(\"\");\n setCodeValue(parsed.yaml);\n\n if (!parsed.ok) {\n const nextError = parsed.errors.join(\"\\n\");\n setWorkflowDescription(record.description ?? \"\");\n setDefinitionDraft(createEmptyWorkflowDefinition());\n setCodeError(nextError);\n setValidationState({\n status: \"invalid\",\n source: \"client\",\n message: \"Workflow definition YAML is invalid.\",\n errors: parsed.errors,\n });\n setDetailTab(\"topology\");\n setTopologyYamlViewOpen(true);\n return;\n }\n\n setWorkflowDescription(record.description ?? parsed.definition.description ?? \"\");\n setDefinitionDraft(parsed.definition);\n setCodeError(null);\n setSelectedNodeId(getFirstNodeId(parsed.definition.nodes));\n setValidationState({ status: \"idle\", errors: [] });\n }, [isNodeTypesLoading, nodeTypes, record, workflowDefinitionId]);\n\n React.useEffect(() => {\n if (!selectedNodeId) {\n return;\n }\n\n if (!findNodeInDefinition(definitionDraft, selectedNodeId)) {\n setSelectedNodeId(getFirstNodeId(definitionDraft.nodes));\n }\n }, [definitionDraft, selectedNodeId]);\n\n React.useEffect(() => {\n if (!selectedTriggerId) {\n return;\n }\n\n const exists = (definitionDraft.triggers ?? []).some(\n (trigger) => String(trigger.id) === selectedTriggerId,\n );\n if (!exists) {\n setSelectedTriggerId(\"\");\n }\n }, [definitionDraft.triggers, selectedTriggerId]);\n\n React.useEffect(() => {\n if (typeof window === \"undefined\") {\n return;\n }\n\n window.localStorage.setItem(\n TOPOLOGY_SPLIT_STORAGE_KEY,\n String(Math.round(topologySplitPercent)),\n );\n }, [topologySplitPercent]);\n\n const selectedNode = React.useMemo(\n () => findNodeInDefinition(definitionDraft, selectedNodeId),\n [definitionDraft, selectedNodeId],\n );\n\n const selectedNodeType = React.useMemo(() => {\n if (!selectedNode?.type) {\n return undefined;\n }\n return nodeTypes.find((nodeType) => nodeType.type === selectedNode.type);\n }, [nodeTypes, selectedNode]);\n\n const selectedNodeExpressionSuggestions = React.useMemo(\n () =>\n selectedNodeId\n ? buildWorkflowExpressionSuggestions(\n definitionDraft,\n nodeTypes,\n selectedNodeId,\n secretRecords,\n )\n : [],\n [definitionDraft, nodeTypes, selectedNodeId, secretRecords],\n );\n\n const addNodeExpressionSuggestions = React.useMemo(\n () =>\n pendingInsertTarget\n ? buildWorkflowExpressionSuggestions(\n definitionDraft,\n nodeTypes,\n getExpressionBoundaryNodeIdForInsertTarget(\n definitionDraft.nodes,\n pendingInsertTarget,\n ),\n secretRecords,\n )\n : [],\n [definitionDraft, nodeTypes, pendingInsertTarget, secretRecords],\n );\n\n const validateWorkflowIdentity = React.useCallback(() => {\n const errors: WorkflowIdentityErrors = {};\n const displayName = workflowDisplayName.trim();\n const key = workflowKey.trim();\n const namespace = workflowNamespace.trim();\n const pendingTags = parseWorkflowTagInput(workflowTagDraft);\n const tags = [...workflowTags, ...pendingTags];\n\n if (!displayName) {\n errors.displayName = \"Workflow name is required.\";\n }\n\n if (!workflowModule?.id && !workflowModule?.name) {\n errors.moduleMetadata = \"Module is required.\";\n } else if (!isWorkflowModuleSelectable(workflowModule)) {\n errors.moduleMetadata = \"Workflows cannot be saved to Solid Core. Select an application module.\";\n }\n\n if (!key) {\n errors.key = \"Key is required.\";\n } else if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(key)) {\n errors.key = \"Key can only contain lowercase letters, numbers, and hyphens.\";\n }\n\n if (namespace && !/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(namespace)) {\n errors.namespace =\n \"Namespace can only contain lowercase letters, numbers, dots, and hyphens.\";\n }\n\n if (tags.some((tag) => !/^[\\w.-]+$/.test(tag))) {\n errors.tags = \"Tags can only contain letters, numbers, underscores, dots, and hyphens.\";\n }\n\n setWorkflowIdentityErrors(errors);\n return errors;\n }, [\n workflowDisplayName,\n workflowKey,\n workflowModule,\n workflowNamespace,\n workflowTagDraft,\n workflowTags,\n ]);\n\n const hasWorkflowIdentityErrors = (errors: WorkflowIdentityErrors) =>\n Object.keys(errors).length > 0;\n\n const handleWorkflowDisplayNameChange = (nextDisplayName: string) => {\n setWorkflowDisplayName(nextDisplayName);\n\n if (workflowDefinitionId === \"new\") {\n setWorkflowKey(slugifyWorkflowKey(nextDisplayName));\n }\n\n setWorkflowIdentityErrors((current) => ({\n ...current,\n displayName: undefined,\n key: undefined,\n }));\n };\n\n const handleWorkflowNamespaceChange = (nextNamespace: string) => {\n setWorkflowNamespace(nextNamespace);\n setWorkflowIdentityErrors((current) => ({ ...current, namespace: undefined }));\n };\n\n const searchWorkflowModules = React.useCallback(\n ({ query }: { query: string }) => {\n const normalizedQuery = query.trim().toLowerCase();\n const nextSuggestions = normalizedQuery\n ? selectableModuleRecords.filter((module) =>\n [module.displayName, module.name]\n .filter(Boolean)\n .some((value) => String(value).toLowerCase().includes(normalizedQuery)),\n )\n : selectableModuleRecords;\n setWorkflowModuleSuggestions(nextSuggestions);\n },\n [selectableModuleRecords],\n );\n\n const handleWorkflowModuleChange = ({ value }: { value: any }) => {\n if (value && !isWorkflowModuleSelectable(value)) {\n setWorkflowModule(null);\n setWorkflowIdentityErrors((current) => ({\n ...current,\n moduleMetadata: \"Workflows cannot be saved to Solid Core. Select an application module.\",\n }));\n return;\n }\n\n setWorkflowModule(value ?? null);\n setWorkflowIdentityErrors((current) => ({ ...current, moduleMetadata: undefined }));\n };\n\n const commitWorkflowTags = React.useCallback((value = workflowTagDraft) => {\n const nextTags = parseWorkflowTagInput(value);\n if (!nextTags.length) {\n setWorkflowTagDraft(\"\");\n return;\n }\n\n setWorkflowTags((current) => {\n const seen = new Set(current.map((tag) => tag.toLowerCase()));\n const merged = [...current];\n nextTags.forEach((tag) => {\n const normalizedKey = tag.toLowerCase();\n if (!seen.has(normalizedKey)) {\n seen.add(normalizedKey);\n merged.push(tag);\n }\n });\n return merged;\n });\n setWorkflowTagDraft(\"\");\n setWorkflowIdentityErrors((current) => ({ ...current, tags: undefined }));\n }, [workflowTagDraft]);\n\n const removeWorkflowTag = (tagToRemove: string) => {\n setWorkflowTags((current) => current.filter((tag) => tag !== tagToRemove));\n setWorkflowIdentityErrors((current) => ({ ...current, tags: undefined }));\n };\n\n const handleWorkflowTagKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Enter\" || event.key === \",\") {\n event.preventDefault();\n commitWorkflowTags();\n return;\n }\n\n if (event.key === \"Backspace\" && !workflowTagDraft && workflowTags.length) {\n event.preventDefault();\n setWorkflowTags((current) => current.slice(0, -1));\n }\n };\n\n const topologyDocsNodeType = React.useMemo(() => {\n if (!topologyDocsNodeTypeKey) {\n return undefined;\n }\n return nodeTypes.find((nodeType) => nodeType.type === topologyDocsNodeTypeKey);\n }, [nodeTypes, topologyDocsNodeTypeKey]);\n\n const workflowStats = React.useMemo(\n () => ({\n nodeCount: countNodes(getDefinitionNodes(definitionDraft)),\n triggerCount: countTriggers(definitionDraft.triggers),\n inputCount:\n definitionDraft.inputs && typeof definitionDraft.inputs === \"object\"\n ? Array.isArray(definitionDraft.inputs)\n ? definitionDraft.inputs.length\n : Object.keys(definitionDraft.inputs).length\n : 0,\n }),\n [definitionDraft],\n );\n\n const numericWorkflowDefinitionId = React.useMemo(() => {\n const candidate = record?.id ?? Number(workflowDefinitionId);\n const parsedCandidate =\n typeof candidate === \"number\" ? candidate : Number(candidate);\n return Number.isFinite(parsedCandidate) ? parsedCandidate : null;\n }, [record?.id, workflowDefinitionId]);\n\n const validationTag = React.useMemo(() => {\n if (validationState.status === \"valid\") {\n return { tone: \"success\" as const, label: \"Validated\" };\n }\n if (validationState.status === \"invalid\") {\n return { tone: \"danger\" as const, label: \"Needs fixes\" };\n }\n if (validationState.status === \"validating\") {\n return { tone: undefined, label: \"Validating\" };\n }\n return { tone: undefined, label: \"Not validated\" };\n }, [validationState.status]);\n\n const loadWorkflowExecutions = React.useCallback(async (page = executionPage) => {\n if (!numericWorkflowDefinitionId) {\n return;\n }\n\n await triggerGetWorkflowExecutions(\n buildWorkflowExecutionQueryString({\n workflowDefinitionId: numericWorkflowDefinitionId,\n startDate: overviewStartDate,\n endDate: overviewEndDate,\n status: executionStatusFilter,\n search: executionSearchFilter,\n limit: WORKFLOW_EXECUTION_PAGE_SIZE,\n offset: (page - 1) * WORKFLOW_EXECUTION_PAGE_SIZE,\n }),\n );\n }, [\n executionPage,\n executionSearchFilter,\n executionStatusFilter,\n numericWorkflowDefinitionId,\n overviewEndDate,\n overviewStartDate,\n triggerGetWorkflowExecutions,\n ]);\n\n const loadWorkflowExecutionPresence = React.useCallback(async () => {\n if (!numericWorkflowDefinitionId || workflowDefinitionId === \"new\") {\n return;\n }\n\n await triggerGetWorkflowExecutionPresence(\n buildWorkflowExecutionQueryString({\n workflowDefinitionId: numericWorkflowDefinitionId,\n limit: 1,\n }),\n );\n }, [\n numericWorkflowDefinitionId,\n triggerGetWorkflowExecutionPresence,\n workflowDefinitionId,\n ]);\n\n React.useEffect(() => {\n void loadWorkflowExecutionPresence();\n }, [loadWorkflowExecutionPresence]);\n\n React.useEffect(() => {\n if (\n detailTab !== \"executions\" ||\n !numericWorkflowDefinitionId ||\n workflowDefinitionId === \"new\"\n ) {\n return;\n }\n\n void loadWorkflowExecutions();\n }, [\n detailTab,\n loadWorkflowExecutions,\n numericWorkflowDefinitionId,\n workflowDefinitionId,\n ]);\n\n const refreshWorkflowExecutionData = React.useCallback(async () => {\n if (!numericWorkflowDefinitionId || workflowDefinitionId === \"new\") {\n return;\n }\n\n setExecutionPage(1);\n await Promise.all([loadWorkflowExecutionPresence(), loadWorkflowExecutions(1)]);\n }, [\n loadWorkflowExecutionPresence,\n loadWorkflowExecutions,\n numericWorkflowDefinitionId,\n workflowDefinitionId,\n ]);\n\n const executionRecords = React.useMemo(\n () => ((workflowExecutionsQuery.data?.records ?? []) as WorkflowExecutionRecord[]),\n [workflowExecutionsQuery.data?.records],\n );\n const executionTotalRecords = workflowExecutionsQuery.data?.meta?.totalRecords ?? 0;\n const executionTotalPages = Math.max(\n 1,\n Math.ceil(executionTotalRecords / WORKFLOW_EXECUTION_PAGE_SIZE),\n );\n const executionPageStart = executionTotalRecords\n ? (executionPage - 1) * WORKFLOW_EXECUTION_PAGE_SIZE + 1\n : 0;\n const executionPageEnd = Math.min(\n executionPage * WORKFLOW_EXECUTION_PAGE_SIZE,\n executionTotalRecords,\n );\n const openExecutionDetails = React.useCallback((execution: WorkflowExecutionRecord) => {\n navigate(`/admin/core/solid-core/workflow-execution/detail/${execution.id}`);\n }, [navigate]);\n\n const loadSelectedExecutionLogs = React.useCallback(async () => {\n if (!selectedExecution?.id) {\n return;\n }\n\n await triggerGetWorkflowExecutionLogs(\n buildWorkflowExecutionLogQueryString({\n workflowExecutionId: selectedExecution.id,\n level: executionLogLevelFilter,\n search: executionLogSearch,\n }),\n );\n }, [\n executionLogLevelFilter,\n executionLogSearch,\n selectedExecution?.id,\n triggerGetWorkflowExecutionLogs,\n ]);\n\n React.useEffect(() => {\n if (!selectedExecution?.id) {\n return;\n }\n\n void loadSelectedExecutionLogs();\n }, [loadSelectedExecutionLogs, selectedExecution?.id]);\n\n const loadSelectedExecutionSteps = React.useCallback(async () => {\n if (!selectedExecution?.id) {\n return;\n }\n\n await triggerGetWorkflowStepExecutions(\n buildWorkflowStepExecutionQueryString({\n workflowExecutionId: selectedExecution.id,\n }),\n );\n }, [selectedExecution?.id, triggerGetWorkflowStepExecutions]);\n\n React.useEffect(() => {\n if (!selectedExecution?.id) {\n return;\n }\n\n void loadSelectedExecutionSteps();\n }, [loadSelectedExecutionSteps, selectedExecution?.id]);\n\n const executionLogRecords = React.useMemo(\n () => ((workflowExecutionLogsQuery.data?.records ?? []) as WorkflowExecutionLogRecord[]),\n [workflowExecutionLogsQuery.data?.records],\n );\n\n const executionStepRecords = React.useMemo(\n () => ((workflowStepExecutionsQuery.data?.records ?? []) as WorkflowStepExecutionRecord[]),\n [workflowStepExecutionsQuery.data?.records],\n );\n\n const executionTimeline = React.useMemo(() => {\n if (!selectedExecution) {\n return {\n rows: [],\n totalDurationMs: 0,\n startLabel: \"-\",\n endLabel: \"-\",\n slowestStep: null as WorkflowStepExecutionRecord | null,\n statusCounts: {} as Record<string, number>,\n };\n }\n\n const executionStart =\n parseExecutionTimestamp(selectedExecution.startedAt) ??\n parseExecutionTimestamp(selectedExecution.createdAt) ??\n Date.now();\n const executionFinish =\n parseExecutionTimestamp(selectedExecution.finishedAt) ??\n (getNumericDurationMs(selectedExecution.durationMs) != null\n ? executionStart + (getNumericDurationMs(selectedExecution.durationMs) ?? 0)\n : executionStart);\n\n const sortedSteps = [...executionStepRecords].sort((first, second) => {\n const firstSequence = first.sequenceNumber ?? first.id;\n const secondSequence = second.sequenceNumber ?? second.id;\n const firstStart = parseExecutionTimestamp(first.startedAt) ?? executionStart;\n const secondStart = parseExecutionTimestamp(second.startedAt) ?? executionStart;\n return firstStart - secondStart || firstSequence - secondSequence;\n });\n\n const normalizedSteps = sortedSteps.map((step) => {\n const durationMs = getNumericDurationMs(step.durationMs) ?? 0;\n const startedAt =\n parseExecutionTimestamp(step.startedAt) ??\n parseExecutionTimestamp(step.createdAt) ??\n executionStart;\n const finishedAt =\n parseExecutionTimestamp(step.finishedAt) ??\n (durationMs > 0 ? startedAt + durationMs : startedAt);\n\n return {\n step,\n startedAt,\n finishedAt: Math.max(finishedAt, startedAt),\n durationMs: Math.max(durationMs, Math.max(finishedAt - startedAt, 0)),\n };\n });\n\n const startMs = Math.min(\n executionStart,\n ...normalizedSteps.map((item) => item.startedAt),\n );\n const endMs = Math.max(\n executionFinish,\n ...normalizedSteps.map((item) => item.finishedAt),\n startMs + 1,\n );\n const spanMs = Math.max(endMs - startMs, 1);\n const statusCounts: Record<string, number> = {};\n let slowestStep: WorkflowStepExecutionRecord | null = null;\n let slowestDuration = -1;\n\n const rows = normalizedSteps.map((item, index) => {\n const status = (item.step.status ?? \"unknown\").toLowerCase();\n statusCounts[status] = (statusCounts[status] ?? 0) + 1;\n if (item.durationMs > slowestDuration) {\n slowestDuration = item.durationMs;\n slowestStep = item.step;\n }\n\n const width = Math.max((item.durationMs / spanMs) * 100, item.durationMs > 0 ? 1.2 : 0.55);\n\n return {\n ...item,\n index,\n label: item.step.nodeName || item.step.nodeId || item.step.stepExecutionKey || `Step ${index + 1}`,\n startOffsetPercent: Math.min(Math.max(((item.startedAt - startMs) / spanMs) * 100, 0), 100),\n widthPercent: Math.min(width, 100),\n depth: item.step.parentStepExecutionKey || item.step.parentNodeId ? 1 : 0,\n status,\n };\n });\n\n return {\n rows,\n totalDurationMs: spanMs,\n startLabel: formatExecutionLogTime(new Date(startMs).toISOString()),\n endLabel: formatExecutionLogTime(new Date(endMs).toISOString()),\n slowestStep,\n statusCounts,\n };\n }, [executionStepRecords, selectedExecution]);\n\n const renderOutputPrimitive = React.useCallback((value: unknown) => {\n if (typeof value === \"string\" && isUrlLike(value)) {\n return (\n <a href={value} target=\"_blank\" rel=\"noreferrer\">\n {value}\n </a>\n );\n }\n\n return formatOutputVisualValue(value);\n }, []);\n\n const renderOutputVisual = React.useCallback(\n (\n value: unknown,\n options: {\n hideSummary?: boolean;\n } = {},\n ): React.ReactNode => {\n const normalizedValue = normalizeJsonDisplayValue(value);\n\n if (normalizedValue === null || normalizedValue === undefined) {\n return (\n <div className=\"workflow-editor-output-empty\">\n <h4>No output produced</h4>\n <p>This execution completed without returning an output payload.</p>\n </div>\n );\n }\n\n if (!isPlainObjectValue(normalizedValue) && !Array.isArray(normalizedValue)) {\n return (\n <div className=\"workflow-editor-output-primitive\">\n <span>Result</span>\n <strong>{renderOutputPrimitive(normalizedValue)}</strong>\n </div>\n );\n }\n\n if (Array.isArray(normalizedValue)) {\n if (!normalizedValue.length) {\n return (\n <div className=\"workflow-editor-output-empty\">\n <h4>Empty array</h4>\n <p>The execution returned an empty collection.</p>\n </div>\n );\n }\n\n const objectRows = normalizedValue.filter(isPlainObjectValue);\n const tableKeys = Array.from(\n new Set(\n objectRows\n .flatMap((item) => Object.keys(item))\n .filter((key) =>\n objectRows.some((item) => {\n const cell = item[key];\n return !isPlainObjectValue(cell) && !Array.isArray(cell);\n }),\n ),\n ),\n ).slice(0, 6);\n\n if (objectRows.length === normalizedValue.length && tableKeys.length) {\n return (\n <div className=\"workflow-editor-output-visual\">\n {options.hideSummary ? null : (\n <div className=\"workflow-editor-output-visual__summary\">\n <strong>{normalizedValue.length}</strong>\n <span>items returned</span>\n </div>\n )}\n <div className=\"workflow-editor-output-table-wrap\">\n <table className=\"workflow-editor-output-table\">\n <thead>\n <tr>\n {tableKeys.map((key) => (\n <th key={key}>{key}</th>\n ))}\n </tr>\n </thead>\n <tbody>\n {objectRows.slice(0, 25).map((item, index) => (\n <tr key={index}>\n {tableKeys.map((key) => (\n <td key={key}>{renderOutputPrimitive(item[key])}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n {normalizedValue.length > 25 ? (\n <p className=\"workflow-editor-output-note\">\n Showing the first 25 rows. Switch to JSON to inspect the full payload.\n </p>\n ) : null}\n </div>\n );\n }\n\n return (\n <div className=\"workflow-editor-output-list\">\n {normalizedValue.slice(0, 25).map((item, index) => (\n <div key={index} className=\"workflow-editor-output-list-item\">\n <span>Item {index + 1}</span>\n <strong>{renderOutputPrimitive(item)}</strong>\n </div>\n ))}\n </div>\n );\n }\n\n const entries = Object.entries(normalizedValue);\n return (\n <div className=\"workflow-editor-output-object\">\n {options.hideSummary ? null : (\n <div className=\"workflow-editor-output-visual__summary\">\n <strong>{entries.length}</strong>\n <span>top-level fields</span>\n </div>\n )}\n <div className=\"workflow-editor-output-object-grid\">\n {entries.map(([key, item]) => {\n const isNested = isPlainObjectValue(item) || Array.isArray(item);\n return (\n <div\n key={key}\n className={`workflow-editor-output-field ${isNested ? \"is-nested\" : \"\"}`}\n >\n <span>{key}</span>\n {isNested ? (\n <pre>{formatReadonlyJson(item)}</pre>\n ) : (\n <strong>{renderOutputPrimitive(item)}</strong>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n [renderOutputPrimitive],\n );\n\n const selectedExecutionModalTabs = React.useMemo(() => {\n if (!selectedExecution) {\n return [];\n }\n\n const summaryContent = (\n <div className=\"workflow-editor-execution-detail-summary\">\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Status</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.status ?? \"Unknown\"}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Execution Identifier</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.executionIdentifier ?? \"-\"}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Workflow</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.workflowDisplayName ??\n workflowDisplayName ??\n record?.displayName ??\n \"-\"}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Workflow Key</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.workflowKey ?? workflowKey ?? \"-\"}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Trigger Type</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.triggerType ?? \"manual\"}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Started</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {formatExecutionDate(selectedExecution.startedAt || selectedExecution.createdAt)}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Finished</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {formatExecutionDate(selectedExecution.finishedAt)}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Duration</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {formatDurationMs(selectedExecution.durationMs)}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Definition Version</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.definitionVersion ?? \"-\"}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Definition Checksum</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.definitionChecksum ?? \"-\"}\n </div>\n </div>\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Requested By</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.requestedByUserId ?? \"-\"}\n </div>\n </div>\n </div>\n );\n\n const timelineContent = (\n <div className=\"workflow-editor-execution-timeline\">\n <div className=\"workflow-editor-execution-timeline__hero\">\n <div>\n <h4>Execution Timeline</h4>\n <p>\n Step-level timing across this execution. Parallel work appears as\n overlapping bars; sequential work appears left-to-right.\n </p>\n </div>\n <div className=\"workflow-editor-execution-timeline__stats\">\n <div>\n <span>Total span</span>\n <strong>{formatDurationMs(executionTimeline.totalDurationMs)}</strong>\n </div>\n <div>\n <span>Steps</span>\n <strong>{executionTimeline.rows.length}</strong>\n </div>\n <div>\n <span>Slowest</span>\n <strong>\n {executionTimeline.slowestStep?.nodeName ??\n executionTimeline.slowestStep?.nodeId ??\n \"-\"}\n </strong>\n </div>\n </div>\n </div>\n\n {workflowStepExecutionsQuery.isFetching && !executionTimeline.rows.length ? (\n <div className=\"workflow-editor-execution-timeline__loading\">\n <SolidSpinner />\n <span>Loading step timeline...</span>\n </div>\n ) : executionTimeline.rows.length ? (\n <>\n <div className=\"workflow-editor-execution-timeline__legend\">\n {Object.entries(executionTimeline.statusCounts).map(([status, count]) => (\n <SolidTag key={status} tone={workflowLogLevelTone(status) as any}>\n {status}: {count}\n </SolidTag>\n ))}\n </div>\n\n <div className=\"workflow-editor-execution-gantt\">\n <div className=\"workflow-editor-execution-gantt__ruler\">\n <span>{executionTimeline.startLabel}</span>\n <span>{formatDurationMs(executionTimeline.totalDurationMs)}</span>\n <span>{executionTimeline.endLabel}</span>\n </div>\n\n <div className=\"workflow-editor-execution-gantt__rows\">\n {executionTimeline.rows.map((row) => {\n const isExpanded = expandedTimelineStepId === row.step.id;\n\n return (\n <div\n key={row.step.id}\n className={`workflow-editor-execution-gantt-row workflow-editor-execution-gantt-row--${row.status} ${isExpanded ? \"is-expanded\" : \"\"}`}\n >\n <button\n type=\"button\"\n className=\"workflow-editor-execution-gantt-row__main\"\n aria-expanded={isExpanded}\n onClick={() =>\n setExpandedTimelineStepId((current) =>\n current === row.step.id ? null : row.step.id,\n )\n }\n >\n <span className=\"workflow-editor-execution-gantt-row__toggle\">\n <ChevronRight size={14} />\n </span>\n <span\n className=\"workflow-editor-execution-gantt-row__identity\"\n style={{ \"--workflow-step-depth\": row.depth } as React.CSSProperties}\n >\n <strong>{row.label}</strong>\n <span>{row.step.nodeType ?? row.step.nodeKind ?? \"step\"}</span>\n </span>\n <span className=\"workflow-editor-execution-gantt-row__track\">\n <span\n className=\"workflow-editor-execution-gantt-row__bar\"\n style={{\n left: `${row.startOffsetPercent}%`,\n width: `${row.widthPercent}%`,\n }}\n />\n </span>\n <SolidTag tone={workflowLogLevelTone(row.status) as any}>\n {row.step.status ?? \"unknown\"}\n </SolidTag>\n <span className=\"workflow-editor-execution-gantt-row__duration\">\n {formatDurationMs(row.durationMs)}\n </span>\n </button>\n\n {isExpanded ? (\n <div className=\"workflow-editor-execution-gantt-row__details\">\n <div className=\"workflow-editor-execution-step-inspector\">\n <div className=\"workflow-editor-execution-step-inspector__header\">\n <div>\n <span>Step Detail</span>\n <h4>{row.label}</h4>\n </div>\n <button\n type=\"button\"\n aria-label=\"Collapse step detail\"\n onClick={() => setExpandedTimelineStepId(null)}\n >\n <X size={14} />\n </button>\n </div>\n\n <div className=\"workflow-editor-execution-step-inspector__meta\">\n <div>\n <span>Status</span>\n <strong>{row.step.status ?? \"unknown\"}</strong>\n </div>\n <div>\n <span>Node Id</span>\n <strong>{row.step.nodeId ?? \"-\"}</strong>\n </div>\n <div>\n <span>Node Type</span>\n <strong>{row.step.nodeType ?? \"-\"}</strong>\n </div>\n <div>\n <span>Attempt</span>\n <strong>{row.step.attemptNumber ?? 1}</strong>\n </div>\n <div>\n <span>Started</span>\n <strong>{formatExecutionDate(row.step.startedAt)}</strong>\n </div>\n <div>\n <span>Finished</span>\n <strong>{formatExecutionDate(row.step.finishedAt)}</strong>\n </div>\n <div>\n <span>Duration</span>\n <strong>{formatDurationMs(row.durationMs)}</strong>\n </div>\n <div>\n <span>Step Key</span>\n <strong>{row.step.stepExecutionKey ?? \"-\"}</strong>\n </div>\n </div>\n\n {row.step.errorSummary ? (\n <div className=\"workflow-editor-execution-step-inspector__error\">\n {row.step.errorSummary}\n </div>\n ) : null}\n </div>\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n </div>\n </>\n ) : (\n <div className=\"workflow-editor-execution-timeline__empty\">\n <h4>No step timing captured</h4>\n <p>\n This execution does not have persisted step execution records yet. Once\n step lifecycle records are present, this tab renders a proportional\n Gantt-style timeline automatically.\n </p>\n </div>\n )}\n </div>\n );\n\n const logLevelCounts = executionLogRecords.reduce<Record<string, number>>(\n (counts, log) => {\n const key = (log.level ?? \"unknown\").toLowerCase();\n counts[key] = (counts[key] ?? 0) + 1;\n return counts;\n },\n {},\n );\n const logsContent = (\n <div className=\"workflow-editor-execution-logs\">\n <div className=\"workflow-editor-execution-logs__hero\">\n <div>\n <h4>Execution Log Stream</h4>\n <p>\n Runtime messages emitted while this execution was processed, ordered by\n sequence and occurrence time.\n </p>\n </div>\n <div className=\"workflow-editor-execution-logs__stats\">\n <span>{workflowExecutionLogsQuery.isFetching ? \"Loading\" : `${executionLogRecords.length} logs`}</span>\n {Object.entries(logLevelCounts).map(([level, count]) => (\n <SolidTag key={level} tone={workflowLogLevelTone(level) as any}>\n {level}: {count}\n </SolidTag>\n ))}\n </div>\n </div>\n\n <div className=\"workflow-editor-execution-logs__filters\">\n <div className=\"workflow-editor-execution-logs__search\">\n <Search size={14} />\n <SolidInput\n value={executionLogSearch}\n placeholder=\"Search message, node, source\"\n onChange={(event) => {\n setExecutionLogSearch(event.target.value);\n setExpandedExecutionLogId(null);\n }}\n />\n </div>\n <SolidSelect\n value={executionLogLevelFilter}\n options={WORKFLOW_LOG_LEVEL_OPTIONS}\n onChange={(event) => {\n setExecutionLogLevelFilter(event.value ?? \"all\");\n setExpandedExecutionLogId(null);\n }}\n />\n </div>\n\n {workflowExecutionLogsQuery.isFetching && !executionLogRecords.length ? (\n <div className=\"workflow-editor-execution-logs__loading\">\n <SolidSpinner />\n <span>Loading execution logs...</span>\n </div>\n ) : executionLogRecords.length ? (\n <div className=\"workflow-editor-execution-log-list\">\n {executionLogRecords.map((log) => {\n const isSelected = expandedExecutionLogId === log.id;\n return (\n <div\n key={log.id}\n className={`workflow-editor-execution-log-row workflow-editor-execution-log-row--${(log.level ?? \"info\").toLowerCase()} ${isSelected ? \"is-selected\" : \"\"}`}\n >\n <button\n type=\"button\"\n className=\"workflow-editor-execution-log-row__main\"\n aria-expanded={isSelected}\n onClick={() =>\n setExpandedExecutionLogId((current) =>\n current === log.id ? null : log.id,\n )\n }\n >\n <span className=\"workflow-editor-execution-log-row__toggle\">\n <ChevronRight size={14} />\n </span>\n <span className=\"workflow-editor-execution-log-row__sequence\">\n {log.sequenceNumber ?? log.id}\n </span>\n <span className=\"workflow-editor-execution-log-row__time\">\n {formatExecutionLogTime(log.occurredAt || log.createdAt)}\n </span>\n <SolidTag tone={workflowLogLevelTone(log.level) as any}>\n {log.level ?? \"info\"}\n </SolidTag>\n <span className=\"workflow-editor-execution-log-row__node\">\n {log.nodeId ?? log.source ?? \"runtime\"}\n </span>\n <span className=\"workflow-editor-execution-log-row__message\">\n {log.message ?? \"No message\"}\n </span>\n {log.eventType ? (\n <span className=\"workflow-editor-execution-log-row__event\">\n {log.eventType}\n </span>\n ) : null}\n </button>\n {isSelected ? (\n <div className=\"workflow-editor-execution-log-row__details\">\n <div className=\"workflow-editor-execution-log-inspector\">\n <div className=\"workflow-editor-execution-log-inspector__header\">\n <div>\n <span>Log Detail</span>\n <h4>{log.message ?? \"No message\"}</h4>\n </div>\n <button\n type=\"button\"\n aria-label=\"Collapse log detail\"\n onClick={() => setExpandedExecutionLogId(null)}\n >\n <X size={14} />\n </button>\n </div>\n\n <div className=\"workflow-editor-execution-log-inspector__meta\">\n <div>\n <span>Level</span>\n <strong>{log.level ?? \"info\"}</strong>\n </div>\n <div>\n <span>Sequence</span>\n <strong>{log.sequenceNumber ?? log.id}</strong>\n </div>\n <div>\n <span>Occurred</span>\n <strong>\n {formatExecutionDate(log.occurredAt || log.createdAt)}\n </strong>\n </div>\n <div>\n <span>Node</span>\n <strong>{log.nodeId ?? \"-\"}</strong>\n </div>\n <div>\n <span>Node Type</span>\n <strong>{log.nodeType ?? \"-\"}</strong>\n </div>\n <div>\n <span>Source</span>\n <strong>{log.source ?? \"-\"}</strong>\n </div>\n <div>\n <span>Event Type</span>\n <strong>{log.eventType ?? \"-\"}</strong>\n </div>\n <div>\n <span>Log Key</span>\n <strong>{log.logKey ?? \"-\"}</strong>\n </div>\n </div>\n\n {log.context || log.metadata ? (\n <div className=\"workflow-editor-execution-log-inspector__payloads\">\n <div>\n <h5>Context</h5>\n <SolidCodeEditor\n language=\"json\"\n height=\"180px\"\n fontSize={12}\n readOnly\n value={formatReadonlyJson(log.context)}\n />\n </div>\n <div>\n <h5>Metadata</h5>\n <SolidCodeEditor\n language=\"json\"\n height=\"180px\"\n fontSize={12}\n readOnly\n value={formatReadonlyJson(log.metadata)}\n />\n </div>\n </div>\n ) : (\n <div className=\"workflow-editor-execution-log-inspector__empty\">\n No structured context or metadata was captured for this log.\n </div>\n )}\n </div>\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n ) : (\n <div className=\"workflow-editor-execution-logs__empty\">\n <h4>No logs found</h4>\n <p>\n This execution has no log entries matching the current filters. Try another\n level or clear the search text.\n </p>\n </div>\n )}\n </div>\n );\n\n const selectedExecutionOutputEntries = buildExecutionOutputEntries(\n selectedExecution.outputPayload,\n definitionDraft.nodes,\n );\n\n const outputContent = (\n <div className=\"workflow-editor-output-viewer\">\n <div className=\"workflow-editor-output-viewer__toolbar\">\n <div>\n <h4>Execution Output</h4>\n <p>Inspect node outputs visually or switch to the raw JSON payload.</p>\n </div>\n <div className=\"workflow-editor-view-toggle\" aria-label=\"Output view\">\n <button\n type=\"button\"\n className={`workflow-editor-view-toggle__button ${selectedExecutionOutputMode === \"visual\" ? \"is-active\" : \"\"}`}\n aria-label=\"Show visual output\"\n title=\"Visual output\"\n onClick={() => setSelectedExecutionOutputMode(\"visual\")}\n >\n <Layers3 size={14} />\n </button>\n <button\n type=\"button\"\n className={`workflow-editor-view-toggle__button ${selectedExecutionOutputMode === \"json\" ? \"is-active\" : \"\"}`}\n aria-label=\"Show JSON output\"\n title=\"JSON output\"\n onClick={() => setSelectedExecutionOutputMode(\"json\")}\n >\n <Braces size={14} />\n </button>\n </div>\n </div>\n\n {selectedExecutionOutputMode === \"json\" ? (\n <div className=\"workflow-editor-output-json-editor\">\n <SolidJsonEditor\n value={normalizeJsonDisplayValue(selectedExecution.outputPayload)}\n resetToken={`execution-output-${selectedExecution.id}-${selectedExecutionOutputMode}`}\n readOnly\n className=\"sdix-json-editor workflow-editor-output-json-host\"\n />\n </div>\n ) : selectedExecutionOutputEntries.length ? (\n <div className=\"workflow-editor-output-node-list\">\n {selectedExecutionOutputEntries.map((entry, index) => {\n const isExpanded = expandedExecutionOutputKey === entry.key;\n\n return (\n <div\n key={entry.key}\n className={`workflow-editor-output-node-row ${isExpanded ? \"is-expanded\" : \"\"}`}\n >\n <button\n type=\"button\"\n className=\"workflow-editor-output-node-row__header\"\n aria-expanded={isExpanded}\n onClick={() =>\n setExpandedExecutionOutputKey((current) =>\n current === entry.key ? null : entry.key,\n )\n }\n >\n <span className=\"workflow-editor-output-node-row__toggle\">\n <ChevronRight size={15} />\n </span>\n <span className=\"workflow-editor-output-node-row__sequence\">\n {index + 1}\n </span>\n <span className=\"workflow-editor-output-node-row__identity\">\n <strong>{entry.label}</strong>\n </span>\n <span className=\"workflow-editor-output-node-row__node-key\">\n {entry.nodeId ?? entry.key}\n </span>\n {entry.nodeType ? <SolidTag>{entry.nodeType}</SolidTag> : null}\n <span className=\"workflow-editor-output-node-row__summary\">\n {summarizeOutputValue(entry.value)}\n </span>\n </button>\n\n {isExpanded ? (\n <div className=\"workflow-editor-output-node-row__body\">\n <div className=\"workflow-editor-output-node-detail\">\n <div className=\"workflow-editor-output-node-detail__header\">\n <div>\n <span>Output Detail</span>\n <h4>{entry.label}</h4>\n </div>\n <button\n type=\"button\"\n aria-label=\"Collapse output detail\"\n onClick={() => setExpandedExecutionOutputKey(null)}\n >\n <X size={14} />\n </button>\n </div>\n {renderOutputVisual(entry.value, { hideSummary: true })}\n </div>\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n ) : (\n <div className=\"workflow-editor-output-empty\">\n <h4>No output produced</h4>\n <p>This execution completed without returning an output payload.</p>\n </div>\n )}\n </div>\n );\n\n return [\n {\n value: \"summary\",\n label: \"Summary\",\n content: summaryContent,\n },\n {\n value: \"timeline\",\n label: \"Timeline\",\n content: timelineContent,\n },\n {\n value: \"logs\",\n label: \"Logs\",\n content: logsContent,\n },\n {\n value: \"input\",\n label: \"Input\",\n content: (\n <SolidCodeEditor\n language=\"json\"\n height=\"calc(100vh - 260px)\"\n fontSize={12}\n readOnly\n value={formatReadonlyJson(selectedExecution.inputPayload)}\n />\n ),\n },\n {\n value: \"output\",\n label: \"Output\",\n content: outputContent,\n },\n {\n value: \"error\",\n label: \"Error\",\n content: (\n <div className=\"workflow-editor-execution-detail-error\">\n <div className=\"workflow-editor-execution-detail-kv\">\n <div className=\"workflow-editor-execution-detail-kv__label\">Error Summary</div>\n <div className=\"workflow-editor-execution-detail-kv__value\">\n {selectedExecution.errorSummary ?? \"-\"}\n </div>\n </div>\n <SolidCodeEditor\n language=\"json\"\n height=\"calc(100vh - 320px)\"\n fontSize={12}\n readOnly\n value={formatReadonlyJson(selectedExecution.errorDetails)}\n />\n </div>\n ),\n },\n {\n value: \"definition\",\n label: \"Definition\",\n content: (\n <SolidCodeEditor\n language=\"yaml\"\n height=\"calc(100vh - 260px)\"\n fontSize={12}\n readOnly\n value={formatReadonlyYaml(selectedExecution.definitionSnapshot)}\n />\n ),\n },\n ];\n }, [\n executionLogLevelFilter,\n executionLogRecords,\n executionLogSearch,\n executionTimeline,\n expandedExecutionOutputKey,\n expandedExecutionLogId,\n expandedTimelineStepId,\n definitionDraft.nodes,\n record?.displayName,\n renderOutputVisual,\n selectedExecution,\n selectedExecutionOutputMode,\n workflowDisplayName,\n workflowExecutionLogsQuery.isFetching,\n workflowStepExecutionsQuery.isFetching,\n workflowKey,\n ]);\n\n const hasExecutions = React.useMemo(\n () => (workflowExecutionPresenceQuery.data?.meta?.totalRecords ?? 0) > 0,\n [workflowExecutionPresenceQuery.data?.meta?.totalRecords],\n );\n\n const executionOverview = React.useMemo(() => {\n const totals = {\n total: executionRecords.length,\n success: 0,\n failed: 0,\n inProgress: 0,\n pending: 0,\n other: 0,\n totalDurationMs: 0,\n durationCount: 0,\n };\n\n for (const execution of executionRecords) {\n const category = getExecutionStatusCategory(execution.status);\n totals[category] += 1;\n\n const durationValue =\n typeof execution.durationMs === \"string\"\n ? Number(execution.durationMs)\n : execution.durationMs;\n if (\n typeof durationValue === \"number\" &&\n Number.isFinite(durationValue) &&\n durationValue > 0\n ) {\n totals.totalDurationMs += durationValue;\n totals.durationCount += 1;\n }\n }\n\n const terminalCount = totals.success + totals.failed;\n const successRatio = terminalCount ? Math.round((totals.success / terminalCount) * 100) : 0;\n const failedRatio = terminalCount ? Math.round((totals.failed / terminalCount) * 100) : 0;\n\n return {\n ...totals,\n successRatio,\n failedRatio,\n averageDurationMs: totals.durationCount\n ? Math.round(totals.totalDurationMs / totals.durationCount)\n : null,\n latestExecution: executionRecords[0],\n };\n }, [executionRecords]);\n\n const syncDraftToCode = React.useCallback((nextDraft: WorkflowDefinitionDsl) => {\n setDefinitionDraft(nextDraft);\n setCodeValue(serializeWorkflowDefinitionYaml(nextDraft));\n setCodeError(null);\n setValidationState({ status: \"idle\", errors: [] });\n }, []);\n\n const handleCodeChange = (nextValue: string | undefined) => {\n const safeValue = nextValue ?? \"\";\n setCodeValue(safeValue);\n\n const parsed = parseWorkflowDefinitionYaml(safeValue, nodeTypes);\n if (!parsed.ok) {\n const nextError = parsed.errors.join(\"\\n\");\n setCodeError(nextError);\n setValidationState({\n status: \"invalid\",\n source: \"client\",\n message: \"Definition YAML is invalid.\",\n errors: parsed.errors,\n });\n return;\n }\n\n setDefinitionDraft(parsed.definition);\n setCodeError(null);\n setValidationState({ status: \"idle\", errors: [] });\n };\n\n const startTopologySplitResize = React.useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n event.preventDefault();\n const container = topologySplitRef.current;\n if (!container) {\n return;\n }\n\n const handleMouseMove = (moveEvent: MouseEvent) => {\n const rect = container.getBoundingClientRect();\n if (!rect.width) {\n return;\n }\n\n const nextPercent = ((moveEvent.clientX - rect.left) / rect.width) * 100;\n setTopologySplitPercent(Math.min(78, Math.max(22, nextPercent)));\n };\n\n const handleMouseUp = () => {\n document.removeEventListener(\"mousemove\", handleMouseMove);\n document.removeEventListener(\"mouseup\", handleMouseUp);\n };\n\n document.addEventListener(\"mousemove\", handleMouseMove);\n document.addEventListener(\"mouseup\", handleMouseUp);\n },\n [],\n );\n\n const createNodeFromType = (nodeType: WorkflowNodeMetadataResponse): WorkflowNodeRecord => {\n const nextNode: WorkflowNodeRecord = {\n id: buildNodeId(nodeType.type, definitionDraft),\n kind: nodeType.kind,\n type: nodeType.type,\n name: nodeType.label ?? nodeType.type,\n description: nodeType.description ?? \"\",\n configuration: nodeType.authoring?.defaultConfiguration ?? {},\n };\n\n (nodeType.authoring?.childSlots ?? []).forEach((slot) => {\n if (slot.kind === \"case-collection\") {\n nextNode[slot.key] = nextNode[slot.key] ?? {\n true: [],\n false: [],\n };\n return;\n }\n\n nextNode[slot.key] = nextNode[slot.key] ?? [];\n });\n\n return nextNode;\n };\n\n const validateCurrentDefinition = React.useCallback(\n async (options?: { showSuccessToast?: boolean }) => {\n const identityErrors = validateWorkflowIdentity();\n if (hasWorkflowIdentityErrors(identityErrors)) {\n setDetailTab(\"overview\");\n return {\n valid: false,\n errors: Object.values(identityErrors).filter(Boolean) as string[],\n fieldErrors: true,\n };\n }\n\n if (codeError) {\n const nextState: ValidationState = {\n status: \"invalid\",\n source: \"client\",\n message: \"Definition YAML is invalid.\",\n errors: [codeError],\n };\n setValidationState(nextState);\n setDetailTab(\"topology\");\n return { valid: false, errors: nextState.errors };\n }\n\n setValidationState({\n status: \"validating\",\n errors: [],\n message: \"Validating workflow definition...\",\n });\n\n const clientErrors = validateWorkflowDefinitionClient(\n {\n ...definitionDraft,\n description: workflowDescription,\n },\n nodeTypes,\n workflowKey,\n );\n\n if (clientErrors.length) {\n const nextState: ValidationState = {\n status: \"invalid\",\n source: \"client\",\n message: \"Client-side validation failed.\",\n errors: clientErrors,\n };\n setValidationState(nextState);\n setDetailTab(\"topology\");\n return { valid: false, errors: clientErrors };\n }\n\n try {\n const response: any = await validateWorkflowDefinition({\n definitionYaml: serializeWorkflowDefinitionYaml({\n ...definitionDraft,\n description: workflowDescription,\n }),\n }).unwrap();\n\n const nextState: ValidationState = {\n status: \"valid\",\n source: \"server\",\n message: response?.message ?? \"Workflow definition is valid.\",\n errors: [],\n };\n setValidationState(nextState);\n\n if (options?.showSuccessToast) {\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Validation passed\",\n detail: nextState.message,\n }),\n );\n }\n\n return { valid: true, errors: [] };\n } catch (error: any) {\n const detail =\n error?.data?.message ??\n error?.message ??\n \"Workflow validation failed on the server.\";\n const nextState: ValidationState = {\n status: \"invalid\",\n source: \"server\",\n message: detail,\n errors: [detail],\n };\n setValidationState(nextState);\n setDetailTab(\"topology\");\n return { valid: false, errors: [detail] };\n }\n },\n [\n codeError,\n definitionDraft,\n dispatch,\n nodeTypes,\n validateWorkflowDefinition,\n validateWorkflowIdentity,\n workflowDescription,\n workflowKey,\n workflowModule,\n workflowNamespace,\n workflowStatus,\n workflowTagDraft,\n workflowTags,\n ],\n );\n\n const handleInsertNode = (target: WorkflowInsertTarget) => {\n setPendingInsertTarget(target);\n setDetailTab(\"topology\");\n };\n\n const handleAddNodeSubmit = (nextNode: WorkflowNodeRecord) => {\n if (!pendingInsertTarget) {\n return;\n }\n\n const nextDraft = insertNodeIntoDefinition(\n definitionDraft,\n pendingInsertTarget,\n nextNode,\n );\n syncDraftToCode(nextDraft);\n setSelectedNodeId(nextNode.id);\n setSelectedTriggerId(\"\");\n setPendingInsertTarget(null);\n setDetailTab(\"topology\");\n };\n\n const handleUpdateSelectedNode = (nextNode: WorkflowNodeRecord) => {\n if (!selectedNode) {\n return;\n }\n\n const nextDraft = {\n ...definitionDraft,\n nodes: updateNodeById(definitionDraft.nodes, selectedNode.id, () => nextNode),\n errors: definitionDraft.errors\n ? updateNodeById(definitionDraft.errors, selectedNode.id, () => nextNode)\n : definitionDraft.errors,\n finally: definitionDraft.finally\n ? updateNodeById(definitionDraft.finally, selectedNode.id, () => nextNode)\n : definitionDraft.finally,\n };\n\n syncDraftToCode(nextDraft);\n setSelectedNodeId(nextNode.id);\n };\n\n const handleRemoveNode = (nodeId: string) => {\n const nextDraft = {\n ...definitionDraft,\n nodes: removeNodeById(definitionDraft.nodes, nodeId),\n errors: definitionDraft.errors\n ? removeNodeById(definitionDraft.errors, nodeId)\n : definitionDraft.errors,\n finally: definitionDraft.finally\n ? removeNodeById(definitionDraft.finally, nodeId)\n : definitionDraft.finally,\n };\n syncDraftToCode(nextDraft);\n if (selectedNodeId === nodeId) {\n setSelectedNodeId(getFirstNodeId(nextDraft.nodes));\n }\n };\n\n const handleSave = async () => {\n const validation = await validateCurrentDefinition();\n if (!validation.valid) {\n if (!(validation as any).fieldErrors) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Validation failed\",\n detail: validation.errors[0] ?? \"Fix validation errors before saving.\",\n }),\n );\n }\n return;\n }\n\n const payload = {\n key: workflowKey,\n displayName: workflowDisplayName,\n moduleMetadataId: workflowModule?.id,\n moduleMetadataUserKey: workflowModule?.name,\n namespace: workflowNamespace || null,\n description: workflowDescription,\n status: workflowStatus,\n definitionYaml: serializeWorkflowDefinitionYaml({\n ...definitionDraft,\n description: workflowDescription,\n }),\n tags: serializeJsonDtoValue(\n [...workflowTags, ...parseWorkflowTagInput(workflowTagDraft)],\n [],\n ),\n };\n\n try {\n if (record?.id) {\n await updateWorkflowDefinition({\n id: record.id,\n data: payload,\n }).unwrap();\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Saved\",\n detail: \"Workflow definition updated successfully.\",\n }),\n );\n refetch();\n } else {\n const result: any = await createWorkflowDefinition(payload).unwrap();\n const createdId = result?.data?.id ?? result?.id;\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Created\",\n detail: \"Workflow definition created successfully.\",\n }),\n );\n if (createdId) {\n navigate(\n `/admin/core/solid-core/workflow-definition/editor/${createdId}`,\n { replace: true },\n );\n }\n }\n } catch (error: any) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Save failed\",\n detail:\n error?.data?.message ??\n error?.message ??\n \"Failed to save workflow definition.\",\n }),\n );\n }\n };\n\n const workflowInputEntries = React.useMemo(\n () => getWorkflowInputEntries(definitionDraft.inputs),\n [definitionDraft.inputs],\n );\n const workflowVariableEntries = React.useMemo(\n () => getWorkflowVariableEntries(definitionDraft.variables, definitionDraft.metadata),\n [definitionDraft.metadata, definitionDraft.variables],\n );\n const workflowExecutionReference =\n workflowDefinitionId && workflowDefinitionId !== \"new\"\n ? workflowDefinitionId\n : \"{workflowDefinitionId}\";\n const workflowExecutionKeyReference = workflowKey || \"{workflowKey}\";\n const workflowExecutionInputExample = React.useMemo(\n () => buildWorkflowInputExample(definitionDraft.inputs),\n [definitionDraft.inputs],\n );\n const workflowExecutionRequestBody = React.useMemo(\n () => ({\n input: workflowExecutionInputExample,\n triggerType: \"api\",\n }),\n [workflowExecutionInputExample],\n );\n const workflowCurlExample = React.useMemo(\n () =>\n [\n `curl -X POST \"http://localhost:3000/api/workflow-definition/${workflowExecutionReference}/execute\" \\\\`,\n ` -H \"Authorization: Bearer <access-token>\" \\\\`,\n ` -H \"Content-Type: application/json\" \\\\`,\n ` -d '${JSON.stringify(workflowExecutionRequestBody, null, 2)}'`,\n ].join(\"\\n\"),\n [workflowExecutionReference, workflowExecutionRequestBody],\n );\n const workflowApiExample = React.useMemo(\n () =>\n [\n `import { Injectable } from \"@nestjs/common\";`,\n `import { WorkflowInvocationService } from \"@solidxai/core\";`,\n ``,\n `@Injectable()`,\n `export class CustomerWorkflowSubscriber {`,\n ` constructor(private readonly workflows: WorkflowInvocationService) {}`,\n ``,\n ` async handleCustomerEvent() {`,\n ` return this.workflows.executeByKey(`,\n ` \"${workflowExecutionKeyReference}\",`,\n ` ${JSON.stringify(workflowExecutionRequestBody, null, 6).replace(/\\n/g, \"\\n \")},`,\n ` );`,\n ` }`,\n `}`,\n ].join(\"\\n\"),\n [workflowExecutionKeyReference, workflowExecutionRequestBody],\n );\n const defaultValueEditorEntry = React.useMemo(\n () =>\n workflowInputEntries.find((entry) => entry.key === defaultValueEditorInputKey) ??\n null,\n [defaultValueEditorInputKey, workflowInputEntries],\n );\n const variableValueEditorEntry = React.useMemo(\n () =>\n workflowVariableEntries.find((entry) => entry.key === variableValueEditorKey) ??\n null,\n [variableValueEditorKey, workflowVariableEntries],\n );\n\n const copyWorkflowTriggerExample = async (value: string) => {\n try {\n await navigator.clipboard.writeText(value);\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Copied\",\n detail: \"Workflow trigger example copied to clipboard.\",\n }),\n );\n } catch {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Copy failed\",\n detail: \"Unable to copy the workflow trigger example.\",\n }),\n );\n }\n };\n\n const executeWorkflowWithInput = async (input?: Record<string, any>) => {\n if (!record?.id) {\n dispatch(\n showToast({\n severity: \"warn\",\n summary: \"Save first\",\n detail: \"Create the workflow definition before launching execution.\",\n }),\n );\n return;\n }\n\n const validation = await validateCurrentDefinition();\n if (!validation.valid) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Execution blocked\",\n detail: validation.errors[0] ?? \"Workflow validation failed.\",\n }),\n );\n return;\n }\n\n try {\n const response: any = await executeWorkflowDefinition({\n id: record.id,\n ...(input ? { input } : {}),\n }).unwrap();\n dispatch(\n showToast({\n severity: response?.status === \"failed\" ? \"error\" : \"success\",\n summary:\n response?.status === \"failed\"\n ? \"Execution failed\"\n : \"Execution started\",\n detail:\n response?.executionIdentifier ??\n response?.errorSummary ??\n \"Workflow execution request completed.\",\n }),\n );\n void refreshWorkflowExecutionData();\n } catch (error: any) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Execution failed\",\n detail:\n error?.data?.message ??\n error?.message ??\n \"Failed to execute workflow definition.\",\n }),\n );\n }\n };\n\n const handleExecute = async () => {\n if (!record?.id) {\n dispatch(\n showToast({\n severity: \"warn\",\n summary: \"Save first\",\n detail: \"Create the workflow definition before launching execution.\",\n }),\n );\n return;\n }\n\n const validation = await validateCurrentDefinition();\n if (!validation.valid) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Execution blocked\",\n detail: validation.errors[0] ?? \"Workflow validation failed.\",\n }),\n );\n return;\n }\n\n if (workflowInputEntries.length) {\n setRunInputValues(buildWorkflowRunInputDefaults(workflowInputEntries));\n setRunInputErrors({});\n setRunInputsOpen(true);\n return;\n }\n\n await executeWorkflowWithInput();\n };\n\n const handleRunInputsSubmit = async () => {\n const errors: Record<string, string> = {};\n const input: Record<string, any> = {};\n\n for (const entry of workflowInputEntries) {\n const rawValue = runInputValues[entry.key];\n const isEmpty =\n entry.definition.type === \"boolean\"\n ? false\n : rawValue === undefined || rawValue === null || String(rawValue).trim() === \"\";\n\n if (entry.definition.required && isEmpty) {\n errors[entry.key] = \"This input is required.\";\n continue;\n }\n\n if (!entry.definition.required && isEmpty) {\n continue;\n }\n\n try {\n input[entry.key] = parseWorkflowRunInputValue(\n rawValue,\n entry.definition.type,\n );\n } catch (error: any) {\n errors[entry.key] = error?.message ?? \"Enter a valid value.\";\n }\n }\n\n setRunInputErrors(errors);\n if (Object.keys(errors).length) {\n return;\n }\n\n setRunInputsOpen(false);\n await executeWorkflowWithInput(input);\n };\n\n const identityFieldClass = (field: keyof WorkflowIdentityErrors) =>\n `workflow-editor-field ${workflowIdentityErrors[field] ? \"is-invalid\" : \"\"}`;\n\n const renderWorkflowTagsInput = () => (\n <div\n className={`workflow-editor-tag-input ${workflowIdentityErrors.tags ? \"is-invalid\" : \"\"}`}\n >\n {workflowTags.map((tag) => (\n <span key={tag} className=\"workflow-editor-tag-pill\">\n <span>{tag}</span>\n <button\n type=\"button\"\n aria-label={`Remove ${tag}`}\n onClick={() => removeWorkflowTag(tag)}\n >\n <X size={12} />\n </button>\n </span>\n ))}\n <SolidInput\n value={workflowTagDraft}\n placeholder={workflowTags.length ? \"Add tag\" : \"Type tag and press Enter\"}\n onChange={(event) => {\n setWorkflowTagDraft(event.target.value);\n setWorkflowIdentityErrors((current) => ({ ...current, tags: undefined }));\n }}\n onKeyDown={handleWorkflowTagKeyDown}\n onBlur={() => commitWorkflowTags()}\n />\n </div>\n );\n\n const renderWorkflowIdentityForm = () => (\n <SolidPanel header=\"Workflow Identity\">\n <div className=\"workflow-editor-create-form\">\n <div className={identityFieldClass(\"moduleMetadata\")}>\n <label>Module</label>\n <SolidAutocomplete\n value={workflowModule}\n suggestions={workflowModuleSuggestions}\n completeMethod={searchWorkflowModules}\n onChange={handleWorkflowModuleChange}\n dropdown\n forceSelection\n field=\"displayName\"\n placeholder=\"Select module\"\n className=\"workflow-editor-autocomplete\"\n inputClassName={workflowIdentityErrors.moduleMetadata ? \"is-invalid\" : undefined}\n />\n {workflowIdentityErrors.moduleMetadata ? (\n <div className=\"workflow-editor-field-error\">\n {workflowIdentityErrors.moduleMetadata}\n </div>\n ) : null}\n </div>\n\n <div className={identityFieldClass(\"displayName\")}>\n <label>Workflow Name</label>\n <SolidInput\n value={workflowDisplayName}\n placeholder=\"Send Welcome Email\"\n className={workflowIdentityErrors.displayName ? \"is-invalid\" : undefined}\n onChange={(event) => handleWorkflowDisplayNameChange(event.target.value)}\n />\n {workflowIdentityErrors.displayName ? (\n <div className=\"workflow-editor-field-error\">\n {workflowIdentityErrors.displayName}\n </div>\n ) : null}\n </div>\n\n <div className={identityFieldClass(\"key\")}>\n <label>Key</label>\n <SolidInput\n value={workflowKey}\n readOnly\n placeholder=\"generated-from-workflow-name\"\n className={workflowIdentityErrors.key ? \"is-invalid\" : undefined}\n />\n {workflowIdentityErrors.key ? (\n <div className=\"workflow-editor-field-error\">{workflowIdentityErrors.key}</div>\n ) : null}\n </div>\n\n <div className={identityFieldClass(\"namespace\")}>\n <label>Namespace</label>\n <SolidInput\n value={workflowNamespace}\n placeholder=\"customer.onboarding\"\n className={workflowIdentityErrors.namespace ? \"is-invalid\" : undefined}\n onChange={(event) => handleWorkflowNamespaceChange(event.target.value)}\n />\n {workflowIdentityErrors.namespace ? (\n <div className=\"workflow-editor-field-error\">\n {workflowIdentityErrors.namespace}\n </div>\n ) : null}\n </div>\n\n <div className=\"workflow-editor-field\">\n <label>Status</label>\n <SolidSelect\n value={workflowStatus}\n options={WORKFLOW_STATUS_OPTIONS}\n onChange={(event) => setWorkflowStatus(event.value ?? \"draft\")}\n />\n </div>\n\n <div className={identityFieldClass(\"tags\")}>\n <label>Tags</label>\n {renderWorkflowTagsInput()}\n {workflowIdentityErrors.tags ? (\n <div className=\"workflow-editor-field-error\">{workflowIdentityErrors.tags}</div>\n ) : null}\n </div>\n\n <div className=\"workflow-editor-field workflow-editor-field--wide\">\n <label>Description</label>\n <SolidTextarea\n value={workflowDescription}\n placeholder=\"Describe what this workflow does and when it should run.\"\n onChange={(event) => setWorkflowDescription(event.target.value)}\n />\n </div>\n </div>\n </SolidPanel>\n );\n\n const overviewContent = (\n <div className=\"workflow-editor-overview workflow-editor-overview--create\">\n {renderWorkflowIdentityForm()}\n </div>\n );\n\n const renderOptionalAuthoringEmptyState = ({\n icon,\n title,\n body,\n examples,\n primaryLabel,\n onPrimaryClick,\n }: {\n icon: React.ReactNode;\n title: string;\n body: string;\n examples: string[];\n primaryLabel: string;\n onPrimaryClick: () => void;\n }) => (\n <div className=\"workflow-editor-optional-state\">\n <div className=\"workflow-editor-placeholder__icon\">{icon}</div>\n <div className=\"workflow-editor-optional-state__copy\">\n <h3>{title}</h3>\n <p>{body}</p>\n </div>\n <div className=\"workflow-editor-optional-state__examples\">\n {examples.map((example) => (\n <SolidTag key={example}>{example}</SolidTag>\n ))}\n </div>\n <div className=\"workflow-editor-optional-state__actions\">\n <SolidButton onClick={onPrimaryClick}>{primaryLabel}</SolidButton>\n <SolidButton variant=\"outline\" onClick={() => setDetailTab(\"topology\")}>\n Configure Flow\n </SolidButton>\n </div>\n </div>\n );\n\n const triggerEntries = (definitionDraft.triggers ?? []).map((trigger, index) => ({\n index,\n trigger: normalizeWorkflowTriggerDefinition(trigger),\n }));\n const scheduledTriggerEntries = triggerEntries.filter(\n ({ trigger }) => trigger.type === \"schedule\",\n );\n\n const updateWorkflowInputs = (nextInputs: Record<string, any>) => {\n syncDraftToCode({\n ...definitionDraft,\n inputs: nextInputs,\n });\n };\n\n const addWorkflowInput = () => {\n const nextKey = buildUniqueWorkflowInputKey(\"Input\", Object.keys(definitionDraft.inputs ?? {}));\n updateWorkflowInputs({\n ...(definitionDraft.inputs ?? {}),\n [nextKey]: {\n type: \"string\",\n label: \"Input\",\n required: false,\n default: \"\",\n description: \"\",\n },\n });\n };\n\n const updateWorkflowInputLabel = (currentKey: string, nextLabel: string) => {\n const currentInputs = definitionDraft.inputs ?? {};\n const nextKey = buildUniqueWorkflowInputKey(\n nextLabel || currentKey,\n Object.keys(currentInputs).filter((key) => key !== currentKey),\n );\n\n if (!nextKey) {\n return;\n }\n\n const nextInputs: Record<string, any> = {};\n Object.entries(currentInputs).forEach(([key, value]) => {\n nextInputs[key === currentKey\n ? nextKey\n : key] = key === currentKey\n ? {\n ...normalizeWorkflowInputDefinition(value),\n label: nextLabel,\n }\n : value;\n });\n updateWorkflowInputs(nextInputs);\n };\n\n const updateWorkflowInput = (key: string, patch: Record<string, any>) => {\n const currentInputs = definitionDraft.inputs ?? {};\n updateWorkflowInputs({\n ...currentInputs,\n [key]: {\n ...normalizeWorkflowInputDefinition(currentInputs[key]),\n ...patch,\n },\n });\n };\n\n const closeDefaultValueEditor = () => {\n setDefaultValueEditorInputKey(null);\n setDefaultValueEditorDraft(\"\");\n setDefaultValueEditorJsonText(\"\");\n setDefaultValueEditorError(\"\");\n };\n\n const openDefaultValueEditor = (key: string) => {\n const definition = normalizeWorkflowInputDefinition((definitionDraft.inputs ?? {})[key]);\n const editorValue = getWorkflowInputDefaultEditorValue(\n definition.default,\n definition.type,\n );\n\n setDefaultValueEditorInputKey(key);\n setDefaultValueEditorDraft(editorValue);\n setDefaultValueEditorJsonText(\n definition.type === \"object\" || definition.type === \"array\"\n ? JSON.stringify(editorValue, null, 2)\n : \"\",\n );\n setDefaultValueEditorError(\"\");\n setDefaultValueEditorResetToken(`default-value-editor-${key}-${Date.now()}`);\n };\n\n const saveDefaultValueEditor = () => {\n if (!defaultValueEditorEntry) {\n return;\n }\n\n const type = defaultValueEditorEntry.definition.type;\n let nextDefaultValue: any = defaultValueEditorDraft;\n\n try {\n if (type === \"object\" || type === \"array\") {\n const trimmedText = defaultValueEditorJsonText.trim();\n nextDefaultValue = trimmedText\n ? JSON.parse(trimmedText)\n : type === \"array\"\n ? []\n : {};\n\n if (type === \"array\" && !Array.isArray(nextDefaultValue)) {\n throw new Error(\"Default value must be a JSON array.\");\n }\n\n if (type === \"object\" && !isPlainObjectValue(nextDefaultValue)) {\n throw new Error(\"Default value must be a JSON object.\");\n }\n } else if (isWorkflowExpressionString(nextDefaultValue)) {\n nextDefaultValue = String(nextDefaultValue).trim();\n } else if (type === \"number\") {\n if (nextDefaultValue === \"\" || nextDefaultValue === null || nextDefaultValue === undefined) {\n nextDefaultValue = \"\";\n } else {\n const numericValue = Number(nextDefaultValue);\n if (!Number.isFinite(numericValue)) {\n throw new Error(\"Default value must be a valid number.\");\n }\n nextDefaultValue = numericValue;\n }\n } else if (type === \"boolean\") {\n nextDefaultValue = Boolean(nextDefaultValue);\n } else {\n nextDefaultValue = nextDefaultValue ?? \"\";\n }\n } catch (error: any) {\n setDefaultValueEditorError(\n error?.message ? String(error.message) : \"Default value is invalid.\",\n );\n return;\n }\n\n updateWorkflowInput(defaultValueEditorEntry.key, { default: nextDefaultValue });\n closeDefaultValueEditor();\n };\n\n const clearDefaultValueEditor = () => {\n if (!defaultValueEditorEntry) {\n return;\n }\n\n updateWorkflowInput(defaultValueEditorEntry.key, { default: \"\" });\n closeDefaultValueEditor();\n };\n\n const removeWorkflowInput = (keyToRemove: string) => {\n const nextInputs = { ...(definitionDraft.inputs ?? {}) };\n delete nextInputs[keyToRemove];\n updateWorkflowInputs(nextInputs);\n };\n\n const updateWorkflowVariables = (\n nextVariables: Record<string, any>,\n nextVariableMetadata?: Record<string, any>,\n ) => {\n const currentMetadata = definitionDraft.metadata ?? {};\n const variableDefinitions =\n nextVariableMetadata ?? getWorkflowVariableMetadata(currentMetadata);\n syncDraftToCode({\n ...definitionDraft,\n variables: nextVariables,\n metadata: {\n ...currentMetadata,\n variableDefinitions,\n },\n });\n };\n\n const addWorkflowVariable = () => {\n const nextKey = buildUniqueWorkflowVariableKey(\n \"Variable\",\n Object.keys(definitionDraft.variables ?? {}),\n );\n updateWorkflowVariables(\n {\n ...(definitionDraft.variables ?? {}),\n [nextKey]: \"\",\n },\n {\n ...getWorkflowVariableMetadata(definitionDraft.metadata),\n [nextKey]: {\n label: \"Variable\",\n type: \"string\",\n description: \"\",\n },\n },\n );\n };\n\n const updateWorkflowVariableLabel = (currentKey: string, nextLabel: string) => {\n const currentVariables = definitionDraft.variables ?? {};\n const currentVariableMetadata = getWorkflowVariableMetadata(definitionDraft.metadata);\n const existingKeys = Object.keys(currentVariables).filter((key) => key !== currentKey);\n const nextKey = camelizeWorkflowInputKey(nextLabel)\n ? buildUniqueWorkflowVariableKey(nextLabel, existingKeys)\n : currentKey;\n\n if (!nextKey) {\n return;\n }\n\n const nextVariables: Record<string, any> = {};\n const nextVariableMetadata: Record<string, any> = {};\n\n Object.entries(currentVariables).forEach(([key, value]) => {\n const outputKey = key === currentKey ? nextKey : key;\n nextVariables[outputKey] = value;\n nextVariableMetadata[outputKey] = {\n ...(currentVariableMetadata[key] ?? {}),\n label: key === currentKey ? nextLabel : currentVariableMetadata[key]?.label,\n };\n });\n\n updateWorkflowVariables(nextVariables, nextVariableMetadata);\n };\n\n const updateWorkflowVariable = (key: string, patch: Record<string, any>) => {\n const currentVariables = definitionDraft.variables ?? {};\n const currentVariableMetadata = getWorkflowVariableMetadata(definitionDraft.metadata);\n const currentEntry =\n workflowVariableEntries.find((entry) => entry.key === key)?.definition ?? {\n type: inferWorkflowVariableType(currentVariables[key], currentVariableMetadata[key]?.type),\n label: key,\n description: \"\",\n };\n const nextType = patch.type ?? currentEntry.type;\n const nextValue = patch.value !== undefined\n ? patch.value\n : patch.type && patch.type !== currentEntry.type\n ? getWorkflowVariableInitialValue(nextType)\n : currentVariables[key];\n\n updateWorkflowVariables(\n {\n ...currentVariables,\n [key]: nextValue,\n },\n {\n ...currentVariableMetadata,\n [key]: {\n ...(currentVariableMetadata[key] ?? {}),\n label: patch.label ?? currentEntry.label,\n type: nextType,\n description: patch.description ?? currentEntry.description,\n },\n },\n );\n };\n\n const removeWorkflowVariable = (keyToRemove: string) => {\n const nextVariables = { ...(definitionDraft.variables ?? {}) };\n const nextVariableMetadata = {\n ...getWorkflowVariableMetadata(definitionDraft.metadata),\n };\n delete nextVariables[keyToRemove];\n delete nextVariableMetadata[keyToRemove];\n updateWorkflowVariables(nextVariables, nextVariableMetadata);\n };\n\n const closeVariableValueEditor = () => {\n setVariableValueEditorKey(null);\n setVariableValueEditorDraft(\"\");\n setVariableValueEditorJsonText(\"\");\n setVariableValueEditorError(\"\");\n };\n\n const openVariableValueEditor = (key: string) => {\n const entry = workflowVariableEntries.find((variableEntry) => variableEntry.key === key);\n if (!entry) {\n return;\n }\n\n const editorValue = getWorkflowVariableEditorValue(\n entry.definition.value,\n entry.definition.type,\n );\n\n setVariableValueEditorKey(key);\n setVariableValueEditorDraft(editorValue);\n setVariableValueEditorJsonText(\n entry.definition.type === \"object\" || entry.definition.type === \"array\"\n ? JSON.stringify(editorValue, null, 2)\n : \"\",\n );\n setVariableValueEditorError(\"\");\n setVariableValueEditorResetToken(`variable-value-editor-${key}-${Date.now()}`);\n };\n\n const saveVariableValueEditor = () => {\n if (!variableValueEditorEntry) {\n return;\n }\n\n const type = variableValueEditorEntry.definition.type;\n let nextValue: any = variableValueEditorDraft;\n\n try {\n if (type === \"object\" || type === \"array\") {\n const trimmedText = variableValueEditorJsonText.trim();\n nextValue = trimmedText\n ? JSON.parse(trimmedText)\n : getWorkflowVariableInitialValue(type);\n\n if (type === \"array\" && !Array.isArray(nextValue)) {\n throw new Error(\"Variable value must be a JSON array.\");\n }\n\n if (type === \"object\" && !isPlainObjectValue(nextValue)) {\n throw new Error(\"Variable value must be a JSON object.\");\n }\n } else if (isWorkflowExpressionString(nextValue)) {\n nextValue = String(nextValue).trim();\n } else if (type === \"number\") {\n const numericValue = Number(nextValue);\n if (!Number.isFinite(numericValue)) {\n throw new Error(\"Variable value must be a valid number.\");\n }\n nextValue = numericValue;\n } else if (type === \"boolean\") {\n nextValue = Boolean(nextValue);\n } else {\n nextValue = nextValue ?? \"\";\n }\n } catch (error: any) {\n setVariableValueEditorError(\n error?.message ? String(error.message) : \"Variable value is invalid.\",\n );\n return;\n }\n\n updateWorkflowVariable(variableValueEditorEntry.key, { value: nextValue });\n closeVariableValueEditor();\n };\n\n const renderDefaultValueEditorField = () => {\n if (!defaultValueEditorEntry) {\n return null;\n }\n\n const type = defaultValueEditorEntry.definition.type;\n\n if (type === \"object\" || type === \"array\") {\n return (\n <SolidJsonEditor\n value={defaultValueEditorDraft}\n resetToken={defaultValueEditorResetToken}\n className=\"workflow-editor-default-dialog__json-editor\"\n onValueChange={(value) => {\n setDefaultValueEditorDraft(value);\n setDefaultValueEditorError(\"\");\n }}\n onTextChange={(text) => setDefaultValueEditorJsonText(text)}\n onErrorChange={(message) => setDefaultValueEditorError(message ?? \"\")}\n />\n );\n }\n\n if (type === \"boolean\") {\n return (\n <SolidCheckbox\n checked={Boolean(defaultValueEditorDraft)}\n label=\"Use true as the default value\"\n onChange={(event) => {\n setDefaultValueEditorDraft(event.currentTarget.checked);\n setDefaultValueEditorError(\"\");\n }}\n />\n );\n }\n\n return (\n <WorkflowExpressionAutocompleteField\n value={String(defaultValueEditorDraft ?? \"\")}\n placeholder={type === \"date\" ? \"Select date\" : \"Enter default value\"}\n suggestions={selectedNodeExpressionSuggestions}\n onChange={(value) => {\n setDefaultValueEditorDraft(value);\n setDefaultValueEditorError(\"\");\n }}\n />\n );\n };\n\n const renderVariableValueEditorField = () => {\n if (!variableValueEditorEntry) {\n return null;\n }\n\n const type = variableValueEditorEntry.definition.type;\n\n if (type === \"object\" || type === \"array\") {\n return (\n <SolidJsonEditor\n value={variableValueEditorDraft}\n resetToken={variableValueEditorResetToken}\n className=\"workflow-editor-default-dialog__json-editor\"\n onValueChange={(value) => {\n setVariableValueEditorDraft(value);\n setVariableValueEditorError(\"\");\n }}\n onTextChange={(text) => setVariableValueEditorJsonText(text)}\n onErrorChange={(message) => setVariableValueEditorError(message ?? \"\")}\n />\n );\n }\n\n if (type === \"boolean\") {\n return (\n <SolidCheckbox\n checked={Boolean(variableValueEditorDraft)}\n label=\"Use true as the variable value\"\n onChange={(event) => {\n setVariableValueEditorDraft(event.currentTarget.checked);\n setVariableValueEditorError(\"\");\n }}\n />\n );\n }\n\n return (\n <WorkflowExpressionAutocompleteField\n value={String(variableValueEditorDraft ?? \"\")}\n placeholder={type === \"date\" ? \"Select date\" : \"Enter variable value\"}\n suggestions={selectedNodeExpressionSuggestions}\n onChange={(value) => {\n setVariableValueEditorDraft(value);\n setVariableValueEditorError(\"\");\n }}\n />\n );\n };\n\n const updateWorkflowTriggers = (nextTriggers: Array<Record<string, any>>) => {\n syncDraftToCode({\n ...definitionDraft,\n triggers: nextTriggers,\n });\n };\n\n const addWorkflowTrigger = () => {\n const nextId = buildUniqueWorkflowKey(\n \"trigger\",\n (definitionDraft.triggers ?? []).map((trigger) => String(trigger.id ?? \"\")),\n );\n updateWorkflowTriggers([\n ...(definitionDraft.triggers ?? []),\n {\n id: nextId,\n name: \"Trigger\",\n type: \"schedule\",\n disabled: false,\n configuration: {\n cronExpression: \"0 9 * * *\",\n timezone: \"UTC\",\n },\n },\n ]);\n };\n\n const updateWorkflowTrigger = (index: number, patch: Record<string, any>) => {\n const nextTriggers = (definitionDraft.triggers ?? []).map((trigger, triggerIndex) => {\n if (triggerIndex !== index) {\n return trigger;\n }\n\n const currentTrigger = normalizeWorkflowTriggerDefinition(trigger);\n const nextTrigger = {\n ...currentTrigger,\n ...patch,\n };\n\n if (patch.type && patch.type !== currentTrigger.type) {\n nextTrigger.configuration =\n patch.type === \"schedule\"\n ? { cronExpression: \"0 9 * * *\", timezone: \"UTC\" }\n : { method: \"POST\", path: `/${currentTrigger.id || \"trigger\"}` };\n }\n\n return nextTrigger;\n });\n updateWorkflowTriggers(nextTriggers);\n };\n\n const updateWorkflowTriggerConfiguration = (\n index: number,\n patch: Record<string, any>,\n ) => {\n const currentTrigger = normalizeWorkflowTriggerDefinition(\n (definitionDraft.triggers ?? [])[index],\n );\n const nextConfiguration = {\n ...currentTrigger.configuration,\n ...patch,\n };\n\n if (patch.cronExpression !== undefined) {\n delete nextConfiguration.cron;\n }\n\n updateWorkflowTrigger(index, {\n configuration: nextConfiguration,\n });\n };\n\n const removeWorkflowTrigger = (indexToRemove: number) => {\n updateWorkflowTriggers(\n (definitionDraft.triggers ?? []).filter((_, index) => index !== indexToRemove),\n );\n };\n\n const renderTriggerConfigurationFields = (\n trigger: ReturnType<typeof normalizeWorkflowTriggerDefinition>,\n index: number,\n ) => {\n const cronExpression = getWorkflowTriggerCronExpression(trigger);\n const cronParts = splitCronExpression(cronExpression);\n const timezone = String(trigger.configuration.timezone ?? \"UTC\");\n const setCronPart = (key: keyof typeof cronParts, value: string) => {\n updateWorkflowTriggerConfiguration(index, {\n timezone: \"UTC\",\n cronExpression: joinCronExpression({\n ...cronParts,\n [key]: value.trim() || \"*\",\n }),\n });\n };\n const inputsMissingDefaults = Object.entries(definitionDraft.inputs ?? {})\n .filter(([, inputDefinition]) => !workflowInputHasDefault(inputDefinition))\n .map(([inputKey]) => inputKey);\n\n return (\n <div className=\"workflow-editor-cron-builder workflow-editor-field--wide\">\n <div className=\"workflow-editor-cron-builder__header\">\n <div>\n <label>Schedule</label>\n <p>Define when this workflow should run. Times are evaluated in UTC.</p>\n </div>\n <div className=\"workflow-editor-cron-builder__header-meta\">\n <span>Generated expression</span>\n <code>{cronExpression}</code>\n <span>Timezone</span>\n <code>{timezone}</code>\n </div>\n </div>\n <div className=\"workflow-editor-cron-builder__grid\">\n {WORKFLOW_CRON_FIELD_HELP.map((field) => (\n <div className=\"workflow-editor-cron-builder__part\" key={field.key}>\n <label>{field.label}</label>\n <SolidInput\n value={cronParts[field.key]}\n placeholder={field.placeholder}\n onChange={(event) => setCronPart(field.key, event.target.value)}\n />\n <span>{field.help}</span>\n </div>\n ))}\n </div>\n <div className=\"workflow-editor-cron-builder__examples\">\n {WORKFLOW_CRON_EXAMPLES.map((example) => (\n <SolidButton\n key={example.value}\n variant=\"outline\"\n size=\"small\"\n onClick={() =>\n updateWorkflowTriggerConfiguration(index, {\n cronExpression: example.value,\n timezone: \"UTC\",\n })\n }\n >\n {example.label}\n </SolidButton>\n ))}\n </div>\n <div\n className={`workflow-editor-cron-builder__explanation${\n isValidSimpleCronExpression(cronExpression) ? \"\" : \" is-invalid\"\n }`}\n >\n {describeWorkflowCronExpression(cronExpression, timezone)}\n </div>\n {inputsMissingDefaults.length ? (\n <div className=\"workflow-editor-cron-builder__warning\">\n Scheduled workflows run without a user present. Add default values for:\n {\" \"}\n {inputsMissingDefaults.join(\", \")}.\n </div>\n ) : null}\n </div>\n );\n };\n\n const inputsContent = workflowInputEntries.length ? (\n <div className=\"workflow-editor-authoring-tab\">\n <div className=\"workflow-editor-authoring-header\">\n <div>\n <h3>Inputs</h3>\n <p>Define values that callers can provide when this workflow runs.</p>\n </div>\n <SolidButton onClick={addWorkflowInput}>Add Input</SolidButton>\n </div>\n\n <div className=\"workflow-editor-input-table\">\n <div className=\"workflow-editor-input-table__header\" role=\"row\">\n <span>Label</span>\n <span>Type</span>\n <span>Required</span>\n <span>Description</span>\n <span className=\"workflow-editor-input-table__actions-header\">Actions</span>\n </div>\n {workflowInputEntries.map(({ key, definition }, index) => (\n <div className=\"workflow-editor-input-table__row\" key={`input-row-${index}`} role=\"row\">\n <div className=\"workflow-editor-input-table__label-cell\">\n <SolidInput\n value={definition.label}\n placeholder=\"Customer ID\"\n onChange={(event) => updateWorkflowInputLabel(key, event.target.value)}\n />\n <span>\n We will use input field with name <strong>{key}</strong>.\n </span>\n </div>\n <div className=\"workflow-editor-input-table__type-cell\">\n <div className=\"workflow-editor-input-table__type-row\">\n <SolidSelect\n value={definition.type}\n options={WORKFLOW_INPUT_TYPE_OPTIONS}\n onChange={(event) =>\n updateWorkflowInput(key, { type: event.value ?? \"string\" })\n }\n />\n <button\n type=\"button\"\n className=\"workflow-editor-input-table__default-button\"\n aria-label={`Configure default value for ${key}`}\n title=\"Configure default value\"\n onClick={() => openDefaultValueEditor(key)}\n >\n <Braces size={14} />\n </button>\n </div>\n <span\n className={`workflow-editor-input-table__default-summary${\n hasWorkflowInputDefaultValue(definition.default) ? \"\" : \" is-empty\"\n }`}\n >\n {formatWorkflowInputDefaultSummary(definition.default)}\n </span>\n </div>\n <div className=\"workflow-editor-input-table__required\">\n <SolidCheckbox\n checked={definition.required}\n label=\"\"\n onChange={(event) =>\n updateWorkflowInput(key, { required: event.currentTarget.checked })\n }\n />\n </div>\n <SolidInput\n value={definition.description}\n placeholder=\"Describe this input\"\n onChange={(event) =>\n updateWorkflowInput(key, { description: event.target.value })\n }\n />\n <button\n type=\"button\"\n className=\"workflow-editor-input-table__delete\"\n aria-label={`Remove ${key}`}\n title=\"Remove input\"\n onClick={() => removeWorkflowInput(key)}\n >\n <Trash2 size={14} />\n </button>\n </div>\n ))}\n </div>\n </div>\n ) : (\n renderOptionalAuthoringEmptyState({\n icon: <Braces size={20} />,\n title: \"No inputs defined\",\n body:\n \"Inputs are optional. Add them when this workflow needs values at run time, such as a customer id, email, date range, or amount. If this workflow can run with fixed configuration or values produced inside the flow, you can skip inputs and configure the flow directly.\",\n examples: [\"customerId\", \"email\", \"startDate\", \"approvalAmount\"],\n primaryLabel: \"Add Input\",\n onPrimaryClick: addWorkflowInput,\n })\n );\n\n const variablesContent = workflowVariableEntries.length ? (\n <div className=\"workflow-editor-authoring-tab\">\n <div className=\"workflow-editor-authoring-header\">\n <div>\n <h3>Variables</h3>\n <p>Define reusable values owned by this workflow.</p>\n </div>\n <SolidButton onClick={addWorkflowVariable}>Add Variable</SolidButton>\n </div>\n\n <div className=\"workflow-editor-input-table workflow-editor-variable-table\">\n <div className=\"workflow-editor-input-table__header\" role=\"row\">\n <span>Name</span>\n <span>Type & value</span>\n <span>Description</span>\n <span className=\"workflow-editor-input-table__actions-header\">Actions</span>\n </div>\n {workflowVariableEntries.map(({ key, definition }, index) => (\n <div className=\"workflow-editor-input-table__row\" key={`variable-row-${index}`} role=\"row\">\n <div className=\"workflow-editor-input-table__label-cell\">\n <SolidInput\n value={definition.label}\n placeholder=\"API Base URL\"\n onChange={(event) => updateWorkflowVariableLabel(key, event.target.value)}\n />\n <span>\n We will use variable <strong>{key}</strong>.\n </span>\n </div>\n <div className=\"workflow-editor-input-table__type-cell\">\n <div className=\"workflow-editor-input-table__type-row\">\n <SolidSelect\n value={definition.type}\n options={WORKFLOW_INPUT_TYPE_OPTIONS}\n onChange={(event) =>\n updateWorkflowVariable(key, { type: event.value ?? \"string\" })\n }\n />\n <button\n type=\"button\"\n className=\"workflow-editor-input-table__default-button\"\n aria-label={`Configure value for ${key}`}\n title=\"Configure value\"\n onClick={() => openVariableValueEditor(key)}\n >\n <Braces size={14} />\n </button>\n </div>\n <span className=\"workflow-editor-input-table__default-summary\">\n {formatWorkflowVariableValueSummary(definition.value)}\n </span>\n </div>\n <SolidInput\n value={definition.description}\n placeholder=\"Describe this variable\"\n onChange={(event) =>\n updateWorkflowVariable(key, { description: event.target.value })\n }\n />\n <button\n type=\"button\"\n className=\"workflow-editor-input-table__delete\"\n aria-label={`Remove ${key}`}\n title=\"Remove variable\"\n onClick={() => removeWorkflowVariable(key)}\n >\n <Trash2 size={14} />\n </button>\n </div>\n ))}\n </div>\n </div>\n ) : (\n renderOptionalAuthoringEmptyState({\n icon: <Braces size={20} />,\n title: \"No variables defined\",\n body:\n \"Variables are optional workflow-owned values. Use them for constants shared across nodes, such as base URLs, thresholds, labels, or feature flags. Callers do not provide variables when executing the workflow.\",\n examples: [\"apiBaseUrl\", \"retryDelayMs\", \"notificationChannel\", \"featureEnabled\"],\n primaryLabel: \"Add Variable\",\n onPrimaryClick: addWorkflowVariable,\n })\n );\n\n const renderWorkflowTriggerCodeExample = (value: string) => (\n <div className=\"workflow-editor-trigger-guide-code\">\n <pre>\n <code>{value}</code>\n </pre>\n <SolidButton\n variant=\"outline\"\n size=\"small\"\n onClick={() => void copyWorkflowTriggerExample(value)}\n >\n <Copy size={14} />\n Copy\n </SolidButton>\n </div>\n );\n\n const scheduledTriggersContent = scheduledTriggerEntries.length ? (\n <div className=\"workflow-editor-authoring-list\">\n {scheduledTriggerEntries.map(({ trigger, index }) => (\n <SolidPanel key={`${trigger.id}-${index}`} header={trigger.name || trigger.id}>\n <div className=\"workflow-editor-form-grid\">\n <div className=\"workflow-editor-field\">\n <label>Id</label>\n <SolidInput\n value={trigger.id}\n onChange={(event) =>\n updateWorkflowTrigger(index, {\n id: slugifyWorkflowKey(event.target.value) || trigger.id,\n })\n }\n />\n </div>\n <div className=\"workflow-editor-field\">\n <label>Name</label>\n <SolidInput\n value={trigger.name}\n onChange={(event) =>\n updateWorkflowTrigger(index, { name: event.target.value })\n }\n />\n </div>\n <div className=\"workflow-editor-field\">\n <SolidCheckbox\n checked={trigger.disabled}\n label=\"Disabled\"\n onChange={(event) =>\n updateWorkflowTrigger(index, {\n disabled: event.currentTarget.checked,\n })\n }\n />\n </div>\n {renderTriggerConfigurationFields(trigger, index)}\n </div>\n <div className=\"workflow-editor-authoring-card-actions\">\n <SolidButton\n variant=\"ghost\"\n size=\"small\"\n onClick={() => removeWorkflowTrigger(index)}\n >\n Remove Trigger\n </SolidButton>\n </div>\n </SolidPanel>\n ))}\n </div>\n ) : (\n renderOptionalAuthoringEmptyState({\n icon: <Activity size={20} />,\n title: \"No scheduled triggers configured\",\n body:\n \"Scheduled triggers are optional. Add one when this workflow should run automatically on a CRON cadence. Scheduled workflows run without a user present, so every required input must have a default value.\",\n examples: [\"Every weekday at 09:00\", \"Every 15 minutes\", \"Every Monday at 02:00\"],\n primaryLabel: \"Add Scheduled Trigger\",\n onPrimaryClick: addWorkflowTrigger,\n })\n );\n\n const triggersContent = (\n <div className=\"workflow-editor-authoring-tab workflow-editor-trigger-guide\">\n <div className=\"workflow-editor-authoring-header\">\n <div>\n <h3>Triggers</h3>\n <p>\n Choose how this workflow should be started. Only scheduled triggers are saved\n into YAML; CURL and API are authenticated execution examples.\n </p>\n </div>\n {triggerGuideMode === \"scheduled\" && scheduledTriggerEntries.length ? (\n <SolidButton onClick={addWorkflowTrigger}>Add Scheduled Trigger</SolidButton>\n ) : null}\n </div>\n\n <div className=\"workflow-editor-trigger-guide-mode\" role=\"radiogroup\" aria-label=\"Trigger type\">\n {WORKFLOW_TRIGGER_GUIDE_OPTIONS.map((option) => (\n <button\n key={option.value}\n type=\"button\"\n role=\"radio\"\n aria-checked={triggerGuideMode === option.value}\n className={`workflow-editor-trigger-guide-mode__button${\n triggerGuideMode === option.value ? \" is-active\" : \"\"\n }`}\n onClick={() => setTriggerGuideMode(option.value)}\n >\n <span>{option.label}</span>\n <small>{option.description}</small>\n </button>\n ))}\n </div>\n\n {triggerGuideMode === \"curl\" ? (\n <div className=\"workflow-editor-trigger-guide-card\">\n <div>\n <h4>Run With CURL</h4>\n <p>\n Use this from scripts, Postman, or external systems that can call private\n SolidX APIs with a bearer token. The request creates a normal workflow\n execution with <code>triggerType</code> set to <code>api</code>.\n </p>\n </div>\n {renderWorkflowTriggerCodeExample(workflowCurlExample)}\n </div>\n ) : null}\n\n {triggerGuideMode === \"api\" ? (\n <div className=\"workflow-editor-trigger-guide-card\">\n <div>\n <h4>Run From SolidX Code</h4>\n <p>\n Inject the workflow invocation service inside a SolidX subscriber, service,\n scheduled job, or controller when workflow execution is part of application\n logic.\n </p>\n </div>\n {renderWorkflowTriggerCodeExample(workflowApiExample)}\n </div>\n ) : null}\n\n {triggerGuideMode === \"scheduled\" ? scheduledTriggersContent : null}\n </div>\n );\n\n const executionsContent =\n workflowDefinitionId === \"new\" || !hasExecutions ? (\n <div className=\"workflow-editor-overview workflow-editor-overview--empty\">\n <div className=\"workflow-editor-overview-cta\">\n <div className=\"workflow-editor-overview-cta__art\">\n <Workflow size={28} />\n </div>\n <div className=\"workflow-editor-overview-cta__copy\">\n <h2>{workflowDisplayName || record?.displayName || workflowKey || \"Workflow\"}</h2>\n <p>\n Run the workflow once to unlock execution history, operational KPIs,\n and workflow activity for this definition.\n </p>\n </div>\n <div className=\"workflow-editor-overview-cta__actions\">\n <SolidButton\n leftIcon={<Play size={16} />}\n loading={isExecuting}\n onClick={() => void handleExecute()}\n >\n Execute Workflow\n </SolidButton>\n <SolidButton variant=\"outline\" onClick={() => setDetailTab(\"topology\")}>\n Open Topology\n </SolidButton>\n </div>\n </div>\n </div>\n ) : (\n <div className=\"workflow-editor-executions\">\n <div\n className=\"workflow-editor-execution-subtabs\"\n role=\"tablist\"\n aria-label=\"Execution workspace views\"\n >\n <button\n type=\"button\"\n className={`workflow-editor-execution-subtabs__button${\n executionWorkspaceTab === \"summary\" ? \" is-active\" : \"\"\n }`}\n role=\"tab\"\n aria-selected={executionWorkspaceTab === \"summary\"}\n onClick={() => setExecutionWorkspaceTab(\"summary\")}\n >\n Summary\n </button>\n <button\n type=\"button\"\n className={`workflow-editor-execution-subtabs__button${\n executionWorkspaceTab === \"list\" ? \" is-active\" : \"\"\n }`}\n role=\"tab\"\n aria-selected={executionWorkspaceTab === \"list\"}\n onClick={() => setExecutionWorkspaceTab(\"list\")}\n >\n List\n </button>\n </div>\n\n {executionWorkspaceTab === \"list\" ? (\n <div className=\"workflow-editor-overview-filterbar\">\n <div className=\"workflow-editor-overview-filterbar__left\">\n <div className=\"workflow-editor-overview-filter\">\n <label>Date From</label>\n <SolidDatePicker\n selected={overviewStartDate}\n onChange={(date: Date | null) => {\n setOverviewStartDate(date);\n setExecutionPage(1);\n }}\n placeholderText=\"Start date\"\n />\n </div>\n <div className=\"workflow-editor-overview-filter\">\n <label>Date To</label>\n <SolidDatePicker\n selected={overviewEndDate}\n onChange={(date: Date | null) => {\n setOverviewEndDate(date);\n setExecutionPage(1);\n }}\n placeholderText=\"End date\"\n />\n </div>\n <div className=\"workflow-editor-overview-filter\">\n <label>Status</label>\n <SolidSelect\n value={executionStatusFilter}\n options={WORKFLOW_EXECUTION_STATUS_OPTIONS}\n onChange={(event) => {\n setExecutionStatusFilter(event.value ?? \"all\");\n setExecutionPage(1);\n }}\n />\n </div>\n <div className=\"workflow-editor-overview-filter workflow-editor-overview-filter--search\">\n <label>Execution</label>\n <SolidInput\n value={executionSearchFilter}\n placeholder=\"Search identifier\"\n onChange={(event) => {\n setExecutionSearchFilter(event.target.value);\n setExecutionPage(1);\n }}\n />\n </div>\n {(overviewStartDate ||\n overviewEndDate ||\n executionStatusFilter !== \"all\" ||\n executionSearchFilter) && (\n <SolidButton\n size=\"small\"\n variant=\"ghost\"\n onClick={() => {\n setOverviewStartDate(null);\n setOverviewEndDate(null);\n setExecutionStatusFilter(\"all\");\n setExecutionSearchFilter(\"\");\n setExecutionPage(1);\n }}\n >\n Clear\n </SolidButton>\n )}\n </div>\n </div>\n ) : null}\n\n {executionWorkspaceTab === \"summary\" ? (\n <>\n <div className=\"workflow-editor-overview-stats\">\n <div className=\"workflow-editor-overview-stat\">\n <span className=\"workflow-editor-overview-stat-label\">Success Ratio</span>\n <strong className=\"workflow-editor-overview-stat-value\">\n {executionOverview.successRatio}%\n </strong>\n <span className=\"workflow-editor-overview-stat-meta\">\n {executionOverview.success} successful runs\n </span>\n </div>\n <div className=\"workflow-editor-overview-stat\">\n <span className=\"workflow-editor-overview-stat-label\">Failed Ratio</span>\n <strong className=\"workflow-editor-overview-stat-value\">\n {executionOverview.failedRatio}%\n </strong>\n <span className=\"workflow-editor-overview-stat-meta\">\n {executionOverview.failed} failed runs\n </span>\n </div>\n <div className=\"workflow-editor-overview-stat\">\n <span className=\"workflow-editor-overview-stat-label\">In Progress</span>\n <strong className=\"workflow-editor-overview-stat-value\">\n {executionOverview.inProgress}\n </strong>\n <span className=\"workflow-editor-overview-stat-meta\">\n Currently running executions\n </span>\n </div>\n <div className=\"workflow-editor-overview-stat\">\n <span className=\"workflow-editor-overview-stat-label\">Pending</span>\n <strong className=\"workflow-editor-overview-stat-value\">\n {executionOverview.pending}\n </strong>\n <span className=\"workflow-editor-overview-stat-meta\">\n Created or queued executions\n </span>\n </div>\n </div>\n\n <div className=\"workflow-editor-overview-grid\">\n <SolidPanel header=\"Workflow Summary\">\n <div className=\"workflow-editor-overview-section\">\n <div className=\"workflow-editor-overview-kv\">\n <span>Workflow</span>\n <strong>{workflowDisplayName || record?.displayName || workflowKey}</strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Total Executions</span>\n <strong>{workflowExecutionPresenceQuery.data?.meta?.totalRecords ?? 0}</strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Executions In Range</span>\n <strong>{workflowExecutionsQuery.data?.meta?.totalRecords ?? 0}</strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Average Duration</span>\n <strong>{formatDurationMs(executionOverview.averageDurationMs)}</strong>\n </div>\n <div className=\"workflow-editor-overview-description\">\n {workflowDescription ||\n record?.description ||\n definitionDraft.description ||\n \"No workflow description has been added yet.\"}\n </div>\n </div>\n </SolidPanel>\n\n <SolidPanel header=\"Latest Execution\">\n {executionOverview.latestExecution ? (\n <div className=\"workflow-editor-overview-section\">\n <div className=\"workflow-editor-overview-kv\">\n <span>Status</span>\n <strong>{executionOverview.latestExecution.status ?? \"Unknown\"}</strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Started</span>\n <strong>\n {formatExecutionDate(executionOverview.latestExecution.startedAt)}\n </strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Finished</span>\n <strong>\n {formatExecutionDate(executionOverview.latestExecution.finishedAt)}\n </strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Trigger Type</span>\n <strong>{executionOverview.latestExecution.triggerType ?? \"manual\"}</strong>\n </div>\n </div>\n ) : (\n <div className=\"workflow-editor-empty-state workflow-editor-empty-state--compact\">\n No executions match the current date filter.\n </div>\n )}\n </SolidPanel>\n\n </div>\n </>\n ) : null}\n\n {executionWorkspaceTab === \"list\" ? (\n <SolidPanel header=\"Executions\">\n {workflowExecutionsQuery.isFetching && !executionRecords.length ? (\n <div className=\"workflow-editor-loading\">\n <SolidSpinner />\n </div>\n ) : executionRecords.length ? (\n <div className=\"workflow-editor-execution-table-wrap\">\n <table className=\"workflow-editor-execution-table\">\n <thead>\n <tr>\n <th>Id</th>\n <th>Execution Identifier</th>\n <th>Status</th>\n <th>Trigger</th>\n <th>Started</th>\n <th>Finished</th>\n <th>Duration</th>\n <th>Error</th>\n <th>Details</th>\n </tr>\n </thead>\n <tbody>\n {executionRecords.map((execution) => {\n const statusCategory = getExecutionStatusCategory(execution.status);\n\n return (\n <tr\n key={execution.id}\n className=\"workflow-editor-execution-table__row\"\n tabIndex={0}\n role=\"button\"\n onClick={() => openExecutionDetails(execution)}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n openExecutionDetails(execution);\n }\n }}\n >\n <td>{execution.id}</td>\n <td className=\"workflow-editor-execution-table__identifier\">\n {execution.executionIdentifier ?? \"-\"}\n </td>\n <td>\n <SolidTag\n className={`workflow-editor-execution-status-pill workflow-editor-execution-status-pill--${statusCategory}`}\n >\n {execution.status ?? \"Unknown\"}\n </SolidTag>\n </td>\n <td>{execution.triggerType ?? \"manual\"}</td>\n <td>{formatExecutionDate(execution.startedAt || execution.createdAt)}</td>\n <td>{formatExecutionDate(execution.finishedAt)}</td>\n <td>{formatDurationMs(execution.durationMs)}</td>\n <td className=\"workflow-editor-execution-table__error\">\n {execution.errorSummary ?? \"-\"}\n </td>\n <td>\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n onClick={(event) => {\n event.stopPropagation();\n openExecutionDetails(execution);\n }}\n >\n View\n </SolidButton>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n\n <div className=\"workflow-editor-execution-pagination\">\n <span>\n Showing {executionPageStart}-{executionPageEnd} of {executionTotalRecords}\n </span>\n <div className=\"workflow-editor-execution-pagination__actions\">\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n disabled={executionPage <= 1}\n onClick={() => setExecutionPage((current) => Math.max(1, current - 1))}\n >\n Previous\n </SolidButton>\n <SolidTag>\n Page {executionPage} of {executionTotalPages}\n </SolidTag>\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n disabled={executionPage >= executionTotalPages}\n onClick={() =>\n setExecutionPage((current) =>\n Math.min(executionTotalPages, current + 1),\n )\n }\n >\n Next\n </SolidButton>\n </div>\n </div>\n </div>\n ) : (\n <div className=\"workflow-editor-empty-state workflow-editor-empty-state--compact\">\n No executions match the current filters.\n </div>\n )}\n </SolidPanel>\n ) : null}\n </div>\n );\n\n const topologyCanvasView = (\n <div className=\"workflow-editor-canvas-shell\">\n {codeError ? (\n <div className=\"workflow-editor-definition-error\">\n <div className=\"workflow-editor-definition-error__icon\">\n <Braces size={20} />\n </div>\n <div className=\"workflow-editor-definition-error__content\">\n <h3>Workflow definition YAML is invalid</h3>\n <p>\n The topology cannot be rendered until the saved YAML parses and matches\n the current workflow schema.\n </p>\n <pre>{codeError}</pre>\n {!topologyYamlViewOpen ? (\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n onClick={() => setTopologyYamlViewOpen(true)}\n >\n Show YAML\n </SolidButton>\n ) : null}\n </div>\n </div>\n ) : (\n <WorkflowFlowCanvas\n definition={definitionDraft}\n nodeTypes={nodeTypes}\n selectedNodeId={selectedNodeId}\n selectedTriggerId={selectedTriggerId}\n activePaletteNodeType={undefined}\n onSelectNode={(nodeId) => {\n setSelectedNodeId(nodeId);\n setSelectedTriggerId(\"\");\n }}\n onSelectTrigger={(triggerId) => {\n setSelectedTriggerId(triggerId);\n setSelectedNodeId(\"\");\n }}\n onEditNode={(nodeId) => {\n setSelectedNodeId(nodeId);\n setSelectedTriggerId(\"\");\n setEditorOpen(true);\n }}\n onDeleteNode={handleRemoveNode}\n onViewDocs={(nodeId) => {\n const node = findNodeInDefinition(definitionDraft, nodeId);\n if (node?.type) {\n setSelectedNodeId(nodeId);\n setSelectedTriggerId(\"\");\n setTopologyDocsNodeTypeKey(node.type);\n setTopologyDocsModel(undefined);\n setTopologyDocsOpen(true);\n }\n }}\n onViewTriggerDocs={(triggerId) => {\n const trigger = (definitionDraft.triggers ?? []).find(\n (item) => String(item.id) === triggerId,\n );\n setSelectedTriggerId(triggerId);\n setSelectedNodeId(\"\");\n setTopologyDocsNodeTypeKey(\"\");\n setTopologyDocsModel(trigger ? buildTriggerDocsModel(trigger) : undefined);\n setTopologyDocsOpen(true);\n }}\n onInsertNode={handleInsertNode}\n />\n )}\n </div>\n );\n\n const topologyYamlEditorView = (\n <div className=\"workflow-editor-topology-code\">\n <div className=\"workflow-editor-topology-code__header\">\n <span>Definition YAML</span>\n {codeError ? (\n <SolidTag tone=\"danger\">Invalid</SolidTag>\n ) : (\n <SolidTag tone=\"success\">Synced</SolidTag>\n )}\n </div>\n <SolidCodeEditor\n language=\"yaml\"\n height=\"100%\"\n fontSize={12}\n value={codeValue}\n onChange={handleCodeChange}\n />\n {codeError ? (\n <pre className=\"workflow-editor-error workflow-editor-error--block\">\n {codeError}\n </pre>\n ) : null}\n </div>\n );\n\n const topologyContent = (\n <div className=\"workflow-editor-topology-tab\">\n <div className=\"workflow-editor-topology-actionbar\">\n <div className=\"workflow-editor-topology-actionbar__left\" />\n <div className=\"workflow-editor-view-toggle\" aria-label=\"Topology views\">\n <button\n type=\"button\"\n className={`workflow-editor-view-toggle__button ${topologyViewOpen ? \"is-active\" : \"\"}`}\n aria-label={topologyViewOpen ? \"Hide topology view\" : \"Show topology view\"}\n title={topologyViewOpen ? \"Hide topology view\" : \"Show topology view\"}\n onClick={() => setTopologyViewOpen((current) => !current)}\n >\n <Layers3 size={14} />\n </button>\n <button\n type=\"button\"\n className={`workflow-editor-view-toggle__button ${topologyYamlViewOpen ? \"is-active\" : \"\"}`}\n aria-label={topologyYamlViewOpen ? \"Hide YAML editor\" : \"Show YAML editor\"}\n title={topologyYamlViewOpen ? \"Hide YAML editor\" : \"Show YAML editor\"}\n onClick={() => setTopologyYamlViewOpen((current) => !current)}\n >\n <Braces size={14} />\n </button>\n </div>\n </div>\n\n {topologyViewOpen && topologyYamlViewOpen ? (\n <div\n ref={topologySplitRef}\n className=\"workflow-editor-topology-split\"\n style={{\n gridTemplateColumns: `${topologySplitPercent}% 0.45rem minmax(0, 1fr)`,\n }}\n >\n <div className=\"workflow-editor-topology-pane\">{topologyCanvasView}</div>\n <div\n className=\"workflow-editor-topology-resizer\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label=\"Resize topology and YAML views\"\n onMouseDown={startTopologySplitResize}\n />\n <div className=\"workflow-editor-topology-pane\">{topologyYamlEditorView}</div>\n </div>\n ) : topologyViewOpen ? (\n <div className=\"workflow-editor-topology-single\">{topologyCanvasView}</div>\n ) : topologyYamlViewOpen ? (\n <div className=\"workflow-editor-topology-single\">{topologyYamlEditorView}</div>\n ) : (\n <div className=\"workflow-editor-placeholder\">\n <div className=\"workflow-editor-placeholder__icon\">\n <Layers3 size={20} />\n </div>\n <div className=\"workflow-editor-placeholder__copy\">\n <h3>No topology view selected</h3>\n <p>Use the view toggles above to show the topology canvas or YAML editor.</p>\n </div>\n </div>\n )}\n </div>\n );\n\n const detailTabs = [\n { value: \"overview\", label: \"Overview\", content: overviewContent },\n {\n value: \"inputs\",\n label: \"Inputs\",\n content: inputsContent,\n },\n {\n value: \"variables\",\n label: \"Variables\",\n content: variablesContent,\n },\n {\n value: \"topology\",\n label: \"Topology\",\n content: topologyContent,\n },\n {\n value: \"executions\",\n label: \"Executions\",\n content: executionsContent,\n },\n {\n value: \"triggers\",\n label: \"Triggers\",\n content: triggersContent,\n },\n ] as const;\n\n const handleDetailTabChange = (value: string) => {\n const nextTab = value as WorkflowDetailTab;\n if (workflowDefinitionId === \"new\" && nextTab !== \"overview\") {\n const errors = validateWorkflowIdentity();\n if (hasWorkflowIdentityErrors(errors)) {\n setDetailTab(\"overview\");\n return;\n }\n }\n\n setDetailTab(nextTab);\n };\n\n if (isWorkflowDefinitionLoading || isNodeTypesLoading) {\n return (\n <div className=\"workflow-editor-page workflow-editor-page--loading\">\n <SolidSpinner />\n </div>\n );\n }\n\n if (isNodeTypesError) {\n return (\n <div className=\"workflow-editor-page\">\n <div className=\"workflow-editor-empty-state\">\n Failed to load workflow node types.\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"workflow-editor-page\">\n <div className=\"workflow-editor-header\">\n <div className=\"workflow-editor-header-main\">\n <SolidButton\n size=\"small\"\n variant=\"ghost\"\n leftIcon={<ArrowLeft size={16} />}\n onClick={() =>\n navigate(\"/admin/core/solid-core/workflow-definition/list\")\n }\n >\n Back\n </SolidButton>\n </div>\n <div className=\"workflow-editor-header-actions\">\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n leftIcon={<ShieldCheck size={16} />}\n loading={isServerValidating}\n onClick={() => void validateCurrentDefinition({ showSuccessToast: true })}\n >\n Validate\n </SolidButton>\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n leftIcon={<Play size={16} />}\n loading={isExecuting}\n onClick={() => void handleExecute()}\n >\n Run\n </SolidButton>\n <SolidButton\n size=\"small\"\n leftIcon={<Save size={16} />}\n loading={isSaving || isCreating}\n onClick={handleSave}\n >\n Save\n </SolidButton>\n </div>\n </div>\n\n <div className=\"workflow-editor-detail-tabs\">\n <SolidTabGroup\n tabs={detailTabs.map((tab) => ({\n value: tab.value,\n label: tab.label,\n content: tab.content,\n }))}\n value={detailTab}\n onValueChange={handleDetailTabChange}\n listClassName=\"workflow-editor-detail-tabs__list\"\n panelClassName=\"workflow-editor-detail-tabs__panel\"\n />\n </div>\n\n <SolidDialog\n open={Boolean(defaultValueEditorEntry)}\n onOpenChange={(open) => {\n if (!open) {\n closeDefaultValueEditor();\n }\n }}\n header={\n defaultValueEditorEntry\n ? `Default Value - ${defaultValueEditorEntry.definition.label || defaultValueEditorEntry.key}`\n : \"Default Value\"\n }\n className=\"workflow-editor-default-dialog\"\n style={{ width: \"min(560px, 94vw)\" }}\n footer={\n <div className=\"workflow-editor-default-dialog__footer\">\n <SolidButton\n type=\"button\"\n variant=\"secondary\"\n onClick={clearDefaultValueEditor}\n >\n Clear Default\n </SolidButton>\n <div>\n <SolidButton\n type=\"button\"\n variant=\"secondary\"\n onClick={closeDefaultValueEditor}\n >\n Cancel\n </SolidButton>\n <SolidButton\n type=\"button\"\n onClick={saveDefaultValueEditor}\n >\n Save Default\n </SolidButton>\n </div>\n </div>\n }\n >\n <SolidDialogBody>\n {defaultValueEditorEntry ? (\n <div className=\"workflow-editor-default-dialog__body\">\n <p>\n This value is used when callers do not provide{\" \"}\n <code>{defaultValueEditorEntry.key}</code>.\n </p>\n {renderDefaultValueEditorField()}\n {defaultValueEditorError ? (\n <div className=\"workflow-editor-field-error\">\n {defaultValueEditorError}\n </div>\n ) : null}\n </div>\n ) : null}\n </SolidDialogBody>\n </SolidDialog>\n\n <SolidDialog\n open={Boolean(variableValueEditorEntry)}\n onOpenChange={(open) => {\n if (!open) {\n closeVariableValueEditor();\n }\n }}\n header={\n variableValueEditorEntry\n ? `Variable Value - ${variableValueEditorEntry.definition.label || variableValueEditorEntry.key}`\n : \"Variable Value\"\n }\n className=\"workflow-editor-default-dialog\"\n style={{ width: \"min(520px, 92vw)\" }}\n footer={\n <div className=\"workflow-editor-default-dialog__footer\">\n <SolidButton\n type=\"button\"\n variant=\"secondary\"\n onClick={closeVariableValueEditor}\n >\n Cancel\n </SolidButton>\n <SolidButton\n type=\"button\"\n onClick={saveVariableValueEditor}\n >\n Save Value\n </SolidButton>\n </div>\n }\n >\n <SolidDialogBody>\n {variableValueEditorEntry ? (\n <div className=\"workflow-editor-default-dialog__body\">\n <p>\n Nodes can reference this value as{\" \"}\n <code>{`{{ variables.${variableValueEditorEntry.key} }}`}</code>.\n </p>\n {renderVariableValueEditorField()}\n {variableValueEditorError ? (\n <div className=\"workflow-editor-field-error\">\n {variableValueEditorError}\n </div>\n ) : null}\n </div>\n ) : null}\n </SolidDialogBody>\n </SolidDialog>\n\n <SolidDialog\n open={runInputsOpen}\n onOpenChange={(open) => {\n if (!isExecuting) {\n setRunInputsOpen(open);\n }\n }}\n header=\"Run Workflow\"\n className=\"workflow-editor-run-input-dialog\"\n style={{ width: \"min(620px, 94vw)\" }}\n footer={\n <div className=\"workflow-editor-run-input-dialog__footer\">\n <SolidButton\n type=\"button\"\n variant=\"secondary\"\n disabled={isExecuting}\n onClick={() => setRunInputsOpen(false)}\n >\n Cancel\n </SolidButton>\n <SolidButton\n type=\"button\"\n loading={isExecuting}\n onClick={() => void handleRunInputsSubmit()}\n >\n Run Workflow\n </SolidButton>\n </div>\n }\n >\n <SolidDialogBody>\n <form\n className=\"workflow-editor-run-input-dialog__form\"\n onSubmit={(event) => {\n event.preventDefault();\n void handleRunInputsSubmit();\n }}\n >\n <div className=\"workflow-editor-run-input-dialog__intro\">\n <h3>{workflowDisplayName || record?.displayName || workflowKey || \"Workflow\"}</h3>\n <p>Provide the runtime inputs required for this execution.</p>\n </div>\n\n {workflowInputEntries.map(({ key, definition }) => {\n const fieldId = `workflow-run-input-${key}`;\n const fieldError = runInputErrors[key];\n const label = definition.label || key;\n const type = definition.type || \"string\";\n\n return (\n <div\n key={key}\n className={`workflow-editor-run-input-field ${fieldError ? \"is-invalid\" : \"\"}`}\n >\n {type === \"boolean\" ? (\n <SolidCheckbox\n checked={Boolean(runInputValues[key])}\n label={`${label}${definition.required ? \" *\" : \"\"}`}\n onChange={(event) => {\n setRunInputValues((current) => ({\n ...current,\n [key]: event.currentTarget.checked,\n }));\n setRunInputErrors((current) => ({ ...current, [key]: \"\" }));\n }}\n />\n ) : (\n <>\n <label htmlFor={fieldId}>\n {label}\n {definition.required ? <span> *</span> : null}\n </label>\n {type === \"object\" || type === \"array\" ? (\n <SolidTextarea\n id={fieldId}\n value={runInputValues[key] ?? \"\"}\n placeholder={type === \"array\" ? \"[]\" : \"{}\"}\n rows={5}\n onChange={(event) => {\n setRunInputValues((current) => ({\n ...current,\n [key]: event.target.value,\n }));\n setRunInputErrors((current) => ({ ...current, [key]: \"\" }));\n }}\n />\n ) : (\n <SolidInput\n id={fieldId}\n type={type === \"number\" ? \"number\" : type === \"date\" ? \"date\" : \"text\"}\n value={runInputValues[key] ?? \"\"}\n onChange={(event) => {\n setRunInputValues((current) => ({\n ...current,\n [key]: event.target.value,\n }));\n setRunInputErrors((current) => ({ ...current, [key]: \"\" }));\n }}\n />\n )}\n </>\n )}\n {definition.description ? (\n <p className=\"workflow-editor-run-input-field__help\">\n {definition.description}\n </p>\n ) : null}\n {fieldError ? (\n <div className=\"workflow-editor-field-error\">{fieldError}</div>\n ) : null}\n </div>\n );\n })}\n </form>\n </SolidDialogBody>\n </SolidDialog>\n\n {selectedNode && selectedNodeType ? (\n <WorkflowNodeEditorDialog\n open={editorOpen}\n onOpenChange={setEditorOpen}\n nodeType={selectedNodeType}\n nodeValue={selectedNode}\n expressionSuggestions={selectedNodeExpressionSuggestions}\n onNodeSubmit={(nextValue) => {\n handleUpdateSelectedNode(nextValue);\n setEditorOpen(false);\n }}\n title={`${selectedNode.name ?? selectedNode.id} · ${selectedNodeType.label ?? selectedNodeType.type}`}\n />\n ) : null}\n\n <WorkflowAddNodeDialog\n open={!!pendingInsertTarget}\n nodeTypes={nodeTypes}\n expressionSuggestions={addNodeExpressionSuggestions}\n onOpenChange={(open) => {\n if (!open) {\n setPendingInsertTarget(null);\n }\n }}\n createNodeValue={createNodeFromType}\n onSubmit={handleAddNodeSubmit}\n />\n\n <SolidDialog\n open={topologyDocsOpen}\n onOpenChange={(open) => {\n setTopologyDocsOpen(open);\n if (!open) {\n setTopologyDocsNodeTypeKey(\"\");\n setTopologyDocsModel(undefined);\n }\n }}\n header=\"Node Documentation\"\n className=\"workflow-editor-topology-docs-dialog\"\n style={{ width: \"min(920px, 94vw)\", maxWidth: \"96vw\" }}\n >\n <SolidDialogBody>\n <div className=\"workflow-editor-topology-docs-dialog__body\">\n {topologyDocsNodeType || topologyDocsModel ? (\n <WorkflowNodeDocsPanel\n nodeType={topologyDocsNodeType}\n docsModel={topologyDocsModel}\n />\n ) : (\n <div className=\"workflow-editor-empty-state workflow-editor-empty-state--compact\">\n Documentation is not available for this topology item yet.\n </div>\n )}\n </div>\n </SolidDialogBody>\n </SolidDialog>\n\n </div>\n );\n}\n"]}
|