mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-16 03:31:10 +00:00
42 lines
1.4 KiB
TypeScript
42 lines
1.4 KiB
TypeScript
import {
|
|
resolveProviderWebSearchPluginConfig,
|
|
setProviderWebSearchPluginConfigValue,
|
|
type WebSearchProviderPlugin,
|
|
} from "openclaw/plugin-sdk/provider-web-search-contract";
|
|
|
|
function getTopLevelCredentialValue(searchConfig?: Record<string, unknown>): unknown {
|
|
return searchConfig?.apiKey;
|
|
}
|
|
|
|
function setTopLevelCredentialValue(
|
|
searchConfigTarget: Record<string, unknown>,
|
|
value: unknown,
|
|
): void {
|
|
searchConfigTarget.apiKey = value;
|
|
}
|
|
|
|
export function createBraveWebSearchProvider(): WebSearchProviderPlugin {
|
|
return {
|
|
id: "brave",
|
|
label: "Brave Search",
|
|
hint: "Structured results · country/language/time filters",
|
|
onboardingScopes: ["text-inference"],
|
|
credentialLabel: "Brave Search API key",
|
|
envVars: ["BRAVE_API_KEY"],
|
|
placeholder: "BSA...",
|
|
signupUrl: "https://brave.com/search/api/",
|
|
docsUrl: "https://docs.openclaw.ai/brave-search",
|
|
autoDetectOrder: 10,
|
|
credentialPath: "plugins.entries.brave.config.webSearch.apiKey",
|
|
inactiveSecretPaths: ["plugins.entries.brave.config.webSearch.apiKey"],
|
|
getCredentialValue: getTopLevelCredentialValue,
|
|
setCredentialValue: setTopLevelCredentialValue,
|
|
getConfiguredCredentialValue: (config) =>
|
|
resolveProviderWebSearchPluginConfig(config, "brave")?.apiKey,
|
|
setConfiguredCredentialValue: (configTarget, value) => {
|
|
setProviderWebSearchPluginConfigValue(configTarget, "brave", "apiKey", value);
|
|
},
|
|
createTool: () => null,
|
|
};
|
|
}
|