fix(agents): cap provider request timeouts · openclaw/openclaw@8edeba0
steipete
·
2026-05-30
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -2,6 +2,7 @@ import fs from "node:fs";
|
2 | 2 | import os from "node:os"; |
3 | 3 | import path from "node:path"; |
4 | 4 | import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; |
| 5 | +import { MAX_TIMER_TIMEOUT_MS } from "../../shared/number-coercion.js"; |
5 | 6 | import { discoverAuthStorage, discoverModels } from "../agent-model-discovery.js"; |
6 | 7 | import { |
7 | 8 | clearRuntimeAuthProfileStoreSnapshots, |
@@ -1446,6 +1447,38 @@ describe("resolveModel", () => {
|
1446 | 1447 | ); |
1447 | 1448 | }); |
1448 | 1449 | |
| 1450 | +it("caps oversized provider request timeout metadata at the timer-safe ceiling", () => { |
| 1451 | +mockDiscoveredModel(discoverModels, { |
| 1452 | +provider: "openai", |
| 1453 | +modelId: "gpt-5.5", |
| 1454 | +templateModel: { |
| 1455 | + ...makeModel("gpt-5.5"), |
| 1456 | +provider: "openai", |
| 1457 | +}, |
| 1458 | +}); |
| 1459 | +const cfg = { |
| 1460 | +models: { |
| 1461 | +providers: { |
| 1462 | +openai: { |
| 1463 | +timeoutSeconds: Number.MAX_SAFE_INTEGER, |
| 1464 | +}, |
| 1465 | +}, |
| 1466 | +}, |
| 1467 | +} satisfies OpenClawConfigInput; |
| 1468 | + |
| 1469 | +const result = resolveModelForTest( |
| 1470 | +"openai", |
| 1471 | +"gpt-5.5", |
| 1472 | +"/tmp/agent", |
| 1473 | +cfg as unknown as OpenClawConfig, |
| 1474 | +); |
| 1475 | + |
| 1476 | +expect(result.error).toBeUndefined(); |
| 1477 | +expect((result.model as { requestTimeoutMs?: number } | undefined)?.requestTimeoutMs).toBe( |
| 1478 | +MAX_TIMER_TIMEOUT_MS, |
| 1479 | +); |
| 1480 | +}); |
| 1481 | + |
1449 | 1482 | it("uses provider-level context defaults over discovered metadata", () => { |
1450 | 1483 | mockDiscoveredModel(discoverModels, { |
1451 | 1484 | provider: "ollama", |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。