@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,3 +1,4 @@
1
+ "use strict";
1
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
3
  if (k2 === undefined) k2 = k;
3
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -31,358 +32,347 @@ var __importStar = (this && this.__importStar) || (function () {
31
32
  return result;
32
33
  };
33
34
  })();
34
- (function (factory) {
35
- if (typeof module === "object" && typeof module.exports === "object") {
36
- var v = factory(require, exports);
37
- if (v !== undefined) module.exports = v;
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.fromLcContent = fromLcContent;
37
+ exports.fromLcMessage = fromLcMessage;
38
+ exports.toLcContent = toLcContent;
39
+ exports.toLcMessage = toLcMessage;
40
+ const LangchainMessages = __importStar(require("@langchain/core/messages"));
41
+ const n8n_workflow_1 = require("n8n-workflow");
42
+ function isN8nTextBlock(block) {
43
+ return block.type === 'text';
44
+ }
45
+ function isN8nReasoningBlock(block) {
46
+ return block.type === 'reasoning';
47
+ }
48
+ function isN8nFileBlock(block) {
49
+ return block.type === 'file';
50
+ }
51
+ function isN8nToolCallBlock(block) {
52
+ return block.type === 'tool-call';
53
+ }
54
+ function isN8nInvalidToolCallBlock(block) {
55
+ return block.type === 'invalid-tool-call';
56
+ }
57
+ function isN8nToolResultBlock(block) {
58
+ return block.type === 'tool-result';
59
+ }
60
+ function isN8nCitationBlock(block) {
61
+ return block.type === 'citation';
62
+ }
63
+ function isN8nProviderBlock(block) {
64
+ return block.type === 'provider';
65
+ }
66
+ function fromLcRole(role) {
67
+ switch (role) {
68
+ case 'system':
69
+ return 'system';
70
+ case 'user':
71
+ return 'user';
72
+ case 'assistant':
73
+ return 'assistant';
74
+ case 'tool':
75
+ return 'tool';
76
+ default:
77
+ return 'user';
38
78
  }
39
- else if (typeof define === "function" && define.amd) {
40
- define(["require", "exports", "@langchain/core/messages", "n8n-workflow"], factory);
79
+ }
80
+ function isTextBlock(block) {
81
+ return block.type === 'text';
82
+ }
83
+ function isReasoningBlock(block) {
84
+ return block.type === 'reasoning';
85
+ }
86
+ function isFileBlock(block) {
87
+ return (block.type === 'file' ||
88
+ block.type === 'audio' ||
89
+ block.type === 'video' ||
90
+ block.type === 'image' ||
91
+ block.type === 'text-plain');
92
+ }
93
+ function isToolCallBlock(block) {
94
+ return block.type === 'tool_call';
95
+ }
96
+ function isInvalidToolCallBlock(block) {
97
+ return block.type === 'invalid_tool_call';
98
+ }
99
+ function isToolResultBlock(block) {
100
+ return block.type === 'server_tool_call_result';
101
+ }
102
+ function isCitationBlock(block) {
103
+ return (typeof block === 'object' && block !== null && 'type' in block && block.type === 'citation');
104
+ }
105
+ function isNonStandardBlock(block) {
106
+ return block.type === 'non_standard';
107
+ }
108
+ function fromLcContent(content) {
109
+ if (typeof content === 'string') {
110
+ return [
111
+ {
112
+ type: 'text',
113
+ text: content,
114
+ },
115
+ ];
41
116
  }
42
- })(function (require, exports) {
43
- "use strict";
44
- Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.fromLcContent = fromLcContent;
46
- exports.fromLcMessage = fromLcMessage;
47
- exports.toLcContent = toLcContent;
48
- exports.toLcMessage = toLcMessage;
49
- const LangchainMessages = __importStar(require("@langchain/core/messages"));
50
- const n8n_workflow_1 = require("n8n-workflow");
51
- function isN8nTextBlock(block) {
52
- return block.type === 'text';
53
- }
54
- function isN8nReasoningBlock(block) {
55
- return block.type === 'reasoning';
56
- }
57
- function isN8nFileBlock(block) {
58
- return block.type === 'file';
59
- }
60
- function isN8nToolCallBlock(block) {
61
- return block.type === 'tool-call';
62
- }
63
- function isN8nInvalidToolCallBlock(block) {
64
- return block.type === 'invalid-tool-call';
65
- }
66
- function isN8nToolResultBlock(block) {
67
- return block.type === 'tool-result';
68
- }
69
- function isN8nCitationBlock(block) {
70
- return block.type === 'citation';
71
- }
72
- function isN8nProviderBlock(block) {
73
- return block.type === 'provider';
74
- }
75
- function fromLcRole(role) {
76
- switch (role) {
77
- case 'system':
78
- return 'system';
79
- case 'user':
80
- return 'user';
81
- case 'assistant':
82
- return 'assistant';
83
- case 'tool':
84
- return 'tool';
85
- default:
86
- return 'user';
117
+ const blocks = Array.isArray(content) ? content : [content];
118
+ return blocks
119
+ .map((block) => {
120
+ let content = null;
121
+ if (isTextBlock(block)) {
122
+ content = {
123
+ type: 'text',
124
+ text: block.text,
125
+ };
87
126
  }
88
- }
89
- function isTextBlock(block) {
90
- return block.type === 'text';
91
- }
92
- function isReasoningBlock(block) {
93
- return block.type === 'reasoning';
94
- }
95
- function isFileBlock(block) {
96
- return (block.type === 'file' ||
97
- block.type === 'audio' ||
98
- block.type === 'video' ||
99
- block.type === 'image' ||
100
- block.type === 'text-plain');
101
- }
102
- function isToolCallBlock(block) {
103
- return block.type === 'tool_call';
104
- }
105
- function isInvalidToolCallBlock(block) {
106
- return block.type === 'invalid_tool_call';
107
- }
108
- function isToolResultBlock(block) {
109
- return block.type === 'server_tool_call_result';
110
- }
111
- function isCitationBlock(block) {
112
- return (typeof block === 'object' && block !== null && 'type' in block && block.type === 'citation');
113
- }
114
- function isNonStandardBlock(block) {
115
- return block.type === 'non_standard';
116
- }
117
- function fromLcContent(content) {
118
- if (typeof content === 'string') {
119
- return [
120
- {
121
- type: 'text',
122
- text: content,
123
- },
124
- ];
127
+ else if (isReasoningBlock(block)) {
128
+ content = {
129
+ type: 'reasoning',
130
+ text: block.reasoning,
131
+ };
125
132
  }
126
- const blocks = Array.isArray(content) ? content : [content];
127
- return blocks
128
- .map((block) => {
129
- let content = null;
130
- if (isTextBlock(block)) {
131
- content = {
132
- type: 'text',
133
- text: block.text,
134
- };
135
- }
136
- else if (isReasoningBlock(block)) {
137
- content = {
138
- type: 'reasoning',
139
- text: block.reasoning,
140
- };
141
- }
142
- else if (isFileBlock(block)) {
143
- let metadata = {};
144
- if (block.metadata) {
145
- metadata = block.metadata;
146
- }
147
- if ('url' in block) {
148
- metadata.url = block.url;
149
- }
150
- if ('fileId' in block) {
151
- metadata.fileId = block.fileId;
152
- }
153
- content = {
154
- type: 'file',
155
- mediaType: block.mimeType,
156
- data: block.data,
157
- providerMetadata: Object.keys(metadata).length > 0 ? metadata : undefined,
158
- };
159
- }
160
- else if (isToolCallBlock(block)) {
161
- content = {
162
- type: 'tool-call',
163
- toolCallId: block.id,
164
- toolName: block.name,
165
- input: JSON.stringify(block.args),
166
- };
133
+ else if (isFileBlock(block)) {
134
+ let metadata = {};
135
+ if (block.metadata) {
136
+ metadata = block.metadata;
167
137
  }
168
- else if (isInvalidToolCallBlock(block)) {
169
- content = {
170
- type: 'invalid-tool-call',
171
- toolCallId: block.id,
172
- error: block.error,
173
- args: block.args,
174
- name: block.name,
175
- };
138
+ if ('url' in block) {
139
+ metadata.url = block.url;
176
140
  }
177
- else if (isToolResultBlock(block)) {
178
- content = {
179
- type: 'tool-result',
180
- toolCallId: block.toolCallId,
181
- result: block.output,
182
- isError: block.status === 'error',
183
- };
184
- }
185
- else if (isCitationBlock(block)) {
186
- content = {
187
- type: 'citation',
188
- source: block.source,
189
- url: block.url,
190
- title: block.title,
191
- startIndex: block.startIndex,
192
- endIndex: block.endIndex,
193
- text: block.citedText,
194
- };
195
- }
196
- else if (isNonStandardBlock(block)) {
197
- content = {
198
- type: 'provider',
199
- value: block.value,
200
- };
141
+ if ('fileId' in block) {
142
+ metadata.fileId = block.fileId;
201
143
  }
202
- return content;
203
- })
204
- .filter((content) => content !== null);
205
- }
206
- function fromLcMessage(msg) {
207
- if (LangchainMessages.ToolMessage.isInstance(msg)) {
208
- const result = typeof msg.content === 'string' ? msg.content : fromLcContent(msg.content);
209
- return {
210
- role: 'tool',
211
- content: [
212
- {
213
- type: 'tool-result',
214
- toolCallId: msg.tool_call_id,
215
- result,
216
- isError: msg.status === 'error',
217
- providerMetadata: msg.metadata,
218
- },
219
- ],
220
- id: msg.id,
221
- name: msg.name,
222
- };
223
- }
224
- if (LangchainMessages.AIMessage.isInstance(msg)) {
225
- const content = fromLcContent(msg.content);
226
- const toolsCalls = msg.tool_calls;
227
- if (toolsCalls?.length) {
228
- const mappedToolsCalls = toolsCalls.map((toolCall) => ({
229
- type: 'tool-call',
230
- toolCallId: toolCall.id,
231
- toolName: toolCall.name,
232
- input: JSON.stringify(toolCall.args),
233
- providerMetadata: msg.response_metadata,
234
- }));
235
- content.push(...mappedToolsCalls);
236
- }
237
- return {
238
- role: 'assistant',
239
- content,
240
- id: msg.id,
241
- name: msg.name,
242
- };
243
- }
244
- if (LangchainMessages.SystemMessage.isInstance(msg)) {
245
- return {
246
- role: 'system',
247
- content: fromLcContent(msg.content),
248
- id: msg.id,
249
- name: msg.name,
250
- };
251
- }
252
- if (LangchainMessages.HumanMessage.isInstance(msg)) {
253
- return {
254
- role: 'user',
255
- content: fromLcContent(msg.content),
256
- id: msg.id,
257
- name: msg.name,
258
- };
259
- }
260
- if (LangchainMessages.BaseMessage.isInstance(msg)) {
261
- return {
262
- role: fromLcRole(msg.type),
263
- content: fromLcContent(msg.content),
264
- id: msg.id,
265
- name: msg.name,
266
- };
267
- }
268
- throw new Error(`Provided message is not a valid Langchain message: ${JSON.stringify(msg)}`);
269
- }
270
- function toLcContent(block) {
271
- if (isN8nTextBlock(block)) {
272
- return { type: 'text', text: block.text };
273
- }
274
- if (isN8nReasoningBlock(block)) {
275
- return { type: 'reasoning', reasoning: block.text };
276
- }
277
- if (isN8nFileBlock(block)) {
278
- const { url, fileId, ...rest } = block.providerMetadata ?? {};
279
- return {
144
+ content = {
280
145
  type: 'file',
281
- mimeType: block.mediaType ?? 'application/octet-stream',
146
+ mediaType: block.mimeType,
282
147
  data: block.data,
283
- ...(url ? { url } : {}),
284
- ...(fileId ? { fileId } : {}),
285
- ...(Object.keys(rest).length > 0 ? { metadata: rest } : {}),
148
+ providerMetadata: Object.keys(metadata).length > 0 ? metadata : undefined,
286
149
  };
287
150
  }
288
- if (isN8nToolCallBlock(block)) {
289
- return {
290
- type: 'tool_call',
291
- id: block.toolCallId,
292
- name: block.toolName,
293
- args: (0, n8n_workflow_1.jsonParse)(block.input, { fallbackValue: {} }),
151
+ else if (isToolCallBlock(block)) {
152
+ content = {
153
+ type: 'tool-call',
154
+ toolCallId: block.id,
155
+ toolName: block.name,
156
+ input: JSON.stringify(block.args),
294
157
  };
295
158
  }
296
- if (isN8nInvalidToolCallBlock(block)) {
297
- return {
298
- type: 'invalid_tool_call',
299
- id: block.toolCallId,
159
+ else if (isInvalidToolCallBlock(block)) {
160
+ content = {
161
+ type: 'invalid-tool-call',
162
+ toolCallId: block.id,
300
163
  error: block.error,
301
164
  args: block.args,
302
165
  name: block.name,
303
166
  };
304
167
  }
305
- if (isN8nToolResultBlock(block)) {
306
- return {
307
- type: 'server_tool_call_result',
168
+ else if (isToolResultBlock(block)) {
169
+ content = {
170
+ type: 'tool-result',
308
171
  toolCallId: block.toolCallId,
309
- output: block.result,
310
- status: block.isError ? 'error' : 'success',
172
+ result: block.output,
173
+ isError: block.status === 'error',
311
174
  };
312
175
  }
313
- if (isN8nCitationBlock(block)) {
314
- return {
176
+ else if (isCitationBlock(block)) {
177
+ content = {
315
178
  type: 'citation',
316
179
  source: block.source,
317
180
  url: block.url,
318
181
  title: block.title,
319
182
  startIndex: block.startIndex,
320
183
  endIndex: block.endIndex,
321
- citedText: block.text,
184
+ text: block.citedText,
322
185
  };
323
186
  }
324
- if (isN8nProviderBlock(block)) {
325
- return {
326
- type: 'non_standard',
187
+ else if (isNonStandardBlock(block)) {
188
+ content = {
189
+ type: 'provider',
327
190
  value: block.value,
328
191
  };
329
192
  }
330
- throw new Error(`Failed to convert to Langchain content block: ${JSON.stringify(block)}`);
193
+ return content;
194
+ })
195
+ .filter((content) => content !== null);
196
+ }
197
+ function fromLcMessage(msg) {
198
+ if (LangchainMessages.ToolMessage.isInstance(msg)) {
199
+ const result = typeof msg.content === 'string' ? msg.content : fromLcContent(msg.content);
200
+ return {
201
+ role: 'tool',
202
+ content: [
203
+ {
204
+ type: 'tool-result',
205
+ toolCallId: msg.tool_call_id,
206
+ result,
207
+ isError: msg.status === 'error',
208
+ providerMetadata: msg.metadata,
209
+ },
210
+ ],
211
+ id: msg.id,
212
+ name: msg.name,
213
+ };
331
214
  }
332
- function toLcMessage(message) {
333
- const lcContent = message.content.map(toLcContent);
334
- switch (message.role) {
335
- case 'system':
336
- return new LangchainMessages.SystemMessage({
337
- content: lcContent,
338
- id: message.id,
339
- name: message.name,
340
- });
341
- case 'user':
342
- return new LangchainMessages.HumanMessage({
343
- content: lcContent,
344
- id: message.id,
345
- name: message.name,
346
- });
347
- case 'assistant': {
348
- const toolCalls = message.content
349
- .filter(isN8nToolCallBlock)
350
- .map((c) => ({
351
- type: 'tool_call',
352
- id: c.toolCallId,
353
- name: c.toolName,
354
- args: (0, n8n_workflow_1.jsonParse)(c.input, { fallbackValue: {} }),
355
- }));
356
- const nonToolContent = lcContent.filter((c) => c.type !== 'tool_call');
357
- return new LangchainMessages.AIMessage({
358
- content: nonToolContent,
359
- id: message.id,
360
- name: message.name,
361
- tool_calls: toolCalls.length > 0 ? toolCalls : undefined,
362
- });
363
- }
364
- case 'tool': {
365
- const toolResult = message.content.find(isN8nToolResultBlock);
366
- if (!toolResult) {
367
- throw new Error('Tool message is missing a tool-result content block');
368
- }
369
- const content = typeof toolResult.result === 'string'
370
- ? toolResult.result
371
- : JSON.stringify(toolResult.result);
372
- return new LangchainMessages.ToolMessage({
373
- content,
374
- tool_call_id: toolResult.toolCallId,
375
- name: message.name,
376
- status: toolResult.isError ? 'error' : 'success',
377
- });
215
+ if (LangchainMessages.AIMessage.isInstance(msg)) {
216
+ const content = fromLcContent(msg.content);
217
+ const toolsCalls = msg.tool_calls;
218
+ if (toolsCalls?.length) {
219
+ const mappedToolsCalls = toolsCalls.map((toolCall) => ({
220
+ type: 'tool-call',
221
+ toolCallId: toolCall.id,
222
+ toolName: toolCall.name,
223
+ input: JSON.stringify(toolCall.args),
224
+ providerMetadata: msg.response_metadata,
225
+ }));
226
+ content.push(...mappedToolsCalls);
227
+ }
228
+ return {
229
+ role: 'assistant',
230
+ content,
231
+ id: msg.id,
232
+ name: msg.name,
233
+ };
234
+ }
235
+ if (LangchainMessages.SystemMessage.isInstance(msg)) {
236
+ return {
237
+ role: 'system',
238
+ content: fromLcContent(msg.content),
239
+ id: msg.id,
240
+ name: msg.name,
241
+ };
242
+ }
243
+ if (LangchainMessages.HumanMessage.isInstance(msg)) {
244
+ return {
245
+ role: 'user',
246
+ content: fromLcContent(msg.content),
247
+ id: msg.id,
248
+ name: msg.name,
249
+ };
250
+ }
251
+ if (LangchainMessages.BaseMessage.isInstance(msg)) {
252
+ return {
253
+ role: fromLcRole(msg.type),
254
+ content: fromLcContent(msg.content),
255
+ id: msg.id,
256
+ name: msg.name,
257
+ };
258
+ }
259
+ throw new Error(`Provided message is not a valid Langchain message: ${JSON.stringify(msg)}`);
260
+ }
261
+ function toLcContent(block) {
262
+ if (isN8nTextBlock(block)) {
263
+ return { type: 'text', text: block.text };
264
+ }
265
+ if (isN8nReasoningBlock(block)) {
266
+ return { type: 'reasoning', reasoning: block.text };
267
+ }
268
+ if (isN8nFileBlock(block)) {
269
+ const { url, fileId, ...rest } = block.providerMetadata ?? {};
270
+ return {
271
+ type: 'file',
272
+ mimeType: block.mediaType ?? 'application/octet-stream',
273
+ data: block.data,
274
+ ...(url ? { url } : {}),
275
+ ...(fileId ? { fileId } : {}),
276
+ ...(Object.keys(rest).length > 0 ? { metadata: rest } : {}),
277
+ };
278
+ }
279
+ if (isN8nToolCallBlock(block)) {
280
+ return {
281
+ type: 'tool_call',
282
+ id: block.toolCallId,
283
+ name: block.toolName,
284
+ args: (0, n8n_workflow_1.jsonParse)(block.input, { fallbackValue: {} }),
285
+ };
286
+ }
287
+ if (isN8nInvalidToolCallBlock(block)) {
288
+ return {
289
+ type: 'invalid_tool_call',
290
+ id: block.toolCallId,
291
+ error: block.error,
292
+ args: block.args,
293
+ name: block.name,
294
+ };
295
+ }
296
+ if (isN8nToolResultBlock(block)) {
297
+ return {
298
+ type: 'server_tool_call_result',
299
+ toolCallId: block.toolCallId,
300
+ output: block.result,
301
+ status: block.isError ? 'error' : 'success',
302
+ };
303
+ }
304
+ if (isN8nCitationBlock(block)) {
305
+ return {
306
+ type: 'citation',
307
+ source: block.source,
308
+ url: block.url,
309
+ title: block.title,
310
+ startIndex: block.startIndex,
311
+ endIndex: block.endIndex,
312
+ citedText: block.text,
313
+ };
314
+ }
315
+ if (isN8nProviderBlock(block)) {
316
+ return {
317
+ type: 'non_standard',
318
+ value: block.value,
319
+ };
320
+ }
321
+ throw new Error(`Failed to convert to Langchain content block: ${JSON.stringify(block)}`);
322
+ }
323
+ function toLcMessage(message) {
324
+ const lcContent = message.content.map(toLcContent);
325
+ switch (message.role) {
326
+ case 'system':
327
+ return new LangchainMessages.SystemMessage({
328
+ content: lcContent,
329
+ id: message.id,
330
+ name: message.name,
331
+ });
332
+ case 'user':
333
+ return new LangchainMessages.HumanMessage({
334
+ content: lcContent,
335
+ id: message.id,
336
+ name: message.name,
337
+ });
338
+ case 'assistant': {
339
+ const toolCalls = message.content
340
+ .filter(isN8nToolCallBlock)
341
+ .map((c) => ({
342
+ type: 'tool_call',
343
+ id: c.toolCallId,
344
+ name: c.toolName,
345
+ args: (0, n8n_workflow_1.jsonParse)(c.input, { fallbackValue: {} }),
346
+ }));
347
+ const nonToolContent = lcContent.filter((c) => c.type !== 'tool_call');
348
+ return new LangchainMessages.AIMessage({
349
+ content: nonToolContent,
350
+ id: message.id,
351
+ name: message.name,
352
+ tool_calls: toolCalls.length > 0 ? toolCalls : undefined,
353
+ });
354
+ }
355
+ case 'tool': {
356
+ const toolResult = message.content.find(isN8nToolResultBlock);
357
+ if (!toolResult) {
358
+ throw new Error('Tool message is missing a tool-result content block');
378
359
  }
379
- default:
380
- return new LangchainMessages.HumanMessage({
381
- content: lcContent,
382
- id: message.id,
383
- name: message.name,
384
- });
360
+ const content = typeof toolResult.result === 'string'
361
+ ? toolResult.result
362
+ : JSON.stringify(toolResult.result);
363
+ return new LangchainMessages.ToolMessage({
364
+ content,
365
+ tool_call_id: toolResult.toolCallId,
366
+ name: message.name,
367
+ status: toolResult.isError ? 'error' : 'success',
368
+ });
385
369
  }
370
+ default:
371
+ return new LangchainMessages.HumanMessage({
372
+ content: lcContent,
373
+ id: message.id,
374
+ name: message.name,
375
+ });
386
376
  }
387
- });
377
+ }
388
378
  //# sourceMappingURL=message.js.map