@nodetool-ai/base-nodes 0.7.0-rc.23 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/README.md +21 -0
  2. package/dist/.nodetool-build-stamp +1 -0
  3. package/dist/builtin-packs.d.ts +17 -0
  4. package/dist/builtin-packs.d.ts.map +1 -0
  5. package/dist/builtin-packs.js +95 -0
  6. package/dist/builtin-packs.js.map +1 -0
  7. package/dist/index.d.ts +63 -67
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +186 -173
  10. package/dist/index.js.map +1 -1
  11. package/dist/platforms/browser.d.ts +19 -0
  12. package/dist/platforms/browser.d.ts.map +1 -0
  13. package/dist/platforms/browser.js +29 -0
  14. package/dist/platforms/browser.js.map +1 -0
  15. package/package.json +72 -65
  16. package/dist/lib/audio-wav.d.ts +0 -66
  17. package/dist/lib/audio-wav.d.ts.map +0 -1
  18. package/dist/lib/audio-wav.js +0 -215
  19. package/dist/lib/audio-wav.js.map +0 -1
  20. package/dist/nodes/agent-tool-hydration.d.ts +0 -10
  21. package/dist/nodes/agent-tool-hydration.d.ts.map +0 -1
  22. package/dist/nodes/agent-tool-hydration.js +0 -43
  23. package/dist/nodes/agent-tool-hydration.js.map +0 -1
  24. package/dist/nodes/agents.d.ts +0 -262
  25. package/dist/nodes/agents.d.ts.map +0 -1
  26. package/dist/nodes/agents.js +0 -2856
  27. package/dist/nodes/agents.js.map +0 -1
  28. package/dist/nodes/anthropic.d.ts +0 -26
  29. package/dist/nodes/anthropic.d.ts.map +0 -1
  30. package/dist/nodes/anthropic.js +0 -133
  31. package/dist/nodes/anthropic.js.map +0 -1
  32. package/dist/nodes/apify.d.ts +0 -120
  33. package/dist/nodes/apify.d.ts.map +0 -1
  34. package/dist/nodes/apify.js +0 -618
  35. package/dist/nodes/apify.js.map +0 -1
  36. package/dist/nodes/audio.d.ts +0 -301
  37. package/dist/nodes/audio.d.ts.map +0 -1
  38. package/dist/nodes/audio.js +0 -1274
  39. package/dist/nodes/audio.js.map +0 -1
  40. package/dist/nodes/code-node.d.ts +0 -34
  41. package/dist/nodes/code-node.d.ts.map +0 -1
  42. package/dist/nodes/code-node.js +0 -343
  43. package/dist/nodes/code-node.js.map +0 -1
  44. package/dist/nodes/code.d.ts +0 -301
  45. package/dist/nodes/code.d.ts.map +0 -1
  46. package/dist/nodes/code.js +0 -850
  47. package/dist/nodes/code.js.map +0 -1
  48. package/dist/nodes/compare.d.ts +0 -18
  49. package/dist/nodes/compare.d.ts.map +0 -1
  50. package/dist/nodes/compare.js +0 -122
  51. package/dist/nodes/compare.js.map +0 -1
  52. package/dist/nodes/constant.d.ts +0 -315
  53. package/dist/nodes/constant.d.ts.map +0 -1
  54. package/dist/nodes/constant.js +0 -715
  55. package/dist/nodes/constant.js.map +0 -1
  56. package/dist/nodes/control.d.ts +0 -83
  57. package/dist/nodes/control.d.ts.map +0 -1
  58. package/dist/nodes/control.js +0 -212
  59. package/dist/nodes/control.js.map +0 -1
  60. package/dist/nodes/data.d.ts +0 -369
  61. package/dist/nodes/data.d.ts.map +0 -1
  62. package/dist/nodes/data.js +0 -1590
  63. package/dist/nodes/data.js.map +0 -1
  64. package/dist/nodes/document.d.ts +0 -134
  65. package/dist/nodes/document.d.ts.map +0 -1
  66. package/dist/nodes/document.js +0 -984
  67. package/dist/nodes/document.js.map +0 -1
  68. package/dist/nodes/extended-placeholders.d.ts +0 -6
  69. package/dist/nodes/extended-placeholders.d.ts.map +0 -1
  70. package/dist/nodes/extended-placeholders.js +0 -19
  71. package/dist/nodes/extended-placeholders.js.map +0 -1
  72. package/dist/nodes/gemini.d.ts +0 -110
  73. package/dist/nodes/gemini.d.ts.map +0 -1
  74. package/dist/nodes/gemini.js +0 -871
  75. package/dist/nodes/gemini.js.map +0 -1
  76. package/dist/nodes/generators.d.ts +0 -84
  77. package/dist/nodes/generators.d.ts.map +0 -1
  78. package/dist/nodes/generators.js +0 -968
  79. package/dist/nodes/generators.js.map +0 -1
  80. package/dist/nodes/image.d.ts +0 -232
  81. package/dist/nodes/image.d.ts.map +0 -1
  82. package/dist/nodes/image.js +0 -1395
  83. package/dist/nodes/image.js.map +0 -1
  84. package/dist/nodes/input.d.ts +0 -445
  85. package/dist/nodes/input.d.ts.map +0 -1
  86. package/dist/nodes/input.js +0 -1459
  87. package/dist/nodes/input.js.map +0 -1
  88. package/dist/nodes/kie-dynamic.d.ts +0 -31
  89. package/dist/nodes/kie-dynamic.d.ts.map +0 -1
  90. package/dist/nodes/kie-dynamic.js +0 -270
  91. package/dist/nodes/kie-dynamic.js.map +0 -1
  92. package/dist/nodes/lib-audio-dsp.d.ts +0 -85
  93. package/dist/nodes/lib-audio-dsp.d.ts.map +0 -1
  94. package/dist/nodes/lib-audio-dsp.js +0 -450
  95. package/dist/nodes/lib-audio-dsp.js.map +0 -1
  96. package/dist/nodes/lib-audio-effects.d.ts +0 -116
  97. package/dist/nodes/lib-audio-effects.d.ts.map +0 -1
  98. package/dist/nodes/lib-audio-effects.js +0 -905
  99. package/dist/nodes/lib-audio-effects.js.map +0 -1
  100. package/dist/nodes/lib-browser.d.ts +0 -99
  101. package/dist/nodes/lib-browser.d.ts.map +0 -1
  102. package/dist/nodes/lib-browser.js +0 -692
  103. package/dist/nodes/lib-browser.js.map +0 -1
  104. package/dist/nodes/lib-charts.d.ts +0 -20
  105. package/dist/nodes/lib-charts.d.ts.map +0 -1
  106. package/dist/nodes/lib-charts.js +0 -245
  107. package/dist/nodes/lib-charts.js.map +0 -1
  108. package/dist/nodes/lib-datetime.d.ts +0 -108
  109. package/dist/nodes/lib-datetime.d.ts.map +0 -1
  110. package/dist/nodes/lib-datetime.js +0 -421
  111. package/dist/nodes/lib-datetime.js.map +0 -1
  112. package/dist/nodes/lib-doc-convert.d.ts +0 -19
  113. package/dist/nodes/lib-doc-convert.d.ts.map +0 -1
  114. package/dist/nodes/lib-doc-convert.js +0 -257
  115. package/dist/nodes/lib-doc-convert.js.map +0 -1
  116. package/dist/nodes/lib-doc-transform.d.ts +0 -39
  117. package/dist/nodes/lib-doc-transform.d.ts.map +0 -1
  118. package/dist/nodes/lib-doc-transform.js +0 -335
  119. package/dist/nodes/lib-doc-transform.js.map +0 -1
  120. package/dist/nodes/lib-docx.d.ts +0 -106
  121. package/dist/nodes/lib-docx.d.ts.map +0 -1
  122. package/dist/nodes/lib-docx.js +0 -595
  123. package/dist/nodes/lib-docx.js.map +0 -1
  124. package/dist/nodes/lib-epub.d.ts +0 -55
  125. package/dist/nodes/lib-epub.d.ts.map +0 -1
  126. package/dist/nodes/lib-epub.js +0 -220
  127. package/dist/nodes/lib-epub.js.map +0 -1
  128. package/dist/nodes/lib-excel.d.ts +0 -74
  129. package/dist/nodes/lib-excel.d.ts.map +0 -1
  130. package/dist/nodes/lib-excel.js +0 -448
  131. package/dist/nodes/lib-excel.js.map +0 -1
  132. package/dist/nodes/lib-graphql.d.ts +0 -66
  133. package/dist/nodes/lib-graphql.d.ts.map +0 -1
  134. package/dist/nodes/lib-graphql.js +0 -333
  135. package/dist/nodes/lib-graphql.js.map +0 -1
  136. package/dist/nodes/lib-grid.d.ts +0 -27
  137. package/dist/nodes/lib-grid.d.ts.map +0 -1
  138. package/dist/nodes/lib-grid.js +0 -172
  139. package/dist/nodes/lib-grid.js.map +0 -1
  140. package/dist/nodes/lib-html-parse.d.ts +0 -108
  141. package/dist/nodes/lib-html-parse.d.ts.map +0 -1
  142. package/dist/nodes/lib-html-parse.js +0 -365
  143. package/dist/nodes/lib-html-parse.js.map +0 -1
  144. package/dist/nodes/lib-http.d.ts +0 -98
  145. package/dist/nodes/lib-http.d.ts.map +0 -1
  146. package/dist/nodes/lib-http.js +0 -267
  147. package/dist/nodes/lib-http.js.map +0 -1
  148. package/dist/nodes/lib-image-color-grading.d.ts +0 -3
  149. package/dist/nodes/lib-image-color-grading.d.ts.map +0 -1
  150. package/dist/nodes/lib-image-color-grading.js +0 -1386
  151. package/dist/nodes/lib-image-color-grading.js.map +0 -1
  152. package/dist/nodes/lib-image-draw.d.ts +0 -3
  153. package/dist/nodes/lib-image-draw.d.ts.map +0 -1
  154. package/dist/nodes/lib-image-draw.js +0 -470
  155. package/dist/nodes/lib-image-draw.js.map +0 -1
  156. package/dist/nodes/lib-image-enhance.d.ts +0 -3
  157. package/dist/nodes/lib-image-enhance.d.ts.map +0 -1
  158. package/dist/nodes/lib-image-enhance.js +0 -731
  159. package/dist/nodes/lib-image-enhance.js.map +0 -1
  160. package/dist/nodes/lib-image-filter.d.ts +0 -3
  161. package/dist/nodes/lib-image-filter.d.ts.map +0 -1
  162. package/dist/nodes/lib-image-filter.js +0 -684
  163. package/dist/nodes/lib-image-filter.js.map +0 -1
  164. package/dist/nodes/lib-image-utils.d.ts +0 -24
  165. package/dist/nodes/lib-image-utils.d.ts.map +0 -1
  166. package/dist/nodes/lib-image-utils.js +0 -150
  167. package/dist/nodes/lib-image-utils.js.map +0 -1
  168. package/dist/nodes/lib-mail.d.ts +0 -74
  169. package/dist/nodes/lib-mail.d.ts.map +0 -1
  170. package/dist/nodes/lib-mail.js +0 -452
  171. package/dist/nodes/lib-mail.js.map +0 -1
  172. package/dist/nodes/lib-markdown.d.ts +0 -70
  173. package/dist/nodes/lib-markdown.d.ts.map +0 -1
  174. package/dist/nodes/lib-markdown.js +0 -236
  175. package/dist/nodes/lib-markdown.js.map +0 -1
  176. package/dist/nodes/lib-nlp.d.ts +0 -98
  177. package/dist/nodes/lib-nlp.d.ts.map +0 -1
  178. package/dist/nodes/lib-nlp.js +0 -374
  179. package/dist/nodes/lib-nlp.js.map +0 -1
  180. package/dist/nodes/lib-notion.d.ts +0 -99
  181. package/dist/nodes/lib-notion.d.ts.map +0 -1
  182. package/dist/nodes/lib-notion.js +0 -601
  183. package/dist/nodes/lib-notion.js.map +0 -1
  184. package/dist/nodes/lib-ocr.d.ts +0 -31
  185. package/dist/nodes/lib-ocr.d.ts.map +0 -1
  186. package/dist/nodes/lib-ocr.js +0 -143
  187. package/dist/nodes/lib-ocr.js.map +0 -1
  188. package/dist/nodes/lib-os.d.ts +0 -312
  189. package/dist/nodes/lib-os.d.ts.map +0 -1
  190. package/dist/nodes/lib-os.js +0 -909
  191. package/dist/nodes/lib-os.js.map +0 -1
  192. package/dist/nodes/lib-pdf.d.ts +0 -142
  193. package/dist/nodes/lib-pdf.d.ts.map +0 -1
  194. package/dist/nodes/lib-pdf.js +0 -871
  195. package/dist/nodes/lib-pdf.js.map +0 -1
  196. package/dist/nodes/lib-pptx.d.ts +0 -29
  197. package/dist/nodes/lib-pptx.d.ts.map +0 -1
  198. package/dist/nodes/lib-pptx.js +0 -122
  199. package/dist/nodes/lib-pptx.js.map +0 -1
  200. package/dist/nodes/lib-rss.d.ts +0 -31
  201. package/dist/nodes/lib-rss.d.ts.map +0 -1
  202. package/dist/nodes/lib-rss.js +0 -163
  203. package/dist/nodes/lib-rss.js.map +0 -1
  204. package/dist/nodes/lib-s3.d.ts +0 -112
  205. package/dist/nodes/lib-s3.d.ts.map +0 -1
  206. package/dist/nodes/lib-s3.js +0 -521
  207. package/dist/nodes/lib-s3.js.map +0 -1
  208. package/dist/nodes/lib-secret.d.ts +0 -15
  209. package/dist/nodes/lib-secret.d.ts.map +0 -1
  210. package/dist/nodes/lib-secret.js +0 -42
  211. package/dist/nodes/lib-secret.js.map +0 -1
  212. package/dist/nodes/lib-sqlite.d.ts +0 -102
  213. package/dist/nodes/lib-sqlite.d.ts.map +0 -1
  214. package/dist/nodes/lib-sqlite.js +0 -532
  215. package/dist/nodes/lib-sqlite.js.map +0 -1
  216. package/dist/nodes/lib-supabase.d.ts +0 -86
  217. package/dist/nodes/lib-supabase.d.ts.map +0 -1
  218. package/dist/nodes/lib-supabase.js +0 -425
  219. package/dist/nodes/lib-supabase.js.map +0 -1
  220. package/dist/nodes/lib-svg.d.ts +0 -199
  221. package/dist/nodes/lib-svg.d.ts.map +0 -1
  222. package/dist/nodes/lib-svg.js +0 -1027
  223. package/dist/nodes/lib-svg.js.map +0 -1
  224. package/dist/nodes/lib-tensorflow.d.ts +0 -71
  225. package/dist/nodes/lib-tensorflow.d.ts.map +0 -1
  226. package/dist/nodes/lib-tensorflow.js +0 -351
  227. package/dist/nodes/lib-tensorflow.js.map +0 -1
  228. package/dist/nodes/lib-twilio.d.ts +0 -71
  229. package/dist/nodes/lib-twilio.d.ts.map +0 -1
  230. package/dist/nodes/lib-twilio.js +0 -469
  231. package/dist/nodes/lib-twilio.js.map +0 -1
  232. package/dist/nodes/lib-validate.d.ts +0 -84
  233. package/dist/nodes/lib-validate.d.ts.map +0 -1
  234. package/dist/nodes/lib-validate.js +0 -215
  235. package/dist/nodes/lib-validate.js.map +0 -1
  236. package/dist/nodes/lib-video-download.d.ts +0 -26
  237. package/dist/nodes/lib-video-download.d.ts.map +0 -1
  238. package/dist/nodes/lib-video-download.js +0 -299
  239. package/dist/nodes/lib-video-download.js.map +0 -1
  240. package/dist/nodes/messaging.d.ts +0 -88
  241. package/dist/nodes/messaging.d.ts.map +0 -1
  242. package/dist/nodes/messaging.js +0 -418
  243. package/dist/nodes/messaging.js.map +0 -1
  244. package/dist/nodes/mistral.d.ts +0 -83
  245. package/dist/nodes/mistral.d.ts.map +0 -1
  246. package/dist/nodes/mistral.js +0 -450
  247. package/dist/nodes/mistral.js.map +0 -1
  248. package/dist/nodes/model3d/analysis.d.ts +0 -13
  249. package/dist/nodes/model3d/analysis.d.ts.map +0 -1
  250. package/dist/nodes/model3d/analysis.js +0 -36
  251. package/dist/nodes/model3d/analysis.js.map +0 -1
  252. package/dist/nodes/model3d/base.d.ts +0 -11
  253. package/dist/nodes/model3d/base.d.ts.map +0 -1
  254. package/dist/nodes/model3d/base.js +0 -20
  255. package/dist/nodes/model3d/base.js.map +0 -1
  256. package/dist/nodes/model3d/boolean-ops.d.ts +0 -2
  257. package/dist/nodes/model3d/boolean-ops.d.ts.map +0 -1
  258. package/dist/nodes/model3d/boolean-ops.js +0 -172
  259. package/dist/nodes/model3d/boolean-ops.js.map +0 -1
  260. package/dist/nodes/model3d/cleanup.d.ts +0 -47
  261. package/dist/nodes/model3d/cleanup.d.ts.map +0 -1
  262. package/dist/nodes/model3d/cleanup.js +0 -136
  263. package/dist/nodes/model3d/cleanup.js.map +0 -1
  264. package/dist/nodes/model3d/convert.d.ts +0 -14
  265. package/dist/nodes/model3d/convert.d.ts.map +0 -1
  266. package/dist/nodes/model3d/convert.js +0 -64
  267. package/dist/nodes/model3d/convert.js.map +0 -1
  268. package/dist/nodes/model3d/defaults.d.ts +0 -34
  269. package/dist/nodes/model3d/defaults.d.ts.map +0 -1
  270. package/dist/nodes/model3d/defaults.js +0 -28
  271. package/dist/nodes/model3d/defaults.js.map +0 -1
  272. package/dist/nodes/model3d/document-ops.d.ts +0 -4
  273. package/dist/nodes/model3d/document-ops.d.ts.map +0 -1
  274. package/dist/nodes/model3d/document-ops.js +0 -40
  275. package/dist/nodes/model3d/document-ops.js.map +0 -1
  276. package/dist/nodes/model3d/generation.d.ts +0 -39
  277. package/dist/nodes/model3d/generation.d.ts.map +0 -1
  278. package/dist/nodes/model3d/generation.js +0 -179
  279. package/dist/nodes/model3d/generation.js.map +0 -1
  280. package/dist/nodes/model3d/glb.d.ts +0 -29
  281. package/dist/nodes/model3d/glb.d.ts.map +0 -1
  282. package/dist/nodes/model3d/glb.js +0 -255
  283. package/dist/nodes/model3d/glb.js.map +0 -1
  284. package/dist/nodes/model3d/index.d.ts +0 -20
  285. package/dist/nodes/model3d/index.d.ts.map +0 -1
  286. package/dist/nodes/model3d/index.js +0 -38
  287. package/dist/nodes/model3d/index.js.map +0 -1
  288. package/dist/nodes/model3d/io.d.ts +0 -38
  289. package/dist/nodes/model3d/io.d.ts.map +0 -1
  290. package/dist/nodes/model3d/io.js +0 -162
  291. package/dist/nodes/model3d/io.js.map +0 -1
  292. package/dist/nodes/model3d/mesh-ops.d.ts +0 -40
  293. package/dist/nodes/model3d/mesh-ops.d.ts.map +0 -1
  294. package/dist/nodes/model3d/mesh-ops.js +0 -775
  295. package/dist/nodes/model3d/mesh-ops.js.map +0 -1
  296. package/dist/nodes/model3d/nodes.d.ts +0 -2
  297. package/dist/nodes/model3d/nodes.d.ts.map +0 -1
  298. package/dist/nodes/model3d/nodes.js +0 -2
  299. package/dist/nodes/model3d/nodes.js.map +0 -1
  300. package/dist/nodes/model3d/ops.d.ts +0 -37
  301. package/dist/nodes/model3d/ops.d.ts.map +0 -1
  302. package/dist/nodes/model3d/ops.js +0 -137
  303. package/dist/nodes/model3d/ops.js.map +0 -1
  304. package/dist/nodes/model3d/transforms.d.ts +0 -49
  305. package/dist/nodes/model3d/transforms.d.ts.map +0 -1
  306. package/dist/nodes/model3d/transforms.js +0 -142
  307. package/dist/nodes/model3d/transforms.js.map +0 -1
  308. package/dist/nodes/model3d/types.d.ts +0 -81
  309. package/dist/nodes/model3d/types.d.ts.map +0 -1
  310. package/dist/nodes/model3d/types.js +0 -2
  311. package/dist/nodes/model3d/types.js.map +0 -1
  312. package/dist/nodes/model3d/utils.d.ts +0 -34
  313. package/dist/nodes/model3d/utils.d.ts.map +0 -1
  314. package/dist/nodes/model3d/utils.js +0 -185
  315. package/dist/nodes/model3d/utils.js.map +0 -1
  316. package/dist/nodes/model3d.d.ts +0 -2
  317. package/dist/nodes/model3d.d.ts.map +0 -1
  318. package/dist/nodes/model3d.js +0 -2
  319. package/dist/nodes/model3d.js.map +0 -1
  320. package/dist/nodes/openai.d.ts +0 -172
  321. package/dist/nodes/openai.d.ts.map +0 -1
  322. package/dist/nodes/openai.js +0 -1294
  323. package/dist/nodes/openai.js.map +0 -1
  324. package/dist/nodes/output.d.ts +0 -29
  325. package/dist/nodes/output.d.ts.map +0 -1
  326. package/dist/nodes/output.js +0 -87
  327. package/dist/nodes/output.js.map +0 -1
  328. package/dist/nodes/sandbox.d.ts +0 -63
  329. package/dist/nodes/sandbox.d.ts.map +0 -1
  330. package/dist/nodes/sandbox.js +0 -633
  331. package/dist/nodes/sandbox.js.map +0 -1
  332. package/dist/nodes/search.d.ts +0 -117
  333. package/dist/nodes/search.d.ts.map +0 -1
  334. package/dist/nodes/search.js +0 -607
  335. package/dist/nodes/search.js.map +0 -1
  336. package/dist/nodes/team.d.ts +0 -74
  337. package/dist/nodes/team.d.ts.map +0 -1
  338. package/dist/nodes/team.js +0 -309
  339. package/dist/nodes/team.js.map +0 -1
  340. package/dist/nodes/text-extra.d.ts +0 -633
  341. package/dist/nodes/text-extra.d.ts.map +0 -1
  342. package/dist/nodes/text-extra.js +0 -2226
  343. package/dist/nodes/text-extra.js.map +0 -1
  344. package/dist/nodes/tool-agents.d.ts +0 -334
  345. package/dist/nodes/tool-agents.d.ts.map +0 -1
  346. package/dist/nodes/tool-agents.js +0 -1861
  347. package/dist/nodes/tool-agents.js.map +0 -1
  348. package/dist/nodes/triggers.d.ts +0 -107
  349. package/dist/nodes/triggers.d.ts.map +0 -1
  350. package/dist/nodes/triggers.js +0 -706
  351. package/dist/nodes/triggers.js.map +0 -1
  352. package/dist/nodes/vector.d.ts +0 -168
  353. package/dist/nodes/vector.d.ts.map +0 -1
  354. package/dist/nodes/vector.js +0 -1121
  355. package/dist/nodes/vector.js.map +0 -1
  356. package/dist/nodes/video.d.ts +0 -387
  357. package/dist/nodes/video.d.ts.map +0 -1
  358. package/dist/nodes/video.js +0 -2383
  359. package/dist/nodes/video.js.map +0 -1
  360. package/dist/nodes/workflow.d.ts +0 -24
  361. package/dist/nodes/workflow.d.ts.map +0 -1
  362. package/dist/nodes/workflow.js +0 -146
  363. package/dist/nodes/workflow.js.map +0 -1
  364. package/dist/nodes/workspace.d.ts +0 -203
  365. package/dist/nodes/workspace.d.ts.map +0 -1
  366. package/dist/nodes/workspace.js +0 -795
  367. 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"}