@n8n/ai-utilities 0.23.2 → 0.24.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 (282) hide show
  1. package/dist/cjs/adapters/langchain-chat-model.js +174 -184
  2. package/dist/cjs/adapters/langchain-chat-model.js.map +1 -1
  3. package/dist/cjs/adapters/langchain-history.js +23 -33
  4. package/dist/cjs/adapters/langchain-history.js.map +1 -1
  5. package/dist/cjs/adapters/langchain-memory.js +32 -42
  6. package/dist/cjs/adapters/langchain-memory.js.map +1 -1
  7. package/dist/cjs/agent-config/config-normalization.d.ts +11 -0
  8. package/dist/cjs/agent-config/config-normalization.js +134 -0
  9. package/dist/cjs/agent-config/config-normalization.js.map +1 -0
  10. package/dist/cjs/agent-config/from-ai-node-parameters.d.ts +7 -0
  11. package/dist/cjs/agent-config/from-ai-node-parameters.js +43 -0
  12. package/dist/cjs/agent-config/from-ai-node-parameters.js.map +1 -0
  13. package/dist/cjs/agent-config/index.d.ts +3 -0
  14. package/dist/cjs/agent-config/index.js +17 -0
  15. package/dist/cjs/agent-config/index.js.map +1 -0
  16. package/dist/cjs/agent-config/model-id.d.ts +5 -0
  17. package/dist/cjs/agent-config/model-id.js +16 -0
  18. package/dist/cjs/agent-config/model-id.js.map +1 -0
  19. package/dist/cjs/agent-config/native-web-search-provider-tools.d.ts +7 -0
  20. package/dist/cjs/agent-config/native-web-search-provider-tools.js +55 -0
  21. package/dist/cjs/agent-config/native-web-search-provider-tools.js.map +1 -0
  22. package/dist/cjs/ai-node-sdk-version.js +4 -14
  23. package/dist/cjs/ai-node-sdk-version.js.map +1 -1
  24. package/dist/cjs/chat-model/base.js +21 -31
  25. package/dist/cjs/chat-model/base.js.map +1 -1
  26. package/dist/cjs/converters/message.js +308 -318
  27. package/dist/cjs/converters/message.js.map +1 -1
  28. package/dist/cjs/converters/tool.js +50 -60
  29. package/dist/cjs/converters/tool.js.map +1 -1
  30. package/dist/cjs/guards.js +26 -36
  31. package/dist/cjs/guards.js.map +1 -1
  32. package/dist/cjs/index.js +99 -108
  33. package/dist/cjs/index.js.map +1 -1
  34. package/dist/cjs/memory/base-chat-history.js +9 -19
  35. package/dist/cjs/memory/base-chat-history.js.map +1 -1
  36. package/dist/cjs/memory/base-chat-memory.js +6 -16
  37. package/dist/cjs/memory/base-chat-memory.js.map +1 -1
  38. package/dist/cjs/memory/windowed-chat-memory.js +33 -43
  39. package/dist/cjs/memory/windowed-chat-memory.js.map +1 -1
  40. package/dist/cjs/model-discovery/index.js +61 -71
  41. package/dist/cjs/model-discovery/index.js.map +1 -1
  42. package/dist/cjs/model-discovery/providers/anthropic.js +12 -22
  43. package/dist/cjs/model-discovery/providers/anthropic.js.map +1 -1
  44. package/dist/cjs/model-discovery/providers/cohere.js +12 -22
  45. package/dist/cjs/model-discovery/providers/cohere.js.map +1 -1
  46. package/dist/cjs/model-discovery/providers/deepseek.js +5 -15
  47. package/dist/cjs/model-discovery/providers/deepseek.js.map +1 -1
  48. package/dist/cjs/model-discovery/providers/google.js +15 -25
  49. package/dist/cjs/model-discovery/providers/google.js.map +1 -1
  50. package/dist/cjs/model-discovery/providers/groq.js +9 -19
  51. package/dist/cjs/model-discovery/providers/groq.js.map +1 -1
  52. package/dist/cjs/model-discovery/providers/mistral.js +11 -21
  53. package/dist/cjs/model-discovery/providers/mistral.js.map +1 -1
  54. package/dist/cjs/model-discovery/providers/nvidia.js +21 -31
  55. package/dist/cjs/model-discovery/providers/nvidia.js.map +1 -1
  56. package/dist/cjs/model-discovery/providers/openai.js +31 -41
  57. package/dist/cjs/model-discovery/providers/openai.js.map +1 -1
  58. package/dist/cjs/model-discovery/providers/openrouter.js +5 -15
  59. package/dist/cjs/model-discovery/providers/openrouter.js.map +1 -1
  60. package/dist/cjs/model-discovery/providers/vercel.js +5 -15
  61. package/dist/cjs/model-discovery/providers/vercel.js.map +1 -1
  62. package/dist/cjs/model-discovery/providers/xai.js +5 -15
  63. package/dist/cjs/model-discovery/providers/xai.js.map +1 -1
  64. package/dist/cjs/model-discovery/request.js +40 -50
  65. package/dist/cjs/model-discovery/request.js.map +1 -1
  66. package/dist/cjs/model-discovery/types.js +2 -12
  67. package/dist/cjs/node-catalog/discriminator-utils.js +75 -85
  68. package/dist/cjs/node-catalog/discriminator-utils.js.map +1 -1
  69. package/dist/cjs/node-catalog/dynamic-node-parameters.js +169 -179
  70. package/dist/cjs/node-catalog/dynamic-node-parameters.js.map +1 -1
  71. package/dist/cjs/node-catalog/get.js +349 -359
  72. package/dist/cjs/node-catalog/get.js.map +1 -1
  73. package/dist/cjs/node-catalog/index.js +42 -52
  74. package/dist/cjs/node-catalog/index.js.map +1 -1
  75. package/dist/cjs/node-catalog/lean-node-type.js +46 -56
  76. package/dist/cjs/node-catalog/lean-node-type.js.map +1 -1
  77. package/dist/cjs/node-catalog/node-type-parser.js +61 -71
  78. package/dist/cjs/node-catalog/node-type-parser.js.map +1 -1
  79. package/dist/cjs/node-catalog/resource-operation-extractor.js +133 -143
  80. package/dist/cjs/node-catalog/resource-operation-extractor.js.map +1 -1
  81. package/dist/cjs/node-catalog/search-engine.js +285 -295
  82. package/dist/cjs/node-catalog/search-engine.js.map +1 -1
  83. package/dist/cjs/node-catalog/search.js +280 -290
  84. package/dist/cjs/node-catalog/search.js.map +1 -1
  85. package/dist/cjs/node-catalog/suggested-nodes-data.js +235 -245
  86. package/dist/cjs/node-catalog/suggested-nodes-data.js.map +1 -1
  87. package/dist/cjs/node-catalog/suggested.js +63 -73
  88. package/dist/cjs/node-catalog/suggested.js.map +1 -1
  89. package/dist/cjs/node-catalog/types.js +2 -12
  90. package/dist/cjs/suppliers/supplyMemory.js +13 -23
  91. package/dist/cjs/suppliers/supplyMemory.js.map +1 -1
  92. package/dist/cjs/suppliers/supplyModel.js +72 -82
  93. package/dist/cjs/suppliers/supplyModel.js.map +1 -1
  94. package/dist/cjs/typecheck.tsbuildinfo +1 -1
  95. package/dist/cjs/types/chat-model.js +2 -12
  96. package/dist/cjs/types/json.js +2 -12
  97. package/dist/cjs/types/memory.js +2 -12
  98. package/dist/cjs/types/message.js +2 -12
  99. package/dist/cjs/types/openai.js +2 -12
  100. package/dist/cjs/types/output.js +2 -12
  101. package/dist/cjs/types/tool.js +2 -12
  102. package/dist/cjs/utils/embeddings-input-validation.js +24 -34
  103. package/dist/cjs/utils/embeddings-input-validation.js.map +1 -1
  104. package/dist/cjs/utils/failed-attempt-handler/n8nDefaultFailedAttemptHandler.js +27 -37
  105. package/dist/cjs/utils/failed-attempt-handler/n8nDefaultFailedAttemptHandler.js.map +1 -1
  106. package/dist/cjs/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.d.ts +1 -1
  107. package/dist/cjs/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.js +23 -33
  108. package/dist/cjs/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.js.map +1 -1
  109. package/dist/cjs/utils/follow-redirects.js +38 -48
  110. package/dist/cjs/utils/follow-redirects.js.map +1 -1
  111. package/dist/cjs/utils/fromai-helpers.js +21 -31
  112. package/dist/cjs/utils/fromai-helpers.js.map +1 -1
  113. package/dist/cjs/utils/fromai-tool-factory.js +18 -28
  114. package/dist/cjs/utils/fromai-tool-factory.js.map +1 -1
  115. package/dist/cjs/utils/helpers.js +44 -54
  116. package/dist/cjs/utils/helpers.js.map +1 -1
  117. package/dist/cjs/utils/http-proxy-agent.js +38 -48
  118. package/dist/cjs/utils/http-proxy-agent.js.map +1 -1
  119. package/dist/cjs/utils/lazy-import.d.ts +1 -0
  120. package/dist/cjs/utils/lazy-import.js +7 -0
  121. package/dist/cjs/utils/lazy-import.js.map +1 -0
  122. package/dist/cjs/utils/loaders/n8n-pdf-loader.js +50 -94
  123. package/dist/cjs/utils/loaders/n8n-pdf-loader.js.map +1 -1
  124. package/dist/cjs/utils/log-ai-event.js +10 -20
  125. package/dist/cjs/utils/log-ai-event.js.map +1 -1
  126. package/dist/cjs/utils/log-wrapper.d.ts +1 -1
  127. package/dist/cjs/utils/log-wrapper.js +313 -323
  128. package/dist/cjs/utils/log-wrapper.js.map +1 -1
  129. package/dist/cjs/utils/n8n-binary-loader.js +143 -153
  130. package/dist/cjs/utils/n8n-binary-loader.js.map +1 -1
  131. package/dist/cjs/utils/n8n-json-loader.js +57 -67
  132. package/dist/cjs/utils/n8n-json-loader.js.map +1 -1
  133. package/dist/cjs/utils/n8n-llm-tracing.js +164 -174
  134. package/dist/cjs/utils/n8n-llm-tracing.js.map +1 -1
  135. package/dist/cjs/utils/redact-headers.js +42 -52
  136. package/dist/cjs/utils/redact-headers.js.map +1 -1
  137. package/dist/cjs/utils/shared-fields.js +137 -147
  138. package/dist/cjs/utils/shared-fields.js.map +1 -1
  139. package/dist/cjs/utils/sse.js +83 -93
  140. package/dist/cjs/utils/sse.js.map +1 -1
  141. package/dist/cjs/utils/text-editor.js +274 -284
  142. package/dist/cjs/utils/text-editor.js.map +1 -1
  143. package/dist/cjs/utils/tokenizer/tiktoken.js +38 -48
  144. package/dist/cjs/utils/tokenizer/tiktoken.js.map +1 -1
  145. package/dist/cjs/utils/tokenizer/token-estimator.js +86 -96
  146. package/dist/cjs/utils/tokenizer/token-estimator.js.map +1 -1
  147. package/dist/cjs/utils/vector-store/MemoryManager/MemoryCalculator.js +43 -53
  148. package/dist/cjs/utils/vector-store/MemoryManager/MemoryCalculator.js.map +1 -1
  149. package/dist/cjs/utils/vector-store/MemoryManager/MemoryVectorStoreManager.js +154 -164
  150. package/dist/cjs/utils/vector-store/MemoryManager/MemoryVectorStoreManager.js.map +1 -1
  151. package/dist/cjs/utils/vector-store/MemoryManager/StoreCleanupService.js +82 -92
  152. package/dist/cjs/utils/vector-store/MemoryManager/StoreCleanupService.js.map +1 -1
  153. package/dist/cjs/utils/vector-store/MemoryManager/config.js +34 -44
  154. package/dist/cjs/utils/vector-store/MemoryManager/config.js.map +1 -1
  155. package/dist/cjs/utils/vector-store/MemoryManager/types.js +2 -12
  156. package/dist/cjs/utils/vector-store/createVectorStoreNode/constants.js +44 -54
  157. package/dist/cjs/utils/vector-store/createVectorStoreNode/constants.js.map +1 -1
  158. package/dist/cjs/utils/vector-store/createVectorStoreNode/createVectorStoreNode.js +229 -229
  159. package/dist/cjs/utils/vector-store/createVectorStoreNode/createVectorStoreNode.js.map +1 -1
  160. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/index.js +8 -18
  161. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/index.js.map +1 -1
  162. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/insertOperation.js +33 -43
  163. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/insertOperation.js.map +1 -1
  164. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/loadOperation.js +41 -51
  165. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/loadOperation.js.map +1 -1
  166. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolExecuteOperation.js +59 -69
  167. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolExecuteOperation.js.map +1 -1
  168. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolOperation.js +58 -68
  169. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolOperation.js.map +1 -1
  170. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveOperation.js +26 -36
  171. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveOperation.js.map +1 -1
  172. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/updateOperation.js +34 -44
  173. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/updateOperation.js.map +1 -1
  174. package/dist/cjs/utils/vector-store/createVectorStoreNode/types.js +2 -12
  175. package/dist/cjs/utils/vector-store/createVectorStoreNode/utils.d.ts +2 -1
  176. package/dist/cjs/utils/vector-store/createVectorStoreNode/utils.js +34 -29
  177. package/dist/cjs/utils/vector-store/createVectorStoreNode/utils.js.map +1 -1
  178. package/dist/cjs/utils/vector-store/processDocuments.js +37 -47
  179. package/dist/cjs/utils/vector-store/processDocuments.js.map +1 -1
  180. package/dist/cjs/utils/workflow-text-editor.js +50 -60
  181. package/dist/cjs/utils/workflow-text-editor.js.map +1 -1
  182. package/dist/cjs/web-search/brave-search.js +38 -48
  183. package/dist/cjs/web-search/brave-search.js.map +1 -1
  184. package/dist/cjs/web-search/index.js +7 -17
  185. package/dist/cjs/web-search/index.js.map +1 -1
  186. package/dist/cjs/web-search/searxng-search.js +35 -45
  187. package/dist/cjs/web-search/searxng-search.js.map +1 -1
  188. package/dist/cjs/web-search/types.js +2 -12
  189. package/dist/esm/adapters/langchain-chat-model.js.map +1 -1
  190. package/dist/esm/adapters/langchain-history.js.map +1 -1
  191. package/dist/esm/adapters/langchain-memory.js.map +1 -1
  192. package/dist/esm/agent-config/config-normalization.d.ts +11 -0
  193. package/dist/esm/agent-config/config-normalization.js +134 -0
  194. package/dist/esm/agent-config/config-normalization.js.map +1 -0
  195. package/dist/esm/agent-config/from-ai-node-parameters.d.ts +7 -0
  196. package/dist/esm/agent-config/from-ai-node-parameters.js +43 -0
  197. package/dist/esm/agent-config/from-ai-node-parameters.js.map +1 -0
  198. package/dist/esm/agent-config/index.d.ts +3 -0
  199. package/dist/esm/agent-config/index.js +17 -0
  200. package/dist/esm/agent-config/index.js.map +1 -0
  201. package/dist/esm/agent-config/model-id.d.ts +5 -0
  202. package/dist/esm/agent-config/model-id.js +16 -0
  203. package/dist/esm/agent-config/model-id.js.map +1 -0
  204. package/dist/esm/agent-config/native-web-search-provider-tools.d.ts +7 -0
  205. package/dist/esm/agent-config/native-web-search-provider-tools.js +55 -0
  206. package/dist/esm/agent-config/native-web-search-provider-tools.js.map +1 -0
  207. package/dist/esm/chat-model/base.js.map +1 -1
  208. package/dist/esm/converters/message.js.map +1 -1
  209. package/dist/esm/converters/tool.js.map +1 -1
  210. package/dist/esm/guards.js.map +1 -1
  211. package/dist/esm/index.js.map +1 -1
  212. package/dist/esm/memory/base-chat-history.js.map +1 -1
  213. package/dist/esm/memory/base-chat-memory.js.map +1 -1
  214. package/dist/esm/memory/windowed-chat-memory.js.map +1 -1
  215. package/dist/esm/model-discovery/index.js.map +1 -1
  216. package/dist/esm/model-discovery/providers/anthropic.js.map +1 -1
  217. package/dist/esm/model-discovery/providers/cohere.js.map +1 -1
  218. package/dist/esm/model-discovery/providers/google.js.map +1 -1
  219. package/dist/esm/model-discovery/providers/groq.js.map +1 -1
  220. package/dist/esm/model-discovery/providers/mistral.js.map +1 -1
  221. package/dist/esm/model-discovery/providers/nvidia.js.map +1 -1
  222. package/dist/esm/model-discovery/providers/openai.js.map +1 -1
  223. package/dist/esm/model-discovery/request.js.map +1 -1
  224. package/dist/esm/node-catalog/discriminator-utils.js.map +1 -1
  225. package/dist/esm/node-catalog/dynamic-node-parameters.js.map +1 -1
  226. package/dist/esm/node-catalog/get.js.map +1 -1
  227. package/dist/esm/node-catalog/lean-node-type.js.map +1 -1
  228. package/dist/esm/node-catalog/node-type-parser.js.map +1 -1
  229. package/dist/esm/node-catalog/resource-operation-extractor.js.map +1 -1
  230. package/dist/esm/node-catalog/search-engine.js.map +1 -1
  231. package/dist/esm/node-catalog/search.js.map +1 -1
  232. package/dist/esm/node-catalog/suggested-nodes-data.js.map +1 -1
  233. package/dist/esm/node-catalog/suggested.js.map +1 -1
  234. package/dist/esm/suppliers/supplyMemory.js.map +1 -1
  235. package/dist/esm/suppliers/supplyModel.js.map +1 -1
  236. package/dist/esm/typecheck.tsbuildinfo +1 -1
  237. package/dist/esm/utils/embeddings-input-validation.js.map +1 -1
  238. package/dist/esm/utils/failed-attempt-handler/n8nDefaultFailedAttemptHandler.js.map +1 -1
  239. package/dist/esm/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.d.ts +1 -1
  240. package/dist/esm/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.js.map +1 -1
  241. package/dist/esm/utils/follow-redirects.js.map +1 -1
  242. package/dist/esm/utils/fromai-helpers.js.map +1 -1
  243. package/dist/esm/utils/fromai-tool-factory.js.map +1 -1
  244. package/dist/esm/utils/helpers.js.map +1 -1
  245. package/dist/esm/utils/http-proxy-agent.js.map +1 -1
  246. package/dist/esm/utils/lazy-import.d.ts +1 -0
  247. package/dist/esm/utils/lazy-import.js +7 -0
  248. package/dist/esm/utils/lazy-import.js.map +1 -0
  249. package/dist/esm/utils/loaders/n8n-pdf-loader.js +2 -35
  250. package/dist/esm/utils/loaders/n8n-pdf-loader.js.map +1 -1
  251. package/dist/esm/utils/log-ai-event.js.map +1 -1
  252. package/dist/esm/utils/log-wrapper.d.ts +1 -1
  253. package/dist/esm/utils/log-wrapper.js.map +1 -1
  254. package/dist/esm/utils/n8n-binary-loader.js.map +1 -1
  255. package/dist/esm/utils/n8n-json-loader.js.map +1 -1
  256. package/dist/esm/utils/n8n-llm-tracing.js.map +1 -1
  257. package/dist/esm/utils/redact-headers.js.map +1 -1
  258. package/dist/esm/utils/shared-fields.js.map +1 -1
  259. package/dist/esm/utils/sse.js.map +1 -1
  260. package/dist/esm/utils/text-editor.js.map +1 -1
  261. package/dist/esm/utils/tokenizer/tiktoken.js.map +1 -1
  262. package/dist/esm/utils/tokenizer/token-estimator.js.map +1 -1
  263. package/dist/esm/utils/vector-store/MemoryManager/MemoryCalculator.js.map +1 -1
  264. package/dist/esm/utils/vector-store/MemoryManager/MemoryVectorStoreManager.js.map +1 -1
  265. package/dist/esm/utils/vector-store/MemoryManager/StoreCleanupService.js.map +1 -1
  266. package/dist/esm/utils/vector-store/MemoryManager/config.js.map +1 -1
  267. package/dist/esm/utils/vector-store/createVectorStoreNode/createVectorStoreNode.js +43 -33
  268. package/dist/esm/utils/vector-store/createVectorStoreNode/createVectorStoreNode.js.map +1 -1
  269. package/dist/esm/utils/vector-store/createVectorStoreNode/operations/insertOperation.js.map +1 -1
  270. package/dist/esm/utils/vector-store/createVectorStoreNode/operations/loadOperation.js.map +1 -1
  271. package/dist/esm/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolExecuteOperation.js.map +1 -1
  272. package/dist/esm/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolOperation.js.map +1 -1
  273. package/dist/esm/utils/vector-store/createVectorStoreNode/operations/retrieveOperation.js.map +1 -1
  274. package/dist/esm/utils/vector-store/createVectorStoreNode/operations/updateOperation.js.map +1 -1
  275. package/dist/esm/utils/vector-store/createVectorStoreNode/utils.d.ts +2 -1
  276. package/dist/esm/utils/vector-store/createVectorStoreNode/utils.js +15 -0
  277. package/dist/esm/utils/vector-store/createVectorStoreNode/utils.js.map +1 -1
  278. package/dist/esm/utils/vector-store/processDocuments.js.map +1 -1
  279. package/dist/esm/utils/workflow-text-editor.js.map +1 -1
  280. package/dist/esm/web-search/brave-search.js.map +1 -1
  281. package/dist/esm/web-search/searxng-search.js.map +1 -1
  282. package/package.json +22 -7
@@ -1,166 +1,156 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractResourceOperations = extractResourceOperations;
4
+ exports.createResourceCacheKey = createResourceCacheKey;
5
+ exports.formatResourceOperationsForPrompt = formatResourceOperationsForPrompt;
6
+ const n8n_workflow_1 = require("n8n-workflow");
7
+ function isPropertyVisibleForVersion(property, nodeVersion) {
8
+ const displayOptions = property.displayOptions;
9
+ if (!displayOptions) {
10
+ return true;
5
11
  }
6
- else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "n8n-workflow"], factory);
12
+ const showVersion = displayOptions.show?.['@version'];
13
+ if (showVersion && !(0, n8n_workflow_1.checkConditions)(showVersion, [nodeVersion])) {
14
+ return false;
8
15
  }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.extractResourceOperations = extractResourceOperations;
13
- exports.createResourceCacheKey = createResourceCacheKey;
14
- exports.formatResourceOperationsForPrompt = formatResourceOperationsForPrompt;
15
- const n8n_workflow_1 = require("n8n-workflow");
16
- function isPropertyVisibleForVersion(property, nodeVersion) {
17
- const displayOptions = property.displayOptions;
18
- if (!displayOptions) {
19
- return true;
20
- }
21
- const showVersion = displayOptions.show?.['@version'];
22
- if (showVersion && !(0, n8n_workflow_1.checkConditions)(showVersion, [nodeVersion])) {
16
+ const hideVersion = displayOptions.hide?.['@version'];
17
+ if (hideVersion && (0, n8n_workflow_1.checkConditions)(hideVersion, [nodeVersion])) {
18
+ return false;
19
+ }
20
+ return true;
21
+ }
22
+ function findResourceProperty(properties, nodeVersion) {
23
+ return properties.find((prop) => prop.name === 'resource' &&
24
+ prop.type === 'options' &&
25
+ isPropertyVisibleForVersion(prop, nodeVersion));
26
+ }
27
+ function isOperationVisibleForResource(prop, resourceValue) {
28
+ const displayOptions = prop.displayOptions;
29
+ if (!displayOptions) {
30
+ return true;
31
+ }
32
+ const showResource = displayOptions.show?.resource;
33
+ if (showResource && !(0, n8n_workflow_1.checkConditions)(showResource, [resourceValue])) {
34
+ return false;
35
+ }
36
+ const hideResource = displayOptions.hide?.resource;
37
+ if (hideResource && (0, n8n_workflow_1.checkConditions)(hideResource, [resourceValue])) {
38
+ return false;
39
+ }
40
+ return true;
41
+ }
42
+ function findOperationProperties(properties, resourceValue, nodeVersion) {
43
+ return properties.filter((prop) => {
44
+ if (prop.name !== 'operation' || prop.type !== 'options') {
23
45
  return false;
24
46
  }
25
- const hideVersion = displayOptions.hide?.['@version'];
26
- if (hideVersion && (0, n8n_workflow_1.checkConditions)(hideVersion, [nodeVersion])) {
47
+ if (!isPropertyVisibleForVersion(prop, nodeVersion)) {
27
48
  return false;
28
49
  }
29
- return true;
30
- }
31
- function findResourceProperty(properties, nodeVersion) {
32
- return properties.find((prop) => prop.name === 'resource' &&
33
- prop.type === 'options' &&
34
- isPropertyVisibleForVersion(prop, nodeVersion));
50
+ return isOperationVisibleForResource(prop, resourceValue);
51
+ });
52
+ }
53
+ function extractOptions(property, logger, options) {
54
+ if (!property.options || !Array.isArray(property.options)) {
55
+ return [];
35
56
  }
36
- function isOperationVisibleForResource(prop, resourceValue) {
37
- const displayOptions = prop.displayOptions;
38
- if (!displayOptions) {
39
- return true;
40
- }
41
- const showResource = displayOptions.show?.resource;
42
- if (showResource && !(0, n8n_workflow_1.checkConditions)(showResource, [resourceValue])) {
57
+ const includeDescription = options?.fields?.description ?? false;
58
+ const includeBuilderHint = options?.fields?.builderHint ?? false;
59
+ return property.options
60
+ .filter((opt) => {
61
+ if (typeof opt !== 'object' || opt === null || !('name' in opt) || !('value' in opt)) {
43
62
  return false;
44
63
  }
45
- const hideResource = displayOptions.hide?.resource;
46
- if (hideResource && (0, n8n_workflow_1.checkConditions)(hideResource, [resourceValue])) {
64
+ const optName = opt.name;
65
+ const optValue = opt.value;
66
+ if (typeof optValue !== 'string') {
67
+ logger?.debug('Skipping non-string option value in resource/operation extraction', {
68
+ propertyName: property.name,
69
+ optionName: optName,
70
+ valueType: typeof optValue,
71
+ });
47
72
  return false;
48
73
  }
49
74
  return true;
50
- }
51
- function findOperationProperties(properties, resourceValue, nodeVersion) {
52
- return properties.filter((prop) => {
53
- if (prop.name !== 'operation' || prop.type !== 'options') {
54
- return false;
55
- }
56
- if (!isPropertyVisibleForVersion(prop, nodeVersion)) {
57
- return false;
58
- }
59
- return isOperationVisibleForResource(prop, resourceValue);
75
+ })
76
+ .map((opt) => ({
77
+ value: opt.value,
78
+ displayName: opt.name,
79
+ ...(includeDescription && opt.description && { description: opt.description }),
80
+ ...(includeBuilderHint && opt.builderHint && { builderHint: opt.builderHint }),
81
+ }));
82
+ }
83
+ function extractResourceOperations(nodeType, nodeVersion, logger, options) {
84
+ const properties = nodeType.properties;
85
+ if (!properties || properties.length === 0) {
86
+ logger?.debug('extractResourceOperations: No properties found', {
87
+ nodeType: nodeType.name,
88
+ nodeVersion,
60
89
  });
90
+ return null;
61
91
  }
62
- function extractOptions(property, logger, options) {
63
- if (!property.options || !Array.isArray(property.options)) {
64
- return [];
65
- }
66
- const includeDescription = options?.fields?.description ?? false;
67
- const includeBuilderHint = options?.fields?.builderHint ?? false;
68
- return property.options
69
- .filter((opt) => {
70
- if (typeof opt !== 'object' || opt === null || !('name' in opt) || !('value' in opt)) {
71
- return false;
72
- }
73
- const optName = opt.name;
74
- const optValue = opt.value;
75
- if (typeof optValue !== 'string') {
76
- logger?.debug('Skipping non-string option value in resource/operation extraction', {
77
- propertyName: property.name,
78
- optionName: optName,
79
- valueType: typeof optValue,
80
- });
81
- return false;
82
- }
83
- return true;
84
- })
85
- .map((opt) => ({
86
- value: opt.value,
87
- displayName: opt.name,
88
- ...(includeDescription && opt.description && { description: opt.description }),
89
- ...(includeBuilderHint && opt.builderHint && { builderHint: opt.builderHint }),
90
- }));
92
+ const resourceProperty = findResourceProperty(properties, nodeVersion);
93
+ if (!resourceProperty) {
94
+ return null;
91
95
  }
92
- function extractResourceOperations(nodeType, nodeVersion, logger, options) {
93
- const properties = nodeType.properties;
94
- if (!properties || properties.length === 0) {
95
- logger?.debug('extractResourceOperations: No properties found', {
96
- nodeType: nodeType.name,
97
- nodeVersion,
98
- });
99
- return null;
100
- }
101
- const resourceProperty = findResourceProperty(properties, nodeVersion);
102
- if (!resourceProperty) {
103
- return null;
104
- }
105
- const resourceOptions = extractOptions(resourceProperty, logger, options);
106
- if (resourceOptions.length === 0) {
107
- logger?.warn('extractResourceOperations: Resource property found but no string options', {
108
- nodeType: nodeType.name,
109
- nodeVersion,
110
- propertyDefault: resourceProperty.default,
111
- });
112
- return null;
113
- }
114
- const resources = resourceOptions.map((resource) => {
115
- const operationProperties = findOperationProperties(properties, resource.value, nodeVersion);
116
- const allOperations = [];
117
- const seenValues = new Set();
118
- for (const opProp of operationProperties) {
119
- const ops = extractOptions(opProp, logger, options);
120
- for (const op of ops) {
121
- if (!seenValues.has(op.value)) {
122
- seenValues.add(op.value);
123
- allOperations.push({
124
- value: op.value,
125
- displayName: op.displayName,
126
- ...(op.description && { description: op.description }),
127
- ...(op.builderHint && { builderHint: op.builderHint }),
128
- });
129
- }
130
- }
131
- }
132
- return {
133
- value: resource.value,
134
- displayName: resource.displayName,
135
- ...(resource.description && { description: resource.description }),
136
- ...(resource.builderHint && { builderHint: resource.builderHint }),
137
- operations: allOperations,
138
- };
96
+ const resourceOptions = extractOptions(resourceProperty, logger, options);
97
+ if (resourceOptions.length === 0) {
98
+ logger?.warn('extractResourceOperations: Resource property found but no string options', {
99
+ nodeType: nodeType.name,
100
+ nodeVersion,
101
+ propertyDefault: resourceProperty.default,
139
102
  });
140
- return { resources };
103
+ return null;
141
104
  }
142
- function createResourceCacheKey(nodeName, version) {
143
- return `${nodeName}:${version}`;
144
- }
145
- function formatResourceOperationsForPrompt(info) {
146
- const parts = ['<available_resources_and_operations>'];
147
- for (const resource of info.resources) {
148
- if (resource.value === '__CUSTOM_API_CALL__')
149
- continue;
150
- parts.push(` Resource: ${resource.displayName} (value: "${resource.value}")`);
151
- const filteredOps = resource.operations.filter((op) => op.value !== '__CUSTOM_API_CALL__');
152
- if (filteredOps.length > 0) {
153
- parts.push(' Operations:');
154
- for (const op of filteredOps) {
155
- parts.push(` - ${op.displayName} (value: "${op.value}")`);
105
+ const resources = resourceOptions.map((resource) => {
106
+ const operationProperties = findOperationProperties(properties, resource.value, nodeVersion);
107
+ const allOperations = [];
108
+ const seenValues = new Set();
109
+ for (const opProp of operationProperties) {
110
+ const ops = extractOptions(opProp, logger, options);
111
+ for (const op of ops) {
112
+ if (!seenValues.has(op.value)) {
113
+ seenValues.add(op.value);
114
+ allOperations.push({
115
+ value: op.value,
116
+ displayName: op.displayName,
117
+ ...(op.description && { description: op.description }),
118
+ ...(op.builderHint && { builderHint: op.builderHint }),
119
+ });
156
120
  }
157
121
  }
158
- else {
159
- parts.push(' Operations: none defined');
122
+ }
123
+ return {
124
+ value: resource.value,
125
+ displayName: resource.displayName,
126
+ ...(resource.description && { description: resource.description }),
127
+ ...(resource.builderHint && { builderHint: resource.builderHint }),
128
+ operations: allOperations,
129
+ };
130
+ });
131
+ return { resources };
132
+ }
133
+ function createResourceCacheKey(nodeName, version) {
134
+ return `${nodeName}:${version}`;
135
+ }
136
+ function formatResourceOperationsForPrompt(info) {
137
+ const parts = ['<available_resources_and_operations>'];
138
+ for (const resource of info.resources) {
139
+ if (resource.value === '__CUSTOM_API_CALL__')
140
+ continue;
141
+ parts.push(` Resource: ${resource.displayName} (value: "${resource.value}")`);
142
+ const filteredOps = resource.operations.filter((op) => op.value !== '__CUSTOM_API_CALL__');
143
+ if (filteredOps.length > 0) {
144
+ parts.push(' Operations:');
145
+ for (const op of filteredOps) {
146
+ parts.push(` - ${op.displayName} (value: "${op.value}")`);
160
147
  }
161
148
  }
162
- parts.push('</available_resources_and_operations>');
163
- return parts.join('\n');
149
+ else {
150
+ parts.push(' Operations: none defined');
151
+ }
164
152
  }
165
- });
153
+ parts.push('</available_resources_and_operations>');
154
+ return parts.join('\n');
155
+ }
166
156
  //# sourceMappingURL=resource-operation-extractor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-operation-extractor.js","sourceRoot":"","sources":["../../../src/node-catalog/resource-operation-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-operation-extractor.js","sourceRoot":"","sources":["../../../src/node-catalog/resource-operation-extractor.ts"],"names":[],"mappings":"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"}