@decaf-ts/integrations 0.10.4 → 0.10.8

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 (300) hide show
  1. package/dist/integrations.cjs +1 -1
  2. package/docker/minio-compose.yml +9 -7
  3. package/jest.config.cjs +2 -0
  4. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +7 -4
  5. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -1
  6. package/lib/cjs/graph/engine/catalog/GraphBuiltInRegistrations.cjs +12 -73
  7. package/lib/cjs/graph/engine/catalog/GraphBuiltInRegistrations.cjs.map +1 -1
  8. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +5 -1
  9. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +1 -1
  10. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +66 -1
  11. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +1 -1
  12. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +16 -0
  13. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +1 -1
  14. package/lib/cjs/graph/engine/execution/index.cjs +0 -4
  15. package/lib/cjs/graph/engine/execution/index.cjs.map +1 -1
  16. package/lib/cjs/graph/engine/index.cjs +0 -7
  17. package/lib/cjs/graph/engine/index.cjs.map +1 -1
  18. package/lib/cjs/graph/engine/loops/index.cjs +0 -3
  19. package/lib/cjs/graph/engine/loops/index.cjs.map +1 -1
  20. package/lib/cjs/graph/engine/validation/GraphLooseNodeValidation.cjs +36 -0
  21. package/lib/cjs/graph/engine/validation/GraphLooseNodeValidation.cjs.map +1 -0
  22. package/lib/cjs/graph/engine/validation/GraphParameterValidator.cjs +36 -3
  23. package/lib/cjs/graph/engine/validation/GraphParameterValidator.cjs.map +1 -1
  24. package/lib/cjs/graph/engine/validation/GraphWorkflowDocumentValidator.cjs +32 -1
  25. package/lib/cjs/graph/engine/validation/GraphWorkflowDocumentValidator.cjs.map +1 -1
  26. package/lib/cjs/graph/engine/validation/index.cjs +1 -0
  27. package/lib/cjs/graph/engine/validation/index.cjs.map +1 -1
  28. package/lib/cjs/graph/nodes/agents/agent.cjs +118 -0
  29. package/lib/cjs/graph/nodes/agents/agent.cjs.map +1 -0
  30. package/lib/cjs/graph/nodes/base.cjs +61 -0
  31. package/lib/cjs/graph/nodes/base.cjs.map +1 -0
  32. package/lib/cjs/graph/nodes/boundary/input-value.cjs +59 -0
  33. package/lib/cjs/graph/nodes/boundary/input-value.cjs.map +1 -0
  34. package/lib/cjs/graph/nodes/flow-control/break.cjs +71 -0
  35. package/lib/cjs/graph/nodes/flow-control/break.cjs.map +1 -0
  36. package/lib/cjs/graph/nodes/flow-control/error-boundary.cjs +72 -0
  37. package/lib/cjs/graph/nodes/flow-control/error-boundary.cjs.map +1 -0
  38. package/lib/cjs/graph/nodes/flow-control/human-approval.cjs +80 -0
  39. package/lib/cjs/graph/nodes/flow-control/human-approval.cjs.map +1 -0
  40. package/lib/cjs/graph/nodes/flow-control/if.cjs +82 -0
  41. package/lib/cjs/graph/nodes/flow-control/if.cjs.map +1 -0
  42. package/lib/cjs/graph/nodes/flow-control/parallel.cjs +69 -0
  43. package/lib/cjs/graph/nodes/flow-control/parallel.cjs.map +1 -0
  44. package/lib/cjs/graph/nodes/flow-control/switch.cjs +190 -0
  45. package/lib/cjs/graph/nodes/flow-control/switch.cjs.map +1 -0
  46. package/lib/cjs/graph/nodes/index.cjs +162 -0
  47. package/lib/cjs/graph/nodes/index.cjs.map +1 -0
  48. package/lib/cjs/graph/nodes/loops/foreach.cjs +189 -0
  49. package/lib/cjs/graph/nodes/loops/foreach.cjs.map +1 -0
  50. package/lib/cjs/graph/nodes/loops/loop-metadata.cjs +48 -0
  51. package/lib/cjs/graph/nodes/loops/loop-metadata.cjs.map +1 -0
  52. package/lib/cjs/graph/nodes/loops/until.cjs +136 -0
  53. package/lib/cjs/graph/nodes/loops/until.cjs.map +1 -0
  54. package/lib/cjs/graph/nodes/loops/while.cjs +133 -0
  55. package/lib/cjs/graph/nodes/loops/while.cjs.map +1 -0
  56. package/lib/cjs/graph/nodes/manifests.cjs +342 -0
  57. package/lib/cjs/graph/nodes/manifests.cjs.map +1 -0
  58. package/lib/cjs/graph/nodes/triggers/chat.cjs +82 -0
  59. package/lib/cjs/graph/nodes/triggers/chat.cjs.map +1 -0
  60. package/lib/cjs/graph/nodes/triggers/event.cjs +63 -0
  61. package/lib/cjs/graph/nodes/triggers/event.cjs.map +1 -0
  62. package/lib/cjs/graph/nodes/triggers/form.cjs +64 -0
  63. package/lib/cjs/graph/nodes/triggers/form.cjs.map +1 -0
  64. package/lib/cjs/graph/nodes/triggers/manual.cjs +65 -0
  65. package/lib/cjs/graph/nodes/triggers/manual.cjs.map +1 -0
  66. package/lib/cjs/graph/nodes/triggers/schedule.cjs +65 -0
  67. package/lib/cjs/graph/nodes/triggers/schedule.cjs.map +1 -0
  68. package/lib/cjs/graph/nodes/triggers/webhook.cjs +67 -0
  69. package/lib/cjs/graph/nodes/triggers/webhook.cjs.map +1 -0
  70. package/lib/cjs/graph/nodes/utility/code.cjs +139 -0
  71. package/lib/cjs/graph/nodes/utility/code.cjs.map +1 -0
  72. package/lib/cjs/graph/nodes/utility/delay.cjs +66 -0
  73. package/lib/cjs/graph/nodes/utility/delay.cjs.map +1 -0
  74. package/lib/cjs/graph/nodes/utility/log.cjs +70 -0
  75. package/lib/cjs/graph/nodes/utility/log.cjs.map +1 -0
  76. package/lib/cjs/graph/nodes/utility/map.cjs +69 -0
  77. package/lib/cjs/graph/nodes/utility/map.cjs.map +1 -0
  78. package/lib/cjs/graph/nodes/utility/merge.cjs +67 -0
  79. package/lib/cjs/graph/nodes/utility/merge.cjs.map +1 -0
  80. package/lib/cjs/graph/nodes/utility/return.cjs +69 -0
  81. package/lib/cjs/graph/nodes/utility/return.cjs.map +1 -0
  82. package/lib/cjs/graph/nodes/utility/utility-log.cjs +77 -0
  83. package/lib/cjs/graph/nodes/utility/utility-log.cjs.map +1 -0
  84. package/lib/cjs/index.cjs +3 -3
  85. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +8 -4
  86. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +1 -1
  87. package/lib/cjs/nest/graph/GraphWorkflowBoundaryValidation.cjs +2 -0
  88. package/lib/cjs/nest/graph/GraphWorkflowBoundaryValidation.cjs.map +1 -1
  89. package/lib/cjs/nest/graph/GraphWorkflowService.cjs +1 -13
  90. package/lib/cjs/nest/graph/GraphWorkflowService.cjs.map +1 -1
  91. package/lib/esm/blob/s3/S3BlobStoreService.js +7 -4
  92. package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -1
  93. package/lib/esm/graph/engine/catalog/GraphBuiltInRegistrations.js +11 -72
  94. package/lib/esm/graph/engine/catalog/GraphBuiltInRegistrations.js.map +1 -1
  95. package/lib/esm/graph/engine/execution/GraphExecutionContext.js +5 -1
  96. package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +1 -1
  97. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +66 -1
  98. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +1 -1
  99. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +16 -0
  100. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +1 -1
  101. package/lib/esm/graph/engine/execution/index.js +0 -4
  102. package/lib/esm/graph/engine/execution/index.js.map +1 -1
  103. package/lib/esm/graph/engine/index.js +0 -7
  104. package/lib/esm/graph/engine/index.js.map +1 -1
  105. package/lib/esm/graph/engine/loops/index.js +0 -3
  106. package/lib/esm/graph/engine/loops/index.js.map +1 -1
  107. package/lib/esm/graph/engine/validation/GraphLooseNodeValidation.js +32 -0
  108. package/lib/esm/graph/engine/validation/GraphLooseNodeValidation.js.map +1 -0
  109. package/lib/esm/graph/engine/validation/GraphParameterValidator.js +36 -3
  110. package/lib/esm/graph/engine/validation/GraphParameterValidator.js.map +1 -1
  111. package/lib/esm/graph/engine/validation/GraphWorkflowDocumentValidator.js +32 -1
  112. package/lib/esm/graph/engine/validation/GraphWorkflowDocumentValidator.js.map +1 -1
  113. package/lib/esm/graph/engine/validation/index.js +1 -0
  114. package/lib/esm/graph/engine/validation/index.js.map +1 -1
  115. package/lib/esm/graph/nodes/agents/agent.js +109 -0
  116. package/lib/esm/graph/nodes/agents/agent.js.map +1 -0
  117. package/lib/esm/graph/nodes/base.js +56 -0
  118. package/lib/esm/graph/nodes/base.js.map +1 -0
  119. package/lib/esm/graph/nodes/boundary/input-value.js +50 -0
  120. package/lib/esm/graph/nodes/boundary/input-value.js.map +1 -0
  121. package/lib/esm/graph/nodes/flow-control/break.js +62 -0
  122. package/lib/esm/graph/nodes/flow-control/break.js.map +1 -0
  123. package/lib/esm/graph/nodes/flow-control/error-boundary.js +63 -0
  124. package/lib/esm/graph/nodes/flow-control/error-boundary.js.map +1 -0
  125. package/lib/esm/graph/nodes/flow-control/human-approval.js +71 -0
  126. package/lib/esm/graph/nodes/flow-control/human-approval.js.map +1 -0
  127. package/lib/esm/graph/nodes/flow-control/if.js +73 -0
  128. package/lib/esm/graph/nodes/flow-control/if.js.map +1 -0
  129. package/lib/esm/graph/nodes/flow-control/parallel.js +60 -0
  130. package/lib/esm/graph/nodes/flow-control/parallel.js.map +1 -0
  131. package/lib/esm/graph/nodes/flow-control/switch.js +181 -0
  132. package/lib/esm/graph/nodes/flow-control/switch.js.map +1 -0
  133. package/lib/esm/graph/nodes/index.js +144 -0
  134. package/lib/esm/graph/nodes/index.js.map +1 -0
  135. package/lib/esm/graph/nodes/loops/foreach.js +180 -0
  136. package/lib/esm/graph/nodes/loops/foreach.js.map +1 -0
  137. package/lib/esm/graph/nodes/loops/loop-metadata.js +44 -0
  138. package/lib/esm/graph/nodes/loops/loop-metadata.js.map +1 -0
  139. package/lib/esm/graph/nodes/loops/until.js +127 -0
  140. package/lib/esm/graph/nodes/loops/until.js.map +1 -0
  141. package/lib/esm/graph/nodes/loops/while.js +124 -0
  142. package/lib/esm/graph/nodes/loops/while.js.map +1 -0
  143. package/lib/esm/graph/nodes/manifests.js +338 -0
  144. package/lib/esm/graph/nodes/manifests.js.map +1 -0
  145. package/lib/esm/graph/nodes/triggers/chat.js +73 -0
  146. package/lib/esm/graph/nodes/triggers/chat.js.map +1 -0
  147. package/lib/esm/graph/nodes/triggers/event.js +54 -0
  148. package/lib/esm/graph/nodes/triggers/event.js.map +1 -0
  149. package/lib/esm/graph/nodes/triggers/form.js +55 -0
  150. package/lib/esm/graph/nodes/triggers/form.js.map +1 -0
  151. package/lib/esm/graph/nodes/triggers/manual.js +56 -0
  152. package/lib/esm/graph/nodes/triggers/manual.js.map +1 -0
  153. package/lib/esm/graph/nodes/triggers/schedule.js +56 -0
  154. package/lib/esm/graph/nodes/triggers/schedule.js.map +1 -0
  155. package/lib/esm/graph/nodes/triggers/webhook.js +58 -0
  156. package/lib/esm/graph/nodes/triggers/webhook.js.map +1 -0
  157. package/lib/esm/graph/nodes/utility/code.js +130 -0
  158. package/lib/esm/graph/nodes/utility/code.js.map +1 -0
  159. package/lib/esm/graph/nodes/utility/delay.js +57 -0
  160. package/lib/esm/graph/nodes/utility/delay.js.map +1 -0
  161. package/lib/esm/graph/nodes/utility/log.js +61 -0
  162. package/lib/esm/graph/nodes/utility/log.js.map +1 -0
  163. package/lib/esm/graph/nodes/utility/map.js +60 -0
  164. package/lib/esm/graph/nodes/utility/map.js.map +1 -0
  165. package/lib/esm/graph/nodes/utility/merge.js +58 -0
  166. package/lib/esm/graph/nodes/utility/merge.js.map +1 -0
  167. package/lib/esm/graph/nodes/utility/return.js +60 -0
  168. package/lib/esm/graph/nodes/utility/return.js.map +1 -0
  169. package/lib/esm/graph/nodes/utility/utility-log.js +68 -0
  170. package/lib/esm/graph/nodes/utility/utility-log.js.map +1 -0
  171. package/lib/esm/index.js +3 -3
  172. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +8 -4
  173. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +1 -1
  174. package/lib/esm/nest/graph/GraphWorkflowBoundaryValidation.js +2 -0
  175. package/lib/esm/nest/graph/GraphWorkflowBoundaryValidation.js.map +1 -1
  176. package/lib/esm/nest/graph/GraphWorkflowService.js +2 -14
  177. package/lib/esm/nest/graph/GraphWorkflowService.js.map +1 -1
  178. package/lib/types/graph/engine/catalog/GraphBuiltInRegistrations.d.cts +4 -7
  179. package/lib/types/graph/engine/catalog/GraphBuiltInRegistrations.d.mts +4 -7
  180. package/lib/types/graph/engine/execution/GraphExecutionContext.d.cts +6 -1
  181. package/lib/types/graph/engine/execution/GraphExecutionContext.d.mts +6 -1
  182. package/lib/types/graph/engine/execution/GraphExecutionEngine.d.cts +27 -0
  183. package/lib/types/graph/engine/execution/GraphExecutionEngine.d.mts +27 -0
  184. package/lib/types/graph/engine/execution/GraphExecutionFrame.d.cts +12 -0
  185. package/lib/types/graph/engine/execution/GraphExecutionFrame.d.mts +12 -0
  186. package/lib/types/graph/engine/execution/index.d.cts +0 -4
  187. package/lib/types/graph/engine/execution/index.d.mts +0 -4
  188. package/lib/types/graph/engine/index.d.cts +0 -7
  189. package/lib/types/graph/engine/index.d.mts +0 -7
  190. package/lib/types/graph/engine/loops/index.d.cts +0 -3
  191. package/lib/types/graph/engine/loops/index.d.mts +0 -3
  192. package/lib/types/graph/engine/validation/GraphLooseNodeValidation.d.cts +21 -0
  193. package/lib/types/graph/engine/validation/GraphLooseNodeValidation.d.mts +21 -0
  194. package/lib/types/graph/engine/validation/GraphParameterValidator.d.cts +25 -1
  195. package/lib/types/graph/engine/validation/GraphParameterValidator.d.mts +25 -1
  196. package/lib/types/graph/engine/validation/index.d.cts +1 -0
  197. package/lib/types/graph/engine/validation/index.d.mts +1 -0
  198. package/lib/types/graph/nodes/agents/agent.d.cts +31 -0
  199. package/lib/types/graph/nodes/agents/agent.d.mts +31 -0
  200. package/lib/types/graph/nodes/base.d.cts +58 -0
  201. package/lib/types/graph/nodes/base.d.mts +58 -0
  202. package/lib/types/graph/nodes/boundary/input-value.d.cts +6 -0
  203. package/lib/types/graph/nodes/boundary/input-value.d.mts +6 -0
  204. package/lib/types/graph/nodes/flow-control/break.d.cts +8 -0
  205. package/lib/types/graph/nodes/flow-control/break.d.mts +8 -0
  206. package/lib/types/graph/nodes/flow-control/error-boundary.d.cts +8 -0
  207. package/lib/types/graph/nodes/flow-control/error-boundary.d.mts +8 -0
  208. package/lib/types/graph/nodes/flow-control/human-approval.d.cts +8 -0
  209. package/lib/types/graph/nodes/flow-control/human-approval.d.mts +8 -0
  210. package/lib/types/graph/nodes/flow-control/if.d.cts +8 -0
  211. package/lib/types/graph/nodes/flow-control/if.d.mts +8 -0
  212. package/lib/types/graph/nodes/flow-control/parallel.d.cts +7 -0
  213. package/lib/types/graph/nodes/flow-control/parallel.d.mts +7 -0
  214. package/lib/types/graph/nodes/flow-control/switch.d.cts +23 -0
  215. package/lib/types/graph/nodes/flow-control/switch.d.mts +23 -0
  216. package/lib/types/graph/nodes/index.d.cts +93 -0
  217. package/lib/types/graph/nodes/index.d.mts +93 -0
  218. package/lib/types/graph/nodes/loops/foreach.d.cts +11 -0
  219. package/lib/types/graph/nodes/loops/foreach.d.mts +11 -0
  220. package/lib/types/graph/nodes/loops/loop-metadata.d.cts +20 -0
  221. package/lib/types/graph/nodes/loops/loop-metadata.d.mts +20 -0
  222. package/lib/types/graph/nodes/loops/until.d.cts +8 -0
  223. package/lib/types/graph/nodes/loops/until.d.mts +8 -0
  224. package/lib/types/graph/nodes/loops/while.d.cts +8 -0
  225. package/lib/types/graph/nodes/loops/while.d.mts +8 -0
  226. package/lib/types/graph/nodes/manifests.d.cts +62 -0
  227. package/lib/types/graph/nodes/manifests.d.mts +62 -0
  228. package/lib/types/graph/nodes/triggers/chat.d.cts +8 -0
  229. package/lib/types/graph/nodes/triggers/chat.d.mts +8 -0
  230. package/lib/types/graph/nodes/triggers/event.d.cts +6 -0
  231. package/lib/types/graph/nodes/triggers/event.d.mts +6 -0
  232. package/lib/types/graph/nodes/triggers/form.d.cts +6 -0
  233. package/lib/types/graph/nodes/triggers/form.d.mts +6 -0
  234. package/lib/types/graph/nodes/triggers/manual.d.cts +6 -0
  235. package/lib/types/graph/nodes/triggers/manual.d.mts +6 -0
  236. package/lib/types/graph/nodes/triggers/schedule.d.cts +6 -0
  237. package/lib/types/graph/nodes/triggers/schedule.d.mts +6 -0
  238. package/lib/types/graph/nodes/triggers/webhook.d.cts +6 -0
  239. package/lib/types/graph/nodes/triggers/webhook.d.mts +6 -0
  240. package/lib/types/graph/nodes/utility/code.d.cts +36 -0
  241. package/lib/types/graph/nodes/utility/code.d.mts +36 -0
  242. package/lib/types/graph/nodes/utility/delay.d.cts +7 -0
  243. package/lib/types/graph/nodes/utility/delay.d.mts +7 -0
  244. package/lib/types/graph/nodes/utility/log.d.cts +8 -0
  245. package/lib/types/graph/nodes/utility/log.d.mts +8 -0
  246. package/lib/types/graph/nodes/utility/map.d.cts +7 -0
  247. package/lib/types/graph/nodes/utility/map.d.mts +7 -0
  248. package/lib/types/graph/nodes/utility/merge.d.cts +7 -0
  249. package/lib/types/graph/nodes/utility/merge.d.mts +7 -0
  250. package/lib/types/graph/nodes/utility/return.d.cts +7 -0
  251. package/lib/types/graph/nodes/utility/return.d.mts +7 -0
  252. package/lib/types/graph/nodes/utility/utility-log.d.cts +10 -0
  253. package/lib/types/graph/nodes/utility/utility-log.d.mts +10 -0
  254. package/lib/types/index.d.cts +2 -2
  255. package/lib/types/index.d.mts +2 -2
  256. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.cts +5 -3
  257. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.mts +5 -3
  258. package/package.json +1 -1
  259. package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs +0 -24
  260. package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs.map +0 -1
  261. package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs +0 -103
  262. package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs.map +0 -1
  263. package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs +0 -47
  264. package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs.map +0 -1
  265. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +0 -121
  266. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +0 -1
  267. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +0 -146
  268. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +0 -1
  269. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +0 -102
  270. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +0 -1
  271. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +0 -103
  272. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +0 -1
  273. package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js +0 -19
  274. package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js.map +0 -1
  275. package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js +0 -98
  276. package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js.map +0 -1
  277. package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js +0 -42
  278. package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js.map +0 -1
  279. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +0 -116
  280. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +0 -1
  281. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +0 -141
  282. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +0 -1
  283. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +0 -97
  284. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +0 -1
  285. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +0 -98
  286. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +0 -1
  287. package/lib/types/graph/engine/execution/BreakGraphNodeExecutor.d.cts +0 -22
  288. package/lib/types/graph/engine/execution/BreakGraphNodeExecutor.d.mts +0 -22
  289. package/lib/types/graph/engine/execution/CodeGraphNodeExecutor.d.cts +0 -65
  290. package/lib/types/graph/engine/execution/CodeGraphNodeExecutor.d.mts +0 -65
  291. package/lib/types/graph/engine/execution/LogGraphNodeExecutor.d.cts +0 -25
  292. package/lib/types/graph/engine/execution/LogGraphNodeExecutor.d.mts +0 -25
  293. package/lib/types/graph/engine/execution/SwitchGraphNodeExecutor.d.cts +0 -43
  294. package/lib/types/graph/engine/execution/SwitchGraphNodeExecutor.d.mts +0 -43
  295. package/lib/types/graph/engine/loops/ForeachGraphNodeExecutor.d.cts +0 -35
  296. package/lib/types/graph/engine/loops/ForeachGraphNodeExecutor.d.mts +0 -35
  297. package/lib/types/graph/engine/loops/UntilGraphNodeExecutor.d.cts +0 -22
  298. package/lib/types/graph/engine/loops/UntilGraphNodeExecutor.d.mts +0 -22
  299. package/lib/types/graph/engine/loops/WhileGraphNodeExecutor.d.cts +0 -26
  300. package/lib/types/graph/engine/loops/WhileGraphNodeExecutor.d.mts +0 -26
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphForeachLoopNode = void 0;
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
7
+ r = Reflect.decorate(decorators, target, key, desc);
8
+ else
9
+ for (var i = decorators.length - 1; i >= 0; i--)
10
+ if (d = decorators[i])
11
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ var __metadata = (this && this.__metadata) || function (k, v) {
15
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
16
+ return Reflect.metadata(k, v);
17
+ };
18
+ /**
19
+ * @module integrations/graph/nodes/loops/foreach
20
+ * @summary Foreach loop node declaration.
21
+ * @description Shared declaration for the `core.loop.foreach` system node
22
+ * kind (decorator id `graph-foreach-loop-node`), ported from the for-angular
23
+ * demo app so the loop kinds become shared canvas nodes. The class's own
24
+ * `static execute` is the only implementation of the kind, derived by
25
+ * `GraphBuiltInRegistrations`, and reaches engine services through
26
+ * `GraphExecutionContext.engine`. The loop-body workflow is demo/app-side
27
+ * content and is not part of the shared declaration — the shared class
28
+ * carries the port/metadata shape only.
29
+ */
30
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
31
+ const ui_decorators_1 = require("@decaf-ts/ui-decorators");
32
+ const graph_1 = require("@decaf-ts/ui-decorators/graph");
33
+ const base_js_1 = require("./../base.cjs");
34
+ const graph_2 = require("@decaf-ts/ui-decorators/graph");
35
+ const GraphExecutionError_js_1 = require("./../../engine/errors/GraphExecutionError.cjs");
36
+ const GraphInputError_js_1 = require("./../../engine/errors/GraphInputError.cjs");
37
+ const GraphLoopLimitError_js_1 = require("./../../engine/errors/GraphLoopLimitError.cjs");
38
+ const loop_metadata_js_1 = require("./loop-metadata.cjs");
39
+ const constants_js_1 = require("./../../engine/constants.cjs");
40
+ const GraphBreakSignal_js_1 = require("./../../engine/errors/GraphBreakSignal.cjs");
41
+ let GraphForeachLoopNode = class GraphForeachLoopNode extends base_js_1.GraphNode {
42
+ static async execute(request, context) {
43
+ const metadata = (0, loop_metadata_js_1.extractLoopMetadata)(context, "foreach");
44
+ const input = request.inputs;
45
+ const items = input.items;
46
+ const maxIterations = metadata.maxIterations ?? constants_js_1.GRAPH_DEFAULT_MAX_FOREACH_ITERATIONS;
47
+ if (!Array.isArray(items)) {
48
+ throw new GraphInputError_js_1.GraphInputError("foreach input 'items' must be an array");
49
+ }
50
+ const engine = context.engine;
51
+ if (!engine) {
52
+ throw new GraphExecutionError_js_1.GraphExecutionError("foreach node requires engine access", "GRAPH_ENGINE_NOT_AVAILABLE");
53
+ }
54
+ const sliceRaw = Number(input.slice ?? metadata.slice ?? 1);
55
+ const slice = Number.isFinite(sliceRaw) && sliceRaw > 0 ? Math.floor(sliceRaw) : 1;
56
+ const iterations = slice > 1 ? Math.ceil(items.length / slice) : items.length;
57
+ if (iterations > maxIterations) {
58
+ throw new GraphLoopLimitError_js_1.GraphLoopLimitError(`foreach exceeded max iterations (${iterations} > ${maxIterations})`);
59
+ }
60
+ const itemPort = metadata.itemPort ?? "item";
61
+ const resultPort = metadata.resultPort ?? "result";
62
+ const statePort = metadata.statePort ?? "state";
63
+ const bodyWorkflow = metadata.body;
64
+ const results = [];
65
+ let state = input.state;
66
+ let broken = false;
67
+ await context.emit({ type: graph_2.GraphExecutionEventType.LOOP_STARTED });
68
+ for (let i = 0; i < iterations; i++) {
69
+ await context.emit({
70
+ type: graph_2.GraphExecutionEventType.LOOP_ITERATION_STARTED,
71
+ iteration: i,
72
+ });
73
+ const sliceItems = slice > 1 ? items.slice(i * slice, i * slice + slice) : items[i];
74
+ const childInputs = {
75
+ [itemPort]: sliceItems,
76
+ index: i,
77
+ };
78
+ if (slice > 1)
79
+ childInputs["slice"] = sliceItems;
80
+ if (state !== undefined)
81
+ childInputs[statePort] = state;
82
+ try {
83
+ const childResult = await engine.execute(bodyWorkflow, childInputs, {
84
+ parentRunId: context.runId,
85
+ path: [...context.path, `iteration:${i}`],
86
+ metadata: { item: sliceItems, index: i, slice },
87
+ });
88
+ results.push(childResult.outputs[resultPort]);
89
+ if (childResult.outputs[statePort] !== undefined) {
90
+ state = childResult.outputs[statePort];
91
+ }
92
+ }
93
+ catch (err) {
94
+ if (err instanceof GraphBreakSignal_js_1.GraphBreakSignal) {
95
+ const carried = err.details
96
+ ?.value;
97
+ if (carried !== undefined)
98
+ results.push(carried);
99
+ broken = true;
100
+ await context.emit({
101
+ type: graph_2.GraphExecutionEventType.LOOP_ITERATION_COMPLETED,
102
+ iteration: i,
103
+ metadata: { broken: true },
104
+ });
105
+ break;
106
+ }
107
+ throw err;
108
+ }
109
+ await context.emit({
110
+ type: graph_2.GraphExecutionEventType.LOOP_ITERATION_COMPLETED,
111
+ iteration: i,
112
+ });
113
+ }
114
+ await context.emit({
115
+ type: graph_2.GraphExecutionEventType.LOOP_COMPLETED,
116
+ metadata: { broken },
117
+ });
118
+ const output = {
119
+ results,
120
+ completed: results,
121
+ iterations: results.length,
122
+ broken,
123
+ };
124
+ if (state !== undefined)
125
+ output[statePort] = state;
126
+ return output;
127
+ }
128
+ };
129
+ exports.GraphForeachLoopNode = GraphForeachLoopNode;
130
+ __decorate([
131
+ (0, decorator_validation_1.required)(),
132
+ (0, ui_decorators_1.uielement)("textarea", {
133
+ label: "Items",
134
+ placeholder: "Array to iterate over",
135
+ }),
136
+ (0, graph_1.input)({ handle: "items" }),
137
+ __metadata("design:type", Array)
138
+ ], GraphForeachLoopNode.prototype, "items", void 0);
139
+ __decorate([
140
+ (0, decorator_validation_1.required)(),
141
+ (0, ui_decorators_1.uielement)("input", {
142
+ label: "Slice size",
143
+ placeholder: "Items per iteration (default 1)",
144
+ }),
145
+ (0, graph_1.input)({ handle: "slice" }),
146
+ __metadata("design:type", Number)
147
+ ], GraphForeachLoopNode.prototype, "slice", void 0);
148
+ __decorate([
149
+ (0, decorator_validation_1.required)(),
150
+ (0, graph_1.output)({ handle: "item" }),
151
+ __metadata("design:type", Object)
152
+ ], GraphForeachLoopNode.prototype, "item", void 0);
153
+ __decorate([
154
+ (0, decorator_validation_1.required)(),
155
+ (0, graph_1.connection)({
156
+ handle: "loop",
157
+ connectionRules: { allowSelf: true, maxConnections: 1 },
158
+ }),
159
+ __metadata("design:type", Object)
160
+ ], GraphForeachLoopNode.prototype, "loop", void 0);
161
+ __decorate([
162
+ (0, decorator_validation_1.required)(),
163
+ (0, graph_1.output)({ handle: "completed" }),
164
+ __metadata("design:type", Array)
165
+ ], GraphForeachLoopNode.prototype, "completed", void 0);
166
+ exports.GraphForeachLoopNode = GraphForeachLoopNode = __decorate([
167
+ (0, graph_1.node)("graph-foreach-loop-node", {
168
+ kind: "core.loop.foreach",
169
+ category: "Loop",
170
+ color: "#eab308",
171
+ icon: "ti-repeat",
172
+ width: 120,
173
+ height: 140,
174
+ labels: ["loop", "iteration", "foreach"],
175
+ metadata: {
176
+ title: "Foreach loop",
177
+ description: "Iterates over an array input and executes the body once per item (or per slice of items).",
178
+ loop: {
179
+ maxIterations: 100,
180
+ itemPort: "item",
181
+ resultPort: "result",
182
+ slice: 1,
183
+ },
184
+ },
185
+ }),
186
+ (0, decorator_validation_1.model)()
187
+ ], GraphForeachLoopNode);
188
+ //# sourceMappingURL=foreach.js.map
189
+ //# sourceMappingURL=foreach.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph/nodes/loops/foreach.cjs","sourceRoot":"","sources":["graph/nodes/loops/foreach.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractLoopMetadata = extractLoopMetadata;
4
+ const GraphInputError_js_1 = require("./../../engine/errors/GraphInputError.cjs");
5
+ /**
6
+ * Extracts the loop metadata for the executing loop node.
7
+ *
8
+ * @param context - The run-scoped execution context for the loop node.
9
+ * @param label - The loop kind label used in error messages.
10
+ * @returns The effective loop metadata (body, limits, ports, condition).
11
+ * @throws {GraphInputError} when the node carries no loop body configuration.
12
+ */
13
+ function extractLoopMetadata(context, label) {
14
+ const instance = context.node;
15
+ const parameters = (instance.parameters ?? {});
16
+ const loop = instance.loop;
17
+ const fallback = context.metadata?.["loop"];
18
+ if (!loop?.body && !fallback?.["body"]) {
19
+ throw new GraphInputError_js_1.GraphInputError(`${label} node is missing loop configuration (instance.loop.body)`);
20
+ }
21
+ const body = (loop?.body ?? fallback?.["body"]);
22
+ const number = (key) => {
23
+ const raw = parameters[key] ??
24
+ loop?.[key] ??
25
+ fallback?.[key];
26
+ const value = Number(raw);
27
+ return raw !== undefined && Number.isFinite(value) ? value : undefined;
28
+ };
29
+ const string = (key) => {
30
+ const raw = parameters[key] ?? fallback?.[key];
31
+ return typeof raw === "string" ? raw : undefined;
32
+ };
33
+ return {
34
+ body,
35
+ maxIterations: number("maxIterations"),
36
+ timeoutMs: number("timeoutMs"),
37
+ concurrency: number("concurrency"),
38
+ condition: (parameters["condition"] ?? fallback?.["condition"]),
39
+ inputPort: string("inputPort"),
40
+ outputPort: string("outputPort"),
41
+ itemPort: string("itemPort"),
42
+ resultPort: string("resultPort"),
43
+ statePort: string("statePort"),
44
+ slice: number("slice"),
45
+ };
46
+ }
47
+ //# sourceMappingURL=loop-metadata.js.map
48
+ //# sourceMappingURL=loop-metadata.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph/nodes/loops/loop-metadata.cjs","sourceRoot":"","sources":["graph/nodes/loops/loop-metadata.js"],"names":[],"mappings":";;AASA,kDAiCC;AA1CD,iFAA2E;AAC3E;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,OAAO,EAAE,KAAK;IAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9B,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,oCAAe,CAAC,GAAG,KAAK,0DAA0D,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE;QACnB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;YACvB,IAAI,EAAE,CAAC,GAAG,CAAC;YACX,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE;QACnB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC,CAAC;IACF,OAAO;QACH,IAAI;QACJ,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC;QACtC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC;QAC9B,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;QAClC,SAAS,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC;QAC/D,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC;QAC9B,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;QAChC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;QAChC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC;QAC9B,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;KACzB,CAAC;AACN,CAAC;AACD,yCAAyC"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphUntilLoopNode = void 0;
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
7
+ r = Reflect.decorate(decorators, target, key, desc);
8
+ else
9
+ for (var i = decorators.length - 1; i >= 0; i--)
10
+ if (d = decorators[i])
11
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ var __metadata = (this && this.__metadata) || function (k, v) {
15
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
16
+ return Reflect.metadata(k, v);
17
+ };
18
+ /**
19
+ * @module integrations/graph/nodes/loops/until
20
+ * @summary Until loop node declaration.
21
+ * @description Shared declaration for the `core.loop.until` system node kind
22
+ * (decorator id `graph-until-loop-node`), ported from the for-angular demo
23
+ * app so the loop kinds become shared canvas nodes. The class's own
24
+ * `static execute` is the only implementation of the kind, derived by
25
+ * `GraphBuiltInRegistrations`, and reaches engine services through
26
+ * `GraphExecutionContext.engine`. The loop-body workflow is demo/app-side
27
+ * content and is not part of the shared declaration — the shared class
28
+ * carries the port/metadata shape only.
29
+ */
30
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
31
+ const ui_decorators_1 = require("@decaf-ts/ui-decorators");
32
+ const graph_1 = require("@decaf-ts/ui-decorators/graph");
33
+ const base_js_1 = require("./../base.cjs");
34
+ const graph_2 = require("@decaf-ts/ui-decorators/graph");
35
+ const GraphExecutionError_js_1 = require("./../../engine/errors/GraphExecutionError.cjs");
36
+ const GraphInputError_js_1 = require("./../../engine/errors/GraphInputError.cjs");
37
+ const GraphLoopLimitError_js_1 = require("./../../engine/errors/GraphLoopLimitError.cjs");
38
+ const loop_metadata_js_1 = require("./loop-metadata.cjs");
39
+ const constants_js_1 = require("./../../engine/constants.cjs");
40
+ const GraphConditionEvaluator_js_1 = require("./../../engine/loops/GraphConditionEvaluator.cjs");
41
+ let GraphUntilLoopNode = class GraphUntilLoopNode extends base_js_1.GraphNode {
42
+ static async execute(request, context) {
43
+ const metadata = (0, loop_metadata_js_1.extractLoopMetadata)(context, "until");
44
+ const input = request.inputs;
45
+ const maxIterations = metadata.maxIterations ?? constants_js_1.GRAPH_DEFAULT_MAX_LOOP_ITERATIONS;
46
+ const condition = metadata.condition;
47
+ if (!condition) {
48
+ throw new GraphInputError_js_1.GraphInputError("until node is missing a condition");
49
+ }
50
+ const statePort = metadata.statePort ?? "state";
51
+ const bodyWorkflow = metadata.body;
52
+ const engine = context.engine;
53
+ if (!engine) {
54
+ throw new GraphExecutionError_js_1.GraphExecutionError("until node requires engine access", "GRAPH_ENGINE_NOT_AVAILABLE");
55
+ }
56
+ let state = input.state;
57
+ let iteration = 0;
58
+ await context.emit({ type: graph_2.GraphExecutionEventType.LOOP_STARTED });
59
+ let shouldStop = false;
60
+ do {
61
+ if (iteration >= maxIterations) {
62
+ await context.emit({
63
+ type: graph_2.GraphExecutionEventType.LOOP_LIMIT_REACHED,
64
+ iteration,
65
+ });
66
+ throw new GraphLoopLimitError_js_1.GraphLoopLimitError(`until loop exceeded max iterations (${maxIterations})`);
67
+ }
68
+ await context.emit({
69
+ type: graph_2.GraphExecutionEventType.LOOP_ITERATION_STARTED,
70
+ iteration,
71
+ });
72
+ const childResult = await engine.execute(bodyWorkflow, { [statePort]: state, iteration }, {
73
+ parentRunId: context.runId,
74
+ path: [...context.path, `iteration:${iteration}`],
75
+ });
76
+ state = childResult.outputs[statePort];
77
+ await context.emit({
78
+ type: graph_2.GraphExecutionEventType.LOOP_ITERATION_COMPLETED,
79
+ iteration,
80
+ });
81
+ const conditionResult = new GraphConditionEvaluator_js_1.GraphConditionEvaluator().evaluate(condition, state);
82
+ await context.emit({
83
+ type: graph_2.GraphExecutionEventType.LOOP_CONDITION_EVALUATED,
84
+ iteration,
85
+ payload: { result: conditionResult },
86
+ });
87
+ iteration++;
88
+ shouldStop = conditionResult;
89
+ } while (!shouldStop);
90
+ await context.emit({ type: graph_2.GraphExecutionEventType.LOOP_COMPLETED });
91
+ return { [statePort]: state, iterations: iteration };
92
+ }
93
+ };
94
+ exports.GraphUntilLoopNode = GraphUntilLoopNode;
95
+ __decorate([
96
+ (0, decorator_validation_1.required)(),
97
+ (0, ui_decorators_1.uielement)("input", { label: "State", placeholder: "Initial state" }),
98
+ (0, graph_1.input)({ handle: "state" }),
99
+ __metadata("design:type", Object)
100
+ ], GraphUntilLoopNode.prototype, "state", void 0);
101
+ __decorate([
102
+ (0, decorator_validation_1.required)(),
103
+ (0, ui_decorators_1.uielement)("input", {
104
+ label: "Final state",
105
+ placeholder: "Final state after loop",
106
+ }),
107
+ (0, graph_1.output)({ handle: "state" }),
108
+ __metadata("design:type", Object)
109
+ ], GraphUntilLoopNode.prototype, "stateOut", void 0);
110
+ exports.GraphUntilLoopNode = GraphUntilLoopNode = __decorate([
111
+ (0, graph_1.node)("graph-until-loop-node", {
112
+ kind: "core.loop.until",
113
+ category: "Loop",
114
+ color: "#eab308",
115
+ icon: "ti-player-stop",
116
+ width: 96,
117
+ height: 96,
118
+ labels: ["loop", "conditional", "until"],
119
+ metadata: {
120
+ title: "Until loop",
121
+ description: "Repeats the body until the condition is true (post-condition, runs at least once).",
122
+ loop: {
123
+ maxIterations: 50,
124
+ statePort: "state",
125
+ condition: {
126
+ type: "greaterThanOrEqual",
127
+ left: "iteration",
128
+ right: 2,
129
+ },
130
+ },
131
+ },
132
+ }),
133
+ (0, decorator_validation_1.model)()
134
+ ], GraphUntilLoopNode);
135
+ //# sourceMappingURL=until.js.map
136
+ //# sourceMappingURL=until.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph/nodes/loops/until.cjs","sourceRoot":"","sources":["graph/nodes/loops/until.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphWhileLoopNode = void 0;
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
7
+ r = Reflect.decorate(decorators, target, key, desc);
8
+ else
9
+ for (var i = decorators.length - 1; i >= 0; i--)
10
+ if (d = decorators[i])
11
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ var __metadata = (this && this.__metadata) || function (k, v) {
15
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
16
+ return Reflect.metadata(k, v);
17
+ };
18
+ /**
19
+ * @module integrations/graph/nodes/loops/while
20
+ * @summary While loop node declaration.
21
+ * @description Shared declaration for the `core.loop.while` system node kind
22
+ * (decorator id `graph-while-loop-node`), ported from the for-angular demo
23
+ * app so the loop kinds become shared canvas nodes. The class's own
24
+ * `static execute` is the only implementation of the kind, derived by
25
+ * `GraphBuiltInRegistrations`, and reaches engine services through
26
+ * `GraphExecutionContext.engine`. The loop-body workflow is demo/app-side
27
+ * content and is not part of the shared declaration — the shared class
28
+ * carries the port/metadata shape only.
29
+ */
30
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
31
+ const ui_decorators_1 = require("@decaf-ts/ui-decorators");
32
+ const graph_1 = require("@decaf-ts/ui-decorators/graph");
33
+ const base_js_1 = require("./../base.cjs");
34
+ const graph_2 = require("@decaf-ts/ui-decorators/graph");
35
+ const GraphExecutionError_js_1 = require("./../../engine/errors/GraphExecutionError.cjs");
36
+ const GraphInputError_js_1 = require("./../../engine/errors/GraphInputError.cjs");
37
+ const GraphLoopLimitError_js_1 = require("./../../engine/errors/GraphLoopLimitError.cjs");
38
+ const loop_metadata_js_1 = require("./loop-metadata.cjs");
39
+ const constants_js_1 = require("./../../engine/constants.cjs");
40
+ const GraphConditionEvaluator_js_1 = require("./../../engine/loops/GraphConditionEvaluator.cjs");
41
+ let GraphWhileLoopNode = class GraphWhileLoopNode extends base_js_1.GraphNode {
42
+ static async execute(request, context) {
43
+ const metadata = (0, loop_metadata_js_1.extractLoopMetadata)(context, "while");
44
+ const input = request.inputs;
45
+ const maxIterations = metadata.maxIterations ?? constants_js_1.GRAPH_DEFAULT_MAX_LOOP_ITERATIONS;
46
+ const condition = metadata.condition;
47
+ if (!condition) {
48
+ throw new GraphInputError_js_1.GraphInputError("while node is missing a condition");
49
+ }
50
+ const statePort = metadata.statePort ?? "state";
51
+ const bodyWorkflow = metadata.body;
52
+ const engine = context.engine;
53
+ if (!engine) {
54
+ throw new GraphExecutionError_js_1.GraphExecutionError("while node requires engine access", "GRAPH_ENGINE_NOT_AVAILABLE");
55
+ }
56
+ let state = input.state;
57
+ let iteration = 0;
58
+ await context.emit({ type: graph_2.GraphExecutionEventType.LOOP_STARTED });
59
+ while (new GraphConditionEvaluator_js_1.GraphConditionEvaluator().evaluate(condition, state)) {
60
+ if (iteration >= maxIterations) {
61
+ await context.emit({
62
+ type: graph_2.GraphExecutionEventType.LOOP_LIMIT_REACHED,
63
+ iteration,
64
+ });
65
+ throw new GraphLoopLimitError_js_1.GraphLoopLimitError(`while loop exceeded max iterations (${maxIterations})`);
66
+ }
67
+ await context.emit({
68
+ type: graph_2.GraphExecutionEventType.LOOP_CONDITION_EVALUATED,
69
+ iteration,
70
+ payload: { result: true },
71
+ });
72
+ await context.emit({
73
+ type: graph_2.GraphExecutionEventType.LOOP_ITERATION_STARTED,
74
+ iteration,
75
+ });
76
+ const childResult = await engine.execute(bodyWorkflow, { [statePort]: state, iteration }, {
77
+ parentRunId: context.runId,
78
+ path: [...context.path, `iteration:${iteration}`],
79
+ });
80
+ state = childResult.outputs[statePort];
81
+ await context.emit({
82
+ type: graph_2.GraphExecutionEventType.LOOP_ITERATION_COMPLETED,
83
+ iteration,
84
+ });
85
+ iteration++;
86
+ }
87
+ await context.emit({ type: graph_2.GraphExecutionEventType.LOOP_COMPLETED });
88
+ return { [statePort]: state, iterations: iteration };
89
+ }
90
+ };
91
+ exports.GraphWhileLoopNode = GraphWhileLoopNode;
92
+ __decorate([
93
+ (0, decorator_validation_1.required)(),
94
+ (0, ui_decorators_1.uielement)("input", { label: "State", placeholder: "Initial state" }),
95
+ (0, graph_1.input)({ handle: "state" }),
96
+ __metadata("design:type", Object)
97
+ ], GraphWhileLoopNode.prototype, "state", void 0);
98
+ __decorate([
99
+ (0, decorator_validation_1.required)(),
100
+ (0, ui_decorators_1.uielement)("input", {
101
+ label: "Final state",
102
+ placeholder: "Final state after loop",
103
+ }),
104
+ (0, graph_1.output)({ handle: "state" }),
105
+ __metadata("design:type", Object)
106
+ ], GraphWhileLoopNode.prototype, "stateOut", void 0);
107
+ exports.GraphWhileLoopNode = GraphWhileLoopNode = __decorate([
108
+ (0, graph_1.node)("graph-while-loop-node", {
109
+ kind: "core.loop.while",
110
+ category: "Loop",
111
+ color: "#eab308",
112
+ icon: "ti-arrows-loop",
113
+ width: 96,
114
+ height: 96,
115
+ labels: ["loop", "conditional", "while"],
116
+ metadata: {
117
+ title: "While loop",
118
+ description: "Repeats the body while the condition is true (pre-condition).",
119
+ loop: {
120
+ maxIterations: 50,
121
+ statePort: "state",
122
+ condition: {
123
+ type: "lessThan",
124
+ left: "iteration",
125
+ right: 3,
126
+ },
127
+ },
128
+ },
129
+ }),
130
+ (0, decorator_validation_1.model)()
131
+ ], GraphWhileLoopNode);
132
+ //# sourceMappingURL=while.js.map
133
+ //# sourceMappingURL=while.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph/nodes/loops/while.cjs","sourceRoot":"","sources":["graph/nodes/loops/while.js"],"names":[],"mappings":"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"}