@decaf-ts/integrations 0.3.1 → 0.3.2

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 (354) hide show
  1. package/dist/integrations.cjs +1 -1
  2. package/lib/cjs/graph/constants.cjs +94 -0
  3. package/lib/cjs/graph/constants.cjs.map +1 -0
  4. package/lib/cjs/graph/decorators.cjs +4 -0
  5. package/lib/cjs/graph/decorators.cjs.map +1 -0
  6. package/lib/cjs/graph/errors/GraphCycleError.cjs +20 -0
  7. package/lib/cjs/graph/errors/GraphCycleError.cjs.map +1 -0
  8. package/lib/cjs/graph/errors/GraphExecutionError.cjs +27 -0
  9. package/lib/cjs/graph/errors/GraphExecutionError.cjs.map +1 -0
  10. package/lib/cjs/graph/errors/GraphInputError.cjs +20 -0
  11. package/lib/cjs/graph/errors/GraphInputError.cjs.map +1 -0
  12. package/lib/cjs/graph/errors/GraphLoopLimitError.cjs +20 -0
  13. package/lib/cjs/graph/errors/GraphLoopLimitError.cjs.map +1 -0
  14. package/lib/cjs/graph/errors/GraphPinningError.cjs +20 -0
  15. package/lib/cjs/graph/errors/GraphPinningError.cjs.map +1 -0
  16. package/lib/cjs/graph/errors/GraphPortError.cjs +20 -0
  17. package/lib/cjs/graph/errors/GraphPortError.cjs.map +1 -0
  18. package/lib/cjs/graph/errors/GraphStoreError.cjs +20 -0
  19. package/lib/cjs/graph/errors/GraphStoreError.cjs.map +1 -0
  20. package/lib/cjs/graph/errors/GraphTopologyError.cjs +20 -0
  21. package/lib/cjs/graph/errors/GraphTopologyError.cjs.map +1 -0
  22. package/lib/cjs/graph/errors/index.cjs +31 -0
  23. package/lib/cjs/graph/errors/index.cjs.map +1 -0
  24. package/lib/cjs/graph/events/GraphExecutionEvent.cjs +4 -0
  25. package/lib/cjs/graph/events/GraphExecutionEvent.cjs.map +1 -0
  26. package/lib/cjs/graph/events/GraphExecutionEventEmitter.cjs +40 -0
  27. package/lib/cjs/graph/events/GraphExecutionEventEmitter.cjs.map +1 -0
  28. package/lib/cjs/graph/events/GraphExecutionEventFactory.cjs +37 -0
  29. package/lib/cjs/graph/events/GraphExecutionEventFactory.cjs.map +1 -0
  30. package/lib/cjs/graph/events/GraphExecutionObserver.cjs +4 -0
  31. package/lib/cjs/graph/events/GraphExecutionObserver.cjs.map +1 -0
  32. package/lib/cjs/graph/events/index.cjs +27 -0
  33. package/lib/cjs/graph/events/index.cjs.map +1 -0
  34. package/lib/cjs/graph/execution/GraphExecutionContext.cjs +79 -0
  35. package/lib/cjs/graph/execution/GraphExecutionContext.cjs.map +1 -0
  36. package/lib/cjs/graph/execution/GraphExecutionEngine.cjs +405 -0
  37. package/lib/cjs/graph/execution/GraphExecutionEngine.cjs.map +1 -0
  38. package/lib/cjs/graph/execution/GraphExecutionFrame.cjs +32 -0
  39. package/lib/cjs/graph/execution/GraphExecutionFrame.cjs.map +1 -0
  40. package/lib/cjs/graph/execution/GraphExecutionResult.cjs +30 -0
  41. package/lib/cjs/graph/execution/GraphExecutionResult.cjs.map +1 -0
  42. package/lib/cjs/graph/execution/GraphNodeExecutor.cjs +4 -0
  43. package/lib/cjs/graph/execution/GraphNodeExecutor.cjs.map +1 -0
  44. package/lib/cjs/graph/execution/index.cjs +28 -0
  45. package/lib/cjs/graph/execution/index.cjs.map +1 -0
  46. package/lib/cjs/graph/index.cjs +74 -0
  47. package/lib/cjs/graph/index.cjs.map +1 -0
  48. package/lib/cjs/graph/loops/ForeachGraphNodeExecutor.cjs +84 -0
  49. package/lib/cjs/graph/loops/ForeachGraphNodeExecutor.cjs.map +1 -0
  50. package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs +63 -0
  51. package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs.map +1 -0
  52. package/lib/cjs/graph/loops/GraphLoopExecutionContext.cjs +16 -0
  53. package/lib/cjs/graph/loops/GraphLoopExecutionContext.cjs.map +1 -0
  54. package/lib/cjs/graph/loops/UntilGraphNodeExecutor.cjs +76 -0
  55. package/lib/cjs/graph/loops/UntilGraphNodeExecutor.cjs.map +1 -0
  56. package/lib/cjs/graph/loops/WhileGraphNodeExecutor.cjs +77 -0
  57. package/lib/cjs/graph/loops/WhileGraphNodeExecutor.cjs.map +1 -0
  58. package/lib/cjs/graph/loops/index.cjs +28 -0
  59. package/lib/cjs/graph/loops/index.cjs.map +1 -0
  60. package/lib/cjs/graph/pinning/GraphPinningDependencyResolver.cjs +28 -0
  61. package/lib/cjs/graph/pinning/GraphPinningDependencyResolver.cjs.map +1 -0
  62. package/lib/cjs/graph/pinning/GraphPinningMetadata.cjs +20 -0
  63. package/lib/cjs/graph/pinning/GraphPinningMetadata.cjs.map +1 -0
  64. package/lib/cjs/graph/pinning/GraphPinningPolicy.cjs +34 -0
  65. package/lib/cjs/graph/pinning/GraphPinningPolicy.cjs.map +1 -0
  66. package/lib/cjs/graph/pinning/GraphPinningService.cjs +191 -0
  67. package/lib/cjs/graph/pinning/GraphPinningService.cjs.map +1 -0
  68. package/lib/cjs/graph/pinning/index.cjs +27 -0
  69. package/lib/cjs/graph/pinning/index.cjs.map +1 -0
  70. package/lib/cjs/graph/planning/GraphExecutionPlan.cjs +4 -0
  71. package/lib/cjs/graph/planning/GraphExecutionPlan.cjs.map +1 -0
  72. package/lib/cjs/graph/planning/GraphExecutionPlanEdge.cjs +4 -0
  73. package/lib/cjs/graph/planning/GraphExecutionPlanEdge.cjs.map +1 -0
  74. package/lib/cjs/graph/planning/GraphExecutionPlanLayer.cjs +4 -0
  75. package/lib/cjs/graph/planning/GraphExecutionPlanLayer.cjs.map +1 -0
  76. package/lib/cjs/graph/planning/GraphExecutionPlanNode.cjs +4 -0
  77. package/lib/cjs/graph/planning/GraphExecutionPlanNode.cjs.map +1 -0
  78. package/lib/cjs/graph/planning/GraphExecutionPlanner.cjs +197 -0
  79. package/lib/cjs/graph/planning/GraphExecutionPlanner.cjs.map +1 -0
  80. package/lib/cjs/graph/planning/GraphRelationResolver.cjs +172 -0
  81. package/lib/cjs/graph/planning/GraphRelationResolver.cjs.map +1 -0
  82. package/lib/cjs/graph/planning/GraphTopology.cjs +57 -0
  83. package/lib/cjs/graph/planning/GraphTopology.cjs.map +1 -0
  84. package/lib/cjs/graph/planning/index.cjs +30 -0
  85. package/lib/cjs/graph/planning/index.cjs.map +1 -0
  86. package/lib/cjs/graph/registry/GraphNodeExecutorRegistry.cjs +44 -0
  87. package/lib/cjs/graph/registry/GraphNodeExecutorRegistry.cjs.map +1 -0
  88. package/lib/cjs/graph/registry/GraphNodeExecutorResolver.cjs +27 -0
  89. package/lib/cjs/graph/registry/GraphNodeExecutorResolver.cjs.map +1 -0
  90. package/lib/cjs/graph/registry/index.cjs +25 -0
  91. package/lib/cjs/graph/registry/index.cjs.map +1 -0
  92. package/lib/cjs/graph/snapshots/GraphExecutionSnapshotMapper.cjs +53 -0
  93. package/lib/cjs/graph/snapshots/GraphExecutionSnapshotMapper.cjs.map +1 -0
  94. package/lib/cjs/graph/snapshots/index.cjs +24 -0
  95. package/lib/cjs/graph/snapshots/index.cjs.map +1 -0
  96. package/lib/cjs/graph/store/GraphCachedValue.cjs +4 -0
  97. package/lib/cjs/graph/store/GraphCachedValue.cjs.map +1 -0
  98. package/lib/cjs/graph/store/GraphValueKey.cjs +4 -0
  99. package/lib/cjs/graph/store/GraphValueKey.cjs.map +1 -0
  100. package/lib/cjs/graph/store/GraphValueStore.cjs +76 -0
  101. package/lib/cjs/graph/store/GraphValueStore.cjs.map +1 -0
  102. package/lib/cjs/graph/store/GraphValueStoreAdapter.cjs +4 -0
  103. package/lib/cjs/graph/store/GraphValueStoreAdapter.cjs.map +1 -0
  104. package/lib/cjs/graph/store/InMemoryGraphValueStoreAdapter.cjs +69 -0
  105. package/lib/cjs/graph/store/InMemoryGraphValueStoreAdapter.cjs.map +1 -0
  106. package/lib/cjs/graph/store/index.cjs +28 -0
  107. package/lib/cjs/graph/store/index.cjs.map +1 -0
  108. package/lib/cjs/graph/types.cjs +4 -0
  109. package/lib/cjs/graph/types.cjs.map +1 -0
  110. package/lib/cjs/graph/validation/GraphDefinitionValidator.cjs +33 -0
  111. package/lib/cjs/graph/validation/GraphDefinitionValidator.cjs.map +1 -0
  112. package/lib/cjs/graph/validation/GraphPortSchemaResolver.cjs +58 -0
  113. package/lib/cjs/graph/validation/GraphPortSchemaResolver.cjs.map +1 -0
  114. package/lib/cjs/graph/validation/GraphValueValidator.cjs +52 -0
  115. package/lib/cjs/graph/validation/GraphValueValidator.cjs.map +1 -0
  116. package/lib/cjs/graph/validation/index.cjs +26 -0
  117. package/lib/cjs/graph/validation/index.cjs.map +1 -0
  118. package/lib/cjs/index.cjs +3 -3
  119. package/lib/esm/graph/constants.js +106 -0
  120. package/lib/esm/graph/constants.js.map +1 -0
  121. package/lib/esm/graph/decorators.js +2 -0
  122. package/lib/esm/graph/decorators.js.map +1 -0
  123. package/lib/esm/graph/errors/GraphCycleError.js +15 -0
  124. package/lib/esm/graph/errors/GraphCycleError.js.map +1 -0
  125. package/lib/esm/graph/errors/GraphExecutionError.js +22 -0
  126. package/lib/esm/graph/errors/GraphExecutionError.js.map +1 -0
  127. package/lib/esm/graph/errors/GraphInputError.js +15 -0
  128. package/lib/esm/graph/errors/GraphInputError.js.map +1 -0
  129. package/lib/esm/graph/errors/GraphLoopLimitError.js +15 -0
  130. package/lib/esm/graph/errors/GraphLoopLimitError.js.map +1 -0
  131. package/lib/esm/graph/errors/GraphPinningError.js +15 -0
  132. package/lib/esm/graph/errors/GraphPinningError.js.map +1 -0
  133. package/lib/esm/graph/errors/GraphPortError.js +15 -0
  134. package/lib/esm/graph/errors/GraphPortError.js.map +1 -0
  135. package/lib/esm/graph/errors/GraphStoreError.js +15 -0
  136. package/lib/esm/graph/errors/GraphStoreError.js.map +1 -0
  137. package/lib/esm/graph/errors/GraphTopologyError.js +15 -0
  138. package/lib/esm/graph/errors/GraphTopologyError.js.map +1 -0
  139. package/lib/esm/graph/errors/index.js +14 -0
  140. package/lib/esm/graph/errors/index.js.map +1 -0
  141. package/lib/esm/graph/events/GraphExecutionEvent.js +2 -0
  142. package/lib/esm/graph/events/GraphExecutionEvent.js.map +1 -0
  143. package/lib/esm/graph/events/GraphExecutionEventEmitter.js +35 -0
  144. package/lib/esm/graph/events/GraphExecutionEventEmitter.js.map +1 -0
  145. package/lib/esm/graph/events/GraphExecutionEventFactory.js +32 -0
  146. package/lib/esm/graph/events/GraphExecutionEventFactory.js.map +1 -0
  147. package/lib/esm/graph/events/GraphExecutionObserver.js +2 -0
  148. package/lib/esm/graph/events/GraphExecutionObserver.js.map +1 -0
  149. package/lib/esm/graph/events/index.js +10 -0
  150. package/lib/esm/graph/events/index.js.map +1 -0
  151. package/lib/esm/graph/execution/GraphExecutionContext.js +74 -0
  152. package/lib/esm/graph/execution/GraphExecutionContext.js.map +1 -0
  153. package/lib/esm/graph/execution/GraphExecutionEngine.js +400 -0
  154. package/lib/esm/graph/execution/GraphExecutionEngine.js.map +1 -0
  155. package/lib/esm/graph/execution/GraphExecutionFrame.js +27 -0
  156. package/lib/esm/graph/execution/GraphExecutionFrame.js.map +1 -0
  157. package/lib/esm/graph/execution/GraphExecutionResult.js +26 -0
  158. package/lib/esm/graph/execution/GraphExecutionResult.js.map +1 -0
  159. package/lib/esm/graph/execution/GraphNodeExecutor.js +2 -0
  160. package/lib/esm/graph/execution/GraphNodeExecutor.js.map +1 -0
  161. package/lib/esm/graph/execution/index.js +11 -0
  162. package/lib/esm/graph/execution/index.js.map +1 -0
  163. package/lib/esm/graph/index.js +57 -0
  164. package/lib/esm/graph/index.js.map +1 -0
  165. package/lib/esm/graph/loops/ForeachGraphNodeExecutor.js +79 -0
  166. package/lib/esm/graph/loops/ForeachGraphNodeExecutor.js.map +1 -0
  167. package/lib/esm/graph/loops/GraphConditionEvaluator.js +58 -0
  168. package/lib/esm/graph/loops/GraphConditionEvaluator.js.map +1 -0
  169. package/lib/esm/graph/loops/GraphLoopExecutionContext.js +11 -0
  170. package/lib/esm/graph/loops/GraphLoopExecutionContext.js.map +1 -0
  171. package/lib/esm/graph/loops/UntilGraphNodeExecutor.js +71 -0
  172. package/lib/esm/graph/loops/UntilGraphNodeExecutor.js.map +1 -0
  173. package/lib/esm/graph/loops/WhileGraphNodeExecutor.js +72 -0
  174. package/lib/esm/graph/loops/WhileGraphNodeExecutor.js.map +1 -0
  175. package/lib/esm/graph/loops/index.js +11 -0
  176. package/lib/esm/graph/loops/index.js.map +1 -0
  177. package/lib/esm/graph/pinning/GraphPinningDependencyResolver.js +23 -0
  178. package/lib/esm/graph/pinning/GraphPinningDependencyResolver.js.map +1 -0
  179. package/lib/esm/graph/pinning/GraphPinningMetadata.js +15 -0
  180. package/lib/esm/graph/pinning/GraphPinningMetadata.js.map +1 -0
  181. package/lib/esm/graph/pinning/GraphPinningPolicy.js +29 -0
  182. package/lib/esm/graph/pinning/GraphPinningPolicy.js.map +1 -0
  183. package/lib/esm/graph/pinning/GraphPinningService.js +186 -0
  184. package/lib/esm/graph/pinning/GraphPinningService.js.map +1 -0
  185. package/lib/esm/graph/pinning/index.js +10 -0
  186. package/lib/esm/graph/pinning/index.js.map +1 -0
  187. package/lib/esm/graph/planning/GraphExecutionPlan.js +2 -0
  188. package/lib/esm/graph/planning/GraphExecutionPlan.js.map +1 -0
  189. package/lib/esm/graph/planning/GraphExecutionPlanEdge.js +7 -0
  190. package/lib/esm/graph/planning/GraphExecutionPlanEdge.js.map +1 -0
  191. package/lib/esm/graph/planning/GraphExecutionPlanLayer.js +2 -0
  192. package/lib/esm/graph/planning/GraphExecutionPlanLayer.js.map +1 -0
  193. package/lib/esm/graph/planning/GraphExecutionPlanNode.js +2 -0
  194. package/lib/esm/graph/planning/GraphExecutionPlanNode.js.map +1 -0
  195. package/lib/esm/graph/planning/GraphExecutionPlanner.js +192 -0
  196. package/lib/esm/graph/planning/GraphExecutionPlanner.js.map +1 -0
  197. package/lib/esm/graph/planning/GraphRelationResolver.js +167 -0
  198. package/lib/esm/graph/planning/GraphRelationResolver.js.map +1 -0
  199. package/lib/esm/graph/planning/GraphTopology.js +52 -0
  200. package/lib/esm/graph/planning/GraphTopology.js.map +1 -0
  201. package/lib/esm/graph/planning/index.js +13 -0
  202. package/lib/esm/graph/planning/index.js.map +1 -0
  203. package/lib/esm/graph/registry/GraphNodeExecutorRegistry.js +39 -0
  204. package/lib/esm/graph/registry/GraphNodeExecutorRegistry.js.map +1 -0
  205. package/lib/esm/graph/registry/GraphNodeExecutorResolver.js +22 -0
  206. package/lib/esm/graph/registry/GraphNodeExecutorResolver.js.map +1 -0
  207. package/lib/esm/graph/registry/index.js +8 -0
  208. package/lib/esm/graph/registry/index.js.map +1 -0
  209. package/lib/esm/graph/snapshots/GraphExecutionSnapshotMapper.js +48 -0
  210. package/lib/esm/graph/snapshots/GraphExecutionSnapshotMapper.js.map +1 -0
  211. package/lib/esm/graph/snapshots/index.js +7 -0
  212. package/lib/esm/graph/snapshots/index.js.map +1 -0
  213. package/lib/esm/graph/store/GraphCachedValue.js +2 -0
  214. package/lib/esm/graph/store/GraphCachedValue.js.map +1 -0
  215. package/lib/esm/graph/store/GraphValueKey.js +7 -0
  216. package/lib/esm/graph/store/GraphValueKey.js.map +1 -0
  217. package/lib/esm/graph/store/GraphValueStore.js +71 -0
  218. package/lib/esm/graph/store/GraphValueStore.js.map +1 -0
  219. package/lib/esm/graph/store/GraphValueStoreAdapter.js +2 -0
  220. package/lib/esm/graph/store/GraphValueStoreAdapter.js.map +1 -0
  221. package/lib/esm/graph/store/InMemoryGraphValueStoreAdapter.js +64 -0
  222. package/lib/esm/graph/store/InMemoryGraphValueStoreAdapter.js.map +1 -0
  223. package/lib/esm/graph/store/index.js +11 -0
  224. package/lib/esm/graph/store/index.js.map +1 -0
  225. package/lib/esm/graph/types.js +2 -0
  226. package/lib/esm/graph/types.js.map +1 -0
  227. package/lib/esm/graph/validation/GraphDefinitionValidator.js +28 -0
  228. package/lib/esm/graph/validation/GraphDefinitionValidator.js.map +1 -0
  229. package/lib/esm/graph/validation/GraphPortSchemaResolver.js +53 -0
  230. package/lib/esm/graph/validation/GraphPortSchemaResolver.js.map +1 -0
  231. package/lib/esm/graph/validation/GraphValueValidator.js +47 -0
  232. package/lib/esm/graph/validation/GraphValueValidator.js.map +1 -0
  233. package/lib/esm/graph/validation/index.js +9 -0
  234. package/lib/esm/graph/validation/index.js.map +1 -0
  235. package/lib/esm/index.js +3 -3
  236. package/lib/types/graph/constants.d.cts +101 -0
  237. package/lib/types/graph/constants.d.mts +101 -0
  238. package/lib/types/graph/decorators.d.cts +6 -0
  239. package/lib/types/graph/decorators.d.mts +6 -0
  240. package/lib/types/graph/errors/GraphCycleError.d.cts +12 -0
  241. package/lib/types/graph/errors/GraphCycleError.d.mts +12 -0
  242. package/lib/types/graph/errors/GraphExecutionError.d.cts +19 -0
  243. package/lib/types/graph/errors/GraphExecutionError.d.mts +19 -0
  244. package/lib/types/graph/errors/GraphInputError.d.cts +12 -0
  245. package/lib/types/graph/errors/GraphInputError.d.mts +12 -0
  246. package/lib/types/graph/errors/GraphLoopLimitError.d.cts +12 -0
  247. package/lib/types/graph/errors/GraphLoopLimitError.d.mts +12 -0
  248. package/lib/types/graph/errors/GraphPinningError.d.cts +12 -0
  249. package/lib/types/graph/errors/GraphPinningError.d.mts +12 -0
  250. package/lib/types/graph/errors/GraphPortError.d.cts +12 -0
  251. package/lib/types/graph/errors/GraphPortError.d.mts +12 -0
  252. package/lib/types/graph/errors/GraphStoreError.d.cts +12 -0
  253. package/lib/types/graph/errors/GraphStoreError.d.mts +12 -0
  254. package/lib/types/graph/errors/GraphTopologyError.d.cts +12 -0
  255. package/lib/types/graph/errors/GraphTopologyError.d.mts +12 -0
  256. package/lib/types/graph/errors/index.d.cts +13 -0
  257. package/lib/types/graph/errors/index.d.mts +13 -0
  258. package/lib/types/graph/events/GraphExecutionEvent.d.cts +6 -0
  259. package/lib/types/graph/events/GraphExecutionEvent.d.mts +6 -0
  260. package/lib/types/graph/events/GraphExecutionEventEmitter.d.cts +26 -0
  261. package/lib/types/graph/events/GraphExecutionEventEmitter.d.mts +26 -0
  262. package/lib/types/graph/events/GraphExecutionEventFactory.d.cts +25 -0
  263. package/lib/types/graph/events/GraphExecutionEventFactory.d.mts +25 -0
  264. package/lib/types/graph/events/GraphExecutionObserver.d.cts +17 -0
  265. package/lib/types/graph/events/GraphExecutionObserver.d.mts +17 -0
  266. package/lib/types/graph/events/index.d.cts +9 -0
  267. package/lib/types/graph/events/index.d.mts +9 -0
  268. package/lib/types/graph/execution/GraphExecutionContext.d.cts +50 -0
  269. package/lib/types/graph/execution/GraphExecutionContext.d.mts +50 -0
  270. package/lib/types/graph/execution/GraphExecutionEngine.d.cts +112 -0
  271. package/lib/types/graph/execution/GraphExecutionEngine.d.mts +112 -0
  272. package/lib/types/graph/execution/GraphExecutionFrame.d.cts +29 -0
  273. package/lib/types/graph/execution/GraphExecutionFrame.d.mts +29 -0
  274. package/lib/types/graph/execution/GraphExecutionResult.d.cts +13 -0
  275. package/lib/types/graph/execution/GraphExecutionResult.d.mts +13 -0
  276. package/lib/types/graph/execution/GraphNodeExecutor.d.cts +23 -0
  277. package/lib/types/graph/execution/GraphNodeExecutor.d.mts +23 -0
  278. package/lib/types/graph/execution/index.d.cts +10 -0
  279. package/lib/types/graph/execution/index.d.mts +10 -0
  280. package/lib/types/graph/index.d.cts +52 -0
  281. package/lib/types/graph/index.d.mts +52 -0
  282. package/lib/types/graph/loops/ForeachGraphNodeExecutor.d.cts +27 -0
  283. package/lib/types/graph/loops/ForeachGraphNodeExecutor.d.mts +27 -0
  284. package/lib/types/graph/loops/GraphConditionEvaluator.d.cts +23 -0
  285. package/lib/types/graph/loops/GraphConditionEvaluator.d.mts +23 -0
  286. package/lib/types/graph/loops/GraphLoopExecutionContext.d.cts +15 -0
  287. package/lib/types/graph/loops/GraphLoopExecutionContext.d.mts +15 -0
  288. package/lib/types/graph/loops/UntilGraphNodeExecutor.d.cts +22 -0
  289. package/lib/types/graph/loops/UntilGraphNodeExecutor.d.mts +22 -0
  290. package/lib/types/graph/loops/WhileGraphNodeExecutor.d.cts +26 -0
  291. package/lib/types/graph/loops/WhileGraphNodeExecutor.d.mts +26 -0
  292. package/lib/types/graph/loops/index.d.cts +10 -0
  293. package/lib/types/graph/loops/index.d.mts +10 -0
  294. package/lib/types/graph/pinning/GraphPinningDependencyResolver.d.cts +21 -0
  295. package/lib/types/graph/pinning/GraphPinningDependencyResolver.d.mts +21 -0
  296. package/lib/types/graph/pinning/GraphPinningMetadata.d.cts +14 -0
  297. package/lib/types/graph/pinning/GraphPinningMetadata.d.mts +14 -0
  298. package/lib/types/graph/pinning/GraphPinningPolicy.d.cts +20 -0
  299. package/lib/types/graph/pinning/GraphPinningPolicy.d.mts +20 -0
  300. package/lib/types/graph/pinning/GraphPinningService.d.cts +59 -0
  301. package/lib/types/graph/pinning/GraphPinningService.d.mts +59 -0
  302. package/lib/types/graph/pinning/index.d.cts +9 -0
  303. package/lib/types/graph/pinning/index.d.mts +9 -0
  304. package/lib/types/graph/planning/GraphExecutionPlan.d.cts +21 -0
  305. package/lib/types/graph/planning/GraphExecutionPlan.d.mts +21 -0
  306. package/lib/types/graph/planning/GraphExecutionPlanEdge.d.cts +21 -0
  307. package/lib/types/graph/planning/GraphExecutionPlanEdge.d.mts +21 -0
  308. package/lib/types/graph/planning/GraphExecutionPlanLayer.d.cts +13 -0
  309. package/lib/types/graph/planning/GraphExecutionPlanLayer.d.mts +13 -0
  310. package/lib/types/graph/planning/GraphExecutionPlanNode.d.cts +20 -0
  311. package/lib/types/graph/planning/GraphExecutionPlanNode.d.mts +20 -0
  312. package/lib/types/graph/planning/GraphExecutionPlanner.d.cts +60 -0
  313. package/lib/types/graph/planning/GraphExecutionPlanner.d.mts +60 -0
  314. package/lib/types/graph/planning/GraphRelationResolver.d.cts +62 -0
  315. package/lib/types/graph/planning/GraphRelationResolver.d.mts +62 -0
  316. package/lib/types/graph/planning/GraphTopology.d.cts +23 -0
  317. package/lib/types/graph/planning/GraphTopology.d.mts +23 -0
  318. package/lib/types/graph/planning/index.d.cts +12 -0
  319. package/lib/types/graph/planning/index.d.mts +12 -0
  320. package/lib/types/graph/registry/GraphNodeExecutorRegistry.d.cts +25 -0
  321. package/lib/types/graph/registry/GraphNodeExecutorRegistry.d.mts +25 -0
  322. package/lib/types/graph/registry/GraphNodeExecutorResolver.d.cts +21 -0
  323. package/lib/types/graph/registry/GraphNodeExecutorResolver.d.mts +21 -0
  324. package/lib/types/graph/registry/index.d.cts +7 -0
  325. package/lib/types/graph/registry/index.d.mts +7 -0
  326. package/lib/types/graph/snapshots/GraphExecutionSnapshotMapper.d.cts +10 -0
  327. package/lib/types/graph/snapshots/GraphExecutionSnapshotMapper.d.mts +10 -0
  328. package/lib/types/graph/snapshots/index.d.cts +6 -0
  329. package/lib/types/graph/snapshots/index.d.mts +6 -0
  330. package/lib/types/graph/store/GraphCachedValue.d.cts +20 -0
  331. package/lib/types/graph/store/GraphCachedValue.d.mts +20 -0
  332. package/lib/types/graph/store/GraphValueKey.d.cts +18 -0
  333. package/lib/types/graph/store/GraphValueKey.d.mts +18 -0
  334. package/lib/types/graph/store/GraphValueStore.d.cts +41 -0
  335. package/lib/types/graph/store/GraphValueStore.d.mts +41 -0
  336. package/lib/types/graph/store/GraphValueStoreAdapter.d.cts +32 -0
  337. package/lib/types/graph/store/GraphValueStoreAdapter.d.mts +32 -0
  338. package/lib/types/graph/store/InMemoryGraphValueStoreAdapter.d.cts +33 -0
  339. package/lib/types/graph/store/InMemoryGraphValueStoreAdapter.d.mts +33 -0
  340. package/lib/types/graph/store/index.d.cts +10 -0
  341. package/lib/types/graph/store/index.d.mts +10 -0
  342. package/lib/types/graph/types.d.cts +197 -0
  343. package/lib/types/graph/types.d.mts +197 -0
  344. package/lib/types/graph/validation/GraphDefinitionValidator.d.cts +21 -0
  345. package/lib/types/graph/validation/GraphDefinitionValidator.d.mts +21 -0
  346. package/lib/types/graph/validation/GraphPortSchemaResolver.d.cts +39 -0
  347. package/lib/types/graph/validation/GraphPortSchemaResolver.d.mts +39 -0
  348. package/lib/types/graph/validation/GraphValueValidator.d.cts +27 -0
  349. package/lib/types/graph/validation/GraphValueValidator.d.mts +27 -0
  350. package/lib/types/graph/validation/index.d.cts +8 -0
  351. package/lib/types/graph/validation/index.d.mts +8 -0
  352. package/lib/types/index.d.cts +2 -2
  353. package/lib/types/index.d.mts +2 -2
  354. package/package.json +17 -3
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @module integrations/graph/pinning/GraphPinningDependencyResolver
3
+ * @summary Resolves upstream dependency subtrees for pinning.
4
+ * @description When a node is pinned, all upstream nodes it depends on must also be pinned. This resolver computes the dependency set.
5
+ */
6
+ import type { GraphExecutionPlan } from "../planning/GraphExecutionPlan.d.cts";
7
+ /**
8
+ * Resolves the upstream dependency subtree of a node for pinning operations.
9
+ */
10
+ export declare class GraphPinningDependencyResolver {
11
+ /**
12
+ * Returns the set of upstream node ids that the given node depends on,
13
+ * excluding the workflow boundary.
14
+ */
15
+ getDependencies(plan: GraphExecutionPlan, nodeId: string): Set<string>;
16
+ /**
17
+ * Returns the full set of node ids to pin: the node itself plus all its
18
+ * upstream dependencies.
19
+ */
20
+ getPinSet(plan: GraphExecutionPlan, nodeId: string): Set<string>;
21
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @module integrations/graph/pinning/GraphPinningDependencyResolver
3
+ * @summary Resolves upstream dependency subtrees for pinning.
4
+ * @description When a node is pinned, all upstream nodes it depends on must also be pinned. This resolver computes the dependency set.
5
+ */
6
+ import type { GraphExecutionPlan } from "../planning/GraphExecutionPlan.d.mts";
7
+ /**
8
+ * Resolves the upstream dependency subtree of a node for pinning operations.
9
+ */
10
+ export declare class GraphPinningDependencyResolver {
11
+ /**
12
+ * Returns the set of upstream node ids that the given node depends on,
13
+ * excluding the workflow boundary.
14
+ */
15
+ getDependencies(plan: GraphExecutionPlan, nodeId: string): Set<string>;
16
+ /**
17
+ * Returns the full set of node ids to pin: the node itself plus all its
18
+ * upstream dependencies.
19
+ */
20
+ getPinSet(plan: GraphExecutionPlan, nodeId: string): Set<string>;
21
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @module integrations/graph/pinning/GraphPinningMetadata
3
+ * @summary Pinning metadata defaults and helpers.
4
+ * @description Provides default pinning metadata values and a helper to check pinnability. The `GraphPinningMetadata` type itself is defined in `../types` and re-exported from the package root.
5
+ */
6
+ import type { GraphPinningMetadata } from "../types.d.cts";
7
+ /**
8
+ * Default pinning metadata applied when `@pinnable()` is used without options.
9
+ */
10
+ export declare const DEFAULT_PINNING_METADATA: GraphPinningMetadata;
11
+ /**
12
+ * Returns `true` when the given metadata allows pinning.
13
+ */
14
+ export declare function isPinnable(metadata: GraphPinningMetadata | undefined): boolean;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @module integrations/graph/pinning/GraphPinningMetadata
3
+ * @summary Pinning metadata defaults and helpers.
4
+ * @description Provides default pinning metadata values and a helper to check pinnability. The `GraphPinningMetadata` type itself is defined in `../types` and re-exported from the package root.
5
+ */
6
+ import type { GraphPinningMetadata } from "../types.d.mts";
7
+ /**
8
+ * Default pinning metadata applied when `@pinnable()` is used without options.
9
+ */
10
+ export declare const DEFAULT_PINNING_METADATA: GraphPinningMetadata;
11
+ /**
12
+ * Returns `true` when the given metadata allows pinning.
13
+ */
14
+ export declare function isPinnable(metadata: GraphPinningMetadata | undefined): boolean;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module integrations/graph/pinning/GraphPinningPolicy
3
+ * @summary Decides whether a node can be pinned and whether pinned values should be used.
4
+ * @description Reads pinning metadata from plan nodes and enforces the pinning strategy.
5
+ */
6
+ import type { GraphExecutionPlanNode } from "../planning/GraphExecutionPlanNode.d.cts";
7
+ import type { GraphPinningMetadata } from "../types.d.cts";
8
+ /**
9
+ * Policy that decides pinning behaviour for a plan node.
10
+ */
11
+ export declare class GraphPinningPolicy {
12
+ /** Returns whether the node is allowed to be pinned. */
13
+ canPin(node: GraphExecutionPlanNode): boolean;
14
+ /** Returns whether the engine should attempt to use a pinned value for the node. */
15
+ shouldUsePinnedValue(node: GraphExecutionPlanNode): boolean;
16
+ /** Returns whether automatic pinning should occur after execution. */
17
+ shouldAutoPin(node: GraphExecutionPlanNode): boolean;
18
+ /** Extracts pinning metadata from a plan node. */
19
+ getPinningMetadata(node: GraphExecutionPlanNode): GraphPinningMetadata;
20
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module integrations/graph/pinning/GraphPinningPolicy
3
+ * @summary Decides whether a node can be pinned and whether pinned values should be used.
4
+ * @description Reads pinning metadata from plan nodes and enforces the pinning strategy.
5
+ */
6
+ import type { GraphExecutionPlanNode } from "../planning/GraphExecutionPlanNode.d.mts";
7
+ import type { GraphPinningMetadata } from "../types.d.mts";
8
+ /**
9
+ * Policy that decides pinning behaviour for a plan node.
10
+ */
11
+ export declare class GraphPinningPolicy {
12
+ /** Returns whether the node is allowed to be pinned. */
13
+ canPin(node: GraphExecutionPlanNode): boolean;
14
+ /** Returns whether the engine should attempt to use a pinned value for the node. */
15
+ shouldUsePinnedValue(node: GraphExecutionPlanNode): boolean;
16
+ /** Returns whether automatic pinning should occur after execution. */
17
+ shouldAutoPin(node: GraphExecutionPlanNode): boolean;
18
+ /** Extracts pinning metadata from a plan node. */
19
+ getPinningMetadata(node: GraphExecutionPlanNode): GraphPinningMetadata;
20
+ }
@@ -0,0 +1,59 @@
1
+ import type { GraphExecutionPlanNode } from "../planning/GraphExecutionPlanNode.d.cts";
2
+ import type { GraphValueStore } from "../store/GraphValueStore.d.cts";
3
+ import type { GraphValueKey } from "../store/GraphValueKey.d.cts";
4
+ import type { GraphCachedValue } from "../store/GraphCachedValue.d.cts";
5
+ import type { GraphExecutionValues, GraphPinNodeOptions, GraphUnpinNodeOptions } from "../types.d.cts";
6
+ import type { GraphWorkflowDefinition } from "@decaf-ts/ui-decorators/graph";
7
+ import type { GraphPinningPolicy } from "./GraphPinningPolicy.d.cts";
8
+ import type { GraphPinningDependencyResolver } from "./GraphPinningDependencyResolver.d.cts";
9
+ /**
10
+ * Service that manages pinning and unpinning of graph node values.
11
+ */
12
+ export declare class GraphPinningService {
13
+ private readonly store;
14
+ private readonly policy;
15
+ private readonly dependencyResolver;
16
+ constructor(store: GraphValueStore, policy: GraphPinningPolicy, dependencyResolver: GraphPinningDependencyResolver);
17
+ /**
18
+ * Pins a node and all its upstream dependencies.
19
+ *
20
+ * @throws {GraphPinningError} when the node or any dependency is not pinnable.
21
+ */
22
+ pinNode(options: GraphPinNodeOptions): Promise<void>;
23
+ /**
24
+ * Unpins a single node (does not unpin dependents in v1).
25
+ */
26
+ unpinNode(options: GraphUnpinNodeOptions): Promise<void>;
27
+ /**
28
+ * Reads a pinned value for a node, returning `undefined` when no valid
29
+ * pinned value exists.
30
+ */
31
+ readPinnedValue(workflow: GraphWorkflowDefinition, node: GraphExecutionPlanNode, inputs: GraphExecutionValues, dependencyFingerprints: Record<string, string>, namespace?: string): Promise<GraphCachedValue | undefined>;
32
+ /**
33
+ * Creates a stable value key for a node.
34
+ */
35
+ createValueKey(workflow: GraphWorkflowDefinition, node: GraphExecutionPlanNode, inputs: GraphExecutionValues, dependencyFingerprints: Record<string, string>, namespace?: string): GraphValueKey;
36
+ /**
37
+ * Computes a stable fingerprint for a node's inputs and dependencies.
38
+ */
39
+ computeFingerprint(workflow: GraphWorkflowDefinition, node: GraphExecutionPlanNode, inputs: GraphExecutionValues, dependencyFingerprints: Record<string, string>): string;
40
+ /**
41
+ * Returns a topological ordering of the given node set.
42
+ */
43
+ private topologicalOrder;
44
+ /**
45
+ * Computes fingerprints for all upstream dependencies of a node.
46
+ */
47
+ private dependencyFingerprints;
48
+ /**
49
+ * Serializes a value with recursively sorted keys for stable hashing.
50
+ */
51
+ private stableSerialize;
52
+ /**
53
+ * Simple non-cryptographic hash for browser environments where
54
+ * `node:crypto` is unavailable. Produces a deterministic hex-like string
55
+ * from the input. This is NOT cryptographically secure but is sufficient
56
+ * for fingerprint-based cache keys.
57
+ */
58
+ private simpleHash;
59
+ }
@@ -0,0 +1,59 @@
1
+ import type { GraphExecutionPlanNode } from "../planning/GraphExecutionPlanNode.d.mts";
2
+ import type { GraphValueStore } from "../store/GraphValueStore.d.mts";
3
+ import type { GraphValueKey } from "../store/GraphValueKey.d.mts";
4
+ import type { GraphCachedValue } from "../store/GraphCachedValue.d.mts";
5
+ import type { GraphExecutionValues, GraphPinNodeOptions, GraphUnpinNodeOptions } from "../types.d.mts";
6
+ import type { GraphWorkflowDefinition } from "@decaf-ts/ui-decorators/graph";
7
+ import type { GraphPinningPolicy } from "./GraphPinningPolicy.d.mts";
8
+ import type { GraphPinningDependencyResolver } from "./GraphPinningDependencyResolver.d.mts";
9
+ /**
10
+ * Service that manages pinning and unpinning of graph node values.
11
+ */
12
+ export declare class GraphPinningService {
13
+ private readonly store;
14
+ private readonly policy;
15
+ private readonly dependencyResolver;
16
+ constructor(store: GraphValueStore, policy: GraphPinningPolicy, dependencyResolver: GraphPinningDependencyResolver);
17
+ /**
18
+ * Pins a node and all its upstream dependencies.
19
+ *
20
+ * @throws {GraphPinningError} when the node or any dependency is not pinnable.
21
+ */
22
+ pinNode(options: GraphPinNodeOptions): Promise<void>;
23
+ /**
24
+ * Unpins a single node (does not unpin dependents in v1).
25
+ */
26
+ unpinNode(options: GraphUnpinNodeOptions): Promise<void>;
27
+ /**
28
+ * Reads a pinned value for a node, returning `undefined` when no valid
29
+ * pinned value exists.
30
+ */
31
+ readPinnedValue(workflow: GraphWorkflowDefinition, node: GraphExecutionPlanNode, inputs: GraphExecutionValues, dependencyFingerprints: Record<string, string>, namespace?: string): Promise<GraphCachedValue | undefined>;
32
+ /**
33
+ * Creates a stable value key for a node.
34
+ */
35
+ createValueKey(workflow: GraphWorkflowDefinition, node: GraphExecutionPlanNode, inputs: GraphExecutionValues, dependencyFingerprints: Record<string, string>, namespace?: string): GraphValueKey;
36
+ /**
37
+ * Computes a stable fingerprint for a node's inputs and dependencies.
38
+ */
39
+ computeFingerprint(workflow: GraphWorkflowDefinition, node: GraphExecutionPlanNode, inputs: GraphExecutionValues, dependencyFingerprints: Record<string, string>): string;
40
+ /**
41
+ * Returns a topological ordering of the given node set.
42
+ */
43
+ private topologicalOrder;
44
+ /**
45
+ * Computes fingerprints for all upstream dependencies of a node.
46
+ */
47
+ private dependencyFingerprints;
48
+ /**
49
+ * Serializes a value with recursively sorted keys for stable hashing.
50
+ */
51
+ private stableSerialize;
52
+ /**
53
+ * Simple non-cryptographic hash for browser environments where
54
+ * `node:crypto` is unavailable. Produces a deterministic hex-like string
55
+ * from the input. This is NOT cryptographically secure but is sufficient
56
+ * for fingerprint-based cache keys.
57
+ */
58
+ private simpleHash;
59
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @module integrations/graph/pinning
3
+ * @summary Graph pinning subsystem.
4
+ * @description Re-exports the pinning metadata, policy, dependency resolver, and service.
5
+ */
6
+ export * from "./GraphPinningMetadata.d.cts";
7
+ export * from "./GraphPinningPolicy.d.cts";
8
+ export * from "./GraphPinningDependencyResolver.d.cts";
9
+ export * from "./GraphPinningService.d.cts";
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @module integrations/graph/pinning
3
+ * @summary Graph pinning subsystem.
4
+ * @description Re-exports the pinning metadata, policy, dependency resolver, and service.
5
+ */
6
+ export * from "./GraphPinningMetadata.d.mts";
7
+ export * from "./GraphPinningPolicy.d.mts";
8
+ export * from "./GraphPinningDependencyResolver.d.mts";
9
+ export * from "./GraphPinningService.d.mts";
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @module integrations/graph/planning/GraphExecutionPlan
3
+ * @summary The complete execution plan for a workflow.
4
+ * @description Contains resolved nodes, edges, topological layers, and incoming/outgoing maps.
5
+ */
6
+ import type { GraphWorkflowDefinition } from "@decaf-ts/ui-decorators/graph";
7
+ import type { GraphExecutionPlanNode } from "./GraphExecutionPlanNode.d.cts";
8
+ import type { GraphExecutionPlanEdge } from "./GraphExecutionPlanEdge.d.cts";
9
+ import type { GraphExecutionPlanLayer } from "./GraphExecutionPlanLayer.d.cts";
10
+ /**
11
+ * The resolved execution plan for a single workflow.
12
+ */
13
+ export interface GraphExecutionPlan {
14
+ workflow: GraphWorkflowDefinition;
15
+ workflowId: string;
16
+ nodes: GraphExecutionPlanNode[];
17
+ edges: GraphExecutionPlanEdge[];
18
+ layers: GraphExecutionPlanLayer[];
19
+ incomingByNode: Map<string, GraphExecutionPlanEdge[]>;
20
+ outgoingByNode: Map<string, GraphExecutionPlanEdge[]>;
21
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @module integrations/graph/planning/GraphExecutionPlan
3
+ * @summary The complete execution plan for a workflow.
4
+ * @description Contains resolved nodes, edges, topological layers, and incoming/outgoing maps.
5
+ */
6
+ import type { GraphWorkflowDefinition } from "@decaf-ts/ui-decorators/graph";
7
+ import type { GraphExecutionPlanNode } from "./GraphExecutionPlanNode.d.mts";
8
+ import type { GraphExecutionPlanEdge } from "./GraphExecutionPlanEdge.d.mts";
9
+ import type { GraphExecutionPlanLayer } from "./GraphExecutionPlanLayer.d.mts";
10
+ /**
11
+ * The resolved execution plan for a single workflow.
12
+ */
13
+ export interface GraphExecutionPlan {
14
+ workflow: GraphWorkflowDefinition;
15
+ workflowId: string;
16
+ nodes: GraphExecutionPlanNode[];
17
+ edges: GraphExecutionPlanEdge[];
18
+ layers: GraphExecutionPlanLayer[];
19
+ incomingByNode: Map<string, GraphExecutionPlanEdge[]>;
20
+ outgoingByNode: Map<string, GraphExecutionPlanEdge[]>;
21
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @module integrations/graph/planning/GraphExecutionPlanEdge
3
+ * @summary Plan edge type for the execution plan.
4
+ * @description Represents a directed value route between two endpoints (node-to-node or node-to-workflow-boundary).
5
+ */
6
+ /**
7
+ * An edge in the execution plan representing a value route from a source
8
+ * port to a target port.
9
+ *
10
+ * `sourceNodeId` or `targetNodeId` may be {@link GRAPH_WORKFLOW_BOUNDARY} when
11
+ * the edge connects to the workflow boundary.
12
+ */
13
+ export interface GraphExecutionPlanEdge {
14
+ id: string;
15
+ sourceNodeId: string;
16
+ sourcePort: string;
17
+ targetNodeId: string;
18
+ targetPort: string;
19
+ label?: string;
20
+ metadata?: Record<string, unknown>;
21
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @module integrations/graph/planning/GraphExecutionPlanEdge
3
+ * @summary Plan edge type for the execution plan.
4
+ * @description Represents a directed value route between two endpoints (node-to-node or node-to-workflow-boundary).
5
+ */
6
+ /**
7
+ * An edge in the execution plan representing a value route from a source
8
+ * port to a target port.
9
+ *
10
+ * `sourceNodeId` or `targetNodeId` may be {@link GRAPH_WORKFLOW_BOUNDARY} when
11
+ * the edge connects to the workflow boundary.
12
+ */
13
+ export interface GraphExecutionPlanEdge {
14
+ id: string;
15
+ sourceNodeId: string;
16
+ sourcePort: string;
17
+ targetNodeId: string;
18
+ targetPort: string;
19
+ label?: string;
20
+ metadata?: Record<string, unknown>;
21
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module integrations/graph/planning/GraphExecutionPlanLayer
3
+ * @summary A layer of nodes that can execute in parallel.
4
+ * @description Produced by the topological planner; all nodes in a layer have no dependencies on each other.
5
+ */
6
+ import type { GraphExecutionPlanNode } from "./GraphExecutionPlanNode.d.cts";
7
+ /**
8
+ * A topological layer of nodes that may execute in parallel.
9
+ */
10
+ export interface GraphExecutionPlanLayer {
11
+ index: number;
12
+ nodes: GraphExecutionPlanNode[];
13
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module integrations/graph/planning/GraphExecutionPlanLayer
3
+ * @summary A layer of nodes that can execute in parallel.
4
+ * @description Produced by the topological planner; all nodes in a layer have no dependencies on each other.
5
+ */
6
+ import type { GraphExecutionPlanNode } from "./GraphExecutionPlanNode.d.mts";
7
+ /**
8
+ * A topological layer of nodes that may execute in parallel.
9
+ */
10
+ export interface GraphExecutionPlanLayer {
11
+ index: number;
12
+ nodes: GraphExecutionPlanNode[];
13
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module integrations/graph/planning/GraphExecutionPlanNode
3
+ * @summary Plan node type for the execution plan.
4
+ * @description Represents a single node resolved from a workflow definition, ready for execution.
5
+ */
6
+ import type { GraphNodeDefinition, GraphWorkflowNodeMetadata } from "@decaf-ts/ui-decorators/graph";
7
+ /**
8
+ * A node in the execution plan, derived from a workflow's node metadata and
9
+ * its resolved graph definition.
10
+ */
11
+ export interface GraphExecutionPlanNode {
12
+ id: string;
13
+ kind: string;
14
+ label?: string;
15
+ source: GraphWorkflowNodeMetadata;
16
+ definition: GraphNodeDefinition;
17
+ inputPorts: string[];
18
+ outputPorts: string[];
19
+ metadata?: Record<string, unknown>;
20
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module integrations/graph/planning/GraphExecutionPlanNode
3
+ * @summary Plan node type for the execution plan.
4
+ * @description Represents a single node resolved from a workflow definition, ready for execution.
5
+ */
6
+ import type { GraphNodeDefinition, GraphWorkflowNodeMetadata } from "@decaf-ts/ui-decorators/graph";
7
+ /**
8
+ * A node in the execution plan, derived from a workflow's node metadata and
9
+ * its resolved graph definition.
10
+ */
11
+ export interface GraphExecutionPlanNode {
12
+ id: string;
13
+ kind: string;
14
+ label?: string;
15
+ source: GraphWorkflowNodeMetadata;
16
+ definition: GraphNodeDefinition;
17
+ inputPorts: string[];
18
+ outputPorts: string[];
19
+ metadata?: Record<string, unknown>;
20
+ }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @module integrations/graph/planning/GraphExecutionPlanner
3
+ * @summary Topological planner for graph workflows.
4
+ * @description Resolves workflow nodes and relations, validates topology, detects cycles, and produces topological execution layers using Kahn's algorithm.
5
+ */
6
+ import type { GraphWorkflowDefinition } from "@decaf-ts/ui-decorators/graph";
7
+ import type { GraphExecutionPlan } from "./GraphExecutionPlan.d.cts";
8
+ import { GraphRelationResolver } from "./GraphRelationResolver.d.cts";
9
+ /**
10
+ * Planner that turns a {@link GraphWorkflowDefinition} into a
11
+ * {@link GraphExecutionPlan} with topological layers.
12
+ */
13
+ export declare class GraphExecutionPlanner {
14
+ private readonly resolver;
15
+ constructor(resolver?: GraphRelationResolver);
16
+ /**
17
+ * Plans a workflow for execution.
18
+ *
19
+ * @param workflow - The workflow definition to plan.
20
+ * @returns The execution plan with nodes, edges, layers, and maps.
21
+ * @throws {GraphTopologyError} when node IDs are not unique.
22
+ * @throws {GraphCycleError} when the workflow contains an unsupported cycle.
23
+ */
24
+ plan(workflow: GraphWorkflowDefinition): GraphExecutionPlan;
25
+ /**
26
+ * Validates that all workflow node IDs are unique.
27
+ */
28
+ private validateUniqueNodeIds;
29
+ /**
30
+ * Resolves workflow node metadata into plan nodes with full definitions.
31
+ */
32
+ private resolveNodes;
33
+ /**
34
+ * Attempts to resolve the full graph node definition from metadata.
35
+ *
36
+ * Accepts either a decorated Model class/instance (resolved via
37
+ * `graphDefinitionOf`) or a plain `GraphNodeDefinition`-shaped object
38
+ * (useful for serialized workflows that inline node definitions).
39
+ */
40
+ private resolveDefinition;
41
+ /**
42
+ * Returns `true` when a value looks like a raw {@link GraphNodeDefinition}
43
+ * (a plain object with a `ports` array and a `name` string).
44
+ */
45
+ private isRawDefinition;
46
+ /**
47
+ * Builds a map of node id -> incoming edges.
48
+ */
49
+ private buildIncomingMap;
50
+ /**
51
+ * Builds a map of node id -> outgoing edges.
52
+ */
53
+ private buildOutgoingMap;
54
+ /**
55
+ * Produces topological layers using Kahn's algorithm.
56
+ *
57
+ * Workflow boundary edges do not count as executable-node dependencies.
58
+ */
59
+ private topologicalLayers;
60
+ }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @module integrations/graph/planning/GraphExecutionPlanner
3
+ * @summary Topological planner for graph workflows.
4
+ * @description Resolves workflow nodes and relations, validates topology, detects cycles, and produces topological execution layers using Kahn's algorithm.
5
+ */
6
+ import type { GraphWorkflowDefinition } from "@decaf-ts/ui-decorators/graph";
7
+ import type { GraphExecutionPlan } from "./GraphExecutionPlan.d.mts";
8
+ import { GraphRelationResolver } from "./GraphRelationResolver.d.mts";
9
+ /**
10
+ * Planner that turns a {@link GraphWorkflowDefinition} into a
11
+ * {@link GraphExecutionPlan} with topological layers.
12
+ */
13
+ export declare class GraphExecutionPlanner {
14
+ private readonly resolver;
15
+ constructor(resolver?: GraphRelationResolver);
16
+ /**
17
+ * Plans a workflow for execution.
18
+ *
19
+ * @param workflow - The workflow definition to plan.
20
+ * @returns The execution plan with nodes, edges, layers, and maps.
21
+ * @throws {GraphTopologyError} when node IDs are not unique.
22
+ * @throws {GraphCycleError} when the workflow contains an unsupported cycle.
23
+ */
24
+ plan(workflow: GraphWorkflowDefinition): GraphExecutionPlan;
25
+ /**
26
+ * Validates that all workflow node IDs are unique.
27
+ */
28
+ private validateUniqueNodeIds;
29
+ /**
30
+ * Resolves workflow node metadata into plan nodes with full definitions.
31
+ */
32
+ private resolveNodes;
33
+ /**
34
+ * Attempts to resolve the full graph node definition from metadata.
35
+ *
36
+ * Accepts either a decorated Model class/instance (resolved via
37
+ * `graphDefinitionOf`) or a plain `GraphNodeDefinition`-shaped object
38
+ * (useful for serialized workflows that inline node definitions).
39
+ */
40
+ private resolveDefinition;
41
+ /**
42
+ * Returns `true` when a value looks like a raw {@link GraphNodeDefinition}
43
+ * (a plain object with a `ports` array and a `name` string).
44
+ */
45
+ private isRawDefinition;
46
+ /**
47
+ * Builds a map of node id -> incoming edges.
48
+ */
49
+ private buildIncomingMap;
50
+ /**
51
+ * Builds a map of node id -> outgoing edges.
52
+ */
53
+ private buildOutgoingMap;
54
+ /**
55
+ * Produces topological layers using Kahn's algorithm.
56
+ *
57
+ * Workflow boundary edges do not count as executable-node dependencies.
58
+ */
59
+ private topologicalLayers;
60
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @module integrations/graph/planning/GraphRelationResolver
3
+ * @summary Normalizes workflow relations into execution edges.
4
+ * @description Resolves workflow boundary aliases, validates endpoints and ports, and produces stable edge IDs.
5
+ */
6
+ import type { GraphWorkflowDefinition } from "@decaf-ts/ui-decorators/graph";
7
+ import type { GraphExecutionPlanEdge } from "./GraphExecutionPlanEdge.d.cts";
8
+ /**
9
+ * Resolves raw workflow relation metadata into normalized execution edges.
10
+ */
11
+ export declare class GraphRelationResolver {
12
+ /**
13
+ * Resolves all relations of a workflow into execution edges.
14
+ *
15
+ * @param workflow - The workflow definition.
16
+ * @returns Array of normalized edges.
17
+ * @throws {GraphTopologyError} when an endpoint is unknown or ambiguous.
18
+ * @throws {GraphPortError} when a referenced port is missing or unknown.
19
+ */
20
+ resolve(workflow: GraphWorkflowDefinition): GraphExecutionPlanEdge[];
21
+ /**
22
+ * Resolves a single relation into an edge.
23
+ */
24
+ private resolveRelation;
25
+ /**
26
+ * Resolves an endpoint (source or target) to a node id or the workflow boundary.
27
+ */
28
+ private resolveEndpoint;
29
+ /**
30
+ * Validates that a port exists on the given node or boundary.
31
+ */
32
+ private validatePort;
33
+ /**
34
+ * Builds the set of boundary aliases for a workflow.
35
+ */
36
+ private boundaryAliases;
37
+ /**
38
+ * Extracts port names from a list of port definitions.
39
+ */
40
+ private portNames;
41
+ /**
42
+ * Builds a map of node id -> { input ports, output ports }.
43
+ */
44
+ private buildNodePortMap;
45
+ /**
46
+ * Attempts to resolve a node's full definition from its metadata.
47
+ *
48
+ * Accepts either a decorated Model class/instance (resolved via
49
+ * `graphDefinitionOf`) or a plain `GraphNodeDefinition`-shaped object
50
+ * (useful for serialized workflows that inline node definitions).
51
+ */
52
+ private resolveNodeDefinition;
53
+ /**
54
+ * Returns `true` when a value looks like a raw {@link GraphNodeDefinition}
55
+ * (a plain object with a `ports` array and a `name` string).
56
+ */
57
+ private isRawDefinition;
58
+ /**
59
+ * Creates a stable edge id from its endpoints and ports.
60
+ */
61
+ private createEdgeId;
62
+ }