@enactprotocol/execution 2.2.4 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/provider.js CHANGED
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { basename } from "node:path";
8
8
  import { ReturnType, connect } from "@dagger.io/dagger";
9
- import { applyDefaults, detectRuntime, interpolateCommand, validateInputs, } from "@enactprotocol/shared";
9
+ import { applyDefaults, detectRuntime, getEffectiveInputSchema, interpolateCommand, prepareActionCommand, validateInputs, } from "@enactprotocol/shared";
10
10
  /**
11
11
  * Provider for executing containerized commands via Dagger
12
12
  *
@@ -90,32 +90,17 @@ export class DaggerExecutionProvider {
90
90
  if (!this.detectedRuntime) {
91
91
  return this.createErrorResult(manifest.name, containerImage, executionId, startTime, "RUNTIME_NOT_FOUND", "No container runtime available (docker, podman, or nerdctl required)");
92
92
  }
93
- // Validate inputs against schema
94
- if (manifest.inputSchema) {
95
- const validation = validateInputs(input.params, manifest.inputSchema);
96
- if (!validation.valid) {
97
- const errorMessages = validation.errors.map((e) => `${e.path}: ${e.message}`);
98
- return this.createErrorResult(manifest.name, containerImage, executionId, startTime, "VALIDATION_ERROR", `Input validation failed: ${errorMessages.join(", ")}`);
99
- }
100
- }
101
- // Apply defaults to inputs
102
- const params = manifest.inputSchema
103
- ? applyDefaults(input.params, manifest.inputSchema)
104
- : input.params;
93
+ // Pass params through (scripts handle their own validation via action inputSchema)
94
+ const params = input.params;
105
95
  // Get the command from the manifest
106
96
  const command = manifest.command;
107
97
  if (!command) {
108
98
  return this.createErrorResult(manifest.name, containerImage, executionId, startTime, "COMMAND_ERROR", "No command defined in tool manifest");
109
99
  }
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)
113
- const knownParameters = manifest.inputSchema?.properties
114
- ? new Set(Object.keys(manifest.inputSchema.properties))
115
- : undefined;
100
+ // Interpolate command with parameters
101
+ // Without per-script schema, all ${param} patterns are substituted
116
102
  const interpolated = interpolateCommand(command, params, {
117
103
  onMissing: "empty",
118
- ...(knownParameters ? { knownParameters } : {}),
119
104
  });
120
105
  // Parse timeout
121
106
  const timeoutMs = this.parseTimeout(options.timeout ?? manifest.timeout);
@@ -201,6 +186,134 @@ export class DaggerExecutionProvider {
201
186
  };
202
187
  return this.execute(execManifest, input, options);
203
188
  }
189
+ /**
190
+ * Execute an action from ACTIONS.yaml
191
+ *
192
+ * This method uses the {{param}} template system which:
193
+ * - Passes commands directly to execve() (no shell interpolation)
194
+ * - Each template becomes a single argument regardless of content
195
+ * - Omits arguments for optional params without values
196
+ *
197
+ * @param manifest - The skill manifest (SKILL.md)
198
+ * @param actionsManifest - The actions manifest (ACTIONS.yaml)
199
+ * @param actionName - The name of the action to execute
200
+ * @param action - The specific action definition to execute
201
+ * @param input - Execution input with params
202
+ * @param options - Execution options
203
+ */
204
+ async executeAction(manifest, actionsManifest, actionName, action, input, options = {}) {
205
+ const startTime = new Date();
206
+ const executionId = this.generateExecutionId();
207
+ // Get container image from manifest
208
+ const containerImage = manifest.from ?? "alpine:latest";
209
+ // Ensure initialized
210
+ if (!this.initialized) {
211
+ await this.initialize();
212
+ }
213
+ // Check runtime availability
214
+ if (!this.detectedRuntime) {
215
+ return this.createErrorResult(manifest.name, containerImage, executionId, startTime, "RUNTIME_NOT_FOUND", "No container runtime available (docker, podman, or nerdctl required)");
216
+ }
217
+ // Get effective inputSchema (defaults to empty if not provided)
218
+ const effectiveSchema = getEffectiveInputSchema(action);
219
+ // Validate inputs against action's inputSchema
220
+ const validation = validateInputs(input.params, effectiveSchema);
221
+ if (!validation.valid) {
222
+ const errorMessages = validation.errors.map((e) => `${e.path}: ${e.message}`);
223
+ return this.createErrorResult(manifest.name, containerImage, executionId, startTime, "VALIDATION_ERROR", `Input validation failed: ${errorMessages.join(", ")}`);
224
+ }
225
+ // Apply defaults to inputs
226
+ const params = applyDefaults(input.params, effectiveSchema);
227
+ // Prepare the command using {{param}} template system
228
+ // This returns an array suitable for execve() - no shell interpolation
229
+ let commandArray;
230
+ try {
231
+ const actionCommand = action.command;
232
+ if (typeof actionCommand === "string") {
233
+ // String-form command (no templates allowed - validation ensures this)
234
+ // Split into args for execve
235
+ commandArray = actionCommand.split(/\s+/).filter((s) => s.length > 0);
236
+ }
237
+ else {
238
+ // Array-form command with {{param}} templates
239
+ commandArray = prepareActionCommand(actionCommand, params, effectiveSchema);
240
+ }
241
+ }
242
+ catch (error) {
243
+ const message = error instanceof Error ? error.message : String(error);
244
+ return this.createErrorResult(manifest.name, containerImage, executionId, startTime, "COMMAND_ERROR", `Failed to prepare action command: ${message}`);
245
+ }
246
+ if (commandArray.length === 0) {
247
+ return this.createErrorResult(manifest.name, containerImage, executionId, startTime, "COMMAND_ERROR", "Action command is empty");
248
+ }
249
+ // Parse timeout
250
+ const timeoutMs = this.parseTimeout(options.timeout ?? manifest.timeout);
251
+ // Execute with Dagger using direct exec (no shell wrapper)
252
+ try {
253
+ const output = await this.runActionContainer(manifest, actionsManifest, containerImage, commandArray, input, options, timeoutMs);
254
+ const endTime = new Date();
255
+ this.consecutiveFailures = 0;
256
+ this.lastHealthCheck = endTime;
257
+ const metadata = {
258
+ toolName: `${manifest.name}:${actionName}`,
259
+ containerImage,
260
+ startTime,
261
+ endTime,
262
+ durationMs: endTime.getTime() - startTime.getTime(),
263
+ cached: false,
264
+ executionId,
265
+ };
266
+ if (manifest.version) {
267
+ metadata.toolVersion = manifest.version;
268
+ }
269
+ if (output.exitCode !== 0) {
270
+ return {
271
+ success: false,
272
+ output,
273
+ metadata,
274
+ error: {
275
+ code: "COMMAND_ERROR",
276
+ message: `Action "${actionName}" exited with code ${output.exitCode}`,
277
+ ...(output.stderr && { details: { stderr: output.stderr } }),
278
+ },
279
+ };
280
+ }
281
+ // Validate output against outputSchema if defined
282
+ if (action.outputSchema && output.stdout) {
283
+ try {
284
+ const parsed = JSON.parse(output.stdout);
285
+ output.parsed = parsed;
286
+ // TODO: Validate parsed output against outputSchema
287
+ }
288
+ catch {
289
+ // Output is not JSON - that's OK, leave as string
290
+ }
291
+ }
292
+ return {
293
+ success: true,
294
+ output,
295
+ metadata,
296
+ };
297
+ }
298
+ catch (error) {
299
+ this.consecutiveFailures++;
300
+ const errorMessage = error instanceof Error ? error.message : String(error);
301
+ let code = "CONTAINER_ERROR";
302
+ let displayMessage = errorMessage;
303
+ if (errorMessage.startsWith("BUILD_ERROR:")) {
304
+ code = "BUILD_ERROR";
305
+ displayMessage = errorMessage.slice("BUILD_ERROR:".length).trim();
306
+ }
307
+ else if (errorMessage.includes("timeout") || errorMessage === "TIMEOUT") {
308
+ code = "TIMEOUT";
309
+ displayMessage = `Action execution timed out: ${errorMessage}`;
310
+ }
311
+ else {
312
+ displayMessage = `Action execution failed: ${errorMessage}`;
313
+ }
314
+ return this.createErrorResult(manifest.name, containerImage, executionId, startTime, code, displayMessage);
315
+ }
316
+ }
204
317
  /**
205
318
  * Shutdown the provider
206
319
  */
@@ -405,6 +518,178 @@ export class DaggerExecutionProvider {
405
518
  });
406
519
  });
407
520
  }
521
+ /**
522
+ * Run action container with direct exec (no shell wrapper)
523
+ *
524
+ * This is the key difference from runContainer - commands are passed
525
+ * directly to execve() without shell interpolation, preventing injection.
526
+ */
527
+ async runActionContainer(manifest, actionsManifest, containerImage, commandArray, input, options, timeoutMs) {
528
+ return new Promise((resolve, reject) => {
529
+ connect(async (client) => {
530
+ try {
531
+ // Create container from image
532
+ let container = client.container().from(containerImage);
533
+ // Force the image to be pulled before timeout
534
+ await container.platform();
535
+ // Set working directory
536
+ const workdir = options.workdir ?? this.config.workdir ?? "/workspace";
537
+ container = container.withWorkdir(workdir);
538
+ // Add environment variables from ACTIONS.yaml env block
539
+ if (actionsManifest.env) {
540
+ for (const [key, envVar] of Object.entries(actionsManifest.env)) {
541
+ if (!envVar.secret && envVar.default) {
542
+ container = container.withEnvVariable(key, envVar.default);
543
+ }
544
+ }
545
+ }
546
+ // Add environment variables from manifest (SKILL.md)
547
+ if (manifest.env) {
548
+ for (const [key, envVar] of Object.entries(manifest.env)) {
549
+ if (!envVar.secret && envVar.default) {
550
+ container = container.withEnvVariable(key, envVar.default);
551
+ }
552
+ }
553
+ }
554
+ // Add additional environment variables from options
555
+ if (options.additionalEnv) {
556
+ for (const [key, value] of Object.entries(options.additionalEnv)) {
557
+ container = container.withEnvVariable(key, String(value));
558
+ }
559
+ }
560
+ // Add environment variable overrides from input
561
+ if (input.envOverrides) {
562
+ for (const [key, value] of Object.entries(input.envOverrides)) {
563
+ container = container.withEnvVariable(key, value);
564
+ }
565
+ }
566
+ // Add secrets from input overrides
567
+ if (input.secretOverrides) {
568
+ for (const [key, secretUri] of Object.entries(input.secretOverrides)) {
569
+ const secret = client.secret(secretUri);
570
+ container = container.withSecretVariable(key, secret);
571
+ }
572
+ }
573
+ // Mount directories
574
+ if (options.mountDirs) {
575
+ for (const [source, target] of Object.entries(options.mountDirs)) {
576
+ container = container.withDirectory(target, client.host().directory(source));
577
+ }
578
+ }
579
+ // Mount input paths
580
+ if (options.inputPaths) {
581
+ for (const inputPath of options.inputPaths) {
582
+ if (inputPath.name) {
583
+ const target = `/inputs/${inputPath.name}`;
584
+ if (inputPath.type === "file") {
585
+ container = container.withFile(target, client.host().file(inputPath.path));
586
+ }
587
+ else {
588
+ container = container.withDirectory(target, client.host().directory(inputPath.path));
589
+ }
590
+ }
591
+ else if (inputPath.type === "file") {
592
+ const filename = basename(inputPath.path);
593
+ container = container.withFile(`/input/${filename}`, client.host().file(inputPath.path));
594
+ }
595
+ else {
596
+ container = container.withDirectory("/input", client.host().directory(inputPath.path));
597
+ }
598
+ }
599
+ }
600
+ // Run build commands from ACTIONS.yaml (cached)
601
+ const buildCommands = actionsManifest.build
602
+ ? Array.isArray(actionsManifest.build)
603
+ ? actionsManifest.build
604
+ : [actionsManifest.build]
605
+ : manifest.build
606
+ ? Array.isArray(manifest.build)
607
+ ? manifest.build
608
+ : [manifest.build]
609
+ : [];
610
+ for (let i = 0; i < buildCommands.length; i++) {
611
+ const buildCmd = buildCommands[i];
612
+ container = container.withExec(["sh", "-c", buildCmd], { expect: ReturnType.Any });
613
+ const buildContainer = await container.sync();
614
+ const buildExitCode = await buildContainer.exitCode();
615
+ const buildStdout = await buildContainer.stdout();
616
+ const buildStderr = await buildContainer.stderr();
617
+ if (buildExitCode !== 0) {
618
+ const stepInfo = buildCommands.length > 1
619
+ ? `Build failed at step ${i + 1} of ${buildCommands.length}`
620
+ : "Build failed";
621
+ const details = [
622
+ stepInfo,
623
+ `Command: ${buildCmd}`,
624
+ `Exit code: ${buildExitCode}`,
625
+ buildStderr ? `\nstderr:\n${buildStderr}` : "",
626
+ buildStdout ? `\nstdout:\n${buildStdout}` : "",
627
+ ]
628
+ .filter(Boolean)
629
+ .join("\n");
630
+ throw new Error(`BUILD_ERROR: ${details}`);
631
+ }
632
+ }
633
+ // Start timeout for action execution
634
+ const timeoutId = setTimeout(() => {
635
+ reject(new Error("TIMEOUT"));
636
+ }, timeoutMs);
637
+ try {
638
+ // Execute the action command DIRECTLY (no shell wrapper!)
639
+ // This is the key security difference from runContainer
640
+ container = container.withExec(commandArray, { expect: ReturnType.Any });
641
+ const finalContainer = await container.sync();
642
+ const [stdout, stderr, exitCode] = await Promise.all([
643
+ finalContainer.stdout(),
644
+ finalContainer.stderr(),
645
+ finalContainer.exitCode(),
646
+ ]);
647
+ clearTimeout(timeoutId);
648
+ const output = {
649
+ stdout,
650
+ stderr,
651
+ exitCode,
652
+ };
653
+ // Export /output directory if requested
654
+ if (options.outputPath) {
655
+ try {
656
+ await finalContainer.directory("/output").export(options.outputPath);
657
+ }
658
+ catch {
659
+ // /output may not exist
660
+ }
661
+ }
662
+ // Extract output files if requested
663
+ if (options.outputFiles && options.outputFiles.length > 0) {
664
+ const extractedFiles = {};
665
+ for (const filePath of options.outputFiles) {
666
+ try {
667
+ const content = await finalContainer.file(filePath).contents();
668
+ extractedFiles[filePath] = Buffer.from(content);
669
+ }
670
+ catch {
671
+ // File doesn't exist - skip
672
+ }
673
+ }
674
+ if (Object.keys(extractedFiles).length > 0) {
675
+ output.files = extractedFiles;
676
+ }
677
+ }
678
+ resolve(output);
679
+ }
680
+ catch (error) {
681
+ clearTimeout(timeoutId);
682
+ throw error;
683
+ }
684
+ }
685
+ catch (error) {
686
+ reject(error);
687
+ }
688
+ }, this.config.verbose ? { LogOutput: process.stderr } : {}).catch((error) => {
689
+ reject(error);
690
+ });
691
+ });
692
+ }
408
693
  /**
409
694
  * Generate a unique execution ID
410
695
  */
@@ -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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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Remote Execution Provider
3
+ *
4
+ * Delegates tool execution to a remote endpoint.
5
+ * Useful when no local container runtime is available.
6
+ */
7
+ import type { Action, ActionsManifest, ToolManifest } from "@enactprotocol/shared";
8
+ import type { EngineHealth, ExecutionInput, ExecutionOptions, ExecutionProvider, ExecutionResult } from "@enactprotocol/shared";
9
+ /**
10
+ * Configuration for the remote execution provider
11
+ */
12
+ export interface RemoteProviderConfig {
13
+ /** Remote execution endpoint (e.g., "https://run.enact.tools" or "http://localhost:3000") */
14
+ endpoint: string;
15
+ /** Authentication token */
16
+ authToken?: string;
17
+ /** Default timeout in milliseconds */
18
+ defaultTimeout?: number;
19
+ }
20
+ /**
21
+ * Provider that delegates execution to a remote server.
22
+ */
23
+ export declare class RemoteExecutionProvider implements ExecutionProvider {
24
+ readonly name = "remote";
25
+ private endpoint;
26
+ private authToken;
27
+ private defaultTimeout;
28
+ constructor(config: RemoteProviderConfig);
29
+ initialize(): Promise<void>;
30
+ isAvailable(): Promise<boolean>;
31
+ getHealth(): Promise<EngineHealth>;
32
+ shutdown(): Promise<void>;
33
+ execute(manifest: ToolManifest, input: ExecutionInput, options?: ExecutionOptions): Promise<ExecutionResult>;
34
+ exec(manifest: ToolManifest, command: string, options?: ExecutionOptions): Promise<ExecutionResult>;
35
+ executeAction(manifest: ToolManifest, actionsManifest: ActionsManifest, actionName: string, action: Action, input: ExecutionInput, options?: ExecutionOptions): Promise<ExecutionResult>;
36
+ private remoteExecute;
37
+ private createErrorResult;
38
+ }
39
+ /**
40
+ * Create a remote execution provider
41
+ */
42
+ export declare function createRemoteProvider(config: RemoteProviderConfig): RemoteExecutionProvider;
43
+ //# sourceMappingURL=remote-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-provider.d.ts","sourceRoot":"","sources":["../src/remote-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEnF,OAAO,KAAK,EACV,YAAY,EAEZ,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,6FAA6F;IAC7F,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAC/D,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,cAAc,CAAS;gBAEnB,MAAM,EAAE,oBAAoB;IAMlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAc/B,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IASlC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,OAAO,CACX,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC;IASrB,IAAI,CACR,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC;IAUrB,aAAa,CACjB,QAAQ,EAAE,YAAY,EACtB,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC;YAmCb,aAAa;IAuD3B,OAAO,CAAC,iBAAiB;CAuB1B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,uBAAuB,CAE1F"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Remote Execution Provider
3
+ *
4
+ * Delegates tool execution to a remote endpoint.
5
+ * Useful when no local container runtime is available.
6
+ */
7
+ import { applyDefaults, getEffectiveInputSchema, validateInputs } from "@enactprotocol/shared";
8
+ /**
9
+ * Provider that delegates execution to a remote server.
10
+ */
11
+ export class RemoteExecutionProvider {
12
+ name = "remote";
13
+ endpoint;
14
+ authToken;
15
+ defaultTimeout;
16
+ constructor(config) {
17
+ this.endpoint = config.endpoint.replace(/\/$/, "");
18
+ this.authToken = config.authToken;
19
+ this.defaultTimeout = config.defaultTimeout ?? 300000;
20
+ }
21
+ async initialize() {
22
+ // No initialization needed
23
+ }
24
+ async isAvailable() {
25
+ try {
26
+ const controller = new AbortController();
27
+ const timeout = setTimeout(() => controller.abort(), 5000);
28
+ const res = await fetch(`${this.endpoint}/health`, {
29
+ signal: controller.signal,
30
+ });
31
+ clearTimeout(timeout);
32
+ return res.ok;
33
+ }
34
+ catch {
35
+ return false;
36
+ }
37
+ }
38
+ async getHealth() {
39
+ const available = await this.isAvailable();
40
+ return {
41
+ healthy: available,
42
+ runtime: "docker",
43
+ consecutiveFailures: available ? 0 : 1,
44
+ };
45
+ }
46
+ async shutdown() {
47
+ // Nothing to clean up
48
+ }
49
+ async execute(manifest, input, options = {}) {
50
+ return this.remoteExecute({
51
+ type: "execute",
52
+ manifest,
53
+ input,
54
+ options,
55
+ });
56
+ }
57
+ async exec(manifest, command, options = {}) {
58
+ return this.remoteExecute({
59
+ type: "exec",
60
+ manifest,
61
+ command,
62
+ input: { params: {} },
63
+ options,
64
+ });
65
+ }
66
+ async executeAction(manifest, actionsManifest, actionName, action, input, options = {}) {
67
+ const startTime = new Date();
68
+ const executionId = `remote-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
69
+ // Validate inputs locally before sending to remote
70
+ const effectiveSchema = getEffectiveInputSchema(action);
71
+ const validation = validateInputs(input.params, effectiveSchema);
72
+ if (!validation.valid) {
73
+ const errorMessages = validation.errors.map((e) => `${e.path}: ${e.message}`);
74
+ return this.createErrorResult(`${manifest.name}:${actionName}`, executionId, startTime, "VALIDATION_ERROR", `Input validation failed: ${errorMessages.join(", ")}`);
75
+ }
76
+ const params = applyDefaults(input.params, effectiveSchema);
77
+ return this.remoteExecute({
78
+ type: "executeAction",
79
+ manifest,
80
+ actionsManifest,
81
+ actionName,
82
+ action,
83
+ input: { ...input, params },
84
+ options,
85
+ });
86
+ }
87
+ // ---------------------------------------------------------------------------
88
+ // Private helpers
89
+ // ---------------------------------------------------------------------------
90
+ async remoteExecute(payload) {
91
+ const startTime = new Date();
92
+ const executionId = `remote-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
93
+ const toolName = payload.manifest?.name ?? "unknown";
94
+ try {
95
+ const headers = {
96
+ "Content-Type": "application/json",
97
+ };
98
+ if (this.authToken) {
99
+ headers.Authorization = `Bearer ${this.authToken}`;
100
+ }
101
+ const controller = new AbortController();
102
+ const timeout = setTimeout(() => controller.abort(), this.defaultTimeout);
103
+ const response = await fetch(`${this.endpoint}/execute`, {
104
+ method: "POST",
105
+ headers,
106
+ body: JSON.stringify(payload),
107
+ signal: controller.signal,
108
+ });
109
+ clearTimeout(timeout);
110
+ if (!response.ok) {
111
+ const errorBody = await response.text();
112
+ return this.createErrorResult(toolName, executionId, startTime, "COMMAND_ERROR", `Remote execution failed (${response.status}): ${errorBody}`);
113
+ }
114
+ const result = (await response.json());
115
+ // Ensure metadata has correct timing from our perspective
116
+ const endTime = new Date();
117
+ if (result.metadata) {
118
+ result.metadata.startTime = startTime;
119
+ result.metadata.endTime = endTime;
120
+ result.metadata.durationMs = endTime.getTime() - startTime.getTime();
121
+ }
122
+ return result;
123
+ }
124
+ catch (error) {
125
+ const message = error instanceof Error ? error.message : String(error);
126
+ const code = message.includes("abort") ? "TIMEOUT" : "COMMAND_ERROR";
127
+ return this.createErrorResult(toolName, executionId, startTime, code, message);
128
+ }
129
+ }
130
+ createErrorResult(toolName, executionId, startTime, code, message) {
131
+ const endTime = new Date();
132
+ return {
133
+ success: false,
134
+ output: { stdout: "", stderr: message, exitCode: 1 },
135
+ metadata: {
136
+ toolName,
137
+ containerImage: "remote",
138
+ startTime,
139
+ endTime,
140
+ durationMs: endTime.getTime() - startTime.getTime(),
141
+ cached: false,
142
+ executionId,
143
+ },
144
+ error: { code, message },
145
+ };
146
+ }
147
+ }
148
+ /**
149
+ * Create a remote execution provider
150
+ */
151
+ export function createRemoteProvider(config) {
152
+ return new RemoteExecutionProvider(config);
153
+ }
154
+ //# sourceMappingURL=remote-provider.js.map