@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,138 @@
1
+ /**
2
+ * Failure Handler
3
+ *
4
+ * Runtime executor for failure strategies in workflow execution.
5
+ * Handles failure decisions, cleanup, and error propagation.
6
+ *
7
+ * @module automation/runtime
8
+ */
9
+ import { FailureStrategy, type FailureDecision } from '../FailureStrategy.js';
10
+ /**
11
+ * Failure context for tracking execution state
12
+ */
13
+ export interface FailureContext {
14
+ /** ID of failed step */
15
+ stepId: string;
16
+ /** Error that caused failure */
17
+ error: Error;
18
+ /** Total steps in workflow */
19
+ totalSteps: number;
20
+ /** Number of completed steps */
21
+ completedSteps: number;
22
+ /** Number of failed steps so far */
23
+ failureCount: number;
24
+ /** Workflow execution ID */
25
+ executionId?: string;
26
+ }
27
+ /**
28
+ * Failure handling result
29
+ */
30
+ export interface FailureHandlingResult {
31
+ /** Failure decision */
32
+ decision: FailureDecision;
33
+ /** Cleanup completed successfully */
34
+ cleanupSuccess: boolean;
35
+ /** Error during cleanup (if any) */
36
+ cleanupError?: Error;
37
+ /** Steps to skip based on decision */
38
+ stepsToSkip: string[];
39
+ }
40
+ /**
41
+ * Failure event listeners
42
+ */
43
+ export interface FailureListeners {
44
+ /** Called before handling failure */
45
+ onBeforeHandle?: (context: FailureContext) => void | Promise<void>;
46
+ /** Called after decision is made */
47
+ onDecision?: (decision: FailureDecision, context: FailureContext) => void | Promise<void>;
48
+ /** Called before cleanup */
49
+ onBeforeCleanup?: (context: FailureContext) => void | Promise<void>;
50
+ /** Called after cleanup */
51
+ onAfterCleanup?: (success: boolean, context: FailureContext) => void | Promise<void>;
52
+ /** Called when workflow should abort */
53
+ onAbort?: (reason: string, context: FailureContext) => void | Promise<void>;
54
+ /** Called when workflow continues after failure */
55
+ onContinue?: (context: FailureContext) => void | Promise<void>;
56
+ }
57
+ /**
58
+ * Dependency information for skip decisions
59
+ */
60
+ export interface DependencyInfo {
61
+ /** Step ID to dependencies map */
62
+ stepDependencies: Map<string, string[]>;
63
+ /** Step ID to dependents map (reverse) */
64
+ stepDependents: Map<string, string[]>;
65
+ }
66
+ /**
67
+ * Failure handler for workflow execution
68
+ */
69
+ export declare class FailureHandler {
70
+ /**
71
+ * Handle step failure with strategy
72
+ *
73
+ * @param context - Failure context
74
+ * @param strategy - Failure strategy
75
+ * @param dependencyInfo - Dependency information for skip decisions
76
+ * @param listeners - Event listeners
77
+ * @returns Failure handling result
78
+ */
79
+ static handle(context: FailureContext, strategy: FailureStrategy, dependencyInfo?: DependencyInfo, listeners?: FailureListeners): Promise<FailureHandlingResult>;
80
+ /**
81
+ * Calculate which steps should be skipped based on failed step
82
+ * Uses dependency graph to find all dependent steps
83
+ *
84
+ * @param failedStepId - ID of failed step
85
+ * @param dependencyInfo - Dependency information
86
+ * @returns Array of step IDs to skip
87
+ */
88
+ private static calculateStepsToSkip;
89
+ /**
90
+ * Check if step should be skipped based on failure context
91
+ *
92
+ * @param stepId - Step to check
93
+ * @param skippedSteps - Set of steps that should be skipped
94
+ * @returns True if step should be skipped
95
+ */
96
+ static shouldSkipStep(stepId: string, skippedSteps: Set<string>): boolean;
97
+ /**
98
+ * Create enriched error with failure context
99
+ *
100
+ * @param originalError - Original error
101
+ * @param context - Failure context
102
+ * @param decision - Failure decision
103
+ * @returns Enriched error
104
+ */
105
+ static enrichError(originalError: Error, context: FailureContext, decision: FailureDecision): Error;
106
+ /**
107
+ * Build failure summary for logging/reporting
108
+ *
109
+ * @param context - Failure context
110
+ * @param decision - Failure decision
111
+ * @param result - Handling result
112
+ * @returns Formatted failure summary
113
+ */
114
+ static buildFailureSummary(context: FailureContext, decision: FailureDecision, result: FailureHandlingResult): string;
115
+ /**
116
+ * Determine final workflow status based on failures
117
+ *
118
+ * @param totalSteps - Total number of steps
119
+ * @param completedSteps - Number of completed steps
120
+ * @param failedSteps - Number of failed steps
121
+ * @param allowPartialSuccess - Whether partial success is allowed
122
+ * @returns Final workflow status
123
+ */
124
+ static determineFinalStatus(totalSteps: number, completedSteps: number, failedSteps: number, allowPartialSuccess: boolean): 'success' | 'failed' | 'partial';
125
+ /**
126
+ * Create failure context from step execution
127
+ *
128
+ * @param stepId - Step ID
129
+ * @param error - Error that occurred
130
+ * @param totalSteps - Total steps
131
+ * @param completedSteps - Completed steps
132
+ * @param failureCount - Current failure count
133
+ * @param executionId - Execution ID
134
+ * @returns Failure context
135
+ */
136
+ static createContext(stepId: string, error: Error, _totalSteps: number, completedSteps: number, failureCount: number, executionId?: string): FailureContext;
137
+ }
138
+ //# sourceMappingURL=FailureHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FailureHandler.d.ts","sourceRoot":"","sources":["../../../src/automation/runtime/FailureHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IAEf,gCAAgC;IAChC,KAAK,EAAE,KAAK,CAAC;IAEb,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IAEnB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IAEvB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IAErB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,uBAAuB;IACvB,QAAQ,EAAE,eAAe,CAAC;IAE1B,qCAAqC;IACrC,cAAc,EAAE,OAAO,CAAC;IAExB,oCAAoC;IACpC,YAAY,CAAC,EAAE,KAAK,CAAC;IAErB,sCAAsC;IACtC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE,oCAAoC;IACpC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1F,4BAA4B;IAC5B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE,2BAA2B;IAC3B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErF,wCAAwC;IACxC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E,mDAAmD;IACnD,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAExC,0CAA0C;IAC1C,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB;;;;;;;;OAQG;WACU,MAAM,CACjB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,eAAe,EACzB,cAAc,CAAC,EAAE,cAAc,EAC/B,SAAS,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,qBAAqB,CAAC;IAsDjC;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAuBnC;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO;IAIzE;;;;;;;OAOG;IACH,MAAM,CAAC,WAAW,CAChB,aAAa,EAAE,KAAK,EACpB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,eAAe,GACxB,KAAK;IAgBR;;;;;;;OAOG;IACH,MAAM,CAAC,mBAAmB,CACxB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,qBAAqB,GAC5B,MAAM;IAuBT;;;;;;;;OAQG;IACH,MAAM,CAAC,oBAAoB,CACzB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,OAAO,GAC3B,SAAS,GAAG,QAAQ,GAAG,SAAS;IA2BnC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,cAAc;CAUlB"}
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Failure Handler
3
+ *
4
+ * Runtime executor for failure strategies in workflow execution.
5
+ * Handles failure decisions, cleanup, and error propagation.
6
+ *
7
+ * @module automation/runtime
8
+ */
9
+ /**
10
+ * Failure handler for workflow execution
11
+ */
12
+ export class FailureHandler {
13
+ /**
14
+ * Handle step failure with strategy
15
+ *
16
+ * @param context - Failure context
17
+ * @param strategy - Failure strategy
18
+ * @param dependencyInfo - Dependency information for skip decisions
19
+ * @param listeners - Event listeners
20
+ * @returns Failure handling result
21
+ */
22
+ static async handle(context, strategy, dependencyInfo, listeners) {
23
+ // Call before handle listener
24
+ await listeners?.onBeforeHandle?.(context);
25
+ // Get failure decision from strategy
26
+ const decision = await strategy.decide(context.stepId, context.error, context.totalSteps, context.completedSteps);
27
+ // Call decision listener
28
+ await listeners?.onDecision?.(decision, context);
29
+ // Execute cleanup if needed
30
+ let cleanupSuccess = true;
31
+ let cleanupError;
32
+ if (decision.runCleanup) {
33
+ await listeners?.onBeforeCleanup?.(context);
34
+ try {
35
+ // Strategy already runs onFailure during decide()
36
+ // This is additional cleanup if needed
37
+ cleanupSuccess = true;
38
+ }
39
+ catch (error) {
40
+ cleanupSuccess = false;
41
+ cleanupError = error instanceof Error ? error : new Error(String(error));
42
+ }
43
+ await listeners?.onAfterCleanup?.(cleanupSuccess, context);
44
+ }
45
+ // Determine steps to skip
46
+ const stepsToSkip = decision.skipDependentSteps && dependencyInfo
47
+ ? this.calculateStepsToSkip(context.stepId, dependencyInfo)
48
+ : [];
49
+ // Call appropriate listener
50
+ if (!decision.continueWorkflow) {
51
+ await listeners?.onAbort?.(decision.reason, context);
52
+ }
53
+ else {
54
+ await listeners?.onContinue?.(context);
55
+ }
56
+ return {
57
+ decision,
58
+ cleanupSuccess,
59
+ cleanupError,
60
+ stepsToSkip,
61
+ };
62
+ }
63
+ /**
64
+ * Calculate which steps should be skipped based on failed step
65
+ * Uses dependency graph to find all dependent steps
66
+ *
67
+ * @param failedStepId - ID of failed step
68
+ * @param dependencyInfo - Dependency information
69
+ * @returns Array of step IDs to skip
70
+ */
71
+ static calculateStepsToSkip(failedStepId, dependencyInfo) {
72
+ const toSkip = new Set();
73
+ const queue = [failedStepId];
74
+ // BFS to find all dependent steps
75
+ while (queue.length > 0) {
76
+ const stepId = queue.shift();
77
+ const dependents = dependencyInfo.stepDependents.get(stepId) || [];
78
+ for (const dependent of dependents) {
79
+ if (!toSkip.has(dependent)) {
80
+ toSkip.add(dependent);
81
+ queue.push(dependent);
82
+ }
83
+ }
84
+ }
85
+ return Array.from(toSkip);
86
+ }
87
+ /**
88
+ * Check if step should be skipped based on failure context
89
+ *
90
+ * @param stepId - Step to check
91
+ * @param skippedSteps - Set of steps that should be skipped
92
+ * @returns True if step should be skipped
93
+ */
94
+ static shouldSkipStep(stepId, skippedSteps) {
95
+ return skippedSteps.has(stepId);
96
+ }
97
+ /**
98
+ * Create enriched error with failure context
99
+ *
100
+ * @param originalError - Original error
101
+ * @param context - Failure context
102
+ * @param decision - Failure decision
103
+ * @returns Enriched error
104
+ */
105
+ static enrichError(originalError, context, decision) {
106
+ const enriched = new Error(originalError.message);
107
+ enriched.name = originalError.name;
108
+ enriched.stack = originalError.stack;
109
+ enriched.failureContext = {
110
+ stepId: context.stepId,
111
+ executionId: context.executionId,
112
+ failureCount: context.failureCount,
113
+ decision: decision.reason,
114
+ continueWorkflow: decision.continueWorkflow,
115
+ };
116
+ return enriched;
117
+ }
118
+ /**
119
+ * Build failure summary for logging/reporting
120
+ *
121
+ * @param context - Failure context
122
+ * @param decision - Failure decision
123
+ * @param result - Handling result
124
+ * @returns Formatted failure summary
125
+ */
126
+ static buildFailureSummary(context, decision, result) {
127
+ const lines = [
128
+ `❌ Step Failure: ${context.stepId}`,
129
+ ` Error: ${context.error.message}`,
130
+ ` Decision: ${decision.reason}`,
131
+ ` Continue: ${decision.continueWorkflow ? 'Yes' : 'No'}`,
132
+ ];
133
+ if (result.stepsToSkip.length > 0) {
134
+ lines.push(` Skipping: ${result.stepsToSkip.join(', ')}`);
135
+ }
136
+ if (decision.runCleanup) {
137
+ lines.push(` Cleanup: ${result.cleanupSuccess ? '✅' : '❌'}`);
138
+ }
139
+ if (decision.finalStatus) {
140
+ lines.push(` Final Status: ${decision.finalStatus}`);
141
+ }
142
+ return lines.join('\n');
143
+ }
144
+ /**
145
+ * Determine final workflow status based on failures
146
+ *
147
+ * @param totalSteps - Total number of steps
148
+ * @param completedSteps - Number of completed steps
149
+ * @param failedSteps - Number of failed steps
150
+ * @param allowPartialSuccess - Whether partial success is allowed
151
+ * @returns Final workflow status
152
+ */
153
+ static determineFinalStatus(totalSteps, completedSteps, failedSteps, allowPartialSuccess) {
154
+ // All steps completed successfully
155
+ if (failedSteps === 0) {
156
+ return 'success';
157
+ }
158
+ // No steps completed at all
159
+ if (completedSteps === 0) {
160
+ return 'failed';
161
+ }
162
+ // Calculate completion ratio for better status decision
163
+ const completionRatio = completedSteps / totalSteps;
164
+ const failureRatio = failedSteps / totalSteps;
165
+ // If partial success is allowed and we have meaningful completion
166
+ if (allowPartialSuccess && completedSteps > 0) {
167
+ // Consider it still 'failed' if less than 50% completed
168
+ // but mark as 'partial' if majority succeeded
169
+ if (completionRatio >= 0.5 && failureRatio < 0.5) {
170
+ return 'partial';
171
+ }
172
+ }
173
+ return 'failed';
174
+ }
175
+ /**
176
+ * Create failure context from step execution
177
+ *
178
+ * @param stepId - Step ID
179
+ * @param error - Error that occurred
180
+ * @param totalSteps - Total steps
181
+ * @param completedSteps - Completed steps
182
+ * @param failureCount - Current failure count
183
+ * @param executionId - Execution ID
184
+ * @returns Failure context
185
+ */
186
+ static createContext(stepId, error, _totalSteps, completedSteps, failureCount, executionId) {
187
+ return {
188
+ stepId,
189
+ error,
190
+ totalSteps: _totalSteps,
191
+ completedSteps,
192
+ failureCount,
193
+ executionId,
194
+ };
195
+ }
196
+ }
197
+ //# sourceMappingURL=FailureHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FailureHandler.js","sourceRoot":"","sources":["../../../src/automation/runtime/FailureHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA8EH;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,OAAuB,EACvB,QAAyB,EACzB,cAA+B,EAC/B,SAA4B;QAE5B,8BAA8B;QAC9B,MAAM,SAAS,EAAE,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC;QAE3C,qCAAqC;QACrC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CACpC,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,yBAAyB;QACzB,MAAM,SAAS,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEjD,4BAA4B;QAC5B,IAAI,cAAc,GAAG,IAAI,CAAC;QAC1B,IAAI,YAA+B,CAAC;QAEpC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,SAAS,EAAE,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC;YAE5C,IAAI,CAAC;gBACH,kDAAkD;gBAClD,uCAAuC;gBACvC,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,cAAc,GAAG,KAAK,CAAC;gBACvB,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3E,CAAC;YAED,MAAM,SAAS,EAAE,cAAc,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC7D,CAAC;QAED,0BAA0B;QAC1B,MAAM,WAAW,GAAG,QAAQ,CAAC,kBAAkB,IAAI,cAAc;YAC/D,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC;YAC3D,CAAC,CAAC,EAAE,CAAC;QAEP,4BAA4B;QAC5B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC/B,MAAM,SAAS,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;QAED,OAAO;YACL,QAAQ;YACR,cAAc;YACd,YAAY;YACZ,WAAW;SACZ,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,oBAAoB,CACjC,YAAoB,EACpB,cAA8B;QAE9B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,MAAM,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC;QAE7B,kCAAkC;QAClC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAC9B,MAAM,UAAU,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAEnE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACtB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,MAAc,EAAE,YAAyB;QAC7D,OAAO,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,WAAW,CAChB,aAAoB,EACpB,OAAuB,EACvB,QAAyB;QAEzB,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAClD,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;QACnC,QAAQ,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;QAEpC,QAAgB,CAAC,cAAc,GAAG;YACjC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,QAAQ,EAAE,QAAQ,CAAC,MAAM;YACzB,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;SAC5C,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,mBAAmB,CACxB,OAAuB,EACvB,QAAyB,EACzB,MAA6B;QAE7B,MAAM,KAAK,GAAG;YACZ,mBAAmB,OAAO,CAAC,MAAM,EAAE;YACnC,aAAa,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;YACpC,gBAAgB,QAAQ,CAAC,MAAM,EAAE;YACjC,gBAAgB,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;SAC3D,CAAC;QAEF,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,oBAAoB,CACzB,UAAkB,EAClB,cAAsB,EACtB,WAAmB,EACnB,mBAA4B;QAE5B,mCAAmC;QACnC,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,4BAA4B;QAC5B,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,wDAAwD;QACxD,MAAM,eAAe,GAAG,cAAc,GAAG,UAAU,CAAC;QACpD,MAAM,YAAY,GAAG,WAAW,GAAG,UAAU,CAAC;QAE9C,kEAAkE;QAClE,IAAI,mBAAmB,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YAC9C,wDAAwD;YACxD,8CAA8C;YAC9C,IAAI,eAAe,IAAI,GAAG,IAAI,YAAY,GAAG,GAAG,EAAE,CAAC;gBACjD,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,aAAa,CAClB,MAAc,EACd,KAAY,EACZ,WAAmB,EACnB,cAAsB,EACtB,YAAoB,EACpB,WAAoB;QAEpB,OAAO;YACL,MAAM;YACN,KAAK;YACL,UAAU,EAAE,WAAW;YACvB,cAAc;YACd,YAAY;YACZ,WAAW;SACZ,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Retry Executor
3
+ *
4
+ * Orchestrates retry logic for operations using RetryPolicy and BackoffTimer.
5
+ * This is the high-level runtime component that replaces inline retry logic.
6
+ *
7
+ * @module automation/runtime
8
+ */
9
+ import { RetryPolicy } from '../RetryPolicy.js';
10
+ /**
11
+ * Retry context for tracking retry state
12
+ */
13
+ export interface RetryContext {
14
+ /** Current attempt number (1-indexed) */
15
+ attempt: number;
16
+ /** Maximum attempts allowed */
17
+ maxAttempts: number;
18
+ /** Errors from previous attempts */
19
+ previousErrors: Error[];
20
+ /** Total time spent on retries (ms) */
21
+ totalRetryTimeMs: number;
22
+ /** Whether this is the final attempt */
23
+ isFinalAttempt: boolean;
24
+ }
25
+ /**
26
+ * Retry result
27
+ */
28
+ export interface RetryResult<T> {
29
+ /** Operation result (undefined if all retries failed) */
30
+ result?: T;
31
+ /** Final status */
32
+ status: 'success' | 'failed' | 'aborted';
33
+ /** Number of attempts made */
34
+ attempts: number;
35
+ /** Final error if failed */
36
+ error?: Error;
37
+ /** Array of all errors encountered */
38
+ allErrors: Error[];
39
+ /** Total execution time including retries (ms) */
40
+ totalTimeMs: number;
41
+ }
42
+ /**
43
+ * Retry event listeners
44
+ */
45
+ export interface RetryListeners<T> {
46
+ /** Called before each attempt */
47
+ onAttempt?: (context: RetryContext) => void | Promise<void>;
48
+ /** Called after successful attempt */
49
+ onSuccess?: (result: T, context: RetryContext) => void | Promise<void>;
50
+ /** Called after failed attempt (before retry decision) */
51
+ onError?: (error: Error, context: RetryContext) => void | Promise<void>;
52
+ /** Called when retry is about to happen */
53
+ onRetry?: (error: Error, delayMs: number, context: RetryContext) => void | Promise<void>;
54
+ /** Called when retries are exhausted */
55
+ onExhausted?: (errors: Error[]) => void | Promise<void>;
56
+ /** Called when retry is aborted */
57
+ onAbort?: (error: Error, reason: string) => void | Promise<void>;
58
+ }
59
+ /**
60
+ * Retry executor for orchestrating retry logic
61
+ */
62
+ export declare class RetryExecutor {
63
+ /**
64
+ * Execute operation with retry policy
65
+ *
66
+ * @param operation - Async operation to execute
67
+ * @param policy - Retry policy
68
+ * @param listeners - Event listeners for retry lifecycle
69
+ * @returns Retry result
70
+ */
71
+ static execute<T>(operation: () => Promise<T>, policy: RetryPolicy, listeners?: RetryListeners<T>): Promise<RetryResult<T>>;
72
+ /**
73
+ * Execute operation with retry (throwing version)
74
+ * Throws error if all retries fail
75
+ *
76
+ * @param operation - Async operation to execute
77
+ * @param policy - Retry policy
78
+ * @param listeners - Event listeners
79
+ * @returns Operation result
80
+ * @throws Last error if all retries fail
81
+ */
82
+ static executeOrThrow<T>(operation: () => Promise<T>, policy: RetryPolicy, listeners?: RetryListeners<T>): Promise<T>;
83
+ /**
84
+ * Execute operation with simple retry (no policy object)
85
+ *
86
+ * @param operation - Async operation to execute
87
+ * @param maxAttempts - Maximum attempts
88
+ * @param delayMs - Delay between attempts
89
+ * @returns Operation result
90
+ */
91
+ static executeSimple<T>(operation: () => Promise<T>, maxAttempts: number, delayMs?: number): Promise<T>;
92
+ /**
93
+ * Execute with retry and timeout
94
+ * Combines retry logic with timeout enforcement
95
+ *
96
+ * @param operation - Async operation to execute
97
+ * @param policy - Retry policy
98
+ * @param timeoutMs - Timeout per attempt (ms)
99
+ * @param listeners - Event listeners
100
+ * @returns Retry result
101
+ */
102
+ static executeWithTimeout<T>(operation: () => Promise<T>, policy: RetryPolicy, timeoutMs: number, listeners?: RetryListeners<T>): Promise<RetryResult<T>>;
103
+ }
104
+ //# sourceMappingURL=RetryExecutor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RetryExecutor.d.ts","sourceRoot":"","sources":["../../../src/automation/runtime/RetryExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAEhB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IAEpB,oCAAoC;IACpC,cAAc,EAAE,KAAK,EAAE,CAAC;IAExB,uCAAuC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,wCAAwC;IACxC,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,yDAAyD;IACzD,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX,mBAAmB;IACnB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAEzC,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IAEjB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,sCAAsC;IACtC,SAAS,EAAE,KAAK,EAAE,CAAC;IAEnB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,iCAAiC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D,sCAAsC;IACtC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvE,0DAA0D;IAC1D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE,2CAA2C;IAC3C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzF,wCAAwC;IACxC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD,mCAAmC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB;;;;;;;OAOG;WACU,OAAO,CAAC,CAAC,EACpB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IA0F1B;;;;;;;;;OASG;WACU,cAAc,CAAC,CAAC,EAC3B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,CAAC,CAAC;IAmBb;;;;;;;OAOG;WACU,aAAa,CAAC,CAAC,EAC1B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC,CAAC,CAAC;IAkBb;;;;;;;;;OASG;WACU,kBAAkB,CAAC,CAAC,EAC/B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAgB3B"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Retry Executor
3
+ *
4
+ * Orchestrates retry logic for operations using RetryPolicy and BackoffTimer.
5
+ * This is the high-level runtime component that replaces inline retry logic.
6
+ *
7
+ * @module automation/runtime
8
+ */
9
+ import { BackoffTimer } from './BackoffTimer.js';
10
+ /**
11
+ * Retry executor for orchestrating retry logic
12
+ */
13
+ export class RetryExecutor {
14
+ /**
15
+ * Execute operation with retry policy
16
+ *
17
+ * @param operation - Async operation to execute
18
+ * @param policy - Retry policy
19
+ * @param listeners - Event listeners for retry lifecycle
20
+ * @returns Retry result
21
+ */
22
+ static async execute(operation, policy, listeners) {
23
+ const startTime = Date.now();
24
+ const maxAttempts = policy.getMaxAttempts();
25
+ const allErrors = [];
26
+ let attempt = 0;
27
+ let totalRetryTimeMs = 0;
28
+ while (attempt < maxAttempts) {
29
+ attempt++;
30
+ const context = {
31
+ attempt,
32
+ maxAttempts,
33
+ previousErrors: [...allErrors],
34
+ totalRetryTimeMs,
35
+ isFinalAttempt: attempt === maxAttempts,
36
+ };
37
+ // Call onAttempt listener
38
+ await listeners?.onAttempt?.(context);
39
+ try {
40
+ // Execute operation
41
+ const result = await operation();
42
+ // Success!
43
+ await listeners?.onSuccess?.(result, context);
44
+ return {
45
+ result,
46
+ status: 'success',
47
+ attempts: attempt,
48
+ allErrors,
49
+ totalTimeMs: Date.now() - startTime,
50
+ };
51
+ }
52
+ catch (error) {
53
+ const err = error instanceof Error ? error : new Error(String(error));
54
+ allErrors.push(err);
55
+ // Call onError listener
56
+ await listeners?.onError?.(err, context);
57
+ // Check if should retry
58
+ const shouldRetry = policy.shouldRetry(err, attempt);
59
+ if (!shouldRetry) {
60
+ // Check if aborted vs exhausted
61
+ if (policy.shouldAbort(err)) {
62
+ await listeners?.onAbort?.(err, 'Error triggers abort condition');
63
+ return {
64
+ status: 'aborted',
65
+ attempts: attempt,
66
+ error: err,
67
+ allErrors,
68
+ totalTimeMs: Date.now() - startTime,
69
+ };
70
+ }
71
+ else {
72
+ // Retries exhausted
73
+ await listeners?.onExhausted?.(allErrors);
74
+ return {
75
+ status: 'failed',
76
+ attempts: attempt,
77
+ error: err,
78
+ allErrors,
79
+ totalTimeMs: Date.now() - startTime,
80
+ };
81
+ }
82
+ }
83
+ // Calculate delay and wait
84
+ const delayMs = policy.getDelay(attempt);
85
+ await listeners?.onRetry?.(err, delayMs, context);
86
+ const retryStartTime = Date.now();
87
+ await BackoffTimer.wait(policy.getBackoffStrategy(), attempt);
88
+ totalRetryTimeMs += Date.now() - retryStartTime;
89
+ }
90
+ }
91
+ // Should not reach here, but handle edge case
92
+ const lastError = allErrors[allErrors.length - 1] || new Error('Unknown error');
93
+ return {
94
+ status: 'failed',
95
+ attempts: attempt,
96
+ error: lastError,
97
+ allErrors,
98
+ totalTimeMs: Date.now() - startTime,
99
+ };
100
+ }
101
+ /**
102
+ * Execute operation with retry (throwing version)
103
+ * Throws error if all retries fail
104
+ *
105
+ * @param operation - Async operation to execute
106
+ * @param policy - Retry policy
107
+ * @param listeners - Event listeners
108
+ * @returns Operation result
109
+ * @throws Last error if all retries fail
110
+ */
111
+ static async executeOrThrow(operation, policy, listeners) {
112
+ const result = await this.execute(operation, policy, listeners);
113
+ if (result.status === 'success') {
114
+ return result.result;
115
+ }
116
+ // Throw last error with context
117
+ const error = result.error || new Error('Operation failed');
118
+ if (error) {
119
+ error.retryContext = {
120
+ attempts: result.attempts,
121
+ allErrors: result.allErrors,
122
+ totalTimeMs: result.totalTimeMs,
123
+ };
124
+ }
125
+ throw error;
126
+ }
127
+ /**
128
+ * Execute operation with simple retry (no policy object)
129
+ *
130
+ * @param operation - Async operation to execute
131
+ * @param maxAttempts - Maximum attempts
132
+ * @param delayMs - Delay between attempts
133
+ * @returns Operation result
134
+ */
135
+ static async executeSimple(operation, maxAttempts, delayMs = 1000) {
136
+ let lastError;
137
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
138
+ try {
139
+ return await operation();
140
+ }
141
+ catch (error) {
142
+ lastError = error instanceof Error ? error : new Error(String(error));
143
+ if (attempt < maxAttempts) {
144
+ await BackoffTimer.sleep(delayMs);
145
+ }
146
+ }
147
+ }
148
+ throw lastError;
149
+ }
150
+ /**
151
+ * Execute with retry and timeout
152
+ * Combines retry logic with timeout enforcement
153
+ *
154
+ * @param operation - Async operation to execute
155
+ * @param policy - Retry policy
156
+ * @param timeoutMs - Timeout per attempt (ms)
157
+ * @param listeners - Event listeners
158
+ * @returns Retry result
159
+ */
160
+ static async executeWithTimeout(operation, policy, timeoutMs, listeners) {
161
+ return this.execute(async () => {
162
+ const controller = new AbortController();
163
+ const timeout = setTimeout(() => controller.abort(), timeoutMs);
164
+ try {
165
+ return await operation();
166
+ }
167
+ finally {
168
+ clearTimeout(timeout);
169
+ }
170
+ }, policy, listeners);
171
+ }
172
+ }
173
+ //# sourceMappingURL=RetryExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RetryExecutor.js","sourceRoot":"","sources":["../../../src/automation/runtime/RetryExecutor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Automation Runtime
3
+ *
4
+ * Runtime executors for automation policies.
5
+ * These are the actual implementation layers that execute
6
+ * retry logic, backoff delays, and failure handling.
7
+ *
8
+ * @module automation/runtime
9
+ */
10
+ export * from './BackoffTimer.js';
11
+ export * from './RetryExecutor.js';
12
+ export * from './FailureHandler.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/automation/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Automation Runtime
3
+ *
4
+ * Runtime executors for automation policies.
5
+ * These are the actual implementation layers that execute
6
+ * retry logic, backoff delays, and failure handling.
7
+ *
8
+ * @module automation/runtime
9
+ */
10
+ export * from './BackoffTimer.js';
11
+ export * from './RetryExecutor.js';
12
+ export * from './FailureHandler.js';
13
+ //# sourceMappingURL=index.js.map