@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.
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +102 -22
- package/dist/provider.js.map +1 -1
- package/package.json +3 -3
- package/src/provider.ts +117 -26
- package/tsconfig.tsbuildinfo +1 -1
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
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 {
|
|
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 ?? "/
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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 ?? "/
|
|
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.
|
|
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 (
|
|
268
|
-
|
|
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
|
-
|
|
281
|
-
//
|
|
282
|
-
|
|
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
|
-
//
|
|
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
|
|
382
|
+
const content = await finalContainer.file(filePath).contents();
|
|
303
383
|
extractedFiles[filePath] = Buffer.from(content);
|
|
304
384
|
}
|
|
305
385
|
catch {
|
package/dist/provider.js.map
CHANGED
|
@@ -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.
|
|
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.
|
|
23
|
-
"@dagger.io/dagger": "^0.
|
|
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 {
|
|
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 ?? "/
|
|
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
|
-
|
|
192
|
-
|
|
193
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 ?? "/
|
|
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.
|
|
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
|
-
|
|
398
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
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
|
|
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
|