@orbytautomation/engine 0.1.0
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 +0 -0
- package/dist/adapters/AdapterRegistry.d.ts +129 -0
- package/dist/adapters/AdapterRegistry.d.ts.map +1 -0
- package/dist/adapters/AdapterRegistry.js +236 -0
- package/dist/adapters/AdapterRegistry.js.map +1 -0
- package/dist/adapters/StepAdapter.d.ts +2 -0
- package/dist/adapters/StepAdapter.d.ts.map +1 -0
- package/dist/adapters/StepAdapter.js +2 -0
- package/dist/adapters/StepAdapter.js.map +1 -0
- package/dist/adapters/WorkflowAdapter.d.ts +2 -0
- package/dist/adapters/WorkflowAdapter.d.ts.map +1 -0
- package/dist/adapters/WorkflowAdapter.js +2 -0
- package/dist/adapters/WorkflowAdapter.js.map +1 -0
- package/dist/adapters/builtins/CLIAdapter.d.ts +38 -0
- package/dist/adapters/builtins/CLIAdapter.d.ts.map +1 -0
- package/dist/adapters/builtins/CLIAdapter.js +173 -0
- package/dist/adapters/builtins/CLIAdapter.js.map +1 -0
- package/dist/adapters/builtins/CLICommandResolver.d.ts +49 -0
- package/dist/adapters/builtins/CLICommandResolver.d.ts.map +1 -0
- package/dist/adapters/builtins/CLICommandResolver.js +63 -0
- package/dist/adapters/builtins/CLICommandResolver.js.map +1 -0
- package/dist/adapters/builtins/CLIResultParser.d.ts +61 -0
- package/dist/adapters/builtins/CLIResultParser.d.ts.map +1 -0
- package/dist/adapters/builtins/CLIResultParser.js +113 -0
- package/dist/adapters/builtins/CLIResultParser.js.map +1 -0
- package/dist/adapters/builtins/ConnectionManager.d.ts +106 -0
- package/dist/adapters/builtins/ConnectionManager.d.ts.map +1 -0
- package/dist/adapters/builtins/ConnectionManager.js +162 -0
- package/dist/adapters/builtins/ConnectionManager.js.map +1 -0
- package/dist/adapters/builtins/Consumer.d.ts +110 -0
- package/dist/adapters/builtins/Consumer.d.ts.map +1 -0
- package/dist/adapters/builtins/Consumer.js +113 -0
- package/dist/adapters/builtins/Consumer.js.map +1 -0
- package/dist/adapters/builtins/DBAdapter.d.ts +79 -0
- package/dist/adapters/builtins/DBAdapter.d.ts.map +1 -0
- package/dist/adapters/builtins/DBAdapter.js +259 -0
- package/dist/adapters/builtins/DBAdapter.js.map +1 -0
- package/dist/adapters/builtins/EnvResolver.d.ts +66 -0
- package/dist/adapters/builtins/EnvResolver.d.ts.map +1 -0
- package/dist/adapters/builtins/EnvResolver.js +121 -0
- package/dist/adapters/builtins/EnvResolver.js.map +1 -0
- package/dist/adapters/builtins/FSAdapter.d.ts +50 -0
- package/dist/adapters/builtins/FSAdapter.d.ts.map +1 -0
- package/dist/adapters/builtins/FSAdapter.js +282 -0
- package/dist/adapters/builtins/FSAdapter.js.map +1 -0
- package/dist/adapters/builtins/FileResolver.d.ts +50 -0
- package/dist/adapters/builtins/FileResolver.d.ts.map +1 -0
- package/dist/adapters/builtins/FileResolver.js +77 -0
- package/dist/adapters/builtins/FileResolver.js.map +1 -0
- package/dist/adapters/builtins/HTTPAdapter.d.ts +58 -0
- package/dist/adapters/builtins/HTTPAdapter.d.ts.map +1 -0
- package/dist/adapters/builtins/HTTPAdapter.js +213 -0
- package/dist/adapters/builtins/HTTPAdapter.js.map +1 -0
- package/dist/adapters/builtins/HTTPRequestBuilder.d.ts +95 -0
- package/dist/adapters/builtins/HTTPRequestBuilder.d.ts.map +1 -0
- package/dist/adapters/builtins/HTTPRequestBuilder.js +159 -0
- package/dist/adapters/builtins/HTTPRequestBuilder.js.map +1 -0
- package/dist/adapters/builtins/HTTPResponseParser.d.ts +74 -0
- package/dist/adapters/builtins/HTTPResponseParser.d.ts.map +1 -0
- package/dist/adapters/builtins/HTTPResponseParser.js +144 -0
- package/dist/adapters/builtins/HTTPResponseParser.js.map +1 -0
- package/dist/adapters/builtins/PathSecurityPolicy.d.ts +38 -0
- package/dist/adapters/builtins/PathSecurityPolicy.d.ts.map +1 -0
- package/dist/adapters/builtins/PathSecurityPolicy.js +125 -0
- package/dist/adapters/builtins/PathSecurityPolicy.js.map +1 -0
- package/dist/adapters/builtins/Producer.d.ts +99 -0
- package/dist/adapters/builtins/Producer.d.ts.map +1 -0
- package/dist/adapters/builtins/Producer.js +59 -0
- package/dist/adapters/builtins/Producer.js.map +1 -0
- package/dist/adapters/builtins/QueryExecutor.d.ts +102 -0
- package/dist/adapters/builtins/QueryExecutor.d.ts.map +1 -0
- package/dist/adapters/builtins/QueryExecutor.js +90 -0
- package/dist/adapters/builtins/QueryExecutor.js.map +1 -0
- package/dist/adapters/builtins/QueueAdapter.d.ts +72 -0
- package/dist/adapters/builtins/QueueAdapter.d.ts.map +1 -0
- package/dist/adapters/builtins/QueueAdapter.js +209 -0
- package/dist/adapters/builtins/QueueAdapter.js.map +1 -0
- package/dist/adapters/builtins/SecretProvider.d.ts +69 -0
- package/dist/adapters/builtins/SecretProvider.d.ts.map +1 -0
- package/dist/adapters/builtins/SecretProvider.js +71 -0
- package/dist/adapters/builtins/SecretProvider.js.map +1 -0
- package/dist/adapters/builtins/SecretsAdapter.d.ts +48 -0
- package/dist/adapters/builtins/SecretsAdapter.d.ts.map +1 -0
- package/dist/adapters/builtins/SecretsAdapter.js +154 -0
- package/dist/adapters/builtins/SecretsAdapter.js.map +1 -0
- package/dist/adapters/builtins/ShellAdapter.d.ts +46 -0
- package/dist/adapters/builtins/ShellAdapter.d.ts.map +1 -0
- package/dist/adapters/builtins/ShellAdapter.js +200 -0
- package/dist/adapters/builtins/ShellAdapter.js.map +1 -0
- package/dist/adapters/builtins/ShellExecutor.d.ts +72 -0
- package/dist/adapters/builtins/ShellExecutor.d.ts.map +1 -0
- package/dist/adapters/builtins/ShellExecutor.js +94 -0
- package/dist/adapters/builtins/ShellExecutor.js.map +1 -0
- package/dist/adapters/builtins/ShellSecurityPolicy.d.ts +58 -0
- package/dist/adapters/builtins/ShellSecurityPolicy.d.ts.map +1 -0
- package/dist/adapters/builtins/ShellSecurityPolicy.js +135 -0
- package/dist/adapters/builtins/ShellSecurityPolicy.js.map +1 -0
- package/dist/adapters/builtins/index.d.ts +27 -0
- package/dist/adapters/builtins/index.d.ts.map +1 -0
- package/dist/adapters/builtins/index.js +35 -0
- package/dist/adapters/builtins/index.js.map +1 -0
- package/dist/adapters/index.d.ts +5 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +6 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/automation/BackoffStrategy.d.ts +106 -0
- package/dist/automation/BackoffStrategy.d.ts.map +1 -0
- package/dist/automation/BackoffStrategy.js +168 -0
- package/dist/automation/BackoffStrategy.js.map +1 -0
- package/dist/automation/FailureStrategy.d.ts +141 -0
- package/dist/automation/FailureStrategy.d.ts.map +1 -0
- package/dist/automation/FailureStrategy.js +246 -0
- package/dist/automation/FailureStrategy.js.map +1 -0
- package/dist/automation/RetryPolicy.d.ts +132 -0
- package/dist/automation/RetryPolicy.d.ts.map +1 -0
- package/dist/automation/RetryPolicy.js +241 -0
- package/dist/automation/RetryPolicy.js.map +1 -0
- package/dist/automation/TimeoutManager.d.ts +145 -0
- package/dist/automation/TimeoutManager.d.ts.map +1 -0
- package/dist/automation/TimeoutManager.js +241 -0
- package/dist/automation/TimeoutManager.js.map +1 -0
- package/dist/automation/index.d.ts +16 -0
- package/dist/automation/index.d.ts.map +1 -0
- package/dist/automation/index.js +16 -0
- package/dist/automation/index.js.map +1 -0
- package/dist/automation/runtime/BackoffTimer.d.ts +74 -0
- package/dist/automation/runtime/BackoffTimer.d.ts.map +1 -0
- package/dist/automation/runtime/BackoffTimer.js +139 -0
- package/dist/automation/runtime/BackoffTimer.js.map +1 -0
- package/dist/automation/runtime/FailureHandler.d.ts +138 -0
- package/dist/automation/runtime/FailureHandler.d.ts.map +1 -0
- package/dist/automation/runtime/FailureHandler.js +197 -0
- package/dist/automation/runtime/FailureHandler.js.map +1 -0
- package/dist/automation/runtime/RetryExecutor.d.ts +104 -0
- package/dist/automation/runtime/RetryExecutor.d.ts.map +1 -0
- package/dist/automation/runtime/RetryExecutor.js +173 -0
- package/dist/automation/runtime/RetryExecutor.js.map +1 -0
- package/dist/automation/runtime/index.d.ts +13 -0
- package/dist/automation/runtime/index.d.ts.map +1 -0
- package/dist/automation/runtime/index.js +13 -0
- package/dist/automation/runtime/index.js.map +1 -0
- package/dist/context/ContextStore.d.ts +185 -0
- package/dist/context/ContextStore.d.ts.map +1 -0
- package/dist/context/ContextStore.js +228 -0
- package/dist/context/ContextStore.js.map +1 -0
- package/dist/context/VariableResolver.d.ts +184 -0
- package/dist/context/VariableResolver.d.ts.map +1 -0
- package/dist/context/VariableResolver.js +368 -0
- package/dist/context/VariableResolver.js.map +1 -0
- package/dist/context/index.d.ts +17 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +17 -0
- package/dist/context/index.js.map +1 -0
- package/dist/core/EngineConfig.d.ts +156 -0
- package/dist/core/EngineConfig.d.ts.map +1 -0
- package/dist/core/EngineConfig.js +61 -0
- package/dist/core/EngineConfig.js.map +1 -0
- package/dist/core/EngineContext.d.ts +94 -0
- package/dist/core/EngineContext.d.ts.map +1 -0
- package/dist/core/EngineContext.js +29 -0
- package/dist/core/EngineContext.js.map +1 -0
- package/dist/core/OrbytEngine.d.ts +234 -0
- package/dist/core/OrbytEngine.d.ts.map +1 -0
- package/dist/core/OrbytEngine.js +421 -0
- package/dist/core/OrbytEngine.js.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +4 -0
- package/dist/core/index.js.map +1 -0
- package/dist/errors/ErrorCodes.d.ts +71 -0
- package/dist/errors/ErrorCodes.d.ts.map +1 -0
- package/dist/errors/ErrorCodes.js +95 -0
- package/dist/errors/ErrorCodes.js.map +1 -0
- package/dist/errors/ErrorFormatter.d.ts +34 -0
- package/dist/errors/ErrorFormatter.d.ts.map +1 -0
- package/dist/errors/ErrorFormatter.js +140 -0
- package/dist/errors/ErrorFormatter.js.map +1 -0
- package/dist/errors/FieldRegistry.d.ts +83 -0
- package/dist/errors/FieldRegistry.d.ts.map +1 -0
- package/dist/errors/FieldRegistry.js +217 -0
- package/dist/errors/FieldRegistry.js.map +1 -0
- package/dist/errors/OrbytError.d.ts +59 -0
- package/dist/errors/OrbytError.d.ts.map +1 -0
- package/dist/errors/OrbytError.js +78 -0
- package/dist/errors/OrbytError.js.map +1 -0
- package/dist/errors/SchedulerError.d.ts +2 -0
- package/dist/errors/SchedulerError.d.ts.map +1 -0
- package/dist/errors/SchedulerError.js +2 -0
- package/dist/errors/SchedulerError.js.map +1 -0
- package/dist/errors/StepError.d.ts +2 -0
- package/dist/errors/StepError.d.ts.map +1 -0
- package/dist/errors/StepError.js +2 -0
- package/dist/errors/StepError.js.map +1 -0
- package/dist/errors/TypoDetector.d.ts +36 -0
- package/dist/errors/TypoDetector.d.ts.map +1 -0
- package/dist/errors/TypoDetector.js +109 -0
- package/dist/errors/TypoDetector.js.map +1 -0
- package/dist/errors/WorkflowError.d.ts +54 -0
- package/dist/errors/WorkflowError.d.ts.map +1 -0
- package/dist/errors/WorkflowError.js +129 -0
- package/dist/errors/WorkflowError.js.map +1 -0
- package/dist/errors/index.d.ts +14 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +17 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/events/EngineEvents.d.ts +143 -0
- package/dist/events/EngineEvents.d.ts.map +1 -0
- package/dist/events/EngineEvents.js +60 -0
- package/dist/events/EngineEvents.js.map +1 -0
- package/dist/events/EventBus.d.ts +112 -0
- package/dist/events/EventBus.d.ts.map +1 -0
- package/dist/events/EventBus.js +177 -0
- package/dist/events/EventBus.js.map +1 -0
- package/dist/events/index.d.ts +3 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +3 -0
- package/dist/events/index.js.map +1 -0
- package/dist/execution/ExecutionEngine.d.ts +220 -0
- package/dist/execution/ExecutionEngine.d.ts.map +1 -0
- package/dist/execution/ExecutionEngine.js +442 -0
- package/dist/execution/ExecutionEngine.js.map +1 -0
- package/dist/execution/ExecutionNode.d.ts +114 -0
- package/dist/execution/ExecutionNode.d.ts.map +1 -0
- package/dist/execution/ExecutionNode.js +99 -0
- package/dist/execution/ExecutionNode.js.map +1 -0
- package/dist/execution/ExecutionPlan.d.ts +133 -0
- package/dist/execution/ExecutionPlan.d.ts.map +1 -0
- package/dist/execution/ExecutionPlan.js +207 -0
- package/dist/execution/ExecutionPlan.js.map +1 -0
- package/dist/execution/StepExecutor.d.ts +204 -0
- package/dist/execution/StepExecutor.d.ts.map +1 -0
- package/dist/execution/StepExecutor.js +604 -0
- package/dist/execution/StepExecutor.js.map +1 -0
- package/dist/execution/WorkflowExecutor.d.ts +129 -0
- package/dist/execution/WorkflowExecutor.d.ts.map +1 -0
- package/dist/execution/WorkflowExecutor.js +347 -0
- package/dist/execution/WorkflowExecutor.js.map +1 -0
- package/dist/execution/drivers/AdapterDriver.d.ts +34 -0
- package/dist/execution/drivers/AdapterDriver.d.ts.map +1 -0
- package/dist/execution/drivers/AdapterDriver.js +63 -0
- package/dist/execution/drivers/AdapterDriver.js.map +1 -0
- package/dist/execution/drivers/DriverResolver.d.ts +91 -0
- package/dist/execution/drivers/DriverResolver.d.ts.map +1 -0
- package/dist/execution/drivers/DriverResolver.js +172 -0
- package/dist/execution/drivers/DriverResolver.js.map +1 -0
- package/dist/execution/drivers/ExecutionDriver.d.ts +127 -0
- package/dist/execution/drivers/ExecutionDriver.d.ts.map +1 -0
- package/dist/execution/drivers/ExecutionDriver.js +50 -0
- package/dist/execution/drivers/ExecutionDriver.js.map +1 -0
- package/dist/execution/drivers/index.d.ts +11 -0
- package/dist/execution/drivers/index.d.ts.map +1 -0
- package/dist/execution/drivers/index.js +11 -0
- package/dist/execution/drivers/index.js.map +1 -0
- package/dist/execution/index.d.ts +18 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +19 -0
- package/dist/execution/index.js.map +1 -0
- package/dist/graph/CycleDetector.d.ts +90 -0
- package/dist/graph/CycleDetector.d.ts.map +1 -0
- package/dist/graph/CycleDetector.js +210 -0
- package/dist/graph/CycleDetector.js.map +1 -0
- package/dist/graph/DependencyGraph.d.ts +16 -0
- package/dist/graph/DependencyGraph.d.ts.map +1 -0
- package/dist/graph/DependencyGraph.js +16 -0
- package/dist/graph/DependencyGraph.js.map +1 -0
- package/dist/graph/DependencyResolver.d.ts +90 -0
- package/dist/graph/DependencyResolver.d.ts.map +1 -0
- package/dist/graph/DependencyResolver.js +159 -0
- package/dist/graph/DependencyResolver.js.map +1 -0
- package/dist/graph/TopologicalSorter.d.ts +104 -0
- package/dist/graph/TopologicalSorter.d.ts.map +1 -0
- package/dist/graph/TopologicalSorter.js +213 -0
- package/dist/graph/TopologicalSorter.js.map +1 -0
- package/dist/graph/index.d.ts +15 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +15 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/guards/ResourceGuard.d.ts +90 -0
- package/dist/guards/ResourceGuard.d.ts.map +1 -0
- package/dist/guards/ResourceGuard.js +177 -0
- package/dist/guards/ResourceGuard.js.map +1 -0
- package/dist/guards/StepGuard.d.ts +96 -0
- package/dist/guards/StepGuard.d.ts.map +1 -0
- package/dist/guards/StepGuard.js +184 -0
- package/dist/guards/StepGuard.js.map +1 -0
- package/dist/guards/WorkflowGuard.d.ts +71 -0
- package/dist/guards/WorkflowGuard.d.ts.map +1 -0
- package/dist/guards/WorkflowGuard.js +187 -0
- package/dist/guards/WorkflowGuard.js.map +1 -0
- package/dist/guards/index.d.ts +9 -0
- package/dist/guards/index.d.ts.map +1 -0
- package/dist/guards/index.js +9 -0
- package/dist/guards/index.js.map +1 -0
- package/dist/hooks/HookManager.d.ts +114 -0
- package/dist/hooks/HookManager.d.ts.map +1 -0
- package/dist/hooks/HookManager.js +187 -0
- package/dist/hooks/HookManager.js.map +1 -0
- package/dist/hooks/LifecycleHooks.d.ts +126 -0
- package/dist/hooks/LifecycleHooks.d.ts.map +1 -0
- package/dist/hooks/LifecycleHooks.js +23 -0
- package/dist/hooks/LifecycleHooks.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/lifecycle/EngineLifecycle.d.ts +121 -0
- package/dist/lifecycle/EngineLifecycle.d.ts.map +1 -0
- package/dist/lifecycle/EngineLifecycle.js +209 -0
- package/dist/lifecycle/EngineLifecycle.js.map +1 -0
- package/dist/lifecycle/ShutdownManager.d.ts +44 -0
- package/dist/lifecycle/ShutdownManager.d.ts.map +1 -0
- package/dist/lifecycle/ShutdownManager.js +105 -0
- package/dist/lifecycle/ShutdownManager.js.map +1 -0
- package/dist/lifecycle/StartupManager.d.ts +45 -0
- package/dist/lifecycle/StartupManager.d.ts.map +1 -0
- package/dist/lifecycle/StartupManager.js +97 -0
- package/dist/lifecycle/StartupManager.js.map +1 -0
- package/dist/lifecycle/index.d.ts +9 -0
- package/dist/lifecycle/index.d.ts.map +1 -0
- package/dist/lifecycle/index.js +9 -0
- package/dist/lifecycle/index.js.map +1 -0
- package/dist/logging/LogLevel.d.ts +2 -0
- package/dist/logging/LogLevel.d.ts.map +1 -0
- package/dist/logging/LogLevel.js +2 -0
- package/dist/logging/LogLevel.js.map +1 -0
- package/dist/logging/Logger.d.ts +2 -0
- package/dist/logging/Logger.d.ts.map +1 -0
- package/dist/logging/Logger.js +2 -0
- package/dist/logging/Logger.js.map +1 -0
- package/dist/logging/index.d.ts +2 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +4 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/marketplace/PluginInstaller.d.ts +81 -0
- package/dist/marketplace/PluginInstaller.d.ts.map +1 -0
- package/dist/marketplace/PluginInstaller.js +89 -0
- package/dist/marketplace/PluginInstaller.js.map +1 -0
- package/dist/marketplace/PluginManifest.d.ts +74 -0
- package/dist/marketplace/PluginManifest.d.ts.map +1 -0
- package/dist/marketplace/PluginManifest.js +67 -0
- package/dist/marketplace/PluginManifest.js.map +1 -0
- package/dist/marketplace/PluginVerifier.d.ts +58 -0
- package/dist/marketplace/PluginVerifier.d.ts.map +1 -0
- package/dist/marketplace/PluginVerifier.js +93 -0
- package/dist/marketplace/PluginVerifier.js.map +1 -0
- package/dist/marketplace/index.d.ts +11 -0
- package/dist/marketplace/index.d.ts.map +1 -0
- package/dist/marketplace/index.js +11 -0
- package/dist/marketplace/index.js.map +1 -0
- package/dist/metrics/MetricsCollector.d.ts +2 -0
- package/dist/metrics/MetricsCollector.d.ts.map +1 -0
- package/dist/metrics/MetricsCollector.js +2 -0
- package/dist/metrics/MetricsCollector.js.map +1 -0
- package/dist/metrics/PerformanceTracker.d.ts +2 -0
- package/dist/metrics/PerformanceTracker.d.ts.map +1 -0
- package/dist/metrics/PerformanceTracker.js +2 -0
- package/dist/metrics/PerformanceTracker.js.map +1 -0
- package/dist/metrics/index.d.ts +2 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +4 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/parser/SchemaValidator.d.ts +63 -0
- package/dist/parser/SchemaValidator.d.ts.map +1 -0
- package/dist/parser/SchemaValidator.js +212 -0
- package/dist/parser/SchemaValidator.js.map +1 -0
- package/dist/parser/StepParser.d.ts +124 -0
- package/dist/parser/StepParser.d.ts.map +1 -0
- package/dist/parser/StepParser.js +330 -0
- package/dist/parser/StepParser.js.map +1 -0
- package/dist/parser/WorkflowParser.d.ts +124 -0
- package/dist/parser/WorkflowParser.d.ts.map +1 -0
- package/dist/parser/WorkflowParser.js +141 -0
- package/dist/parser/WorkflowParser.js.map +1 -0
- package/dist/parser/index.d.ts +4 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +4 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/queue/InMemoryQueue.d.ts +97 -0
- package/dist/queue/InMemoryQueue.d.ts.map +1 -0
- package/dist/queue/InMemoryQueue.js +268 -0
- package/dist/queue/InMemoryQueue.js.map +1 -0
- package/dist/queue/JobQueue.d.ts +214 -0
- package/dist/queue/JobQueue.d.ts.map +1 -0
- package/dist/queue/JobQueue.js +46 -0
- package/dist/queue/JobQueue.js.map +1 -0
- package/dist/queue/index.d.ts +10 -0
- package/dist/queue/index.d.ts.map +1 -0
- package/dist/queue/index.js +10 -0
- package/dist/queue/index.js.map +1 -0
- package/dist/resolution/ActionRegistry.d.ts +2 -0
- package/dist/resolution/ActionRegistry.d.ts.map +1 -0
- package/dist/resolution/ActionRegistry.js +2 -0
- package/dist/resolution/ActionRegistry.js.map +1 -0
- package/dist/resolution/AdapterResolver.d.ts +2 -0
- package/dist/resolution/AdapterResolver.d.ts.map +1 -0
- package/dist/resolution/AdapterResolver.js +2 -0
- package/dist/resolution/AdapterResolver.js.map +1 -0
- package/dist/resolution/StepResolver.d.ts +2 -0
- package/dist/resolution/StepResolver.d.ts.map +1 -0
- package/dist/resolution/StepResolver.js +2 -0
- package/dist/resolution/StepResolver.js.map +1 -0
- package/dist/resolution/index.d.ts +2 -0
- package/dist/resolution/index.d.ts.map +1 -0
- package/dist/resolution/index.js +2 -0
- package/dist/resolution/index.js.map +1 -0
- package/dist/scheduling/CronScheduler.d.ts +143 -0
- package/dist/scheduling/CronScheduler.d.ts.map +1 -0
- package/dist/scheduling/CronScheduler.js +370 -0
- package/dist/scheduling/CronScheduler.js.map +1 -0
- package/dist/scheduling/JobScheduler.d.ts +82 -0
- package/dist/scheduling/JobScheduler.d.ts.map +1 -0
- package/dist/scheduling/JobScheduler.js +231 -0
- package/dist/scheduling/JobScheduler.js.map +1 -0
- package/dist/scheduling/ScheduleParser.d.ts +117 -0
- package/dist/scheduling/ScheduleParser.d.ts.map +1 -0
- package/dist/scheduling/ScheduleParser.js +257 -0
- package/dist/scheduling/ScheduleParser.js.map +1 -0
- package/dist/scheduling/ScheduleTypes.d.ts +153 -0
- package/dist/scheduling/ScheduleTypes.d.ts.map +1 -0
- package/dist/scheduling/ScheduleTypes.js +81 -0
- package/dist/scheduling/ScheduleTypes.js.map +1 -0
- package/dist/scheduling/Scheduler.d.ts +154 -0
- package/dist/scheduling/Scheduler.d.ts.map +1 -0
- package/dist/scheduling/Scheduler.js +304 -0
- package/dist/scheduling/Scheduler.js.map +1 -0
- package/dist/scheduling/index.d.ts +6 -0
- package/dist/scheduling/index.d.ts.map +1 -0
- package/dist/scheduling/index.js +6 -0
- package/dist/scheduling/index.js.map +1 -0
- package/dist/security/PermissionPolicy.d.ts +72 -0
- package/dist/security/PermissionPolicy.d.ts.map +1 -0
- package/dist/security/PermissionPolicy.js +87 -0
- package/dist/security/PermissionPolicy.js.map +1 -0
- package/dist/security/SandboxManager.d.ts +72 -0
- package/dist/security/SandboxManager.d.ts.map +1 -0
- package/dist/security/SandboxManager.js +78 -0
- package/dist/security/SandboxManager.js.map +1 -0
- package/dist/security/index.d.ts +10 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +10 -0
- package/dist/security/index.js.map +1 -0
- package/dist/state/ExecutionState.d.ts +211 -0
- package/dist/state/ExecutionState.d.ts.map +1 -0
- package/dist/state/ExecutionState.js +256 -0
- package/dist/state/ExecutionState.js.map +1 -0
- package/dist/state/StateMachine.d.ts +120 -0
- package/dist/state/StateMachine.d.ts.map +1 -0
- package/dist/state/StateMachine.js +230 -0
- package/dist/state/StateMachine.js.map +1 -0
- package/dist/state/index.d.ts +16 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +16 -0
- package/dist/state/index.js.map +1 -0
- package/dist/storage/ExecutionStore.d.ts +2 -0
- package/dist/storage/ExecutionStore.d.ts.map +1 -0
- package/dist/storage/ExecutionStore.js +2 -0
- package/dist/storage/ExecutionStore.js.map +1 -0
- package/dist/storage/ScheduleStore.d.ts +2 -0
- package/dist/storage/ScheduleStore.d.ts.map +1 -0
- package/dist/storage/ScheduleStore.js +2 -0
- package/dist/storage/ScheduleStore.js.map +1 -0
- package/dist/storage/WorkflowStore.d.ts +2 -0
- package/dist/storage/WorkflowStore.d.ts.map +1 -0
- package/dist/storage/WorkflowStore.js +2 -0
- package/dist/storage/WorkflowStore.js.map +1 -0
- package/dist/storage/index.d.ts +2 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +5 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/testing/EngineTestHarness.d.ts +117 -0
- package/dist/testing/EngineTestHarness.d.ts.map +1 -0
- package/dist/testing/EngineTestHarness.js +132 -0
- package/dist/testing/EngineTestHarness.js.map +1 -0
- package/dist/testing/MockAdapter.d.ts +93 -0
- package/dist/testing/MockAdapter.d.ts.map +1 -0
- package/dist/testing/MockAdapter.js +124 -0
- package/dist/testing/MockAdapter.js.map +1 -0
- package/dist/testing/index.d.ts +10 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +10 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/triggers/CronTrigger.d.ts +2 -0
- package/dist/triggers/CronTrigger.d.ts.map +1 -0
- package/dist/triggers/CronTrigger.js +2 -0
- package/dist/triggers/CronTrigger.js.map +1 -0
- package/dist/triggers/EventTrigger.d.ts +2 -0
- package/dist/triggers/EventTrigger.d.ts.map +1 -0
- package/dist/triggers/EventTrigger.js +2 -0
- package/dist/triggers/EventTrigger.js.map +1 -0
- package/dist/triggers/ManualTrigger.d.ts +2 -0
- package/dist/triggers/ManualTrigger.d.ts.map +1 -0
- package/dist/triggers/ManualTrigger.js +2 -0
- package/dist/triggers/ManualTrigger.js.map +1 -0
- package/dist/triggers/Trigger.d.ts +2 -0
- package/dist/triggers/Trigger.d.ts.map +1 -0
- package/dist/triggers/Trigger.js +2 -0
- package/dist/triggers/Trigger.js.map +1 -0
- package/dist/triggers/index.d.ts +2 -0
- package/dist/triggers/index.d.ts.map +1 -0
- package/dist/triggers/index.js +6 -0
- package/dist/triggers/index.js.map +1 -0
- package/dist/triggers/sources/FileWatcherTrigger.d.ts +2 -0
- package/dist/triggers/sources/FileWatcherTrigger.d.ts.map +1 -0
- package/dist/triggers/sources/FileWatcherTrigger.js +2 -0
- package/dist/triggers/sources/FileWatcherTrigger.js.map +1 -0
- package/dist/triggers/sources/MessageTrigger.d.ts +2 -0
- package/dist/triggers/sources/MessageTrigger.d.ts.map +1 -0
- package/dist/triggers/sources/MessageTrigger.js +2 -0
- package/dist/triggers/sources/MessageTrigger.js.map +1 -0
- package/dist/triggers/sources/WebhookListener.d.ts +2 -0
- package/dist/triggers/sources/WebhookListener.d.ts.map +1 -0
- package/dist/triggers/sources/WebhookListener.js +2 -0
- package/dist/triggers/sources/WebhookListener.js.map +1 -0
- package/dist/triggers/sources/index.d.ts +2 -0
- package/dist/triggers/sources/index.d.ts.map +1 -0
- package/dist/triggers/sources/index.js +2 -0
- package/dist/triggers/sources/index.js.map +1 -0
- package/dist/utils/deepMerge.d.ts +2 -0
- package/dist/utils/deepMerge.d.ts.map +1 -0
- package/dist/utils/deepMerge.js +2 -0
- package/dist/utils/deepMerge.js.map +1 -0
- package/dist/utils/id.d.ts +2 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +2 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/safeExec.d.ts +2 -0
- package/dist/utils/safeExec.d.ts.map +1 -0
- package/dist/utils/safeExec.js +2 -0
- package/dist/utils/safeExec.js.map +1 -0
- package/dist/utils/time.d.ts +2 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +2 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/visualization/ExecutionGraphBuilder.d.ts +2 -0
- package/dist/visualization/ExecutionGraphBuilder.d.ts.map +1 -0
- package/dist/visualization/ExecutionGraphBuilder.js +2 -0
- package/dist/visualization/ExecutionGraphBuilder.js.map +1 -0
- package/dist/visualization/ExecutionTraceFormatter.d.ts +2 -0
- package/dist/visualization/ExecutionTraceFormatter.d.ts.map +1 -0
- package/dist/visualization/ExecutionTraceFormatter.js +2 -0
- package/dist/visualization/ExecutionTraceFormatter.js.map +1 -0
- package/dist/visualization/index.d.ts +2 -0
- package/dist/visualization/index.d.ts.map +1 -0
- package/dist/visualization/index.js +2 -0
- package/dist/visualization/index.js.map +1 -0
- package/dist/workflow/Step.d.ts +2 -0
- package/dist/workflow/Step.d.ts.map +1 -0
- package/dist/workflow/Step.js +2 -0
- package/dist/workflow/Step.js.map +1 -0
- package/dist/workflow/StepContext.d.ts +2 -0
- package/dist/workflow/StepContext.d.ts.map +1 -0
- package/dist/workflow/StepContext.js +2 -0
- package/dist/workflow/StepContext.js.map +1 -0
- package/dist/workflow/StepResult.d.ts +2 -0
- package/dist/workflow/StepResult.d.ts.map +1 -0
- package/dist/workflow/StepResult.js +2 -0
- package/dist/workflow/StepResult.js.map +1 -0
- package/dist/workflow/Workflow.d.ts +2 -0
- package/dist/workflow/Workflow.d.ts.map +1 -0
- package/dist/workflow/Workflow.js +2 -0
- package/dist/workflow/Workflow.js.map +1 -0
- package/dist/workflow/WorkflowRegistry.d.ts +2 -0
- package/dist/workflow/WorkflowRegistry.d.ts.map +1 -0
- package/dist/workflow/WorkflowRegistry.js +2 -0
- package/dist/workflow/WorkflowRegistry.js.map +1 -0
- package/dist/workflow/WorkflowState.d.ts +2 -0
- package/dist/workflow/WorkflowState.d.ts.map +1 -0
- package/dist/workflow/WorkflowState.js +2 -0
- package/dist/workflow/WorkflowState.js.map +1 -0
- package/dist/workflow/index.d.ts +2 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +8 -0
- package/dist/workflow/index.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Security Module
|
|
3
|
+
*
|
|
4
|
+
* Permission policies, sandboxing, and security enforcement.
|
|
5
|
+
*
|
|
6
|
+
* @status stub - will be fully implemented when core engine is stable
|
|
7
|
+
*/
|
|
8
|
+
export * from './PermissionPolicy.js';
|
|
9
|
+
export * from './SandboxManager.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Security Module
|
|
3
|
+
*
|
|
4
|
+
* Permission policies, sandboxing, and security enforcement.
|
|
5
|
+
*
|
|
6
|
+
* @status stub - will be fully implemented when core engine is stable
|
|
7
|
+
*/
|
|
8
|
+
export * from './PermissionPolicy.js';
|
|
9
|
+
export * from './SandboxManager.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution State
|
|
3
|
+
*
|
|
4
|
+
* Tracks workflow and step execution state for observability,
|
|
5
|
+
* recovery, and resume capabilities.
|
|
6
|
+
*
|
|
7
|
+
* @module state
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Step execution status
|
|
11
|
+
*
|
|
12
|
+
* Lifecycle:
|
|
13
|
+
* PENDING → RUNNING → SUCCESS → COMPLETED
|
|
14
|
+
* OR
|
|
15
|
+
* PENDING → RUNNING → FAILED → RETRYING → RUNNING → SUCCESS → COMPLETED
|
|
16
|
+
* OR
|
|
17
|
+
* PENDING → SKIPPED
|
|
18
|
+
*/
|
|
19
|
+
export declare enum StepStatus {
|
|
20
|
+
/** Step is queued, not yet started */
|
|
21
|
+
PENDING = "PENDING",
|
|
22
|
+
/** Step is currently executing */
|
|
23
|
+
RUNNING = "RUNNING",
|
|
24
|
+
/** Step completed successfully */
|
|
25
|
+
SUCCESS = "SUCCESS",
|
|
26
|
+
/** Step failed */
|
|
27
|
+
FAILED = "FAILED",
|
|
28
|
+
/** Step is retrying after failure */
|
|
29
|
+
RETRYING = "RETRYING",
|
|
30
|
+
/** Step was skipped (conditional execution) */
|
|
31
|
+
SKIPPED = "SKIPPED",
|
|
32
|
+
/** Step timed out */
|
|
33
|
+
TIMEOUT = "TIMEOUT",
|
|
34
|
+
/** Step was cancelled */
|
|
35
|
+
CANCELLED = "CANCELLED"
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Workflow execution status
|
|
39
|
+
*/
|
|
40
|
+
export declare enum WorkflowStatus {
|
|
41
|
+
/** Workflow is queued, not yet started */
|
|
42
|
+
QUEUED = "QUEUED",
|
|
43
|
+
/** Workflow is currently executing */
|
|
44
|
+
RUNNING = "RUNNING",
|
|
45
|
+
/** Workflow completed successfully (all steps success) */
|
|
46
|
+
COMPLETED = "COMPLETED",
|
|
47
|
+
/** Workflow failed (one or more steps failed) */
|
|
48
|
+
FAILED = "FAILED",
|
|
49
|
+
/** Workflow partially completed (some steps failed but continueOnError=true) */
|
|
50
|
+
PARTIAL = "PARTIAL",
|
|
51
|
+
/** Workflow timed out */
|
|
52
|
+
TIMEOUT = "TIMEOUT",
|
|
53
|
+
/** Workflow was cancelled */
|
|
54
|
+
CANCELLED = "CANCELLED",
|
|
55
|
+
/** Workflow is paused (future feature) */
|
|
56
|
+
PAUSED = "PAUSED"
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Step execution state
|
|
60
|
+
*/
|
|
61
|
+
export interface StepExecutionState {
|
|
62
|
+
/** Unique step ID */
|
|
63
|
+
stepId: string;
|
|
64
|
+
/** Current status */
|
|
65
|
+
status: StepStatus;
|
|
66
|
+
/** Number of execution attempts */
|
|
67
|
+
attempts: number;
|
|
68
|
+
/** Start timestamp (ms since epoch) */
|
|
69
|
+
startTime?: number;
|
|
70
|
+
/** End timestamp (ms since epoch) */
|
|
71
|
+
endTime?: number;
|
|
72
|
+
/** Error information if failed */
|
|
73
|
+
error?: {
|
|
74
|
+
message: string;
|
|
75
|
+
code?: string;
|
|
76
|
+
stack?: string;
|
|
77
|
+
};
|
|
78
|
+
/** Step output data (if successful) */
|
|
79
|
+
output?: any;
|
|
80
|
+
/** Execution duration in milliseconds */
|
|
81
|
+
duration?: number;
|
|
82
|
+
/** Last updated timestamp */
|
|
83
|
+
updatedAt: number;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Workflow execution state
|
|
87
|
+
*/
|
|
88
|
+
export interface WorkflowExecutionState {
|
|
89
|
+
/** Unique workflow execution ID */
|
|
90
|
+
executionId: string;
|
|
91
|
+
/** Workflow name/ID */
|
|
92
|
+
workflowId: string;
|
|
93
|
+
/** Current workflow status */
|
|
94
|
+
status: WorkflowStatus;
|
|
95
|
+
/** State of all steps (keyed by step ID) */
|
|
96
|
+
steps: Record<string, StepExecutionState>;
|
|
97
|
+
/** Workflow start timestamp (ms since epoch) */
|
|
98
|
+
startedAt?: number;
|
|
99
|
+
/** Workflow completion timestamp (ms since epoch) */
|
|
100
|
+
finishedAt?: number;
|
|
101
|
+
/** Total workflow duration in milliseconds */
|
|
102
|
+
duration?: number;
|
|
103
|
+
/** Workflow-level error (if failed) */
|
|
104
|
+
error?: {
|
|
105
|
+
message: string;
|
|
106
|
+
stepId?: string;
|
|
107
|
+
code?: string;
|
|
108
|
+
};
|
|
109
|
+
/** Execution metadata */
|
|
110
|
+
metadata: {
|
|
111
|
+
/** Total number of steps */
|
|
112
|
+
totalSteps: number;
|
|
113
|
+
/** Number of completed steps */
|
|
114
|
+
completedSteps: number;
|
|
115
|
+
/** Number of failed steps */
|
|
116
|
+
failedSteps: number;
|
|
117
|
+
/** Number of skipped steps */
|
|
118
|
+
skippedSteps: number;
|
|
119
|
+
/** Current phase being executed */
|
|
120
|
+
currentPhase?: number;
|
|
121
|
+
/** Total number of phases */
|
|
122
|
+
totalPhases?: number;
|
|
123
|
+
};
|
|
124
|
+
/** Last state update timestamp */
|
|
125
|
+
updatedAt: number;
|
|
126
|
+
/** Execution context snapshot */
|
|
127
|
+
context?: {
|
|
128
|
+
env?: Record<string, any>;
|
|
129
|
+
inputs?: Record<string, any>;
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Execution State Manager
|
|
134
|
+
*
|
|
135
|
+
* Manages workflow and step state with thread-safe updates.
|
|
136
|
+
*/
|
|
137
|
+
export declare class ExecutionStateManager {
|
|
138
|
+
private states;
|
|
139
|
+
/**
|
|
140
|
+
* Initialize a new workflow execution state
|
|
141
|
+
*/
|
|
142
|
+
initializeWorkflow(executionId: string, workflowId: string, stepIds: string[], context?: {
|
|
143
|
+
env?: Record<string, any>;
|
|
144
|
+
inputs?: Record<string, any>;
|
|
145
|
+
}): WorkflowExecutionState;
|
|
146
|
+
/**
|
|
147
|
+
* Get workflow execution state
|
|
148
|
+
*/
|
|
149
|
+
getState(executionId: string): WorkflowExecutionState | undefined;
|
|
150
|
+
/**
|
|
151
|
+
* Update workflow status
|
|
152
|
+
*/
|
|
153
|
+
updateWorkflowStatus(executionId: string, status: WorkflowStatus, error?: {
|
|
154
|
+
message: string;
|
|
155
|
+
stepId?: string;
|
|
156
|
+
code?: string;
|
|
157
|
+
}): void;
|
|
158
|
+
/**
|
|
159
|
+
* Update step status
|
|
160
|
+
*/
|
|
161
|
+
updateStepStatus(executionId: string, stepId: string, status: StepStatus, data?: {
|
|
162
|
+
error?: {
|
|
163
|
+
message: string;
|
|
164
|
+
code?: string;
|
|
165
|
+
stack?: string;
|
|
166
|
+
};
|
|
167
|
+
output?: any;
|
|
168
|
+
attempts?: number;
|
|
169
|
+
}): void;
|
|
170
|
+
/**
|
|
171
|
+
* Get step state
|
|
172
|
+
*/
|
|
173
|
+
getStepState(executionId: string, stepId: string): StepExecutionState | undefined;
|
|
174
|
+
/**
|
|
175
|
+
* Check if step has completed (success or terminal failure)
|
|
176
|
+
*/
|
|
177
|
+
isStepCompleted(executionId: string, stepId: string): boolean;
|
|
178
|
+
/**
|
|
179
|
+
* Check if step succeeded
|
|
180
|
+
*/
|
|
181
|
+
isStepSuccessful(executionId: string, stepId: string): boolean;
|
|
182
|
+
/**
|
|
183
|
+
* Get all failed steps
|
|
184
|
+
*/
|
|
185
|
+
getFailedSteps(executionId: string): StepExecutionState[];
|
|
186
|
+
/**
|
|
187
|
+
* Get all completed steps
|
|
188
|
+
*/
|
|
189
|
+
getCompletedSteps(executionId: string): StepExecutionState[];
|
|
190
|
+
/**
|
|
191
|
+
* Clear execution state (cleanup)
|
|
192
|
+
*/
|
|
193
|
+
clearState(executionId: string): boolean;
|
|
194
|
+
/**
|
|
195
|
+
* Get all execution IDs
|
|
196
|
+
*/
|
|
197
|
+
getAllExecutionIds(): string[];
|
|
198
|
+
/**
|
|
199
|
+
* Check if status is terminal (workflow)
|
|
200
|
+
*/
|
|
201
|
+
private isTerminalStatus;
|
|
202
|
+
/**
|
|
203
|
+
* Check if status is terminal (step)
|
|
204
|
+
*/
|
|
205
|
+
private isTerminalStepStatus;
|
|
206
|
+
/**
|
|
207
|
+
* Update workflow metadata counts based on step states
|
|
208
|
+
*/
|
|
209
|
+
private updateWorkflowMetadata;
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=ExecutionState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecutionState.d.ts","sourceRoot":"","sources":["../../src/state/ExecutionState.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;GASG;AACH,oBAAY,UAAU;IACpB,sCAAsC;IACtC,OAAO,YAAY;IAEnB,kCAAkC;IAClC,OAAO,YAAY;IAEnB,kCAAkC;IAClC,OAAO,YAAY;IAEnB,kBAAkB;IAClB,MAAM,WAAW;IAEjB,qCAAqC;IACrC,QAAQ,aAAa;IAErB,+CAA+C;IAC/C,OAAO,YAAY;IAEnB,qBAAqB;IACrB,OAAO,YAAY;IAEnB,yBAAyB;IACzB,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,oBAAY,cAAc;IACxB,0CAA0C;IAC1C,MAAM,WAAW;IAEjB,sCAAsC;IACtC,OAAO,YAAY;IAEnB,0DAA0D;IAC1D,SAAS,cAAc;IAEvB,iDAAiD;IACjD,MAAM,WAAW;IAEjB,gFAAgF;IAChF,OAAO,YAAY;IAEnB,yBAAyB;IACzB,OAAO,YAAY;IAEnB,6BAA6B;IAC7B,SAAS,cAAc;IAEvB,0CAA0C;IAC1C,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IAEf,qBAAqB;IACrB,MAAM,EAAE,UAAU,CAAC;IAEnB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IAEjB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,kCAAkC;IAClC,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,uCAAuC;IACvC,MAAM,CAAC,EAAE,GAAG,CAAC;IAEb,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IAEpB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IAEnB,8BAA8B;IAC9B,MAAM,EAAE,cAAc,CAAC;IAEvB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAE1C,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,uCAAuC;IACvC,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,yBAAyB;IACzB,QAAQ,EAAE;QACR,4BAA4B;QAC5B,UAAU,EAAE,MAAM,CAAC;QAEnB,gCAAgC;QAChC,cAAc,EAAE,MAAM,CAAC;QAEvB,6BAA6B;QAC7B,WAAW,EAAE,MAAM,CAAC;QAEpB,8BAA8B;QAC9B,YAAY,EAAE,MAAM,CAAC;QAErB,mCAAmC;QACnC,YAAY,CAAC,EAAE,MAAM,CAAC;QAEtB,6BAA6B;QAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IAEF,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAElB,iCAAiC;IACjC,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9B,CAAC;CACH;AAED;;;;GAIG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAkD;IAEhE;;OAEG;IACH,kBAAkB,CAChB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GACpE,sBAAsB;IAgCzB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAIjE;;OAEG;IACH,oBAAoB,CAClB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EACtB,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1D,IAAI;IA0BP;;OAEG;IACH,gBAAgB,CACd,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAClB,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3D,MAAM,CAAC,EAAE,GAAG,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GACA,IAAI;IA+CP;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAKjF;;OAEG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAO7D;;OAEG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAK9D;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,EAAE;IASzD;;OAEG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAS5D;;OAEG;IACH,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIxC;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAe/B"}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution State
|
|
3
|
+
*
|
|
4
|
+
* Tracks workflow and step execution state for observability,
|
|
5
|
+
* recovery, and resume capabilities.
|
|
6
|
+
*
|
|
7
|
+
* @module state
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Step execution status
|
|
11
|
+
*
|
|
12
|
+
* Lifecycle:
|
|
13
|
+
* PENDING → RUNNING → SUCCESS → COMPLETED
|
|
14
|
+
* OR
|
|
15
|
+
* PENDING → RUNNING → FAILED → RETRYING → RUNNING → SUCCESS → COMPLETED
|
|
16
|
+
* OR
|
|
17
|
+
* PENDING → SKIPPED
|
|
18
|
+
*/
|
|
19
|
+
export var StepStatus;
|
|
20
|
+
(function (StepStatus) {
|
|
21
|
+
/** Step is queued, not yet started */
|
|
22
|
+
StepStatus["PENDING"] = "PENDING";
|
|
23
|
+
/** Step is currently executing */
|
|
24
|
+
StepStatus["RUNNING"] = "RUNNING";
|
|
25
|
+
/** Step completed successfully */
|
|
26
|
+
StepStatus["SUCCESS"] = "SUCCESS";
|
|
27
|
+
/** Step failed */
|
|
28
|
+
StepStatus["FAILED"] = "FAILED";
|
|
29
|
+
/** Step is retrying after failure */
|
|
30
|
+
StepStatus["RETRYING"] = "RETRYING";
|
|
31
|
+
/** Step was skipped (conditional execution) */
|
|
32
|
+
StepStatus["SKIPPED"] = "SKIPPED";
|
|
33
|
+
/** Step timed out */
|
|
34
|
+
StepStatus["TIMEOUT"] = "TIMEOUT";
|
|
35
|
+
/** Step was cancelled */
|
|
36
|
+
StepStatus["CANCELLED"] = "CANCELLED";
|
|
37
|
+
})(StepStatus || (StepStatus = {}));
|
|
38
|
+
/**
|
|
39
|
+
* Workflow execution status
|
|
40
|
+
*/
|
|
41
|
+
export var WorkflowStatus;
|
|
42
|
+
(function (WorkflowStatus) {
|
|
43
|
+
/** Workflow is queued, not yet started */
|
|
44
|
+
WorkflowStatus["QUEUED"] = "QUEUED";
|
|
45
|
+
/** Workflow is currently executing */
|
|
46
|
+
WorkflowStatus["RUNNING"] = "RUNNING";
|
|
47
|
+
/** Workflow completed successfully (all steps success) */
|
|
48
|
+
WorkflowStatus["COMPLETED"] = "COMPLETED";
|
|
49
|
+
/** Workflow failed (one or more steps failed) */
|
|
50
|
+
WorkflowStatus["FAILED"] = "FAILED";
|
|
51
|
+
/** Workflow partially completed (some steps failed but continueOnError=true) */
|
|
52
|
+
WorkflowStatus["PARTIAL"] = "PARTIAL";
|
|
53
|
+
/** Workflow timed out */
|
|
54
|
+
WorkflowStatus["TIMEOUT"] = "TIMEOUT";
|
|
55
|
+
/** Workflow was cancelled */
|
|
56
|
+
WorkflowStatus["CANCELLED"] = "CANCELLED";
|
|
57
|
+
/** Workflow is paused (future feature) */
|
|
58
|
+
WorkflowStatus["PAUSED"] = "PAUSED";
|
|
59
|
+
})(WorkflowStatus || (WorkflowStatus = {}));
|
|
60
|
+
/**
|
|
61
|
+
* Execution State Manager
|
|
62
|
+
*
|
|
63
|
+
* Manages workflow and step state with thread-safe updates.
|
|
64
|
+
*/
|
|
65
|
+
export class ExecutionStateManager {
|
|
66
|
+
states = new Map();
|
|
67
|
+
/**
|
|
68
|
+
* Initialize a new workflow execution state
|
|
69
|
+
*/
|
|
70
|
+
initializeWorkflow(executionId, workflowId, stepIds, context) {
|
|
71
|
+
const now = Date.now();
|
|
72
|
+
const steps = {};
|
|
73
|
+
for (const stepId of stepIds) {
|
|
74
|
+
steps[stepId] = {
|
|
75
|
+
stepId,
|
|
76
|
+
status: StepStatus.PENDING,
|
|
77
|
+
attempts: 0,
|
|
78
|
+
updatedAt: now,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
const state = {
|
|
82
|
+
executionId,
|
|
83
|
+
workflowId,
|
|
84
|
+
status: WorkflowStatus.QUEUED,
|
|
85
|
+
steps,
|
|
86
|
+
metadata: {
|
|
87
|
+
totalSteps: stepIds.length,
|
|
88
|
+
completedSteps: 0,
|
|
89
|
+
failedSteps: 0,
|
|
90
|
+
skippedSteps: 0,
|
|
91
|
+
},
|
|
92
|
+
updatedAt: now,
|
|
93
|
+
context,
|
|
94
|
+
};
|
|
95
|
+
this.states.set(executionId, state);
|
|
96
|
+
return state;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get workflow execution state
|
|
100
|
+
*/
|
|
101
|
+
getState(executionId) {
|
|
102
|
+
return this.states.get(executionId);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Update workflow status
|
|
106
|
+
*/
|
|
107
|
+
updateWorkflowStatus(executionId, status, error) {
|
|
108
|
+
const state = this.states.get(executionId);
|
|
109
|
+
if (!state) {
|
|
110
|
+
throw new Error(`Workflow execution ${executionId} not found`);
|
|
111
|
+
}
|
|
112
|
+
const now = Date.now();
|
|
113
|
+
state.status = status;
|
|
114
|
+
state.updatedAt = now;
|
|
115
|
+
if (status === WorkflowStatus.RUNNING && !state.startedAt) {
|
|
116
|
+
state.startedAt = now;
|
|
117
|
+
}
|
|
118
|
+
if (this.isTerminalStatus(status) && !state.finishedAt) {
|
|
119
|
+
state.finishedAt = now;
|
|
120
|
+
if (state.startedAt) {
|
|
121
|
+
state.duration = state.finishedAt - state.startedAt;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (error) {
|
|
125
|
+
state.error = error;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Update step status
|
|
130
|
+
*/
|
|
131
|
+
updateStepStatus(executionId, stepId, status, data) {
|
|
132
|
+
const state = this.states.get(executionId);
|
|
133
|
+
if (!state) {
|
|
134
|
+
throw new Error(`Workflow execution ${executionId} not found`);
|
|
135
|
+
}
|
|
136
|
+
const stepState = state.steps[stepId];
|
|
137
|
+
if (!stepState) {
|
|
138
|
+
throw new Error(`Step ${stepId} not found in execution ${executionId}`);
|
|
139
|
+
}
|
|
140
|
+
const now = Date.now();
|
|
141
|
+
stepState.status = status;
|
|
142
|
+
stepState.updatedAt = now;
|
|
143
|
+
// Track start time
|
|
144
|
+
if (status === StepStatus.RUNNING && !stepState.startTime) {
|
|
145
|
+
stepState.startTime = now;
|
|
146
|
+
}
|
|
147
|
+
// Track end time and duration
|
|
148
|
+
if (this.isTerminalStepStatus(status) && !stepState.endTime) {
|
|
149
|
+
stepState.endTime = now;
|
|
150
|
+
if (stepState.startTime) {
|
|
151
|
+
stepState.duration = stepState.endTime - stepState.startTime;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// Update attempts
|
|
155
|
+
if (data?.attempts !== undefined) {
|
|
156
|
+
stepState.attempts = data.attempts;
|
|
157
|
+
}
|
|
158
|
+
// Store error
|
|
159
|
+
if (data?.error) {
|
|
160
|
+
stepState.error = data.error;
|
|
161
|
+
}
|
|
162
|
+
// Store output
|
|
163
|
+
if (data?.output !== undefined) {
|
|
164
|
+
stepState.output = data.output;
|
|
165
|
+
}
|
|
166
|
+
// Update workflow metadata counts
|
|
167
|
+
this.updateWorkflowMetadata(state);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Get step state
|
|
171
|
+
*/
|
|
172
|
+
getStepState(executionId, stepId) {
|
|
173
|
+
const state = this.states.get(executionId);
|
|
174
|
+
return state?.steps[stepId];
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Check if step has completed (success or terminal failure)
|
|
178
|
+
*/
|
|
179
|
+
isStepCompleted(executionId, stepId) {
|
|
180
|
+
const stepState = this.getStepState(executionId, stepId);
|
|
181
|
+
if (!stepState)
|
|
182
|
+
return false;
|
|
183
|
+
return this.isTerminalStepStatus(stepState.status);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Check if step succeeded
|
|
187
|
+
*/
|
|
188
|
+
isStepSuccessful(executionId, stepId) {
|
|
189
|
+
const stepState = this.getStepState(executionId, stepId);
|
|
190
|
+
return stepState?.status === StepStatus.SUCCESS;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get all failed steps
|
|
194
|
+
*/
|
|
195
|
+
getFailedSteps(executionId) {
|
|
196
|
+
const state = this.states.get(executionId);
|
|
197
|
+
if (!state)
|
|
198
|
+
return [];
|
|
199
|
+
return Object.values(state.steps).filter(step => step.status === StepStatus.FAILED || step.status === StepStatus.TIMEOUT);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Get all completed steps
|
|
203
|
+
*/
|
|
204
|
+
getCompletedSteps(executionId) {
|
|
205
|
+
const state = this.states.get(executionId);
|
|
206
|
+
if (!state)
|
|
207
|
+
return [];
|
|
208
|
+
return Object.values(state.steps).filter(step => this.isTerminalStepStatus(step.status));
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Clear execution state (cleanup)
|
|
212
|
+
*/
|
|
213
|
+
clearState(executionId) {
|
|
214
|
+
return this.states.delete(executionId);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Get all execution IDs
|
|
218
|
+
*/
|
|
219
|
+
getAllExecutionIds() {
|
|
220
|
+
return Array.from(this.states.keys());
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Check if status is terminal (workflow)
|
|
224
|
+
*/
|
|
225
|
+
isTerminalStatus(status) {
|
|
226
|
+
return [
|
|
227
|
+
WorkflowStatus.COMPLETED,
|
|
228
|
+
WorkflowStatus.FAILED,
|
|
229
|
+
WorkflowStatus.PARTIAL,
|
|
230
|
+
WorkflowStatus.TIMEOUT,
|
|
231
|
+
WorkflowStatus.CANCELLED,
|
|
232
|
+
].includes(status);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Check if status is terminal (step)
|
|
236
|
+
*/
|
|
237
|
+
isTerminalStepStatus(status) {
|
|
238
|
+
return [
|
|
239
|
+
StepStatus.SUCCESS,
|
|
240
|
+
StepStatus.FAILED,
|
|
241
|
+
StepStatus.TIMEOUT,
|
|
242
|
+
StepStatus.CANCELLED,
|
|
243
|
+
StepStatus.SKIPPED,
|
|
244
|
+
].includes(status);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Update workflow metadata counts based on step states
|
|
248
|
+
*/
|
|
249
|
+
updateWorkflowMetadata(state) {
|
|
250
|
+
const steps = Object.values(state.steps);
|
|
251
|
+
state.metadata.completedSteps = steps.filter(s => s.status === StepStatus.SUCCESS).length;
|
|
252
|
+
state.metadata.failedSteps = steps.filter(s => s.status === StepStatus.FAILED || s.status === StepStatus.TIMEOUT).length;
|
|
253
|
+
state.metadata.skippedSteps = steps.filter(s => s.status === StepStatus.SKIPPED).length;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=ExecutionState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecutionState.js","sourceRoot":"","sources":["../../src/state/ExecutionState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Machine
|
|
3
|
+
*
|
|
4
|
+
* Enforces valid state transitions for workflow and step execution.
|
|
5
|
+
* This ensures state integrity and prevents invalid state combinations.
|
|
6
|
+
*
|
|
7
|
+
* Purpose:
|
|
8
|
+
* - Define valid state transition rules
|
|
9
|
+
* - Validate transitions before they occur
|
|
10
|
+
* - Provide type-safe transition methods
|
|
11
|
+
* - Track transition history for debugging
|
|
12
|
+
*
|
|
13
|
+
* This is about RULES, not execution. It answers:
|
|
14
|
+
* - Can this state transition happen?
|
|
15
|
+
* - What are the valid next states?
|
|
16
|
+
* - Is this state terminal (no further transitions)?
|
|
17
|
+
*
|
|
18
|
+
* @module state
|
|
19
|
+
*/
|
|
20
|
+
import { StepStatus, WorkflowStatus } from './ExecutionState.js';
|
|
21
|
+
/**
|
|
22
|
+
* State transition record for audit trail
|
|
23
|
+
*/
|
|
24
|
+
export interface StateTransition<T> {
|
|
25
|
+
/** State before transition */
|
|
26
|
+
readonly from: T;
|
|
27
|
+
/** State after transition */
|
|
28
|
+
readonly to: T;
|
|
29
|
+
/** Timestamp of transition (ms since epoch) */
|
|
30
|
+
readonly timestamp: number;
|
|
31
|
+
/** Optional reason for transition */
|
|
32
|
+
readonly reason?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* State machine configuration
|
|
36
|
+
*/
|
|
37
|
+
export interface StateMachineConfig<T> {
|
|
38
|
+
/** Initial state */
|
|
39
|
+
readonly initialState: T;
|
|
40
|
+
/** Valid transitions map: from → allowed to states */
|
|
41
|
+
readonly transitions: ReadonlyMap<T, readonly T[]>;
|
|
42
|
+
/** Terminal states (no further transitions allowed) */
|
|
43
|
+
readonly terminalStates: ReadonlySet<T>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Generic state machine for enforcing valid transitions
|
|
47
|
+
*/
|
|
48
|
+
export declare class StateMachine<T> {
|
|
49
|
+
private currentState;
|
|
50
|
+
private readonly config;
|
|
51
|
+
private readonly history;
|
|
52
|
+
constructor(config: StateMachineConfig<T>);
|
|
53
|
+
/**
|
|
54
|
+
* Get current state
|
|
55
|
+
*/
|
|
56
|
+
getState(): T;
|
|
57
|
+
/**
|
|
58
|
+
* Check if transition is valid
|
|
59
|
+
*/
|
|
60
|
+
canTransition(to: T): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Perform state transition
|
|
63
|
+
*
|
|
64
|
+
* @param to - Target state
|
|
65
|
+
* @param reason - Optional reason for transition
|
|
66
|
+
* @throws Error if transition is invalid
|
|
67
|
+
*/
|
|
68
|
+
transition(to: T, reason?: string): void;
|
|
69
|
+
/**
|
|
70
|
+
* Check if current state is terminal
|
|
71
|
+
*/
|
|
72
|
+
isTerminal(): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Get allowed transitions from current state
|
|
75
|
+
*/
|
|
76
|
+
getAllowedTransitions(): readonly T[];
|
|
77
|
+
/**
|
|
78
|
+
* Get transition history
|
|
79
|
+
*/
|
|
80
|
+
getHistory(): readonly StateTransition<T>[];
|
|
81
|
+
/**
|
|
82
|
+
* Reset to initial state (for testing/recovery)
|
|
83
|
+
*/
|
|
84
|
+
reset(): void;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Create step state machine
|
|
88
|
+
*/
|
|
89
|
+
export declare function createStepStateMachine(): StateMachine<StepStatus>;
|
|
90
|
+
/**
|
|
91
|
+
* Create workflow state machine
|
|
92
|
+
*/
|
|
93
|
+
export declare function createWorkflowStateMachine(): StateMachine<WorkflowStatus>;
|
|
94
|
+
/**
|
|
95
|
+
* Validate step state transition
|
|
96
|
+
* Throws if invalid
|
|
97
|
+
*/
|
|
98
|
+
export declare function validateStepTransition(from: StepStatus, to: StepStatus): void;
|
|
99
|
+
/**
|
|
100
|
+
* Validate workflow state transition
|
|
101
|
+
* Throws if invalid
|
|
102
|
+
*/
|
|
103
|
+
export declare function validateWorkflowTransition(from: WorkflowStatus, to: WorkflowStatus): void;
|
|
104
|
+
/**
|
|
105
|
+
* Check if step status is terminal
|
|
106
|
+
*/
|
|
107
|
+
export declare function isStepTerminal(status: StepStatus): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Check if workflow status is terminal
|
|
110
|
+
*/
|
|
111
|
+
export declare function isWorkflowTerminal(status: WorkflowStatus): boolean;
|
|
112
|
+
/**
|
|
113
|
+
* Get allowed transitions from a step state
|
|
114
|
+
*/
|
|
115
|
+
export declare function getStepTransitions(from: StepStatus): readonly StepStatus[];
|
|
116
|
+
/**
|
|
117
|
+
* Get allowed transitions from a workflow state
|
|
118
|
+
*/
|
|
119
|
+
export declare function getWorkflowTransitions(from: WorkflowStatus): readonly WorkflowStatus[];
|
|
120
|
+
//# sourceMappingURL=StateMachine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateMachine.d.ts","sourceRoot":"","sources":["../../src/state/StateMachine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACf,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qCAAqC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,oBAAoB;IACpB,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IACzB,sDAAsD;IACtD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IACnD,uDAAuD;IACvD,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,qBAAa,YAAY,CAAC,CAAC;IACzB,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;gBAExC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAKzC;;OAEG;IACH,QAAQ,IAAI,CAAC;IAIb;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO;IAc7B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAmBxC;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,qBAAqB,IAAI,SAAS,CAAC,EAAE;IAIrC;;OAEG;IACH,UAAU,IAAI,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE;IAI3C;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAuED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,YAAY,CAAC,UAAU,CAAC,CAMjE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,YAAY,CAAC,cAAc,CAAC,CAMzE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,UAAU,GACb,IAAI,CAQN;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,cAAc,EACpB,EAAE,EAAE,cAAc,GACjB,IAAI,CAQN;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAElE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,UAAU,EAAE,CAE1E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,cAAc,EAAE,CAEtF"}
|