@n8n/instance-ai 1.23.2 → 1.24.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/agent/instance-agent.js +5 -2
- package/dist/agent/instance-agent.js.map +1 -1
- package/dist/agent/system-prompt.d.ts +1 -0
- package/dist/agent/system-prompt.js +15 -1
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/error-formatting.js +3 -7
- package/dist/error-formatting.js.map +1 -1
- package/dist/errors/folder-resolution.error.d.ts +6 -0
- package/dist/errors/folder-resolution.error.js +13 -0
- package/dist/errors/folder-resolution.error.js.map +1 -0
- package/dist/errors/workflow-snapshot-changed.error.d.ts +4 -0
- package/dist/errors/workflow-snapshot-changed.error.js +11 -0
- package/dist/errors/workflow-snapshot-changed.error.js.map +1 -0
- package/dist/index.d.ts +9 -2
- package/dist/index.js +19 -3
- package/dist/index.js.map +1 -1
- package/dist/knowledge-base/extract-builder-templates-archive.js +2 -4
- package/dist/knowledge-base/extract-builder-templates-archive.js.map +1 -1
- package/dist/runtime/background-task-manager.d.ts +3 -1
- package/dist/runtime/background-task-manager.js +15 -1
- package/dist/runtime/background-task-manager.js.map +1 -1
- package/dist/runtime/liveness-policy.js.map +1 -1
- package/dist/runtime/resumable-stream-executor.d.ts +1 -2
- package/dist/runtime/resumable-stream-executor.js +4 -17
- package/dist/runtime/resumable-stream-executor.js.map +1 -1
- package/dist/runtime/run-state-registry.d.ts +4 -0
- package/dist/runtime/run-state-registry.js +18 -0
- package/dist/runtime/run-state-registry.js.map +1 -1
- package/dist/runtime/stream-runner.d.ts +0 -2
- package/dist/runtime/stream-runner.js +0 -1
- package/dist/runtime/stream-runner.js.map +1 -1
- package/dist/storage/agent-tree-snapshot.d.ts +0 -4
- package/dist/stream/consume-with-hitl.d.ts +0 -3
- package/dist/stream/consume-with-hitl.js +0 -2
- package/dist/stream/consume-with-hitl.js.map +1 -1
- package/dist/tools/conversation-history.schema.d.ts +231 -0
- package/dist/tools/conversation-history.schema.js +36 -0
- package/dist/tools/conversation-history.schema.js.map +1 -0
- package/dist/tools/conversation-history.tool.d.ts +2 -0
- package/dist/tools/conversation-history.tool.js +135 -0
- package/dist/tools/conversation-history.tool.js.map +1 -0
- package/dist/tools/credentials.tool.d.ts +3 -0
- package/dist/tools/credentials.tool.js +65 -0
- package/dist/tools/credentials.tool.js.map +1 -1
- package/dist/tools/data-tables.tool.js +59 -14
- package/dist/tools/data-tables.tool.js.map +1 -1
- package/dist/tools/evals/eval-config.tool.js +3 -5
- package/dist/tools/evals/eval-config.tool.js.map +1 -1
- package/dist/tools/index.js +12 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp-servers.tool.js +1 -1
- package/dist/tools/mcp-servers.tool.js.map +1 -1
- package/dist/tools/n8n-docs/registry.d.ts +0 -1
- package/dist/tools/n8n-docs/registry.js +2 -5
- package/dist/tools/n8n-docs/registry.js.map +1 -1
- package/dist/tools/n8n-docs.tool.js +2 -1
- package/dist/tools/n8n-docs.tool.js.map +1 -1
- package/dist/tools/nodes/credential-setupability.json +1792 -0
- package/dist/tools/nodes/setup-preference.d.ts +9 -0
- package/dist/tools/nodes/setup-preference.js +23 -0
- package/dist/tools/nodes/setup-preference.js.map +1 -0
- package/dist/tools/nodes.tool.js +22 -9
- package/dist/tools/nodes.tool.js.map +1 -1
- package/dist/tools/orchestration/agent-target-binding.d.ts +6 -0
- package/dist/tools/orchestration/agent-target-binding.js +56 -32
- package/dist/tools/orchestration/agent-target-binding.js.map +1 -1
- package/dist/tools/orchestration/build-agent.tool.js +20 -3
- package/dist/tools/orchestration/build-agent.tool.js.map +1 -1
- package/dist/tools/orchestration/eval-setup-agent.tool.js +0 -1
- package/dist/tools/orchestration/eval-setup-agent.tool.js.map +1 -1
- package/dist/tools/orchestration/list-agent-capabilities.tool.d.ts +2 -0
- package/dist/tools/orchestration/list-agent-capabilities.tool.js +45 -0
- package/dist/tools/orchestration/list-agent-capabilities.tool.js.map +1 -0
- package/dist/tools/orchestration/verification/prepare-run.d.ts +1 -1
- package/dist/tools/orchestration/verification/prepare-run.js +32 -37
- package/dist/tools/orchestration/verification/prepare-run.js.map +1 -1
- package/dist/tools/orchestration/verification/types.d.ts +1 -0
- package/dist/tools/orchestration/verify-built-workflow.tool.d.ts +3 -0
- package/dist/tools/orchestration/verify-built-workflow.tool.js +8 -2
- package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
- package/dist/tools/tool-ids.d.ts +2 -0
- package/dist/tools/tool-ids.js +4 -0
- package/dist/tools/tool-ids.js.map +1 -1
- package/dist/tools/workflows/build-workflow.tool.d.ts +32 -0
- package/dist/tools/workflows/build-workflow.tool.js +140 -29
- package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/generate-simulation-fixtures.service.d.ts +6 -0
- package/dist/tools/workflows/generate-simulation-fixtures.service.js +119 -14
- package/dist/tools/workflows/generate-simulation-fixtures.service.js.map +1 -1
- package/dist/tools/workflows/plan-verification-simulation.js +21 -2
- package/dist/tools/workflows/plan-verification-simulation.js.map +1 -1
- package/dist/tools/workflows/preserve-node-positions.js +33 -9
- package/dist/tools/workflows/preserve-node-positions.js.map +1 -1
- package/dist/tools/workflows/setup-items.d.ts +23 -0
- package/dist/tools/workflows/setup-items.js +154 -0
- package/dist/tools/workflows/setup-items.js.map +1 -0
- package/dist/tools/workflows/summarize-workflow.d.ts +4 -1
- package/dist/tools/workflows/summarize-workflow.js +8 -2
- package/dist/tools/workflows/summarize-workflow.js.map +1 -1
- package/dist/tools/workflows/workflow-build-remediation.js +3 -2
- package/dist/tools/workflows/workflow-build-remediation.js.map +1 -1
- package/dist/tools/workflows/workflow-build-telemetry.d.ts +1 -1
- package/dist/tools/workflows/workflow-build-telemetry.js.map +1 -1
- package/dist/tools/workflows/workflow-file-bindings.d.ts +1 -0
- package/dist/tools/workflows/workflow-file-bindings.js +13 -1
- package/dist/tools/workflows/workflow-file-bindings.js.map +1 -1
- package/dist/tools/workflows/workflow-source-compiler.d.ts +1 -0
- package/dist/tools/workflows/workflow-source-compiler.js +1 -0
- package/dist/tools/workflows/workflow-source-compiler.js.map +1 -1
- package/dist/tools/workflows/workflow-source-materializer.d.ts +28 -0
- package/dist/tools/workflows/workflow-source-materializer.js +98 -0
- package/dist/tools/workflows/workflow-source-materializer.js.map +1 -0
- package/dist/tools/workflows.tool.d.ts +1 -1
- package/dist/tools/workflows.tool.js +195 -23
- package/dist/tools/workflows.tool.js.map +1 -1
- package/dist/tools/workspace.tool.js +8 -3
- package/dist/tools/workspace.tool.js.map +1 -1
- package/dist/tracing/langsmith-tracing.js +3 -5
- package/dist/tracing/langsmith-tracing.js.map +1 -1
- package/dist/tracing/trace-payloads.js +4 -5
- package/dist/tracing/trace-payloads.js.map +1 -1
- package/dist/types.d.ts +92 -7
- package/dist/types.js +3 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/model-config-id.d.ts +1 -0
- package/dist/utils/model-config-id.js +24 -0
- package/dist/utils/model-config-id.js.map +1 -0
- package/dist/utils/node-keyed-items.d.ts +1 -0
- package/dist/utils/node-keyed-items.js +10 -0
- package/dist/utils/node-keyed-items.js.map +1 -0
- package/dist/workflow-loop/guidance.js +1 -1
- package/dist/workflow-loop/guidance.js.map +1 -1
- package/dist/workspace/sandbox-setup.js +4 -6
- package/dist/workspace/sandbox-setup.js.map +1 -1
- package/package.json +12 -12
- package/skills/agent-builder/SKILL.md +23 -0
- package/skills/data-table-manager/SKILL.md +34 -3
- package/skills/intent-recognition/SKILL.md +55 -0
- package/skills/workflow-builder/SKILL.md +111 -27
- package/dist/stream/output-redaction.d.ts +0 -31
- package/dist/stream/output-redaction.js +0 -191
- package/dist/stream/output-redaction.js.map +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type InstanceAiCredentialSetupHint, type InstanceAiSetupItem } from '@n8n/api-types';
|
|
2
|
+
import type { SetupRequest } from './setup-workflow.schema';
|
|
3
|
+
import type { InstanceAiEventBus } from '../../event-bus/event-bus.interface';
|
|
4
|
+
import type { InstanceAiContext, SetupItemsEmitter } from '../../types';
|
|
5
|
+
export declare function isSetupPanelEnabled(context: InstanceAiContext): context is InstanceAiContext & {
|
|
6
|
+
setupItemsEmitter: SetupItemsEmitter;
|
|
7
|
+
};
|
|
8
|
+
export declare function createSetupItemsEmitter(options: {
|
|
9
|
+
eventBus: Pick<InstanceAiEventBus, 'publish'>;
|
|
10
|
+
threadId: string;
|
|
11
|
+
runId: string;
|
|
12
|
+
agentId: string;
|
|
13
|
+
}): SetupItemsEmitter;
|
|
14
|
+
export declare function credentialSetupItemId(workflowId: string, credentialType: string, nodeName?: string): string;
|
|
15
|
+
export declare function parametersSetupItemId(workflowId: string, nodeName: string): string;
|
|
16
|
+
export interface AnnouncedCredentialRequest {
|
|
17
|
+
credentialType: string;
|
|
18
|
+
reason?: string;
|
|
19
|
+
setupHint?: InstanceAiCredentialSetupHint;
|
|
20
|
+
}
|
|
21
|
+
export declare function buildSetupItemsFromCredentialRequests(workflowId: string, requests: readonly AnnouncedCredentialRequest[]): InstanceAiSetupItem[];
|
|
22
|
+
export declare function buildSetupItemsFromAnnouncement(workflowId: string, requests: readonly AnnouncedCredentialRequest[], analyzedRequests: readonly SetupRequest[]): InstanceAiSetupItem[];
|
|
23
|
+
export declare function buildSetupItemsFromSetupRequests(workflowId: string, requests: readonly SetupRequest[]): InstanceAiSetupItem[];
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSetupPanelEnabled = isSetupPanelEnabled;
|
|
4
|
+
exports.createSetupItemsEmitter = createSetupItemsEmitter;
|
|
5
|
+
exports.credentialSetupItemId = credentialSetupItemId;
|
|
6
|
+
exports.parametersSetupItemId = parametersSetupItemId;
|
|
7
|
+
exports.buildSetupItemsFromCredentialRequests = buildSetupItemsFromCredentialRequests;
|
|
8
|
+
exports.buildSetupItemsFromAnnouncement = buildSetupItemsFromAnnouncement;
|
|
9
|
+
exports.buildSetupItemsFromSetupRequests = buildSetupItemsFromSetupRequests;
|
|
10
|
+
const api_types_1 = require("@n8n/api-types");
|
|
11
|
+
function isSetupPanelEnabled(context) {
|
|
12
|
+
return context.setupItemsEmitter !== undefined;
|
|
13
|
+
}
|
|
14
|
+
function fingerprint(items) {
|
|
15
|
+
return JSON.stringify([...items].sort((a, b) => a.id.localeCompare(b.id)));
|
|
16
|
+
}
|
|
17
|
+
function createSetupItemsEmitter(options) {
|
|
18
|
+
const { eventBus, threadId, runId, agentId } = options;
|
|
19
|
+
const lastSnapshots = new Map();
|
|
20
|
+
let lastWorkflowId;
|
|
21
|
+
const publish = (workflowId, items) => {
|
|
22
|
+
const next = fingerprint(items);
|
|
23
|
+
if (lastSnapshots.get(workflowId)?.fingerprint === next)
|
|
24
|
+
return false;
|
|
25
|
+
eventBus.publish(threadId, {
|
|
26
|
+
type: 'setup-items',
|
|
27
|
+
runId,
|
|
28
|
+
agentId,
|
|
29
|
+
payload: { workflowId, items },
|
|
30
|
+
});
|
|
31
|
+
lastSnapshots.set(workflowId, { fingerprint: next, items });
|
|
32
|
+
return true;
|
|
33
|
+
};
|
|
34
|
+
return {
|
|
35
|
+
emit(workflowId, items) {
|
|
36
|
+
lastWorkflowId = workflowId;
|
|
37
|
+
return publish(workflowId, items);
|
|
38
|
+
},
|
|
39
|
+
merge(workflowId, items) {
|
|
40
|
+
const byId = new Map();
|
|
41
|
+
for (const item of lastSnapshots.get(workflowId)?.items ?? [])
|
|
42
|
+
byId.set(item.id, item);
|
|
43
|
+
for (const item of items) {
|
|
44
|
+
const existing = byId.get(item.id);
|
|
45
|
+
byId.set(item.id, existing ? mergeSetupItem(existing, item) : item);
|
|
46
|
+
}
|
|
47
|
+
return publish(workflowId, [...byId.values()]);
|
|
48
|
+
},
|
|
49
|
+
lastWorkflowId: () => lastWorkflowId,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function mergeSetupItem(existing, incoming) {
|
|
53
|
+
if (existing.kind === 'credential' && incoming.kind === 'credential') {
|
|
54
|
+
return { ...existing, ...incoming };
|
|
55
|
+
}
|
|
56
|
+
if (existing.kind === 'parameters' && incoming.kind === 'parameters') {
|
|
57
|
+
return { ...existing, ...incoming };
|
|
58
|
+
}
|
|
59
|
+
return incoming;
|
|
60
|
+
}
|
|
61
|
+
function credentialSetupItemId(workflowId, credentialType, nodeName) {
|
|
62
|
+
return api_types_1.GENERIC_AUTH_CREDENTIAL_TYPES.has(credentialType) && nodeName !== undefined
|
|
63
|
+
? `${workflowId}:credential:${credentialType}:${nodeName}`
|
|
64
|
+
: `${workflowId}:credential:${credentialType}`;
|
|
65
|
+
}
|
|
66
|
+
function parametersSetupItemId(workflowId, nodeName) {
|
|
67
|
+
return `${workflowId}:parameters:${nodeName}`;
|
|
68
|
+
}
|
|
69
|
+
function buildSetupItemsFromCredentialRequests(workflowId, requests) {
|
|
70
|
+
const byType = new Map();
|
|
71
|
+
for (const request of requests) {
|
|
72
|
+
if (api_types_1.GENERIC_AUTH_CREDENTIAL_TYPES.has(request.credentialType))
|
|
73
|
+
continue;
|
|
74
|
+
const id = credentialSetupItemId(workflowId, request.credentialType);
|
|
75
|
+
if (byType.has(id))
|
|
76
|
+
continue;
|
|
77
|
+
byType.set(id, {
|
|
78
|
+
id,
|
|
79
|
+
kind: 'credential',
|
|
80
|
+
credentialType: request.credentialType,
|
|
81
|
+
...(request.reason ? { reason: request.reason } : {}),
|
|
82
|
+
...(request.setupHint ? { setupHint: request.setupHint } : {}),
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return [...byType.values()];
|
|
86
|
+
}
|
|
87
|
+
function buildSetupItemsFromAnnouncement(workflowId, requests, analyzedRequests) {
|
|
88
|
+
const requestByType = new Map();
|
|
89
|
+
for (const request of requests) {
|
|
90
|
+
if (!requestByType.has(request.credentialType)) {
|
|
91
|
+
requestByType.set(request.credentialType, request);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
const coveredTypes = new Set();
|
|
95
|
+
const items = buildSetupItemsFromSetupRequests(workflowId, analyzedRequests).map((item) => {
|
|
96
|
+
if (item.kind !== 'credential')
|
|
97
|
+
return item;
|
|
98
|
+
const request = requestByType.get(item.credentialType);
|
|
99
|
+
if (!request)
|
|
100
|
+
return item;
|
|
101
|
+
coveredTypes.add(item.credentialType);
|
|
102
|
+
return {
|
|
103
|
+
...item,
|
|
104
|
+
...(request.reason ? { reason: request.reason } : {}),
|
|
105
|
+
...(request.setupHint ? { setupHint: request.setupHint } : {}),
|
|
106
|
+
};
|
|
107
|
+
});
|
|
108
|
+
const pending = requests.filter((request) => !coveredTypes.has(request.credentialType));
|
|
109
|
+
return [...items, ...buildSetupItemsFromCredentialRequests(workflowId, pending)];
|
|
110
|
+
}
|
|
111
|
+
function isBoundToStoredCredential(request) {
|
|
112
|
+
if (!request.credentialType)
|
|
113
|
+
return false;
|
|
114
|
+
const bound = request.node.credentials?.[request.credentialType];
|
|
115
|
+
return typeof bound?.id === 'string' && bound.id.length > 0;
|
|
116
|
+
}
|
|
117
|
+
function buildSetupItemsFromSetupRequests(workflowId, requests) {
|
|
118
|
+
const credentialItems = new Map();
|
|
119
|
+
const parameterItems = new Map();
|
|
120
|
+
for (const request of requests) {
|
|
121
|
+
const nodeName = request.node.name;
|
|
122
|
+
const { credentialType } = request;
|
|
123
|
+
if (credentialType !== undefined &&
|
|
124
|
+
(request.credentialNeedsAction === true || isBoundToStoredCredential(request))) {
|
|
125
|
+
const id = credentialSetupItemId(workflowId, credentialType, nodeName);
|
|
126
|
+
const existing = credentialItems.get(id);
|
|
127
|
+
if (existing) {
|
|
128
|
+
if (!existing.nodeBindings?.some((binding) => binding.nodeName === nodeName)) {
|
|
129
|
+
existing.nodeBindings = [...(existing.nodeBindings ?? []), { nodeName }];
|
|
130
|
+
}
|
|
131
|
+
if (!existing.setupHint && request.setupHint)
|
|
132
|
+
existing.setupHint = request.setupHint;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
credentialItems.set(id, {
|
|
136
|
+
id,
|
|
137
|
+
kind: 'credential',
|
|
138
|
+
credentialType,
|
|
139
|
+
nodeBindings: [{ nodeName }],
|
|
140
|
+
...(request.setupHint ? { setupHint: request.setupHint } : {}),
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
const parameterNames = Object.keys(request.parameterIssues ?? {});
|
|
145
|
+
if (parameterNames.length > 0) {
|
|
146
|
+
const id = parametersSetupItemId(workflowId, nodeName);
|
|
147
|
+
if (!parameterItems.has(id)) {
|
|
148
|
+
parameterItems.set(id, { id, kind: 'parameters', nodeName, parameterNames });
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return [...credentialItems.values(), ...parameterItems.values()];
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=setup-items.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-items.js","sourceRoot":"","sources":["../../../src/tools/workflows/setup-items.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { WorkflowNode } from '../../types';
|
|
2
|
-
export declare const STRUCTURE_ONLY_NOTE = "Node parameters omitted to keep context small.
|
|
2
|
+
export declare const STRUCTURE_ONLY_NOTE = "Node parameters omitted to keep context small. For parameter-level detail use get-as-code, which writes the workflow source to a workspace file and returns a node index; pass full: true only for workflows small enough to inline.";
|
|
3
|
+
export declare const FULL_PAYLOAD_TOO_LARGE_NOTE = "This workflow is too large to inline with full: true. Use get-as-code: it writes the source to a workspace file and returns a node index with line numbers, so you can read only the nodes you need.";
|
|
4
|
+
export declare const FULL_PAYLOAD_LIMIT_BYTES = 100000;
|
|
5
|
+
export declare function exceedsFullPayloadLimit(detail: unknown): boolean;
|
|
3
6
|
export declare const PARAMETERS_INLINE_LIMIT_BYTES = 4096;
|
|
4
7
|
export declare function isSmallPayload(detail: unknown): boolean;
|
|
5
8
|
export declare function summarizeWorkflowStructure(name: string, nodes: WorkflowNode[], connections: Record<string, unknown>): Promise<string>;
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PARAMETERS_INLINE_LIMIT_BYTES = exports.STRUCTURE_ONLY_NOTE = void 0;
|
|
3
|
+
exports.PARAMETERS_INLINE_LIMIT_BYTES = exports.FULL_PAYLOAD_LIMIT_BYTES = exports.FULL_PAYLOAD_TOO_LARGE_NOTE = exports.STRUCTURE_ONLY_NOTE = void 0;
|
|
4
|
+
exports.exceedsFullPayloadLimit = exceedsFullPayloadLimit;
|
|
4
5
|
exports.isSmallPayload = isSmallPayload;
|
|
5
6
|
exports.summarizeWorkflowStructure = summarizeWorkflowStructure;
|
|
6
7
|
const is_record_1 = require("@n8n/utils/is-record");
|
|
7
8
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
8
|
-
exports.STRUCTURE_ONLY_NOTE = 'Node parameters omitted to keep context small.
|
|
9
|
+
exports.STRUCTURE_ONLY_NOTE = 'Node parameters omitted to keep context small. For parameter-level detail use get-as-code, which writes the workflow source to a workspace file and returns a node index; pass full: true only for workflows small enough to inline.';
|
|
10
|
+
exports.FULL_PAYLOAD_TOO_LARGE_NOTE = 'This workflow is too large to inline with full: true. Use get-as-code: it writes the source to a workspace file and returns a node index with line numbers, so you can read only the nodes you need.';
|
|
11
|
+
exports.FULL_PAYLOAD_LIMIT_BYTES = 100_000;
|
|
12
|
+
function exceedsFullPayloadLimit(detail) {
|
|
13
|
+
return Buffer.byteLength(JSON.stringify(detail), 'utf8') > exports.FULL_PAYLOAD_LIMIT_BYTES;
|
|
14
|
+
}
|
|
9
15
|
exports.PARAMETERS_INLINE_LIMIT_BYTES = 4096;
|
|
10
16
|
function isSmallPayload(detail) {
|
|
11
17
|
return JSON.stringify(detail).length <= exports.PARAMETERS_INLINE_LIMIT_BYTES;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarize-workflow.js","sourceRoot":"","sources":["../../../src/tools/workflows/summarize-workflow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"summarize-workflow.js","sourceRoot":"","sources":["../../../src/tools/workflows/summarize-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ exports.createWorkflowModifiedExternallyRemediation = createWorkflowModifiedExte
|
|
|
6
6
|
exports.createWorkflowLockedByEditorRemediation = createWorkflowLockedByEditorRemediation;
|
|
7
7
|
exports.createSaveFailureRemediation = createSaveFailureRemediation;
|
|
8
8
|
exports.createSourceCompileRemediation = createSourceCompileRemediation;
|
|
9
|
+
const get_error_message_1 = require("@n8n/utils/errors/get-error-message");
|
|
9
10
|
const workflow_editor_locked_error_1 = require("../../errors/workflow-editor-locked.error");
|
|
10
11
|
const workflow_not_found_error_1 = require("../../errors/workflow-not-found.error");
|
|
11
12
|
const workflow_save_conflict_error_1 = require("../../errors/workflow-save-conflict.error");
|
|
@@ -14,7 +15,7 @@ exports.INVALID_WORKFLOW_ID_GUIDANCE = 'Call build-workflow again with the same
|
|
|
14
15
|
'If you meant an existing workflow, confirm the id with workflows() first — missing and inaccessible look the same. ' +
|
|
15
16
|
'workflowId must be a real n8n workflow id from a prior build-workflow or workflows() tool result — never the first argument of workflow(slug, name).';
|
|
16
17
|
function getFailureText(error) {
|
|
17
|
-
return (
|
|
18
|
+
return (0, get_error_message_1.getErrorMessage)(error).toLowerCase();
|
|
18
19
|
}
|
|
19
20
|
function isCredentialSaveFailure(text) {
|
|
20
21
|
if (!text.includes('credential'))
|
|
@@ -46,7 +47,7 @@ function createCodeFixableRemediation(input) {
|
|
|
46
47
|
function createWorkflowModifiedExternallyRemediation() {
|
|
47
48
|
return createCodeFixableRemediation({
|
|
48
49
|
reason: 'workflow_modified_externally',
|
|
49
|
-
guidance: 'The workflow was modified outside this conversation since your last save (canvas edit, setup, credential change, or version revert). Call workflows(action="get-as-code", workflowId)
|
|
50
|
+
guidance: 'The workflow was modified outside this conversation since your last save (canvas edit, setup, credential change, or version revert). Call workflows(action="get-as-code", workflowId): it regenerates the bound source file from the saved workflow. Re-apply your intended change in that file with workspace_str_replace_file, then call build-workflow again with the same filePath. If get-as-code reports status "conflict", the file still holds your unbuilt edits on top of the old version: delete the file, call get-as-code again, and re-apply the change before building.',
|
|
50
51
|
});
|
|
51
52
|
}
|
|
52
53
|
function createWorkflowLockedByEditorRemediation() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-build-remediation.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-build-remediation.ts"],"names":[],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"workflow-build-remediation.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-build-remediation.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { WorkflowSourceFileBinding } from './workflow-file-bindings';
|
|
|
2
2
|
import type { InstanceAiContext } from '../../types';
|
|
3
3
|
import type { RemediationMetadata } from '../../workflow-loop/workflow-loop-state';
|
|
4
4
|
export type BuildTelemetryResult = 'success' | 'failure' | 'blocked' | 'denied' | 'suspended';
|
|
5
|
-
export type BuildTelemetryStage = 'source_read' | 'permission' | 'hitl' | 'parse' | 'validation' | 'name' | 'save' | 'conflict';
|
|
5
|
+
export type BuildTelemetryStage = 'source_read' | 'permission' | 'hitl' | 'parse' | 'validation' | 'name' | 'save' | 'conflict' | 'folder';
|
|
6
6
|
export declare function trackWorkflowSourceBuild(context: InstanceAiContext, input: {
|
|
7
7
|
result: BuildTelemetryResult;
|
|
8
8
|
stage: BuildTelemetryStage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-build-telemetry.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-build-telemetry.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"workflow-build-telemetry.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-build-telemetry.ts"],"names":[],"mappings":";;;;AAgBA,kCACC,OAA0B,EAC1B,KAaC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAClD,OAAO,CAAC,cAAc,EAAE,CAAC,mCAAmC,EAAE;QAC7D,gBAAgB,EAAE,gBAAgB;QAClC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,OAAO,CAAC,QAAQ,IAAI,YAAY,EAAE,QAAQ,IAAI,SAAS;QAClE,MAAM,EAAE,YAAY,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS;QACzD,YAAY,EAAE,YAAY,EAAE,UAAU,IAAI,SAAS;QACnD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,SAAS;QAC1C,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;QACjC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QACjD,sBAAsB,EAAE,KAAK,CAAC,oBAAoB,KAAK,IAAI;QAC3D,gCAAgC,EAAE,KAAK,CAAC,6BAA6B,KAAK,IAAI;QAC9E,WAAW,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC;QAClC,aAAa,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC;QACtC,mBAAmB,EAAE,KAAK,CAAC,iBAAiB,IAAI,CAAC;QACjD,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,KAAK,CAAC,WAAW;YACpB,CAAC,CAAC;gBACA,oBAAoB,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ;gBAChD,uBAAuB,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU;gBACrD,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrF;YACF,CAAC,CAAC,EAAE,CAAC;KACN,CAAC,CAAC;AACJ,CAAC;AAOD,uCACC,OAA0B,EAC1B,KAIC;IAED,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC;QAAE,OAAO;IACxC,MAAM,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAClD,OAAO,CAAC,cAAc,EAAE,CAAC,yCAAyC,EAAE;QACnE,iBAAiB,EAAE,KAAK,CAAC,eAAe;QACxC,mBAAmB,EAAE,KAAK,CAAC,iBAAiB;QAC5C,UAAU,EAAE,KAAK,CAAC,eAAe,IAAI,CAAC;QACtC,QAAQ,EAAE,KAAK,CAAC,iBAAiB,GAAG,CAAC;QACrC,WAAW,EAAE,KAAK,CAAC,eAAe;QAClC,SAAS,EAAE,OAAO,CAAC,QAAQ,IAAI,YAAY,EAAE,QAAQ,IAAI,SAAS;QAClE,MAAM,EAAE,YAAY,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS;KACzD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -25,6 +25,7 @@ export declare function normalizeWorkflowSourceFilePath(filePath: string, option
|
|
|
25
25
|
workspaceRoot?: string;
|
|
26
26
|
}): string;
|
|
27
27
|
export declare function getWorkflowSourceFileBinding(context: InstanceAiContext, filePath: string): Promise<WorkflowSourceFileBinding | undefined>;
|
|
28
|
+
export declare function findWorkflowSourceFileBindingsForWorkflow(context: InstanceAiContext, workflowId: string | undefined, filePath?: string): Promise<WorkflowSourceFileBinding[]>;
|
|
28
29
|
export declare function saveWorkflowSourceFileBinding(context: InstanceAiContext, binding: WorkflowSourceFileBinding): Promise<WorkflowSourceFileBinding>;
|
|
29
30
|
export declare function bindSourceFileToExistingWorkflow(context: InstanceAiContext, binding: WorkflowSourceFileBinding, workflowId: string): Promise<WorkflowSourceFileBinding>;
|
|
30
31
|
export declare function refreshWorkflowSourceFileBindingFromWorkflow(context: InstanceAiContext, workflowId: string): Promise<void>;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.hashWorkflowSource = hashWorkflowSource;
|
|
4
4
|
exports.normalizeWorkflowSourceFilePath = normalizeWorkflowSourceFilePath;
|
|
5
5
|
exports.getWorkflowSourceFileBinding = getWorkflowSourceFileBinding;
|
|
6
|
+
exports.findWorkflowSourceFileBindingsForWorkflow = findWorkflowSourceFileBindingsForWorkflow;
|
|
6
7
|
exports.saveWorkflowSourceFileBinding = saveWorkflowSourceFileBinding;
|
|
7
8
|
exports.bindSourceFileToExistingWorkflow = bindSourceFileToExistingWorkflow;
|
|
8
9
|
exports.refreshWorkflowSourceFileBindingFromWorkflow = refreshWorkflowSourceFileBindingFromWorkflow;
|
|
@@ -67,11 +68,23 @@ async function getWorkflowSourceFileBinding(context, filePath) {
|
|
|
67
68
|
}
|
|
68
69
|
return getFallbackBindings(context).get(normalizedFilePath);
|
|
69
70
|
}
|
|
71
|
+
async function findWorkflowSourceFileBindingsForWorkflow(context, workflowId, filePath) {
|
|
72
|
+
const normalizedFilePath = filePath ? normalizeWorkflowSourceFilePath(filePath) : undefined;
|
|
73
|
+
const threadBindings = (await readThreadBindings(context)) ?? {};
|
|
74
|
+
const merged = new Map(Object.entries(threadBindings));
|
|
75
|
+
for (const [path, binding] of getFallbackBindings(context)) {
|
|
76
|
+
if (!merged.has(path))
|
|
77
|
+
merged.set(path, binding);
|
|
78
|
+
}
|
|
79
|
+
return Array.from(merged.values()).filter((binding) => (workflowId === undefined || binding.workflowId === workflowId) &&
|
|
80
|
+
(normalizedFilePath === undefined || binding.filePath === normalizedFilePath));
|
|
81
|
+
}
|
|
70
82
|
async function saveWorkflowSourceFileBinding(context, binding) {
|
|
71
83
|
const normalizedBinding = {
|
|
72
84
|
...binding,
|
|
73
85
|
filePath: normalizeWorkflowSourceFilePath(binding.filePath),
|
|
74
86
|
};
|
|
87
|
+
getFallbackBindings(context).set(normalizedBinding.filePath, normalizedBinding);
|
|
75
88
|
if (context.threadMemory && context.threadId) {
|
|
76
89
|
try {
|
|
77
90
|
const updatedThread = await (0, thread_patch_1.patchThread)(context.threadMemory, {
|
|
@@ -92,7 +105,6 @@ async function saveWorkflowSourceFileBinding(context, binding) {
|
|
|
92
105
|
});
|
|
93
106
|
}
|
|
94
107
|
}
|
|
95
|
-
getFallbackBindings(context).set(normalizedBinding.filePath, normalizedBinding);
|
|
96
108
|
return normalizedBinding;
|
|
97
109
|
}
|
|
98
110
|
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":"
|
|
1
|
+
{"version":3,"file":"workflow-file-bindings.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-file-bindings.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,5 +16,6 @@ export type WorkflowSourceCompileResult = {
|
|
|
16
16
|
editable: boolean;
|
|
17
17
|
summary: string;
|
|
18
18
|
};
|
|
19
|
+
export declare function isTypeScriptWorkflowSource(filePath: string): boolean;
|
|
19
20
|
export declare function isWorkflowJsonSourceFile(filePath: string): boolean;
|
|
20
21
|
export declare function compileWorkflowSource(context: InstanceAiContext, filePath: string, source: string, abortSignal?: AbortSignal): Promise<WorkflowSourceCompileResult>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isTypeScriptWorkflowSource = isTypeScriptWorkflowSource;
|
|
3
4
|
exports.isWorkflowJsonSourceFile = isWorkflowJsonSourceFile;
|
|
4
5
|
exports.compileWorkflowSource = compileWorkflowSource;
|
|
5
6
|
const agents_1 = require("@n8n/agents");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-source-compiler.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-source-compiler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workflow-source-compiler.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-source-compiler.ts"],"names":[],"mappings":";;;;;AAAA,wCAA6D;AAC7D,iDAAuD;AACvD,oDAAgD;AAChD,oDAAwE;AACxE,+CAAkD;AAElD,uEAA6F;AAC7F,+EAAyE;AACzE,qFAA+E;AAC/E,2EAAqE;AACrE,yFAAmF;AACnF,2EAA2E;AAC3E,iFAAiG;AAEjG,2DAA8E;AAC9E,qEAAoE;AAoCpE,SAAS,cAAc,CAAC,KAAc;IACrC,OAAO,CACN,IAAA,oBAAQ,EAAC,KAAK,CAAC;QACf,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAA,oBAAQ,EAAC,KAAK,CAAC,WAAW,CAAC,CAC3B,CAAC;AACH,CAAC;AAED,oCAA2C,QAAgB;IAC1D,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC1C,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAClE,CAAC;AAED,kCAAyC,QAAgB;IACxD,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAMD,SAAS,sBAAsB,CAAC,IAAkB;IACjD,IAAI,CAAC,IAAI,CAAC,KAAK;QAAE,OAAO;IACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,iCAAkB,EAAC,IAAI,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,wBAAwB,CAChC,IAAkB,EAClB,OAA0B,EAC1B,gBAAgB,GAAwB,EAAE;IAE1C,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAE7B,MAAM,gBAAgB,GAAG,IAAA,+BAAgB,EAAC,IAAI,EAAE;QAC/C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,UAAU,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC;IACvC,IAAA,sDAAuB,EAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAA,sDAAuB,EAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7D,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAA,sDAAwB,EAAC,IAAI,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAA,wDAA4B,EAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAChF,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAA,gEAA6B,EAAC,IAAI,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAA,4DAA2B,EAAC,IAAI,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAA,kDAAsB,EAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc;IAC9C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO;YACN,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,4BAA4B;YACpC,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACP,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE;aAC3F;YACD,OAAO,EAAE,qCAAqC;SAC9C,CAAC;IACH,CAAC;IAED,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO;YACN,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,uBAAuB;YAC/B,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,CAAC,0DAA0D,CAAC;YACpE,OAAO,EAAE,2DAA2D;SACpE,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AACrF,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAA,oBAAQ,EAAC,OAAO,CAAC;YAAE,SAAS;QACjC,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;YAAE,SAAS;QAEtF,QAAQ,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAC7E,QAAQ,EACP,OAAO,CAAC,QAAQ,KAAK,eAAe;gBACpC,OAAO,CAAC,QAAQ,KAAK,SAAS;gBAC9B,OAAO,CAAC,QAAQ,KAAK,OAAO;gBAC3B,CAAC,CAAC,OAAO,CAAC,QAAQ;gBAClB,CAAC,CAAC,SAAS;SACb,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,aAAa,CACrB,KAAc;IAEd,OAAO,IAAA,oBAAQ,EAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,kCAAkC,CAC1C,KAAc;IAEd,IAAI,CAAC,IAAA,oBAAQ,EAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvC,MAAM,QAAQ,GAAyC,EAAE,CAAC;IAC1D,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAChE,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc;IAC9C,MAAM,YAAY,GAAG,MAAM;SACzB,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,EAAE,CAAC;IAER,IAAI,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IAEpC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,IAAA,oBAAQ,EAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE/E,OAAO;QACN,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACvE,sBAAsB,EAAE,kCAAkC,CAAC,MAAM,CAAC,sBAAsB,CAAC;QACzF,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC/C,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC;KACzC,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAgB;IAC3C,MAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACnD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO,CACN,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAC5C,UAAU,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YAC9C,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAC5C,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACvC,UAAU,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YAC9C,UAAU,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CACpD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qBAAqB;QAAE,OAAO,MAAM,CAAC;IAE1C,OAAO;QACN,GAAG,MAAM;QACT,sQAAsQ;KACtQ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,+BAA+B,CAC7C,OAA0B,EAC1B,QAAgB,EAChB,WAAyB;IAEzB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACxB,OAAO;YACN,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,qCAAqC;YAC7C,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE;gBACP,oFAAoF;aACpF;YACD,OAAO,EAAE,wEAAwE;SACjF,CAAC;IACH,CAAC;IAED,IAAI,IAAY,CAAC;IACjB,IAAI,WAAqD,CAAC;IAC1D,IAAI,CAAC;QACJ,IAAI,GAAG,MAAM,IAAA,0BAAgB,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,eAAe,GAAG,IAAA,mCAAiB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1D,WAAW,GAAG,MAAM,IAAA,yBAAY,EAC/B,OAAO,CAAC,SAAS,EACjB,gCAAgC,IAAA,+BAAkB,EAAC,eAAe,CAAC,GAAG,EACtE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAC1B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEhB,IAAI,IAAA,qBAAY,EAAC,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC;QACrC,IAAI,WAAW,EAAE,OAAO;YAAE,MAAM,IAAA,yBAAgB,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrE,OAAO;YACN,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,qCAAqC;YAC7C,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChE,OAAO,EAAE,wEAAwE;SACjF,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,uBAAuB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAChE,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC;QACrF,OAAO;YACN,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,gCAAgC;YACxC,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACP,yDAAyD,WAAW,CAAC,QAAQ,IAAI;gBACjF,MAAM;aACN;YACD,OAAO,EAAE,2DAA2D;SACpE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QACnD,OAAO;YACN,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,8BAA8B;YACtC,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,kBAAkB,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAClF,OAAO,EAAE,kDAAkD;SAC3D,CAAC;IACH,CAAC;IAED,OAAO;QACN,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,sBAAsB,EAAE,WAAW,CAAC,sBAAsB;QAC1D,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,EAAE;QACpC,QAAQ,EAAE,aAAa;KACvB,CAAC;AACH,CAAC;AAED,MAAM,sBAAsB,GAAG,4BAA4B,CAAC;AAQ5D,KAAK,UAAU,mCAAmC,CACjD,IAAkB,EAClB,OAA0B;IAE1B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,EAAE,CAAC;IAC1E,IAAI,CAAC,KAAK,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IAE9B,MAAM,KAAK,GAAG,IAAA,kDAAwB,EAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAwB,EAAE,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB;YAAE,SAAS;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,IAAA,oBAAQ,EAAC,MAAM,CAAC,IAAI,MAAM,CAAC,cAAc,KAAK,uBAAuB;YAAE,SAAS;QACrF,MAAM,GAAG,GAAG,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,IAAI,CAAC,GAAG;YAAE,SAAS;QAEnB,MAAM,UAAU,GAAG,IAAA,gDAAsB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,8BAA8B;gBACpC,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,OAAO,EAAE,oEAAoE,UAAU,CAAC,cAAc,gFAAgF,UAAU,CAAC,cAAc,oCAAoC;aACnP,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,8BAA8B;gBACpC,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,OAAO,EAAE,kEAAkE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,4FAA4F;aACvM,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAEM,KAAK,gCACX,OAA0B,EAC1B,QAAgB,EAChB,MAAc,EACd,WAAyB;IAEzB,IAAI,MAAmC,CAAC;IACxC,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,MAAM,GAAG,MAAM,+BAA+B,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAChF,CAAC;SAAM,CAAC;QACP,MAAM,GAAG;YACR,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,uCAAuC;YAC/C,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACP,gGAAgG;aAChG;YACD,OAAO,EAAE,gDAAgD;SACzD,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAEnC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrF,MAAM,kBAAkB,GAAG,MAAM,mCAAmC,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE/F,OAAO;QACN,GAAG,MAAM;QACT,QAAQ,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,kBAAkB,CAAC;KAC9C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { WorkflowJSON } from '@n8n/workflow-sdk';
|
|
2
|
+
import type { InstanceAiContext } from '../../types';
|
|
3
|
+
export declare const INLINE_SOURCE_LIMIT_CHARS = 12000;
|
|
4
|
+
export declare const WORKFLOW_SOURCE_DIR = "src/workflows";
|
|
5
|
+
export type MaterializedSourceStatus = 'written' | 'refreshed' | 'current' | 'conflict';
|
|
6
|
+
export interface SourceNodeIndexEntry {
|
|
7
|
+
name: string;
|
|
8
|
+
type: string;
|
|
9
|
+
line: number;
|
|
10
|
+
}
|
|
11
|
+
export interface MaterializedWorkflowSource {
|
|
12
|
+
filePath: string;
|
|
13
|
+
status: MaterializedSourceStatus;
|
|
14
|
+
sourceHash: string;
|
|
15
|
+
content: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function workflowSourceFileSlug(name: string, workflowId: string): string;
|
|
18
|
+
export declare function indexSourceNodes(json: WorkflowJSON, code: string): Promise<SourceNodeIndexEntry[]>;
|
|
19
|
+
export declare function materializeWorkflowSource(context: InstanceAiContext, options: {
|
|
20
|
+
workflowId: string;
|
|
21
|
+
name: string;
|
|
22
|
+
code: string;
|
|
23
|
+
saved: {
|
|
24
|
+
versionId: string;
|
|
25
|
+
checksum?: string;
|
|
26
|
+
};
|
|
27
|
+
abortSignal?: AbortSignal;
|
|
28
|
+
}): Promise<MaterializedWorkflowSource>;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WORKFLOW_SOURCE_DIR = exports.INLINE_SOURCE_LIMIT_CHARS = void 0;
|
|
4
|
+
exports.workflowSourceFileSlug = workflowSourceFileSlug;
|
|
5
|
+
exports.indexSourceNodes = indexSourceNodes;
|
|
6
|
+
exports.materializeWorkflowSource = materializeWorkflowSource;
|
|
7
|
+
const workflow_file_bindings_1 = require("./workflow-file-bindings");
|
|
8
|
+
const workflow_source_compiler_1 = require("./workflow-source-compiler");
|
|
9
|
+
const workspace_files_1 = require("../../workspace/workspace-files");
|
|
10
|
+
exports.INLINE_SOURCE_LIMIT_CHARS = 12_000;
|
|
11
|
+
exports.WORKFLOW_SOURCE_DIR = 'src/workflows';
|
|
12
|
+
function slugify(value, maxLength) {
|
|
13
|
+
return value
|
|
14
|
+
.toLowerCase()
|
|
15
|
+
.normalize('NFKD')
|
|
16
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
17
|
+
.replace(/^-+|-+$/g, '')
|
|
18
|
+
.slice(0, maxLength)
|
|
19
|
+
.replace(/-+$/g, '');
|
|
20
|
+
}
|
|
21
|
+
function workflowSourceFileSlug(name, workflowId) {
|
|
22
|
+
const slug = slugify(name, 60);
|
|
23
|
+
if (slug.length > 0)
|
|
24
|
+
return slug;
|
|
25
|
+
const idSlug = slugify(workflowId, 60);
|
|
26
|
+
return idSlug.length > 0 ? idSlug : 'workflow';
|
|
27
|
+
}
|
|
28
|
+
async function indexSourceNodes(json, code) {
|
|
29
|
+
const { locateNodeDeclarations } = await import('@n8n/workflow-sdk');
|
|
30
|
+
const byId = new Map();
|
|
31
|
+
const byName = new Map();
|
|
32
|
+
for (const { id, name, line } of locateNodeDeclarations(code)) {
|
|
33
|
+
if (id !== undefined && !byId.has(id))
|
|
34
|
+
byId.set(id, line);
|
|
35
|
+
if (name !== undefined && !byName.has(name))
|
|
36
|
+
byName.set(name, line);
|
|
37
|
+
}
|
|
38
|
+
const nodes = json.nodes ?? [];
|
|
39
|
+
const idCounts = new Map();
|
|
40
|
+
for (const node of nodes)
|
|
41
|
+
idCounts.set(node.id, (idCounts.get(node.id) ?? 0) + 1);
|
|
42
|
+
return nodes.map((node) => {
|
|
43
|
+
const name = node.name ?? '';
|
|
44
|
+
const byUniqueId = idCounts.get(node.id) === 1 ? byId.get(node.id) : undefined;
|
|
45
|
+
return { name, type: node.type, line: byUniqueId ?? byName.get(name) ?? 0 };
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
async function resolveSourceFilePath(context, workflowId, name) {
|
|
49
|
+
const own = (await (0, workflow_file_bindings_1.findWorkflowSourceFileBindingsForWorkflow)(context, workflowId)).find((binding) => (0, workflow_source_compiler_1.isTypeScriptWorkflowSource)(binding.filePath));
|
|
50
|
+
if (own)
|
|
51
|
+
return { filePath: own.filePath, binding: own };
|
|
52
|
+
const slug = workflowSourceFileSlug(name, workflowId);
|
|
53
|
+
const candidate = `${exports.WORKFLOW_SOURCE_DIR}/${slug}.workflow.ts`;
|
|
54
|
+
const taken = await (0, workflow_file_bindings_1.findWorkflowSourceFileBindingsForWorkflow)(context, undefined, candidate);
|
|
55
|
+
const filePath = taken.length === 0
|
|
56
|
+
? candidate
|
|
57
|
+
: `${exports.WORKFLOW_SOURCE_DIR}/${slug}-${slugify(workflowId, 8) || 'x'}.workflow.ts`;
|
|
58
|
+
return { filePath: (0, workflow_file_bindings_1.normalizeWorkflowSourceFilePath)(filePath) };
|
|
59
|
+
}
|
|
60
|
+
async function materializeWorkflowSource(context, options) {
|
|
61
|
+
const workspace = context.workspace;
|
|
62
|
+
if (!workspace) {
|
|
63
|
+
throw new Error('Runtime workspace is required to materialize workflow source.');
|
|
64
|
+
}
|
|
65
|
+
const { workflowId, name, code, saved } = options;
|
|
66
|
+
const { filePath, binding } = await resolveSourceFilePath(context, workflowId, name);
|
|
67
|
+
const sourceHash = (0, workflow_file_bindings_1.hashWorkflowSource)(code);
|
|
68
|
+
const fileOptions = {
|
|
69
|
+
logger: context.logger,
|
|
70
|
+
resourceLabel: 'Workflow source file',
|
|
71
|
+
abortSignal: options.abortSignal,
|
|
72
|
+
};
|
|
73
|
+
const existing = await (0, workspace_files_1.readWorkspaceFile)(workspace, filePath, fileOptions);
|
|
74
|
+
if (existing !== null) {
|
|
75
|
+
const existingHash = (0, workflow_file_bindings_1.hashWorkflowSource)(existing);
|
|
76
|
+
if (binding?.sourceHash === undefined || existingHash !== binding.sourceHash) {
|
|
77
|
+
return { filePath, status: 'conflict', sourceHash: existingHash, content: existing };
|
|
78
|
+
}
|
|
79
|
+
if (existingHash === sourceHash) {
|
|
80
|
+
return { filePath, status: 'current', sourceHash, content: existing };
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
await (0, workspace_files_1.writeWorkspaceFile)(workspace, filePath, code, fileOptions);
|
|
84
|
+
await (0, workflow_file_bindings_1.saveWorkflowSourceFileBinding)(context, {
|
|
85
|
+
filePath,
|
|
86
|
+
workflowId,
|
|
87
|
+
workflowVersionId: saved.versionId,
|
|
88
|
+
...(saved.checksum !== undefined ? { workflowChecksum: saved.checksum } : {}),
|
|
89
|
+
sourceHash,
|
|
90
|
+
});
|
|
91
|
+
return {
|
|
92
|
+
filePath,
|
|
93
|
+
status: existing !== null ? 'refreshed' : 'written',
|
|
94
|
+
sourceHash,
|
|
95
|
+
content: code,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=workflow-source-materializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-source-materializer.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-source-materializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,7 +40,7 @@ export declare const workflowsResumeSchema: z.ZodObject<{
|
|
|
40
40
|
testTriggerNode?: string | undefined;
|
|
41
41
|
scope?: "once" | "session" | undefined;
|
|
42
42
|
}>;
|
|
43
|
-
export type WorkflowAction = 'list' | 'get' | 'get-json' | 'get-as-code' | 'delete' | 'unarchive' | 'setup' | 'validate' | 'update' | 'publish' | 'unpublish' | 'list-versions' | 'restore-version' | 'update-version';
|
|
43
|
+
export type WorkflowAction = 'list' | 'node-usage' | 'get' | 'get-json' | 'get-as-code' | 'delete' | 'unarchive' | 'setup' | 'validate' | 'update' | 'publish' | 'unpublish' | 'list-versions' | 'restore-version' | 'update-version';
|
|
44
44
|
export interface WorkflowsToolOptions {
|
|
45
45
|
allowedActions?: readonly WorkflowAction[];
|
|
46
46
|
descriptionPrefix?: string;
|