@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,607 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { BaseNode, prop } from "@nodetool-ai/node-sdk";
8
- // ---------------------------------------------------------------------------
9
- // Helpers
10
- // ---------------------------------------------------------------------------
11
- const SERPAPI_BASE = "https://serpapi.com/search.json";
12
- function getSerpApiKey(secrets) {
13
- const key = secrets.SERPAPI_API_KEY || process.env.SERPAPI_API_KEY || "";
14
- if (!key)
15
- throw new Error("SERPAPI_API_KEY is required");
16
- return key;
17
- }
18
- async function serpRequest(apiKey, params) {
19
- const url = new URL(SERPAPI_BASE);
20
- url.searchParams.set("api_key", apiKey);
21
- for (const [k, v] of Object.entries(params)) {
22
- if (v !== undefined && v !== null && v !== "") {
23
- url.searchParams.set(k, String(v));
24
- }
25
- }
26
- const res = await fetch(url.toString());
27
- if (!res.ok) {
28
- throw new Error(`SerpAPI HTTP error: ${res.status} ${res.statusText}`);
29
- }
30
- const data = (await res.json());
31
- const meta = data.search_metadata;
32
- if (meta?.status === "Error" || typeof data.error === "string") {
33
- throw new Error(data.error ??
34
- `SerpAPI returned an error: ${JSON.stringify(data)}`);
35
- }
36
- return data;
37
- }
38
- /**
39
- * Format search results into human-readable text, matching the Python
40
- * `format_results` helper in `_base.py`.
41
- *
42
- * @param results - Array of result dicts from SerpAPI
43
- * @param fields - Array of [key, label] tuples. If label is null the value
44
- * is printed raw; otherwise it is prefixed with "Label: ".
45
- */
46
- function formatResults(results, fields) {
47
- const lines = [];
48
- for (let i = 0; i < results.length; i++) {
49
- const r = results[i];
50
- const pos = r.position ?? i + 1;
51
- const title = String(r.title ?? "Untitled");
52
- lines.push(`[${pos}] ${title}`);
53
- for (const [key, label] of fields) {
54
- const val = r[key];
55
- if (val) {
56
- if (label) {
57
- lines.push(` ${label}: ${val}`);
58
- }
59
- else {
60
- lines.push(` ${val}`);
61
- }
62
- }
63
- }
64
- lines.push("");
65
- }
66
- return lines.join("\n");
67
- }
68
- // ---------------------------------------------------------------------------
69
- // 1. GoogleSearch
70
- // ---------------------------------------------------------------------------
71
- export class GoogleSearchNode extends BaseNode {
72
- static nodeType = "search.google.GoogleSearch";
73
- static title = "Google Search";
74
- static description = "Search Google to retrieve organic search results from the web.\n google, search, serp, web, query";
75
- static metadataOutputTypes = {
76
- results: "list[organic_result]",
77
- text: "str"
78
- };
79
- static requiredSettings = ["SERPAPI_API_KEY"];
80
- static exposeAsTool = true;
81
- async process() {
82
- const keyword = String(this.keyword ?? "");
83
- if (!keyword)
84
- throw new Error("Keyword is required");
85
- const numResults = Number(this.num_results ?? 10);
86
- const apiKey = getSerpApiKey(this._secrets);
87
- const data = await serpRequest(apiKey, {
88
- engine: "google_light",
89
- q: keyword,
90
- num: numResults,
91
- gl: "us",
92
- hl: "en"
93
- });
94
- const results = data.organic_results ?? [];
95
- const text = formatResults(results, [
96
- ["link", null],
97
- ["date", "Date"],
98
- ["snippet", null]
99
- ]);
100
- return { results, text };
101
- }
102
- }
103
- __decorate([
104
- prop({
105
- type: "str",
106
- default: "",
107
- title: "Keyword",
108
- description: "Search query or keyword to search for"
109
- })
110
- ], GoogleSearchNode.prototype, "keyword", void 0);
111
- __decorate([
112
- prop({
113
- type: "int",
114
- default: 10,
115
- title: "Num Results",
116
- description: "Maximum number of results to return"
117
- })
118
- ], GoogleSearchNode.prototype, "num_results", void 0);
119
- // ---------------------------------------------------------------------------
120
- // 2. GoogleNews
121
- // ---------------------------------------------------------------------------
122
- export class GoogleNewsNode extends BaseNode {
123
- static nodeType = "search.google.GoogleNews";
124
- static title = "Google News";
125
- static description = "Search Google News to retrieve current news articles and headlines.\n google, news, serp, articles, journalism";
126
- static metadataOutputTypes = {
127
- results: "list[news_result]",
128
- text: "str"
129
- };
130
- static requiredSettings = ["SERPAPI_API_KEY"];
131
- static exposeAsTool = true;
132
- async process() {
133
- const keyword = String(this.keyword ?? "");
134
- if (!keyword)
135
- throw new Error("Keyword is required");
136
- const numResults = Number(this.num_results ?? 10);
137
- const apiKey = getSerpApiKey(this._secrets);
138
- const data = await serpRequest(apiKey, {
139
- engine: "google_news",
140
- q: keyword,
141
- num: numResults,
142
- gl: "us",
143
- hl: "en"
144
- });
145
- const results = data.news_results ?? [];
146
- const text = formatResults(results, [
147
- ["link", null],
148
- ["date", "Date"]
149
- ]);
150
- return { results, text };
151
- }
152
- }
153
- __decorate([
154
- prop({
155
- type: "str",
156
- default: "",
157
- title: "Keyword",
158
- description: "Search query or keyword for news articles"
159
- })
160
- ], GoogleNewsNode.prototype, "keyword", void 0);
161
- __decorate([
162
- prop({
163
- type: "int",
164
- default: 10,
165
- title: "Num Results",
166
- description: "Maximum number of news results to return"
167
- })
168
- ], GoogleNewsNode.prototype, "num_results", void 0);
169
- // ---------------------------------------------------------------------------
170
- // 3. GoogleImages
171
- // ---------------------------------------------------------------------------
172
- export class GoogleImagesNode extends BaseNode {
173
- static nodeType = "search.google.GoogleImages";
174
- static title = "Google Images";
175
- static description = "Search Google Images to find visual content or perform reverse image search.\n google, images, serp, visual, reverse, search";
176
- static metadataOutputTypes = {
177
- results: "list[image]"
178
- };
179
- static requiredSettings = ["SERPAPI_API_KEY"];
180
- static exposeAsTool = true;
181
- async process() {
182
- const keyword = String(this.keyword ?? "");
183
- const imageUrl = String(this.image_url ?? "");
184
- if (!keyword && !imageUrl)
185
- throw new Error("One of 'keyword' or 'image_url' is required.");
186
- const numResults = Number(this.num_results ?? 20);
187
- const apiKey = getSerpApiKey(this._secrets);
188
- const params = {
189
- num: numResults,
190
- gl: "us",
191
- hl: "en"
192
- };
193
- if (imageUrl) {
194
- params.engine = "google_reverse_image";
195
- params.image_url = imageUrl;
196
- }
197
- else {
198
- params.engine = "google_images";
199
- params.q = keyword;
200
- }
201
- const data = await serpRequest(apiKey, params);
202
- const images = data.images_results ?? [];
203
- const results = images.map((img) => ({
204
- uri: String(img.original ?? "")
205
- }));
206
- return { results };
207
- }
208
- }
209
- __decorate([
210
- prop({
211
- type: "str",
212
- default: "",
213
- title: "Keyword",
214
- description: "Search query or keyword for images"
215
- })
216
- ], GoogleImagesNode.prototype, "keyword", void 0);
217
- __decorate([
218
- prop({
219
- type: "str",
220
- default: "",
221
- title: "Image Url",
222
- description: "URL of image for reverse image search"
223
- })
224
- ], GoogleImagesNode.prototype, "image_url", void 0);
225
- __decorate([
226
- prop({
227
- type: "int",
228
- default: 20,
229
- title: "Num Results",
230
- description: "Maximum number of image results to return"
231
- })
232
- ], GoogleImagesNode.prototype, "num_results", void 0);
233
- // ---------------------------------------------------------------------------
234
- // 4. GoogleFinance
235
- // ---------------------------------------------------------------------------
236
- export class GoogleFinanceNode extends BaseNode {
237
- static nodeType = "search.google.GoogleFinance";
238
- static title = "Google Finance";
239
- static description = "Retrieve financial market data and stock information from Google Finance.\n google, finance, stocks, market, serp, trading";
240
- static metadataOutputTypes = {
241
- results: "dict[str, any]"
242
- };
243
- static requiredSettings = ["SERPAPI_API_KEY"];
244
- static exposeAsTool = true;
245
- async process() {
246
- const query = String(this.query ?? "");
247
- if (!query)
248
- throw new Error("Query is required for Google Finance search.");
249
- const window = String(this.window ?? "");
250
- const apiKey = getSerpApiKey(this._secrets);
251
- const params = {
252
- engine: "google_finance",
253
- q: query,
254
- gl: "us",
255
- hl: "en"
256
- };
257
- if (window)
258
- params.window = window;
259
- const data = await serpRequest(apiKey, params);
260
- return { results: data };
261
- }
262
- }
263
- __decorate([
264
- prop({
265
- type: "str",
266
- default: "",
267
- title: "Query",
268
- description: "Stock symbol or company name to search for"
269
- })
270
- ], GoogleFinanceNode.prototype, "query", void 0);
271
- __decorate([
272
- prop({
273
- type: "str",
274
- default: "",
275
- title: "Window",
276
- description: "Time window for financial data (e.g., '1d', '5d', '1m', '3m', '6m', '1y', '5y')"
277
- })
278
- ], GoogleFinanceNode.prototype, "window", void 0);
279
- // ---------------------------------------------------------------------------
280
- // 5. GoogleJobs
281
- // ---------------------------------------------------------------------------
282
- export class GoogleJobsNode extends BaseNode {
283
- static nodeType = "search.google.GoogleJobs";
284
- static title = "Google Jobs";
285
- static description = "Search Google Jobs for employment opportunities and job listings.\n google, jobs, employment, careers, serp, hiring";
286
- static metadataOutputTypes = {
287
- results: "list[job_result]",
288
- text: "str"
289
- };
290
- static requiredSettings = ["SERPAPI_API_KEY"];
291
- static exposeAsTool = true;
292
- async process() {
293
- const query = String(this.query ?? "");
294
- if (!query)
295
- throw new Error("Query is required for Google Jobs search.");
296
- const location = String(this.location ?? "");
297
- const apiKey = getSerpApiKey(this._secrets);
298
- const params = {
299
- engine: "google_jobs",
300
- q: query,
301
- gl: "us",
302
- hl: "en"
303
- };
304
- if (location)
305
- params.location = location;
306
- const data = await serpRequest(apiKey, params);
307
- const results = data.jobs_results ?? [];
308
- const text = formatResults(results, [
309
- ["company_name", "Company"],
310
- ["location", "Location"],
311
- ["via", "Via"],
312
- ["extensions", "Details"]
313
- ]);
314
- return { results, text };
315
- }
316
- }
317
- __decorate([
318
- prop({
319
- type: "str",
320
- default: "",
321
- title: "Query",
322
- description: "Job title, skills, or company name to search for"
323
- })
324
- ], GoogleJobsNode.prototype, "query", void 0);
325
- __decorate([
326
- prop({
327
- type: "str",
328
- default: "",
329
- title: "Location",
330
- description: "Geographic location for job search"
331
- })
332
- ], GoogleJobsNode.prototype, "location", void 0);
333
- __decorate([
334
- prop({
335
- type: "int",
336
- default: 10,
337
- title: "Num Results",
338
- description: "Maximum number of job results to return"
339
- })
340
- ], GoogleJobsNode.prototype, "num_results", void 0);
341
- // ---------------------------------------------------------------------------
342
- // 6. GoogleLens
343
- // ---------------------------------------------------------------------------
344
- export class GoogleLensNode extends BaseNode {
345
- static nodeType = "search.google.GoogleLens";
346
- static title = "Google Lens";
347
- static description = "Analyze images using Google Lens to find visual matches and related content.\n google, lens, visual, image, search, serp, identify";
348
- static requiredSettings = ["SERPAPI_API_KEY"];
349
- static exposeAsTool = true;
350
- async process() {
351
- const imageUrl = String(this.image_url ?? "");
352
- if (!imageUrl)
353
- throw new Error("Image URL is required for Google Lens search.");
354
- const apiKey = getSerpApiKey(this._secrets);
355
- const data = await serpRequest(apiKey, {
356
- engine: "google_lens",
357
- url: imageUrl,
358
- hl: "en"
359
- });
360
- const matches = data.visual_matches ?? [];
361
- const images = matches.map((m) => ({
362
- uri: String(m.image ?? m.thumbnail ?? "")
363
- }));
364
- return { results: matches, images };
365
- }
366
- }
367
- __decorate([
368
- prop({
369
- type: "str",
370
- default: "",
371
- title: "Image Url",
372
- description: "URL of the image to analyze with Google Lens"
373
- })
374
- ], GoogleLensNode.prototype, "image_url", void 0);
375
- __decorate([
376
- prop({
377
- type: "int",
378
- default: 10,
379
- title: "Num Results",
380
- description: "Maximum number of visual search results to return"
381
- })
382
- ], GoogleLensNode.prototype, "num_results", void 0);
383
- // ---------------------------------------------------------------------------
384
- // 7. GoogleMaps
385
- // ---------------------------------------------------------------------------
386
- export class GoogleMapsNode extends BaseNode {
387
- static nodeType = "search.google.GoogleMaps";
388
- static title = "Google Maps";
389
- static description = "Search Google Maps for places, businesses, and get location details.\n google, maps, places, locations, serp, geography";
390
- static metadataOutputTypes = {
391
- results: "list[local_result]",
392
- text: "str"
393
- };
394
- static requiredSettings = ["SERPAPI_API_KEY"];
395
- static exposeAsTool = true;
396
- async process() {
397
- const query = String(this.query ?? "");
398
- if (!query)
399
- throw new Error("Query is required for map search.");
400
- const apiKey = getSerpApiKey(this._secrets);
401
- const data = await serpRequest(apiKey, {
402
- engine: "google_maps",
403
- q: query,
404
- type: "search",
405
- gl: "us",
406
- hl: "en"
407
- });
408
- const localResults = data.local_results ?? [];
409
- // Rename "type" -> "place_type" to match Python model
410
- const results = localResults.map((r) => {
411
- const { type: placeType, ...rest } = r;
412
- return { ...rest, place_type: placeType ?? "" };
413
- });
414
- // Custom text format matching Python implementation
415
- const lines = [];
416
- for (let i = 0; i < localResults.length; i++) {
417
- const r = localResults[i];
418
- const pos = r.position ?? i + 1;
419
- lines.push(`[${pos}] ${String(r.title ?? "Untitled")}`);
420
- if (r.address)
421
- lines.push(` ${r.address}`);
422
- if (r.rating != null) {
423
- let ratingStr = ` Rating: ${r.rating}`;
424
- if (r.reviews != null)
425
- ratingStr += ` (${r.reviews} reviews)`;
426
- lines.push(ratingStr);
427
- }
428
- if (r.price)
429
- lines.push(` Price: ${r.price}`);
430
- if (r.open_state)
431
- lines.push(` ${r.open_state}`);
432
- lines.push("");
433
- }
434
- const text = lines.join("\n");
435
- return { results, text };
436
- }
437
- }
438
- __decorate([
439
- prop({
440
- type: "str",
441
- default: "",
442
- title: "Query",
443
- description: "Place name, address, or location query"
444
- })
445
- ], GoogleMapsNode.prototype, "query", void 0);
446
- __decorate([
447
- prop({
448
- type: "int",
449
- default: 10,
450
- title: "Num Results",
451
- description: "Maximum number of map results to return"
452
- })
453
- ], GoogleMapsNode.prototype, "num_results", void 0);
454
- // ---------------------------------------------------------------------------
455
- // 8. GoogleShopping
456
- // ---------------------------------------------------------------------------
457
- export class GoogleShoppingNode extends BaseNode {
458
- static nodeType = "search.google.GoogleShopping";
459
- static title = "Google Shopping";
460
- static description = "Search Google Shopping for products with filters and pricing information.\n google, shopping, products, ecommerce, serp, prices";
461
- static metadataOutputTypes = {
462
- results: "list[shopping_result]",
463
- text: "str"
464
- };
465
- static requiredSettings = ["SERPAPI_API_KEY"];
466
- static exposeAsTool = true;
467
- async process() {
468
- const query = String(this.query ?? "");
469
- if (!query)
470
- throw new Error("Query is required for Google Shopping search.");
471
- const country = String(this.country ?? "us") || "us";
472
- const minPrice = Number(this.min_price ?? 0);
473
- const maxPrice = Number(this.max_price ?? 0);
474
- const condition = String(this.condition ?? "");
475
- const sortBy = String(this.sort_by ?? "");
476
- const apiKey = getSerpApiKey(this._secrets);
477
- const params = {
478
- engine: "google_shopping",
479
- q: query,
480
- gl: country,
481
- hl: "en"
482
- };
483
- // Build tbs filter string
484
- const tbsParts = [];
485
- if (minPrice > 0) {
486
- if (!tbsParts.includes("mr:1"))
487
- tbsParts.push("mr:1");
488
- if (!tbsParts.includes("price:1"))
489
- tbsParts.push("price:1");
490
- tbsParts.push(`ppr_min:${minPrice}`);
491
- }
492
- if (maxPrice > 0) {
493
- if (!tbsParts.includes("mr:1"))
494
- tbsParts.push("mr:1");
495
- if (!tbsParts.includes("price:1"))
496
- tbsParts.push("price:1");
497
- tbsParts.push(`ppr_max:${maxPrice}`);
498
- }
499
- if (condition) {
500
- const c = condition.toLowerCase();
501
- if (c === "new")
502
- tbsParts.push("p_cond:new");
503
- else if (c === "used" || c === "refurbished")
504
- tbsParts.push("p_cond:used");
505
- }
506
- if (sortBy) {
507
- tbsParts.push(`sort:${sortBy}`);
508
- }
509
- if (tbsParts.length > 0) {
510
- params.tbs = tbsParts.join(",");
511
- }
512
- const data = await serpRequest(apiKey, params);
513
- const results = data.shopping_results ?? [];
514
- // Custom text format matching Python implementation
515
- const lines = [];
516
- for (let i = 0; i < results.length; i++) {
517
- const r = results[i];
518
- const pos = r.position ?? i + 1;
519
- lines.push(`[${pos}] ${String(r.title ?? "Untitled")}`);
520
- if (r.price) {
521
- let priceStr = ` Price: ${r.price}`;
522
- if (r.old_price)
523
- priceStr += ` (was ${r.old_price})`;
524
- lines.push(priceStr);
525
- }
526
- if (r.source)
527
- lines.push(` Source: ${r.source}`);
528
- if (r.link)
529
- lines.push(` ${r.link}`);
530
- if (r.rating != null)
531
- lines.push(` Rating: ${r.rating}`);
532
- lines.push("");
533
- }
534
- const text = lines.join("\n");
535
- return { results, text };
536
- }
537
- }
538
- __decorate([
539
- prop({
540
- type: "str",
541
- default: "",
542
- title: "Query",
543
- description: "Product name or description to search for"
544
- })
545
- ], GoogleShoppingNode.prototype, "query", void 0);
546
- __decorate([
547
- prop({
548
- type: "str",
549
- default: "us",
550
- title: "Country",
551
- description: "Country code for shopping search (e.g., 'us', 'uk', 'ca')"
552
- })
553
- ], GoogleShoppingNode.prototype, "country", void 0);
554
- __decorate([
555
- prop({
556
- type: "int",
557
- default: 0,
558
- title: "Min Price",
559
- description: "Minimum price filter for products"
560
- })
561
- ], GoogleShoppingNode.prototype, "min_price", void 0);
562
- __decorate([
563
- prop({
564
- type: "int",
565
- default: 0,
566
- title: "Max Price",
567
- description: "Maximum price filter for products"
568
- })
569
- ], GoogleShoppingNode.prototype, "max_price", void 0);
570
- __decorate([
571
- prop({
572
- type: "str",
573
- default: "",
574
- title: "Condition",
575
- description: "Product condition filter (e.g., 'new', 'used', 'refurbished')"
576
- })
577
- ], GoogleShoppingNode.prototype, "condition", void 0);
578
- __decorate([
579
- prop({
580
- type: "str",
581
- default: "",
582
- title: "Sort By",
583
- description: "Sort order for results (e.g., 'price_low_to_high', 'price_high_to_low', 'review_score')"
584
- })
585
- ], GoogleShoppingNode.prototype, "sort_by", void 0);
586
- __decorate([
587
- prop({
588
- type: "int",
589
- default: 10,
590
- title: "Num Results",
591
- description: "Maximum number of shopping results to return"
592
- })
593
- ], GoogleShoppingNode.prototype, "num_results", void 0);
594
- // ---------------------------------------------------------------------------
595
- // Export
596
- // ---------------------------------------------------------------------------
597
- export const SEARCH_NODES = [
598
- GoogleSearchNode,
599
- GoogleNewsNode,
600
- GoogleImagesNode,
601
- GoogleFinanceNode,
602
- GoogleJobsNode,
603
- GoogleLensNode,
604
- GoogleMapsNode,
605
- GoogleShoppingNode
606
- ];
607
- //# sourceMappingURL=search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/nodes/search.ts"],"names":[],"mappings":"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"}