@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,184 @@
1
+ /**
2
+ * Step Guard
3
+ *
4
+ * Validates individual step configurations:
5
+ * - Step structure validation
6
+ * - Input parameter validation
7
+ * - Timeout validation
8
+ * - Retry policy validation
9
+ *
10
+ * @module guards
11
+ */
12
+ import { VariableResolver } from '../context/VariableResolver.js';
13
+ /**
14
+ * Step validation guard
15
+ */
16
+ export class StepGuard {
17
+ /**
18
+ * Validate a single step
19
+ *
20
+ * @param step - Step to validate
21
+ * @param availableSteps - Set of all step IDs in workflow
22
+ * @throws {Error} If validation fails
23
+ */
24
+ static validate(step, availableSteps) {
25
+ this.validateRequired(step);
26
+ this.validateTimeout(step);
27
+ this.validateRetryPolicy(step);
28
+ this.validateDependencies(step, availableSteps);
29
+ this.validateVariableReferences(step, availableSteps);
30
+ }
31
+ /**
32
+ * Validate required fields
33
+ *
34
+ * @param step - Step to validate
35
+ * @throws {Error} If required fields missing
36
+ */
37
+ static validateRequired(step) {
38
+ if (!step.id || typeof step.id !== 'string') {
39
+ throw new Error('Step missing required field: id (string)');
40
+ }
41
+ if (!step.action || typeof step.action !== 'string') {
42
+ throw new Error(`Step '${step.id}' missing required field: uses/action`);
43
+ }
44
+ if (!step.adapter || typeof step.adapter !== 'string') {
45
+ throw new Error(`Step '${step.id}' missing adapter type`);
46
+ }
47
+ }
48
+ /**
49
+ * Validate timeout values
50
+ *
51
+ * @param step - Step to validate
52
+ * @throws {Error} If timeout invalid
53
+ */
54
+ static validateTimeout(step) {
55
+ if (step.timeout !== undefined) {
56
+ if (typeof step.timeout !== 'number' || step.timeout <= 0) {
57
+ throw new Error(`Step '${step.id}': timeout must be a positive number (milliseconds)`);
58
+ }
59
+ // Warn about very large timeouts (> 24 hours)
60
+ if (step.timeout > 24 * 60 * 60 * 1000) {
61
+ console.warn(`Step '${step.id}': timeout is very large (${step.timeout}ms = ${Math.round(step.timeout / 3600000)}h)`);
62
+ }
63
+ }
64
+ }
65
+ /**
66
+ * Validate retry policy
67
+ *
68
+ * @param step - Step to validate
69
+ * @throws {Error} If retry policy invalid
70
+ */
71
+ static validateRetryPolicy(step) {
72
+ if (step.retry) {
73
+ const { max, delay } = step.retry;
74
+ if (max < 0 || max > 10) {
75
+ throw new Error(`Step '${step.id}': retry.max must be between 0 and 10`);
76
+ }
77
+ if (delay !== undefined && delay < 0) {
78
+ throw new Error(`Step '${step.id}': retry.delay must be positive (got ${delay}ms)`);
79
+ }
80
+ }
81
+ }
82
+ /**
83
+ * Validate step dependencies exist
84
+ *
85
+ * @param step - Step to validate
86
+ * @param availableSteps - Set of all step IDs
87
+ * @throws {Error} If dependency doesn't exist
88
+ */
89
+ static validateDependencies(step, availableSteps) {
90
+ for (const depId of step.needs) {
91
+ if (!availableSteps.has(depId)) {
92
+ throw new Error(`Step '${step.id}' depends on unknown step '${depId}'`);
93
+ }
94
+ // Check for self-dependency
95
+ if (depId === step.id) {
96
+ throw new Error(`Step '${step.id}' cannot depend on itself`);
97
+ }
98
+ }
99
+ }
100
+ /**
101
+ * Validate variable references in step inputs
102
+ *
103
+ * @param step - Step to validate
104
+ * @param availableSteps - Set of all step IDs
105
+ * @throws {Error} If variable references unknown step
106
+ */
107
+ static validateVariableReferences(step, availableSteps) {
108
+ try {
109
+ VariableResolver.validateStepReferences(step.input, availableSteps);
110
+ }
111
+ catch (error) {
112
+ if (error instanceof Error) {
113
+ throw new Error(`Step '${step.id}': ${error.message}`);
114
+ }
115
+ throw error;
116
+ }
117
+ }
118
+ /**
119
+ * Validate adapter-specific requirements
120
+ *
121
+ * @param step - Step to validate
122
+ * @throws {Error} If adapter requirements not met
123
+ */
124
+ static validateAdapterRequirements(step) {
125
+ switch (step.adapter) {
126
+ case 'http':
127
+ this.validateHttpAdapter(step);
128
+ break;
129
+ case 'shell':
130
+ this.validateShellAdapter(step);
131
+ break;
132
+ case 'cli':
133
+ this.validateCliAdapter(step);
134
+ break;
135
+ // Add more adapter validations as needed
136
+ }
137
+ }
138
+ /**
139
+ * Validate HTTP adapter requirements
140
+ */
141
+ static validateHttpAdapter(step) {
142
+ const required = ['url'];
143
+ for (const field of required) {
144
+ if (!step.input[field]) {
145
+ throw new Error(`Step '${step.id}' (http adapter): missing required input '${field}'`);
146
+ }
147
+ }
148
+ }
149
+ /**
150
+ * Validate shell adapter requirements
151
+ */
152
+ static validateShellAdapter(step) {
153
+ if (!step.input.command && !step.input.script) {
154
+ throw new Error(`Step '${step.id}' (shell adapter): must provide either 'command' or 'script'`);
155
+ }
156
+ }
157
+ /**
158
+ * Validate CLI adapter requirements
159
+ */
160
+ static validateCliAdapter(step) {
161
+ if (!step.input.command) {
162
+ throw new Error(`Step '${step.id}' (cli adapter): missing required input 'command'`);
163
+ }
164
+ }
165
+ /**
166
+ * Check if step has any conditional execution
167
+ *
168
+ * @param step - Step to check
169
+ * @returns True if step has 'when' condition
170
+ */
171
+ static isConditional(step) {
172
+ return !!step.when;
173
+ }
174
+ /**
175
+ * Check if step is retryable
176
+ *
177
+ * @param step - Step to check
178
+ * @returns True if step has retry policy configured
179
+ */
180
+ static isRetryable(step) {
181
+ return !!step.retry && step.retry.max > 0;
182
+ }
183
+ }
184
+ //# sourceMappingURL=StepGuard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepGuard.js","sourceRoot":"","sources":["../../src/guards/StepGuard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Workflow Guard
3
+ *
4
+ * Validates workflow-level concerns:
5
+ * - Circular dependency detection
6
+ * - Step dependency validation
7
+ * - Workflow structure validation
8
+ *
9
+ * @module guards
10
+ */
11
+ import type { ParsedStep } from '../parser/StepParser.js';
12
+ /**
13
+ * Workflow validation guard
14
+ */
15
+ export declare class WorkflowGuard {
16
+ /**
17
+ * Validate entire workflow structure
18
+ *
19
+ * @param steps - Array of workflow steps
20
+ * @throws {Error} If validation fails
21
+ */
22
+ static validate(steps: ParsedStep[]): void;
23
+ /**
24
+ * Validate all step IDs are unique
25
+ *
26
+ * @param steps - Array of workflow steps
27
+ * @throws {Error} If duplicate IDs found
28
+ */
29
+ private static validateStepIds;
30
+ /**
31
+ * Validate all step dependencies exist
32
+ *
33
+ * @param steps - Array of workflow steps
34
+ * @throws {Error} If dependency references non-existent step
35
+ */
36
+ private static validateDependencies;
37
+ /**
38
+ * Detect circular dependencies in workflow
39
+ *
40
+ * Uses depth-first search with cycle detection.
41
+ *
42
+ * @param steps - Array of workflow steps
43
+ * @throws {Error} If circular dependency detected
44
+ */
45
+ private static detectCircularDependencies;
46
+ /**
47
+ * Calculate topological order (execution order respecting dependencies)
48
+ *
49
+ * @param steps - Array of workflow steps
50
+ * @returns Steps ordered by dependencies
51
+ * @throws {Error} If circular dependency exists
52
+ */
53
+ static getExecutionOrder(steps: ParsedStep[]): ParsedStep[];
54
+ /**
55
+ * Get all steps that depend on a given step
56
+ *
57
+ * @param stepId - Step ID to check
58
+ * @param steps - Array of workflow steps
59
+ * @returns Array of step IDs that depend on the given step
60
+ */
61
+ static getDependents(stepId: string, steps: ParsedStep[]): string[];
62
+ /**
63
+ * Get all dependencies of a step (recursive)
64
+ *
65
+ * @param stepId - Step ID to check
66
+ * @param steps - Array of workflow steps
67
+ * @returns Set of all transitive dependencies
68
+ */
69
+ static getAllDependencies(stepId: string, steps: ParsedStep[]): Set<string>;
70
+ }
71
+ //# sourceMappingURL=WorkflowGuard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowGuard.d.ts","sourceRoot":"","sources":["../../src/guards/WorkflowGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,qBAAa,aAAa;IACxB;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI;IAM1C;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAW9B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAcnC;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;IA4CzC;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE;IA0D3D;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE;IAMnE;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;CAmB5E"}
@@ -0,0 +1,187 @@
1
+ /**
2
+ * Workflow Guard
3
+ *
4
+ * Validates workflow-level concerns:
5
+ * - Circular dependency detection
6
+ * - Step dependency validation
7
+ * - Workflow structure validation
8
+ *
9
+ * @module guards
10
+ */
11
+ /**
12
+ * Workflow validation guard
13
+ */
14
+ export class WorkflowGuard {
15
+ /**
16
+ * Validate entire workflow structure
17
+ *
18
+ * @param steps - Array of workflow steps
19
+ * @throws {Error} If validation fails
20
+ */
21
+ static validate(steps) {
22
+ this.validateStepIds(steps);
23
+ this.validateDependencies(steps);
24
+ this.detectCircularDependencies(steps);
25
+ }
26
+ /**
27
+ * Validate all step IDs are unique
28
+ *
29
+ * @param steps - Array of workflow steps
30
+ * @throws {Error} If duplicate IDs found
31
+ */
32
+ static validateStepIds(steps) {
33
+ const ids = steps.map(s => s.id);
34
+ const duplicates = ids.filter((id, index) => ids.indexOf(id) !== index);
35
+ if (duplicates.length > 0) {
36
+ throw new Error(`Duplicate step IDs found: ${[...new Set(duplicates)].join(', ')}`);
37
+ }
38
+ }
39
+ /**
40
+ * Validate all step dependencies exist
41
+ *
42
+ * @param steps - Array of workflow steps
43
+ * @throws {Error} If dependency references non-existent step
44
+ */
45
+ static validateDependencies(steps) {
46
+ const stepIds = new Set(steps.map(s => s.id));
47
+ for (const step of steps) {
48
+ for (const depId of step.needs) {
49
+ if (!stepIds.has(depId)) {
50
+ throw new Error(`Step '${step.id}' depends on non-existent step '${depId}'`);
51
+ }
52
+ }
53
+ }
54
+ }
55
+ /**
56
+ * Detect circular dependencies in workflow
57
+ *
58
+ * Uses depth-first search with cycle detection.
59
+ *
60
+ * @param steps - Array of workflow steps
61
+ * @throws {Error} If circular dependency detected
62
+ */
63
+ static detectCircularDependencies(steps) {
64
+ // Build adjacency map
65
+ const graph = new Map();
66
+ for (const step of steps) {
67
+ graph.set(step.id, step.needs);
68
+ }
69
+ // Track visited nodes during DFS
70
+ const visiting = new Set();
71
+ const visited = new Set();
72
+ const dfs = (stepId, path) => {
73
+ if (visiting.has(stepId)) {
74
+ // Found cycle
75
+ const cycleStart = path.indexOf(stepId);
76
+ const cycle = [...path.slice(cycleStart), stepId];
77
+ throw new Error(`Circular dependency detected: ${cycle.join(' -> ')}`);
78
+ }
79
+ if (visited.has(stepId)) {
80
+ return; // Already processed
81
+ }
82
+ visiting.add(stepId);
83
+ const dependencies = graph.get(stepId) || [];
84
+ for (const depId of dependencies) {
85
+ dfs(depId, [...path, stepId]);
86
+ }
87
+ visiting.delete(stepId);
88
+ visited.add(stepId);
89
+ };
90
+ // Check from each step
91
+ for (const step of steps) {
92
+ if (!visited.has(step.id)) {
93
+ dfs(step.id, []);
94
+ }
95
+ }
96
+ }
97
+ /**
98
+ * Calculate topological order (execution order respecting dependencies)
99
+ *
100
+ * @param steps - Array of workflow steps
101
+ * @returns Steps ordered by dependencies
102
+ * @throws {Error} If circular dependency exists
103
+ */
104
+ static getExecutionOrder(steps) {
105
+ // Build adjacency map and in-degree count
106
+ const graph = new Map();
107
+ const inDegree = new Map();
108
+ const stepMap = new Map();
109
+ for (const step of steps) {
110
+ stepMap.set(step.id, step);
111
+ graph.set(step.id, step.needs);
112
+ inDegree.set(step.id, 0);
113
+ }
114
+ // Count in-degrees
115
+ for (const step of steps) {
116
+ for (const depId of step.needs) {
117
+ inDegree.set(depId, (inDegree.get(depId) || 0) + 1);
118
+ }
119
+ }
120
+ // Kahn's algorithm for topological sort
121
+ const queue = [];
122
+ const result = [];
123
+ // Start with nodes that have no dependencies
124
+ for (const [stepId, degree] of inDegree.entries()) {
125
+ if (degree === 0) {
126
+ queue.push(stepId);
127
+ }
128
+ }
129
+ while (queue.length > 0) {
130
+ const stepId = queue.shift();
131
+ const step = stepMap.get(stepId);
132
+ result.push(step);
133
+ // Process dependents
134
+ for (const [otherId, deps] of graph.entries()) {
135
+ if (deps.includes(stepId)) {
136
+ const newDegree = (inDegree.get(otherId) || 0) - 1;
137
+ inDegree.set(otherId, newDegree);
138
+ if (newDegree === 0) {
139
+ queue.push(otherId);
140
+ }
141
+ }
142
+ }
143
+ }
144
+ // Check if all steps were processed
145
+ if (result.length !== steps.length) {
146
+ throw new Error('Circular dependency detected - cannot determine execution order');
147
+ }
148
+ return result;
149
+ }
150
+ /**
151
+ * Get all steps that depend on a given step
152
+ *
153
+ * @param stepId - Step ID to check
154
+ * @param steps - Array of workflow steps
155
+ * @returns Array of step IDs that depend on the given step
156
+ */
157
+ static getDependents(stepId, steps) {
158
+ return steps
159
+ .filter(step => step.needs.includes(stepId))
160
+ .map(step => step.id);
161
+ }
162
+ /**
163
+ * Get all dependencies of a step (recursive)
164
+ *
165
+ * @param stepId - Step ID to check
166
+ * @param steps - Array of workflow steps
167
+ * @returns Set of all transitive dependencies
168
+ */
169
+ static getAllDependencies(stepId, steps) {
170
+ const stepMap = new Map(steps.map(s => [s.id, s]));
171
+ const dependencies = new Set();
172
+ const collect = (id) => {
173
+ const step = stepMap.get(id);
174
+ if (!step)
175
+ return;
176
+ for (const depId of step.needs) {
177
+ if (!dependencies.has(depId)) {
178
+ dependencies.add(depId);
179
+ collect(depId);
180
+ }
181
+ }
182
+ };
183
+ collect(stepId);
184
+ return dependencies;
185
+ }
186
+ }
187
+ //# sourceMappingURL=WorkflowGuard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowGuard.js","sourceRoot":"","sources":["../../src/guards/WorkflowGuard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Guards Module
3
+ *
4
+ * Validation and safety guards for workflow execution.
5
+ */
6
+ export * from './WorkflowGuard.js';
7
+ export * from './StepGuard.js';
8
+ export * from './ResourceGuard.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guards/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Guards Module
3
+ *
4
+ * Validation and safety guards for workflow execution.
5
+ */
6
+ export * from './WorkflowGuard.js';
7
+ export * from './StepGuard.js';
8
+ export * from './ResourceGuard.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/guards/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,114 @@
1
+ import type { LifecycleHook, WorkflowHookContext, StepHookContext, HookResult } from './LifecycleHooks.js';
2
+ /**
3
+ * HookManager - Manages and executes lifecycle hooks
4
+ *
5
+ * Responsibilities:
6
+ * - Register user-defined hooks
7
+ * - Execute hooks at appropriate lifecycle moments
8
+ * - Handle hook errors gracefully
9
+ * - Maintain hook execution order
10
+ *
11
+ * Design principles:
12
+ * - Hooks run sequentially (not parallel) for predictability
13
+ * - Hook errors are isolated - one failing hook doesn't break the workflow
14
+ * - Hooks can be async (awaited)
15
+ * - Hook failures are logged but don't stop execution (unless configured)
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * const manager = new HookManager();
20
+ *
21
+ * manager.register({
22
+ * async afterStep(ctx) {
23
+ * console.log('Step done:', ctx.stepName);
24
+ * }
25
+ * });
26
+ *
27
+ * await manager.run('afterStep', stepContext);
28
+ * ```
29
+ */
30
+ export declare class HookManager {
31
+ private hooks;
32
+ private failOnHookError;
33
+ constructor(options?: {
34
+ failOnHookError?: boolean;
35
+ });
36
+ /**
37
+ * Register a lifecycle hook
38
+ *
39
+ * @param hook - The hook implementation
40
+ */
41
+ register(hook: LifecycleHook): void;
42
+ /**
43
+ * Register multiple hooks at once
44
+ *
45
+ * @param hooks - Array of hook implementations
46
+ */
47
+ registerMany(hooks: LifecycleHook[]): void;
48
+ /**
49
+ * Remove a specific hook
50
+ *
51
+ * @param hook - The hook to remove
52
+ */
53
+ unregister(hook: LifecycleHook): void;
54
+ /**
55
+ * Clear all registered hooks
56
+ */
57
+ clear(): void;
58
+ /**
59
+ * Execute a specific hook type for all registered hooks
60
+ *
61
+ * @param type - The hook method name to execute
62
+ * @param ctx - Context to pass to the hook
63
+ * @param error - Optional error (for onError hook)
64
+ * @returns Array of hook results
65
+ */
66
+ run(type: keyof LifecycleHook, ctx: WorkflowHookContext | StepHookContext, error?: Error): Promise<HookResult[]>;
67
+ /**
68
+ * Execute beforeWorkflow hooks
69
+ */
70
+ runBeforeWorkflow(ctx: WorkflowHookContext): Promise<HookResult[]>;
71
+ /**
72
+ * Execute afterWorkflow hooks
73
+ */
74
+ runAfterWorkflow(ctx: WorkflowHookContext): Promise<HookResult[]>;
75
+ /**
76
+ * Execute beforeStep hooks
77
+ */
78
+ runBeforeStep(ctx: StepHookContext): Promise<HookResult[]>;
79
+ /**
80
+ * Execute afterStep hooks
81
+ */
82
+ runAfterStep(ctx: StepHookContext): Promise<HookResult[]>;
83
+ /**
84
+ * Execute onError hooks
85
+ */
86
+ runOnError(ctx: WorkflowHookContext | StepHookContext, error: Error): Promise<HookResult[]>;
87
+ /**
88
+ * Execute onRetry hooks
89
+ */
90
+ runOnRetry(ctx: StepHookContext): Promise<HookResult[]>;
91
+ /**
92
+ * Execute onPause hooks
93
+ */
94
+ runOnPause(ctx: WorkflowHookContext): Promise<HookResult[]>;
95
+ /**
96
+ * Execute onResume hooks
97
+ */
98
+ runOnResume(ctx: WorkflowHookContext): Promise<HookResult[]>;
99
+ /**
100
+ * Get count of registered hooks
101
+ */
102
+ count(): number;
103
+ /**
104
+ * Check if any hooks are registered
105
+ */
106
+ hasHooks(): boolean;
107
+ /**
108
+ * Get list of hook types that have implementations
109
+ *
110
+ * @returns Array of hook type names that are implemented
111
+ */
112
+ getImplementedHooks(): (keyof LifecycleHook)[];
113
+ }
114
+ //# sourceMappingURL=HookManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HookManager.d.ts","sourceRoot":"","sources":["../../src/hooks/HookManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,UAAU,EACb,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,eAAe,CAAkB;gBAE7B,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE;IAInD;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAInC;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI;IAI1C;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAOrC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;;;;OAOG;IACG,GAAG,CACL,IAAI,EAAE,MAAM,aAAa,EACzB,GAAG,EAAE,mBAAmB,GAAG,eAAe,EAC1C,KAAK,CAAC,EAAE,KAAK,GACd,OAAO,CAAC,UAAU,EAAE,CAAC;IA4CxB;;OAEG;IACG,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIxE;;OAEG;IACG,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIvE;;OAEG;IACG,aAAa,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIhE;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAI/D;;OAEG;IACG,UAAU,CACZ,GAAG,EAAE,mBAAmB,GAAG,eAAe,EAC1C,KAAK,EAAE,KAAK,GACb,OAAO,CAAC,UAAU,EAAE,CAAC;IAIxB;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAI7D;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIjE;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIlE;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;;;OAIG;IACH,mBAAmB,IAAI,CAAC,MAAM,aAAa,CAAC,EAAE;CAUjD"}