n8n-nodes-simple 0.2.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 (79) hide show
  1. package/README.md +48 -0
  2. package/dist/credentials/SimpleOpenAiApi.credentials.d.ts +13 -0
  3. package/dist/credentials/SimpleOpenAiApi.credentials.js +54 -0
  4. package/dist/credentials/SimpleOpenAiApi.credentials.js.map +1 -0
  5. package/dist/credentials/gradientOpenAi.svg +9 -0
  6. package/dist/nodes/CoreAgent/CoreAgent.node.d.ts +10 -0
  7. package/dist/nodes/CoreAgent/CoreAgent.node.js +31 -0
  8. package/dist/nodes/CoreAgent/CoreAgent.node.js.map +1 -0
  9. package/dist/nodes/Subagent/Subagent.node.d.ts +11 -0
  10. package/dist/nodes/Subagent/Subagent.node.js +36 -0
  11. package/dist/nodes/Subagent/Subagent.node.js.map +1 -0
  12. package/dist/nodes/shared/actions/asTool.d.ts +2 -0
  13. package/dist/nodes/shared/actions/asTool.js +87 -0
  14. package/dist/nodes/shared/actions/asTool.js.map +1 -0
  15. package/dist/nodes/shared/actions/message.operation.d.ts +2 -0
  16. package/dist/nodes/shared/actions/message.operation.js +200 -0
  17. package/dist/nodes/shared/actions/message.operation.js.map +1 -0
  18. package/dist/nodes/shared/actions/router.d.ts +2 -0
  19. package/dist/nodes/shared/actions/router.js +76 -0
  20. package/dist/nodes/shared/actions/router.js.map +1 -0
  21. package/dist/nodes/shared/createNodeTypeDescription.d.ts +2 -0
  22. package/dist/nodes/shared/createNodeTypeDescription.js +83 -0
  23. package/dist/nodes/shared/createNodeTypeDescription.js.map +1 -0
  24. package/dist/nodes/shared/gradientRobot.svg +11 -0
  25. package/dist/nodes/shared/gradientRobotRed.svg +11 -0
  26. package/dist/nodes/shared/helpers/api/apiRequest.d.ts +10 -0
  27. package/dist/nodes/shared/helpers/api/apiRequest.js +23 -0
  28. package/dist/nodes/shared/helpers/api/apiRequest.js.map +1 -0
  29. package/dist/nodes/shared/helpers/api/errorHandling.d.ts +4 -0
  30. package/dist/nodes/shared/helpers/api/errorHandling.js +31 -0
  31. package/dist/nodes/shared/helpers/api/errorHandling.js.map +1 -0
  32. package/dist/nodes/shared/helpers/api/interfaces.d.ts +37 -0
  33. package/dist/nodes/shared/helpers/api/interfaces.js +3 -0
  34. package/dist/nodes/shared/helpers/api/interfaces.js.map +1 -0
  35. package/dist/nodes/shared/helpers/api/utils.d.ts +5 -0
  36. package/dist/nodes/shared/helpers/api/utils.js +42 -0
  37. package/dist/nodes/shared/helpers/api/utils.js.map +1 -0
  38. package/dist/nodes/shared/helpers/asCoreNode/chatHistoryUnpacker.d.ts +6 -0
  39. package/dist/nodes/shared/helpers/asCoreNode/chatHistoryUnpacker.js +64 -0
  40. package/dist/nodes/shared/helpers/asCoreNode/chatHistoryUnpacker.js.map +1 -0
  41. package/dist/nodes/shared/helpers/asCoreNode/chatUnpacker.d.ts +6 -0
  42. package/dist/nodes/shared/helpers/asCoreNode/chatUnpacker.js +62 -0
  43. package/dist/nodes/shared/helpers/asCoreNode/chatUnpacker.js.map +1 -0
  44. package/dist/nodes/shared/helpers/asCoreNode/constants.d.ts +1 -0
  45. package/dist/nodes/shared/helpers/asCoreNode/constants.js +26 -0
  46. package/dist/nodes/shared/helpers/asCoreNode/constants.js.map +1 -0
  47. package/dist/nodes/shared/helpers/asCoreNode/messageModel.d.ts +43 -0
  48. package/dist/nodes/shared/helpers/asCoreNode/messageModel.js +12 -0
  49. package/dist/nodes/shared/helpers/asCoreNode/messageModel.js.map +1 -0
  50. package/dist/nodes/shared/helpers/asCoreNode/stepsExtractor.d.ts +6 -0
  51. package/dist/nodes/shared/helpers/asCoreNode/stepsExtractor.js +27 -0
  52. package/dist/nodes/shared/helpers/asCoreNode/stepsExtractor.js.map +1 -0
  53. package/dist/nodes/shared/helpers/asTool/customFields.d.ts +18 -0
  54. package/dist/nodes/shared/helpers/asTool/customFields.js +24 -0
  55. package/dist/nodes/shared/helpers/asTool/customFields.js.map +1 -0
  56. package/dist/nodes/shared/helpers/asTool/subagentTool.d.ts +11 -0
  57. package/dist/nodes/shared/helpers/asTool/subagentTool.js +56 -0
  58. package/dist/nodes/shared/helpers/asTool/subagentTool.js.map +1 -0
  59. package/dist/nodes/shared/helpers/asTool/toolSchemaParsing.d.ts +6 -0
  60. package/dist/nodes/shared/helpers/asTool/toolSchemaParsing.js +23 -0
  61. package/dist/nodes/shared/helpers/asTool/toolSchemaParsing.js.map +1 -0
  62. package/dist/nodes/shared/helpers/asToolUser/N8nTool.d.ts +9 -0
  63. package/dist/nodes/shared/helpers/asToolUser/N8nTool.js +91 -0
  64. package/dist/nodes/shared/helpers/asToolUser/N8nTool.js.map +1 -0
  65. package/dist/nodes/shared/helpers/asToolUser/langchainHelpers.d.ts +3 -0
  66. package/dist/nodes/shared/helpers/asToolUser/langchainHelpers.js +28 -0
  67. package/dist/nodes/shared/helpers/asToolUser/langchainHelpers.js.map +1 -0
  68. package/dist/nodes/shared/methods/index.d.ts +1 -0
  69. package/dist/nodes/shared/methods/index.js +38 -0
  70. package/dist/nodes/shared/methods/index.js.map +1 -0
  71. package/dist/nodes/shared/methods/listSearch.d.ts +2 -0
  72. package/dist/nodes/shared/methods/listSearch.js +34 -0
  73. package/dist/nodes/shared/methods/listSearch.js.map +1 -0
  74. package/dist/nodes/shared/properties.d.ts +2 -0
  75. package/dist/nodes/shared/properties.js +480 -0
  76. package/dist/nodes/shared/properties.js.map +1 -0
  77. package/dist/package.json +74 -0
  78. package/dist/tsconfig.tsbuildinfo +1 -0
  79. package/package.json +74 -0
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertCustomFieldsToSchema = convertCustomFieldsToSchema;
4
+ function convertCustomFieldsToSchema(inputCustomFieldsParameters) {
5
+ const properties = {};
6
+ const required = [];
7
+ for (const field of inputCustomFieldsParameters) {
8
+ const property = {
9
+ type: field.type,
10
+ };
11
+ if (field.description.trim() !== "") {
12
+ property.description = field.description;
13
+ }
14
+ properties[field.name] = property;
15
+ required.push(field.name);
16
+ }
17
+ return {
18
+ type: "object",
19
+ properties,
20
+ required,
21
+ additionalProperties: false,
22
+ };
23
+ }
24
+ //# sourceMappingURL=customFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customFields.js","sourceRoot":"","sources":["../../../../../nodes/shared/helpers/asTool/customFields.ts"],"names":[],"mappings":";;AAmBA,kEAuBC;AAvBD,SAAgB,2BAA2B,CAAC,2BAAoD;IAC/F,MAAM,UAAU,GAAmC,EAAE,CAAC;IACtD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,KAAK,IAAI,2BAA2B,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAmB;YAC/B,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC;QAEF,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACpC,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAC3C,CAAC;QAED,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,UAAU;QACV,QAAQ;QACR,oBAAoB,EAAE,KAAK;KAC5B,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Tool } from "@langchain/core/tools";
2
+ import { IExecuteFunctions } from 'n8n-workflow';
3
+ export declare class SubagentTool extends Tool {
4
+ static lc_name(): string;
5
+ get lc_namespace(): string[];
6
+ name: string;
7
+ description: string;
8
+ private executeFunctions;
9
+ constructor(executeFunctions: IExecuteFunctions);
10
+ _call(parentMessageContent?: string | object): Promise<string>;
11
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SubagentTool = void 0;
4
+ const tools_1 = require("@langchain/core/tools");
5
+ const n8n_workflow_1 = require("n8n-workflow");
6
+ const router_1 = require("../../actions/router");
7
+ class SubagentTool extends tools_1.Tool {
8
+ static lc_name() {
9
+ return "SubagentTool";
10
+ }
11
+ get lc_namespace() {
12
+ return [...super.lc_namespace, "subagentTool"];
13
+ }
14
+ constructor(executeFunctions) {
15
+ super();
16
+ this.name = "placeholder_name";
17
+ this.description = `Placeholder description`;
18
+ this.executeFunctions = executeFunctions;
19
+ }
20
+ async _call(parentMessageContent = '') {
21
+ try {
22
+ let parentMessageContentStr = '';
23
+ let parentMessageContentObj = {};
24
+ if (typeof parentMessageContent === 'object') {
25
+ parentMessageContentObj = parentMessageContent;
26
+ }
27
+ else if (typeof parentMessageContent === 'string') {
28
+ parentMessageContentStr = parentMessageContent;
29
+ }
30
+ else {
31
+ let executionError = new n8n_workflow_1.NodeOperationError(this.executeFunctions.getNode(), 'Wrong output type returned', {
32
+ description: `The parentMessageContent should be a string, but it is an ${typeof parentMessageContent}`,
33
+ });
34
+ return `There was an error: "${executionError.message}"`;
35
+ }
36
+ const routerOutput = await router_1.router.call(this.executeFunctions, parentMessageContentStr, parentMessageContentObj);
37
+ const response = routerOutput[0][0].json.response;
38
+ const message = response.choices[0].message;
39
+ if (message && typeof message === 'object' && 'content' in message && 'refusal' in message) {
40
+ const subAgentMessageContent = String(message.content || message.refusal);
41
+ return subAgentMessageContent;
42
+ }
43
+ else {
44
+ let executionError = new n8n_workflow_1.NodeOperationError(this.executeFunctions.getNode(), 'Wrong output type returned', {
45
+ description: `The message should be an object with fields 'content' and 'refusal', but it is an ${typeof message}: ${message}`,
46
+ });
47
+ return `There was an error: "${executionError.message}"`;
48
+ }
49
+ }
50
+ catch (error) {
51
+ return "I don't know how to do that.";
52
+ }
53
+ }
54
+ }
55
+ exports.SubagentTool = SubagentTool;
56
+ //# sourceMappingURL=subagentTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagentTool.js","sourceRoot":"","sources":["../../../../../nodes/shared/helpers/asTool/subagentTool.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAC7C,+CAAqE;AAErE,iDAA8C;AAI9C,MAAa,YAAa,SAAQ,YAAI;IACpC,MAAM,CAAC,OAAO;QACZ,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACjD,CAAC;IAQD,YAAY,gBAAmC;QAC7C,KAAK,EAAE,CAAC;QANV,SAAI,GAAG,kBAAkB,CAAC;QAC3B,gBAAW,GAAG,yBAAyB,CAAC;QAMrC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,uBAAwC,EAAE;QAEtD,IAAI,CAAC;YAEJ,IAAI,uBAAuB,GAAW,EAAE,CAAA;YACxC,IAAI,uBAAuB,GAAW,EAAE,CAAA;YAGxC,IAAI,OAAO,oBAAoB,KAAK,QAAQ,EAAE,CAAC;gBAC9C,uBAAuB,GAAG,oBAAoB,CAAC;YAChD,CAAC;iBAAM,IAAI,OAAO,oBAAoB,KAAK,QAAQ,EAAE,CAAC;gBACpD,uBAAuB,GAAG,oBAAoB,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACP,IAAI,cAAc,GAAG,IAAI,iCAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,4BAA4B,EAAE;oBAC1G,WAAW,EAAE,6DAA6D,OAAO,oBAAoB,EAAE;iBACvG,CAAC,CAAC;gBACH,OAAO,wBAAwB,cAAc,CAAC,OAAO,GAAG,CAAC;YAC1D,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,uBAAuB,CAAC,CAAC;YAChH,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAG5C,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;gBAC5F,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC1E,OAAO,sBAAsB,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACP,IAAI,cAAc,GAAG,IAAI,iCAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,4BAA4B,EAAE;oBAC1G,WAAW,EAAE,qFAAqF,OAAO,OAAO,KAAK,OAAO,EAAE;iBAC9H,CAAC,CAAC;gBACH,OAAO,wBAAwB,cAAc,CAAC,OAAO,GAAG,CAAC;YAC1D,CAAC;QAEA,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,8BAA8B,CAAC;QACxC,CAAC;IACH,CAAC;CACF;AA1DD,oCA0DC"}
@@ -0,0 +1,6 @@
1
+ import type { JSONSchema7 } from 'json-schema';
2
+ import type { IExecuteFunctions } from 'n8n-workflow';
3
+ import type { z } from 'zod';
4
+ export declare function generateSchema(schemaString: string): JSONSchema7;
5
+ export declare function convertJsonSchemaToZod<T extends z.ZodTypeAny = z.ZodTypeAny>(schema: JSONSchema7): T;
6
+ export declare function throwIfToolSchema(ctx: IExecuteFunctions, error: Error): void;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateSchema = generateSchema;
4
+ exports.convertJsonSchemaToZod = convertJsonSchemaToZod;
5
+ exports.throwIfToolSchema = throwIfToolSchema;
6
+ const json_schema_to_zod_1 = require("@n8n/json-schema-to-zod");
7
+ const n8n_workflow_1 = require("n8n-workflow");
8
+ const generate_schema_1 = require("generate-schema");
9
+ function generateSchema(schemaString) {
10
+ const parsedSchema = (0, n8n_workflow_1.jsonParse)(schemaString);
11
+ return (0, generate_schema_1.json)(parsedSchema);
12
+ }
13
+ function convertJsonSchemaToZod(schema) {
14
+ return (0, json_schema_to_zod_1.jsonSchemaToZod)(schema);
15
+ }
16
+ function throwIfToolSchema(ctx, error) {
17
+ var _a;
18
+ if ((_a = error === null || error === void 0 ? void 0 : error.message) === null || _a === void 0 ? void 0 : _a.includes('tool input did not match expected schema')) {
19
+ throw new n8n_workflow_1.NodeOperationError(ctx.getNode(), `${error.message}.
20
+ This is most likely because some of your tools are configured to require a specific schema. This is not supported by Conversational Agent. Remove the schema from the tool configuration or use Tools agent instead.`);
21
+ }
22
+ }
23
+ //# sourceMappingURL=toolSchemaParsing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolSchemaParsing.js","sourceRoot":"","sources":["../../../../../nodes/shared/helpers/asTool/toolSchemaParsing.ts"],"names":[],"mappings":";;AAWA,wCAIC;AAED,wDAEC;AAED,8CAQC;AA3BD,gEAA0D;AAG1D,+CAA6D;AAG7D,qDAA6D;AAG7D,SAAgB,cAAc,CAAC,YAAoB;IAClD,MAAM,YAAY,GAAG,IAAA,wBAAS,EAAe,YAAY,CAAC,CAAC;IAE3D,OAAO,IAAA,sBAAkB,EAAC,YAAY,CAAgB,CAAC;AACxD,CAAC;AAED,SAAgB,sBAAsB,CAAwC,MAAmB;IAChG,OAAO,IAAA,oCAAe,EAAI,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAsB,EAAE,KAAY;;IACrE,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAE,QAAQ,CAAC,0CAA0C,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,iCAAkB,CAC3B,GAAG,CAAC,OAAO,EAAE,EACb,GAAG,KAAK,CAAC,OAAO;wNACqM,CACrN,CAAC;IACH,CAAC;AACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type IExecuteFunctions } from 'n8n-workflow';
2
+ import { DynamicTool, DynamicStructuredTool, DynamicStructuredToolInput } from '@langchain/core/tools';
3
+ import { ZodObject } from 'zod';
4
+ export declare const prepareFallbackToolDescription: (toolDescription: string, schema: ZodObject<any>) => string;
5
+ export declare class N8nTool extends DynamicStructuredTool {
6
+ private context;
7
+ constructor(context: IExecuteFunctions, fields: DynamicStructuredToolInput);
8
+ asDynamicTool(): DynamicTool;
9
+ }
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.N8nTool = exports.prepareFallbackToolDescription = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const tools_1 = require("@langchain/core/tools");
6
+ const output_parsers_1 = require("@langchain/core/output_parsers");
7
+ const zod_1 = require("zod");
8
+ const getSimplifiedType = (schema) => {
9
+ if (schema instanceof zod_1.ZodObject) {
10
+ return 'object';
11
+ }
12
+ else if (schema instanceof zod_1.ZodNumber) {
13
+ return 'number';
14
+ }
15
+ else if (schema instanceof zod_1.ZodBoolean) {
16
+ return 'boolean';
17
+ }
18
+ else if (schema instanceof zod_1.ZodNullable || schema instanceof zod_1.ZodOptional) {
19
+ return getSimplifiedType(schema.unwrap());
20
+ }
21
+ return 'string';
22
+ };
23
+ const getParametersDescription = (parameters) => parameters
24
+ .map(([name, schema]) => { var _a; return `${name}: (description: ${(_a = schema.description) !== null && _a !== void 0 ? _a : ''}, type: ${getSimplifiedType(schema)}, required: ${!schema.isOptional()})`; })
25
+ .join(',\n ');
26
+ const prepareFallbackToolDescription = (toolDescription, schema) => {
27
+ let description = `${toolDescription}`;
28
+ const toolParameters = Object.entries(schema.shape);
29
+ if (toolParameters.length) {
30
+ description += `
31
+ Tool expects valid stringified JSON object with ${toolParameters.length} properties.
32
+ Property names with description, type and required status:
33
+ ${getParametersDescription(toolParameters)}
34
+ ALL parameters marked as required must be provided`;
35
+ }
36
+ return description;
37
+ };
38
+ exports.prepareFallbackToolDescription = prepareFallbackToolDescription;
39
+ class N8nTool extends tools_1.DynamicStructuredTool {
40
+ constructor(context, fields) {
41
+ super(fields);
42
+ this.context = context;
43
+ }
44
+ asDynamicTool() {
45
+ const { name, func, schema, context, description } = this;
46
+ const parser = new output_parsers_1.StructuredOutputParser(schema);
47
+ const wrappedFunc = async function (query) {
48
+ let parsedQuery;
49
+ try {
50
+ parsedQuery = await parser.parse(query);
51
+ }
52
+ catch (e) {
53
+ let dataFromModel;
54
+ try {
55
+ dataFromModel = (0, n8n_workflow_1.jsonParse)(query);
56
+ }
57
+ catch (error) {
58
+ try {
59
+ dataFromModel = JSON.parse(query);
60
+ }
61
+ catch {
62
+ if (Object.keys(schema.shape).length === 1) {
63
+ const parameterName = Object.keys(schema.shape)[0];
64
+ dataFromModel = { [parameterName]: query };
65
+ }
66
+ else {
67
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Input is not a valid JSON: ${error.message}`);
68
+ }
69
+ }
70
+ }
71
+ parsedQuery = schema.parse(dataFromModel);
72
+ }
73
+ try {
74
+ const result = await func(parsedQuery);
75
+ return result;
76
+ }
77
+ catch (e) {
78
+ const { index } = context.addInputData("ai_tool", [[{ json: { query } }]]);
79
+ void context.addOutputData("ai_tool", index, e);
80
+ return e.toString();
81
+ }
82
+ };
83
+ return new tools_1.DynamicTool({
84
+ name,
85
+ description: (0, exports.prepareFallbackToolDescription)(description, schema),
86
+ func: wrappedFunc,
87
+ });
88
+ }
89
+ }
90
+ exports.N8nTool = N8nTool;
91
+ //# sourceMappingURL=N8nTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"N8nTool.js","sourceRoot":"","sources":["../../../../../nodes/shared/helpers/asToolUser/N8nTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type IExecuteFunctions } from 'n8n-workflow';
2
+ import type { Tool } from '@langchain/core/tools';
3
+ export declare const getConnectedTools: (ctx: IExecuteFunctions, enforceUniqueNames: boolean, convertStructuredTool?: boolean) => Promise<Tool[]>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getConnectedTools = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const N8nTool_1 = require("./N8nTool");
6
+ const getConnectedTools = async (ctx, enforceUniqueNames, convertStructuredTool = true) => {
7
+ const connectedTools = (await ctx.getInputConnectionData("ai_tool", 0)) || [];
8
+ if (!enforceUniqueNames)
9
+ return connectedTools;
10
+ const seenNames = new Set();
11
+ const finalTools = [];
12
+ for (const tool of connectedTools) {
13
+ const { name } = tool;
14
+ if (seenNames.has(name)) {
15
+ throw new n8n_workflow_1.NodeOperationError(ctx.getNode(), `You have multiple tools with the same name: '${name}', please rename them to avoid conflicts`);
16
+ }
17
+ seenNames.add(name);
18
+ if (convertStructuredTool && tool instanceof N8nTool_1.N8nTool) {
19
+ finalTools.push(tool.asDynamicTool());
20
+ }
21
+ else {
22
+ finalTools.push(tool);
23
+ }
24
+ }
25
+ return finalTools;
26
+ };
27
+ exports.getConnectedTools = getConnectedTools;
28
+ //# sourceMappingURL=langchainHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langchainHelpers.js","sourceRoot":"","sources":["../../../../../nodes/shared/helpers/asToolUser/langchainHelpers.ts"],"names":[],"mappings":";;;AAEA,+CAA8F;AAG9F,uCAAoC;AAE7B,MAAM,iBAAiB,GAAG,KAAK,EACrC,GAAsB,EACtB,kBAA2B,EAC3B,wBAAiC,IAAI,EACpC,EAAE;IACH,MAAM,cAAc,GAClB,CAAC,MAAM,GAAG,CAAC,sBAAsB,YAA4B,CAAC,CAAC,CAAY,IAAI,EAAE,CAAC;IAEpF,IAAI,CAAC,kBAAkB;QAAE,OAAO,cAAc,CAAC;IAE/C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,MAAM,UAAU,GAAG,EAAE,CAAC;IAEtB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACtB,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,iCAAkB,CAC3B,GAAG,CAAC,OAAO,EAAE,EACb,gDAAgD,IAAI,0CAA0C,CAC9F,CAAC;QACH,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEpB,IAAI,qBAAqB,IAAI,IAAI,YAAY,iBAAO,EAAE,CAAC;YACtD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACP,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACF,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC,CAAC;AAhCW,QAAA,iBAAiB,qBAgC5B"}
@@ -0,0 +1 @@
1
+ export * as listSearch from './listSearch';
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.listSearch = void 0;
37
+ exports.listSearch = __importStar(require("./listSearch"));
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/shared/methods/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAA2C"}
@@ -0,0 +1,2 @@
1
+ import type { ILoadOptionsFunctions, INodeListSearchResult } from 'n8n-workflow';
2
+ export declare function modelSearch(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.modelSearch = modelSearch;
4
+ const apiRequest_1 = require("../helpers/api/apiRequest");
5
+ const getModelSearch = (filterCondition) => async (ctx, filter) => {
6
+ var _a;
7
+ let { data } = (await apiRequest_1.apiRequest.call(ctx, 'GET', '/models'));
8
+ data = data === null || data === void 0 ? void 0 : data.filter((model) => filterCondition(model));
9
+ let results = [];
10
+ if (filter) {
11
+ for (const model of data || []) {
12
+ if ((_a = model.id) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(filter.toLowerCase())) {
13
+ results.push({
14
+ name: model.id.toLowerCase(),
15
+ value: model.id,
16
+ });
17
+ }
18
+ }
19
+ }
20
+ else {
21
+ results = (data || []).map((model) => ({
22
+ name: model.id.toLowerCase(),
23
+ value: model.id,
24
+ }));
25
+ }
26
+ results = results.sort((a, b) => a.name.localeCompare(b.name));
27
+ return {
28
+ results,
29
+ };
30
+ };
31
+ async function modelSearch(filter) {
32
+ return await getModelSearch(() => true)(this, filter);
33
+ }
34
+ //# sourceMappingURL=listSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listSearch.js","sourceRoot":"","sources":["../../../../nodes/shared/methods/listSearch.ts"],"names":[],"mappings":";;AAyCA,kCAWC;AA7CD,0DAAuD;AAEvD,MAAM,cAAc,GACnB,CAAC,eAA0C,EAAE,EAAE,CAC/C,KAAK,EAAE,GAA0B,EAAE,MAAe,EAAkC,EAAE;;IACrF,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,uBAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAsB,CAAC;IAEnF,IAAI,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvD,IAAI,OAAO,GAA2B,EAAE,CAAC;IAEzC,IAAI,MAAM,EAAE,CAAC;QACZ,KAAK,MAAM,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YAChC,IAAI,MAAA,KAAK,CAAC,EAAE,0CAAE,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE;oBAC5B,KAAK,EAAE,KAAK,CAAC,EAAE;iBACf,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;SAAM,CAAC;QACP,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE;YAC5B,KAAK,EAAE,KAAK,CAAC,EAAE;SACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/D,OAAO;QACN,OAAO;KACP,CAAC;AACH,CAAC,CAAC;AAEI,KAAK,UAAU,WAAW,CAEhC,MAAe;IAEf,OAAO,MAAM,cAAc,CAE1B,GAAG,EAAE,CAAC,IAAI,CAIV,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare function getProperties(agentType?: string): INodeProperties[];