@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,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Failure Handler
|
|
3
|
+
*
|
|
4
|
+
* Runtime executor for failure strategies in workflow execution.
|
|
5
|
+
* Handles failure decisions, cleanup, and error propagation.
|
|
6
|
+
*
|
|
7
|
+
* @module automation/runtime
|
|
8
|
+
*/
|
|
9
|
+
import { FailureStrategy, type FailureDecision } from '../FailureStrategy.js';
|
|
10
|
+
/**
|
|
11
|
+
* Failure context for tracking execution state
|
|
12
|
+
*/
|
|
13
|
+
export interface FailureContext {
|
|
14
|
+
/** ID of failed step */
|
|
15
|
+
stepId: string;
|
|
16
|
+
/** Error that caused failure */
|
|
17
|
+
error: Error;
|
|
18
|
+
/** Total steps in workflow */
|
|
19
|
+
totalSteps: number;
|
|
20
|
+
/** Number of completed steps */
|
|
21
|
+
completedSteps: number;
|
|
22
|
+
/** Number of failed steps so far */
|
|
23
|
+
failureCount: number;
|
|
24
|
+
/** Workflow execution ID */
|
|
25
|
+
executionId?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Failure handling result
|
|
29
|
+
*/
|
|
30
|
+
export interface FailureHandlingResult {
|
|
31
|
+
/** Failure decision */
|
|
32
|
+
decision: FailureDecision;
|
|
33
|
+
/** Cleanup completed successfully */
|
|
34
|
+
cleanupSuccess: boolean;
|
|
35
|
+
/** Error during cleanup (if any) */
|
|
36
|
+
cleanupError?: Error;
|
|
37
|
+
/** Steps to skip based on decision */
|
|
38
|
+
stepsToSkip: string[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Failure event listeners
|
|
42
|
+
*/
|
|
43
|
+
export interface FailureListeners {
|
|
44
|
+
/** Called before handling failure */
|
|
45
|
+
onBeforeHandle?: (context: FailureContext) => void | Promise<void>;
|
|
46
|
+
/** Called after decision is made */
|
|
47
|
+
onDecision?: (decision: FailureDecision, context: FailureContext) => void | Promise<void>;
|
|
48
|
+
/** Called before cleanup */
|
|
49
|
+
onBeforeCleanup?: (context: FailureContext) => void | Promise<void>;
|
|
50
|
+
/** Called after cleanup */
|
|
51
|
+
onAfterCleanup?: (success: boolean, context: FailureContext) => void | Promise<void>;
|
|
52
|
+
/** Called when workflow should abort */
|
|
53
|
+
onAbort?: (reason: string, context: FailureContext) => void | Promise<void>;
|
|
54
|
+
/** Called when workflow continues after failure */
|
|
55
|
+
onContinue?: (context: FailureContext) => void | Promise<void>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Dependency information for skip decisions
|
|
59
|
+
*/
|
|
60
|
+
export interface DependencyInfo {
|
|
61
|
+
/** Step ID to dependencies map */
|
|
62
|
+
stepDependencies: Map<string, string[]>;
|
|
63
|
+
/** Step ID to dependents map (reverse) */
|
|
64
|
+
stepDependents: Map<string, string[]>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Failure handler for workflow execution
|
|
68
|
+
*/
|
|
69
|
+
export declare class FailureHandler {
|
|
70
|
+
/**
|
|
71
|
+
* Handle step failure with strategy
|
|
72
|
+
*
|
|
73
|
+
* @param context - Failure context
|
|
74
|
+
* @param strategy - Failure strategy
|
|
75
|
+
* @param dependencyInfo - Dependency information for skip decisions
|
|
76
|
+
* @param listeners - Event listeners
|
|
77
|
+
* @returns Failure handling result
|
|
78
|
+
*/
|
|
79
|
+
static handle(context: FailureContext, strategy: FailureStrategy, dependencyInfo?: DependencyInfo, listeners?: FailureListeners): Promise<FailureHandlingResult>;
|
|
80
|
+
/**
|
|
81
|
+
* Calculate which steps should be skipped based on failed step
|
|
82
|
+
* Uses dependency graph to find all dependent steps
|
|
83
|
+
*
|
|
84
|
+
* @param failedStepId - ID of failed step
|
|
85
|
+
* @param dependencyInfo - Dependency information
|
|
86
|
+
* @returns Array of step IDs to skip
|
|
87
|
+
*/
|
|
88
|
+
private static calculateStepsToSkip;
|
|
89
|
+
/**
|
|
90
|
+
* Check if step should be skipped based on failure context
|
|
91
|
+
*
|
|
92
|
+
* @param stepId - Step to check
|
|
93
|
+
* @param skippedSteps - Set of steps that should be skipped
|
|
94
|
+
* @returns True if step should be skipped
|
|
95
|
+
*/
|
|
96
|
+
static shouldSkipStep(stepId: string, skippedSteps: Set<string>): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Create enriched error with failure context
|
|
99
|
+
*
|
|
100
|
+
* @param originalError - Original error
|
|
101
|
+
* @param context - Failure context
|
|
102
|
+
* @param decision - Failure decision
|
|
103
|
+
* @returns Enriched error
|
|
104
|
+
*/
|
|
105
|
+
static enrichError(originalError: Error, context: FailureContext, decision: FailureDecision): Error;
|
|
106
|
+
/**
|
|
107
|
+
* Build failure summary for logging/reporting
|
|
108
|
+
*
|
|
109
|
+
* @param context - Failure context
|
|
110
|
+
* @param decision - Failure decision
|
|
111
|
+
* @param result - Handling result
|
|
112
|
+
* @returns Formatted failure summary
|
|
113
|
+
*/
|
|
114
|
+
static buildFailureSummary(context: FailureContext, decision: FailureDecision, result: FailureHandlingResult): string;
|
|
115
|
+
/**
|
|
116
|
+
* Determine final workflow status based on failures
|
|
117
|
+
*
|
|
118
|
+
* @param totalSteps - Total number of steps
|
|
119
|
+
* @param completedSteps - Number of completed steps
|
|
120
|
+
* @param failedSteps - Number of failed steps
|
|
121
|
+
* @param allowPartialSuccess - Whether partial success is allowed
|
|
122
|
+
* @returns Final workflow status
|
|
123
|
+
*/
|
|
124
|
+
static determineFinalStatus(totalSteps: number, completedSteps: number, failedSteps: number, allowPartialSuccess: boolean): 'success' | 'failed' | 'partial';
|
|
125
|
+
/**
|
|
126
|
+
* Create failure context from step execution
|
|
127
|
+
*
|
|
128
|
+
* @param stepId - Step ID
|
|
129
|
+
* @param error - Error that occurred
|
|
130
|
+
* @param totalSteps - Total steps
|
|
131
|
+
* @param completedSteps - Completed steps
|
|
132
|
+
* @param failureCount - Current failure count
|
|
133
|
+
* @param executionId - Execution ID
|
|
134
|
+
* @returns Failure context
|
|
135
|
+
*/
|
|
136
|
+
static createContext(stepId: string, error: Error, _totalSteps: number, completedSteps: number, failureCount: number, executionId?: string): FailureContext;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=FailureHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FailureHandler.d.ts","sourceRoot":"","sources":["../../../src/automation/runtime/FailureHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Failure Handler
|
|
3
|
+
*
|
|
4
|
+
* Runtime executor for failure strategies in workflow execution.
|
|
5
|
+
* Handles failure decisions, cleanup, and error propagation.
|
|
6
|
+
*
|
|
7
|
+
* @module automation/runtime
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Failure handler for workflow execution
|
|
11
|
+
*/
|
|
12
|
+
export class FailureHandler {
|
|
13
|
+
/**
|
|
14
|
+
* Handle step failure with strategy
|
|
15
|
+
*
|
|
16
|
+
* @param context - Failure context
|
|
17
|
+
* @param strategy - Failure strategy
|
|
18
|
+
* @param dependencyInfo - Dependency information for skip decisions
|
|
19
|
+
* @param listeners - Event listeners
|
|
20
|
+
* @returns Failure handling result
|
|
21
|
+
*/
|
|
22
|
+
static async handle(context, strategy, dependencyInfo, listeners) {
|
|
23
|
+
// Call before handle listener
|
|
24
|
+
await listeners?.onBeforeHandle?.(context);
|
|
25
|
+
// Get failure decision from strategy
|
|
26
|
+
const decision = await strategy.decide(context.stepId, context.error, context.totalSteps, context.completedSteps);
|
|
27
|
+
// Call decision listener
|
|
28
|
+
await listeners?.onDecision?.(decision, context);
|
|
29
|
+
// Execute cleanup if needed
|
|
30
|
+
let cleanupSuccess = true;
|
|
31
|
+
let cleanupError;
|
|
32
|
+
if (decision.runCleanup) {
|
|
33
|
+
await listeners?.onBeforeCleanup?.(context);
|
|
34
|
+
try {
|
|
35
|
+
// Strategy already runs onFailure during decide()
|
|
36
|
+
// This is additional cleanup if needed
|
|
37
|
+
cleanupSuccess = true;
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
cleanupSuccess = false;
|
|
41
|
+
cleanupError = error instanceof Error ? error : new Error(String(error));
|
|
42
|
+
}
|
|
43
|
+
await listeners?.onAfterCleanup?.(cleanupSuccess, context);
|
|
44
|
+
}
|
|
45
|
+
// Determine steps to skip
|
|
46
|
+
const stepsToSkip = decision.skipDependentSteps && dependencyInfo
|
|
47
|
+
? this.calculateStepsToSkip(context.stepId, dependencyInfo)
|
|
48
|
+
: [];
|
|
49
|
+
// Call appropriate listener
|
|
50
|
+
if (!decision.continueWorkflow) {
|
|
51
|
+
await listeners?.onAbort?.(decision.reason, context);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
await listeners?.onContinue?.(context);
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
decision,
|
|
58
|
+
cleanupSuccess,
|
|
59
|
+
cleanupError,
|
|
60
|
+
stepsToSkip,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Calculate which steps should be skipped based on failed step
|
|
65
|
+
* Uses dependency graph to find all dependent steps
|
|
66
|
+
*
|
|
67
|
+
* @param failedStepId - ID of failed step
|
|
68
|
+
* @param dependencyInfo - Dependency information
|
|
69
|
+
* @returns Array of step IDs to skip
|
|
70
|
+
*/
|
|
71
|
+
static calculateStepsToSkip(failedStepId, dependencyInfo) {
|
|
72
|
+
const toSkip = new Set();
|
|
73
|
+
const queue = [failedStepId];
|
|
74
|
+
// BFS to find all dependent steps
|
|
75
|
+
while (queue.length > 0) {
|
|
76
|
+
const stepId = queue.shift();
|
|
77
|
+
const dependents = dependencyInfo.stepDependents.get(stepId) || [];
|
|
78
|
+
for (const dependent of dependents) {
|
|
79
|
+
if (!toSkip.has(dependent)) {
|
|
80
|
+
toSkip.add(dependent);
|
|
81
|
+
queue.push(dependent);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return Array.from(toSkip);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Check if step should be skipped based on failure context
|
|
89
|
+
*
|
|
90
|
+
* @param stepId - Step to check
|
|
91
|
+
* @param skippedSteps - Set of steps that should be skipped
|
|
92
|
+
* @returns True if step should be skipped
|
|
93
|
+
*/
|
|
94
|
+
static shouldSkipStep(stepId, skippedSteps) {
|
|
95
|
+
return skippedSteps.has(stepId);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Create enriched error with failure context
|
|
99
|
+
*
|
|
100
|
+
* @param originalError - Original error
|
|
101
|
+
* @param context - Failure context
|
|
102
|
+
* @param decision - Failure decision
|
|
103
|
+
* @returns Enriched error
|
|
104
|
+
*/
|
|
105
|
+
static enrichError(originalError, context, decision) {
|
|
106
|
+
const enriched = new Error(originalError.message);
|
|
107
|
+
enriched.name = originalError.name;
|
|
108
|
+
enriched.stack = originalError.stack;
|
|
109
|
+
enriched.failureContext = {
|
|
110
|
+
stepId: context.stepId,
|
|
111
|
+
executionId: context.executionId,
|
|
112
|
+
failureCount: context.failureCount,
|
|
113
|
+
decision: decision.reason,
|
|
114
|
+
continueWorkflow: decision.continueWorkflow,
|
|
115
|
+
};
|
|
116
|
+
return enriched;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Build failure summary for logging/reporting
|
|
120
|
+
*
|
|
121
|
+
* @param context - Failure context
|
|
122
|
+
* @param decision - Failure decision
|
|
123
|
+
* @param result - Handling result
|
|
124
|
+
* @returns Formatted failure summary
|
|
125
|
+
*/
|
|
126
|
+
static buildFailureSummary(context, decision, result) {
|
|
127
|
+
const lines = [
|
|
128
|
+
`❌ Step Failure: ${context.stepId}`,
|
|
129
|
+
` Error: ${context.error.message}`,
|
|
130
|
+
` Decision: ${decision.reason}`,
|
|
131
|
+
` Continue: ${decision.continueWorkflow ? 'Yes' : 'No'}`,
|
|
132
|
+
];
|
|
133
|
+
if (result.stepsToSkip.length > 0) {
|
|
134
|
+
lines.push(` Skipping: ${result.stepsToSkip.join(', ')}`);
|
|
135
|
+
}
|
|
136
|
+
if (decision.runCleanup) {
|
|
137
|
+
lines.push(` Cleanup: ${result.cleanupSuccess ? '✅' : '❌'}`);
|
|
138
|
+
}
|
|
139
|
+
if (decision.finalStatus) {
|
|
140
|
+
lines.push(` Final Status: ${decision.finalStatus}`);
|
|
141
|
+
}
|
|
142
|
+
return lines.join('\n');
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Determine final workflow status based on failures
|
|
146
|
+
*
|
|
147
|
+
* @param totalSteps - Total number of steps
|
|
148
|
+
* @param completedSteps - Number of completed steps
|
|
149
|
+
* @param failedSteps - Number of failed steps
|
|
150
|
+
* @param allowPartialSuccess - Whether partial success is allowed
|
|
151
|
+
* @returns Final workflow status
|
|
152
|
+
*/
|
|
153
|
+
static determineFinalStatus(totalSteps, completedSteps, failedSteps, allowPartialSuccess) {
|
|
154
|
+
// All steps completed successfully
|
|
155
|
+
if (failedSteps === 0) {
|
|
156
|
+
return 'success';
|
|
157
|
+
}
|
|
158
|
+
// No steps completed at all
|
|
159
|
+
if (completedSteps === 0) {
|
|
160
|
+
return 'failed';
|
|
161
|
+
}
|
|
162
|
+
// Calculate completion ratio for better status decision
|
|
163
|
+
const completionRatio = completedSteps / totalSteps;
|
|
164
|
+
const failureRatio = failedSteps / totalSteps;
|
|
165
|
+
// If partial success is allowed and we have meaningful completion
|
|
166
|
+
if (allowPartialSuccess && completedSteps > 0) {
|
|
167
|
+
// Consider it still 'failed' if less than 50% completed
|
|
168
|
+
// but mark as 'partial' if majority succeeded
|
|
169
|
+
if (completionRatio >= 0.5 && failureRatio < 0.5) {
|
|
170
|
+
return 'partial';
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return 'failed';
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Create failure context from step execution
|
|
177
|
+
*
|
|
178
|
+
* @param stepId - Step ID
|
|
179
|
+
* @param error - Error that occurred
|
|
180
|
+
* @param totalSteps - Total steps
|
|
181
|
+
* @param completedSteps - Completed steps
|
|
182
|
+
* @param failureCount - Current failure count
|
|
183
|
+
* @param executionId - Execution ID
|
|
184
|
+
* @returns Failure context
|
|
185
|
+
*/
|
|
186
|
+
static createContext(stepId, error, _totalSteps, completedSteps, failureCount, executionId) {
|
|
187
|
+
return {
|
|
188
|
+
stepId,
|
|
189
|
+
error,
|
|
190
|
+
totalSteps: _totalSteps,
|
|
191
|
+
completedSteps,
|
|
192
|
+
failureCount,
|
|
193
|
+
executionId,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=FailureHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FailureHandler.js","sourceRoot":"","sources":["../../../src/automation/runtime/FailureHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retry Executor
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates retry logic for operations using RetryPolicy and BackoffTimer.
|
|
5
|
+
* This is the high-level runtime component that replaces inline retry logic.
|
|
6
|
+
*
|
|
7
|
+
* @module automation/runtime
|
|
8
|
+
*/
|
|
9
|
+
import { RetryPolicy } from '../RetryPolicy.js';
|
|
10
|
+
/**
|
|
11
|
+
* Retry context for tracking retry state
|
|
12
|
+
*/
|
|
13
|
+
export interface RetryContext {
|
|
14
|
+
/** Current attempt number (1-indexed) */
|
|
15
|
+
attempt: number;
|
|
16
|
+
/** Maximum attempts allowed */
|
|
17
|
+
maxAttempts: number;
|
|
18
|
+
/** Errors from previous attempts */
|
|
19
|
+
previousErrors: Error[];
|
|
20
|
+
/** Total time spent on retries (ms) */
|
|
21
|
+
totalRetryTimeMs: number;
|
|
22
|
+
/** Whether this is the final attempt */
|
|
23
|
+
isFinalAttempt: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Retry result
|
|
27
|
+
*/
|
|
28
|
+
export interface RetryResult<T> {
|
|
29
|
+
/** Operation result (undefined if all retries failed) */
|
|
30
|
+
result?: T;
|
|
31
|
+
/** Final status */
|
|
32
|
+
status: 'success' | 'failed' | 'aborted';
|
|
33
|
+
/** Number of attempts made */
|
|
34
|
+
attempts: number;
|
|
35
|
+
/** Final error if failed */
|
|
36
|
+
error?: Error;
|
|
37
|
+
/** Array of all errors encountered */
|
|
38
|
+
allErrors: Error[];
|
|
39
|
+
/** Total execution time including retries (ms) */
|
|
40
|
+
totalTimeMs: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Retry event listeners
|
|
44
|
+
*/
|
|
45
|
+
export interface RetryListeners<T> {
|
|
46
|
+
/** Called before each attempt */
|
|
47
|
+
onAttempt?: (context: RetryContext) => void | Promise<void>;
|
|
48
|
+
/** Called after successful attempt */
|
|
49
|
+
onSuccess?: (result: T, context: RetryContext) => void | Promise<void>;
|
|
50
|
+
/** Called after failed attempt (before retry decision) */
|
|
51
|
+
onError?: (error: Error, context: RetryContext) => void | Promise<void>;
|
|
52
|
+
/** Called when retry is about to happen */
|
|
53
|
+
onRetry?: (error: Error, delayMs: number, context: RetryContext) => void | Promise<void>;
|
|
54
|
+
/** Called when retries are exhausted */
|
|
55
|
+
onExhausted?: (errors: Error[]) => void | Promise<void>;
|
|
56
|
+
/** Called when retry is aborted */
|
|
57
|
+
onAbort?: (error: Error, reason: string) => void | Promise<void>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Retry executor for orchestrating retry logic
|
|
61
|
+
*/
|
|
62
|
+
export declare class RetryExecutor {
|
|
63
|
+
/**
|
|
64
|
+
* Execute operation with retry policy
|
|
65
|
+
*
|
|
66
|
+
* @param operation - Async operation to execute
|
|
67
|
+
* @param policy - Retry policy
|
|
68
|
+
* @param listeners - Event listeners for retry lifecycle
|
|
69
|
+
* @returns Retry result
|
|
70
|
+
*/
|
|
71
|
+
static execute<T>(operation: () => Promise<T>, policy: RetryPolicy, listeners?: RetryListeners<T>): Promise<RetryResult<T>>;
|
|
72
|
+
/**
|
|
73
|
+
* Execute operation with retry (throwing version)
|
|
74
|
+
* Throws error if all retries fail
|
|
75
|
+
*
|
|
76
|
+
* @param operation - Async operation to execute
|
|
77
|
+
* @param policy - Retry policy
|
|
78
|
+
* @param listeners - Event listeners
|
|
79
|
+
* @returns Operation result
|
|
80
|
+
* @throws Last error if all retries fail
|
|
81
|
+
*/
|
|
82
|
+
static executeOrThrow<T>(operation: () => Promise<T>, policy: RetryPolicy, listeners?: RetryListeners<T>): Promise<T>;
|
|
83
|
+
/**
|
|
84
|
+
* Execute operation with simple retry (no policy object)
|
|
85
|
+
*
|
|
86
|
+
* @param operation - Async operation to execute
|
|
87
|
+
* @param maxAttempts - Maximum attempts
|
|
88
|
+
* @param delayMs - Delay between attempts
|
|
89
|
+
* @returns Operation result
|
|
90
|
+
*/
|
|
91
|
+
static executeSimple<T>(operation: () => Promise<T>, maxAttempts: number, delayMs?: number): Promise<T>;
|
|
92
|
+
/**
|
|
93
|
+
* Execute with retry and timeout
|
|
94
|
+
* Combines retry logic with timeout enforcement
|
|
95
|
+
*
|
|
96
|
+
* @param operation - Async operation to execute
|
|
97
|
+
* @param policy - Retry policy
|
|
98
|
+
* @param timeoutMs - Timeout per attempt (ms)
|
|
99
|
+
* @param listeners - Event listeners
|
|
100
|
+
* @returns Retry result
|
|
101
|
+
*/
|
|
102
|
+
static executeWithTimeout<T>(operation: () => Promise<T>, policy: RetryPolicy, timeoutMs: number, listeners?: RetryListeners<T>): Promise<RetryResult<T>>;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=RetryExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RetryExecutor.d.ts","sourceRoot":"","sources":["../../../src/automation/runtime/RetryExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retry Executor
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates retry logic for operations using RetryPolicy and BackoffTimer.
|
|
5
|
+
* This is the high-level runtime component that replaces inline retry logic.
|
|
6
|
+
*
|
|
7
|
+
* @module automation/runtime
|
|
8
|
+
*/
|
|
9
|
+
import { BackoffTimer } from './BackoffTimer.js';
|
|
10
|
+
/**
|
|
11
|
+
* Retry executor for orchestrating retry logic
|
|
12
|
+
*/
|
|
13
|
+
export class RetryExecutor {
|
|
14
|
+
/**
|
|
15
|
+
* Execute operation with retry policy
|
|
16
|
+
*
|
|
17
|
+
* @param operation - Async operation to execute
|
|
18
|
+
* @param policy - Retry policy
|
|
19
|
+
* @param listeners - Event listeners for retry lifecycle
|
|
20
|
+
* @returns Retry result
|
|
21
|
+
*/
|
|
22
|
+
static async execute(operation, policy, listeners) {
|
|
23
|
+
const startTime = Date.now();
|
|
24
|
+
const maxAttempts = policy.getMaxAttempts();
|
|
25
|
+
const allErrors = [];
|
|
26
|
+
let attempt = 0;
|
|
27
|
+
let totalRetryTimeMs = 0;
|
|
28
|
+
while (attempt < maxAttempts) {
|
|
29
|
+
attempt++;
|
|
30
|
+
const context = {
|
|
31
|
+
attempt,
|
|
32
|
+
maxAttempts,
|
|
33
|
+
previousErrors: [...allErrors],
|
|
34
|
+
totalRetryTimeMs,
|
|
35
|
+
isFinalAttempt: attempt === maxAttempts,
|
|
36
|
+
};
|
|
37
|
+
// Call onAttempt listener
|
|
38
|
+
await listeners?.onAttempt?.(context);
|
|
39
|
+
try {
|
|
40
|
+
// Execute operation
|
|
41
|
+
const result = await operation();
|
|
42
|
+
// Success!
|
|
43
|
+
await listeners?.onSuccess?.(result, context);
|
|
44
|
+
return {
|
|
45
|
+
result,
|
|
46
|
+
status: 'success',
|
|
47
|
+
attempts: attempt,
|
|
48
|
+
allErrors,
|
|
49
|
+
totalTimeMs: Date.now() - startTime,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
54
|
+
allErrors.push(err);
|
|
55
|
+
// Call onError listener
|
|
56
|
+
await listeners?.onError?.(err, context);
|
|
57
|
+
// Check if should retry
|
|
58
|
+
const shouldRetry = policy.shouldRetry(err, attempt);
|
|
59
|
+
if (!shouldRetry) {
|
|
60
|
+
// Check if aborted vs exhausted
|
|
61
|
+
if (policy.shouldAbort(err)) {
|
|
62
|
+
await listeners?.onAbort?.(err, 'Error triggers abort condition');
|
|
63
|
+
return {
|
|
64
|
+
status: 'aborted',
|
|
65
|
+
attempts: attempt,
|
|
66
|
+
error: err,
|
|
67
|
+
allErrors,
|
|
68
|
+
totalTimeMs: Date.now() - startTime,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
// Retries exhausted
|
|
73
|
+
await listeners?.onExhausted?.(allErrors);
|
|
74
|
+
return {
|
|
75
|
+
status: 'failed',
|
|
76
|
+
attempts: attempt,
|
|
77
|
+
error: err,
|
|
78
|
+
allErrors,
|
|
79
|
+
totalTimeMs: Date.now() - startTime,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Calculate delay and wait
|
|
84
|
+
const delayMs = policy.getDelay(attempt);
|
|
85
|
+
await listeners?.onRetry?.(err, delayMs, context);
|
|
86
|
+
const retryStartTime = Date.now();
|
|
87
|
+
await BackoffTimer.wait(policy.getBackoffStrategy(), attempt);
|
|
88
|
+
totalRetryTimeMs += Date.now() - retryStartTime;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Should not reach here, but handle edge case
|
|
92
|
+
const lastError = allErrors[allErrors.length - 1] || new Error('Unknown error');
|
|
93
|
+
return {
|
|
94
|
+
status: 'failed',
|
|
95
|
+
attempts: attempt,
|
|
96
|
+
error: lastError,
|
|
97
|
+
allErrors,
|
|
98
|
+
totalTimeMs: Date.now() - startTime,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Execute operation with retry (throwing version)
|
|
103
|
+
* Throws error if all retries fail
|
|
104
|
+
*
|
|
105
|
+
* @param operation - Async operation to execute
|
|
106
|
+
* @param policy - Retry policy
|
|
107
|
+
* @param listeners - Event listeners
|
|
108
|
+
* @returns Operation result
|
|
109
|
+
* @throws Last error if all retries fail
|
|
110
|
+
*/
|
|
111
|
+
static async executeOrThrow(operation, policy, listeners) {
|
|
112
|
+
const result = await this.execute(operation, policy, listeners);
|
|
113
|
+
if (result.status === 'success') {
|
|
114
|
+
return result.result;
|
|
115
|
+
}
|
|
116
|
+
// Throw last error with context
|
|
117
|
+
const error = result.error || new Error('Operation failed');
|
|
118
|
+
if (error) {
|
|
119
|
+
error.retryContext = {
|
|
120
|
+
attempts: result.attempts,
|
|
121
|
+
allErrors: result.allErrors,
|
|
122
|
+
totalTimeMs: result.totalTimeMs,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Execute operation with simple retry (no policy object)
|
|
129
|
+
*
|
|
130
|
+
* @param operation - Async operation to execute
|
|
131
|
+
* @param maxAttempts - Maximum attempts
|
|
132
|
+
* @param delayMs - Delay between attempts
|
|
133
|
+
* @returns Operation result
|
|
134
|
+
*/
|
|
135
|
+
static async executeSimple(operation, maxAttempts, delayMs = 1000) {
|
|
136
|
+
let lastError;
|
|
137
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
138
|
+
try {
|
|
139
|
+
return await operation();
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
143
|
+
if (attempt < maxAttempts) {
|
|
144
|
+
await BackoffTimer.sleep(delayMs);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
throw lastError;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Execute with retry and timeout
|
|
152
|
+
* Combines retry logic with timeout enforcement
|
|
153
|
+
*
|
|
154
|
+
* @param operation - Async operation to execute
|
|
155
|
+
* @param policy - Retry policy
|
|
156
|
+
* @param timeoutMs - Timeout per attempt (ms)
|
|
157
|
+
* @param listeners - Event listeners
|
|
158
|
+
* @returns Retry result
|
|
159
|
+
*/
|
|
160
|
+
static async executeWithTimeout(operation, policy, timeoutMs, listeners) {
|
|
161
|
+
return this.execute(async () => {
|
|
162
|
+
const controller = new AbortController();
|
|
163
|
+
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
164
|
+
try {
|
|
165
|
+
return await operation();
|
|
166
|
+
}
|
|
167
|
+
finally {
|
|
168
|
+
clearTimeout(timeout);
|
|
169
|
+
}
|
|
170
|
+
}, policy, listeners);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=RetryExecutor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RetryExecutor.js","sourceRoot":"","sources":["../../../src/automation/runtime/RetryExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Automation Runtime
|
|
3
|
+
*
|
|
4
|
+
* Runtime executors for automation policies.
|
|
5
|
+
* These are the actual implementation layers that execute
|
|
6
|
+
* retry logic, backoff delays, and failure handling.
|
|
7
|
+
*
|
|
8
|
+
* @module automation/runtime
|
|
9
|
+
*/
|
|
10
|
+
export * from './BackoffTimer.js';
|
|
11
|
+
export * from './RetryExecutor.js';
|
|
12
|
+
export * from './FailureHandler.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/automation/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Automation Runtime
|
|
3
|
+
*
|
|
4
|
+
* Runtime executors for automation policies.
|
|
5
|
+
* These are the actual implementation layers that execute
|
|
6
|
+
* retry logic, backoff delays, and failure handling.
|
|
7
|
+
*
|
|
8
|
+
* @module automation/runtime
|
|
9
|
+
*/
|
|
10
|
+
export * from './BackoffTimer.js';
|
|
11
|
+
export * from './RetryExecutor.js';
|
|
12
|
+
export * from './FailureHandler.js';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|