@n8n/instance-ai 1.10.1 → 1.11.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.
Files changed (221) hide show
  1. package/README.md +128 -0
  2. package/dist/agent/instance-agent.js +8 -0
  3. package/dist/agent/instance-agent.js.map +1 -1
  4. package/dist/agent/shared-prompts.d.ts +1 -0
  5. package/dist/agent/shared-prompts.js +25 -0
  6. package/dist/agent/shared-prompts.js.map +1 -1
  7. package/dist/agent/sub-agent-debriefing.d.ts +8 -8
  8. package/dist/agent/system-prompt.d.ts +2 -0
  9. package/dist/agent/system-prompt.js +52 -93
  10. package/dist/agent/system-prompt.js.map +1 -1
  11. package/dist/build.tsbuildinfo +1 -1
  12. package/dist/constants/max-steps.d.ts +0 -1
  13. package/dist/constants/max-steps.js +0 -1
  14. package/dist/constants/max-steps.js.map +1 -1
  15. package/dist/index.d.ts +123 -33
  16. package/dist/index.js +103 -96
  17. package/dist/index.js.map +1 -1
  18. package/dist/knowledge-base/build-templates-index.d.ts +12 -0
  19. package/dist/knowledge-base/build-templates-index.js +113 -0
  20. package/dist/knowledge-base/build-templates-index.js.map +1 -0
  21. package/dist/knowledge-base/extract-builder-templates-archive.d.ts +2 -0
  22. package/dist/knowledge-base/extract-builder-templates-archive.js +89 -0
  23. package/dist/knowledge-base/extract-builder-templates-archive.js.map +1 -0
  24. package/dist/knowledge-base/materialize-knowledge-base.d.ts +67 -0
  25. package/dist/knowledge-base/materialize-knowledge-base.js +186 -0
  26. package/dist/knowledge-base/materialize-knowledge-base.js.map +1 -0
  27. package/dist/mcp/mcp-client-manager.js +6 -1
  28. package/dist/mcp/mcp-client-manager.js.map +1 -1
  29. package/dist/parsers/pdf-parser.js +4 -0
  30. package/dist/parsers/pdf-parser.js.map +1 -1
  31. package/dist/planned-tasks/planned-task-service.d.ts +5 -1
  32. package/dist/planned-tasks/planned-task-service.js +29 -1
  33. package/dist/planned-tasks/planned-task-service.js.map +1 -1
  34. package/dist/runtime/run-state-registry.d.ts +8 -0
  35. package/dist/runtime/run-state-registry.js.map +1 -1
  36. package/dist/runtime/terminal-response-guard.d.ts +2 -1
  37. package/dist/runtime/terminal-response-guard.js +20 -0
  38. package/dist/runtime/terminal-response-guard.js.map +1 -1
  39. package/dist/skills/materialize-runtime-skills.d.ts +1 -7
  40. package/dist/skills/materialize-runtime-skills.js +96 -176
  41. package/dist/skills/materialize-runtime-skills.js.map +1 -1
  42. package/dist/storage/index.d.ts +1 -1
  43. package/dist/storage/planned-task-storage.js +1 -0
  44. package/dist/storage/planned-task-storage.js.map +1 -1
  45. package/dist/storage/terminal-outcome-storage.d.ts +2 -2
  46. package/dist/storage/workflow-loop-storage.d.ts +199 -70
  47. package/dist/storage/workflow-loop-storage.js +107 -0
  48. package/dist/storage/workflow-loop-storage.js.map +1 -1
  49. package/dist/stream/work-summary-accumulator.d.ts +6 -6
  50. package/dist/tools/attachments/parse-file.tool.d.ts +18 -18
  51. package/dist/tools/credentials.tool.d.ts +2 -5
  52. package/dist/tools/credentials.tool.js +2 -6
  53. package/dist/tools/credentials.tool.js.map +1 -1
  54. package/dist/tools/executions.tool.js +53 -7
  55. package/dist/tools/executions.tool.js.map +1 -1
  56. package/dist/tools/index.js +3 -9
  57. package/dist/tools/index.js.map +1 -1
  58. package/dist/tools/nodes/node-search-engine.d.ts +2 -0
  59. package/dist/tools/nodes/node-search-engine.js +66 -7
  60. package/dist/tools/nodes/node-search-engine.js.map +1 -1
  61. package/dist/tools/nodes.tool.js +10 -3
  62. package/dist/tools/nodes.tool.js.map +1 -1
  63. package/dist/tools/orchestration/complete-checkpoint.tool.js +69 -0
  64. package/dist/tools/orchestration/complete-checkpoint.tool.js.map +1 -1
  65. package/dist/tools/orchestration/delegate.schemas.d.ts +5 -5
  66. package/dist/tools/orchestration/delegate.tool.js +1 -1
  67. package/dist/tools/orchestration/delegate.tool.js.map +1 -1
  68. package/dist/tools/orchestration/plan.tool.js +96 -60
  69. package/dist/tools/orchestration/plan.tool.js.map +1 -1
  70. package/dist/tools/orchestration/report-verification-verdict.tool.d.ts +9 -6
  71. package/dist/tools/orchestration/report-verification-verdict.tool.js +6 -1
  72. package/dist/tools/orchestration/report-verification-verdict.tool.js.map +1 -1
  73. package/dist/tools/orchestration/verify-built-workflow.tool.js +3 -2
  74. package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
  75. package/dist/tools/tool-ids.d.ts +0 -5
  76. package/dist/tools/tool-ids.js +3 -7
  77. package/dist/tools/tool-ids.js.map +1 -1
  78. package/dist/tools/workflows/build-workflow.tool.d.ts +8 -2
  79. package/dist/tools/workflows/build-workflow.tool.js +371 -17
  80. package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
  81. package/dist/tools/workflows/materialize-node-type.tool.d.ts +4 -4
  82. package/dist/tools/workflows/materialize-node-type.tool.js +2 -2
  83. package/dist/tools/workflows/materialize-node-type.tool.js.map +1 -1
  84. package/dist/tools/workflows/setup-workflow.schema.d.ts +32 -32
  85. package/dist/tools/workflows/submit-workflow.tool.d.ts +16 -12
  86. package/dist/tools/workflows/submit-workflow.tool.js +9 -2
  87. package/dist/tools/workflows/submit-workflow.tool.js.map +1 -1
  88. package/dist/tools/workflows/write-sandbox-file.tool.js +2 -2
  89. package/dist/tools/workflows/write-sandbox-file.tool.js.map +1 -1
  90. package/dist/tools/workflows.tool.js +5 -0
  91. package/dist/tools/workflows.tool.js.map +1 -1
  92. package/dist/tracing/langsmith-tracing.js +6 -1
  93. package/dist/tracing/langsmith-tracing.js.map +1 -1
  94. package/dist/tracing/trace-payloads.js +2 -6
  95. package/dist/tracing/trace-payloads.js.map +1 -1
  96. package/dist/types.d.ts +48 -9
  97. package/dist/types.js.map +1 -1
  98. package/dist/workflow-builder/build-failure-tracker.d.ts +10 -0
  99. package/dist/workflow-builder/build-failure-tracker.js +36 -0
  100. package/dist/workflow-builder/build-failure-tracker.js.map +1 -0
  101. package/dist/workflow-builder/index.d.ts +1 -0
  102. package/dist/workflow-builder/index.js +4 -1
  103. package/dist/workflow-builder/index.js.map +1 -1
  104. package/dist/workflow-loop/guidance.js +10 -6
  105. package/dist/workflow-loop/guidance.js.map +1 -1
  106. package/dist/workflow-loop/index.d.ts +3 -2
  107. package/dist/workflow-loop/index.js +14 -1
  108. package/dist/workflow-loop/index.js.map +1 -1
  109. package/dist/workflow-loop/runtime.js +3 -1
  110. package/dist/workflow-loop/runtime.js.map +1 -1
  111. package/dist/workflow-loop/verification-obligation.d.ts +15 -0
  112. package/dist/workflow-loop/verification-obligation.js +140 -0
  113. package/dist/workflow-loop/verification-obligation.js.map +1 -0
  114. package/dist/workflow-loop/workflow-loop-controller.js +26 -1
  115. package/dist/workflow-loop/workflow-loop-controller.js.map +1 -1
  116. package/dist/workflow-loop/workflow-loop-state.d.ts +416 -62
  117. package/dist/workflow-loop/workflow-loop-state.js +66 -1
  118. package/dist/workflow-loop/workflow-loop-state.js.map +1 -1
  119. package/dist/workspace/builder-templates-service.js.map +1 -1
  120. package/dist/workspace/compute-workspace-content-hash.d.ts +1 -0
  121. package/dist/workspace/compute-workspace-content-hash.js +15 -0
  122. package/dist/workspace/compute-workspace-content-hash.js.map +1 -0
  123. package/dist/workspace/create-workspace.d.ts +9 -43
  124. package/dist/workspace/create-workspace.js +45 -55
  125. package/dist/workspace/create-workspace.js.map +1 -1
  126. package/dist/workspace/lazy-runtime-workspace.js +1 -1
  127. package/dist/workspace/lazy-runtime-workspace.js.map +1 -1
  128. package/dist/workspace/prebaked-workspace-bundle.d.ts +39 -0
  129. package/dist/workspace/prebaked-workspace-bundle.js +75 -0
  130. package/dist/workspace/prebaked-workspace-bundle.js.map +1 -0
  131. package/dist/workspace/sandbox-fs.d.ts +9 -24
  132. package/dist/workspace/sandbox-fs.js +2 -16
  133. package/dist/workspace/sandbox-fs.js.map +1 -1
  134. package/dist/workspace/sandbox-setup.d.ts +1 -7
  135. package/dist/workspace/sandbox-setup.js +28 -170
  136. package/dist/workspace/sandbox-setup.js.map +1 -1
  137. package/dist/workspace/snapshot-image-context.d.ts +5 -0
  138. package/dist/workspace/snapshot-image-context.js +36 -0
  139. package/dist/workspace/snapshot-image-context.js.map +1 -0
  140. package/dist/workspace/snapshot-manager.d.ts +9 -9
  141. package/dist/workspace/snapshot-manager.js +57 -67
  142. package/dist/workspace/snapshot-manager.js.map +1 -1
  143. package/dist/workspace/template-telemetry.js +4 -4
  144. package/dist/workspace/template-telemetry.js.map +1 -1
  145. package/dist/workspace/workspace-file-content.d.ts +2 -0
  146. package/dist/workspace/workspace-file-content.js +11 -0
  147. package/dist/workspace/workspace-file-content.js.map +1 -0
  148. package/dist/workspace/workspace-files.d.ts +20 -0
  149. package/dist/workspace/workspace-files.js +74 -0
  150. package/dist/workspace/workspace-files.js.map +1 -0
  151. package/dist/workspace/workspace-manifest.d.ts +12 -0
  152. package/dist/workspace/workspace-manifest.js +28 -0
  153. package/dist/workspace/workspace-manifest.js.map +1 -0
  154. package/package.json +21 -15
  155. package/skills/data-table-manager/SKILL.md +6 -6
  156. package/skills/debugging-executions/SKILL.md +44 -0
  157. package/skills/planned-task-runtime/SKILL.md +163 -0
  158. package/skills/planning/SKILL.md +137 -0
  159. package/skills/post-build-flow/SKILL.md +119 -0
  160. package/skills/post-build-flow/references/trigger-input-data-shapes.md +38 -0
  161. package/skills/workflow-builder/SKILL.md +608 -0
  162. package/dist/tools/best-practices/index.d.ts +0 -2
  163. package/dist/tools/best-practices/index.js +0 -10
  164. package/dist/tools/best-practices/index.js.map +0 -1
  165. package/dist/tools/best-practices/techniques.d.ts +0 -1
  166. package/dist/tools/best-practices/techniques.js +0 -7
  167. package/dist/tools/best-practices/techniques.js.map +0 -1
  168. package/dist/tools/orchestration/add-plan-item.tool.d.ts +0 -5
  169. package/dist/tools/orchestration/add-plan-item.tool.js +0 -89
  170. package/dist/tools/orchestration/add-plan-item.tool.js.map +0 -1
  171. package/dist/tools/orchestration/blueprint-accumulator.d.ts +0 -49
  172. package/dist/tools/orchestration/blueprint-accumulator.js +0 -176
  173. package/dist/tools/orchestration/blueprint-accumulator.js.map +0 -1
  174. package/dist/tools/orchestration/blueprint.schema.d.ts +0 -182
  175. package/dist/tools/orchestration/blueprint.schema.js +0 -56
  176. package/dist/tools/orchestration/blueprint.schema.js.map +0 -1
  177. package/dist/tools/orchestration/build-workflow-agent.prompt.d.ts +0 -8
  178. package/dist/tools/orchestration/build-workflow-agent.prompt.js +0 -466
  179. package/dist/tools/orchestration/build-workflow-agent.prompt.js.map +0 -1
  180. package/dist/tools/orchestration/build-workflow-agent.tool.d.ts +0 -148
  181. package/dist/tools/orchestration/build-workflow-agent.tool.js +0 -1498
  182. package/dist/tools/orchestration/build-workflow-agent.tool.js.map +0 -1
  183. package/dist/tools/orchestration/builder-memory-compaction.d.ts +0 -42
  184. package/dist/tools/orchestration/builder-memory-compaction.js +0 -132
  185. package/dist/tools/orchestration/builder-memory-compaction.js.map +0 -1
  186. package/dist/tools/orchestration/plan-agent-prompt.d.ts +0 -1
  187. package/dist/tools/orchestration/plan-agent-prompt.js +0 -83
  188. package/dist/tools/orchestration/plan-agent-prompt.js.map +0 -1
  189. package/dist/tools/orchestration/plan-with-agent.tool.d.ts +0 -27
  190. package/dist/tools/orchestration/plan-with-agent.tool.js +0 -710
  191. package/dist/tools/orchestration/plan-with-agent.tool.js.map +0 -1
  192. package/dist/tools/orchestration/submit-plan.tool.d.ts +0 -3
  193. package/dist/tools/orchestration/submit-plan.tool.js +0 -98
  194. package/dist/tools/orchestration/submit-plan.tool.js.map +0 -1
  195. package/dist/tools/templates.tool.d.ts +0 -1
  196. package/dist/tools/templates.tool.js +0 -58
  197. package/dist/tools/templates.tool.js.map +0 -1
  198. package/dist/workspace/daytona-auth-manager.d.ts +0 -26
  199. package/dist/workspace/daytona-auth-manager.js +0 -90
  200. package/dist/workspace/daytona-auth-manager.js.map +0 -1
  201. package/dist/workspace/daytona-filesystem.d.ts +0 -25
  202. package/dist/workspace/daytona-filesystem.js +0 -132
  203. package/dist/workspace/daytona-filesystem.js.map +0 -1
  204. package/dist/workspace/daytona-sandbox.d.ts +0 -71
  205. package/dist/workspace/daytona-sandbox.js +0 -368
  206. package/dist/workspace/daytona-sandbox.js.map +0 -1
  207. package/dist/workspace/lazy-daytona.d.ts +0 -2
  208. package/dist/workspace/lazy-daytona.js +0 -12
  209. package/dist/workspace/lazy-daytona.js.map +0 -1
  210. package/dist/workspace/local-filesystem.d.ts +0 -48
  211. package/dist/workspace/local-filesystem.js +0 -250
  212. package/dist/workspace/local-filesystem.js.map +0 -1
  213. package/dist/workspace/local-sandbox.d.ts +0 -28
  214. package/dist/workspace/local-sandbox.js +0 -121
  215. package/dist/workspace/local-sandbox.js.map +0 -1
  216. package/dist/workspace/n8n-sandbox-filesystem.d.ts +0 -25
  217. package/dist/workspace/n8n-sandbox-filesystem.js +0 -128
  218. package/dist/workspace/n8n-sandbox-filesystem.js.map +0 -1
  219. package/dist/workspace/n8n-sandbox-sandbox.d.ts +0 -35
  220. package/dist/workspace/n8n-sandbox-sandbox.js +0 -143
  221. 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 posix_1 = require("node:path/posix");
5
- const lazy_daytona_1 = require("./lazy-daytona");
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 DAYTONA_WORKSPACE_ROOT = '/home/daytona/workspace';
10
- const EMPTY_RUNTIME_SKILLS_HASH = '000000000000';
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, lazy_daytona_1.loadDaytona)();
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
- constructor(baseImage, logger, n8nVersion, errorReporter, runtimeSkillSource) {
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 runtimeSkillCommands = runtimeSkillBundle === undefined
50
- ? []
51
- : [...runtimeSkillBundle.files].map(([filePath, content]) => {
52
- return `mkdir -p ${shellQuote((0, posix_1.dirname)(filePath))} && echo '${b64(content)}' | base64 -d > ${shellQuote(filePath)}`;
53
- });
54
- const { Image } = (0, lazy_daytona_1.loadDaytona)();
55
- let image = Image.base(base)
56
- .runCommands(`mkdir -p ${DAYTONA_WORKSPACE_ROOT}/src ${DAYTONA_WORKSPACE_ROOT}/chunks ${DAYTONA_WORKSPACE_ROOT}/node-types`)
57
- .runCommands(`echo '${b64(sandbox_setup_1.PACKAGE_JSON)}' | base64 -d > ${DAYTONA_WORKSPACE_ROOT}/package.json`, `echo '${b64(sandbox_setup_1.TSCONFIG_JSON)}' | base64 -d > ${DAYTONA_WORKSPACE_ROOT}/tsconfig.json`, `echo '${b64(sandbox_setup_1.BUILD_MJS)}' | base64 -d > ${DAYTONA_WORKSPACE_ROOT}/build.mjs`);
58
- if (runtimeSkillCommands.length > 0) {
59
- image = image.runCommands(...runtimeSkillCommands);
60
- }
61
- image = image.runCommands(`cd ${DAYTONA_WORKSPACE_ROOT} && npm install --ignore-scripts`);
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 = await this.snapshotName();
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
- async ensureSnapshot(daytona, mode) {
90
+ snapshotName() {
86
91
  if (!this.n8nVersion)
87
92
  return null;
88
- const name = await this.snapshotName();
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 snapshotName() {
126
- if (!this.n8nVersion) {
127
- throw new Error('SnapshotManager: n8nVersion is required to derive a snapshot name');
128
- }
129
- return `n8n/instance-ai:${this.n8nVersion}-${await this.snapshotSuffix()}`;
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":"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"}
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[^|]*\bexamples\/index\.txt\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 = /\bexamples\/([a-zA-Z0-9._-]+\.ts)\b/;
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 EXAMPLES_PATH_PATTERN = /(?:^|\/)examples(?:$|\/)/;
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 (!EXAMPLES_PATH_PATTERN.test(path))
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":"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"}
1
+ {"version":3,"file":"template-telemetry.js","sourceRoot":"","sources":["../../src/workspace/template-telemetry.ts"],"names":[],"mappings":";;AAyDA,wEAuFC;AAGD,4CAQC;AA8BD,wEAKC;AAGD,wEAEC;AAGD,kEAIC;AAoBD,0DAkCC;AA/OD,sCAAgD;AAIhD,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAEpC,MAAM,cAAc,GAAG,yDAAyD,CAAC;AACjF,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1E,MAAM,iBAAiB,GAAG,sDAAsD,CAAC;AA+BjF,SAAgB,8BAA8B,CAC7C,IAA6B;IAE7B,MAAM,SAAS,GAAG;QACjB,SAAS,EAAE,IAAI,CAAC,QAAQ;QACxB,MAAM,EAAE,IAAI,CAAC,KAAK;QAClB,YAAY,EAAE,IAAI,CAAC,UAAU;QAC7B,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI;KAChD,CAAC;IAEF,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,IAAI,GAAG,IAAI,CAAC;IAEhB,SAAS,IAAI,CAAC,IAAY,EAAE,KAA8B;QACzD,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,SAAS,gBAAgB,CAAC,QAAgB,EAAE,SAAiB;QAC5D,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,SAAS,EAAE,CAAC;QACZ,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,uBAAuB,EAAE;YAC7B,iBAAiB,EAAE,QAAQ;YAC3B,UAAU,EAAE,SAAS;SACrB,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,WAAmB;QAC7D,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,WAAW,EAAE,CAAC;QACd,IAAI,CAAC,yBAAyB,EAAE;YAC/B,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC;YACnC,YAAY,EAAE,WAAW;SACzB,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,OAAO,CAAC,OAAe,EAAE,MAAc;QAC/C,IAAI,CAAC,IAAI;YAAE,OAAO;QAGlB,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,WAAW,EAAE,CAAC;YACd,IAAI,CAAC,yBAAyB,EAAE;gBAC/B,KAAK,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBACvD,YAAY,EAAE,gBAAgB,CAAC,MAAM,CAAC;aACtC,CAAC,CAAC;QACJ,CAAC;QAGD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QACvE,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACX,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1B,SAAS,EAAE,CAAC;gBACZ,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7B,IAAI,CAAC,uBAAuB,EAAE;oBAC7B,iBAAiB,EAAE,QAAQ;oBAC3B,UAAU,EAAE,MAAM,CAAC,MAAM;iBACzB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAED,SAAS,KAAK;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,GAAG,KAAK,CAAC;QACb,IAAI,CAAC,0BAA0B,EAAE;YAChC,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,SAAS;YACrB,cAAc,EAAE,aAAa;YAC7B,qBAAqB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM;YAChE,oBAAoB,EAAE,IAAI,CAAC,kBAAkB;gBAC5C,CAAC,CAAC,QAAQ,CAAC,IAAA,0BAAkB,EAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,uBAAuB,CAAC;gBAChF,CAAC,CAAC,IAAI;SACP,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACN,OAAO;QACP,gBAAgB;QAChB,kBAAkB;QAClB,KAAK;QACL,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;KAClB,CAAC;AACH,CAAC;AAGD,SAAgB,gBAAgB,CAAC,OAAe;IAG/C,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC7D,IAAI,MAAM;QAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACnE,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACrD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC;IACtB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACnC,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,GAAW;IACvC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACxB,CAAC;AAOD,SAAS,qBAAqB,CAAC,KAAa;IAC3C,OAAO,QAAQ,CAAC,IAAA,0BAAkB,EAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAC9D,CAAC;AAMD,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAoC,CAAC;AAGjE,SAAgB,8BAA8B,CAC7C,SAAiB,EACjB,OAAiC;IAEjC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAGD,SAAgB,8BAA8B,CAAC,SAAiB;IAC/D,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC;AAGD,SAAgB,2BAA2B,CAC1C,SAAiB;IAEjB,OAAO,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC;AAOD,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAC9C,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEzC,MAAM,sBAAsB,GAAG,2CAA2C,CAAC;AAU3E,SAAgB,uBAAuB,CACtC,OAAiC;IAEjC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEpD,OAAO,CAAC,KAAK,EAAE,EAAE;QAChB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAAE,OAAO;QAE9B,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnF,IAAI,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC5D,OAAO;QACR,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEzC,MAAM,UAAU,GAAG,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpE,IAAI,UAAU,KAAK,IAAI;gBAAE,OAAO;YAEhC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;YACvE,CAAC;YACD,OAAO;QACR,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC9B,QAAgB,EAChB,IAA6B;IAE7B,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QACzD,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,0BAA0B,CAAC,MAAe;IAClD,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC3B,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACpD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function withTrailingNewline(content: string): string;
2
+ export declare function stringifyWorkspaceJson(value: unknown): string;
@@ -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.10.1",
3
+ "version": "1.11.0",
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
- "LICENSE_EE.md",
11
- "LICENSE.md"
10
+ "LICENSE.md",
11
+ "LICENSE_EE.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/agents": "0.10.1",
55
- "@n8n/api-types": "1.25.1",
56
- "@n8n/mcp-browser": "0.8.0",
57
- "@n8n/utils": "1.33.0",
58
- "n8n-workflow": "2.25.1",
59
- "@n8n/workflow-sdk": "0.18.1"
54
+ "@n8n/agents": "0.11.0",
55
+ "@n8n/utils": "1.34.0",
56
+ "@n8n/mcp-browser": "0.9.0",
57
+ "@n8n/workflow-sdk": "0.19.0",
58
+ "@n8n/api-types": "1.26.0",
59
+ "n8n-workflow": "2.26.0"
60
60
  },
61
61
  "devDependencies": {
62
- "@ai-sdk/anthropic": "3.0.58",
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
- "@n8n/ai-workflow-builder": "1.25.1",
70
- "@n8n/typescript-config": "1.4.0"
70
+ "vitest": "^4.1.1",
71
+ "vitest-mock-extended": "^3.1.0",
72
+ "@n8n/ai-workflow-builder": "1.26.0",
73
+ "@n8n/typescript-config": "1.5.0",
74
+ "@n8n/vitest-config": "1.14.0"
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": "jest",
89
- "test:unit": "jest",
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 create, inspect, import, seed,
6
- query, update, clean up, rename columns in, or delete data tables and rows,
7
- especially from CSV/XLSX/JSON attachments, and before planning workflows that
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 planner or builder.
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 plan/create-tasks/delegate for standalone table work.
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.