@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,442 @@
1
+ /**
2
+ * Execution Engine
3
+ *
4
+ * Main orchestrator integrating scheduling, queueing, and workflow execution.
5
+ * Provides the central API for triggering and executing workflows.
6
+ *
7
+ * Architecture:
8
+ * - Scheduler: Manages cron, interval, and event-based triggers
9
+ * - JobQueue: Queues workflow execution jobs
10
+ * - WorkflowExecutor: Executes workflows with proper state management
11
+ * - StepExecutor: Executes individual steps with adapters
12
+ *
13
+ * @module execution
14
+ */
15
+ import { randomUUID } from 'node:crypto';
16
+ import { WorkflowParser } from '../parser/WorkflowParser.js';
17
+ import { WorkflowExecutor } from './WorkflowExecutor.js';
18
+ import { StepExecutor } from './StepExecutor.js';
19
+ import { Scheduler } from '../scheduling/Scheduler.js';
20
+ import { InMemoryQueue } from '../queue/InMemoryQueue.js';
21
+ import { JobPriority, createJob } from '../queue/JobQueue.js';
22
+ import { EventBus } from '../events/EventBus.js';
23
+ import { HookManager } from '../hooks/HookManager.js';
24
+ import { EngineEventType, createEvent } from '../events/EngineEvents.js';
25
+ /**
26
+ * Main execution engine
27
+ */
28
+ export class ExecutionEngine {
29
+ config;
30
+ queue;
31
+ scheduler;
32
+ stepExecutor;
33
+ workflowExecutor;
34
+ // Event system
35
+ eventBus;
36
+ hookManager;
37
+ // Execution tracking
38
+ executions = new Map();
39
+ runningExecutions = new Set();
40
+ // State
41
+ isRunning = false;
42
+ constructor(config = {}) {
43
+ // Apply defaults
44
+ this.config = {
45
+ maxConcurrentExecutions: config.maxConcurrentExecutions ?? 10,
46
+ defaultTimeout: config.defaultTimeout ?? 300000, // 5 minutes
47
+ enableScheduler: config.enableScheduler ?? true,
48
+ queue: config.queue ?? new InMemoryQueue(),
49
+ retryPolicy: config.retryPolicy,
50
+ timeoutManager: config.timeoutManager,
51
+ };
52
+ // Initialize event system
53
+ this.eventBus = new EventBus();
54
+ this.hookManager = new HookManager();
55
+ // Initialize components
56
+ this.queue = this.config.queue;
57
+ this.stepExecutor = new StepExecutor();
58
+ this.workflowExecutor = new WorkflowExecutor(this.stepExecutor);
59
+ // Pass event bus and hook manager to executors
60
+ this.stepExecutor.setEventBus(this.eventBus);
61
+ this.stepExecutor.setHookManager(this.hookManager);
62
+ this.workflowExecutor.setEventBus(this.eventBus);
63
+ this.workflowExecutor.setHookManager(this.hookManager);
64
+ // Configure StepExecutor with automation policies
65
+ if (this.config.retryPolicy) {
66
+ this.stepExecutor.setRetryPolicy(this.config.retryPolicy);
67
+ }
68
+ if (this.config.timeoutManager) {
69
+ this.stepExecutor.setTimeoutManager(this.config.timeoutManager);
70
+ }
71
+ // Initialize scheduler if enabled
72
+ if (this.config.enableScheduler) {
73
+ this.scheduler = new Scheduler(this.queue, {}, async (schedule, _execution) => {
74
+ // Handle scheduled workflow execution
75
+ console.log('Scheduled workflow triggered:', schedule.id);
76
+ });
77
+ }
78
+ }
79
+ /**
80
+ * Start the execution engine
81
+ */
82
+ async start() {
83
+ if (this.isRunning) {
84
+ throw new Error('Execution engine is already running');
85
+ }
86
+ this.isRunning = true;
87
+ // Emit engine started event
88
+ await this.eventBus.emit(createEvent(EngineEventType.ENGINE_STARTED, {
89
+ timestamp: Date.now(),
90
+ }));
91
+ // Start scheduler if enabled
92
+ if (this.scheduler) {
93
+ await this.scheduler.start();
94
+ }
95
+ // Start processing queue
96
+ this.processQueue();
97
+ }
98
+ /**
99
+ * Stop the execution engine
100
+ */
101
+ async stop() {
102
+ if (!this.isRunning) {
103
+ return;
104
+ }
105
+ this.isRunning = false;
106
+ // Stop scheduler
107
+ if (this.scheduler) {
108
+ await this.scheduler.stop();
109
+ }
110
+ // Wait for running executions to complete (with timeout)
111
+ const timeout = 30000; // 30 seconds
112
+ const startTime = Date.now();
113
+ while (this.runningExecutions.size > 0 && Date.now() - startTime < timeout) {
114
+ await this.sleep(1000);
115
+ }
116
+ if (this.runningExecutions.size > 0) {
117
+ console.warn(`${this.runningExecutions.size} executions still running after timeout`);
118
+ }
119
+ // Emit engine stopped event
120
+ await this.eventBus.emit(createEvent(EngineEventType.ENGINE_STOPPED, {
121
+ timestamp: Date.now(),
122
+ runningExecutions: this.runningExecutions.size,
123
+ }));
124
+ }
125
+ /**
126
+ * Execute a workflow manually
127
+ *
128
+ * @param workflow - Workflow definition (YAML string or parsed)
129
+ * @param options - Execution options
130
+ * @returns Execution ID
131
+ */
132
+ async executeWorkflow(workflow, options = {}) {
133
+ const executionId = this.generateExecutionId();
134
+ // Create job payload
135
+ const payload = {
136
+ workflow,
137
+ options: {
138
+ ...options,
139
+ triggeredBy: options.triggeredBy || 'manual',
140
+ },
141
+ trigger: {
142
+ type: 'manual',
143
+ source: 'api',
144
+ metadata: {},
145
+ },
146
+ };
147
+ // Enqueue job
148
+ const job = createJob({
149
+ id: this.generateJobId(),
150
+ workflowId: executionId,
151
+ type: 'workflow',
152
+ payload,
153
+ priority: JobPriority.NORMAL,
154
+ tags: ['manual', typeof workflow === 'string' ? 'unknown' : workflow.name || 'unknown'],
155
+ });
156
+ // Add custom metadata
157
+ job.metadata.executionId = executionId;
158
+ job.metadata.workflowName = typeof workflow === 'string' ? 'unknown' : workflow.name;
159
+ job.metadata.triggeredBy = 'manual';
160
+ await this.queue.enqueue(job);
161
+ // Track execution
162
+ const workflowName = typeof workflow === 'string'
163
+ ? 'workflow'
164
+ : workflow.metadata?.name || workflow.name || 'unnamed';
165
+ this.executions.set(executionId, {
166
+ executionId,
167
+ workflowName,
168
+ status: 'queued',
169
+ trigger: {
170
+ type: 'manual',
171
+ source: 'api',
172
+ triggeredAt: new Date(),
173
+ },
174
+ });
175
+ return executionId;
176
+ }
177
+ /**
178
+ * Execute a workflow immediately (bypass queue)
179
+ *
180
+ * @param workflow - Workflow definition
181
+ * @param options - Execution options
182
+ * @returns Workflow execution result
183
+ */
184
+ async executeWorkflowImmediate(workflow, options = {}) {
185
+ const executionId = this.generateExecutionId();
186
+ // Parse workflow if needed
187
+ const parsedWorkflow = typeof workflow === 'string'
188
+ ? WorkflowParser.parse(workflow)
189
+ : workflow;
190
+ // Track execution
191
+ this.executions.set(executionId, {
192
+ executionId,
193
+ workflowName: parsedWorkflow.metadata?.name || parsedWorkflow.name || 'unnamed',
194
+ status: 'running',
195
+ trigger: {
196
+ type: 'manual',
197
+ source: 'api',
198
+ triggeredAt: new Date(),
199
+ },
200
+ progress: {
201
+ completedSteps: 0,
202
+ totalSteps: parsedWorkflow.steps.length,
203
+ },
204
+ });
205
+ this.runningExecutions.add(executionId);
206
+ try {
207
+ // Execute workflow
208
+ const result = await this.workflowExecutor.execute(parsedWorkflow, {
209
+ ...options,
210
+ triggeredBy: options.triggeredBy || 'manual-immediate',
211
+ timeout: options.timeout || this.config.defaultTimeout,
212
+ });
213
+ // Update execution status
214
+ this.executions.set(executionId, {
215
+ ...this.executions.get(executionId),
216
+ status: 'completed',
217
+ result,
218
+ });
219
+ return result;
220
+ }
221
+ catch (error) {
222
+ // Update execution status with error
223
+ this.executions.set(executionId, {
224
+ ...this.executions.get(executionId),
225
+ status: 'failed',
226
+ error: error instanceof Error ? error : new Error(String(error)),
227
+ });
228
+ throw error;
229
+ }
230
+ finally {
231
+ this.runningExecutions.delete(executionId);
232
+ }
233
+ }
234
+ /**
235
+ * Get execution status
236
+ *
237
+ * @param executionId - Execution ID
238
+ * @returns Execution status or undefined if not found
239
+ */
240
+ getExecutionStatus(executionId) {
241
+ return this.executions.get(executionId);
242
+ }
243
+ /**
244
+ * Get all execution statuses
245
+ *
246
+ * @returns Array of execution statuses
247
+ */
248
+ getAllExecutions() {
249
+ return Array.from(this.executions.values());
250
+ }
251
+ /**
252
+ * Register a step adapter
253
+ *
254
+ * @param adapter - Adapter instance (supports both legacy and modern interfaces)
255
+ */
256
+ registerAdapter(adapter) {
257
+ // Check if it's a modern adapter (has supports method from @dev-ecosystem/core)
258
+ if (typeof adapter.supports === 'function') {
259
+ this.stepExecutor.registerModernAdapter(adapter);
260
+ }
261
+ else {
262
+ // Legacy adapter interface
263
+ this.stepExecutor.registerAdapter(adapter);
264
+ }
265
+ }
266
+ /**
267
+ * Register multiple adapters
268
+ *
269
+ * @param adapters - Array of adapter instances
270
+ */
271
+ registerAdapters(adapters) {
272
+ for (const adapter of adapters) {
273
+ this.registerAdapter(adapter);
274
+ }
275
+ }
276
+ /**
277
+ * Get scheduler instance
278
+ *
279
+ * @returns Scheduler or undefined if disabled
280
+ */
281
+ getScheduler() {
282
+ return this.scheduler;
283
+ }
284
+ /**
285
+ * Get queue instance
286
+ *
287
+ * @returns Job queue
288
+ */
289
+ getQueue() {
290
+ return this.queue;
291
+ }
292
+ /**
293
+ * Get event bus instance
294
+ *
295
+ * @returns EventBus
296
+ */
297
+ getEventBus() {
298
+ return this.eventBus;
299
+ }
300
+ /**
301
+ * Get hook manager instance
302
+ *
303
+ * @returns HookManager
304
+ */
305
+ getHookManager() {
306
+ return this.hookManager;
307
+ }
308
+ /**
309
+ * Register a lifecycle hook
310
+ *
311
+ * @param hook - Lifecycle hook implementation
312
+ */
313
+ registerHook(hook) {
314
+ this.hookManager.register(hook);
315
+ }
316
+ /**
317
+ * Register multiple lifecycle hooks
318
+ *
319
+ * @param hooks - Array of lifecycle hook implementations
320
+ */
321
+ registerHooks(hooks) {
322
+ this.hookManager.registerMany(hooks);
323
+ }
324
+ /**
325
+ * Process queue continuously
326
+ */
327
+ async processQueue() {
328
+ while (this.isRunning) {
329
+ try {
330
+ // Check if we can accept more executions
331
+ if (this.runningExecutions.size >= this.config.maxConcurrentExecutions) {
332
+ await this.sleep(100);
333
+ continue;
334
+ }
335
+ // Dequeue next job
336
+ const job = await this.queue.dequeue();
337
+ if (!job) {
338
+ await this.sleep(100);
339
+ continue;
340
+ }
341
+ // Execute job (don't await - run in background)
342
+ this.executeJob(job).catch(error => {
343
+ console.error('Job execution failed:', error);
344
+ });
345
+ }
346
+ catch (error) {
347
+ console.error('Queue processing error:', error);
348
+ await this.sleep(1000);
349
+ }
350
+ }
351
+ }
352
+ /**
353
+ * Execute a queued job
354
+ */
355
+ async executeJob(job) {
356
+ const executionId = job.metadata?.executionId || this.generateExecutionId();
357
+ const payload = job.payload;
358
+ this.runningExecutions.add(executionId);
359
+ try {
360
+ // Parse workflow if needed
361
+ const parsedWorkflow = typeof payload.workflow === 'string'
362
+ ? WorkflowParser.parse(payload.workflow)
363
+ : payload.workflow;
364
+ // Update execution status
365
+ const existingStatus = this.executions.get(executionId);
366
+ this.executions.set(executionId, {
367
+ executionId,
368
+ workflowName: parsedWorkflow.metadata?.name || parsedWorkflow.name || 'unnamed',
369
+ status: 'running',
370
+ trigger: existingStatus?.trigger || {
371
+ type: payload.trigger.type,
372
+ source: payload.trigger.source,
373
+ triggeredAt: new Date(),
374
+ },
375
+ progress: {
376
+ completedSteps: 0,
377
+ totalSteps: parsedWorkflow.steps.length,
378
+ },
379
+ });
380
+ // Execute workflow
381
+ const result = await this.workflowExecutor.execute(parsedWorkflow, {
382
+ ...payload.options,
383
+ timeout: payload.options?.timeout || this.config.defaultTimeout,
384
+ });
385
+ // Mark job as completed
386
+ await this.queue.markCompleted(job.id);
387
+ // Update execution status
388
+ this.executions.set(executionId, {
389
+ ...this.executions.get(executionId),
390
+ status: 'completed',
391
+ result,
392
+ });
393
+ }
394
+ catch (error) {
395
+ // Mark job as failed
396
+ await this.queue.markFailed(job.id, error instanceof Error ? error : new Error(String(error)));
397
+ // Update execution status
398
+ this.executions.set(executionId, {
399
+ ...this.executions.get(executionId),
400
+ status: 'failed',
401
+ error: error instanceof Error ? error : new Error(String(error)),
402
+ });
403
+ }
404
+ finally {
405
+ this.runningExecutions.delete(executionId);
406
+ }
407
+ }
408
+ /**
409
+ * Generate unique execution ID
410
+ */
411
+ generateExecutionId() {
412
+ return `exec-${Date.now()}-${randomUUID().split('-')[0]}`;
413
+ }
414
+ /**
415
+ * Generate unique job ID
416
+ */
417
+ generateJobId() {
418
+ return `job-${Date.now()}-${randomUUID().split('-')[0]}`;
419
+ }
420
+ /**
421
+ * Sleep utility
422
+ */
423
+ sleep(ms) {
424
+ return new Promise(resolve => setTimeout(resolve, ms));
425
+ }
426
+ /**
427
+ * Get engine statistics
428
+ */
429
+ getStatistics() {
430
+ const allExecutions = Array.from(this.executions.values());
431
+ return {
432
+ totalExecutions: allExecutions.length,
433
+ runningExecutions: this.runningExecutions.size,
434
+ queuedExecutions: allExecutions.filter(e => e.status === 'queued').length,
435
+ completedExecutions: allExecutions.filter(e => e.status === 'completed').length,
436
+ failedExecutions: allExecutions.filter(e => e.status === 'failed').length,
437
+ isRunning: this.isRunning,
438
+ maxConcurrentExecutions: this.config.maxConcurrentExecutions,
439
+ };
440
+ }
441
+ }
442
+ //# sourceMappingURL=ExecutionEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionEngine.js","sourceRoot":"","sources":["../../src/execution/ExecutionEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * ExecutionNode
3
+ *
4
+ * Pure data model representing a single step in the execution DAG.
5
+ * This is deliberately "boring" - it holds data, not logic.
6
+ *
7
+ * NO EXECUTION LOGIC HERE. This is the blueprint, not the builder.
8
+ *
9
+ * Purpose:
10
+ * - Model a step and its relationships
11
+ * - Store resolved adapter reference
12
+ * - Hold metadata for execution (retry, timeout, etc.)
13
+ * - Track dependencies between steps
14
+ *
15
+ * What it IS NOT:
16
+ * - Not an executor (that's StepExecutor's job)
17
+ * - Not a state machine (that's ExecutionState's job)
18
+ * - Not a scheduler (that's WorkflowExecutor's job)
19
+ */
20
+ import type { Adapter } from '@dev-ecosystem/core';
21
+ /**
22
+ * Execution state for a single step
23
+ */
24
+ export type ExecutionStatus = 'pending' | 'running' | 'completed' | 'failed' | 'skipped';
25
+ /**
26
+ * Pure data model for an execution node in the DAG.
27
+ * Contains only data - no behavior, no methods (except maybe toString for debugging).
28
+ */
29
+ export interface ExecutionNode {
30
+ /**
31
+ * Unique identifier for this step (from workflow schema)
32
+ */
33
+ readonly stepId: string;
34
+ /**
35
+ * Step IDs this step depends on (from `needs` field)
36
+ */
37
+ readonly dependencies: readonly string[];
38
+ /**
39
+ * The resolved adapter instance that will execute this step
40
+ * This is set during execution planning when adapters are resolved
41
+ */
42
+ readonly adapter: Adapter | null;
43
+ /**
44
+ * Uses clause - adapter reference from workflow schema (e.g., "fs.read")
45
+ */
46
+ readonly uses: string;
47
+ /**
48
+ * Input parameters for the adapter
49
+ */
50
+ readonly input: Record<string, unknown>;
51
+ /**
52
+ * Optional conditional expression
53
+ * If present and evaluates to false, this step is skipped
54
+ */
55
+ readonly condition?: string;
56
+ /**
57
+ * Execution metadata
58
+ */
59
+ readonly metadata: ExecutionNodeMetadata;
60
+ }
61
+ /**
62
+ * Metadata about how a step should be executed.
63
+ * This is data ABOUT execution, not execution itself.
64
+ */
65
+ export interface ExecutionNodeMetadata {
66
+ /**
67
+ * Maximum number of retry attempts (default: 0)
68
+ */
69
+ readonly maxRetries: number;
70
+ /**
71
+ * Timeout in milliseconds
72
+ * If not specified, inherits from workflow-level timeout
73
+ */
74
+ readonly timeout?: number;
75
+ /**
76
+ * Whether this step runs conditionally
77
+ */
78
+ readonly hasCondition: boolean;
79
+ /**
80
+ * Phase number (from topological sort)
81
+ * Steps in the same phase can run in parallel
82
+ */
83
+ phase?: number;
84
+ }
85
+ /**
86
+ * Builder for creating ExecutionNode instances.
87
+ * This makes construction cleaner and validates required fields.
88
+ */
89
+ export declare class ExecutionNodeBuilder {
90
+ private stepId?;
91
+ private dependencies;
92
+ private adapter;
93
+ private uses?;
94
+ private input;
95
+ private condition?;
96
+ private maxRetries;
97
+ private timeout?;
98
+ private phase?;
99
+ setStepId(id: string): this;
100
+ setDependencies(deps: string[]): this;
101
+ setAdapter(adapter: Adapter | null): this;
102
+ setUses(uses: string): this;
103
+ setInput(input: Record<string, unknown>): this;
104
+ setCondition(condition: string | undefined): this;
105
+ setMaxRetries(retries: number): this;
106
+ setTimeout(timeout: number | undefined): this;
107
+ setPhase(phase: number): this;
108
+ build(): ExecutionNode;
109
+ }
110
+ /**
111
+ * Factory function for creating ExecutionNode builder
112
+ */
113
+ export declare function createExecutionNode(): ExecutionNodeBuilder;
114
+ //# sourceMappingURL=ExecutionNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionNode.d.ts","sourceRoot":"","sources":["../../src/execution/ExecutionNode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAEd;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAEzC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,KAAK,CAAC,CAAS;IAEvB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK3B,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAKrC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI;IAKzC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAK9C,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAKjD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKpC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAK7C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,KAAK,IAAI,aAAa;CAuBvB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,oBAAoB,CAE1D"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * ExecutionNode
3
+ *
4
+ * Pure data model representing a single step in the execution DAG.
5
+ * This is deliberately "boring" - it holds data, not logic.
6
+ *
7
+ * NO EXECUTION LOGIC HERE. This is the blueprint, not the builder.
8
+ *
9
+ * Purpose:
10
+ * - Model a step and its relationships
11
+ * - Store resolved adapter reference
12
+ * - Hold metadata for execution (retry, timeout, etc.)
13
+ * - Track dependencies between steps
14
+ *
15
+ * What it IS NOT:
16
+ * - Not an executor (that's StepExecutor's job)
17
+ * - Not a state machine (that's ExecutionState's job)
18
+ * - Not a scheduler (that's WorkflowExecutor's job)
19
+ */
20
+ /**
21
+ * Builder for creating ExecutionNode instances.
22
+ * This makes construction cleaner and validates required fields.
23
+ */
24
+ export class ExecutionNodeBuilder {
25
+ stepId;
26
+ dependencies = [];
27
+ adapter = null;
28
+ uses;
29
+ input = {};
30
+ condition;
31
+ maxRetries = 0;
32
+ timeout;
33
+ phase;
34
+ setStepId(id) {
35
+ this.stepId = id;
36
+ return this;
37
+ }
38
+ setDependencies(deps) {
39
+ this.dependencies = [...deps];
40
+ return this;
41
+ }
42
+ setAdapter(adapter) {
43
+ this.adapter = adapter;
44
+ return this;
45
+ }
46
+ setUses(uses) {
47
+ this.uses = uses;
48
+ return this;
49
+ }
50
+ setInput(input) {
51
+ this.input = { ...input };
52
+ return this;
53
+ }
54
+ setCondition(condition) {
55
+ this.condition = condition;
56
+ return this;
57
+ }
58
+ setMaxRetries(retries) {
59
+ this.maxRetries = Math.max(0, retries);
60
+ return this;
61
+ }
62
+ setTimeout(timeout) {
63
+ this.timeout = timeout;
64
+ return this;
65
+ }
66
+ setPhase(phase) {
67
+ this.phase = phase;
68
+ return this;
69
+ }
70
+ build() {
71
+ if (!this.stepId) {
72
+ throw new Error('ExecutionNode requires stepId');
73
+ }
74
+ if (!this.uses) {
75
+ throw new Error('ExecutionNode requires uses (adapter reference)');
76
+ }
77
+ return {
78
+ stepId: this.stepId,
79
+ dependencies: Object.freeze([...this.dependencies]),
80
+ adapter: this.adapter,
81
+ uses: this.uses,
82
+ input: { ...this.input },
83
+ condition: this.condition,
84
+ metadata: {
85
+ maxRetries: this.maxRetries,
86
+ timeout: this.timeout,
87
+ hasCondition: !!this.condition,
88
+ phase: this.phase,
89
+ },
90
+ };
91
+ }
92
+ }
93
+ /**
94
+ * Factory function for creating ExecutionNode builder
95
+ */
96
+ export function createExecutionNode() {
97
+ return new ExecutionNodeBuilder();
98
+ }
99
+ //# sourceMappingURL=ExecutionNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionNode.js","sourceRoot":"","sources":["../../src/execution/ExecutionNode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAqFH;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACvB,MAAM,CAAU;IAChB,YAAY,GAAa,EAAE,CAAC;IAC5B,OAAO,GAAmB,IAAI,CAAC;IAC/B,IAAI,CAAU;IACd,KAAK,GAA4B,EAAE,CAAC;IACpC,SAAS,CAAU;IACnB,UAAU,GAAW,CAAC,CAAC;IACvB,OAAO,CAAU;IACjB,KAAK,CAAU;IAEvB,SAAS,CAAC,EAAU;QAClB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,IAAc;QAC5B,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,OAAuB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,KAA8B;QACrC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,SAA6B;QACxC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,OAAe;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,OAA2B;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YACnD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE;gBACR,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS;gBAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB;SACF,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,oBAAoB,EAAE,CAAC;AACpC,CAAC"}