@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.
Files changed (582) hide show
  1. package/README.md +0 -0
  2. package/dist/adapters/AdapterRegistry.d.ts +129 -0
  3. package/dist/adapters/AdapterRegistry.d.ts.map +1 -0
  4. package/dist/adapters/AdapterRegistry.js +236 -0
  5. package/dist/adapters/AdapterRegistry.js.map +1 -0
  6. package/dist/adapters/StepAdapter.d.ts +2 -0
  7. package/dist/adapters/StepAdapter.d.ts.map +1 -0
  8. package/dist/adapters/StepAdapter.js +2 -0
  9. package/dist/adapters/StepAdapter.js.map +1 -0
  10. package/dist/adapters/WorkflowAdapter.d.ts +2 -0
  11. package/dist/adapters/WorkflowAdapter.d.ts.map +1 -0
  12. package/dist/adapters/WorkflowAdapter.js +2 -0
  13. package/dist/adapters/WorkflowAdapter.js.map +1 -0
  14. package/dist/adapters/builtins/CLIAdapter.d.ts +38 -0
  15. package/dist/adapters/builtins/CLIAdapter.d.ts.map +1 -0
  16. package/dist/adapters/builtins/CLIAdapter.js +173 -0
  17. package/dist/adapters/builtins/CLIAdapter.js.map +1 -0
  18. package/dist/adapters/builtins/CLICommandResolver.d.ts +49 -0
  19. package/dist/adapters/builtins/CLICommandResolver.d.ts.map +1 -0
  20. package/dist/adapters/builtins/CLICommandResolver.js +63 -0
  21. package/dist/adapters/builtins/CLICommandResolver.js.map +1 -0
  22. package/dist/adapters/builtins/CLIResultParser.d.ts +61 -0
  23. package/dist/adapters/builtins/CLIResultParser.d.ts.map +1 -0
  24. package/dist/adapters/builtins/CLIResultParser.js +113 -0
  25. package/dist/adapters/builtins/CLIResultParser.js.map +1 -0
  26. package/dist/adapters/builtins/ConnectionManager.d.ts +106 -0
  27. package/dist/adapters/builtins/ConnectionManager.d.ts.map +1 -0
  28. package/dist/adapters/builtins/ConnectionManager.js +162 -0
  29. package/dist/adapters/builtins/ConnectionManager.js.map +1 -0
  30. package/dist/adapters/builtins/Consumer.d.ts +110 -0
  31. package/dist/adapters/builtins/Consumer.d.ts.map +1 -0
  32. package/dist/adapters/builtins/Consumer.js +113 -0
  33. package/dist/adapters/builtins/Consumer.js.map +1 -0
  34. package/dist/adapters/builtins/DBAdapter.d.ts +79 -0
  35. package/dist/adapters/builtins/DBAdapter.d.ts.map +1 -0
  36. package/dist/adapters/builtins/DBAdapter.js +259 -0
  37. package/dist/adapters/builtins/DBAdapter.js.map +1 -0
  38. package/dist/adapters/builtins/EnvResolver.d.ts +66 -0
  39. package/dist/adapters/builtins/EnvResolver.d.ts.map +1 -0
  40. package/dist/adapters/builtins/EnvResolver.js +121 -0
  41. package/dist/adapters/builtins/EnvResolver.js.map +1 -0
  42. package/dist/adapters/builtins/FSAdapter.d.ts +50 -0
  43. package/dist/adapters/builtins/FSAdapter.d.ts.map +1 -0
  44. package/dist/adapters/builtins/FSAdapter.js +282 -0
  45. package/dist/adapters/builtins/FSAdapter.js.map +1 -0
  46. package/dist/adapters/builtins/FileResolver.d.ts +50 -0
  47. package/dist/adapters/builtins/FileResolver.d.ts.map +1 -0
  48. package/dist/adapters/builtins/FileResolver.js +77 -0
  49. package/dist/adapters/builtins/FileResolver.js.map +1 -0
  50. package/dist/adapters/builtins/HTTPAdapter.d.ts +58 -0
  51. package/dist/adapters/builtins/HTTPAdapter.d.ts.map +1 -0
  52. package/dist/adapters/builtins/HTTPAdapter.js +213 -0
  53. package/dist/adapters/builtins/HTTPAdapter.js.map +1 -0
  54. package/dist/adapters/builtins/HTTPRequestBuilder.d.ts +95 -0
  55. package/dist/adapters/builtins/HTTPRequestBuilder.d.ts.map +1 -0
  56. package/dist/adapters/builtins/HTTPRequestBuilder.js +159 -0
  57. package/dist/adapters/builtins/HTTPRequestBuilder.js.map +1 -0
  58. package/dist/adapters/builtins/HTTPResponseParser.d.ts +74 -0
  59. package/dist/adapters/builtins/HTTPResponseParser.d.ts.map +1 -0
  60. package/dist/adapters/builtins/HTTPResponseParser.js +144 -0
  61. package/dist/adapters/builtins/HTTPResponseParser.js.map +1 -0
  62. package/dist/adapters/builtins/PathSecurityPolicy.d.ts +38 -0
  63. package/dist/adapters/builtins/PathSecurityPolicy.d.ts.map +1 -0
  64. package/dist/adapters/builtins/PathSecurityPolicy.js +125 -0
  65. package/dist/adapters/builtins/PathSecurityPolicy.js.map +1 -0
  66. package/dist/adapters/builtins/Producer.d.ts +99 -0
  67. package/dist/adapters/builtins/Producer.d.ts.map +1 -0
  68. package/dist/adapters/builtins/Producer.js +59 -0
  69. package/dist/adapters/builtins/Producer.js.map +1 -0
  70. package/dist/adapters/builtins/QueryExecutor.d.ts +102 -0
  71. package/dist/adapters/builtins/QueryExecutor.d.ts.map +1 -0
  72. package/dist/adapters/builtins/QueryExecutor.js +90 -0
  73. package/dist/adapters/builtins/QueryExecutor.js.map +1 -0
  74. package/dist/adapters/builtins/QueueAdapter.d.ts +72 -0
  75. package/dist/adapters/builtins/QueueAdapter.d.ts.map +1 -0
  76. package/dist/adapters/builtins/QueueAdapter.js +209 -0
  77. package/dist/adapters/builtins/QueueAdapter.js.map +1 -0
  78. package/dist/adapters/builtins/SecretProvider.d.ts +69 -0
  79. package/dist/adapters/builtins/SecretProvider.d.ts.map +1 -0
  80. package/dist/adapters/builtins/SecretProvider.js +71 -0
  81. package/dist/adapters/builtins/SecretProvider.js.map +1 -0
  82. package/dist/adapters/builtins/SecretsAdapter.d.ts +48 -0
  83. package/dist/adapters/builtins/SecretsAdapter.d.ts.map +1 -0
  84. package/dist/adapters/builtins/SecretsAdapter.js +154 -0
  85. package/dist/adapters/builtins/SecretsAdapter.js.map +1 -0
  86. package/dist/adapters/builtins/ShellAdapter.d.ts +46 -0
  87. package/dist/adapters/builtins/ShellAdapter.d.ts.map +1 -0
  88. package/dist/adapters/builtins/ShellAdapter.js +200 -0
  89. package/dist/adapters/builtins/ShellAdapter.js.map +1 -0
  90. package/dist/adapters/builtins/ShellExecutor.d.ts +72 -0
  91. package/dist/adapters/builtins/ShellExecutor.d.ts.map +1 -0
  92. package/dist/adapters/builtins/ShellExecutor.js +94 -0
  93. package/dist/adapters/builtins/ShellExecutor.js.map +1 -0
  94. package/dist/adapters/builtins/ShellSecurityPolicy.d.ts +58 -0
  95. package/dist/adapters/builtins/ShellSecurityPolicy.d.ts.map +1 -0
  96. package/dist/adapters/builtins/ShellSecurityPolicy.js +135 -0
  97. package/dist/adapters/builtins/ShellSecurityPolicy.js.map +1 -0
  98. package/dist/adapters/builtins/index.d.ts +27 -0
  99. package/dist/adapters/builtins/index.d.ts.map +1 -0
  100. package/dist/adapters/builtins/index.js +35 -0
  101. package/dist/adapters/builtins/index.js.map +1 -0
  102. package/dist/adapters/index.d.ts +5 -0
  103. package/dist/adapters/index.d.ts.map +1 -0
  104. package/dist/adapters/index.js +6 -0
  105. package/dist/adapters/index.js.map +1 -0
  106. package/dist/automation/BackoffStrategy.d.ts +106 -0
  107. package/dist/automation/BackoffStrategy.d.ts.map +1 -0
  108. package/dist/automation/BackoffStrategy.js +168 -0
  109. package/dist/automation/BackoffStrategy.js.map +1 -0
  110. package/dist/automation/FailureStrategy.d.ts +141 -0
  111. package/dist/automation/FailureStrategy.d.ts.map +1 -0
  112. package/dist/automation/FailureStrategy.js +246 -0
  113. package/dist/automation/FailureStrategy.js.map +1 -0
  114. package/dist/automation/RetryPolicy.d.ts +132 -0
  115. package/dist/automation/RetryPolicy.d.ts.map +1 -0
  116. package/dist/automation/RetryPolicy.js +241 -0
  117. package/dist/automation/RetryPolicy.js.map +1 -0
  118. package/dist/automation/TimeoutManager.d.ts +145 -0
  119. package/dist/automation/TimeoutManager.d.ts.map +1 -0
  120. package/dist/automation/TimeoutManager.js +241 -0
  121. package/dist/automation/TimeoutManager.js.map +1 -0
  122. package/dist/automation/index.d.ts +16 -0
  123. package/dist/automation/index.d.ts.map +1 -0
  124. package/dist/automation/index.js +16 -0
  125. package/dist/automation/index.js.map +1 -0
  126. package/dist/automation/runtime/BackoffTimer.d.ts +74 -0
  127. package/dist/automation/runtime/BackoffTimer.d.ts.map +1 -0
  128. package/dist/automation/runtime/BackoffTimer.js +139 -0
  129. package/dist/automation/runtime/BackoffTimer.js.map +1 -0
  130. package/dist/automation/runtime/FailureHandler.d.ts +138 -0
  131. package/dist/automation/runtime/FailureHandler.d.ts.map +1 -0
  132. package/dist/automation/runtime/FailureHandler.js +197 -0
  133. package/dist/automation/runtime/FailureHandler.js.map +1 -0
  134. package/dist/automation/runtime/RetryExecutor.d.ts +104 -0
  135. package/dist/automation/runtime/RetryExecutor.d.ts.map +1 -0
  136. package/dist/automation/runtime/RetryExecutor.js +173 -0
  137. package/dist/automation/runtime/RetryExecutor.js.map +1 -0
  138. package/dist/automation/runtime/index.d.ts +13 -0
  139. package/dist/automation/runtime/index.d.ts.map +1 -0
  140. package/dist/automation/runtime/index.js +13 -0
  141. package/dist/automation/runtime/index.js.map +1 -0
  142. package/dist/context/ContextStore.d.ts +185 -0
  143. package/dist/context/ContextStore.d.ts.map +1 -0
  144. package/dist/context/ContextStore.js +228 -0
  145. package/dist/context/ContextStore.js.map +1 -0
  146. package/dist/context/VariableResolver.d.ts +184 -0
  147. package/dist/context/VariableResolver.d.ts.map +1 -0
  148. package/dist/context/VariableResolver.js +368 -0
  149. package/dist/context/VariableResolver.js.map +1 -0
  150. package/dist/context/index.d.ts +17 -0
  151. package/dist/context/index.d.ts.map +1 -0
  152. package/dist/context/index.js +17 -0
  153. package/dist/context/index.js.map +1 -0
  154. package/dist/core/EngineConfig.d.ts +156 -0
  155. package/dist/core/EngineConfig.d.ts.map +1 -0
  156. package/dist/core/EngineConfig.js +61 -0
  157. package/dist/core/EngineConfig.js.map +1 -0
  158. package/dist/core/EngineContext.d.ts +94 -0
  159. package/dist/core/EngineContext.d.ts.map +1 -0
  160. package/dist/core/EngineContext.js +29 -0
  161. package/dist/core/EngineContext.js.map +1 -0
  162. package/dist/core/OrbytEngine.d.ts +234 -0
  163. package/dist/core/OrbytEngine.d.ts.map +1 -0
  164. package/dist/core/OrbytEngine.js +421 -0
  165. package/dist/core/OrbytEngine.js.map +1 -0
  166. package/dist/core/index.d.ts +4 -0
  167. package/dist/core/index.d.ts.map +1 -0
  168. package/dist/core/index.js +4 -0
  169. package/dist/core/index.js.map +1 -0
  170. package/dist/errors/ErrorCodes.d.ts +71 -0
  171. package/dist/errors/ErrorCodes.d.ts.map +1 -0
  172. package/dist/errors/ErrorCodes.js +95 -0
  173. package/dist/errors/ErrorCodes.js.map +1 -0
  174. package/dist/errors/ErrorFormatter.d.ts +34 -0
  175. package/dist/errors/ErrorFormatter.d.ts.map +1 -0
  176. package/dist/errors/ErrorFormatter.js +140 -0
  177. package/dist/errors/ErrorFormatter.js.map +1 -0
  178. package/dist/errors/FieldRegistry.d.ts +83 -0
  179. package/dist/errors/FieldRegistry.d.ts.map +1 -0
  180. package/dist/errors/FieldRegistry.js +217 -0
  181. package/dist/errors/FieldRegistry.js.map +1 -0
  182. package/dist/errors/OrbytError.d.ts +59 -0
  183. package/dist/errors/OrbytError.d.ts.map +1 -0
  184. package/dist/errors/OrbytError.js +78 -0
  185. package/dist/errors/OrbytError.js.map +1 -0
  186. package/dist/errors/SchedulerError.d.ts +2 -0
  187. package/dist/errors/SchedulerError.d.ts.map +1 -0
  188. package/dist/errors/SchedulerError.js +2 -0
  189. package/dist/errors/SchedulerError.js.map +1 -0
  190. package/dist/errors/StepError.d.ts +2 -0
  191. package/dist/errors/StepError.d.ts.map +1 -0
  192. package/dist/errors/StepError.js +2 -0
  193. package/dist/errors/StepError.js.map +1 -0
  194. package/dist/errors/TypoDetector.d.ts +36 -0
  195. package/dist/errors/TypoDetector.d.ts.map +1 -0
  196. package/dist/errors/TypoDetector.js +109 -0
  197. package/dist/errors/TypoDetector.js.map +1 -0
  198. package/dist/errors/WorkflowError.d.ts +54 -0
  199. package/dist/errors/WorkflowError.d.ts.map +1 -0
  200. package/dist/errors/WorkflowError.js +129 -0
  201. package/dist/errors/WorkflowError.js.map +1 -0
  202. package/dist/errors/index.d.ts +14 -0
  203. package/dist/errors/index.d.ts.map +1 -0
  204. package/dist/errors/index.js +17 -0
  205. package/dist/errors/index.js.map +1 -0
  206. package/dist/events/EngineEvents.d.ts +143 -0
  207. package/dist/events/EngineEvents.d.ts.map +1 -0
  208. package/dist/events/EngineEvents.js +60 -0
  209. package/dist/events/EngineEvents.js.map +1 -0
  210. package/dist/events/EventBus.d.ts +112 -0
  211. package/dist/events/EventBus.d.ts.map +1 -0
  212. package/dist/events/EventBus.js +177 -0
  213. package/dist/events/EventBus.js.map +1 -0
  214. package/dist/events/index.d.ts +3 -0
  215. package/dist/events/index.d.ts.map +1 -0
  216. package/dist/events/index.js +3 -0
  217. package/dist/events/index.js.map +1 -0
  218. package/dist/execution/ExecutionEngine.d.ts +220 -0
  219. package/dist/execution/ExecutionEngine.d.ts.map +1 -0
  220. package/dist/execution/ExecutionEngine.js +442 -0
  221. package/dist/execution/ExecutionEngine.js.map +1 -0
  222. package/dist/execution/ExecutionNode.d.ts +114 -0
  223. package/dist/execution/ExecutionNode.d.ts.map +1 -0
  224. package/dist/execution/ExecutionNode.js +99 -0
  225. package/dist/execution/ExecutionNode.js.map +1 -0
  226. package/dist/execution/ExecutionPlan.d.ts +133 -0
  227. package/dist/execution/ExecutionPlan.d.ts.map +1 -0
  228. package/dist/execution/ExecutionPlan.js +207 -0
  229. package/dist/execution/ExecutionPlan.js.map +1 -0
  230. package/dist/execution/StepExecutor.d.ts +204 -0
  231. package/dist/execution/StepExecutor.d.ts.map +1 -0
  232. package/dist/execution/StepExecutor.js +604 -0
  233. package/dist/execution/StepExecutor.js.map +1 -0
  234. package/dist/execution/WorkflowExecutor.d.ts +129 -0
  235. package/dist/execution/WorkflowExecutor.d.ts.map +1 -0
  236. package/dist/execution/WorkflowExecutor.js +347 -0
  237. package/dist/execution/WorkflowExecutor.js.map +1 -0
  238. package/dist/execution/drivers/AdapterDriver.d.ts +34 -0
  239. package/dist/execution/drivers/AdapterDriver.d.ts.map +1 -0
  240. package/dist/execution/drivers/AdapterDriver.js +63 -0
  241. package/dist/execution/drivers/AdapterDriver.js.map +1 -0
  242. package/dist/execution/drivers/DriverResolver.d.ts +91 -0
  243. package/dist/execution/drivers/DriverResolver.d.ts.map +1 -0
  244. package/dist/execution/drivers/DriverResolver.js +172 -0
  245. package/dist/execution/drivers/DriverResolver.js.map +1 -0
  246. package/dist/execution/drivers/ExecutionDriver.d.ts +127 -0
  247. package/dist/execution/drivers/ExecutionDriver.d.ts.map +1 -0
  248. package/dist/execution/drivers/ExecutionDriver.js +50 -0
  249. package/dist/execution/drivers/ExecutionDriver.js.map +1 -0
  250. package/dist/execution/drivers/index.d.ts +11 -0
  251. package/dist/execution/drivers/index.d.ts.map +1 -0
  252. package/dist/execution/drivers/index.js +11 -0
  253. package/dist/execution/drivers/index.js.map +1 -0
  254. package/dist/execution/index.d.ts +18 -0
  255. package/dist/execution/index.d.ts.map +1 -0
  256. package/dist/execution/index.js +19 -0
  257. package/dist/execution/index.js.map +1 -0
  258. package/dist/graph/CycleDetector.d.ts +90 -0
  259. package/dist/graph/CycleDetector.d.ts.map +1 -0
  260. package/dist/graph/CycleDetector.js +210 -0
  261. package/dist/graph/CycleDetector.js.map +1 -0
  262. package/dist/graph/DependencyGraph.d.ts +16 -0
  263. package/dist/graph/DependencyGraph.d.ts.map +1 -0
  264. package/dist/graph/DependencyGraph.js +16 -0
  265. package/dist/graph/DependencyGraph.js.map +1 -0
  266. package/dist/graph/DependencyResolver.d.ts +90 -0
  267. package/dist/graph/DependencyResolver.d.ts.map +1 -0
  268. package/dist/graph/DependencyResolver.js +159 -0
  269. package/dist/graph/DependencyResolver.js.map +1 -0
  270. package/dist/graph/TopologicalSorter.d.ts +104 -0
  271. package/dist/graph/TopologicalSorter.d.ts.map +1 -0
  272. package/dist/graph/TopologicalSorter.js +213 -0
  273. package/dist/graph/TopologicalSorter.js.map +1 -0
  274. package/dist/graph/index.d.ts +15 -0
  275. package/dist/graph/index.d.ts.map +1 -0
  276. package/dist/graph/index.js +15 -0
  277. package/dist/graph/index.js.map +1 -0
  278. package/dist/guards/ResourceGuard.d.ts +90 -0
  279. package/dist/guards/ResourceGuard.d.ts.map +1 -0
  280. package/dist/guards/ResourceGuard.js +177 -0
  281. package/dist/guards/ResourceGuard.js.map +1 -0
  282. package/dist/guards/StepGuard.d.ts +96 -0
  283. package/dist/guards/StepGuard.d.ts.map +1 -0
  284. package/dist/guards/StepGuard.js +184 -0
  285. package/dist/guards/StepGuard.js.map +1 -0
  286. package/dist/guards/WorkflowGuard.d.ts +71 -0
  287. package/dist/guards/WorkflowGuard.d.ts.map +1 -0
  288. package/dist/guards/WorkflowGuard.js +187 -0
  289. package/dist/guards/WorkflowGuard.js.map +1 -0
  290. package/dist/guards/index.d.ts +9 -0
  291. package/dist/guards/index.d.ts.map +1 -0
  292. package/dist/guards/index.js +9 -0
  293. package/dist/guards/index.js.map +1 -0
  294. package/dist/hooks/HookManager.d.ts +114 -0
  295. package/dist/hooks/HookManager.d.ts.map +1 -0
  296. package/dist/hooks/HookManager.js +187 -0
  297. package/dist/hooks/HookManager.js.map +1 -0
  298. package/dist/hooks/LifecycleHooks.d.ts +126 -0
  299. package/dist/hooks/LifecycleHooks.d.ts.map +1 -0
  300. package/dist/hooks/LifecycleHooks.js +23 -0
  301. package/dist/hooks/LifecycleHooks.js.map +1 -0
  302. package/dist/hooks/index.d.ts +3 -0
  303. package/dist/hooks/index.d.ts.map +1 -0
  304. package/dist/hooks/index.js +3 -0
  305. package/dist/hooks/index.js.map +1 -0
  306. package/dist/index.d.ts +30 -0
  307. package/dist/index.d.ts.map +1 -0
  308. package/dist/index.js +39 -0
  309. package/dist/index.js.map +1 -0
  310. package/dist/lifecycle/EngineLifecycle.d.ts +121 -0
  311. package/dist/lifecycle/EngineLifecycle.d.ts.map +1 -0
  312. package/dist/lifecycle/EngineLifecycle.js +209 -0
  313. package/dist/lifecycle/EngineLifecycle.js.map +1 -0
  314. package/dist/lifecycle/ShutdownManager.d.ts +44 -0
  315. package/dist/lifecycle/ShutdownManager.d.ts.map +1 -0
  316. package/dist/lifecycle/ShutdownManager.js +105 -0
  317. package/dist/lifecycle/ShutdownManager.js.map +1 -0
  318. package/dist/lifecycle/StartupManager.d.ts +45 -0
  319. package/dist/lifecycle/StartupManager.d.ts.map +1 -0
  320. package/dist/lifecycle/StartupManager.js +97 -0
  321. package/dist/lifecycle/StartupManager.js.map +1 -0
  322. package/dist/lifecycle/index.d.ts +9 -0
  323. package/dist/lifecycle/index.d.ts.map +1 -0
  324. package/dist/lifecycle/index.js +9 -0
  325. package/dist/lifecycle/index.js.map +1 -0
  326. package/dist/logging/LogLevel.d.ts +2 -0
  327. package/dist/logging/LogLevel.d.ts.map +1 -0
  328. package/dist/logging/LogLevel.js +2 -0
  329. package/dist/logging/LogLevel.js.map +1 -0
  330. package/dist/logging/Logger.d.ts +2 -0
  331. package/dist/logging/Logger.d.ts.map +1 -0
  332. package/dist/logging/Logger.js +2 -0
  333. package/dist/logging/Logger.js.map +1 -0
  334. package/dist/logging/index.d.ts +2 -0
  335. package/dist/logging/index.d.ts.map +1 -0
  336. package/dist/logging/index.js +4 -0
  337. package/dist/logging/index.js.map +1 -0
  338. package/dist/marketplace/PluginInstaller.d.ts +81 -0
  339. package/dist/marketplace/PluginInstaller.d.ts.map +1 -0
  340. package/dist/marketplace/PluginInstaller.js +89 -0
  341. package/dist/marketplace/PluginInstaller.js.map +1 -0
  342. package/dist/marketplace/PluginManifest.d.ts +74 -0
  343. package/dist/marketplace/PluginManifest.d.ts.map +1 -0
  344. package/dist/marketplace/PluginManifest.js +67 -0
  345. package/dist/marketplace/PluginManifest.js.map +1 -0
  346. package/dist/marketplace/PluginVerifier.d.ts +58 -0
  347. package/dist/marketplace/PluginVerifier.d.ts.map +1 -0
  348. package/dist/marketplace/PluginVerifier.js +93 -0
  349. package/dist/marketplace/PluginVerifier.js.map +1 -0
  350. package/dist/marketplace/index.d.ts +11 -0
  351. package/dist/marketplace/index.d.ts.map +1 -0
  352. package/dist/marketplace/index.js +11 -0
  353. package/dist/marketplace/index.js.map +1 -0
  354. package/dist/metrics/MetricsCollector.d.ts +2 -0
  355. package/dist/metrics/MetricsCollector.d.ts.map +1 -0
  356. package/dist/metrics/MetricsCollector.js +2 -0
  357. package/dist/metrics/MetricsCollector.js.map +1 -0
  358. package/dist/metrics/PerformanceTracker.d.ts +2 -0
  359. package/dist/metrics/PerformanceTracker.d.ts.map +1 -0
  360. package/dist/metrics/PerformanceTracker.js +2 -0
  361. package/dist/metrics/PerformanceTracker.js.map +1 -0
  362. package/dist/metrics/index.d.ts +2 -0
  363. package/dist/metrics/index.d.ts.map +1 -0
  364. package/dist/metrics/index.js +4 -0
  365. package/dist/metrics/index.js.map +1 -0
  366. package/dist/parser/SchemaValidator.d.ts +63 -0
  367. package/dist/parser/SchemaValidator.d.ts.map +1 -0
  368. package/dist/parser/SchemaValidator.js +212 -0
  369. package/dist/parser/SchemaValidator.js.map +1 -0
  370. package/dist/parser/StepParser.d.ts +124 -0
  371. package/dist/parser/StepParser.d.ts.map +1 -0
  372. package/dist/parser/StepParser.js +330 -0
  373. package/dist/parser/StepParser.js.map +1 -0
  374. package/dist/parser/WorkflowParser.d.ts +124 -0
  375. package/dist/parser/WorkflowParser.d.ts.map +1 -0
  376. package/dist/parser/WorkflowParser.js +141 -0
  377. package/dist/parser/WorkflowParser.js.map +1 -0
  378. package/dist/parser/index.d.ts +4 -0
  379. package/dist/parser/index.d.ts.map +1 -0
  380. package/dist/parser/index.js +4 -0
  381. package/dist/parser/index.js.map +1 -0
  382. package/dist/queue/InMemoryQueue.d.ts +97 -0
  383. package/dist/queue/InMemoryQueue.d.ts.map +1 -0
  384. package/dist/queue/InMemoryQueue.js +268 -0
  385. package/dist/queue/InMemoryQueue.js.map +1 -0
  386. package/dist/queue/JobQueue.d.ts +214 -0
  387. package/dist/queue/JobQueue.d.ts.map +1 -0
  388. package/dist/queue/JobQueue.js +46 -0
  389. package/dist/queue/JobQueue.js.map +1 -0
  390. package/dist/queue/index.d.ts +10 -0
  391. package/dist/queue/index.d.ts.map +1 -0
  392. package/dist/queue/index.js +10 -0
  393. package/dist/queue/index.js.map +1 -0
  394. package/dist/resolution/ActionRegistry.d.ts +2 -0
  395. package/dist/resolution/ActionRegistry.d.ts.map +1 -0
  396. package/dist/resolution/ActionRegistry.js +2 -0
  397. package/dist/resolution/ActionRegistry.js.map +1 -0
  398. package/dist/resolution/AdapterResolver.d.ts +2 -0
  399. package/dist/resolution/AdapterResolver.d.ts.map +1 -0
  400. package/dist/resolution/AdapterResolver.js +2 -0
  401. package/dist/resolution/AdapterResolver.js.map +1 -0
  402. package/dist/resolution/StepResolver.d.ts +2 -0
  403. package/dist/resolution/StepResolver.d.ts.map +1 -0
  404. package/dist/resolution/StepResolver.js +2 -0
  405. package/dist/resolution/StepResolver.js.map +1 -0
  406. package/dist/resolution/index.d.ts +2 -0
  407. package/dist/resolution/index.d.ts.map +1 -0
  408. package/dist/resolution/index.js +2 -0
  409. package/dist/resolution/index.js.map +1 -0
  410. package/dist/scheduling/CronScheduler.d.ts +143 -0
  411. package/dist/scheduling/CronScheduler.d.ts.map +1 -0
  412. package/dist/scheduling/CronScheduler.js +370 -0
  413. package/dist/scheduling/CronScheduler.js.map +1 -0
  414. package/dist/scheduling/JobScheduler.d.ts +82 -0
  415. package/dist/scheduling/JobScheduler.d.ts.map +1 -0
  416. package/dist/scheduling/JobScheduler.js +231 -0
  417. package/dist/scheduling/JobScheduler.js.map +1 -0
  418. package/dist/scheduling/ScheduleParser.d.ts +117 -0
  419. package/dist/scheduling/ScheduleParser.d.ts.map +1 -0
  420. package/dist/scheduling/ScheduleParser.js +257 -0
  421. package/dist/scheduling/ScheduleParser.js.map +1 -0
  422. package/dist/scheduling/ScheduleTypes.d.ts +153 -0
  423. package/dist/scheduling/ScheduleTypes.d.ts.map +1 -0
  424. package/dist/scheduling/ScheduleTypes.js +81 -0
  425. package/dist/scheduling/ScheduleTypes.js.map +1 -0
  426. package/dist/scheduling/Scheduler.d.ts +154 -0
  427. package/dist/scheduling/Scheduler.d.ts.map +1 -0
  428. package/dist/scheduling/Scheduler.js +304 -0
  429. package/dist/scheduling/Scheduler.js.map +1 -0
  430. package/dist/scheduling/index.d.ts +6 -0
  431. package/dist/scheduling/index.d.ts.map +1 -0
  432. package/dist/scheduling/index.js +6 -0
  433. package/dist/scheduling/index.js.map +1 -0
  434. package/dist/security/PermissionPolicy.d.ts +72 -0
  435. package/dist/security/PermissionPolicy.d.ts.map +1 -0
  436. package/dist/security/PermissionPolicy.js +87 -0
  437. package/dist/security/PermissionPolicy.js.map +1 -0
  438. package/dist/security/SandboxManager.d.ts +72 -0
  439. package/dist/security/SandboxManager.d.ts.map +1 -0
  440. package/dist/security/SandboxManager.js +78 -0
  441. package/dist/security/SandboxManager.js.map +1 -0
  442. package/dist/security/index.d.ts +10 -0
  443. package/dist/security/index.d.ts.map +1 -0
  444. package/dist/security/index.js +10 -0
  445. package/dist/security/index.js.map +1 -0
  446. package/dist/state/ExecutionState.d.ts +211 -0
  447. package/dist/state/ExecutionState.d.ts.map +1 -0
  448. package/dist/state/ExecutionState.js +256 -0
  449. package/dist/state/ExecutionState.js.map +1 -0
  450. package/dist/state/StateMachine.d.ts +120 -0
  451. package/dist/state/StateMachine.d.ts.map +1 -0
  452. package/dist/state/StateMachine.js +230 -0
  453. package/dist/state/StateMachine.js.map +1 -0
  454. package/dist/state/index.d.ts +16 -0
  455. package/dist/state/index.d.ts.map +1 -0
  456. package/dist/state/index.js +16 -0
  457. package/dist/state/index.js.map +1 -0
  458. package/dist/storage/ExecutionStore.d.ts +2 -0
  459. package/dist/storage/ExecutionStore.d.ts.map +1 -0
  460. package/dist/storage/ExecutionStore.js +2 -0
  461. package/dist/storage/ExecutionStore.js.map +1 -0
  462. package/dist/storage/ScheduleStore.d.ts +2 -0
  463. package/dist/storage/ScheduleStore.d.ts.map +1 -0
  464. package/dist/storage/ScheduleStore.js +2 -0
  465. package/dist/storage/ScheduleStore.js.map +1 -0
  466. package/dist/storage/WorkflowStore.d.ts +2 -0
  467. package/dist/storage/WorkflowStore.d.ts.map +1 -0
  468. package/dist/storage/WorkflowStore.js +2 -0
  469. package/dist/storage/WorkflowStore.js.map +1 -0
  470. package/dist/storage/index.d.ts +2 -0
  471. package/dist/storage/index.d.ts.map +1 -0
  472. package/dist/storage/index.js +5 -0
  473. package/dist/storage/index.js.map +1 -0
  474. package/dist/testing/EngineTestHarness.d.ts +117 -0
  475. package/dist/testing/EngineTestHarness.d.ts.map +1 -0
  476. package/dist/testing/EngineTestHarness.js +132 -0
  477. package/dist/testing/EngineTestHarness.js.map +1 -0
  478. package/dist/testing/MockAdapter.d.ts +93 -0
  479. package/dist/testing/MockAdapter.d.ts.map +1 -0
  480. package/dist/testing/MockAdapter.js +124 -0
  481. package/dist/testing/MockAdapter.js.map +1 -0
  482. package/dist/testing/index.d.ts +10 -0
  483. package/dist/testing/index.d.ts.map +1 -0
  484. package/dist/testing/index.js +10 -0
  485. package/dist/testing/index.js.map +1 -0
  486. package/dist/triggers/CronTrigger.d.ts +2 -0
  487. package/dist/triggers/CronTrigger.d.ts.map +1 -0
  488. package/dist/triggers/CronTrigger.js +2 -0
  489. package/dist/triggers/CronTrigger.js.map +1 -0
  490. package/dist/triggers/EventTrigger.d.ts +2 -0
  491. package/dist/triggers/EventTrigger.d.ts.map +1 -0
  492. package/dist/triggers/EventTrigger.js +2 -0
  493. package/dist/triggers/EventTrigger.js.map +1 -0
  494. package/dist/triggers/ManualTrigger.d.ts +2 -0
  495. package/dist/triggers/ManualTrigger.d.ts.map +1 -0
  496. package/dist/triggers/ManualTrigger.js +2 -0
  497. package/dist/triggers/ManualTrigger.js.map +1 -0
  498. package/dist/triggers/Trigger.d.ts +2 -0
  499. package/dist/triggers/Trigger.d.ts.map +1 -0
  500. package/dist/triggers/Trigger.js +2 -0
  501. package/dist/triggers/Trigger.js.map +1 -0
  502. package/dist/triggers/index.d.ts +2 -0
  503. package/dist/triggers/index.d.ts.map +1 -0
  504. package/dist/triggers/index.js +6 -0
  505. package/dist/triggers/index.js.map +1 -0
  506. package/dist/triggers/sources/FileWatcherTrigger.d.ts +2 -0
  507. package/dist/triggers/sources/FileWatcherTrigger.d.ts.map +1 -0
  508. package/dist/triggers/sources/FileWatcherTrigger.js +2 -0
  509. package/dist/triggers/sources/FileWatcherTrigger.js.map +1 -0
  510. package/dist/triggers/sources/MessageTrigger.d.ts +2 -0
  511. package/dist/triggers/sources/MessageTrigger.d.ts.map +1 -0
  512. package/dist/triggers/sources/MessageTrigger.js +2 -0
  513. package/dist/triggers/sources/MessageTrigger.js.map +1 -0
  514. package/dist/triggers/sources/WebhookListener.d.ts +2 -0
  515. package/dist/triggers/sources/WebhookListener.d.ts.map +1 -0
  516. package/dist/triggers/sources/WebhookListener.js +2 -0
  517. package/dist/triggers/sources/WebhookListener.js.map +1 -0
  518. package/dist/triggers/sources/index.d.ts +2 -0
  519. package/dist/triggers/sources/index.d.ts.map +1 -0
  520. package/dist/triggers/sources/index.js +2 -0
  521. package/dist/triggers/sources/index.js.map +1 -0
  522. package/dist/utils/deepMerge.d.ts +2 -0
  523. package/dist/utils/deepMerge.d.ts.map +1 -0
  524. package/dist/utils/deepMerge.js +2 -0
  525. package/dist/utils/deepMerge.js.map +1 -0
  526. package/dist/utils/id.d.ts +2 -0
  527. package/dist/utils/id.d.ts.map +1 -0
  528. package/dist/utils/id.js +2 -0
  529. package/dist/utils/id.js.map +1 -0
  530. package/dist/utils/index.d.ts +2 -0
  531. package/dist/utils/index.d.ts.map +1 -0
  532. package/dist/utils/index.js +6 -0
  533. package/dist/utils/index.js.map +1 -0
  534. package/dist/utils/safeExec.d.ts +2 -0
  535. package/dist/utils/safeExec.d.ts.map +1 -0
  536. package/dist/utils/safeExec.js +2 -0
  537. package/dist/utils/safeExec.js.map +1 -0
  538. package/dist/utils/time.d.ts +2 -0
  539. package/dist/utils/time.d.ts.map +1 -0
  540. package/dist/utils/time.js +2 -0
  541. package/dist/utils/time.js.map +1 -0
  542. package/dist/visualization/ExecutionGraphBuilder.d.ts +2 -0
  543. package/dist/visualization/ExecutionGraphBuilder.d.ts.map +1 -0
  544. package/dist/visualization/ExecutionGraphBuilder.js +2 -0
  545. package/dist/visualization/ExecutionGraphBuilder.js.map +1 -0
  546. package/dist/visualization/ExecutionTraceFormatter.d.ts +2 -0
  547. package/dist/visualization/ExecutionTraceFormatter.d.ts.map +1 -0
  548. package/dist/visualization/ExecutionTraceFormatter.js +2 -0
  549. package/dist/visualization/ExecutionTraceFormatter.js.map +1 -0
  550. package/dist/visualization/index.d.ts +2 -0
  551. package/dist/visualization/index.d.ts.map +1 -0
  552. package/dist/visualization/index.js +2 -0
  553. package/dist/visualization/index.js.map +1 -0
  554. package/dist/workflow/Step.d.ts +2 -0
  555. package/dist/workflow/Step.d.ts.map +1 -0
  556. package/dist/workflow/Step.js +2 -0
  557. package/dist/workflow/Step.js.map +1 -0
  558. package/dist/workflow/StepContext.d.ts +2 -0
  559. package/dist/workflow/StepContext.d.ts.map +1 -0
  560. package/dist/workflow/StepContext.js +2 -0
  561. package/dist/workflow/StepContext.js.map +1 -0
  562. package/dist/workflow/StepResult.d.ts +2 -0
  563. package/dist/workflow/StepResult.d.ts.map +1 -0
  564. package/dist/workflow/StepResult.js +2 -0
  565. package/dist/workflow/StepResult.js.map +1 -0
  566. package/dist/workflow/Workflow.d.ts +2 -0
  567. package/dist/workflow/Workflow.d.ts.map +1 -0
  568. package/dist/workflow/Workflow.js +2 -0
  569. package/dist/workflow/Workflow.js.map +1 -0
  570. package/dist/workflow/WorkflowRegistry.d.ts +2 -0
  571. package/dist/workflow/WorkflowRegistry.d.ts.map +1 -0
  572. package/dist/workflow/WorkflowRegistry.js +2 -0
  573. package/dist/workflow/WorkflowRegistry.js.map +1 -0
  574. package/dist/workflow/WorkflowState.d.ts +2 -0
  575. package/dist/workflow/WorkflowState.d.ts.map +1 -0
  576. package/dist/workflow/WorkflowState.js +2 -0
  577. package/dist/workflow/WorkflowState.js.map +1 -0
  578. package/dist/workflow/index.d.ts +2 -0
  579. package/dist/workflow/index.d.ts.map +1 -0
  580. package/dist/workflow/index.js +8 -0
  581. package/dist/workflow/index.js.map +1 -0
  582. package/package.json +47 -0
@@ -0,0 +1,604 @@
1
+ /**
2
+ * Step Executor
3
+ *
4
+ * Executes individual workflow steps with retry logic, timeout handling,
5
+ * and adapter invocation.
6
+ *
7
+ * Integrates with ContextStore for state management and uses automation
8
+ * policies (RetryPolicy, BackoffStrategy, TimeoutManager) for reliability.
9
+ *
10
+ * @module execution
11
+ */
12
+ import { VariableResolver } from '../context/VariableResolver.js';
13
+ import { BackoffStrategy } from '../automation/BackoffStrategy.js';
14
+ import { TimeoutManager } from '../automation/TimeoutManager.js';
15
+ import { DriverResolver } from './drivers/DriverResolver.js';
16
+ import { AdapterDriver } from './drivers/AdapterDriver.js';
17
+ import { AdapterRegistry } from '../adapters/AdapterRegistry.js';
18
+ import { EngineEventType, createEvent } from '../events/EngineEvents.js';
19
+ /**
20
+ * Step executor with retry and timeout logic
21
+ *
22
+ * Uses driver system for pluggable execution strategies.
23
+ * Maintains backward compatibility with legacy StepAdapter interface.
24
+ */
25
+ export class StepExecutor {
26
+ // Legacy adapter support (backward compatibility)
27
+ adapters = new Map();
28
+ // Modern driver system
29
+ driverResolver = new DriverResolver();
30
+ adapterRegistry = new AdapterRegistry();
31
+ adapterDriver;
32
+ resolver = new VariableResolver();
33
+ contextStore;
34
+ retryPolicy;
35
+ timeoutManager;
36
+ // Event system
37
+ eventBus;
38
+ hookManager;
39
+ /**
40
+ * Register an adapter (legacy interface - backward compatibility)
41
+ *
42
+ * @param adapter - Adapter to register
43
+ * @deprecated Use registerModernAdapter() for new code
44
+ */
45
+ registerAdapter(adapter) {
46
+ this.adapters.set(adapter.name, adapter);
47
+ }
48
+ /**
49
+ * Register a modern adapter with driver system
50
+ *
51
+ * @param adapter - Adapter implementing @dev-ecosystem/core Adapter interface
52
+ */
53
+ registerModernAdapter(adapter) {
54
+ this.adapterRegistry.register(adapter);
55
+ // Initialize AdapterDriver if not already done
56
+ if (!this.adapterDriver) {
57
+ this.adapterDriver = new AdapterDriver(this.adapterRegistry);
58
+ this.driverResolver.register(this.adapterDriver);
59
+ }
60
+ }
61
+ /**
62
+ * Register multiple modern adapters
63
+ *
64
+ * @param adapters - Array of adapters
65
+ */
66
+ registerModernAdapters(adapters) {
67
+ for (const adapter of adapters) {
68
+ this.registerModernAdapter(adapter);
69
+ }
70
+ }
71
+ /**
72
+ * Set context store for state management
73
+ *
74
+ * @param contextStore - Context store instance
75
+ */
76
+ setContextStore(contextStore) {
77
+ this.contextStore = contextStore;
78
+ }
79
+ /**
80
+ * Set retry policy for step execution
81
+ *
82
+ * @param retryPolicy - Retry policy instance
83
+ */
84
+ setRetryPolicy(retryPolicy) {
85
+ this.retryPolicy = retryPolicy;
86
+ }
87
+ /**
88
+ * Set timeout manager for step execution
89
+ *
90
+ * @param timeoutManager - Timeout manager instance
91
+ */
92
+ setTimeoutManager(timeoutManager) {
93
+ this.timeoutManager = timeoutManager;
94
+ }
95
+ /**
96
+ * Set event bus for emitting step lifecycle events
97
+ */
98
+ setEventBus(eventBus) {
99
+ this.eventBus = eventBus;
100
+ }
101
+ /**
102
+ * Set hook manager for calling lifecycle hooks
103
+ */
104
+ setHookManager(hookManager) {
105
+ this.hookManager = hookManager;
106
+ }
107
+ /**
108
+ * Get driver resolver (for advanced use cases)
109
+ *
110
+ * @returns Driver resolver instance
111
+ */
112
+ getDriverResolver() {
113
+ return this.driverResolver;
114
+ }
115
+ /**
116
+ * Get adapter registry (for advanced use cases)
117
+ *
118
+ * @returns Adapter registry instance
119
+ */
120
+ getAdapterRegistry() {
121
+ return this.adapterRegistry;
122
+ }
123
+ /**
124
+ * Execute a step
125
+ *
126
+ * @param step - Step to execute
127
+ * @param providedContext - Optional resolution context (if not using ContextStore)
128
+ * @returns Step execution result
129
+ */
130
+ async execute(step, providedContext) {
131
+ const startedAt = new Date();
132
+ let attempts = 0;
133
+ let lastError;
134
+ // Get resolution context from ContextStore or use provided
135
+ const context = this.contextStore
136
+ ? this.contextStore.getResolutionContext()
137
+ : providedContext;
138
+ if (!context) {
139
+ throw new Error('No resolution context available. Either set ContextStore or provide context.');
140
+ }
141
+ // Check conditional execution
142
+ if (step.when && !this.evaluateCondition(step.when, context)) {
143
+ // Emit step.skipped event
144
+ if (this.eventBus) {
145
+ await this.eventBus.emit(createEvent(EngineEventType.STEP_SKIPPED, {
146
+ workflowId: context.workflow?.id,
147
+ runId: context.run?.id,
148
+ stepId: step.id,
149
+ stepName: step.name || step.id,
150
+ adapterType: step.adapter,
151
+ }, {
152
+ workflowId: context.workflow?.id,
153
+ runId: context.run?.id,
154
+ stepId: step.id,
155
+ }));
156
+ }
157
+ return {
158
+ stepId: step.id,
159
+ status: 'skipped',
160
+ output: null,
161
+ attempts: 0,
162
+ duration: 0,
163
+ startedAt,
164
+ completedAt: new Date(),
165
+ };
166
+ }
167
+ // Create hook context
168
+ const hookContext = {
169
+ workflowId: context.workflow?.id || 'unknown',
170
+ workflowName: context.workflow?.name || 'unknown',
171
+ runId: context.run?.id || 'unknown',
172
+ stepId: step.id,
173
+ stepName: step.name || step.id,
174
+ adapterType: step.adapter,
175
+ attempt: 1,
176
+ inputs: step.input,
177
+ startTime: startedAt.getTime(),
178
+ };
179
+ // Emit step.started event
180
+ if (this.eventBus) {
181
+ await this.eventBus.emit(createEvent(EngineEventType.STEP_STARTED, {
182
+ workflowId: context.workflow?.id,
183
+ runId: context.run?.id,
184
+ stepId: step.id,
185
+ stepName: step.name || step.id,
186
+ adapterType: step.adapter,
187
+ }, {
188
+ workflowId: context.workflow?.id,
189
+ runId: context.run?.id,
190
+ stepId: step.id,
191
+ }));
192
+ }
193
+ // Call beforeStep hook
194
+ if (this.hookManager) {
195
+ await this.hookManager.runBeforeStep(hookContext);
196
+ }
197
+ // Resolve variables in input
198
+ const resolvedInput = this.resolver.resolve(step.input, context);
199
+ // Determine retry configuration
200
+ let maxAttempts = step.retry?.max || 1;
201
+ let backoffStrategy;
202
+ // Use automation policy if available
203
+ if (this.retryPolicy) {
204
+ // Use policy's max attempts if configured
205
+ maxAttempts = Math.max(maxAttempts, this.retryPolicy.getMaxAttempts() || 1);
206
+ // Get backoff strategy from policy
207
+ backoffStrategy = this.retryPolicy.getBackoffStrategy();
208
+ }
209
+ else if (step.retry) {
210
+ // No policy but step has retry config - create strategy from step config
211
+ const strategyType = step.retry.backoff || 'linear';
212
+ backoffStrategy = new BackoffStrategy({
213
+ type: strategyType,
214
+ baseDelayMs: step.retry.delay || 1000,
215
+ maxDelayMs: 30000,
216
+ multiplier: 2,
217
+ jitter: 0.1,
218
+ });
219
+ }
220
+ // Retry loop
221
+ for (attempts = 1; attempts <= maxAttempts; attempts++) {
222
+ try {
223
+ // Update hook context attempt number
224
+ hookContext.attempt = attempts;
225
+ // Update attempt count in ContextStore
226
+ if (this.contextStore && attempts > 1) {
227
+ this.contextStore.incrementAttempt();
228
+ }
229
+ // Execute with timeout
230
+ let output = await this.executeWithTimeout(step, resolvedInput, context);
231
+ // Apply output mapping if defined
232
+ if (step.outputs) {
233
+ output = this.mapOutputs(output, step.outputs, context);
234
+ }
235
+ // Store output in ContextStore if available
236
+ if (this.contextStore) {
237
+ this.contextStore.setStepOutput(step.id, output);
238
+ }
239
+ const completedAt = new Date();
240
+ const duration = completedAt.getTime() - startedAt.getTime();
241
+ // Update hook context
242
+ hookContext.outputs = output;
243
+ hookContext.endTime = completedAt.getTime();
244
+ hookContext.durationMs = duration;
245
+ // Emit step.completed event
246
+ if (this.eventBus) {
247
+ await this.eventBus.emit(createEvent(EngineEventType.STEP_COMPLETED, {
248
+ workflowId: context.workflow?.id,
249
+ runId: context.run?.id,
250
+ stepId: step.id,
251
+ stepName: step.name || step.id,
252
+ adapterType: step.adapter,
253
+ durationMs: duration,
254
+ output,
255
+ }, {
256
+ workflowId: context.workflow?.id,
257
+ runId: context.run?.id,
258
+ stepId: step.id,
259
+ }));
260
+ }
261
+ // Call afterStep hook
262
+ if (this.hookManager) {
263
+ await this.hookManager.runAfterStep(hookContext);
264
+ }
265
+ return {
266
+ stepId: step.id,
267
+ status: 'success',
268
+ output,
269
+ attempts,
270
+ duration,
271
+ startedAt,
272
+ completedAt,
273
+ };
274
+ }
275
+ catch (error) {
276
+ lastError = error instanceof Error ? error : new Error(String(error));
277
+ // Enhance error with step context
278
+ if (lastError.message && !lastError.message.includes(step.id)) {
279
+ lastError = new Error(`Step '${step.id}' failed: ${lastError.message}`);
280
+ // Preserve original stack trace
281
+ if (error instanceof Error && error.stack) {
282
+ lastError.stack = error.stack;
283
+ }
284
+ }
285
+ // Check if timeout error
286
+ if (lastError.message.includes('timeout')) {
287
+ // Emit step.timeout event
288
+ if (this.eventBus) {
289
+ await this.eventBus.emit(createEvent(EngineEventType.STEP_TIMEOUT, {
290
+ workflowId: context.workflow?.id,
291
+ runId: context.run?.id,
292
+ stepId: step.id,
293
+ stepName: step.name || step.id,
294
+ adapterType: step.adapter,
295
+ error: lastError.message,
296
+ attempt: attempts,
297
+ willRetry: false,
298
+ }, {
299
+ workflowId: context.workflow?.id,
300
+ runId: context.run?.id,
301
+ stepId: step.id,
302
+ }));
303
+ }
304
+ // Call onError hook
305
+ if (this.hookManager) {
306
+ await this.hookManager.runOnError(hookContext, lastError);
307
+ }
308
+ const completedAt = new Date();
309
+ return {
310
+ stepId: step.id,
311
+ status: 'timeout',
312
+ output: null,
313
+ error: lastError,
314
+ attempts,
315
+ duration: completedAt.getTime() - startedAt.getTime(),
316
+ startedAt,
317
+ completedAt,
318
+ };
319
+ }
320
+ // Check if should retry using policy
321
+ if (this.retryPolicy && attempts < maxAttempts) {
322
+ const shouldRetry = this.retryPolicy.shouldRetry(lastError, attempts);
323
+ if (!shouldRetry) {
324
+ // Policy says don't retry
325
+ break;
326
+ }
327
+ }
328
+ // Retry if more attempts available
329
+ if (attempts < maxAttempts) {
330
+ // Emit step.retrying event
331
+ const backoffMs = backoffStrategy
332
+ ? backoffStrategy.calculateDelay(attempts)
333
+ : (step.retry?.delay || 1000) * (step.retry?.backoff === 'exponential' ? Math.pow(2, attempts - 1) : 1);
334
+ if (this.eventBus) {
335
+ await this.eventBus.emit(createEvent(EngineEventType.STEP_RETRYING, {
336
+ workflowId: context.workflow?.id,
337
+ runId: context.run?.id,
338
+ stepId: step.id,
339
+ stepName: step.name || step.id,
340
+ attempt: attempts,
341
+ maxAttempts,
342
+ delayMs: backoffMs,
343
+ }, {
344
+ workflowId: context.workflow?.id,
345
+ runId: context.run?.id,
346
+ stepId: step.id,
347
+ }));
348
+ }
349
+ // Call onRetry hook
350
+ if (this.hookManager) {
351
+ await this.hookManager.runOnRetry(hookContext);
352
+ }
353
+ await this.sleep(backoffMs);
354
+ }
355
+ }
356
+ }
357
+ // All attempts failed
358
+ const completedAt = new Date();
359
+ const duration = completedAt.getTime() - startedAt.getTime();
360
+ // Emit step.failed event
361
+ if (this.eventBus && lastError) {
362
+ await this.eventBus.emit(createEvent(EngineEventType.STEP_FAILED, {
363
+ workflowId: context.workflow?.id,
364
+ runId: context.run?.id,
365
+ stepId: step.id,
366
+ stepName: step.name || step.id,
367
+ adapterType: step.adapter,
368
+ error: lastError.message,
369
+ attempt: attempts,
370
+ willRetry: false,
371
+ }, {
372
+ workflowId: context.workflow?.id,
373
+ runId: context.run?.id,
374
+ stepId: step.id,
375
+ }));
376
+ }
377
+ // Call onError hook
378
+ if (this.hookManager && lastError) {
379
+ await this.hookManager.runOnError(hookContext, lastError);
380
+ }
381
+ return {
382
+ stepId: step.id,
383
+ status: 'failure',
384
+ output: null,
385
+ error: lastError,
386
+ attempts,
387
+ duration,
388
+ startedAt,
389
+ completedAt,
390
+ };
391
+ }
392
+ /**
393
+ * Execute step with timeout
394
+ */
395
+ async executeWithTimeout(step, input, context) {
396
+ // Try driver system first (modern approach)
397
+ if (this.adapterDriver) {
398
+ const driverStep = this.convertToDriverStep(step, input);
399
+ const driverContext = this.convertToDriverContext(step, context);
400
+ try {
401
+ const result = await this.executeWithDriver(driverStep, driverContext, step);
402
+ return result.output;
403
+ }
404
+ catch (error) {
405
+ // If driver fails, fall back to legacy adapter if available
406
+ if (this.adapters.has(step.adapter)) {
407
+ return this.executeWithLegacyAdapter(step, input, context);
408
+ }
409
+ throw error;
410
+ }
411
+ }
412
+ // Fall back to legacy adapter system
413
+ return this.executeWithLegacyAdapter(step, input, context);
414
+ }
415
+ /**
416
+ * Execute using driver system
417
+ */
418
+ async executeWithDriver(driverStep, driverContext, step) {
419
+ const driver = this.driverResolver.resolve(driverStep);
420
+ // Apply timeout if configured
421
+ if (step.timeout || this.timeoutManager) {
422
+ const timeoutMs = step.timeout
423
+ ? this.parseTimeoutString(step.timeout)
424
+ : 30000;
425
+ if (this.timeoutManager) {
426
+ return TimeoutManager.execute(() => driver.execute(driverStep, driverContext), {
427
+ timeoutMs,
428
+ operation: `Step: ${step.id}`,
429
+ });
430
+ }
431
+ return this.withTimeout(driver.execute(driverStep, driverContext), timeoutMs, step.id);
432
+ }
433
+ return driver.execute(driverStep, driverContext);
434
+ }
435
+ /**
436
+ * Execute using legacy adapter (backward compatibility)
437
+ */
438
+ async executeWithLegacyAdapter(step, input, context) {
439
+ const adapter = this.adapters.get(step.adapter);
440
+ if (!adapter) {
441
+ throw new Error(`Adapter '${step.adapter}' not registered. ` +
442
+ `Available: ${Array.from(this.adapters.keys()).join(', ')}`);
443
+ }
444
+ const executionPromise = adapter.execute(step.action, input, context);
445
+ // Apply timeout if configured
446
+ if (step.timeout || this.timeoutManager) {
447
+ const timeoutMs = step.timeout
448
+ ? this.parseTimeoutString(step.timeout)
449
+ : 30000; // Default 30 seconds
450
+ // Use TimeoutManager static method if available
451
+ if (this.timeoutManager) {
452
+ return TimeoutManager.execute(() => executionPromise, {
453
+ timeoutMs,
454
+ operation: `Step: ${step.id}`,
455
+ });
456
+ }
457
+ // Fallback to local timeout implementation
458
+ return this.withTimeout(executionPromise, timeoutMs, step.id);
459
+ }
460
+ return executionPromise;
461
+ }
462
+ /**
463
+ * Convert ParsedStep to DriverStep
464
+ */
465
+ convertToDriverStep(step, input) {
466
+ return {
467
+ id: step.id,
468
+ name: step.name,
469
+ uses: step.action,
470
+ with: input,
471
+ when: step.when,
472
+ retry: step.retry,
473
+ timeout: step.timeout,
474
+ continueOnError: step.continueOnError,
475
+ };
476
+ }
477
+ /**
478
+ * Convert execution context to DriverContext
479
+ */
480
+ convertToDriverContext(step, context) {
481
+ const resolutionContext = this.contextStore?.getResolutionContext() || context;
482
+ return {
483
+ stepId: step.id,
484
+ executionId: resolutionContext.run?.id || 'unknown',
485
+ workflowName: resolutionContext.workflow?.name || 'unknown',
486
+ log: (message, level) => {
487
+ console.log(`[${level || 'info'}] ${message}`);
488
+ },
489
+ timeout: step.timeout ? this.parseTimeoutString(step.timeout) : undefined,
490
+ env: resolutionContext.env || {},
491
+ secrets: resolutionContext.secrets || {},
492
+ stepOutputs: resolutionContext.steps ? Object.fromEntries(resolutionContext.steps) : {},
493
+ inputs: resolutionContext.inputs || {},
494
+ workflowContext: resolutionContext.context || {},
495
+ };
496
+ }
497
+ /**
498
+ * Parse timeout string to milliseconds
499
+ * @param timeout - Timeout string like "30s", "5m", "1h"
500
+ * @returns Timeout in milliseconds
501
+ */
502
+ parseTimeoutString(timeout) {
503
+ const match = timeout.match(/^([0-9]+)(ms|s|m|h)$/);
504
+ if (!match) {
505
+ throw new Error(`Invalid timeout format: ${timeout}. Expected format: <number><unit> (e.g., 30s, 5m, 1h)`);
506
+ }
507
+ const value = parseInt(match[1], 10);
508
+ const unit = match[2];
509
+ switch (unit) {
510
+ case 'ms':
511
+ return value;
512
+ case 's':
513
+ return value * 1000;
514
+ case 'm':
515
+ return value * 60 * 1000;
516
+ case 'h':
517
+ return value * 60 * 60 * 1000;
518
+ default:
519
+ throw new Error(`Unsupported timeout unit: ${unit}`);
520
+ }
521
+ }
522
+ /**
523
+ * Add timeout to promise
524
+ */
525
+ withTimeout(promise, timeoutMs, stepId) {
526
+ return Promise.race([
527
+ promise,
528
+ new Promise((_, reject) => {
529
+ const timer = setTimeout(() => {
530
+ reject(new Error(`Step '${stepId}' exceeded timeout of ${timeoutMs}ms`));
531
+ }, timeoutMs);
532
+ // Cleanup timer if promise resolves first
533
+ promise.finally(() => clearTimeout(timer));
534
+ }),
535
+ ]);
536
+ }
537
+ /**
538
+ * Sleep utility for retry backoff
539
+ */
540
+ sleep(ms) {
541
+ return new Promise(resolve => setTimeout(resolve, ms));
542
+ }
543
+ /**
544
+ * Map raw output to defined output structure
545
+ *
546
+ * @param rawOutput - Raw output from adapter
547
+ * @param outputMappings - Output mapping definitions
548
+ * @param context - Resolution context for variable resolution in mappings
549
+ * @returns Mapped output object
550
+ */
551
+ mapOutputs(rawOutput, outputMappings, context) {
552
+ const mapped = {};
553
+ for (const [key, path] of Object.entries(outputMappings)) {
554
+ // Resolve path (may contain variables)
555
+ const resolvedPath = this.resolver.resolve(path, context);
556
+ // Navigate to value in rawOutput
557
+ const parts = resolvedPath.split('.');
558
+ let value = rawOutput;
559
+ for (const part of parts) {
560
+ if (value === null || value === undefined) {
561
+ break;
562
+ }
563
+ value = value[part];
564
+ }
565
+ mapped[key] = value;
566
+ }
567
+ return mapped;
568
+ }
569
+ /**
570
+ * Evaluate conditional expression
571
+ *
572
+ * Currently simple boolean evaluation.
573
+ * Future: Support expression language.
574
+ *
575
+ * @param condition - Conditional expression
576
+ * @param context - Resolution context
577
+ * @returns True if condition met
578
+ */
579
+ evaluateCondition(condition, context) {
580
+ // Resolve variables in condition
581
+ const resolved = this.resolver.resolve(condition, context);
582
+ // Simple boolean evaluation
583
+ if (typeof resolved === 'boolean') {
584
+ return resolved;
585
+ }
586
+ if (typeof resolved === 'string') {
587
+ return resolved.toLowerCase() !== 'false' && resolved !== '0' && resolved !== '';
588
+ }
589
+ return !!resolved;
590
+ }
591
+ /**
592
+ * Get registered adapters
593
+ */
594
+ getAdapters() {
595
+ return Array.from(this.adapters.keys());
596
+ }
597
+ /**
598
+ * Check if adapter is registered
599
+ */
600
+ hasAdapter(name) {
601
+ return this.adapters.has(name);
602
+ }
603
+ }
604
+ //# sourceMappingURL=StepExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepExecutor.js","sourceRoot":"","sources":["../../src/execution/StepExecutor.ts"],"names":[],"mappings":"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"}