@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,246 @@
1
+ /**
2
+ * Failure Strategy
3
+ *
4
+ * Defines how to handle step failures in workflow execution.
5
+ * Controls failure propagation and workflow continuation behavior.
6
+ *
7
+ * @module automation
8
+ */
9
+ /**
10
+ * Failure strategy for workflow execution
11
+ */
12
+ export class FailureStrategy {
13
+ config;
14
+ failureCount = 0;
15
+ constructor(config) {
16
+ this.config = {
17
+ type: config.type,
18
+ allowPartialSuccess: config.allowPartialSuccess ?? false,
19
+ maxFailures: config.maxFailures ?? Infinity,
20
+ criticalSteps: config.criticalSteps ?? [],
21
+ onFailure: config.onFailure ?? (() => { }),
22
+ };
23
+ this.validateConfig();
24
+ }
25
+ /**
26
+ * Decide what to do after a step failure
27
+ *
28
+ * @param stepId - ID of failed step
29
+ * @param error - Error that caused failure
30
+ * @param totalSteps - Total number of steps
31
+ * @param completedSteps - Number of completed steps
32
+ * @returns Failure decision
33
+ */
34
+ async decide(stepId, error, _totalSteps, completedSteps) {
35
+ this.failureCount++;
36
+ // Critical step failure = always abort
37
+ if (this.isCriticalStep(stepId)) {
38
+ await this.executeCleanup(stepId, error);
39
+ return {
40
+ continueWorkflow: false,
41
+ runCleanup: true,
42
+ skipDependentSteps: true,
43
+ reason: `Critical step "${stepId}" failed`,
44
+ finalStatus: 'failed',
45
+ };
46
+ }
47
+ // Max failures exceeded = abort
48
+ if (this.failureCount > this.config.maxFailures) {
49
+ await this.executeCleanup(stepId, error);
50
+ return {
51
+ continueWorkflow: false,
52
+ runCleanup: true,
53
+ skipDependentSteps: true,
54
+ reason: `Maximum failures (${this.config.maxFailures}) exceeded`,
55
+ finalStatus: this.config.allowPartialSuccess && completedSteps > 0
56
+ ? 'partial'
57
+ : 'failed',
58
+ };
59
+ }
60
+ // Strategy-specific decision
61
+ switch (this.config.type) {
62
+ case 'abort':
63
+ await this.executeCleanup(stepId, error);
64
+ return {
65
+ continueWorkflow: false,
66
+ runCleanup: true,
67
+ skipDependentSteps: true,
68
+ reason: 'Abort strategy - stop on failure',
69
+ finalStatus: this.config.allowPartialSuccess && completedSteps > 0
70
+ ? 'partial'
71
+ : 'failed',
72
+ };
73
+ case 'continue':
74
+ return {
75
+ continueWorkflow: true,
76
+ runCleanup: false,
77
+ skipDependentSteps: false,
78
+ reason: 'Continue strategy - proceed with remaining steps',
79
+ };
80
+ case 'skipDependent':
81
+ return {
82
+ continueWorkflow: true,
83
+ runCleanup: false,
84
+ skipDependentSteps: true,
85
+ reason: 'Skip dependent strategy - skip steps depending on failed step',
86
+ };
87
+ default:
88
+ throw new Error(`Unknown failure strategy: ${this.config.type}`);
89
+ }
90
+ }
91
+ /**
92
+ * Check if step is critical
93
+ *
94
+ * @param stepId - Step ID to check
95
+ * @returns True if critical
96
+ */
97
+ isCriticalStep(stepId) {
98
+ return this.config.criticalSteps.includes(stepId);
99
+ }
100
+ /**
101
+ * Get current failure count
102
+ */
103
+ getFailureCount() {
104
+ return this.failureCount;
105
+ }
106
+ /**
107
+ * Reset failure count (for new workflow execution)
108
+ */
109
+ reset() {
110
+ this.failureCount = 0;
111
+ }
112
+ /**
113
+ * Get strategy type
114
+ */
115
+ getType() {
116
+ return this.config.type;
117
+ }
118
+ /**
119
+ * Check if partial success is allowed
120
+ */
121
+ allowsPartialSuccess() {
122
+ return this.config.allowPartialSuccess;
123
+ }
124
+ /**
125
+ * Execute cleanup handler
126
+ */
127
+ async executeCleanup(stepId, error) {
128
+ try {
129
+ await this.config.onFailure(stepId, error);
130
+ }
131
+ catch (cleanupError) {
132
+ // Log cleanup error but don't throw
133
+ console.error(`Cleanup failed for step "${stepId}":`, cleanupError);
134
+ }
135
+ }
136
+ /**
137
+ * Validate configuration
138
+ */
139
+ validateConfig() {
140
+ if (this.config.maxFailures < 1) {
141
+ throw new Error(`Max failures must be >= 1, got: ${this.config.maxFailures}`);
142
+ }
143
+ }
144
+ }
145
+ /**
146
+ * Predefined failure strategies
147
+ */
148
+ export const FailureStrategies = {
149
+ /**
150
+ * Abort workflow on first failure
151
+ */
152
+ abort: new FailureStrategy({
153
+ type: 'abort',
154
+ allowPartialSuccess: false,
155
+ }),
156
+ /**
157
+ * Abort but allow partial success
158
+ */
159
+ abortWithPartial: new FailureStrategy({
160
+ type: 'abort',
161
+ allowPartialSuccess: true,
162
+ }),
163
+ /**
164
+ * Continue executing all steps regardless of failures
165
+ */
166
+ continue: new FailureStrategy({
167
+ type: 'continue',
168
+ allowPartialSuccess: true,
169
+ }),
170
+ /**
171
+ * Skip dependent steps on failure
172
+ */
173
+ skipDependent: new FailureStrategy({
174
+ type: 'skipDependent',
175
+ allowPartialSuccess: true,
176
+ }),
177
+ /**
178
+ * Abort after 3 failures
179
+ */
180
+ maxThreeFailures: new FailureStrategy({
181
+ type: 'continue',
182
+ maxFailures: 3,
183
+ allowPartialSuccess: true,
184
+ }),
185
+ };
186
+ /**
187
+ * Create failure strategy from workflow step configuration
188
+ *
189
+ * @param continueOnError - Continue on error flag from step
190
+ * @param criticalSteps - List of critical step IDs
191
+ * @returns Failure strategy instance
192
+ */
193
+ export function createFailureStrategyFromStep(continueOnError, criticalSteps) {
194
+ if (continueOnError) {
195
+ return new FailureStrategy({
196
+ type: 'continue',
197
+ allowPartialSuccess: true,
198
+ criticalSteps,
199
+ });
200
+ }
201
+ return new FailureStrategy({
202
+ type: 'abort',
203
+ allowPartialSuccess: false,
204
+ criticalSteps,
205
+ });
206
+ }
207
+ /**
208
+ * Failure strategy builder for fluent API
209
+ */
210
+ export class FailureStrategyBuilder {
211
+ type = 'abort';
212
+ allowPartialSuccess = false;
213
+ maxFailures;
214
+ criticalSteps = [];
215
+ failureHandler;
216
+ withType(type) {
217
+ this.type = type;
218
+ return this;
219
+ }
220
+ withPartialSuccess(allow = true) {
221
+ this.allowPartialSuccess = allow;
222
+ return this;
223
+ }
224
+ withMaxFailures(max) {
225
+ this.maxFailures = max;
226
+ return this;
227
+ }
228
+ withCriticalSteps(...stepIds) {
229
+ this.criticalSteps = stepIds;
230
+ return this;
231
+ }
232
+ onFailure(handler) {
233
+ this.failureHandler = handler;
234
+ return this;
235
+ }
236
+ build() {
237
+ return new FailureStrategy({
238
+ type: this.type,
239
+ allowPartialSuccess: this.allowPartialSuccess,
240
+ maxFailures: this.maxFailures,
241
+ criticalSteps: this.criticalSteps,
242
+ onFailure: this.failureHandler,
243
+ });
244
+ }
245
+ }
246
+ //# sourceMappingURL=FailureStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FailureStrategy.js","sourceRoot":"","sources":["../../src/automation/FailureStrategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Retry Policy
3
+ *
4
+ * Defines when and how to retry failed operations.
5
+ * Includes attempt limits, backoff strategies, and retry conditions.
6
+ *
7
+ * @module automation
8
+ */
9
+ import { BackoffStrategy, type BackoffType } from './BackoffStrategy.js';
10
+ /**
11
+ * Retry condition - determines if error is retryable
12
+ */
13
+ export type RetryCondition = (error: Error, attempt: number) => boolean;
14
+ /**
15
+ * Retry policy configuration
16
+ */
17
+ export interface RetryPolicyConfig {
18
+ /** Maximum retry attempts (0 = no retries) */
19
+ maxAttempts: number;
20
+ /** Backoff strategy for delays between retries */
21
+ backoffStrategy: BackoffStrategy;
22
+ /** Custom retry condition (default: retry all errors) */
23
+ retryCondition?: RetryCondition;
24
+ /** Specific error types to retry (if provided, only these are retried) */
25
+ retryableErrors?: Array<new (...args: any[]) => Error>;
26
+ /** Error messages to match for retry (regex patterns) */
27
+ retryableMessages?: RegExp[];
28
+ /** Abort retry on specific errors (overrides other conditions) */
29
+ abortOn?: Array<new (...args: any[]) => Error>;
30
+ }
31
+ /**
32
+ * Retry policy for operation execution
33
+ */
34
+ export declare class RetryPolicy {
35
+ private readonly config;
36
+ constructor(config: RetryPolicyConfig);
37
+ /**
38
+ * Check if error should be retried
39
+ *
40
+ * @param error - Error that occurred
41
+ * @param attempt - Current attempt number (1-indexed)
42
+ * @returns True if should retry
43
+ */
44
+ shouldRetry(error: Error, attempt: number): boolean;
45
+ /**
46
+ * Check if error should abort retries immediately
47
+ *
48
+ * @param error - Error to check
49
+ * @returns True if should abort
50
+ */
51
+ shouldAbort(error: Error): boolean;
52
+ /**
53
+ * Get delay for next retry attempt
54
+ *
55
+ * @param attempt - Current attempt number (1-indexed)
56
+ * @returns Delay in milliseconds
57
+ */
58
+ getDelay(attempt: number): number;
59
+ /**
60
+ * Get maximum number of attempts
61
+ */
62
+ getMaxAttempts(): number;
63
+ /**
64
+ * Get backoff strategy
65
+ */
66
+ getBackoffStrategy(): BackoffStrategy;
67
+ /**
68
+ * Get estimated total retry time (worst case)
69
+ */
70
+ getEstimatedRetryTime(): number;
71
+ /**
72
+ * Validate configuration
73
+ */
74
+ private validateConfig;
75
+ }
76
+ /**
77
+ * Predefined retry policies
78
+ */
79
+ export declare const RetryPolicies: {
80
+ /**
81
+ * No retries
82
+ */
83
+ readonly none: RetryPolicy;
84
+ /**
85
+ * Standard retry (3 attempts, exponential backoff)
86
+ */
87
+ readonly standard: RetryPolicy;
88
+ /**
89
+ * Aggressive retry (5 attempts, fast exponential)
90
+ */
91
+ readonly aggressive: RetryPolicy;
92
+ /**
93
+ * Network retry (retry common network errors)
94
+ */
95
+ readonly network: RetryPolicy;
96
+ /**
97
+ * Immediate retry (retry once with no delay)
98
+ */
99
+ readonly immediate: RetryPolicy;
100
+ };
101
+ /**
102
+ * Create retry policy from workflow step configuration
103
+ *
104
+ * @param stepRetryConfig - Retry config from ParsedStep
105
+ * @returns Retry policy instance
106
+ */
107
+ export declare function createRetryPolicyFromStep(stepRetryConfig?: {
108
+ max: number;
109
+ backoff?: 'linear' | 'exponential';
110
+ delay?: number;
111
+ }): RetryPolicy;
112
+ /**
113
+ * Retry policy builder for fluent API
114
+ */
115
+ export declare class RetryPolicyBuilder {
116
+ private maxAttempts;
117
+ private backoffType;
118
+ private baseDelayMs;
119
+ private maxDelayMs?;
120
+ private retryCondition?;
121
+ private retryableErrors?;
122
+ private retryableMessages?;
123
+ private abortErrors?;
124
+ withMaxAttempts(max: number): this;
125
+ withBackoff(type: BackoffType, baseMs: number, maxMs?: number): this;
126
+ withCondition(condition: RetryCondition): this;
127
+ onErrors(...errors: Array<new (...args: any[]) => Error>): this;
128
+ onMessages(...patterns: RegExp[]): this;
129
+ abortOn(...errors: Array<new (...args: any[]) => Error>): this;
130
+ build(): RetryPolicy;
131
+ }
132
+ //# sourceMappingURL=RetryPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RetryPolicy.d.ts","sourceRoot":"","sources":["../../src/automation/RetryPolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IAEpB,kDAAkD;IAClD,eAAe,EAAE,eAAe,CAAC;IAEjC,yDAAyD;IACzD,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,0EAA0E;IAC1E,eAAe,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC;IAEvD,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B,kEAAkE;IAClE,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAE/B,MAAM,EAAE,iBAAiB;IAKrC;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAwCnD;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAQlC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIjC;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAO/B;;OAEG;IACH,OAAO,CAAC,cAAc;CAKvB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;IACxB;;OAEG;;IAMH;;OAEG;;IAUH;;OAEG;;IAUH;;OAEG;;IAkBH;;OAEG;;CAKK,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,eAAe,CAAC,EAAE;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,WAAW,CAgBd;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAuC;IAC/D,OAAO,CAAC,iBAAiB,CAAC,CAAW;IACrC,OAAO,CAAC,WAAW,CAAC,CAAuC;IAE3D,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKlC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAOpE,aAAa,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IAK9C,QAAQ,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,IAAI;IAK/D,UAAU,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAKvC,OAAO,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,IAAI;IAK9D,KAAK,IAAI,WAAW;CAcrB"}
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Retry Policy
3
+ *
4
+ * Defines when and how to retry failed operations.
5
+ * Includes attempt limits, backoff strategies, and retry conditions.
6
+ *
7
+ * @module automation
8
+ */
9
+ import { BackoffStrategy } from './BackoffStrategy.js';
10
+ /**
11
+ * Retry policy for operation execution
12
+ */
13
+ export class RetryPolicy {
14
+ config;
15
+ constructor(config) {
16
+ this.config = config;
17
+ this.validateConfig();
18
+ }
19
+ /**
20
+ * Check if error should be retried
21
+ *
22
+ * @param error - Error that occurred
23
+ * @param attempt - Current attempt number (1-indexed)
24
+ * @returns True if should retry
25
+ */
26
+ shouldRetry(error, attempt) {
27
+ // No more attempts available
28
+ if (attempt >= this.config.maxAttempts) {
29
+ return false;
30
+ }
31
+ // Check abort conditions first
32
+ if (this.shouldAbort(error)) {
33
+ return false;
34
+ }
35
+ // Check retryable error types
36
+ if (this.config.retryableErrors && this.config.retryableErrors.length > 0) {
37
+ const isRetryableType = this.config.retryableErrors.some(ErrorType => error instanceof ErrorType);
38
+ if (!isRetryableType) {
39
+ return false;
40
+ }
41
+ }
42
+ // Check retryable message patterns
43
+ if (this.config.retryableMessages && this.config.retryableMessages.length > 0) {
44
+ const hasRetryableMessage = this.config.retryableMessages.some(pattern => pattern.test(error.message));
45
+ if (!hasRetryableMessage) {
46
+ return false;
47
+ }
48
+ }
49
+ // Apply custom retry condition if provided
50
+ if (this.config.retryCondition) {
51
+ return this.config.retryCondition(error, attempt);
52
+ }
53
+ // Default: retry all errors (unless explicitly filtered above)
54
+ return true;
55
+ }
56
+ /**
57
+ * Check if error should abort retries immediately
58
+ *
59
+ * @param error - Error to check
60
+ * @returns True if should abort
61
+ */
62
+ shouldAbort(error) {
63
+ if (!this.config.abortOn || this.config.abortOn.length === 0) {
64
+ return false;
65
+ }
66
+ return this.config.abortOn.some(ErrorType => error instanceof ErrorType);
67
+ }
68
+ /**
69
+ * Get delay for next retry attempt
70
+ *
71
+ * @param attempt - Current attempt number (1-indexed)
72
+ * @returns Delay in milliseconds
73
+ */
74
+ getDelay(attempt) {
75
+ return this.config.backoffStrategy.calculateDelay(attempt);
76
+ }
77
+ /**
78
+ * Get maximum number of attempts
79
+ */
80
+ getMaxAttempts() {
81
+ return this.config.maxAttempts;
82
+ }
83
+ /**
84
+ * Get backoff strategy
85
+ */
86
+ getBackoffStrategy() {
87
+ return this.config.backoffStrategy;
88
+ }
89
+ /**
90
+ * Get estimated total retry time (worst case)
91
+ */
92
+ getEstimatedRetryTime() {
93
+ if (this.config.maxAttempts <= 1) {
94
+ return 0;
95
+ }
96
+ return this.config.backoffStrategy.getTotalDelay(this.config.maxAttempts - 1);
97
+ }
98
+ /**
99
+ * Validate configuration
100
+ */
101
+ validateConfig() {
102
+ if (this.config.maxAttempts < 0) {
103
+ throw new Error(`Max attempts must be >= 0, got: ${this.config.maxAttempts}`);
104
+ }
105
+ }
106
+ }
107
+ /**
108
+ * Predefined retry policies
109
+ */
110
+ export const RetryPolicies = {
111
+ /**
112
+ * No retries
113
+ */
114
+ none: new RetryPolicy({
115
+ maxAttempts: 1,
116
+ backoffStrategy: new BackoffStrategy({ type: 'fixed', baseDelayMs: 0 }),
117
+ }),
118
+ /**
119
+ * Standard retry (3 attempts, exponential backoff)
120
+ */
121
+ standard: new RetryPolicy({
122
+ maxAttempts: 3,
123
+ backoffStrategy: new BackoffStrategy({
124
+ type: 'exponential',
125
+ baseDelayMs: 1000,
126
+ maxDelayMs: 30000,
127
+ }),
128
+ }),
129
+ /**
130
+ * Aggressive retry (5 attempts, fast exponential)
131
+ */
132
+ aggressive: new RetryPolicy({
133
+ maxAttempts: 5,
134
+ backoffStrategy: new BackoffStrategy({
135
+ type: 'exponential',
136
+ baseDelayMs: 500,
137
+ maxDelayMs: 20000,
138
+ }),
139
+ }),
140
+ /**
141
+ * Network retry (retry common network errors)
142
+ */
143
+ network: new RetryPolicy({
144
+ maxAttempts: 4,
145
+ backoffStrategy: new BackoffStrategy({
146
+ type: 'exponential',
147
+ baseDelayMs: 1000,
148
+ maxDelayMs: 60000,
149
+ }),
150
+ retryableMessages: [
151
+ /ECONNREFUSED/,
152
+ /ENOTFOUND/,
153
+ /ETIMEDOUT/,
154
+ /ECONNRESET/,
155
+ /socket hang up/i,
156
+ /network timeout/i,
157
+ ],
158
+ }),
159
+ /**
160
+ * Immediate retry (retry once with no delay)
161
+ */
162
+ immediate: new RetryPolicy({
163
+ maxAttempts: 2,
164
+ backoffStrategy: new BackoffStrategy({ type: 'fixed', baseDelayMs: 0 }),
165
+ }),
166
+ };
167
+ /**
168
+ * Create retry policy from workflow step configuration
169
+ *
170
+ * @param stepRetryConfig - Retry config from ParsedStep
171
+ * @returns Retry policy instance
172
+ */
173
+ export function createRetryPolicyFromStep(stepRetryConfig) {
174
+ if (!stepRetryConfig || stepRetryConfig.max <= 1) {
175
+ return RetryPolicies.none;
176
+ }
177
+ const backoffType = stepRetryConfig.backoff || 'linear';
178
+ const baseDelayMs = stepRetryConfig.delay || 1000;
179
+ return new RetryPolicy({
180
+ maxAttempts: stepRetryConfig.max,
181
+ backoffStrategy: new BackoffStrategy({
182
+ type: backoffType,
183
+ baseDelayMs,
184
+ maxDelayMs: 60000, // Default 60s cap
185
+ }),
186
+ });
187
+ }
188
+ /**
189
+ * Retry policy builder for fluent API
190
+ */
191
+ export class RetryPolicyBuilder {
192
+ maxAttempts = 3;
193
+ backoffType = 'exponential';
194
+ baseDelayMs = 1000;
195
+ maxDelayMs;
196
+ retryCondition;
197
+ retryableErrors;
198
+ retryableMessages;
199
+ abortErrors;
200
+ withMaxAttempts(max) {
201
+ this.maxAttempts = max;
202
+ return this;
203
+ }
204
+ withBackoff(type, baseMs, maxMs) {
205
+ this.backoffType = type;
206
+ this.baseDelayMs = baseMs;
207
+ this.maxDelayMs = maxMs;
208
+ return this;
209
+ }
210
+ withCondition(condition) {
211
+ this.retryCondition = condition;
212
+ return this;
213
+ }
214
+ onErrors(...errors) {
215
+ this.retryableErrors = errors;
216
+ return this;
217
+ }
218
+ onMessages(...patterns) {
219
+ this.retryableMessages = patterns;
220
+ return this;
221
+ }
222
+ abortOn(...errors) {
223
+ this.abortErrors = errors;
224
+ return this;
225
+ }
226
+ build() {
227
+ return new RetryPolicy({
228
+ maxAttempts: this.maxAttempts,
229
+ backoffStrategy: new BackoffStrategy({
230
+ type: this.backoffType,
231
+ baseDelayMs: this.baseDelayMs,
232
+ maxDelayMs: this.maxDelayMs,
233
+ }),
234
+ retryCondition: this.retryCondition,
235
+ retryableErrors: this.retryableErrors,
236
+ retryableMessages: this.retryableMessages,
237
+ abortOn: this.abortErrors,
238
+ });
239
+ }
240
+ }
241
+ //# sourceMappingURL=RetryPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RetryPolicy.js","sourceRoot":"","sources":["../../src/automation/RetryPolicy.ts"],"names":[],"mappings":"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"}