n8n-nodes-simple 2.2.10 → 2.2.12
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/nodes/shared/core/messages/converter.js +32 -5
- package/dist/nodes/shared/core/messages/converter.js.map +1 -1
- package/dist/nodes/shared/core/messages/processor.js +33 -0
- package/dist/nodes/shared/core/messages/processor.js.map +1 -1
- package/dist/nodes/shared/core/request/body.js +21 -0
- package/dist/nodes/shared/core/request/body.js.map +1 -1
- package/dist/nodes/shared/core/tools/executor.js +35 -4
- package/dist/nodes/shared/core/tools/executor.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.convertMessages = convertMessages;
|
|
4
4
|
exports.expandToolCallsInMessages = expandToolCallsInMessages;
|
|
5
5
|
exports.sanitizeMessage = sanitizeMessage;
|
|
6
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
6
7
|
function convertMessages(messages, loadToolCalls = true) {
|
|
7
8
|
const result = [];
|
|
8
9
|
for (const message of messages) {
|
|
@@ -34,9 +35,10 @@ function expandToolCallsInMessages(messages, loadToolCalls = true) {
|
|
|
34
35
|
const result = [];
|
|
35
36
|
for (const message of messages) {
|
|
36
37
|
if (message.role !== 'assistant' || !((_a = message.tool_calls) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
const messageCopy = { ...message };
|
|
39
|
+
if (messageCopy.tool_calls)
|
|
40
|
+
delete messageCopy.tool_calls;
|
|
41
|
+
result.push(messageCopy);
|
|
40
42
|
continue;
|
|
41
43
|
}
|
|
42
44
|
if (!loadToolCalls) {
|
|
@@ -55,10 +57,35 @@ function expandToolCallsInMessages(messages, loadToolCalls = true) {
|
|
|
55
57
|
return result;
|
|
56
58
|
}
|
|
57
59
|
function sanitizeMessage(message) {
|
|
60
|
+
const hasToolCalls = message.tool_calls && Array.isArray(message.tool_calls);
|
|
61
|
+
const isEmptyToolCalls = hasToolCalls && message.tool_calls.length === 0;
|
|
62
|
+
n8n_workflow_1.LoggerProxy.debug('Sanitizing message', {
|
|
63
|
+
messageRole: message.role,
|
|
64
|
+
hasToolCalls,
|
|
65
|
+
toolCallsLength: hasToolCalls ? message.tool_calls.length : 'N/A',
|
|
66
|
+
isEmptyToolCalls,
|
|
67
|
+
messageId: message.id || 'no-id'
|
|
68
|
+
});
|
|
58
69
|
const sanitized = { ...message };
|
|
59
|
-
if (sanitized.tool_calls && Array.isArray(sanitized.tool_calls)
|
|
60
|
-
|
|
70
|
+
if (sanitized.tool_calls && Array.isArray(sanitized.tool_calls)) {
|
|
71
|
+
sanitized.tool_calls = [...sanitized.tool_calls];
|
|
72
|
+
if (sanitized.tool_calls.length === 0) {
|
|
73
|
+
n8n_workflow_1.LoggerProxy.debug('Removing empty tool_calls array during sanitization', {
|
|
74
|
+
messageRole: sanitized.role,
|
|
75
|
+
originalToolCallsLength: message.tool_calls.length,
|
|
76
|
+
messageId: message.id || 'no-id'
|
|
77
|
+
});
|
|
78
|
+
delete sanitized.tool_calls;
|
|
79
|
+
}
|
|
61
80
|
}
|
|
81
|
+
const sanitizedHasToolCalls = sanitized.tool_calls && Array.isArray(sanitized.tool_calls);
|
|
82
|
+
n8n_workflow_1.LoggerProxy.debug('Message sanitization complete', {
|
|
83
|
+
messageRole: sanitized.role,
|
|
84
|
+
originalHadToolCalls: hasToolCalls,
|
|
85
|
+
sanitizedHasToolCalls,
|
|
86
|
+
removedEmptyToolCalls: hasToolCalls && !sanitizedHasToolCalls,
|
|
87
|
+
messageId: message.id || 'no-id'
|
|
88
|
+
});
|
|
62
89
|
return sanitized;
|
|
63
90
|
}
|
|
64
91
|
//# sourceMappingURL=converter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/messages/converter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/messages/converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.processMessages = processMessages;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
4
5
|
const chatHistory_1 = require("./chatHistory");
|
|
5
6
|
const converter_1 = require("./converter");
|
|
6
7
|
async function processMessages(rawMessagesToSend, memory, parentMessageContentStr, parentMessageContentObj, loadToolCallsFromChatMemory = true) {
|
|
8
|
+
n8n_workflow_1.LoggerProxy.debug('Message processor: Starting with raw messages', {
|
|
9
|
+
rawMessageCount: rawMessagesToSend.length,
|
|
10
|
+
rawMessagesWithToolCalls: rawMessagesToSend.filter(m => m.tool_calls).length,
|
|
11
|
+
rawMessagesWithEmptyToolCalls: rawMessagesToSend.filter(m => m.tool_calls && Array.isArray(m.tool_calls) && m.tool_calls.length === 0).length,
|
|
12
|
+
loadToolCallsFromChatMemory,
|
|
13
|
+
});
|
|
7
14
|
let messages = (await (0, chatHistory_1.unpackChatHistoryAndMemory)(rawMessagesToSend, memory, loadToolCallsFromChatMemory));
|
|
15
|
+
n8n_workflow_1.LoggerProxy.debug('Message processor: After unpacking chat history and memory', {
|
|
16
|
+
messageCount: messages.length,
|
|
17
|
+
messagesWithToolCalls: messages.filter(m => m.tool_calls).length,
|
|
18
|
+
messagesWithEmptyToolCalls: messages.filter(m => m.tool_calls && Array.isArray(m.tool_calls) && m.tool_calls.length === 0).length,
|
|
19
|
+
});
|
|
8
20
|
messages = messages
|
|
9
21
|
.map((item) => ({
|
|
10
22
|
...item,
|
|
@@ -16,13 +28,34 @@ async function processMessages(rawMessagesToSend, memory, parentMessageContentSt
|
|
|
16
28
|
(item.role === 'assistant' && ((_a = item.tool_calls) === null || _a === void 0 ? void 0 : _a.length) > 0) ||
|
|
17
29
|
item.role === 'tool';
|
|
18
30
|
});
|
|
31
|
+
n8n_workflow_1.LoggerProxy.debug('Message processor: After filtering and trimming', {
|
|
32
|
+
messageCount: messages.length,
|
|
33
|
+
messagesWithToolCalls: messages.filter(m => m.tool_calls).length,
|
|
34
|
+
messagesWithEmptyToolCalls: messages.filter(m => m.tool_calls && Array.isArray(m.tool_calls) && m.tool_calls.length === 0).length,
|
|
35
|
+
});
|
|
19
36
|
if (parentMessageContentStr !== '') {
|
|
20
37
|
messages.push({ role: 'user', content: parentMessageContentStr });
|
|
21
38
|
}
|
|
22
39
|
else if (Object.keys(parentMessageContentObj).length !== 0) {
|
|
23
40
|
messages.push({ role: 'user', content: JSON.stringify(parentMessageContentObj) });
|
|
24
41
|
}
|
|
42
|
+
n8n_workflow_1.LoggerProxy.debug('Message processor: Before final sanitization', {
|
|
43
|
+
messageCount: messages.length,
|
|
44
|
+
messagesWithToolCalls: messages.filter(m => m.tool_calls).length,
|
|
45
|
+
messagesWithEmptyToolCalls: messages.filter(m => m.tool_calls && Array.isArray(m.tool_calls) && m.tool_calls.length === 0).length,
|
|
46
|
+
});
|
|
25
47
|
messages = messages.map(converter_1.sanitizeMessage);
|
|
48
|
+
n8n_workflow_1.LoggerProxy.debug('Message processor: After final sanitization - FINAL OUTPUT', {
|
|
49
|
+
messageCount: messages.length,
|
|
50
|
+
messagesWithToolCalls: messages.filter(m => m.tool_calls).length,
|
|
51
|
+
messagesWithEmptyToolCalls: messages.filter(m => m.tool_calls && Array.isArray(m.tool_calls) && m.tool_calls.length === 0).length,
|
|
52
|
+
messageStructures: messages.map((m, i) => ({
|
|
53
|
+
index: i,
|
|
54
|
+
role: m.role,
|
|
55
|
+
hasToolCalls: !!m.tool_calls,
|
|
56
|
+
toolCallsLength: Array.isArray(m.tool_calls) ? m.tool_calls.length : 'N/A'
|
|
57
|
+
}))
|
|
58
|
+
});
|
|
26
59
|
return messages;
|
|
27
60
|
}
|
|
28
61
|
//# sourceMappingURL=processor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/messages/processor.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/messages/processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.prepareRequestBody = prepareRequestBody;
|
|
7
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
7
8
|
const omit_1 = __importDefault(require("lodash/omit"));
|
|
8
9
|
const types_1 = require("../messages/types");
|
|
9
10
|
const converter_1 = require("../messages/converter");
|
|
@@ -39,7 +40,27 @@ function prepareRequestBody(model, messages, tools, tool_choice, response_format
|
|
|
39
40
|
if (!Array.isArray(messages) || !messages.every(types_1.isValidMessage)) {
|
|
40
41
|
throw new Error("Invalid or missing 'messages' in the request body.");
|
|
41
42
|
}
|
|
43
|
+
n8n_workflow_1.LoggerProxy.debug('Request body preparation: Before sanitization', {
|
|
44
|
+
messageCount: messages.length,
|
|
45
|
+
messagesWithToolCalls: messages.filter(m => m.tool_calls).length,
|
|
46
|
+
messagesWithEmptyToolCalls: messages.filter(m => m.tool_calls && Array.isArray(m.tool_calls) && m.tool_calls.length === 0).length,
|
|
47
|
+
model,
|
|
48
|
+
toolsCount: tools.length
|
|
49
|
+
});
|
|
42
50
|
body.messages = messages.map(converter_1.sanitizeMessage);
|
|
51
|
+
n8n_workflow_1.LoggerProxy.debug('Request body preparation: After sanitization - FINAL REQUEST BODY', {
|
|
52
|
+
messageCount: body.messages.length,
|
|
53
|
+
messagesWithToolCalls: body.messages.filter((m) => m.tool_calls).length,
|
|
54
|
+
messagesWithEmptyToolCalls: body.messages.filter((m) => m.tool_calls && Array.isArray(m.tool_calls) && m.tool_calls.length === 0).length,
|
|
55
|
+
model,
|
|
56
|
+
toolsCount: tools.length,
|
|
57
|
+
messageStructures: body.messages.map((m, i) => ({
|
|
58
|
+
index: i,
|
|
59
|
+
role: m.role,
|
|
60
|
+
hasToolCalls: !!m.tool_calls,
|
|
61
|
+
toolCallsLength: Array.isArray(m.tool_calls) ? m.tool_calls.length : 'N/A'
|
|
62
|
+
}))
|
|
63
|
+
});
|
|
43
64
|
return body;
|
|
44
65
|
}
|
|
45
66
|
//# sourceMappingURL=body.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/request/body.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/request/body.ts"],"names":[],"mappings":";;;;;AASA,gDAsEC;AA9ED,+CAAqD;AACrD,uDAAgC;AAChC,6CAAmD;AACnD,qDAAwD;AAKxD,SAAgB,kBAAkB,CACjC,KAAa,EACb,QAAuB,EACvB,KAAY,EACZ,WAA+B,EAC/B,eAAwC,EACxC,OAAoB,EACpB,gBAAsC;IAEtC,IAAI,eAAe,GAAgB,EAAE,CAAC;IACtC,IAAI,gBAAgB,EAAE,CAAC;QACtB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;YACrE,IAAI,CAAC;gBACJ,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACrD,CAAC;QACF,CAAC;aAAM,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YACjD,eAAe,GAAG,gBAAgB,CAAC;QACpC,CAAC;IACF,CAAC;IAGD,MAAM,YAAY,GAAG,IAAA,cAAK,EAAC,OAAO,EAAE;QACnC,kBAAkB;QAClB,iBAAiB;QACjB,oBAAoB;KACpB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAgB;QACzB,KAAK;QACL,QAAQ;QACR,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,WAAW;QACX,eAAe;QACf,GAAG,YAAY;QACf,GAAG,eAAe;KAClB,CAAC;IAGF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,sBAAc,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACvE,CAAC;IAED,0BAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE;QAC7D,YAAY,EAAE,QAAQ,CAAC,MAAM;QAC7B,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAE,CAAS,CAAC,UAAU,CAAC,CAAC,MAAM;QACzE,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAE,CAAS,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAE,CAAS,CAAC,UAAU,CAAC,IAAK,CAAS,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,MAAM;QAC5J,KAAK;QACL,UAAU,EAAE,KAAK,CAAC,MAAM;KACxB,CAAC,CAAC;IAGH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,2BAAe,CAAC,CAAC;IAE9C,0BAAM,CAAC,KAAK,CAAC,mEAAmE,EAAE;QACjF,YAAY,EAAG,IAAI,CAAC,QAAkB,CAAC,MAAM;QAC7C,qBAAqB,EAAG,IAAI,CAAC,QAAkB,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM;QACvF,0BAA0B,EAAG,IAAI,CAAC,QAAkB,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,MAAM;QACxJ,KAAK;QACL,UAAU,EAAE,KAAK,CAAC,MAAM;QACxB,iBAAiB,EAAG,IAAI,CAAC,QAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1D,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;YAC5B,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;SAC1E,CAAC,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -27,21 +27,34 @@ async function processToolCalls(executeFunctions, body, messages, invokableTools
|
|
|
27
27
|
if (shouldMakeFinalCall) {
|
|
28
28
|
let finalBody;
|
|
29
29
|
if (structuredOutputTool && !output) {
|
|
30
|
+
const sanitizedMessages = messages.map(converter_1.sanitizeMessage);
|
|
31
|
+
n8n_workflow_1.LoggerProxy.debug('Tool executor: Preparing final call with structured output tool', {
|
|
32
|
+
messageCount: sanitizedMessages.length,
|
|
33
|
+
messagesWithToolCalls: sanitizedMessages.filter((m) => m.tool_calls).length,
|
|
34
|
+
messagesWithEmptyToolCalls: sanitizedMessages.filter((m) => m.tool_calls && Array.isArray(m.tool_calls) && m.tool_calls.length === 0).length,
|
|
35
|
+
});
|
|
30
36
|
finalBody = {
|
|
31
37
|
...body,
|
|
32
|
-
messages:
|
|
38
|
+
messages: sanitizedMessages,
|
|
33
39
|
tools: [structuredOutputTool],
|
|
34
40
|
tool_choice: 'required',
|
|
35
41
|
};
|
|
36
42
|
}
|
|
37
43
|
else {
|
|
44
|
+
const sanitizedMessages = messages.map(converter_1.sanitizeMessage);
|
|
45
|
+
n8n_workflow_1.LoggerProxy.debug('Tool executor: Preparing final call with no tools', {
|
|
46
|
+
messageCount: sanitizedMessages.length,
|
|
47
|
+
messagesWithToolCalls: sanitizedMessages.filter((m) => m.tool_calls).length,
|
|
48
|
+
messagesWithEmptyToolCalls: sanitizedMessages.filter((m) => m.tool_calls && Array.isArray(m.tool_calls) && m.tool_calls.length === 0).length,
|
|
49
|
+
});
|
|
38
50
|
finalBody = {
|
|
39
51
|
...body,
|
|
40
|
-
messages:
|
|
52
|
+
messages: sanitizedMessages,
|
|
41
53
|
tools: [],
|
|
42
54
|
tool_choice: undefined,
|
|
43
55
|
};
|
|
44
56
|
}
|
|
57
|
+
n8n_workflow_1.LoggerProxy.debug('Tool executor: Making final API call');
|
|
45
58
|
response = (await openAiApiRequest_1.openAiApiRequest.call(executeFunctions, 'POST', `/chat/completions`, {
|
|
46
59
|
body: finalBody,
|
|
47
60
|
}));
|
|
@@ -99,7 +112,17 @@ async function processToolCalls(executeFunctions, body, messages, invokableTools
|
|
|
99
112
|
break;
|
|
100
113
|
}
|
|
101
114
|
if (toolCalls.indexOf(toolCall) === 0) {
|
|
102
|
-
|
|
115
|
+
const assistantMessage = response.choices[0].message;
|
|
116
|
+
const sanitizedAssistantMessage = (0, converter_1.sanitizeMessage)(assistantMessage);
|
|
117
|
+
n8n_workflow_1.LoggerProxy.debug('Tool executor: Adding assistant message to chat history', {
|
|
118
|
+
originalHasToolCalls: !!assistantMessage.tool_calls,
|
|
119
|
+
originalToolCallsLength: Array.isArray(assistantMessage.tool_calls) ? assistantMessage.tool_calls.length : 'N/A',
|
|
120
|
+
sanitizedHasToolCalls: !!sanitizedAssistantMessage.tool_calls,
|
|
121
|
+
sanitizedToolCallsLength: Array.isArray(sanitizedAssistantMessage.tool_calls) ? sanitizedAssistantMessage.tool_calls.length : 'N/A',
|
|
122
|
+
toolCallIndex: toolCalls.indexOf(toolCall),
|
|
123
|
+
currentIteration
|
|
124
|
+
});
|
|
125
|
+
messages.push(sanitizedAssistantMessage);
|
|
103
126
|
}
|
|
104
127
|
messages.push({
|
|
105
128
|
tool_call_id: toolCallId,
|
|
@@ -110,10 +133,18 @@ async function processToolCalls(executeFunctions, body, messages, invokableTools
|
|
|
110
133
|
if (output) {
|
|
111
134
|
break;
|
|
112
135
|
}
|
|
136
|
+
const sanitizedMessages = messages.map(converter_1.sanitizeMessage);
|
|
137
|
+
n8n_workflow_1.LoggerProxy.debug('Tool executor: Preparing next iteration call', {
|
|
138
|
+
iteration: currentIteration,
|
|
139
|
+
messageCount: sanitizedMessages.length,
|
|
140
|
+
messagesWithToolCalls: sanitizedMessages.filter((m) => m.tool_calls).length,
|
|
141
|
+
messagesWithEmptyToolCalls: sanitizedMessages.filter((m) => m.tool_calls && Array.isArray(m.tool_calls) && m.tool_calls.length === 0).length,
|
|
142
|
+
});
|
|
113
143
|
const nextIterationBody = {
|
|
114
144
|
...body,
|
|
115
|
-
messages:
|
|
145
|
+
messages: sanitizedMessages,
|
|
116
146
|
};
|
|
147
|
+
n8n_workflow_1.LoggerProxy.debug('Tool executor: Making next iteration API call', { iteration: currentIteration });
|
|
117
148
|
response = (await openAiApiRequest_1.openAiApiRequest.call(executeFunctions, 'POST', `/chat/completions`, {
|
|
118
149
|
body: nextIterationBody,
|
|
119
150
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/tools/executor.ts"],"names":[],"mappings":";;AASA,
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/tools/executor.ts"],"names":[],"mappings":"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"}
|