@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,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Driver Resolver
|
|
3
|
+
*
|
|
4
|
+
* Resolves and dispatches steps to the appropriate execution driver.
|
|
5
|
+
*
|
|
6
|
+
* @module execution/drivers
|
|
7
|
+
*/
|
|
8
|
+
import type { ExecutionDriver, DriverStep, DriverContext } from './ExecutionDriver.js';
|
|
9
|
+
import type { AdapterResult } from '@dev-ecosystem/core';
|
|
10
|
+
import { OrbytError } from '../../errors/OrbytError.js';
|
|
11
|
+
/**
|
|
12
|
+
* Driver not found error
|
|
13
|
+
*/
|
|
14
|
+
export declare class DriverNotFoundError extends OrbytError {
|
|
15
|
+
constructor(stepId: string, uses: string, availableDrivers: string[]);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Driver Resolver
|
|
19
|
+
*
|
|
20
|
+
* Manages driver registration and resolves steps to appropriate drivers.
|
|
21
|
+
*/
|
|
22
|
+
export declare class DriverResolver {
|
|
23
|
+
private drivers;
|
|
24
|
+
private initialized;
|
|
25
|
+
/**
|
|
26
|
+
* Register a driver
|
|
27
|
+
*/
|
|
28
|
+
register(driver: ExecutionDriver): void;
|
|
29
|
+
/**
|
|
30
|
+
* Register multiple drivers
|
|
31
|
+
*/
|
|
32
|
+
registerAll(drivers: ExecutionDriver[]): void;
|
|
33
|
+
/**
|
|
34
|
+
* Unregister a driver
|
|
35
|
+
*/
|
|
36
|
+
unregister(driverType: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Resolve driver for a step
|
|
39
|
+
*
|
|
40
|
+
* @param step - Step to resolve driver for
|
|
41
|
+
* @returns Driver that can handle this step
|
|
42
|
+
* @throws {DriverNotFoundError} If no driver can handle the step
|
|
43
|
+
*/
|
|
44
|
+
resolve(step: DriverStep): ExecutionDriver;
|
|
45
|
+
/**
|
|
46
|
+
* Execute a step using the appropriate driver
|
|
47
|
+
*
|
|
48
|
+
* @param step - Step to execute
|
|
49
|
+
* @param context - Execution context
|
|
50
|
+
* @returns Execution result
|
|
51
|
+
*/
|
|
52
|
+
execute(step: DriverStep, context: DriverContext): Promise<AdapterResult>;
|
|
53
|
+
/**
|
|
54
|
+
* Get all registered drivers
|
|
55
|
+
*/
|
|
56
|
+
getAll(): ExecutionDriver[];
|
|
57
|
+
/**
|
|
58
|
+
* Get driver by type
|
|
59
|
+
*/
|
|
60
|
+
get(type: string): ExecutionDriver | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Initialize all drivers
|
|
63
|
+
*/
|
|
64
|
+
initializeAll(): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Cleanup all drivers
|
|
67
|
+
*/
|
|
68
|
+
cleanupAll(): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Clear all drivers
|
|
71
|
+
*/
|
|
72
|
+
clear(): void;
|
|
73
|
+
/**
|
|
74
|
+
* Get resolver statistics
|
|
75
|
+
*/
|
|
76
|
+
getStats(): {
|
|
77
|
+
total: number;
|
|
78
|
+
initialized: number;
|
|
79
|
+
drivers: Array<{
|
|
80
|
+
type: string;
|
|
81
|
+
name: string;
|
|
82
|
+
version: string;
|
|
83
|
+
isInitialized: boolean;
|
|
84
|
+
}>;
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Global driver resolver instance (singleton pattern)
|
|
89
|
+
*/
|
|
90
|
+
export declare const globalDriverResolver: DriverResolver;
|
|
91
|
+
//# sourceMappingURL=DriverResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DriverResolver.d.ts","sourceRoot":"","sources":["../../../src/execution/drivers/DriverResolver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAGxD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;gBACrC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE;CAcrE;AAED;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,WAAW,CAAqB;IAExC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAUvC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI;IAM7C;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAmBvC;;;;;;OAMG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe;IAY1C;;;;;;OAMG;IACG,OAAO,CACX,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,aAAa,CAAC;IAezB;;OAEG;IACH,MAAM,IAAI,eAAe,EAAE;IAI3B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI9C;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAWpC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IASjC;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,QAAQ,IAAI;QACV,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;YAChB,aAAa,EAAE,OAAO,CAAC;SACxB,CAAC,CAAC;KACJ;CAYF;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,gBAAuB,CAAC"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Driver Resolver
|
|
3
|
+
*
|
|
4
|
+
* Resolves and dispatches steps to the appropriate execution driver.
|
|
5
|
+
*
|
|
6
|
+
* @module execution/drivers
|
|
7
|
+
*/
|
|
8
|
+
import { OrbytError } from '../../errors/OrbytError.js';
|
|
9
|
+
import { OrbytErrorCode, ErrorSeverity } from '../../errors/ErrorCodes.js';
|
|
10
|
+
/**
|
|
11
|
+
* Driver not found error
|
|
12
|
+
*/
|
|
13
|
+
export class DriverNotFoundError extends OrbytError {
|
|
14
|
+
constructor(stepId, uses, availableDrivers) {
|
|
15
|
+
super({
|
|
16
|
+
code: OrbytErrorCode.EXECUTION_ADAPTER_ERROR,
|
|
17
|
+
message: `No driver found to execute step '${stepId}' with uses '${uses}'`,
|
|
18
|
+
severity: ErrorSeverity.ERROR,
|
|
19
|
+
path: `workflow.steps.${stepId}`,
|
|
20
|
+
hint: `Available drivers: ${availableDrivers.join(', ')}. Check your step configuration.`,
|
|
21
|
+
context: {
|
|
22
|
+
stepId,
|
|
23
|
+
uses,
|
|
24
|
+
availableDrivers,
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Driver Resolver
|
|
31
|
+
*
|
|
32
|
+
* Manages driver registration and resolves steps to appropriate drivers.
|
|
33
|
+
*/
|
|
34
|
+
export class DriverResolver {
|
|
35
|
+
drivers = [];
|
|
36
|
+
initialized = new Set();
|
|
37
|
+
/**
|
|
38
|
+
* Register a driver
|
|
39
|
+
*/
|
|
40
|
+
register(driver) {
|
|
41
|
+
// Check for duplicate
|
|
42
|
+
const existing = this.drivers.find(d => d.type === driver.type);
|
|
43
|
+
if (existing) {
|
|
44
|
+
throw new Error(`Driver '${driver.type}' is already registered`);
|
|
45
|
+
}
|
|
46
|
+
this.drivers.push(driver);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Register multiple drivers
|
|
50
|
+
*/
|
|
51
|
+
registerAll(drivers) {
|
|
52
|
+
for (const driver of drivers) {
|
|
53
|
+
this.register(driver);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Unregister a driver
|
|
58
|
+
*/
|
|
59
|
+
unregister(driverType) {
|
|
60
|
+
const index = this.drivers.findIndex(d => d.type === driverType);
|
|
61
|
+
if (index !== -1) {
|
|
62
|
+
const driver = this.drivers[index];
|
|
63
|
+
// Cleanup if initialized
|
|
64
|
+
if (this.initialized.has(driverType) && driver.cleanup) {
|
|
65
|
+
driver.cleanup().catch(err => {
|
|
66
|
+
console.error(`Error cleaning up driver ${driverType}:`, err);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
this.initialized.delete(driverType);
|
|
70
|
+
this.drivers.splice(index, 1);
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Resolve driver for a step
|
|
77
|
+
*
|
|
78
|
+
* @param step - Step to resolve driver for
|
|
79
|
+
* @returns Driver that can handle this step
|
|
80
|
+
* @throws {DriverNotFoundError} If no driver can handle the step
|
|
81
|
+
*/
|
|
82
|
+
resolve(step) {
|
|
83
|
+
for (const driver of this.drivers) {
|
|
84
|
+
if (driver.canHandle(step)) {
|
|
85
|
+
return driver;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// No driver found
|
|
89
|
+
const availableDrivers = this.drivers.map(d => d.type);
|
|
90
|
+
throw new DriverNotFoundError(step.id, step.uses, availableDrivers);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Execute a step using the appropriate driver
|
|
94
|
+
*
|
|
95
|
+
* @param step - Step to execute
|
|
96
|
+
* @param context - Execution context
|
|
97
|
+
* @returns Execution result
|
|
98
|
+
*/
|
|
99
|
+
async execute(step, context) {
|
|
100
|
+
// Resolve driver
|
|
101
|
+
const driver = this.resolve(step);
|
|
102
|
+
// Initialize driver if needed
|
|
103
|
+
if (!this.initialized.has(driver.type) && driver.initialize) {
|
|
104
|
+
await driver.initialize();
|
|
105
|
+
this.initialized.add(driver.type);
|
|
106
|
+
}
|
|
107
|
+
// Execute step
|
|
108
|
+
context.log(`Using driver: ${driver.name} (${driver.type})`);
|
|
109
|
+
return driver.execute(step, context);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get all registered drivers
|
|
113
|
+
*/
|
|
114
|
+
getAll() {
|
|
115
|
+
return [...this.drivers];
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Get driver by type
|
|
119
|
+
*/
|
|
120
|
+
get(type) {
|
|
121
|
+
return this.drivers.find(d => d.type === type);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Initialize all drivers
|
|
125
|
+
*/
|
|
126
|
+
async initializeAll() {
|
|
127
|
+
const initPromises = this.drivers
|
|
128
|
+
.filter(d => d.initialize && !this.initialized.has(d.type))
|
|
129
|
+
.map(async (d) => {
|
|
130
|
+
await d.initialize();
|
|
131
|
+
this.initialized.add(d.type);
|
|
132
|
+
});
|
|
133
|
+
await Promise.all(initPromises);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Cleanup all drivers
|
|
137
|
+
*/
|
|
138
|
+
async cleanupAll() {
|
|
139
|
+
const cleanupPromises = this.drivers
|
|
140
|
+
.filter(d => d.cleanup)
|
|
141
|
+
.map(d => d.cleanup());
|
|
142
|
+
await Promise.allSettled(cleanupPromises);
|
|
143
|
+
this.initialized.clear();
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Clear all drivers
|
|
147
|
+
*/
|
|
148
|
+
clear() {
|
|
149
|
+
this.drivers = [];
|
|
150
|
+
this.initialized.clear();
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Get resolver statistics
|
|
154
|
+
*/
|
|
155
|
+
getStats() {
|
|
156
|
+
return {
|
|
157
|
+
total: this.drivers.length,
|
|
158
|
+
initialized: this.initialized.size,
|
|
159
|
+
drivers: this.drivers.map(d => ({
|
|
160
|
+
type: d.type,
|
|
161
|
+
name: d.name,
|
|
162
|
+
version: d.version,
|
|
163
|
+
isInitialized: this.initialized.has(d.type),
|
|
164
|
+
})),
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Global driver resolver instance (singleton pattern)
|
|
170
|
+
*/
|
|
171
|
+
export const globalDriverResolver = new DriverResolver();
|
|
172
|
+
//# sourceMappingURL=DriverResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DriverResolver.js","sourceRoot":"","sources":["../../../src/execution/drivers/DriverResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution Driver System
|
|
3
|
+
*
|
|
4
|
+
* Drivers determine HOW steps are executed, while adapters determine WHAT is executed.
|
|
5
|
+
* This abstraction allows the engine to support multiple execution strategies.
|
|
6
|
+
*
|
|
7
|
+
* @module execution/drivers
|
|
8
|
+
*/
|
|
9
|
+
import type { AdapterResult } from '@dev-ecosystem/core';
|
|
10
|
+
/**
|
|
11
|
+
* Step execution context for drivers
|
|
12
|
+
*/
|
|
13
|
+
export interface DriverContext {
|
|
14
|
+
/** Current step ID */
|
|
15
|
+
stepId: string;
|
|
16
|
+
/** Workflow execution ID */
|
|
17
|
+
executionId: string;
|
|
18
|
+
/** Workflow name */
|
|
19
|
+
workflowName: string;
|
|
20
|
+
/** Logger function */
|
|
21
|
+
log: (message: string, level?: 'info' | 'warn' | 'error' | 'debug') => void;
|
|
22
|
+
/** Abort signal for cancellation */
|
|
23
|
+
signal?: AbortSignal;
|
|
24
|
+
/** Step timeout in milliseconds */
|
|
25
|
+
timeout?: number;
|
|
26
|
+
/** Working directory */
|
|
27
|
+
cwd?: string;
|
|
28
|
+
/** Environment variables */
|
|
29
|
+
env?: Record<string, string>;
|
|
30
|
+
/** Secrets access */
|
|
31
|
+
secrets?: Record<string, string>;
|
|
32
|
+
/** Temporary directory */
|
|
33
|
+
tempDir?: string;
|
|
34
|
+
/** Previous step outputs */
|
|
35
|
+
stepOutputs?: Record<string, any>;
|
|
36
|
+
/** Workflow inputs */
|
|
37
|
+
inputs?: Record<string, any>;
|
|
38
|
+
/** Workflow context */
|
|
39
|
+
workflowContext?: Record<string, any>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Step definition for driver execution
|
|
43
|
+
*/
|
|
44
|
+
export interface DriverStep {
|
|
45
|
+
/** Step ID */
|
|
46
|
+
id: string;
|
|
47
|
+
/** Step name (optional) */
|
|
48
|
+
name?: string;
|
|
49
|
+
/** Action to execute (e.g., 'http.request.get', 'cli.run') */
|
|
50
|
+
uses: string;
|
|
51
|
+
/** Input parameters */
|
|
52
|
+
with?: Record<string, any>;
|
|
53
|
+
/** Conditional execution */
|
|
54
|
+
when?: string;
|
|
55
|
+
/** Environment variables */
|
|
56
|
+
env?: Record<string, string>;
|
|
57
|
+
/** Retry configuration */
|
|
58
|
+
retry?: {
|
|
59
|
+
max: number;
|
|
60
|
+
backoff?: 'linear' | 'exponential';
|
|
61
|
+
delay?: number;
|
|
62
|
+
};
|
|
63
|
+
/** Timeout */
|
|
64
|
+
timeout?: string;
|
|
65
|
+
/** Continue on error */
|
|
66
|
+
continueOnError?: boolean;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Base execution driver interface
|
|
70
|
+
*/
|
|
71
|
+
export interface ExecutionDriver {
|
|
72
|
+
/** Driver type identifier */
|
|
73
|
+
readonly type: string;
|
|
74
|
+
/** Driver name */
|
|
75
|
+
readonly name: string;
|
|
76
|
+
/** Driver version */
|
|
77
|
+
readonly version: string;
|
|
78
|
+
/** Driver description */
|
|
79
|
+
readonly description?: string;
|
|
80
|
+
/**
|
|
81
|
+
* Check if this driver can handle a step
|
|
82
|
+
*
|
|
83
|
+
* @param step - Step to check
|
|
84
|
+
* @returns True if driver can handle this step
|
|
85
|
+
*/
|
|
86
|
+
canHandle(step: DriverStep): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Execute a step
|
|
89
|
+
*
|
|
90
|
+
* @param step - Step to execute
|
|
91
|
+
* @param context - Execution context
|
|
92
|
+
* @returns Execution result
|
|
93
|
+
*/
|
|
94
|
+
execute(step: DriverStep, context: DriverContext): Promise<AdapterResult>;
|
|
95
|
+
/**
|
|
96
|
+
* Optional: Initialize driver
|
|
97
|
+
*/
|
|
98
|
+
initialize?(): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Optional: Cleanup driver
|
|
101
|
+
*/
|
|
102
|
+
cleanup?(): Promise<void>;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Base driver implementation with common logic
|
|
106
|
+
*/
|
|
107
|
+
export declare abstract class BaseDriver implements ExecutionDriver {
|
|
108
|
+
abstract readonly type: string;
|
|
109
|
+
abstract readonly name: string;
|
|
110
|
+
abstract readonly version: string;
|
|
111
|
+
abstract readonly description?: string;
|
|
112
|
+
abstract canHandle(step: DriverStep): boolean;
|
|
113
|
+
abstract execute(step: DriverStep, context: DriverContext): Promise<AdapterResult>;
|
|
114
|
+
/**
|
|
115
|
+
* Validate step has required fields
|
|
116
|
+
*/
|
|
117
|
+
protected validateStep(step: DriverStep, required: string[]): void;
|
|
118
|
+
/**
|
|
119
|
+
* Get step input with default value
|
|
120
|
+
*/
|
|
121
|
+
protected getStepInput<T>(step: DriverStep, key: string, defaultValue: T): T;
|
|
122
|
+
/**
|
|
123
|
+
* Parse timeout string to milliseconds
|
|
124
|
+
*/
|
|
125
|
+
protected parseTimeout(timeout?: string): number | undefined;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=ExecutionDriver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecutionDriver.d.ts","sourceRoot":"","sources":["../../../src/execution/drivers/ExecutionDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution Driver System
|
|
3
|
+
*
|
|
4
|
+
* Drivers determine HOW steps are executed, while adapters determine WHAT is executed.
|
|
5
|
+
* This abstraction allows the engine to support multiple execution strategies.
|
|
6
|
+
*
|
|
7
|
+
* @module execution/drivers
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Base driver implementation with common logic
|
|
11
|
+
*/
|
|
12
|
+
export class BaseDriver {
|
|
13
|
+
/**
|
|
14
|
+
* Validate step has required fields
|
|
15
|
+
*/
|
|
16
|
+
validateStep(step, required) {
|
|
17
|
+
for (const field of required) {
|
|
18
|
+
if (!(field in step)) {
|
|
19
|
+
throw new Error(`${this.name} driver: step missing required field '${field}'`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get step input with default value
|
|
25
|
+
*/
|
|
26
|
+
getStepInput(step, key, defaultValue) {
|
|
27
|
+
return step.with?.[key] !== undefined ? step.with[key] : defaultValue;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Parse timeout string to milliseconds
|
|
31
|
+
*/
|
|
32
|
+
parseTimeout(timeout) {
|
|
33
|
+
if (!timeout)
|
|
34
|
+
return undefined;
|
|
35
|
+
const match = timeout.match(/^(\d+)(ms|s|m|h)$/);
|
|
36
|
+
if (!match) {
|
|
37
|
+
throw new Error(`Invalid timeout format: ${timeout}`);
|
|
38
|
+
}
|
|
39
|
+
const value = parseInt(match[1], 10);
|
|
40
|
+
const unit = match[2];
|
|
41
|
+
switch (unit) {
|
|
42
|
+
case 'ms': return value;
|
|
43
|
+
case 's': return value * 1000;
|
|
44
|
+
case 'm': return value * 60 * 1000;
|
|
45
|
+
case 'h': return value * 60 * 60 * 1000;
|
|
46
|
+
default: return value;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=ExecutionDriver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecutionDriver.js","sourceRoot":"","sources":["../../../src/execution/drivers/ExecutionDriver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmIH;;GAEG;AACH,MAAM,OAAgB,UAAU;IAa9B;;OAEG;IACO,YAAY,CAAC,IAAgB,EAAE,QAAkB;QACzD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,IAAI,yCAAyC,KAAK,GAAG,CAC9D,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACO,YAAY,CACpB,IAAgB,EAChB,GAAW,EACX,YAAe;QAEf,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IACxE,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,OAAgB;QACrC,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC;YACxB,KAAK,GAAG,CAAC,CAAC,OAAO,KAAK,GAAG,IAAI,CAAC;YAC9B,KAAK,GAAG,CAAC,CAAC,OAAO,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC;YACnC,KAAK,GAAG,CAAC,CAAC,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YACxC,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution Drivers
|
|
3
|
+
*
|
|
4
|
+
* Driver system for pluggable step execution strategies.
|
|
5
|
+
*
|
|
6
|
+
* @module execution/drivers
|
|
7
|
+
*/
|
|
8
|
+
export * from './ExecutionDriver.js';
|
|
9
|
+
export * from './DriverResolver.js';
|
|
10
|
+
export * from './AdapterDriver.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/execution/drivers/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution Drivers
|
|
3
|
+
*
|
|
4
|
+
* Driver system for pluggable step execution strategies.
|
|
5
|
+
*
|
|
6
|
+
* @module execution/drivers
|
|
7
|
+
*/
|
|
8
|
+
export * from './ExecutionDriver.js';
|
|
9
|
+
export * from './DriverResolver.js';
|
|
10
|
+
export * from './AdapterDriver.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/execution/drivers/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution Layer
|
|
3
|
+
*
|
|
4
|
+
* Handles workflow execution planning and orchestration:
|
|
5
|
+
* - ExecutionNode: Pure data model for execution steps
|
|
6
|
+
* - ExecutionPlan: Coordinates graph analysis to create execution plans
|
|
7
|
+
* - StepExecutor: Executes individual steps with retry/timeout
|
|
8
|
+
* - WorkflowExecutor: Orchestrates full workflow execution
|
|
9
|
+
* - ExecutionEngine: Main orchestrator integrating scheduling, queueing, and execution
|
|
10
|
+
* - Drivers: Pluggable execution strategies (optional enhancement)
|
|
11
|
+
*/
|
|
12
|
+
export * from './ExecutionNode.js';
|
|
13
|
+
export * from './ExecutionPlan.js';
|
|
14
|
+
export * from './StepExecutor.js';
|
|
15
|
+
export * from './WorkflowExecutor.js';
|
|
16
|
+
export * from './ExecutionEngine.js';
|
|
17
|
+
export * from './drivers/index.js';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/execution/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution Layer
|
|
3
|
+
*
|
|
4
|
+
* Handles workflow execution planning and orchestration:
|
|
5
|
+
* - ExecutionNode: Pure data model for execution steps
|
|
6
|
+
* - ExecutionPlan: Coordinates graph analysis to create execution plans
|
|
7
|
+
* - StepExecutor: Executes individual steps with retry/timeout
|
|
8
|
+
* - WorkflowExecutor: Orchestrates full workflow execution
|
|
9
|
+
* - ExecutionEngine: Main orchestrator integrating scheduling, queueing, and execution
|
|
10
|
+
* - Drivers: Pluggable execution strategies (optional enhancement)
|
|
11
|
+
*/
|
|
12
|
+
export * from './ExecutionNode.js';
|
|
13
|
+
export * from './ExecutionPlan.js';
|
|
14
|
+
export * from './StepExecutor.js';
|
|
15
|
+
export * from './WorkflowExecutor.js';
|
|
16
|
+
export * from './ExecutionEngine.js';
|
|
17
|
+
// Optional: Driver system for advanced execution strategies
|
|
18
|
+
export * from './drivers/index.js';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/execution/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AAErC,4DAA4D;AAC5D,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CycleDetector
|
|
3
|
+
*
|
|
4
|
+
* Detects cycles in the dependency graph using Depth-First Search (DFS).
|
|
5
|
+
* This is about VALIDATION - fail fast with clear error messages.
|
|
6
|
+
*
|
|
7
|
+
* Purpose:
|
|
8
|
+
* - Detect circular dependencies before execution
|
|
9
|
+
* - Provide clear error messages showing the cycle path
|
|
10
|
+
* - Fail fast - prevent impossible execution plans
|
|
11
|
+
*
|
|
12
|
+
* Algorithm: DFS with three-color marking
|
|
13
|
+
* - WHITE (unvisited): Node not yet explored
|
|
14
|
+
* - GRAY (visiting): Node currently in DFS path (on stack)
|
|
15
|
+
* - BLACK (visited): Node fully explored, all descendants visited
|
|
16
|
+
*
|
|
17
|
+
* A cycle exists if we encounter a GRAY node during traversal.
|
|
18
|
+
*
|
|
19
|
+
* What it does NOT do:
|
|
20
|
+
* - Does NOT order the graph (that's TopologicalSort's job)
|
|
21
|
+
* - Does NOT execute anything (that's StepExecutor's job)
|
|
22
|
+
* - Does NOT schedule steps (that's WorkflowExecutor's job)
|
|
23
|
+
*/
|
|
24
|
+
import { DependencyGraph } from './DependencyResolver.js';
|
|
25
|
+
/**
|
|
26
|
+
* Result of cycle detection
|
|
27
|
+
*/
|
|
28
|
+
export interface CycleDetectionResult {
|
|
29
|
+
/** Whether a cycle was detected */
|
|
30
|
+
readonly hasCycle: boolean;
|
|
31
|
+
/** The cycle path if one was found (e.g., ['A', 'B', 'C', 'A']) */
|
|
32
|
+
readonly cyclePath?: readonly string[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Detects cycles in dependency graphs.
|
|
36
|
+
* Pure function - takes graph, returns cycle information.
|
|
37
|
+
*/
|
|
38
|
+
export declare class CycleDetector {
|
|
39
|
+
/**
|
|
40
|
+
* Check if the graph contains a cycle.
|
|
41
|
+
* Uses DFS with three-color marking.
|
|
42
|
+
*
|
|
43
|
+
* @param graph - The dependency graph to check
|
|
44
|
+
* @returns Cycle detection result
|
|
45
|
+
*/
|
|
46
|
+
static detect(graph: DependencyGraph): CycleDetectionResult;
|
|
47
|
+
/**
|
|
48
|
+
* Depth-first search to detect cycles.
|
|
49
|
+
*
|
|
50
|
+
* @param nodeId - Current node being visited
|
|
51
|
+
* @param graph - The dependency graph
|
|
52
|
+
* @param visitState - Visit state for each node
|
|
53
|
+
* @param parent - Parent pointers for cycle reconstruction
|
|
54
|
+
* @returns Cycle detection result
|
|
55
|
+
*/
|
|
56
|
+
private static dfs;
|
|
57
|
+
/**
|
|
58
|
+
* Reconstruct the cycle path from parent pointers.
|
|
59
|
+
*
|
|
60
|
+
* @param start - Node where cycle was detected
|
|
61
|
+
* @param cycleNode - The GRAY node that created the cycle
|
|
62
|
+
* @param parent - Parent pointers
|
|
63
|
+
* @returns The cycle path
|
|
64
|
+
*/
|
|
65
|
+
private static reconstructCycle;
|
|
66
|
+
/**
|
|
67
|
+
* Check for cycles and throw if found (convenience method).
|
|
68
|
+
* This is the "fail fast" version.
|
|
69
|
+
*
|
|
70
|
+
* @param graph - The dependency graph to check
|
|
71
|
+
* @throws WorkflowValidationError if a cycle is detected
|
|
72
|
+
*/
|
|
73
|
+
static detectAndThrow(graph: DependencyGraph): void;
|
|
74
|
+
/**
|
|
75
|
+
* Find all strongly connected components (SCCs) in the graph.
|
|
76
|
+
* This is more advanced than simple cycle detection - it finds
|
|
77
|
+
* all groups of nodes that form cycles with each other.
|
|
78
|
+
*
|
|
79
|
+
* Uses Tarjan's algorithm.
|
|
80
|
+
*
|
|
81
|
+
* @param graph - The dependency graph
|
|
82
|
+
* @returns Array of strongly connected components (each is an array of step IDs)
|
|
83
|
+
*/
|
|
84
|
+
static findStronglyConnectedComponents(graph: DependencyGraph): string[][];
|
|
85
|
+
/**
|
|
86
|
+
* Tarjan's SCC algorithm helper
|
|
87
|
+
*/
|
|
88
|
+
private static strongConnect;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=CycleDetector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CycleDetector.d.ts","sourceRoot":"","sources":["../../src/graph/CycleDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAcD;;;GAGG;AACH,qBAAa,aAAa;IACxB;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,oBAAoB;IAsB3D;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,GAAG;IA0ClB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAsB/B;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAiBnD;;;;;;;;;OASG;IACH,MAAM,CAAC,+BAA+B,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,EAAE,EAAE;IA0B1E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;CAyD7B"}
|