Files
clawdbot/src/agents/timeout.ts
2026-01-09 12:48:42 +00:00

36 lines
1.2 KiB
TypeScript

import type { ClawdbotConfig } from "../config/config.js";
const DEFAULT_AGENT_TIMEOUT_SECONDS = 600;
const normalizeNumber = (value: unknown): number | undefined =>
typeof value === "number" && Number.isFinite(value)
? Math.floor(value)
: undefined;
export function resolveAgentTimeoutSeconds(cfg?: ClawdbotConfig): number {
const raw = normalizeNumber(cfg?.agents?.defaults?.timeoutSeconds);
const seconds = raw ?? DEFAULT_AGENT_TIMEOUT_SECONDS;
return Math.max(seconds, 1);
}
export function resolveAgentTimeoutMs(opts: {
cfg?: ClawdbotConfig;
overrideMs?: number | null;
overrideSeconds?: number | null;
minMs?: number;
}): number {
const minMs = Math.max(normalizeNumber(opts.minMs) ?? 1, 1);
const defaultMs = resolveAgentTimeoutSeconds(opts.cfg) * 1000;
const overrideMs = normalizeNumber(opts.overrideMs);
if (overrideMs !== undefined) {
if (overrideMs <= 0) return defaultMs;
return Math.max(overrideMs, minMs);
}
const overrideSeconds = normalizeNumber(opts.overrideSeconds);
if (overrideSeconds !== undefined) {
if (overrideSeconds <= 0) return defaultMs;
return Math.max(overrideSeconds * 1000, minMs);
}
return Math.max(defaultMs, minMs);
}