@stigmer/react 0.5.1 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/activity/group-activity.d.ts +13 -0
- package/activity/group-activity.d.ts.map +1 -0
- package/activity/group-activity.js +54 -0
- package/activity/group-activity.js.map +1 -0
- package/activity/index.d.ts +4 -0
- package/activity/index.d.ts.map +1 -0
- package/activity/index.js +3 -0
- package/activity/index.js.map +1 -0
- package/activity/types.d.ts +34 -0
- package/activity/types.d.ts.map +1 -0
- package/activity/types.js +2 -0
- package/activity/types.js.map +1 -0
- package/activity/useRecentActivity.d.ts +35 -0
- package/activity/useRecentActivity.d.ts.map +1 -0
- package/activity/useRecentActivity.js +73 -0
- package/activity/useRecentActivity.js.map +1 -0
- package/agent/AgentPicker.d.ts.map +1 -1
- package/agent/AgentPicker.js +4 -2
- package/agent/AgentPicker.js.map +1 -1
- package/billing/BillingSection.d.ts.map +1 -1
- package/billing/BillingSection.js +1 -1
- package/billing/BillingSection.js.map +1 -1
- package/composer/ComposerToolbar.d.ts +5 -1
- package/composer/ComposerToolbar.d.ts.map +1 -1
- package/composer/ComposerToolbar.js +4 -3
- package/composer/ComposerToolbar.js.map +1 -1
- package/composer/InteractionModePicker.d.ts +40 -0
- package/composer/InteractionModePicker.d.ts.map +1 -0
- package/composer/InteractionModePicker.js +76 -0
- package/composer/InteractionModePicker.js.map +1 -0
- package/composer/SessionComposer.d.ts +53 -64
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +20 -8
- package/composer/SessionComposer.js.map +1 -1
- package/composer/__tests__/SessionComposer-memo.test.js +10 -5
- package/composer/__tests__/SessionComposer-memo.test.js.map +1 -1
- package/composer/index.d.ts +3 -1
- package/composer/index.d.ts.map +1 -1
- package/composer/index.js +1 -0
- package/composer/index.js.map +1 -1
- package/dashboard/DashboardFailedRuns.d.ts +19 -0
- package/dashboard/DashboardFailedRuns.d.ts.map +1 -0
- package/dashboard/DashboardFailedRuns.js +35 -0
- package/dashboard/DashboardFailedRuns.js.map +1 -0
- package/dashboard/DashboardKPICards.d.ts +19 -0
- package/dashboard/DashboardKPICards.d.ts.map +1 -0
- package/dashboard/DashboardKPICards.js +80 -0
- package/dashboard/DashboardKPICards.js.map +1 -0
- package/dashboard/OperationalDashboard.d.ts +37 -0
- package/dashboard/OperationalDashboard.d.ts.map +1 -0
- package/dashboard/OperationalDashboard.js +48 -0
- package/dashboard/OperationalDashboard.js.map +1 -0
- package/dashboard/index.d.ts +8 -0
- package/dashboard/index.d.ts.map +1 -0
- package/dashboard/index.js +9 -0
- package/dashboard/index.js.map +1 -0
- package/dashboard/types.d.ts +49 -0
- package/dashboard/types.d.ts.map +1 -0
- package/dashboard/types.js +2 -0
- package/dashboard/types.js.map +1 -0
- package/dashboard/useAgentExecutionSummary.d.ts +33 -0
- package/dashboard/useAgentExecutionSummary.d.ts.map +1 -0
- package/dashboard/useAgentExecutionSummary.js +32 -0
- package/dashboard/useAgentExecutionSummary.js.map +1 -0
- package/dashboard/useDashboardFailedRuns.d.ts +18 -0
- package/dashboard/useDashboardFailedRuns.d.ts.map +1 -0
- package/dashboard/useDashboardFailedRuns.js +86 -0
- package/dashboard/useDashboardFailedRuns.js.map +1 -0
- package/dashboard/useDashboardSummary.d.ts +32 -0
- package/dashboard/useDashboardSummary.d.ts.map +1 -0
- package/dashboard/useDashboardSummary.js +67 -0
- package/dashboard/useDashboardSummary.js.map +1 -0
- package/execution/ContextGauge.d.ts +45 -0
- package/execution/ContextGauge.d.ts.map +1 -0
- package/execution/ContextGauge.js +82 -0
- package/execution/ContextGauge.js.map +1 -0
- package/execution/InteractionModeBadge.d.ts +24 -0
- package/execution/InteractionModeBadge.d.ts.map +1 -0
- package/execution/InteractionModeBadge.js +29 -0
- package/execution/InteractionModeBadge.js.map +1 -0
- package/execution/MessageThread.d.ts +33 -3
- package/execution/MessageThread.d.ts.map +1 -1
- package/execution/MessageThread.js +51 -9
- package/execution/MessageThread.js.map +1 -1
- package/execution/PlanCompletionCard.d.ts +23 -0
- package/execution/PlanCompletionCard.d.ts.map +1 -0
- package/execution/PlanCompletionCard.js +28 -0
- package/execution/PlanCompletionCard.js.map +1 -0
- package/execution/SummarizationBadge.d.ts +30 -0
- package/execution/SummarizationBadge.d.ts.map +1 -0
- package/execution/SummarizationBadge.js +61 -0
- package/execution/SummarizationBadge.js.map +1 -0
- package/execution/SummarizationCard.d.ts +27 -0
- package/execution/SummarizationCard.d.ts.map +1 -0
- package/execution/SummarizationCard.js +47 -0
- package/execution/SummarizationCard.js.map +1 -0
- package/execution/__tests__/PlanCompletionCard.test.d.ts +2 -0
- package/execution/__tests__/PlanCompletionCard.test.d.ts.map +1 -0
- package/execution/__tests__/PlanCompletionCard.test.js +53 -0
- package/execution/__tests__/PlanCompletionCard.test.js.map +1 -0
- package/execution/__tests__/buildThreadItems-plan-completion.test.d.ts +2 -0
- package/execution/__tests__/buildThreadItems-plan-completion.test.d.ts.map +1 -0
- package/execution/__tests__/buildThreadItems-plan-completion.test.js +137 -0
- package/execution/__tests__/buildThreadItems-plan-completion.test.js.map +1 -0
- package/execution/__tests__/useContextWindow.test.d.ts +2 -0
- package/execution/__tests__/useContextWindow.test.d.ts.map +1 -0
- package/execution/__tests__/useContextWindow.test.js +121 -0
- package/execution/__tests__/useContextWindow.test.js.map +1 -0
- package/execution/index.d.ts +12 -0
- package/execution/index.d.ts.map +1 -1
- package/execution/index.js +6 -0
- package/execution/index.js.map +1 -1
- package/execution/useContextWindow.d.ts +71 -0
- package/execution/useContextWindow.d.ts.map +1 -0
- package/execution/useContextWindow.js +91 -0
- package/execution/useContextWindow.js.map +1 -0
- package/execution/useCreateAgentExecution.d.ts +9 -0
- package/execution/useCreateAgentExecution.d.ts.map +1 -1
- package/execution/useCreateAgentExecution.js +15 -3
- package/execution/useCreateAgentExecution.js.map +1 -1
- package/index.d.ts +9 -4
- package/index.d.ts.map +1 -1
- package/index.js +12 -2
- package/index.js.map +1 -1
- package/internal/VirtualizedThread.d.ts +2 -1
- package/internal/VirtualizedThread.d.ts.map +1 -1
- package/internal/VirtualizedThread.js +3 -2
- package/internal/VirtualizedThread.js.map +1 -1
- package/internal/store/index.d.ts +1 -0
- package/internal/store/index.d.ts.map +1 -1
- package/internal/store/index.js +1 -0
- package/internal/store/index.js.map +1 -1
- package/internal/store/workflow-execution-event-store.d.ts +92 -0
- package/internal/store/workflow-execution-event-store.d.ts.map +1 -0
- package/internal/store/workflow-execution-event-store.js +298 -0
- package/internal/store/workflow-execution-event-store.js.map +1 -0
- package/library/ScopeToggle.d.ts +13 -9
- package/library/ScopeToggle.d.ts.map +1 -1
- package/library/ScopeToggle.js +43 -22
- package/library/ScopeToggle.js.map +1 -1
- package/library/VisibilityToggle.js +14 -5
- package/library/VisibilityToggle.js.map +1 -1
- package/library/index.d.ts +1 -0
- package/library/index.d.ts.map +1 -1
- package/library/index.js +1 -0
- package/library/index.js.map +1 -1
- package/library/useExportResource.d.ts +3 -2
- package/library/useExportResource.d.ts.map +1 -1
- package/library/useExportResource.js +11 -6
- package/library/useExportResource.js.map +1 -1
- package/mcp-server/McpServerDetailView.d.ts.map +1 -1
- package/mcp-server/McpServerDetailView.js +25 -13
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/mcp-server/McpServerPicker.d.ts.map +1 -1
- package/mcp-server/McpServerPicker.js +4 -2
- package/mcp-server/McpServerPicker.js.map +1 -1
- package/package.json +16 -5
- package/provider.d.ts.map +1 -1
- package/provider.js +164 -1
- package/provider.js.map +1 -1
- package/resource-detail/ResourceDetailShell.d.ts +1 -1
- package/resource-detail/ResourceDetailShell.d.ts.map +1 -1
- package/resource-detail/ResourceDetailShell.js +6 -6
- package/resource-detail/ResourceDetailShell.js.map +1 -1
- package/resource-detail/types.d.ts +23 -0
- package/resource-detail/types.d.ts.map +1 -1
- package/resource-detail/useDeleteResource.d.ts +1 -1
- package/resource-detail/useDeleteResource.d.ts.map +1 -1
- package/resource-detail/useDeleteResource.js +5 -0
- package/resource-detail/useDeleteResource.js.map +1 -1
- package/resource-workbench/components/ResourceWorkbench.d.ts.map +1 -1
- package/resource-workbench/components/ResourceWorkbench.js +2 -1
- package/resource-workbench/components/ResourceWorkbench.js.map +1 -1
- package/session/useNewSessionFlow.d.ts.map +1 -1
- package/session/useNewSessionFlow.js +1 -0
- package/session/useNewSessionFlow.js.map +1 -1
- package/session/useSessionConversation.d.ts +7 -0
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +1 -0
- package/session/useSessionConversation.js.map +1 -1
- package/session/useSessionPageFlow.d.ts.map +1 -1
- package/session/useSessionPageFlow.js +1 -0
- package/session/useSessionPageFlow.js.map +1 -1
- package/session/useSessionUsage.d.ts.map +1 -1
- package/session/useSessionUsage.js +65 -4
- package/session/useSessionUsage.js.map +1 -1
- package/settings/UsageSection.d.ts.map +1 -1
- package/settings/UsageSection.js +1 -4
- package/settings/UsageSection.js.map +1 -1
- package/skill/SkillPicker.d.ts.map +1 -1
- package/skill/SkillPicker.js +4 -2
- package/skill/SkillPicker.js.map +1 -1
- package/src/activity/group-activity.ts +65 -0
- package/src/activity/index.ts +13 -0
- package/src/activity/types.ts +35 -0
- package/src/activity/useRecentActivity.ts +131 -0
- package/src/agent/AgentPicker.tsx +6 -1
- package/src/billing/BillingSection.tsx +3 -2
- package/src/composer/ComposerToolbar.tsx +19 -1
- package/src/composer/InteractionModePicker.tsx +189 -0
- package/src/composer/SessionComposer.tsx +85 -8
- package/src/composer/__tests__/SessionComposer-memo.test.ts +11 -6
- package/src/composer/index.ts +7 -0
- package/src/dashboard/DashboardFailedRuns.tsx +109 -0
- package/src/dashboard/DashboardKPICards.tsx +128 -0
- package/src/dashboard/OperationalDashboard.tsx +96 -0
- package/src/dashboard/index.ts +37 -0
- package/src/dashboard/types.ts +50 -0
- package/src/dashboard/useAgentExecutionSummary.ts +71 -0
- package/src/dashboard/useDashboardFailedRuns.ts +122 -0
- package/src/dashboard/useDashboardSummary.ts +109 -0
- package/src/execution/ContextGauge.tsx +243 -0
- package/src/execution/InteractionModeBadge.tsx +70 -0
- package/src/execution/MessageThread.tsx +88 -3
- package/src/execution/PlanCompletionCard.tsx +105 -0
- package/src/execution/SummarizationBadge.tsx +188 -0
- package/src/execution/SummarizationCard.tsx +126 -0
- package/src/execution/__tests__/PlanCompletionCard.test.tsx +67 -0
- package/src/execution/__tests__/buildThreadItems-plan-completion.test.ts +197 -0
- package/src/execution/__tests__/useContextWindow.test.ts +167 -0
- package/src/execution/index.ts +22 -0
- package/src/execution/useContextWindow.ts +148 -0
- package/src/execution/useCreateAgentExecution.ts +26 -3
- package/src/index.ts +222 -0
- package/src/internal/VirtualizedThread.tsx +4 -1
- package/src/internal/store/index.ts +6 -0
- package/src/internal/store/workflow-execution-event-store.ts +391 -0
- package/src/library/ScopeToggle.tsx +88 -20
- package/src/library/VisibilityToggle.tsx +54 -13
- package/src/library/index.ts +2 -0
- package/src/library/useExportResource.ts +12 -9
- package/src/mcp-server/McpServerDetailView.tsx +80 -148
- package/src/mcp-server/McpServerPicker.tsx +6 -1
- package/src/provider.tsx +195 -8
- package/src/resource-detail/ResourceDetailShell.tsx +21 -4
- package/src/resource-detail/types.ts +25 -0
- package/src/resource-detail/useDeleteResource.ts +6 -1
- package/src/resource-workbench/components/ResourceWorkbench.tsx +4 -0
- package/src/session/useNewSessionFlow.ts +1 -0
- package/src/session/useSessionConversation.ts +8 -0
- package/src/session/useSessionPageFlow.ts +1 -0
- package/src/session/useSessionUsage.ts +72 -4
- package/src/settings/UsageSection.tsx +1 -9
- package/src/skill/SkillPicker.tsx +6 -1
- package/src/workflow/ApprovalFormBuilder.tsx +1017 -0
- package/src/workflow/BranchConditionBuilder.tsx +451 -0
- package/src/workflow/CanvasActionsContext.ts +12 -0
- package/src/workflow/CanvasContextMenu.tsx +364 -0
- package/src/workflow/CanvasTaskNode.tsx +372 -0
- package/src/workflow/CanvasTransitionEdge.tsx +122 -0
- package/src/workflow/CostByWorkflowChart.tsx +120 -0
- package/src/workflow/ExecutionSummaryWidget.tsx +194 -0
- package/src/workflow/ExecutionTrendChart.tsx +157 -0
- package/src/workflow/FailedRunsWidget.tsx +109 -0
- package/src/workflow/PendingApprovalsWidget.tsx +115 -0
- package/src/workflow/TaskConfigForm.tsx +618 -0
- package/src/workflow/TaskKindRegistryContext.ts +36 -0
- package/src/workflow/TaskPickerPopover.tsx +326 -0
- package/src/workflow/WorkflowArchitectDialog.tsx +505 -0
- package/src/workflow/WorkflowCanvasEditor.tsx +651 -0
- package/src/workflow/WorkflowCanvasInner.tsx +160 -0
- package/src/workflow/WorkflowDashboard.tsx +124 -0
- package/src/workflow/WorkflowDetailView.tsx +527 -0
- package/src/workflow/WorkflowEditorView.tsx +547 -0
- package/src/workflow/WorkflowExecutionApprovalCard.tsx +129 -0
- package/src/workflow/WorkflowExecutionArtifactPanel.tsx +112 -0
- package/src/workflow/WorkflowExecutionCostPanel.tsx +131 -0
- package/src/workflow/WorkflowExecutionHeader.tsx +194 -0
- package/src/workflow/WorkflowExecutionPhaseBadge.tsx +188 -0
- package/src/workflow/WorkflowExecutionTaskPanel.tsx +135 -0
- package/src/workflow/WorkflowExecutionTimeline.tsx +118 -0
- package/src/workflow/WorkflowExecutionTimelineEvent.tsx +488 -0
- package/src/workflow/WorkflowExecutionViewer.tsx +248 -0
- package/src/workflow/WorkflowInspectorPanel.tsx +568 -0
- package/src/workflow/WorkflowRefinePanel.tsx +411 -0
- package/src/workflow/WorkflowRepairCard.tsx +433 -0
- package/src/workflow/WorkflowRunDialog.tsx +220 -0
- package/src/workflow/WorkflowRunForm.tsx +245 -0
- package/src/workflow/WorkflowTaskList.tsx +177 -0
- package/src/workflow/WorkflowTaskPalette.tsx +248 -0
- package/src/workflow/WorkflowTopologyGraph.tsx +250 -0
- package/src/workflow/WorkflowYamlEditor.tsx +271 -0
- package/src/workflow/__tests__/starter-workflow-yaml.test.ts +57 -0
- package/src/workflow/canvas-constants.ts +87 -0
- package/src/workflow/canvas-icons.tsx +36 -0
- package/src/workflow/extract-workflow-yaml.ts +87 -0
- package/src/workflow/graph-commands.ts +675 -0
- package/src/workflow/index.ts +375 -0
- package/src/workflow/serialize-workflow-yaml.ts +546 -0
- package/src/workflow/starter-workflow-yaml.ts +29 -0
- package/src/workflow/types.ts +99 -0
- package/src/workflow/useCanvasKeyboardShortcuts.ts +134 -0
- package/src/workflow/useDiagnoseExecutionFlow.ts +378 -0
- package/src/workflow/useGraphHistory.ts +138 -0
- package/src/workflow/usePendingApprovals.ts +89 -0
- package/src/workflow/useRefineWorkflowFlow.ts +321 -0
- package/src/workflow/useResolveAgentExecutionSession.ts +57 -0
- package/src/workflow/useRunWorkflowFlow.ts +235 -0
- package/src/workflow/useTaskKindRegistry.ts +135 -0
- package/src/workflow/useWorkflow.ts +78 -0
- package/src/workflow/useWorkflowArchitectFlow.ts +303 -0
- package/src/workflow/useWorkflowCanvas.ts +882 -0
- package/src/workflow/useWorkflowCount.ts +66 -0
- package/src/workflow/useWorkflowDashboardSummary.ts +71 -0
- package/src/workflow/useWorkflowEditor.ts +106 -0
- package/src/workflow/useWorkflowExecution.ts +67 -0
- package/src/workflow/useWorkflowExecutionActions.ts +179 -0
- package/src/workflow/useWorkflowExecutionArtifacts.ts +57 -0
- package/src/workflow/useWorkflowExecutionEventLog.ts +111 -0
- package/src/workflow/useWorkflowExecutionEventStream.ts +244 -0
- package/src/workflow/useWorkflowExecutionList.ts +121 -0
- package/src/workflow/useWorkflowInstances.ts +62 -0
- package/src/workflow/useWorkflowList.ts +79 -0
- package/src/workflow/useWorkflowSave.ts +84 -0
- package/src/workflow/useWorkflowTopology.ts +229 -0
- package/src/workflow/useWorkflowValidation.ts +329 -0
- package/src/workflow/useWorkflowYaml.ts +49 -0
- package/src/workflow/workflow-graph-conversions.ts +796 -0
- package/src/workflow/workflow-graph-model.ts +83 -0
- package/src/workflow/workflow-yaml-diff.ts +132 -0
- package/styles.css +1 -1
- package/workflow/ApprovalFormBuilder.d.ts +24 -0
- package/workflow/ApprovalFormBuilder.d.ts.map +1 -0
- package/workflow/ApprovalFormBuilder.js +347 -0
- package/workflow/ApprovalFormBuilder.js.map +1 -0
- package/workflow/BranchConditionBuilder.d.ts +29 -0
- package/workflow/BranchConditionBuilder.d.ts.map +1 -0
- package/workflow/BranchConditionBuilder.js +170 -0
- package/workflow/BranchConditionBuilder.js.map +1 -0
- package/workflow/CanvasActionsContext.d.ts +8 -0
- package/workflow/CanvasActionsContext.d.ts.map +1 -0
- package/workflow/CanvasActionsContext.js +4 -0
- package/workflow/CanvasActionsContext.js.map +1 -0
- package/workflow/CanvasContextMenu.d.ts +59 -0
- package/workflow/CanvasContextMenu.d.ts.map +1 -0
- package/workflow/CanvasContextMenu.js +98 -0
- package/workflow/CanvasContextMenu.js.map +1 -0
- package/workflow/CanvasTaskNode.d.ts +21 -0
- package/workflow/CanvasTaskNode.d.ts.map +1 -0
- package/workflow/CanvasTaskNode.js +125 -0
- package/workflow/CanvasTaskNode.js.map +1 -0
- package/workflow/CanvasTransitionEdge.d.ts +24 -0
- package/workflow/CanvasTransitionEdge.d.ts.map +1 -0
- package/workflow/CanvasTransitionEdge.js +50 -0
- package/workflow/CanvasTransitionEdge.js.map +1 -0
- package/workflow/CostByWorkflowChart.d.ts +15 -0
- package/workflow/CostByWorkflowChart.d.ts.map +1 -0
- package/workflow/CostByWorkflowChart.js +45 -0
- package/workflow/CostByWorkflowChart.js.map +1 -0
- package/workflow/ExecutionSummaryWidget.d.ts +16 -0
- package/workflow/ExecutionSummaryWidget.d.ts.map +1 -0
- package/workflow/ExecutionSummaryWidget.js +93 -0
- package/workflow/ExecutionSummaryWidget.js.map +1 -0
- package/workflow/ExecutionTrendChart.d.ts +14 -0
- package/workflow/ExecutionTrendChart.d.ts.map +1 -0
- package/workflow/ExecutionTrendChart.js +67 -0
- package/workflow/ExecutionTrendChart.js.map +1 -0
- package/workflow/FailedRunsWidget.d.ts +19 -0
- package/workflow/FailedRunsWidget.d.ts.map +1 -0
- package/workflow/FailedRunsWidget.js +37 -0
- package/workflow/FailedRunsWidget.js.map +1 -0
- package/workflow/PendingApprovalsWidget.d.ts +19 -0
- package/workflow/PendingApprovalsWidget.d.ts.map +1 -0
- package/workflow/PendingApprovalsWidget.js +35 -0
- package/workflow/PendingApprovalsWidget.js.map +1 -0
- package/workflow/TaskConfigForm.d.ts +29 -0
- package/workflow/TaskConfigForm.d.ts.map +1 -0
- package/workflow/TaskConfigForm.js +230 -0
- package/workflow/TaskConfigForm.js.map +1 -0
- package/workflow/TaskKindRegistryContext.d.ts +24 -0
- package/workflow/TaskKindRegistryContext.d.ts.map +1 -0
- package/workflow/TaskKindRegistryContext.js +25 -0
- package/workflow/TaskKindRegistryContext.js.map +1 -0
- package/workflow/TaskPickerPopover.d.ts +33 -0
- package/workflow/TaskPickerPopover.d.ts.map +1 -0
- package/workflow/TaskPickerPopover.js +110 -0
- package/workflow/TaskPickerPopover.js.map +1 -0
- package/workflow/WorkflowArchitectDialog.d.ts +48 -0
- package/workflow/WorkflowArchitectDialog.d.ts.map +1 -0
- package/workflow/WorkflowArchitectDialog.js +129 -0
- package/workflow/WorkflowArchitectDialog.js.map +1 -0
- package/workflow/WorkflowCanvasEditor.d.ts +38 -0
- package/workflow/WorkflowCanvasEditor.d.ts.map +1 -0
- package/workflow/WorkflowCanvasEditor.js +287 -0
- package/workflow/WorkflowCanvasEditor.js.map +1 -0
- package/workflow/WorkflowCanvasInner.d.ts +32 -0
- package/workflow/WorkflowCanvasInner.d.ts.map +1 -0
- package/workflow/WorkflowCanvasInner.js +49 -0
- package/workflow/WorkflowCanvasInner.js.map +1 -0
- package/workflow/WorkflowDashboard.d.ts +35 -0
- package/workflow/WorkflowDashboard.d.ts.map +1 -0
- package/workflow/WorkflowDashboard.js +59 -0
- package/workflow/WorkflowDashboard.js.map +1 -0
- package/workflow/WorkflowDetailView.d.ts +63 -0
- package/workflow/WorkflowDetailView.d.ts.map +1 -0
- package/workflow/WorkflowDetailView.js +202 -0
- package/workflow/WorkflowDetailView.js.map +1 -0
- package/workflow/WorkflowEditorView.d.ts +43 -0
- package/workflow/WorkflowEditorView.d.ts.map +1 -0
- package/workflow/WorkflowEditorView.js +165 -0
- package/workflow/WorkflowEditorView.js.map +1 -0
- package/workflow/WorkflowExecutionApprovalCard.d.ts +27 -0
- package/workflow/WorkflowExecutionApprovalCard.d.ts.map +1 -0
- package/workflow/WorkflowExecutionApprovalCard.js +32 -0
- package/workflow/WorkflowExecutionApprovalCard.js.map +1 -0
- package/workflow/WorkflowExecutionArtifactPanel.d.ts +15 -0
- package/workflow/WorkflowExecutionArtifactPanel.d.ts.map +1 -0
- package/workflow/WorkflowExecutionArtifactPanel.js +53 -0
- package/workflow/WorkflowExecutionArtifactPanel.js.map +1 -0
- package/workflow/WorkflowExecutionCostPanel.d.ts +18 -0
- package/workflow/WorkflowExecutionCostPanel.d.ts.map +1 -0
- package/workflow/WorkflowExecutionCostPanel.js +44 -0
- package/workflow/WorkflowExecutionCostPanel.js.map +1 -0
- package/workflow/WorkflowExecutionHeader.d.ts +26 -0
- package/workflow/WorkflowExecutionHeader.d.ts.map +1 -0
- package/workflow/WorkflowExecutionHeader.js +68 -0
- package/workflow/WorkflowExecutionHeader.js.map +1 -0
- package/workflow/WorkflowExecutionPhaseBadge.d.ts +23 -0
- package/workflow/WorkflowExecutionPhaseBadge.d.ts.map +1 -0
- package/workflow/WorkflowExecutionPhaseBadge.js +99 -0
- package/workflow/WorkflowExecutionPhaseBadge.js.map +1 -0
- package/workflow/WorkflowExecutionTaskPanel.d.ts +24 -0
- package/workflow/WorkflowExecutionTaskPanel.d.ts.map +1 -0
- package/workflow/WorkflowExecutionTaskPanel.js +59 -0
- package/workflow/WorkflowExecutionTaskPanel.js.map +1 -0
- package/workflow/WorkflowExecutionTimeline.d.ts +27 -0
- package/workflow/WorkflowExecutionTimeline.d.ts.map +1 -0
- package/workflow/WorkflowExecutionTimeline.js +51 -0
- package/workflow/WorkflowExecutionTimeline.js.map +1 -0
- package/workflow/WorkflowExecutionTimelineEvent.d.ts +18 -0
- package/workflow/WorkflowExecutionTimelineEvent.d.ts.map +1 -0
- package/workflow/WorkflowExecutionTimelineEvent.js +210 -0
- package/workflow/WorkflowExecutionTimelineEvent.js.map +1 -0
- package/workflow/WorkflowExecutionViewer.d.ts +45 -0
- package/workflow/WorkflowExecutionViewer.d.ts.map +1 -0
- package/workflow/WorkflowExecutionViewer.js +75 -0
- package/workflow/WorkflowExecutionViewer.js.map +1 -0
- package/workflow/WorkflowInspectorPanel.d.ts +46 -0
- package/workflow/WorkflowInspectorPanel.d.ts.map +1 -0
- package/workflow/WorkflowInspectorPanel.js +152 -0
- package/workflow/WorkflowInspectorPanel.js.map +1 -0
- package/workflow/WorkflowRefinePanel.d.ts +30 -0
- package/workflow/WorkflowRefinePanel.d.ts.map +1 -0
- package/workflow/WorkflowRefinePanel.js +107 -0
- package/workflow/WorkflowRefinePanel.js.map +1 -0
- package/workflow/WorkflowRepairCard.d.ts +35 -0
- package/workflow/WorkflowRepairCard.d.ts.map +1 -0
- package/workflow/WorkflowRepairCard.js +113 -0
- package/workflow/WorkflowRepairCard.js.map +1 -0
- package/workflow/WorkflowRunDialog.d.ts +51 -0
- package/workflow/WorkflowRunDialog.d.ts.map +1 -0
- package/workflow/WorkflowRunDialog.js +75 -0
- package/workflow/WorkflowRunDialog.js.map +1 -0
- package/workflow/WorkflowRunForm.d.ts +62 -0
- package/workflow/WorkflowRunForm.d.ts.map +1 -0
- package/workflow/WorkflowRunForm.js +64 -0
- package/workflow/WorkflowRunForm.js.map +1 -0
- package/workflow/WorkflowTaskList.d.ts +25 -0
- package/workflow/WorkflowTaskList.d.ts.map +1 -0
- package/workflow/WorkflowTaskList.js +89 -0
- package/workflow/WorkflowTaskList.js.map +1 -0
- package/workflow/WorkflowTaskPalette.d.ts +22 -0
- package/workflow/WorkflowTaskPalette.d.ts.map +1 -0
- package/workflow/WorkflowTaskPalette.js +83 -0
- package/workflow/WorkflowTaskPalette.js.map +1 -0
- package/workflow/WorkflowTopologyGraph.d.ts +22 -0
- package/workflow/WorkflowTopologyGraph.d.ts.map +1 -0
- package/workflow/WorkflowTopologyGraph.js +123 -0
- package/workflow/WorkflowTopologyGraph.js.map +1 -0
- package/workflow/WorkflowYamlEditor.d.ts +43 -0
- package/workflow/WorkflowYamlEditor.d.ts.map +1 -0
- package/workflow/WorkflowYamlEditor.js +215 -0
- package/workflow/WorkflowYamlEditor.js.map +1 -0
- package/workflow/__tests__/starter-workflow-yaml.test.d.ts +2 -0
- package/workflow/__tests__/starter-workflow-yaml.test.d.ts.map +1 -0
- package/workflow/__tests__/starter-workflow-yaml.test.js +44 -0
- package/workflow/__tests__/starter-workflow-yaml.test.js.map +1 -0
- package/workflow/canvas-constants.d.ts +56 -0
- package/workflow/canvas-constants.d.ts.map +1 -0
- package/workflow/canvas-constants.js +74 -0
- package/workflow/canvas-constants.js.map +1 -0
- package/workflow/canvas-icons.d.ts +13 -0
- package/workflow/canvas-icons.d.ts.map +1 -0
- package/workflow/canvas-icons.js +21 -0
- package/workflow/canvas-icons.js.map +1 -0
- package/workflow/extract-workflow-yaml.d.ts +22 -0
- package/workflow/extract-workflow-yaml.d.ts.map +1 -0
- package/workflow/extract-workflow-yaml.js +63 -0
- package/workflow/extract-workflow-yaml.js.map +1 -0
- package/workflow/graph-commands.d.ts +209 -0
- package/workflow/graph-commands.d.ts.map +1 -0
- package/workflow/graph-commands.js +516 -0
- package/workflow/graph-commands.js.map +1 -0
- package/workflow/index.d.ts +66 -0
- package/workflow/index.d.ts.map +1 -0
- package/workflow/index.js +88 -0
- package/workflow/index.js.map +1 -0
- package/workflow/serialize-workflow-yaml.d.ts +39 -0
- package/workflow/serialize-workflow-yaml.d.ts.map +1 -0
- package/workflow/serialize-workflow-yaml.js +413 -0
- package/workflow/serialize-workflow-yaml.js.map +1 -0
- package/workflow/starter-workflow-yaml.d.ts +12 -0
- package/workflow/starter-workflow-yaml.d.ts.map +1 -0
- package/workflow/starter-workflow-yaml.js +30 -0
- package/workflow/starter-workflow-yaml.js.map +1 -0
- package/workflow/types.d.ts +80 -0
- package/workflow/types.d.ts.map +1 -0
- package/workflow/types.js +2 -0
- package/workflow/types.js.map +1 -0
- package/workflow/useCanvasKeyboardShortcuts.d.ts +34 -0
- package/workflow/useCanvasKeyboardShortcuts.d.ts.map +1 -0
- package/workflow/useCanvasKeyboardShortcuts.js +108 -0
- package/workflow/useCanvasKeyboardShortcuts.js.map +1 -0
- package/workflow/useDiagnoseExecutionFlow.d.ts +87 -0
- package/workflow/useDiagnoseExecutionFlow.d.ts.map +1 -0
- package/workflow/useDiagnoseExecutionFlow.js +257 -0
- package/workflow/useDiagnoseExecutionFlow.js.map +1 -0
- package/workflow/useGraphHistory.d.ts +28 -0
- package/workflow/useGraphHistory.d.ts.map +1 -0
- package/workflow/useGraphHistory.js +106 -0
- package/workflow/useGraphHistory.js.map +1 -0
- package/workflow/usePendingApprovals.d.ts +35 -0
- package/workflow/usePendingApprovals.d.ts.map +1 -0
- package/workflow/usePendingApprovals.js +50 -0
- package/workflow/usePendingApprovals.js.map +1 -0
- package/workflow/useRefineWorkflowFlow.d.ts +75 -0
- package/workflow/useRefineWorkflowFlow.d.ts.map +1 -0
- package/workflow/useRefineWorkflowFlow.js +216 -0
- package/workflow/useRefineWorkflowFlow.js.map +1 -0
- package/workflow/useResolveAgentExecutionSession.d.ts +33 -0
- package/workflow/useResolveAgentExecutionSession.d.ts.map +1 -0
- package/workflow/useResolveAgentExecutionSession.js +37 -0
- package/workflow/useResolveAgentExecutionSession.js.map +1 -0
- package/workflow/useRunWorkflowFlow.d.ts +82 -0
- package/workflow/useRunWorkflowFlow.d.ts.map +1 -0
- package/workflow/useRunWorkflowFlow.js +145 -0
- package/workflow/useRunWorkflowFlow.js.map +1 -0
- package/workflow/useTaskKindRegistry.d.ts +96 -0
- package/workflow/useTaskKindRegistry.d.ts.map +1 -0
- package/workflow/useTaskKindRegistry.js +75 -0
- package/workflow/useTaskKindRegistry.js.map +1 -0
- package/workflow/useWorkflow.d.ts +47 -0
- package/workflow/useWorkflow.d.ts.map +1 -0
- package/workflow/useWorkflow.js +53 -0
- package/workflow/useWorkflow.js.map +1 -0
- package/workflow/useWorkflowArchitectFlow.d.ts +96 -0
- package/workflow/useWorkflowArchitectFlow.d.ts.map +1 -0
- package/workflow/useWorkflowArchitectFlow.js +179 -0
- package/workflow/useWorkflowArchitectFlow.js.map +1 -0
- package/workflow/useWorkflowCanvas.d.ts +66 -0
- package/workflow/useWorkflowCanvas.d.ts.map +1 -0
- package/workflow/useWorkflowCanvas.js +628 -0
- package/workflow/useWorkflowCanvas.js.map +1 -0
- package/workflow/useWorkflowCount.d.ts +47 -0
- package/workflow/useWorkflowCount.d.ts.map +1 -0
- package/workflow/useWorkflowCount.js +26 -0
- package/workflow/useWorkflowCount.js.map +1 -0
- package/workflow/useWorkflowDashboardSummary.d.ts +34 -0
- package/workflow/useWorkflowDashboardSummary.d.ts.map +1 -0
- package/workflow/useWorkflowDashboardSummary.js +33 -0
- package/workflow/useWorkflowDashboardSummary.js.map +1 -0
- package/workflow/useWorkflowEditor.d.ts +45 -0
- package/workflow/useWorkflowEditor.d.ts.map +1 -0
- package/workflow/useWorkflowEditor.js +52 -0
- package/workflow/useWorkflowEditor.js.map +1 -0
- package/workflow/useWorkflowExecution.d.ts +37 -0
- package/workflow/useWorkflowExecution.d.ts.map +1 -0
- package/workflow/useWorkflowExecution.js +43 -0
- package/workflow/useWorkflowExecution.js.map +1 -0
- package/workflow/useWorkflowExecutionActions.d.ts +41 -0
- package/workflow/useWorkflowExecutionActions.d.ts.map +1 -0
- package/workflow/useWorkflowExecutionActions.js +86 -0
- package/workflow/useWorkflowExecutionActions.js.map +1 -0
- package/workflow/useWorkflowExecutionArtifacts.d.ts +26 -0
- package/workflow/useWorkflowExecutionArtifacts.d.ts.map +1 -0
- package/workflow/useWorkflowExecutionArtifacts.js +29 -0
- package/workflow/useWorkflowExecutionArtifacts.js.map +1 -0
- package/workflow/useWorkflowExecutionEventLog.d.ts +47 -0
- package/workflow/useWorkflowExecutionEventLog.d.ts.map +1 -0
- package/workflow/useWorkflowExecutionEventLog.js +59 -0
- package/workflow/useWorkflowExecutionEventLog.js.map +1 -0
- package/workflow/useWorkflowExecutionEventStream.d.ts +61 -0
- package/workflow/useWorkflowExecutionEventStream.d.ts.map +1 -0
- package/workflow/useWorkflowExecutionEventStream.js +161 -0
- package/workflow/useWorkflowExecutionEventStream.js.map +1 -0
- package/workflow/useWorkflowExecutionList.d.ts +49 -0
- package/workflow/useWorkflowExecutionList.d.ts.map +1 -0
- package/workflow/useWorkflowExecutionList.js +65 -0
- package/workflow/useWorkflowExecutionList.js.map +1 -0
- package/workflow/useWorkflowInstances.d.ts +30 -0
- package/workflow/useWorkflowInstances.d.ts.map +1 -0
- package/workflow/useWorkflowInstances.js +33 -0
- package/workflow/useWorkflowInstances.js.map +1 -0
- package/workflow/useWorkflowList.d.ts +57 -0
- package/workflow/useWorkflowList.d.ts.map +1 -0
- package/workflow/useWorkflowList.js +29 -0
- package/workflow/useWorkflowList.js.map +1 -0
- package/workflow/useWorkflowSave.d.ts +25 -0
- package/workflow/useWorkflowSave.d.ts.map +1 -0
- package/workflow/useWorkflowSave.js +61 -0
- package/workflow/useWorkflowSave.js.map +1 -0
- package/workflow/useWorkflowTopology.d.ts +40 -0
- package/workflow/useWorkflowTopology.d.ts.map +1 -0
- package/workflow/useWorkflowTopology.js +163 -0
- package/workflow/useWorkflowTopology.js.map +1 -0
- package/workflow/useWorkflowValidation.d.ts +27 -0
- package/workflow/useWorkflowValidation.d.ts.map +1 -0
- package/workflow/useWorkflowValidation.js +253 -0
- package/workflow/useWorkflowValidation.js.map +1 -0
- package/workflow/useWorkflowYaml.d.ts +26 -0
- package/workflow/useWorkflowYaml.d.ts.map +1 -0
- package/workflow/useWorkflowYaml.js +26 -0
- package/workflow/useWorkflowYaml.js.map +1 -0
- package/workflow/workflow-graph-conversions.d.ts +70 -0
- package/workflow/workflow-graph-conversions.d.ts.map +1 -0
- package/workflow/workflow-graph-conversions.js +634 -0
- package/workflow/workflow-graph-conversions.js.map +1 -0
- package/workflow/workflow-graph-model.d.ts +83 -0
- package/workflow/workflow-graph-model.d.ts.map +1 -0
- package/workflow/workflow-graph-model.js +5 -0
- package/workflow/workflow-graph-model.js.map +1 -0
- package/workflow/workflow-yaml-diff.d.ts +24 -0
- package/workflow/workflow-yaml-diff.d.ts.map +1 -0
- package/workflow/workflow-yaml-diff.js +96 -0
- package/workflow/workflow-yaml-diff.js.map +1 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript representation of a TaskKindDescriptor from the task kind registry.
|
|
3
|
+
*
|
|
4
|
+
* Each descriptor provides complete metadata for a single workflow task kind,
|
|
5
|
+
* enabling UI form generation, YAML editor autocomplete, task palette
|
|
6
|
+
* rendering, and client-side pre-validation.
|
|
7
|
+
*
|
|
8
|
+
* @since T04 (Task Schema Registry)
|
|
9
|
+
*/
|
|
10
|
+
export interface TaskKindDescriptor {
|
|
11
|
+
/** Workflow task kind identifier (e.g., "llm_call", "human_input"). */
|
|
12
|
+
readonly kind: string;
|
|
13
|
+
/** Human-readable display name (e.g., "LLM Call", "Human Input"). */
|
|
14
|
+
readonly displayName: string;
|
|
15
|
+
/** One-line description of what this task kind does. */
|
|
16
|
+
readonly description: string;
|
|
17
|
+
/** Functional category for palette grouping and filtering. */
|
|
18
|
+
readonly category: TaskKindCategory;
|
|
19
|
+
/** Lucide icon name for UI rendering. */
|
|
20
|
+
readonly icon: string;
|
|
21
|
+
/** Fully-qualified proto message type for the task config. */
|
|
22
|
+
readonly configProtoType: string;
|
|
23
|
+
/** Ordered field descriptors for form rendering. */
|
|
24
|
+
readonly fields: readonly TaskFieldDescriptor[];
|
|
25
|
+
/** Logical field groups for form section rendering. */
|
|
26
|
+
readonly fieldGroups: readonly TaskFieldGroup[];
|
|
27
|
+
/** JSON Schema (draft 2020-12) for the task_config payload. */
|
|
28
|
+
readonly configJsonSchema: Record<string, unknown>;
|
|
29
|
+
/** JSON Schema describing the task's output shape. */
|
|
30
|
+
readonly outputJsonSchema?: Record<string, unknown>;
|
|
31
|
+
/** YAML code examples demonstrating common usage patterns. */
|
|
32
|
+
readonly yamlExamples?: readonly string[];
|
|
33
|
+
/** Documentation URL path (relative to docs root). */
|
|
34
|
+
readonly documentationUrl: string;
|
|
35
|
+
/** Whether this task kind invokes AI models. */
|
|
36
|
+
readonly isAiNative: boolean;
|
|
37
|
+
/** Whether this task kind requires external service connectivity. */
|
|
38
|
+
readonly requiresExternalService: boolean;
|
|
39
|
+
}
|
|
40
|
+
/** Functional category for grouping task kinds in the UI. */
|
|
41
|
+
export type TaskKindCategory = "control_flow" | "invocation" | "ai" | "data" | "governance" | "event" | "unspecified";
|
|
42
|
+
/** Describes a single field in a task configuration message. */
|
|
43
|
+
export interface TaskFieldDescriptor {
|
|
44
|
+
/** Proto field name (snake_case). */
|
|
45
|
+
readonly name: string;
|
|
46
|
+
/** Human-readable label for form rendering. */
|
|
47
|
+
readonly displayName: string;
|
|
48
|
+
/** Field description from proto comments. */
|
|
49
|
+
readonly description: string;
|
|
50
|
+
/** Data type for rendering the appropriate form control. */
|
|
51
|
+
readonly type: TaskFieldType;
|
|
52
|
+
/** Whether the field is required. */
|
|
53
|
+
readonly required: boolean;
|
|
54
|
+
/** Whether the field accepts ${ } expression interpolation. */
|
|
55
|
+
readonly isExpression?: boolean;
|
|
56
|
+
/** Default value as a JSON-encoded string. */
|
|
57
|
+
readonly defaultValue?: string;
|
|
58
|
+
/** Valid enum values when type is "enum". */
|
|
59
|
+
readonly enumValues?: readonly string[];
|
|
60
|
+
/** Group this field belongs to for form section rendering. */
|
|
61
|
+
readonly groupId?: string;
|
|
62
|
+
/** Proto field number for stable identification. */
|
|
63
|
+
readonly fieldNumber: number;
|
|
64
|
+
/** For repeated: the element type. For message: the nested type name. */
|
|
65
|
+
readonly elementType?: string;
|
|
66
|
+
/** Human-readable validation constraint descriptions. */
|
|
67
|
+
readonly validationHints?: readonly string[];
|
|
68
|
+
}
|
|
69
|
+
/** Data type of a task configuration field. */
|
|
70
|
+
export type TaskFieldType = "string" | "int32" | "float" | "bool" | "enum" | "struct" | "repeated" | "map" | "message";
|
|
71
|
+
/** Logical grouping of fields for form section rendering. */
|
|
72
|
+
export interface TaskFieldGroup {
|
|
73
|
+
/** Group identifier. */
|
|
74
|
+
readonly id: string;
|
|
75
|
+
/** Human-readable label for the group section header. */
|
|
76
|
+
readonly displayName: string;
|
|
77
|
+
/** Optional description shown below the group header. */
|
|
78
|
+
readonly description?: string;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workflow/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAChD,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD,+DAA+D;IAC/D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,sDAAsD;IACtD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,sDAAsD;IACtD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;CAC3C;AAED,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GACxB,cAAc,GACd,YAAY,GACZ,IAAI,GACJ,MAAM,GACN,YAAY,GACZ,OAAO,GACP,aAAa,CAAC;AAElB,gEAAgE;AAChE,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,8CAA8C;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,OAAO,GACP,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,UAAU,GACV,KAAK,GACL,SAAS,CAAC;AAEd,6DAA6D;AAC7D,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,yDAAyD;IACzD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflow/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { RefObject } from "react";
|
|
2
|
+
import type { CanvasSelection } from "./useWorkflowCanvas";
|
|
3
|
+
/** Options for {@link useCanvasKeyboardShortcuts}. */
|
|
4
|
+
export interface UseCanvasKeyboardShortcutsOptions {
|
|
5
|
+
readonly containerRef: RefObject<HTMLDivElement | null>;
|
|
6
|
+
readonly selection: CanvasSelection | null;
|
|
7
|
+
readonly duplicateNode: (nodeId: string) => void;
|
|
8
|
+
readonly selectAll: () => void;
|
|
9
|
+
readonly clearSelection: () => void;
|
|
10
|
+
readonly onRequestTaskPicker: (position: {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
}, sourceNodeId?: string) => void;
|
|
14
|
+
readonly onDismiss: () => void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Canvas-scoped keyboard shortcuts for the workflow editor.
|
|
18
|
+
*
|
|
19
|
+
* Binds shortcuts that are only active when focus is inside the canvas
|
|
20
|
+
* container, using the same capture-phase listener pattern as
|
|
21
|
+
* {@link useGraphHistory} (undo/redo). Bare-key shortcuts (N, Escape)
|
|
22
|
+
* are suppressed when a text input has focus.
|
|
23
|
+
*
|
|
24
|
+
* | Shortcut | Action |
|
|
25
|
+
* |-------------------|---------------------------------------|
|
|
26
|
+
* | `Ctrl/Cmd+D` | Duplicate selected node |
|
|
27
|
+
* | `Ctrl/Cmd+A` | Select all non-sentinel nodes |
|
|
28
|
+
* | `N` (bare key) | Open task picker |
|
|
29
|
+
* | `Escape` | Clear selection / close open overlays |
|
|
30
|
+
*
|
|
31
|
+
* @internal Not exported from the SDK barrel.
|
|
32
|
+
*/
|
|
33
|
+
export declare function useCanvasKeyboardShortcuts({ containerRef, selection, duplicateNode, selectAll, clearSelection, onRequestTaskPicker, onDismiss, }: UseCanvasKeyboardShortcutsOptions): void;
|
|
34
|
+
//# sourceMappingURL=useCanvasKeyboardShortcuts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCanvasKeyboardShortcuts.d.ts","sourceRoot":"","sources":["../../src/workflow/useCanvasKeyboardShortcuts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,sDAAsD;AACtD,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAClC,YAAY,CAAC,EAAE,MAAM,KAClB,IAAI,CAAC;IACV,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;CAChC;AAgBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,YAAY,EACZ,SAAS,EACT,aAAa,EACb,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,SAAS,GACV,EAAE,iCAAiC,GAAG,IAAI,CA0E1C"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
function isTextInput(target) {
|
|
4
|
+
if (!(target instanceof HTMLElement))
|
|
5
|
+
return false;
|
|
6
|
+
const tag = target.tagName;
|
|
7
|
+
if (tag === "INPUT" || tag === "TEXTAREA" || tag === "SELECT")
|
|
8
|
+
return true;
|
|
9
|
+
if (target.isContentEditable)
|
|
10
|
+
return true;
|
|
11
|
+
if (target.getAttribute("role") === "textbox")
|
|
12
|
+
return true;
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
function isFocusInsideContainer(container) {
|
|
16
|
+
const active = document.activeElement;
|
|
17
|
+
return active === container || container.contains(active);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Canvas-scoped keyboard shortcuts for the workflow editor.
|
|
21
|
+
*
|
|
22
|
+
* Binds shortcuts that are only active when focus is inside the canvas
|
|
23
|
+
* container, using the same capture-phase listener pattern as
|
|
24
|
+
* {@link useGraphHistory} (undo/redo). Bare-key shortcuts (N, Escape)
|
|
25
|
+
* are suppressed when a text input has focus.
|
|
26
|
+
*
|
|
27
|
+
* | Shortcut | Action |
|
|
28
|
+
* |-------------------|---------------------------------------|
|
|
29
|
+
* | `Ctrl/Cmd+D` | Duplicate selected node |
|
|
30
|
+
* | `Ctrl/Cmd+A` | Select all non-sentinel nodes |
|
|
31
|
+
* | `N` (bare key) | Open task picker |
|
|
32
|
+
* | `Escape` | Clear selection / close open overlays |
|
|
33
|
+
*
|
|
34
|
+
* @internal Not exported from the SDK barrel.
|
|
35
|
+
*/
|
|
36
|
+
export function useCanvasKeyboardShortcuts({ containerRef, selection, duplicateNode, selectAll, clearSelection, onRequestTaskPicker, onDismiss, }) {
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
const container = containerRef.current;
|
|
39
|
+
if (!container)
|
|
40
|
+
return;
|
|
41
|
+
function handleKeyDown(e) {
|
|
42
|
+
if (!container || !isFocusInsideContainer(container))
|
|
43
|
+
return;
|
|
44
|
+
const isMod = e.metaKey || e.ctrlKey;
|
|
45
|
+
// Ctrl/Cmd+D — duplicate selected node
|
|
46
|
+
if (isMod && !e.shiftKey && !e.altKey && e.key.toLowerCase() === "d") {
|
|
47
|
+
e.preventDefault();
|
|
48
|
+
e.stopPropagation();
|
|
49
|
+
if (selection?.type === "node") {
|
|
50
|
+
duplicateNode(selection.id);
|
|
51
|
+
}
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
// Ctrl/Cmd+A — select all
|
|
55
|
+
if (isMod && !e.shiftKey && !e.altKey && e.key.toLowerCase() === "a") {
|
|
56
|
+
if (isTextInput(e.target))
|
|
57
|
+
return;
|
|
58
|
+
e.preventDefault();
|
|
59
|
+
e.stopPropagation();
|
|
60
|
+
selectAll();
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
// Bare-key shortcuts — skip when typing in a text field
|
|
64
|
+
if (isMod || e.altKey)
|
|
65
|
+
return;
|
|
66
|
+
// Escape — clear selection, close menus/pickers
|
|
67
|
+
if (e.key === "Escape") {
|
|
68
|
+
e.preventDefault();
|
|
69
|
+
e.stopPropagation();
|
|
70
|
+
onDismiss();
|
|
71
|
+
clearSelection();
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
// N — open task picker
|
|
75
|
+
if (!e.shiftKey && e.key.toLowerCase() === "n") {
|
|
76
|
+
if (isTextInput(e.target))
|
|
77
|
+
return;
|
|
78
|
+
e.preventDefault();
|
|
79
|
+
e.stopPropagation();
|
|
80
|
+
if (selection?.type === "node") {
|
|
81
|
+
// Position below the selected node — the editor resolves
|
|
82
|
+
// the actual screen coordinates from the node's React Flow position.
|
|
83
|
+
onRequestTaskPicker({ x: 0, y: 0 }, selection.id);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
// Viewport center
|
|
87
|
+
const rect = container.getBoundingClientRect();
|
|
88
|
+
onRequestTaskPicker({
|
|
89
|
+
x: rect.left + rect.width / 2,
|
|
90
|
+
y: rect.top + rect.height / 2,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
document.addEventListener("keydown", handleKeyDown, true);
|
|
97
|
+
return () => document.removeEventListener("keydown", handleKeyDown, true);
|
|
98
|
+
}, [
|
|
99
|
+
containerRef,
|
|
100
|
+
selection,
|
|
101
|
+
duplicateNode,
|
|
102
|
+
selectAll,
|
|
103
|
+
clearSelection,
|
|
104
|
+
onRequestTaskPicker,
|
|
105
|
+
onDismiss,
|
|
106
|
+
]);
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=useCanvasKeyboardShortcuts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCanvasKeyboardShortcuts.js","sourceRoot":"","sources":["../../src/workflow/useCanvasKeyboardShortcuts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
2
|
+
/**
|
|
3
|
+
* Lifecycle phases for the workflow execution diagnosis flow.
|
|
4
|
+
*
|
|
5
|
+
* - `idle` — mounted, waiting for auto-start or manual trigger
|
|
6
|
+
* - `starting` — creating session + execution
|
|
7
|
+
* - `streaming` — agent is analyzing (tool calls, reasoning visible)
|
|
8
|
+
* - `complete` — agent finished, YAML fix extracted (diff available)
|
|
9
|
+
* - `ready` — agent finished without YAML (runtime error explanation),
|
|
10
|
+
* or user accepted/discarded a fix; follow-up available
|
|
11
|
+
* - `error` — a failure occurred (RPC, stream)
|
|
12
|
+
*/
|
|
13
|
+
export type DiagnosePhase = "idle" | "starting" | "streaming" | "complete" | "ready" | "error";
|
|
14
|
+
/** Options for {@link useDiagnoseExecutionFlow}. */
|
|
15
|
+
export interface UseDiagnoseExecutionFlowOptions {
|
|
16
|
+
/** ID of the failed workflow execution to diagnose. */
|
|
17
|
+
readonly executionId: string;
|
|
18
|
+
/** Organization slug for session and execution creation. */
|
|
19
|
+
readonly org: string;
|
|
20
|
+
/** Current workflow YAML for diff computation (optional). */
|
|
21
|
+
readonly currentWorkflowYaml?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Whether to start diagnosis automatically on mount.
|
|
24
|
+
* @default true
|
|
25
|
+
*/
|
|
26
|
+
readonly autoStart?: boolean;
|
|
27
|
+
/** Called when any step fails. Also available via the `error` return. */
|
|
28
|
+
readonly onError?: (message: string) => void;
|
|
29
|
+
}
|
|
30
|
+
/** Return value of {@link useDiagnoseExecutionFlow}. */
|
|
31
|
+
export interface UseDiagnoseExecutionFlowReturn {
|
|
32
|
+
/** Current lifecycle phase. */
|
|
33
|
+
readonly phase: DiagnosePhase;
|
|
34
|
+
/** Completed execution snapshots for MessageThread (chronological). */
|
|
35
|
+
readonly completedExecutions: readonly AgentExecution[];
|
|
36
|
+
/** Currently streaming execution, or null when idle/between turns. */
|
|
37
|
+
readonly activeExecution: AgentExecution | null;
|
|
38
|
+
/** `true` while the agent execution is actively streaming. */
|
|
39
|
+
readonly isStreaming: boolean;
|
|
40
|
+
/** Extracted YAML fix from the latest turn (null unless phase is `complete`). */
|
|
41
|
+
readonly extractedYaml: string | null;
|
|
42
|
+
/** Agent's explanation prose from the latest turn. */
|
|
43
|
+
readonly explanation: string | null;
|
|
44
|
+
/** Human-readable error message, or `null` when healthy. */
|
|
45
|
+
readonly error: string | null;
|
|
46
|
+
/** Start or restart the diagnosis. Callable from `idle` or `error` phases. */
|
|
47
|
+
readonly diagnose: () => Promise<void>;
|
|
48
|
+
/** Send a follow-up question within the same session. */
|
|
49
|
+
readonly sendFollowUp: (message: string) => Promise<void>;
|
|
50
|
+
/** Accept the extracted YAML fix. Returns the YAML string. Transitions to `ready`. */
|
|
51
|
+
readonly acceptFix: () => string | null;
|
|
52
|
+
/** Discard the extracted YAML without applying. Transitions to `ready`. */
|
|
53
|
+
readonly discardFix: () => void;
|
|
54
|
+
/** Reset all state to initial values. Does not delete the server-side session. */
|
|
55
|
+
readonly reset: () => void;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Behavior hook that orchestrates agent-powered workflow execution
|
|
59
|
+
* diagnosis using the built-in Workflow Architect system agent.
|
|
60
|
+
*
|
|
61
|
+
* Manages a multi-turn conversation within a single Session:
|
|
62
|
+
* - First turn creates a Session + AgentExecution with diagnosis context
|
|
63
|
+
* - Subsequent turns reuse the Session (conversational context)
|
|
64
|
+
* - Each turn streams agent messages via {@link useExecutionStream}
|
|
65
|
+
* - YAML is extracted from agent responses via {@link extractWorkflowYaml}
|
|
66
|
+
* — presence of YAML indicates a definition fix; absence indicates a
|
|
67
|
+
* runtime error with explanation only
|
|
68
|
+
*
|
|
69
|
+
* Auto-starts diagnosis on mount by default (AD-B5-002). The agent uses
|
|
70
|
+
* `get_workflow_execution` and `get_workflow_execution_events` MCP tools
|
|
71
|
+
* to inspect the failure autonomously.
|
|
72
|
+
*
|
|
73
|
+
* Framework-agnostic (DD-004), referentially stable returns (DD-010).
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```tsx
|
|
77
|
+
* const flow = useDiagnoseExecutionFlow({
|
|
78
|
+
* executionId: "wex_abc123",
|
|
79
|
+
* org: "acme",
|
|
80
|
+
* onError: (msg) => toast.error(msg),
|
|
81
|
+
* });
|
|
82
|
+
*
|
|
83
|
+
* <WorkflowRepairCard flow={flow} onApplyFix={...} onClose={...} />
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export declare function useDiagnoseExecutionFlow(options: UseDiagnoseExecutionFlowOptions): UseDiagnoseExecutionFlowReturn;
|
|
87
|
+
//# sourceMappingURL=useDiagnoseExecutionFlow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDiagnoseExecutionFlow.d.ts","sourceRoot":"","sources":["../../src/workflow/useDiagnoseExecutionFlow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAalG;;;;;;;;;;GAUG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,UAAU,GACV,WAAW,GACX,UAAU,GACV,OAAO,GACP,OAAO,CAAC;AAEZ,oDAAoD;AACpD,MAAM,WAAW,+BAA+B;IAC9C,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,wDAAwD;AACxD,MAAM,WAAW,8BAA8B;IAC7C,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,mBAAmB,EAAE,SAAS,cAAc,EAAE,CAAC;IACxD,sEAAsE;IACtE,QAAQ,CAAC,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC;IAChD,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,sDAAsD;IACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,yDAAyD;IACzD,QAAQ,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,sFAAsF;IACtF,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACxC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;IAChC,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,+BAA+B,GACvC,8BAA8B,CAuQhC"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
+
import { ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
4
|
+
import { getUserMessage } from "@stigmer/sdk";
|
|
5
|
+
import { useCreateSession } from "../session/useCreateSession";
|
|
6
|
+
import { useCreateAgentExecution } from "../execution/useCreateAgentExecution";
|
|
7
|
+
import { useExecutionStream } from "../execution/useExecutionStream";
|
|
8
|
+
import { isTerminalPhase } from "../execution/execution-phases";
|
|
9
|
+
import { useConversationStoreRef } from "../internal/store";
|
|
10
|
+
import { extractWorkflowYaml, } from "./extract-workflow-yaml";
|
|
11
|
+
const AGENT_REF = { org: "", slug: "workflow-architect" };
|
|
12
|
+
const MIN_FOLLOWUP_LENGTH = 5;
|
|
13
|
+
/**
|
|
14
|
+
* Behavior hook that orchestrates agent-powered workflow execution
|
|
15
|
+
* diagnosis using the built-in Workflow Architect system agent.
|
|
16
|
+
*
|
|
17
|
+
* Manages a multi-turn conversation within a single Session:
|
|
18
|
+
* - First turn creates a Session + AgentExecution with diagnosis context
|
|
19
|
+
* - Subsequent turns reuse the Session (conversational context)
|
|
20
|
+
* - Each turn streams agent messages via {@link useExecutionStream}
|
|
21
|
+
* - YAML is extracted from agent responses via {@link extractWorkflowYaml}
|
|
22
|
+
* — presence of YAML indicates a definition fix; absence indicates a
|
|
23
|
+
* runtime error with explanation only
|
|
24
|
+
*
|
|
25
|
+
* Auto-starts diagnosis on mount by default (AD-B5-002). The agent uses
|
|
26
|
+
* `get_workflow_execution` and `get_workflow_execution_events` MCP tools
|
|
27
|
+
* to inspect the failure autonomously.
|
|
28
|
+
*
|
|
29
|
+
* Framework-agnostic (DD-004), referentially stable returns (DD-010).
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* const flow = useDiagnoseExecutionFlow({
|
|
34
|
+
* executionId: "wex_abc123",
|
|
35
|
+
* org: "acme",
|
|
36
|
+
* onError: (msg) => toast.error(msg),
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* <WorkflowRepairCard flow={flow} onApplyFix={...} onClose={...} />
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export function useDiagnoseExecutionFlow(options) {
|
|
43
|
+
const { executionId, org, autoStart = true, onError } = options;
|
|
44
|
+
const [phase, setPhase] = useState("idle");
|
|
45
|
+
const [activeExecutionId, setActiveExecutionId] = useState(null);
|
|
46
|
+
const [completedExecutions, setCompletedExecutions] = useState([]);
|
|
47
|
+
const [extracted, setExtracted] = useState(null);
|
|
48
|
+
const [error, setError] = useState(null);
|
|
49
|
+
const orgRef = useRef(org);
|
|
50
|
+
orgRef.current = org;
|
|
51
|
+
const executionIdRef = useRef(executionId);
|
|
52
|
+
executionIdRef.current = executionId;
|
|
53
|
+
const onErrorRef = useRef(onError);
|
|
54
|
+
onErrorRef.current = onError;
|
|
55
|
+
const sessionIdRef = useRef(null);
|
|
56
|
+
const prevTerminalRef = useRef(false);
|
|
57
|
+
const autoStartedRef = useRef(false);
|
|
58
|
+
const { create: createSession } = useCreateSession();
|
|
59
|
+
const { create: createExecution } = useCreateAgentExecution();
|
|
60
|
+
const conversationStore = useConversationStoreRef();
|
|
61
|
+
const stream = useExecutionStream(activeExecutionId, {
|
|
62
|
+
store: conversationStore,
|
|
63
|
+
});
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
// Build the initial diagnosis message
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
const buildDiagnosisMessage = useCallback(() => {
|
|
68
|
+
return (`Diagnose the failed workflow execution \`${executionIdRef.current}\`.\n\n` +
|
|
69
|
+
"Analyze the failure root cause using the execution status and event log.\n" +
|
|
70
|
+
"If this is a workflow definition error, generate a validated fix.\n" +
|
|
71
|
+
"If this is a runtime error, explain the root cause and suggest operational remediation.");
|
|
72
|
+
}, []);
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
74
|
+
// Terminal phase detection — extract YAML or transition to ready
|
|
75
|
+
// ---------------------------------------------------------------------------
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
if (phase !== "streaming")
|
|
78
|
+
return;
|
|
79
|
+
const isTerminal = stream.phase !== ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED &&
|
|
80
|
+
isTerminalPhase(stream.phase);
|
|
81
|
+
if (isTerminal && !prevTerminalRef.current) {
|
|
82
|
+
prevTerminalRef.current = true;
|
|
83
|
+
if (stream.execution) {
|
|
84
|
+
setCompletedExecutions((prev) => [...prev, stream.execution]);
|
|
85
|
+
}
|
|
86
|
+
const result = extractWorkflowYaml(stream.execution);
|
|
87
|
+
if (result) {
|
|
88
|
+
setExtracted(result);
|
|
89
|
+
setPhase("complete");
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
setPhase("ready");
|
|
93
|
+
}
|
|
94
|
+
setActiveExecutionId(null);
|
|
95
|
+
}
|
|
96
|
+
}, [phase, stream.phase, stream.execution]);
|
|
97
|
+
// ---------------------------------------------------------------------------
|
|
98
|
+
// Stream error surfacing
|
|
99
|
+
// ---------------------------------------------------------------------------
|
|
100
|
+
useEffect(() => {
|
|
101
|
+
if (stream.error && phase === "streaming") {
|
|
102
|
+
const msg = getUserMessage(stream.error, "Agent stream interrupted");
|
|
103
|
+
setPhase("error");
|
|
104
|
+
setError(msg);
|
|
105
|
+
onErrorRef.current?.(msg);
|
|
106
|
+
}
|
|
107
|
+
}, [stream.error, phase]);
|
|
108
|
+
// ---------------------------------------------------------------------------
|
|
109
|
+
// Start diagnosis (initial turn)
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
const diagnose = useCallback(async () => {
|
|
112
|
+
if (phase !== "idle" && phase !== "error")
|
|
113
|
+
return;
|
|
114
|
+
setPhase("starting");
|
|
115
|
+
setError(null);
|
|
116
|
+
setExtracted(null);
|
|
117
|
+
prevTerminalRef.current = false;
|
|
118
|
+
try {
|
|
119
|
+
let activeSessionId = sessionIdRef.current;
|
|
120
|
+
if (!activeSessionId) {
|
|
121
|
+
const { sessionId: newSessionId } = await createSession({
|
|
122
|
+
org: orgRef.current,
|
|
123
|
+
agentRef: { ...AGENT_REF, org: orgRef.current },
|
|
124
|
+
});
|
|
125
|
+
sessionIdRef.current = newSessionId;
|
|
126
|
+
activeSessionId = newSessionId;
|
|
127
|
+
}
|
|
128
|
+
const message = buildDiagnosisMessage();
|
|
129
|
+
const { executionId: newExecutionId } = await createExecution({
|
|
130
|
+
org: orgRef.current,
|
|
131
|
+
sessionId: activeSessionId,
|
|
132
|
+
message,
|
|
133
|
+
});
|
|
134
|
+
setActiveExecutionId(newExecutionId);
|
|
135
|
+
setPhase("streaming");
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
const msg = getUserMessage(err, "Failed to start the Workflow Architect agent");
|
|
139
|
+
setPhase("error");
|
|
140
|
+
setError(msg);
|
|
141
|
+
onErrorRef.current?.(msg);
|
|
142
|
+
}
|
|
143
|
+
}, [phase, createSession, createExecution, buildDiagnosisMessage]);
|
|
144
|
+
// ---------------------------------------------------------------------------
|
|
145
|
+
// Send a follow-up question
|
|
146
|
+
// ---------------------------------------------------------------------------
|
|
147
|
+
const sendFollowUp = useCallback(async (message) => {
|
|
148
|
+
const trimmed = message.trim();
|
|
149
|
+
if (trimmed.length < MIN_FOLLOWUP_LENGTH) {
|
|
150
|
+
setError(`Follow-up must be at least ${MIN_FOLLOWUP_LENGTH} characters`);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (phase !== "ready" &&
|
|
154
|
+
phase !== "complete" &&
|
|
155
|
+
phase !== "error") {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
setPhase("starting");
|
|
159
|
+
setError(null);
|
|
160
|
+
setExtracted(null);
|
|
161
|
+
prevTerminalRef.current = false;
|
|
162
|
+
try {
|
|
163
|
+
let activeSessionId = sessionIdRef.current;
|
|
164
|
+
if (!activeSessionId) {
|
|
165
|
+
const { sessionId: newSessionId } = await createSession({
|
|
166
|
+
org: orgRef.current,
|
|
167
|
+
agentRef: { ...AGENT_REF, org: orgRef.current },
|
|
168
|
+
});
|
|
169
|
+
sessionIdRef.current = newSessionId;
|
|
170
|
+
activeSessionId = newSessionId;
|
|
171
|
+
}
|
|
172
|
+
const { executionId: newExecutionId } = await createExecution({
|
|
173
|
+
org: orgRef.current,
|
|
174
|
+
sessionId: activeSessionId,
|
|
175
|
+
message: trimmed,
|
|
176
|
+
});
|
|
177
|
+
setActiveExecutionId(newExecutionId);
|
|
178
|
+
setPhase("streaming");
|
|
179
|
+
}
|
|
180
|
+
catch (err) {
|
|
181
|
+
const msg = getUserMessage(err, "Failed to send follow-up to the Workflow Architect agent");
|
|
182
|
+
setPhase("error");
|
|
183
|
+
setError(msg);
|
|
184
|
+
onErrorRef.current?.(msg);
|
|
185
|
+
}
|
|
186
|
+
}, [phase, createSession, createExecution]);
|
|
187
|
+
// ---------------------------------------------------------------------------
|
|
188
|
+
// Accept / discard extracted YAML fix
|
|
189
|
+
// ---------------------------------------------------------------------------
|
|
190
|
+
const acceptFix = useCallback(() => {
|
|
191
|
+
if (phase !== "complete" || !extracted)
|
|
192
|
+
return null;
|
|
193
|
+
const yaml = extracted.yaml;
|
|
194
|
+
setExtracted(null);
|
|
195
|
+
setPhase("ready");
|
|
196
|
+
return yaml;
|
|
197
|
+
}, [phase, extracted]);
|
|
198
|
+
const discardFix = useCallback(() => {
|
|
199
|
+
if (phase !== "complete")
|
|
200
|
+
return;
|
|
201
|
+
setExtracted(null);
|
|
202
|
+
setPhase("ready");
|
|
203
|
+
}, [phase]);
|
|
204
|
+
// ---------------------------------------------------------------------------
|
|
205
|
+
// Reset all state
|
|
206
|
+
// ---------------------------------------------------------------------------
|
|
207
|
+
const reset = useCallback(() => {
|
|
208
|
+
setPhase("idle");
|
|
209
|
+
setActiveExecutionId(null);
|
|
210
|
+
setCompletedExecutions([]);
|
|
211
|
+
setExtracted(null);
|
|
212
|
+
setError(null);
|
|
213
|
+
sessionIdRef.current = null;
|
|
214
|
+
prevTerminalRef.current = false;
|
|
215
|
+
autoStartedRef.current = false;
|
|
216
|
+
}, []);
|
|
217
|
+
// ---------------------------------------------------------------------------
|
|
218
|
+
// Auto-start on mount (AD-B5-002)
|
|
219
|
+
// ---------------------------------------------------------------------------
|
|
220
|
+
useEffect(() => {
|
|
221
|
+
if (autoStart && phase === "idle" && !autoStartedRef.current) {
|
|
222
|
+
autoStartedRef.current = true;
|
|
223
|
+
diagnose();
|
|
224
|
+
}
|
|
225
|
+
}, [autoStart, phase, diagnose]);
|
|
226
|
+
// ---------------------------------------------------------------------------
|
|
227
|
+
// Referentially stable return (DD-010)
|
|
228
|
+
// ---------------------------------------------------------------------------
|
|
229
|
+
return useMemo(() => ({
|
|
230
|
+
phase,
|
|
231
|
+
completedExecutions,
|
|
232
|
+
activeExecution: stream.execution,
|
|
233
|
+
isStreaming: stream.isStreaming || stream.isConnecting,
|
|
234
|
+
extractedYaml: extracted?.yaml ?? null,
|
|
235
|
+
explanation: extracted?.explanation ?? null,
|
|
236
|
+
error,
|
|
237
|
+
diagnose,
|
|
238
|
+
sendFollowUp,
|
|
239
|
+
acceptFix,
|
|
240
|
+
discardFix,
|
|
241
|
+
reset,
|
|
242
|
+
}), [
|
|
243
|
+
phase,
|
|
244
|
+
completedExecutions,
|
|
245
|
+
stream.execution,
|
|
246
|
+
stream.isStreaming,
|
|
247
|
+
stream.isConnecting,
|
|
248
|
+
extracted,
|
|
249
|
+
error,
|
|
250
|
+
diagnose,
|
|
251
|
+
sendFollowUp,
|
|
252
|
+
acceptFix,
|
|
253
|
+
discardFix,
|
|
254
|
+
reset,
|
|
255
|
+
]);
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=useDiagnoseExecutionFlow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDiagnoseExecutionFlow.js","sourceRoot":"","sources":["../../src/workflow/useDiagnoseExecutionFlow.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,cAAc,EAAE,MAAM,8DAA8D,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACL,mBAAmB,GAEpB,MAAM,yBAAyB,CAAC;AAkEjC,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAW,CAAC;AACnE,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAwC;IAExC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAEhE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,MAAM,CAAC,CAAC;IAC1D,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CACxD,IAAI,CACL,CAAC;IACF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAE5D,EAAE,CAAC,CAAC;IACN,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CACxC,IAAI,CACL,CAAC;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;IACrB,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,cAAc,CAAC,OAAO,GAAG,WAAW,CAAC;IACrC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAE7B,MAAM,YAAY,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAErC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACrD,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAC9D,MAAM,iBAAiB,GAAG,uBAAuB,EAAE,CAAC;IACpD,MAAM,MAAM,GAAG,kBAAkB,CAAC,iBAAiB,EAAE;QACnD,KAAK,EAAE,iBAAiB;KACzB,CAAC,CAAC;IAEH,8EAA8E;IAC9E,sCAAsC;IACtC,8EAA8E;IAC9E,MAAM,qBAAqB,GAAG,WAAW,CAAC,GAAW,EAAE;QACrD,OAAO,CACL,4CAA4C,cAAc,CAAC,OAAO,SAAS;YAC3E,4EAA4E;YAC5E,qEAAqE;YACrE,yFAAyF,CAC1F,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,8EAA8E;IAC9E,iEAAiE;IACjE,8EAA8E;IAC9E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,KAAK,WAAW;YAAE,OAAO;QAElC,MAAM,UAAU,GACd,MAAM,CAAC,KAAK,KAAK,cAAc,CAAC,2BAA2B;YAC3D,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEhC,IAAI,UAAU,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC3C,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;YAE/B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,sBAAsB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,SAAU,CAAC,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,MAAM,EAAE,CAAC;gBACX,YAAY,CAAC,MAAM,CAAC,CAAC;gBACrB,QAAQ,CAAC,UAAU,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC;YAED,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAE5C,8EAA8E;IAC9E,yBAAyB;IACzB,8EAA8E;IAC9E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,CAAC,KAAK,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;YACrE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClB,QAAQ,CAAC,GAAG,CAAC,CAAC;YACd,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1B,8EAA8E;IAC9E,iCAAiC;IACjC,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACtC,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO;YAAE,OAAO;QAElD,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;QAEhC,IAAI,CAAC;YACH,IAAI,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC;YAE3C,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,aAAa,CAAC;oBACtD,GAAG,EAAE,MAAM,CAAC,OAAO;oBACnB,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE;iBAChD,CAAC,CAAC;gBACH,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC;gBACpC,eAAe,GAAG,YAAY,CAAC;YACjC,CAAC;YAED,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;YAExC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,MAAM,eAAe,CAAC;gBAC5D,GAAG,EAAE,MAAM,CAAC,OAAO;gBACnB,SAAS,EAAE,eAAe;gBAC1B,OAAO;aACR,CAAC,CAAC;YAEH,oBAAoB,CAAC,cAAc,CAAC,CAAC;YACrC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,cAAc,CACxB,GAAG,EACH,8CAA8C,CAC/C,CAAC;YACF,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClB,QAAQ,CAAC,GAAG,CAAC,CAAC;YACd,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAEnE,8EAA8E;IAC9E,4BAA4B;IAC5B,8EAA8E;IAC9E,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,EAAE,OAAe,EAAE,EAAE;QACxB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACzC,QAAQ,CACN,8BAA8B,mBAAmB,aAAa,CAC/D,CAAC;YACF,OAAO;QACT,CAAC;QAED,IACE,KAAK,KAAK,OAAO;YACjB,KAAK,KAAK,UAAU;YACpB,KAAK,KAAK,OAAO,EACjB,CAAC;YACD,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;QAEhC,IAAI,CAAC;YACH,IAAI,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC;YAE3C,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,aAAa,CAAC;oBACtD,GAAG,EAAE,MAAM,CAAC,OAAO;oBACnB,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE;iBAChD,CAAC,CAAC;gBACH,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC;gBACpC,eAAe,GAAG,YAAY,CAAC;YACjC,CAAC;YAED,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,MAAM,eAAe,CAAC;gBAC5D,GAAG,EAAE,MAAM,CAAC,OAAO;gBACnB,SAAS,EAAE,eAAe;gBAC1B,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;YAEH,oBAAoB,CAAC,cAAc,CAAC,CAAC;YACrC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,cAAc,CACxB,GAAG,EACH,0DAA0D,CAC3D,CAAC;YACF,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClB,QAAQ,CAAC,GAAG,CAAC,CAAC;YACd,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,EACD,CAAC,KAAK,EAAE,aAAa,EAAE,eAAe,CAAC,CACxC,CAAC;IAEF,8EAA8E;IAC9E,sCAAsC;IACtC,8EAA8E;IAC9E,MAAM,SAAS,GAAG,WAAW,CAAC,GAAkB,EAAE;QAChD,IAAI,KAAK,KAAK,UAAU,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QACpD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC5B,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAEvB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,IAAI,KAAK,KAAK,UAAU;YAAE,OAAO;QACjC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,8EAA8E;IAC9E,kBAAkB;IAClB,8EAA8E;IAC9E,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjB,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC3B,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAC3B,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;QAChC,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;IACjC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,8EAA8E;IAC9E,kCAAkC;IAClC,8EAA8E;IAC9E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,IAAI,KAAK,KAAK,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC7D,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;YAC9B,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEjC,8EAA8E;IAC9E,uCAAuC;IACvC,8EAA8E;IAC9E,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,KAAK;QACL,mBAAmB;QACnB,eAAe,EAAE,MAAM,CAAC,SAAS;QACjC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY;QACtD,aAAa,EAAE,SAAS,EAAE,IAAI,IAAI,IAAI;QACtC,WAAW,EAAE,SAAS,EAAE,WAAW,IAAI,IAAI;QAC3C,KAAK;QACL,QAAQ;QACR,YAAY;QACZ,SAAS;QACT,UAAU;QACV,KAAK;KACN,CAAC,EACF;QACE,KAAK;QACL,mBAAmB;QACnB,MAAM,CAAC,SAAS;QAChB,MAAM,CAAC,WAAW;QAClB,MAAM,CAAC,YAAY;QACnB,SAAS;QACT,KAAK;QACL,QAAQ;QACR,YAAY;QACZ,SAAS;QACT,UAAU;QACV,KAAK;KACN,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { RefObject } from "react";
|
|
2
|
+
import type { WorkflowGraphModel } from "./workflow-graph-model";
|
|
3
|
+
import type { GraphCommand } from "./graph-commands";
|
|
4
|
+
/** Return value of {@link useGraphHistory}. */
|
|
5
|
+
export interface UseGraphHistoryReturn {
|
|
6
|
+
readonly currentModel: WorkflowGraphModel;
|
|
7
|
+
readonly canUndo: boolean;
|
|
8
|
+
readonly canRedo: boolean;
|
|
9
|
+
readonly dispatch: (command: GraphCommand) => WorkflowGraphModel;
|
|
10
|
+
readonly undo: () => void;
|
|
11
|
+
readonly redo: () => void;
|
|
12
|
+
readonly reset: (model: WorkflowGraphModel) => void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* React wrapper around {@link GraphHistory} providing undo/redo state
|
|
16
|
+
* management and keyboard shortcut binding.
|
|
17
|
+
*
|
|
18
|
+
* Keyboard shortcuts (Ctrl/Cmd+Z, Ctrl/Cmd+Shift+Z) are only active
|
|
19
|
+
* when the referenced container element contains the active focus target,
|
|
20
|
+
* preventing conflicts with other editors on the page.
|
|
21
|
+
*
|
|
22
|
+
* @param initialModel - The starting graph model (from YAML parse).
|
|
23
|
+
* @param containerRef - Ref to the DOM element that scopes keyboard shortcuts.
|
|
24
|
+
*
|
|
25
|
+
* @since T15 Batch 2 (Node Authoring)
|
|
26
|
+
*/
|
|
27
|
+
export declare function useGraphHistory(initialModel: WorkflowGraphModel | null, containerRef: RefObject<HTMLDivElement | null>): UseGraphHistoryReturn;
|
|
28
|
+
//# sourceMappingURL=useGraphHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGraphHistory.d.ts","sourceRoot":"","sources":["../../src/workflow/useGraphHistory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,+CAA+C;AAC/C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,kBAAkB,CAAC;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACrD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,kBAAkB,GAAG,IAAI,EACvC,YAAY,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,GAC7C,qBAAqB,CAsGvB"}
|