@enactprotocol/execution 2.1.24 → 2.1.29

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.
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAO1D,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EAEZ,cAAc,EAEd,gBAAgB,EAEhB,iBAAiB,EACjB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAC/D,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,mBAAmB,CAAK;gBAEpB,MAAM,GAAE,oBAAyB;IAY7C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAOrC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAwBxC;;OAEG;IACG,OAAO,CACX,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC;IAiJ3B;;OAEG;IACG,IAAI,CACR,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC;IAe3B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B;;OAEG;YACW,YAAY;IA+J1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAwBpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAgC1B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,uBAAuB,CAE9F;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAI1B"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAO1D,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EAEZ,cAAc,EAEd,gBAAgB,EAEhB,iBAAiB,EACjB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAC/D,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,mBAAmB,CAAK;gBAEpB,MAAM,GAAE,oBAAyB;IAY7C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAOrC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAwBxC;;OAEG;IACG,OAAO,CACX,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC;IA6J3B;;OAEG;IACG,IAAI,CACR,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC;IAe3B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B;;OAEG;YACW,YAAY;IA6O1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAwBpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAgC1B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,uBAAuB,CAE9F;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAI1B"}
package/dist/provider.js CHANGED
@@ -4,7 +4,8 @@
4
4
  * Main execution provider that uses Dagger SDK to run
5
5
  * containerized commands for Enact tools.
6
6
  */
7
- import { connect } from "@dagger.io/dagger";
7
+ import { basename } from "node:path";
8
+ import { ReturnType, connect } from "@dagger.io/dagger";
8
9
  import { applyDefaults, detectRuntime, interpolateCommand, validateInputs, } from "@enactprotocol/shared";
9
10
  /**
10
11
  * Provider for executing containerized commands via Dagger
@@ -23,7 +24,7 @@ export class DaggerExecutionProvider {
23
24
  this.config = {
24
25
  defaultTimeout: config.defaultTimeout ?? 300000, // 5 minutes
25
26
  verbose: config.verbose ?? false,
26
- workdir: config.workdir ?? "/work",
27
+ workdir: config.workdir ?? "/workspace",
27
28
  };
28
29
  // Only set preferredRuntime if provided
29
30
  if (config.preferredRuntime) {
@@ -107,10 +108,15 @@ export class DaggerExecutionProvider {
107
108
  return this.createErrorResult(manifest.name, containerImage, executionId, startTime, "COMMAND_ERROR", "No command defined in tool manifest");
108
109
  }
109
110
  // Interpolate command with parameters - only substitute known inputSchema params
111
+ // Use onMissing: "empty" so optional params without values become empty strings
112
+ // (validation already caught truly missing required params above)
110
113
  const knownParameters = manifest.inputSchema?.properties
111
114
  ? new Set(Object.keys(manifest.inputSchema.properties))
112
115
  : undefined;
113
- const interpolated = interpolateCommand(command, params, knownParameters ? { knownParameters } : {});
116
+ const interpolated = interpolateCommand(command, params, {
117
+ onMissing: "empty",
118
+ ...(knownParameters ? { knownParameters } : {}),
119
+ });
114
120
  // Parse timeout
115
121
  const timeoutMs = this.parseTimeout(options.timeout ?? manifest.timeout);
116
122
  // Execute with Dagger
@@ -154,18 +160,30 @@ export class DaggerExecutionProvider {
154
160
  catch (error) {
155
161
  this.consecutiveFailures++;
156
162
  const errorMessage = error instanceof Error ? error.message : String(error);
157
- // Determine error code
163
+ // Determine error code and clean up message
158
164
  let code = "CONTAINER_ERROR";
159
- if (errorMessage.includes("timeout") || errorMessage === "TIMEOUT") {
165
+ let displayMessage = errorMessage;
166
+ if (errorMessage.startsWith("BUILD_ERROR:")) {
167
+ code = "BUILD_ERROR";
168
+ // Remove the BUILD_ERROR: prefix for cleaner display
169
+ displayMessage = errorMessage.slice("BUILD_ERROR:".length).trim();
170
+ }
171
+ else if (errorMessage.includes("timeout") || errorMessage === "TIMEOUT") {
160
172
  code = "TIMEOUT";
173
+ displayMessage = `Container execution failed: ${errorMessage}`;
161
174
  }
162
175
  else if (errorMessage.includes("network")) {
163
176
  code = "NETWORK_ERROR";
177
+ displayMessage = `Container execution failed: ${errorMessage}`;
164
178
  }
165
179
  else if (errorMessage.includes("engine")) {
166
180
  code = "ENGINE_ERROR";
181
+ displayMessage = `Container execution failed: ${errorMessage}`;
167
182
  }
168
- return this.createErrorResult(manifest.name, containerImage, executionId, startTime, code, `Container execution failed: ${errorMessage}`);
183
+ else {
184
+ displayMessage = `Container execution failed: ${errorMessage}`;
185
+ }
186
+ return this.createErrorResult(manifest.name, containerImage, executionId, startTime, code, displayMessage);
169
187
  }
170
188
  }
171
189
  /**
@@ -205,7 +223,7 @@ export class DaggerExecutionProvider {
205
223
  // This ensures the pull happens before we start the execution timeout
206
224
  await container.platform();
207
225
  // Set working directory
208
- const workdir = options.workdir ?? this.config.workdir ?? "/work";
226
+ const workdir = options.workdir ?? this.config.workdir ?? "/workspace";
209
227
  container = container.withWorkdir(workdir);
210
228
  // Add environment variables from manifest
211
229
  if (manifest.env) {
@@ -235,13 +253,37 @@ export class DaggerExecutionProvider {
235
253
  container = container.withSecretVariable(key, secret);
236
254
  }
237
255
  }
238
- // Mount host directories if specified
256
+ // Mount host directories if specified (legacy mountDirs)
239
257
  if (options.mountDirs) {
240
258
  for (const [source, target] of Object.entries(options.mountDirs)) {
241
- container = container.withMountedDirectory(target, client.host().directory(source));
259
+ container = container.withDirectory(target, client.host().directory(source));
260
+ }
261
+ }
262
+ // Mount input paths (new inputPaths option with file/directory support)
263
+ if (options.inputPaths) {
264
+ for (const inputPath of options.inputPaths) {
265
+ if (inputPath.name) {
266
+ // Named input: mount to /inputs/<name>
267
+ const target = `/inputs/${inputPath.name}`;
268
+ if (inputPath.type === "file") {
269
+ container = container.withFile(target, client.host().file(inputPath.path));
270
+ }
271
+ else {
272
+ container = container.withDirectory(target, client.host().directory(inputPath.path));
273
+ }
274
+ }
275
+ else if (inputPath.type === "file") {
276
+ // Single file: mount to /input/<filename>
277
+ const filename = basename(inputPath.path);
278
+ container = container.withFile(`/input/${filename}`, client.host().file(inputPath.path));
279
+ }
280
+ else {
281
+ // Single directory: mount to /input
282
+ container = container.withDirectory("/input", client.host().directory(inputPath.path));
283
+ }
242
284
  }
243
285
  }
244
- // Mount input files
286
+ // Mount input files (legacy files option)
245
287
  if (input.files) {
246
288
  for (const [name, fileInput] of Object.entries(input.files)) {
247
289
  if (fileInput.content) {
@@ -264,11 +306,37 @@ export class DaggerExecutionProvider {
264
306
  const buildCommands = Array.isArray(manifest.build)
265
307
  ? manifest.build
266
308
  : [manifest.build];
267
- for (const buildCmd of buildCommands) {
268
- container = container.withExec(["sh", "-c", buildCmd]);
309
+ for (let i = 0; i < buildCommands.length; i++) {
310
+ const buildCmd = buildCommands[i];
311
+ // Use expect: ReturnType.Any to capture output even on failure
312
+ container = container.withExec(["sh", "-c", buildCmd], { expect: ReturnType.Any });
313
+ // Force this build step to complete before moving to next
314
+ const buildContainer = await container.sync();
315
+ // Get exit code and output
316
+ const buildExitCode = await buildContainer.exitCode();
317
+ const buildStdout = await buildContainer.stdout();
318
+ const buildStderr = await buildContainer.stderr();
319
+ if (buildExitCode !== 0) {
320
+ // Create detailed build error message with actual output
321
+ const stepInfo = buildCommands.length > 1
322
+ ? `Build failed at step ${i + 1} of ${buildCommands.length}`
323
+ : "Build failed";
324
+ const details = [
325
+ stepInfo,
326
+ `Command: ${buildCmd}`,
327
+ `Exit code: ${buildExitCode}`,
328
+ buildStderr ? `\nstderr:\n${buildStderr}` : "",
329
+ buildStdout ? `\nstdout:\n${buildStdout}` : "",
330
+ ]
331
+ .filter(Boolean)
332
+ .join("\n");
333
+ throw new Error(`BUILD_ERROR: ${details}`);
334
+ }
335
+ // In verbose mode, show build progress
336
+ if (this.config.verbose) {
337
+ console.error(`Build step ${i + 1}/${buildCommands.length} completed: ${buildCmd.slice(0, 50)}${buildCmd.length > 50 ? "..." : ""}`);
338
+ }
269
339
  }
270
- // Force build to complete (triggers caching)
271
- await container.sync();
272
340
  }
273
341
  // Now start the timeout for actual command execution only
274
342
  const timeoutId = setTimeout(() => {
@@ -277,16 +345,16 @@ export class DaggerExecutionProvider {
277
345
  try {
278
346
  // Execute the main command (this is what the timeout applies to)
279
347
  const shellCommand = ["sh", "-c", command];
280
- container = container.withExec(shellCommand);
281
- // Capture stdout and stderr
282
- // Note: Newer Dagger versions use sync() to get the final container state
348
+ // Use withExec with expect: ReturnType.Any to allow non-zero exit codes
349
+ // This lets us capture actual stdout/stderr even when commands fail
350
+ container = container.withExec(shellCommand, { expect: ReturnType.Any });
351
+ // Capture stdout and stderr - now always works since expect: Any prevents throwing
283
352
  const finalContainer = await container.sync();
284
- const [stdout, stderr] = await Promise.all([
353
+ const [stdout, stderr, exitCode] = await Promise.all([
285
354
  finalContainer.stdout(),
286
355
  finalContainer.stderr(),
356
+ finalContainer.exitCode(),
287
357
  ]);
288
- // Exit code is determined by whether stderr contains errors
289
- const exitCode = stderr ? 1 : 0;
290
358
  clearTimeout(timeoutId);
291
359
  // Build output object
292
360
  const output = {
@@ -294,12 +362,24 @@ export class DaggerExecutionProvider {
294
362
  stderr,
295
363
  exitCode,
296
364
  };
297
- // Extract output files if requested
365
+ // Export /output directory to host if outputPath specified
366
+ if (options.outputPath) {
367
+ try {
368
+ await finalContainer.directory("/output").export(options.outputPath);
369
+ }
370
+ catch (exportError) {
371
+ // /output directory may not exist - that's ok, tool may not produce output
372
+ if (this.config.verbose) {
373
+ console.error(`Note: Could not export /output: ${exportError}`);
374
+ }
375
+ }
376
+ }
377
+ // Extract output files if requested (legacy outputFiles option)
298
378
  if (options.outputFiles && options.outputFiles.length > 0) {
299
379
  const extractedFiles = {};
300
380
  for (const filePath of options.outputFiles) {
301
381
  try {
302
- const content = await container.file(filePath).contents();
382
+ const content = await finalContainer.file(filePath).contents();
303
383
  extractedFiles[filePath] = Buffer.from(content);
304
384
  }
305
385
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enactprotocol/execution",
3
- "version": "2.1.24",
3
+ "version": "2.1.29",
4
4
  "description": "Dagger-based execution engine for Enact tools",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -19,8 +19,8 @@
19
19
  "lint:fix": "biome check --write src/"
20
20
  },
21
21
  "dependencies": {
22
- "@enactprotocol/shared": "2.1.24",
23
- "@dagger.io/dagger": "^0.11.1"
22
+ "@enactprotocol/shared": "2.1.29",
23
+ "@dagger.io/dagger": "^0.19.8"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@biomejs/biome": "^1.8.0",
package/src/provider.ts CHANGED
@@ -5,7 +5,8 @@
5
5
  * containerized commands for Enact tools.
6
6
  */
7
7
 
8
- import { type Client, type Container, connect } from "@dagger.io/dagger";
8
+ import { basename } from "node:path";
9
+ import { type Client, type Container, ReturnType, connect } from "@dagger.io/dagger";
9
10
  import type { ToolManifest } from "@enactprotocol/shared";
10
11
  import {
11
12
  applyDefaults,
@@ -57,7 +58,7 @@ export class DaggerExecutionProvider implements ExecutionProvider {
57
58
  this.config = {
58
59
  defaultTimeout: config.defaultTimeout ?? 300000, // 5 minutes
59
60
  verbose: config.verbose ?? false,
60
- workdir: config.workdir ?? "/work",
61
+ workdir: config.workdir ?? "/workspace",
61
62
  };
62
63
  // Only set preferredRuntime if provided
63
64
  if (config.preferredRuntime) {
@@ -184,14 +185,15 @@ export class DaggerExecutionProvider implements ExecutionProvider {
184
185
  }
185
186
 
186
187
  // Interpolate command with parameters - only substitute known inputSchema params
188
+ // Use onMissing: "empty" so optional params without values become empty strings
189
+ // (validation already caught truly missing required params above)
187
190
  const knownParameters = manifest.inputSchema?.properties
188
191
  ? new Set(Object.keys(manifest.inputSchema.properties))
189
192
  : undefined;
190
- const interpolated = interpolateCommand(
191
- command,
192
- params,
193
- knownParameters ? { knownParameters } : {}
194
- );
193
+ const interpolated = interpolateCommand(command, params, {
194
+ onMissing: "empty",
195
+ ...(knownParameters ? { knownParameters } : {}),
196
+ });
195
197
 
196
198
  // Parse timeout
197
199
  const timeoutMs = this.parseTimeout(options.timeout ?? manifest.timeout);
@@ -249,14 +251,25 @@ export class DaggerExecutionProvider implements ExecutionProvider {
249
251
  this.consecutiveFailures++;
250
252
  const errorMessage = error instanceof Error ? error.message : String(error);
251
253
 
252
- // Determine error code
254
+ // Determine error code and clean up message
253
255
  let code: ExecutionErrorCode = "CONTAINER_ERROR";
254
- if (errorMessage.includes("timeout") || errorMessage === "TIMEOUT") {
256
+ let displayMessage = errorMessage;
257
+
258
+ if (errorMessage.startsWith("BUILD_ERROR:")) {
259
+ code = "BUILD_ERROR";
260
+ // Remove the BUILD_ERROR: prefix for cleaner display
261
+ displayMessage = errorMessage.slice("BUILD_ERROR:".length).trim();
262
+ } else if (errorMessage.includes("timeout") || errorMessage === "TIMEOUT") {
255
263
  code = "TIMEOUT";
264
+ displayMessage = `Container execution failed: ${errorMessage}`;
256
265
  } else if (errorMessage.includes("network")) {
257
266
  code = "NETWORK_ERROR";
267
+ displayMessage = `Container execution failed: ${errorMessage}`;
258
268
  } else if (errorMessage.includes("engine")) {
259
269
  code = "ENGINE_ERROR";
270
+ displayMessage = `Container execution failed: ${errorMessage}`;
271
+ } else {
272
+ displayMessage = `Container execution failed: ${errorMessage}`;
260
273
  }
261
274
 
262
275
  return this.createErrorResult(
@@ -265,7 +278,7 @@ export class DaggerExecutionProvider implements ExecutionProvider {
265
278
  executionId,
266
279
  startTime,
267
280
  code,
268
- `Container execution failed: ${errorMessage}`
281
+ displayMessage
269
282
  );
270
283
  }
271
284
  }
@@ -325,7 +338,7 @@ export class DaggerExecutionProvider implements ExecutionProvider {
325
338
  await container.platform();
326
339
 
327
340
  // Set working directory
328
- const workdir = options.workdir ?? this.config.workdir ?? "/work";
341
+ const workdir = options.workdir ?? this.config.workdir ?? "/workspace";
329
342
  container = container.withWorkdir(workdir);
330
343
 
331
344
  // Add environment variables from manifest
@@ -360,14 +373,45 @@ export class DaggerExecutionProvider implements ExecutionProvider {
360
373
  }
361
374
  }
362
375
 
363
- // Mount host directories if specified
376
+ // Mount host directories if specified (legacy mountDirs)
364
377
  if (options.mountDirs) {
365
378
  for (const [source, target] of Object.entries(options.mountDirs)) {
366
- container = container.withMountedDirectory(target, client.host().directory(source));
379
+ container = container.withDirectory(target, client.host().directory(source));
380
+ }
381
+ }
382
+
383
+ // Mount input paths (new inputPaths option with file/directory support)
384
+ if (options.inputPaths) {
385
+ for (const inputPath of options.inputPaths) {
386
+ if (inputPath.name) {
387
+ // Named input: mount to /inputs/<name>
388
+ const target = `/inputs/${inputPath.name}`;
389
+ if (inputPath.type === "file") {
390
+ container = container.withFile(target, client.host().file(inputPath.path));
391
+ } else {
392
+ container = container.withDirectory(
393
+ target,
394
+ client.host().directory(inputPath.path)
395
+ );
396
+ }
397
+ } else if (inputPath.type === "file") {
398
+ // Single file: mount to /input/<filename>
399
+ const filename = basename(inputPath.path);
400
+ container = container.withFile(
401
+ `/input/${filename}`,
402
+ client.host().file(inputPath.path)
403
+ );
404
+ } else {
405
+ // Single directory: mount to /input
406
+ container = container.withDirectory(
407
+ "/input",
408
+ client.host().directory(inputPath.path)
409
+ );
410
+ }
367
411
  }
368
412
  }
369
413
 
370
- // Mount input files
414
+ // Mount input files (legacy files option)
371
415
  if (input.files) {
372
416
  for (const [name, fileInput] of Object.entries(input.files)) {
373
417
  if (fileInput.content) {
@@ -394,11 +438,46 @@ export class DaggerExecutionProvider implements ExecutionProvider {
394
438
  const buildCommands = Array.isArray(manifest.build)
395
439
  ? manifest.build
396
440
  : [manifest.build];
397
- for (const buildCmd of buildCommands) {
398
- container = container.withExec(["sh", "-c", buildCmd]);
441
+
442
+ for (let i = 0; i < buildCommands.length; i++) {
443
+ const buildCmd = buildCommands[i] as string;
444
+ // Use expect: ReturnType.Any to capture output even on failure
445
+ container = container.withExec(["sh", "-c", buildCmd], { expect: ReturnType.Any });
446
+ // Force this build step to complete before moving to next
447
+ const buildContainer = await container.sync();
448
+
449
+ // Get exit code and output
450
+ const buildExitCode = await buildContainer.exitCode();
451
+ const buildStdout = await buildContainer.stdout();
452
+ const buildStderr = await buildContainer.stderr();
453
+
454
+ if (buildExitCode !== 0) {
455
+ // Create detailed build error message with actual output
456
+ const stepInfo =
457
+ buildCommands.length > 1
458
+ ? `Build failed at step ${i + 1} of ${buildCommands.length}`
459
+ : "Build failed";
460
+
461
+ const details = [
462
+ stepInfo,
463
+ `Command: ${buildCmd}`,
464
+ `Exit code: ${buildExitCode}`,
465
+ buildStderr ? `\nstderr:\n${buildStderr}` : "",
466
+ buildStdout ? `\nstdout:\n${buildStdout}` : "",
467
+ ]
468
+ .filter(Boolean)
469
+ .join("\n");
470
+
471
+ throw new Error(`BUILD_ERROR: ${details}`);
472
+ }
473
+
474
+ // In verbose mode, show build progress
475
+ if (this.config.verbose) {
476
+ console.error(
477
+ `Build step ${i + 1}/${buildCommands.length} completed: ${buildCmd.slice(0, 50)}${buildCmd.length > 50 ? "..." : ""}`
478
+ );
479
+ }
399
480
  }
400
- // Force build to complete (triggers caching)
401
- await container.sync();
402
481
  }
403
482
 
404
483
  // Now start the timeout for actual command execution only
@@ -409,17 +488,17 @@ export class DaggerExecutionProvider implements ExecutionProvider {
409
488
  try {
410
489
  // Execute the main command (this is what the timeout applies to)
411
490
  const shellCommand = ["sh", "-c", command];
412
- container = container.withExec(shellCommand);
491
+ // Use withExec with expect: ReturnType.Any to allow non-zero exit codes
492
+ // This lets us capture actual stdout/stderr even when commands fail
493
+ container = container.withExec(shellCommand, { expect: ReturnType.Any });
413
494
 
414
- // Capture stdout and stderr
415
- // Note: Newer Dagger versions use sync() to get the final container state
495
+ // Capture stdout and stderr - now always works since expect: Any prevents throwing
416
496
  const finalContainer = await container.sync();
417
- const [stdout, stderr] = await Promise.all([
497
+ const [stdout, stderr, exitCode] = await Promise.all([
418
498
  finalContainer.stdout(),
419
499
  finalContainer.stderr(),
500
+ finalContainer.exitCode(),
420
501
  ]);
421
- // Exit code is determined by whether stderr contains errors
422
- const exitCode = stderr ? 1 : 0;
423
502
 
424
503
  clearTimeout(timeoutId);
425
504
 
@@ -430,12 +509,24 @@ export class DaggerExecutionProvider implements ExecutionProvider {
430
509
  exitCode,
431
510
  };
432
511
 
433
- // Extract output files if requested
512
+ // Export /output directory to host if outputPath specified
513
+ if (options.outputPath) {
514
+ try {
515
+ await finalContainer.directory("/output").export(options.outputPath);
516
+ } catch (exportError) {
517
+ // /output directory may not exist - that's ok, tool may not produce output
518
+ if (this.config.verbose) {
519
+ console.error(`Note: Could not export /output: ${exportError}`);
520
+ }
521
+ }
522
+ }
523
+
524
+ // Extract output files if requested (legacy outputFiles option)
434
525
  if (options.outputFiles && options.outputFiles.length > 0) {
435
526
  const extractedFiles: Record<string, Buffer> = {};
436
527
  for (const filePath of options.outputFiles) {
437
528
  try {
438
- const content = await container.file(filePath).contents();
529
+ const content = await finalContainer.file(filePath).contents();
439
530
  extractedFiles[filePath] = Buffer.from(content);
440
531
  } catch {
441
532
  // File doesn't exist or can't be read - skip