@n8n/ai-workflow-builder 1.0.2 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/dist/agents/responder.agent.d.ts +1 -0
  2. package/dist/agents/responder.agent.js +9 -33
  3. package/dist/agents/responder.agent.js.map +1 -1
  4. package/dist/agents/supervisor.agent.d.ts +1 -0
  5. package/dist/agents/supervisor.agent.js +7 -38
  6. package/dist/agents/supervisor.agent.js.map +1 -1
  7. package/dist/ai-workflow-builder-agent.service.d.ts +2 -1
  8. package/dist/ai-workflow-builder-agent.service.js +18 -12
  9. package/dist/ai-workflow-builder-agent.service.js.map +1 -1
  10. package/dist/build.tsbuildinfo +1 -1
  11. package/dist/chains/conversation-compact.js +2 -13
  12. package/dist/chains/conversation-compact.js.map +1 -1
  13. package/dist/chains/parameter-updater.js +21 -7
  14. package/dist/chains/parameter-updater.js.map +1 -1
  15. package/dist/chains/prompt-categorization.js +3 -81
  16. package/dist/chains/prompt-categorization.js.map +1 -1
  17. package/dist/chains/workflow-name.js +2 -10
  18. package/dist/chains/workflow-name.js.map +1 -1
  19. package/dist/constants.d.ts +2 -0
  20. package/dist/constants.js +3 -1
  21. package/dist/constants.js.map +1 -1
  22. package/dist/multi-agent-workflow-subgraphs.d.ts +38 -1
  23. package/dist/multi-agent-workflow-subgraphs.js +34 -2
  24. package/dist/multi-agent-workflow-subgraphs.js.map +1 -1
  25. package/dist/parent-graph-state.d.ts +4 -0
  26. package/dist/parent-graph-state.js +14 -1
  27. package/dist/parent-graph-state.js.map +1 -1
  28. package/dist/prompts/agents/builder.prompt.d.ts +1 -0
  29. package/dist/prompts/agents/builder.prompt.js +242 -0
  30. package/dist/prompts/agents/builder.prompt.js.map +1 -0
  31. package/dist/prompts/agents/configurator.prompt.d.ts +2 -0
  32. package/dist/prompts/agents/configurator.prompt.js +125 -0
  33. package/dist/prompts/agents/configurator.prompt.js.map +1 -0
  34. package/dist/prompts/agents/discovery.prompt.d.ts +11 -0
  35. package/dist/prompts/agents/discovery.prompt.js +259 -0
  36. package/dist/prompts/agents/discovery.prompt.js.map +1 -0
  37. package/dist/prompts/agents/responder.prompt.d.ts +1 -0
  38. package/dist/prompts/agents/responder.prompt.js +41 -0
  39. package/dist/prompts/agents/responder.prompt.js.map +1 -0
  40. package/dist/prompts/agents/supervisor.prompt.d.ts +1 -0
  41. package/dist/prompts/agents/supervisor.prompt.js +43 -0
  42. package/dist/prompts/agents/supervisor.prompt.js.map +1 -0
  43. package/dist/prompts/builder/index.d.ts +2 -0
  44. package/dist/prompts/builder/index.js +7 -0
  45. package/dist/prompts/builder/index.js.map +1 -0
  46. package/dist/prompts/builder/prompt-builder.d.ts +17 -0
  47. package/dist/prompts/builder/prompt-builder.js +147 -0
  48. package/dist/prompts/builder/prompt-builder.js.map +1 -0
  49. package/dist/prompts/builder/types.d.ts +22 -0
  50. package/dist/prompts/builder/types.js +3 -0
  51. package/dist/prompts/builder/types.js.map +1 -0
  52. package/dist/prompts/chains/categorization.prompt.d.ts +43 -0
  53. package/dist/prompts/chains/categorization.prompt.js +86 -0
  54. package/dist/prompts/chains/categorization.prompt.js.map +1 -0
  55. package/dist/prompts/chains/compact.prompt.d.ts +2 -0
  56. package/dist/prompts/chains/compact.prompt.js +16 -0
  57. package/dist/prompts/chains/compact.prompt.js.map +1 -0
  58. package/dist/prompts/chains/parameter-updater/examples/if-node.d.ts +2 -0
  59. package/dist/{chains/prompts/examples/basic/if-node-examples.js → prompts/chains/parameter-updater/examples/if-node.js} +6 -3
  60. package/dist/prompts/chains/parameter-updater/examples/if-node.js.map +1 -0
  61. package/dist/prompts/chains/parameter-updater/examples/index.d.ts +6 -0
  62. package/dist/prompts/chains/parameter-updater/examples/index.js +16 -0
  63. package/dist/prompts/chains/parameter-updater/examples/index.js.map +1 -0
  64. package/dist/prompts/chains/parameter-updater/examples/resource-locator.d.ts +2 -0
  65. package/dist/{chains/prompts/examples/advanced/resource-locator-examples.js → prompts/chains/parameter-updater/examples/resource-locator.js} +7 -3
  66. package/dist/prompts/chains/parameter-updater/examples/resource-locator.js.map +1 -0
  67. package/dist/prompts/chains/parameter-updater/examples/set-node.d.ts +2 -0
  68. package/dist/{chains/prompts/examples/basic/set-node-examples.js → prompts/chains/parameter-updater/examples/set-node.js} +6 -3
  69. package/dist/prompts/chains/parameter-updater/examples/set-node.js.map +1 -0
  70. package/dist/prompts/chains/parameter-updater/examples/simple-updates.d.ts +2 -0
  71. package/dist/{chains/prompts/examples/basic → prompts/chains/parameter-updater/examples}/simple-updates.js +8 -5
  72. package/dist/prompts/chains/parameter-updater/examples/simple-updates.js.map +1 -0
  73. package/dist/prompts/chains/parameter-updater/examples/switch-node.d.ts +2 -0
  74. package/dist/prompts/chains/parameter-updater/examples/switch-node.js +131 -0
  75. package/dist/prompts/chains/parameter-updater/examples/switch-node.js.map +1 -0
  76. package/dist/prompts/chains/parameter-updater/examples/tool-nodes.d.ts +2 -0
  77. package/dist/{chains/prompts/examples/advanced/tool-node-examples.js → prompts/chains/parameter-updater/examples/tool-nodes.js} +6 -3
  78. package/dist/prompts/chains/parameter-updater/examples/tool-nodes.js.map +1 -0
  79. package/dist/prompts/chains/parameter-updater/guides/gmail.d.ts +2 -0
  80. package/dist/prompts/chains/parameter-updater/guides/gmail.js +28 -0
  81. package/dist/prompts/chains/parameter-updater/guides/gmail.js.map +1 -0
  82. package/dist/prompts/chains/parameter-updater/guides/http-request.d.ts +2 -0
  83. package/dist/{chains/prompts/node-types → prompts/chains/parameter-updater/guides}/http-request.js +34 -8
  84. package/dist/prompts/chains/parameter-updater/guides/http-request.js.map +1 -0
  85. package/dist/prompts/chains/parameter-updater/guides/if-node.d.ts +2 -0
  86. package/dist/{chains/prompts/node-types → prompts/chains/parameter-updater/guides}/if-node.js +6 -5
  87. package/dist/prompts/chains/parameter-updater/guides/if-node.js.map +1 -0
  88. package/dist/prompts/chains/parameter-updater/guides/index.d.ts +9 -0
  89. package/dist/prompts/chains/parameter-updater/guides/index.js +22 -0
  90. package/dist/prompts/chains/parameter-updater/guides/index.js.map +1 -0
  91. package/dist/prompts/chains/parameter-updater/guides/resource-locator.d.ts +2 -0
  92. package/dist/{chains/prompts/parameter-types → prompts/chains/parameter-updater/guides}/resource-locator.js +6 -2
  93. package/dist/prompts/chains/parameter-updater/guides/resource-locator.js.map +1 -0
  94. package/dist/prompts/chains/parameter-updater/guides/set-node.d.ts +2 -0
  95. package/dist/{chains/prompts/node-types → prompts/chains/parameter-updater/guides}/set-node.js +5 -2
  96. package/dist/prompts/chains/parameter-updater/guides/set-node.js.map +1 -0
  97. package/dist/prompts/chains/parameter-updater/guides/switch-node.d.ts +2 -0
  98. package/dist/prompts/chains/parameter-updater/guides/switch-node.js +75 -0
  99. package/dist/prompts/chains/parameter-updater/guides/switch-node.js.map +1 -0
  100. package/dist/prompts/chains/parameter-updater/guides/system-message.d.ts +2 -0
  101. package/dist/{chains/prompts/parameter-types → prompts/chains/parameter-updater/guides}/system-message.js +25 -4
  102. package/dist/prompts/chains/parameter-updater/guides/system-message.js.map +1 -0
  103. package/dist/prompts/chains/parameter-updater/guides/text-fields.d.ts +2 -0
  104. package/dist/{chains/prompts/parameter-types → prompts/chains/parameter-updater/guides}/text-fields.js +11 -2
  105. package/dist/prompts/chains/parameter-updater/guides/text-fields.js.map +1 -0
  106. package/dist/prompts/chains/parameter-updater/guides/tool-nodes.d.ts +2 -0
  107. package/dist/{chains/prompts/node-types → prompts/chains/parameter-updater/guides}/tool-nodes.js +5 -2
  108. package/dist/prompts/chains/parameter-updater/guides/tool-nodes.js.map +1 -0
  109. package/dist/prompts/chains/parameter-updater/index.d.ts +8 -0
  110. package/dist/prompts/chains/parameter-updater/index.js +35 -0
  111. package/dist/prompts/chains/parameter-updater/index.js.map +1 -0
  112. package/dist/prompts/chains/parameter-updater/instance-url.d.ts +1 -0
  113. package/dist/{chains/prompts → prompts/chains/parameter-updater}/instance-url.js +5 -6
  114. package/dist/prompts/chains/parameter-updater/instance-url.js.map +1 -0
  115. package/dist/{chains/prompts/base/core-instructions.d.ts → prompts/chains/parameter-updater/parameter-updater.prompt.d.ts} +3 -0
  116. package/dist/{chains/prompts/base/core-instructions.js → prompts/chains/parameter-updater/parameter-updater.prompt.js} +25 -2
  117. package/dist/prompts/chains/parameter-updater/parameter-updater.prompt.js.map +1 -0
  118. package/dist/prompts/chains/parameter-updater/registry.d.ts +4 -0
  119. package/dist/prompts/chains/parameter-updater/registry.js +65 -0
  120. package/dist/prompts/chains/parameter-updater/registry.js.map +1 -0
  121. package/dist/prompts/chains/parameter-updater/types.d.ts +18 -0
  122. package/dist/prompts/chains/parameter-updater/types.js +3 -0
  123. package/dist/prompts/chains/parameter-updater/types.js.map +1 -0
  124. package/dist/prompts/chains/parameter-updater/utils.d.ts +2 -0
  125. package/dist/prompts/chains/parameter-updater/utils.js +16 -0
  126. package/dist/prompts/chains/parameter-updater/utils.js.map +1 -0
  127. package/dist/prompts/chains/workflow-name.prompt.d.ts +2 -0
  128. package/dist/prompts/chains/workflow-name.prompt.js +11 -0
  129. package/dist/prompts/chains/workflow-name.prompt.js.map +1 -0
  130. package/dist/prompts/index.d.ts +12 -0
  131. package/dist/prompts/index.js +50 -0
  132. package/dist/prompts/index.js.map +1 -0
  133. package/dist/{tools/prompts/main-agent.prompt.js → prompts/legacy-agent.prompt.js} +14 -31
  134. package/dist/prompts/legacy-agent.prompt.js.map +1 -0
  135. package/dist/subgraphs/builder.subgraph.d.ts +2 -0
  136. package/dist/subgraphs/builder.subgraph.js +2 -163
  137. package/dist/subgraphs/builder.subgraph.js.map +1 -1
  138. package/dist/subgraphs/configurator.subgraph.d.ts +2 -0
  139. package/dist/subgraphs/configurator.subgraph.js +3 -84
  140. package/dist/subgraphs/configurator.subgraph.js.map +1 -1
  141. package/dist/subgraphs/discovery.subgraph.d.ts +18 -0
  142. package/dist/subgraphs/discovery.subgraph.js +28 -220
  143. package/dist/subgraphs/discovery.subgraph.js.map +1 -1
  144. package/dist/tools/add-node.tool.js +1 -1
  145. package/dist/tools/best-practices/chatbot.js +6 -7
  146. package/dist/tools/best-practices/chatbot.js.map +1 -1
  147. package/dist/tools/best-practices/content-generation.js +38 -2
  148. package/dist/tools/best-practices/content-generation.js.map +1 -1
  149. package/dist/tools/best-practices/data-transformation.js +17 -22
  150. package/dist/tools/best-practices/data-transformation.js.map +1 -1
  151. package/dist/tools/best-practices/index.js +2 -1
  152. package/dist/tools/best-practices/index.js.map +1 -1
  153. package/dist/types/config.d.ts +2 -0
  154. package/dist/types/coordination.d.ts +8 -2
  155. package/dist/types/coordination.js +4 -0
  156. package/dist/types/coordination.js.map +1 -1
  157. package/dist/types/discovery-types.d.ts +2 -0
  158. package/dist/utils/coordination-log.d.ts +2 -1
  159. package/dist/utils/coordination-log.js.map +1 -1
  160. package/dist/utils/state-modifier.d.ts +32 -0
  161. package/dist/utils/state-modifier.js +112 -0
  162. package/dist/utils/state-modifier.js.map +1 -0
  163. package/dist/utils/state-reducers.d.ts +4 -0
  164. package/dist/utils/state-reducers.js +25 -0
  165. package/dist/utils/state-reducers.js.map +1 -0
  166. package/dist/utils/stream-processor.js +2 -30
  167. package/dist/utils/stream-processor.js.map +1 -1
  168. package/dist/utils/subgraph-helpers.d.ts +3 -0
  169. package/dist/utils/subgraph-helpers.js +23 -0
  170. package/dist/utils/subgraph-helpers.js.map +1 -1
  171. package/dist/validation/checks/connections.js +9 -16
  172. package/dist/validation/checks/connections.js.map +1 -1
  173. package/dist/validation/checks/credentials.d.ts +3 -0
  174. package/dist/validation/checks/credentials.js +125 -0
  175. package/dist/validation/checks/credentials.js.map +1 -0
  176. package/dist/validation/checks/index.d.ts +1 -0
  177. package/dist/validation/checks/index.js +3 -1
  178. package/dist/validation/checks/index.js.map +1 -1
  179. package/dist/validation/checks/tools.js +0 -10
  180. package/dist/validation/checks/tools.js.map +1 -1
  181. package/dist/validation/programmatic.js +2 -0
  182. package/dist/validation/programmatic.js.map +1 -1
  183. package/dist/validation/types.d.ts +4 -1
  184. package/dist/validation/types.js +2 -0
  185. package/dist/validation/types.js.map +1 -1
  186. package/dist/validation/utils/node-type-map.d.ts +8 -0
  187. package/dist/validation/utils/node-type-map.js +50 -0
  188. package/dist/validation/utils/node-type-map.js.map +1 -0
  189. package/dist/workflow-builder-agent.d.ts +7 -3
  190. package/dist/workflow-builder-agent.js +24 -15
  191. package/dist/workflow-builder-agent.js.map +1 -1
  192. package/dist/workflow-state.js +3 -14
  193. package/dist/workflow-state.js.map +1 -1
  194. package/package.json +8 -7
  195. package/dist/chains/prompts/base/common-patterns.d.ts +0 -1
  196. package/dist/chains/prompts/base/common-patterns.js +0 -13
  197. package/dist/chains/prompts/base/common-patterns.js.map +0 -1
  198. package/dist/chains/prompts/base/core-instructions.js.map +0 -1
  199. package/dist/chains/prompts/base/expression-rules.d.ts +0 -1
  200. package/dist/chains/prompts/base/expression-rules.js +0 -15
  201. package/dist/chains/prompts/base/expression-rules.js.map +0 -1
  202. package/dist/chains/prompts/base/output-format.d.ts +0 -1
  203. package/dist/chains/prompts/base/output-format.js +0 -7
  204. package/dist/chains/prompts/base/output-format.js.map +0 -1
  205. package/dist/chains/prompts/examples/advanced/resource-locator-examples.d.ts +0 -1
  206. package/dist/chains/prompts/examples/advanced/resource-locator-examples.js.map +0 -1
  207. package/dist/chains/prompts/examples/advanced/tool-node-examples.d.ts +0 -1
  208. package/dist/chains/prompts/examples/advanced/tool-node-examples.js.map +0 -1
  209. package/dist/chains/prompts/examples/basic/if-node-examples.d.ts +0 -1
  210. package/dist/chains/prompts/examples/basic/if-node-examples.js.map +0 -1
  211. package/dist/chains/prompts/examples/basic/set-node-examples.d.ts +0 -1
  212. package/dist/chains/prompts/examples/basic/set-node-examples.js.map +0 -1
  213. package/dist/chains/prompts/examples/basic/simple-updates.d.ts +0 -1
  214. package/dist/chains/prompts/examples/basic/simple-updates.js.map +0 -1
  215. package/dist/chains/prompts/instance-url.d.ts +0 -1
  216. package/dist/chains/prompts/instance-url.js.map +0 -1
  217. package/dist/chains/prompts/node-types/http-request.d.ts +0 -1
  218. package/dist/chains/prompts/node-types/http-request.js.map +0 -1
  219. package/dist/chains/prompts/node-types/if-node.d.ts +0 -1
  220. package/dist/chains/prompts/node-types/if-node.js.map +0 -1
  221. package/dist/chains/prompts/node-types/set-node.d.ts +0 -1
  222. package/dist/chains/prompts/node-types/set-node.js.map +0 -1
  223. package/dist/chains/prompts/node-types/tool-nodes.d.ts +0 -1
  224. package/dist/chains/prompts/node-types/tool-nodes.js.map +0 -1
  225. package/dist/chains/prompts/parameter-types/resource-locator.d.ts +0 -1
  226. package/dist/chains/prompts/parameter-types/resource-locator.js.map +0 -1
  227. package/dist/chains/prompts/parameter-types/system-message.d.ts +0 -1
  228. package/dist/chains/prompts/parameter-types/system-message.js.map +0 -1
  229. package/dist/chains/prompts/parameter-types/text-fields.d.ts +0 -1
  230. package/dist/chains/prompts/parameter-types/text-fields.js.map +0 -1
  231. package/dist/chains/prompts/prompt-builder.d.ts +0 -15
  232. package/dist/chains/prompts/prompt-builder.js +0 -140
  233. package/dist/chains/prompts/prompt-builder.js.map +0 -1
  234. package/dist/chains/prompts/prompt-config.d.ts +0 -5
  235. package/dist/chains/prompts/prompt-config.js +0 -52
  236. package/dist/chains/prompts/prompt-config.js.map +0 -1
  237. package/dist/tools/prompts/main-agent.prompt.js.map +0 -1
  238. /package/dist/{tools/prompts/main-agent.prompt.d.ts → prompts/legacy-agent.prompt.d.ts} +0 -0
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SIMPLE_UPDATE_EXAMPLES = void 0;
4
- exports.SIMPLE_UPDATE_EXAMPLES = `
4
+ exports.SIMPLE_UPDATE_EXAMPLES = {
5
+ patterns: ['*'],
6
+ content: `
5
7
  ## Examples of Parameter Updates
6
8
 
7
9
  ### Example 1: Update HTTP Request URL
@@ -10,7 +12,7 @@ Current parameters: { "url": "https://api.example.com", "method": "GET" }
10
12
  Updated parameters: { "url": "https://api.openweathermap.org/data/2.5/weather?q=London", "method": "GET" }
11
13
 
12
14
  ### Example 2: Add a header
13
- Change: "Add an API key header with value from credentials"
15
+ Change: "Add an ABC key header with value 123"
14
16
  Current parameters: { "url": "...", "sendHeaders": false }
15
17
  Updated parameters: {
16
18
  "url": "...",
@@ -18,8 +20,8 @@ Updated parameters: {
18
20
  "headerParameters": {
19
21
  "parameters": [
20
22
  {
21
- "name": "X-API-Key",
22
- "value": "={{ $credentials.apiKey }}"
23
+ "name": "ABC",
24
+ "value": "123"
23
25
  }
24
26
  ]
25
27
  }
@@ -47,5 +49,6 @@ Updated parameters: {
47
49
  ],
48
50
  "combinator": "and"
49
51
  }
50
- }`;
52
+ }`,
53
+ };
51
54
  //# sourceMappingURL=simple-updates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-updates.js","sourceRoot":"","sources":["../../../../../src/prompts/chains/parameter-updater/examples/simple-updates.ts"],"names":[],"mappings":";;;AAGa,QAAA,sBAAsB,GAAqB;IACvD,QAAQ,EAAE,CAAC,GAAG,CAAC;IACf,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8CR;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { NodeTypeExamples } from '../types';
2
+ export declare const SWITCH_NODE_EXAMPLES: NodeTypeExamples;
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SWITCH_NODE_EXAMPLES = void 0;
4
+ exports.SWITCH_NODE_EXAMPLES = {
5
+ patterns: ['n8n-nodes-base.switch'],
6
+ content: `
7
+ ### Switch Node Examples
8
+
9
+ #### Example 1: Route by Amount Tiers (Purchase Approval)
10
+ Current Parameters: { "mode": "rules" }
11
+ Requested Changes: Route under $100 to auto-approve, $100-$1000 to manager, over $1000 to finance
12
+
13
+ Expected Output:
14
+ {
15
+ "mode": "rules",
16
+ "rules": {
17
+ "values": [
18
+ {
19
+ "conditions": {
20
+ "options": { "caseSensitive": true, "leftValue": "", "typeValidation": "strict" },
21
+ "conditions": [
22
+ {
23
+ "leftValue": "={{ $json.amount }}",
24
+ "rightValue": 100,
25
+ "operator": { "type": "number", "operation": "lt" }
26
+ }
27
+ ],
28
+ "combinator": "and"
29
+ },
30
+ "renameOutput": true,
31
+ "outputKey": "Auto-Approve"
32
+ },
33
+ {
34
+ "conditions": {
35
+ "options": { "caseSensitive": true, "leftValue": "", "typeValidation": "strict" },
36
+ "conditions": [
37
+ {
38
+ "leftValue": "={{ $json.amount }}",
39
+ "rightValue": 100,
40
+ "operator": { "type": "number", "operation": "gte" }
41
+ },
42
+ {
43
+ "leftValue": "={{ $json.amount }}",
44
+ "rightValue": 1000,
45
+ "operator": { "type": "number", "operation": "lte" }
46
+ }
47
+ ],
48
+ "combinator": "and"
49
+ },
50
+ "renameOutput": true,
51
+ "outputKey": "Manager Review"
52
+ },
53
+ {
54
+ "conditions": {
55
+ "options": { "caseSensitive": true, "leftValue": "", "typeValidation": "strict" },
56
+ "conditions": [
57
+ {
58
+ "leftValue": "={{ $json.amount }}",
59
+ "rightValue": 1000,
60
+ "operator": { "type": "number", "operation": "gt" }
61
+ }
62
+ ],
63
+ "combinator": "and"
64
+ },
65
+ "renameOutput": true,
66
+ "outputKey": "Finance Review"
67
+ }
68
+ ]
69
+ }
70
+ }
71
+
72
+ #### Example 2: Route by Status String
73
+ Current Parameters: { "mode": "rules" }
74
+ Requested Changes: Route by order status - pending, processing, completed
75
+
76
+ Expected Output:
77
+ {
78
+ "mode": "rules",
79
+ "rules": {
80
+ "values": [
81
+ {
82
+ "conditions": {
83
+ "options": { "caseSensitive": false, "leftValue": "", "typeValidation": "loose" },
84
+ "conditions": [
85
+ {
86
+ "leftValue": "={{ $json.status }}",
87
+ "rightValue": "pending",
88
+ "operator": { "type": "string", "operation": "equals" }
89
+ }
90
+ ],
91
+ "combinator": "and"
92
+ },
93
+ "renameOutput": true,
94
+ "outputKey": "Pending"
95
+ },
96
+ {
97
+ "conditions": {
98
+ "options": { "caseSensitive": false, "leftValue": "", "typeValidation": "loose" },
99
+ "conditions": [
100
+ {
101
+ "leftValue": "={{ $json.status }}",
102
+ "rightValue": "processing",
103
+ "operator": { "type": "string", "operation": "equals" }
104
+ }
105
+ ],
106
+ "combinator": "and"
107
+ },
108
+ "renameOutput": true,
109
+ "outputKey": "Processing"
110
+ },
111
+ {
112
+ "conditions": {
113
+ "options": { "caseSensitive": false, "leftValue": "", "typeValidation": "loose" },
114
+ "conditions": [
115
+ {
116
+ "leftValue": "={{ $json.status }}",
117
+ "rightValue": "completed",
118
+ "operator": { "type": "string", "operation": "equals" }
119
+ }
120
+ ],
121
+ "combinator": "and"
122
+ },
123
+ "renameOutput": true,
124
+ "outputKey": "Completed"
125
+ }
126
+ ]
127
+ }
128
+ }
129
+ `,
130
+ };
131
+ //# sourceMappingURL=switch-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch-node.js","sourceRoot":"","sources":["../../../../../src/prompts/chains/parameter-updater/examples/switch-node.ts"],"names":[],"mappings":";;;AAEa,QAAA,oBAAoB,GAAqB;IACrD,QAAQ,EAAE,CAAC,uBAAuB,CAAC;IACnC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2HT;CACA,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { NodeTypeExamples } from '../types';
2
+ export declare const TOOL_NODE_EXAMPLES: NodeTypeExamples;
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TOOL_NODE_EXAMPLES = void 0;
4
- exports.TOOL_NODE_EXAMPLES = `
4
+ exports.TOOL_NODE_EXAMPLES = {
5
+ patterns: ['*Tool'],
6
+ content: `
5
7
  ### Tool Node Examples
6
8
 
7
9
  #### Example 1: Gmail Tool - Send Email with AI
@@ -67,5 +69,6 @@ Expected Output:
67
69
  {
68
70
  "sendTo": "=admin@company.com, {{ $fromAI('additional_recipients') }}",
69
71
  "subject": "={{ $fromAI('subject') }} - Automated Report"
70
- }`;
71
- //# sourceMappingURL=tool-node-examples.js.map
72
+ }`,
73
+ };
74
+ //# sourceMappingURL=tool-nodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-nodes.js","sourceRoot":"","sources":["../../../../../src/prompts/chains/parameter-updater/examples/tool-nodes.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAqB;IACnD,QAAQ,EAAE,CAAC,OAAO,CAAC;IACnB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkER;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { NodeTypeGuide } from '../types';
2
+ export declare const GMAIL_GUIDE: NodeTypeGuide;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GMAIL_GUIDE = void 0;
4
+ exports.GMAIL_GUIDE = {
5
+ patterns: ['n8n-nodes-base.gmail'],
6
+ content: `
7
+ ### Gmail Node Updates
8
+
9
+ #### Common Parameters
10
+ - **resource**: message, draft, label, thread
11
+ - **operation**: send, get, list, etc.
12
+ - **to**: Recipient email address
13
+ - **subject**: Email subject line
14
+ - **message**: Email body/content
15
+ - **authentication**: OAuth2 or Service Account
16
+
17
+ #### Common Patterns
18
+ 1. **Sending Email**:
19
+ - Set resource to "message"
20
+ - Set operation to "send"
21
+ - Configure to, subject, and message fields
22
+
23
+ 2. **Using Expressions**:
24
+ - Can use expressions: "={{ $('Previous Node').item.json.email }}"
25
+ - Can reference previous node data for dynamic values
26
+ `,
27
+ };
28
+ //# sourceMappingURL=gmail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gmail.js","sourceRoot":"","sources":["../../../../../src/prompts/chains/parameter-updater/guides/gmail.ts"],"names":[],"mappings":";;;AAEa,QAAA,WAAW,GAAkB;IACzC,QAAQ,EAAE,CAAC,sBAAsB,CAAC;IAClC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;CAoBT;CACA,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { NodeTypeGuide } from '../types';
2
+ export declare const HTTP_REQUEST_GUIDE: NodeTypeGuide;
@@ -1,9 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HTTP_REQUEST_GUIDE = void 0;
4
- exports.HTTP_REQUEST_GUIDE = `
4
+ exports.HTTP_REQUEST_GUIDE = {
5
+ patterns: ['n8n-nodes-base.httpRequest', 'n8n-nodes-base.webhook'],
6
+ content: `
5
7
  ### HTTP Request Node Updates
6
8
 
9
+ #### IMPORTANT - Credential Security
10
+
11
+ **NEVER hardcode credentials** (API keys, tokens, passwords, secrets) in the HTTP Request node parameters.
12
+ Instead, ALWAYS use n8n's built-in credential system:
13
+
14
+ 1. Set \`authentication\` to \`"genericCredentialType"\`
15
+ 2. Set \`genericAuthType\` to the appropriate credential type:
16
+ - \`"httpHeaderAuth"\` - For API keys sent in headers (X-API-Key, Authorization, etc.)
17
+ - \`"httpBearerAuth"\` - For Bearer token authentication
18
+ - \`"httpQueryAuth"\` - For API keys sent as query parameters
19
+ - \`"httpBasicAuth"\` - For username/password authentication
20
+ - \`"oAuth2Api"\` - For OAuth 2.0 authentication
21
+
22
+ **DO NOT:**
23
+ - Put API keys or tokens directly in header values
24
+ - Store credentials in Set nodes and reference them with expressions
25
+ - Hardcode Bearer tokens in Authorization headers
26
+
27
+ **DO:**
28
+ - Use the authentication parameter with the appropriate credential type
29
+ - Let users configure their credentials securely in n8n's credential manager
30
+
7
31
  #### Common Parameters
8
32
  - **url**: The endpoint URL (can use expressions)
9
33
  - **method**: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS
@@ -65,7 +89,7 @@ exports.HTTP_REQUEST_GUIDE = `
65
89
  4. **Query Parameters**:
66
90
  - Can be part of URL or set in options.queryParameters
67
91
 
68
- #### Example: HTTP Request with Headers and Body
92
+ #### Example: HTTP Request with Authentication and Body
69
93
  Current Parameters:
70
94
  {
71
95
  "method": "GET",
@@ -74,20 +98,18 @@ Current Parameters:
74
98
 
75
99
  Requested Changes:
76
100
  - Change to POST method
77
- - Add API key header
101
+ - Add API key authentication (using n8n credentials)
78
102
  - Add JSON body with user ID and status
79
103
 
80
104
  Expected Output:
81
105
  {
82
106
  "method": "POST",
83
107
  "url": "https://api.example.com/data",
108
+ "authentication": "genericCredentialType",
109
+ "genericAuthType": "httpHeaderAuth",
84
110
  "sendHeaders": true,
85
111
  "headerParameters": {
86
112
  "parameters": [
87
- {
88
- "name": "X-API-Key",
89
- "value": "={{ $credentials.apiKey }}"
90
- },
91
113
  {
92
114
  "name": "Content-Type",
93
115
  "value": "application/json"
@@ -109,5 +131,9 @@ Expected Output:
109
131
  ]
110
132
  },
111
133
  "options": {}
112
- }`;
134
+ }
135
+
136
+ Note: The API key is handled by the httpHeaderAuth credential, NOT hardcoded in the header parameters.
137
+ The user will configure their API key securely in n8n's credential manager.`,
138
+ };
113
139
  //# sourceMappingURL=http-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-request.js","sourceRoot":"","sources":["../../../../../src/prompts/chains/parameter-updater/guides/http-request.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAkB;IAChD,QAAQ,EAAE,CAAC,4BAA4B,EAAE,wBAAwB,CAAC;IAClE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAmIkE;CAC3E,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { NodeTypeGuide } from '../types';
2
+ export declare const IF_NODE_GUIDE: NodeTypeGuide;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IF_NODE_GUIDE = void 0;
4
- exports.IF_NODE_GUIDE = `
5
- ### IF Node Updates - Comprehensive Guide
6
-
7
- The IF node uses a complex filter structure for conditional logic. Understanding the correct operator format is crucial.
4
+ exports.IF_NODE_GUIDE = {
5
+ patterns: ['n8n-nodes-base.if'],
6
+ content: `
7
+ ### The IF node uses a complex filter structure for conditional logic. Understanding the correct operator format is crucial.
8
8
 
9
9
  #### IF Node Structure
10
10
  \`\`\`json
@@ -154,5 +154,6 @@ The IF node uses a complex filter structure for conditional logic. Understanding
154
154
  2. **Expression values**: Both leftValue and rightValue can be expressions using \`={{ ... }}\` syntax
155
155
  3. **Type matching**: The operator type must match the data type you're comparing
156
156
  4. **Case sensitivity**: Only applies to string comparisons when caseSensitive is true in options
157
- 5. **Type validation**: "loose" allows type coercion, "strict" requires exact type matches`;
157
+ 5. **Type validation**: "loose" allows type coercion, "strict" requires exact type matches`,
158
+ };
158
159
  //# sourceMappingURL=if-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"if-node.js","sourceRoot":"","sources":["../../../../../src/prompts/chains/parameter-updater/guides/if-node.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAkB;IAC3C,QAAQ,EAAE,CAAC,mBAAmB,CAAC;IAC/B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2FAuJiF;CAC1F,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { SET_NODE_GUIDE } from './set-node';
2
+ export { IF_NODE_GUIDE } from './if-node';
3
+ export { SWITCH_NODE_GUIDE } from './switch-node';
4
+ export { HTTP_REQUEST_GUIDE } from './http-request';
5
+ export { TOOL_NODES_GUIDE } from './tool-nodes';
6
+ export { GMAIL_GUIDE } from './gmail';
7
+ export { RESOURCE_LOCATOR_GUIDE } from './resource-locator';
8
+ export { SYSTEM_MESSAGE_GUIDE } from './system-message';
9
+ export { TEXT_FIELDS_GUIDE } from './text-fields';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TEXT_FIELDS_GUIDE = exports.SYSTEM_MESSAGE_GUIDE = exports.RESOURCE_LOCATOR_GUIDE = exports.GMAIL_GUIDE = exports.TOOL_NODES_GUIDE = exports.HTTP_REQUEST_GUIDE = exports.SWITCH_NODE_GUIDE = exports.IF_NODE_GUIDE = exports.SET_NODE_GUIDE = void 0;
4
+ var set_node_1 = require("./set-node");
5
+ Object.defineProperty(exports, "SET_NODE_GUIDE", { enumerable: true, get: function () { return set_node_1.SET_NODE_GUIDE; } });
6
+ var if_node_1 = require("./if-node");
7
+ Object.defineProperty(exports, "IF_NODE_GUIDE", { enumerable: true, get: function () { return if_node_1.IF_NODE_GUIDE; } });
8
+ var switch_node_1 = require("./switch-node");
9
+ Object.defineProperty(exports, "SWITCH_NODE_GUIDE", { enumerable: true, get: function () { return switch_node_1.SWITCH_NODE_GUIDE; } });
10
+ var http_request_1 = require("./http-request");
11
+ Object.defineProperty(exports, "HTTP_REQUEST_GUIDE", { enumerable: true, get: function () { return http_request_1.HTTP_REQUEST_GUIDE; } });
12
+ var tool_nodes_1 = require("./tool-nodes");
13
+ Object.defineProperty(exports, "TOOL_NODES_GUIDE", { enumerable: true, get: function () { return tool_nodes_1.TOOL_NODES_GUIDE; } });
14
+ var gmail_1 = require("./gmail");
15
+ Object.defineProperty(exports, "GMAIL_GUIDE", { enumerable: true, get: function () { return gmail_1.GMAIL_GUIDE; } });
16
+ var resource_locator_1 = require("./resource-locator");
17
+ Object.defineProperty(exports, "RESOURCE_LOCATOR_GUIDE", { enumerable: true, get: function () { return resource_locator_1.RESOURCE_LOCATOR_GUIDE; } });
18
+ var system_message_1 = require("./system-message");
19
+ Object.defineProperty(exports, "SYSTEM_MESSAGE_GUIDE", { enumerable: true, get: function () { return system_message_1.SYSTEM_MESSAGE_GUIDE; } });
20
+ var text_fields_1 = require("./text-fields");
21
+ Object.defineProperty(exports, "TEXT_FIELDS_GUIDE", { enumerable: true, get: function () { return text_fields_1.TEXT_FIELDS_GUIDE; } });
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/prompts/chains/parameter-updater/guides/index.ts"],"names":[],"mappings":";;;AACA,uCAA4C;AAAnC,0GAAA,cAAc,OAAA;AACvB,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AACtB,6CAAkD;AAAzC,gHAAA,iBAAiB,OAAA;AAC1B,+CAAoD;AAA3C,kHAAA,kBAAkB,OAAA;AAC3B,2CAAgD;AAAvC,8GAAA,gBAAgB,OAAA;AACzB,iCAAsC;AAA7B,oGAAA,WAAW,OAAA;AAGpB,uDAA4D;AAAnD,0HAAA,sBAAsB,OAAA;AAC/B,mDAAwD;AAA/C,sHAAA,oBAAoB,OAAA;AAC7B,6CAAkD;AAAzC,gHAAA,iBAAiB,OAAA"}
@@ -0,0 +1,2 @@
1
+ import type { NodeTypeGuide } from '../types';
2
+ export declare const RESOURCE_LOCATOR_GUIDE: NodeTypeGuide;
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RESOURCE_LOCATOR_GUIDE = void 0;
4
- exports.RESOURCE_LOCATOR_GUIDE = `
4
+ exports.RESOURCE_LOCATOR_GUIDE = {
5
+ patterns: ['*'],
6
+ condition: (ctx) => ctx.hasResourceLocatorParams === true,
7
+ content: `
5
8
  ## IMPORTANT: ResourceLocator Parameter Handling
6
9
 
7
10
  ResourceLocator parameters are special fields used for selecting resources like Slack channels, Google Drive files, Notion pages, etc. They MUST have a specific structure:
@@ -91,5 +94,6 @@ Output:
91
94
  "value": "={{ $('Previous Node').item.json.channelId }}"
92
95
  }
93
96
  }
94
- \`\`\``;
97
+ \`\`\``,
98
+ };
95
99
  //# sourceMappingURL=resource-locator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-locator.js","sourceRoot":"","sources":["../../../../../src/prompts/chains/parameter-updater/guides/resource-locator.ts"],"names":[],"mappings":";;;AAEa,QAAA,sBAAsB,GAAkB;IACpD,QAAQ,EAAE,CAAC,GAAG,CAAC;IACf,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,wBAAwB,KAAK,IAAI;IACzD,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0FH;CACN,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { NodeTypeGuide } from '../types';
2
+ export declare const SET_NODE_GUIDE: NodeTypeGuide;
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SET_NODE_GUIDE = void 0;
4
- exports.SET_NODE_GUIDE = `
4
+ exports.SET_NODE_GUIDE = {
5
+ patterns: ['n8n-nodes-base.set'],
6
+ content: `
5
7
  ### Set Node Updates - Comprehensive Type Handling Guide
6
8
 
7
9
  The Set node uses assignments to create or modify data fields. Each assignment has a specific type that determines how the value is formatted and processed.
@@ -87,5 +89,6 @@ The Set node uses assignments to create or modify data fields. Each assignment h
87
89
  - WRONG: Using type-specific field names: \`{ "booleanValue": true, "type": "boolean" }\`
88
90
  - CORRECT: \`{ "value": true, "type": "boolean" }\`
89
91
  - WRONG: Setting array without stringification: \`{ "value": [1,2,3], "type": "array" }\`
90
- - CORRECT: \`{ "value": "[1,2,3]", "type": "array" }\``;
92
+ - CORRECT: \`{ "value": "[1,2,3]", "type": "array" }\``,
93
+ };
91
94
  //# sourceMappingURL=set-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-node.js","sourceRoot":"","sources":["../../../../../src/prompts/chains/parameter-updater/guides/set-node.ts"],"names":[],"mappings":";;;AAEa,QAAA,cAAc,GAAkB;IAC5C,QAAQ,EAAE,CAAC,oBAAoB,CAAC;IAChC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0DAsFgD;CACzD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { NodeTypeGuide } from '../types';
2
+ export declare const SWITCH_NODE_GUIDE: NodeTypeGuide;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SWITCH_NODE_GUIDE = void 0;
4
+ exports.SWITCH_NODE_GUIDE = {
5
+ patterns: ['n8n-nodes-base.switch'],
6
+ content: `
7
+ ### Switch Node Configuration Guide
8
+
9
+ The Switch node routes items to different outputs based on conditions. Uses the same filter structure as IF node but for multi-way branching.
10
+
11
+ #### Switch Node Structure (mode: 'rules')
12
+ \`\`\`json
13
+ {
14
+ "mode": "rules",
15
+ "rules": {
16
+ "values": [
17
+ {
18
+ "conditions": {
19
+ "options": {
20
+ "caseSensitive": true,
21
+ "leftValue": "",
22
+ "typeValidation": "strict"
23
+ },
24
+ "conditions": [
25
+ {
26
+ "leftValue": "={{ $json.amount }}",
27
+ "rightValue": 100,
28
+ "operator": {
29
+ "type": "number",
30
+ "operation": "lt"
31
+ }
32
+ }
33
+ ],
34
+ "combinator": "and"
35
+ },
36
+ "renameOutput": true,
37
+ "outputKey": "Under $100"
38
+ }
39
+ ]
40
+ }
41
+ }
42
+ \`\`\`
43
+
44
+ #### Key Points:
45
+ 1. Each entry in rules.values[] creates ONE output
46
+ 2. Conditions use the same filter structure as IF node
47
+ 3. Multiple conditions per rule are combined with combinator ("and" or "or")
48
+ 4. Use renameOutput: true + outputKey to label outputs descriptively
49
+
50
+ #### Numeric Operators
51
+ - lt: Less than
52
+ - gt: Greater than
53
+ - lte: Less than or equal
54
+ - gte: Greater than or equal
55
+ - equals: Equal to
56
+
57
+ #### String Operators
58
+ - equals: Exact match
59
+ - contains: Contains substring
60
+ - startsWith: Starts with
61
+ - endsWith: Ends with
62
+
63
+ #### Common Patterns:
64
+
65
+ **Numeric Range Routing** (for ranges like $100-$1000):
66
+ Use two conditions with combinator: "and":
67
+ - First condition: gte (greater than or equal to lower bound)
68
+ - Second condition: lte (less than or equal to upper bound)
69
+
70
+ **String-Based Routing** (status/type values):
71
+ - Use type: "string" with operation: "equals"
72
+ - Set caseSensitive: false in options for case-insensitive matching
73
+ `,
74
+ };
75
+ //# sourceMappingURL=switch-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch-node.js","sourceRoot":"","sources":["../../../../../src/prompts/chains/parameter-updater/guides/switch-node.ts"],"names":[],"mappings":";;;AAEa,QAAA,iBAAiB,GAAkB;IAC/C,QAAQ,EAAE,CAAC,uBAAuB,CAAC;IACnC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmET;CACA,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { NodeTypeGuide } from '../types';
2
+ export declare const SYSTEM_MESSAGE_GUIDE: NodeTypeGuide;
@@ -1,7 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SYSTEM_MESSAGE_GUIDE = void 0;
4
- exports.SYSTEM_MESSAGE_GUIDE = `
4
+ function hasSystemMessageParameters(nodeDefinition) {
5
+ if (!nodeDefinition.properties)
6
+ return false;
7
+ return nodeDefinition.properties.some((prop) => {
8
+ if (prop.name === 'messages' &&
9
+ (prop.type === 'fixedCollection' || prop.type === 'collection')) {
10
+ return true;
11
+ }
12
+ if (prop.name === 'options' && prop.type === 'collection' && Array.isArray(prop.options)) {
13
+ return prop.options.some((opt) => typeof opt === 'object' &&
14
+ opt !== null &&
15
+ 'name' in opt &&
16
+ (opt.name === 'systemMessage' || opt.name === 'system'));
17
+ }
18
+ return false;
19
+ });
20
+ }
21
+ exports.SYSTEM_MESSAGE_GUIDE = {
22
+ patterns: ['*'],
23
+ condition: (ctx) => hasSystemMessageParameters(ctx.nodeDefinition),
24
+ content: `
5
25
  ## CRITICAL: System Message vs User Prompt Separation
6
26
 
7
27
  AI nodes (AI Agent, LLM Chain, Anthropic, OpenAI, etc.) have TWO distinct prompt fields that MUST be used correctly:
@@ -33,12 +53,12 @@ Use for DYNAMIC, EXECUTION-SPECIFIC content:
33
53
 
34
54
  ### Common Mistakes to Avoid
35
55
 
36
- **WRONG - Everything in text field:**
56
+ **WRONG - Everything in text field:**
37
57
  {
38
58
  "text": "=You are an orchestrator agent that coordinates specialized agents. Your task is to: 1) Call Research Agent Tool, 2) Call Fact-Check Agent Tool, 3) Generate report. Research topic: {{ $json.researchTopic }}"
39
59
  }
40
60
 
41
- **CORRECT - Properly separated:**
61
+ **CORRECT - Properly separated:**
42
62
  {
43
63
  "text": "=The research topic is: {{ $json.researchTopic }}",
44
64
  "options": {
@@ -71,5 +91,6 @@ Instructions: [
71
91
  - **Maintainability**: Easy to update AI behavior without touching data flow
72
92
  - **Best Practice**: Follows standard AI prompt engineering patterns
73
93
  - **Clarity**: Separates "what the AI model is" from "what data to process"
74
- `;
94
+ `,
95
+ };
75
96
  //# sourceMappingURL=system-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-message.js","sourceRoot":"","sources":["../../../../../src/prompts/chains/parameter-updater/guides/system-message.ts"],"names":[],"mappings":";;;AAMA,SAAS,0BAA0B,CAAC,cAEnC;IACA,IAAI,CAAC,cAAc,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAE7C,OAAO,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAE9C,IACC,IAAI,CAAC,IAAI,KAAK,UAAU;YACxB,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,EAC9D,CAAC;YACF,OAAO,IAAI,CAAC;QACb,CAAC;QAGD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1F,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACvB,CAAC,GAAG,EAAE,EAAE,CACP,OAAO,GAAG,KAAK,QAAQ;gBACvB,GAAG,KAAK,IAAI;gBACZ,MAAM,IAAI,GAAG;gBACb,CAAC,GAAG,CAAC,IAAI,KAAK,eAAe,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CACxD,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;AACJ,CAAC;AAEY,QAAA,oBAAoB,GAAkB;IAClD,QAAQ,EAAE,CAAC,GAAG,CAAC;IACf,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,cAAc,CAAC;IAClE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsET;CACA,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { NodeTypeGuide } from '../types';
2
+ export declare const TEXT_FIELDS_GUIDE: NodeTypeGuide;
@@ -1,7 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TEXT_FIELDS_GUIDE = void 0;
4
- exports.TEXT_FIELDS_GUIDE = `
4
+ function hasTextFields(nodeDefinition) {
5
+ if (!nodeDefinition.properties)
6
+ return false;
7
+ return nodeDefinition.properties.some((prop) => prop.type === 'string' && prop.typeOptions?.multipleValues !== true);
8
+ }
9
+ exports.TEXT_FIELDS_GUIDE = {
10
+ patterns: ['*'],
11
+ condition: (ctx) => hasTextFields(ctx.nodeDefinition),
12
+ content: `
5
13
  ## Text Field Expression Formatting
6
14
 
7
15
  ### PREFERRED METHOD: Embedding expressions directly within text
@@ -18,5 +26,6 @@ exports.TEXT_FIELDS_GUIDE = `
18
26
  - Use the embedded expression format when mixing static text with dynamic values
19
27
  - The entire string must start with = when using expressions
20
28
  - Expressions within text use single curly braces {{ }}
21
- - The outer expression wrapper uses double curly braces ={{ }}`;
29
+ - The outer expression wrapper uses double curly braces ={{ }}`,
30
+ };
22
31
  //# sourceMappingURL=text-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-fields.js","sourceRoot":"","sources":["../../../../../src/prompts/chains/parameter-updater/guides/text-fields.ts"],"names":[],"mappings":";;;AAKA,SAAS,aAAa,CAAC,cAEtB;IACA,IAAI,CAAC,cAAc,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAE7C,OAAO,cAAc,CAAC,UAAU,CAAC,IAAI,CACpC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,cAAc,KAAK,IAAI,CAC7E,CAAC;AACH,CAAC;AAEY,QAAA,iBAAiB,GAAkB;IAC/C,QAAQ,EAAE,CAAC,GAAG,CAAC;IACf,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC;IACrD,OAAO,EAAE;;;;;;;;;;;;;;;;;+DAiBqD;CAC9D,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { NodeTypeGuide } from '../types';
2
+ export declare const TOOL_NODES_GUIDE: NodeTypeGuide;