mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-30 02:22:25 +00:00
66 lines
2.1 KiB
TypeScript
66 lines
2.1 KiB
TypeScript
// Public contract-safe web-search registration helpers for provider plugins.
|
|
|
|
import type { OpenClawConfig } from "../config/config.js";
|
|
import type {
|
|
WebSearchCredentialResolutionSource,
|
|
WebSearchProviderSetupContext,
|
|
WebSearchProviderPlugin,
|
|
WebSearchProviderToolDefinition,
|
|
} from "../plugins/types.js";
|
|
import { enablePluginInConfig } from "./provider-enable-config.js";
|
|
import {
|
|
createBaseWebSearchProviderContractFields,
|
|
type CreateWebSearchProviderContractFieldsOptions,
|
|
} from "./provider-web-search-contract-fields.js";
|
|
export {
|
|
getScopedCredentialValue,
|
|
getTopLevelCredentialValue,
|
|
mergeScopedSearchConfig,
|
|
resolveProviderWebSearchPluginConfig,
|
|
setScopedCredentialValue,
|
|
setProviderWebSearchPluginConfigValue,
|
|
setTopLevelCredentialValue,
|
|
} from "../agents/tools/web-search-provider-config.js";
|
|
export { enablePluginInConfig } from "./provider-enable-config.js";
|
|
export type {
|
|
WebSearchCredentialResolutionSource,
|
|
WebSearchProviderSetupContext,
|
|
WebSearchProviderPlugin,
|
|
WebSearchProviderToolDefinition,
|
|
};
|
|
export type {
|
|
CreateWebSearchProviderContractFieldsOptions,
|
|
WebSearchProviderConfiguredCredential,
|
|
WebSearchProviderContractCredential,
|
|
WebSearchProviderContractFields,
|
|
} from "./provider-web-search-contract-fields.js";
|
|
|
|
type CreateWebSearchProviderSelectionOptions = CreateWebSearchProviderContractFieldsOptions & {
|
|
selectionPluginId?: string;
|
|
};
|
|
|
|
export function createWebSearchProviderContractFields(
|
|
options: CreateWebSearchProviderSelectionOptions,
|
|
): Pick<
|
|
WebSearchProviderPlugin,
|
|
"inactiveSecretPaths" | "getCredentialValue" | "setCredentialValue"
|
|
> &
|
|
Partial<
|
|
Pick<
|
|
WebSearchProviderPlugin,
|
|
"applySelectionConfig" | "getConfiguredCredentialValue" | "setConfiguredCredentialValue"
|
|
>
|
|
> {
|
|
const selectionPluginId = options.selectionPluginId;
|
|
|
|
return {
|
|
...createBaseWebSearchProviderContractFields(options),
|
|
...(selectionPluginId
|
|
? {
|
|
applySelectionConfig: (config: OpenClawConfig) =>
|
|
enablePluginInConfig(config, selectionPluginId).config,
|
|
}
|
|
: {}),
|
|
};
|
|
}
|