mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-17 12:11:20 +00:00
128 lines
4.3 KiB
TypeScript
128 lines
4.3 KiB
TypeScript
import type { OpenClawConfig } from "../config/types.openclaw.js";
|
|
import type { RuntimeEnv } from "../runtime.js";
|
|
import type {
|
|
RuntimeWebFetchMetadata,
|
|
RuntimeWebSearchMetadata,
|
|
} from "../secrets/runtime-web-tools.types.js";
|
|
import type { WizardPrompter } from "../wizard/prompts.js";
|
|
import type { SecretInputMode } from "./provider-auth-types.js";
|
|
|
|
export type WebSearchProviderId = string;
|
|
export type WebFetchProviderId = string;
|
|
|
|
export type WebSearchProviderToolDefinition = {
|
|
description: string;
|
|
parameters: Record<string, unknown>;
|
|
execute: (args: Record<string, unknown>) => Promise<Record<string, unknown>>;
|
|
};
|
|
|
|
export type WebFetchProviderToolDefinition = {
|
|
description: string;
|
|
parameters: Record<string, unknown>;
|
|
execute: (args: Record<string, unknown>) => Promise<Record<string, unknown>>;
|
|
};
|
|
|
|
export type WebSearchProviderContext = {
|
|
config?: OpenClawConfig;
|
|
searchConfig?: Record<string, unknown>;
|
|
runtimeMetadata?: RuntimeWebSearchMetadata;
|
|
};
|
|
|
|
export type WebFetchProviderContext = {
|
|
config?: OpenClawConfig;
|
|
fetchConfig?: Record<string, unknown>;
|
|
runtimeMetadata?: RuntimeWebFetchMetadata;
|
|
};
|
|
|
|
export type WebSearchCredentialResolutionSource = "config" | "secretRef" | "env" | "missing";
|
|
|
|
export type WebSearchRuntimeMetadataContext = {
|
|
config?: OpenClawConfig;
|
|
searchConfig?: Record<string, unknown>;
|
|
runtimeMetadata?: RuntimeWebSearchMetadata;
|
|
resolvedCredential?: {
|
|
value?: string;
|
|
source: WebSearchCredentialResolutionSource;
|
|
fallbackEnvVar?: string;
|
|
};
|
|
};
|
|
|
|
export type WebSearchProviderSetupContext = {
|
|
config: OpenClawConfig;
|
|
runtime: RuntimeEnv;
|
|
prompter: WizardPrompter;
|
|
quickstartDefaults?: boolean;
|
|
secretInputMode?: SecretInputMode;
|
|
};
|
|
|
|
export type WebFetchCredentialResolutionSource = "config" | "secretRef" | "env" | "missing";
|
|
|
|
export type WebFetchRuntimeMetadataContext = {
|
|
config?: OpenClawConfig;
|
|
fetchConfig?: Record<string, unknown>;
|
|
runtimeMetadata?: RuntimeWebFetchMetadata;
|
|
resolvedCredential?: {
|
|
value?: string;
|
|
source: WebFetchCredentialResolutionSource;
|
|
fallbackEnvVar?: string;
|
|
};
|
|
};
|
|
|
|
export type WebSearchProviderPlugin = {
|
|
id: WebSearchProviderId;
|
|
label: string;
|
|
hint: string;
|
|
onboardingScopes?: Array<"text-inference">;
|
|
requiresCredential?: boolean;
|
|
credentialLabel?: string;
|
|
envVars: string[];
|
|
placeholder: string;
|
|
signupUrl: string;
|
|
docsUrl?: string;
|
|
autoDetectOrder?: number;
|
|
credentialPath: string;
|
|
inactiveSecretPaths?: string[];
|
|
getCredentialValue: (searchConfig?: Record<string, unknown>) => unknown;
|
|
setCredentialValue: (searchConfigTarget: Record<string, unknown>, value: unknown) => void;
|
|
getConfiguredCredentialValue?: (config?: OpenClawConfig) => unknown;
|
|
setConfiguredCredentialValue?: (configTarget: OpenClawConfig, value: unknown) => void;
|
|
applySelectionConfig?: (config: OpenClawConfig) => OpenClawConfig;
|
|
runSetup?: (ctx: WebSearchProviderSetupContext) => OpenClawConfig | Promise<OpenClawConfig>;
|
|
resolveRuntimeMetadata?: (
|
|
ctx: WebSearchRuntimeMetadataContext,
|
|
) => Partial<RuntimeWebSearchMetadata> | Promise<Partial<RuntimeWebSearchMetadata>>;
|
|
createTool: (ctx: WebSearchProviderContext) => WebSearchProviderToolDefinition | null;
|
|
};
|
|
|
|
export type PluginWebSearchProviderEntry = WebSearchProviderPlugin & {
|
|
pluginId: string;
|
|
};
|
|
|
|
export type WebFetchProviderPlugin = {
|
|
id: WebFetchProviderId;
|
|
label: string;
|
|
hint: string;
|
|
requiresCredential?: boolean;
|
|
credentialLabel?: string;
|
|
envVars: string[];
|
|
placeholder: string;
|
|
signupUrl: string;
|
|
docsUrl?: string;
|
|
autoDetectOrder?: number;
|
|
credentialPath: string;
|
|
inactiveSecretPaths?: string[];
|
|
getCredentialValue: (fetchConfig?: Record<string, unknown>) => unknown;
|
|
setCredentialValue: (fetchConfigTarget: Record<string, unknown>, value: unknown) => void;
|
|
getConfiguredCredentialValue?: (config?: OpenClawConfig) => unknown;
|
|
setConfiguredCredentialValue?: (configTarget: OpenClawConfig, value: unknown) => void;
|
|
applySelectionConfig?: (config: OpenClawConfig) => OpenClawConfig;
|
|
resolveRuntimeMetadata?: (
|
|
ctx: WebFetchRuntimeMetadataContext,
|
|
) => Partial<RuntimeWebFetchMetadata> | Promise<Partial<RuntimeWebFetchMetadata>>;
|
|
createTool: (ctx: WebFetchProviderContext) => WebFetchProviderToolDefinition | null;
|
|
};
|
|
|
|
export type PluginWebFetchProviderEntry = WebFetchProviderPlugin & {
|
|
pluginId: string;
|
|
};
|