n8n-mcp 2.21.0 โ†’ 2.22.5

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 (277) hide show
  1. package/README.md +1 -0
  2. package/data/nodes.db +0 -0
  3. package/dist/database/node-repository.d.ts +62 -0
  4. package/dist/database/node-repository.d.ts.map +1 -1
  5. package/dist/database/node-repository.js +276 -0
  6. package/dist/database/node-repository.js.map +1 -1
  7. package/dist/mcp/absolute-minimal.d.ts +4 -0
  8. package/dist/mcp/absolute-minimal.d.ts.map +1 -0
  9. package/dist/mcp/absolute-minimal.js +34 -0
  10. package/dist/mcp/absolute-minimal.js.map +1 -0
  11. package/dist/mcp/fixed-protocol.d.ts +17 -0
  12. package/dist/mcp/fixed-protocol.d.ts.map +1 -0
  13. package/dist/mcp/fixed-protocol.js +162 -0
  14. package/dist/mcp/fixed-protocol.js.map +1 -0
  15. package/dist/mcp/handlers-documentation.d.ts +18 -0
  16. package/dist/mcp/handlers-documentation.d.ts.map +1 -0
  17. package/dist/mcp/handlers-documentation.js +113 -0
  18. package/dist/mcp/handlers-documentation.js.map +1 -0
  19. package/dist/mcp/handlers-n8n-manager.d.ts +2 -1
  20. package/dist/mcp/handlers-n8n-manager.d.ts.map +1 -1
  21. package/dist/mcp/handlers-n8n-manager.js +193 -5
  22. package/dist/mcp/handlers-n8n-manager.js.map +1 -1
  23. package/dist/mcp/handlers-workflow-diff.d.ts +2 -1
  24. package/dist/mcp/handlers-workflow-diff.d.ts.map +1 -1
  25. package/dist/mcp/handlers-workflow-diff.js +30 -2
  26. package/dist/mcp/handlers-workflow-diff.js.map +1 -1
  27. package/dist/mcp/index.js +0 -0
  28. package/dist/mcp/minimal-test.d.ts +3 -0
  29. package/dist/mcp/minimal-test.d.ts.map +1 -0
  30. package/dist/mcp/minimal-test.js +83 -0
  31. package/dist/mcp/minimal-test.js.map +1 -0
  32. package/dist/mcp/server.d.ts.map +1 -1
  33. package/dist/mcp/server.js +5 -2
  34. package/dist/mcp/server.js.map +1 -1
  35. package/dist/mcp/stderr-test.d.ts +2 -0
  36. package/dist/mcp/stderr-test.d.ts.map +1 -0
  37. package/dist/mcp/stderr-test.js +32 -0
  38. package/dist/mcp/stderr-test.js.map +1 -0
  39. package/dist/mcp/tool-docs/special/code-node-guide.d.ts +3 -0
  40. package/dist/mcp/tool-docs/special/code-node-guide.d.ts.map +1 -0
  41. package/dist/mcp/tool-docs/special/code-node-guide.js +61 -0
  42. package/dist/mcp/tool-docs/special/code-node-guide.js.map +1 -0
  43. package/dist/mcp/tool-docs/special/index.d.ts +2 -0
  44. package/dist/mcp/tool-docs/special/index.d.ts.map +1 -0
  45. package/dist/mcp/tool-docs/special/index.js +6 -0
  46. package/dist/mcp/tool-docs/special/index.js.map +1 -0
  47. package/dist/mcp/tool-docs/templates/get-node-for-task.d.ts +3 -0
  48. package/dist/mcp/tool-docs/templates/get-node-for-task.d.ts.map +1 -0
  49. package/dist/mcp/tool-docs/templates/get-node-for-task.js +50 -0
  50. package/dist/mcp/tool-docs/templates/get-node-for-task.js.map +1 -0
  51. package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.d.ts.map +1 -1
  52. package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.js +47 -11
  53. package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.js.map +1 -1
  54. package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.d.ts.map +1 -1
  55. package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.js +6 -0
  56. package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.js.map +1 -1
  57. package/dist/mcp/tools-documentation-new.d.ts +6 -0
  58. package/dist/mcp/tools-documentation-new.d.ts.map +1 -0
  59. package/dist/mcp/tools-documentation-new.js +163 -0
  60. package/dist/mcp/tools-documentation-new.js.map +1 -0
  61. package/dist/mcp/tools-n8n-manager.d.ts.map +1 -1
  62. package/dist/mcp/tools-n8n-manager.js +55 -1
  63. package/dist/mcp/tools-n8n-manager.js.map +1 -1
  64. package/dist/mcp/ultra-minimal.d.ts +8 -0
  65. package/dist/mcp/ultra-minimal.d.ts.map +1 -0
  66. package/dist/mcp/ultra-minimal.js +93 -0
  67. package/dist/mcp/ultra-minimal.js.map +1 -0
  68. package/dist/mcp/working-test.d.ts +3 -0
  69. package/dist/mcp/working-test.d.ts.map +1 -0
  70. package/dist/mcp/working-test.js +48 -0
  71. package/dist/mcp/working-test.js.map +1 -0
  72. package/dist/mcp/wrapper.sh +28 -0
  73. package/dist/scripts/debug-n8n-auth.d.ts +3 -0
  74. package/dist/scripts/debug-n8n-auth.d.ts.map +1 -0
  75. package/dist/scripts/debug-n8n-auth.js +97 -0
  76. package/dist/scripts/debug-n8n-auth.js.map +1 -0
  77. package/dist/scripts/debug-node.d.ts +3 -0
  78. package/dist/scripts/debug-node.d.ts.map +1 -0
  79. package/dist/scripts/debug-node.js +59 -0
  80. package/dist/scripts/debug-node.js.map +1 -0
  81. package/dist/scripts/generate-metadata-only.d.ts +3 -0
  82. package/dist/scripts/generate-metadata-only.d.ts.map +1 -0
  83. package/dist/scripts/generate-metadata-only.js +146 -0
  84. package/dist/scripts/generate-metadata-only.js.map +1 -0
  85. package/dist/scripts/generate-metadata-sync.d.ts +3 -0
  86. package/dist/scripts/generate-metadata-sync.d.ts.map +1 -0
  87. package/dist/scripts/generate-metadata-sync.js +136 -0
  88. package/dist/scripts/generate-metadata-sync.js.map +1 -0
  89. package/dist/scripts/test-ai-workflow-validation.d.ts +3 -0
  90. package/dist/scripts/test-ai-workflow-validation.d.ts.map +1 -0
  91. package/dist/scripts/test-ai-workflow-validation.js +191 -0
  92. package/dist/scripts/test-ai-workflow-validation.js.map +1 -0
  93. package/dist/scripts/test-api-headers.d.ts +3 -0
  94. package/dist/scripts/test-api-headers.d.ts.map +1 -0
  95. package/dist/scripts/test-api-headers.js +35 -0
  96. package/dist/scripts/test-api-headers.js.map +1 -0
  97. package/dist/scripts/test-autofix-workflow.js +3 -3
  98. package/dist/scripts/test-autofix-workflow.js.map +1 -1
  99. package/dist/scripts/test-batch-processing.d.ts +3 -0
  100. package/dist/scripts/test-batch-processing.d.ts.map +1 -0
  101. package/dist/scripts/test-batch-processing.js +144 -0
  102. package/dist/scripts/test-batch-processing.js.map +1 -0
  103. package/dist/scripts/test-docker-config-simulation.d.ts +3 -0
  104. package/dist/scripts/test-docker-config-simulation.d.ts.map +1 -0
  105. package/dist/scripts/test-docker-config-simulation.js +74 -0
  106. package/dist/scripts/test-docker-config-simulation.js.map +1 -0
  107. package/dist/scripts/test-enhanced-validation.d.ts +3 -0
  108. package/dist/scripts/test-enhanced-validation.d.ts.map +1 -0
  109. package/dist/scripts/test-enhanced-validation.js +117 -0
  110. package/dist/scripts/test-enhanced-validation.js.map +1 -0
  111. package/dist/scripts/test-error-handling-validation.d.ts +3 -0
  112. package/dist/scripts/test-error-handling-validation.d.ts.map +1 -0
  113. package/dist/scripts/test-error-handling-validation.js +340 -0
  114. package/dist/scripts/test-error-handling-validation.js.map +1 -0
  115. package/dist/scripts/test-issue-45-fix.d.ts +3 -0
  116. package/dist/scripts/test-issue-45-fix.d.ts.map +1 -0
  117. package/dist/scripts/test-issue-45-fix.js +136 -0
  118. package/dist/scripts/test-issue-45-fix.js.map +1 -0
  119. package/dist/scripts/test-issue-74.d.ts +3 -0
  120. package/dist/scripts/test-issue-74.d.ts.map +1 -0
  121. package/dist/scripts/test-issue-74.js +112 -0
  122. package/dist/scripts/test-issue-74.js.map +1 -0
  123. package/dist/scripts/test-lazy-config.d.ts +3 -0
  124. package/dist/scripts/test-lazy-config.d.ts.map +1 -0
  125. package/dist/scripts/test-lazy-config.js +60 -0
  126. package/dist/scripts/test-lazy-config.js.map +1 -0
  127. package/dist/scripts/test-limited-results.d.ts +3 -0
  128. package/dist/scripts/test-limited-results.d.ts.map +1 -0
  129. package/dist/scripts/test-limited-results.js +76 -0
  130. package/dist/scripts/test-limited-results.js.map +1 -0
  131. package/dist/scripts/test-mcp-n8n-update-partial.d.ts +3 -0
  132. package/dist/scripts/test-mcp-n8n-update-partial.d.ts.map +1 -0
  133. package/dist/scripts/test-mcp-n8n-update-partial.js +138 -0
  134. package/dist/scripts/test-mcp-n8n-update-partial.js.map +1 -0
  135. package/dist/scripts/test-mcp-tools.d.ts +3 -0
  136. package/dist/scripts/test-mcp-tools.d.ts.map +1 -0
  137. package/dist/scripts/test-mcp-tools.js +36 -0
  138. package/dist/scripts/test-mcp-tools.js.map +1 -0
  139. package/dist/scripts/test-metadata-generation.d.ts +3 -0
  140. package/dist/scripts/test-metadata-generation.d.ts.map +1 -0
  141. package/dist/scripts/test-metadata-generation.js +96 -0
  142. package/dist/scripts/test-metadata-generation.js.map +1 -0
  143. package/dist/scripts/test-n8n-manager-integration.d.ts +3 -0
  144. package/dist/scripts/test-n8n-manager-integration.d.ts.map +1 -0
  145. package/dist/scripts/test-n8n-manager-integration.js +122 -0
  146. package/dist/scripts/test-n8n-manager-integration.js.map +1 -0
  147. package/dist/scripts/test-n8n-validate-workflow.d.ts +3 -0
  148. package/dist/scripts/test-n8n-validate-workflow.d.ts.map +1 -0
  149. package/dist/scripts/test-n8n-validate-workflow.js +125 -0
  150. package/dist/scripts/test-n8n-validate-workflow.js.map +1 -0
  151. package/dist/scripts/test-node-level-properties.d.ts +3 -0
  152. package/dist/scripts/test-node-level-properties.d.ts.map +1 -0
  153. package/dist/scripts/test-node-level-properties.js +196 -0
  154. package/dist/scripts/test-node-level-properties.js.map +1 -0
  155. package/dist/scripts/test-node-suggestions.js +1 -1
  156. package/dist/scripts/test-node-suggestions.js.map +1 -1
  157. package/dist/scripts/test-nodes.d.ts +3 -0
  158. package/dist/scripts/test-nodes.d.ts.map +1 -0
  159. package/dist/scripts/test-nodes.js +91 -0
  160. package/dist/scripts/test-nodes.js.map +1 -0
  161. package/dist/scripts/test-single-workflow.d.ts +3 -0
  162. package/dist/scripts/test-single-workflow.d.ts.map +1 -0
  163. package/dist/scripts/test-single-workflow.js +112 -0
  164. package/dist/scripts/test-single-workflow.js.map +1 -0
  165. package/dist/scripts/test-template-validation.d.ts +3 -0
  166. package/dist/scripts/test-template-validation.d.ts.map +1 -0
  167. package/dist/scripts/test-template-validation.js +142 -0
  168. package/dist/scripts/test-template-validation.js.map +1 -0
  169. package/dist/scripts/test-templates.d.ts +4 -0
  170. package/dist/scripts/test-templates.d.ts.map +1 -0
  171. package/dist/scripts/test-templates.js +99 -0
  172. package/dist/scripts/test-templates.js.map +1 -0
  173. package/dist/scripts/test-tools-documentation.d.ts +2 -0
  174. package/dist/scripts/test-tools-documentation.d.ts.map +1 -0
  175. package/dist/scripts/test-tools-documentation.js +41 -0
  176. package/dist/scripts/test-tools-documentation.js.map +1 -0
  177. package/dist/scripts/test-transactional-diff.d.ts +2 -0
  178. package/dist/scripts/test-transactional-diff.d.ts.map +1 -0
  179. package/dist/scripts/test-transactional-diff.js +240 -0
  180. package/dist/scripts/test-transactional-diff.js.map +1 -0
  181. package/dist/scripts/test-update-partial-debug.d.ts +3 -0
  182. package/dist/scripts/test-update-partial-debug.d.ts.map +1 -0
  183. package/dist/scripts/test-update-partial-debug.js +92 -0
  184. package/dist/scripts/test-update-partial-debug.js.map +1 -0
  185. package/dist/scripts/test-updatenode-null-fix.d.ts +3 -0
  186. package/dist/scripts/test-updatenode-null-fix.d.ts.map +1 -0
  187. package/dist/scripts/test-updatenode-null-fix.js +156 -0
  188. package/dist/scripts/test-updatenode-null-fix.js.map +1 -0
  189. package/dist/scripts/test-validation-parity.d.ts +2 -0
  190. package/dist/scripts/test-validation-parity.d.ts.map +1 -0
  191. package/dist/scripts/test-validation-parity.js +153 -0
  192. package/dist/scripts/test-validation-parity.js.map +1 -0
  193. package/dist/scripts/test-version-extraction.d.ts +2 -0
  194. package/dist/scripts/test-version-extraction.d.ts.map +1 -0
  195. package/dist/scripts/test-version-extraction.js +74 -0
  196. package/dist/scripts/test-version-extraction.js.map +1 -0
  197. package/dist/scripts/test-webhook-autofix.js +1 -1
  198. package/dist/scripts/test-webhook-autofix.js.map +1 -1
  199. package/dist/scripts/test-workflow-diff.d.ts +3 -0
  200. package/dist/scripts/test-workflow-diff.d.ts.map +1 -0
  201. package/dist/scripts/test-workflow-diff.js +328 -0
  202. package/dist/scripts/test-workflow-diff.js.map +1 -0
  203. package/dist/scripts/test-workflow-validation.d.ts +3 -0
  204. package/dist/scripts/test-workflow-validation.d.ts.map +1 -0
  205. package/dist/scripts/test-workflow-validation.js +238 -0
  206. package/dist/scripts/test-workflow-validation.js.map +1 -0
  207. package/dist/services/breaking-change-detector.d.ts +38 -0
  208. package/dist/services/breaking-change-detector.d.ts.map +1 -0
  209. package/dist/services/breaking-change-detector.js +184 -0
  210. package/dist/services/breaking-change-detector.js.map +1 -0
  211. package/dist/services/breaking-changes-registry.d.ts +28 -0
  212. package/dist/services/breaking-changes-registry.d.ts.map +1 -0
  213. package/dist/services/breaking-changes-registry.js +200 -0
  214. package/dist/services/breaking-changes-registry.js.map +1 -0
  215. package/dist/services/enhanced-config-validator.d.ts.map +1 -1
  216. package/dist/services/enhanced-config-validator.js +32 -0
  217. package/dist/services/enhanced-config-validator.js.map +1 -1
  218. package/dist/services/n8n-api-client.d.ts +1 -0
  219. package/dist/services/n8n-api-client.d.ts.map +1 -1
  220. package/dist/services/n8n-api-client.js +26 -4
  221. package/dist/services/n8n-api-client.js.map +1 -1
  222. package/dist/services/n8n-validation.d.ts +144 -6
  223. package/dist/services/n8n-validation.d.ts.map +1 -1
  224. package/dist/services/n8n-validation.js +12 -5
  225. package/dist/services/n8n-validation.js.map +1 -1
  226. package/dist/services/node-migration-service.d.ts +44 -0
  227. package/dist/services/node-migration-service.d.ts.map +1 -0
  228. package/dist/services/node-migration-service.js +231 -0
  229. package/dist/services/node-migration-service.js.map +1 -0
  230. package/dist/services/node-version-service.d.ts +63 -0
  231. package/dist/services/node-version-service.d.ts.map +1 -0
  232. package/dist/services/node-version-service.js +215 -0
  233. package/dist/services/node-version-service.js.map +1 -0
  234. package/dist/services/post-update-validator.d.ts +59 -0
  235. package/dist/services/post-update-validator.d.ts.map +1 -0
  236. package/dist/services/post-update-validator.js +231 -0
  237. package/dist/services/post-update-validator.js.map +1 -0
  238. package/dist/services/workflow-auto-fixer.d.ts +10 -2
  239. package/dist/services/workflow-auto-fixer.d.ts.map +1 -1
  240. package/dist/services/workflow-auto-fixer.js +124 -3
  241. package/dist/services/workflow-auto-fixer.js.map +1 -1
  242. package/dist/services/workflow-diff-engine.d.ts +1 -0
  243. package/dist/services/workflow-diff-engine.d.ts.map +1 -1
  244. package/dist/services/workflow-diff-engine.js +23 -1
  245. package/dist/services/workflow-diff-engine.js.map +1 -1
  246. package/dist/services/workflow-ownership.d.ts +35 -0
  247. package/dist/services/workflow-ownership.d.ts.map +1 -0
  248. package/dist/services/workflow-ownership.js +195 -0
  249. package/dist/services/workflow-ownership.js.map +1 -0
  250. package/dist/services/workflow-versioning-service.d.ts +102 -0
  251. package/dist/services/workflow-versioning-service.d.ts.map +1 -0
  252. package/dist/services/workflow-versioning-service.js +264 -0
  253. package/dist/services/workflow-versioning-service.js.map +1 -0
  254. package/dist/sse-server.d.ts +8 -0
  255. package/dist/sse-server.d.ts.map +1 -0
  256. package/dist/sse-server.js +652 -0
  257. package/dist/sse-server.js.map +1 -0
  258. package/dist/types/session-restoration.d.ts +25 -0
  259. package/dist/types/session-restoration.d.ts.map +1 -0
  260. package/dist/types/session-restoration.js +3 -0
  261. package/dist/types/session-restoration.js.map +1 -0
  262. package/dist/types/sse.d.ts +42 -0
  263. package/dist/types/sse.d.ts.map +1 -0
  264. package/dist/types/sse.js +3 -0
  265. package/dist/types/sse.js.map +1 -0
  266. package/dist/types/workflow-diff.d.ts +1 -0
  267. package/dist/types/workflow-diff.d.ts.map +1 -1
  268. package/dist/types/workflow-diff.js.map +1 -1
  269. package/dist/utils/sse-session-manager.d.ts +23 -0
  270. package/dist/utils/sse-session-manager.d.ts.map +1 -0
  271. package/dist/utils/sse-session-manager.js +178 -0
  272. package/dist/utils/sse-session-manager.js.map +1 -0
  273. package/dist/utils/version-utils.d.ts +16 -0
  274. package/dist/utils/version-utils.d.ts.map +1 -0
  275. package/dist/utils/version-utils.js +129 -0
  276. package/dist/utils/version-utils.js.map +1 -0
  277. package/package.json +1 -10
@@ -0,0 +1,112 @@
1
+ #!/usr/bin/env tsx
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const path_1 = require("path");
8
+ const mcp_engine_1 = __importDefault(require("../mcp-engine"));
9
+ console.log('Testing Issue #74 - Format variations for Chat Trigger node\n');
10
+ async function testNodeFormat(engine, format, shouldWork) {
11
+ console.log(`Testing format: "${format}"`);
12
+ try {
13
+ const essentialsResult = await engine.callTool('get_node_essentials', {
14
+ nodeType: format
15
+ });
16
+ if (essentialsResult.error) {
17
+ if (shouldWork) {
18
+ console.log(` โŒ FAILED: ${essentialsResult.error.message}`);
19
+ return false;
20
+ }
21
+ else {
22
+ console.log(` โœ… Expected failure: ${essentialsResult.error.message}`);
23
+ return true;
24
+ }
25
+ }
26
+ const validateResult = await engine.callTool('validate_node_operation', {
27
+ nodeType: format,
28
+ config: { public: true }
29
+ });
30
+ if (validateResult.error) {
31
+ if (shouldWork) {
32
+ console.log(` โŒ FAILED validation: ${validateResult.error.message}`);
33
+ return false;
34
+ }
35
+ else {
36
+ console.log(` โœ… Expected validation failure: ${validateResult.error.message}`);
37
+ return true;
38
+ }
39
+ }
40
+ if (shouldWork) {
41
+ console.log(` โœ… SUCCESS: Found ${essentialsResult.result.displayName}`);
42
+ console.log(` - Category: ${essentialsResult.result.category}`);
43
+ console.log(` - Package: ${essentialsResult.result.metadata.package}`);
44
+ return true;
45
+ }
46
+ else {
47
+ console.log(` โŒ UNEXPECTED SUCCESS: Should have failed but found node`);
48
+ return false;
49
+ }
50
+ }
51
+ catch (error) {
52
+ if (shouldWork) {
53
+ console.log(` โŒ ERROR: ${error}`);
54
+ return false;
55
+ }
56
+ else {
57
+ console.log(` โœ… Expected error: ${error}`);
58
+ return true;
59
+ }
60
+ }
61
+ }
62
+ async function main() {
63
+ const dbPath = (0, path_1.join)(__dirname, '../../data/nodes.db');
64
+ const engine = new mcp_engine_1.default(dbPath);
65
+ try {
66
+ await engine.initialize();
67
+ console.log('MCP Engine initialized\n');
68
+ const testCases = [
69
+ { format: 'nodes-langchain.chatTrigger', shouldWork: true },
70
+ { format: 'n8n-nodes-langchain.chatTrigger', shouldWork: true },
71
+ { format: 'n8n-nodes-langchain.chattrigger', shouldWork: true },
72
+ { format: 'nodes-langchain.chattrigger', shouldWork: true },
73
+ { format: '@n8n/n8n-nodes-langchain.chatTrigger', shouldWork: true },
74
+ { format: '@n8n/n8n-nodes-langchain.chattrigger', shouldWork: true },
75
+ { format: 'invalid.chatTrigger', shouldWork: false },
76
+ { format: 'chatTrigger', shouldWork: false },
77
+ ];
78
+ console.log('Running tests...\n');
79
+ let passed = 0;
80
+ let failed = 0;
81
+ for (const testCase of testCases) {
82
+ const result = await testNodeFormat(engine, testCase.format, testCase.shouldWork);
83
+ if (result) {
84
+ passed++;
85
+ }
86
+ else {
87
+ failed++;
88
+ }
89
+ console.log('');
90
+ }
91
+ console.log(`\nTest Summary:`);
92
+ console.log(` โœ… Passed: ${passed}`);
93
+ console.log(` โŒ Failed: ${failed}`);
94
+ console.log(` Total: ${testCases.length}`);
95
+ if (failed > 0) {
96
+ console.log('\nโš ๏ธ Some tests failed. The issue may not be fully resolved.');
97
+ process.exit(1);
98
+ }
99
+ else {
100
+ console.log('\n๐ŸŽ‰ All tests passed! Issue #74 is fully resolved.');
101
+ }
102
+ }
103
+ catch (error) {
104
+ console.error('Failed to initialize MCP Engine:', error);
105
+ process.exit(1);
106
+ }
107
+ finally {
108
+ await engine.close();
109
+ }
110
+ }
111
+ main().catch(console.error);
112
+ //# sourceMappingURL=test-issue-74.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-issue-74.js","sourceRoot":"","sources":["../../src/scripts/test-issue-74.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=test-lazy-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-lazy-config.d.ts","sourceRoot":"","sources":["../../src/scripts/test-lazy-config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const n8n_api_1 = require("../config/n8n-api");
5
+ const tools_1 = require("../mcp/tools");
6
+ const tools_n8n_manager_1 = require("../mcp/tools-n8n-manager");
7
+ async function testLazyConfigLoading() {
8
+ console.log('=== Testing Lazy Configuration Loading ===\n');
9
+ console.log('Test 1: Initial state (no env vars)');
10
+ delete process.env.N8N_API_URL;
11
+ delete process.env.N8N_API_KEY;
12
+ let isConfigured = (0, n8n_api_1.isN8nApiConfigured)();
13
+ let config = (0, n8n_api_1.getN8nApiConfig)();
14
+ console.log(`- Is configured: ${isConfigured}`);
15
+ console.log(`- Config: ${config ? 'Present' : 'Null'}`);
16
+ console.log(`- Expected tools: ${tools_1.n8nDocumentationToolsFinal.length} (documentation only)\n`);
17
+ console.log('Test 2: After setting environment variables');
18
+ process.env.N8N_API_URL = 'https://example.n8n.cloud';
19
+ process.env.N8N_API_KEY = 'test-api-key';
20
+ await new Promise(resolve => setTimeout(resolve, 100));
21
+ isConfigured = (0, n8n_api_1.isN8nApiConfigured)();
22
+ config = (0, n8n_api_1.getN8nApiConfig)();
23
+ console.log(`- Is configured: ${isConfigured}`);
24
+ console.log(`- Config: ${config ? 'Present' : 'Null'}`);
25
+ console.log(`- Config URL: ${config?.baseUrl || 'N/A'}`);
26
+ console.log(`- Expected tools: ${tools_1.n8nDocumentationToolsFinal.length + tools_n8n_manager_1.n8nManagementTools.length} (documentation + management)\n`);
27
+ console.log('Test 3: Simulating MCP server tool listing');
28
+ const tools = [...tools_1.n8nDocumentationToolsFinal];
29
+ if ((0, n8n_api_1.isN8nApiConfigured)()) {
30
+ tools.push(...tools_n8n_manager_1.n8nManagementTools);
31
+ console.log(`- Management tools added: ${tools_n8n_manager_1.n8nManagementTools.length}`);
32
+ }
33
+ console.log(`- Total tools available: ${tools.length}`);
34
+ console.log(`- Documentation tools: ${tools_1.n8nDocumentationToolsFinal.length}`);
35
+ console.log(`- Management tools: ${(0, n8n_api_1.isN8nApiConfigured)() ? tools_n8n_manager_1.n8nManagementTools.length : 0}\n`);
36
+ console.log('Test 4: After removing environment variables');
37
+ delete process.env.N8N_API_URL;
38
+ delete process.env.N8N_API_KEY;
39
+ await new Promise(resolve => setTimeout(resolve, 5100));
40
+ isConfigured = (0, n8n_api_1.isN8nApiConfigured)();
41
+ config = (0, n8n_api_1.getN8nApiConfig)();
42
+ console.log(`- Is configured: ${isConfigured}`);
43
+ console.log(`- Config: ${config ? 'Present' : 'Null'}`);
44
+ console.log(`- Expected tools: ${tools_1.n8nDocumentationToolsFinal.length} (documentation only)\n`);
45
+ console.log('Test 5: Testing cache behavior');
46
+ process.env.N8N_API_URL = 'https://example2.n8n.cloud';
47
+ process.env.N8N_API_KEY = 'test-api-key-2';
48
+ await new Promise(resolve => setTimeout(resolve, 5100));
49
+ const config1 = (0, n8n_api_1.getN8nApiConfig)();
50
+ console.log(`- First call URL: ${config1?.baseUrl}`);
51
+ const config2 = (0, n8n_api_1.getN8nApiConfig)();
52
+ console.log(`- Second call URL: ${config2?.baseUrl}`);
53
+ console.log(`- URLs match: ${config1?.baseUrl === config2?.baseUrl}\n`);
54
+ console.log('=== All tests completed ===');
55
+ }
56
+ testLazyConfigLoading().catch(error => {
57
+ console.error('Test failed:', error);
58
+ process.exit(1);
59
+ });
60
+ //# sourceMappingURL=test-lazy-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-lazy-config.js","sourceRoot":"","sources":["../../src/scripts/test-lazy-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=test-limited-results.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-limited-results.d.ts","sourceRoot":"","sources":["../../src/scripts/test-limited-results.ts"],"names":[],"mappings":""}
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const n8n_api_client_1 = require("../services/n8n-api-client");
8
+ const dotenv_1 = require("dotenv");
9
+ const axios_1 = __importDefault(require("axios"));
10
+ (0, dotenv_1.config)();
11
+ async function testLimitedResults() {
12
+ const apiUrl = process.env.N8N_API_URL || 'https://n8n.energyhouse.com.pl';
13
+ const apiKey = process.env.N8N_API_KEY || 'n8n_api_f94c0b3fb3bf1a3a690f37bb0c5c0de43c7b690c0a33c88b6baaa37ae896dc96';
14
+ console.log('Testing for limited results issue...');
15
+ console.log('API URL:', apiUrl);
16
+ console.log('API Key:', apiKey.substring(0, 20) + '...\n');
17
+ try {
18
+ console.log('=== Test 1: Direct API call with X-N8N-API-KEY ===');
19
+ const directResponse = await axios_1.default.get(`${apiUrl}/api/v1/workflows`, {
20
+ headers: {
21
+ 'X-N8N-API-KEY': apiKey,
22
+ 'Content-Type': 'application/json'
23
+ },
24
+ params: { limit: 100 }
25
+ });
26
+ console.log(`Direct API: Found ${directResponse.data.data.length} workflows`);
27
+ console.log('\n=== Test 2: Using N8nApiClient ===');
28
+ const client = new n8n_api_client_1.N8nApiClient({
29
+ baseUrl: apiUrl,
30
+ apiKey: apiKey
31
+ });
32
+ const clientResponse = await client.listWorkflows({ limit: 100 });
33
+ console.log(`N8nApiClient: Found ${clientResponse.data.length} workflows`);
34
+ console.log('\n=== Comparison ===');
35
+ console.log(`Direct API returned: ${directResponse.data.data.length} workflows`);
36
+ console.log(`N8nApiClient returned: ${clientResponse.data.length} workflows`);
37
+ if (directResponse.data.data.length !== clientResponse.data.length) {
38
+ console.error('WARNING: Result mismatch detected!');
39
+ console.log('\nFirst workflow from direct API:');
40
+ console.log(JSON.stringify(directResponse.data.data[0], null, 2));
41
+ console.log('\nFirst workflow from N8nApiClient:');
42
+ console.log(JSON.stringify(clientResponse.data[0], null, 2));
43
+ }
44
+ else {
45
+ console.log('โœ… Both methods returned the same number of workflows');
46
+ }
47
+ console.log('\n=== Test 3: Credentials ===');
48
+ const credentialsResponse = await client.listCredentials({ limit: 100 });
49
+ console.log(`Found ${credentialsResponse.data.length} credentials`);
50
+ console.log('\n=== Test 4: Pagination Test ===');
51
+ let allWorkflows = [];
52
+ let cursor = undefined;
53
+ let page = 0;
54
+ do {
55
+ const pageResponse = await client.listWorkflows({
56
+ limit: 10,
57
+ cursor: cursor
58
+ });
59
+ allWorkflows = allWorkflows.concat(pageResponse.data);
60
+ cursor = pageResponse.nextCursor || undefined;
61
+ page++;
62
+ console.log(`Page ${page}: ${pageResponse.data.length} workflows, nextCursor: ${cursor ? 'yes' : 'no'}`);
63
+ } while (cursor && page < 10);
64
+ console.log(`Total workflows via pagination: ${allWorkflows.length}`);
65
+ }
66
+ catch (error) {
67
+ console.error('Error:', error.message);
68
+ if (error.response) {
69
+ console.error('Response status:', error.response.status);
70
+ console.error('Response data:', error.response.data);
71
+ console.error('Response headers:', error.response.headers);
72
+ }
73
+ }
74
+ }
75
+ testLimitedResults().catch(console.error);
76
+ //# sourceMappingURL=test-limited-results.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-limited-results.js","sourceRoot":"","sources":["../../src/scripts/test-limited-results.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=test-mcp-n8n-update-partial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-mcp-n8n-update-partial.d.ts","sourceRoot":"","sources":["../../src/scripts/test-mcp-n8n-update-partial.ts"],"names":[],"mappings":""}
@@ -0,0 +1,138 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const dotenv_1 = require("dotenv");
5
+ const logger_1 = require("../utils/logger");
6
+ const n8n_api_1 = require("../config/n8n-api");
7
+ const handlers_workflow_diff_1 = require("../mcp/handlers-workflow-diff");
8
+ (0, dotenv_1.config)();
9
+ async function testMcpUpdatePartialWorkflow() {
10
+ logger_1.logger.info('Testing n8n_update_partial_workflow MCP tool...');
11
+ if (!(0, n8n_api_1.isN8nApiConfigured)()) {
12
+ logger_1.logger.warn('n8n API not configured. Set N8N_API_URL and N8N_API_KEY to test.');
13
+ logger_1.logger.info('Example:');
14
+ logger_1.logger.info(' N8N_API_URL=https://your-n8n.com N8N_API_KEY=your-key npm run test:mcp:update-partial');
15
+ return;
16
+ }
17
+ logger_1.logger.info('\n=== Test 1: Validate Only (no actual workflow needed) ===');
18
+ const validateOnlyRequest = {
19
+ id: 'test-workflow-123',
20
+ operations: [
21
+ {
22
+ type: 'addNode',
23
+ description: 'Add HTTP Request node',
24
+ node: {
25
+ name: 'HTTP Request',
26
+ type: 'n8n-nodes-base.httpRequest',
27
+ position: [400, 300],
28
+ parameters: {
29
+ url: 'https://api.example.com/data',
30
+ method: 'GET'
31
+ }
32
+ }
33
+ },
34
+ {
35
+ type: 'addConnection',
36
+ source: 'Start',
37
+ target: 'HTTP Request'
38
+ }
39
+ ],
40
+ validateOnly: true
41
+ };
42
+ try {
43
+ const result = await (0, handlers_workflow_diff_1.handleUpdatePartialWorkflow)(validateOnlyRequest);
44
+ logger_1.logger.info('Validation result:', JSON.stringify(result, null, 2));
45
+ }
46
+ catch (error) {
47
+ logger_1.logger.error('Validation test failed:', error);
48
+ }
49
+ logger_1.logger.info('\n=== Test 2: Missing Required Fields ===');
50
+ const invalidRequest = {
51
+ operations: [{
52
+ type: 'addNode'
53
+ }]
54
+ };
55
+ try {
56
+ const result = await (0, handlers_workflow_diff_1.handleUpdatePartialWorkflow)(invalidRequest);
57
+ logger_1.logger.info('Should fail with validation error:', JSON.stringify(result, null, 2));
58
+ }
59
+ catch (error) {
60
+ logger_1.logger.info('Expected validation error:', error instanceof Error ? error.message : String(error));
61
+ }
62
+ logger_1.logger.info('\n=== Test 3: Complex Operations Array ===');
63
+ const complexRequest = {
64
+ id: 'workflow-456',
65
+ operations: [
66
+ {
67
+ type: 'updateNode',
68
+ nodeName: 'Webhook',
69
+ changes: {
70
+ 'parameters.path': 'new-webhook-path',
71
+ 'parameters.method': 'POST'
72
+ }
73
+ },
74
+ {
75
+ type: 'addNode',
76
+ node: {
77
+ name: 'Set',
78
+ type: 'n8n-nodes-base.set',
79
+ typeVersion: 3,
80
+ position: [600, 300],
81
+ parameters: {
82
+ mode: 'manual',
83
+ fields: {
84
+ values: [
85
+ { name: 'status', value: 'processed' }
86
+ ]
87
+ }
88
+ }
89
+ }
90
+ },
91
+ {
92
+ type: 'addConnection',
93
+ source: 'Webhook',
94
+ target: 'Set'
95
+ },
96
+ {
97
+ type: 'updateName',
98
+ name: 'Updated Workflow Name'
99
+ },
100
+ {
101
+ type: 'addTag',
102
+ tag: 'production'
103
+ }
104
+ ],
105
+ validateOnly: true
106
+ };
107
+ try {
108
+ const result = await (0, handlers_workflow_diff_1.handleUpdatePartialWorkflow)(complexRequest);
109
+ logger_1.logger.info('Complex operations result:', JSON.stringify(result, null, 2));
110
+ }
111
+ catch (error) {
112
+ logger_1.logger.error('Complex operations test failed:', error);
113
+ }
114
+ logger_1.logger.info('\n=== Test 4: Invalid Operation Type ===');
115
+ const invalidTypeRequest = {
116
+ id: 'workflow-789',
117
+ operations: [{
118
+ type: 'invalidOperation',
119
+ something: 'else'
120
+ }],
121
+ validateOnly: true
122
+ };
123
+ try {
124
+ const result = await (0, handlers_workflow_diff_1.handleUpdatePartialWorkflow)(invalidTypeRequest);
125
+ logger_1.logger.info('Invalid type result:', JSON.stringify(result, null, 2));
126
+ }
127
+ catch (error) {
128
+ logger_1.logger.info('Expected error for invalid type:', error instanceof Error ? error.message : String(error));
129
+ }
130
+ logger_1.logger.info('\nโœ… MCP tool integration tests completed!');
131
+ logger_1.logger.info('\nNOTE: These tests verify the MCP tool can be called without errors.');
132
+ logger_1.logger.info('To test with real workflows, ensure N8N_API_URL and N8N_API_KEY are set.');
133
+ }
134
+ testMcpUpdatePartialWorkflow().catch(error => {
135
+ logger_1.logger.error('Unhandled error:', error);
136
+ process.exit(1);
137
+ });
138
+ //# sourceMappingURL=test-mcp-n8n-update-partial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-mcp-n8n-update-partial.js","sourceRoot":"","sources":["../../src/scripts/test-mcp-n8n-update-partial.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=test-mcp-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-mcp-tools.d.ts","sourceRoot":"","sources":["../../src/scripts/test-mcp-tools.ts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const server_1 = require("../mcp/server");
5
+ const logger_1 = require("../utils/logger");
6
+ const logger = new logger_1.Logger({ prefix: '[TestMCPTools]' });
7
+ async function testTool(server, toolName, args) {
8
+ try {
9
+ console.log(`\n๐Ÿ”ง Testing: ${toolName}`);
10
+ console.log('Args:', JSON.stringify(args, null, 2));
11
+ console.log('-'.repeat(60));
12
+ const result = await server[toolName].call(server, args);
13
+ console.log('Result:', JSON.stringify(result, null, 2));
14
+ }
15
+ catch (error) {
16
+ console.error(`โŒ Error: ${error}`);
17
+ }
18
+ }
19
+ async function main() {
20
+ console.log('๐Ÿค– Testing MCP Tools\n');
21
+ const server = new server_1.N8NDocumentationMCPServer();
22
+ await new Promise(resolve => setTimeout(resolve, 100));
23
+ console.log('\n=== Testing get_node_as_tool_info ===');
24
+ await testTool(server, 'getNodeAsToolInfo', 'nodes-base.slack');
25
+ await testTool(server, 'getNodeAsToolInfo', 'nodes-base.googleSheets');
26
+ console.log('\n\n=== Testing get_node_info (with aiToolCapabilities) ===');
27
+ await testTool(server, 'getNodeInfo', 'nodes-base.httpRequest');
28
+ console.log('\n\n=== Testing list_ai_tools (enhanced) ===');
29
+ await testTool(server, 'listAITools', {});
30
+ console.log('\nโœ… All tests completed!');
31
+ process.exit(0);
32
+ }
33
+ if (require.main === module) {
34
+ main().catch(console.error);
35
+ }
36
+ //# sourceMappingURL=test-mcp-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-mcp-tools.js","sourceRoot":"","sources":["../../src/scripts/test-mcp-tools.ts"],"names":[],"mappings":";;;AAMA,0CAA0D;AAC1D,4CAAyC;AAEzC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAExD,KAAK,UAAU,QAAQ,CAAC,MAAW,EAAE,QAAgB,EAAE,IAAS;IAC9D,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAGtC,MAAM,MAAM,GAAG,IAAI,kCAAyB,EAAE,CAAC;IAG/C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAGvD,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,MAAM,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;IAChE,MAAM,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,yBAAyB,CAAC,CAAC;IAGvE,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC3E,MAAM,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,wBAAwB,CAAC,CAAC;IAGhE,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC5D,MAAM,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=test-metadata-generation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-metadata-generation.d.ts","sourceRoot":"","sources":["../../src/scripts/test-metadata-generation.ts"],"names":[],"mappings":""}
@@ -0,0 +1,96 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ const dotenv = __importStar(require("dotenv"));
38
+ const database_adapter_1 = require("../database/database-adapter");
39
+ const template_repository_1 = require("../templates/template-repository");
40
+ const metadata_generator_1 = require("../templates/metadata-generator");
41
+ dotenv.config();
42
+ async function testMetadataGeneration() {
43
+ console.log('๐Ÿงช Testing metadata generation with OpenAI...\n');
44
+ if (!process.env.OPENAI_API_KEY) {
45
+ console.error('โŒ OPENAI_API_KEY not set in environment');
46
+ process.exit(1);
47
+ }
48
+ try {
49
+ const db = await (0, database_adapter_1.createDatabaseAdapter)('./data/nodes.db');
50
+ const repository = new template_repository_1.TemplateRepository(db);
51
+ const templates = repository.getTemplatesWithoutMetadata(3);
52
+ if (templates.length === 0) {
53
+ console.log('โœ… All templates already have metadata');
54
+ return;
55
+ }
56
+ console.log(`Found ${templates.length} templates to test with:\n`);
57
+ const generator = new metadata_generator_1.MetadataGenerator(process.env.OPENAI_API_KEY, process.env.OPENAI_MODEL || 'gpt-4o-mini');
58
+ for (const template of templates) {
59
+ console.log(`\n๐Ÿ“ Template: ${template.name}`);
60
+ console.log(` ID: ${template.id}`);
61
+ console.log(` Nodes: ${JSON.parse(template.nodes_used).slice(0, 5).join(', ')}...`);
62
+ try {
63
+ const metadata = await generator.generateSingle({
64
+ templateId: template.id,
65
+ name: template.name,
66
+ description: template.description,
67
+ nodes: JSON.parse(template.nodes_used)
68
+ });
69
+ console.log(' โœ… Generated metadata:');
70
+ console.log(` Categories: ${metadata.categories.join(', ')}`);
71
+ console.log(` Complexity: ${metadata.complexity}`);
72
+ console.log(` Setup time: ${metadata.estimated_setup_minutes} minutes`);
73
+ console.log(` Use cases: ${metadata.use_cases.slice(0, 2).join(', ')}`);
74
+ repository.updateTemplateMetadata(template.id, metadata);
75
+ console.log(' ๐Ÿ’พ Saved to database');
76
+ }
77
+ catch (error) {
78
+ console.error(` โŒ Error generating metadata:`, error);
79
+ }
80
+ }
81
+ const stats = repository.getMetadataStats();
82
+ console.log('\n๐Ÿ“Š Metadata Statistics:');
83
+ console.log(` - Total templates: ${stats.total}`);
84
+ console.log(` - With metadata: ${stats.withMetadata}`);
85
+ console.log(` - Without metadata: ${stats.withoutMetadata}`);
86
+ if ('close' in db && typeof db.close === 'function') {
87
+ db.close();
88
+ }
89
+ }
90
+ catch (error) {
91
+ console.error('โŒ Error:', error);
92
+ process.exit(1);
93
+ }
94
+ }
95
+ testMetadataGeneration().catch(console.error);
96
+ //# sourceMappingURL=test-metadata-generation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-metadata-generation.js","sourceRoot":"","sources":["../../src/scripts/test-metadata-generation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=test-n8n-manager-integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-n8n-manager-integration.d.ts","sourceRoot":"","sources":["../../src/scripts/test-n8n-manager-integration.ts"],"names":[],"mappings":""}