@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,213 @@
1
+ /**
2
+ * TopologicalSorter
3
+ *
4
+ * Performs topological sorting on a dependency graph using Kahn's algorithm.
5
+ * This is what makes parallel execution possible.
6
+ *
7
+ * Purpose:
8
+ * - Convert DAG into execution phases
9
+ * - Group independent steps into phases (parallelization!)
10
+ * - Ensure dependencies are satisfied before execution
11
+ * - This is "the moment Orbyt becomes real" - we go from sequential to parallel
12
+ *
13
+ * Algorithm: Kahn's Algorithm (BFS-based)
14
+ * 1. Start with all nodes that have no dependencies (in-degree = 0)
15
+ * 2. Remove them and their edges, collect them as Phase 1
16
+ * 3. Find new nodes with in-degree = 0 (Phase 2)
17
+ * 4. Repeat until all nodes are processed
18
+ *
19
+ * Result: [['validate'], ['process', 'lint'], ['upload']]
20
+ * Phase 1: validate (runs alone)
21
+ * Phase 2: process and lint (run in parallel!)
22
+ * Phase 3: upload (runs after both complete)
23
+ *
24
+ * What it does NOT do:
25
+ * - Does NOT execute steps (that's StepExecutor's job)
26
+ * - Does NOT manage state (that's ExecutionState's job)
27
+ * - Does NOT add retries (that's StepExecutor's job)
28
+ */
29
+ import { WorkflowValidationError } from '@dev-ecosystem/core';
30
+ import { DependencyResolver } from './DependencyResolver.js';
31
+ /**
32
+ * Performs topological sorting to determine execution order.
33
+ * Pure function - takes validated graph, returns execution phases.
34
+ */
35
+ export class TopologicalSorter {
36
+ /**
37
+ * Sort the dependency graph into execution phases using Kahn's algorithm.
38
+ *
39
+ * This is BFS-based and naturally groups independent steps into phases.
40
+ *
41
+ * @param graph - The dependency graph (must be acyclic)
42
+ * @returns Topological sort result with execution phases
43
+ * @throws WorkflowValidationError if graph contains cycles
44
+ */
45
+ static sort(graph) {
46
+ // Calculate in-degrees (number of dependencies for each node)
47
+ const inDegrees = DependencyResolver.calculateInDegrees(graph);
48
+ // Track which nodes have been processed
49
+ const processed = new Set();
50
+ // Store phases
51
+ const phases = [];
52
+ // Map of stepId → phase number
53
+ const stepPhases = new Map();
54
+ // Kahn's algorithm
55
+ let currentPhaseIndex = 0;
56
+ while (processed.size < graph.nodes.size) {
57
+ // Find all nodes with in-degree 0 (ready to execute)
58
+ const currentPhase = [];
59
+ for (const [stepId, inDegree] of inDegrees) {
60
+ if (inDegree === 0 && !processed.has(stepId)) {
61
+ currentPhase.push(stepId);
62
+ }
63
+ }
64
+ // If no nodes are ready but we haven't processed everything,
65
+ // there must be a cycle
66
+ if (currentPhase.length === 0 && processed.size < graph.nodes.size) {
67
+ const remaining = Array.from(graph.nodes.keys()).filter((id) => !processed.has(id));
68
+ throw new WorkflowValidationError('Cannot create execution plan: circular dependency detected during topological sort', {
69
+ remainingSteps: remaining,
70
+ hint: 'Use CycleDetector.detectAndThrow() before calling TopologicalSorter.sort()',
71
+ });
72
+ }
73
+ // Process current phase
74
+ for (const stepId of currentPhase) {
75
+ processed.add(stepId);
76
+ stepPhases.set(stepId, currentPhaseIndex);
77
+ // Reduce in-degree of all dependents
78
+ const dependents = graph.reverseDependencies.get(stepId) || [];
79
+ for (const dependent of dependents) {
80
+ const currentInDegree = inDegrees.get(dependent);
81
+ inDegrees.set(dependent, currentInDegree - 1);
82
+ }
83
+ }
84
+ if (currentPhase.length > 0) {
85
+ phases.push(currentPhase);
86
+ currentPhaseIndex++;
87
+ }
88
+ }
89
+ return {
90
+ phases: phases.map((phase) => Object.freeze([...phase])),
91
+ phaseCount: phases.length,
92
+ stepPhases,
93
+ };
94
+ }
95
+ /**
96
+ * Sort using DFS-based algorithm (alternative to Kahn's).
97
+ * This produces a valid topological order but doesn't naturally
98
+ * group into phases like Kahn's does.
99
+ *
100
+ * Use this if you need a single linear order rather than phases.
101
+ *
102
+ * @param graph - The dependency graph
103
+ * @returns Array of step IDs in topological order
104
+ */
105
+ static sortLinear(graph) {
106
+ const visited = new Set();
107
+ const result = [];
108
+ const visit = (nodeId) => {
109
+ if (visited.has(nodeId)) {
110
+ return;
111
+ }
112
+ visited.add(nodeId);
113
+ // Visit all dependencies first
114
+ const dependencies = graph.adjacencyList.get(nodeId) || [];
115
+ for (const dependency of dependencies) {
116
+ visit(dependency);
117
+ }
118
+ // Add to result after visiting dependencies
119
+ result.push(nodeId);
120
+ };
121
+ // Visit all nodes
122
+ for (const nodeId of graph.nodes.keys()) {
123
+ visit(nodeId);
124
+ }
125
+ return result;
126
+ }
127
+ /**
128
+ * Calculate the critical path through the dependency graph.
129
+ * The critical path is the longest path from entry to exit points.
130
+ *
131
+ * This is useful for:
132
+ * - Estimating minimum workflow execution time
133
+ * - Identifying bottlenecks
134
+ * - Optimizing parallelization
135
+ *
136
+ * @param graph - The dependency graph
137
+ * @param stepDurations - Map of stepId → estimated duration (ms)
138
+ * @returns Critical path information
139
+ */
140
+ static calculateCriticalPath(graph, stepDurations) {
141
+ const sortResult = this.sort(graph);
142
+ const earliestStart = new Map();
143
+ const latestStart = new Map();
144
+ // Forward pass: calculate earliest start times
145
+ for (const phase of sortResult.phases) {
146
+ for (const stepId of phase) {
147
+ const dependencies = graph.adjacencyList.get(stepId) || [];
148
+ if (dependencies.length === 0) {
149
+ earliestStart.set(stepId, 0);
150
+ }
151
+ else {
152
+ let maxEarliest = 0;
153
+ for (const dep of dependencies) {
154
+ const depEarliest = earliestStart.get(dep);
155
+ const depDuration = stepDurations.get(dep) || 0;
156
+ maxEarliest = Math.max(maxEarliest, depEarliest + depDuration);
157
+ }
158
+ earliestStart.set(stepId, maxEarliest);
159
+ }
160
+ }
161
+ }
162
+ // Find maximum earliest start (workflow end time)
163
+ let workflowDuration = 0;
164
+ for (const [stepId, earliest] of earliestStart) {
165
+ const duration = stepDurations.get(stepId) || 0;
166
+ workflowDuration = Math.max(workflowDuration, earliest + duration);
167
+ }
168
+ // Backward pass: calculate latest start times
169
+ const exitPoints = DependencyResolver.getExitPoints(graph);
170
+ for (const exitPoint of exitPoints) {
171
+ const duration = stepDurations.get(exitPoint) || 0;
172
+ latestStart.set(exitPoint, workflowDuration - duration);
173
+ }
174
+ // Process phases in reverse
175
+ for (let i = sortResult.phases.length - 1; i >= 0; i--) {
176
+ for (const stepId of sortResult.phases[i]) {
177
+ if (latestStart.has(stepId)) {
178
+ continue; // Already set as exit point
179
+ }
180
+ const dependents = graph.reverseDependencies.get(stepId) || [];
181
+ const duration = stepDurations.get(stepId) || 0;
182
+ let minLatest = workflowDuration;
183
+ for (const dependent of dependents) {
184
+ const dependentLatest = latestStart.get(dependent);
185
+ minLatest = Math.min(minLatest, dependentLatest);
186
+ }
187
+ latestStart.set(stepId, minLatest - duration);
188
+ }
189
+ }
190
+ // Calculate slack (float) for each step
191
+ const slack = new Map();
192
+ for (const stepId of graph.nodes.keys()) {
193
+ const earliest = earliestStart.get(stepId);
194
+ const latest = latestStart.get(stepId);
195
+ slack.set(stepId, latest - earliest);
196
+ }
197
+ // Find critical path (steps with zero slack)
198
+ const criticalPath = [];
199
+ for (const [stepId, slackValue] of slack) {
200
+ if (slackValue === 0) {
201
+ criticalPath.push(stepId);
202
+ }
203
+ }
204
+ return {
205
+ criticalPath,
206
+ workflowDuration,
207
+ earliestStart,
208
+ latestStart,
209
+ slack,
210
+ };
211
+ }
212
+ }
213
+ //# sourceMappingURL=TopologicalSorter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopologicalSorter.js","sourceRoot":"","sources":["../../src/graph/TopologicalSorter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Graph Analysis Utilities
3
+ *
4
+ * Tools for analyzing workflow dependency graphs:
5
+ * - DependencyResolver: Build graph from workflow steps
6
+ * - CycleDetector: Validate no circular dependencies
7
+ * - TopologicalSorter: Generate execution phases for parallelization
8
+ *
9
+ * These work together to create valid execution plans.
10
+ */
11
+ export * from './DependencyGraph.js';
12
+ export * from './DependencyResolver.js';
13
+ export * from './CycleDetector.js';
14
+ export * from './TopologicalSorter.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Graph Analysis Utilities
3
+ *
4
+ * Tools for analyzing workflow dependency graphs:
5
+ * - DependencyResolver: Build graph from workflow steps
6
+ * - CycleDetector: Validate no circular dependencies
7
+ * - TopologicalSorter: Generate execution phases for parallelization
8
+ *
9
+ * These work together to create valid execution plans.
10
+ */
11
+ export * from './DependencyGraph.js';
12
+ export * from './DependencyResolver.js';
13
+ export * from './CycleDetector.js';
14
+ export * from './TopologicalSorter.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Resource Guard
3
+ *
4
+ * Future security and resource limiting layer.
5
+ * Currently provides basic checks, will be extended for:
6
+ * - Permission policies
7
+ * - Resource limits (CPU, memory, network)
8
+ * - Sandbox enforcement
9
+ *
10
+ * @module guards
11
+ */
12
+ import type { ParsedStep } from '../parser/StepParser.js';
13
+ /**
14
+ * Permission policy for workflow execution
15
+ */
16
+ export interface PermissionPolicy {
17
+ /** Allow network access */
18
+ allowNetwork?: boolean;
19
+ /** Allow file system access */
20
+ allowFileSystem?: boolean;
21
+ /** Allow shell command execution */
22
+ allowShell?: boolean;
23
+ /** Allowed adapter types */
24
+ allowedAdapters?: string[];
25
+ /** Blocked adapter types */
26
+ blockedAdapters?: string[];
27
+ /** Maximum step timeout (ms) */
28
+ maxStepTimeout?: number;
29
+ /** Maximum workflow timeout (ms) */
30
+ maxWorkflowTimeout?: number;
31
+ }
32
+ /**
33
+ * Resource and permission guard
34
+ */
35
+ export declare class ResourceGuard {
36
+ private policy;
37
+ constructor(policy?: Partial<PermissionPolicy>);
38
+ /**
39
+ * Validate step against permission policy
40
+ *
41
+ * @param step - Step to validate
42
+ * @throws {Error} If step violates policy
43
+ */
44
+ validateStep(step: ParsedStep): void;
45
+ /**
46
+ * Check if adapter type is allowed
47
+ */
48
+ private checkAdapterPermission;
49
+ /**
50
+ * Check timeout limits
51
+ */
52
+ private checkTimeout;
53
+ /**
54
+ * Parse timeout string to milliseconds
55
+ */
56
+ private parseTimeoutString;
57
+ /**
58
+ * Check network access permission
59
+ */
60
+ private checkNetworkAccess;
61
+ /**
62
+ * Check file system access permission
63
+ */
64
+ private checkFileSystemAccess;
65
+ /**
66
+ * Check shell execution permission
67
+ */
68
+ private checkShellAccess;
69
+ /**
70
+ * Validate workflow-level resource limits
71
+ *
72
+ * @param steps - All workflow steps
73
+ * @param workflowTimeout - Total workflow timeout
74
+ * @throws {Error} If workflow exceeds limits
75
+ */
76
+ validateWorkflow(steps: ParsedStep[], workflowTimeout?: number): void;
77
+ /**
78
+ * Get current policy
79
+ */
80
+ getPolicy(): PermissionPolicy;
81
+ /**
82
+ * Create a restrictive policy (for untrusted workflows)
83
+ */
84
+ static restrictivePolicy(): PermissionPolicy;
85
+ /**
86
+ * Create a permissive policy (for trusted workflows)
87
+ */
88
+ static permissivePolicy(): PermissionPolicy;
89
+ }
90
+ //# sourceMappingURL=ResourceGuard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceGuard.d.ts","sourceRoot":"","sources":["../../src/guards/ResourceGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oCAAoC;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAeD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,GAAE,OAAO,CAAC,gBAAgB,CAAM;IAIlD;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAQpC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAoB9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;;;;;OAMG;IACH,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBrE;;OAEG;IACH,SAAS,IAAI,gBAAgB;IAI7B;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI,gBAAgB;IAY5C;;OAEG;IACH,MAAM,CAAC,gBAAgB,IAAI,gBAAgB;CAG5C"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Resource Guard
3
+ *
4
+ * Future security and resource limiting layer.
5
+ * Currently provides basic checks, will be extended for:
6
+ * - Permission policies
7
+ * - Resource limits (CPU, memory, network)
8
+ * - Sandbox enforcement
9
+ *
10
+ * @module guards
11
+ */
12
+ /**
13
+ * Default permission policy (permissive)
14
+ */
15
+ const DEFAULT_POLICY = {
16
+ allowNetwork: true,
17
+ allowFileSystem: true,
18
+ allowShell: true,
19
+ allowedAdapters: undefined, // Allow all
20
+ blockedAdapters: [],
21
+ maxStepTimeout: 30 * 60 * 1000, // 30 minutes
22
+ maxWorkflowTimeout: 2 * 60 * 60 * 1000, // 2 hours
23
+ };
24
+ /**
25
+ * Resource and permission guard
26
+ */
27
+ export class ResourceGuard {
28
+ policy;
29
+ constructor(policy = {}) {
30
+ this.policy = { ...DEFAULT_POLICY, ...policy };
31
+ }
32
+ /**
33
+ * Validate step against permission policy
34
+ *
35
+ * @param step - Step to validate
36
+ * @throws {Error} If step violates policy
37
+ */
38
+ validateStep(step) {
39
+ this.checkAdapterPermission(step);
40
+ this.checkTimeout(step);
41
+ this.checkNetworkAccess(step);
42
+ this.checkFileSystemAccess(step);
43
+ this.checkShellAccess(step);
44
+ }
45
+ /**
46
+ * Check if adapter type is allowed
47
+ */
48
+ checkAdapterPermission(step) {
49
+ const { adapter } = step;
50
+ const { allowedAdapters, blockedAdapters } = this.policy;
51
+ // Check blocked list first
52
+ if (blockedAdapters && blockedAdapters.includes(adapter)) {
53
+ throw new Error(`Step '${step.id}': adapter '${adapter}' is blocked by policy`);
54
+ }
55
+ // Check allowed list if defined
56
+ if (allowedAdapters && !allowedAdapters.includes(adapter)) {
57
+ throw new Error(`Step '${step.id}': adapter '${adapter}' is not in allowed list. ` +
58
+ `Allowed: ${allowedAdapters.join(', ')}`);
59
+ }
60
+ }
61
+ /**
62
+ * Check timeout limits
63
+ */
64
+ checkTimeout(step) {
65
+ const { maxStepTimeout } = this.policy;
66
+ if (maxStepTimeout && step.timeout) {
67
+ const timeoutMs = this.parseTimeoutString(step.timeout);
68
+ if (timeoutMs > maxStepTimeout) {
69
+ throw new Error(`Step '${step.id}': timeout ${timeoutMs}ms exceeds policy limit ${maxStepTimeout}ms`);
70
+ }
71
+ }
72
+ }
73
+ /**
74
+ * Parse timeout string to milliseconds
75
+ */
76
+ parseTimeoutString(timeout) {
77
+ const match = timeout.match(/^([0-9]+)(ms|s|m|h|d)$/);
78
+ if (!match) {
79
+ return 30000; // Default 30s
80
+ }
81
+ const value = parseInt(match[1], 10);
82
+ const unit = match[2];
83
+ switch (unit) {
84
+ case 'ms':
85
+ return value;
86
+ case 's':
87
+ return value * 1000;
88
+ case 'm':
89
+ return value * 60 * 1000;
90
+ case 'h':
91
+ return value * 60 * 60 * 1000;
92
+ case 'd':
93
+ return value * 24 * 60 * 60 * 1000;
94
+ default:
95
+ return 30000;
96
+ }
97
+ }
98
+ /**
99
+ * Check network access permission
100
+ */
101
+ checkNetworkAccess(step) {
102
+ if (this.policy.allowNetwork === false) {
103
+ const networkAdapters = ['http', 'webhook', 'api'];
104
+ if (networkAdapters.includes(step.adapter)) {
105
+ throw new Error(`Step '${step.id}': network access not allowed by policy`);
106
+ }
107
+ }
108
+ }
109
+ /**
110
+ * Check file system access permission
111
+ */
112
+ checkFileSystemAccess(step) {
113
+ if (this.policy.allowFileSystem === false) {
114
+ const fsAdapters = ['fs', 'file'];
115
+ if (fsAdapters.includes(step.adapter)) {
116
+ throw new Error(`Step '${step.id}': file system access not allowed by policy`);
117
+ }
118
+ }
119
+ }
120
+ /**
121
+ * Check shell execution permission
122
+ */
123
+ checkShellAccess(step) {
124
+ if (this.policy.allowShell === false) {
125
+ const shellAdapters = ['shell', 'cli', 'exec'];
126
+ if (shellAdapters.includes(step.adapter)) {
127
+ throw new Error(`Step '${step.id}': shell execution not allowed by policy`);
128
+ }
129
+ }
130
+ }
131
+ /**
132
+ * Validate workflow-level resource limits
133
+ *
134
+ * @param steps - All workflow steps
135
+ * @param workflowTimeout - Total workflow timeout
136
+ * @throws {Error} If workflow exceeds limits
137
+ */
138
+ validateWorkflow(steps, workflowTimeout) {
139
+ // Check workflow timeout
140
+ if (this.policy.maxWorkflowTimeout && workflowTimeout) {
141
+ if (workflowTimeout > this.policy.maxWorkflowTimeout) {
142
+ throw new Error(`Workflow timeout ${workflowTimeout}ms exceeds policy limit ${this.policy.maxWorkflowTimeout}ms`);
143
+ }
144
+ }
145
+ // Validate each step
146
+ for (const step of steps) {
147
+ this.validateStep(step);
148
+ }
149
+ }
150
+ /**
151
+ * Get current policy
152
+ */
153
+ getPolicy() {
154
+ return { ...this.policy };
155
+ }
156
+ /**
157
+ * Create a restrictive policy (for untrusted workflows)
158
+ */
159
+ static restrictivePolicy() {
160
+ return {
161
+ allowNetwork: false,
162
+ allowFileSystem: false,
163
+ allowShell: false,
164
+ allowedAdapters: ['plugin'], // Only plugins
165
+ blockedAdapters: ['shell', 'cli', 'exec', 'fs'],
166
+ maxStepTimeout: 5 * 60 * 1000, // 5 minutes
167
+ maxWorkflowTimeout: 15 * 60 * 1000, // 15 minutes
168
+ };
169
+ }
170
+ /**
171
+ * Create a permissive policy (for trusted workflows)
172
+ */
173
+ static permissivePolicy() {
174
+ return DEFAULT_POLICY;
175
+ }
176
+ }
177
+ //# sourceMappingURL=ResourceGuard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceGuard.js","sourceRoot":"","sources":["../../src/guards/ResourceGuard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Step Guard
3
+ *
4
+ * Validates individual step configurations:
5
+ * - Step structure validation
6
+ * - Input parameter validation
7
+ * - Timeout validation
8
+ * - Retry policy validation
9
+ *
10
+ * @module guards
11
+ */
12
+ import type { ParsedStep } from '../parser/StepParser.js';
13
+ /**
14
+ * Step validation guard
15
+ */
16
+ export declare class StepGuard {
17
+ /**
18
+ * Validate a single step
19
+ *
20
+ * @param step - Step to validate
21
+ * @param availableSteps - Set of all step IDs in workflow
22
+ * @throws {Error} If validation fails
23
+ */
24
+ static validate(step: ParsedStep, availableSteps: Set<string>): void;
25
+ /**
26
+ * Validate required fields
27
+ *
28
+ * @param step - Step to validate
29
+ * @throws {Error} If required fields missing
30
+ */
31
+ private static validateRequired;
32
+ /**
33
+ * Validate timeout values
34
+ *
35
+ * @param step - Step to validate
36
+ * @throws {Error} If timeout invalid
37
+ */
38
+ private static validateTimeout;
39
+ /**
40
+ * Validate retry policy
41
+ *
42
+ * @param step - Step to validate
43
+ * @throws {Error} If retry policy invalid
44
+ */
45
+ private static validateRetryPolicy;
46
+ /**
47
+ * Validate step dependencies exist
48
+ *
49
+ * @param step - Step to validate
50
+ * @param availableSteps - Set of all step IDs
51
+ * @throws {Error} If dependency doesn't exist
52
+ */
53
+ private static validateDependencies;
54
+ /**
55
+ * Validate variable references in step inputs
56
+ *
57
+ * @param step - Step to validate
58
+ * @param availableSteps - Set of all step IDs
59
+ * @throws {Error} If variable references unknown step
60
+ */
61
+ private static validateVariableReferences;
62
+ /**
63
+ * Validate adapter-specific requirements
64
+ *
65
+ * @param step - Step to validate
66
+ * @throws {Error} If adapter requirements not met
67
+ */
68
+ static validateAdapterRequirements(step: ParsedStep): void;
69
+ /**
70
+ * Validate HTTP adapter requirements
71
+ */
72
+ private static validateHttpAdapter;
73
+ /**
74
+ * Validate shell adapter requirements
75
+ */
76
+ private static validateShellAdapter;
77
+ /**
78
+ * Validate CLI adapter requirements
79
+ */
80
+ private static validateCliAdapter;
81
+ /**
82
+ * Check if step has any conditional execution
83
+ *
84
+ * @param step - Step to check
85
+ * @returns True if step has 'when' condition
86
+ */
87
+ static isConditional(step: ParsedStep): boolean;
88
+ /**
89
+ * Check if step is retryable
90
+ *
91
+ * @param step - Step to check
92
+ * @returns True if step has retry policy configured
93
+ */
94
+ static isRetryable(step: ParsedStep): boolean;
95
+ }
96
+ //# sourceMappingURL=StepGuard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepGuard.d.ts","sourceRoot":"","sources":["../../src/guards/StepGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D;;GAEG;AACH,qBAAa,SAAS;IACpB;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI;IAQpE;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAc/B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAiB9B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAkBlC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAoBnC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAczC;;;;;OAKG;IACH,MAAM,CAAC,2BAA2B,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAkB1D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAWlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAQnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAQjC;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAI/C;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;CAG9C"}