@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,109 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ /**
11
+ * @module integrations/graph/nodes/agents/agent
12
+ * @summary Production Agent node declaration.
13
+ * @description The Agent node is the primary AI agent entrypoint. It is a
14
+ * rectangular node with `@connection()` ports for its structural
15
+ * dependencies: `model` (the LLM), `memory` (the memory store), and
16
+ * `workspace` (the workspace/context). Connections are rendered on the
17
+ * bottom side of the node (DECAF-32 §21.3). Each connection category has a
18
+ * distinct color defined in the category style registry.
19
+ *
20
+ * The single `prompt` input accepts placeholder expressions (§22.4) such as
21
+ * `{{ $input.brief }}` or `{{ $node["Research"].output.summary }}` that are
22
+ * resolved at execution time by the placeholder compiler.
23
+ */
24
+ import { model, required } from "@decaf-ts/decorator-validation";
25
+ import { uielement } from "@decaf-ts/ui-decorators";
26
+ import { connection, input, node, output } from "@decaf-ts/ui-decorators/graph";
27
+ import { GraphNode } from "./../base.js";
28
+ /**
29
+ * Agent node — an AI agent that orchestrates a model, memory, and workspace.
30
+ *
31
+ * The agent has:
32
+ * - `@input` port on the **left**: `prompt` (the task prompt; supports
33
+ * placeholder expressions like `{{ $input.something }}` per §22.4).
34
+ * - `@output` ports on the **right**: `response` (the agent's output), `actions`
35
+ * (any actions the agent decided to take).
36
+ * - `@connection` ports on the **bottom**: `model` (LLM), `memory` (memory
37
+ * store), `workspace` (workspace/context). Each connection has a distinct
38
+ * category color.
39
+ *
40
+ * The node is rectangular (not rounded) to visually distinguish it from
41
+ * regular processing nodes. The `color` and `icon` are omitted from `@node()`
42
+ * so they are resolved from the `"Agent"` category style.
43
+ */
44
+ let AgentNode = class AgentNode extends GraphNode {
45
+ static execute(request) {
46
+ return {
47
+ response: `[Agent response] ${String(request.inputs["prompt"] ?? "")}`,
48
+ actions: [],
49
+ };
50
+ }
51
+ };
52
+ __decorate([
53
+ required(),
54
+ uielement("textarea", {
55
+ label: "Prompt",
56
+ placeholder: 'Enter task prompt. Supports placeholders like {{ $input.brief }} or {{ $node["Research"].output.summary }}',
57
+ }),
58
+ input({ handle: "prompt" }),
59
+ __metadata("design:type", String)
60
+ ], AgentNode.prototype, "prompt", void 0);
61
+ __decorate([
62
+ required(),
63
+ uielement("textarea", { label: "Response", placeholder: "Agent response" }),
64
+ output({ handle: "response" }),
65
+ __metadata("design:type", String)
66
+ ], AgentNode.prototype, "response", void 0);
67
+ __decorate([
68
+ required(),
69
+ uielement("textarea", {
70
+ label: "Actions",
71
+ placeholder: "Actions taken by the agent",
72
+ }),
73
+ output({ handle: "actions" }),
74
+ __metadata("design:type", Array)
75
+ ], AgentNode.prototype, "actions", void 0);
76
+ __decorate([
77
+ connection({ category: "model", handle: "model" }),
78
+ __metadata("design:type", Object)
79
+ ], AgentNode.prototype, "model", void 0);
80
+ __decorate([
81
+ connection({ category: "memory", handle: "memory" }),
82
+ __metadata("design:type", Object)
83
+ ], AgentNode.prototype, "memory", void 0);
84
+ __decorate([
85
+ connection({ category: "workspace", handle: "workspace" }),
86
+ __metadata("design:type", Object)
87
+ ], AgentNode.prototype, "workspace", void 0);
88
+ AgentNode = __decorate([
89
+ node("core.agent", {
90
+ kind: "core.agent",
91
+ category: "Agent",
92
+ // color and icon omitted — resolved from the "Agent" category style
93
+ width: 140,
94
+ height: 120,
95
+ labels: ["agent", "ai", "orchestrator"],
96
+ metadata: {
97
+ title: "Agent",
98
+ description: "AI agent that orchestrates a model, memory, and workspace to complete a task.",
99
+ shape: "rectangle",
100
+ },
101
+ }),
102
+ model()
103
+ ], AgentNode);
104
+ export { AgentNode };
105
+ /**
106
+ * All built-in agent node constructors.
107
+ */
108
+ export const GRAPH_AGENT_NODES = [AgentNode];
109
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../../../src/graph/nodes/agents/agent.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,qBAAgB;AAMpC;;;;;;;;;;;;;;;GAeG;AAgBI,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,SAAS;IACtC,MAAM,CAAC,OAAO,CAAC,OAAkC;QAC/C,OAAO;YACL,QAAQ,EAAE,oBAAoB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE;YACtE,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;CAsCF,CAAA;AA3BC;IAPC,QAAQ,EAAE;IACV,SAAS,CAAC,UAAU,EAAE;QACrB,KAAK,EAAE,QAAQ;QACf,WAAW,EACT,4GAA4G;KAC/G,CAAC;IACD,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;;yCACZ;AAOhB;IAHC,QAAQ,EAAE;IACV,SAAS,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAC3E,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;;2CACb;AAQlB;IANC,QAAQ,EAAE;IACV,SAAS,CAAC,UAAU,EAAE;QACrB,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,4BAA4B;KAC1C,CAAC;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;;0CACV;AAKpB;IADC,UAAU,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;;wCACnC;AAGhB;IADC,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;;yCACpC;AAGjB;IADC,UAAU,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;;4CACvC;AA3CT,SAAS;IAfrB,IAAI,CAAC,YAAY,EAAE;QAClB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,OAAO;QACjB,oEAAoE;QACpE,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC;QACvC,QAAQ,EAAE;YACR,KAAK,EAAE,OAAO;YACd,WAAW,EACT,+EAA+E;YACjF,KAAK,EAAE,WAAW;SACnB;KACF,CAAC;IACD,KAAK,EAAE;GACK,SAAS,CA4CrB;;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAS,CAAU,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @module integrations/graph/nodes/base
3
+ * @summary Base class for backend graph node declarations.
4
+ * @description `GraphNode` is the single authoritative backend representation of
5
+ * a built-in node kind (DECAF-50 §4.26 R2-1): the `@node`-decorated class
6
+ * carries both the published manifest metadata and the executable behaviour via
7
+ * `execute`. The catalogue derives each kind's executor from the class, so there
8
+ * is exactly one authority per node kind.
9
+ */
10
+ import { Model } from "@decaf-ts/decorator-validation";
11
+ import { GraphExecutionError } from "./../engine/errors/GraphExecutionError.js";
12
+ /**
13
+ * Base class for the built-in backend node kinds.
14
+ *
15
+ * Extends `Model` so the `@node`/`@uielement` decorators and the manifest
16
+ * compiler keep working unchanged. Concrete kinds override `execute`; the default
17
+ * throws so a kind that forgets to implement behaviour fails fast rather than
18
+ * silently producing no output.
19
+ */
20
+ export class GraphNode extends Model {
21
+ /**
22
+ * Executes the node's behaviour against the request inputs and run context.
23
+ *
24
+ * @param _request - The node execution request (inputs, parameters,
25
+ * credentials, metadata).
26
+ * @param _context - The run-scoped execution context.
27
+ * @returns The node's output values keyed by port name.
28
+ * @throws {GraphExecutionError} when the kind does not implement `execute`.
29
+ */
30
+ static execute(
31
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
32
+ _request,
33
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
34
+ _context) {
35
+ throw new GraphExecutionError(`Graph node kind '${this.name}' does not implement execute`, "GRAPH_NODE_EXECUTE_NOT_IMPLEMENTED", { kind: this.name });
36
+ }
37
+ /**
38
+ * Applies a metadata patch to this node class, returning the resulting
39
+ * ports, size, and data patches.
40
+ *
41
+ * The default implementation returns `null` (no changes). Concrete node
42
+ * kinds that support dynamic metadata override this to compute their own
43
+ * ports and size from the metadata — the caller (renderer) simply relays
44
+ * the result to the diagram model.
45
+ *
46
+ * @param _meta - The metadata patch (node-kind-specific, e.g.
47
+ * `SwitchNodeMetadata`).
48
+ * @returns The computed change, or `null` when the node kind does not
49
+ * support dynamic metadata.
50
+ */
51
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
52
+ static applyMetadata(_meta) {
53
+ return null;
54
+ }
55
+ }
56
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/graph/nodes/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAOvD,OAAO,EAAE,mBAAmB,EAAE,kDAA6C;AAgB3E;;;;;;;GAOG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC;;;;;;;;OAQG;IAEH,MAAM,CAAC,OAAO;IACZ,6DAA6D;IAC7D,QAAmC;IACnC,6DAA6D;IAC7D,QAA+B;QAE/B,MAAM,IAAI,mBAAmB,CAC3B,oBAAoB,IAAI,CAAC,IAAI,8BAA8B,EAC3D,oCAAoC,EACpC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CACpB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,6DAA6D;IAC7D,MAAM,CAAC,aAAa,CAAC,KAAc;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,50 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ /**
11
+ * @module integrations/graph/nodes/boundary/input-value
12
+ * @summary Workflow input value boundary node declaration.
13
+ * @description Shared canvas node representing a workflow input value
14
+ * (decorator id `graph-input-value-node`), moved from the for-angular
15
+ * boundary nodes so both sides share the declaration. Reusable value node
16
+ * whose single `value` output may feed multiple targets.
17
+ */
18
+ import { model } from "@decaf-ts/decorator-validation";
19
+ import { output, node } from "@decaf-ts/ui-decorators/graph";
20
+ import { GraphNode } from "./../base.js";
21
+ let GraphInputValueNode = class GraphInputValueNode extends GraphNode {
22
+ static execute(request) {
23
+ return { value: request.inputs["value"] ?? null };
24
+ }
25
+ };
26
+ __decorate([
27
+ output({
28
+ handle: "value",
29
+ connectionRules: {
30
+ allowMultiple: true,
31
+ },
32
+ }),
33
+ __metadata("design:type", Object)
34
+ ], GraphInputValueNode.prototype, "value", void 0);
35
+ GraphInputValueNode = __decorate([
36
+ node("graph-input-value-node", {
37
+ kind: "value",
38
+ category: "Boundary",
39
+ color: "#0f766e",
40
+ icon: "ti-circle-plus",
41
+ labels: ["workflow", "input", "value"],
42
+ metadata: {
43
+ title: "Workflow input value",
44
+ description: "Reusable canvas value node representing a workflow input.",
45
+ },
46
+ }),
47
+ model()
48
+ ], GraphInputValueNode);
49
+ export { GraphInputValueNode };
50
+ //# sourceMappingURL=input-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-value.js","sourceRoot":"","sources":["../../../../../src/graph/nodes/boundary/input-value.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,qBAAgB;AAkB7B,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,SAAS;IAChD,MAAM,CAAC,OAAO,CAAC,OAAkC;QAC/C,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IACpD,CAAC;CASF,CAAA;AADC;IANC,MAAM,CAAC;QACN,MAAM,EAAE,OAAO;QACf,eAAe,EAAE;YACf,aAAa,EAAE,IAAI;SACpB;KACF,CAAC;;kDACc;AAXL,mBAAmB;IAZ/B,IAAI,CAAC,wBAAwB,EAAE;QAC9B,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC;QACtC,QAAQ,EAAE;YACR,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAE,2DAA2D;SACzE;KACF,CAAC;IACD,KAAK,EAAE;GACK,mBAAmB,CAY/B"}
@@ -0,0 +1,62 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ /**
11
+ * @module integrations/graph/nodes/flow-control/break
12
+ * @summary Break flow-control node declaration (DECAF-32 §22.2.2).
13
+ * @description Break — breaks out of the enclosing loop (foreach/while/until).
14
+ * When executed inside a loop body, the loop terminates early and the loop's
15
+ * `completed`/`state` output carries the results collected so far. The Break
16
+ * node's static `execute` throws a `GraphBreakSignal` that the enclosing loop
17
+ * node class catches.
18
+ */
19
+ import { model, required } from "@decaf-ts/decorator-validation";
20
+ import { uielement } from "@decaf-ts/ui-decorators";
21
+ import { input, node, output } from "@decaf-ts/ui-decorators/graph";
22
+ import { GraphNode } from "./../base.js";
23
+ import { GraphBreakSignal } from "./../../engine/errors/GraphBreakSignal.js";
24
+ let BreakFlowNode = class BreakFlowNode extends GraphNode {
25
+ static execute(request,
26
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
27
+ _context) {
28
+ throw new GraphBreakSignal(request.inputs["value"]);
29
+ }
30
+ };
31
+ __decorate([
32
+ required(),
33
+ uielement("textarea", {
34
+ label: "Value",
35
+ placeholder: "Value to forward (collected as the last partial result)",
36
+ }),
37
+ input({ handle: "value" }),
38
+ __metadata("design:type", Object)
39
+ ], BreakFlowNode.prototype, "value", void 0);
40
+ __decorate([
41
+ required(),
42
+ output({ handle: "broken" }),
43
+ __metadata("design:type", Object)
44
+ ], BreakFlowNode.prototype, "broken", void 0);
45
+ BreakFlowNode = __decorate([
46
+ node("core.flow.break", {
47
+ kind: "core.flow.break",
48
+ category: "Flow Control",
49
+ color: "#f59e0b",
50
+ icon: "ti-square-arrow-right",
51
+ width: 96,
52
+ height: 96,
53
+ labels: ["flow", "break", "loop", "control"],
54
+ metadata: {
55
+ title: "Break",
56
+ description: "Breaks out of the enclosing loop. The loop terminates early and returns the results collected so far.",
57
+ },
58
+ }),
59
+ model()
60
+ ], BreakFlowNode);
61
+ export { BreakFlowNode };
62
+ //# sourceMappingURL=break.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"break.js","sourceRoot":"","sources":["../../../../../src/graph/nodes/flow-control/break.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,qBAAgB;AAMpC,OAAO,EAAE,gBAAgB,EAAE,kDAA6C;AAiBjE,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAAS;IAC1C,MAAM,CAAC,OAAO,CACZ,OAAkC;IAClC,6DAA6D;IAC7D,QAA+B;QAE/B,MAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,CAAC;CAaF,CAAA;AALC;IANC,QAAQ,EAAE;IACV,SAAS,CAAC,UAAU,EAAE;QACrB,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,yDAAyD;KACvE,CAAC;IACD,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;;4CACX;AAIhB;IAFC,QAAQ,EAAE;IACV,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;;6CACZ;AAnBN,aAAa;IAfzB,IAAI,CAAC,iBAAiB,EAAE;QACvB,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,cAAc;QACxB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;QAC5C,QAAQ,EAAE;YACR,KAAK,EAAE,OAAO;YACd,WAAW,EACT,uGAAuG;SAC1G;KACF,CAAC;IACD,KAAK,EAAE;GACK,aAAa,CAoBzB"}
@@ -0,0 +1,63 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ /**
11
+ * @module integrations/graph/nodes/flow-control/error-boundary
12
+ * @summary Error-boundary flow-control node declaration (DECAF-32 §22.2.2).
13
+ * @description Error boundary — try/catch/finally workflow behaviour.
14
+ */
15
+ import { model, required } from "@decaf-ts/decorator-validation";
16
+ import { uielement } from "@decaf-ts/ui-decorators";
17
+ import { input, node, output } from "@decaf-ts/ui-decorators/graph";
18
+ import { GraphNode } from "./../base.js";
19
+ let ErrorBoundaryFlowNode = class ErrorBoundaryFlowNode extends GraphNode {
20
+ static execute(request) {
21
+ return { result: request.inputs["value"] ?? request.inputs };
22
+ }
23
+ };
24
+ __decorate([
25
+ required(),
26
+ uielement("textarea", {
27
+ label: "Input value",
28
+ placeholder: "Value to guard",
29
+ }),
30
+ input({ handle: "value" }),
31
+ __metadata("design:type", Object)
32
+ ], ErrorBoundaryFlowNode.prototype, "value", void 0);
33
+ __decorate([
34
+ required(),
35
+ uielement("input", { label: "Result", placeholder: "Output on success" }),
36
+ output({ handle: "result" }),
37
+ __metadata("design:type", Object)
38
+ ], ErrorBoundaryFlowNode.prototype, "result", void 0);
39
+ __decorate([
40
+ required(),
41
+ uielement("input", { label: "Error", placeholder: "Output on failure" }),
42
+ output({ handle: "error" }),
43
+ __metadata("design:type", Object)
44
+ ], ErrorBoundaryFlowNode.prototype, "error", void 0);
45
+ ErrorBoundaryFlowNode = __decorate([
46
+ node("core.flow.errorBoundary", {
47
+ kind: "core.flow.errorBoundary",
48
+ category: "Flow Control",
49
+ color: "#f59e0b",
50
+ icon: "ti-shield-check",
51
+ width: 96,
52
+ height: 96,
53
+ labels: ["flow", "error", "try-catch"],
54
+ metadata: {
55
+ title: "Error boundary",
56
+ description: "Wraps the input in a try/catch/finally. Emits the result on success, or the error on failure.",
57
+ finally: false,
58
+ },
59
+ }),
60
+ model()
61
+ ], ErrorBoundaryFlowNode);
62
+ export { ErrorBoundaryFlowNode };
63
+ //# sourceMappingURL=error-boundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-boundary.js","sourceRoot":"","sources":["../../../../../src/graph/nodes/flow-control/error-boundary.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,qBAAgB;AAsB7B,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,SAAS;IAClD,MAAM,CAAC,OAAO,CAAC,OAAkC;QAC/C,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAC/D,CAAC;CAmBF,CAAA;AAXC;IANC,QAAQ,EAAE;IACV,SAAS,CAAC,UAAU,EAAE;QACrB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,gBAAgB;KAC9B,CAAC;IACD,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;;oDACX;AAKhB;IAHC,QAAQ,EAAE;IACV,SAAS,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACzE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;;qDACZ;AAKjB;IAHC,QAAQ,EAAE;IACV,SAAS,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACxE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;;oDACZ;AArBL,qBAAqB;IAhBjC,IAAI,CAAC,yBAAyB,EAAE;QAC/B,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,cAAc;QACxB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC;QACtC,QAAQ,EAAE;YACR,KAAK,EAAE,gBAAgB;YACvB,WAAW,EACT,+FAA+F;YACjG,OAAO,EAAE,KAAK;SACf;KACF,CAAC;IACD,KAAK,EAAE;GACK,qBAAqB,CAsBjC"}
@@ -0,0 +1,71 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ /**
11
+ * @module integrations/graph/nodes/flow-control/human-approval
12
+ * @summary Human-approval flow-control node declaration (DECAF-32 §22.2.2).
13
+ * @description Human approval — suspends execution until a human approves
14
+ * or rejects.
15
+ */
16
+ import { model, required } from "@decaf-ts/decorator-validation";
17
+ import { uielement } from "@decaf-ts/ui-decorators";
18
+ import { input, node, output } from "@decaf-ts/ui-decorators/graph";
19
+ import { GraphNode } from "./../base.js";
20
+ let HumanApprovalFlowNode = class HumanApprovalFlowNode extends GraphNode {
21
+ static execute(request) {
22
+ return { approved: request.inputs["value"] ?? request.inputs };
23
+ }
24
+ };
25
+ __decorate([
26
+ required(),
27
+ uielement("textarea", {
28
+ label: "Input value",
29
+ placeholder: "Value pending approval",
30
+ }),
31
+ input({ handle: "value" }),
32
+ __metadata("design:type", Object)
33
+ ], HumanApprovalFlowNode.prototype, "value", void 0);
34
+ __decorate([
35
+ required(),
36
+ uielement("input", {
37
+ label: "Approved",
38
+ placeholder: "Output when approved",
39
+ }),
40
+ output({ handle: "approved" }),
41
+ __metadata("design:type", Object)
42
+ ], HumanApprovalFlowNode.prototype, "approved", void 0);
43
+ __decorate([
44
+ required(),
45
+ uielement("input", {
46
+ label: "Rejected",
47
+ placeholder: "Output when rejected",
48
+ }),
49
+ output({ handle: "rejected" }),
50
+ __metadata("design:type", Object)
51
+ ], HumanApprovalFlowNode.prototype, "rejected", void 0);
52
+ HumanApprovalFlowNode = __decorate([
53
+ node("core.flow.humanApproval", {
54
+ kind: "core.flow.humanApproval",
55
+ category: "Flow Control",
56
+ color: "#f59e0b",
57
+ icon: "ti-user-check",
58
+ width: 96,
59
+ height: 96,
60
+ labels: ["flow", "approval", "suspend"],
61
+ metadata: {
62
+ title: "Human approval",
63
+ description: "Suspends execution until a human approves or rejects. Emits the approved value or a rejection.",
64
+ approvers: [],
65
+ timeoutMs: 86400000,
66
+ },
67
+ }),
68
+ model()
69
+ ], HumanApprovalFlowNode);
70
+ export { HumanApprovalFlowNode };
71
+ //# sourceMappingURL=human-approval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"human-approval.js","sourceRoot":"","sources":["../../../../../src/graph/nodes/flow-control/human-approval.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,qBAAgB;AAuB7B,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,SAAS;IAClD,MAAM,CAAC,OAAO,CAAC,OAAkC;QAC/C,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IACjE,CAAC;CAyBF,CAAA;AAjBC;IANC,QAAQ,EAAE;IACV,SAAS,CAAC,UAAU,EAAE;QACrB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,wBAAwB;KACtC,CAAC;IACD,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;;oDACX;AAQhB;IANC,QAAQ,EAAE;IACV,SAAS,CAAC,OAAO,EAAE;QAClB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,sBAAsB;KACpC,CAAC;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;;uDACZ;AAQnB;IANC,QAAQ,EAAE;IACV,SAAS,CAAC,OAAO,EAAE;QAClB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,sBAAsB;KACpC,CAAC;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;;uDACZ;AA3BR,qBAAqB;IAjBjC,IAAI,CAAC,yBAAyB,EAAE;QAC/B,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,cAAc;QACxB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC;QACvC,QAAQ,EAAE;YACR,KAAK,EAAE,gBAAgB;YACvB,WAAW,EACT,gGAAgG;YAClG,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,QAAQ;SACpB;KACF,CAAC;IACD,KAAK,EAAE;GACK,qBAAqB,CA4BjC"}
@@ -0,0 +1,73 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ /**
11
+ * @module integrations/graph/nodes/flow-control/if
12
+ * @summary If flow-control node declaration (DECAF-32 §22.2.2).
13
+ * @description If — conditional branch. Evaluates a `ConditionExpression`
14
+ * (§22.3) and routes the input to the `then` or `else` output. A graph-level
15
+ * macro: the engine's planner recognises it as an ordinary executable node
16
+ * (§5.7) but it has no built-in executor — downstream projects register
17
+ * custom executors or compile it into composition APIs (§22.2.2).
18
+ */
19
+ import { model, required } from "@decaf-ts/decorator-validation";
20
+ import { uielement } from "@decaf-ts/ui-decorators";
21
+ import { input, node, output } from "@decaf-ts/ui-decorators/graph";
22
+ import { GraphNode } from "./../base.js";
23
+ let IfFlowNode = class IfFlowNode extends GraphNode {
24
+ static execute(request) {
25
+ return { then: request.inputs["value"] ?? request.inputs };
26
+ }
27
+ };
28
+ __decorate([
29
+ required(),
30
+ uielement("textarea", {
31
+ label: "Input value",
32
+ placeholder: "Value to evaluate",
33
+ }),
34
+ input({ handle: "value" }),
35
+ __metadata("design:type", Object)
36
+ ], IfFlowNode.prototype, "value", void 0);
37
+ __decorate([
38
+ required(),
39
+ uielement("input", {
40
+ label: "Then",
41
+ placeholder: "Output when condition is true",
42
+ }),
43
+ output({ handle: "then" }),
44
+ __metadata("design:type", Object)
45
+ ], IfFlowNode.prototype, "then", void 0);
46
+ __decorate([
47
+ required(),
48
+ uielement("input", {
49
+ label: "Else",
50
+ placeholder: "Output when condition is false",
51
+ }),
52
+ output({ handle: "else" }),
53
+ __metadata("design:type", Object)
54
+ ], IfFlowNode.prototype, "else", void 0);
55
+ IfFlowNode = __decorate([
56
+ node("core.flow.if", {
57
+ kind: "core.flow.if",
58
+ category: "Flow Control",
59
+ color: "#f59e0b",
60
+ icon: "ti-arrows-split-2",
61
+ width: 96,
62
+ height: 96,
63
+ labels: ["flow", "conditional", "branch"],
64
+ metadata: {
65
+ title: "If",
66
+ description: "Conditional branch. Evaluates the configured condition and routes the input to the matching output.",
67
+ condition: { op: "eq", left: { const: true }, right: { const: true } },
68
+ },
69
+ }),
70
+ model()
71
+ ], IfFlowNode);
72
+ export { IfFlowNode };
73
+ //# sourceMappingURL=if.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"if.js","sourceRoot":"","sources":["../../../../../src/graph/nodes/flow-control/if.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,qBAAgB;AAsB7B,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,SAAS;IACvC,MAAM,CAAC,OAAO,CAAC,OAAkC;QAC/C,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAC7D,CAAC;CAyBF,CAAA;AAjBC;IANC,QAAQ,EAAE;IACV,SAAS,CAAC,UAAU,EAAE;QACrB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,mBAAmB;KACjC,CAAC;IACD,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;;yCACX;AAQhB;IANC,QAAQ,EAAE;IACV,SAAS,CAAC,OAAO,EAAE;QAClB,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,+BAA+B;KAC7C,CAAC;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;;wCACZ;AAQf;IANC,QAAQ,EAAE;IACV,SAAS,CAAC,OAAO,EAAE;QAClB,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,gCAAgC;KAC9C,CAAC;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;;wCACZ;AA3BJ,UAAU;IAhBtB,IAAI,CAAC,cAAc,EAAE;QACpB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,cAAc;QACxB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC;QACzC,QAAQ,EAAE;YACR,KAAK,EAAE,IAAI;YACX,WAAW,EACT,qGAAqG;YACvG,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;SACvE;KACF,CAAC;IACD,KAAK,EAAE;GACK,UAAU,CA4BtB"}
@@ -0,0 +1,60 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ /**
11
+ * @module integrations/graph/nodes/flow-control/parallel
12
+ * @summary Parallel flow-control node declaration (DECAF-32 §22.2.2).
13
+ * @description Parallel — splits execution into concurrent branches.
14
+ */
15
+ import { model, required } from "@decaf-ts/decorator-validation";
16
+ import { uielement } from "@decaf-ts/ui-decorators";
17
+ import { input, node, output } from "@decaf-ts/ui-decorators/graph";
18
+ import { GraphNode } from "./../base.js";
19
+ let ParallelFlowNode = class ParallelFlowNode extends GraphNode {
20
+ static execute(request) {
21
+ return { branches: [request.inputs["value"] ?? request.inputs] };
22
+ }
23
+ };
24
+ __decorate([
25
+ required(),
26
+ uielement("textarea", {
27
+ label: "Input value",
28
+ placeholder: "Value to fan out",
29
+ }),
30
+ input({ handle: "value" }),
31
+ __metadata("design:type", Object)
32
+ ], ParallelFlowNode.prototype, "value", void 0);
33
+ __decorate([
34
+ required(),
35
+ uielement("input", {
36
+ label: "Branches",
37
+ placeholder: "Collected branch outputs",
38
+ }),
39
+ output({ handle: "branches" }),
40
+ __metadata("design:type", Array)
41
+ ], ParallelFlowNode.prototype, "branches", void 0);
42
+ ParallelFlowNode = __decorate([
43
+ node("core.flow.parallel", {
44
+ kind: "core.flow.parallel",
45
+ category: "Flow Control",
46
+ color: "#f59e0b",
47
+ icon: "ti-arrows-vertical",
48
+ width: 96,
49
+ height: 96,
50
+ labels: ["flow", "parallel", "concurrent"],
51
+ metadata: {
52
+ title: "Parallel",
53
+ description: "Splits execution into concurrent branches. All branches run in parallel and outputs are collected.",
54
+ branchCount: 2,
55
+ },
56
+ }),
57
+ model()
58
+ ], ParallelFlowNode);
59
+ export { ParallelFlowNode };
60
+ //# sourceMappingURL=parallel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parallel.js","sourceRoot":"","sources":["../../../../../src/graph/nodes/flow-control/parallel.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,qBAAgB;AAsB7B,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,SAAS;IAC7C,MAAM,CAAC,OAAO,CAAC,OAAkC;QAC/C,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IACnE,CAAC;CAiBF,CAAA;AATC;IANC,QAAQ,EAAE;IACV,SAAS,CAAC,UAAU,EAAE;QACrB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,kBAAkB;KAChC,CAAC;IACD,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;;+CACX;AAQhB;IANC,QAAQ,EAAE;IACV,SAAS,CAAC,OAAO,EAAE;QAClB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,0BAA0B;KACxC,CAAC;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;;kDACV;AAnBV,gBAAgB;IAhB5B,IAAI,CAAC,oBAAoB,EAAE;QAC1B,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,cAAc;QACxB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC;QAC1C,QAAQ,EAAE;YACR,KAAK,EAAE,UAAU;YACjB,WAAW,EACT,oGAAoG;YACtG,WAAW,EAAE,CAAC;SACf;KACF,CAAC;IACD,KAAK,EAAE;GACK,gBAAgB,CAoB5B"}