openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
22 lines (21 loc) • 1.12 kB
JavaScript
import { r as DEFAULT_UPDATE_STEP_TIMEOUT_MS } from "./update-run-timeouts-Byb-PlTk.mjs";
//#region src/commands/gateway-startup-timing.ts
function resolveGatewayStartupTiming(platform = process.platform, update) {
const windows = platform === "win32";
const timing = {
deadlineMs: windows ? 3 * DEFAULT_UPDATE_STEP_TIMEOUT_MS : 45e3,
probeTimeoutMs: windows ? 15e3 : 1e4
};
if (!update) return timing;
const floorMs = Math.max(update.migrationLeaseMs, windows ? timing.deadlineMs : 0);
const capMs = Math.max(floorMs, windows ? 4 * DEFAULT_UPDATE_STEP_TIMEOUT_MS : update.previousGateway ? 2 * DEFAULT_UPDATE_STEP_TIMEOUT_MS : Infinity);
const observedStartupMs = update.observedStartupMs ?? 0;
const observedBudget = `max(${floorMs}ms, canary startup ${observedStartupMs}ms × 10)`;
return {
...timing,
deadlineMs: update.timeoutMs ?? Math.min(capMs, Math.max(floorMs, observedStartupMs * 10)),
derivation: update.timeoutMs !== void 0 ? "explicit --timeout" : Number.isFinite(capMs) ? `min(${capMs}ms, ${observedBudget})` : observedBudget
};
}
//#endregion
export { resolveGatewayStartupTiming as t };