From 8473099c702bf67c189e748a237697f3933238dc Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 10 Apr 2026 23:32:08 +0100 Subject: [PATCH] fix: honor inactive runtime web providers --- .../openrouter-model-capabilities.test.ts | 10 ++++++++++ src/agents/tools/web-fetch.cf-markdown.test.ts | 1 + src/web/provider-runtime-shared.ts | 7 ++++--- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/agents/pi-embedded-runner/openrouter-model-capabilities.test.ts b/src/agents/pi-embedded-runner/openrouter-model-capabilities.test.ts index 366f71350c..da81b5dc18 100644 --- a/src/agents/pi-embedded-runner/openrouter-model-capabilities.test.ts +++ b/src/agents/pi-embedded-runner/openrouter-model-capabilities.test.ts @@ -7,6 +7,16 @@ import { importFreshModule } from "../../../test/helpers/import-fresh.js"; async function withOpenRouterStateDir(run: (stateDir: string) => Promise) { const stateDir = mkdtempSync(join(tmpdir(), "openclaw-openrouter-capabilities-")); process.env.OPENCLAW_STATE_DIR = stateDir; + for (const key of [ + "ALL_PROXY", + "all_proxy", + "HTTP_PROXY", + "http_proxy", + "HTTPS_PROXY", + "https_proxy", + ]) { + vi.stubEnv(key, ""); + } try { await run(stateDir); } finally { diff --git a/src/agents/tools/web-fetch.cf-markdown.test.ts b/src/agents/tools/web-fetch.cf-markdown.test.ts index 9d8f5f56ec..cae3bd1406 100644 --- a/src/agents/tools/web-fetch.cf-markdown.test.ts +++ b/src/agents/tools/web-fetch.cf-markdown.test.ts @@ -107,6 +107,7 @@ describe("web_fetch Cloudflare Markdown for Agents", () => { global.fetch = withFetchPreconnect(fetchSpy); const tool = createWebFetchTool({ + lookupFn: lookupMock as unknown as LookupFn, config: { plugins: { entries: { diff --git a/src/web/provider-runtime-shared.ts b/src/web/provider-runtime-shared.ts index 63954e6318..ac0c991229 100644 --- a/src/web/provider-runtime-shared.ts +++ b/src/web/provider-runtime-shared.ts @@ -134,9 +134,10 @@ export function resolveWebProviderDefinition< }); const providerId = params.providerId ?? - params.runtimeMetadata?.selectedProvider ?? - params.runtimeMetadata?.providerConfigured ?? - autoProviderId; + (params.runtimeMetadata ? params.runtimeMetadata.selectedProvider : autoProviderId); + if (!providerId) { + return null; + } const provider = providers.find((entry) => entry.id === providerId) ?? providers.find(