openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
74 lines (73 loc) • 2.77 kB
JavaScript
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 };