@decaf-ts/integrations 0.3.1 → 0.3.3

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 (418) 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/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
  120. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +1 -1
  121. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
  122. package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +1 -1
  123. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
  124. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +1 -1
  125. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
  126. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +1 -1
  127. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
  128. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +1 -1
  129. package/lib/cjs/keycloak/services/KeycloakService.cjs +16 -9
  130. package/lib/cjs/keycloak/services/KeycloakService.cjs.map +1 -1
  131. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
  132. package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +1 -1
  133. package/lib/cjs/kibana/services/KibanaAuthService.cjs +3 -3
  134. package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +1 -1
  135. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +3 -3
  136. package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +1 -1
  137. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
  138. package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +1 -1
  139. package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
  140. package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +1 -1
  141. package/lib/cjs/kibana/services/KibanaService.cjs +16 -9
  142. package/lib/cjs/kibana/services/KibanaService.cjs.map +1 -1
  143. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
  144. package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +1 -1
  145. package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
  146. package/lib/cjs/kibana/services/KibanaUserService.cjs.map +1 -1
  147. package/lib/esm/graph/constants.js +106 -0
  148. package/lib/esm/graph/constants.js.map +1 -0
  149. package/lib/esm/graph/decorators.js +2 -0
  150. package/lib/esm/graph/decorators.js.map +1 -0
  151. package/lib/esm/graph/errors/GraphCycleError.js +15 -0
  152. package/lib/esm/graph/errors/GraphCycleError.js.map +1 -0
  153. package/lib/esm/graph/errors/GraphExecutionError.js +22 -0
  154. package/lib/esm/graph/errors/GraphExecutionError.js.map +1 -0
  155. package/lib/esm/graph/errors/GraphInputError.js +15 -0
  156. package/lib/esm/graph/errors/GraphInputError.js.map +1 -0
  157. package/lib/esm/graph/errors/GraphLoopLimitError.js +15 -0
  158. package/lib/esm/graph/errors/GraphLoopLimitError.js.map +1 -0
  159. package/lib/esm/graph/errors/GraphPinningError.js +15 -0
  160. package/lib/esm/graph/errors/GraphPinningError.js.map +1 -0
  161. package/lib/esm/graph/errors/GraphPortError.js +15 -0
  162. package/lib/esm/graph/errors/GraphPortError.js.map +1 -0
  163. package/lib/esm/graph/errors/GraphStoreError.js +15 -0
  164. package/lib/esm/graph/errors/GraphStoreError.js.map +1 -0
  165. package/lib/esm/graph/errors/GraphTopologyError.js +15 -0
  166. package/lib/esm/graph/errors/GraphTopologyError.js.map +1 -0
  167. package/lib/esm/graph/errors/index.js +14 -0
  168. package/lib/esm/graph/errors/index.js.map +1 -0
  169. package/lib/esm/graph/events/GraphExecutionEvent.js +2 -0
  170. package/lib/esm/graph/events/GraphExecutionEvent.js.map +1 -0
  171. package/lib/esm/graph/events/GraphExecutionEventEmitter.js +35 -0
  172. package/lib/esm/graph/events/GraphExecutionEventEmitter.js.map +1 -0
  173. package/lib/esm/graph/events/GraphExecutionEventFactory.js +32 -0
  174. package/lib/esm/graph/events/GraphExecutionEventFactory.js.map +1 -0
  175. package/lib/esm/graph/events/GraphExecutionObserver.js +2 -0
  176. package/lib/esm/graph/events/GraphExecutionObserver.js.map +1 -0
  177. package/lib/esm/graph/events/index.js +10 -0
  178. package/lib/esm/graph/events/index.js.map +1 -0
  179. package/lib/esm/graph/execution/GraphExecutionContext.js +74 -0
  180. package/lib/esm/graph/execution/GraphExecutionContext.js.map +1 -0
  181. package/lib/esm/graph/execution/GraphExecutionEngine.js +400 -0
  182. package/lib/esm/graph/execution/GraphExecutionEngine.js.map +1 -0
  183. package/lib/esm/graph/execution/GraphExecutionFrame.js +27 -0
  184. package/lib/esm/graph/execution/GraphExecutionFrame.js.map +1 -0
  185. package/lib/esm/graph/execution/GraphExecutionResult.js +26 -0
  186. package/lib/esm/graph/execution/GraphExecutionResult.js.map +1 -0
  187. package/lib/esm/graph/execution/GraphNodeExecutor.js +2 -0
  188. package/lib/esm/graph/execution/GraphNodeExecutor.js.map +1 -0
  189. package/lib/esm/graph/execution/index.js +11 -0
  190. package/lib/esm/graph/execution/index.js.map +1 -0
  191. package/lib/esm/graph/index.js +57 -0
  192. package/lib/esm/graph/index.js.map +1 -0
  193. package/lib/esm/graph/loops/ForeachGraphNodeExecutor.js +79 -0
  194. package/lib/esm/graph/loops/ForeachGraphNodeExecutor.js.map +1 -0
  195. package/lib/esm/graph/loops/GraphConditionEvaluator.js +58 -0
  196. package/lib/esm/graph/loops/GraphConditionEvaluator.js.map +1 -0
  197. package/lib/esm/graph/loops/GraphLoopExecutionContext.js +11 -0
  198. package/lib/esm/graph/loops/GraphLoopExecutionContext.js.map +1 -0
  199. package/lib/esm/graph/loops/UntilGraphNodeExecutor.js +71 -0
  200. package/lib/esm/graph/loops/UntilGraphNodeExecutor.js.map +1 -0
  201. package/lib/esm/graph/loops/WhileGraphNodeExecutor.js +72 -0
  202. package/lib/esm/graph/loops/WhileGraphNodeExecutor.js.map +1 -0
  203. package/lib/esm/graph/loops/index.js +11 -0
  204. package/lib/esm/graph/loops/index.js.map +1 -0
  205. package/lib/esm/graph/pinning/GraphPinningDependencyResolver.js +23 -0
  206. package/lib/esm/graph/pinning/GraphPinningDependencyResolver.js.map +1 -0
  207. package/lib/esm/graph/pinning/GraphPinningMetadata.js +15 -0
  208. package/lib/esm/graph/pinning/GraphPinningMetadata.js.map +1 -0
  209. package/lib/esm/graph/pinning/GraphPinningPolicy.js +29 -0
  210. package/lib/esm/graph/pinning/GraphPinningPolicy.js.map +1 -0
  211. package/lib/esm/graph/pinning/GraphPinningService.js +186 -0
  212. package/lib/esm/graph/pinning/GraphPinningService.js.map +1 -0
  213. package/lib/esm/graph/pinning/index.js +10 -0
  214. package/lib/esm/graph/pinning/index.js.map +1 -0
  215. package/lib/esm/graph/planning/GraphExecutionPlan.js +2 -0
  216. package/lib/esm/graph/planning/GraphExecutionPlan.js.map +1 -0
  217. package/lib/esm/graph/planning/GraphExecutionPlanEdge.js +7 -0
  218. package/lib/esm/graph/planning/GraphExecutionPlanEdge.js.map +1 -0
  219. package/lib/esm/graph/planning/GraphExecutionPlanLayer.js +2 -0
  220. package/lib/esm/graph/planning/GraphExecutionPlanLayer.js.map +1 -0
  221. package/lib/esm/graph/planning/GraphExecutionPlanNode.js +2 -0
  222. package/lib/esm/graph/planning/GraphExecutionPlanNode.js.map +1 -0
  223. package/lib/esm/graph/planning/GraphExecutionPlanner.js +192 -0
  224. package/lib/esm/graph/planning/GraphExecutionPlanner.js.map +1 -0
  225. package/lib/esm/graph/planning/GraphRelationResolver.js +167 -0
  226. package/lib/esm/graph/planning/GraphRelationResolver.js.map +1 -0
  227. package/lib/esm/graph/planning/GraphTopology.js +52 -0
  228. package/lib/esm/graph/planning/GraphTopology.js.map +1 -0
  229. package/lib/esm/graph/planning/index.js +13 -0
  230. package/lib/esm/graph/planning/index.js.map +1 -0
  231. package/lib/esm/graph/registry/GraphNodeExecutorRegistry.js +39 -0
  232. package/lib/esm/graph/registry/GraphNodeExecutorRegistry.js.map +1 -0
  233. package/lib/esm/graph/registry/GraphNodeExecutorResolver.js +22 -0
  234. package/lib/esm/graph/registry/GraphNodeExecutorResolver.js.map +1 -0
  235. package/lib/esm/graph/registry/index.js +8 -0
  236. package/lib/esm/graph/registry/index.js.map +1 -0
  237. package/lib/esm/graph/snapshots/GraphExecutionSnapshotMapper.js +48 -0
  238. package/lib/esm/graph/snapshots/GraphExecutionSnapshotMapper.js.map +1 -0
  239. package/lib/esm/graph/snapshots/index.js +7 -0
  240. package/lib/esm/graph/snapshots/index.js.map +1 -0
  241. package/lib/esm/graph/store/GraphCachedValue.js +2 -0
  242. package/lib/esm/graph/store/GraphCachedValue.js.map +1 -0
  243. package/lib/esm/graph/store/GraphValueKey.js +7 -0
  244. package/lib/esm/graph/store/GraphValueKey.js.map +1 -0
  245. package/lib/esm/graph/store/GraphValueStore.js +71 -0
  246. package/lib/esm/graph/store/GraphValueStore.js.map +1 -0
  247. package/lib/esm/graph/store/GraphValueStoreAdapter.js +2 -0
  248. package/lib/esm/graph/store/GraphValueStoreAdapter.js.map +1 -0
  249. package/lib/esm/graph/store/InMemoryGraphValueStoreAdapter.js +64 -0
  250. package/lib/esm/graph/store/InMemoryGraphValueStoreAdapter.js.map +1 -0
  251. package/lib/esm/graph/store/index.js +11 -0
  252. package/lib/esm/graph/store/index.js.map +1 -0
  253. package/lib/esm/graph/types.js +2 -0
  254. package/lib/esm/graph/types.js.map +1 -0
  255. package/lib/esm/graph/validation/GraphDefinitionValidator.js +28 -0
  256. package/lib/esm/graph/validation/GraphDefinitionValidator.js.map +1 -0
  257. package/lib/esm/graph/validation/GraphPortSchemaResolver.js +53 -0
  258. package/lib/esm/graph/validation/GraphPortSchemaResolver.js.map +1 -0
  259. package/lib/esm/graph/validation/GraphValueValidator.js +47 -0
  260. package/lib/esm/graph/validation/GraphValueValidator.js.map +1 -0
  261. package/lib/esm/graph/validation/index.js +9 -0
  262. package/lib/esm/graph/validation/index.js.map +1 -0
  263. package/lib/esm/index.js +3 -3
  264. package/lib/esm/keycloak/services/KeycloakAuthService.js +2 -2
  265. package/lib/esm/keycloak/services/KeycloakAuthService.js.map +1 -1
  266. package/lib/esm/keycloak/services/KeycloakClientService.js +2 -2
  267. package/lib/esm/keycloak/services/KeycloakClientService.js.map +1 -1
  268. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +2 -2
  269. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +1 -1
  270. package/lib/esm/keycloak/services/KeycloakRealmService.js +2 -2
  271. package/lib/esm/keycloak/services/KeycloakRealmService.js.map +1 -1
  272. package/lib/esm/keycloak/services/KeycloakRoleService.js +2 -2
  273. package/lib/esm/keycloak/services/KeycloakRoleService.js.map +1 -1
  274. package/lib/esm/keycloak/services/KeycloakService.js +16 -9
  275. package/lib/esm/keycloak/services/KeycloakService.js.map +1 -1
  276. package/lib/esm/keycloak/services/KeycloakUserService.js +2 -2
  277. package/lib/esm/keycloak/services/KeycloakUserService.js.map +1 -1
  278. package/lib/esm/kibana/services/KibanaAuthService.js +3 -3
  279. package/lib/esm/kibana/services/KibanaAuthService.js.map +1 -1
  280. package/lib/esm/kibana/services/KibanaDashboardService.js +3 -3
  281. package/lib/esm/kibana/services/KibanaDashboardService.js.map +1 -1
  282. package/lib/esm/kibana/services/KibanaDataViewService.js +2 -2
  283. package/lib/esm/kibana/services/KibanaDataViewService.js.map +1 -1
  284. package/lib/esm/kibana/services/KibanaRoleService.js +2 -2
  285. package/lib/esm/kibana/services/KibanaRoleService.js.map +1 -1
  286. package/lib/esm/kibana/services/KibanaService.js +16 -9
  287. package/lib/esm/kibana/services/KibanaService.js.map +1 -1
  288. package/lib/esm/kibana/services/KibanaSpaceService.js +2 -2
  289. package/lib/esm/kibana/services/KibanaSpaceService.js.map +1 -1
  290. package/lib/esm/kibana/services/KibanaUserService.js +2 -2
  291. package/lib/esm/kibana/services/KibanaUserService.js.map +1 -1
  292. package/lib/types/graph/constants.d.cts +101 -0
  293. package/lib/types/graph/constants.d.mts +101 -0
  294. package/lib/types/graph/decorators.d.cts +6 -0
  295. package/lib/types/graph/decorators.d.mts +6 -0
  296. package/lib/types/graph/errors/GraphCycleError.d.cts +12 -0
  297. package/lib/types/graph/errors/GraphCycleError.d.mts +12 -0
  298. package/lib/types/graph/errors/GraphExecutionError.d.cts +19 -0
  299. package/lib/types/graph/errors/GraphExecutionError.d.mts +19 -0
  300. package/lib/types/graph/errors/GraphInputError.d.cts +12 -0
  301. package/lib/types/graph/errors/GraphInputError.d.mts +12 -0
  302. package/lib/types/graph/errors/GraphLoopLimitError.d.cts +12 -0
  303. package/lib/types/graph/errors/GraphLoopLimitError.d.mts +12 -0
  304. package/lib/types/graph/errors/GraphPinningError.d.cts +12 -0
  305. package/lib/types/graph/errors/GraphPinningError.d.mts +12 -0
  306. package/lib/types/graph/errors/GraphPortError.d.cts +12 -0
  307. package/lib/types/graph/errors/GraphPortError.d.mts +12 -0
  308. package/lib/types/graph/errors/GraphStoreError.d.cts +12 -0
  309. package/lib/types/graph/errors/GraphStoreError.d.mts +12 -0
  310. package/lib/types/graph/errors/GraphTopologyError.d.cts +12 -0
  311. package/lib/types/graph/errors/GraphTopologyError.d.mts +12 -0
  312. package/lib/types/graph/errors/index.d.cts +13 -0
  313. package/lib/types/graph/errors/index.d.mts +13 -0
  314. package/lib/types/graph/events/GraphExecutionEvent.d.cts +6 -0
  315. package/lib/types/graph/events/GraphExecutionEvent.d.mts +6 -0
  316. package/lib/types/graph/events/GraphExecutionEventEmitter.d.cts +26 -0
  317. package/lib/types/graph/events/GraphExecutionEventEmitter.d.mts +26 -0
  318. package/lib/types/graph/events/GraphExecutionEventFactory.d.cts +25 -0
  319. package/lib/types/graph/events/GraphExecutionEventFactory.d.mts +25 -0
  320. package/lib/types/graph/events/GraphExecutionObserver.d.cts +17 -0
  321. package/lib/types/graph/events/GraphExecutionObserver.d.mts +17 -0
  322. package/lib/types/graph/events/index.d.cts +9 -0
  323. package/lib/types/graph/events/index.d.mts +9 -0
  324. package/lib/types/graph/execution/GraphExecutionContext.d.cts +50 -0
  325. package/lib/types/graph/execution/GraphExecutionContext.d.mts +50 -0
  326. package/lib/types/graph/execution/GraphExecutionEngine.d.cts +112 -0
  327. package/lib/types/graph/execution/GraphExecutionEngine.d.mts +112 -0
  328. package/lib/types/graph/execution/GraphExecutionFrame.d.cts +29 -0
  329. package/lib/types/graph/execution/GraphExecutionFrame.d.mts +29 -0
  330. package/lib/types/graph/execution/GraphExecutionResult.d.cts +13 -0
  331. package/lib/types/graph/execution/GraphExecutionResult.d.mts +13 -0
  332. package/lib/types/graph/execution/GraphNodeExecutor.d.cts +23 -0
  333. package/lib/types/graph/execution/GraphNodeExecutor.d.mts +23 -0
  334. package/lib/types/graph/execution/index.d.cts +10 -0
  335. package/lib/types/graph/execution/index.d.mts +10 -0
  336. package/lib/types/graph/index.d.cts +52 -0
  337. package/lib/types/graph/index.d.mts +52 -0
  338. package/lib/types/graph/loops/ForeachGraphNodeExecutor.d.cts +27 -0
  339. package/lib/types/graph/loops/ForeachGraphNodeExecutor.d.mts +27 -0
  340. package/lib/types/graph/loops/GraphConditionEvaluator.d.cts +23 -0
  341. package/lib/types/graph/loops/GraphConditionEvaluator.d.mts +23 -0
  342. package/lib/types/graph/loops/GraphLoopExecutionContext.d.cts +15 -0
  343. package/lib/types/graph/loops/GraphLoopExecutionContext.d.mts +15 -0
  344. package/lib/types/graph/loops/UntilGraphNodeExecutor.d.cts +22 -0
  345. package/lib/types/graph/loops/UntilGraphNodeExecutor.d.mts +22 -0
  346. package/lib/types/graph/loops/WhileGraphNodeExecutor.d.cts +26 -0
  347. package/lib/types/graph/loops/WhileGraphNodeExecutor.d.mts +26 -0
  348. package/lib/types/graph/loops/index.d.cts +10 -0
  349. package/lib/types/graph/loops/index.d.mts +10 -0
  350. package/lib/types/graph/pinning/GraphPinningDependencyResolver.d.cts +21 -0
  351. package/lib/types/graph/pinning/GraphPinningDependencyResolver.d.mts +21 -0
  352. package/lib/types/graph/pinning/GraphPinningMetadata.d.cts +14 -0
  353. package/lib/types/graph/pinning/GraphPinningMetadata.d.mts +14 -0
  354. package/lib/types/graph/pinning/GraphPinningPolicy.d.cts +20 -0
  355. package/lib/types/graph/pinning/GraphPinningPolicy.d.mts +20 -0
  356. package/lib/types/graph/pinning/GraphPinningService.d.cts +59 -0
  357. package/lib/types/graph/pinning/GraphPinningService.d.mts +59 -0
  358. package/lib/types/graph/pinning/index.d.cts +9 -0
  359. package/lib/types/graph/pinning/index.d.mts +9 -0
  360. package/lib/types/graph/planning/GraphExecutionPlan.d.cts +21 -0
  361. package/lib/types/graph/planning/GraphExecutionPlan.d.mts +21 -0
  362. package/lib/types/graph/planning/GraphExecutionPlanEdge.d.cts +21 -0
  363. package/lib/types/graph/planning/GraphExecutionPlanEdge.d.mts +21 -0
  364. package/lib/types/graph/planning/GraphExecutionPlanLayer.d.cts +13 -0
  365. package/lib/types/graph/planning/GraphExecutionPlanLayer.d.mts +13 -0
  366. package/lib/types/graph/planning/GraphExecutionPlanNode.d.cts +20 -0
  367. package/lib/types/graph/planning/GraphExecutionPlanNode.d.mts +20 -0
  368. package/lib/types/graph/planning/GraphExecutionPlanner.d.cts +60 -0
  369. package/lib/types/graph/planning/GraphExecutionPlanner.d.mts +60 -0
  370. package/lib/types/graph/planning/GraphRelationResolver.d.cts +62 -0
  371. package/lib/types/graph/planning/GraphRelationResolver.d.mts +62 -0
  372. package/lib/types/graph/planning/GraphTopology.d.cts +23 -0
  373. package/lib/types/graph/planning/GraphTopology.d.mts +23 -0
  374. package/lib/types/graph/planning/index.d.cts +12 -0
  375. package/lib/types/graph/planning/index.d.mts +12 -0
  376. package/lib/types/graph/registry/GraphNodeExecutorRegistry.d.cts +25 -0
  377. package/lib/types/graph/registry/GraphNodeExecutorRegistry.d.mts +25 -0
  378. package/lib/types/graph/registry/GraphNodeExecutorResolver.d.cts +21 -0
  379. package/lib/types/graph/registry/GraphNodeExecutorResolver.d.mts +21 -0
  380. package/lib/types/graph/registry/index.d.cts +7 -0
  381. package/lib/types/graph/registry/index.d.mts +7 -0
  382. package/lib/types/graph/snapshots/GraphExecutionSnapshotMapper.d.cts +10 -0
  383. package/lib/types/graph/snapshots/GraphExecutionSnapshotMapper.d.mts +10 -0
  384. package/lib/types/graph/snapshots/index.d.cts +6 -0
  385. package/lib/types/graph/snapshots/index.d.mts +6 -0
  386. package/lib/types/graph/store/GraphCachedValue.d.cts +20 -0
  387. package/lib/types/graph/store/GraphCachedValue.d.mts +20 -0
  388. package/lib/types/graph/store/GraphValueKey.d.cts +18 -0
  389. package/lib/types/graph/store/GraphValueKey.d.mts +18 -0
  390. package/lib/types/graph/store/GraphValueStore.d.cts +41 -0
  391. package/lib/types/graph/store/GraphValueStore.d.mts +41 -0
  392. package/lib/types/graph/store/GraphValueStoreAdapter.d.cts +32 -0
  393. package/lib/types/graph/store/GraphValueStoreAdapter.d.mts +32 -0
  394. package/lib/types/graph/store/InMemoryGraphValueStoreAdapter.d.cts +33 -0
  395. package/lib/types/graph/store/InMemoryGraphValueStoreAdapter.d.mts +33 -0
  396. package/lib/types/graph/store/index.d.cts +10 -0
  397. package/lib/types/graph/store/index.d.mts +10 -0
  398. package/lib/types/graph/types.d.cts +197 -0
  399. package/lib/types/graph/types.d.mts +197 -0
  400. package/lib/types/graph/validation/GraphDefinitionValidator.d.cts +21 -0
  401. package/lib/types/graph/validation/GraphDefinitionValidator.d.mts +21 -0
  402. package/lib/types/graph/validation/GraphPortSchemaResolver.d.cts +39 -0
  403. package/lib/types/graph/validation/GraphPortSchemaResolver.d.mts +39 -0
  404. package/lib/types/graph/validation/GraphValueValidator.d.cts +27 -0
  405. package/lib/types/graph/validation/GraphValueValidator.d.mts +27 -0
  406. package/lib/types/graph/validation/index.d.cts +8 -0
  407. package/lib/types/graph/validation/index.d.mts +8 -0
  408. package/lib/types/index.d.cts +2 -2
  409. package/lib/types/index.d.mts +2 -2
  410. package/lib/types/keycloak/services/KeycloakService.d.cts +1 -0
  411. package/lib/types/keycloak/services/KeycloakService.d.mts +1 -0
  412. package/lib/types/keycloak/types.d.cts +1 -4
  413. package/lib/types/keycloak/types.d.mts +1 -4
  414. package/lib/types/kibana/services/KibanaService.d.cts +1 -0
  415. package/lib/types/kibana/services/KibanaService.d.mts +1 -0
  416. package/lib/types/kibana/types.d.cts +1 -4
  417. package/lib/types/kibana/types.d.mts +1 -4
  418. package/package.json +17 -3
@@ -0,0 +1,58 @@
1
+ import { GraphConditionType } from "./../constants.js";
2
+ import { GraphExecutionError } from "./../errors/GraphExecutionError.js";
3
+ /**
4
+ * Evaluates loop conditions using built-in comparison types.
5
+ */
6
+ export class GraphConditionEvaluator {
7
+ /**
8
+ * Evaluates a condition against the given state.
9
+ *
10
+ * @param condition - The condition definition.
11
+ * @param state - The current loop state.
12
+ * @returns `true` when the condition passes.
13
+ */
14
+ evaluate(condition, state) {
15
+ const left = this.resolveValue(condition.left, state);
16
+ const right = condition.right;
17
+ switch (condition.type) {
18
+ case GraphConditionType.TRUTHY:
19
+ return !!left;
20
+ case GraphConditionType.FALSY:
21
+ return !left;
22
+ case GraphConditionType.EQUALS:
23
+ return left === right;
24
+ case GraphConditionType.NOT_EQUALS:
25
+ return left !== right;
26
+ case GraphConditionType.GREATER_THAN:
27
+ return Number(left) > Number(right);
28
+ case GraphConditionType.GREATER_THAN_OR_EQUAL:
29
+ return Number(left) >= Number(right);
30
+ case GraphConditionType.LESS_THAN:
31
+ return Number(left) < Number(right);
32
+ case GraphConditionType.LESS_THAN_OR_EQUAL:
33
+ return Number(left) <= Number(right);
34
+ case GraphConditionType.EXISTS:
35
+ return left !== undefined && left !== null;
36
+ case GraphConditionType.CUSTOM:
37
+ throw new GraphExecutionError("Custom condition evaluators are not supported in v1", "GRAPH_CUSTOM_CONDITION_UNSUPPORTED");
38
+ default:
39
+ throw new GraphExecutionError(`Unknown condition type '${condition.type}'`, "GRAPH_UNKNOWN_CONDITION_TYPE", { condition });
40
+ }
41
+ }
42
+ /**
43
+ * Resolves a value that may be a dotted path into the state object.
44
+ */
45
+ resolveValue(path, state) {
46
+ if (!path)
47
+ return state;
48
+ const parts = path.split(".");
49
+ let current = state;
50
+ for (const part of parts) {
51
+ if (current == null)
52
+ return undefined;
53
+ current = current[part];
54
+ }
55
+ return current;
56
+ }
57
+ }
58
+ //# sourceMappingURL=GraphConditionEvaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphConditionEvaluator.js","sourceRoot":"","sources":["../../../../src/graph/loops/GraphConditionEvaluator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,0BAAqB;AAClD,OAAO,EAAE,mBAAmB,EAAE,2CAAsC;AAEpE;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,SAAmC,EAAE,KAAc;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAE9B,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;YACvB,KAAK,kBAAkB,CAAC,MAAM;gBAC5B,OAAO,CAAC,CAAC,IAAI,CAAC;YAChB,KAAK,kBAAkB,CAAC,KAAK;gBAC3B,OAAO,CAAC,IAAI,CAAC;YACf,KAAK,kBAAkB,CAAC,MAAM;gBAC5B,OAAO,IAAI,KAAK,KAAK,CAAC;YACxB,KAAK,kBAAkB,CAAC,UAAU;gBAChC,OAAO,IAAI,KAAK,KAAK,CAAC;YACxB,KAAK,kBAAkB,CAAC,YAAY;gBAClC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACtC,KAAK,kBAAkB,CAAC,qBAAqB;gBAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;YACvC,KAAK,kBAAkB,CAAC,SAAS;gBAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACtC,KAAK,kBAAkB,CAAC,kBAAkB;gBACxC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;YACvC,KAAK,kBAAkB,CAAC,MAAM;gBAC5B,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC;YAC7C,KAAK,kBAAkB,CAAC,MAAM;gBAC5B,MAAM,IAAI,mBAAmB,CAC3B,qDAAqD,EACrD,oCAAoC,CACrC,CAAC;YACJ;gBACE,MAAM,IAAI,mBAAmB,CAC3B,2BAA2B,SAAS,CAAC,IAAI,GAAG,EAC5C,8BAA8B,EAC9B,EAAE,SAAS,EAAE,CACd,CAAC;QACN,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,IAAwB,EAAE,KAAc;QAC3D,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,OAAO,GAAY,KAAK,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,IAAI,IAAI;gBAAE,OAAO,SAAS,CAAC;YACtC,OAAO,GAAI,OAAmC,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Context for a single loop execution, carrying the loop metadata and
3
+ * current iteration index.
4
+ */
5
+ export class GraphLoopExecutionContext {
6
+ constructor(iteration, metadata) {
7
+ this.iteration = iteration;
8
+ this.metadata = metadata;
9
+ }
10
+ }
11
+ //# sourceMappingURL=GraphLoopExecutionContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphLoopExecutionContext.js","sourceRoot":"","sources":["../../../../src/graph/loops/GraphLoopExecutionContext.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,OAAO,yBAAyB;IAIpC,YAAY,SAAiB,EAAE,QAA2B;QACxD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,71 @@
1
+ import { GRAPH_DEFAULT_MAX_LOOP_ITERATIONS, GraphExecutionEventType } from "./../constants.js";
2
+ import { GraphInputError } from "./../errors/GraphInputError.js";
3
+ import { GraphLoopLimitError } from "./../errors/GraphLoopLimitError.js";
4
+ import { GraphConditionEvaluator } from "./GraphConditionEvaluator.js";
5
+ /**
6
+ * Executor for `core.loop.until` nodes.
7
+ *
8
+ * Executes the body at least once, then checks the condition. Repeats until
9
+ * the condition evaluates to true.
10
+ */
11
+ export class UntilGraphNodeExecutor {
12
+ constructor(engine) {
13
+ this.engine = engine;
14
+ this.evaluator = new GraphConditionEvaluator();
15
+ }
16
+ async execute(input, context) {
17
+ const metadata = this.extractMetadata(context);
18
+ const maxIterations = metadata.maxIterations ?? GRAPH_DEFAULT_MAX_LOOP_ITERATIONS;
19
+ const condition = metadata.condition;
20
+ if (!condition) {
21
+ throw new GraphInputError("until node is missing a condition");
22
+ }
23
+ const statePort = metadata.statePort ?? "state";
24
+ const bodyWorkflow = metadata.body;
25
+ let state = input.state;
26
+ let iteration = 0;
27
+ await context.emit({ type: GraphExecutionEventType.LOOP_STARTED });
28
+ let shouldStop = false;
29
+ do {
30
+ if (iteration >= maxIterations) {
31
+ await context.emit({
32
+ type: GraphExecutionEventType.LOOP_LIMIT_REACHED,
33
+ iteration,
34
+ });
35
+ throw new GraphLoopLimitError(`until loop exceeded max iterations (${maxIterations})`);
36
+ }
37
+ await context.emit({
38
+ type: GraphExecutionEventType.LOOP_ITERATION_STARTED,
39
+ iteration,
40
+ });
41
+ const childResult = await this.engine.execute(bodyWorkflow, { [statePort]: state, iteration }, {
42
+ parentRunId: context.runId,
43
+ path: [...context.path, `iteration:${iteration}`],
44
+ });
45
+ state = childResult.outputs[statePort];
46
+ await context.emit({
47
+ type: GraphExecutionEventType.LOOP_ITERATION_COMPLETED,
48
+ iteration,
49
+ });
50
+ const conditionResult = this.evaluator.evaluate(condition, state);
51
+ await context.emit({
52
+ type: GraphExecutionEventType.LOOP_CONDITION_EVALUATED,
53
+ iteration,
54
+ payload: { result: conditionResult },
55
+ });
56
+ iteration++;
57
+ shouldStop = conditionResult;
58
+ } while (!shouldStop);
59
+ await context.emit({ type: GraphExecutionEventType.LOOP_COMPLETED });
60
+ return { [statePort]: state, iterations: iteration };
61
+ }
62
+ extractMetadata(context) {
63
+ const raw = context.node.graph?.metadata?.loop ??
64
+ context.metadata?.loop;
65
+ if (!raw) {
66
+ throw new GraphInputError("until node is missing loop metadata");
67
+ }
68
+ return raw;
69
+ }
70
+ }
71
+ //# sourceMappingURL=UntilGraphNodeExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UntilGraphNodeExecutor.js","sourceRoot":"","sources":["../../../../src/graph/loops/UntilGraphNodeExecutor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { GRAPH_DEFAULT_MAX_LOOP_ITERATIONS, GraphExecutionEventType } from "./../constants.js";
2
+ import { GraphInputError } from "./../errors/GraphInputError.js";
3
+ import { GraphLoopLimitError } from "./../errors/GraphLoopLimitError.js";
4
+ import { GraphConditionEvaluator } from "./GraphConditionEvaluator.js";
5
+ /**
6
+ * Executor for `core.loop.while` nodes.
7
+ *
8
+ * Expects input:
9
+ * - `state`: initial state
10
+ *
11
+ * Produces output:
12
+ * - `state`: final state
13
+ * - `iterations`: number of iterations executed
14
+ */
15
+ export class WhileGraphNodeExecutor {
16
+ constructor(engine) {
17
+ this.engine = engine;
18
+ this.evaluator = new GraphConditionEvaluator();
19
+ }
20
+ async execute(input, context) {
21
+ const metadata = this.extractMetadata(context);
22
+ const maxIterations = metadata.maxIterations ?? GRAPH_DEFAULT_MAX_LOOP_ITERATIONS;
23
+ const condition = metadata.condition;
24
+ if (!condition) {
25
+ throw new GraphInputError("while node is missing a condition");
26
+ }
27
+ const statePort = metadata.statePort ?? "state";
28
+ const bodyWorkflow = metadata.body;
29
+ let state = input.state;
30
+ let iteration = 0;
31
+ await context.emit({ type: GraphExecutionEventType.LOOP_STARTED });
32
+ while (this.evaluator.evaluate(condition, state)) {
33
+ if (iteration >= maxIterations) {
34
+ await context.emit({
35
+ type: GraphExecutionEventType.LOOP_LIMIT_REACHED,
36
+ iteration,
37
+ });
38
+ throw new GraphLoopLimitError(`while loop exceeded max iterations (${maxIterations})`);
39
+ }
40
+ await context.emit({
41
+ type: GraphExecutionEventType.LOOP_CONDITION_EVALUATED,
42
+ iteration,
43
+ payload: { result: true },
44
+ });
45
+ await context.emit({
46
+ type: GraphExecutionEventType.LOOP_ITERATION_STARTED,
47
+ iteration,
48
+ });
49
+ const childResult = await this.engine.execute(bodyWorkflow, { [statePort]: state, iteration }, {
50
+ parentRunId: context.runId,
51
+ path: [...context.path, `iteration:${iteration}`],
52
+ });
53
+ state = childResult.outputs[statePort];
54
+ await context.emit({
55
+ type: GraphExecutionEventType.LOOP_ITERATION_COMPLETED,
56
+ iteration,
57
+ });
58
+ iteration++;
59
+ }
60
+ await context.emit({ type: GraphExecutionEventType.LOOP_COMPLETED });
61
+ return { [statePort]: state, iterations: iteration };
62
+ }
63
+ extractMetadata(context) {
64
+ const raw = context.node.graph?.metadata?.loop ??
65
+ context.metadata?.loop;
66
+ if (!raw) {
67
+ throw new GraphInputError("while node is missing loop metadata");
68
+ }
69
+ return raw;
70
+ }
71
+ }
72
+ //# sourceMappingURL=WhileGraphNodeExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WhileGraphNodeExecutor.js","sourceRoot":"","sources":["../../../../src/graph/loops/WhileGraphNodeExecutor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @module integrations/graph/loops
3
+ * @summary Structured loop executors.
4
+ * @description Re-exports the condition evaluator, loop execution context, and foreach/while/until executors.
5
+ */
6
+ export * from "./GraphConditionEvaluator.js";
7
+ export * from "./GraphLoopExecutionContext.js";
8
+ export * from "./ForeachGraphNodeExecutor.js";
9
+ export * from "./WhileGraphNodeExecutor.js";
10
+ export * from "./UntilGraphNodeExecutor.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/graph/loops/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,6CAA0C;AAC1C,+CAA4C;AAC5C,8CAA2C;AAC3C,4CAAyC;AACzC,4CAAyC"}
@@ -0,0 +1,23 @@
1
+ import { GraphTopology } from "./../planning/GraphTopology.js";
2
+ /**
3
+ * Resolves the upstream dependency subtree of a node for pinning operations.
4
+ */
5
+ export class GraphPinningDependencyResolver {
6
+ /**
7
+ * Returns the set of upstream node ids that the given node depends on,
8
+ * excluding the workflow boundary.
9
+ */
10
+ getDependencies(plan, nodeId) {
11
+ return GraphTopology.upstreamNodes(nodeId, plan.incomingByNode, false);
12
+ }
13
+ /**
14
+ * Returns the full set of node ids to pin: the node itself plus all its
15
+ * upstream dependencies.
16
+ */
17
+ getPinSet(plan, nodeId) {
18
+ const deps = this.getDependencies(plan, nodeId);
19
+ deps.add(nodeId);
20
+ return deps;
21
+ }
22
+ }
23
+ //# sourceMappingURL=GraphPinningDependencyResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphPinningDependencyResolver.js","sourceRoot":"","sources":["../../../../src/graph/pinning/GraphPinningDependencyResolver.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,uCAAkC;AAE1D;;GAEG;AACH,MAAM,OAAO,8BAA8B;IACzC;;;OAGG;IACH,eAAe,CAAC,IAAwB,EAAE,MAAc;QACtD,OAAO,aAAa,CAAC,aAAa,CAChC,MAAM,EACN,IAAI,CAAC,cAAc,EACnB,KAAK,CACN,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,IAAwB,EAAE,MAAc;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Default pinning metadata applied when `@pinnable()` is used without options.
3
+ */
4
+ export const DEFAULT_PINNING_METADATA = {
5
+ enabled: true,
6
+ strategy: "manual",
7
+ includeDependencies: true,
8
+ };
9
+ /**
10
+ * Returns `true` when the given metadata allows pinning.
11
+ */
12
+ export function isPinnable(metadata) {
13
+ return metadata?.enabled === true && metadata.strategy !== "disabled";
14
+ }
15
+ //# sourceMappingURL=GraphPinningMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphPinningMetadata.js","sourceRoot":"","sources":["../../../../src/graph/pinning/GraphPinningMetadata.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAyB;IAC5D,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,QAAQ;IAClB,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAA0C;IACnE,OAAO,QAAQ,EAAE,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,KAAK,UAAU,CAAC;AACxE,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { DEFAULT_PINNING_METADATA, isPinnable } from "./GraphPinningMetadata.js";
2
+ /**
3
+ * Policy that decides pinning behaviour for a plan node.
4
+ */
5
+ export class GraphPinningPolicy {
6
+ /** Returns whether the node is allowed to be pinned. */
7
+ canPin(node) {
8
+ return isPinnable(this.getPinningMetadata(node));
9
+ }
10
+ /** Returns whether the engine should attempt to use a pinned value for the node. */
11
+ shouldUsePinnedValue(node) {
12
+ const metadata = this.getPinningMetadata(node);
13
+ return metadata.enabled === true && metadata.strategy !== "disabled";
14
+ }
15
+ /** Returns whether automatic pinning should occur after execution. */
16
+ shouldAutoPin(node) {
17
+ const metadata = this.getPinningMetadata(node);
18
+ return metadata.enabled === true && metadata.strategy === "automatic";
19
+ }
20
+ /** Extracts pinning metadata from a plan node. */
21
+ getPinningMetadata(node) {
22
+ const raw = node.definition?.graph?.metadata?.pinnable ??
23
+ node.metadata?.pinnable;
24
+ return raw
25
+ ? { ...DEFAULT_PINNING_METADATA, ...raw }
26
+ : { ...DEFAULT_PINNING_METADATA, enabled: false };
27
+ }
28
+ }
29
+ //# sourceMappingURL=GraphPinningPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphPinningPolicy.js","sourceRoot":"","sources":["../../../../src/graph/pinning/GraphPinningPolicy.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,kCAA+B;AAE9E;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAC7B,wDAAwD;IACxD,MAAM,CAAC,IAA4B;QACjC,OAAO,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,oFAAoF;IACpF,oBAAoB,CAAC,IAA4B;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,KAAK,UAAU,CAAC;IACvE,CAAC;IAED,sEAAsE;IACtE,aAAa,CAAC,IAA4B;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,KAAK,WAAW,CAAC;IACxE,CAAC;IAED,kDAAkD;IAClD,kBAAkB,CAAC,IAA4B;QAC7C,MAAM,GAAG,GACN,IAAI,CAAC,UAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ;YAClD,IAAI,CAAC,QAAgB,EAAE,QAAQ,CAAC;QACnC,OAAO,GAAG;YACR,CAAC,CAAC,EAAE,GAAG,wBAAwB,EAAE,GAAG,GAAG,EAAE;YACzC,CAAC,CAAC,EAAE,GAAG,wBAAwB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACtD,CAAC;CACF"}
@@ -0,0 +1,186 @@
1
+ /**
2
+ * @module integrations/graph/pinning/GraphPinningService
3
+ * @summary Service for pinning and unpinning graph node values.
4
+ * @description Computes stable fingerprints, pins/unpins nodes and their upstream dependencies, reads pinned values, and emits pinning events. Pinning is all-or-nothing: if any upstream dependency is not pinnable, the operation fails.
5
+ */
6
+ import { GRAPH_PINNING_METADATA_KEY } from "./../constants.js";
7
+ import { GraphPinningError } from "./../errors/GraphPinningError.js";
8
+ import { GraphTopology } from "./../planning/GraphTopology.js";
9
+ /**
10
+ * Service that manages pinning and unpinning of graph node values.
11
+ */
12
+ export class GraphPinningService {
13
+ constructor(store, policy, dependencyResolver) {
14
+ this.store = store;
15
+ this.policy = policy;
16
+ this.dependencyResolver = dependencyResolver;
17
+ }
18
+ /**
19
+ * Pins a node and all its upstream dependencies.
20
+ *
21
+ * @throws {GraphPinningError} when the node or any dependency is not pinnable.
22
+ */
23
+ async pinNode(options) {
24
+ const plan = options.plan;
25
+ const includeDependencies = options.includeDependencies ?? true;
26
+ const pinSet = includeDependencies
27
+ ? this.dependencyResolver.getPinSet(plan, options.nodeId)
28
+ : new Set([options.nodeId]);
29
+ // Validate all-or-nothing
30
+ for (const nodeId of pinSet) {
31
+ const node = plan.nodes.find((n) => n.id === nodeId);
32
+ if (!node) {
33
+ throw new GraphPinningError(`Node '${nodeId}' not found in plan`);
34
+ }
35
+ if (!this.policy.canPin(node)) {
36
+ throw new GraphPinningError(`Node '${nodeId}' is not pinnable`, { nodeId });
37
+ }
38
+ }
39
+ // Pin dependencies first, then the selected node
40
+ const ordered = this.topologicalOrder(plan, pinSet);
41
+ for (const nodeId of ordered) {
42
+ const node = plan.nodes.find((n) => n.id === nodeId);
43
+ const result = options.result.nodeResults[nodeId];
44
+ if (!result || !result.outputs) {
45
+ throw new GraphPinningError(`Node '${nodeId}' has no completed output to pin`);
46
+ }
47
+ const inputs = result.inputs ?? {};
48
+ const depFingerprints = this.dependencyFingerprints(plan, nodeId, options.result);
49
+ const key = this.createValueKey(options.workflow, node, inputs, depFingerprints, options.namespace);
50
+ const now = new Date().toISOString();
51
+ const cached = {
52
+ key,
53
+ outputs: result.outputs,
54
+ pinned: true,
55
+ createdAt: now,
56
+ updatedAt: now,
57
+ metadata: { ...options.result.metadata, nodeId },
58
+ };
59
+ await this.store.writeCached(key, cached);
60
+ }
61
+ }
62
+ /**
63
+ * Unpins a single node (does not unpin dependents in v1).
64
+ */
65
+ async unpinNode(options) {
66
+ const key = {
67
+ workflowId: options.workflow.name,
68
+ nodeId: options.nodeId,
69
+ fingerprint: options.fingerprint,
70
+ namespace: options.namespace,
71
+ };
72
+ await this.store.deleteCached(key);
73
+ }
74
+ /**
75
+ * Reads a pinned value for a node, returning `undefined` when no valid
76
+ * pinned value exists.
77
+ */
78
+ async readPinnedValue(workflow, node, inputs, dependencyFingerprints, namespace) {
79
+ const key = this.createValueKey(workflow, node, inputs, dependencyFingerprints, namespace);
80
+ const cached = await this.store.readCached(key);
81
+ if (cached && cached.pinned) {
82
+ if (cached.expiresAt && new Date(cached.expiresAt) < new Date()) {
83
+ return undefined;
84
+ }
85
+ return cached;
86
+ }
87
+ return undefined;
88
+ }
89
+ /**
90
+ * Creates a stable value key for a node.
91
+ */
92
+ createValueKey(workflow, node, inputs, dependencyFingerprints, namespace) {
93
+ return {
94
+ workflowId: workflow.name,
95
+ nodeId: node.id,
96
+ fingerprint: this.computeFingerprint(workflow, node, inputs, dependencyFingerprints),
97
+ namespace,
98
+ };
99
+ }
100
+ /**
101
+ * Computes a stable fingerprint for a node's inputs and dependencies.
102
+ */
103
+ computeFingerprint(workflow, node, inputs, dependencyFingerprints) {
104
+ const data = {
105
+ workflowId: workflow.name,
106
+ nodeId: node.id,
107
+ nodeKind: node.kind,
108
+ nodeDefinitionVersion: node.definition?.graph?.metadata?.version,
109
+ inputs: this.stableSerialize(inputs),
110
+ dependencyFingerprints: this.stableSerialize(dependencyFingerprints),
111
+ };
112
+ const json = this.stableSerialize(data);
113
+ // Use a deterministic non-cryptographic hash that works in both browser
114
+ // and Node environments without requiring `node:crypto`.
115
+ return this.simpleHash(json);
116
+ }
117
+ /**
118
+ * Returns a topological ordering of the given node set.
119
+ */
120
+ topologicalOrder(plan, nodeSet) {
121
+ const result = [];
122
+ const visited = new Set();
123
+ const visit = (nodeId) => {
124
+ if (visited.has(nodeId))
125
+ return;
126
+ visited.add(nodeId);
127
+ const deps = GraphTopology.upstreamNodes(nodeId, plan.incomingByNode, false);
128
+ for (const dep of deps) {
129
+ if (nodeSet.has(dep))
130
+ visit(dep);
131
+ }
132
+ result.push(nodeId);
133
+ };
134
+ for (const nodeId of nodeSet)
135
+ visit(nodeId);
136
+ return result;
137
+ }
138
+ /**
139
+ * Computes fingerprints for all upstream dependencies of a node.
140
+ */
141
+ dependencyFingerprints(plan, nodeId, result) {
142
+ const deps = this.dependencyResolver.getDependencies(plan, nodeId);
143
+ const fingerprints = {};
144
+ for (const dep of deps) {
145
+ const node = plan.nodes.find((n) => n.id === dep);
146
+ if (node) {
147
+ const depResult = result.nodeResults[dep];
148
+ const inputs = depResult?.inputs ?? {};
149
+ const nestedDeps = this.dependencyFingerprints(plan, dep, result);
150
+ fingerprints[dep] = this.computeFingerprint(plan.workflow, node, inputs, nestedDeps);
151
+ }
152
+ }
153
+ return fingerprints;
154
+ }
155
+ /**
156
+ * Serializes a value with recursively sorted keys for stable hashing.
157
+ */
158
+ stableSerialize(value) {
159
+ if (value === null || typeof value !== "object") {
160
+ return JSON.stringify(value);
161
+ }
162
+ if (Array.isArray(value)) {
163
+ return `[${value.map((v) => this.stableSerialize(v)).join(",")}]`;
164
+ }
165
+ const keys = Object.keys(value).sort();
166
+ const pairs = keys.map((k) => `${JSON.stringify(k)}:${this.stableSerialize(value[k])}`);
167
+ return `{${pairs.join(",")}}`;
168
+ }
169
+ /**
170
+ * Simple non-cryptographic hash for browser environments where
171
+ * `node:crypto` is unavailable. Produces a deterministic hex-like string
172
+ * from the input. This is NOT cryptographically secure but is sufficient
173
+ * for fingerprint-based cache keys.
174
+ */
175
+ simpleHash(str) {
176
+ let hash = 0;
177
+ for (let i = 0; i < str.length; i++) {
178
+ const char = str.charCodeAt(i);
179
+ hash = (hash << 5) - hash + char;
180
+ hash |= 0;
181
+ }
182
+ return `fp_${Math.abs(hash).toString(16).padStart(8, "0")}_${str.length}`;
183
+ }
184
+ }
185
+ void GRAPH_PINNING_METADATA_KEY;
186
+ //# sourceMappingURL=GraphPinningService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphPinningService.js","sourceRoot":"","sources":["../../../../src/graph/pinning/GraphPinningService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
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.js";
7
+ export * from "./GraphPinningPolicy.js";
8
+ export * from "./GraphPinningDependencyResolver.js";
9
+ export * from "./GraphPinningService.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/graph/pinning/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,0CAAuC;AACvC,wCAAqC;AACrC,oDAAiD;AACjD,yCAAsC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=GraphExecutionPlan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphExecutionPlan.js","sourceRoot":"","sources":["../../../../src/graph/planning/GraphExecutionPlan.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
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
+ export {};
7
+ //# sourceMappingURL=GraphExecutionPlanEdge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphExecutionPlanEdge.js","sourceRoot":"","sources":["../../../../src/graph/planning/GraphExecutionPlanEdge.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=GraphExecutionPlanLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphExecutionPlanLayer.js","sourceRoot":"","sources":["../../../../src/graph/planning/GraphExecutionPlanLayer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=GraphExecutionPlanNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphExecutionPlanNode.js","sourceRoot":"","sources":["../../../../src/graph/planning/GraphExecutionPlanNode.ts"],"names":[],"mappings":""}