diff --git a/packages/agent/src/harness/env/nodejs.ts b/packages/agent/src/harness/env/nodejs.ts index 4cf3331e..6c6808a7 100644 --- a/packages/agent/src/harness/env/nodejs.ts +++ b/packages/agent/src/harness/env/nodejs.ts @@ -33,10 +33,9 @@ const MAX_TIMEOUT_SECONDS = MAX_TIMEOUT_MS / 1000; function resolveTimeoutMs(timeout: number | undefined): Result { if (timeout === undefined) return ok(undefined); - if (!Number.isFinite(timeout)) { + if (!Number.isFinite(timeout) || timeout <= 0) { return err(new ExecutionError("timeout", "Invalid timeout: must be a finite number of seconds")); } - if (timeout <= 0) return ok(undefined); const timeoutMs = timeout * 1000; if (timeoutMs > MAX_TIMEOUT_MS) { diff --git a/packages/coding-agent/src/core/tools/bash.ts b/packages/coding-agent/src/core/tools/bash.ts index d5e080cc..b0bd5022 100644 --- a/packages/coding-agent/src/core/tools/bash.ts +++ b/packages/coding-agent/src/core/tools/bash.ts @@ -26,10 +26,9 @@ const MAX_TIMEOUT_SECONDS = MAX_TIMEOUT_MS / 1000; function resolveTimeoutMs(timeout: number | undefined): number | undefined { if (timeout === undefined) return undefined; - if (!Number.isFinite(timeout)) { + if (!Number.isFinite(timeout) || timeout <= 0) { throw new Error("Invalid timeout: must be a finite number of seconds"); } - if (timeout <= 0) return undefined; const timeoutMs = timeout * 1000; if (timeoutMs > MAX_TIMEOUT_MS) {