UNPKG

@n8n/n8n-nodes-langchain

Version:

![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

61 lines 2.58 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var fromAIToolFactory_exports = {}; __export(fromAIToolFactory_exports, { createToolFromNode: () => createToolFromNode, createZodSchemaFromArgs: () => createZodSchemaFromArgs, extractFromAIParameters: () => extractFromAIParameters }); module.exports = __toCommonJS(fromAIToolFactory_exports); var import_tools = require("@langchain/core/tools"); var import_n8n_workflow = require("n8n-workflow"); var import_zod = require("zod"); function extractFromAIParameters(nodeParameters) { const collectedArguments = []; (0, import_n8n_workflow.traverseNodeParameters)(nodeParameters, collectedArguments); const uniqueArgsMap = /* @__PURE__ */ new Map(); for (const arg of collectedArguments) { uniqueArgsMap.set(arg.key, arg); } return Array.from(uniqueArgsMap.values()); } function createZodSchemaFromArgs(args) { const schemaObj = args.reduce((acc, placeholder) => { acc[placeholder.key] = (0, import_n8n_workflow.generateZodSchema)(placeholder); return acc; }, {}); return import_zod.z.object(schemaObj).required(); } function createToolFromNode(node, options) { const { name, description, func, extraArgs = [] } = options; const collectedArguments = extractFromAIParameters(node.parameters); if (collectedArguments.length === 0 && extraArgs.length === 0) { return new import_tools.DynamicTool({ name, description, func }); } const allArguments = [...collectedArguments, ...extraArgs]; const schema = createZodSchemaFromArgs(allArguments); return new import_tools.DynamicStructuredTool({ schema, name, description, func }); } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { createToolFromNode, createZodSchemaFromArgs, extractFromAIParameters }); //# sourceMappingURL=fromAIToolFactory.js.map