@n8n/instance-ai 1.0.0 → 1.2.0

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 (388) hide show
  1. package/LICENSE_EE.md +27 -0
  2. package/dist/agent/instance-agent.js +17 -45
  3. package/dist/agent/instance-agent.js.map +1 -1
  4. package/dist/agent/register-with-mastra.d.ts +1 -1
  5. package/dist/agent/register-with-mastra.js +5 -9
  6. package/dist/agent/register-with-mastra.js.map +1 -1
  7. package/dist/agent/sub-agent-briefing.d.ts +20 -0
  8. package/dist/agent/sub-agent-briefing.js +39 -0
  9. package/dist/agent/sub-agent-briefing.js.map +1 -0
  10. package/dist/agent/sub-agent-debriefing.d.ts +71 -0
  11. package/dist/agent/sub-agent-debriefing.js +39 -0
  12. package/dist/agent/sub-agent-debriefing.js.map +1 -0
  13. package/dist/agent/sub-agent-factory.d.ts +1 -1
  14. package/dist/agent/sub-agent-factory.js +15 -3
  15. package/dist/agent/sub-agent-factory.js.map +1 -1
  16. package/dist/agent/system-prompt.d.ts +1 -0
  17. package/dist/agent/system-prompt.js +67 -43
  18. package/dist/agent/system-prompt.js.map +1 -1
  19. package/dist/agent/tool-access.d.ts +2 -0
  20. package/dist/agent/tool-access.js +28 -0
  21. package/dist/agent/tool-access.js.map +1 -0
  22. package/dist/build.tsbuildinfo +1 -1
  23. package/dist/domain-access/domain-gating.d.ts +1 -0
  24. package/dist/domain-access/domain-gating.js +3 -0
  25. package/dist/domain-access/domain-gating.js.map +1 -1
  26. package/dist/index.d.ts +7 -3
  27. package/dist/index.js +15 -4
  28. package/dist/index.js.map +1 -1
  29. package/dist/logger.d.ts +6 -0
  30. package/dist/logger.js +3 -0
  31. package/dist/logger.js.map +1 -0
  32. package/dist/memory/memory-config.js +1 -3
  33. package/dist/memory/memory-config.js.map +1 -1
  34. package/dist/parsers/structured-file-parser.d.ts +56 -0
  35. package/dist/parsers/structured-file-parser.js +354 -0
  36. package/dist/parsers/structured-file-parser.js.map +1 -0
  37. package/dist/planned-tasks/planned-task-permissions.d.ts +2 -0
  38. package/dist/planned-tasks/planned-task-permissions.js +27 -0
  39. package/dist/planned-tasks/planned-task-permissions.js.map +1 -0
  40. package/dist/planned-tasks/planned-task-service.js +6 -0
  41. package/dist/planned-tasks/planned-task-service.js.map +1 -1
  42. package/dist/runtime/background-task-manager.d.ts +2 -1
  43. package/dist/runtime/background-task-manager.js +13 -1
  44. package/dist/runtime/background-task-manager.js.map +1 -1
  45. package/dist/runtime/resumable-stream-executor.d.ts +8 -3
  46. package/dist/runtime/resumable-stream-executor.js +67 -120
  47. package/dist/runtime/resumable-stream-executor.js.map +1 -1
  48. package/dist/runtime/run-state-registry.d.ts +1 -0
  49. package/dist/runtime/run-state-registry.js.map +1 -1
  50. package/dist/runtime/stream-runner.d.ts +4 -2
  51. package/dist/runtime/stream-runner.js +5 -25
  52. package/dist/runtime/stream-runner.js.map +1 -1
  53. package/dist/stream/consume-with-hitl.d.ts +6 -1
  54. package/dist/stream/consume-with-hitl.js +12 -2
  55. package/dist/stream/consume-with-hitl.js.map +1 -1
  56. package/dist/stream/map-chunk.d.ts +1 -1
  57. package/dist/stream/map-chunk.js +35 -16
  58. package/dist/stream/map-chunk.js.map +1 -1
  59. package/dist/stream/work-summary-accumulator.d.ts +63 -0
  60. package/dist/stream/work-summary-accumulator.js +66 -0
  61. package/dist/stream/work-summary-accumulator.js.map +1 -0
  62. package/dist/tools/attachments/parse-file.tool.d.ts +90 -0
  63. package/dist/tools/attachments/parse-file.tool.js +135 -0
  64. package/dist/tools/attachments/parse-file.tool.js.map +1 -0
  65. package/dist/tools/best-practices/get-best-practices.tool.d.ts +6 -9
  66. package/dist/tools/best-practices/get-best-practices.tool.js +7 -5
  67. package/dist/tools/best-practices/get-best-practices.tool.js.map +1 -1
  68. package/dist/tools/best-practices/index.js +5 -29
  69. package/dist/tools/best-practices/index.js.map +1 -1
  70. package/dist/tools/best-practices/techniques.d.ts +1 -20
  71. package/dist/tools/best-practices/techniques.js +3 -36
  72. package/dist/tools/best-practices/techniques.js.map +1 -1
  73. package/dist/tools/credentials/delete-credential.tool.d.ts +13 -14
  74. package/dist/tools/credentials/delete-credential.tool.js +18 -11
  75. package/dist/tools/credentials/delete-credential.tool.js.map +1 -1
  76. package/dist/tools/credentials/get-credential.tool.d.ts +8 -2
  77. package/dist/tools/credentials/get-credential.tool.js +13 -7
  78. package/dist/tools/credentials/get-credential.tool.js.map +1 -1
  79. package/dist/tools/credentials/list-credentials.tool.d.ts +13 -3
  80. package/dist/tools/credentials/list-credentials.tool.js +50 -8
  81. package/dist/tools/credentials/list-credentials.tool.js.map +1 -1
  82. package/dist/tools/credentials/search-credential-types.tool.d.ts +7 -3
  83. package/dist/tools/credentials/search-credential-types.tool.js +7 -5
  84. package/dist/tools/credentials/search-credential-types.tool.js.map +1 -1
  85. package/dist/tools/credentials/setup-credentials.tool.d.ts +40 -44
  86. package/dist/tools/credentials/setup-credentials.tool.js +37 -31
  87. package/dist/tools/credentials/setup-credentials.tool.js.map +1 -1
  88. package/dist/tools/credentials/test-credential.tool.d.ts +7 -4
  89. package/dist/tools/credentials/test-credential.tool.js +5 -3
  90. package/dist/tools/credentials/test-credential.tool.js.map +1 -1
  91. package/dist/tools/data-tables/add-data-table-column.tool.d.ts +15 -19
  92. package/dist/tools/data-tables/add-data-table-column.tool.js +16 -9
  93. package/dist/tools/data-tables/add-data-table-column.tool.js.map +1 -1
  94. package/dist/tools/data-tables/create-data-table.tool.d.ts +26 -24
  95. package/dist/tools/data-tables/create-data-table.tool.js +49 -22
  96. package/dist/tools/data-tables/create-data-table.tool.js.map +1 -1
  97. package/dist/tools/data-tables/delete-data-table-column.tool.d.ts +13 -14
  98. package/dist/tools/data-tables/delete-data-table-column.tool.js +15 -8
  99. package/dist/tools/data-tables/delete-data-table-column.tool.js.map +1 -1
  100. package/dist/tools/data-tables/delete-data-table-rows.tool.d.ts +49 -15
  101. package/dist/tools/data-tables/delete-data-table-rows.tool.js +25 -9
  102. package/dist/tools/data-tables/delete-data-table-rows.tool.js.map +1 -1
  103. package/dist/tools/data-tables/delete-data-table.tool.d.ts +11 -14
  104. package/dist/tools/data-tables/delete-data-table.tool.js +17 -9
  105. package/dist/tools/data-tables/delete-data-table.tool.js.map +1 -1
  106. package/dist/tools/data-tables/get-data-table-schema.tool.d.ts +7 -8
  107. package/dist/tools/data-tables/get-data-table-schema.tool.js +5 -3
  108. package/dist/tools/data-tables/get-data-table-schema.tool.js.map +1 -1
  109. package/dist/tools/data-tables/insert-data-table-rows.tool.d.ts +14 -15
  110. package/dist/tools/data-tables/insert-data-table-rows.tool.js +22 -12
  111. package/dist/tools/data-tables/insert-data-table-rows.tool.js.map +1 -1
  112. package/dist/tools/data-tables/list-data-tables.tool.d.ts +7 -3
  113. package/dist/tools/data-tables/list-data-tables.tool.js +8 -6
  114. package/dist/tools/data-tables/list-data-tables.tool.js.map +1 -1
  115. package/dist/tools/data-tables/query-data-table-rows.tool.d.ts +49 -8
  116. package/dist/tools/data-tables/query-data-table-rows.tool.js +14 -12
  117. package/dist/tools/data-tables/query-data-table-rows.tool.js.map +1 -1
  118. package/dist/tools/data-tables/rename-data-table-column.tool.d.ts +15 -14
  119. package/dist/tools/data-tables/rename-data-table-column.tool.js +16 -9
  120. package/dist/tools/data-tables/rename-data-table-column.tool.js.map +1 -1
  121. package/dist/tools/data-tables/update-data-table-rows.tool.d.ts +51 -14
  122. package/dist/tools/data-tables/update-data-table-rows.tool.js +19 -9
  123. package/dist/tools/data-tables/update-data-table-rows.tool.js.map +1 -1
  124. package/dist/tools/executions/debug-execution.tool.d.ts +8 -2
  125. package/dist/tools/executions/debug-execution.tool.js +5 -3
  126. package/dist/tools/executions/debug-execution.tool.js.map +1 -1
  127. package/dist/tools/executions/get-execution.tool.d.ts +8 -2
  128. package/dist/tools/executions/get-execution.tool.js +5 -3
  129. package/dist/tools/executions/get-execution.tool.js.map +1 -1
  130. package/dist/tools/executions/get-node-output.tool.d.ts +14 -2
  131. package/dist/tools/executions/get-node-output.tool.js +14 -17
  132. package/dist/tools/executions/get-node-output.tool.js.map +1 -1
  133. package/dist/tools/executions/list-executions.tool.d.ts +11 -3
  134. package/dist/tools/executions/list-executions.tool.js +16 -14
  135. package/dist/tools/executions/list-executions.tool.js.map +1 -1
  136. package/dist/tools/executions/run-workflow.tool.d.ts +17 -15
  137. package/dist/tools/executions/run-workflow.tool.js +35 -25
  138. package/dist/tools/executions/run-workflow.tool.js.map +1 -1
  139. package/dist/tools/executions/stop-execution.tool.d.ts +7 -4
  140. package/dist/tools/executions/stop-execution.tool.js +8 -3
  141. package/dist/tools/executions/stop-execution.tool.js.map +1 -1
  142. package/dist/tools/filesystem/create-tools-from-mcp-server.js +77 -6
  143. package/dist/tools/filesystem/create-tools-from-mcp-server.js.map +1 -1
  144. package/dist/tools/index.d.ts +67 -2380
  145. package/dist/tools/index.js +9 -15
  146. package/dist/tools/index.js.map +1 -1
  147. package/dist/tools/nodes/explore-node-resources.tool.d.ts +23 -10
  148. package/dist/tools/nodes/explore-node-resources.tool.js +27 -25
  149. package/dist/tools/nodes/explore-node-resources.tool.js.map +1 -1
  150. package/dist/tools/nodes/get-node-description.tool.d.ts +7 -20
  151. package/dist/tools/nodes/get-node-description.tool.js +5 -3
  152. package/dist/tools/nodes/get-node-description.tool.js.map +1 -1
  153. package/dist/tools/nodes/get-node-type-definition.tool.d.ts +29 -6
  154. package/dist/tools/nodes/get-node-type-definition.tool.js +9 -7
  155. package/dist/tools/nodes/get-node-type-definition.tool.js.map +1 -1
  156. package/dist/tools/nodes/get-suggested-nodes.tool.d.ts +7 -12
  157. package/dist/tools/nodes/get-suggested-nodes.tool.js +9 -7
  158. package/dist/tools/nodes/get-suggested-nodes.tool.js.map +1 -1
  159. package/dist/tools/nodes/list-nodes.tool.d.ts +7 -3
  160. package/dist/tools/nodes/list-nodes.tool.js +8 -6
  161. package/dist/tools/nodes/list-nodes.tool.js.map +1 -1
  162. package/dist/tools/nodes/node-search-engine.d.ts +1 -0
  163. package/dist/tools/nodes/node-search-engine.js +12 -9
  164. package/dist/tools/nodes/node-search-engine.js.map +1 -1
  165. package/dist/tools/nodes/search-nodes.tool.d.ts +12 -24
  166. package/dist/tools/nodes/search-nodes.tool.js +21 -17
  167. package/dist/tools/nodes/search-nodes.tool.js.map +1 -1
  168. package/dist/tools/orchestration/add-plan-item.tool.d.ts +5 -0
  169. package/dist/tools/orchestration/add-plan-item.tool.js +91 -0
  170. package/dist/tools/orchestration/add-plan-item.tool.js.map +1 -0
  171. package/dist/tools/orchestration/blueprint-accumulator.d.ts +50 -0
  172. package/dist/tools/orchestration/blueprint-accumulator.js +215 -0
  173. package/dist/tools/orchestration/blueprint-accumulator.js.map +1 -0
  174. package/dist/tools/orchestration/blueprint.schema.d.ts +271 -0
  175. package/dist/tools/orchestration/blueprint.schema.js +61 -0
  176. package/dist/tools/orchestration/blueprint.schema.js.map +1 -0
  177. package/dist/tools/orchestration/browser-credential-setup.tool.d.ts +15 -12
  178. package/dist/tools/orchestration/browser-credential-setup.tool.js +27 -21
  179. package/dist/tools/orchestration/browser-credential-setup.tool.js.map +1 -1
  180. package/dist/tools/orchestration/build-workflow-agent.prompt.d.ts +1 -1
  181. package/dist/tools/orchestration/build-workflow-agent.prompt.js +43 -149
  182. package/dist/tools/orchestration/build-workflow-agent.prompt.js.map +1 -1
  183. package/dist/tools/orchestration/build-workflow-agent.tool.d.ts +11 -4
  184. package/dist/tools/orchestration/build-workflow-agent.tool.js +52 -82
  185. package/dist/tools/orchestration/build-workflow-agent.tool.js.map +1 -1
  186. package/dist/tools/orchestration/cancel-background-task.tool.d.ts +7 -3
  187. package/dist/tools/orchestration/cancel-background-task.tool.js +5 -3
  188. package/dist/tools/orchestration/cancel-background-task.tool.js.map +1 -1
  189. package/dist/tools/orchestration/correct-background-task.tool.d.ts +9 -3
  190. package/dist/tools/orchestration/correct-background-task.tool.js +8 -6
  191. package/dist/tools/orchestration/correct-background-task.tool.js.map +1 -1
  192. package/dist/tools/orchestration/data-table-agent.prompt.d.ts +1 -1
  193. package/dist/tools/orchestration/data-table-agent.prompt.js +20 -0
  194. package/dist/tools/orchestration/data-table-agent.prompt.js.map +1 -1
  195. package/dist/tools/orchestration/data-table-agent.tool.d.ts +9 -4
  196. package/dist/tools/orchestration/data-table-agent.tool.js +23 -25
  197. package/dist/tools/orchestration/data-table-agent.tool.js.map +1 -1
  198. package/dist/tools/orchestration/delegate.schemas.d.ts +12 -0
  199. package/dist/tools/orchestration/delegate.schemas.js +17 -0
  200. package/dist/tools/orchestration/delegate.schemas.js.map +1 -1
  201. package/dist/tools/orchestration/delegate.tool.d.ts +1 -10
  202. package/dist/tools/orchestration/delegate.tool.js +42 -41
  203. package/dist/tools/orchestration/delegate.tool.js.map +1 -1
  204. package/dist/tools/orchestration/plan-agent-prompt.d.ts +1 -0
  205. package/dist/tools/orchestration/plan-agent-prompt.js +76 -0
  206. package/dist/tools/orchestration/plan-agent-prompt.js.map +1 -0
  207. package/dist/tools/orchestration/plan-with-agent.tool.d.ts +2 -0
  208. package/dist/tools/orchestration/plan-with-agent.tool.js +277 -0
  209. package/dist/tools/orchestration/plan-with-agent.tool.js.map +1 -0
  210. package/dist/tools/orchestration/plan.tool.d.ts +7 -39
  211. package/dist/tools/orchestration/plan.tool.js +15 -13
  212. package/dist/tools/orchestration/plan.tool.js.map +1 -1
  213. package/dist/tools/orchestration/report-verification-verdict.tool.d.ts +23 -3
  214. package/dist/tools/orchestration/report-verification-verdict.tool.js +27 -28
  215. package/dist/tools/orchestration/report-verification-verdict.tool.js.map +1 -1
  216. package/dist/tools/orchestration/research-with-agent.tool.d.ts +11 -4
  217. package/dist/tools/orchestration/research-with-agent.tool.js +26 -21
  218. package/dist/tools/orchestration/research-with-agent.tool.js.map +1 -1
  219. package/dist/tools/orchestration/submit-plan.tool.d.ts +3 -0
  220. package/dist/tools/orchestration/submit-plan.tool.js +81 -0
  221. package/dist/tools/orchestration/submit-plan.tool.js.map +1 -0
  222. package/dist/tools/orchestration/update-tasks.tool.d.ts +1 -9
  223. package/dist/tools/orchestration/update-tasks.tool.js.map +1 -1
  224. package/dist/tools/orchestration/verify-built-workflow.tool.d.ts +13 -7
  225. package/dist/tools/orchestration/verify-built-workflow.tool.js +14 -15
  226. package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
  227. package/dist/tools/shared/ask-user.tool.d.ts +42 -31
  228. package/dist/tools/shared/ask-user.tool.js +16 -15
  229. package/dist/tools/shared/ask-user.tool.js.map +1 -1
  230. package/dist/tools/templates/search-template-parameters.tool.d.ts +14 -7
  231. package/dist/tools/templates/search-template-parameters.tool.js +17 -15
  232. package/dist/tools/templates/search-template-parameters.tool.js.map +1 -1
  233. package/dist/tools/templates/search-template-structures.tool.d.ts +11 -8
  234. package/dist/tools/templates/search-template-structures.tool.js +13 -11
  235. package/dist/tools/templates/search-template-structures.tool.js.map +1 -1
  236. package/dist/tools/web-research/fetch-url.tool.d.ts +9 -23
  237. package/dist/tools/web-research/fetch-url.tool.js +30 -14
  238. package/dist/tools/web-research/fetch-url.tool.js.map +1 -1
  239. package/dist/tools/web-research/web-search.tool.d.ts +12 -2
  240. package/dist/tools/web-research/web-search.tool.js +20 -18
  241. package/dist/tools/web-research/web-search.tool.js.map +1 -1
  242. package/dist/tools/workflows/apply-workflow-credentials.tool.d.ts +11 -5
  243. package/dist/tools/workflows/apply-workflow-credentials.tool.js +7 -5
  244. package/dist/tools/workflows/apply-workflow-credentials.tool.js.map +1 -1
  245. package/dist/tools/workflows/build-workflow.tool.d.ts +26 -5
  246. package/dist/tools/workflows/build-workflow.tool.js +23 -20
  247. package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
  248. package/dist/tools/workflows/delete-workflow.tool.d.ts +13 -14
  249. package/dist/tools/workflows/delete-workflow.tool.js +15 -11
  250. package/dist/tools/workflows/delete-workflow.tool.js.map +1 -1
  251. package/dist/tools/workflows/get-workflow-as-code.tool.d.ts +6 -10
  252. package/dist/tools/workflows/get-workflow-as-code.tool.js +5 -3
  253. package/dist/tools/workflows/get-workflow-as-code.tool.js.map +1 -1
  254. package/dist/tools/workflows/get-workflow-version.tool.d.ts +8 -16
  255. package/dist/tools/workflows/get-workflow-version.tool.js +6 -4
  256. package/dist/tools/workflows/get-workflow-version.tool.js.map +1 -1
  257. package/dist/tools/workflows/get-workflow.tool.d.ts +7 -15
  258. package/dist/tools/workflows/get-workflow.tool.js +5 -3
  259. package/dist/tools/workflows/get-workflow.tool.js.map +1 -1
  260. package/dist/tools/workflows/list-workflow-versions.tool.d.ts +11 -3
  261. package/dist/tools/workflows/list-workflow-versions.tool.js +13 -11
  262. package/dist/tools/workflows/list-workflow-versions.tool.js.map +1 -1
  263. package/dist/tools/workflows/list-workflows.tool.d.ts +9 -10
  264. package/dist/tools/workflows/list-workflows.tool.js +12 -10
  265. package/dist/tools/workflows/list-workflows.tool.js.map +1 -1
  266. package/dist/tools/workflows/materialize-node-type.tool.d.ts +29 -11
  267. package/dist/tools/workflows/materialize-node-type.tool.js +9 -7
  268. package/dist/tools/workflows/materialize-node-type.tool.js.map +1 -1
  269. package/dist/tools/workflows/publish-workflow.tool.d.ts +6 -20
  270. package/dist/tools/workflows/publish-workflow.tool.js +29 -24
  271. package/dist/tools/workflows/publish-workflow.tool.js.map +1 -1
  272. package/dist/tools/workflows/restore-workflow-version.tool.d.ts +13 -15
  273. package/dist/tools/workflows/restore-workflow-version.tool.js +15 -8
  274. package/dist/tools/workflows/restore-workflow-version.tool.js.map +1 -1
  275. package/dist/tools/workflows/setup-workflow.service.d.ts +0 -1
  276. package/dist/tools/workflows/setup-workflow.service.js +23 -6
  277. package/dist/tools/workflows/setup-workflow.service.js.map +1 -1
  278. package/dist/tools/workflows/setup-workflow.tool.d.ts +7 -144
  279. package/dist/tools/workflows/setup-workflow.tool.js +10 -14
  280. package/dist/tools/workflows/setup-workflow.tool.js.map +1 -1
  281. package/dist/tools/workflows/submit-workflow.tool.d.ts +12 -9
  282. package/dist/tools/workflows/submit-workflow.tool.js +15 -17
  283. package/dist/tools/workflows/submit-workflow.tool.js.map +1 -1
  284. package/dist/tools/workflows/unpublish-workflow.tool.d.ts +13 -15
  285. package/dist/tools/workflows/unpublish-workflow.tool.js +15 -11
  286. package/dist/tools/workflows/unpublish-workflow.tool.js.map +1 -1
  287. package/dist/tools/workflows/update-workflow-version.tool.d.ts +13 -3
  288. package/dist/tools/workflows/update-workflow-version.tool.js +12 -10
  289. package/dist/tools/workflows/update-workflow-version.tool.js.map +1 -1
  290. package/dist/tools/workflows/write-sandbox-file.tool.d.ts +9 -9
  291. package/dist/tools/workflows/write-sandbox-file.tool.js +8 -6
  292. package/dist/tools/workflows/write-sandbox-file.tool.js.map +1 -1
  293. package/dist/tools/workspace/cleanup-test-executions.tool.d.ts +15 -14
  294. package/dist/tools/workspace/cleanup-test-executions.tool.js +19 -15
  295. package/dist/tools/workspace/cleanup-test-executions.tool.js.map +1 -1
  296. package/dist/tools/workspace/create-folder.tool.d.ts +15 -16
  297. package/dist/tools/workspace/create-folder.tool.js +25 -12
  298. package/dist/tools/workspace/create-folder.tool.js.map +1 -1
  299. package/dist/tools/workspace/delete-folder.tool.d.ts +19 -14
  300. package/dist/tools/workspace/delete-folder.tool.js +24 -17
  301. package/dist/tools/workspace/delete-folder.tool.js.map +1 -1
  302. package/dist/tools/workspace/list-folders.tool.d.ts +7 -3
  303. package/dist/tools/workspace/list-folders.tool.js +5 -3
  304. package/dist/tools/workspace/list-folders.tool.js.map +1 -1
  305. package/dist/tools/workspace/list-projects.tool.d.ts +3 -3
  306. package/dist/tools/workspace/list-projects.tool.js +3 -1
  307. package/dist/tools/workspace/list-projects.tool.js.map +1 -1
  308. package/dist/tools/workspace/list-tags.tool.d.ts +3 -6
  309. package/dist/tools/workspace/list-tags.tool.js +3 -1
  310. package/dist/tools/workspace/list-tags.tool.js.map +1 -1
  311. package/dist/tools/workspace/move-workflow-to-folder.tool.d.ts +17 -14
  312. package/dist/tools/workspace/move-workflow-to-folder.tool.js +20 -16
  313. package/dist/tools/workspace/move-workflow-to-folder.tool.js.map +1 -1
  314. package/dist/tools/workspace/tag-workflow.tool.d.ts +15 -14
  315. package/dist/tools/workspace/tag-workflow.tool.js +16 -12
  316. package/dist/tools/workspace/tag-workflow.tool.js.map +1 -1
  317. package/dist/tracing/langsmith-tracing.d.ts +1 -0
  318. package/dist/tracing/langsmith-tracing.js +47 -57
  319. package/dist/tracing/langsmith-tracing.js.map +1 -1
  320. package/dist/types.d.ts +27 -50
  321. package/dist/utils/eval-agents.d.ts +10 -0
  322. package/dist/utils/eval-agents.js +54 -0
  323. package/dist/utils/eval-agents.js.map +1 -0
  324. package/dist/workflow-builder/sdk-prompt-sections.d.ts +1 -4
  325. package/dist/workflow-builder/sdk-prompt-sections.js +5 -513
  326. package/dist/workflow-builder/sdk-prompt-sections.js.map +1 -1
  327. package/dist/workflow-loop/guidance.js +3 -5
  328. package/dist/workflow-loop/guidance.js.map +1 -1
  329. package/dist/workspace/create-workspace.d.ts +1 -1
  330. package/dist/workspace/create-workspace.js +3 -2
  331. package/dist/workspace/create-workspace.js.map +1 -1
  332. package/dist/workspace/daytona-filesystem.js +15 -1
  333. package/dist/workspace/daytona-filesystem.js.map +1 -1
  334. package/dist/workspace/snapshot-manager.d.ts +4 -2
  335. package/dist/workspace/snapshot-manager.js +7 -2
  336. package/dist/workspace/snapshot-manager.js.map +1 -1
  337. package/package.json +29 -11
  338. package/dist/memory/working-memory-template.d.ts +0 -1
  339. package/dist/memory/working-memory-template.js +0 -25
  340. package/dist/memory/working-memory-template.js.map +0 -1
  341. package/dist/runtime/working-memory-tracing.d.ts +0 -19
  342. package/dist/runtime/working-memory-tracing.js +0 -111
  343. package/dist/runtime/working-memory-tracing.js.map +0 -1
  344. package/dist/tools/best-practices/guides/chatbot.d.ts +0 -1
  345. package/dist/tools/best-practices/guides/chatbot.js +0 -111
  346. package/dist/tools/best-practices/guides/chatbot.js.map +0 -1
  347. package/dist/tools/best-practices/guides/content-generation.d.ts +0 -1
  348. package/dist/tools/best-practices/guides/content-generation.js +0 -108
  349. package/dist/tools/best-practices/guides/content-generation.js.map +0 -1
  350. package/dist/tools/best-practices/guides/data-extraction.d.ts +0 -1
  351. package/dist/tools/best-practices/guides/data-extraction.js +0 -115
  352. package/dist/tools/best-practices/guides/data-extraction.js.map +0 -1
  353. package/dist/tools/best-practices/guides/data-persistence.d.ts +0 -1
  354. package/dist/tools/best-practices/guides/data-persistence.js +0 -198
  355. package/dist/tools/best-practices/guides/data-persistence.js.map +0 -1
  356. package/dist/tools/best-practices/guides/data-transformation.d.ts +0 -1
  357. package/dist/tools/best-practices/guides/data-transformation.js +0 -139
  358. package/dist/tools/best-practices/guides/data-transformation.js.map +0 -1
  359. package/dist/tools/best-practices/guides/document-processing.d.ts +0 -1
  360. package/dist/tools/best-practices/guides/document-processing.js +0 -326
  361. package/dist/tools/best-practices/guides/document-processing.js.map +0 -1
  362. package/dist/tools/best-practices/guides/form-input.d.ts +0 -1
  363. package/dist/tools/best-practices/guides/form-input.js +0 -166
  364. package/dist/tools/best-practices/guides/form-input.js.map +0 -1
  365. package/dist/tools/best-practices/guides/notification.d.ts +0 -1
  366. package/dist/tools/best-practices/guides/notification.js +0 -128
  367. package/dist/tools/best-practices/guides/notification.js.map +0 -1
  368. package/dist/tools/best-practices/guides/scheduling.d.ts +0 -1
  369. package/dist/tools/best-practices/guides/scheduling.js +0 -145
  370. package/dist/tools/best-practices/guides/scheduling.js.map +0 -1
  371. package/dist/tools/best-practices/guides/scraping-and-research.d.ts +0 -1
  372. package/dist/tools/best-practices/guides/scraping-and-research.js +0 -151
  373. package/dist/tools/best-practices/guides/scraping-and-research.js.map +0 -1
  374. package/dist/tools/best-practices/guides/triage.d.ts +0 -1
  375. package/dist/tools/best-practices/guides/triage.js +0 -142
  376. package/dist/tools/best-practices/guides/triage.js.map +0 -1
  377. package/dist/tools/filesystem/get-file-tree.tool.d.ts +0 -22
  378. package/dist/tools/filesystem/get-file-tree.tool.js +0 -64
  379. package/dist/tools/filesystem/get-file-tree.tool.js.map +0 -1
  380. package/dist/tools/filesystem/list-files.tool.d.ts +0 -30
  381. package/dist/tools/filesystem/list-files.tool.js +0 -100
  382. package/dist/tools/filesystem/list-files.tool.js.map +0 -1
  383. package/dist/tools/filesystem/read-file.tool.d.ts +0 -25
  384. package/dist/tools/filesystem/read-file.tool.js +0 -83
  385. package/dist/tools/filesystem/read-file.tool.js.map +0 -1
  386. package/dist/tools/filesystem/search-files.tool.d.ts +0 -31
  387. package/dist/tools/filesystem/search-files.tool.js +0 -96
  388. package/dist/tools/filesystem/search-files.tool.js.map +0 -1
@@ -1,115 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDocumentation = getDocumentation;
4
- function getDocumentation() {
5
- return `# Best Practices: Data Extraction Workflows
6
-
7
- ## Node Selection by Data Type
8
-
9
- Choose the right node for your data source. Use Extract From File for CSV, Excel, PDF, and text files to convert binary data to JSON for further processing.
10
-
11
- Use Information Extractor or AI nodes for extracting structured data from unstructured text such as PDFs or emails using LLMs.
12
-
13
- For binary data, ensure you use nodes like Extract From File to handle files properly.
14
-
15
- ### Referencing Binary Data from Other Nodes
16
- When you need to reference binary data from a previous node, use this syntax:
17
- - Expression: '{{ $('Node Name').item.binary.property_name }}' or {{ $binary.property_name }} if previous item
18
- - Example for Gmail attachments: '{{ $('Gmail Trigger').item.binary.attachment_0 }}' or {{ $binary.attachment_0 }} if previous item
19
- - Example for webhook data: '{{ $('Webhook').item.binary.data }}' or {{ $binary.data }} if previous item
20
- - Important: The property name depends on how the previous node names the binary data
21
-
22
- ## Data Structure & Type Management
23
-
24
- Normalize data structure early in your workflow. Use transformation nodes like Split Out, Aggregate, or Set to ensure your data matches n8n's expected structure: an array of objects with a json key.
25
- Not transforming incoming data to n8n's expected format causes downstream node failures.
26
-
27
- When working with large amounts of information, n8n's display can be hard to view. Use the Edit Fields node to help organize and view data more clearly during development and debugging.
28
-
29
- ## Large File Handling
30
-
31
- Process files in batches or use sub-workflows to avoid memory issues. For large binary files, consider enabling filesystem mode (N8N_DEFAULT_BINARY_DATA_MODE=filesystem) if self-hosted, to store binary data on disk instead of memory.
32
-
33
- Processing too many items or large files at once can crash your instance. Always batch or split processing for large datasets to manage memory effectively.
34
-
35
- ## Binary Data Management
36
-
37
- Binary data can be lost if intermediate nodes (like Set or Code) do not have "Include Other Input Fields" enabled, especially in sub-workflows. Always verify binary data is preserved through your workflow pipeline.
38
-
39
- ## AI-Powered Extraction
40
-
41
- Leverage AI for unstructured data using nodes like Information Extractor or Summarization Chain to extract structured data from unstructured sources such as PDFs, emails, or web pages.
42
-
43
- ## Recommended Nodes
44
-
45
- ### Loop Over Items (n8n-nodes-base.splitInBatches)
46
-
47
- Purpose: Looping over a set of items extracted from a data set, for example if pulling a lot of data
48
- from a Google Sheet or database then looping over the items is required. This node MUST be used
49
- if the user mentions a large amount of data, it is necessary to batch the data to process all of it.
50
-
51
- ### Extract From File (n8n-nodes-base.extractFromFile)
52
-
53
- Purpose: Converts binary data from CSV, Excel, PDF, and text files to JSON for processing
54
-
55
- Pitfalls:
56
-
57
- - Ensure the correct binary field name is specified in the node configuration
58
- - Verify file format compatibility before extraction
59
-
60
- ### HTML Extract (n8n-nodes-base.htmlExtract)
61
-
62
- Purpose: Scrapes data from web pages using CSS selectors
63
-
64
- ### Split Out (n8n-nodes-base.splitOut)
65
-
66
- Purpose: Processes arrays of items individually for sequential operations.
67
- Example: If retrieving a JSON array using a HTTP request, this will return a single item,
68
- containing that array. If you wish to use a Loop Over Items (n8n-nodes-base.splitInBatches) node,
69
- then you will need to split out the array into items before looping over it. In a scenario like
70
- this a split out node MUST be used before looping over the items.
71
-
72
- ### Edit Fields (Set) (n8n-nodes-base.set)
73
-
74
- Purpose: Data transformation and mapping to normalize structure
75
-
76
- Pitfalls:
77
-
78
- - Enable "Include Other Input Fields" to preserve binary data
79
- - Pay attention to data types - mixing types causes unexpected failures
80
-
81
- ### Information Extractor (@n8n/n8n-nodes-langchain.informationExtractor)
82
-
83
- Purpose: AI-powered extraction of structured data from unstructured text
84
-
85
- Pitfalls:
86
-
87
- - Requires proper schema definition for extraction
88
-
89
- ### Summarization Chain (@n8n/n8n-nodes-langchain.chainSummarization)
90
-
91
- Purpose: Summarizes large text blocks using AI for condensed information extraction
92
-
93
- Pitfalls:
94
-
95
- - Context window limits may truncate very long documents
96
- - Verify summary quality matches requirements
97
-
98
- ### HTTP Request (n8n-nodes-base.httpRequest)
99
-
100
- Purpose: Fetches data from APIs or web pages for extraction
101
-
102
- ### Code (n8n-nodes-base.code)
103
-
104
- Purpose: Custom logic for complex data transformations
105
-
106
- ## Common Pitfalls to Avoid
107
-
108
- Data Type Confusion: People often mix up data types - n8n can be very lenient but it can lead to problems. Pay close attention to what type you are getting and ensure consistency throughout the workflow.
109
-
110
- Binary Data Loss: Binary data can be lost if intermediate nodes (Set, Code) do not have "Include Other Input Fields" enabled, especially in sub-workflows. Always verify binary data preservation.
111
-
112
- Large Data Display Issues: n8n displaying large amounts of information can be hard to view during development. Use the Edit Fields node to help organize and view data more clearly.
113
- `;
114
- }
115
- //# sourceMappingURL=data-extraction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-extraction.js","sourceRoot":"","sources":["../../../../src/tools/best-practices/guides/data-extraction.ts"],"names":[],"mappings":";;AAAA,4CA8GC;AA9GD,SAAgB,gBAAgB;IAC/B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4GP,CAAC;AACF,CAAC"}
@@ -1 +0,0 @@
1
- export declare function getDocumentation(): string;
@@ -1,198 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDocumentation = getDocumentation;
4
- function getDocumentation() {
5
- return `# Best Practices: Data Persistence
6
-
7
- ## Overview
8
-
9
- Data persistence involves storing, updating, or retrieving records from durable storage systems. This technique is essential when you need to maintain data beyond the lifetime of a single workflow execution, or when you need to access existing data that users have stored in their spreadsheets, tables, or databases as part of your workflow logic.
10
-
11
- ## When to Use Data Persistence
12
-
13
- Use data persistence when you need to:
14
- - Store workflow results for later retrieval or audit trails
15
- - Maintain records that multiple workflows can access and update
16
- - Create a centralized data repository for your automation
17
- - Archive historical data for reporting or compliance
18
- - Build data that persists across workflow executions
19
- - Track changes or maintain state over time
20
- - Store raw form inputs
21
-
22
- ## Choosing the Right Storage Node
23
-
24
- ### Data Table (n8n-nodes-base.dataTable) - PREFERRED
25
-
26
- **Best for:** Quick setup, small to medium amounts of data
27
-
28
- Advantages:
29
- - No credentials or external configuration required
30
- - Built directly into n8n
31
- - Fast and reliable for small to medium datasets
32
- - Ideal for prototyping and internal workflows
33
- - No additional costs or external dependencies
34
-
35
- When to use:
36
- - Internal workflow data storage
37
- - Temporary or staging data
38
- - Admin/audit trails
39
- - Simple record keeping
40
- - Development and testing
41
-
42
- ### Google Sheets (n8n-nodes-base.googleSheets)
43
-
44
- **Best for:** Collaboration, reporting, easy data sharing
45
-
46
- Advantages:
47
- - Familiar spreadsheet interface for non-technical users
48
- - Easy to share and collaborate on data
49
- - Built-in visualization and formula capabilities
50
- - Good for reporting and dashboards
51
- - Accessible from anywhere
52
-
53
- When to use:
54
- - Data needs to be viewed/edited by multiple people
55
- - Non-technical users need access to data
56
- - Integration with other Google Workspace tools
57
- - Simple data structures without complex relationships
58
- - Workflow needs access to existing spreadsheets in Google Sheets
59
-
60
- Pitfalls:
61
- - API rate limits can affect high-volume workflows
62
- - Not suitable for frequently changing data
63
- - Performance degrades with very large datasets (>10k rows)
64
-
65
- ### Airtable (n8n-nodes-base.airtable)
66
-
67
- **Best for:** Structured data with relationships, rich field types
68
-
69
- Advantages:
70
- - Supports relationships between tables
71
- - Rich field types (attachments, select, links, etc.)
72
- - Better structure than spreadsheets
73
-
74
- When to use:
75
- - Data has relationships or references between records
76
- - Need structured database-like features
77
- - Managing projects, tasks, or inventory
78
- - Workflow needs access to existing data in Airtable
79
-
80
- Pitfalls:
81
- - Requires Airtable account and API key
82
- - Schema changes require careful planning
83
-
84
- ## Storage Patterns
85
-
86
- ### Immediate Storage Pattern
87
-
88
- Store data immediately after collection or generation:
89
-
90
- \`\`\`mermaid
91
- flowchart LR
92
- Trigger --> Process_Data["Process Data"]
93
- Process_Data --> Storage_Node["Storage Node"]
94
- Storage_Node --> Continue_Workflow["Continue Workflow"]
95
- \`\`\`
96
-
97
- Best for: Raw data preservation, audit trails, form submissions
98
-
99
- ### Batch Storage Pattern
100
-
101
- Collect multiple items and store them together:
102
-
103
- \`\`\`mermaid
104
- flowchart LR
105
- Trigger --> Loop_Split["Loop/Split"]
106
- Loop_Split --> Process["Process"]
107
- Process --> Aggregate["Aggregate"]
108
- Aggregate --> Storage_Node["Storage Node"]
109
- \`\`\`
110
-
111
- Best for: Processing lists, batch operations, scheduled aggregations
112
-
113
- ### Update Pattern
114
-
115
- Retrieve, modify, and update existing records:
116
-
117
- \`\`\`mermaid
118
- flowchart LR
119
- Trigger --> Retrieve["Retrieve from Storage"]
120
- Retrieve --> Modify["Modify"]
121
- Modify --> Update_Storage["Update Storage Node"]
122
- \`\`\`
123
-
124
- Best for: Maintaining state, updating records, tracking changes
125
-
126
- ### Lookup Pattern
127
-
128
- Query storage to retrieve specific records:
129
-
130
- \`\`\`mermaid
131
- flowchart LR
132
- Trigger --> Query_Storage["Query Storage Node"]
133
- Query_Storage --> Use_Data["Use Retrieved Data"]
134
- Use_Data --> Continue_Workflow["Continue Workflow"]
135
- \`\`\`
136
-
137
- Best for: Enrichment, validation, conditional logic based on stored data
138
-
139
- ## Key Considerations
140
-
141
- ### Data Structure
142
-
143
- - **Plan your schema ahead:** Define what fields you need before creating storage
144
- - **Use consistent field names:** Match field names across your workflow for easy mapping
145
- - **Consider data types:** Ensure your storage supports the data types you need
146
- - **Think about relationships:** If data is related, consider Airtable or use multiple tables
147
-
148
- ### Performance
149
-
150
- - **Batch operations when possible:** Multiple small writes are slower than batch operations
151
- - **Use appropriate operations:** Use "append" for new records, "update" for modifications
152
- - **Consider API limits:** Google Sheets has rate limits; plan accordingly for high-volume workflows
153
-
154
- ### Data Integrity
155
-
156
- - **Store raw data first:** Keep unmodified input before transformations
157
- - **Handle errors gracefully:** Use error handling to prevent data loss on failures
158
- - **Validate before storing:** Ensure data quality before persistence
159
- - **Avoid duplicates:** Use unique identifiers or upsert operations when appropriate
160
-
161
- ## Referencing Documents, Sheets, or Tables
162
-
163
- When configuring storage nodes, use ResourceLocator mode "list". This will allow users to select from existing documents, sheets, or tables rather than passing IDs dynamically.
164
- Use modes "id", "url" or "name" only when user specifically mentions it in their prompt.
165
-
166
- ## Important Distinctions
167
-
168
- ### Storage vs. Transformation
169
-
170
- - **Set/Merge nodes are NOT storage:** They transform data in memory only
171
- - **Storage happens explicitly:** Data won't persist unless you explicitly write it to storage
172
-
173
- ### Temporary vs. Persistent Storage
174
-
175
- - **NOT covered by this technique:** Redis, caching, session storage, in-memory operations
176
- - **This technique covers:** Durable storage that persists beyond workflow execution
177
- - **Focus on permanence:** Use these nodes when you need data to survive restarts and be queryable later
178
-
179
- ## Common Pitfalls to Avoid
180
-
181
- ### Not Handling Duplicates
182
-
183
- Without proper unique identifiers or upsert logic, you may create duplicate records. Use unique IDs or check for existing records before inserting.
184
-
185
- ### Ignoring Storage Limits
186
-
187
- Each storage system has limits (row counts, API rates, file sizes). Design your workflow to work within these constraints or implement pagination/batching.
188
-
189
- ### Not Handling Empty Query Results
190
-
191
- Data Tables and other storage nodes return 0 items when:
192
- - The table is freshly created and has no rows yet
193
- - A filter/lookup query matches nothing
194
-
195
- This silently breaks the downstream chain — all nodes after the empty result are skipped. Always set \`alwaysOutputData: true\` on data-fetching nodes (operation: 'get') when downstream nodes depend on their output.
196
- `;
197
- }
198
- //# sourceMappingURL=data-persistence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-persistence.js","sourceRoot":"","sources":["../../../../src/tools/best-practices/guides/data-persistence.ts"],"names":[],"mappings":";;AAAA,4CAiMC;AAjMD,SAAgB,gBAAgB;IAC/B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+LP,CAAC;AACF,CAAC"}
@@ -1 +0,0 @@
1
- export declare function getDocumentation(): string;
@@ -1,139 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDocumentation = getDocumentation;
4
- function getDocumentation() {
5
- return `# Best Practices: Data Transformation
6
-
7
- ## Workflow Design
8
-
9
- ### Core Principles
10
- - **Structure**: Always follow Input -> Transform -> Output pattern
11
- - **Optimization**: Filter and reduce data early to improve performance
12
-
13
- ### Design Best Practices
14
- - Plan transformation requirements in plain language before building
15
- - Use Modular Design: Create reusable sub-workflows for common tasks like "Data Cleaning" or "Error Handler"
16
- - Batch datasets over 100 items using Split In Batches node to prevent timeouts
17
-
18
- ## Recommended Nodes
19
-
20
- ### Essential Transformation Nodes
21
-
22
- #### Edit Fields (Set) (n8n-nodes-base.set)
23
-
24
- **Purpose**: Create, modify, rename fields; change data types
25
-
26
- **Key Setting**: "Keep Only Set" - drops all fields not explicitly defined (default: disabled)
27
-
28
- **Use Cases**:
29
- - Extract specific columns
30
- - Add calculated fields
31
- - Convert data types (string to number)
32
- - Format dates using expressions
33
-
34
- **Pitfalls**:
35
- - Not understanding "Keep Only Set" behavior can lead to data loss
36
- - Enabled: Drops all fields not explicitly defined (data loss risk)
37
- - Disabled: Carries forward all fields (potential bloat)
38
- - Always verify output structure after configuration
39
-
40
- **Testing tip**: When transforming data from a workflow trigger, you can set values with a fallback default e.g. set name to {{$json.name || 'Jane Doe'}} to help test the workflow.
41
-
42
- #### IF/Filter Nodes
43
-
44
- **IF Node** (n8n-nodes-base.if):
45
- - **Purpose**: Conditional processing and routing
46
- - **Best Practice**: Use early to validate inputs and remove bad data
47
- - **Example**: Check if required fields exist before processing
48
-
49
- **Filter Node** (n8n-nodes-base.filter):
50
- - **Purpose**: Filter items based on conditions
51
- - **Best Practice**: Use early in workflow to reduce data volume
52
-
53
- #### Merge Node (n8n-nodes-base.merge)
54
-
55
- **Purpose**: Combine two data streams
56
-
57
- **Modes**:
58
- - Merge by Key (like database join)
59
- - Merge by Index
60
- - Append
61
-
62
- **Pitfalls**:
63
- - **Missing Keys**: Trying to merge on non-existent fields
64
- - **Field Name Mismatch**: Different field names in sources
65
- - **Solution**: Use Edit Fields node to normalize field names before merging
66
-
67
- #### Code Node (n8n-nodes-base.code)
68
-
69
- **Execution Modes**:
70
- - "Run Once per Item": Process each item independently
71
- - "Run Once for All Items": Access entire dataset (for aggregation)
72
-
73
- **Return Format**: Must return array of objects with json property
74
- \`\`\`javascript
75
- return items; // or return [{ json: {...} }];
76
- \`\`\`
77
-
78
- **Pitfalls**:
79
- - Wrong return format: Not returning array of objects with json property
80
- - Overly complex: Stuffing entire workflow logic in one Code node
81
- - Keep code nodes focused on single transformation aspect
82
-
83
- #### Summarize Node (n8n-nodes-base.summarize)
84
-
85
- **Purpose**: Pivot table-style aggregations (count, sum, average, min/max)
86
-
87
- **Configuration**:
88
- - Fields to Summarize: Choose aggregation function
89
- - Fields to Split By: Grouping keys
90
-
91
- **Output**: Single item with summary or multiple items per group
92
-
93
- ### Data Restructuring Nodes
94
-
95
- - **Split Out** (n8n-nodes-base.splitOut): Convert single item with array into multiple items
96
- - **Aggregate** (n8n-nodes-base.aggregate): Combine multiple items into one
97
- - **Remove Duplicates** (n8n-nodes-base.removeDuplicates): Delete duplicate items based on field criteria
98
- - **Sort** (n8n-nodes-base.sort): Order items alphabetically/numerically
99
- - **Limit** (n8n-nodes-base.limit): Trim to maximum number of items
100
-
101
- ### Batch Processing
102
-
103
- **Split In Batches** (n8n-nodes-base.splitInBatches):
104
- - **Purpose**: Process large datasets in chunks
105
- - **Use When**: Handling 100+ items with expensive operations (API calls, AI)
106
-
107
- ## Input Data Validation
108
- - Validate external data before processing: check for nulls, empty values, and edge cases (special chars, empty arrays)
109
-
110
- ## Common Pitfalls to Avoid
111
-
112
- ### Critical Mistakes
113
-
114
- #### Edit Fields Node Issues
115
- - **Mistake**: Not understanding "Keep Only Set" behavior
116
- - Enabled: Drops all fields not explicitly defined (data loss risk)
117
- - Disabled: Carries forward all fields (potential bloat)
118
- - **Solution**: Always verify output structure after configuration
119
-
120
- #### Code Node Errors
121
- - **Wrong Return Format**: Not returning array of objects with json property
122
- - **Fix**: Always return \`items\` or \`[{ json: {...} }]\`
123
- - **Overly Complex**: Stuffing entire workflow logic in one Code node
124
- - **Fix**: Keep code nodes focused on single transformation aspect
125
-
126
- #### Merge Node Problems
127
- - **Field Name Mismatch**: Different field names in sources
128
- - **Fix**: Normalize field names with Edit Fields before merging
129
-
130
- ### Performance Pitfalls
131
- - Processing large datasets without batching -> timeouts
132
- - Not filtering early -> unnecessary processing overhead
133
- - Excessive node chaining -> visual clutter and slow execution
134
-
135
- ### Data Validation Pitfalls
136
- - Assuming input data is always perfect -> runtime errors
137
- `;
138
- }
139
- //# sourceMappingURL=data-transformation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-transformation.js","sourceRoot":"","sources":["../../../../src/tools/best-practices/guides/data-transformation.ts"],"names":[],"mappings":";;AAAA,4CAsIC;AAtID,SAAgB,gBAAgB;IAC/B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoIP,CAAC;AACF,CAAC"}
@@ -1 +0,0 @@
1
- export declare function getDocumentation(): string;