






























@@ -21,23 +21,24 @@ const MANUAL_EXEC_TOKEN = "proof-manual-exec-token";
2121const PLUGIN_EXEC_TOKEN = "proof-plugin-exec-token";
2222const OPENAI_PROFILE = "openai:secretref-proof";
2323const OPENAI_LIVE_PROOF_MODEL = "openai/gpt-5.5";
24-const COMMAND_TIMEOUT_MS = readPositiveInt(
24+const MAX_SECRET_PROOF_TIMER_TIMEOUT_MS = 2_147_000_000;
25+const COMMAND_TIMEOUT_MS = readPositiveTimerMs(
2526process.env.OPENCLAW_SECRET_PROOF_COMMAND_MS,
2627120000,
2728"OPENCLAW_SECRET_PROOF_COMMAND_MS",
2829);
2930const COMMAND_TIMEOUT_KILL_GRACE_MS = 1000;
30-const READY_TIMEOUT_MS = readPositiveInt(
31+const READY_TIMEOUT_MS = readPositiveTimerMs(
3132process.env.OPENCLAW_SECRET_PROOF_READY_MS,
3233120000,
3334"OPENCLAW_SECRET_PROOF_READY_MS",
3435);
35-const RPC_TIMEOUT_MS = readPositiveInt(
36+const RPC_TIMEOUT_MS = readPositiveTimerMs(
3637process.env.OPENCLAW_SECRET_PROOF_RPC_MS,
373815000,
3839"OPENCLAW_SECRET_PROOF_RPC_MS",
3940);
40-const TEARDOWN_GRACE_MS = readPositiveInt(
41+const TEARDOWN_GRACE_MS = readPositiveTimerMs(
4142process.env.OPENCLAW_SECRET_PROOF_TEARDOWN_GRACE_MS,
42435000,
4344"OPENCLAW_SECRET_PROOF_TEARDOWN_GRACE_MS",
@@ -101,6 +102,18 @@ function readPositiveInt(raw, fallback, label) {
101102return parsed;
102103}
103104105+function clampSecretProofTimerTimeoutMs(valueMs) {
106+const value = Number.isFinite(valueMs) ? valueMs : 1;
107+return Math.min(
108+Math.max(1, Math.floor(value)),
109+MAX_SECRET_PROOF_TIMER_TIMEOUT_MS,
110+);
111+}
112+113+function readPositiveTimerMs(raw, fallback, label) {
114+return clampSecretProofTimerTimeoutMs(readPositiveInt(raw, fallback, label));
115+}
116+104117function remainingDeadlineMs(started, timeoutMs) {
105118return Math.max(1, timeoutMs - (Date.now() - started));
106119}
@@ -347,7 +360,7 @@ async function cleanupEnv(root, options = {}) {
347360}
348361349362function runCommand(command, args, options = {}) {
350-const timeoutMs = options.timeoutMs ?? COMMAND_TIMEOUT_MS;
363+const timeoutMs = clampSecretProofTimerTimeoutMs(options.timeoutMs ?? COMMAND_TIMEOUT_MS);
351364return new Promise((resolve, reject) => {
352365const usesProcessGroup = options.detached ?? process.platform !== "win32";
353366const child = childProcess.spawn(command, args, {
@@ -1825,8 +1838,10 @@ async function runPtySecretsConfigurePreset(envCtx, options = {}) {
18251838let timedOut = false;
18261839let forceKillAt;
18271840let forceKillTimer;
1828-const timeoutMs = options.timeoutMs ?? 60000;
1829-const timeoutKillGraceMs = options.timeoutKillGraceMs ?? COMMAND_TIMEOUT_KILL_GRACE_MS;
1841+const timeoutMs = clampSecretProofTimerTimeoutMs(options.timeoutMs ?? 60000);
1842+const timeoutKillGraceMs = clampSecretProofTimerTimeoutMs(
1843+options.timeoutKillGraceMs ?? COMMAND_TIMEOUT_KILL_GRACE_MS,
1844+);
18301845const timer = setTimeout(() => {
18311846timedOut = true;
18321847signalPtyProcessTree(child, "SIGHUP");
@@ -2152,11 +2167,13 @@ async function main() {
2152216721532168export {
21542169assertAllowedFailureCommandSucceeded,
2170+clampSecretProofTimerTimeoutMs,
21552171collectBlockingProofResults,
21562172cleanupEnv,
21572173expectGatewayStartupFails,
21582174gatewayCall,
21592175parseJsonOutput,
2176+readPositiveTimerMs,
21602177runPtySecretsConfigurePreset,
21612178runWithProof,
21622179runCommand,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。