@codemation/core 0.0.1

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 (348) hide show
  1. package/README.md +30 -0
  2. package/dist/EngineExecutionLimitsPolicy-8MEFIYx1.d.cts +160 -0
  3. package/dist/EngineExecutionLimitsPolicy-BWAXW9D6.d.cts +160 -0
  4. package/dist/EngineExecutionLimitsPolicy-Bp8PS1Ss.d.cts +159 -0
  5. package/dist/EngineExecutionLimitsPolicy-CLxcN-D2.d.ts +159 -0
  6. package/dist/EngineExecutionLimitsPolicy-DZXuix51.d.ts +160 -0
  7. package/dist/EngineExecutionLimitsPolicy-Gfz6ngFd.d.ts +160 -0
  8. package/dist/EngineFactory-CBnntY3J.cjs +3152 -0
  9. package/dist/EngineFactory-CBnntY3J.cjs.map +1 -0
  10. package/dist/EngineFactory-Cwn3R2YA.js +3087 -0
  11. package/dist/EngineFactory-Cwn3R2YA.js.map +1 -0
  12. package/dist/EngineFactory-DWCnNocp.js +3063 -0
  13. package/dist/EngineFactory-DWCnNocp.js.map +1 -0
  14. package/dist/EngineFactory-DhPFou4p.cjs +3188 -0
  15. package/dist/EngineFactory-DhPFou4p.cjs.map +1 -0
  16. package/dist/EngineFactory-l_9xmBtv.cjs +3190 -0
  17. package/dist/EngineFactory-l_9xmBtv.cjs.map +1 -0
  18. package/dist/EngineFactory-w-aOWuqh.js +3089 -0
  19. package/dist/EngineFactory-w-aOWuqh.js.map +1 -0
  20. package/dist/InMemoryLiveWorkflowRepository-1J9MHN_I.js +18 -0
  21. package/dist/InMemoryLiveWorkflowRepository-1J9MHN_I.js.map +1 -0
  22. package/dist/InMemoryLiveWorkflowRepository-BTzHpQ6e.cjs +151 -0
  23. package/dist/InMemoryLiveWorkflowRepository-BTzHpQ6e.cjs.map +1 -0
  24. package/dist/InMemoryLiveWorkflowRepository-BoLNnVLg.js +139 -0
  25. package/dist/InMemoryLiveWorkflowRepository-BoLNnVLg.js.map +1 -0
  26. package/dist/InMemoryLiveWorkflowRepository-CULNqv96.d.ts +1300 -0
  27. package/dist/InMemoryLiveWorkflowRepository-D6eiiXxF.d.cts +1168 -0
  28. package/dist/InMemoryLiveWorkflowRepository-D7l8cjdZ.d.cts +1130 -0
  29. package/dist/InMemoryLiveWorkflowRepository-DL7LmC9S.d.ts +1340 -0
  30. package/dist/InMemoryLiveWorkflowRepository-jnv-OnOP.d.ts +1300 -0
  31. package/dist/InMemoryLiveWorkflowRepository-xny1_Z6i.cjs +24 -0
  32. package/dist/InMemoryLiveWorkflowRepository-xny1_Z6i.cjs.map +1 -0
  33. package/dist/InMemoryLiveWorkflowRepository-xr7b4kvi.d.ts +1338 -0
  34. package/dist/InMemoryWorkflowCatalog-BIdFpwbK.d.ts +1205 -0
  35. package/dist/InMemoryWorkflowCatalog-BW00_3N3.d.cts +12 -0
  36. package/dist/InMemoryWorkflowCatalog-BiYHGoPw.cjs +24 -0
  37. package/dist/InMemoryWorkflowCatalog-BiYHGoPw.cjs.map +1 -0
  38. package/dist/InMemoryWorkflowCatalog-BrG0ApMO.d.cts +1115 -0
  39. package/dist/InMemoryWorkflowCatalog-BzrAr--Y.js +139 -0
  40. package/dist/InMemoryWorkflowCatalog-BzrAr--Y.js.map +1 -0
  41. package/dist/InMemoryWorkflowCatalog-C-EJlJ7y.d.cts +1120 -0
  42. package/dist/InMemoryWorkflowCatalog-C4482bpw.cjs +24 -0
  43. package/dist/InMemoryWorkflowCatalog-C4482bpw.cjs.map +1 -0
  44. package/dist/InMemoryWorkflowCatalog-CZ0kZpOv.d.ts +1289 -0
  45. package/dist/InMemoryWorkflowCatalog-C_ACeLyW.d.cts +1119 -0
  46. package/dist/InMemoryWorkflowCatalog-CiHWIu5E.d.cts +12 -0
  47. package/dist/InMemoryWorkflowCatalog-CkH7gkya.js +18 -0
  48. package/dist/InMemoryWorkflowCatalog-CkH7gkya.js.map +1 -0
  49. package/dist/InMemoryWorkflowCatalog-CnpZVJM9.d.ts +1205 -0
  50. package/dist/InMemoryWorkflowCatalog-Cu68S8YR.js +18 -0
  51. package/dist/InMemoryWorkflowCatalog-Cu68S8YR.js.map +1 -0
  52. package/dist/InMemoryWorkflowCatalog-D2w9nMj2.cjs +151 -0
  53. package/dist/InMemoryWorkflowCatalog-D2w9nMj2.cjs.map +1 -0
  54. package/dist/InMemoryWorkflowCatalog-D5eMxEf7.js +18 -0
  55. package/dist/InMemoryWorkflowCatalog-D5eMxEf7.js.map +1 -0
  56. package/dist/InMemoryWorkflowCatalog-D5nCp2yZ.d.ts +1267 -0
  57. package/dist/InMemoryWorkflowCatalog-DIq0bjqN.d.ts +12 -0
  58. package/dist/InMemoryWorkflowCatalog-DLgaEaw_.d.ts +1288 -0
  59. package/dist/InMemoryWorkflowCatalog-DNBFdK-x.d.cts +1120 -0
  60. package/dist/InMemoryWorkflowCatalog-DQBkCzb7.cjs +24 -0
  61. package/dist/InMemoryWorkflowCatalog-DQBkCzb7.cjs.map +1 -0
  62. package/dist/InMemoryWorkflowCatalog-DS4-eX6i.d.cts +1118 -0
  63. package/dist/InMemoryWorkflowCatalog-DdVfy8MY.d.ts +12 -0
  64. package/dist/InMemoryWorkflowCatalog-DeVZu3g8.d.ts +12 -0
  65. package/dist/InMemoryWorkflowCatalog-GxkQjvt5.d.ts +1200 -0
  66. package/dist/InMemoryWorkflowCatalog-qaVRn1Lc.d.cts +1115 -0
  67. package/dist/InMemoryWorkflowCatalog-z1aIT4TC.d.cts +12 -0
  68. package/dist/InMemoryWorkflowRegistry-BBuOovLL.d.ts +1007 -0
  69. package/dist/InMemoryWorkflowRegistry-BIFnSl3k.d.ts +1201 -0
  70. package/dist/InMemoryWorkflowRegistry-BnGilthz.d.ts +1137 -0
  71. package/dist/InMemoryWorkflowRegistry-CEp5I8No.d.ts +1146 -0
  72. package/dist/InMemoryWorkflowRegistry-CHyMB9jW.d.cts +976 -0
  73. package/dist/InMemoryWorkflowRegistry-CUN7K86m.d.cts +1061 -0
  74. package/dist/InMemoryWorkflowRegistry-CVfHyELh.d.cts +971 -0
  75. package/dist/InMemoryWorkflowRegistry-CXXJrwAr.d.cts +1052 -0
  76. package/dist/InMemoryWorkflowRegistry-DDGfPTJy.d.ts +1013 -0
  77. package/dist/InMemoryWorkflowRegistry-DnYSOoT5.d.ts +1120 -0
  78. package/dist/InMemoryWorkflowRegistry-Dp5GiFF2.d.cts +1035 -0
  79. package/dist/InMemoryWorkflowRegistry-DypDBeOw.d.cts +1116 -0
  80. package/dist/InMemoryWorkflowRegistry-SzwJCAxT.d.ts +1012 -0
  81. package/dist/InMemoryWorkflowRegistry-jupvqyGc.d.cts +977 -0
  82. package/dist/InMemoryWorkflowRegistry-rAdKVWYT.d.ts +1117 -0
  83. package/dist/InProcessRetryRunner-BBNPkXjy.d.cts +292 -0
  84. package/dist/PersistedWorkflowSnapshotFactory-7RkOL3Kg.d.ts +14 -0
  85. package/dist/PersistedWorkflowSnapshotFactory-BmANa46W.cjs +141 -0
  86. package/dist/PersistedWorkflowSnapshotFactory-BmANa46W.cjs.map +1 -0
  87. package/dist/PersistedWorkflowSnapshotFactory-Bwb_etSt.js +118 -0
  88. package/dist/PersistedWorkflowSnapshotFactory-Bwb_etSt.js.map +1 -0
  89. package/dist/PersistedWorkflowSnapshotFactory-CRkKGNV6.js +123 -0
  90. package/dist/PersistedWorkflowSnapshotFactory-CRkKGNV6.js.map +1 -0
  91. package/dist/PersistedWorkflowSnapshotFactory-CZolnGy5.js +101 -0
  92. package/dist/PersistedWorkflowSnapshotFactory-CZolnGy5.js.map +1 -0
  93. package/dist/PersistedWorkflowSnapshotFactory-Ca_oysOv.cjs +131 -0
  94. package/dist/PersistedWorkflowSnapshotFactory-Ca_oysOv.cjs.map +1 -0
  95. package/dist/PersistedWorkflowSnapshotFactory-CqIcShnX.js +103 -0
  96. package/dist/PersistedWorkflowSnapshotFactory-CqIcShnX.js.map +1 -0
  97. package/dist/PersistedWorkflowSnapshotFactory-D-tBk4_G.js +119 -0
  98. package/dist/PersistedWorkflowSnapshotFactory-D-tBk4_G.js.map +1 -0
  99. package/dist/PersistedWorkflowSnapshotFactory-D4cXl2e2.cjs +131 -0
  100. package/dist/PersistedWorkflowSnapshotFactory-D4cXl2e2.cjs.map +1 -0
  101. package/dist/PersistedWorkflowSnapshotFactory-DINoP12r.cjs +131 -0
  102. package/dist/PersistedWorkflowSnapshotFactory-DINoP12r.cjs.map +1 -0
  103. package/dist/PersistedWorkflowSnapshotFactory-DJAwSuHU.js +103 -0
  104. package/dist/PersistedWorkflowSnapshotFactory-DJAwSuHU.js.map +1 -0
  105. package/dist/PersistedWorkflowSnapshotFactory-DSUjVCcf.cjs +131 -0
  106. package/dist/PersistedWorkflowSnapshotFactory-DSUjVCcf.cjs.map +1 -0
  107. package/dist/PersistedWorkflowSnapshotFactory-DdHuhkDb.cjs +107 -0
  108. package/dist/PersistedWorkflowSnapshotFactory-DdHuhkDb.cjs.map +1 -0
  109. package/dist/PersistedWorkflowSnapshotFactory-Dqc6NHis.js +119 -0
  110. package/dist/PersistedWorkflowSnapshotFactory-Dqc6NHis.js.map +1 -0
  111. package/dist/PersistedWorkflowSnapshotFactory-Dxa2dSrw.cjs +130 -0
  112. package/dist/PersistedWorkflowSnapshotFactory-Dxa2dSrw.cjs.map +1 -0
  113. package/dist/PersistedWorkflowSnapshotFactory-Ep79Ah1G.js +123 -0
  114. package/dist/PersistedWorkflowSnapshotFactory-Ep79Ah1G.js.map +1 -0
  115. package/dist/PersistedWorkflowSnapshotFactory-GyLfRuiJ.js +119 -0
  116. package/dist/PersistedWorkflowSnapshotFactory-GyLfRuiJ.js.map +1 -0
  117. package/dist/PersistedWorkflowSnapshotFactory-HTpBsBzn.js +102 -0
  118. package/dist/PersistedWorkflowSnapshotFactory-HTpBsBzn.js.map +1 -0
  119. package/dist/PersistedWorkflowSnapshotFactory-LVmaaf3t.cjs +141 -0
  120. package/dist/PersistedWorkflowSnapshotFactory-LVmaaf3t.cjs.map +1 -0
  121. package/dist/PersistedWorkflowSnapshotFactory-PZCpo2ZS.js +119 -0
  122. package/dist/PersistedWorkflowSnapshotFactory-PZCpo2ZS.js.map +1 -0
  123. package/dist/PersistedWorkflowSnapshotFactory-UjQ1SJev.cjs +109 -0
  124. package/dist/PersistedWorkflowSnapshotFactory-UjQ1SJev.cjs.map +1 -0
  125. package/dist/PersistedWorkflowSnapshotFactory-Y8kCrhcy.cjs +109 -0
  126. package/dist/PersistedWorkflowSnapshotFactory-Y8kCrhcy.cjs.map +1 -0
  127. package/dist/PersistedWorkflowSnapshotFactory-Z_nB-fmB.cjs +108 -0
  128. package/dist/PersistedWorkflowSnapshotFactory-Z_nB-fmB.cjs.map +1 -0
  129. package/dist/RunIntentService-1EE6N8ZL.cjs +963 -0
  130. package/dist/RunIntentService-1EE6N8ZL.cjs.map +1 -0
  131. package/dist/RunIntentService-2ivFmNQh.cjs +3462 -0
  132. package/dist/RunIntentService-2ivFmNQh.cjs.map +1 -0
  133. package/dist/RunIntentService-B0sUL5q-.js +761 -0
  134. package/dist/RunIntentService-B0sUL5q-.js.map +1 -0
  135. package/dist/RunIntentService-BFVbsOcg.js +3131 -0
  136. package/dist/RunIntentService-BFVbsOcg.js.map +1 -0
  137. package/dist/RunIntentService-BsBOwpVN.cjs +1051 -0
  138. package/dist/RunIntentService-BsBOwpVN.cjs.map +1 -0
  139. package/dist/RunIntentService-CSk3ETyn.js +858 -0
  140. package/dist/RunIntentService-CSk3ETyn.js.map +1 -0
  141. package/dist/RunIntentService-Ckn3u3tA.d.cts +326 -0
  142. package/dist/RunIntentService-DEo6GTTo.d.cts +289 -0
  143. package/dist/RunIntentService-DKrGtL0B.js +782 -0
  144. package/dist/RunIntentService-DKrGtL0B.js.map +1 -0
  145. package/dist/RunIntentService-DNOJc1R7.cjs +942 -0
  146. package/dist/RunIntentService-DNOJc1R7.cjs.map +1 -0
  147. package/dist/RunIntentService-Dq3pV53j.d.cts +289 -0
  148. package/dist/RunIntentService-NKobsfMQ.d.cts +274 -0
  149. package/dist/WorkflowSnapshotCodec-C3fuuS_R.d.cts +22 -0
  150. package/dist/WorkflowSnapshotCodec-CUudUo6f.js +123 -0
  151. package/dist/WorkflowSnapshotCodec-CUudUo6f.js.map +1 -0
  152. package/dist/WorkflowSnapshotCodec-CuCPQZTc.cjs +129 -0
  153. package/dist/WorkflowSnapshotCodec-CuCPQZTc.cjs.map +1 -0
  154. package/dist/WorkflowSnapshotCodec-DLiXQNvV.d.cts +22 -0
  155. package/dist/WorkflowSnapshotCodec-DNtdrZ7l.d.cts +22 -0
  156. package/dist/WorkflowSnapshotCodec-DTdWkoW_.d.cts +22 -0
  157. package/dist/bootstrap/index.cjs +1028 -0
  158. package/dist/bootstrap/index.cjs.map +1 -0
  159. package/dist/bootstrap/index.d.cts +311 -0
  160. package/dist/bootstrap/index.d.ts +83 -0
  161. package/dist/bootstrap/index.js +994 -0
  162. package/dist/bootstrap/index.js.map +1 -0
  163. package/dist/credentialTypes-B5h3dI7r.d.cts +1107 -0
  164. package/dist/credentialTypes-B9okPCVo.d.cts +963 -0
  165. package/dist/credentialTypes-BFL70rgZ.d.cts +964 -0
  166. package/dist/credentialTypes-BGkh1O07.d.ts +1010 -0
  167. package/dist/credentialTypes-BNLi4Q7u.d.ts +1030 -0
  168. package/dist/credentialTypes-CeSoZGj3.d.cts +994 -0
  169. package/dist/credentialTypes-CpHc32Ig.d.cts +984 -0
  170. package/dist/credentialTypes-D0m7MQQl.d.cts +1107 -0
  171. package/dist/credentialTypes-D4nL2sUd.d.ts +1000 -0
  172. package/dist/credentialTypes-DBYK2Qbu.d.ts +999 -0
  173. package/dist/credentialTypes-DMJVy0r1.d.ts +1000 -0
  174. package/dist/credentialTypes-DhUAjYQp.d.ts +1020 -0
  175. package/dist/credentialTypes-gGITj5KL.d.cts +964 -0
  176. package/dist/credentialTypes-r3KVBJBE.d.cts +974 -0
  177. package/dist/diTokens-ClO27tjK.cjs +34 -0
  178. package/dist/diTokens-ClO27tjK.cjs.map +1 -0
  179. package/dist/diTokens-CoHBkwG6.js +28 -0
  180. package/dist/diTokens-CoHBkwG6.js.map +1 -0
  181. package/dist/index-6Doxmfnd.d.ts +857 -0
  182. package/dist/index-9g6Pfe9Z.d.ts +689 -0
  183. package/dist/index-AZ72Ej-K.d.ts +920 -0
  184. package/dist/index-BEk9V-q-.d.ts +667 -0
  185. package/dist/index-Bjt7_7oS.d.ts +1192 -0
  186. package/dist/index-CFGxsYXy.d.ts +708 -0
  187. package/dist/index-C_u8xFgn.d.ts +690 -0
  188. package/dist/index-CpbfsvOJ.d.ts +1192 -0
  189. package/dist/index-CsReNJN_.d.ts +859 -0
  190. package/dist/index-D5iNnXaW.d.ts +667 -0
  191. package/dist/index-DD_Eft1q.d.ts +708 -0
  192. package/dist/index-DiSYUe0G.d.ts +1192 -0
  193. package/dist/index-gIcH60sp.d.ts +674 -0
  194. package/dist/index.cjs +520 -0
  195. package/dist/index.cjs.map +1 -0
  196. package/dist/index.d.cts +345 -0
  197. package/dist/index.d.ts +3 -0
  198. package/dist/index.js +412 -0
  199. package/dist/index.js.map +1 -0
  200. package/dist/runtime-BIvd-1JA.cjs +4112 -0
  201. package/dist/runtime-BIvd-1JA.cjs.map +1 -0
  202. package/dist/runtime-D3eWKSQK.cjs +3986 -0
  203. package/dist/runtime-D3eWKSQK.cjs.map +1 -0
  204. package/dist/runtime-Dvp4xAjg.js +3799 -0
  205. package/dist/runtime-Dvp4xAjg.js.map +1 -0
  206. package/dist/runtime-vc76SSAa.js +3685 -0
  207. package/dist/runtime-vc76SSAa.js.map +1 -0
  208. package/dist/runtimeTypes-BK0b8SaG.d.cts +884 -0
  209. package/dist/runtimeTypes-CoYZkYQq.d.cts +851 -0
  210. package/dist/runtimeTypes-D-Pm0Uas.d.cts +849 -0
  211. package/dist/testing.cjs +18 -0
  212. package/dist/testing.cjs.map +1 -0
  213. package/dist/testing.d.cts +19 -0
  214. package/dist/testing.d.ts +18 -0
  215. package/dist/testing.js +16 -0
  216. package/dist/testing.js.map +1 -0
  217. package/dist/types-Cb5UK7Y6.d.ts +857 -0
  218. package/package.json +66 -0
  219. package/src/ai/AiHost.ts +115 -0
  220. package/src/binaries/DefaultExecutionBinaryServiceFactory.ts +37 -0
  221. package/src/binaries/DefaultNodeBinaryAttachmentServiceFactory.ts +120 -0
  222. package/src/binaries/UnavailableBinaryStorage.ts +19 -0
  223. package/src/binaries/index.ts +2 -0
  224. package/src/bootstrap/index.ts +46 -0
  225. package/src/bootstrap/runtime/EngineRuntimeRegistrar.ts +180 -0
  226. package/src/bootstrap/runtime/EngineRuntimeRegistration.types.ts +43 -0
  227. package/src/bootstrap/runtime/index.ts +6 -0
  228. package/src/browser.ts +8 -0
  229. package/src/contracts/Clock.ts +10 -0
  230. package/src/contracts/ExpRetryPolicy.ts +23 -0
  231. package/src/contracts/NoRetryPolicy.ts +5 -0
  232. package/src/contracts/RetryPolicy.ts +23 -0
  233. package/src/contracts/credentialTypes.ts +194 -0
  234. package/src/contracts/index.ts +6 -0
  235. package/src/contracts/retryPolicySpec.types.ts +30 -0
  236. package/src/contracts/runFinishedAtFactory.ts +19 -0
  237. package/src/contracts/runTypes.ts +314 -0
  238. package/src/contracts/runtimeTypes.ts +373 -0
  239. package/src/contracts/webhookTypes.ts +49 -0
  240. package/src/contracts/workflowActivationPolicy.ts +16 -0
  241. package/src/contracts/workflowTypes.ts +280 -0
  242. package/src/di/CoreTokens.ts +60 -0
  243. package/src/di/index.ts +24 -0
  244. package/src/events/EventPublishingWorkflowExecutionRepository.ts +67 -0
  245. package/src/events/InMemoryRunEventBusRegistry.ts +37 -0
  246. package/src/events/InMemoryRunEventSubscription.ts +9 -0
  247. package/src/events/NodeEventPublisher.ts +22 -0
  248. package/src/events/index.ts +4 -0
  249. package/src/events/runEvents.ts +54 -0
  250. package/src/execution/ActivationEnqueueService.ts +125 -0
  251. package/src/execution/CredentialResolverFactory.ts +39 -0
  252. package/src/execution/DefaultAsyncSleeper.ts +9 -0
  253. package/src/execution/DefaultExecutionContextFactory.ts +48 -0
  254. package/src/execution/InProcessRetryRunner.ts +115 -0
  255. package/src/execution/InProcessRetryRunnerFactory.ts +8 -0
  256. package/src/execution/NodeActivationRequestComposer.ts +113 -0
  257. package/src/execution/NodeExecutionSnapshotFactory.ts +152 -0
  258. package/src/execution/NodeExecutor.ts +43 -0
  259. package/src/execution/NodeExecutorFactory.ts +10 -0
  260. package/src/execution/NodeInputsByPortFactory.ts +14 -0
  261. package/src/execution/NodeInstanceFactory.ts +32 -0
  262. package/src/execution/NodeInstanceFactoryFactory.ts +9 -0
  263. package/src/execution/NodeRunStateWriter.ts +185 -0
  264. package/src/execution/NodeRunStateWriterFactory.ts +29 -0
  265. package/src/execution/PersistedRunStateTerminalBuilder.ts +25 -0
  266. package/src/execution/RunStateSemantics.ts +158 -0
  267. package/src/execution/WorkflowRunExecutionContextFactory.ts +45 -0
  268. package/src/execution/asyncSleeper.types.ts +3 -0
  269. package/src/execution/index.ts +26 -0
  270. package/src/index.ts +18 -0
  271. package/src/orchestration/Engine.ts +229 -0
  272. package/src/orchestration/EngineWaiters.ts +37 -0
  273. package/src/orchestration/RunContinuationService.ts +810 -0
  274. package/src/orchestration/RunStartService.ts +449 -0
  275. package/src/orchestration/TriggerRuntimeService.ts +260 -0
  276. package/src/orchestration/index.ts +5 -0
  277. package/src/planning/CurrentStateFrontierPlanner.ts +400 -0
  278. package/src/planning/EngineWorkflowPlanningFactory.ts +63 -0
  279. package/src/planning/RunQueuePlanner.ts +302 -0
  280. package/src/planning/WorkflowTopologyPlanner.ts +77 -0
  281. package/src/planning/index.ts +4 -0
  282. package/src/policies/WorkflowPolicyErrorServices.ts +38 -0
  283. package/src/policies/executionLimits/EngineExecutionLimitsPolicy.ts +66 -0
  284. package/src/policies/executionLimits/EngineExecutionLimitsPolicyFactory.ts +14 -0
  285. package/src/policies/index.ts +10 -0
  286. package/src/policies/storage/RunPolicySnapshotFactory.ts +23 -0
  287. package/src/policies/storage/RunTerminalPersistenceCoordinator.ts +29 -0
  288. package/src/policies/storage/WorkflowStoragePolicyEvaluator.ts +39 -0
  289. package/src/runStorage/BinaryBodyBufferReader.ts +57 -0
  290. package/src/runStorage/BinaryBodyReadableStreamFactory.ts +21 -0
  291. package/src/runStorage/InMemoryBinaryStorageRegistry.ts +53 -0
  292. package/src/runStorage/InMemoryRunData.ts +33 -0
  293. package/src/runStorage/InMemoryRunDataFactory.ts +8 -0
  294. package/src/runStorage/InMemoryWorkflowExecutionRepository.ts +95 -0
  295. package/src/runStorage/RunSummaryMapper.ts +17 -0
  296. package/src/runStorage/index.ts +7 -0
  297. package/src/runtime/EngineFactory.ts +151 -0
  298. package/src/runtime/EngineWorkflowRunnerService.ts +39 -0
  299. package/src/runtime/EngineWorkflowRunnerServiceFactory.ts +11 -0
  300. package/src/runtime/InMemoryLiveWorkflowRepository.ts +20 -0
  301. package/src/runtime/RunIntentService.ts +175 -0
  302. package/src/runtime/RunIntentServiceFactory.ts +11 -0
  303. package/src/runtime/WorkflowRepositoryWebhookTriggerMatcher.ts +144 -0
  304. package/src/runtime/WorkflowRepositoryWebhookTriggerMatcherFactory.ts +13 -0
  305. package/src/runtime/index.ts +9 -0
  306. package/src/runtime-types/InjectableRuntimeDecoratorComposerRegistry.ts +25 -0
  307. package/src/runtime-types/PersistedRuntimeTypeMetadataStoreRegistry.ts +46 -0
  308. package/src/runtime-types/PersistedRuntimeTypeNameResolver.ts +14 -0
  309. package/src/runtime-types/StackTraceCallSitePathResolver.ts +25 -0
  310. package/src/runtime-types/persistedRuntimeTypeModelRegistry.ts +33 -0
  311. package/src/runtime-types/runtimeTypeDecorators.types.ts +46 -0
  312. package/src/scheduler/ConfigDrivenOffloadPolicy.ts +28 -0
  313. package/src/scheduler/DefaultDrivingScheduler.ts +100 -0
  314. package/src/scheduler/HintOnlyOffloadPolicy.ts +9 -0
  315. package/src/scheduler/InlineDrivingScheduler.ts +145 -0
  316. package/src/scheduler/InlineDrivingSchedulerFactory.ts +9 -0
  317. package/src/scheduler/LocalOnlyScheduler.ts +7 -0
  318. package/src/serialization/ItemsInputNormalizer.ts +36 -0
  319. package/src/testing/RejectingCredentialSessionService.ts +15 -0
  320. package/src/testing.ts +6 -0
  321. package/src/types/index.ts +12 -0
  322. package/src/workflow/definition/ConnectionInvocationIdFactory.ts +17 -0
  323. package/src/workflow/definition/ConnectionNodeIdFactory.ts +42 -0
  324. package/src/workflow/definition/WorkflowExecutableNodeClassifier.ts +71 -0
  325. package/src/workflow/definition/WorkflowExecutableNodeClassifierFactory.ts +9 -0
  326. package/src/workflow/dsl/ChainCursorResolver.ts +103 -0
  327. package/src/workflow/dsl/WhenBuilder.ts +57 -0
  328. package/src/workflow/dsl/WorkflowBuilder.ts +55 -0
  329. package/src/workflow/dsl/workflowBuilderTypes.ts +63 -0
  330. package/src/workflow/graph/DefaultWorkflowGraphFactory.ts +8 -0
  331. package/src/workflow/graph/ExecutableGraph.ts +24 -0
  332. package/src/workflow/index.ts +11 -0
  333. package/src/workflowSnapshots/MissingRuntimeExecutionMarker.ts +5 -0
  334. package/src/workflowSnapshots/MissingRuntimeFallbacksFactory.ts +27 -0
  335. package/src/workflowSnapshots/MissingRuntimeNode.ts +12 -0
  336. package/src/workflowSnapshots/MissingRuntimeNodeConfig.ts +14 -0
  337. package/src/workflowSnapshots/MissingRuntimeNodeToken.ts +1 -0
  338. package/src/workflowSnapshots/MissingRuntimeTrigger.ts +16 -0
  339. package/src/workflowSnapshots/MissingRuntimeTriggerConfig.ts +14 -0
  340. package/src/workflowSnapshots/MissingRuntimeTriggerToken.ts +1 -0
  341. package/src/workflowSnapshots/PersistedRuntimeTypeIdFactory.ts +19 -0
  342. package/src/workflowSnapshots/PersistedWorkflowTokenRegistry.ts +89 -0
  343. package/src/workflowSnapshots/PersistedWorkflowTokenRegistryFactory.ts +2 -0
  344. package/src/workflowSnapshots/WorkflowSnapshotCodec.ts +177 -0
  345. package/src/workflowSnapshots/WorkflowSnapshotResolver.ts +102 -0
  346. package/src/workflowSnapshots/index.ts +12 -0
  347. package/tsconfig.json +9 -0
  348. package/tsdown.config.ts +10 -0
@@ -0,0 +1,373 @@
1
+ import type { ReadableStream as BinaryReadableStream } from "node:stream/web";
2
+ import type { TypeToken } from "../di";
3
+ import type { RunEventBus } from "../events/runEvents";
4
+ import type { CredentialSessionService } from "./credentialTypes";
5
+ import type {
6
+ ConnectionInvocationAppendArgs,
7
+ NodeInputsByPort,
8
+ PersistedWorkflowSnapshot,
9
+ PersistedWorkflowTokenRegistryLike,
10
+ RunExecutionOptions,
11
+ RunResult,
12
+ WorkflowExecutionRepository,
13
+ } from "./runTypes";
14
+ import type { WorkflowActivationPolicy } from "./workflowActivationPolicy";
15
+ import type { TriggerInstanceId, WebhookTriggerMatcher } from "./webhookTypes";
16
+ import type {
17
+ ActivationIdFactory,
18
+ BinaryAttachment,
19
+ Item,
20
+ Items,
21
+ JsonValue,
22
+ NodeActivationId,
23
+ NodeConfigBase,
24
+ NodeId,
25
+ NodeOutputs,
26
+ OutputPortKey,
27
+ ParentExecutionRef,
28
+ RunDataFactory,
29
+ RunDataSnapshot,
30
+ RunId,
31
+ RunIdFactory,
32
+ TriggerNodeConfig,
33
+ TriggerNodeSetupState,
34
+ WorkflowDefinition,
35
+ WorkflowId,
36
+ WorkflowPolicyRuntimeDefaults,
37
+ } from "./workflowTypes";
38
+
39
+ export interface WorkflowRunnerService {
40
+ runById(args: {
41
+ workflowId: WorkflowId;
42
+ startAt?: NodeId;
43
+ items: Items;
44
+ parent?: ParentExecutionRef;
45
+ }): Promise<RunResult>;
46
+ }
47
+
48
+ export interface WorkflowRunnerResolver {
49
+ resolve(): WorkflowRunnerService | undefined;
50
+ }
51
+
52
+ export interface WorkflowRepository {
53
+ list(): ReadonlyArray<WorkflowDefinition>;
54
+ get(workflowId: WorkflowId): WorkflowDefinition | undefined;
55
+ }
56
+
57
+ export interface LiveWorkflowRepository extends WorkflowRepository {
58
+ setWorkflows(workflows: ReadonlyArray<WorkflowDefinition>): void;
59
+ }
60
+
61
+ export interface NodeResolver {
62
+ resolve<T>(token: TypeToken<T>): T;
63
+ }
64
+
65
+ export interface NodeExecutionStatePublisher {
66
+ markQueued(args: { nodeId: NodeId; activationId?: NodeActivationId; inputsByPort?: NodeInputsByPort }): Promise<void>;
67
+ markRunning(args: {
68
+ nodeId: NodeId;
69
+ activationId?: NodeActivationId;
70
+ inputsByPort?: NodeInputsByPort;
71
+ }): Promise<void>;
72
+ markCompleted(args: {
73
+ nodeId: NodeId;
74
+ activationId?: NodeActivationId;
75
+ inputsByPort?: NodeInputsByPort;
76
+ outputs?: NodeOutputs;
77
+ }): Promise<void>;
78
+ markFailed(args: {
79
+ nodeId: NodeId;
80
+ activationId?: NodeActivationId;
81
+ inputsByPort?: NodeInputsByPort;
82
+ error: Error;
83
+ }): Promise<void>;
84
+ appendConnectionInvocation(args: ConnectionInvocationAppendArgs): Promise<void>;
85
+ }
86
+
87
+ export type BinaryBody = BinaryReadableStream<Uint8Array> | AsyncIterable<Uint8Array> | Uint8Array | ArrayBuffer;
88
+
89
+ export interface BinaryStorageWriteRequest {
90
+ storageKey: string;
91
+ body: BinaryBody;
92
+ }
93
+
94
+ export interface BinaryStorageWriteResult {
95
+ storageKey: string;
96
+ size: number;
97
+ sha256?: string;
98
+ }
99
+
100
+ export interface BinaryStorageReadResult {
101
+ body: BinaryReadableStream<Uint8Array>;
102
+ size?: number;
103
+ }
104
+
105
+ export interface BinaryStorageStatResult {
106
+ exists: boolean;
107
+ size?: number;
108
+ }
109
+
110
+ export interface BinaryStorage {
111
+ readonly driverName: string;
112
+ write(args: BinaryStorageWriteRequest): Promise<BinaryStorageWriteResult>;
113
+ openReadStream(storageKey: string): Promise<BinaryStorageReadResult | undefined>;
114
+ stat(storageKey: string): Promise<BinaryStorageStatResult>;
115
+ delete(storageKey: string): Promise<void>;
116
+ }
117
+
118
+ export interface BinaryAttachmentCreateRequest {
119
+ name: string;
120
+ body: BinaryBody;
121
+ mimeType: string;
122
+ filename?: string;
123
+ previewKind?: BinaryAttachment["previewKind"];
124
+ }
125
+
126
+ export interface NodeBinaryAttachmentService extends ExecutionBinaryService {
127
+ attach(args: BinaryAttachmentCreateRequest): Promise<BinaryAttachment>;
128
+ withAttachment<TJson>(item: Item<TJson>, name: string, attachment: BinaryAttachment): Item<TJson>;
129
+ }
130
+
131
+ export interface ExecutionBinaryService {
132
+ forNode(args: { nodeId: NodeId; activationId: NodeActivationId }): NodeBinaryAttachmentService;
133
+ openReadStream(attachment: BinaryAttachment): Promise<BinaryStorageReadResult | undefined>;
134
+ }
135
+
136
+ export interface ExecutionContext {
137
+ runId: RunId;
138
+ workflowId: WorkflowId;
139
+ parent?: ParentExecutionRef;
140
+ /** This run's subworkflow depth (0 = root). */
141
+ subworkflowDepth: number;
142
+ /** Effective activation budget cap for this run (after policy merge). */
143
+ engineMaxNodeActivations: number;
144
+ /** Effective subworkflow nesting cap for this run (after policy merge). */
145
+ engineMaxSubworkflowDepth: number;
146
+ now: () => Date;
147
+ data: RunDataSnapshot;
148
+ nodeState?: NodeExecutionStatePublisher;
149
+ binary: ExecutionBinaryService;
150
+ getCredential<TSession = unknown>(slotKey: string): Promise<TSession>;
151
+ }
152
+
153
+ export interface ExecutionContextFactory {
154
+ create(args: {
155
+ runId: RunId;
156
+ workflowId: WorkflowId;
157
+ parent?: ParentExecutionRef;
158
+ subworkflowDepth: number;
159
+ engineMaxNodeActivations: number;
160
+ engineMaxSubworkflowDepth: number;
161
+ data: RunDataSnapshot;
162
+ nodeState?: NodeExecutionStatePublisher;
163
+ getCredential<TSession = unknown>(slotKey: string): Promise<TSession>;
164
+ }): ExecutionContext;
165
+ }
166
+
167
+ export interface NodeExecutionContext<TConfig extends NodeConfigBase = NodeConfigBase> extends ExecutionContext {
168
+ nodeId: NodeId;
169
+ activationId: NodeActivationId;
170
+ config: TConfig;
171
+ binary: NodeBinaryAttachmentService;
172
+ }
173
+
174
+ export interface TriggerSetupContext<
175
+ TConfig extends TriggerNodeConfig<any, any> = TriggerNodeConfig<any, any>,
176
+ TSetupState extends JsonValue | undefined = TriggerNodeSetupState<TConfig>,
177
+ > extends ExecutionContext {
178
+ trigger: TriggerInstanceId;
179
+ config: TConfig;
180
+ previousState: TSetupState;
181
+ registerCleanup(cleanup: TriggerCleanupHandle): void;
182
+ emit(items: Items): Promise<void>;
183
+ }
184
+
185
+ export interface TriggerTestItemsContext<
186
+ TConfig extends TriggerNodeConfig<any, any> = TriggerNodeConfig<any, any>,
187
+ TSetupState extends JsonValue | undefined = TriggerNodeSetupState<TConfig>,
188
+ > extends ExecutionContext {
189
+ trigger: TriggerInstanceId;
190
+ nodeId: NodeId;
191
+ config: TConfig;
192
+ previousState: TSetupState;
193
+ }
194
+
195
+ /**
196
+ * Trigger setup state is intentionally engine-owned so future ownership and
197
+ * leader-election metadata can be coordinated centrally rather than pushed into
198
+ * package-level setup code.
199
+ */
200
+
201
+ export interface PersistedTriggerSetupState<TState extends JsonValue | undefined = JsonValue | undefined> {
202
+ trigger: TriggerInstanceId;
203
+ updatedAt: string;
204
+ state: TState;
205
+ }
206
+
207
+ export interface TriggerSetupStateRepository {
208
+ load(trigger: TriggerInstanceId): Promise<PersistedTriggerSetupState | undefined>;
209
+ save(state: PersistedTriggerSetupState): Promise<void>;
210
+ delete(trigger: TriggerInstanceId): Promise<void>;
211
+ }
212
+
213
+ export interface TriggerCleanupHandle {
214
+ stop(): Promise<void> | void;
215
+ }
216
+
217
+ export interface EngineHost {
218
+ credentialSessions: CredentialSessionService;
219
+ workflows?: WorkflowRunnerService;
220
+ }
221
+
222
+ export interface Node<TConfig extends NodeConfigBase = NodeConfigBase> {
223
+ kind: "node";
224
+ outputPorts: ReadonlyArray<OutputPortKey>;
225
+ execute(items: Items, ctx: NodeExecutionContext<TConfig>): Promise<NodeOutputs>;
226
+ }
227
+
228
+ export interface MultiInputNode<TConfig extends NodeConfigBase = NodeConfigBase> {
229
+ kind: "node";
230
+ outputPorts: ReadonlyArray<OutputPortKey>;
231
+ executeMulti(inputsByPort: NodeInputsByPort, ctx: NodeExecutionContext<TConfig>): Promise<NodeOutputs>;
232
+ }
233
+
234
+ export type TriggerSetupStateFor<TConfig extends TriggerNodeConfig<any, any>> = TriggerNodeSetupState<TConfig>;
235
+
236
+ export interface TriggerNode<TConfig extends TriggerNodeConfig<any, any> = TriggerNodeConfig<any, any>> {
237
+ kind: "trigger";
238
+ outputPorts: readonly ["main"];
239
+ setup(ctx: TriggerSetupContext<TConfig>): Promise<TriggerSetupStateFor<TConfig>>;
240
+ execute(items: Items, ctx: NodeExecutionContext<TConfig>): Promise<NodeOutputs>;
241
+ }
242
+
243
+ export interface TestableTriggerNode<
244
+ TConfig extends TriggerNodeConfig<any, any> = TriggerNodeConfig<any, any>,
245
+ > extends TriggerNode<TConfig> {
246
+ getTestItems(ctx: TriggerTestItemsContext<TConfig>): Promise<Items>;
247
+ }
248
+
249
+ export type ExecutableTriggerNode<TConfig extends TriggerNodeConfig<any, any> = TriggerNodeConfig<any, any>> =
250
+ TriggerNode<TConfig>;
251
+
252
+ export interface NodeExecutionRequest {
253
+ runId: RunId;
254
+ activationId: NodeActivationId;
255
+ workflowId: WorkflowId;
256
+ nodeId: NodeId;
257
+ input: Items;
258
+ parent?: ParentExecutionRef;
259
+ queue?: string;
260
+ executionOptions?: RunExecutionOptions;
261
+ }
262
+
263
+ export interface NodeExecutionScheduler {
264
+ enqueue(request: NodeExecutionRequest): Promise<{ receiptId: string }>;
265
+ cancel?(receiptId: string): Promise<void>;
266
+ }
267
+
268
+ export type NodeActivationRequestBase = Readonly<{
269
+ runId: RunId;
270
+ activationId: NodeActivationId;
271
+ workflowId: WorkflowId;
272
+ nodeId: NodeId;
273
+ parent?: ParentExecutionRef;
274
+ executionOptions?: RunExecutionOptions;
275
+ batchId?: string;
276
+ ctx: NodeExecutionContext;
277
+ }>;
278
+
279
+ export type NodeActivationRequest =
280
+ | (NodeActivationRequestBase &
281
+ Readonly<{
282
+ kind: "single";
283
+ input: Items;
284
+ }>)
285
+ | (NodeActivationRequestBase &
286
+ Readonly<{
287
+ kind: "multi";
288
+ inputsByPort: NodeInputsByPort;
289
+ }>);
290
+
291
+ export interface NodeActivationReceipt {
292
+ receiptId: string;
293
+ mode?: "local" | "worker";
294
+ queue?: string;
295
+ }
296
+
297
+ export interface NodeActivationContinuation {
298
+ markNodeRunning(args: {
299
+ runId: RunId;
300
+ activationId: NodeActivationId;
301
+ nodeId: NodeId;
302
+ inputsByPort: NodeInputsByPort;
303
+ }): Promise<void>;
304
+ resumeFromNodeResult(args: {
305
+ runId: RunId;
306
+ activationId: NodeActivationId;
307
+ nodeId: NodeId;
308
+ outputs: NodeOutputs;
309
+ }): Promise<RunResult>;
310
+ resumeFromNodeError(args: {
311
+ runId: RunId;
312
+ activationId: NodeActivationId;
313
+ nodeId: NodeId;
314
+ error: Error;
315
+ }): Promise<RunResult>;
316
+ }
317
+
318
+ export interface NodeActivationScheduler {
319
+ setContinuation?(continuation: NodeActivationContinuation): void;
320
+ enqueue(request: NodeActivationRequest): Promise<NodeActivationReceipt>;
321
+ notifyPendingStatePersisted?(runId: RunId): void;
322
+ cancel?(receiptId: string): Promise<void>;
323
+ }
324
+
325
+ export interface WorkflowNodeInstanceFactory {
326
+ createNodes(workflow: WorkflowDefinition): ReadonlyMap<NodeId, unknown>;
327
+ createByType(type: TypeToken<unknown>): unknown;
328
+ }
329
+
330
+ export interface NodeExecutor {
331
+ execute(request: NodeActivationRequest): Promise<NodeOutputs>;
332
+ }
333
+
334
+ export interface WorkflowSnapshotFactory {
335
+ create(workflow: WorkflowDefinition): PersistedWorkflowSnapshot;
336
+ }
337
+
338
+ export interface WorkflowSnapshotResolver {
339
+ resolve(args: {
340
+ workflowId: WorkflowId;
341
+ workflowSnapshot?: PersistedWorkflowSnapshot;
342
+ }): WorkflowDefinition | undefined;
343
+ }
344
+
345
+ /** Optional host wiring for trigger lifecycle logs (boot skip + activation sync). */
346
+ export interface TriggerRuntimeDiagnostics {
347
+ info(message: string): void;
348
+ warn(message: string): void;
349
+ }
350
+
351
+ export interface EngineDeps {
352
+ credentialSessions: CredentialSessionService;
353
+ liveWorkflowRepository: LiveWorkflowRepository;
354
+ workflowRepository: WorkflowRepository;
355
+ /** When {@link AllWorkflowsActiveWorkflowActivationPolicy}, all workflows behave as active (tests). */
356
+ workflowActivationPolicy: WorkflowActivationPolicy;
357
+ nodeResolver: NodeResolver;
358
+ triggerSetupStateRepository: TriggerSetupStateRepository;
359
+ webhookTriggerMatcher: WebhookTriggerMatcher;
360
+ runIdFactory: RunIdFactory;
361
+ activationIdFactory: ActivationIdFactory;
362
+ workflowExecutionRepository: WorkflowExecutionRepository;
363
+ activationScheduler: NodeActivationScheduler;
364
+ runDataFactory: RunDataFactory;
365
+ executionContextFactory: ExecutionContextFactory;
366
+ eventBus?: RunEventBus;
367
+ tokenRegistry: PersistedWorkflowTokenRegistryLike;
368
+ workflowNodeInstanceFactory: WorkflowNodeInstanceFactory;
369
+ /** Defaults for prune/storage snapshot when workflow omits explicit policy fields. */
370
+ workflowPolicyRuntimeDefaults?: WorkflowPolicyRuntimeDefaults;
371
+ /** When set, logs inactive-workflow skips at boot and trigger start/stop on activation changes. */
372
+ triggerRuntimeDiagnostics?: TriggerRuntimeDiagnostics;
373
+ }
@@ -0,0 +1,49 @@
1
+ import type { Items, NodeId, WorkflowId } from "./workflowTypes";
2
+
3
+ export type HttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
4
+
5
+ export interface WebhookControlSignal {
6
+ readonly __webhookControl: true;
7
+ readonly kind: "respondNow" | "respondNowAndContinue";
8
+ readonly responseItems: Items;
9
+ readonly continueItems?: Items;
10
+ }
11
+
12
+ export interface WebhookTriggerRoutingDiagnostics {
13
+ warn(message: string): void;
14
+ /** Inactive workflows omitted from the webhook route index (optional; host should wire for clarity at boot/reload). */
15
+ info?(message: string): void;
16
+ }
17
+
18
+ export interface TriggerInstanceId {
19
+ workflowId: WorkflowId;
20
+ nodeId: NodeId;
21
+ }
22
+
23
+ /** Match for an incoming HTTP request: user-defined URL segment + workflow trigger node. */
24
+ export interface WebhookInvocationMatch {
25
+ /** Same value as the webhook trigger's configured endpoint key (URL segment under the webhook base path). */
26
+ endpointPath: string;
27
+ workflowId: WorkflowId;
28
+ nodeId: NodeId;
29
+ methods: ReadonlyArray<HttpMethod>;
30
+ parseJsonBody?: (body: unknown) => unknown;
31
+ }
32
+
33
+ /** Result of resolving an HTTP method + endpoint path against the catalog webhook index (404 vs 405 vs match). */
34
+ export type WebhookTriggerResolution =
35
+ | { status: "notFound" }
36
+ | { status: "methodNotAllowed"; match: WebhookInvocationMatch }
37
+ | { status: "ok"; match: WebhookInvocationMatch };
38
+
39
+ /**
40
+ * Resolves webhook routes from workflow definitions (catalog-backed index, no registration at trigger setup).
41
+ */
42
+ export interface WebhookTriggerMatcher {
43
+ match(args: { endpointPath: string; method: HttpMethod }): WebhookInvocationMatch | undefined;
44
+ lookup(endpointPath: string): WebhookInvocationMatch | undefined;
45
+ onEngineWorkflowsLoaded?(): void;
46
+ onEngineStopped?(): void;
47
+ /** Rebuild route index after activation changes without stopping the engine. */
48
+ reloadWebhookRoutes?(): void;
49
+ }
@@ -0,0 +1,16 @@
1
+ import type { WorkflowId } from "./workflowTypes";
2
+
3
+ /**
4
+ * Host-controlled policy: when false, trigger {@link TriggerNode} setup is skipped and webhook routes
5
+ * for that workflow are not registered (see engine trigger runtime + webhook matcher).
6
+ */
7
+ export interface WorkflowActivationPolicy {
8
+ isActive(workflowId: WorkflowId): boolean;
9
+ }
10
+
11
+ /** Default for tests and harnesses: every workflow is treated as active (legacy behavior). */
12
+ export class AllWorkflowsActiveWorkflowActivationPolicy implements WorkflowActivationPolicy {
13
+ isActive(_workflowId: WorkflowId): boolean {
14
+ return true;
15
+ }
16
+ }