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,2 @@
1
+ import { type INodeTypeDescription } from 'n8n-workflow';
2
+ export declare function createNodeTypeDescription(agentType: string, customizations: Partial<INodeTypeDescription>): INodeTypeDescription;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createNodeTypeDescription = createNodeTypeDescription;
4
+ const properties_1 = require("./properties");
5
+ function getInputs(agentType) {
6
+ switch (agentType) {
7
+ case 'subAgent':
8
+ return [{ type: "ai_tool", displayName: 'Tools' }];
9
+ case 'coreAgent':
10
+ case 'flexAgent':
11
+ default:
12
+ return [
13
+ { type: "main" },
14
+ { type: "ai_tool", displayName: 'Tools' },
15
+ { type: "ai_memory", displayName: 'Memory' },
16
+ ];
17
+ }
18
+ }
19
+ function getOutputs(agentType) {
20
+ switch (agentType) {
21
+ case 'subAgent':
22
+ return [{ type: "ai_tool", displayName: 'Tool' }];
23
+ case 'flexAgent':
24
+ return [
25
+ { type: "main" },
26
+ { type: "ai_tool" },
27
+ ];
28
+ case 'coreAgent':
29
+ default:
30
+ return [{ type: "main" }];
31
+ }
32
+ }
33
+ function createNodeTypeDescription(agentType, customizations) {
34
+ return {
35
+ displayName: 'AI Agent',
36
+ name: agentType,
37
+ icon: { light: 'file:gradientRobot.svg', dark: 'file:gradientRobot.svg' },
38
+ group: ['transform'],
39
+ version: 1,
40
+ description: 'Agent capable of using tools, subagents, and structured output.',
41
+ defaults: { name: 'AI Agent' },
42
+ subtitle: '={{ ($parameter.modelId.split("/")[1] || $parameter.modelId) }} | {{ $parameter.temperature.toFixed(1) }}',
43
+ codex: {
44
+ alias: ['Special', 'General', 'AI', 'Agent', 'Subagent', 'OpenAI', 'LiteLLM', 'LangChain', 'ChatGPT', 'assistant', 'Chat', 'Conversational', 'Plan and Execute', 'ReAct', 'Tools'],
45
+ categories: ['AI'],
46
+ subcategories: {
47
+ AI: ['Agents', 'Miscellaneous', 'Root Nodes', 'Tools', 'Subagents'],
48
+ Tools: ['Recommended Tools', 'Other Tools'],
49
+ },
50
+ },
51
+ hints: [
52
+ {
53
+ message: '<b>Flex Agent limitation</b>: may not display input/output data correctly in side panels.',
54
+ type: 'info',
55
+ whenToDisplay: 'always',
56
+ displayCondition: '={{ $parameter.agentType === "flexAgent" }}',
57
+ },
58
+ ],
59
+ inputs: `={{
60
+ ((agentType) => {
61
+ ${getInputs.toString()};
62
+ return getInputs(agentType);
63
+ })($parameter.agentType)
64
+ }}`,
65
+ outputs: `={{
66
+ ((agentType) => {
67
+ ${getOutputs.toString()};
68
+ return getOutputs(agentType);
69
+ })($parameter.agentType)
70
+ }}`,
71
+ credentials: [
72
+ {
73
+ name: 'simpleOpenAiApi',
74
+ required: true,
75
+ },
76
+ ],
77
+ properties: [
78
+ ...(0, properties_1.getProperties)(agentType),
79
+ ],
80
+ ...customizations,
81
+ };
82
+ }
83
+ //# sourceMappingURL=createNodeTypeDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNodeTypeDescription.js","sourceRoot":"","sources":["../../../nodes/shared/createNodeTypeDescription.ts"],"names":[],"mappings":";;AAkCA,8DAoDC;AApFD,6CAA6C;AAE7C,SAAS,SAAS,CAAC,SAAiB;IACnC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,CAAC,EAAE,IAAI,WAA2B,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QACrE,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW,CAAC;QACjB;YACE,OAAO;gBACL,EAAE,IAAI,QAAyB,EAAE;gBACjC,EAAE,IAAI,WAA2B,EAAE,WAAW,EAAE,OAAO,EAAE;gBACzD,EAAE,IAAI,aAA6B,EAAE,WAAW,EAAE,QAAQ,EAAE;aAC7D,CAAC;IACN,CAAC;AACF,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB;IACpC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,CAAC,EAAE,IAAI,WAA2B,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,KAAK,WAAW;YACd,OAAO;gBACL,EAAE,IAAI,QAAyB,EAAE;gBACjC,EAAE,IAAI,WAA2B,EAAE;aACpC,CAAC;QACJ,KAAK,WAAW,CAAC;QACjB;YACE,OAAO,CAAC,EAAE,IAAI,QAAyB,EAAE,CAAC,CAAC;IAC/C,CAAC;AACF,CAAC;AAED,SAAgB,yBAAyB,CACxC,SAAiB,EACjB,cAA6C;IAE7C,OAAO;QACN,WAAW,EAAE,UAAU;QACvB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,wBAAwB,EAAE;QACzE,KAAK,EAAE,CAAC,WAAW,CAAC;QACpB,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,iEAAiE;QAC9E,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QAC9B,QAAQ,EAAE,2GAA2G;QACrH,KAAK,EAAE;YACN,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,CAAC;YAClL,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,aAAa,EAAE;gBACd,EAAE,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC;gBACnE,KAAK,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC;aAC3C;SACD;QACD,KAAK,EAAE;YACN;gBACC,OAAO,EAAE,2FAA2F;gBACpG,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE,QAAQ;gBACvB,gBAAgB,EAAE,6CAA6C;aAC/D;SACD;QACD,MAAM,EAAE;;MAEJ,SAAS,CAAC,QAAQ,EAAE;;;KAGrB;QACH,OAAO,EAAE;;MAEL,UAAU,CAAC,QAAQ,EAAE;;;KAGtB;QACH,WAAW,EAAE;YACZ;gBACC,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,IAAI;aACd;SACD;QACD,UAAU,EAAE;YACX,GAAG,IAAA,0BAAa,EAAC,SAAS,CAAC;SAC3B;QACD,GAAG,cAAc;KACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1080" zoomAndPan="magnify" viewBox="0 0 810 810" height="1080" preserveAspectRatio="xMidYMid meet" version="1.0" style="background: none;">
2
+ <defs>
3
+ <linearGradient id="robot-gradient" x1="0%" y1="100%" x2="100%" y2="0%">
4
+ <stop offset="0%" stop-color="#a857fd" />
5
+ <stop offset="100%" stop-color="#60c5d1" />
6
+ </linearGradient>
7
+ </defs>
8
+ <g>
9
+ <path fill="url(#robot-gradient)" d="M 405 65.804688 C 427.402344 65.804688 445.5 83.902344 445.5 106.304688 L 445.5 187.304688 L 607.5 187.304688 C 652.175781 187.304688 688.5 223.625 688.5 268.304688 L 688.5 632.804688 C 688.5 677.480469 652.175781 713.804688 607.5 713.804688 L 202.5 713.804688 C 157.824219 713.804688 121.5 677.480469 121.5 632.804688 L 121.5 268.304688 C 121.5 223.625 157.824219 187.304688 202.5 187.304688 L 364.5 187.304688 L 364.5 106.304688 C 364.5 83.902344 382.597656 65.804688 405 65.804688 Z M 263.25 551.804688 C 252.113281 551.804688 243 560.914062 243 572.054688 C 243 583.191406 252.113281 592.304688 263.25 592.304688 L 303.75 592.304688 C 314.886719 592.304688 324 583.191406 324 572.054688 C 324 560.914062 314.886719 551.804688 303.75 551.804688 Z M 384.75 551.804688 C 373.613281 551.804688 364.5 560.914062 364.5 572.054688 C 364.5 583.191406 373.613281 592.304688 384.75 592.304688 L 425.25 592.304688 C 436.386719 592.304688 445.5 583.191406 445.5 572.054688 C 445.5 560.914062 436.386719 551.804688 425.25 551.804688 Z M 506.25 551.804688 C 495.113281 551.804688 486 560.914062 486 572.054688 C 486 583.191406 495.113281 592.304688 506.25 592.304688 L 546.75 592.304688 C 557.886719 592.304688 567 583.191406 567 572.054688 C 567 560.914062 557.886719 551.804688 546.75 551.804688 Z M 334.125 389.804688 C 334.125 361.832031 311.46875 339.179688 283.5 339.179688 C 255.53125 339.179688 232.875 361.832031 232.875 389.804688 C 232.875 417.773438 255.53125 440.429688 283.5 440.429688 C 311.46875 440.429688 334.125 417.773438 334.125 389.804688 Z M 526.5 440.429688 C 554.46875 440.429688 577.125 417.773438 577.125 389.804688 C 577.125 361.832031 554.46875 339.179688 526.5 339.179688 C 498.53125 339.179688 475.875 361.832031 475.875 389.804688 C 475.875 417.773438 498.53125 440.429688 526.5 440.429688 Z M 60.75 349.304688 L 81 349.304688 L 81 592.304688 L 60.75 592.304688 C 27.210938 592.304688 0 565.09375 0 531.554688 L 0 410.054688 C 0 376.515625 27.210938 349.304688 60.75 349.304688 Z M 749.25 349.304688 C 782.789062 349.304688 810 376.515625 810 410.054688 L 810 531.554688 C 810 565.09375 782.789062 592.304688 749.25 592.304688 L 729 592.304688 L 729 349.304688 Z" fill-opacity="1" fill-rule="nonzero" />
10
+ </g>
11
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1080" zoomAndPan="magnify" viewBox="0 0 810 810" height="1080" preserveAspectRatio="xMidYMid meet" version="1.0" style="background: none;">
2
+ <defs>
3
+ <linearGradient id="robot-gradient" x1="0%" y1="100%" x2="100%" y2="0%">
4
+ <stop offset="0%" stop-color="#a857fd" />
5
+ <stop offset="100%" stop-color="#ff793d" />
6
+ </linearGradient>
7
+ </defs>
8
+ <g>
9
+ <path fill="url(#robot-gradient)" d="M 405 65.804688 C 427.402344 65.804688 445.5 83.902344 445.5 106.304688 L 445.5 187.304688 L 607.5 187.304688 C 652.175781 187.304688 688.5 223.625 688.5 268.304688 L 688.5 632.804688 C 688.5 677.480469 652.175781 713.804688 607.5 713.804688 L 202.5 713.804688 C 157.824219 713.804688 121.5 677.480469 121.5 632.804688 L 121.5 268.304688 C 121.5 223.625 157.824219 187.304688 202.5 187.304688 L 364.5 187.304688 L 364.5 106.304688 C 364.5 83.902344 382.597656 65.804688 405 65.804688 Z M 263.25 551.804688 C 252.113281 551.804688 243 560.914062 243 572.054688 C 243 583.191406 252.113281 592.304688 263.25 592.304688 L 303.75 592.304688 C 314.886719 592.304688 324 583.191406 324 572.054688 C 324 560.914062 314.886719 551.804688 303.75 551.804688 Z M 384.75 551.804688 C 373.613281 551.804688 364.5 560.914062 364.5 572.054688 C 364.5 583.191406 373.613281 592.304688 384.75 592.304688 L 425.25 592.304688 C 436.386719 592.304688 445.5 583.191406 445.5 572.054688 C 445.5 560.914062 436.386719 551.804688 425.25 551.804688 Z M 506.25 551.804688 C 495.113281 551.804688 486 560.914062 486 572.054688 C 486 583.191406 495.113281 592.304688 506.25 592.304688 L 546.75 592.304688 C 557.886719 592.304688 567 583.191406 567 572.054688 C 567 560.914062 557.886719 551.804688 546.75 551.804688 Z M 334.125 389.804688 C 334.125 361.832031 311.46875 339.179688 283.5 339.179688 C 255.53125 339.179688 232.875 361.832031 232.875 389.804688 C 232.875 417.773438 255.53125 440.429688 283.5 440.429688 C 311.46875 440.429688 334.125 417.773438 334.125 389.804688 Z M 526.5 440.429688 C 554.46875 440.429688 577.125 417.773438 577.125 389.804688 C 577.125 361.832031 554.46875 339.179688 526.5 339.179688 C 498.53125 339.179688 475.875 361.832031 475.875 389.804688 C 475.875 417.773438 498.53125 440.429688 526.5 440.429688 Z M 60.75 349.304688 L 81 349.304688 L 81 592.304688 L 60.75 592.304688 C 27.210938 592.304688 0 565.09375 0 531.554688 L 0 410.054688 C 0 376.515625 27.210938 349.304688 60.75 349.304688 Z M 749.25 349.304688 C 782.789062 349.304688 810 376.515625 810 410.054688 L 810 531.554688 C 810 565.09375 782.789062 592.304688 749.25 592.304688 L 729 592.304688 L 729 349.304688 Z" fill-opacity="1" fill-rule="nonzero" />
10
+ </g>
11
+ </svg>
@@ -0,0 +1,10 @@
1
+ import type { IDataObject, IExecuteFunctions, IHttpRequestMethods, ILoadOptionsFunctions } from 'n8n-workflow';
2
+ type RequestParameters = {
3
+ headers?: IDataObject;
4
+ body?: IDataObject | string;
5
+ qs?: IDataObject;
6
+ uri?: string;
7
+ option?: IDataObject;
8
+ };
9
+ export declare function apiRequest(this: IExecuteFunctions | ILoadOptionsFunctions, method: IHttpRequestMethods, endpoint: string, parameters?: RequestParameters): Promise<any>;
10
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.apiRequest = apiRequest;
4
+ async function apiRequest(method, endpoint, parameters) {
5
+ const { body, qs, uri, option, headers } = parameters !== null && parameters !== void 0 ? parameters : {};
6
+ const credentials = await this.getCredentials('simpleOpenAiApi');
7
+ const baseUrl = String(credentials.baseUrl || 'https://api.openai.com/v1');
8
+ const sanitizedBaseUrl = baseUrl.replace(/\/+$/, '');
9
+ const sanitizedEndpoint = endpoint.startsWith('/') ? endpoint : `/${endpoint}`;
10
+ const options = {
11
+ headers,
12
+ method,
13
+ body,
14
+ qs,
15
+ uri: uri !== null && uri !== void 0 ? uri : `${sanitizedBaseUrl}${sanitizedEndpoint}`,
16
+ json: true,
17
+ };
18
+ if (option && Object.keys(option).length !== 0) {
19
+ Object.assign(options, option);
20
+ }
21
+ return await this.helpers.requestWithAuthentication.call(this, 'simpleOpenAiApi', options);
22
+ }
23
+ //# sourceMappingURL=apiRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiRequest.js","sourceRoot":"","sources":["../../../../../nodes/shared/helpers/api/apiRequest.ts"],"names":[],"mappings":";;AAeA,gCA8BC;AA9BM,KAAK,UAAU,UAAU,CAE/B,MAA2B,EAC3B,QAAgB,EAChB,UAA8B;IAE9B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC;IAG5D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,IAAI,2BAA2B,CAAC,CAAC;IAG3E,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;IAE/E,MAAM,OAAO,GAAG;QACf,OAAO;QACP,MAAM;QACN,IAAI;QACJ,EAAE;QACF,GAAG,EAAE,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,GAAG,gBAAgB,GAAG,iBAAiB,EAAE;QACrD,IAAI,EAAE,IAAI;KACV,CAAC;IAEF,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;AAC5F,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { OpenAIError } from 'openai/error';
2
+ export declare function getCustomErrorMessage(errorCode: string): string | undefined;
3
+ export declare function isOpenAiError(error: any): error is OpenAIError;
4
+ export declare const openAiFailedAttemptHandler: (error: any) => void;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.openAiFailedAttemptHandler = void 0;
4
+ exports.getCustomErrorMessage = getCustomErrorMessage;
5
+ exports.isOpenAiError = isOpenAiError;
6
+ const error_1 = require("openai/error");
7
+ const openai_1 = require("openai");
8
+ const errorMap = {
9
+ insufficient_quota: 'OpenAI: Insufficient quota',
10
+ rate_limit_exceeded: 'OpenAI: Rate limit reached',
11
+ };
12
+ function getCustomErrorMessage(errorCode) {
13
+ return errorMap[errorCode];
14
+ }
15
+ function isOpenAiError(error) {
16
+ return error instanceof error_1.OpenAIError;
17
+ }
18
+ const openAiFailedAttemptHandler = (error) => {
19
+ if (error instanceof openai_1.RateLimitError) {
20
+ const errorCode = error === null || error === void 0 ? void 0 : error.code;
21
+ if (errorCode) {
22
+ const customErrorMessage = getCustomErrorMessage(errorCode);
23
+ if (customErrorMessage) {
24
+ error.message = customErrorMessage;
25
+ }
26
+ }
27
+ throw error;
28
+ }
29
+ };
30
+ exports.openAiFailedAttemptHandler = openAiFailedAttemptHandler;
31
+ //# sourceMappingURL=errorHandling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorHandling.js","sourceRoot":"","sources":["../../../../../nodes/shared/helpers/api/errorHandling.ts"],"names":[],"mappings":";;;AAQA,sDAEC;AAED,sCAEC;AAdD,wCAA2C;AAC3C,mCAAwC;AAExC,MAAM,QAAQ,GAA2B;IACxC,kBAAkB,EAAE,4BAA4B;IAChD,mBAAmB,EAAE,4BAA4B;CACjD,CAAC;AAEF,SAAgB,qBAAqB,CAAC,SAAiB;IACtD,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,aAAa,CAAC,KAAU;IACvC,OAAO,KAAK,YAAY,mBAAW,CAAC;AACrC,CAAC;AAEM,MAAM,0BAA0B,GAAG,CAAC,KAAU,EAAE,EAAE;IACxD,IAAI,KAAK,YAAY,uBAAc,EAAE,CAAC;QAGrC,MAAM,SAAS,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC;QAC9B,IAAI,SAAS,EAAE,CAAC;YACf,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAE5D,IAAI,kBAAkB,EAAE,CAAC;gBACxB,KAAK,CAAC,OAAO,GAAG,kBAAkB,CAAC;YACpC,CAAC;QACF,CAAC;QAED,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC,CAAC;AAfW,QAAA,0BAA0B,8BAerC"}
@@ -0,0 +1,37 @@
1
+ import type { IDataObject } from 'n8n-workflow';
2
+ export type ChatCompletion = {
3
+ id: string;
4
+ object: string;
5
+ created: number;
6
+ model: string;
7
+ choices: Array<{
8
+ index: number;
9
+ message: {
10
+ role: string;
11
+ content: string;
12
+ tool_calls?: Array<{
13
+ id: string;
14
+ type: 'function';
15
+ function: {
16
+ name: string;
17
+ arguments: string;
18
+ };
19
+ }>;
20
+ };
21
+ finish_reason?: 'tool_calls';
22
+ }>;
23
+ usage: {
24
+ prompt_tokens: number;
25
+ completion_tokens: number;
26
+ total_tokens: number;
27
+ };
28
+ system_fingerprint: string;
29
+ };
30
+ export type ExternalApiCallOptions = {
31
+ callExternalApi: boolean;
32
+ url: string;
33
+ path: string;
34
+ method: string;
35
+ requestOptions: IDataObject;
36
+ sendParametersIn: string;
37
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../nodes/shared/helpers/api/interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { OpenAIClient } from '@langchain/openai';
2
+ import type { StructuredTool } from '@langchain/core/tools';
3
+ export declare function formatToOpenAIFunction(tool: StructuredTool): OpenAIClient.Chat.ChatCompletionCreateParams.Function;
4
+ export declare function transformSchema(schema: Record<string, any>): Record<string, any>;
5
+ export declare function formatToOpenAITool(tool: StructuredTool): OpenAIClient.Chat.ChatCompletionTool;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatToOpenAIFunction = formatToOpenAIFunction;
4
+ exports.transformSchema = transformSchema;
5
+ exports.formatToOpenAITool = formatToOpenAITool;
6
+ const zod_to_json_schema_1 = require("zod-to-json-schema");
7
+ function formatToOpenAIFunction(tool) {
8
+ return {
9
+ name: tool.name,
10
+ description: tool.description,
11
+ parameters: (0, zod_to_json_schema_1.zodToJsonSchema)(tool.schema),
12
+ };
13
+ }
14
+ function transformSchema(schema) {
15
+ const transformedSchema = { ...schema };
16
+ delete transformedSchema['$schema'];
17
+ if (transformedSchema.properties) {
18
+ transformedSchema.required = Object.keys(transformedSchema.properties);
19
+ }
20
+ else {
21
+ transformedSchema.required = [];
22
+ }
23
+ const { additionalProperties } = transformedSchema;
24
+ delete transformedSchema.additionalProperties;
25
+ if (additionalProperties !== undefined) {
26
+ transformedSchema.additionalProperties = additionalProperties;
27
+ }
28
+ return transformedSchema;
29
+ }
30
+ function formatToOpenAITool(tool) {
31
+ const originalSchema = (0, zod_to_json_schema_1.zodToJsonSchema)(tool.schema);
32
+ const schema = transformSchema(originalSchema);
33
+ return {
34
+ type: 'function',
35
+ function: {
36
+ name: tool.name,
37
+ description: tool.description,
38
+ parameters: schema,
39
+ },
40
+ };
41
+ }
42
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../nodes/shared/helpers/api/utils.ts"],"names":[],"mappings":";;AAaA,wDAQC;AAED,0CAsBC;AAED,gDAWC;AA1DD,2DAAqD;AAarD,SAAgB,sBAAsB,CACrC,IAAoB;IAEpB,OAAO;QACN,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAA,oCAAe,EAAC,IAAI,CAAC,MAAM,CAAC;KACxC,CAAC;AACH,CAAC;AAED,SAAgB,eAAe,CAAC,MAA2B;IAEvD,MAAM,iBAAiB,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAGxC,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAGpC,IAAI,iBAAiB,CAAC,UAAU,EAAE,CAAC;QAC/B,iBAAiB,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACJ,iBAAiB,CAAC,QAAQ,GAAG,EAAE,CAAC;IACpC,CAAC;IAGD,MAAM,EAAE,oBAAoB,EAAE,GAAG,iBAAiB,CAAC;IACnD,OAAO,iBAAiB,CAAC,oBAAoB,CAAC;IAC9C,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACrC,iBAAiB,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IAClE,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAoB;IACtD,MAAM,cAAc,GAAG,IAAA,oCAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnD,MAAM,MAAM,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAC/C,OAAO;QACN,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACT,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,MAAM;SAClB;KACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Message } from './messageModel';
2
+ type RawMessage = Message & {
3
+ chatHistoryJson?: string | object[] | null;
4
+ };
5
+ export declare function unpackChatHistoryAndMemory(rawMessagesToSend: RawMessage[], memory?: any): Promise<Message[]>;
6
+ export {};
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unpackChatHistoryAndMemory = unpackChatHistoryAndMemory;
4
+ const messageModel_1 = require("./messageModel");
5
+ function convertMessages(messages) {
6
+ return messages.map(message => {
7
+ let role = message.constructor.name === 'AIMessage' ? 'assistant' : 'user';
8
+ return {
9
+ "role": role,
10
+ "content": typeof message.content === 'string' ? message.content : JSON.stringify(message.content)
11
+ };
12
+ });
13
+ }
14
+ async function unpackChatHistoryAndMemory(rawMessagesToSend, memory) {
15
+ const processedMessages = [];
16
+ for (const rawMessage of rawMessagesToSend) {
17
+ if (rawMessage.role !== "chatHistoryRole" && rawMessage.role !== "chatMemoryRole") {
18
+ processedMessages.push(rawMessage);
19
+ }
20
+ else if (rawMessage.role === "chatHistoryRole") {
21
+ try {
22
+ let chatHistory;
23
+ if (typeof rawMessage.chatHistoryJson === 'string') {
24
+ chatHistory = JSON.parse(rawMessage.chatHistoryJson || "[]");
25
+ }
26
+ else {
27
+ chatHistory = rawMessage.chatHistoryJson;
28
+ }
29
+ if (Array.isArray(chatHistory) && chatHistory.every(messageModel_1.isValidMessage)) {
30
+ processedMessages.push(...chatHistory);
31
+ }
32
+ else {
33
+ processedMessages.push({
34
+ role: "user",
35
+ content: JSON.stringify(rawMessage.chatHistoryJson),
36
+ });
37
+ }
38
+ }
39
+ catch (error) {
40
+ processedMessages.push({
41
+ role: "user",
42
+ content: JSON.stringify(rawMessage.chatHistoryJson),
43
+ });
44
+ }
45
+ }
46
+ else if (rawMessage.role === "chatMemoryRole" && memory && memory.chatHistory) {
47
+ try {
48
+ const rawMemoryMessages = await memory.chatHistory.getMessages();
49
+ const memoryMessages = convertMessages(rawMemoryMessages);
50
+ const k = memory.k || memoryMessages.length;
51
+ const lastKMemoryMessages = memoryMessages.slice(-k);
52
+ processedMessages.push(...lastKMemoryMessages);
53
+ }
54
+ catch (error) {
55
+ processedMessages.push({
56
+ role: "user",
57
+ content: `Error getting messages from memory: ${error.message}`,
58
+ });
59
+ }
60
+ }
61
+ }
62
+ return processedMessages;
63
+ }
64
+ //# sourceMappingURL=chatHistoryUnpacker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatHistoryUnpacker.js","sourceRoot":"","sources":["../../../../../nodes/shared/helpers/asCoreNode/chatHistoryUnpacker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Message } from './messageModel';
2
+ type RawMessage = Message & {
3
+ chatHistoryJson?: string | object[] | null;
4
+ };
5
+ export declare function unpackChatHistoryAndMemory(rawMessagesToSend: RawMessage[], memory?: any): Promise<Message[]>;
6
+ export {};
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unpackChatHistoryAndMemory = unpackChatHistoryAndMemory;
4
+ const messageModel_1 = require("./messageModel");
5
+ function convertMessages(messages) {
6
+ return messages.map(message => {
7
+ let role = message.constructor.name === 'AIMessage' ? 'assistant' : 'user';
8
+ return {
9
+ "role": role,
10
+ "content": typeof message.content === 'string' ? message.content : JSON.stringify(message.content)
11
+ };
12
+ });
13
+ }
14
+ async function unpackChatHistoryAndMemory(rawMessagesToSend, memory) {
15
+ const processedMessages = [];
16
+ for (const rawMessage of rawMessagesToSend) {
17
+ if (rawMessage.role !== "chatHistoryRole" && rawMessage.role !== "chatMemoryRole") {
18
+ processedMessages.push(rawMessage);
19
+ }
20
+ else if (rawMessage.role === "chatHistoryRole") {
21
+ try {
22
+ let chatHistory;
23
+ if (typeof rawMessage.chatHistoryJson === 'string') {
24
+ chatHistory = JSON.parse(rawMessage.chatHistoryJson || "[]");
25
+ }
26
+ else {
27
+ chatHistory = rawMessage.chatHistoryJson;
28
+ }
29
+ if (Array.isArray(chatHistory) && chatHistory.every(messageModel_1.isValidMessage)) {
30
+ processedMessages.push(...chatHistory);
31
+ }
32
+ else {
33
+ processedMessages.push({
34
+ role: "user",
35
+ content: JSON.stringify(rawMessage.chatHistoryJson),
36
+ });
37
+ }
38
+ }
39
+ catch (error) {
40
+ processedMessages.push({
41
+ role: "user",
42
+ content: JSON.stringify(rawMessage.chatHistoryJson),
43
+ });
44
+ }
45
+ }
46
+ else if (rawMessage.role === "chatMemoryRole" && memory && memory.chatHistory) {
47
+ try {
48
+ const rawMemoryMessages = await memory.chatHistory.getMessages();
49
+ const memoryMessages = convertMessages(rawMemoryMessages);
50
+ const k = memory.k || memoryMessages.length;
51
+ const lastKMemoryMessages = memoryMessages.slice(-k);
52
+ processedMessages.push(...lastKMemoryMessages);
53
+ }
54
+ catch (error) {
55
+ console.error('Error retrieving messages from memory:', error);
56
+ }
57
+ ;
58
+ }
59
+ }
60
+ return processedMessages;
61
+ }
62
+ //# sourceMappingURL=chatUnpacker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatUnpacker.js","sourceRoot":"","sources":["../../../../../nodes/shared/helpers/asCoreNode/chatUnpacker.ts"],"names":[],"mappings":";;AA0BA,gEAqDC;AA/ED,iDAAwD;AAIxD,SAAS,eAAe,CAAC,QAAuB;IAC9C,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QAC5B,IAAI,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QAE3E,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;SACnG,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAaM,KAAK,UAAU,0BAA0B,CAAC,iBAA+B,EAAE,MAAY;IAC5F,MAAM,iBAAiB,GAAc,EAAE,CAAC;IAExC,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;QAC7C,IAAI,UAAU,CAAC,IAAI,KAAK,iBAAiB,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAEhF,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACjD,IAAI,CAAC;gBAGP,IAAI,WAAW,CAAA;gBACf,IAAI,OAAO,UAAU,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;oBAChD,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,CAAA;gBACjE,CAAC;qBAAM,CAAC;oBACP,WAAW,GAAG,UAAU,CAAC,eAAe,CAAA;gBACzC,CAAC;gBAGG,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,6BAAc,CAAC,EAAE,CAAC;oBAEpE,iBAAiB,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBAEN,iBAAiB,CAAC,IAAI,CAAC;wBACrB,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC;qBACpD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAEpB,iBAAiB,CAAC,IAAI,CAAC;oBACrB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC;iBACpD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACnF,IAAI,CAAC;gBAEJ,MAAM,iBAAiB,GAAkB,MAAM,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;gBAEhF,MAAM,cAAc,GAAc,eAAe,CAAC,iBAAiB,CAAC,CAAC;gBAErE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC;gBAC5C,MAAM,mBAAmB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,iBAAiB,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;YAChE,CAAC;YAAA,CAAC;QACH,CAAC;IACF,CAAC;IAEA,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const MODELS_NOT_SUPPORT_FUNCTION_CALLS: string[];
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MODELS_NOT_SUPPORT_FUNCTION_CALLS = void 0;
4
+ exports.MODELS_NOT_SUPPORT_FUNCTION_CALLS = [
5
+ 'gpt-3.5-turbo-16k-0613',
6
+ 'dall-e-3',
7
+ 'text-embedding-3-large',
8
+ 'dall-e-2',
9
+ 'whisper-1',
10
+ 'tts-1-hd-1106',
11
+ 'tts-1-hd',
12
+ 'gpt-4-0314',
13
+ 'text-embedding-3-small',
14
+ 'gpt-4-32k-0314',
15
+ 'gpt-3.5-turbo-0301',
16
+ 'gpt-4-vision-preview',
17
+ 'gpt-3.5-turbo-16k',
18
+ 'gpt-3.5-turbo-instruct-0914',
19
+ 'tts-1',
20
+ 'davinci-002',
21
+ 'gpt-3.5-turbo-instruct',
22
+ 'babbage-002',
23
+ 'tts-1-1106',
24
+ 'text-embedding-ada-002',
25
+ ];
26
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../nodes/shared/helpers/asCoreNode/constants.ts"],"names":[],"mappings":";;;AACa,QAAA,iCAAiC,GAAG;IAChD,wBAAwB;IACxB,UAAU;IACV,wBAAwB;IACxB,UAAU;IACV,WAAW;IACX,eAAe;IACf,UAAU;IACV,YAAY;IACZ,wBAAwB;IACxB,gBAAgB;IAChB,oBAAoB;IACpB,sBAAsB;IACtB,mBAAmB;IACnB,6BAA6B;IAC7B,OAAO;IACP,aAAa;IACb,wBAAwB;IACxB,aAAa;IACb,YAAY;IACZ,wBAAwB;CACxB,CAAC"}
@@ -0,0 +1,43 @@
1
+ type ToolCall = {
2
+ id: string;
3
+ type: string;
4
+ function: {
5
+ name: string;
6
+ arguments: string;
7
+ };
8
+ };
9
+ export type Message = {
10
+ role: string;
11
+ content: string | null;
12
+ tool_calls?: ToolCall[];
13
+ tool_call_id?: string;
14
+ refusal?: string | null;
15
+ };
16
+ type Choice = {
17
+ index: number;
18
+ message: Message;
19
+ logprobs: boolean | null;
20
+ finish_reason: string;
21
+ };
22
+ type CompletionTokenDetails = {
23
+ reasoning_tokens: number;
24
+ accepted_prediction_tokens: number;
25
+ rejected_prediction_tokens: number;
26
+ };
27
+ type Usage = {
28
+ prompt_tokens: number;
29
+ completion_tokens: number;
30
+ total_tokens: number;
31
+ completion_tokens_details: CompletionTokenDetails;
32
+ };
33
+ export type Response = {
34
+ id: string;
35
+ object: string;
36
+ created: number;
37
+ model: string;
38
+ system_fingerprint: string;
39
+ choices: Choice[];
40
+ usage: Usage;
41
+ };
42
+ export declare function isValidMessage(item: any): item is Message;
43
+ export {};
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValidMessage = isValidMessage;
4
+ function isValidMessage(item) {
5
+ return (typeof item === "object" &&
6
+ item !== null &&
7
+ "role" in item &&
8
+ "content" in item &&
9
+ typeof item.role === "string" &&
10
+ (typeof item.content === "string" || item.content === null));
11
+ }
12
+ //# sourceMappingURL=messageModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageModel.js","sourceRoot":"","sources":["../../../../../nodes/shared/helpers/asCoreNode/messageModel.ts"],"names":[],"mappings":";;AAqDA,wCASC;AATD,SAAgB,cAAc,CAAC,IAAS;IACtC,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,MAAM,IAAI,IAAI;QACd,SAAS,IAAI,IAAI;QACjB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAC7B,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAC5D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Message } from './messageModel';
2
+ export declare function extractToolMessages(messagesFromRequestBody: Message[]): {
3
+ tool: string;
4
+ input: string;
5
+ output: string;
6
+ }[];
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractToolMessages = extractToolMessages;
4
+ function extractToolMessages(messagesFromRequestBody) {
5
+ const toolMessagesFromRequestBody = messagesFromRequestBody.filter((msg) => msg.role === "tool");
6
+ const processedToolMessages = [];
7
+ for (const message of messagesFromRequestBody) {
8
+ if (message.role === "assistant" && message.tool_calls && message.tool_calls.length > 0) {
9
+ const toolCall = message.tool_calls[0];
10
+ const toolName = toolCall.function.name;
11
+ let toolInput = JSON.parse(toolCall.function.arguments);
12
+ if (toolInput.input && Object.entries(toolInput).length === 1) {
13
+ toolInput = toolInput.input;
14
+ }
15
+ const toolMessage = toolMessagesFromRequestBody.find((toolMsg) => toolMsg.tool_call_id === toolCall.id);
16
+ if (toolMessage) {
17
+ processedToolMessages.push({
18
+ tool: toolName,
19
+ input: toolInput,
20
+ output: toolMessage.content
21
+ });
22
+ }
23
+ }
24
+ }
25
+ return processedToolMessages;
26
+ }
27
+ //# sourceMappingURL=stepsExtractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepsExtractor.js","sourceRoot":"","sources":["../../../../../nodes/shared/helpers/asCoreNode/stepsExtractor.ts"],"names":[],"mappings":";;AAEA,kDA+BC;AA/BD,SAAgB,mBAAmB,CAAC,uBAAkC;IACrE,MAAM,2BAA2B,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACjG,MAAM,qBAAqB,GAAsD,EAAE,CAAC;IAEpF,KAAK,MAAM,OAAO,IAAI,uBAAuB,EAAE,CAAC;QAE9C,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxF,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACxC,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAGxD,IAAI,SAAS,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/D,SAAS,GAAG,SAAS,CAAC,KAAK,CAAA;YAC5B,CAAC;YAED,MAAM,WAAW,GAAG,2BAA2B,CAAC,IAAI,CAClD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,KAAK,QAAQ,CAAC,EAAE,CAClD,CAAC;YAEF,IAAI,WAAW,EAAE,CAAC;gBAChB,qBAAqB,CAAC,IAAI,CAAC;oBACzB,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,SAAS;oBAChB,MAAM,EAAE,WAAW,CAAC,OAAQ;iBAC7B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,qBAAqB,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,18 @@
1
+ export type PlaceholderDefinition = {
2
+ name: string;
3
+ type: string;
4
+ description: string;
5
+ };
6
+ type SchemaProperty = {
7
+ type: string;
8
+ enum?: string[];
9
+ description?: string;
10
+ };
11
+ type Schema = {
12
+ type: "object";
13
+ properties: Record<string, SchemaProperty>;
14
+ required: string[];
15
+ additionalProperties: false;
16
+ };
17
+ export declare function convertCustomFieldsToSchema(inputCustomFieldsParameters: PlaceholderDefinition[]): Schema;
18
+ export {};