@nodetool-ai/base-nodes 0.7.0-rc.22 → 0.8.1

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 (363) hide show
  1. package/README.md +21 -0
  2. package/dist/.nodetool-build-stamp +1 -0
  3. package/dist/index.d.ts +61 -67
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +179 -173
  6. package/dist/index.js.map +1 -1
  7. package/dist/platforms/browser.d.ts +19 -0
  8. package/dist/platforms/browser.d.ts.map +1 -0
  9. package/dist/platforms/browser.js +29 -0
  10. package/dist/platforms/browser.js.map +1 -0
  11. package/package.json +53 -65
  12. package/dist/lib/audio-wav.d.ts +0 -66
  13. package/dist/lib/audio-wav.d.ts.map +0 -1
  14. package/dist/lib/audio-wav.js +0 -215
  15. package/dist/lib/audio-wav.js.map +0 -1
  16. package/dist/nodes/agent-tool-hydration.d.ts +0 -10
  17. package/dist/nodes/agent-tool-hydration.d.ts.map +0 -1
  18. package/dist/nodes/agent-tool-hydration.js +0 -43
  19. package/dist/nodes/agent-tool-hydration.js.map +0 -1
  20. package/dist/nodes/agents.d.ts +0 -262
  21. package/dist/nodes/agents.d.ts.map +0 -1
  22. package/dist/nodes/agents.js +0 -2856
  23. package/dist/nodes/agents.js.map +0 -1
  24. package/dist/nodes/anthropic.d.ts +0 -26
  25. package/dist/nodes/anthropic.d.ts.map +0 -1
  26. package/dist/nodes/anthropic.js +0 -133
  27. package/dist/nodes/anthropic.js.map +0 -1
  28. package/dist/nodes/apify.d.ts +0 -120
  29. package/dist/nodes/apify.d.ts.map +0 -1
  30. package/dist/nodes/apify.js +0 -618
  31. package/dist/nodes/apify.js.map +0 -1
  32. package/dist/nodes/audio.d.ts +0 -301
  33. package/dist/nodes/audio.d.ts.map +0 -1
  34. package/dist/nodes/audio.js +0 -1274
  35. package/dist/nodes/audio.js.map +0 -1
  36. package/dist/nodes/code-node.d.ts +0 -34
  37. package/dist/nodes/code-node.d.ts.map +0 -1
  38. package/dist/nodes/code-node.js +0 -343
  39. package/dist/nodes/code-node.js.map +0 -1
  40. package/dist/nodes/code.d.ts +0 -301
  41. package/dist/nodes/code.d.ts.map +0 -1
  42. package/dist/nodes/code.js +0 -850
  43. package/dist/nodes/code.js.map +0 -1
  44. package/dist/nodes/compare.d.ts +0 -18
  45. package/dist/nodes/compare.d.ts.map +0 -1
  46. package/dist/nodes/compare.js +0 -122
  47. package/dist/nodes/compare.js.map +0 -1
  48. package/dist/nodes/constant.d.ts +0 -315
  49. package/dist/nodes/constant.d.ts.map +0 -1
  50. package/dist/nodes/constant.js +0 -715
  51. package/dist/nodes/constant.js.map +0 -1
  52. package/dist/nodes/control.d.ts +0 -83
  53. package/dist/nodes/control.d.ts.map +0 -1
  54. package/dist/nodes/control.js +0 -212
  55. package/dist/nodes/control.js.map +0 -1
  56. package/dist/nodes/data.d.ts +0 -369
  57. package/dist/nodes/data.d.ts.map +0 -1
  58. package/dist/nodes/data.js +0 -1590
  59. package/dist/nodes/data.js.map +0 -1
  60. package/dist/nodes/document.d.ts +0 -134
  61. package/dist/nodes/document.d.ts.map +0 -1
  62. package/dist/nodes/document.js +0 -984
  63. package/dist/nodes/document.js.map +0 -1
  64. package/dist/nodes/extended-placeholders.d.ts +0 -6
  65. package/dist/nodes/extended-placeholders.d.ts.map +0 -1
  66. package/dist/nodes/extended-placeholders.js +0 -19
  67. package/dist/nodes/extended-placeholders.js.map +0 -1
  68. package/dist/nodes/gemini.d.ts +0 -110
  69. package/dist/nodes/gemini.d.ts.map +0 -1
  70. package/dist/nodes/gemini.js +0 -871
  71. package/dist/nodes/gemini.js.map +0 -1
  72. package/dist/nodes/generators.d.ts +0 -84
  73. package/dist/nodes/generators.d.ts.map +0 -1
  74. package/dist/nodes/generators.js +0 -968
  75. package/dist/nodes/generators.js.map +0 -1
  76. package/dist/nodes/image.d.ts +0 -232
  77. package/dist/nodes/image.d.ts.map +0 -1
  78. package/dist/nodes/image.js +0 -1395
  79. package/dist/nodes/image.js.map +0 -1
  80. package/dist/nodes/input.d.ts +0 -445
  81. package/dist/nodes/input.d.ts.map +0 -1
  82. package/dist/nodes/input.js +0 -1459
  83. package/dist/nodes/input.js.map +0 -1
  84. package/dist/nodes/kie-dynamic.d.ts +0 -31
  85. package/dist/nodes/kie-dynamic.d.ts.map +0 -1
  86. package/dist/nodes/kie-dynamic.js +0 -270
  87. package/dist/nodes/kie-dynamic.js.map +0 -1
  88. package/dist/nodes/lib-audio-dsp.d.ts +0 -85
  89. package/dist/nodes/lib-audio-dsp.d.ts.map +0 -1
  90. package/dist/nodes/lib-audio-dsp.js +0 -450
  91. package/dist/nodes/lib-audio-dsp.js.map +0 -1
  92. package/dist/nodes/lib-audio-effects.d.ts +0 -116
  93. package/dist/nodes/lib-audio-effects.d.ts.map +0 -1
  94. package/dist/nodes/lib-audio-effects.js +0 -905
  95. package/dist/nodes/lib-audio-effects.js.map +0 -1
  96. package/dist/nodes/lib-browser.d.ts +0 -99
  97. package/dist/nodes/lib-browser.d.ts.map +0 -1
  98. package/dist/nodes/lib-browser.js +0 -692
  99. package/dist/nodes/lib-browser.js.map +0 -1
  100. package/dist/nodes/lib-charts.d.ts +0 -20
  101. package/dist/nodes/lib-charts.d.ts.map +0 -1
  102. package/dist/nodes/lib-charts.js +0 -245
  103. package/dist/nodes/lib-charts.js.map +0 -1
  104. package/dist/nodes/lib-datetime.d.ts +0 -108
  105. package/dist/nodes/lib-datetime.d.ts.map +0 -1
  106. package/dist/nodes/lib-datetime.js +0 -421
  107. package/dist/nodes/lib-datetime.js.map +0 -1
  108. package/dist/nodes/lib-doc-convert.d.ts +0 -19
  109. package/dist/nodes/lib-doc-convert.d.ts.map +0 -1
  110. package/dist/nodes/lib-doc-convert.js +0 -257
  111. package/dist/nodes/lib-doc-convert.js.map +0 -1
  112. package/dist/nodes/lib-doc-transform.d.ts +0 -39
  113. package/dist/nodes/lib-doc-transform.d.ts.map +0 -1
  114. package/dist/nodes/lib-doc-transform.js +0 -335
  115. package/dist/nodes/lib-doc-transform.js.map +0 -1
  116. package/dist/nodes/lib-docx.d.ts +0 -106
  117. package/dist/nodes/lib-docx.d.ts.map +0 -1
  118. package/dist/nodes/lib-docx.js +0 -595
  119. package/dist/nodes/lib-docx.js.map +0 -1
  120. package/dist/nodes/lib-epub.d.ts +0 -55
  121. package/dist/nodes/lib-epub.d.ts.map +0 -1
  122. package/dist/nodes/lib-epub.js +0 -220
  123. package/dist/nodes/lib-epub.js.map +0 -1
  124. package/dist/nodes/lib-excel.d.ts +0 -74
  125. package/dist/nodes/lib-excel.d.ts.map +0 -1
  126. package/dist/nodes/lib-excel.js +0 -448
  127. package/dist/nodes/lib-excel.js.map +0 -1
  128. package/dist/nodes/lib-graphql.d.ts +0 -66
  129. package/dist/nodes/lib-graphql.d.ts.map +0 -1
  130. package/dist/nodes/lib-graphql.js +0 -333
  131. package/dist/nodes/lib-graphql.js.map +0 -1
  132. package/dist/nodes/lib-grid.d.ts +0 -27
  133. package/dist/nodes/lib-grid.d.ts.map +0 -1
  134. package/dist/nodes/lib-grid.js +0 -172
  135. package/dist/nodes/lib-grid.js.map +0 -1
  136. package/dist/nodes/lib-html-parse.d.ts +0 -108
  137. package/dist/nodes/lib-html-parse.d.ts.map +0 -1
  138. package/dist/nodes/lib-html-parse.js +0 -365
  139. package/dist/nodes/lib-html-parse.js.map +0 -1
  140. package/dist/nodes/lib-http.d.ts +0 -98
  141. package/dist/nodes/lib-http.d.ts.map +0 -1
  142. package/dist/nodes/lib-http.js +0 -267
  143. package/dist/nodes/lib-http.js.map +0 -1
  144. package/dist/nodes/lib-image-color-grading.d.ts +0 -3
  145. package/dist/nodes/lib-image-color-grading.d.ts.map +0 -1
  146. package/dist/nodes/lib-image-color-grading.js +0 -1386
  147. package/dist/nodes/lib-image-color-grading.js.map +0 -1
  148. package/dist/nodes/lib-image-draw.d.ts +0 -3
  149. package/dist/nodes/lib-image-draw.d.ts.map +0 -1
  150. package/dist/nodes/lib-image-draw.js +0 -470
  151. package/dist/nodes/lib-image-draw.js.map +0 -1
  152. package/dist/nodes/lib-image-enhance.d.ts +0 -3
  153. package/dist/nodes/lib-image-enhance.d.ts.map +0 -1
  154. package/dist/nodes/lib-image-enhance.js +0 -731
  155. package/dist/nodes/lib-image-enhance.js.map +0 -1
  156. package/dist/nodes/lib-image-filter.d.ts +0 -3
  157. package/dist/nodes/lib-image-filter.d.ts.map +0 -1
  158. package/dist/nodes/lib-image-filter.js +0 -684
  159. package/dist/nodes/lib-image-filter.js.map +0 -1
  160. package/dist/nodes/lib-image-utils.d.ts +0 -24
  161. package/dist/nodes/lib-image-utils.d.ts.map +0 -1
  162. package/dist/nodes/lib-image-utils.js +0 -150
  163. package/dist/nodes/lib-image-utils.js.map +0 -1
  164. package/dist/nodes/lib-mail.d.ts +0 -74
  165. package/dist/nodes/lib-mail.d.ts.map +0 -1
  166. package/dist/nodes/lib-mail.js +0 -452
  167. package/dist/nodes/lib-mail.js.map +0 -1
  168. package/dist/nodes/lib-markdown.d.ts +0 -70
  169. package/dist/nodes/lib-markdown.d.ts.map +0 -1
  170. package/dist/nodes/lib-markdown.js +0 -236
  171. package/dist/nodes/lib-markdown.js.map +0 -1
  172. package/dist/nodes/lib-nlp.d.ts +0 -98
  173. package/dist/nodes/lib-nlp.d.ts.map +0 -1
  174. package/dist/nodes/lib-nlp.js +0 -374
  175. package/dist/nodes/lib-nlp.js.map +0 -1
  176. package/dist/nodes/lib-notion.d.ts +0 -99
  177. package/dist/nodes/lib-notion.d.ts.map +0 -1
  178. package/dist/nodes/lib-notion.js +0 -601
  179. package/dist/nodes/lib-notion.js.map +0 -1
  180. package/dist/nodes/lib-ocr.d.ts +0 -31
  181. package/dist/nodes/lib-ocr.d.ts.map +0 -1
  182. package/dist/nodes/lib-ocr.js +0 -143
  183. package/dist/nodes/lib-ocr.js.map +0 -1
  184. package/dist/nodes/lib-os.d.ts +0 -312
  185. package/dist/nodes/lib-os.d.ts.map +0 -1
  186. package/dist/nodes/lib-os.js +0 -909
  187. package/dist/nodes/lib-os.js.map +0 -1
  188. package/dist/nodes/lib-pdf.d.ts +0 -142
  189. package/dist/nodes/lib-pdf.d.ts.map +0 -1
  190. package/dist/nodes/lib-pdf.js +0 -871
  191. package/dist/nodes/lib-pdf.js.map +0 -1
  192. package/dist/nodes/lib-pptx.d.ts +0 -29
  193. package/dist/nodes/lib-pptx.d.ts.map +0 -1
  194. package/dist/nodes/lib-pptx.js +0 -122
  195. package/dist/nodes/lib-pptx.js.map +0 -1
  196. package/dist/nodes/lib-rss.d.ts +0 -31
  197. package/dist/nodes/lib-rss.d.ts.map +0 -1
  198. package/dist/nodes/lib-rss.js +0 -163
  199. package/dist/nodes/lib-rss.js.map +0 -1
  200. package/dist/nodes/lib-s3.d.ts +0 -112
  201. package/dist/nodes/lib-s3.d.ts.map +0 -1
  202. package/dist/nodes/lib-s3.js +0 -521
  203. package/dist/nodes/lib-s3.js.map +0 -1
  204. package/dist/nodes/lib-secret.d.ts +0 -15
  205. package/dist/nodes/lib-secret.d.ts.map +0 -1
  206. package/dist/nodes/lib-secret.js +0 -42
  207. package/dist/nodes/lib-secret.js.map +0 -1
  208. package/dist/nodes/lib-sqlite.d.ts +0 -102
  209. package/dist/nodes/lib-sqlite.d.ts.map +0 -1
  210. package/dist/nodes/lib-sqlite.js +0 -532
  211. package/dist/nodes/lib-sqlite.js.map +0 -1
  212. package/dist/nodes/lib-supabase.d.ts +0 -86
  213. package/dist/nodes/lib-supabase.d.ts.map +0 -1
  214. package/dist/nodes/lib-supabase.js +0 -425
  215. package/dist/nodes/lib-supabase.js.map +0 -1
  216. package/dist/nodes/lib-svg.d.ts +0 -199
  217. package/dist/nodes/lib-svg.d.ts.map +0 -1
  218. package/dist/nodes/lib-svg.js +0 -1027
  219. package/dist/nodes/lib-svg.js.map +0 -1
  220. package/dist/nodes/lib-tensorflow.d.ts +0 -71
  221. package/dist/nodes/lib-tensorflow.d.ts.map +0 -1
  222. package/dist/nodes/lib-tensorflow.js +0 -351
  223. package/dist/nodes/lib-tensorflow.js.map +0 -1
  224. package/dist/nodes/lib-twilio.d.ts +0 -71
  225. package/dist/nodes/lib-twilio.d.ts.map +0 -1
  226. package/dist/nodes/lib-twilio.js +0 -469
  227. package/dist/nodes/lib-twilio.js.map +0 -1
  228. package/dist/nodes/lib-validate.d.ts +0 -84
  229. package/dist/nodes/lib-validate.d.ts.map +0 -1
  230. package/dist/nodes/lib-validate.js +0 -215
  231. package/dist/nodes/lib-validate.js.map +0 -1
  232. package/dist/nodes/lib-video-download.d.ts +0 -26
  233. package/dist/nodes/lib-video-download.d.ts.map +0 -1
  234. package/dist/nodes/lib-video-download.js +0 -299
  235. package/dist/nodes/lib-video-download.js.map +0 -1
  236. package/dist/nodes/messaging.d.ts +0 -88
  237. package/dist/nodes/messaging.d.ts.map +0 -1
  238. package/dist/nodes/messaging.js +0 -418
  239. package/dist/nodes/messaging.js.map +0 -1
  240. package/dist/nodes/mistral.d.ts +0 -83
  241. package/dist/nodes/mistral.d.ts.map +0 -1
  242. package/dist/nodes/mistral.js +0 -450
  243. package/dist/nodes/mistral.js.map +0 -1
  244. package/dist/nodes/model3d/analysis.d.ts +0 -13
  245. package/dist/nodes/model3d/analysis.d.ts.map +0 -1
  246. package/dist/nodes/model3d/analysis.js +0 -36
  247. package/dist/nodes/model3d/analysis.js.map +0 -1
  248. package/dist/nodes/model3d/base.d.ts +0 -11
  249. package/dist/nodes/model3d/base.d.ts.map +0 -1
  250. package/dist/nodes/model3d/base.js +0 -20
  251. package/dist/nodes/model3d/base.js.map +0 -1
  252. package/dist/nodes/model3d/boolean-ops.d.ts +0 -2
  253. package/dist/nodes/model3d/boolean-ops.d.ts.map +0 -1
  254. package/dist/nodes/model3d/boolean-ops.js +0 -172
  255. package/dist/nodes/model3d/boolean-ops.js.map +0 -1
  256. package/dist/nodes/model3d/cleanup.d.ts +0 -47
  257. package/dist/nodes/model3d/cleanup.d.ts.map +0 -1
  258. package/dist/nodes/model3d/cleanup.js +0 -136
  259. package/dist/nodes/model3d/cleanup.js.map +0 -1
  260. package/dist/nodes/model3d/convert.d.ts +0 -14
  261. package/dist/nodes/model3d/convert.d.ts.map +0 -1
  262. package/dist/nodes/model3d/convert.js +0 -64
  263. package/dist/nodes/model3d/convert.js.map +0 -1
  264. package/dist/nodes/model3d/defaults.d.ts +0 -34
  265. package/dist/nodes/model3d/defaults.d.ts.map +0 -1
  266. package/dist/nodes/model3d/defaults.js +0 -28
  267. package/dist/nodes/model3d/defaults.js.map +0 -1
  268. package/dist/nodes/model3d/document-ops.d.ts +0 -4
  269. package/dist/nodes/model3d/document-ops.d.ts.map +0 -1
  270. package/dist/nodes/model3d/document-ops.js +0 -40
  271. package/dist/nodes/model3d/document-ops.js.map +0 -1
  272. package/dist/nodes/model3d/generation.d.ts +0 -39
  273. package/dist/nodes/model3d/generation.d.ts.map +0 -1
  274. package/dist/nodes/model3d/generation.js +0 -179
  275. package/dist/nodes/model3d/generation.js.map +0 -1
  276. package/dist/nodes/model3d/glb.d.ts +0 -29
  277. package/dist/nodes/model3d/glb.d.ts.map +0 -1
  278. package/dist/nodes/model3d/glb.js +0 -255
  279. package/dist/nodes/model3d/glb.js.map +0 -1
  280. package/dist/nodes/model3d/index.d.ts +0 -20
  281. package/dist/nodes/model3d/index.d.ts.map +0 -1
  282. package/dist/nodes/model3d/index.js +0 -38
  283. package/dist/nodes/model3d/index.js.map +0 -1
  284. package/dist/nodes/model3d/io.d.ts +0 -38
  285. package/dist/nodes/model3d/io.d.ts.map +0 -1
  286. package/dist/nodes/model3d/io.js +0 -162
  287. package/dist/nodes/model3d/io.js.map +0 -1
  288. package/dist/nodes/model3d/mesh-ops.d.ts +0 -40
  289. package/dist/nodes/model3d/mesh-ops.d.ts.map +0 -1
  290. package/dist/nodes/model3d/mesh-ops.js +0 -775
  291. package/dist/nodes/model3d/mesh-ops.js.map +0 -1
  292. package/dist/nodes/model3d/nodes.d.ts +0 -2
  293. package/dist/nodes/model3d/nodes.d.ts.map +0 -1
  294. package/dist/nodes/model3d/nodes.js +0 -2
  295. package/dist/nodes/model3d/nodes.js.map +0 -1
  296. package/dist/nodes/model3d/ops.d.ts +0 -37
  297. package/dist/nodes/model3d/ops.d.ts.map +0 -1
  298. package/dist/nodes/model3d/ops.js +0 -137
  299. package/dist/nodes/model3d/ops.js.map +0 -1
  300. package/dist/nodes/model3d/transforms.d.ts +0 -49
  301. package/dist/nodes/model3d/transforms.d.ts.map +0 -1
  302. package/dist/nodes/model3d/transforms.js +0 -142
  303. package/dist/nodes/model3d/transforms.js.map +0 -1
  304. package/dist/nodes/model3d/types.d.ts +0 -81
  305. package/dist/nodes/model3d/types.d.ts.map +0 -1
  306. package/dist/nodes/model3d/types.js +0 -2
  307. package/dist/nodes/model3d/types.js.map +0 -1
  308. package/dist/nodes/model3d/utils.d.ts +0 -34
  309. package/dist/nodes/model3d/utils.d.ts.map +0 -1
  310. package/dist/nodes/model3d/utils.js +0 -185
  311. package/dist/nodes/model3d/utils.js.map +0 -1
  312. package/dist/nodes/model3d.d.ts +0 -2
  313. package/dist/nodes/model3d.d.ts.map +0 -1
  314. package/dist/nodes/model3d.js +0 -2
  315. package/dist/nodes/model3d.js.map +0 -1
  316. package/dist/nodes/openai.d.ts +0 -172
  317. package/dist/nodes/openai.d.ts.map +0 -1
  318. package/dist/nodes/openai.js +0 -1294
  319. package/dist/nodes/openai.js.map +0 -1
  320. package/dist/nodes/output.d.ts +0 -29
  321. package/dist/nodes/output.d.ts.map +0 -1
  322. package/dist/nodes/output.js +0 -87
  323. package/dist/nodes/output.js.map +0 -1
  324. package/dist/nodes/sandbox.d.ts +0 -63
  325. package/dist/nodes/sandbox.d.ts.map +0 -1
  326. package/dist/nodes/sandbox.js +0 -633
  327. package/dist/nodes/sandbox.js.map +0 -1
  328. package/dist/nodes/search.d.ts +0 -117
  329. package/dist/nodes/search.d.ts.map +0 -1
  330. package/dist/nodes/search.js +0 -607
  331. package/dist/nodes/search.js.map +0 -1
  332. package/dist/nodes/team.d.ts +0 -74
  333. package/dist/nodes/team.d.ts.map +0 -1
  334. package/dist/nodes/team.js +0 -309
  335. package/dist/nodes/team.js.map +0 -1
  336. package/dist/nodes/text-extra.d.ts +0 -633
  337. package/dist/nodes/text-extra.d.ts.map +0 -1
  338. package/dist/nodes/text-extra.js +0 -2226
  339. package/dist/nodes/text-extra.js.map +0 -1
  340. package/dist/nodes/tool-agents.d.ts +0 -334
  341. package/dist/nodes/tool-agents.d.ts.map +0 -1
  342. package/dist/nodes/tool-agents.js +0 -1861
  343. package/dist/nodes/tool-agents.js.map +0 -1
  344. package/dist/nodes/triggers.d.ts +0 -107
  345. package/dist/nodes/triggers.d.ts.map +0 -1
  346. package/dist/nodes/triggers.js +0 -706
  347. package/dist/nodes/triggers.js.map +0 -1
  348. package/dist/nodes/vector.d.ts +0 -168
  349. package/dist/nodes/vector.d.ts.map +0 -1
  350. package/dist/nodes/vector.js +0 -1121
  351. package/dist/nodes/vector.js.map +0 -1
  352. package/dist/nodes/video.d.ts +0 -387
  353. package/dist/nodes/video.d.ts.map +0 -1
  354. package/dist/nodes/video.js +0 -2383
  355. package/dist/nodes/video.js.map +0 -1
  356. package/dist/nodes/workflow.d.ts +0 -24
  357. package/dist/nodes/workflow.d.ts.map +0 -1
  358. package/dist/nodes/workflow.js +0 -146
  359. package/dist/nodes/workflow.js.map +0 -1
  360. package/dist/nodes/workspace.d.ts +0 -203
  361. package/dist/nodes/workspace.d.ts.map +0 -1
  362. package/dist/nodes/workspace.js +0 -795
  363. package/dist/nodes/workspace.js.map +0 -1
@@ -1,74 +0,0 @@
1
- /**
2
- * Multi-Agent Team Nodes — TeamLead orchestrates Agent nodes via control edges.
3
- *
4
- * Architecture:
5
- * - TeamLeadNode: orchestrates agents, manages tasks (persisted in DB),
6
- * sends control events to connected Agent nodes (like tool calls).
7
- * - AgentNode: individual agent, connected below TeamLead via control edges.
8
- * Receives work assignments as control events, executes, returns results.
9
- *
10
- * Tasks are always stored in the database (team_tasks table) and provided
11
- * via processing context. Tasks have dependencies and belong to a team.
12
- */
13
- import { BaseNode } from "@nodetool-ai/node-sdk";
14
- import type { ProcessingContext } from "@nodetool-ai/runtime";
15
- import { type AgentIdentity } from "@nodetool-ai/agents";
16
- /**
17
- * Individual agent node — a controlled node that receives work from TeamLead.
18
- *
19
- * Connect below a TeamLeadNode via a control edge. The TeamLead sends
20
- * control events (like tool calls) to assign work. The agent processes
21
- * the assignment and returns results.
22
- */
23
- export declare class TeamAgentNode extends BaseNode {
24
- static readonly nodeType = "nodetool.team.Agent";
25
- static readonly title = "Agent";
26
- static readonly description = "An individual AI agent that receives work from a TeamLead via control edges.\n agent, team, controlled, worker";
27
- static readonly isControlled = true;
28
- static readonly metadataOutputTypes: {
29
- result: string;
30
- };
31
- static readonly basicFields: string[];
32
- name: any;
33
- role: any;
34
- skills: any;
35
- provider: any;
36
- model: any;
37
- tools: any;
38
- /**
39
- * Called by the kernel for each control event from TeamLead.
40
- * The control event properties are merged onto `this` via assign().
41
- */
42
- process(_context?: ProcessingContext): Promise<Record<string, unknown>>;
43
- /**
44
- * Convert this node's properties to an AgentIdentity for the TeamExecutor.
45
- */
46
- toIdentity(): AgentIdentity;
47
- }
48
- /**
49
- * Orchestrates a team of agents working together on an objective.
50
- *
51
- * Agents are connected below via control edges — no AgentPool needed.
52
- * TeamLead discovers agents from its outgoing control edges at runtime.
53
- * Tasks are stored in the database, provided via processing context.
54
- */
55
- export declare class TeamLeadNode extends BaseNode {
56
- static readonly nodeType = "nodetool.team.TeamLead";
57
- static readonly title = "Team Lead";
58
- static readonly description = "Orchestrate a team of AI agents connected via control edges. Tasks are persisted in the database.\n multi-agent, team, collaboration, orchestration, lead";
59
- static readonly metadataOutputTypes: {
60
- result: string;
61
- board: string;
62
- messages: string;
63
- events: string;
64
- };
65
- static readonly basicFields: string[];
66
- objective: any;
67
- strategy: any;
68
- max_iterations: any;
69
- max_concurrency: any;
70
- genProcess(context?: ProcessingContext): AsyncGenerator<Record<string, unknown>>;
71
- process(context?: ProcessingContext): Promise<Record<string, unknown>>;
72
- }
73
- export declare const TEAM_NODES: readonly [typeof TeamAgentNode, typeof TeamLeadNode];
74
- //# sourceMappingURL=team.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/nodes/team.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAQ,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAIL,KAAK,aAAa,EAMnB,MAAM,qBAAqB,CAAC;AAK7B;;;;;;GAMG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IACzC,MAAM,CAAC,QAAQ,CAAC,QAAQ,yBAAyB;IACjD,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;IAChC,MAAM,CAAC,QAAQ,CAAC,WAAW,uHAC2F;IACtH,MAAM,CAAC,QAAQ,CAAC,YAAY,QAAQ;IACpC,MAAM,CAAC,QAAQ,CAAC,mBAAmB;;MAEjC;IACF,MAAM,CAAC,QAAQ,CAAC,WAAW,WAAyC;IAQ5D,IAAI,EAAE,GAAG,CAAC;IASV,IAAI,EAAE,GAAG,CAAC;IASV,MAAM,EAAE,GAAG,CAAC;IAQZ,QAAQ,EAAE,GAAG,CAAC;IAQd,KAAK,EAAE,GAAG,CAAC;IAQX,KAAK,EAAE,GAAG,CAAC;IAEnB;;;OAGG;IACG,OAAO,CACX,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAoBnC;;OAEG;IACH,UAAU,IAAI,aAAa;CAW5B;AAID;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,QAAQ;IACxC,MAAM,CAAC,QAAQ,CAAC,QAAQ,4BAA4B;IACpD,MAAM,CAAC,QAAQ,CAAC,KAAK,eAAe;IACpC,MAAM,CAAC,QAAQ,CAAC,WAAW,kKACsI;IACjK,MAAM,CAAC,QAAQ,CAAC,mBAAmB;;;;;MAKjC;IACF,MAAM,CAAC,QAAQ,CAAC,WAAW,WAA6B;IAQhD,SAAS,EAAE,GAAG,CAAC;IASf,QAAQ,EAAE,GAAG,CAAC;IAUd,cAAc,EAAE,GAAG,CAAC;IAUpB,eAAe,EAAE,GAAG,CAAC;IAEtB,UAAU,CACf,OAAO,CAAC,EAAE,iBAAiB,GAC1B,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA6IpC,OAAO,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAO7E;AAED,eAAO,MAAM,UAAU,sDAAyC,CAAC"}
@@ -1,309 +0,0 @@
1
- /**
2
- * Multi-Agent Team Nodes — TeamLead orchestrates Agent nodes via control edges.
3
- *
4
- * Architecture:
5
- * - TeamLeadNode: orchestrates agents, manages tasks (persisted in DB),
6
- * sends control events to connected Agent nodes (like tool calls).
7
- * - AgentNode: individual agent, connected below TeamLead via control edges.
8
- * Receives work assignments as control events, executes, returns results.
9
- *
10
- * Tasks are always stored in the database (team_tasks table) and provided
11
- * via processing context. Tasks have dependencies and belong to a team.
12
- */
13
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
14
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16
- 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;
17
- return c > 3 && r && Object.defineProperty(target, key, r), r;
18
- };
19
- import { BaseNode, prop } from "@nodetool-ai/node-sdk";
20
- import { TeamExecutor, DbTaskBoard, EdgeMessageBus } from "@nodetool-ai/agents";
21
- import { resolveBuiltinAgentTool } from "./agent-tool-hydration.js";
22
- // ─── AgentNode ───
23
- /**
24
- * Individual agent node — a controlled node that receives work from TeamLead.
25
- *
26
- * Connect below a TeamLeadNode via a control edge. The TeamLead sends
27
- * control events (like tool calls) to assign work. The agent processes
28
- * the assignment and returns results.
29
- */
30
- export class TeamAgentNode extends BaseNode {
31
- static nodeType = "nodetool.team.Agent";
32
- static title = "Agent";
33
- static description = "An individual AI agent that receives work from a TeamLead via control edges.\n agent, team, controlled, worker";
34
- static isControlled = true;
35
- static metadataOutputTypes = {
36
- result: "str"
37
- };
38
- static basicFields = ["name", "role", "provider", "model"];
39
- /**
40
- * Called by the kernel for each control event from TeamLead.
41
- * The control event properties are merged onto `this` via assign().
42
- */
43
- async process(_context) {
44
- // The actual LLM work is done by TeamExecutor — this node acts as
45
- // a proxy identity. When TeamLead sends a control event, the agent's
46
- // process() receives the event properties (task assignment, messages, etc.)
47
- // and returns the result.
48
- //
49
- // The control event contains:
50
- // __agent_work__: true — work assignment from TeamLead
51
- // task: { id, title, description, ... } — the task to work on
52
- // response: string — the agent's computed response (set by TeamExecutor)
53
- //
54
- // For message routing:
55
- // __agent_message__: true — inter-agent message
56
- // message: AgentMessage
57
- const result = this.__agent_response__ ?? this.response ?? "";
58
- return { result: String(result) };
59
- }
60
- /**
61
- * Convert this node's properties to an AgentIdentity for the TeamExecutor.
62
- */
63
- toIdentity() {
64
- return {
65
- id: this.__node_id || String(this.name || "agent"),
66
- name: String(this.name || "Agent"),
67
- role: String(this.role || "General purpose assistant"),
68
- skills: Array.isArray(this.skills) ? this.skills.map(String) : [],
69
- provider: String(this.provider || "anthropic"),
70
- model: String(this.model || "claude-sonnet-4-20250514"),
71
- tools: Array.isArray(this.tools) ? this.tools.map(String) : []
72
- };
73
- }
74
- }
75
- __decorate([
76
- prop({
77
- type: "str",
78
- default: "",
79
- title: "Name",
80
- description: "Agent name, e.g. 'researcher', 'writer'"
81
- })
82
- ], TeamAgentNode.prototype, "name", void 0);
83
- __decorate([
84
- prop({
85
- type: "str",
86
- default: "General purpose assistant",
87
- title: "Role",
88
- description: "Freeform role description injected into the agent's system prompt"
89
- })
90
- ], TeamAgentNode.prototype, "role", void 0);
91
- __decorate([
92
- prop({
93
- type: "list",
94
- default: [],
95
- title: "Skills",
96
- description: "Skill tags for task matching, e.g. ['web_search', 'code_generation']"
97
- })
98
- ], TeamAgentNode.prototype, "skills", void 0);
99
- __decorate([
100
- prop({
101
- type: "str",
102
- default: "anthropic",
103
- title: "Provider",
104
- description: "LLM provider key"
105
- })
106
- ], TeamAgentNode.prototype, "provider", void 0);
107
- __decorate([
108
- prop({
109
- type: "str",
110
- default: "claude-sonnet-4-20250514",
111
- title: "Model",
112
- description: "Model identifier"
113
- })
114
- ], TeamAgentNode.prototype, "model", void 0);
115
- __decorate([
116
- prop({
117
- type: "list",
118
- default: [],
119
- title: "Tools",
120
- description: "Additional tool names this agent can use (beyond team tools)"
121
- })
122
- ], TeamAgentNode.prototype, "tools", void 0);
123
- // ─── TeamLeadNode ───
124
- /**
125
- * Orchestrates a team of agents working together on an objective.
126
- *
127
- * Agents are connected below via control edges — no AgentPool needed.
128
- * TeamLead discovers agents from its outgoing control edges at runtime.
129
- * Tasks are stored in the database, provided via processing context.
130
- */
131
- export class TeamLeadNode extends BaseNode {
132
- static nodeType = "nodetool.team.TeamLead";
133
- static title = "Team Lead";
134
- static description = "Orchestrate a team of AI agents connected via control edges. Tasks are persisted in the database.\n multi-agent, team, collaboration, orchestration, lead";
135
- static metadataOutputTypes = {
136
- result: "json",
137
- board: "json",
138
- messages: "list",
139
- events: "list"
140
- };
141
- static basicFields = ["objective", "strategy"];
142
- async *genProcess(context) {
143
- const objective = String(this.objective ?? "");
144
- if (!objective)
145
- throw new Error("Objective is required");
146
- if (!context)
147
- throw new Error("Processing context is required");
148
- // Discover agents from _control_context (injected by kernel).
149
- // The kernel resolves outgoing control edges and provides metadata
150
- // about each controlled node — including their properties.
151
- // Fallback: agents can be provided directly for programmatic use.
152
- const agents = [];
153
- const controlContext = this.getDynamic("_control_context");
154
- if (controlContext) {
155
- // Extract agent identities from controlled Agent nodes
156
- for (const [nodeId, meta] of Object.entries(controlContext)) {
157
- if (typeof meta !== "object" || !meta)
158
- continue;
159
- const nodeType = String(meta.node_type ?? "");
160
- // Only pick up Agent nodes (not arbitrary controlled nodes)
161
- if (nodeType !== "nodetool.team.Agent")
162
- continue;
163
- const props = meta.properties;
164
- const getProp = (name) => props?.[name]?.value;
165
- agents.push({
166
- id: nodeId,
167
- name: String(getProp("name") ?? meta.node_title ?? nodeId),
168
- role: String(getProp("role") ?? "General purpose assistant"),
169
- skills: Array.isArray(getProp("skills"))
170
- ? getProp("skills").map(String)
171
- : [],
172
- provider: String(getProp("provider") ?? "anthropic"),
173
- model: String(getProp("model") ?? "claude-sonnet-4-20250514"),
174
- tools: Array.isArray(getProp("tools"))
175
- ? getProp("tools").map(String)
176
- : []
177
- });
178
- }
179
- }
180
- // Fallback: agents provided inline (programmatic use without kernel)
181
- if (agents.length === 0) {
182
- const rawAgents = this.getDynamic("agents") ?? [];
183
- for (const a of rawAgents) {
184
- agents.push({
185
- id: String(a.id ?? a.name ?? `agent_${agents.length}`),
186
- name: String(a.name ?? `Agent ${agents.length}`),
187
- role: String(a.role ?? "General purpose assistant"),
188
- skills: Array.isArray(a.skills) ? a.skills.map(String) : [],
189
- provider: String(a.provider ?? "anthropic"),
190
- model: String(a.model ?? "claude-sonnet-4-20250514"),
191
- tools: Array.isArray(a.tools) ? a.tools.map(String) : []
192
- });
193
- }
194
- }
195
- if (agents.length === 0) {
196
- throw new Error("No agents found. Connect Agent nodes below this TeamLead via control edges.");
197
- }
198
- const strategy = String(this.strategy ?? "coordinator");
199
- const maxIterations = Number(this.max_iterations ?? 50);
200
- const maxConcurrency = Number(this.max_concurrency ?? 3);
201
- // Task board: always DB-backed, keyed by this node's ID as team_id.
202
- const teamId = this.__node_id || "default_team";
203
- const taskBoard = new DbTaskBoard(teamId);
204
- // Message bus: edge-native when in workflow, in-memory otherwise
205
- const messageBus = context.hasControlEventSupport
206
- ? new EdgeMessageBus(context)
207
- : undefined;
208
- const config = {
209
- objective,
210
- agents,
211
- strategy,
212
- maxIterations,
213
- maxConcurrency
214
- };
215
- const sharedTools = Array.from(new Set(agents.flatMap((agent) => agent.tools)))
216
- .map((name) => resolveBuiltinAgentTool(name))
217
- .filter((tool) => tool !== null);
218
- const executor = new TeamExecutor({
219
- config,
220
- context,
221
- taskBoard,
222
- messageBus,
223
- sharedTools
224
- });
225
- const allEvents = [];
226
- // Stream events as the team works
227
- for await (const event of executor.execute()) {
228
- allEvents.push(event);
229
- if (event.type === "chunk") {
230
- yield {
231
- text: event.content,
232
- chunk: { type: "chunk", content: event.content, done: false }
233
- };
234
- }
235
- else if (event.type === "task_completed") {
236
- yield {
237
- text: `Task completed: ${event.taskId}`,
238
- chunk: {
239
- type: "chunk",
240
- content: `\n[Task ${event.taskId} completed]\n`,
241
- done: false
242
- }
243
- };
244
- }
245
- else if (event.type === "message_sent") {
246
- yield {
247
- text: `${event.message.from} → ${event.message.to}: ${event.message.subject}`,
248
- chunk: {
249
- type: "chunk",
250
- content: `\n[${event.message.from} → ${event.message.to}: ${event.message.subject}]\n`,
251
- done: false
252
- }
253
- };
254
- }
255
- }
256
- // Final output
257
- yield {
258
- result: executor.getResult(),
259
- board: executor.taskBoard.getSnapshot(),
260
- messages: executor.messageBus.getHistory(),
261
- events: allEvents
262
- };
263
- }
264
- async process(context) {
265
- let lastOutput = {};
266
- for await (const item of this.genProcess(context)) {
267
- lastOutput = item;
268
- }
269
- return lastOutput;
270
- }
271
- }
272
- __decorate([
273
- prop({
274
- type: "str",
275
- default: "",
276
- title: "Objective",
277
- description: "The team's objective — what they should accomplish together"
278
- })
279
- ], TeamLeadNode.prototype, "objective", void 0);
280
- __decorate([
281
- prop({
282
- type: "str",
283
- default: "coordinator",
284
- title: "Strategy",
285
- description: "Team strategy: coordinator (lead decomposes work), autonomous (self-organizing), hybrid (lead + autonomous subtasks)"
286
- })
287
- ], TeamLeadNode.prototype, "strategy", void 0);
288
- __decorate([
289
- prop({
290
- type: "int",
291
- default: 50,
292
- title: "Max Iterations",
293
- description: "Maximum total LLM calls across all agents",
294
- min: 1,
295
- max: 200
296
- })
297
- ], TeamLeadNode.prototype, "max_iterations", void 0);
298
- __decorate([
299
- prop({
300
- type: "int",
301
- default: 3,
302
- title: "Max Concurrency",
303
- description: "Maximum number of agents running simultaneously",
304
- min: 1,
305
- max: 10
306
- })
307
- ], TeamLeadNode.prototype, "max_concurrency", void 0);
308
- export const TEAM_NODES = [TeamAgentNode, TeamLeadNode];
309
- //# sourceMappingURL=team.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/nodes/team.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;;;;;;;AAEH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EAOf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,oBAAoB;AAEpB;;;;;;GAMG;AACH,MAAM,OAAO,aAAc,SAAQ,QAAQ;IACzC,MAAM,CAAU,QAAQ,GAAG,qBAAqB,CAAC;IACjD,MAAM,CAAU,KAAK,GAAG,OAAO,CAAC;IAChC,MAAM,CAAU,WAAW,GACzB,mHAAmH,CAAC;IACtH,MAAM,CAAU,YAAY,GAAG,IAAI,CAAC;IACpC,MAAM,CAAU,mBAAmB,GAAG;QACpC,MAAM,EAAE,KAAK;KACd,CAAC;IACF,MAAM,CAAU,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAoDpE;;;OAGG;IACH,KAAK,CAAC,OAAO,CACX,QAA4B;QAE5B,kEAAkE;QAClE,qEAAqE;QACrE,4EAA4E;QAC5E,0BAA0B;QAC1B,EAAE;QACF,8BAA8B;QAC9B,yDAAyD;QACzD,gEAAgE;QAChE,2EAA2E;QAC3E,EAAE;QACF,uBAAuB;QACvB,kDAAkD;QAClD,0BAA0B;QAE1B,MAAM,MAAM,GACT,IAAY,CAAC,kBAAkB,IAAK,IAAY,CAAC,QAAQ,IAAI,EAAE,CAAC;QACnE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;YAClD,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;YAClC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,2BAA2B,CAAC;YACtD,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YACjE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC;YAC9C,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,0BAA0B,CAAC;YACvD,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;SAC/D,CAAC;IACJ,CAAC;;AAnFO;IANP,IAAI,CAAC;QACJ,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,yCAAyC;KACvD,CAAC;2CACgB;AASV;IAPP,IAAI,CAAC;QACJ,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,2BAA2B;QACpC,KAAK,EAAE,MAAM;QACb,WAAW,EACT,mEAAmE;KACtE,CAAC;2CACgB;AASV;IAPP,IAAI,CAAC;QACJ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,QAAQ;QACf,WAAW,EACT,sEAAsE;KACzE,CAAC;6CACkB;AAQZ;IANP,IAAI,CAAC;QACJ,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,kBAAkB;KAChC,CAAC;+CACoB;AAQd;IANP,IAAI,CAAC;QACJ,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,0BAA0B;QACnC,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,kBAAkB;KAChC,CAAC;4CACiB;AAQX;IANP,IAAI,CAAC;QACJ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,8DAA8D;KAC5E,CAAC;4CACiB;AA4CrB,uBAAuB;AAEvB;;;;;;GAMG;AACH,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC,MAAM,CAAU,QAAQ,GAAG,wBAAwB,CAAC;IACpD,MAAM,CAAU,KAAK,GAAG,WAAW,CAAC;IACpC,MAAM,CAAU,WAAW,GACzB,8JAA8J,CAAC;IACjK,MAAM,CAAU,mBAAmB,GAAG;QACpC,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,MAAM;KACf,CAAC;IACF,MAAM,CAAU,WAAW,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAuCxD,KAAK,CAAC,CAAC,UAAU,CACf,OAA2B;QAE3B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAEhE,8DAA8D;QAC9D,mEAAmE;QACnE,2DAA2D;QAC3D,kEAAkE;QAClE,MAAM,MAAM,GAAoB,EAAE,CAAC;QACnC,MAAM,cAAc,GAClB,IAAI,CAAC,UAAU,CACb,kBAAkB,CACnB,CAAC;QAEJ,IAAI,cAAc,EAAE,CAAC;YACnB,uDAAuD;YACvD,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI;oBAAE,SAAS;gBAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;gBAC9C,4DAA4D;gBAC5D,IAAI,QAAQ,KAAK,qBAAqB;oBAAE,SAAS;gBACjD,MAAM,KAAK,GAAG,IAAI,CAAC,UAEN,CAAC;gBACd,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE,EAAE,MAAM;oBACV,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC;oBAC1D,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,2BAA2B,CAAC;oBAC5D,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;wBACtC,CAAC,CAAE,OAAO,CAAC,QAAQ,CAAe,CAAC,GAAG,CAAC,MAAM,CAAC;wBAC9C,CAAC,CAAC,EAAE;oBACN,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,WAAW,CAAC;oBACpD,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,0BAA0B,CAAC;oBAC7D,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBACpC,CAAC,CAAE,OAAO,CAAC,OAAO,CAAe,CAAC,GAAG,CAAC,MAAM,CAAC;wBAC7C,CAAC,CAAC,EAAE;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,SAAS,GACb,IAAI,CAAC,UAAU,CAAiC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClE,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC;oBACtD,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChD,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,2BAA2B,CAAC;oBACnD,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC3D,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,WAAW,CAAC;oBAC3C,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,0BAA0B,CAAC;oBACpD,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;iBACzD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAiB,CAAC;QACxE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;QAEzD,oEAAoE;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC;QAChD,MAAM,SAAS,GAAe,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QAEtD,iEAAiE;QACjE,MAAM,UAAU,GAAG,OAAO,CAAC,sBAAsB;YAC/C,CAAC,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC;YAC7B,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,MAAM,GAAe;YACzB,SAAS;YACT,MAAM;YACN,QAAQ;YACR,aAAa;YACb,cAAc;SACf,CAAC;QAEF,MAAM,WAAW,GAAW,KAAK,CAAC,IAAI,CACpC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAChD;aACE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;aAC5C,MAAM,CAAC,CAAC,IAAI,EAAgB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAEjD,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC;YAChC,MAAM;YACN,OAAO;YACP,SAAS;YACT,UAAU;YACV,WAAW;SACZ,CAAC,CAAC;QAEH,MAAM,SAAS,GAAgB,EAAE,CAAC;QAElC,kCAAkC;QAClC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7C,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEtB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3B,MAAM;oBACJ,IAAI,EAAE,KAAK,CAAC,OAAO;oBACnB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;iBAC9D,CAAC;YACJ,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC3C,MAAM;oBACJ,IAAI,EAAE,mBAAmB,KAAK,CAAC,MAAM,EAAE;oBACvC,KAAK,EAAE;wBACL,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,WAAW,KAAK,CAAC,MAAM,eAAe;wBAC/C,IAAI,EAAE,KAAK;qBACZ;iBACF,CAAC;YACJ,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACzC,MAAM;oBACJ,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;oBAC7E,KAAK,EAAE;wBACL,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK;wBACtF,IAAI,EAAE,KAAK;qBACZ;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,eAAe;QACf,MAAM;YACJ,MAAM,EAAE,QAAQ,CAAC,SAAS,EAAE;YAC5B,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE;YACvC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE;YAC1C,MAAM,EAAE,SAAS;SAClB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA2B;QACvC,IAAI,UAAU,GAA4B,EAAE,CAAC;QAC7C,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;;AApLO;IANP,IAAI,CAAC;QACJ,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,6DAA6D;KAC3E,CAAC;+CACqB;AASf;IAPP,IAAI,CAAC;QACJ,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,aAAa;QACtB,KAAK,EAAE,UAAU;QACjB,WAAW,EACT,sHAAsH;KACzH,CAAC;8CACoB;AAUd;IARP,IAAI,CAAC;QACJ,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,2CAA2C;QACxD,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,GAAG;KACT,CAAC;oDAC0B;AAUpB;IARP,IAAI,CAAC;QACJ,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,iDAAiD;QAC9D,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,EAAE;KACR,CAAC;qDAC2B;AA0J/B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,aAAa,EAAE,YAAY,CAAU,CAAC"}