UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

74 lines (73 loc) 2.77 kB
import { d as normalizeSecretInputString, m as resolveSecretInputRef } from "./types.secrets-_0JOMGE5.js"; import "./enable-DXODwa0_.js"; import { n as normalizeSecretInput } from "./normalize-secret-input-OwRUfByL.js"; import "./common-C4yy9V-D.js"; import "./external-content-pX-Pk1Iu.js"; import "./web-shared-TPeHhehr.js"; import "./web-search-provider-common-DisZTXTb.js"; import { r as withStrictWebToolsEndpoint } from "./web-guarded-fetch-DYAWPWNo.js"; //#region src/agents/tools/web-search-citation-redirect.ts /** * Citation redirect resolver for web search results. * * Follows provider citation redirect URLs through the strict web-tools network guard. */ const REDIRECT_TIMEOUT_MS = 5e3; /** * Resolve a citation redirect URL to its final destination using a HEAD request. * Returns the original URL if resolution fails or times out. */ async function resolveCitationRedirectUrl(url) { try { return await withStrictWebToolsEndpoint({ url, init: { method: "HEAD" }, timeoutMs: REDIRECT_TIMEOUT_MS }, async ({ finalUrl }) => finalUrl || url); } catch { return url; } } //#endregion //#region src/agents/tools/web-search-provider-credentials.ts /** * Web-search provider credential resolver. * * Reads config values, env-backed secret refs, and provider-specific environment variables. */ /** * Resolves web-search provider credentials from config values, secret refs, or * provider-specific environment variables. */ /** Returns the first usable credential for a web-search provider. */ function resolveWebSearchProviderCredential(params) { const fromConfig = normalizeSecretInput(normalizeSecretInputString(params.credentialValue)); if (fromConfig) return fromConfig; const credentialRef = resolveSecretInputRef({ value: params.credentialValue }).ref; if (credentialRef) { if (credentialRef.source !== "env") return; const fromEnvRef = normalizeSecretInput(process.env[credentialRef.id]); if (fromEnvRef) return fromEnvRef; return; } for (const envVar of params.envVars) { const fromEnv = normalizeSecretInput(process.env[envVar]); if (fromEnv) return fromEnv; } } //#endregion //#region src/plugin-sdk/provider-web-search.ts /** * @deprecated Implement provider-owned `createTool(...)` directly on the * returned WebSearchProviderPlugin instead of routing through core. */ function createPluginBackedWebSearchProvider(provider) { return { ...provider, createTool: () => { throw new Error(`createPluginBackedWebSearchProvider(${provider.id}) is no longer supported. Define provider-owned createTool(...) directly in the extension's WebSearchProviderPlugin.`); } }; } //#endregion export { resolveWebSearchProviderCredential as n, resolveCitationRedirectUrl as r, createPluginBackedWebSearchProvider as t };