@n8n/instance-ai 1.16.2 → 1.17.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 (140) hide show
  1. package/dist/agent/instance-agent.js +7 -1
  2. package/dist/agent/instance-agent.js.map +1 -1
  3. package/dist/agent/system-prompt.js +3 -3
  4. package/dist/agent/system-prompt.js.map +1 -1
  5. package/dist/build.tsbuildinfo +1 -1
  6. package/dist/event-bus/event-bus.interface.d.ts +1 -1
  7. package/dist/index.d.ts +10 -1
  8. package/dist/index.js +17 -2
  9. package/dist/index.js.map +1 -1
  10. package/dist/parsers/xlsx-parser.js +1 -1
  11. package/dist/parsers/xlsx-parser.js.map +1 -1
  12. package/dist/runtime/terminal-response-guard.js +2 -1
  13. package/dist/runtime/terminal-response-guard.js.map +1 -1
  14. package/dist/skills/skill-gates.d.ts +5 -0
  15. package/dist/skills/skill-gates.js +12 -0
  16. package/dist/skills/skill-gates.js.map +1 -0
  17. package/dist/storage/workflow-loop-storage.d.ts +7 -7
  18. package/dist/stream/consume-with-hitl.d.ts +3 -0
  19. package/dist/stream/consume-with-hitl.js +2 -0
  20. package/dist/stream/consume-with-hitl.js.map +1 -1
  21. package/dist/stream/map-chunk.js +7 -0
  22. package/dist/stream/map-chunk.js.map +1 -1
  23. package/dist/stream/usage-accumulator.d.ts +2 -0
  24. package/dist/stream/usage-accumulator.js +13 -3
  25. package/dist/stream/usage-accumulator.js.map +1 -1
  26. package/dist/tool-registry.js +5 -1
  27. package/dist/tool-registry.js.map +1 -1
  28. package/dist/tools/agents.tool.d.ts +2 -0
  29. package/dist/tools/agents.tool.js +40 -0
  30. package/dist/tools/agents.tool.js.map +1 -0
  31. package/dist/tools/credentials.tool.js +8 -3
  32. package/dist/tools/credentials.tool.js.map +1 -1
  33. package/dist/tools/evals/eval-config.tool.js +10 -2
  34. package/dist/tools/evals/eval-config.tool.js.map +1 -1
  35. package/dist/tools/executions.tool.js +3 -2
  36. package/dist/tools/executions.tool.js.map +1 -1
  37. package/dist/tools/filesystem/create-tools-from-mcp-server.js +2 -2
  38. package/dist/tools/filesystem/create-tools-from-mcp-server.js.map +1 -1
  39. package/dist/tools/index.js +15 -2
  40. package/dist/tools/index.js.map +1 -1
  41. package/dist/tools/n8n-docs/registry.d.ts +2 -2
  42. package/dist/tools/n8n-docs/registry.js +20 -8
  43. package/dist/tools/n8n-docs/registry.js.map +1 -1
  44. package/dist/tools/n8n-docs.tool.js +18 -12
  45. package/dist/tools/n8n-docs.tool.js.map +1 -1
  46. package/dist/tools/nodes.tool.js +1 -1
  47. package/dist/tools/orchestration/agent-preview-session-binding.d.ts +20 -0
  48. package/dist/tools/orchestration/agent-preview-session-binding.js +47 -0
  49. package/dist/tools/orchestration/agent-preview-session-binding.js.map +1 -0
  50. package/dist/tools/orchestration/agent-target-binding.d.ts +6 -1
  51. package/dist/tools/orchestration/agent-target-binding.js +43 -4
  52. package/dist/tools/orchestration/agent-target-binding.js.map +1 -1
  53. package/dist/tools/orchestration/build-agent.tool.js +365 -71
  54. package/dist/tools/orchestration/build-agent.tool.js.map +1 -1
  55. package/dist/tools/orchestration/builder-thread-id.d.ts +1 -0
  56. package/dist/tools/orchestration/builder-thread-id.js +7 -0
  57. package/dist/tools/orchestration/builder-thread-id.js.map +1 -0
  58. package/dist/tools/orchestration/get-session.tool.d.ts +2 -0
  59. package/dist/tools/orchestration/get-session.tool.js +49 -0
  60. package/dist/tools/orchestration/get-session.tool.js.map +1 -0
  61. package/dist/tools/orchestration/verification/reconcile-plan.js +4 -1
  62. package/dist/tools/orchestration/verification/reconcile-plan.js.map +1 -1
  63. package/dist/tools/orchestration/verify-built-workflow.tool.js +1 -0
  64. package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
  65. package/dist/tools/research.tool.js +2 -0
  66. package/dist/tools/research.tool.js.map +1 -1
  67. package/dist/tools/tool-ids.d.ts +2 -0
  68. package/dist/tools/tool-ids.js +3 -0
  69. package/dist/tools/tool-ids.js.map +1 -1
  70. package/dist/tools/workflows/build-workflow.tool.js +12 -4
  71. package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
  72. package/dist/tools/workflows/classify-node-destructiveness.service.d.ts +1 -1
  73. package/dist/tools/workflows/classify-node-destructiveness.service.js +5 -7
  74. package/dist/tools/workflows/classify-node-destructiveness.service.js.map +1 -1
  75. package/dist/tools/workflows/credential-utils.d.ts +1 -1
  76. package/dist/tools/workflows/credential-utils.js +2 -2
  77. package/dist/tools/workflows/credential-utils.js.map +1 -1
  78. package/dist/tools/workflows/detect-unparseable-openai-schema.d.ts +3 -0
  79. package/dist/tools/workflows/detect-unparseable-openai-schema.js +85 -0
  80. package/dist/tools/workflows/detect-unparseable-openai-schema.js.map +1 -0
  81. package/dist/tools/workflows/generate-simulation-fixtures.service.d.ts +2 -1
  82. package/dist/tools/workflows/generate-simulation-fixtures.service.js +27 -5
  83. package/dist/tools/workflows/generate-simulation-fixtures.service.js.map +1 -1
  84. package/dist/tools/workflows/materialize-node-type.tool.js +4 -2
  85. package/dist/tools/workflows/materialize-node-type.tool.js.map +1 -1
  86. package/dist/tools/workflows/plan-verification-simulation.d.ts +5 -2
  87. package/dist/tools/workflows/plan-verification-simulation.js +117 -2
  88. package/dist/tools/workflows/plan-verification-simulation.js.map +1 -1
  89. package/dist/tools/workflows/reconcile-simulation-plan.js +48 -17
  90. package/dist/tools/workflows/reconcile-simulation-plan.js.map +1 -1
  91. package/dist/tools/workflows/resolve-credentials.js +35 -1
  92. package/dist/tools/workflows/resolve-credentials.js.map +1 -1
  93. package/dist/tools/workflows/setup-workflow.schema.d.ts +66 -66
  94. package/dist/tools/workflows/validate-workflow.service.js +4 -4
  95. package/dist/tools/workflows/workflow-build-routing.js +3 -3
  96. package/dist/tools/workflows/workflow-build-routing.js.map +1 -1
  97. package/dist/tools/workflows/workflow-file-bindings.d.ts +1 -1
  98. package/dist/tools/workflows/workflow-file-bindings.js +2 -1
  99. package/dist/tools/workflows/workflow-file-bindings.js.map +1 -1
  100. package/dist/tools/workflows/workflow-json-utils.js +11 -12
  101. package/dist/tools/workflows/workflow-json-utils.js.map +1 -1
  102. package/dist/tools/workflows/workflow-source-compiler.d.ts +1 -1
  103. package/dist/tools/workflows/workflow-source-compiler.js +11 -4
  104. package/dist/tools/workflows/workflow-source-compiler.js.map +1 -1
  105. package/dist/tools/workflows/write-sandbox-file.tool.js +4 -2
  106. package/dist/tools/workflows/write-sandbox-file.tool.js.map +1 -1
  107. package/dist/tracing/langsmith-tracing.d.ts +1 -0
  108. package/dist/tracing/langsmith-tracing.js +69 -9
  109. package/dist/tracing/langsmith-tracing.js.map +1 -1
  110. package/dist/tracing/trace-payloads.js +8 -0
  111. package/dist/tracing/trace-payloads.js.map +1 -1
  112. package/dist/types.d.ts +52 -5
  113. package/dist/types.js.map +1 -1
  114. package/dist/utils/stream-helpers.d.ts +1 -0
  115. package/dist/utils/stream-helpers.js +2 -1
  116. package/dist/utils/stream-helpers.js.map +1 -1
  117. package/dist/workflow-loop/workflow-loop-state.d.ts +13 -13
  118. package/dist/workflow-loop/workflow-loop-state.js +6 -1
  119. package/dist/workflow-loop/workflow-loop-state.js.map +1 -1
  120. package/dist/workspace/create-workspace.js +24 -1
  121. package/dist/workspace/create-workspace.js.map +1 -1
  122. package/dist/workspace/lazy-runtime-workspace.js +19 -19
  123. package/dist/workspace/lazy-runtime-workspace.js.map +1 -1
  124. package/dist/workspace/sandbox-fs.d.ts +16 -4
  125. package/dist/workspace/sandbox-fs.js +80 -25
  126. package/dist/workspace/sandbox-fs.js.map +1 -1
  127. package/dist/workspace/scoped-workspace.js +6 -6
  128. package/dist/workspace/scoped-workspace.js.map +1 -1
  129. package/dist/workspace/snapshot-manager.d.ts +1 -0
  130. package/dist/workspace/snapshot-manager.js +37 -5
  131. package/dist/workspace/snapshot-manager.js.map +1 -1
  132. package/dist/workspace/workspace-files.d.ts +4 -0
  133. package/dist/workspace/workspace-files.js +21 -7
  134. package/dist/workspace/workspace-files.js.map +1 -1
  135. package/knowledge-base/reference/workflow-builder-guardrails.md +3 -0
  136. package/package.json +12 -12
  137. package/skills/config-evals/SKILL.md +96 -0
  138. package/skills/config-evals/references/config-eval-playbook.md +109 -0
  139. package/skills/intent-recognition/SKILL.md +145 -34
  140. package/skills/workflow-builder/SKILL.md +25 -17
@@ -152,40 +152,40 @@ class LazyRuntimeFilesystem extends agents_1.BaseFilesystem {
152
152
  ].join(' ');
153
153
  }
154
154
  async readFile(path, options) {
155
- return await (await this.getFilesystem()).readFile(path, options);
155
+ return await (await this.getFilesystem(options?.abortSignal)).readFile(path, options);
156
156
  }
157
157
  async writeFile(path, content, options) {
158
- await (await this.getFilesystem()).writeFile(path, content, options);
158
+ await (await this.getFilesystem(options?.abortSignal)).writeFile(path, content, options);
159
159
  }
160
- async appendFile(path, content) {
161
- await (await this.getFilesystem()).appendFile(path, content);
160
+ async appendFile(path, content, options) {
161
+ await (await this.getFilesystem(options?.abortSignal)).appendFile(path, content, options);
162
162
  }
163
163
  async deleteFile(path, options) {
164
- await (await this.getFilesystem()).deleteFile(path, options);
164
+ await (await this.getFilesystem(options?.abortSignal)).deleteFile(path, options);
165
165
  }
166
166
  async copyFile(src, dest, options) {
167
- await (await this.getFilesystem()).copyFile(src, dest, options);
167
+ await (await this.getFilesystem(options?.abortSignal)).copyFile(src, dest, options);
168
168
  }
169
169
  async moveFile(src, dest, options) {
170
- await (await this.getFilesystem()).moveFile(src, dest, options);
170
+ await (await this.getFilesystem(options?.abortSignal)).moveFile(src, dest, options);
171
171
  }
172
172
  async mkdir(path, options) {
173
- await (await this.getFilesystem()).mkdir(path, options);
173
+ await (await this.getFilesystem(options?.abortSignal)).mkdir(path, options);
174
174
  }
175
175
  async rmdir(path, options) {
176
- await (await this.getFilesystem()).rmdir(path, options);
176
+ await (await this.getFilesystem(options?.abortSignal)).rmdir(path, options);
177
177
  }
178
178
  async readdir(path, options) {
179
- return await (await this.getFilesystem()).readdir(path, options);
179
+ return await (await this.getFilesystem(options?.abortSignal)).readdir(path, options);
180
180
  }
181
- async exists(path) {
182
- return await (await this.getFilesystem()).exists(path);
181
+ async exists(path, options) {
182
+ return await (await this.getFilesystem(options?.abortSignal)).exists(path, options);
183
183
  }
184
- async stat(path) {
185
- return await (await this.getFilesystem()).stat(path);
184
+ async stat(path, options) {
185
+ return await (await this.getFilesystem(options?.abortSignal)).stat(path, options);
186
186
  }
187
- async getFilesystem() {
188
- const filesystem = await this.resolver.getFilesystem();
187
+ async getFilesystem(abortSignal) {
188
+ const filesystem = await (0, agents_1.raceWithAbort)(async () => await this.resolver.getFilesystem(), abortSignal);
189
189
  this.syncStatus(filesystem);
190
190
  return filesystem;
191
191
  }
@@ -230,7 +230,7 @@ class LazyRuntimeSandbox extends agents_1.BaseSandbox {
230
230
  return this.resolver.current?.sandbox?.getDefaultCommandEnv?.() ?? {};
231
231
  }
232
232
  async executeCommand(command, args = [], options) {
233
- const sandbox = await this.getSandbox();
233
+ const sandbox = await this.getSandbox(options?.abortSignal);
234
234
  if (!sandbox.executeCommand) {
235
235
  throw new Error('Instance AI runtime sandbox does not support command execution.');
236
236
  }
@@ -253,8 +253,8 @@ class LazyRuntimeSandbox extends agents_1.BaseSandbox {
253
253
  return instructions;
254
254
  return 'Workspace command tools are available and create the runtime sandbox on first use.';
255
255
  }
256
- async getSandbox() {
257
- const sandbox = await this.resolver.getSandbox();
256
+ async getSandbox(abortSignal) {
257
+ const sandbox = await (0, agents_1.raceWithAbort)(async () => await this.resolver.getSandbox(), abortSignal);
258
258
  this.syncStatus(sandbox);
259
259
  return sandbox;
260
260
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lazy-runtime-workspace.js","sourceRoot":"","sources":["../../src/workspace/lazy-runtime-workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lazy-runtime-workspace.js","sourceRoot":"","sources":["../../src/workspace/lazy-runtime-workspace.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { type SandboxCommandTarget, type SandboxWorkspace as SharedSandboxWorkspace } from '@n8n/agents/sandbox';
1
+ import { type RunInSandboxOptions, type SandboxCommandTarget, type SandboxWorkspace as SharedSandboxWorkspace } from '@n8n/agents/sandbox';
2
+ import type { Logger } from '../logger';
2
3
  export interface SandboxWorkspace extends SharedSandboxWorkspace {
3
4
  filesystem?: {
4
5
  provider?: string;
@@ -6,20 +7,31 @@ export interface SandboxWorkspace extends SharedSandboxWorkspace {
6
7
  init?: () => Promise<void>;
7
8
  readFile?: (path: string, options?: {
8
9
  encoding?: BufferEncoding;
10
+ abortSignal?: AbortSignal;
9
11
  }) => Promise<string | Buffer>;
10
12
  writeFile: (path: string, content: string | Buffer, options?: {
11
13
  recursive?: boolean;
14
+ abortSignal?: AbortSignal;
12
15
  }) => Promise<void>;
13
16
  mkdir: (path: string, options?: {
14
17
  recursive?: boolean;
18
+ abortSignal?: AbortSignal;
15
19
  }) => Promise<void>;
16
20
  } & NonNullable<SharedSandboxWorkspace['filesystem']>;
17
21
  }
18
- export declare function runInSandbox(workspace: SandboxCommandTarget, command: string, cwd?: string): Promise<{
22
+ export interface SandboxIoRetryOptions {
23
+ logger?: Pick<Logger, 'warn'>;
24
+ resourceLabel?: string;
25
+ retryBackoffBaseMs?: number;
26
+ abortSignal?: AbortSignal;
27
+ }
28
+ export declare function isTransientSandboxIoError(error: unknown): boolean;
29
+ export declare function retryTransientSandboxIo<T>(op: () => Promise<T>, filePath: string, options?: SandboxIoRetryOptions): Promise<T>;
30
+ export declare function runInSandbox(workspace: SandboxCommandTarget, command: string, cwdOrOptions?: string | RunInSandboxOptions): Promise<{
19
31
  exitCode: number;
20
32
  stdout: string;
21
33
  stderr: string;
22
34
  }>;
23
- export declare function writeFileViaSandbox(workspace: SandboxCommandTarget, filePath: string, content: string | Buffer): Promise<void>;
24
- export declare function readFileViaSandbox(workspace: SandboxCommandTarget, filePath: string): Promise<string | null>;
35
+ export declare function writeFileViaSandbox(workspace: SandboxCommandTarget, filePath: string, content: string | Buffer, options?: SandboxIoRetryOptions): Promise<void>;
36
+ export declare function readFileViaSandbox(workspace: SandboxCommandTarget, filePath: string, options?: SandboxIoRetryOptions): Promise<string | null>;
25
37
  export declare function escapeSingleQuotes(s: string): string;
@@ -1,14 +1,63 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTransientSandboxIoError = isTransientSandboxIoError;
4
+ exports.retryTransientSandboxIo = retryTransientSandboxIo;
3
5
  exports.runInSandbox = runInSandbox;
4
6
  exports.writeFileViaSandbox = writeFileViaSandbox;
5
7
  exports.readFileViaSandbox = readFileViaSandbox;
6
8
  exports.escapeSingleQuotes = escapeSingleQuotes;
9
+ const agents_1 = require("@n8n/agents");
7
10
  const sandbox_1 = require("@n8n/agents/sandbox");
11
+ const error_formatting_1 = require("../error-formatting");
8
12
  const template_telemetry_1 = require("./template-telemetry");
9
13
  const BASE64_WRITE_CHUNK_SIZE = 32_000;
10
- async function runInSandbox(workspace, command, cwd) {
11
- const result = await (0, sandbox_1.runInSandbox)(workspace, command, cwd);
14
+ const SANDBOX_IO_MAX_ATTEMPTS = 3;
15
+ const DEFAULT_SANDBOX_IO_RETRY_BACKOFF_BASE_MS = 1_000;
16
+ const SANDBOX_IO_RETRY_BACKOFF_CAP_MS = 5_000;
17
+ function ioResourceLabel(options) {
18
+ return options?.resourceLabel ?? 'Sandbox file';
19
+ }
20
+ async function sleep(ms, abortSignal) {
21
+ (0, agents_1.throwIfAborted)(abortSignal);
22
+ await new Promise((resolve, reject) => {
23
+ const timer = setTimeout(() => {
24
+ abortSignal?.removeEventListener('abort', onAbort);
25
+ resolve();
26
+ }, ms);
27
+ const onAbort = () => {
28
+ clearTimeout(timer);
29
+ reject((0, agents_1.createAbortError)(abortSignal?.reason));
30
+ };
31
+ abortSignal?.addEventListener('abort', onAbort, { once: true });
32
+ });
33
+ }
34
+ function isTransientSandboxIoError(error) {
35
+ if (typeof error !== 'object' || error === null)
36
+ return false;
37
+ const status = 'statusCode' in error ? error.statusCode : 'status' in error ? error.status : null;
38
+ return typeof status === 'number' && (status >= 500 || status === 408 || status === 429);
39
+ }
40
+ async function retryTransientSandboxIo(op, filePath, options) {
41
+ const baseMs = options?.retryBackoffBaseMs ?? DEFAULT_SANDBOX_IO_RETRY_BACKOFF_BASE_MS;
42
+ for (let attempt = 1;; attempt++) {
43
+ (0, agents_1.throwIfAborted)(options?.abortSignal);
44
+ try {
45
+ return await op();
46
+ }
47
+ catch (error) {
48
+ if (attempt >= SANDBOX_IO_MAX_ATTEMPTS || !isTransientSandboxIoError(error))
49
+ throw error;
50
+ options?.logger?.warn(`${ioResourceLabel(options)} I/O hit a transient error; retrying`, {
51
+ path: filePath,
52
+ attempt,
53
+ error: (0, error_formatting_1.formatErrorForLog)(error),
54
+ });
55
+ await sleep(Math.min(baseMs * 2 ** (attempt - 1), SANDBOX_IO_RETRY_BACKOFF_CAP_MS), options?.abortSignal);
56
+ }
57
+ }
58
+ }
59
+ async function runInSandbox(workspace, command, cwdOrOptions) {
60
+ const result = await (0, sandbox_1.runInSandbox)(workspace, command, cwdOrOptions);
12
61
  const session = (0, template_telemetry_1.getTemplateTelemetrySession)(workspace);
13
62
  if (session) {
14
63
  try {
@@ -19,31 +68,37 @@ async function runInSandbox(workspace, command, cwd) {
19
68
  }
20
69
  return result;
21
70
  }
22
- async function writeFileViaSandbox(workspace, filePath, content) {
23
- const runWriteCommand = async (command) => {
24
- const result = await runInSandbox(workspace, command);
25
- if (result.exitCode !== 0) {
26
- throw new Error(`Failed to write file ${filePath}: ${result.stderr}`);
71
+ async function writeFileViaSandbox(workspace, filePath, content, options) {
72
+ await retryTransientSandboxIo(async () => {
73
+ const runWriteCommand = async (command) => {
74
+ const result = await runInSandbox(workspace, command, {
75
+ abortSignal: options?.abortSignal,
76
+ });
77
+ if (result.exitCode !== 0) {
78
+ throw new Error(`Failed to write file ${filePath}: ${result.stderr}`);
79
+ }
80
+ };
81
+ const dir = filePath.substring(0, filePath.lastIndexOf('/'));
82
+ if (dir) {
83
+ await runWriteCommand(`mkdir -p '${escapeSingleQuotes(dir)}'`);
27
84
  }
28
- };
29
- const dir = filePath.substring(0, filePath.lastIndexOf('/'));
30
- if (dir) {
31
- await runWriteCommand(`mkdir -p '${escapeSingleQuotes(dir)}'`);
32
- }
33
- const b64 = typeof content === 'string'
34
- ? Buffer.from(content, 'utf-8').toString('base64')
35
- : content.toString('base64');
36
- const tempPath = `${filePath}.base64.tmp-${Date.now()}-${Math.random().toString(36).slice(2)}`;
37
- const escapedTempPath = escapeSingleQuotes(tempPath);
38
- await runWriteCommand(`: > '${escapedTempPath}'`);
39
- for (let offset = 0; offset < b64.length; offset += BASE64_WRITE_CHUNK_SIZE) {
40
- const chunk = b64.slice(offset, offset + BASE64_WRITE_CHUNK_SIZE);
41
- await runWriteCommand(`printf '%s' '${chunk}' >> '${escapedTempPath}'`);
42
- }
43
- await runWriteCommand(`base64 -d '${escapedTempPath}' > '${escapeSingleQuotes(filePath)}'; rc=$?; rm -f '${escapedTempPath}'; exit $rc`);
85
+ const b64 = typeof content === 'string'
86
+ ? Buffer.from(content, 'utf-8').toString('base64')
87
+ : content.toString('base64');
88
+ const tempPath = `${filePath}.base64.tmp-${Date.now()}-${Math.random().toString(36).slice(2)}`;
89
+ const escapedTempPath = escapeSingleQuotes(tempPath);
90
+ await runWriteCommand(`: > '${escapedTempPath}'`);
91
+ for (let offset = 0; offset < b64.length; offset += BASE64_WRITE_CHUNK_SIZE) {
92
+ const chunk = b64.slice(offset, offset + BASE64_WRITE_CHUNK_SIZE);
93
+ await runWriteCommand(`printf '%s' '${chunk}' >> '${escapedTempPath}'`);
94
+ }
95
+ await runWriteCommand(`base64 -d '${escapedTempPath}' > '${escapeSingleQuotes(filePath)}'; rc=$?; rm -f '${escapedTempPath}'; exit $rc`);
96
+ }, filePath, options);
44
97
  }
45
- async function readFileViaSandbox(workspace, filePath) {
46
- const result = await runInSandbox(workspace, `cat '${escapeSingleQuotes(filePath)}' 2>/dev/null`);
98
+ async function readFileViaSandbox(workspace, filePath, options) {
99
+ const result = await retryTransientSandboxIo(async () => await runInSandbox(workspace, `cat '${escapeSingleQuotes(filePath)}' 2>/dev/null`, {
100
+ abortSignal: options?.abortSignal,
101
+ }), filePath, options);
47
102
  if (result.exitCode !== 0)
48
103
  return null;
49
104
  return result.stdout;
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-fs.js","sourceRoot":"","sources":["../../src/workspace/sandbox-fs.ts"],"names":[],"mappings":";;;;;;AAUA,iDAI6B;AAiB7B,6DAAmE;AAEnE,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAUhC,KAAK,uBACX,SAA+B,EAC/B,OAAe,EACf,GAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAkB,EAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAEjE,MAAM,OAAO,GAAG,IAAA,gDAA2B,EAAC,SAAS,CAAC,CAAC;IACvD,IAAI,OAAO,EAAE,CAAC;QACb,IAAI,CAAC;YACJ,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAQM,KAAK,8BACX,SAA+B,EAC/B,QAAgB,EAChB,OAAwB;IAExB,MAAM,eAAe,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC;IACF,CAAC,CAAC;IAGF,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,IAAI,GAAG,EAAE,CAAC;QACT,MAAM,eAAe,CAAC,aAAa,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChE,CAAC;IAID,MAAM,GAAG,GACR,OAAO,OAAO,KAAK,QAAQ;QAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAClD,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,GAAG,QAAQ,eAAe,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAErD,MAAM,eAAe,CAAC,QAAQ,eAAe,GAAG,CAAC,CAAC;IAElD,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,uBAAuB,EAAE,CAAC;QAC7E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,CAAC,CAAC;QAClE,MAAM,eAAe,CAAC,gBAAgB,KAAK,SAAS,eAAe,GAAG,CAAC,CAAC;IACzE,CAAC;IAKD,MAAM,eAAe,CACpB,cAAc,eAAe,QAAQ,kBAAkB,CAAC,QAAQ,CAAC,oBAAoB,eAAe,aAAa,CACjH,CAAC;AACH,CAAC;AAMM,KAAK,6BACX,SAA+B,EAC/B,QAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,QAAQ,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAClG,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC;AACtB,CAAC;AAMD,4BAAmC,CAAS;IAC3C,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"sandbox-fs.js","sourceRoot":"","sources":["../../src/workspace/sandbox-fs.ts"],"names":[],"mappings":"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"}
@@ -55,8 +55,8 @@ class ScopedFilesystem {
55
55
  async writeFile(path, content, options) {
56
56
  await this.filesystem.writeFile(resolvePath(this.root, path), content, options);
57
57
  }
58
- async appendFile(path, content) {
59
- await this.filesystem.appendFile(resolvePath(this.root, path), content);
58
+ async appendFile(path, content, options) {
59
+ await this.filesystem.appendFile(resolvePath(this.root, path), content, options);
60
60
  }
61
61
  async deleteFile(path, options) {
62
62
  await this.filesystem.deleteFile(resolvePath(this.root, path), options);
@@ -76,11 +76,11 @@ class ScopedFilesystem {
76
76
  async readdir(path, options) {
77
77
  return await this.filesystem.readdir(resolvePath(this.root, path), options);
78
78
  }
79
- async exists(path) {
80
- return await this.filesystem.exists(resolvePath(this.root, path));
79
+ async exists(path, options) {
80
+ return await this.filesystem.exists(resolvePath(this.root, path), options);
81
81
  }
82
- async stat(path) {
83
- return await this.filesystem.stat(resolvePath(this.root, path));
82
+ async stat(path, options) {
83
+ return await this.filesystem.stat(resolvePath(this.root, path), options);
84
84
  }
85
85
  }
86
86
  class ScopedSandbox {
@@ -1 +1 @@
1
- {"version":3,"file":"scoped-workspace.js","sourceRoot":"","sources":["../../src/workspace/scoped-workspace.ts"],"names":[],"mappings":";;;AAAA,wCAaqB;AACrB,2CAAiF;AAEjF,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;IACxD,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,IAAY;IAC9C,MAAM,cAAc,GAAG,IAAA,iBAAc,EAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAC1C,CAAC,CAAC,IAAA,iBAAc,EAAC,IAAI,CAAC;QACtB,CAAC,CAAC,IAAA,iBAAc,EAAC,IAAA,YAAS,EAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnD,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,cAAc,CAAC;AACvB,CAAC;AAED,MAAM,gBAAgB;IAEH,UAAU;IACV,IAAI;IAFtB,YACkB,UAA+B,EAC/B,IAAY;0BADZ,UAAU;oBACV,IAAI;IACnB,CAAC;IAEJ,IAAI,EAAE;QACL,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvC,CAAC;IAED,IAAI,IAAI;QACP,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,mBAAmB,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,IAAI,MAAM,CAAC,MAAsB;QAChC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;IACjC,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,eAAe;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC;QACvD,OAAO,CAAC,IAAI,EAAE,kCAAkC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,OAAqB;QACjD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAoB,EAAE,OAAsB;QACzE,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,OAAoB;QAClD,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,OAAuB;QACrD,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,IAAY,EAAE,OAAqB;QAC9D,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAC7B,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAC3B,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAC5B,OAAO,CACP,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,IAAY,EAAE,OAAqB;QAC9D,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAC7B,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAC3B,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAC5B,OAAO,CACP,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAAiC;QAC1D,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAAuB;QAChD,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAAqB;QAChD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACxB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACtB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;CACD;AAED,MAAM,aAAa;IAIA,OAAO;IACP,IAAI;IACJ,GAAG;IALZ,cAAc,CAAmD;IAE1E,YACkB,OAAyB,EACzB,IAAY,EACZ,GAAG,GAAsB,EAAE;uBAF3B,OAAO;oBACP,IAAI;mBACJ,GAAG;QAEpB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5D,IAAI,CAAC,cAAc,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;gBAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1E,OAAO,MAAM,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE;oBAC1C,GAAG,OAAO;oBACV,GAAG;oBACH,GAAG,EAAE;wBACJ,GAAG,IAAI,CAAC,GAAG;wBACX,GAAG,OAAO,CAAC,GAAG;qBACd;iBACD,CAAC,CAAC;YACJ,CAAC,CAAC;QACH,CAAC;IACF,CAAC;IAED,IAAI,EAAE;QACL,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpC,CAAC;IAED,IAAI,IAAI;QACP,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,mBAAmB,CAAC;IAChD,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM,CAAC,MAAsB;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,eAAe;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC;QACpD,OAAO,CAAC,IAAI,EAAE,qBAAqB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;CACD;AAED,+BACC,SAAoB,EACpB,IAAY,EACZ,GAAuB;IAEvB,OAAO,IAAI,kBAAS,CAAC;QACpB,EAAE,EAAE,GAAG,SAAS,CAAC,EAAE,IAAI,IAAI,EAAE;QAC7B,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,KAAK,IAAI,GAAG;QACnC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QAC/F,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;KACxF,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"scoped-workspace.js","sourceRoot":"","sources":["../../src/workspace/scoped-workspace.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export declare class SnapshotManager {
19
19
  ensureImage(): Promise<Image>;
20
20
  private prepareImage;
21
21
  createSnapshot(daytona: Daytona, options?: CreateSnapshotOptions): Promise<string>;
22
+ private verifySnapshot;
22
23
  snapshotName(): string | null;
23
24
  private runtimeSkillBundle;
24
25
  private knowledgeBaseBundle;
@@ -10,6 +10,12 @@ const materialize_runtime_skills_1 = require("../skills/materialize-runtime-skil
10
10
  const runtime_skills_1 = require("../skills/runtime-skills");
11
11
  const DAYTONA_WORKSPACE_BAKE_ROOT = '/tmp/n8n-workspace-bake';
12
12
  const SNAPSHOT_WORKSPACE_LAYOUT_DIRS = ['src', 'chunks', 'node-types'];
13
+ const SNAPSHOT_BUILDING_STATES = new Set(['building', 'pending', 'pulling']);
14
+ const SNAPSHOT_VERIFY_POLL_MS = 5_000;
15
+ const DEFAULT_SNAPSHOT_VERIFY_TIMEOUT_S = 1_800;
16
+ async function sleep(ms) {
17
+ await new Promise((resolve) => setTimeout(resolve, ms));
18
+ }
13
19
  function isAlreadyExistsError(error) {
14
20
  const { DaytonaError } = (0, sandbox_1.loadDaytona)();
15
21
  if (!(error instanceof DaytonaError))
@@ -74,15 +80,41 @@ class SnapshotManager {
74
80
  }
75
81
  try {
76
82
  await daytona.snapshot.create({ name, image: await this.ensureImage() }, options);
77
- this.logger.info('Created versioned Daytona snapshot', { name });
78
- return name;
83
+ this.logger.info('Created versioned Daytona snapshot; verifying it is usable', { name });
79
84
  }
80
85
  catch (error) {
81
86
  if (isAlreadyExistsError(error)) {
82
- this.logger.info('Versioned Daytona snapshot already exists', { name });
83
- return name;
87
+ this.logger.info('Versioned Daytona snapshot already exists; verifying it is usable', {
88
+ name,
89
+ });
90
+ }
91
+ else {
92
+ throw error;
93
+ }
94
+ }
95
+ await this.verifySnapshot(daytona, name, options?.timeout);
96
+ return name;
97
+ }
98
+ async verifySnapshot(daytona, name, timeoutS = DEFAULT_SNAPSHOT_VERIFY_TIMEOUT_S) {
99
+ const deadline = Date.now() + timeoutS * 1000;
100
+ for (;;) {
101
+ const snapshot = await daytona.snapshot.get(name);
102
+ if (snapshot.state === 'active') {
103
+ this.logger.info('Versioned Daytona snapshot is active', { name });
104
+ return;
105
+ }
106
+ if (!SNAPSHOT_BUILDING_STATES.has(snapshot.state)) {
107
+ const reason = snapshot.errorReason ? `, reason: ${snapshot.errorReason}` : '';
108
+ throw new Error(`Versioned Daytona snapshot "${name}" exists but is unusable (state: ${snapshot.state}${reason})`);
109
+ }
110
+ if (Date.now() >= deadline) {
111
+ throw new Error(`Timed out waiting for existing Daytona snapshot "${name}" to become active (state: ${snapshot.state})`);
84
112
  }
85
- throw error;
113
+ this.logger.info('Waiting for existing Daytona snapshot to finish building', {
114
+ name,
115
+ state: snapshot.state,
116
+ });
117
+ await sleep(SNAPSHOT_VERIFY_POLL_MS);
86
118
  }
87
119
  }
88
120
  snapshotName() {
@@ -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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"}
@@ -4,9 +4,11 @@ export interface WorkspaceFileTarget {
4
4
  filesystem?: {
5
5
  readFile?: (path: string, options?: {
6
6
  encoding?: 'utf-8';
7
+ abortSignal?: AbortSignal;
7
8
  }) => Promise<string | Buffer>;
8
9
  writeFile: (path: string, content: string | Buffer, options?: {
9
10
  recursive?: boolean;
11
+ abortSignal?: AbortSignal;
10
12
  }) => Promise<void>;
11
13
  };
12
14
  sandbox?: SandboxWorkspace['sandbox'];
@@ -14,6 +16,8 @@ export interface WorkspaceFileTarget {
14
16
  export interface WorkspaceFileOptions {
15
17
  logger: Logger;
16
18
  resourceLabel?: string;
19
+ retryBackoffBaseMs?: number;
20
+ abortSignal?: AbortSignal;
17
21
  }
18
22
  export declare function readWorkspaceFile(workspace: WorkspaceFileTarget, filePath: string, options?: WorkspaceFileOptions): Promise<string | null>;
19
23
  export declare function writeWorkspaceFile(workspace: WorkspaceFileTarget, filePath: string, content: string, options?: WorkspaceFileOptions): Promise<void>;
@@ -13,11 +13,18 @@ function decodeWorkspaceFileContent(content) {
13
13
  }
14
14
  async function readWorkspaceFile(workspace, filePath, options) {
15
15
  const filesystem = workspace.filesystem;
16
- if (filesystem?.readFile) {
16
+ const readFile = filesystem?.readFile;
17
+ if (filesystem && readFile) {
17
18
  try {
18
- return decodeWorkspaceFileContent(await filesystem.readFile(filePath, { encoding: 'utf-8' }));
19
+ return decodeWorkspaceFileContent(await (0, sandbox_fs_1.retryTransientSandboxIo)(async () => await readFile.call(filesystem, filePath, {
20
+ encoding: 'utf-8',
21
+ abortSignal: options?.abortSignal,
22
+ }), filePath, options));
19
23
  }
20
24
  catch (error) {
25
+ if ((0, sandbox_fs_1.isTransientSandboxIoError)(error)) {
26
+ throw new Error(`Failed to read ${resourceLabel(options).toLowerCase()} "${filePath}": ${(0, error_formatting_1.formatErrorForLog)(error)}`);
27
+ }
21
28
  options?.logger.debug(`${resourceLabel(options)} filesystem read missed`, {
22
29
  path: filePath,
23
30
  error: (0, error_formatting_1.formatErrorForLog)(error),
@@ -28,9 +35,12 @@ async function readWorkspaceFile(workspace, filePath, options) {
28
35
  if (!workspace.sandbox)
29
36
  return null;
30
37
  try {
31
- return await (0, sandbox_fs_1.readFileViaSandbox)(workspace, filePath);
38
+ return await (0, sandbox_fs_1.readFileViaSandbox)(workspace, filePath, options);
32
39
  }
33
40
  catch (error) {
41
+ if ((0, sandbox_fs_1.isTransientSandboxIoError)(error)) {
42
+ throw new Error(`Failed to read ${resourceLabel(options).toLowerCase()} "${filePath}": ${(0, error_formatting_1.formatErrorForLog)(error)}`);
43
+ }
34
44
  options?.logger.debug(`${resourceLabel(options)} command read missed`, {
35
45
  path: filePath,
36
46
  error: (0, error_formatting_1.formatErrorForLog)(error),
@@ -40,14 +50,18 @@ async function readWorkspaceFile(workspace, filePath, options) {
40
50
  }
41
51
  async function writeWorkspaceFile(workspace, filePath, content, options) {
42
52
  const label = resourceLabel(options);
43
- if (workspace.filesystem) {
53
+ const filesystem = workspace.filesystem;
54
+ if (filesystem) {
44
55
  try {
45
- await workspace.filesystem.writeFile(filePath, content, { recursive: true });
56
+ await (0, sandbox_fs_1.retryTransientSandboxIo)(async () => await filesystem.writeFile(filePath, content, {
57
+ recursive: true,
58
+ abortSignal: options?.abortSignal,
59
+ }), filePath, options);
46
60
  return;
47
61
  }
48
62
  catch (error) {
49
63
  try {
50
- await (0, sandbox_fs_1.writeFileViaSandbox)(workspace, filePath, content);
64
+ await (0, sandbox_fs_1.writeFileViaSandbox)(workspace, filePath, content, options);
51
65
  options?.logger.warn(`${label} filesystem write failed; used command fallback`, {
52
66
  path: filePath,
53
67
  error: (0, error_formatting_1.formatErrorForLog)(error),
@@ -60,7 +74,7 @@ async function writeWorkspaceFile(workspace, filePath, content, options) {
60
74
  }
61
75
  }
62
76
  try {
63
- await (0, sandbox_fs_1.writeFileViaSandbox)(workspace, filePath, content);
77
+ await (0, sandbox_fs_1.writeFileViaSandbox)(workspace, filePath, content, options);
64
78
  }
65
79
  catch (error) {
66
80
  throw new Error(`Failed to write ${label.toLowerCase()} "${filePath}": ${(0, error_formatting_1.formatErrorForLog)(error)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-files.js","sourceRoot":"","sources":["../../src/workspace/workspace-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-files.js","sourceRoot":"","sources":["../../src/workspace/workspace-files.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,9 @@ Use these guardrails for workflow builds with multiple external systems,
4
4
  multiple requested effects, digests or reports, non-trivial branching, or Code
5
5
  nodes. They are a runtime checklist, not extra user-facing output.
6
6
 
7
+ Do not add sticky notes unless the user explicitly asks for them. Prefer chat
8
+ explanations over canvas stickies.
9
+
7
10
  ## Preserve Source Data
8
11
 
9
12
  Normalize trigger or source data before side effects. Nodes that create, update,