mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-11-04 19:28:46 +01:00
33 lines
1.6 KiB
TypeScript
33 lines
1.6 KiB
TypeScript
export const CHAT_NATIVE_TIMEOUT_POLICY = {
|
|
kind: "production-default-no-active-turn-cap",
|
|
effectiveNativeTurnTimeoutMs: 0,
|
|
savedAgentTimeoutSec: 0,
|
|
lifetimeOwner: "unchanged-finite-scenario-cell-and-owned-cleanup",
|
|
} as const;
|
|
|
|
export function chatNativeTimeoutEvidence(input: {
|
|
selectedTurnTimeoutMs: number | undefined;
|
|
authoredLegacyTurnTimeoutMs: number;
|
|
attemptTimeoutMs: number;
|
|
observationBudgetMs: number;
|
|
savedAgentTimeoutSec: unknown;
|
|
}) {
|
|
if (input.selectedTurnTimeoutMs !== CHAT_NATIVE_TIMEOUT_POLICY.effectiveNativeTurnTimeoutMs
|
|
|| input.savedAgentTimeoutSec !== CHAT_NATIVE_TIMEOUT_POLICY.savedAgentTimeoutSec)
|
|
throw new Error("Catalog effective native timeout differs from the production-default policy");
|
|
if (!Number.isFinite(input.attemptTimeoutMs) || input.attemptTimeoutMs <= 30_000
|
|
|| !Number.isFinite(input.observationBudgetMs) || input.observationBudgetMs <= 0 || input.observationBudgetMs >= input.attemptTimeoutMs
|
|
|| !Number.isFinite(input.authoredLegacyTurnTimeoutMs) || input.authoredLegacyTurnTimeoutMs <= 0)
|
|
throw new Error("Catalog requires its unchanged finite outer budget and explicit authored legacy declaration");
|
|
return { ...CHAT_NATIVE_TIMEOUT_POLICY,
|
|
authoredLegacyTurnTimeoutMs: input.authoredLegacyTurnTimeoutMs,
|
|
scenarioCellBudgetMs: input.attemptTimeoutMs,
|
|
scenarioObservationBudgetMs: input.observationBudgetMs,
|
|
playwrightBudgetMs: input.attemptTimeoutMs + 90_000,
|
|
launcherWatchdogMs: input.attemptTimeoutMs + 90_000 + 300_000,
|
|
activeRunCancellationWaitMs: 45_000,
|
|
ownedProcessShutdownGraceMs: 45_000,
|
|
ownedProcessKillGraceMs: 5_000,
|
|
};
|
|
}
|