@nodetool-ai/base-nodes 0.7.0-rc.11

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 (353) hide show
  1. package/dist/index.d.ts +72 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +270 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/lib/audio-wav.d.ts +66 -0
  6. package/dist/lib/audio-wav.d.ts.map +1 -0
  7. package/dist/lib/audio-wav.js +215 -0
  8. package/dist/lib/audio-wav.js.map +1 -0
  9. package/dist/nodes/agents.d.ts +253 -0
  10. package/dist/nodes/agents.d.ts.map +1 -0
  11. package/dist/nodes/agents.js +2784 -0
  12. package/dist/nodes/agents.js.map +1 -0
  13. package/dist/nodes/anthropic.d.ts +26 -0
  14. package/dist/nodes/anthropic.d.ts.map +1 -0
  15. package/dist/nodes/anthropic.js +133 -0
  16. package/dist/nodes/anthropic.js.map +1 -0
  17. package/dist/nodes/apify.d.ts +120 -0
  18. package/dist/nodes/apify.d.ts.map +1 -0
  19. package/dist/nodes/apify.js +618 -0
  20. package/dist/nodes/apify.js.map +1 -0
  21. package/dist/nodes/audio.d.ts +301 -0
  22. package/dist/nodes/audio.d.ts.map +1 -0
  23. package/dist/nodes/audio.js +1274 -0
  24. package/dist/nodes/audio.js.map +1 -0
  25. package/dist/nodes/code-node.d.ts +34 -0
  26. package/dist/nodes/code-node.d.ts.map +1 -0
  27. package/dist/nodes/code-node.js +343 -0
  28. package/dist/nodes/code-node.js.map +1 -0
  29. package/dist/nodes/code.d.ts +301 -0
  30. package/dist/nodes/code.d.ts.map +1 -0
  31. package/dist/nodes/code.js +850 -0
  32. package/dist/nodes/code.js.map +1 -0
  33. package/dist/nodes/compare.d.ts +18 -0
  34. package/dist/nodes/compare.d.ts.map +1 -0
  35. package/dist/nodes/compare.js +122 -0
  36. package/dist/nodes/compare.js.map +1 -0
  37. package/dist/nodes/constant.d.ts +315 -0
  38. package/dist/nodes/constant.d.ts.map +1 -0
  39. package/dist/nodes/constant.js +715 -0
  40. package/dist/nodes/constant.js.map +1 -0
  41. package/dist/nodes/control.d.ts +83 -0
  42. package/dist/nodes/control.d.ts.map +1 -0
  43. package/dist/nodes/control.js +212 -0
  44. package/dist/nodes/control.js.map +1 -0
  45. package/dist/nodes/data.d.ts +369 -0
  46. package/dist/nodes/data.d.ts.map +1 -0
  47. package/dist/nodes/data.js +1590 -0
  48. package/dist/nodes/data.js.map +1 -0
  49. package/dist/nodes/document.d.ts +134 -0
  50. package/dist/nodes/document.d.ts.map +1 -0
  51. package/dist/nodes/document.js +984 -0
  52. package/dist/nodes/document.js.map +1 -0
  53. package/dist/nodes/extended-placeholders.d.ts +6 -0
  54. package/dist/nodes/extended-placeholders.d.ts.map +1 -0
  55. package/dist/nodes/extended-placeholders.js +19 -0
  56. package/dist/nodes/extended-placeholders.js.map +1 -0
  57. package/dist/nodes/gemini.d.ts +109 -0
  58. package/dist/nodes/gemini.d.ts.map +1 -0
  59. package/dist/nodes/gemini.js +861 -0
  60. package/dist/nodes/gemini.js.map +1 -0
  61. package/dist/nodes/generators.d.ts +84 -0
  62. package/dist/nodes/generators.d.ts.map +1 -0
  63. package/dist/nodes/generators.js +937 -0
  64. package/dist/nodes/generators.js.map +1 -0
  65. package/dist/nodes/image.d.ts +232 -0
  66. package/dist/nodes/image.d.ts.map +1 -0
  67. package/dist/nodes/image.js +1395 -0
  68. package/dist/nodes/image.js.map +1 -0
  69. package/dist/nodes/input.d.ts +445 -0
  70. package/dist/nodes/input.d.ts.map +1 -0
  71. package/dist/nodes/input.js +1459 -0
  72. package/dist/nodes/input.js.map +1 -0
  73. package/dist/nodes/kie-dynamic.d.ts +31 -0
  74. package/dist/nodes/kie-dynamic.d.ts.map +1 -0
  75. package/dist/nodes/kie-dynamic.js +270 -0
  76. package/dist/nodes/kie-dynamic.js.map +1 -0
  77. package/dist/nodes/lib-audio-dsp.d.ts +85 -0
  78. package/dist/nodes/lib-audio-dsp.d.ts.map +1 -0
  79. package/dist/nodes/lib-audio-dsp.js +450 -0
  80. package/dist/nodes/lib-audio-dsp.js.map +1 -0
  81. package/dist/nodes/lib-audio-effects.d.ts +116 -0
  82. package/dist/nodes/lib-audio-effects.d.ts.map +1 -0
  83. package/dist/nodes/lib-audio-effects.js +905 -0
  84. package/dist/nodes/lib-audio-effects.js.map +1 -0
  85. package/dist/nodes/lib-browser.d.ts +99 -0
  86. package/dist/nodes/lib-browser.d.ts.map +1 -0
  87. package/dist/nodes/lib-browser.js +692 -0
  88. package/dist/nodes/lib-browser.js.map +1 -0
  89. package/dist/nodes/lib-charts.d.ts +20 -0
  90. package/dist/nodes/lib-charts.d.ts.map +1 -0
  91. package/dist/nodes/lib-charts.js +245 -0
  92. package/dist/nodes/lib-charts.js.map +1 -0
  93. package/dist/nodes/lib-datetime.d.ts +108 -0
  94. package/dist/nodes/lib-datetime.d.ts.map +1 -0
  95. package/dist/nodes/lib-datetime.js +421 -0
  96. package/dist/nodes/lib-datetime.js.map +1 -0
  97. package/dist/nodes/lib-doc-convert.d.ts +19 -0
  98. package/dist/nodes/lib-doc-convert.d.ts.map +1 -0
  99. package/dist/nodes/lib-doc-convert.js +257 -0
  100. package/dist/nodes/lib-doc-convert.js.map +1 -0
  101. package/dist/nodes/lib-doc-transform.d.ts +39 -0
  102. package/dist/nodes/lib-doc-transform.d.ts.map +1 -0
  103. package/dist/nodes/lib-doc-transform.js +335 -0
  104. package/dist/nodes/lib-doc-transform.js.map +1 -0
  105. package/dist/nodes/lib-docx.d.ts +106 -0
  106. package/dist/nodes/lib-docx.d.ts.map +1 -0
  107. package/dist/nodes/lib-docx.js +595 -0
  108. package/dist/nodes/lib-docx.js.map +1 -0
  109. package/dist/nodes/lib-epub.d.ts +55 -0
  110. package/dist/nodes/lib-epub.d.ts.map +1 -0
  111. package/dist/nodes/lib-epub.js +220 -0
  112. package/dist/nodes/lib-epub.js.map +1 -0
  113. package/dist/nodes/lib-excel.d.ts +74 -0
  114. package/dist/nodes/lib-excel.d.ts.map +1 -0
  115. package/dist/nodes/lib-excel.js +448 -0
  116. package/dist/nodes/lib-excel.js.map +1 -0
  117. package/dist/nodes/lib-graphql.d.ts +66 -0
  118. package/dist/nodes/lib-graphql.d.ts.map +1 -0
  119. package/dist/nodes/lib-graphql.js +333 -0
  120. package/dist/nodes/lib-graphql.js.map +1 -0
  121. package/dist/nodes/lib-grid.d.ts +27 -0
  122. package/dist/nodes/lib-grid.d.ts.map +1 -0
  123. package/dist/nodes/lib-grid.js +172 -0
  124. package/dist/nodes/lib-grid.js.map +1 -0
  125. package/dist/nodes/lib-html-parse.d.ts +108 -0
  126. package/dist/nodes/lib-html-parse.d.ts.map +1 -0
  127. package/dist/nodes/lib-html-parse.js +365 -0
  128. package/dist/nodes/lib-html-parse.js.map +1 -0
  129. package/dist/nodes/lib-http.d.ts +98 -0
  130. package/dist/nodes/lib-http.d.ts.map +1 -0
  131. package/dist/nodes/lib-http.js +267 -0
  132. package/dist/nodes/lib-http.js.map +1 -0
  133. package/dist/nodes/lib-image-color-grading.d.ts +3 -0
  134. package/dist/nodes/lib-image-color-grading.d.ts.map +1 -0
  135. package/dist/nodes/lib-image-color-grading.js +1386 -0
  136. package/dist/nodes/lib-image-color-grading.js.map +1 -0
  137. package/dist/nodes/lib-image-draw.d.ts +3 -0
  138. package/dist/nodes/lib-image-draw.d.ts.map +1 -0
  139. package/dist/nodes/lib-image-draw.js +470 -0
  140. package/dist/nodes/lib-image-draw.js.map +1 -0
  141. package/dist/nodes/lib-image-enhance.d.ts +3 -0
  142. package/dist/nodes/lib-image-enhance.d.ts.map +1 -0
  143. package/dist/nodes/lib-image-enhance.js +731 -0
  144. package/dist/nodes/lib-image-enhance.js.map +1 -0
  145. package/dist/nodes/lib-image-filter.d.ts +3 -0
  146. package/dist/nodes/lib-image-filter.d.ts.map +1 -0
  147. package/dist/nodes/lib-image-filter.js +684 -0
  148. package/dist/nodes/lib-image-filter.js.map +1 -0
  149. package/dist/nodes/lib-image-utils.d.ts +24 -0
  150. package/dist/nodes/lib-image-utils.d.ts.map +1 -0
  151. package/dist/nodes/lib-image-utils.js +150 -0
  152. package/dist/nodes/lib-image-utils.js.map +1 -0
  153. package/dist/nodes/lib-mail.d.ts +74 -0
  154. package/dist/nodes/lib-mail.d.ts.map +1 -0
  155. package/dist/nodes/lib-mail.js +452 -0
  156. package/dist/nodes/lib-mail.js.map +1 -0
  157. package/dist/nodes/lib-markdown.d.ts +70 -0
  158. package/dist/nodes/lib-markdown.d.ts.map +1 -0
  159. package/dist/nodes/lib-markdown.js +236 -0
  160. package/dist/nodes/lib-markdown.js.map +1 -0
  161. package/dist/nodes/lib-nlp.d.ts +98 -0
  162. package/dist/nodes/lib-nlp.d.ts.map +1 -0
  163. package/dist/nodes/lib-nlp.js +374 -0
  164. package/dist/nodes/lib-nlp.js.map +1 -0
  165. package/dist/nodes/lib-notion.d.ts +99 -0
  166. package/dist/nodes/lib-notion.d.ts.map +1 -0
  167. package/dist/nodes/lib-notion.js +601 -0
  168. package/dist/nodes/lib-notion.js.map +1 -0
  169. package/dist/nodes/lib-ocr.d.ts +31 -0
  170. package/dist/nodes/lib-ocr.d.ts.map +1 -0
  171. package/dist/nodes/lib-ocr.js +143 -0
  172. package/dist/nodes/lib-ocr.js.map +1 -0
  173. package/dist/nodes/lib-os.d.ts +312 -0
  174. package/dist/nodes/lib-os.d.ts.map +1 -0
  175. package/dist/nodes/lib-os.js +909 -0
  176. package/dist/nodes/lib-os.js.map +1 -0
  177. package/dist/nodes/lib-pdf.d.ts +142 -0
  178. package/dist/nodes/lib-pdf.d.ts.map +1 -0
  179. package/dist/nodes/lib-pdf.js +871 -0
  180. package/dist/nodes/lib-pdf.js.map +1 -0
  181. package/dist/nodes/lib-pptx.d.ts +29 -0
  182. package/dist/nodes/lib-pptx.d.ts.map +1 -0
  183. package/dist/nodes/lib-pptx.js +122 -0
  184. package/dist/nodes/lib-pptx.js.map +1 -0
  185. package/dist/nodes/lib-rss.d.ts +31 -0
  186. package/dist/nodes/lib-rss.d.ts.map +1 -0
  187. package/dist/nodes/lib-rss.js +163 -0
  188. package/dist/nodes/lib-rss.js.map +1 -0
  189. package/dist/nodes/lib-s3.d.ts +112 -0
  190. package/dist/nodes/lib-s3.d.ts.map +1 -0
  191. package/dist/nodes/lib-s3.js +521 -0
  192. package/dist/nodes/lib-s3.js.map +1 -0
  193. package/dist/nodes/lib-secret.d.ts +15 -0
  194. package/dist/nodes/lib-secret.d.ts.map +1 -0
  195. package/dist/nodes/lib-secret.js +42 -0
  196. package/dist/nodes/lib-secret.js.map +1 -0
  197. package/dist/nodes/lib-sqlite.d.ts +102 -0
  198. package/dist/nodes/lib-sqlite.d.ts.map +1 -0
  199. package/dist/nodes/lib-sqlite.js +532 -0
  200. package/dist/nodes/lib-sqlite.js.map +1 -0
  201. package/dist/nodes/lib-supabase.d.ts +86 -0
  202. package/dist/nodes/lib-supabase.d.ts.map +1 -0
  203. package/dist/nodes/lib-supabase.js +425 -0
  204. package/dist/nodes/lib-supabase.js.map +1 -0
  205. package/dist/nodes/lib-svg.d.ts +199 -0
  206. package/dist/nodes/lib-svg.d.ts.map +1 -0
  207. package/dist/nodes/lib-svg.js +1027 -0
  208. package/dist/nodes/lib-svg.js.map +1 -0
  209. package/dist/nodes/lib-tensorflow.d.ts +71 -0
  210. package/dist/nodes/lib-tensorflow.d.ts.map +1 -0
  211. package/dist/nodes/lib-tensorflow.js +351 -0
  212. package/dist/nodes/lib-tensorflow.js.map +1 -0
  213. package/dist/nodes/lib-twilio.d.ts +71 -0
  214. package/dist/nodes/lib-twilio.d.ts.map +1 -0
  215. package/dist/nodes/lib-twilio.js +469 -0
  216. package/dist/nodes/lib-twilio.js.map +1 -0
  217. package/dist/nodes/lib-validate.d.ts +84 -0
  218. package/dist/nodes/lib-validate.d.ts.map +1 -0
  219. package/dist/nodes/lib-validate.js +215 -0
  220. package/dist/nodes/lib-validate.js.map +1 -0
  221. package/dist/nodes/lib-video-download.d.ts +26 -0
  222. package/dist/nodes/lib-video-download.d.ts.map +1 -0
  223. package/dist/nodes/lib-video-download.js +299 -0
  224. package/dist/nodes/lib-video-download.js.map +1 -0
  225. package/dist/nodes/messaging.d.ts +88 -0
  226. package/dist/nodes/messaging.d.ts.map +1 -0
  227. package/dist/nodes/messaging.js +418 -0
  228. package/dist/nodes/messaging.js.map +1 -0
  229. package/dist/nodes/mistral.d.ts +83 -0
  230. package/dist/nodes/mistral.d.ts.map +1 -0
  231. package/dist/nodes/mistral.js +450 -0
  232. package/dist/nodes/mistral.js.map +1 -0
  233. package/dist/nodes/model3d/analysis.d.ts +13 -0
  234. package/dist/nodes/model3d/analysis.d.ts.map +1 -0
  235. package/dist/nodes/model3d/analysis.js +36 -0
  236. package/dist/nodes/model3d/analysis.js.map +1 -0
  237. package/dist/nodes/model3d/base.d.ts +11 -0
  238. package/dist/nodes/model3d/base.d.ts.map +1 -0
  239. package/dist/nodes/model3d/base.js +20 -0
  240. package/dist/nodes/model3d/base.js.map +1 -0
  241. package/dist/nodes/model3d/boolean-ops.d.ts +2 -0
  242. package/dist/nodes/model3d/boolean-ops.d.ts.map +1 -0
  243. package/dist/nodes/model3d/boolean-ops.js +172 -0
  244. package/dist/nodes/model3d/boolean-ops.js.map +1 -0
  245. package/dist/nodes/model3d/cleanup.d.ts +47 -0
  246. package/dist/nodes/model3d/cleanup.d.ts.map +1 -0
  247. package/dist/nodes/model3d/cleanup.js +136 -0
  248. package/dist/nodes/model3d/cleanup.js.map +1 -0
  249. package/dist/nodes/model3d/convert.d.ts +14 -0
  250. package/dist/nodes/model3d/convert.d.ts.map +1 -0
  251. package/dist/nodes/model3d/convert.js +64 -0
  252. package/dist/nodes/model3d/convert.js.map +1 -0
  253. package/dist/nodes/model3d/defaults.d.ts +34 -0
  254. package/dist/nodes/model3d/defaults.d.ts.map +1 -0
  255. package/dist/nodes/model3d/defaults.js +28 -0
  256. package/dist/nodes/model3d/defaults.js.map +1 -0
  257. package/dist/nodes/model3d/document-ops.d.ts +4 -0
  258. package/dist/nodes/model3d/document-ops.d.ts.map +1 -0
  259. package/dist/nodes/model3d/document-ops.js +40 -0
  260. package/dist/nodes/model3d/document-ops.js.map +1 -0
  261. package/dist/nodes/model3d/generation.d.ts +39 -0
  262. package/dist/nodes/model3d/generation.d.ts.map +1 -0
  263. package/dist/nodes/model3d/generation.js +179 -0
  264. package/dist/nodes/model3d/generation.js.map +1 -0
  265. package/dist/nodes/model3d/glb.d.ts +29 -0
  266. package/dist/nodes/model3d/glb.d.ts.map +1 -0
  267. package/dist/nodes/model3d/glb.js +255 -0
  268. package/dist/nodes/model3d/glb.js.map +1 -0
  269. package/dist/nodes/model3d/index.d.ts +20 -0
  270. package/dist/nodes/model3d/index.d.ts.map +1 -0
  271. package/dist/nodes/model3d/index.js +38 -0
  272. package/dist/nodes/model3d/index.js.map +1 -0
  273. package/dist/nodes/model3d/io.d.ts +38 -0
  274. package/dist/nodes/model3d/io.d.ts.map +1 -0
  275. package/dist/nodes/model3d/io.js +162 -0
  276. package/dist/nodes/model3d/io.js.map +1 -0
  277. package/dist/nodes/model3d/mesh-ops.d.ts +40 -0
  278. package/dist/nodes/model3d/mesh-ops.d.ts.map +1 -0
  279. package/dist/nodes/model3d/mesh-ops.js +775 -0
  280. package/dist/nodes/model3d/mesh-ops.js.map +1 -0
  281. package/dist/nodes/model3d/nodes.d.ts +2 -0
  282. package/dist/nodes/model3d/nodes.d.ts.map +1 -0
  283. package/dist/nodes/model3d/nodes.js +2 -0
  284. package/dist/nodes/model3d/nodes.js.map +1 -0
  285. package/dist/nodes/model3d/ops.d.ts +37 -0
  286. package/dist/nodes/model3d/ops.d.ts.map +1 -0
  287. package/dist/nodes/model3d/ops.js +137 -0
  288. package/dist/nodes/model3d/ops.js.map +1 -0
  289. package/dist/nodes/model3d/transforms.d.ts +49 -0
  290. package/dist/nodes/model3d/transforms.d.ts.map +1 -0
  291. package/dist/nodes/model3d/transforms.js +142 -0
  292. package/dist/nodes/model3d/transforms.js.map +1 -0
  293. package/dist/nodes/model3d/types.d.ts +81 -0
  294. package/dist/nodes/model3d/types.d.ts.map +1 -0
  295. package/dist/nodes/model3d/types.js +2 -0
  296. package/dist/nodes/model3d/types.js.map +1 -0
  297. package/dist/nodes/model3d/utils.d.ts +34 -0
  298. package/dist/nodes/model3d/utils.d.ts.map +1 -0
  299. package/dist/nodes/model3d/utils.js +185 -0
  300. package/dist/nodes/model3d/utils.js.map +1 -0
  301. package/dist/nodes/model3d.d.ts +2 -0
  302. package/dist/nodes/model3d.d.ts.map +1 -0
  303. package/dist/nodes/model3d.js +2 -0
  304. package/dist/nodes/model3d.js.map +1 -0
  305. package/dist/nodes/openai.d.ts +172 -0
  306. package/dist/nodes/openai.d.ts.map +1 -0
  307. package/dist/nodes/openai.js +1294 -0
  308. package/dist/nodes/openai.js.map +1 -0
  309. package/dist/nodes/output.d.ts +29 -0
  310. package/dist/nodes/output.d.ts.map +1 -0
  311. package/dist/nodes/output.js +87 -0
  312. package/dist/nodes/output.js.map +1 -0
  313. package/dist/nodes/sandbox.d.ts +67 -0
  314. package/dist/nodes/sandbox.d.ts.map +1 -0
  315. package/dist/nodes/sandbox.js +681 -0
  316. package/dist/nodes/sandbox.js.map +1 -0
  317. package/dist/nodes/search.d.ts +117 -0
  318. package/dist/nodes/search.d.ts.map +1 -0
  319. package/dist/nodes/search.js +607 -0
  320. package/dist/nodes/search.js.map +1 -0
  321. package/dist/nodes/team.d.ts +74 -0
  322. package/dist/nodes/team.d.ts.map +1 -0
  323. package/dist/nodes/team.js +304 -0
  324. package/dist/nodes/team.js.map +1 -0
  325. package/dist/nodes/text-extra.d.ts +633 -0
  326. package/dist/nodes/text-extra.d.ts.map +1 -0
  327. package/dist/nodes/text-extra.js +2226 -0
  328. package/dist/nodes/text-extra.js.map +1 -0
  329. package/dist/nodes/tool-agents.d.ts +334 -0
  330. package/dist/nodes/tool-agents.d.ts.map +1 -0
  331. package/dist/nodes/tool-agents.js +1861 -0
  332. package/dist/nodes/tool-agents.js.map +1 -0
  333. package/dist/nodes/triggers.d.ts +107 -0
  334. package/dist/nodes/triggers.d.ts.map +1 -0
  335. package/dist/nodes/triggers.js +706 -0
  336. package/dist/nodes/triggers.js.map +1 -0
  337. package/dist/nodes/vector.d.ts +168 -0
  338. package/dist/nodes/vector.d.ts.map +1 -0
  339. package/dist/nodes/vector.js +1121 -0
  340. package/dist/nodes/vector.js.map +1 -0
  341. package/dist/nodes/video.d.ts +387 -0
  342. package/dist/nodes/video.d.ts.map +1 -0
  343. package/dist/nodes/video.js +2361 -0
  344. package/dist/nodes/video.js.map +1 -0
  345. package/dist/nodes/workflow.d.ts +24 -0
  346. package/dist/nodes/workflow.d.ts.map +1 -0
  347. package/dist/nodes/workflow.js +146 -0
  348. package/dist/nodes/workflow.js.map +1 -0
  349. package/dist/nodes/workspace.d.ts +203 -0
  350. package/dist/nodes/workspace.d.ts.map +1 -0
  351. package/dist/nodes/workspace.js +795 -0
  352. package/dist/nodes/workspace.js.map +1 -0
  353. package/package.json +103 -0
@@ -0,0 +1,74 @@
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
@@ -0,0 +1 @@
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,EAKnB,MAAM,qBAAqB,CAAC;AAI7B;;;;;;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;IAsIpC,OAAO,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAO7E;AAED,eAAO,MAAM,UAAU,sDAAyC,CAAC"}
@@ -0,0 +1,304 @@
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
+ // ─── AgentNode ───
22
+ /**
23
+ * Individual agent node — a controlled node that receives work from TeamLead.
24
+ *
25
+ * Connect below a TeamLeadNode via a control edge. The TeamLead sends
26
+ * control events (like tool calls) to assign work. The agent processes
27
+ * the assignment and returns results.
28
+ */
29
+ export class TeamAgentNode extends BaseNode {
30
+ static nodeType = "nodetool.team.Agent";
31
+ static title = "Agent";
32
+ static description = "An individual AI agent that receives work from a TeamLead via control edges.\n agent, team, controlled, worker";
33
+ static isControlled = true;
34
+ static metadataOutputTypes = {
35
+ result: "str"
36
+ };
37
+ static basicFields = ["name", "role", "provider", "model"];
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
+ async process(_context) {
43
+ // The actual LLM work is done by TeamExecutor — this node acts as
44
+ // a proxy identity. When TeamLead sends a control event, the agent's
45
+ // process() receives the event properties (task assignment, messages, etc.)
46
+ // and returns the result.
47
+ //
48
+ // The control event contains:
49
+ // __agent_work__: true — work assignment from TeamLead
50
+ // task: { id, title, description, ... } — the task to work on
51
+ // response: string — the agent's computed response (set by TeamExecutor)
52
+ //
53
+ // For message routing:
54
+ // __agent_message__: true — inter-agent message
55
+ // message: AgentMessage
56
+ const result = this.__agent_response__ ?? this.response ?? "";
57
+ return { result: String(result) };
58
+ }
59
+ /**
60
+ * Convert this node's properties to an AgentIdentity for the TeamExecutor.
61
+ */
62
+ toIdentity() {
63
+ return {
64
+ id: this.__node_id || String(this.name || "agent"),
65
+ name: String(this.name || "Agent"),
66
+ role: String(this.role || "General purpose assistant"),
67
+ skills: Array.isArray(this.skills) ? this.skills.map(String) : [],
68
+ provider: String(this.provider || "anthropic"),
69
+ model: String(this.model || "claude-sonnet-4-20250514"),
70
+ tools: Array.isArray(this.tools) ? this.tools.map(String) : []
71
+ };
72
+ }
73
+ }
74
+ __decorate([
75
+ prop({
76
+ type: "str",
77
+ default: "",
78
+ title: "Name",
79
+ description: "Agent name, e.g. 'researcher', 'writer'"
80
+ })
81
+ ], TeamAgentNode.prototype, "name", void 0);
82
+ __decorate([
83
+ prop({
84
+ type: "str",
85
+ default: "General purpose assistant",
86
+ title: "Role",
87
+ description: "Freeform role description injected into the agent's system prompt"
88
+ })
89
+ ], TeamAgentNode.prototype, "role", void 0);
90
+ __decorate([
91
+ prop({
92
+ type: "list",
93
+ default: [],
94
+ title: "Skills",
95
+ description: "Skill tags for task matching, e.g. ['web_search', 'code_generation']"
96
+ })
97
+ ], TeamAgentNode.prototype, "skills", void 0);
98
+ __decorate([
99
+ prop({
100
+ type: "str",
101
+ default: "anthropic",
102
+ title: "Provider",
103
+ description: "LLM provider key"
104
+ })
105
+ ], TeamAgentNode.prototype, "provider", void 0);
106
+ __decorate([
107
+ prop({
108
+ type: "str",
109
+ default: "claude-sonnet-4-20250514",
110
+ title: "Model",
111
+ description: "Model identifier"
112
+ })
113
+ ], TeamAgentNode.prototype, "model", void 0);
114
+ __decorate([
115
+ prop({
116
+ type: "list",
117
+ default: [],
118
+ title: "Tools",
119
+ description: "Additional tool names this agent can use (beyond team tools)"
120
+ })
121
+ ], TeamAgentNode.prototype, "tools", void 0);
122
+ // ─── TeamLeadNode ───
123
+ /**
124
+ * Orchestrates a team of agents working together on an objective.
125
+ *
126
+ * Agents are connected below via control edges — no AgentPool needed.
127
+ * TeamLead discovers agents from its outgoing control edges at runtime.
128
+ * Tasks are stored in the database, provided via processing context.
129
+ */
130
+ export class TeamLeadNode extends BaseNode {
131
+ static nodeType = "nodetool.team.TeamLead";
132
+ static title = "Team Lead";
133
+ 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";
134
+ static metadataOutputTypes = {
135
+ result: "json",
136
+ board: "json",
137
+ messages: "list",
138
+ events: "list"
139
+ };
140
+ static basicFields = ["objective", "strategy"];
141
+ async *genProcess(context) {
142
+ const objective = String(this.objective ?? "");
143
+ if (!objective)
144
+ throw new Error("Objective is required");
145
+ if (!context)
146
+ throw new Error("Processing context is required");
147
+ // Discover agents from _control_context (injected by kernel).
148
+ // The kernel resolves outgoing control edges and provides metadata
149
+ // about each controlled node — including their properties.
150
+ // Fallback: agents can be provided directly for programmatic use.
151
+ const agents = [];
152
+ const controlContext = this.getDynamic("_control_context");
153
+ if (controlContext) {
154
+ // Extract agent identities from controlled Agent nodes
155
+ for (const [nodeId, meta] of Object.entries(controlContext)) {
156
+ if (typeof meta !== "object" || !meta)
157
+ continue;
158
+ const nodeType = String(meta.node_type ?? "");
159
+ // Only pick up Agent nodes (not arbitrary controlled nodes)
160
+ if (nodeType !== "nodetool.team.Agent")
161
+ continue;
162
+ const props = meta.properties;
163
+ const getProp = (name) => props?.[name]?.value;
164
+ agents.push({
165
+ id: nodeId,
166
+ name: String(getProp("name") ?? meta.node_title ?? nodeId),
167
+ role: String(getProp("role") ?? "General purpose assistant"),
168
+ skills: Array.isArray(getProp("skills"))
169
+ ? getProp("skills").map(String)
170
+ : [],
171
+ provider: String(getProp("provider") ?? "anthropic"),
172
+ model: String(getProp("model") ?? "claude-sonnet-4-20250514"),
173
+ tools: Array.isArray(getProp("tools"))
174
+ ? getProp("tools").map(String)
175
+ : []
176
+ });
177
+ }
178
+ }
179
+ // Fallback: agents provided inline (programmatic use without kernel)
180
+ if (agents.length === 0) {
181
+ const rawAgents = this.getDynamic("agents") ?? [];
182
+ for (const a of rawAgents) {
183
+ agents.push({
184
+ id: String(a.id ?? a.name ?? `agent_${agents.length}`),
185
+ name: String(a.name ?? `Agent ${agents.length}`),
186
+ role: String(a.role ?? "General purpose assistant"),
187
+ skills: Array.isArray(a.skills) ? a.skills.map(String) : [],
188
+ provider: String(a.provider ?? "anthropic"),
189
+ model: String(a.model ?? "claude-sonnet-4-20250514"),
190
+ tools: Array.isArray(a.tools) ? a.tools.map(String) : []
191
+ });
192
+ }
193
+ }
194
+ if (agents.length === 0) {
195
+ throw new Error("No agents found. Connect Agent nodes below this TeamLead via control edges.");
196
+ }
197
+ const strategy = String(this.strategy ?? "coordinator");
198
+ const maxIterations = Number(this.max_iterations ?? 50);
199
+ const maxConcurrency = Number(this.max_concurrency ?? 3);
200
+ // Task board: always DB-backed, keyed by this node's ID as team_id.
201
+ const teamId = this.__node_id || "default_team";
202
+ const taskBoard = new DbTaskBoard(teamId);
203
+ // Message bus: edge-native when in workflow, in-memory otherwise
204
+ const messageBus = context.hasControlEventSupport
205
+ ? new EdgeMessageBus(context)
206
+ : undefined;
207
+ const config = {
208
+ objective,
209
+ agents,
210
+ strategy,
211
+ maxIterations,
212
+ maxConcurrency
213
+ };
214
+ const executor = new TeamExecutor({
215
+ config,
216
+ context,
217
+ taskBoard,
218
+ messageBus
219
+ });
220
+ const allEvents = [];
221
+ // Stream events as the team works
222
+ for await (const event of executor.execute()) {
223
+ allEvents.push(event);
224
+ if (event.type === "chunk") {
225
+ yield {
226
+ text: event.content,
227
+ chunk: { type: "chunk", content: event.content, done: false }
228
+ };
229
+ }
230
+ else if (event.type === "task_completed") {
231
+ yield {
232
+ text: `Task completed: ${event.taskId}`,
233
+ chunk: {
234
+ type: "chunk",
235
+ content: `\n[Task ${event.taskId} completed]\n`,
236
+ done: false
237
+ }
238
+ };
239
+ }
240
+ else if (event.type === "message_sent") {
241
+ yield {
242
+ text: `${event.message.from} → ${event.message.to}: ${event.message.subject}`,
243
+ chunk: {
244
+ type: "chunk",
245
+ content: `\n[${event.message.from} → ${event.message.to}: ${event.message.subject}]\n`,
246
+ done: false
247
+ }
248
+ };
249
+ }
250
+ }
251
+ // Final output
252
+ yield {
253
+ result: executor.getResult(),
254
+ board: executor.taskBoard.getSnapshot(),
255
+ messages: executor.messageBus.getHistory(),
256
+ events: allEvents
257
+ };
258
+ }
259
+ async process(context) {
260
+ let lastOutput = {};
261
+ for await (const item of this.genProcess(context)) {
262
+ lastOutput = item;
263
+ }
264
+ return lastOutput;
265
+ }
266
+ }
267
+ __decorate([
268
+ prop({
269
+ type: "str",
270
+ default: "",
271
+ title: "Objective",
272
+ description: "The team's objective — what they should accomplish together"
273
+ })
274
+ ], TeamLeadNode.prototype, "objective", void 0);
275
+ __decorate([
276
+ prop({
277
+ type: "str",
278
+ default: "coordinator",
279
+ title: "Strategy",
280
+ description: "Team strategy: coordinator (lead decomposes work), autonomous (self-organizing), hybrid (lead + autonomous subtasks)"
281
+ })
282
+ ], TeamLeadNode.prototype, "strategy", void 0);
283
+ __decorate([
284
+ prop({
285
+ type: "int",
286
+ default: 50,
287
+ title: "Max Iterations",
288
+ description: "Maximum total LLM calls across all agents",
289
+ min: 1,
290
+ max: 200
291
+ })
292
+ ], TeamLeadNode.prototype, "max_iterations", void 0);
293
+ __decorate([
294
+ prop({
295
+ type: "int",
296
+ default: 3,
297
+ title: "Max Concurrency",
298
+ description: "Maximum number of agents running simultaneously",
299
+ min: 1,
300
+ max: 10
301
+ })
302
+ ], TeamLeadNode.prototype, "max_concurrency", void 0);
303
+ export const TEAM_NODES = [TeamAgentNode, TeamLeadNode];
304
+ //# sourceMappingURL=team.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/nodes/team.ts"],"names":[],"mappings":"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"}