n8n-nodes-simple 2.0.1 → 2.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.
- package/dist/credentials/SimpleOpenAiApi.credentials.js +1 -1
- package/dist/credentials/SimpleOpenAiApi.credentials.js.map +1 -1
- package/dist/nodes/CoreAgent/CoreAgent.node.d.ts +3 -2
- package/dist/nodes/CoreAgent/CoreAgent.node.js +3 -3
- package/dist/nodes/CoreAgent/CoreAgent.node.js.map +1 -1
- package/dist/nodes/CoreAgent/description.js +15 -3
- package/dist/nodes/CoreAgent/description.js.map +1 -1
- package/dist/nodes/Subagent/Subagent.node.d.ts +3 -2
- package/dist/nodes/Subagent/Subagent.node.js +5 -5
- package/dist/nodes/Subagent/Subagent.node.js.map +1 -1
- package/dist/nodes/Subagent/description.js +16 -3
- package/dist/nodes/Subagent/description.js.map +1 -1
- package/dist/nodes/shared/actions/executor.js +1 -1
- package/dist/nodes/shared/actions/executor.js.map +1 -1
- package/dist/nodes/shared/actions/memory.d.ts +1 -1
- package/dist/nodes/shared/actions/memory.js +71 -19
- package/dist/nodes/shared/actions/memory.js.map +1 -1
- package/dist/nodes/shared/actions/message.operation.js +1 -1
- package/dist/nodes/shared/actions/message.operation.js.map +1 -1
- package/dist/nodes/shared/actions/messageProcessor.d.ts +1 -1
- package/dist/nodes/shared/actions/messageProcessor.js +9 -7
- package/dist/nodes/shared/actions/messageProcessor.js.map +1 -1
- package/dist/nodes/shared/actions/outputProcessor.js +29 -21
- package/dist/nodes/shared/actions/outputProcessor.js.map +1 -1
- package/dist/nodes/shared/actions/parameters.d.ts +2 -0
- package/dist/nodes/shared/actions/parameters.js +8 -1
- package/dist/nodes/shared/actions/parameters.js.map +1 -1
- package/dist/nodes/shared/actions/requestBuilder.js +2 -2
- package/dist/nodes/shared/actions/requestBuilder.js.map +1 -1
- package/dist/nodes/shared/actions/responseConfig.js +2 -2
- package/dist/nodes/shared/actions/responseConfig.js.map +1 -1
- package/dist/nodes/shared/actions/router.js +2 -2
- package/dist/nodes/shared/actions/router.js.map +1 -1
- package/dist/nodes/shared/actions/tool.js.map +1 -1
- package/dist/nodes/shared/actions/toolExecutor.js +78 -21
- package/dist/nodes/shared/actions/toolExecutor.js.map +1 -1
- package/dist/nodes/shared/actions/toolSetup.js +6 -5
- package/dist/nodes/shared/actions/toolSetup.js.map +1 -1
- package/dist/nodes/shared/api/openAiApiRequest.js.map +1 -1
- package/dist/nodes/shared/api/types.d.ts +2 -0
- package/dist/nodes/shared/api/utils.js.map +1 -1
- package/dist/nodes/shared/assets/gradientRobot.svg +11 -0
- package/dist/nodes/shared/assets/gradientRobotRed.svg +11 -0
- package/dist/nodes/shared/config/descriptionGenerator.d.ts +2 -0
- package/dist/nodes/shared/config/descriptionGenerator.js +36 -0
- package/dist/nodes/shared/config/descriptionGenerator.js.map +1 -0
- package/dist/nodes/shared/config/parameters.d.ts +26 -0
- package/dist/nodes/shared/config/parameters.js +35 -0
- package/dist/nodes/shared/config/parameters.js.map +1 -0
- package/dist/nodes/shared/config/properties/index.d.ts +2 -0
- package/dist/nodes/shared/config/properties/index.js +16 -0
- package/dist/nodes/shared/config/properties/index.js.map +1 -0
- package/dist/nodes/shared/config/properties/memory.d.ts +2 -0
- package/dist/nodes/shared/config/properties/memory.js +5 -0
- package/dist/nodes/shared/config/properties/memory.js.map +1 -0
- package/dist/nodes/shared/config/properties/messages.d.ts +2 -0
- package/dist/nodes/shared/config/properties/messages.js +109 -0
- package/dist/nodes/shared/config/properties/messages.js.map +1 -0
- package/dist/nodes/shared/config/properties/model.d.ts +2 -0
- package/dist/nodes/shared/config/properties/model.js +30 -0
- package/dist/nodes/shared/config/properties/model.js.map +1 -0
- package/dist/nodes/shared/config/properties/options.d.ts +2 -0
- package/dist/nodes/shared/config/properties/options.js +105 -0
- package/dist/nodes/shared/config/properties/options.js.map +1 -0
- package/dist/nodes/shared/config/properties/output.d.ts +2 -0
- package/dist/nodes/shared/config/properties/output.js +322 -0
- package/dist/nodes/shared/config/properties/output.js.map +1 -0
- package/dist/nodes/shared/config/properties/tools.d.ts +2 -0
- package/dist/nodes/shared/config/properties/tools.js +5 -0
- package/dist/nodes/shared/config/properties/tools.js.map +1 -0
- package/dist/nodes/shared/config/responseConfig.d.ts +3 -0
- package/dist/nodes/shared/config/responseConfig.js +26 -0
- package/dist/nodes/shared/config/responseConfig.js.map +1 -0
- package/dist/nodes/shared/core/execution/executor.d.ts +7 -0
- package/dist/nodes/shared/core/execution/executor.js +61 -0
- package/dist/nodes/shared/core/execution/executor.js.map +1 -0
- package/dist/nodes/shared/core/execution/messageOperation.d.ts +2 -0
- package/dist/nodes/shared/core/execution/messageOperation.js +14 -0
- package/dist/nodes/shared/core/execution/messageOperation.js.map +1 -0
- package/dist/nodes/shared/core/execution/router.d.ts +2 -0
- package/dist/nodes/shared/core/execution/router.js +117 -0
- package/dist/nodes/shared/core/execution/router.js.map +1 -0
- package/dist/nodes/shared/core/memory/index.d.ts +2 -0
- package/dist/nodes/shared/core/memory/index.js +19 -0
- package/dist/nodes/shared/core/memory/index.js.map +1 -0
- package/dist/nodes/shared/core/memory/io.d.ts +5 -0
- package/dist/nodes/shared/core/memory/io.js +93 -0
- package/dist/nodes/shared/core/memory/io.js.map +1 -0
- package/dist/nodes/shared/core/memory/optimizer.d.ts +3 -0
- package/dist/nodes/shared/core/memory/optimizer.js +30 -0
- package/dist/nodes/shared/core/memory/optimizer.js.map +1 -0
- package/dist/nodes/shared/core/memory/properties.d.ts +2 -0
- package/dist/nodes/shared/core/memory/properties.js +5 -0
- package/dist/nodes/shared/core/memory/properties.js.map +1 -0
- package/dist/nodes/shared/core/messages/chatHistory.d.ts +2 -0
- package/dist/nodes/shared/core/messages/chatHistory.js +63 -0
- package/dist/nodes/shared/core/messages/chatHistory.js.map +1 -0
- package/dist/nodes/shared/core/messages/converter.d.ts +4 -0
- package/dist/nodes/shared/core/messages/converter.js +76 -0
- package/dist/nodes/shared/core/messages/converter.js.map +1 -0
- package/dist/nodes/shared/core/messages/memoryOptimizer.d.ts +3 -0
- package/dist/nodes/shared/core/messages/memoryOptimizer.js +30 -0
- package/dist/nodes/shared/core/messages/memoryOptimizer.js.map +1 -0
- package/dist/nodes/shared/core/messages/processor.d.ts +4 -0
- package/dist/nodes/shared/core/messages/processor.js +23 -0
- package/dist/nodes/shared/core/messages/processor.js.map +1 -0
- package/dist/nodes/shared/core/messages/toolExtractor.d.ts +6 -0
- package/dist/nodes/shared/core/messages/toolExtractor.js +28 -0
- package/dist/nodes/shared/core/messages/toolExtractor.js.map +1 -0
- package/dist/nodes/shared/core/messages/types.d.ts +48 -0
- package/dist/nodes/shared/core/messages/types.js +12 -0
- package/dist/nodes/shared/core/messages/types.js.map +1 -0
- package/dist/nodes/shared/core/tools/connector.d.ts +3 -0
- package/dist/nodes/shared/core/tools/connector.js +37 -0
- package/dist/nodes/shared/core/tools/connector.js.map +1 -0
- package/dist/nodes/shared/core/tools/executor.d.ts +6 -0
- package/dist/nodes/shared/core/tools/executor.js +124 -0
- package/dist/nodes/shared/core/tools/executor.js.map +1 -0
- package/dist/nodes/shared/core/tools/manager.d.ts +2 -0
- package/dist/nodes/shared/core/tools/manager.js +51 -0
- package/dist/nodes/shared/core/tools/manager.js.map +1 -0
- package/dist/nodes/shared/core/tools/messageExtractor.d.ts +6 -0
- package/dist/nodes/shared/core/tools/messageExtractor.js +28 -0
- package/dist/nodes/shared/core/tools/messageExtractor.js.map +1 -0
- package/dist/nodes/shared/core/tools/n8nTool.d.ts +9 -0
- package/dist/nodes/shared/core/tools/n8nTool.js +91 -0
- package/dist/nodes/shared/core/tools/n8nTool.js.map +1 -0
- package/dist/nodes/shared/core/tools/schemaGenerator.d.ts +6 -0
- package/dist/nodes/shared/core/tools/schemaGenerator.js +23 -0
- package/dist/nodes/shared/core/tools/schemaGenerator.js.map +1 -0
- package/dist/nodes/shared/core/tools/setup.d.ts +8 -0
- package/dist/nodes/shared/core/tools/setup.js +59 -0
- package/dist/nodes/shared/core/tools/setup.js.map +1 -0
- package/dist/nodes/shared/core/tools/subagentTool.d.ts +11 -0
- package/dist/nodes/shared/core/tools/subagentTool.js +60 -0
- package/dist/nodes/shared/core/tools/subagentTool.js.map +1 -0
- package/dist/nodes/shared/descriptionGenerator.js +3 -7
- package/dist/nodes/shared/descriptionGenerator.js.map +1 -1
- package/dist/nodes/shared/message/chatHistoryProcessor.d.ts +2 -0
- package/dist/nodes/shared/message/chatHistoryProcessor.js +63 -0
- package/dist/nodes/shared/message/chatHistoryProcessor.js.map +1 -0
- package/dist/nodes/shared/message/memoryOptimizer.d.ts +3 -0
- package/dist/nodes/shared/message/memoryOptimizer.js +30 -0
- package/dist/nodes/shared/message/memoryOptimizer.js.map +1 -0
- package/dist/nodes/shared/message/messageConverter.d.ts +4 -0
- package/dist/nodes/shared/message/messageConverter.js +76 -0
- package/dist/nodes/shared/message/messageConverter.js.map +1 -0
- package/dist/nodes/shared/message/processor.d.ts +3 -7
- package/dist/nodes/shared/message/processor.js +8 -83
- package/dist/nodes/shared/message/processor.js.map +1 -1
- package/dist/nodes/shared/message/toolMessageExtractor.d.ts +6 -0
- package/dist/nodes/shared/message/toolMessageExtractor.js +28 -0
- package/dist/nodes/shared/message/toolMessageExtractor.js.map +1 -0
- package/dist/nodes/shared/message/types.d.ts +2 -0
- package/dist/nodes/shared/message/types.js +5 -5
- package/dist/nodes/shared/message/types.js.map +1 -1
- package/dist/nodes/shared/methods/index.d.ts +1 -1
- package/dist/nodes/shared/methods/index.js +1 -1
- package/dist/nodes/shared/methods/index.js.map +1 -1
- package/dist/nodes/shared/methods/listSearch.d.ts +3 -0
- package/dist/nodes/shared/methods/listSearch.js +4 -0
- package/dist/nodes/shared/methods/listSearch.js.map +1 -1
- package/dist/nodes/shared/processing/memory.d.ts +5 -0
- package/dist/nodes/shared/processing/memory.js +93 -0
- package/dist/nodes/shared/processing/memory.js.map +1 -0
- package/dist/nodes/shared/processing/outputProcessor.d.ts +5 -0
- package/dist/nodes/shared/processing/outputProcessor.js +112 -0
- package/dist/nodes/shared/processing/outputProcessor.js.map +1 -0
- package/dist/nodes/shared/processing/requestBuilder.d.ts +2 -0
- package/dist/nodes/shared/processing/requestBuilder.js +38 -0
- package/dist/nodes/shared/processing/requestBuilder.js.map +1 -0
- package/dist/nodes/shared/processing/visualEditor.d.ts +32 -0
- package/dist/nodes/shared/processing/visualEditor.js +70 -0
- package/dist/nodes/shared/processing/visualEditor.js.map +1 -0
- package/dist/nodes/shared/properties.js +75 -41
- package/dist/nodes/shared/properties.js.map +1 -1
- package/dist/nodes/shared/tool/subagentTool.d.ts +1 -1
- package/dist/nodes/shared/tool/subagentTool.js +4 -4
- package/dist/nodes/shared/tool/subagentTool.js.map +1 -1
- package/dist/nodes/shared/tool/visualEditor.d.ts +1 -1
- package/dist/nodes/shared/tool/visualEditor.js +20 -16
- package/dist/nodes/shared/tool/visualEditor.js.map +1 -1
- package/dist/nodes/shared/toolManager/getConnectedTools.js.map +1 -1
- package/dist/nodes/shared/toolManager/n8nTool.js.map +1 -1
- package/dist/nodes/shared/utils/descriptionGenerator.d.ts +2 -0
- package/dist/nodes/shared/utils/descriptionGenerator.js +36 -0
- package/dist/nodes/shared/utils/descriptionGenerator.js.map +1 -0
- package/dist/nodes/shared/utils/index.d.ts +1 -0
- package/dist/nodes/shared/utils/index.js +18 -0
- package/dist/nodes/shared/utils/index.js.map +1 -0
- package/dist/nodes/shared/utils/listSearch.d.ts +2 -0
- package/dist/nodes/shared/utils/listSearch.js +34 -0
- package/dist/nodes/shared/utils/listSearch.js.map +1 -0
- package/dist/package.json +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData, IDataObject } from 'n8n-workflow';
|
|
2
|
+
import type { BaseChatMemory } from 'langchain/memory';
|
|
3
|
+
import type { ChatCompletion } from '../../api/types';
|
|
4
|
+
import { ExtractedParameters } from '../../config/parameters';
|
|
5
|
+
export declare function hasEmptyContent(response: ChatCompletion): boolean;
|
|
6
|
+
export declare function executeWithFallback(executeFunctions: IExecuteFunctions, params: ExtractedParameters, memory: BaseChatMemory | undefined, messages: IDataObject[], index: number, parentMessageContentStr: string, parentMessageContentObj: object): Promise<INodeExecutionData[]>;
|
|
7
|
+
export declare function executeSingleModel(executeFunctions: IExecuteFunctions, params: ExtractedParameters, memory: BaseChatMemory | undefined, messages: IDataObject[], index: number, parentMessageContentStr: string, parentMessageContentObj: object, modelToUse: string): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasEmptyContent = hasEmptyContent;
|
|
4
|
+
exports.executeWithFallback = executeWithFallback;
|
|
5
|
+
exports.executeSingleModel = executeSingleModel;
|
|
6
|
+
const responseConfig_1 = require("../../config/responseConfig");
|
|
7
|
+
const setup_1 = require("../tools/setup");
|
|
8
|
+
const requestBuilder_1 = require("../../processing/requestBuilder");
|
|
9
|
+
const executor_1 = require("../tools/executor");
|
|
10
|
+
const outputProcessor_1 = require("../../processing/outputProcessor");
|
|
11
|
+
const io_1 = require("../memory/io");
|
|
12
|
+
function hasEmptyContent(response) {
|
|
13
|
+
var _a, _b, _c;
|
|
14
|
+
const content = (_c = (_b = (_a = response === null || response === void 0 ? void 0 : response.choices) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.message) === null || _c === void 0 ? void 0 : _c.content;
|
|
15
|
+
return !content || content.trim() === '' || content === 'null' || content === 'undefined';
|
|
16
|
+
}
|
|
17
|
+
async function executeWithFallback(executeFunctions, params, memory, messages, index, parentMessageContentStr, parentMessageContentObj) {
|
|
18
|
+
const shouldUseFallback = params.fallbackModel &&
|
|
19
|
+
params.fallbackModel.trim() !== '' &&
|
|
20
|
+
params.fallbackModel !== params.model;
|
|
21
|
+
try {
|
|
22
|
+
const result = await executeSingleModel(executeFunctions, params, memory, messages, index, parentMessageContentStr, parentMessageContentObj, params.model);
|
|
23
|
+
if (shouldUseFallback && result.length > 0 && result[0].json.response) {
|
|
24
|
+
const response = result[0].json.response;
|
|
25
|
+
if (hasEmptyContent(response)) {
|
|
26
|
+
console.log(`Primary model ${params.model} returned empty content, trying fallback model ${params.fallbackModel}`);
|
|
27
|
+
return await executeSingleModel(executeFunctions, params, memory, messages, index, parentMessageContentStr, parentMessageContentObj, params.fallbackModel);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
if (shouldUseFallback) {
|
|
34
|
+
console.log(`Primary model ${params.model} failed with error, trying fallback model ${params.fallbackModel}:`, error);
|
|
35
|
+
try {
|
|
36
|
+
return await executeSingleModel(executeFunctions, params, memory, messages, index, parentMessageContentStr, parentMessageContentObj, params.fallbackModel);
|
|
37
|
+
}
|
|
38
|
+
catch (fallbackError) {
|
|
39
|
+
console.error(`Fallback model ${params.fallbackModel} also failed:`, fallbackError);
|
|
40
|
+
throw fallbackError;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async function executeSingleModel(executeFunctions, params, memory, messages, index, parentMessageContentStr, parentMessageContentObj, modelToUse) {
|
|
47
|
+
var _a, _b;
|
|
48
|
+
let response_format = (0, responseConfig_1.configureResponseFormat)(params.responseFormat, params.outputJsonSchemaDefinition, params.structuredOutputName, params.structuredOutputDescription, params.structuredOutputProperties, params.structuredOutputIsArray, params.structuredOutputArrayName, params.structuredOutputArrayDescription);
|
|
49
|
+
const { tools, invokableTools, tool_choice, structuredOutputTool, updatedResponseFormat } = await (0, setup_1.setupTools)(executeFunctions, params.structuredOutputToolsMode, response_format);
|
|
50
|
+
response_format = updatedResponseFormat;
|
|
51
|
+
const body = (0, requestBuilder_1.prepareRequestBody)(modelToUse, messages, tools, tool_choice, response_format, params.options, params.customParameters);
|
|
52
|
+
const originalMessagesLength = messages.length;
|
|
53
|
+
const { response, output } = await (0, executor_1.processToolCalls)(executeFunctions, body, messages, invokableTools, structuredOutputTool, params.maxToolsIterations, params.abortSignal);
|
|
54
|
+
const outputData = await (0, outputProcessor_1.prepareOutputData)(response, output, messages, originalMessagesLength, params.addToOutput, params.agentType, executeFunctions, index, body, modelToUse, parentMessageContentStr);
|
|
55
|
+
if (memory && ((_b = (_a = response === null || response === void 0 ? void 0 : response.choices) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.message)) {
|
|
56
|
+
const outputStringified = typeof output === 'string' ? output : JSON.stringify(output);
|
|
57
|
+
await (0, io_1.saveToMemory)(memory, messages, response, outputStringified, params.saveToolCallsInChatMemory, originalMessagesLength);
|
|
58
|
+
}
|
|
59
|
+
return outputData;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/execution/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.execute = execute;
|
|
4
|
+
const parameters_1 = require("../../config/parameters");
|
|
5
|
+
const io_1 = require("../memory/io");
|
|
6
|
+
const processor_1 = require("../messages/processor");
|
|
7
|
+
const executor_1 = require("./executor");
|
|
8
|
+
async function execute(i, parentMessageContentStr = '', parentMessageContentObj = {}) {
|
|
9
|
+
const params = (0, parameters_1.extractParameters)(this, i);
|
|
10
|
+
const memory = await (0, io_1.getMemoryFromInput)(this);
|
|
11
|
+
const messages = await (0, processor_1.processMessages)(params.rawMessagesToSend, memory, parentMessageContentStr, parentMessageContentObj, params.loadToolCallsFromChatMemory);
|
|
12
|
+
return await (0, executor_1.executeWithFallback)(this, params, memory, messages, i, parentMessageContentStr, parentMessageContentObj);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=messageOperation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messageOperation.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/execution/messageOperation.ts"],"names":[],"mappings":";;AAUA,0BA+BC;AAvCD,wDAA4D;AAC5D,qCAAkD;AAClD,qDAAwD;AACxD,yCAAiD;AAK1C,KAAK,UAAU,OAAO,CAE5B,CAAS,EACT,0BAAkC,EAAE,EACpC,0BAAkC,EAAE;IAGpC,MAAM,MAAM,GAAG,IAAA,8BAAiB,EAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAG1C,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAkB,EAAC,IAAI,CAAC,CAAC;IAG9C,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAe,EACrC,MAAM,CAAC,iBAAiB,EACxB,MAAM,EACN,uBAAuB,EACvB,uBAAuB,EACvB,MAAM,CAAC,2BAA2B,CAClC,CAAC;IAGF,OAAO,MAAM,IAAA,8BAAmB,EAC/B,IAAI,EACJ,MAAM,EACN,MAAM,EACN,QAAQ,EACR,CAAC,EACD,uBAAuB,EACvB,uBAAuB,CACvB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
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.router = router;
|
|
37
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
38
|
+
const messageOperation = __importStar(require("./messageOperation"));
|
|
39
|
+
const errorHandling_1 = require("../../api/errorHandling");
|
|
40
|
+
function isNodeApiError(error) {
|
|
41
|
+
return error instanceof n8n_workflow_1.NodeApiError || error.name === 'NodeApiError';
|
|
42
|
+
}
|
|
43
|
+
function normalizeError(error) {
|
|
44
|
+
if (error instanceof Error) {
|
|
45
|
+
return error;
|
|
46
|
+
}
|
|
47
|
+
return new Error(String(error));
|
|
48
|
+
}
|
|
49
|
+
function initializeRouter(executeFunctions) {
|
|
50
|
+
return {
|
|
51
|
+
returnData: [],
|
|
52
|
+
items: executeFunctions.getInputData(),
|
|
53
|
+
execute: messageOperation.execute,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
async function executeItem(execute, executeFunctions, itemIndex, parentMessageContentStr = '', parentMessageContentObj = {}) {
|
|
57
|
+
return await execute.call(executeFunctions, itemIndex, parentMessageContentStr, parentMessageContentObj);
|
|
58
|
+
}
|
|
59
|
+
function handleNodeApiError(error, itemIndex) {
|
|
60
|
+
var _a, _b, _c;
|
|
61
|
+
const errorCode = (_c = (_b = (_a = error.cause) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.error) === null || _c === void 0 ? void 0 : _c.code;
|
|
62
|
+
if (errorCode) {
|
|
63
|
+
const customErrorMessage = (0, errorHandling_1.getCustomErrorMessage)(errorCode);
|
|
64
|
+
if (customErrorMessage) {
|
|
65
|
+
error.message = customErrorMessage;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
error.context = {
|
|
69
|
+
itemIndex,
|
|
70
|
+
};
|
|
71
|
+
console.error(`NodeApiError at item ${itemIndex}: ${error.message}`);
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
function handleGenericError(error, executeFunctions, itemIndex) {
|
|
75
|
+
console.error(`Generic error at item ${itemIndex}: ${error.message}`);
|
|
76
|
+
throw new n8n_workflow_1.NodeOperationError(executeFunctions.getNode(), error, {
|
|
77
|
+
itemIndex,
|
|
78
|
+
description: error.description,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function handleError(error, executeFunctions, itemIndex, continueOnFail, returnData) {
|
|
82
|
+
const normalizedError = normalizeError(error);
|
|
83
|
+
if (continueOnFail) {
|
|
84
|
+
returnData.push({
|
|
85
|
+
json: { error: normalizedError.message },
|
|
86
|
+
pairedItem: { item: itemIndex },
|
|
87
|
+
});
|
|
88
|
+
return returnData;
|
|
89
|
+
}
|
|
90
|
+
if (isNodeApiError(normalizedError)) {
|
|
91
|
+
return handleNodeApiError(normalizedError, itemIndex);
|
|
92
|
+
}
|
|
93
|
+
return handleGenericError(normalizedError, executeFunctions, itemIndex);
|
|
94
|
+
}
|
|
95
|
+
async function processItems(config, executeFunctions, parentMessageContentStr = '', parentMessageContentObj = {}) {
|
|
96
|
+
const { returnData, items, execute } = config;
|
|
97
|
+
for (let i = 0; i < items.length; i++) {
|
|
98
|
+
try {
|
|
99
|
+
const responseData = await executeItem(execute, executeFunctions, i, parentMessageContentStr, parentMessageContentObj);
|
|
100
|
+
returnData.push(...responseData);
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
const result = handleError(error, executeFunctions, i, executeFunctions.continueOnFail(), returnData);
|
|
104
|
+
if (result) {
|
|
105
|
+
console.log(`Continuing after error in item ${i} (0-indexed, out of ${items.length} items)`);
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return returnData;
|
|
111
|
+
}
|
|
112
|
+
async function router(parentMessageContentStr = '', parentMessageContentObj = {}) {
|
|
113
|
+
const config = initializeRouter(this);
|
|
114
|
+
const processedData = await processItems(config, this, parentMessageContentStr, parentMessageContentObj);
|
|
115
|
+
return [processedData];
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/execution/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./io"), exports);
|
|
18
|
+
__exportStar(require("./optimizer"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/memory/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,uCAAqB;AACrB,8CAA4B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IExecuteFunctions, IDataObject } from 'n8n-workflow';
|
|
2
|
+
import type { BaseChatMemory } from 'langchain/memory';
|
|
3
|
+
import type { ChatCompletion } from '../../api/types';
|
|
4
|
+
export declare function getMemoryFromInput(executeFunctions: IExecuteFunctions): Promise<BaseChatMemory | undefined>;
|
|
5
|
+
export declare function saveToMemory(memory: BaseChatMemory | undefined, messages: IDataObject[], response: ChatCompletion, outputStringified: string, saveToolCallsInChatMemory: boolean, originalMessagesLength?: number): Promise<void>;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMemoryFromInput = getMemoryFromInput;
|
|
4
|
+
exports.saveToMemory = saveToMemory;
|
|
5
|
+
const messages_1 = require("@langchain/core/messages");
|
|
6
|
+
async function getMemoryFromInput(executeFunctions) {
|
|
7
|
+
let memoryInput;
|
|
8
|
+
try {
|
|
9
|
+
memoryInput = (await executeFunctions.getInputConnectionData('ai_memory', 0, undefined));
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
memoryInput = undefined;
|
|
13
|
+
}
|
|
14
|
+
return Array.isArray(memoryInput) ? memoryInput[0] : memoryInput;
|
|
15
|
+
}
|
|
16
|
+
async function saveToMemory(memory, messages, response, outputStringified, saveToolCallsInChatMemory, originalMessagesLength = 0) {
|
|
17
|
+
var _a, _b, _c, _d, _e;
|
|
18
|
+
if (!memory || !((_b = (_a = response === null || response === void 0 ? void 0 : response.choices) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.message)) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (!saveToolCallsInChatMemory) {
|
|
22
|
+
const lastUserMessageContent = ((_c = [...messages].reverse().find((msg) => msg.role === 'user')) === null || _c === void 0 ? void 0 : _c.content) || '';
|
|
23
|
+
let assistantContent = outputStringified;
|
|
24
|
+
if (!assistantContent || assistantContent === 'null' || assistantContent === 'undefined') {
|
|
25
|
+
assistantContent = response.choices[0].message.content || '';
|
|
26
|
+
if (!assistantContent && ((_d = response.choices[0].message.tool_calls) === null || _d === void 0 ? void 0 : _d.length)) {
|
|
27
|
+
assistantContent =
|
|
28
|
+
'Used tools: ' +
|
|
29
|
+
response.choices[0].message.tool_calls.map((tc) => tc.function.name).join(', ');
|
|
30
|
+
}
|
|
31
|
+
else if (!assistantContent) {
|
|
32
|
+
assistantContent = '[No response content available]';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (typeof assistantContent !== 'string') {
|
|
36
|
+
assistantContent = JSON.stringify(assistantContent);
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
await memory.saveContext({ input: lastUserMessageContent }, { output: assistantContent });
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
console.error('Error saving messages to memory:', error);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
try {
|
|
47
|
+
const lastUserMessage = [...messages].reverse().find((msg) => msg.role === 'user');
|
|
48
|
+
if (lastUserMessage === null || lastUserMessage === void 0 ? void 0 : lastUserMessage.content) {
|
|
49
|
+
const humanMessage = new messages_1.HumanMessage(lastUserMessage.content);
|
|
50
|
+
await memory.chatHistory.addMessage(humanMessage);
|
|
51
|
+
}
|
|
52
|
+
const conversationMessages = [];
|
|
53
|
+
for (let i = originalMessagesLength; i < messages.length; i++) {
|
|
54
|
+
const msg = messages[i];
|
|
55
|
+
if (msg.role === 'assistant' || msg.role === 'tool') {
|
|
56
|
+
conversationMessages.push({
|
|
57
|
+
role: msg.role,
|
|
58
|
+
content: msg.content || '',
|
|
59
|
+
...(msg.tool_calls && { tool_calls: msg.tool_calls }),
|
|
60
|
+
...(msg.tool_call_id && { tool_call_id: msg.tool_call_id }),
|
|
61
|
+
...(msg.refusal && { refusal: msg.refusal }),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
let finalContent = outputStringified;
|
|
66
|
+
if (!finalContent || finalContent === 'null' || finalContent === 'undefined') {
|
|
67
|
+
finalContent = response.choices[0].message.content || '';
|
|
68
|
+
if (!finalContent && ((_e = response.choices[0].message.tool_calls) === null || _e === void 0 ? void 0 : _e.length)) {
|
|
69
|
+
finalContent =
|
|
70
|
+
'Used tools: ' +
|
|
71
|
+
response.choices[0].message.tool_calls.map((tc) => tc.function.name).join(', ');
|
|
72
|
+
}
|
|
73
|
+
else if (!finalContent) {
|
|
74
|
+
finalContent = '[No response content available]';
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (typeof finalContent !== 'string') {
|
|
78
|
+
finalContent = JSON.stringify(finalContent);
|
|
79
|
+
}
|
|
80
|
+
const aiMessage = new messages_1.AIMessage({
|
|
81
|
+
content: finalContent,
|
|
82
|
+
tool_calls: conversationMessages,
|
|
83
|
+
additional_kwargs: {},
|
|
84
|
+
response_metadata: {},
|
|
85
|
+
});
|
|
86
|
+
await memory.chatHistory.addMessage(aiMessage);
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
console.error('Error saving messages with tool calls to memory:', error);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=io.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"io.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/memory/io.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLastKMessages = getLastKMessages;
|
|
4
|
+
async function getLastKMessages(memory, k) {
|
|
5
|
+
if (!(memory === null || memory === void 0 ? void 0 : memory.chatHistory)) {
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
if (k === 0) {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
if (k === -1) {
|
|
12
|
+
return await memory.chatHistory.getMessages();
|
|
13
|
+
}
|
|
14
|
+
if (k > 0) {
|
|
15
|
+
const chatHistory = memory.chatHistory;
|
|
16
|
+
if (typeof chatHistory.getMessagesSlice === 'function') {
|
|
17
|
+
return await chatHistory.getMessagesSlice(-k);
|
|
18
|
+
}
|
|
19
|
+
else if (typeof chatHistory.getLastMessages === 'function') {
|
|
20
|
+
return await chatHistory.getLastMessages(k);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
const allMessages = await memory.chatHistory.getMessages();
|
|
24
|
+
const validK = Math.min(Math.max(k, 1), allMessages.length);
|
|
25
|
+
return allMessages.slice(-validK);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return [];
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=optimizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optimizer.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/memory/optimizer.ts"],"names":[],"mappings":";;AAOA,4CAwCC;AAxCM,KAAK,UAAU,gBAAgB,CAAC,MAAsB,EAAE,CAAS;IACvE,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAA,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACX,CAAC;IAGD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACX,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAEd,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IAC/C,CAAC;IAGD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAGX,MAAM,WAAW,GAAG,MAAM,CAAC,WAAkB,CAAC;QAG9C,IAAI,OAAO,WAAW,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;YAExD,OAAO,MAAM,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,OAAO,WAAW,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YAE9D,OAAO,MAAM,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YAGP,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAG3D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5D,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAED,OAAO,EAAE,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/memory/properties.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAsB,EAGlD,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unpackChatHistoryAndMemory = unpackChatHistoryAndMemory;
|
|
4
|
+
const optimizer_1 = require("../memory/optimizer");
|
|
5
|
+
const converter_1 = require("./converter");
|
|
6
|
+
async function unpackChatHistoryAndMemory(rawMessagesToSend, memory, loadToolCallsFromChatMemory = true) {
|
|
7
|
+
const processedMessages = [];
|
|
8
|
+
for (const rawMessage of rawMessagesToSend) {
|
|
9
|
+
if (rawMessage.role !== 'chatHistoryRole' && rawMessage.role !== 'chatMemoryRole') {
|
|
10
|
+
processedMessages.push(rawMessage);
|
|
11
|
+
}
|
|
12
|
+
else if (rawMessage.role === 'chatHistoryRole') {
|
|
13
|
+
try {
|
|
14
|
+
let chatHistory;
|
|
15
|
+
if (typeof rawMessage.chatHistoryJson === 'string') {
|
|
16
|
+
chatHistory = JSON.parse(rawMessage.chatHistoryJson || '[]');
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
chatHistory = rawMessage.chatHistoryJson;
|
|
20
|
+
}
|
|
21
|
+
if (Array.isArray(chatHistory)) {
|
|
22
|
+
processedMessages.push(...chatHistory);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
processedMessages.push({
|
|
26
|
+
role: 'user',
|
|
27
|
+
content: JSON.stringify(rawMessage.chatHistoryJson),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
processedMessages.push({
|
|
33
|
+
role: 'user',
|
|
34
|
+
content: JSON.stringify(rawMessage.chatHistoryJson),
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else if (rawMessage.role === 'chatMemoryRole' && memory && memory.chatHistory) {
|
|
39
|
+
try {
|
|
40
|
+
let k = memory.k;
|
|
41
|
+
if (k === 0 || !memory.k) {
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
if (k > 0 && k < 1) {
|
|
45
|
+
k = 1;
|
|
46
|
+
}
|
|
47
|
+
const rawMemoryMessages = await (0, optimizer_1.getLastKMessages)(memory, k);
|
|
48
|
+
if (rawMemoryMessages.length === 0) {
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const memoryMessages = (0, converter_1.convertMessages)(rawMemoryMessages, loadToolCallsFromChatMemory);
|
|
52
|
+
processedMessages.push(...memoryMessages);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
console.error('Error retrieving messages from memory:', error);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return (0, converter_1.expandToolCallsInMessages)(processedMessages, loadToolCallsFromChatMemory);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=chatHistory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatHistory.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/messages/chatHistory.ts"],"names":[],"mappings":";;AAYA,gEA2EC;AArFD,mDAAuD;AACvD,2CAAyE;AASlE,KAAK,UAAU,0BAA0B,CAC/C,iBAA+B,EAC/B,MAAY,EACZ,8BAAuC,IAAI;IAE3C,MAAM,iBAAiB,GAAc,EAAE,CAAC;IAExC,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;QAC5C,IAAI,UAAU,CAAC,IAAI,KAAK,iBAAiB,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAEnF,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAClD,IAAI,CAAC;gBAEJ,IAAI,WAAW,CAAC;gBAChB,IAAI,OAAO,UAAU,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;oBACpD,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACP,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC;gBAC1C,CAAC;gBAED,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;oBAEhC,iBAAiB,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBAEP,iBAAiB,CAAC,IAAI,CAAC;wBACtB,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC;qBACnD,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAErB,iBAAiB,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC;iBACnD,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACjF,IAAI,CAAC;gBAEJ,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAEjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAG3B,CAAC;qBAAM,CAAC;oBAEP,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBACpB,CAAC,GAAG,CAAC,CAAC;oBACP,CAAC;oBAGD,MAAM,iBAAiB,GAAkB,MAAM,IAAA,4BAAgB,EAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBAG3E,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAErC,CAAC;yBAAM,CAAC;wBAEP,MAAM,cAAc,GAAc,IAAA,2BAAe,EAChD,iBAAiB,EACjB,2BAA2B,CAC3B,CAAC;wBACF,iBAAiB,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;oBAC3C,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;YAChE,CAAC;QACF,CAAC;IACF,CAAC;IAGD,OAAO,IAAA,qCAAyB,EAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Message } from './types';
|
|
2
|
+
import { BaseMessage } from '@langchain/core/dist/messages/base';
|
|
3
|
+
export declare function convertMessages(messages: BaseMessage[], loadToolCalls?: boolean): Message[];
|
|
4
|
+
export declare function expandToolCallsInMessages(messages: Message[], loadToolCalls?: boolean): Message[];
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertMessages = convertMessages;
|
|
4
|
+
exports.expandToolCallsInMessages = expandToolCallsInMessages;
|
|
5
|
+
function convertMessages(messages, loadToolCalls = true) {
|
|
6
|
+
const result = [];
|
|
7
|
+
for (const message of messages) {
|
|
8
|
+
const role = message.constructor.name === 'AIMessage' ? 'assistant' : 'user';
|
|
9
|
+
const content = typeof message.content === 'string' ? message.content : JSON.stringify(message.content);
|
|
10
|
+
if (role === 'assistant' &&
|
|
11
|
+
message.tool_calls &&
|
|
12
|
+
Array.isArray(message.tool_calls) &&
|
|
13
|
+
loadToolCalls) {
|
|
14
|
+
const toolCalls = message.tool_calls;
|
|
15
|
+
if (toolCalls.length > 0 && toolCalls[0].role) {
|
|
16
|
+
result.push(...toolCalls);
|
|
17
|
+
result.push({
|
|
18
|
+
role: 'assistant',
|
|
19
|
+
content: content,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
result.push({
|
|
24
|
+
role: role,
|
|
25
|
+
content: content,
|
|
26
|
+
tool_calls: toolCalls,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else if (role === 'assistant' &&
|
|
31
|
+
message.tool_calls &&
|
|
32
|
+
Array.isArray(message.tool_calls) &&
|
|
33
|
+
!loadToolCalls) {
|
|
34
|
+
result.push({
|
|
35
|
+
role: role,
|
|
36
|
+
content: content,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
result.push({
|
|
41
|
+
role: role,
|
|
42
|
+
content: content,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
function expandToolCallsInMessages(messages, loadToolCalls = true) {
|
|
49
|
+
var _a;
|
|
50
|
+
const result = [];
|
|
51
|
+
for (const message of messages) {
|
|
52
|
+
if (message.role !== 'assistant' || !((_a = message.tool_calls) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
53
|
+
result.push(message);
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (!loadToolCalls) {
|
|
57
|
+
result.push({
|
|
58
|
+
role: 'assistant',
|
|
59
|
+
content: message.content,
|
|
60
|
+
});
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
const firstToolCall = message.tool_calls[0];
|
|
64
|
+
if (!firstToolCall.role) {
|
|
65
|
+
result.push(message);
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
result.push(...message.tool_calls);
|
|
69
|
+
result.push({
|
|
70
|
+
role: 'assistant',
|
|
71
|
+
content: message.content,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/messages/converter.ts"],"names":[],"mappings":";;AAeA,0CAwDC;AASD,8DAyCC;AA1GD,SAAgB,eAAe,CAAC,QAAuB,EAAE,gBAAyB,IAAI;IACrF,MAAM,MAAM,GAAc,EAAE,CAAC;IAE7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7E,MAAM,OAAO,GACZ,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAGzF,IACC,IAAI,KAAK,WAAW;YACnB,OAAe,CAAC,UAAU;YAC3B,KAAK,CAAC,OAAO,CAAE,OAAe,CAAC,UAAU,CAAC;YAC1C,aAAa,EACZ,CAAC;YACF,MAAM,SAAS,GAAI,OAAe,CAAC,UAAU,CAAC;YAG9C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAE/C,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;gBAG1B,MAAM,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,OAAO;iBAChB,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBAEP,MAAM,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,SAAS;iBACrB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;aAAM,IACN,IAAI,KAAK,WAAW;YACnB,OAAe,CAAC,UAAU;YAC3B,KAAK,CAAC,OAAO,CAAE,OAAe,CAAC,UAAU,CAAC;YAC1C,CAAC,aAAa,EACb,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,OAAO;aAChB,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YAEP,MAAM,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,OAAO;aAChB,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AASD,SAAgB,yBAAyB,CACxC,QAAmB,EACnB,gBAAyB,IAAI;;IAE7B,MAAM,MAAM,GAAc,EAAE,CAAC;IAE7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAEhC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,MAAM,CAAA,EAAE,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,SAAS;QACV,CAAC;QAGD,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,OAAO,CAAC,OAAO;aACxB,CAAC,CAAC;YACH,SAAS;QACV,CAAC;QAGD,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAQ,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAEzB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,SAAS;QACV,CAAC;QAGD,MAAM,CAAC,IAAI,CAAC,GAAI,OAAO,CAAC,UAA+B,CAAC,CAAC;QAGzD,MAAM,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO,CAAC,OAAO;SACxB,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLastKMessages = getLastKMessages;
|
|
4
|
+
async function getLastKMessages(memory, k) {
|
|
5
|
+
if (!(memory === null || memory === void 0 ? void 0 : memory.chatHistory)) {
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
if (k === 0) {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
if (k === -1) {
|
|
12
|
+
return await memory.chatHistory.getMessages();
|
|
13
|
+
}
|
|
14
|
+
if (k > 0) {
|
|
15
|
+
const chatHistory = memory.chatHistory;
|
|
16
|
+
if (typeof chatHistory.getMessagesSlice === 'function') {
|
|
17
|
+
return await chatHistory.getMessagesSlice(-k);
|
|
18
|
+
}
|
|
19
|
+
else if (typeof chatHistory.getLastMessages === 'function') {
|
|
20
|
+
return await chatHistory.getLastMessages(k);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
const allMessages = await memory.chatHistory.getMessages();
|
|
24
|
+
const validK = Math.min(Math.max(k, 1), allMessages.length);
|
|
25
|
+
return allMessages.slice(-validK);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return [];
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=memoryOptimizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoryOptimizer.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/messages/memoryOptimizer.ts"],"names":[],"mappings":";;AAOA,4CAwCC;AAxCM,KAAK,UAAU,gBAAgB,CAAC,MAAsB,EAAE,CAAS;IACvE,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAA,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACX,CAAC;IAGD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACX,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAEd,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IAC/C,CAAC;IAGD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAGX,MAAM,WAAW,GAAG,MAAM,CAAC,WAAkB,CAAC;QAG9C,IAAI,OAAO,WAAW,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;YAExD,OAAO,MAAM,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,OAAO,WAAW,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YAE9D,OAAO,MAAM,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YAGP,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAG3D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5D,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAED,OAAO,EAAE,CAAC;AACX,CAAC"}
|