@n8n/instance-ai 1.10.2 → 1.11.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/README.md +128 -0
- package/dist/agent/instance-agent.js +8 -0
- package/dist/agent/instance-agent.js.map +1 -1
- package/dist/agent/shared-prompts.d.ts +1 -0
- package/dist/agent/shared-prompts.js +25 -0
- package/dist/agent/shared-prompts.js.map +1 -1
- package/dist/agent/sub-agent-debriefing.d.ts +8 -8
- package/dist/agent/system-prompt.d.ts +2 -0
- package/dist/agent/system-prompt.js +52 -93
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/constants/max-steps.d.ts +0 -1
- package/dist/constants/max-steps.js +0 -1
- package/dist/constants/max-steps.js.map +1 -1
- package/dist/index.d.ts +123 -33
- package/dist/index.js +103 -96
- package/dist/index.js.map +1 -1
- package/dist/knowledge-base/build-templates-index.d.ts +12 -0
- package/dist/knowledge-base/build-templates-index.js +113 -0
- package/dist/knowledge-base/build-templates-index.js.map +1 -0
- package/dist/knowledge-base/extract-builder-templates-archive.d.ts +2 -0
- package/dist/knowledge-base/extract-builder-templates-archive.js +89 -0
- package/dist/knowledge-base/extract-builder-templates-archive.js.map +1 -0
- package/dist/knowledge-base/materialize-knowledge-base.d.ts +67 -0
- package/dist/knowledge-base/materialize-knowledge-base.js +186 -0
- package/dist/knowledge-base/materialize-knowledge-base.js.map +1 -0
- package/dist/mcp/mcp-client-manager.js +6 -1
- package/dist/mcp/mcp-client-manager.js.map +1 -1
- package/dist/parsers/pdf-parser.js +4 -0
- package/dist/parsers/pdf-parser.js.map +1 -1
- package/dist/planned-tasks/planned-task-service.d.ts +5 -1
- package/dist/planned-tasks/planned-task-service.js +29 -1
- package/dist/planned-tasks/planned-task-service.js.map +1 -1
- package/dist/runtime/run-state-registry.d.ts +8 -0
- package/dist/runtime/run-state-registry.js.map +1 -1
- package/dist/runtime/terminal-response-guard.d.ts +2 -1
- package/dist/runtime/terminal-response-guard.js +20 -0
- package/dist/runtime/terminal-response-guard.js.map +1 -1
- package/dist/skills/materialize-runtime-skills.d.ts +1 -7
- package/dist/skills/materialize-runtime-skills.js +96 -176
- package/dist/skills/materialize-runtime-skills.js.map +1 -1
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/planned-task-storage.js +1 -0
- package/dist/storage/planned-task-storage.js.map +1 -1
- package/dist/storage/terminal-outcome-storage.d.ts +2 -2
- package/dist/storage/workflow-loop-storage.d.ts +199 -70
- package/dist/storage/workflow-loop-storage.js +107 -0
- package/dist/storage/workflow-loop-storage.js.map +1 -1
- package/dist/stream/work-summary-accumulator.d.ts +6 -6
- package/dist/tools/attachments/parse-file.tool.d.ts +18 -18
- package/dist/tools/credentials.tool.d.ts +2 -5
- package/dist/tools/credentials.tool.js +2 -6
- package/dist/tools/credentials.tool.js.map +1 -1
- package/dist/tools/executions.tool.js +53 -7
- package/dist/tools/executions.tool.js.map +1 -1
- package/dist/tools/index.js +3 -9
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/nodes/node-search-engine.d.ts +2 -0
- package/dist/tools/nodes/node-search-engine.js +66 -7
- package/dist/tools/nodes/node-search-engine.js.map +1 -1
- package/dist/tools/nodes.tool.js +10 -3
- package/dist/tools/nodes.tool.js.map +1 -1
- package/dist/tools/orchestration/complete-checkpoint.tool.js +69 -0
- package/dist/tools/orchestration/complete-checkpoint.tool.js.map +1 -1
- package/dist/tools/orchestration/delegate.schemas.d.ts +5 -5
- package/dist/tools/orchestration/delegate.tool.js +1 -1
- package/dist/tools/orchestration/delegate.tool.js.map +1 -1
- package/dist/tools/orchestration/plan.tool.js +96 -60
- package/dist/tools/orchestration/plan.tool.js.map +1 -1
- package/dist/tools/orchestration/report-verification-verdict.tool.d.ts +9 -6
- package/dist/tools/orchestration/report-verification-verdict.tool.js +6 -1
- package/dist/tools/orchestration/report-verification-verdict.tool.js.map +1 -1
- package/dist/tools/orchestration/verify-built-workflow.tool.js +3 -2
- package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
- package/dist/tools/tool-ids.d.ts +0 -5
- package/dist/tools/tool-ids.js +3 -7
- package/dist/tools/tool-ids.js.map +1 -1
- package/dist/tools/workflows/build-workflow.tool.d.ts +8 -2
- package/dist/tools/workflows/build-workflow.tool.js +371 -17
- package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/materialize-node-type.tool.d.ts +4 -4
- package/dist/tools/workflows/materialize-node-type.tool.js +2 -2
- package/dist/tools/workflows/materialize-node-type.tool.js.map +1 -1
- package/dist/tools/workflows/setup-workflow.schema.d.ts +32 -32
- package/dist/tools/workflows/submit-workflow.tool.d.ts +16 -12
- package/dist/tools/workflows/submit-workflow.tool.js +9 -2
- package/dist/tools/workflows/submit-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/write-sandbox-file.tool.js +2 -2
- package/dist/tools/workflows/write-sandbox-file.tool.js.map +1 -1
- package/dist/tools/workflows.tool.js +5 -0
- package/dist/tools/workflows.tool.js.map +1 -1
- package/dist/tracing/langsmith-tracing.js +6 -1
- package/dist/tracing/langsmith-tracing.js.map +1 -1
- package/dist/tracing/trace-payloads.js +2 -6
- package/dist/tracing/trace-payloads.js.map +1 -1
- package/dist/types.d.ts +48 -9
- package/dist/types.js.map +1 -1
- package/dist/workflow-builder/build-failure-tracker.d.ts +10 -0
- package/dist/workflow-builder/build-failure-tracker.js +36 -0
- package/dist/workflow-builder/build-failure-tracker.js.map +1 -0
- package/dist/workflow-builder/index.d.ts +1 -0
- package/dist/workflow-builder/index.js +4 -1
- package/dist/workflow-builder/index.js.map +1 -1
- package/dist/workflow-loop/guidance.js +10 -6
- package/dist/workflow-loop/guidance.js.map +1 -1
- package/dist/workflow-loop/index.d.ts +3 -2
- package/dist/workflow-loop/index.js +14 -1
- package/dist/workflow-loop/index.js.map +1 -1
- package/dist/workflow-loop/runtime.js +3 -1
- package/dist/workflow-loop/runtime.js.map +1 -1
- package/dist/workflow-loop/verification-obligation.d.ts +15 -0
- package/dist/workflow-loop/verification-obligation.js +140 -0
- package/dist/workflow-loop/verification-obligation.js.map +1 -0
- package/dist/workflow-loop/workflow-loop-controller.js +26 -1
- package/dist/workflow-loop/workflow-loop-controller.js.map +1 -1
- package/dist/workflow-loop/workflow-loop-state.d.ts +416 -62
- package/dist/workflow-loop/workflow-loop-state.js +66 -1
- package/dist/workflow-loop/workflow-loop-state.js.map +1 -1
- package/dist/workspace/builder-templates-service.js.map +1 -1
- package/dist/workspace/compute-workspace-content-hash.d.ts +1 -0
- package/dist/workspace/compute-workspace-content-hash.js +15 -0
- package/dist/workspace/compute-workspace-content-hash.js.map +1 -0
- package/dist/workspace/create-workspace.d.ts +9 -43
- package/dist/workspace/create-workspace.js +45 -55
- package/dist/workspace/create-workspace.js.map +1 -1
- package/dist/workspace/lazy-runtime-workspace.js +1 -1
- package/dist/workspace/lazy-runtime-workspace.js.map +1 -1
- package/dist/workspace/prebaked-workspace-bundle.d.ts +39 -0
- package/dist/workspace/prebaked-workspace-bundle.js +75 -0
- package/dist/workspace/prebaked-workspace-bundle.js.map +1 -0
- package/dist/workspace/sandbox-fs.d.ts +9 -24
- package/dist/workspace/sandbox-fs.js +2 -16
- package/dist/workspace/sandbox-fs.js.map +1 -1
- package/dist/workspace/sandbox-setup.d.ts +1 -7
- package/dist/workspace/sandbox-setup.js +28 -170
- package/dist/workspace/sandbox-setup.js.map +1 -1
- package/dist/workspace/snapshot-image-context.d.ts +5 -0
- package/dist/workspace/snapshot-image-context.js +36 -0
- package/dist/workspace/snapshot-image-context.js.map +1 -0
- package/dist/workspace/snapshot-manager.d.ts +9 -9
- package/dist/workspace/snapshot-manager.js +57 -67
- package/dist/workspace/snapshot-manager.js.map +1 -1
- package/dist/workspace/template-telemetry.js +4 -4
- package/dist/workspace/template-telemetry.js.map +1 -1
- package/dist/workspace/workspace-file-content.d.ts +2 -0
- package/dist/workspace/workspace-file-content.js +11 -0
- package/dist/workspace/workspace-file-content.js.map +1 -0
- package/dist/workspace/workspace-files.d.ts +20 -0
- package/dist/workspace/workspace-files.js +74 -0
- package/dist/workspace/workspace-files.js.map +1 -0
- package/dist/workspace/workspace-manifest.d.ts +12 -0
- package/dist/workspace/workspace-manifest.js +28 -0
- package/dist/workspace/workspace-manifest.js.map +1 -0
- package/package.json +21 -15
- package/skills/data-table-manager/SKILL.md +6 -6
- package/skills/debugging-executions/SKILL.md +44 -0
- package/skills/planned-task-runtime/SKILL.md +163 -0
- package/skills/planning/SKILL.md +137 -0
- package/skills/post-build-flow/SKILL.md +119 -0
- package/skills/post-build-flow/references/trigger-input-data-shapes.md +38 -0
- package/skills/workflow-builder/SKILL.md +608 -0
- package/dist/tools/best-practices/index.d.ts +0 -2
- package/dist/tools/best-practices/index.js +0 -10
- package/dist/tools/best-practices/index.js.map +0 -1
- package/dist/tools/best-practices/techniques.d.ts +0 -1
- package/dist/tools/best-practices/techniques.js +0 -7
- package/dist/tools/best-practices/techniques.js.map +0 -1
- package/dist/tools/orchestration/add-plan-item.tool.d.ts +0 -5
- package/dist/tools/orchestration/add-plan-item.tool.js +0 -89
- package/dist/tools/orchestration/add-plan-item.tool.js.map +0 -1
- package/dist/tools/orchestration/blueprint-accumulator.d.ts +0 -49
- package/dist/tools/orchestration/blueprint-accumulator.js +0 -176
- package/dist/tools/orchestration/blueprint-accumulator.js.map +0 -1
- package/dist/tools/orchestration/blueprint.schema.d.ts +0 -182
- package/dist/tools/orchestration/blueprint.schema.js +0 -56
- package/dist/tools/orchestration/blueprint.schema.js.map +0 -1
- package/dist/tools/orchestration/build-workflow-agent.prompt.d.ts +0 -8
- package/dist/tools/orchestration/build-workflow-agent.prompt.js +0 -466
- package/dist/tools/orchestration/build-workflow-agent.prompt.js.map +0 -1
- package/dist/tools/orchestration/build-workflow-agent.tool.d.ts +0 -148
- package/dist/tools/orchestration/build-workflow-agent.tool.js +0 -1498
- package/dist/tools/orchestration/build-workflow-agent.tool.js.map +0 -1
- package/dist/tools/orchestration/builder-memory-compaction.d.ts +0 -42
- package/dist/tools/orchestration/builder-memory-compaction.js +0 -132
- package/dist/tools/orchestration/builder-memory-compaction.js.map +0 -1
- package/dist/tools/orchestration/plan-agent-prompt.d.ts +0 -1
- package/dist/tools/orchestration/plan-agent-prompt.js +0 -83
- package/dist/tools/orchestration/plan-agent-prompt.js.map +0 -1
- package/dist/tools/orchestration/plan-with-agent.tool.d.ts +0 -27
- package/dist/tools/orchestration/plan-with-agent.tool.js +0 -710
- package/dist/tools/orchestration/plan-with-agent.tool.js.map +0 -1
- package/dist/tools/orchestration/submit-plan.tool.d.ts +0 -3
- package/dist/tools/orchestration/submit-plan.tool.js +0 -98
- package/dist/tools/orchestration/submit-plan.tool.js.map +0 -1
- package/dist/tools/templates.tool.d.ts +0 -1
- package/dist/tools/templates.tool.js +0 -58
- package/dist/tools/templates.tool.js.map +0 -1
- package/dist/workspace/daytona-auth-manager.d.ts +0 -26
- package/dist/workspace/daytona-auth-manager.js +0 -90
- package/dist/workspace/daytona-auth-manager.js.map +0 -1
- package/dist/workspace/daytona-filesystem.d.ts +0 -25
- package/dist/workspace/daytona-filesystem.js +0 -132
- package/dist/workspace/daytona-filesystem.js.map +0 -1
- package/dist/workspace/daytona-sandbox.d.ts +0 -71
- package/dist/workspace/daytona-sandbox.js +0 -368
- package/dist/workspace/daytona-sandbox.js.map +0 -1
- package/dist/workspace/lazy-daytona.d.ts +0 -2
- package/dist/workspace/lazy-daytona.js +0 -12
- package/dist/workspace/lazy-daytona.js.map +0 -1
- package/dist/workspace/local-filesystem.d.ts +0 -48
- package/dist/workspace/local-filesystem.js +0 -250
- package/dist/workspace/local-filesystem.js.map +0 -1
- package/dist/workspace/local-sandbox.d.ts +0 -28
- package/dist/workspace/local-sandbox.js +0 -121
- package/dist/workspace/local-sandbox.js.map +0 -1
- package/dist/workspace/n8n-sandbox-filesystem.d.ts +0 -25
- package/dist/workspace/n8n-sandbox-filesystem.js +0 -128
- package/dist/workspace/n8n-sandbox-filesystem.js.map +0 -1
- package/dist/workspace/n8n-sandbox-sandbox.d.ts +0 -35
- package/dist/workspace/n8n-sandbox-sandbox.js +0 -143
- package/dist/workspace/n8n-sandbox-sandbox.js.map +0 -1
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SnapshotManager = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const sandbox_1 = require("@n8n/agents/sandbox");
|
|
5
|
+
const materialize_knowledge_base_1 = require("../knowledge-base/materialize-knowledge-base");
|
|
6
|
+
const builder_templates_service_1 = require("./builder-templates-service");
|
|
6
7
|
const sandbox_setup_1 = require("./sandbox-setup");
|
|
8
|
+
const snapshot_image_context_1 = require("./snapshot-image-context");
|
|
7
9
|
const materialize_runtime_skills_1 = require("../skills/materialize-runtime-skills");
|
|
8
10
|
const runtime_skills_1 = require("../skills/runtime-skills");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
function b64(s) {
|
|
12
|
-
return Buffer.from(s, 'utf-8').toString('base64');
|
|
13
|
-
}
|
|
14
|
-
function shellQuote(value) {
|
|
15
|
-
return `'${value.replaceAll("'", "'\"'\"'")}'`;
|
|
16
|
-
}
|
|
11
|
+
const DAYTONA_WORKSPACE_BAKE_ROOT = '/tmp/n8n-workspace-bake';
|
|
12
|
+
const SNAPSHOT_WORKSPACE_LAYOUT_DIRS = ['src', 'chunks', 'node-types'];
|
|
17
13
|
function isAlreadyExistsError(error) {
|
|
18
|
-
const { DaytonaError } = (0,
|
|
14
|
+
const { DaytonaError } = (0, sandbox_1.loadDaytona)();
|
|
19
15
|
if (!(error instanceof DaytonaError))
|
|
20
16
|
return false;
|
|
21
17
|
if (error.statusCode === 409)
|
|
@@ -26,18 +22,18 @@ class SnapshotManager {
|
|
|
26
22
|
baseImage;
|
|
27
23
|
logger;
|
|
28
24
|
n8nVersion;
|
|
29
|
-
errorReporter;
|
|
30
25
|
runtimeSkillSource;
|
|
26
|
+
templatesService;
|
|
31
27
|
cachedImage = null;
|
|
32
|
-
snapshotPromise = null;
|
|
33
|
-
snapshotSuffixPromise = null;
|
|
34
28
|
runtimeSkillBundlePromise = null;
|
|
35
|
-
|
|
29
|
+
knowledgeBaseBundlePromise = null;
|
|
30
|
+
stagingDir = null;
|
|
31
|
+
constructor(baseImage, logger, n8nVersion, runtimeSkillSource, templatesService) {
|
|
36
32
|
this.baseImage = baseImage;
|
|
37
33
|
this.logger = logger;
|
|
38
34
|
this.n8nVersion = n8nVersion;
|
|
39
|
-
this.errorReporter = errorReporter;
|
|
40
35
|
this.runtimeSkillSource = runtimeSkillSource;
|
|
36
|
+
this.templatesService = templatesService;
|
|
41
37
|
}
|
|
42
38
|
async ensureImage() {
|
|
43
39
|
this.cachedImage ??= this.prepareImage();
|
|
@@ -46,29 +42,38 @@ class SnapshotManager {
|
|
|
46
42
|
async prepareImage() {
|
|
47
43
|
const base = this.baseImage ?? 'daytonaio/sandbox:0.5.0';
|
|
48
44
|
const runtimeSkillBundle = await this.runtimeSkillBundle();
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
|
|
45
|
+
const knowledgeBaseBundle = await this.knowledgeBaseBundle();
|
|
46
|
+
const cacheKey = this.n8nVersion ?? `${runtimeSkillBundle?.skillsHash}-${knowledgeBaseBundle.contentHash}`;
|
|
47
|
+
const workspaceFiles = new Map([
|
|
48
|
+
...(runtimeSkillBundle?.files ?? []),
|
|
49
|
+
...(knowledgeBaseBundle?.files ?? []),
|
|
50
|
+
]);
|
|
51
|
+
workspaceFiles.set(`${sandbox_1.DAYTONA_WORKSPACE_ROOT}/package.json`, sandbox_setup_1.PACKAGE_JSON);
|
|
52
|
+
workspaceFiles.set(`${sandbox_1.DAYTONA_WORKSPACE_ROOT}/tsconfig.json`, sandbox_setup_1.TSCONFIG_JSON);
|
|
53
|
+
workspaceFiles.set(`${sandbox_1.DAYTONA_WORKSPACE_ROOT}/build.mjs`, sandbox_setup_1.BUILD_MJS);
|
|
54
|
+
const { stagingDir } = await (0, snapshot_image_context_1.stageWorkspaceFilesForImage)(workspaceFiles, sandbox_1.DAYTONA_WORKSPACE_ROOT, cacheKey);
|
|
55
|
+
this.stagingDir = stagingDir;
|
|
56
|
+
const { Image } = (0, sandbox_1.loadDaytona)();
|
|
57
|
+
const layoutDirs = SNAPSHOT_WORKSPACE_LAYOUT_DIRS.map((dir) => `${sandbox_1.DAYTONA_WORKSPACE_ROOT}/${dir}`).join(' ');
|
|
58
|
+
const image = Image.base(base)
|
|
59
|
+
.addLocalDir(stagingDir, DAYTONA_WORKSPACE_BAKE_ROOT)
|
|
60
|
+
.runCommands(`cp -a ${DAYTONA_WORKSPACE_BAKE_ROOT}/. ${sandbox_1.DAYTONA_WORKSPACE_ROOT}/ && mkdir -p ${layoutDirs} && cd ${sandbox_1.DAYTONA_WORKSPACE_ROOT} && npm install --ignore-scripts`);
|
|
62
61
|
this.logger.info('Builder image descriptor prepared', {
|
|
63
62
|
base,
|
|
64
63
|
dockerfileLength: image.dockerfile.length,
|
|
65
64
|
runtimeSkillsHash: runtimeSkillBundle?.skillsHash,
|
|
66
65
|
runtimeSkillFiles: runtimeSkillBundle?.files.size ?? 0,
|
|
66
|
+
knowledgeBaseHash: knowledgeBaseBundle.contentHash,
|
|
67
|
+
knowledgeBaseFiles: knowledgeBaseBundle.files.size,
|
|
68
|
+
stagingDir,
|
|
67
69
|
});
|
|
68
70
|
return image;
|
|
69
71
|
}
|
|
70
72
|
async createSnapshot(daytona, options) {
|
|
71
|
-
const name =
|
|
73
|
+
const name = this.snapshotName();
|
|
74
|
+
if (!name) {
|
|
75
|
+
throw new Error('SnapshotManager: n8nVersion is required to derive a snapshot name');
|
|
76
|
+
}
|
|
72
77
|
try {
|
|
73
78
|
await daytona.snapshot.create({ name, image: await this.ensureImage() }, options);
|
|
74
79
|
this.logger.info('Created versioned Daytona snapshot', { name });
|
|
@@ -82,57 +87,42 @@ class SnapshotManager {
|
|
|
82
87
|
throw error;
|
|
83
88
|
}
|
|
84
89
|
}
|
|
85
|
-
|
|
90
|
+
snapshotName() {
|
|
86
91
|
if (!this.n8nVersion)
|
|
87
92
|
return null;
|
|
88
|
-
|
|
89
|
-
if (mode === 'proxy')
|
|
90
|
-
return name;
|
|
91
|
-
if (!daytona) {
|
|
92
|
-
throw new Error('SnapshotManager: Daytona client is required to create a snapshot');
|
|
93
|
-
}
|
|
94
|
-
this.snapshotPromise ??= this.createSnapshot(daytona).catch((error) => {
|
|
95
|
-
this.errorReporter?.error(error, {
|
|
96
|
-
tags: { component: 'snapshot-manager', operation: 'create-snapshot' },
|
|
97
|
-
extra: { snapshotName: name },
|
|
98
|
-
});
|
|
99
|
-
this.logger.warn('Failed to create versioned snapshot; using declarative image', {
|
|
100
|
-
name,
|
|
101
|
-
error: error instanceof Error ? error.message : String(error),
|
|
102
|
-
});
|
|
103
|
-
return null;
|
|
104
|
-
});
|
|
105
|
-
const result = await this.snapshotPromise;
|
|
106
|
-
if (result === null)
|
|
107
|
-
this.snapshotPromise = null;
|
|
108
|
-
return result;
|
|
109
|
-
}
|
|
110
|
-
async snapshotSuffix() {
|
|
111
|
-
this.snapshotSuffixPromise ??= (async () => {
|
|
112
|
-
const runtimeSkillBundle = await this.runtimeSkillBundle();
|
|
113
|
-
return runtimeSkillBundle?.skillsHash ?? EMPTY_RUNTIME_SKILLS_HASH;
|
|
114
|
-
})();
|
|
115
|
-
return await this.snapshotSuffixPromise;
|
|
93
|
+
return `n8n/instance-ai:${this.n8nVersion}`;
|
|
116
94
|
}
|
|
117
95
|
async runtimeSkillBundle() {
|
|
118
96
|
this.runtimeSkillBundlePromise ??= (0, materialize_runtime_skills_1.buildRuntimeSkillWorkspaceBundle)({
|
|
119
97
|
source: this.runtimeSkillSource ?? (0, runtime_skills_1.loadInstanceAiRuntimeSkillSource)(),
|
|
120
|
-
root: DAYTONA_WORKSPACE_ROOT,
|
|
98
|
+
root: sandbox_1.DAYTONA_WORKSPACE_ROOT,
|
|
121
99
|
logger: this.logger,
|
|
122
100
|
});
|
|
123
101
|
return await this.runtimeSkillBundlePromise;
|
|
124
102
|
}
|
|
125
|
-
async
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
103
|
+
async knowledgeBaseBundle() {
|
|
104
|
+
this.knowledgeBaseBundlePromise ??= this.buildKnowledgeBaseBundle();
|
|
105
|
+
return await this.knowledgeBaseBundlePromise;
|
|
106
|
+
}
|
|
107
|
+
async buildKnowledgeBaseBundle() {
|
|
108
|
+
const templatesService = this.templatesService ??
|
|
109
|
+
new builder_templates_service_1.BuilderTemplatesService((0, builder_templates_service_1.builderTemplatesOptionsFromEnv)({ logger: this.logger }));
|
|
110
|
+
const templatesBundle = await templatesService.getBundle();
|
|
111
|
+
return await (0, materialize_knowledge_base_1.buildKnowledgeBaseWorkspaceBundle)({
|
|
112
|
+
root: sandbox_1.DAYTONA_WORKSPACE_ROOT,
|
|
113
|
+
templatesArchive: templatesBundle.archive,
|
|
114
|
+
logger: this.logger,
|
|
115
|
+
});
|
|
130
116
|
}
|
|
131
117
|
invalidate() {
|
|
118
|
+
const stagingDir = this.stagingDir;
|
|
132
119
|
this.cachedImage = null;
|
|
133
|
-
this.snapshotPromise = null;
|
|
134
|
-
this.snapshotSuffixPromise = null;
|
|
135
120
|
this.runtimeSkillBundlePromise = null;
|
|
121
|
+
this.knowledgeBaseBundlePromise = null;
|
|
122
|
+
this.stagingDir = null;
|
|
123
|
+
if (stagingDir) {
|
|
124
|
+
void (0, snapshot_image_context_1.disposeSnapshotImageContext)(stagingDir);
|
|
125
|
+
}
|
|
136
126
|
}
|
|
137
127
|
}
|
|
138
128
|
exports.SnapshotManager = SnapshotManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-manager.js","sourceRoot":"","sources":["../../src/workspace/snapshot-manager.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"snapshot-manager.js","sourceRoot":"","sources":["../../src/workspace/snapshot-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,9 +9,9 @@ exports.createTypedToolObserver = createTypedToolObserver;
|
|
|
9
9
|
const utils_1 = require("@n8n/utils");
|
|
10
10
|
const MAX_QUERY_LENGTH = 200;
|
|
11
11
|
const MAX_USER_REQUEST_LENGTH = 120;
|
|
12
|
-
const SEARCH_PATTERN = /\bgrep\b[^|]*\
|
|
12
|
+
const SEARCH_PATTERN = /\bgrep\b[^|]*\bknowledge-base\/templates\/index\.json\b/;
|
|
13
13
|
const READ_COMMAND_HEADS = ['cat', 'head', 'tail', 'sed', 'less', 'more'];
|
|
14
|
-
const READ_FILE_PATTERN = /\
|
|
14
|
+
const READ_FILE_PATTERN = /\bknowledge-base\/templates\/([a-zA-Z0-9._-]+\.ts)\b/;
|
|
15
15
|
function createTemplateTelemetrySession(opts) {
|
|
16
16
|
const baseProps = {
|
|
17
17
|
thread_id: opts.threadId,
|
|
@@ -128,7 +128,7 @@ function getTemplateTelemetrySession(workspace) {
|
|
|
128
128
|
}
|
|
129
129
|
const TYPED_READ_TOOL = 'workspace_read_file';
|
|
130
130
|
const TYPED_GREP_TOOL = 'workspace_grep';
|
|
131
|
-
const
|
|
131
|
+
const TEMPLATES_PATH_PATTERN = /(?:^|\/)knowledge-base\/templates(?:$|\/)/;
|
|
132
132
|
function createTypedToolObserver(session) {
|
|
133
133
|
const pending = new Map();
|
|
134
134
|
return (event) => {
|
|
@@ -171,7 +171,7 @@ function matchTypedTemplateCall(toolName, args) {
|
|
|
171
171
|
}
|
|
172
172
|
if (toolName === TYPED_GREP_TOOL) {
|
|
173
173
|
const path = typeof args.path === 'string' ? args.path : '';
|
|
174
|
-
if (!
|
|
174
|
+
if (!TEMPLATES_PATH_PATTERN.test(path))
|
|
175
175
|
return undefined;
|
|
176
176
|
const pattern = typeof args.pattern === 'string' ? args.pattern : '';
|
|
177
177
|
return { kind: 'search', query: pattern };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-telemetry.js","sourceRoot":"","sources":["../../src/workspace/template-telemetry.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"template-telemetry.js","sourceRoot":"","sources":["../../src/workspace/template-telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.withTrailingNewline = withTrailingNewline;
|
|
4
|
+
exports.stringifyWorkspaceJson = stringifyWorkspaceJson;
|
|
5
|
+
function withTrailingNewline(content) {
|
|
6
|
+
return content.endsWith('\n') ? content : `${content}\n`;
|
|
7
|
+
}
|
|
8
|
+
function stringifyWorkspaceJson(value) {
|
|
9
|
+
return `${JSON.stringify(value, null, 2)}\n`;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=workspace-file-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-file-content.js","sourceRoot":"","sources":["../../src/workspace/workspace-file-content.ts"],"names":[],"mappings":";;AACA,kDAEC;AAGD,wDAEC;AAPD,SAAgB,mBAAmB,CAAC,OAAe;IAClD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC;AAC1D,CAAC;AAGD,SAAgB,sBAAsB,CAAC,KAAc;IACpD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Logger } from '../logger';
|
|
2
|
+
import { type SandboxWorkspace } from './sandbox-fs';
|
|
3
|
+
export interface WorkspaceFileTarget {
|
|
4
|
+
filesystem?: {
|
|
5
|
+
readFile?: (path: string, options?: {
|
|
6
|
+
encoding?: 'utf-8';
|
|
7
|
+
}) => Promise<string | Buffer>;
|
|
8
|
+
writeFile: (path: string, content: string | Buffer, options?: {
|
|
9
|
+
recursive?: boolean;
|
|
10
|
+
}) => Promise<void>;
|
|
11
|
+
};
|
|
12
|
+
sandbox?: SandboxWorkspace['sandbox'];
|
|
13
|
+
}
|
|
14
|
+
export interface WorkspaceFileOptions {
|
|
15
|
+
logger?: Logger;
|
|
16
|
+
resourceLabel?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function readWorkspaceFile(workspace: WorkspaceFileTarget, filePath: string, options?: WorkspaceFileOptions): Promise<string | null>;
|
|
19
|
+
export declare function writeWorkspaceFile(workspace: WorkspaceFileTarget, filePath: string, content: string, options?: WorkspaceFileOptions): Promise<void>;
|
|
20
|
+
export declare function writeWorkspaceFileMap(workspace: WorkspaceFileTarget, files: Map<string, string>, options?: WorkspaceFileOptions): Promise<void>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readWorkspaceFile = readWorkspaceFile;
|
|
4
|
+
exports.writeWorkspaceFile = writeWorkspaceFile;
|
|
5
|
+
exports.writeWorkspaceFileMap = writeWorkspaceFileMap;
|
|
6
|
+
const error_formatting_1 = require("../error-formatting");
|
|
7
|
+
const sandbox_fs_1 = require("./sandbox-fs");
|
|
8
|
+
function resourceLabel(options) {
|
|
9
|
+
return options?.resourceLabel ?? 'Workspace file';
|
|
10
|
+
}
|
|
11
|
+
function decodeWorkspaceFileContent(content) {
|
|
12
|
+
return Buffer.isBuffer(content) ? content.toString('utf-8') : content;
|
|
13
|
+
}
|
|
14
|
+
async function readWorkspaceFile(workspace, filePath, options) {
|
|
15
|
+
const filesystem = workspace.filesystem;
|
|
16
|
+
if (filesystem?.readFile) {
|
|
17
|
+
try {
|
|
18
|
+
return decodeWorkspaceFileContent(await filesystem.readFile(filePath, { encoding: 'utf-8' }));
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
options?.logger?.debug(`${resourceLabel(options)} filesystem read missed`, {
|
|
22
|
+
path: filePath,
|
|
23
|
+
error: (0, error_formatting_1.formatErrorForLog)(error),
|
|
24
|
+
});
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (!workspace.sandbox)
|
|
29
|
+
return null;
|
|
30
|
+
try {
|
|
31
|
+
return await (0, sandbox_fs_1.readFileViaSandbox)(workspace, filePath);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
options?.logger?.debug(`${resourceLabel(options)} command read missed`, {
|
|
35
|
+
path: filePath,
|
|
36
|
+
error: (0, error_formatting_1.formatErrorForLog)(error),
|
|
37
|
+
});
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async function writeWorkspaceFile(workspace, filePath, content, options) {
|
|
42
|
+
const label = resourceLabel(options);
|
|
43
|
+
if (workspace.filesystem) {
|
|
44
|
+
try {
|
|
45
|
+
await workspace.filesystem.writeFile(filePath, content, { recursive: true });
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
try {
|
|
50
|
+
await (0, sandbox_fs_1.writeFileViaSandbox)(workspace, filePath, content);
|
|
51
|
+
options?.logger?.warn(`${label} filesystem write failed; used command fallback`, {
|
|
52
|
+
path: filePath,
|
|
53
|
+
error: (0, error_formatting_1.formatErrorForLog)(error),
|
|
54
|
+
});
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
catch (fallbackError) {
|
|
58
|
+
throw new Error(`Failed to write ${label.toLowerCase()} "${filePath}": ${(0, error_formatting_1.formatErrorForLog)(error)}; command fallback failed: ${(0, error_formatting_1.formatErrorForLog)(fallbackError)}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
await (0, sandbox_fs_1.writeFileViaSandbox)(workspace, filePath, content);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
throw new Error(`Failed to write ${label.toLowerCase()} "${filePath}": ${(0, error_formatting_1.formatErrorForLog)(error)}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async function writeWorkspaceFileMap(workspace, files, options) {
|
|
70
|
+
await Promise.all(Array.from(files, async ([filePath, content]) => {
|
|
71
|
+
await writeWorkspaceFile(workspace, filePath, content, options);
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=workspace-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-files.js","sourceRoot":"","sources":["../../src/workspace/workspace-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const WORKSPACE_MANIFEST_FILE = ".manifest.json";
|
|
2
|
+
export interface VersionedWorkspaceManifest<THashField extends string = string> {
|
|
3
|
+
schemaVersion: number;
|
|
4
|
+
hashField: THashField;
|
|
5
|
+
hash: string;
|
|
6
|
+
}
|
|
7
|
+
interface ParseVersionedWorkspaceManifestOptions<THashField extends string> {
|
|
8
|
+
schemaVersion: number;
|
|
9
|
+
hashField: THashField;
|
|
10
|
+
}
|
|
11
|
+
export declare function parseVersionedWorkspaceManifest<const THashField extends string>(raw: string, options: ParseVersionedWorkspaceManifestOptions<THashField>): VersionedWorkspaceManifest<THashField> | null;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WORKSPACE_MANIFEST_FILE = void 0;
|
|
4
|
+
exports.parseVersionedWorkspaceManifest = parseVersionedWorkspaceManifest;
|
|
5
|
+
const stream_helpers_1 = require("../utils/stream-helpers");
|
|
6
|
+
exports.WORKSPACE_MANIFEST_FILE = '.manifest.json';
|
|
7
|
+
function parseVersionedWorkspaceManifest(raw, options) {
|
|
8
|
+
let parsed;
|
|
9
|
+
try {
|
|
10
|
+
parsed = JSON.parse(raw);
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
if (!(0, stream_helpers_1.isRecord)(parsed))
|
|
16
|
+
return null;
|
|
17
|
+
if (parsed.schemaVersion !== options.schemaVersion)
|
|
18
|
+
return null;
|
|
19
|
+
const hash = parsed[options.hashField];
|
|
20
|
+
if (typeof hash !== 'string' || hash.length === 0)
|
|
21
|
+
return null;
|
|
22
|
+
return {
|
|
23
|
+
schemaVersion: options.schemaVersion,
|
|
24
|
+
hashField: options.hashField,
|
|
25
|
+
hash,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=workspace-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-manifest.js","sourceRoot":"","sources":["../../src/workspace/workspace-manifest.ts"],"names":[],"mappings":";;;AAgBA,0EAsBC;AAtCD,4DAAmD;AAEtC,QAAA,uBAAuB,GAAG,gBAAgB,CAAC;AAcxD,SAAgB,+BAA+B,CAC9C,GAAW,EACX,OAA2D;IAE3D,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,CAAC,IAAA,yBAAQ,EAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,MAAM,CAAC,aAAa,KAAK,OAAO,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEhE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/D,OAAO;QACN,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI;KACJ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@n8n/instance-ai",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "src/index.ts",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"files": [
|
|
8
8
|
"dist/**/*",
|
|
9
9
|
"skills/**/*",
|
|
10
|
-
"
|
|
11
|
-
"
|
|
10
|
+
"LICENSE_EE.md",
|
|
11
|
+
"LICENSE.md"
|
|
12
12
|
],
|
|
13
13
|
"exports": {
|
|
14
14
|
".": {
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"@daytonaio/sdk": "0.175.0",
|
|
35
35
|
"@joplin/turndown-plugin-gfm": "^1.0.12",
|
|
36
36
|
"@mozilla/readability": "^0.6.0",
|
|
37
|
-
"@n8n/sandbox-client": "0.0.4",
|
|
38
37
|
"@opentelemetry/api": "^1.9.0",
|
|
38
|
+
"@thednp/dommatrix": "^2.0.12",
|
|
39
39
|
"csv-parse": "6.2.1",
|
|
40
40
|
"fast-glob": "3.2.12",
|
|
41
41
|
"flatted": "3.4.2",
|
|
@@ -51,23 +51,27 @@
|
|
|
51
51
|
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz",
|
|
52
52
|
"zod": "3.25.67",
|
|
53
53
|
"zod-from-json-schema-v3": "npm:zod-from-json-schema@^0.0.5",
|
|
54
|
-
"@n8n/
|
|
55
|
-
"@n8n/
|
|
56
|
-
"@n8n/
|
|
57
|
-
"
|
|
58
|
-
"@n8n/
|
|
59
|
-
"n8n-
|
|
54
|
+
"@n8n/api-types": "1.26.1",
|
|
55
|
+
"@n8n/mcp-browser": "0.9.1",
|
|
56
|
+
"@n8n/utils": "1.34.0",
|
|
57
|
+
"n8n-workflow": "2.26.1",
|
|
58
|
+
"@n8n/agents": "0.11.0",
|
|
59
|
+
"@n8n/workflow-sdk": "0.19.1"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@ai-sdk/anthropic": "3.0.
|
|
62
|
+
"@ai-sdk/anthropic": "^3.0.81",
|
|
63
63
|
"@langchain/anthropic": "1.3.27",
|
|
64
64
|
"@langchain/core": "1.1.41",
|
|
65
65
|
"@types/luxon": "3.2.0",
|
|
66
66
|
"@types/psl": "1.1.3",
|
|
67
67
|
"@types/turndown": "^5.0.5",
|
|
68
|
+
"@vitest/coverage-v8": "4.1.1",
|
|
68
69
|
"tsx": "^4.19.3",
|
|
69
|
-
"
|
|
70
|
-
"
|
|
70
|
+
"vitest": "^4.1.1",
|
|
71
|
+
"vitest-mock-extended": "^3.1.0",
|
|
72
|
+
"@n8n/typescript-config": "1.5.0",
|
|
73
|
+
"@n8n/vitest-config": "1.14.0",
|
|
74
|
+
"@n8n/ai-workflow-builder": "1.26.1"
|
|
71
75
|
},
|
|
72
76
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
73
77
|
"homepage": "https://n8n.io",
|
|
@@ -83,10 +87,12 @@
|
|
|
83
87
|
"clean": "rimraf dist .turbo",
|
|
84
88
|
"typecheck": "tsc --noEmit",
|
|
85
89
|
"build": "tsc -p ./tsconfig.build.json && tsc-alias -p tsconfig.build.json",
|
|
90
|
+
"build:unchecked": "tsc -p ./tsconfig.build.json --noCheck && tsc-alias -p tsconfig.build.json",
|
|
86
91
|
"format": "biome format --write src",
|
|
87
92
|
"format:check": "biome ci src",
|
|
88
|
-
"test": "
|
|
89
|
-
"test:unit": "
|
|
93
|
+
"test": "vitest run",
|
|
94
|
+
"test:unit": "vitest run",
|
|
95
|
+
"test:dev": "vitest --silent=false",
|
|
90
96
|
"lint": "eslint . --quiet",
|
|
91
97
|
"lint:fix": "eslint . --fix",
|
|
92
98
|
"eval:instance-ai": "tsx evaluations/cli/index.ts",
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
name: data-table-manager
|
|
3
3
|
description: >-
|
|
4
4
|
Designs and manages n8n Data Tables directly with the data-tables and
|
|
5
|
-
parse-file tools. Use when the user asks to
|
|
6
|
-
query, update, clean up, rename columns in, or delete data
|
|
7
|
-
especially from CSV/XLSX/JSON attachments, and before
|
|
8
|
-
create or write to Data Tables.
|
|
5
|
+
parse-file tools. Use when the user asks to list, show, create, inspect,
|
|
6
|
+
import, seed, query, update, clean up, rename columns in, or delete data
|
|
7
|
+
tables and rows, especially from CSV/XLSX/JSON attachments, and before
|
|
8
|
+
building or planning workflows that create or write to Data Tables.
|
|
9
9
|
recommended_tools:
|
|
10
10
|
- data-tables
|
|
11
11
|
- parse-file
|
|
@@ -21,7 +21,7 @@ sub-agent, or create a background plan for data-table-only work.
|
|
|
21
21
|
|
|
22
22
|
Also load this skill before planning or building a workflow whose trigger,
|
|
23
23
|
processing steps, or outputs create, inspect, or write Data Table records, then
|
|
24
|
-
pass the relevant schema/row-handling guidance to the
|
|
24
|
+
pass the relevant schema/row-handling guidance to the planning skill or builder.
|
|
25
25
|
|
|
26
26
|
n8n Data Tables are flat, workflow-friendly stores. Design them so future
|
|
27
27
|
workflow expressions can read predictable field names and so updates/deletes
|
|
@@ -40,7 +40,7 @@ can target rows with narrow filters.
|
|
|
40
40
|
4. Inspect schema before writes, deletes, column changes, imports into an
|
|
41
41
|
existing table, and workflow-facing summaries.
|
|
42
42
|
5. Execute the smallest direct tool sequence. Prefer read -> decide -> write;
|
|
43
|
-
never use
|
|
43
|
+
never use create-tasks or delegate for standalone table work.
|
|
44
44
|
6. Close with facts: table name, table ID when available, project if relevant,
|
|
45
45
|
columns changed, row counts inserted/updated/deleted, skipped rows, and any
|
|
46
46
|
approval or permission blocker.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debugging-executions
|
|
3
|
+
description: >-
|
|
4
|
+
Debug failed or wrong-output workflow executions using executions tools. Load
|
|
5
|
+
when the user reports execution failures, unexpected node output, or empty
|
|
6
|
+
parameter values after a successful run.
|
|
7
|
+
recommended_tools:
|
|
8
|
+
- executions
|
|
9
|
+
- workflows
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Debugging Executions
|
|
13
|
+
|
|
14
|
+
Use this skill when debugging workflow execution failures or successful runs
|
|
15
|
+
with wrong or empty values.
|
|
16
|
+
|
|
17
|
+
## Testing event-triggered workflows
|
|
18
|
+
|
|
19
|
+
Use `executions(action="run")` with `inputData` matching the trigger's output
|
|
20
|
+
shape — do not rebuild the workflow with a Manual Trigger. For trigger
|
|
21
|
+
`inputData` shapes, read `knowledge-base/reference/trigger-input-data-shapes.md`
|
|
22
|
+
when a sandbox workspace is available.
|
|
23
|
+
|
|
24
|
+
## Failed execution
|
|
25
|
+
|
|
26
|
+
`executions(action="debug")` already includes `failedNode.resolvedParameters` —
|
|
27
|
+
start there. That bundle has `parameters` (raw, with expressions intact),
|
|
28
|
+
`resolved` (substituted), `failedExpressions` (those that threw), and
|
|
29
|
+
`emptyResolutions` (those that resolved to `null`/`undefined`/`""` silently).
|
|
30
|
+
The offending expression is usually visible without a follow-up call. Entries in
|
|
31
|
+
either list tagged with `reason: "unreconstructable-context"` are NOT real bugs —
|
|
32
|
+
they reference variables we don't reconstruct in replay (`$vars`, `$secrets`,
|
|
33
|
+
`$response`, `$request`, `$pageCount`, `$ai`). The value existed at execution
|
|
34
|
+
time; we just don't have it here.
|
|
35
|
+
|
|
36
|
+
## Successful execution with wrong or empty value
|
|
37
|
+
|
|
38
|
+
When `debug` doesn't apply because nothing errored, call
|
|
39
|
+
`executions(action="get-resolved-node-parameters", executionId, nodeName)` on the
|
|
40
|
+
node whose output looks off — **do this unprompted**, don't ask the user for
|
|
41
|
+
permission first. It's a cheap read-only inspection and the only reliable way to
|
|
42
|
+
confirm whether an empty value came from an expression silently resolving to
|
|
43
|
+
nullish. Check `emptyResolutions` first; most "this parameter is empty" cases are
|
|
44
|
+
expressions resolving to `null`/`undefined`/`""`, not thrown errors.
|