diff --git a/clawdforge/server.py b/clawdforge/server.py index eaa876d..0f0b687 100644 --- a/clawdforge/server.py +++ b/clawdforge/server.py @@ -129,11 +129,12 @@ class RunRequest(BaseModel): # get the budget they deserve. effort: Literal["low", "medium", "high", "xhigh", "max"] | None = None files: list[str] | None = None - # Long-form prose-craft at --effort max can run 10–20 min wall clock, - # so the per-run cap is 1800s. Server still streams a per-process - # SIGTERM at the boundary; the caller's RunResult.duration_ms is - # honest about wall clock. - timeout_secs: int | None = Field(default=None, ge=5, le=1800) + # Long-form prose-craft at --effort max can run 10–20 min wall clock; + # a max-effort whole-book audit pass can run past an hour. The + # per-run cap is 7200s to cover the slowest case. Server still + # streams a per-process SIGTERM at the boundary; the caller's + # RunResult.duration_ms is honest about wall clock. + timeout_secs: int | None = Field(default=None, ge=5, le=7200) class TokenCreateRequest(BaseModel): @@ -153,7 +154,7 @@ class CreateSessionRequest(BaseModel): class TurnRequest(BaseModel): prompt: str = Field(min_length=1) files: list[str] | None = None - timeout_secs: int | None = Field(default=None, ge=5, le=1800) + timeout_secs: int | None = Field(default=None, ge=5, le=7200) # ---------- endpoints --------------------------------------------------------