@n8n/instance-ai 1.26.3 → 1.27.1
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/agent/communication-style.prompt.d.ts +2 -0
- package/dist/agent/communication-style.prompt.js +73 -0
- package/dist/agent/communication-style.prompt.js.map +1 -0
- package/dist/agent/instance-agent.js +1 -2
- package/dist/agent/instance-agent.js.map +1 -1
- package/dist/agent/shared-prompts.d.ts +1 -1
- package/dist/agent/shared-prompts.js +1 -1
- package/dist/agent/shared-prompts.js.map +1 -1
- package/dist/agent/sub-agent-debriefing.d.ts +10 -0
- package/dist/agent/sub-agent-factory.d.ts +1 -1
- package/dist/agent/sub-agent-factory.js +3 -0
- package/dist/agent/sub-agent-factory.js.map +1 -1
- package/dist/agent/system-prompt.d.ts +3 -3
- package/dist/agent/system-prompt.js +19 -28
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/debug/run-debug-buffer.js +38 -1
- package/dist/debug/run-debug-buffer.js.map +1 -1
- package/dist/debug/sanitize-debug-snapshot.js +10 -7
- package/dist/debug/sanitize-debug-snapshot.js.map +1 -1
- package/dist/errors/index.d.ts +4 -0
- package/dist/errors/index.js +12 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +14 -6
- package/dist/index.js +17 -10
- package/dist/index.js.map +1 -1
- package/dist/prompts/prompt-profiles.d.ts +1 -0
- package/dist/prompts/prompt-profiles.js +11 -1
- package/dist/prompts/prompt-profiles.js.map +1 -1
- package/dist/runtime/instance-context-state.d.ts +96 -0
- package/dist/runtime/instance-context-state.js +12 -0
- package/dist/runtime/instance-context-state.js.map +1 -0
- package/dist/runtime/run-state-registry.d.ts +5 -0
- package/dist/runtime/run-state-registry.js +12 -0
- package/dist/runtime/run-state-registry.js.map +1 -1
- package/dist/stream/instance-context-reach.d.ts +4 -0
- package/dist/stream/instance-context-reach.js +49 -0
- package/dist/stream/instance-context-reach.js.map +1 -0
- package/dist/stream/work-summary-accumulator.d.ts +20 -0
- package/dist/stream/work-summary-accumulator.js +20 -1
- package/dist/stream/work-summary-accumulator.js.map +1 -1
- package/dist/tools/agent-context.tool.d.ts +154 -0
- package/dist/tools/agent-context.tool.js +125 -0
- package/dist/tools/agent-context.tool.js.map +1 -0
- package/dist/tools/conversation-history.tool.js +3 -10
- package/dist/tools/conversation-history.tool.js.map +1 -1
- package/dist/tools/credentials.tool.js +96 -22
- package/dist/tools/credentials.tool.js.map +1 -1
- package/dist/tools/executions.tool.js +12 -1
- package/dist/tools/executions.tool.js.map +1 -1
- package/dist/tools/index.js +19 -7
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/nodes.tool.js +11 -3
- package/dist/tools/nodes.tool.js.map +1 -1
- package/dist/tools/orchestration/build-agent.tool.js +33 -15
- package/dist/tools/orchestration/build-agent.tool.js.map +1 -1
- package/dist/tools/save-user-preference.tool.d.ts +3 -0
- package/dist/tools/save-user-preference.tool.js +87 -0
- package/dist/tools/save-user-preference.tool.js.map +1 -0
- package/dist/tools/shared/safe-error-message.d.ts +3 -0
- package/dist/tools/shared/safe-error-message.js +11 -0
- package/dist/tools/shared/safe-error-message.js.map +1 -0
- package/dist/tools/tool-ids.d.ts +2 -2
- package/dist/tools/tool-ids.js +4 -4
- package/dist/tools/tool-ids.js.map +1 -1
- package/dist/tools/workflows/build-workflow.tool.js +49 -9
- package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/prepare-workflow-setup.d.ts +25 -0
- package/dist/tools/workflows/prepare-workflow-setup.js +114 -0
- package/dist/tools/workflows/prepare-workflow-setup.js.map +1 -0
- package/dist/tools/workflows/resolve-credentials.d.ts +1 -1
- package/dist/tools/workflows/resolve-credentials.js +10 -2
- package/dist/tools/workflows/resolve-credentials.js.map +1 -1
- package/dist/tools/workflows/setup-credential-selections.d.ts +15 -0
- package/dist/tools/workflows/setup-credential-selections.js +97 -0
- package/dist/tools/workflows/setup-credential-selections.js.map +1 -0
- package/dist/tools/workflows/setup-items.d.ts +2 -0
- package/dist/tools/workflows/setup-items.js +27 -11
- package/dist/tools/workflows/setup-items.js.map +1 -1
- package/dist/tools/workflows/workflow-file-bindings.d.ts +32 -2
- package/dist/tools/workflows/workflow-file-bindings.js +27 -5
- package/dist/tools/workflows/workflow-file-bindings.js.map +1 -1
- package/dist/tools/workflows.tool.js +5 -2
- package/dist/tools/workflows.tool.js.map +1 -1
- package/dist/types.d.ts +63 -15
- package/dist/types.js +2 -1
- package/dist/types.js.map +1 -1
- package/package.json +18 -10
- package/skills/agent-builder/SKILL.md +32 -2
- package/skills/debugging-executions/SKILL.md +53 -0
- package/skills/intent-recognition/SKILL.md +3 -3
- package/skills/workflow-builder/SKILL.md +21 -5
- package/dist/tools/agents.tool.d.ts +0 -2
- package/dist/tools/agents.tool.js +0 -40
- package/dist/tools/agents.tool.js.map +0 -1
- package/dist/tools/orchestration/list-agent-capabilities.tool.d.ts +0 -2
- package/dist/tools/orchestration/list-agent-capabilities.tool.js +0 -45
- package/dist/tools/orchestration/list-agent-capabilities.tool.js.map +0 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.filterSatisfiedSetupCredentialTypes = filterSatisfiedSetupCredentialTypes;
|
|
4
|
+
exports.applyPendingSetupCredentialSelections = applyPendingSetupCredentialSelections;
|
|
5
|
+
exports.markSetupCredentialSelectionsApplied = markSetupCredentialSelectionsApplied;
|
|
6
|
+
const api_types_1 = require("@n8n/api-types");
|
|
7
|
+
const credential_utils_1 = require("./credential-utils");
|
|
8
|
+
const setup_items_1 = require("./setup-items");
|
|
9
|
+
const setup_workflow_service_1 = require("./setup-workflow.service");
|
|
10
|
+
const workflow_file_bindings_1 = require("./workflow-file-bindings");
|
|
11
|
+
const thread_patch_1 = require("../../storage/thread-patch");
|
|
12
|
+
async function filterSatisfiedSetupCredentialTypes(context, workflowId, credentialTypes) {
|
|
13
|
+
if (!(0, setup_items_1.isSetupPanelEnabled)(context) || !context.runId || !credentialTypes?.length)
|
|
14
|
+
return credentialTypes;
|
|
15
|
+
const bindings = await (0, workflow_file_bindings_1.findWorkflowSourceFileBindingsForWorkflow)(context, workflowId);
|
|
16
|
+
const satisfied = new Set(bindings.flatMap(({ setupPreferences }) => setupPreferences && setupPreferences.runId === context.runId
|
|
17
|
+
? setupPreferences.satisfiedCredentialTypes
|
|
18
|
+
: []));
|
|
19
|
+
return credentialTypes.filter((type) => !satisfied.has(type));
|
|
20
|
+
}
|
|
21
|
+
async function applyPendingSetupCredentialSelections(json, workflowId, context, credentialMap) {
|
|
22
|
+
const result = {
|
|
23
|
+
consumedSelections: [],
|
|
24
|
+
unavailableCredentialTypes: [],
|
|
25
|
+
resolvedCredentialsByNode: {},
|
|
26
|
+
};
|
|
27
|
+
if (!(0, setup_items_1.isSetupPanelEnabled)(context) || !workflowId || !context.threadId || !context.threadMemory) {
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
const thread = await (0, thread_patch_1.getThread)(context.threadMemory, context.threadId);
|
|
31
|
+
const selections = (0, api_types_1.readPendingInstanceAiSetupCredentialSelections)(thread?.metadata, workflowId);
|
|
32
|
+
if (selections.length === 0)
|
|
33
|
+
return result;
|
|
34
|
+
const activeNodes = await Promise.all(json.nodes
|
|
35
|
+
.filter((node) => !node.disabled && node.name)
|
|
36
|
+
.map(async (node) => ({
|
|
37
|
+
node,
|
|
38
|
+
credentialTypes: await (0, setup_workflow_service_1.getValidCredentialTypes)(context, node),
|
|
39
|
+
})));
|
|
40
|
+
for (const pending of selections) {
|
|
41
|
+
const { credentialType, credentialId, nodeNames } = pending.selection;
|
|
42
|
+
const generic = api_types_1.GENERIC_AUTH_CREDENTIAL_TYPES.has(credentialType);
|
|
43
|
+
const targets = activeNodes.filter(({ node, credentialTypes }) => credentialTypes.has(credentialType) &&
|
|
44
|
+
(nodeNames ? nodeNames.includes(node.name ?? '') : !generic));
|
|
45
|
+
if (targets.length === 0)
|
|
46
|
+
continue;
|
|
47
|
+
const stored = credentialMap.get(credentialType)?.find(({ id }) => id === credentialId);
|
|
48
|
+
const gateway = credentialId === api_types_1.AI_GATEWAY_MANAGED_TAG &&
|
|
49
|
+
(await context.credentialService.isAiGatewayCredentialType?.(credentialType));
|
|
50
|
+
if (!stored && !gateway) {
|
|
51
|
+
for (const { node } of targets) {
|
|
52
|
+
delete node.credentials?.[credentialType];
|
|
53
|
+
if (node.name && result.resolvedCredentialsByNode[node.name]) {
|
|
54
|
+
result.resolvedCredentialsByNode[node.name] = result.resolvedCredentialsByNode[node.name].filter((credential) => credential.type !== credentialType);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
result.unavailableCredentialTypes.push(credentialType);
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
const credential = stored
|
|
61
|
+
? { id: stored.id, name: stored.name }
|
|
62
|
+
: { ...credential_utils_1.AI_GATEWAY_CREDENTIAL, name: credential_utils_1.N8N_CONNECT_DISPLAY_NAME };
|
|
63
|
+
for (const { node } of targets) {
|
|
64
|
+
if (!node.name)
|
|
65
|
+
continue;
|
|
66
|
+
(0, credential_utils_1.assignCredentialToNode)(node, credentialType, credential);
|
|
67
|
+
result.resolvedCredentialsByNode[node.name] = [
|
|
68
|
+
...(result.resolvedCredentialsByNode[node.name] ?? []).filter((current) => current.type !== credentialType),
|
|
69
|
+
{ type: credentialType, ...credential },
|
|
70
|
+
];
|
|
71
|
+
}
|
|
72
|
+
result.consumedSelections.push(pending);
|
|
73
|
+
}
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
async function markSetupCredentialSelectionsApplied(context, selections) {
|
|
77
|
+
if (!context.threadMemory || !context.threadId || selections.length === 0)
|
|
78
|
+
return;
|
|
79
|
+
try {
|
|
80
|
+
await (0, thread_patch_1.patchThread)(context.threadMemory, {
|
|
81
|
+
threadId: context.threadId,
|
|
82
|
+
update: ({ metadata = {} }) => {
|
|
83
|
+
const updated = { ...metadata };
|
|
84
|
+
for (const { itemId, selection } of selections) {
|
|
85
|
+
updated[(0, api_types_1.instanceAiSetupCredentialAppliedKey)(itemId, selection.selectionId)] = true;
|
|
86
|
+
}
|
|
87
|
+
return { metadata: updated };
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
context.logger?.warn('Failed to mark setup credential selections as applied', {
|
|
93
|
+
error: error instanceof Error ? error.message : String(error),
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=setup-credential-selections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-credential-selections.js","sourceRoot":"","sources":["../../../src/tools/workflows/setup-credential-selections.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,8 +21,10 @@ export declare function parametersSetupItemId(workflowId: string, nodeName: stri
|
|
|
21
21
|
export interface AnnouncedCredentialRequest {
|
|
22
22
|
credentialType: string;
|
|
23
23
|
reason?: string;
|
|
24
|
+
preferNew?: boolean;
|
|
24
25
|
setupHint?: InstanceAiCredentialSetupHint;
|
|
25
26
|
}
|
|
26
27
|
export declare function buildSetupItemsFromCredentialRequests(workflowId: string, requests: readonly AnnouncedCredentialRequest[]): InstanceAiSetupItem[];
|
|
27
28
|
export declare function buildSetupItemsFromAnnouncement(workflowId: string, requests: readonly AnnouncedCredentialRequest[], analyzedRequests: readonly SetupRequest[]): InstanceAiSetupItem[];
|
|
29
|
+
export declare function requestsCredentialReplacement(requests: readonly SetupRequest[], credentialTypes?: readonly string[]): boolean;
|
|
28
30
|
export declare function buildSetupItemsFromSetupRequests(workflowId: string, requests: readonly SetupRequest[]): InstanceAiSetupItem[];
|
|
@@ -6,9 +6,11 @@ exports.credentialSetupItemId = credentialSetupItemId;
|
|
|
6
6
|
exports.parametersSetupItemId = parametersSetupItemId;
|
|
7
7
|
exports.buildSetupItemsFromCredentialRequests = buildSetupItemsFromCredentialRequests;
|
|
8
8
|
exports.buildSetupItemsFromAnnouncement = buildSetupItemsFromAnnouncement;
|
|
9
|
+
exports.requestsCredentialReplacement = requestsCredentialReplacement;
|
|
9
10
|
exports.buildSetupItemsFromSetupRequests = buildSetupItemsFromSetupRequests;
|
|
10
11
|
const api_types_1 = require("@n8n/api-types");
|
|
11
12
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
13
|
+
const credential_utils_1 = require("./credential-utils");
|
|
12
14
|
function isSetupPanelEnabled(context) {
|
|
13
15
|
return context.setupItemsEmitter !== undefined;
|
|
14
16
|
}
|
|
@@ -95,31 +97,35 @@ function credentialSetupItemId(workflowId, credentialType, nodeName) {
|
|
|
95
97
|
function parametersSetupItemId(workflowId, nodeName) {
|
|
96
98
|
return `${workflowId}:parameters:${nodeName}`;
|
|
97
99
|
}
|
|
98
|
-
function
|
|
100
|
+
function mergeCredentialRequests(requests) {
|
|
99
101
|
const byType = new Map();
|
|
100
102
|
for (const request of requests) {
|
|
103
|
+
const existing = byType.get(request.credentialType);
|
|
104
|
+
if (!existing || request.preferNew) {
|
|
105
|
+
byType.set(request.credentialType, existing ? { ...existing, preferNew: true } : request);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return byType;
|
|
109
|
+
}
|
|
110
|
+
function buildSetupItemsFromCredentialRequests(workflowId, requests) {
|
|
111
|
+
const items = [];
|
|
112
|
+
for (const request of mergeCredentialRequests(requests).values()) {
|
|
101
113
|
if (api_types_1.GENERIC_AUTH_CREDENTIAL_TYPES.has(request.credentialType))
|
|
102
114
|
continue;
|
|
103
115
|
const id = credentialSetupItemId(workflowId, request.credentialType);
|
|
104
|
-
|
|
105
|
-
continue;
|
|
106
|
-
byType.set(id, {
|
|
116
|
+
items.push({
|
|
107
117
|
id,
|
|
108
118
|
kind: 'credential',
|
|
109
119
|
credentialType: request.credentialType,
|
|
120
|
+
...(request.preferNew !== undefined ? { preferNew: request.preferNew } : {}),
|
|
110
121
|
...(request.reason ? { reason: request.reason } : {}),
|
|
111
122
|
...(request.setupHint ? { setupHint: request.setupHint } : {}),
|
|
112
123
|
});
|
|
113
124
|
}
|
|
114
|
-
return
|
|
125
|
+
return items;
|
|
115
126
|
}
|
|
116
127
|
function buildSetupItemsFromAnnouncement(workflowId, requests, analyzedRequests) {
|
|
117
|
-
const requestByType =
|
|
118
|
-
for (const request of requests) {
|
|
119
|
-
if (!requestByType.has(request.credentialType)) {
|
|
120
|
-
requestByType.set(request.credentialType, request);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
128
|
+
const requestByType = mergeCredentialRequests(requests);
|
|
123
129
|
const coveredTypes = new Set();
|
|
124
130
|
const items = buildSetupItemsFromSetupRequests(workflowId, analyzedRequests).map((item) => {
|
|
125
131
|
if (item.kind !== 'credential')
|
|
@@ -130,6 +136,7 @@ function buildSetupItemsFromAnnouncement(workflowId, requests, analyzedRequests)
|
|
|
130
136
|
coveredTypes.add(item.credentialType);
|
|
131
137
|
return {
|
|
132
138
|
...item,
|
|
139
|
+
...(request.preferNew !== undefined ? { preferNew: request.preferNew } : {}),
|
|
133
140
|
...(request.reason ? { reason: request.reason } : {}),
|
|
134
141
|
...(request.setupHint ? { setupHint: request.setupHint } : {}),
|
|
135
142
|
};
|
|
@@ -143,6 +150,12 @@ function isBoundToStoredCredential(request) {
|
|
|
143
150
|
const bound = request.node.credentials?.[request.credentialType];
|
|
144
151
|
return typeof bound?.id === 'string' && bound.id.length > 0;
|
|
145
152
|
}
|
|
153
|
+
function requestsCredentialReplacement(requests, credentialTypes = []) {
|
|
154
|
+
return requests.some((request) => request.credentialType !== undefined &&
|
|
155
|
+
credentialTypes.includes(request.credentialType) &&
|
|
156
|
+
(isBoundToStoredCredential(request) ||
|
|
157
|
+
(0, credential_utils_1.isAiGatewayManagedCredential)(request.node.credentials?.[request.credentialType])));
|
|
158
|
+
}
|
|
146
159
|
function buildSetupItemsFromSetupRequests(workflowId, requests) {
|
|
147
160
|
const credentialItems = new Map();
|
|
148
161
|
const parameterItems = new Map();
|
|
@@ -159,12 +172,15 @@ function buildSetupItemsFromSetupRequests(workflowId, requests) {
|
|
|
159
172
|
}
|
|
160
173
|
if (!existing.setupHint && request.setupHint)
|
|
161
174
|
existing.setupHint = request.setupHint;
|
|
175
|
+
if (request.preferNewCredential)
|
|
176
|
+
existing.preferNew = true;
|
|
162
177
|
}
|
|
163
178
|
else {
|
|
164
179
|
credentialItems.set(id, {
|
|
165
180
|
id,
|
|
166
181
|
kind: 'credential',
|
|
167
182
|
credentialType,
|
|
183
|
+
...(request.preferNewCredential ? { preferNew: true } : {}),
|
|
168
184
|
nodeBindings: [{ nodeName }],
|
|
169
185
|
...(request.setupHint ? { setupHint: request.setupHint } : {}),
|
|
170
186
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-items.js","sourceRoot":"","sources":["../../../src/tools/workflows/setup-items.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup-items.js","sourceRoot":"","sources":["../../../src/tools/workflows/setup-items.ts"],"names":[],"mappings":";;;;;;;;;;AAOA,8CAIwB;AACxB,+CAAgD;AAEhD,yDAAkE;AASlE,6BACC,OAA0B;IAE1B,OAAO,OAAO,CAAC,iBAAiB,KAAK,SAAS,CAAC;AAChD,CAAC;AAGD,SAAS,WAAW,CAAC,KAA4B;IAChD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,iCAAwC,OAavC;IACA,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACvD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAiE,CAAC;IAC/F,IAAI,cAAkC,CAAC;IACvC,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC;QACvD,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE;YACtC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxC,KAAK,EAAE,QAAQ,CAAC,KAAK;SACrB,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,UAAkB,EAAE,KAA4B,EAAW,EAAE;QAC7E,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,WAAW,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACtE,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC1B,IAAI,EAAE,aAAa;YACnB,KAAK;YACL,OAAO;YACP,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;SAC9B,CAAC,CAAC;QAIH,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEF,OAAO;QACN,IAAI,CAAC,UAAU,EAAE,KAAK;YAIrB,cAAc,GAAG,UAAU,CAAC;YAC5B,OAAO,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;QAC5C,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK;YAC/B,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;gBACpC,MAAM,IAAI,+BAAgB,CAAC,4CAA4C,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,OAAO,GAAY,IAAI,+BAAgB,CAAC,mCAAmC,CAAC,CAAC;YACjF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC9C,IAAI,CAAC;oBACJ,cAAc,GAAG,UAAU,CAAC;oBAC5B,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBAC3B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;oBAClE,IAAI,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC;wBAAE,OAAO;gBACxE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,OAAO,GAAG,KAAK,CAAC;gBACjB,CAAC;gBAED,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,OAAO,CAAC;QACf,CAAC;QACD,KAAK,CAAC,UAAU,EAAE,KAAK;YACtB,MAAM,IAAI,GAAG,IAAI,GAAG,EAA+B,CAAC;YACpD,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,IAAI,EAAE;gBAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACvF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,cAAc,EAAE,GAAG,EAAE,CAAC,cAAc;KACpC,CAAC;AACH,CAAC;AAMD,SAAS,cAAc,CACtB,QAA6B,EAC7B,QAA6B;IAE7B,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACtE,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACtE,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,+BACC,UAAkB,EAClB,cAAsB,EACtB,QAAiB;IAIjB,OAAO,yCAA6B,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,QAAQ,KAAK,SAAS;QACjF,CAAC,CAAC,GAAG,UAAU,eAAe,cAAc,IAAI,QAAQ,EAAE;QAC1D,CAAC,CAAC,GAAG,UAAU,eAAe,cAAc,EAAE,CAAC;AACjD,CAAC;AAED,+BAAsC,UAAkB,EAAE,QAAgB;IACzE,OAAO,GAAG,UAAU,eAAe,QAAQ,EAAE,CAAC;AAC/C,CAAC;AASD,SAAS,uBAAuB,CAAC,QAA+C;IAC/E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsC,CAAC;IAC7D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC3F,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAQD,+CACC,UAAkB,EAClB,QAA+C;IAE/C,MAAM,KAAK,GAA0B,EAAE,CAAC;IACxC,KAAK,MAAM,OAAO,IAAI,uBAAuB,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QAClE,IAAI,yCAA6B,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;YAAE,SAAS;QACxE,MAAM,EAAE,GAAG,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC;YACV,EAAE;YACF,IAAI,EAAE,YAAY;YAClB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AASD,yCACC,UAAkB,EAClB,QAA+C,EAC/C,gBAAyC;IAEzC,MAAM,aAAa,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,KAAK,GAAG,gCAAgC,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACzF,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,IAAI,CAAC;QAC5C,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,OAAO;YACN,GAAG,IAAI;YACP,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,qCAAqC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AAClF,CAAC;AAOD,SAAS,yBAAyB,CAAC,OAAqB;IACvD,IAAI,CAAC,OAAO,CAAC,cAAc;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACjE,OAAO,OAAO,KAAK,EAAE,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7D,CAAC;AAGD,uCACC,QAAiC,EACjC,eAAe,GAAsB,EAAE;IAEvC,OAAO,QAAQ,CAAC,IAAI,CACnB,CAAC,OAAO,EAAE,EAAE,CACX,OAAO,CAAC,cAAc,KAAK,SAAS;QACpC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC;QAChD,CAAC,yBAAyB,CAAC,OAAO,CAAC;YAClC,IAAA,+CAA4B,EAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CACnF,CAAC;AACH,CAAC;AAQD,0CACC,UAAkB,EAClB,QAAiC;IAEjC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAgE,CAAC;IAChG,MAAM,cAAc,GAAG,IAAI,GAAG,EAAgE,CAAC;IAE/F,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACnC,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QACnC,IACC,cAAc,KAAK,SAAS;YAC5B,CAAC,OAAO,CAAC,qBAAqB,KAAK,IAAI,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAC,EAC7E,CAAC;YACF,MAAM,EAAE,GAAG,qBAAqB,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;YACvE,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC;oBAC9E,QAAQ,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC1E,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS;oBAAE,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;gBACrF,IAAI,OAAO,CAAC,mBAAmB;oBAAE,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACP,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE;oBACvB,EAAE;oBACF,IAAI,EAAE,YAAY;oBAClB,cAAc;oBACd,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3D,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;oBAC5B,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9D,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,EAAE,GAAG,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACvD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7B,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;YAC9E,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -6,27 +6,57 @@ declare const workflowSourceFileBindingSchema: z.ZodObject<{
|
|
|
6
6
|
workflowVersionId: z.ZodOptional<z.ZodString>;
|
|
7
7
|
workflowChecksum: z.ZodOptional<z.ZodString>;
|
|
8
8
|
sourceHash: z.ZodOptional<z.ZodString>;
|
|
9
|
+
setupPending: z.ZodOptional<z.ZodBoolean>;
|
|
10
|
+
setupPreferences: z.ZodOptional<z.ZodObject<{
|
|
11
|
+
runId: z.ZodOptional<z.ZodString>;
|
|
12
|
+
satisfiedCredentialTypes: z.ZodArray<z.ZodString, "many">;
|
|
13
|
+
preferNewCredentialTypes: z.ZodArray<z.ZodString, "many">;
|
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
|
15
|
+
runId?: string | undefined;
|
|
16
|
+
satisfiedCredentialTypes: string[];
|
|
17
|
+
preferNewCredentialTypes: string[];
|
|
18
|
+
}, {
|
|
19
|
+
runId?: string | undefined;
|
|
20
|
+
satisfiedCredentialTypes: string[];
|
|
21
|
+
preferNewCredentialTypes: string[];
|
|
22
|
+
}>>;
|
|
9
23
|
}, "strip", z.ZodTypeAny, {
|
|
10
24
|
filePath: string;
|
|
11
25
|
workflowId?: string | undefined;
|
|
12
26
|
workflowVersionId?: string | undefined;
|
|
13
27
|
workflowChecksum?: string | undefined;
|
|
14
28
|
sourceHash?: string | undefined;
|
|
29
|
+
setupPending?: boolean | undefined;
|
|
30
|
+
setupPreferences?: {
|
|
31
|
+
runId?: string | undefined;
|
|
32
|
+
satisfiedCredentialTypes: string[];
|
|
33
|
+
preferNewCredentialTypes: string[];
|
|
34
|
+
} | undefined;
|
|
15
35
|
}, {
|
|
16
36
|
filePath: string;
|
|
17
37
|
workflowId?: string | undefined;
|
|
18
38
|
workflowVersionId?: string | undefined;
|
|
19
39
|
workflowChecksum?: string | undefined;
|
|
20
40
|
sourceHash?: string | undefined;
|
|
41
|
+
setupPending?: boolean | undefined;
|
|
42
|
+
setupPreferences?: {
|
|
43
|
+
runId?: string | undefined;
|
|
44
|
+
satisfiedCredentialTypes: string[];
|
|
45
|
+
preferNewCredentialTypes: string[];
|
|
46
|
+
} | undefined;
|
|
21
47
|
}>;
|
|
22
48
|
export type WorkflowSourceFileBinding = z.infer<typeof workflowSourceFileBindingSchema>;
|
|
23
49
|
export declare function hashWorkflowSource(source: string): string;
|
|
24
50
|
export declare function normalizeWorkflowSourceFilePath(filePath: string, options?: {
|
|
25
51
|
workspaceRoot?: string;
|
|
26
52
|
}): string;
|
|
27
|
-
export declare function getWorkflowSourceFileBinding(context: InstanceAiContext, filePath: string
|
|
53
|
+
export declare function getWorkflowSourceFileBinding(context: InstanceAiContext, filePath: string, options?: {
|
|
54
|
+
requirePersistence?: boolean;
|
|
55
|
+
}): Promise<WorkflowSourceFileBinding | undefined>;
|
|
28
56
|
export declare function findWorkflowSourceFileBindingsForWorkflow(context: InstanceAiContext, workflowId: string | undefined, filePath?: string): Promise<WorkflowSourceFileBinding[]>;
|
|
29
|
-
export declare function saveWorkflowSourceFileBinding(context: InstanceAiContext, binding: WorkflowSourceFileBinding
|
|
57
|
+
export declare function saveWorkflowSourceFileBinding(context: InstanceAiContext, binding: WorkflowSourceFileBinding, options?: {
|
|
58
|
+
requirePersistence?: boolean;
|
|
59
|
+
}): Promise<WorkflowSourceFileBinding>;
|
|
30
60
|
export declare function bindSourceFileToExistingWorkflow(context: InstanceAiContext, binding: WorkflowSourceFileBinding, workflowId: string): Promise<WorkflowSourceFileBinding>;
|
|
31
61
|
export declare function refreshWorkflowSourceFileBindingFromWorkflow(context: InstanceAiContext, workflowId: string): Promise<void>;
|
|
32
62
|
export declare function refreshWorkflowSourceFileBindingFromSave(context: InstanceAiContext, workflowId: string, saved: {
|
|
@@ -11,6 +11,7 @@ exports.refreshWorkflowSourceFileBindingFromSave = refreshWorkflowSourceFileBind
|
|
|
11
11
|
exports.readWorkflowSourceFile = readWorkflowSourceFile;
|
|
12
12
|
const node_crypto_1 = require("node:crypto");
|
|
13
13
|
const zod_1 = require("zod");
|
|
14
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
14
15
|
const thread_patch_1 = require("../../storage/thread-patch");
|
|
15
16
|
const workspace_files_1 = require("../../workspace/workspace-files");
|
|
16
17
|
const workspace_paths_1 = require("../../workspace/workspace-paths");
|
|
@@ -21,6 +22,14 @@ const workflowSourceFileBindingSchema = zod_1.z.object({
|
|
|
21
22
|
workflowVersionId: zod_1.z.string().optional(),
|
|
22
23
|
workflowChecksum: zod_1.z.string().optional(),
|
|
23
24
|
sourceHash: zod_1.z.string().optional(),
|
|
25
|
+
setupPending: zod_1.z.boolean().optional(),
|
|
26
|
+
setupPreferences: zod_1.z
|
|
27
|
+
.object({
|
|
28
|
+
runId: zod_1.z.string().optional(),
|
|
29
|
+
satisfiedCredentialTypes: zod_1.z.array(zod_1.z.string()),
|
|
30
|
+
preferNewCredentialTypes: zod_1.z.array(zod_1.z.string()),
|
|
31
|
+
})
|
|
32
|
+
.optional(),
|
|
24
33
|
});
|
|
25
34
|
const workflowSourceFileBindingsSchema = zod_1.z.record(zod_1.z.string(), workflowSourceFileBindingSchema);
|
|
26
35
|
const fallbackBindings = new WeakMap();
|
|
@@ -45,23 +54,33 @@ function getFallbackBindings(context) {
|
|
|
45
54
|
}
|
|
46
55
|
return bindings;
|
|
47
56
|
}
|
|
48
|
-
async function readThreadBindings(context) {
|
|
49
|
-
if (!context.threadMemory || !context.threadId)
|
|
57
|
+
async function readThreadBindings(context, requirePersistence = false) {
|
|
58
|
+
if (!context.threadMemory || !context.threadId) {
|
|
59
|
+
if (requirePersistence)
|
|
60
|
+
throw new n8n_workflow_1.OperationalError('Workflow setup persistence is unavailable');
|
|
50
61
|
return undefined;
|
|
62
|
+
}
|
|
51
63
|
try {
|
|
52
64
|
const thread = await (0, thread_patch_1.getThread)(context.threadMemory, context.threadId);
|
|
65
|
+
if (requirePersistence) {
|
|
66
|
+
if (!thread)
|
|
67
|
+
throw new n8n_workflow_1.OperationalError('The workflow setup thread is unavailable');
|
|
68
|
+
return workflowSourceFileBindingsSchema.parse(thread.metadata?.[METADATA_KEY] ?? {});
|
|
69
|
+
}
|
|
53
70
|
return parseBindings(thread?.metadata?.[METADATA_KEY]);
|
|
54
71
|
}
|
|
55
72
|
catch (error) {
|
|
73
|
+
if (requirePersistence)
|
|
74
|
+
throw error;
|
|
56
75
|
context.logger?.debug('Failed to read workflow source file bindings from thread metadata', {
|
|
57
76
|
error: error instanceof Error ? error.message : String(error),
|
|
58
77
|
});
|
|
59
78
|
return undefined;
|
|
60
79
|
}
|
|
61
80
|
}
|
|
62
|
-
async function getWorkflowSourceFileBinding(context, filePath) {
|
|
81
|
+
async function getWorkflowSourceFileBinding(context, filePath, options = {}) {
|
|
63
82
|
const normalizedFilePath = normalizeWorkflowSourceFilePath(filePath);
|
|
64
|
-
const threadBindings = await readThreadBindings(context);
|
|
83
|
+
const threadBindings = await readThreadBindings(context, options.requirePersistence);
|
|
65
84
|
if (threadBindings) {
|
|
66
85
|
return (threadBindings[normalizedFilePath] ?? getFallbackBindings(context).get(normalizedFilePath));
|
|
67
86
|
}
|
|
@@ -78,7 +97,7 @@ async function findWorkflowSourceFileBindingsForWorkflow(context, workflowId, fi
|
|
|
78
97
|
return Array.from(merged.values()).filter((binding) => (workflowId === undefined || binding.workflowId === workflowId) &&
|
|
79
98
|
(normalizedFilePath === undefined || binding.filePath === normalizedFilePath));
|
|
80
99
|
}
|
|
81
|
-
async function saveWorkflowSourceFileBinding(context, binding) {
|
|
100
|
+
async function saveWorkflowSourceFileBinding(context, binding, options = {}) {
|
|
82
101
|
const normalizedBinding = {
|
|
83
102
|
...binding,
|
|
84
103
|
filePath: normalizeWorkflowSourceFilePath(binding.filePath),
|
|
@@ -104,6 +123,9 @@ async function saveWorkflowSourceFileBinding(context, binding) {
|
|
|
104
123
|
});
|
|
105
124
|
}
|
|
106
125
|
}
|
|
126
|
+
if (options.requirePersistence) {
|
|
127
|
+
throw new n8n_workflow_1.OperationalError('Could not persist the workflow setup context');
|
|
128
|
+
}
|
|
107
129
|
return normalizedBinding;
|
|
108
130
|
}
|
|
109
131
|
async function bindSourceFileToExistingWorkflow(context, binding, workflowId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-file-bindings.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-file-bindings.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,6CAAyC;AACzC,6BAAwB;
|
|
1
|
+
{"version":3,"file":"workflow-file-bindings.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-file-bindings.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ const credentials_tool_1 = require("./credentials.tool");
|
|
|
13
13
|
const format_timestamp_1 = require("../utils/format-timestamp");
|
|
14
14
|
const render_claim_1 = require("../workflow-loop/render-claim");
|
|
15
15
|
const saved_workflow_state_1 = require("./workflows/saved-workflow-state");
|
|
16
|
+
const setup_credential_selections_1 = require("./workflows/setup-credential-selections");
|
|
16
17
|
const setup_items_1 = require("./workflows/setup-items");
|
|
17
18
|
const setup_panel_state_1 = require("./workflows/setup-panel-state");
|
|
18
19
|
const setup_skip_state_1 = require("./workflows/setup-skip-state");
|
|
@@ -962,8 +963,9 @@ async function handleSetup(context, input, ctx, state) {
|
|
|
962
963
|
}
|
|
963
964
|
if (resumeData === undefined || resumeData === null || destinationDecision !== undefined) {
|
|
964
965
|
const setupPanelEnabled = (0, setup_items_1.isSetupPanelEnabled)(context);
|
|
966
|
+
const preferNewCredentialTypes = await (0, setup_credential_selections_1.filterSatisfiedSetupCredentialTypes)(context, input.workflowId, input.preferNewCredentials);
|
|
965
967
|
const analyzedRequests = await (0, setup_workflow_service_1.analyzeWorkflow)(context, input.workflowId, undefined, {
|
|
966
|
-
...
|
|
968
|
+
...(preferNewCredentialTypes?.length ? { preferNewCredentialTypes } : {}),
|
|
967
969
|
...(setupPanelEnabled ? { includeSettled: true } : {}),
|
|
968
970
|
});
|
|
969
971
|
const allSetupRequests = setupPanelEnabled
|
|
@@ -1047,7 +1049,8 @@ async function handleSetup(context, input, ctx, state) {
|
|
|
1047
1049
|
if (destination) {
|
|
1048
1050
|
return await suspendForCredentialDestination(ctx, state, input.workflowId, destination);
|
|
1049
1051
|
}
|
|
1050
|
-
if ((0, setup_items_1.isSetupPanelEnabled)(context) &&
|
|
1052
|
+
if ((0, setup_items_1.isSetupPanelEnabled)(context) &&
|
|
1053
|
+
!(0, setup_items_1.requestsCredentialReplacement)(analyzedRequests, preferNewCredentialTypes)) {
|
|
1051
1054
|
return await announceWorkflowSetup(context, input.workflowId, analyzedRequests);
|
|
1052
1055
|
}
|
|
1053
1056
|
if (setupRequests.length === 0) {
|