@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,145 @@
1
+ /**
2
+ * Timeout Manager
3
+ *
4
+ * Manages execution timeouts for operations and steps.
5
+ * Provides timeout enforcement, parsing, and cleanup handling.
6
+ *
7
+ * @module automation
8
+ */
9
+ /**
10
+ * Timeout error
11
+ */
12
+ export declare class TimeoutError extends Error {
13
+ readonly timeoutMs: number;
14
+ readonly operation?: string | undefined;
15
+ constructor(message: string, timeoutMs: number, operation?: string | undefined);
16
+ }
17
+ /**
18
+ * Timeout configuration
19
+ */
20
+ export interface TimeoutConfig {
21
+ /** Timeout duration in milliseconds */
22
+ timeoutMs: number;
23
+ /** Operation name for error messages */
24
+ operation?: string;
25
+ /** Cleanup function to run on timeout */
26
+ onTimeout?: () => Promise<void> | void;
27
+ /** Whether to run cleanup before throwing (default: true) */
28
+ cleanupBeforeThrow?: boolean;
29
+ }
30
+ /**
31
+ * Timeout result
32
+ */
33
+ export interface TimeoutResult<T> {
34
+ /** Operation result (undefined if timed out) */
35
+ result?: T;
36
+ /** Whether operation timed out */
37
+ timedOut: boolean;
38
+ /** Actual duration in milliseconds */
39
+ durationMs: number;
40
+ /** Timeout error if timed out */
41
+ error?: TimeoutError;
42
+ }
43
+ /**
44
+ * Timeout manager for execution control
45
+ */
46
+ export declare class TimeoutManager {
47
+ /**
48
+ * Execute operation with timeout
49
+ *
50
+ * @param operation - Async operation to execute
51
+ * @param config - Timeout configuration
52
+ * @returns Operation result
53
+ * @throws TimeoutError if operation times out
54
+ */
55
+ static execute<T>(operation: () => Promise<T>, config: TimeoutConfig): Promise<T>;
56
+ /**
57
+ * Execute operation with timeout (non-throwing version)
58
+ * Returns result object indicating success or timeout
59
+ *
60
+ * @param operation - Async operation to execute
61
+ * @param config - Timeout configuration
62
+ * @returns Timeout result
63
+ */
64
+ static executeWithResult<T>(operation: () => Promise<T>, config: TimeoutConfig): Promise<TimeoutResult<T>>;
65
+ /**
66
+ * Parse timeout string to milliseconds
67
+ *
68
+ * Supported formats:
69
+ * - "30s" -> 30000ms
70
+ * - "5m" -> 300000ms
71
+ * - "2h" -> 7200000ms
72
+ * - "1000" -> 1000ms (raw number)
73
+ *
74
+ * @param timeoutStr - Timeout string
75
+ * @returns Timeout in milliseconds
76
+ * @throws Error if format is invalid
77
+ */
78
+ static parseTimeout(timeoutStr: string): number;
79
+ /**
80
+ * Format milliseconds to human-readable string
81
+ *
82
+ * @param ms - Milliseconds
83
+ * @returns Formatted string (e.g., "30s", "5m")
84
+ */
85
+ static formatTimeout(ms: number): string;
86
+ /**
87
+ * Create timeout config from timeout string
88
+ *
89
+ * @param timeoutStr - Timeout string (e.g., "30s")
90
+ * @param operation - Operation name
91
+ * @param onTimeout - Cleanup function
92
+ * @returns Timeout configuration
93
+ */
94
+ static createConfig(timeoutStr: string, operation?: string, onTimeout?: () => Promise<void> | void): TimeoutConfig;
95
+ /**
96
+ * Create abort controller with timeout
97
+ * Useful for cancellable operations
98
+ *
99
+ * @param timeoutMs - Timeout in milliseconds
100
+ * @returns Abort controller that aborts after timeout
101
+ */
102
+ static createAbortController(timeoutMs: number): AbortController;
103
+ /**
104
+ * Check if error is a timeout error
105
+ *
106
+ * @param error - Error to check
107
+ * @returns True if timeout error
108
+ */
109
+ static isTimeoutError(error: unknown): error is TimeoutError;
110
+ /**
111
+ * Validate timeout value
112
+ *
113
+ * @param timeoutMs - Timeout in milliseconds
114
+ * @param min - Minimum allowed timeout
115
+ * @param max - Maximum allowed timeout
116
+ * @throws Error if timeout is invalid
117
+ */
118
+ static validateTimeout(timeoutMs: number, min?: number, max?: number): void;
119
+ }
120
+ /**
121
+ * Predefined timeout configurations
122
+ */
123
+ export declare const TimeoutConfigs: {
124
+ /** 10 second timeout */
125
+ readonly short: {
126
+ readonly timeoutMs: 10000;
127
+ };
128
+ /** 30 second timeout */
129
+ readonly standard: {
130
+ readonly timeoutMs: 30000;
131
+ };
132
+ /** 5 minute timeout */
133
+ readonly long: {
134
+ readonly timeoutMs: 300000;
135
+ };
136
+ /** 30 minute timeout */
137
+ readonly veryLong: {
138
+ readonly timeoutMs: 1800000;
139
+ };
140
+ /** No timeout (24 hours) */
141
+ readonly none: {
142
+ readonly timeoutMs: 86400000;
143
+ };
144
+ };
145
+ //# sourceMappingURL=TimeoutManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeoutManager.d.ts","sourceRoot":"","sources":["../../src/automation/TimeoutManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;aAGnB,SAAS,EAAE,MAAM;aACjB,SAAS,CAAC,EAAE,MAAM;gBAFlC,OAAO,EAAE,MAAM,EACC,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,YAAA;CAKrC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAElB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEvC,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,gDAAgD;IAChD,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX,kCAAkC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAElB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IAEnB,iCAAiC;IACjC,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB;;;;;;;OAOG;WACU,OAAO,CAAC,CAAC,EACpB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,CAAC,CAAC;IAwDb;;;;;;;OAOG;WACU,iBAAiB,CAAC,CAAC,EAC9B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAwB5B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAiC/C;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAaxC;;;;;;;OAOG;IACH,MAAM,CAAC,YAAY,CACjB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GACrC,aAAa;IAQhB;;;;;;OAMG;IACH,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe;IAehE;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY;IAI5D;;;;;;;OAOG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAI,EAAE,GAAG,SAAW,GAAG,IAAI;CAQzE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB,wBAAwB;;;;IAGxB,wBAAwB;;;;IAGxB,uBAAuB;;;;IAGvB,wBAAwB;;;;IAGxB,4BAA4B;;;;CAEpB,CAAC"}
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Timeout Manager
3
+ *
4
+ * Manages execution timeouts for operations and steps.
5
+ * Provides timeout enforcement, parsing, and cleanup handling.
6
+ *
7
+ * @module automation
8
+ */
9
+ /**
10
+ * Timeout error
11
+ */
12
+ export class TimeoutError extends Error {
13
+ timeoutMs;
14
+ operation;
15
+ constructor(message, timeoutMs, operation) {
16
+ super(message);
17
+ this.timeoutMs = timeoutMs;
18
+ this.operation = operation;
19
+ this.name = 'TimeoutError';
20
+ }
21
+ }
22
+ /**
23
+ * Timeout manager for execution control
24
+ */
25
+ export class TimeoutManager {
26
+ /**
27
+ * Execute operation with timeout
28
+ *
29
+ * @param operation - Async operation to execute
30
+ * @param config - Timeout configuration
31
+ * @returns Operation result
32
+ * @throws TimeoutError if operation times out
33
+ */
34
+ static async execute(operation, config) {
35
+ const startTime = Date.now();
36
+ const timeoutPromise = new Promise((_, reject) => {
37
+ const timeout = setTimeout(async () => {
38
+ const elapsedMs = Date.now() - startTime;
39
+ const error = new TimeoutError(config.operation
40
+ ? `Operation "${config.operation}" timed out after ${config.timeoutMs}ms (elapsed: ${elapsedMs}ms)`
41
+ : `Operation timed out after ${config.timeoutMs}ms (elapsed: ${elapsedMs}ms)`, config.timeoutMs, config.operation);
42
+ // Add timing metadata to error
43
+ error.timing = {
44
+ timeoutMs: config.timeoutMs,
45
+ elapsedMs,
46
+ startTime,
47
+ };
48
+ // Run cleanup if configured
49
+ if (config.onTimeout && (config.cleanupBeforeThrow ?? true)) {
50
+ try {
51
+ await config.onTimeout();
52
+ }
53
+ catch (cleanupError) {
54
+ console.error('Timeout cleanup failed:', cleanupError);
55
+ }
56
+ }
57
+ reject(error);
58
+ }, config.timeoutMs);
59
+ // Ensure timeout is cleared if operation completes
60
+ timeout.unref?.();
61
+ });
62
+ try {
63
+ const result = await Promise.race([operation(), timeoutPromise]);
64
+ // Add successful execution time for monitoring
65
+ const executionTime = Date.now() - startTime;
66
+ if (result && typeof result === 'object' && result !== null) {
67
+ result.__executionTime = executionTime;
68
+ }
69
+ return result;
70
+ }
71
+ catch (error) {
72
+ // If it's our timeout error, re-throw
73
+ if (error instanceof TimeoutError) {
74
+ throw error;
75
+ }
76
+ // Otherwise, it's an error from the operation
77
+ throw error;
78
+ }
79
+ }
80
+ /**
81
+ * Execute operation with timeout (non-throwing version)
82
+ * Returns result object indicating success or timeout
83
+ *
84
+ * @param operation - Async operation to execute
85
+ * @param config - Timeout configuration
86
+ * @returns Timeout result
87
+ */
88
+ static async executeWithResult(operation, config) {
89
+ const startTime = Date.now();
90
+ try {
91
+ const result = await this.execute(operation, config);
92
+ return {
93
+ result,
94
+ timedOut: false,
95
+ durationMs: Date.now() - startTime,
96
+ };
97
+ }
98
+ catch (error) {
99
+ if (error instanceof TimeoutError) {
100
+ return {
101
+ timedOut: true,
102
+ durationMs: Date.now() - startTime,
103
+ error,
104
+ };
105
+ }
106
+ // Re-throw non-timeout errors
107
+ throw error;
108
+ }
109
+ }
110
+ /**
111
+ * Parse timeout string to milliseconds
112
+ *
113
+ * Supported formats:
114
+ * - "30s" -> 30000ms
115
+ * - "5m" -> 300000ms
116
+ * - "2h" -> 7200000ms
117
+ * - "1000" -> 1000ms (raw number)
118
+ *
119
+ * @param timeoutStr - Timeout string
120
+ * @returns Timeout in milliseconds
121
+ * @throws Error if format is invalid
122
+ */
123
+ static parseTimeout(timeoutStr) {
124
+ const trimmed = timeoutStr.trim();
125
+ // Raw number (milliseconds)
126
+ if (/^\d+$/.test(trimmed)) {
127
+ return parseInt(trimmed, 10);
128
+ }
129
+ // Parse with unit
130
+ const match = /^(\d+(?:\.\d+)?)(ms|s|m|h)$/.exec(trimmed);
131
+ if (!match) {
132
+ throw new Error(`Invalid timeout format: "${timeoutStr}". Expected: "30s", "5m", "2h", or raw ms`);
133
+ }
134
+ const value = parseFloat(match[1]);
135
+ const unit = match[2];
136
+ switch (unit) {
137
+ case 'ms':
138
+ return value;
139
+ case 's':
140
+ return value * 1000;
141
+ case 'm':
142
+ return value * 60 * 1000;
143
+ case 'h':
144
+ return value * 60 * 60 * 1000;
145
+ default:
146
+ throw new Error(`Unknown time unit: ${unit}`);
147
+ }
148
+ }
149
+ /**
150
+ * Format milliseconds to human-readable string
151
+ *
152
+ * @param ms - Milliseconds
153
+ * @returns Formatted string (e.g., "30s", "5m")
154
+ */
155
+ static formatTimeout(ms) {
156
+ if (ms < 1000) {
157
+ return `${ms}ms`;
158
+ }
159
+ if (ms < 60000) {
160
+ return `${(ms / 1000).toFixed(1)}s`;
161
+ }
162
+ if (ms < 3600000) {
163
+ return `${(ms / 60000).toFixed(1)}m`;
164
+ }
165
+ return `${(ms / 3600000).toFixed(1)}h`;
166
+ }
167
+ /**
168
+ * Create timeout config from timeout string
169
+ *
170
+ * @param timeoutStr - Timeout string (e.g., "30s")
171
+ * @param operation - Operation name
172
+ * @param onTimeout - Cleanup function
173
+ * @returns Timeout configuration
174
+ */
175
+ static createConfig(timeoutStr, operation, onTimeout) {
176
+ return {
177
+ timeoutMs: this.parseTimeout(timeoutStr),
178
+ operation,
179
+ onTimeout,
180
+ };
181
+ }
182
+ /**
183
+ * Create abort controller with timeout
184
+ * Useful for cancellable operations
185
+ *
186
+ * @param timeoutMs - Timeout in milliseconds
187
+ * @returns Abort controller that aborts after timeout
188
+ */
189
+ static createAbortController(timeoutMs) {
190
+ const controller = new AbortController();
191
+ const timeout = setTimeout(() => {
192
+ controller.abort();
193
+ }, timeoutMs);
194
+ // Clean up timeout if signal is aborted manually
195
+ controller.signal.addEventListener('abort', () => {
196
+ clearTimeout(timeout);
197
+ }, { once: true });
198
+ return controller;
199
+ }
200
+ /**
201
+ * Check if error is a timeout error
202
+ *
203
+ * @param error - Error to check
204
+ * @returns True if timeout error
205
+ */
206
+ static isTimeoutError(error) {
207
+ return error instanceof TimeoutError;
208
+ }
209
+ /**
210
+ * Validate timeout value
211
+ *
212
+ * @param timeoutMs - Timeout in milliseconds
213
+ * @param min - Minimum allowed timeout
214
+ * @param max - Maximum allowed timeout
215
+ * @throws Error if timeout is invalid
216
+ */
217
+ static validateTimeout(timeoutMs, min = 0, max = Infinity) {
218
+ if (timeoutMs < min) {
219
+ throw new Error(`Timeout must be >= ${min}ms, got: ${timeoutMs}ms`);
220
+ }
221
+ if (timeoutMs > max) {
222
+ throw new Error(`Timeout must be <= ${max}ms, got: ${timeoutMs}ms`);
223
+ }
224
+ }
225
+ }
226
+ /**
227
+ * Predefined timeout configurations
228
+ */
229
+ export const TimeoutConfigs = {
230
+ /** 10 second timeout */
231
+ short: { timeoutMs: 10000 },
232
+ /** 30 second timeout */
233
+ standard: { timeoutMs: 30000 },
234
+ /** 5 minute timeout */
235
+ long: { timeoutMs: 300000 },
236
+ /** 30 minute timeout */
237
+ veryLong: { timeoutMs: 1800000 },
238
+ /** No timeout (24 hours) */
239
+ none: { timeoutMs: 86400000 },
240
+ };
241
+ //# sourceMappingURL=TimeoutManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeoutManager.js","sourceRoot":"","sources":["../../src/automation/TimeoutManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Automation Layer
3
+ *
4
+ * Provides retry policies, backoff strategies, failure handling,
5
+ * and timeout management for reliable workflow execution.
6
+ *
7
+ * This is PHASE 2 of the Orbyt execution roadmap.
8
+ *
9
+ * @module automation
10
+ */
11
+ export * from './BackoffStrategy.js';
12
+ export * from './FailureStrategy.js';
13
+ export * from './RetryPolicy.js';
14
+ export * from './TimeoutManager.js';
15
+ export * from './runtime/index.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/automation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Automation Layer
3
+ *
4
+ * Provides retry policies, backoff strategies, failure handling,
5
+ * and timeout management for reliable workflow execution.
6
+ *
7
+ * This is PHASE 2 of the Orbyt execution roadmap.
8
+ *
9
+ * @module automation
10
+ */
11
+ export * from './BackoffStrategy.js';
12
+ export * from './FailureStrategy.js';
13
+ export * from './RetryPolicy.js';
14
+ export * from './TimeoutManager.js';
15
+ export * from './runtime/index.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/automation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Backoff Timer
3
+ *
4
+ * Runtime utility for implementing delays between retry attempts.
5
+ * Works with BackoffStrategy to execute actual wait operations.
6
+ *
7
+ * @module automation/runtime
8
+ */
9
+ import { BackoffStrategy } from '../BackoffStrategy.js';
10
+ /**
11
+ * Backoff timer for retry delays
12
+ */
13
+ export declare class BackoffTimer {
14
+ /**
15
+ * Wait for delay calculated by backoff strategy
16
+ *
17
+ * @param strategy - Backoff strategy
18
+ * @param attempt - Current attempt number (1-indexed)
19
+ * @returns Promise that resolves after delay
20
+ */
21
+ static wait(strategy: BackoffStrategy, attempt: number): Promise<number>;
22
+ /**
23
+ * Sleep for specified milliseconds
24
+ *
25
+ * @param ms - Milliseconds to sleep
26
+ * @returns Promise that resolves after delay
27
+ */
28
+ static sleep(ms: number): Promise<void>;
29
+ /**
30
+ * Wait with cancellation support
31
+ *
32
+ * @param strategy - Backoff strategy
33
+ * @param attempt - Current attempt number
34
+ * @param signal - Abort signal for cancellation
35
+ * @returns Promise that resolves after delay or rejects if cancelled
36
+ */
37
+ static waitCancellable(strategy: BackoffStrategy, attempt: number, signal?: AbortSignal): Promise<number>;
38
+ /**
39
+ * Calculate total wait time for multiple attempts
40
+ *
41
+ * @param strategy - Backoff strategy
42
+ * @param attempts - Number of attempts
43
+ * @returns Total wait time in milliseconds
44
+ */
45
+ static calculateTotalWaitTime(strategy: BackoffStrategy, attempts: number): number;
46
+ /**
47
+ * Format delay for logging
48
+ *
49
+ * @param delayMs - Delay in milliseconds
50
+ * @returns Formatted string
51
+ */
52
+ static formatDelay(delayMs: number): string;
53
+ /**
54
+ * Wait with progress callback
55
+ * Useful for UI updates or logging
56
+ *
57
+ * @param strategy - Backoff strategy
58
+ * @param attempt - Current attempt number
59
+ * @param onProgress - Progress callback (current ms, total ms)
60
+ * @param progressIntervalMs - Interval for progress updates (default: 1000ms)
61
+ * @returns Promise that resolves after delay
62
+ */
63
+ static waitWithProgress(strategy: BackoffStrategy, attempt: number, onProgress: (elapsedMs: number, totalMs: number) => void, progressIntervalMs?: number): Promise<number>;
64
+ /**
65
+ * Execute function after backoff delay
66
+ *
67
+ * @param strategy - Backoff strategy
68
+ * @param attempt - Current attempt number
69
+ * @param fn - Function to execute after delay
70
+ * @returns Result of function execution
71
+ */
72
+ static waitAndExecute<T>(strategy: BackoffStrategy, attempt: number, fn: () => T | Promise<T>): Promise<T>;
73
+ }
74
+ //# sourceMappingURL=BackoffTimer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackoffTimer.d.ts","sourceRoot":"","sources":["../../../src/automation/runtime/BackoffTimer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;GAEG;AACH,qBAAa,YAAY;IACvB;;;;;;OAMG;WACU,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW9E;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC;;;;;;;OAOG;WACU,eAAe,CAC1B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC;IAgClB;;;;;;OAMG;IACH,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIlF;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAU3C;;;;;;;;;OASG;WACU,gBAAgB,CAC3B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,EACxD,kBAAkB,SAAO,GACxB,OAAO,CAAC,MAAM,CAAC;IA2BlB;;;;;;;OAOG;WACU,cAAc,CAAC,CAAC,EAC3B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,CAAC,CAAC;CAId"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Backoff Timer
3
+ *
4
+ * Runtime utility for implementing delays between retry attempts.
5
+ * Works with BackoffStrategy to execute actual wait operations.
6
+ *
7
+ * @module automation/runtime
8
+ */
9
+ /**
10
+ * Backoff timer for retry delays
11
+ */
12
+ export class BackoffTimer {
13
+ /**
14
+ * Wait for delay calculated by backoff strategy
15
+ *
16
+ * @param strategy - Backoff strategy
17
+ * @param attempt - Current attempt number (1-indexed)
18
+ * @returns Promise that resolves after delay
19
+ */
20
+ static async wait(strategy, attempt) {
21
+ const delayMs = strategy.calculateDelay(attempt);
22
+ if (delayMs === 0) {
23
+ return 0;
24
+ }
25
+ await this.sleep(delayMs);
26
+ return delayMs;
27
+ }
28
+ /**
29
+ * Sleep for specified milliseconds
30
+ *
31
+ * @param ms - Milliseconds to sleep
32
+ * @returns Promise that resolves after delay
33
+ */
34
+ static sleep(ms) {
35
+ return new Promise(resolve => setTimeout(resolve, ms));
36
+ }
37
+ /**
38
+ * Wait with cancellation support
39
+ *
40
+ * @param strategy - Backoff strategy
41
+ * @param attempt - Current attempt number
42
+ * @param signal - Abort signal for cancellation
43
+ * @returns Promise that resolves after delay or rejects if cancelled
44
+ */
45
+ static async waitCancellable(strategy, attempt, signal) {
46
+ const delayMs = strategy.calculateDelay(attempt);
47
+ if (delayMs === 0) {
48
+ return 0;
49
+ }
50
+ // Check if already aborted
51
+ if (signal?.aborted) {
52
+ throw new Error('Backoff cancelled');
53
+ }
54
+ return new Promise((resolve, reject) => {
55
+ const timeout = setTimeout(() => {
56
+ cleanup();
57
+ resolve(delayMs);
58
+ }, delayMs);
59
+ const onAbort = () => {
60
+ cleanup();
61
+ reject(new Error('Backoff cancelled'));
62
+ };
63
+ const cleanup = () => {
64
+ clearTimeout(timeout);
65
+ signal?.removeEventListener('abort', onAbort);
66
+ };
67
+ signal?.addEventListener('abort', onAbort, { once: true });
68
+ });
69
+ }
70
+ /**
71
+ * Calculate total wait time for multiple attempts
72
+ *
73
+ * @param strategy - Backoff strategy
74
+ * @param attempts - Number of attempts
75
+ * @returns Total wait time in milliseconds
76
+ */
77
+ static calculateTotalWaitTime(strategy, attempts) {
78
+ return strategy.getTotalDelay(attempts);
79
+ }
80
+ /**
81
+ * Format delay for logging
82
+ *
83
+ * @param delayMs - Delay in milliseconds
84
+ * @returns Formatted string
85
+ */
86
+ static formatDelay(delayMs) {
87
+ if (delayMs < 1000) {
88
+ return `${delayMs}ms`;
89
+ }
90
+ if (delayMs < 60000) {
91
+ return `${(delayMs / 1000).toFixed(1)}s`;
92
+ }
93
+ return `${(delayMs / 60000).toFixed(1)}m`;
94
+ }
95
+ /**
96
+ * Wait with progress callback
97
+ * Useful for UI updates or logging
98
+ *
99
+ * @param strategy - Backoff strategy
100
+ * @param attempt - Current attempt number
101
+ * @param onProgress - Progress callback (current ms, total ms)
102
+ * @param progressIntervalMs - Interval for progress updates (default: 1000ms)
103
+ * @returns Promise that resolves after delay
104
+ */
105
+ static async waitWithProgress(strategy, attempt, onProgress, progressIntervalMs = 1000) {
106
+ const totalMs = strategy.calculateDelay(attempt);
107
+ if (totalMs === 0) {
108
+ return 0;
109
+ }
110
+ const startTime = Date.now();
111
+ return new Promise(resolve => {
112
+ const progressInterval = setInterval(() => {
113
+ const elapsed = Date.now() - startTime;
114
+ onProgress(Math.min(elapsed, totalMs), totalMs);
115
+ if (elapsed >= totalMs) {
116
+ clearInterval(progressInterval);
117
+ }
118
+ }, progressIntervalMs);
119
+ setTimeout(() => {
120
+ clearInterval(progressInterval);
121
+ onProgress(totalMs, totalMs);
122
+ resolve(totalMs);
123
+ }, totalMs);
124
+ });
125
+ }
126
+ /**
127
+ * Execute function after backoff delay
128
+ *
129
+ * @param strategy - Backoff strategy
130
+ * @param attempt - Current attempt number
131
+ * @param fn - Function to execute after delay
132
+ * @returns Result of function execution
133
+ */
134
+ static async waitAndExecute(strategy, attempt, fn) {
135
+ await this.wait(strategy, attempt);
136
+ return fn();
137
+ }
138
+ }
139
+ //# sourceMappingURL=BackoffTimer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackoffTimer.js","sourceRoot":"","sources":["../../../src/automation/runtime/BackoffTimer.ts"],"names":[],"mappings":"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"}