@decaf-ts/integrations 0.3.0 → 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 (440) 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 -5
  120. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +1 -1
  121. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -5
  122. package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +1 -1
  123. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -5
  124. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +1 -1
  125. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +5 -18
  126. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +1 -1
  127. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -5
  128. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +1 -1
  129. package/lib/cjs/keycloak/services/KeycloakService.cjs +1 -1
  130. package/lib/cjs/keycloak/services/KeycloakService.cjs.map +1 -1
  131. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -5
  132. package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +1 -1
  133. package/lib/cjs/kibana/services/KibanaAuthService.cjs +3 -6
  134. package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +1 -1
  135. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +6 -18
  136. package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +1 -1
  137. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +4 -16
  138. package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +1 -1
  139. package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -5
  140. package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +1 -1
  141. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -5
  142. package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +1 -1
  143. package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -5
  144. package/lib/cjs/kibana/services/KibanaUserService.cjs.map +1 -1
  145. package/lib/cjs/shared/runtime.cjs +26 -0
  146. package/lib/cjs/shared/runtime.cjs.map +1 -0
  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 -5
  265. package/lib/esm/keycloak/services/KeycloakAuthService.js.map +1 -1
  266. package/lib/esm/keycloak/services/KeycloakClientService.js +2 -5
  267. package/lib/esm/keycloak/services/KeycloakClientService.js.map +1 -1
  268. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +2 -5
  269. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +1 -1
  270. package/lib/esm/keycloak/services/KeycloakRealmService.js +5 -18
  271. package/lib/esm/keycloak/services/KeycloakRealmService.js.map +1 -1
  272. package/lib/esm/keycloak/services/KeycloakRoleService.js +2 -5
  273. package/lib/esm/keycloak/services/KeycloakRoleService.js.map +1 -1
  274. package/lib/esm/keycloak/services/KeycloakService.js +1 -1
  275. package/lib/esm/keycloak/services/KeycloakService.js.map +1 -1
  276. package/lib/esm/keycloak/services/KeycloakUserService.js +2 -5
  277. package/lib/esm/keycloak/services/KeycloakUserService.js.map +1 -1
  278. package/lib/esm/kibana/services/KibanaAuthService.js +3 -6
  279. package/lib/esm/kibana/services/KibanaAuthService.js.map +1 -1
  280. package/lib/esm/kibana/services/KibanaDashboardService.js +6 -18
  281. package/lib/esm/kibana/services/KibanaDashboardService.js.map +1 -1
  282. package/lib/esm/kibana/services/KibanaDataViewService.js +4 -16
  283. package/lib/esm/kibana/services/KibanaDataViewService.js.map +1 -1
  284. package/lib/esm/kibana/services/KibanaRoleService.js +2 -5
  285. package/lib/esm/kibana/services/KibanaRoleService.js.map +1 -1
  286. package/lib/esm/kibana/services/KibanaSpaceService.js +2 -5
  287. package/lib/esm/kibana/services/KibanaSpaceService.js.map +1 -1
  288. package/lib/esm/kibana/services/KibanaUserService.js +2 -5
  289. package/lib/esm/kibana/services/KibanaUserService.js.map +1 -1
  290. package/lib/esm/shared/runtime.js +21 -0
  291. package/lib/esm/shared/runtime.js.map +1 -0
  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/KeycloakAuthService.d.cts +0 -1
  411. package/lib/types/keycloak/services/KeycloakAuthService.d.mts +0 -1
  412. package/lib/types/keycloak/services/KeycloakClientService.d.cts +0 -1
  413. package/lib/types/keycloak/services/KeycloakClientService.d.mts +0 -1
  414. package/lib/types/keycloak/services/KeycloakIdentityProviderService.d.cts +0 -1
  415. package/lib/types/keycloak/services/KeycloakIdentityProviderService.d.mts +0 -1
  416. package/lib/types/keycloak/services/KeycloakRealmService.d.cts +0 -2
  417. package/lib/types/keycloak/services/KeycloakRealmService.d.mts +0 -2
  418. package/lib/types/keycloak/services/KeycloakRoleService.d.cts +0 -1
  419. package/lib/types/keycloak/services/KeycloakRoleService.d.mts +0 -1
  420. package/lib/types/keycloak/services/KeycloakUserService.d.cts +0 -1
  421. package/lib/types/keycloak/services/KeycloakUserService.d.mts +0 -1
  422. package/lib/types/keycloak/types.d.cts +4 -1
  423. package/lib/types/keycloak/types.d.mts +4 -1
  424. package/lib/types/kibana/services/KibanaAuthService.d.cts +0 -1
  425. package/lib/types/kibana/services/KibanaAuthService.d.mts +0 -1
  426. package/lib/types/kibana/services/KibanaDashboardService.d.cts +0 -2
  427. package/lib/types/kibana/services/KibanaDashboardService.d.mts +0 -2
  428. package/lib/types/kibana/services/KibanaDataViewService.d.cts +0 -2
  429. package/lib/types/kibana/services/KibanaDataViewService.d.mts +0 -2
  430. package/lib/types/kibana/services/KibanaRoleService.d.cts +0 -1
  431. package/lib/types/kibana/services/KibanaRoleService.d.mts +0 -1
  432. package/lib/types/kibana/services/KibanaSpaceService.d.cts +0 -1
  433. package/lib/types/kibana/services/KibanaSpaceService.d.mts +0 -1
  434. package/lib/types/kibana/services/KibanaUserService.d.cts +0 -1
  435. package/lib/types/kibana/services/KibanaUserService.d.mts +0 -1
  436. package/lib/types/kibana/types.d.cts +4 -1
  437. package/lib/types/kibana/types.d.mts +4 -1
  438. package/lib/types/shared/runtime.d.cts +2 -0
  439. package/lib/types/shared/runtime.d.mts +2 -0
  440. package/package.json +21 -7
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphPinningService = void 0;
4
+ /**
5
+ * @module integrations/graph/pinning/GraphPinningService
6
+ * @summary Service for pinning and unpinning graph node values.
7
+ * @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.
8
+ */
9
+ const constants_js_1 = require("./../constants.cjs");
10
+ const GraphPinningError_js_1 = require("./../errors/GraphPinningError.cjs");
11
+ const GraphTopology_js_1 = require("./../planning/GraphTopology.cjs");
12
+ /**
13
+ * Service that manages pinning and unpinning of graph node values.
14
+ */
15
+ class GraphPinningService {
16
+ constructor(store, policy, dependencyResolver) {
17
+ this.store = store;
18
+ this.policy = policy;
19
+ this.dependencyResolver = dependencyResolver;
20
+ }
21
+ /**
22
+ * Pins a node and all its upstream dependencies.
23
+ *
24
+ * @throws {GraphPinningError} when the node or any dependency is not pinnable.
25
+ */
26
+ async pinNode(options) {
27
+ const plan = options.plan;
28
+ const includeDependencies = options.includeDependencies ?? true;
29
+ const pinSet = includeDependencies
30
+ ? this.dependencyResolver.getPinSet(plan, options.nodeId)
31
+ : new Set([options.nodeId]);
32
+ // Validate all-or-nothing
33
+ for (const nodeId of pinSet) {
34
+ const node = plan.nodes.find((n) => n.id === nodeId);
35
+ if (!node) {
36
+ throw new GraphPinningError_js_1.GraphPinningError(`Node '${nodeId}' not found in plan`);
37
+ }
38
+ if (!this.policy.canPin(node)) {
39
+ throw new GraphPinningError_js_1.GraphPinningError(`Node '${nodeId}' is not pinnable`, { nodeId });
40
+ }
41
+ }
42
+ // Pin dependencies first, then the selected node
43
+ const ordered = this.topologicalOrder(plan, pinSet);
44
+ for (const nodeId of ordered) {
45
+ const node = plan.nodes.find((n) => n.id === nodeId);
46
+ const result = options.result.nodeResults[nodeId];
47
+ if (!result || !result.outputs) {
48
+ throw new GraphPinningError_js_1.GraphPinningError(`Node '${nodeId}' has no completed output to pin`);
49
+ }
50
+ const inputs = result.inputs ?? {};
51
+ const depFingerprints = this.dependencyFingerprints(plan, nodeId, options.result);
52
+ const key = this.createValueKey(options.workflow, node, inputs, depFingerprints, options.namespace);
53
+ const now = new Date().toISOString();
54
+ const cached = {
55
+ key,
56
+ outputs: result.outputs,
57
+ pinned: true,
58
+ createdAt: now,
59
+ updatedAt: now,
60
+ metadata: { ...options.result.metadata, nodeId },
61
+ };
62
+ await this.store.writeCached(key, cached);
63
+ }
64
+ }
65
+ /**
66
+ * Unpins a single node (does not unpin dependents in v1).
67
+ */
68
+ async unpinNode(options) {
69
+ const key = {
70
+ workflowId: options.workflow.name,
71
+ nodeId: options.nodeId,
72
+ fingerprint: options.fingerprint,
73
+ namespace: options.namespace,
74
+ };
75
+ await this.store.deleteCached(key);
76
+ }
77
+ /**
78
+ * Reads a pinned value for a node, returning `undefined` when no valid
79
+ * pinned value exists.
80
+ */
81
+ async readPinnedValue(workflow, node, inputs, dependencyFingerprints, namespace) {
82
+ const key = this.createValueKey(workflow, node, inputs, dependencyFingerprints, namespace);
83
+ const cached = await this.store.readCached(key);
84
+ if (cached && cached.pinned) {
85
+ if (cached.expiresAt && new Date(cached.expiresAt) < new Date()) {
86
+ return undefined;
87
+ }
88
+ return cached;
89
+ }
90
+ return undefined;
91
+ }
92
+ /**
93
+ * Creates a stable value key for a node.
94
+ */
95
+ createValueKey(workflow, node, inputs, dependencyFingerprints, namespace) {
96
+ return {
97
+ workflowId: workflow.name,
98
+ nodeId: node.id,
99
+ fingerprint: this.computeFingerprint(workflow, node, inputs, dependencyFingerprints),
100
+ namespace,
101
+ };
102
+ }
103
+ /**
104
+ * Computes a stable fingerprint for a node's inputs and dependencies.
105
+ */
106
+ computeFingerprint(workflow, node, inputs, dependencyFingerprints) {
107
+ const data = {
108
+ workflowId: workflow.name,
109
+ nodeId: node.id,
110
+ nodeKind: node.kind,
111
+ nodeDefinitionVersion: node.definition?.graph?.metadata?.version,
112
+ inputs: this.stableSerialize(inputs),
113
+ dependencyFingerprints: this.stableSerialize(dependencyFingerprints),
114
+ };
115
+ const json = this.stableSerialize(data);
116
+ // Use a deterministic non-cryptographic hash that works in both browser
117
+ // and Node environments without requiring `node:crypto`.
118
+ return this.simpleHash(json);
119
+ }
120
+ /**
121
+ * Returns a topological ordering of the given node set.
122
+ */
123
+ topologicalOrder(plan, nodeSet) {
124
+ const result = [];
125
+ const visited = new Set();
126
+ const visit = (nodeId) => {
127
+ if (visited.has(nodeId))
128
+ return;
129
+ visited.add(nodeId);
130
+ const deps = GraphTopology_js_1.GraphTopology.upstreamNodes(nodeId, plan.incomingByNode, false);
131
+ for (const dep of deps) {
132
+ if (nodeSet.has(dep))
133
+ visit(dep);
134
+ }
135
+ result.push(nodeId);
136
+ };
137
+ for (const nodeId of nodeSet)
138
+ visit(nodeId);
139
+ return result;
140
+ }
141
+ /**
142
+ * Computes fingerprints for all upstream dependencies of a node.
143
+ */
144
+ dependencyFingerprints(plan, nodeId, result) {
145
+ const deps = this.dependencyResolver.getDependencies(plan, nodeId);
146
+ const fingerprints = {};
147
+ for (const dep of deps) {
148
+ const node = plan.nodes.find((n) => n.id === dep);
149
+ if (node) {
150
+ const depResult = result.nodeResults[dep];
151
+ const inputs = depResult?.inputs ?? {};
152
+ const nestedDeps = this.dependencyFingerprints(plan, dep, result);
153
+ fingerprints[dep] = this.computeFingerprint(plan.workflow, node, inputs, nestedDeps);
154
+ }
155
+ }
156
+ return fingerprints;
157
+ }
158
+ /**
159
+ * Serializes a value with recursively sorted keys for stable hashing.
160
+ */
161
+ stableSerialize(value) {
162
+ if (value === null || typeof value !== "object") {
163
+ return JSON.stringify(value);
164
+ }
165
+ if (Array.isArray(value)) {
166
+ return `[${value.map((v) => this.stableSerialize(v)).join(",")}]`;
167
+ }
168
+ const keys = Object.keys(value).sort();
169
+ const pairs = keys.map((k) => `${JSON.stringify(k)}:${this.stableSerialize(value[k])}`);
170
+ return `{${pairs.join(",")}}`;
171
+ }
172
+ /**
173
+ * Simple non-cryptographic hash for browser environments where
174
+ * `node:crypto` is unavailable. Produces a deterministic hex-like string
175
+ * from the input. This is NOT cryptographically secure but is sufficient
176
+ * for fingerprint-based cache keys.
177
+ */
178
+ simpleHash(str) {
179
+ let hash = 0;
180
+ for (let i = 0; i < str.length; i++) {
181
+ const char = str.charCodeAt(i);
182
+ hash = (hash << 5) - hash + char;
183
+ hash |= 0;
184
+ }
185
+ return `fp_${Math.abs(hash).toString(16).padStart(8, "0")}_${str.length}`;
186
+ }
187
+ }
188
+ exports.GraphPinningService = GraphPinningService;
189
+ void constants_js_1.GRAPH_PINNING_METADATA_KEY;
190
+ //# sourceMappingURL=GraphPinningService.js.map
191
+ //# sourceMappingURL=GraphPinningService.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph/pinning/GraphPinningService.cjs","sourceRoot":"","sources":["graph/pinning/GraphPinningService.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /**
18
+ * @module integrations/graph/pinning
19
+ * @summary Graph pinning subsystem.
20
+ * @description Re-exports the pinning metadata, policy, dependency resolver, and service.
21
+ */
22
+ __exportStar(require("./GraphPinningMetadata.cjs"), exports);
23
+ __exportStar(require("./GraphPinningPolicy.cjs"), exports);
24
+ __exportStar(require("./GraphPinningDependencyResolver.cjs"), exports);
25
+ __exportStar(require("./GraphPinningService.cjs"), exports);
26
+ //# sourceMappingURL=index.js.map
27
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph/pinning/index.cjs","sourceRoot":"","sources":["graph/pinning/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,4DAA0C;AAC1C,0DAAwC;AACxC,sEAAoD;AACpD,2DAAyC;AACzC,iCAAiC"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=GraphExecutionPlan.js.map
4
+ //# sourceMappingURL=GraphExecutionPlan.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph/planning/GraphExecutionPlan.cjs","sourceRoot":"","sources":["graph/planning/GraphExecutionPlan.js"],"names":[],"mappings":";;AACA,8CAA8C"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=GraphExecutionPlanEdge.js.map
4
+ //# sourceMappingURL=GraphExecutionPlanEdge.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph/planning/GraphExecutionPlanEdge.cjs","sourceRoot":"","sources":["graph/planning/GraphExecutionPlanEdge.js"],"names":[],"mappings":";;AAMA,kDAAkD"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=GraphExecutionPlanLayer.js.map
4
+ //# sourceMappingURL=GraphExecutionPlanLayer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph/planning/GraphExecutionPlanLayer.cjs","sourceRoot":"","sources":["graph/planning/GraphExecutionPlanLayer.js"],"names":[],"mappings":";;AACA,mDAAmD"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=GraphExecutionPlanNode.js.map
4
+ //# sourceMappingURL=GraphExecutionPlanNode.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph/planning/GraphExecutionPlanNode.cjs","sourceRoot":"","sources":["graph/planning/GraphExecutionPlanNode.js"],"names":[],"mappings":";;AACA,kDAAkD"}
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphExecutionPlanner = void 0;
4
+ const graph_1 = require("@decaf-ts/ui-decorators/graph");
5
+ const constants_js_1 = require("./../constants.cjs");
6
+ const GraphCycleError_js_1 = require("./../errors/GraphCycleError.cjs");
7
+ const GraphTopologyError_js_1 = require("./../errors/GraphTopologyError.cjs");
8
+ const GraphRelationResolver_js_1 = require("./GraphRelationResolver.cjs");
9
+ /**
10
+ * Planner that turns a {@link GraphWorkflowDefinition} into a
11
+ * {@link GraphExecutionPlan} with topological layers.
12
+ */
13
+ class GraphExecutionPlanner {
14
+ constructor(resolver) {
15
+ this.resolver = resolver ?? new GraphRelationResolver_js_1.GraphRelationResolver();
16
+ }
17
+ /**
18
+ * Plans a workflow for execution.
19
+ *
20
+ * @param workflow - The workflow definition to plan.
21
+ * @returns The execution plan with nodes, edges, layers, and maps.
22
+ * @throws {GraphTopologyError} when node IDs are not unique.
23
+ * @throws {GraphCycleError} when the workflow contains an unsupported cycle.
24
+ */
25
+ plan(workflow) {
26
+ this.validateUniqueNodeIds(workflow);
27
+ const nodes = this.resolveNodes(workflow);
28
+ const edges = this.resolver.resolve(workflow);
29
+ const incomingByNode = this.buildIncomingMap(edges);
30
+ const outgoingByNode = this.buildOutgoingMap(edges);
31
+ const layers = this.topologicalLayers(nodes, edges);
32
+ return {
33
+ workflow,
34
+ workflowId: workflow.name,
35
+ nodes,
36
+ edges,
37
+ layers,
38
+ incomingByNode,
39
+ outgoingByNode,
40
+ };
41
+ }
42
+ /**
43
+ * Validates that all workflow node IDs are unique.
44
+ */
45
+ validateUniqueNodeIds(workflow) {
46
+ const seen = new Set();
47
+ for (const node of workflow.nodes ?? []) {
48
+ if (seen.has(node.id)) {
49
+ throw new GraphTopologyError_js_1.GraphTopologyError(`Duplicate node id '${node.id}' in workflow '${workflow.name}'`, { nodeId: node.id, workflowId: workflow.name });
50
+ }
51
+ seen.add(node.id);
52
+ }
53
+ }
54
+ /**
55
+ * Resolves workflow node metadata into plan nodes with full definitions.
56
+ */
57
+ resolveNodes(workflow) {
58
+ const result = [];
59
+ for (const nodeMeta of workflow.nodes ?? []) {
60
+ const definition = this.resolveDefinition(nodeMeta);
61
+ const inputPorts = (definition.ports ?? [])
62
+ .filter((p) => p.direction === "input")
63
+ .map((p) => p.name);
64
+ const outputPorts = (definition.ports ?? [])
65
+ .filter((p) => p.direction === "output")
66
+ .map((p) => p.name);
67
+ result.push({
68
+ id: nodeMeta.id,
69
+ kind: nodeMeta.kind ?? definition.kind ?? nodeMeta.id,
70
+ label: nodeMeta.label,
71
+ source: nodeMeta,
72
+ definition,
73
+ inputPorts,
74
+ outputPorts,
75
+ metadata: nodeMeta.metadata,
76
+ });
77
+ }
78
+ return result;
79
+ }
80
+ /**
81
+ * Attempts to resolve the full graph node definition from metadata.
82
+ *
83
+ * Accepts either a decorated Model class/instance (resolved via
84
+ * `graphDefinitionOf`) or a plain `GraphNodeDefinition`-shaped object
85
+ * (useful for serialized workflows that inline node definitions).
86
+ */
87
+ resolveDefinition(nodeMeta) {
88
+ if (nodeMeta.node) {
89
+ if (this.isRawDefinition(nodeMeta.node)) {
90
+ return nodeMeta.node;
91
+ }
92
+ try {
93
+ return (0, graph_1.graphDefinitionOf)(nodeMeta.node);
94
+ }
95
+ catch {
96
+ // fall through to stub
97
+ }
98
+ }
99
+ // Return a minimal stub definition so planning can proceed
100
+ return {
101
+ name: nodeMeta.id,
102
+ tag: nodeMeta.id,
103
+ kind: nodeMeta.kind ?? nodeMeta.id,
104
+ labels: [],
105
+ ports: [],
106
+ };
107
+ }
108
+ /**
109
+ * Returns `true` when a value looks like a raw {@link GraphNodeDefinition}
110
+ * (a plain object with a `ports` array and a `name` string).
111
+ */
112
+ isRawDefinition(value) {
113
+ return (typeof value === "object" &&
114
+ value !== null &&
115
+ !Array.isArray(value) &&
116
+ typeof value.name === "string" &&
117
+ Array.isArray(value.ports));
118
+ }
119
+ /**
120
+ * Builds a map of node id -> incoming edges.
121
+ */
122
+ buildIncomingMap(edges) {
123
+ const map = new Map();
124
+ for (const edge of edges) {
125
+ const list = map.get(edge.targetNodeId) ?? [];
126
+ list.push(edge);
127
+ map.set(edge.targetNodeId, list);
128
+ }
129
+ return map;
130
+ }
131
+ /**
132
+ * Builds a map of node id -> outgoing edges.
133
+ */
134
+ buildOutgoingMap(edges) {
135
+ const map = new Map();
136
+ for (const edge of edges) {
137
+ const list = map.get(edge.sourceNodeId) ?? [];
138
+ list.push(edge);
139
+ map.set(edge.sourceNodeId, list);
140
+ }
141
+ return map;
142
+ }
143
+ /**
144
+ * Produces topological layers using Kahn's algorithm.
145
+ *
146
+ * Workflow boundary edges do not count as executable-node dependencies.
147
+ */
148
+ topologicalLayers(nodes, edges) {
149
+ const executableNodes = nodes.filter((n) => n.id !== constants_js_1.GRAPH_WORKFLOW_BOUNDARY);
150
+ const nodeIds = new Set(executableNodes.map((n) => n.id));
151
+ // Only edges between two executable nodes count as dependencies
152
+ const execEdges = edges.filter((e) => nodeIds.has(e.sourceNodeId) && nodeIds.has(e.targetNodeId));
153
+ // Compute in-degree
154
+ const indegree = new Map();
155
+ for (const node of executableNodes)
156
+ indegree.set(node.id, 0);
157
+ for (const edge of execEdges) {
158
+ indegree.set(edge.targetNodeId, (indegree.get(edge.targetNodeId) ?? 0) + 1);
159
+ }
160
+ const layers = [];
161
+ const planned = new Set();
162
+ let ready = executableNodes.filter((n) => (indegree.get(n.id) ?? 0) === 0);
163
+ let layerIndex = 0;
164
+ while (ready.length > 0) {
165
+ const layer = { index: layerIndex++, nodes: ready };
166
+ layers.push(layer);
167
+ const nextReady = [];
168
+ for (const node of ready) {
169
+ planned.add(node.id);
170
+ const outgoing = execEdges.filter((e) => e.sourceNodeId === node.id);
171
+ for (const edge of outgoing) {
172
+ const deg = (indegree.get(edge.targetNodeId) ?? 1) - 1;
173
+ indegree.set(edge.targetNodeId, deg);
174
+ if (deg === 0 && !planned.has(edge.targetNodeId)) {
175
+ const next = executableNodes.find((n) => n.id === edge.targetNodeId);
176
+ if (next)
177
+ nextReady.push(next);
178
+ }
179
+ }
180
+ }
181
+ ready = nextReady;
182
+ }
183
+ if (planned.size !== executableNodes.length) {
184
+ const unplanned = executableNodes
185
+ .filter((n) => !planned.has(n.id))
186
+ .map((n) => n.id);
187
+ throw new GraphCycleError_js_1.GraphCycleError({
188
+ unplannedNodes: unplanned,
189
+ workflowId: nodes[0]?.definition?.name,
190
+ });
191
+ }
192
+ return layers;
193
+ }
194
+ }
195
+ exports.GraphExecutionPlanner = GraphExecutionPlanner;
196
+ //# sourceMappingURL=GraphExecutionPlanner.js.map
197
+ //# sourceMappingURL=GraphExecutionPlanner.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph/planning/GraphExecutionPlanner.cjs","sourceRoot":"","sources":["graph/planning/GraphExecutionPlanner.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphRelationResolver = void 0;
4
+ const graph_1 = require("@decaf-ts/ui-decorators/graph");
5
+ const constants_js_1 = require("./../constants.cjs");
6
+ const GraphPortError_js_1 = require("./../errors/GraphPortError.cjs");
7
+ const GraphTopologyError_js_1 = require("./../errors/GraphTopologyError.cjs");
8
+ /**
9
+ * Resolves raw workflow relation metadata into normalized execution edges.
10
+ */
11
+ 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) {
21
+ const nodeIds = new Set(workflow.nodes.map((n) => n.id));
22
+ const boundaryAliases = this.boundaryAliases(workflow);
23
+ const inputPorts = this.portNames(workflow.inputs);
24
+ const outputPorts = this.portNames(workflow.outputs);
25
+ const nodePortMap = this.buildNodePortMap(workflow);
26
+ const edges = [];
27
+ for (const relation of workflow.relations ?? []) {
28
+ const edge = this.resolveRelation(relation, nodeIds, boundaryAliases, inputPorts, outputPorts, nodePortMap);
29
+ edges.push(edge);
30
+ }
31
+ return edges;
32
+ }
33
+ /**
34
+ * Resolves a single relation into an edge.
35
+ */
36
+ resolveRelation(relation, nodeIds, boundaryAliases, inputPorts, outputPorts, nodePortMap) {
37
+ const sourceNodeId = this.resolveEndpoint(relation.source, nodeIds, boundaryAliases);
38
+ const targetNodeId = this.resolveEndpoint(relation.target, nodeIds, boundaryAliases);
39
+ const sourcePort = relation.sourcePort;
40
+ const targetPort = relation.targetPort;
41
+ if (!sourcePort) {
42
+ throw new GraphPortError_js_1.GraphPortError(`Relation is missing sourcePort (source: ${String(relation.source)}, target: ${String(relation.target)})`, { relation });
43
+ }
44
+ if (!targetPort) {
45
+ throw new GraphPortError_js_1.GraphPortError(`Relation is missing targetPort (source: ${String(relation.source)}, target: ${String(relation.target)})`, { relation });
46
+ }
47
+ this.validatePort(sourceNodeId, sourcePort, true, boundaryAliases, inputPorts, outputPorts, nodePortMap);
48
+ this.validatePort(targetNodeId, targetPort, false, boundaryAliases, inputPorts, outputPorts, nodePortMap);
49
+ return {
50
+ id: this.createEdgeId(sourceNodeId, sourcePort, targetNodeId, targetPort),
51
+ sourceNodeId,
52
+ sourcePort,
53
+ targetNodeId,
54
+ targetPort,
55
+ label: relation.label,
56
+ metadata: relation.metadata,
57
+ };
58
+ }
59
+ /**
60
+ * Resolves an endpoint (source or target) to a node id or the workflow boundary.
61
+ */
62
+ resolveEndpoint(endpoint, nodeIds, boundaryAliases) {
63
+ const name = String(endpoint);
64
+ if (boundaryAliases.has(name))
65
+ return constants_js_1.GRAPH_WORKFLOW_BOUNDARY;
66
+ if (nodeIds.has(name))
67
+ return name;
68
+ throw new GraphTopologyError_js_1.GraphTopologyError(`Unknown endpoint '${name}'`, { endpoint: name, knownNodes: Array.from(nodeIds) });
69
+ }
70
+ /**
71
+ * Validates that a port exists on the given node or boundary.
72
+ */
73
+ validatePort(nodeId, port, isSource, boundaryAliases, inputPorts, outputPorts, nodePortMap) {
74
+ if (nodeId === constants_js_1.GRAPH_WORKFLOW_BOUNDARY) {
75
+ const ports = isSource ? inputPorts : outputPorts;
76
+ if (!ports.has(port)) {
77
+ throw new GraphPortError_js_1.GraphPortError(`Unknown ${isSource ? "input" : "output"} port '${port}' on workflow boundary`, { nodeId, port, isSource, available: Array.from(ports) });
78
+ }
79
+ return;
80
+ }
81
+ const nodePorts = nodePortMap.get(nodeId);
82
+ if (!nodePorts) {
83
+ throw new GraphTopologyError_js_1.GraphTopologyError(`No port map for node '${nodeId}'`, {
84
+ nodeId,
85
+ });
86
+ }
87
+ const ports = isSource ? nodePorts.output : nodePorts.input;
88
+ if (!ports.has(port)) {
89
+ throw new GraphPortError_js_1.GraphPortError(`Unknown ${isSource ? "output" : "input"} port '${port}' on node '${nodeId}'`, { nodeId, port, isSource, available: Array.from(ports) });
90
+ }
91
+ }
92
+ /**
93
+ * Builds the set of boundary aliases for a workflow.
94
+ */
95
+ boundaryAliases(workflow) {
96
+ return new Set([
97
+ constants_js_1.GRAPH_WORKFLOW_BOUNDARY,
98
+ "workflow",
99
+ "graph",
100
+ workflow.name,
101
+ ]);
102
+ }
103
+ /**
104
+ * Extracts port names from a list of port definitions.
105
+ */
106
+ portNames(ports) {
107
+ return new Set((ports ?? []).map((p) => p.name));
108
+ }
109
+ /**
110
+ * Builds a map of node id -> { input ports, output ports }.
111
+ */
112
+ buildNodePortMap(workflow) {
113
+ const map = new Map();
114
+ for (const nodeMeta of workflow.nodes ?? []) {
115
+ const input = new Set();
116
+ const output = new Set();
117
+ const def = this.resolveNodeDefinition(nodeMeta);
118
+ if (def) {
119
+ for (const port of def.ports ?? []) {
120
+ if (port.direction === "input")
121
+ input.add(port.name);
122
+ else
123
+ output.add(port.name);
124
+ }
125
+ }
126
+ map.set(nodeMeta.id, { input, output });
127
+ }
128
+ return map;
129
+ }
130
+ /**
131
+ * Attempts to resolve a node's full definition from its metadata.
132
+ *
133
+ * Accepts either a decorated Model class/instance (resolved via
134
+ * `graphDefinitionOf`) or a plain `GraphNodeDefinition`-shaped object
135
+ * (useful for serialized workflows that inline node definitions).
136
+ */
137
+ resolveNodeDefinition(nodeMeta) {
138
+ if (nodeMeta.node) {
139
+ if (this.isRawDefinition(nodeMeta.node)) {
140
+ return nodeMeta.node;
141
+ }
142
+ try {
143
+ const def = (0, graph_1.graphDefinitionOf)(nodeMeta.node);
144
+ return def;
145
+ }
146
+ catch {
147
+ return undefined;
148
+ }
149
+ }
150
+ return undefined;
151
+ }
152
+ /**
153
+ * Returns `true` when a value looks like a raw {@link GraphNodeDefinition}
154
+ * (a plain object with a `ports` array and a `name` string).
155
+ */
156
+ isRawDefinition(value) {
157
+ return (typeof value === "object" &&
158
+ value !== null &&
159
+ !Array.isArray(value) &&
160
+ typeof value.name === "string" &&
161
+ Array.isArray(value.ports));
162
+ }
163
+ /**
164
+ * Creates a stable edge id from its endpoints and ports.
165
+ */
166
+ createEdgeId(sourceNodeId, sourcePort, targetNodeId, targetPort) {
167
+ return `${sourceNodeId}:${sourcePort}->${targetNodeId}:${targetPort}`;
168
+ }
169
+ }
170
+ exports.GraphRelationResolver = GraphRelationResolver;
171
+ //# sourceMappingURL=GraphRelationResolver.js.map
172
+ //# sourceMappingURL=GraphRelationResolver.cjs.map