mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-26 05:41:17 +00:00
* refactor(plugin-sdk): narrow wildcard barrels to explicit used exports * refactor(tools): delete dead tool-planning module exposed by barrel narrowing * fix(plugin-sdk): restore deprecation tag on OpenClawSchemaType alias * test(agents): drop test for deleted runtime proxy module * refactor(tools): trim descriptor types to cache consumers * refactor(deadcode): harvest exports orphaned by barrel narrowing * refactor(deadcode): harvest exports orphaned by barrel narrowing (rest) * fix(agents): restore sdk imports and test markers via public predicate * fix(plugin-sdk): named type re-exports in plugin-entry; trim types barrel precisely * chore(plugin-sdk): account unmasked deprecated provider types in budgets * fix(plugins): name star-only type rows for dts bundling * fix(plugins): restore host-hook surface; unexport internal api compositions * fix(plugins): named type imports for api composition; restore needed source exports * fix(plugins): knip-visible type imports for registry surfaces * test: adapt tests to privatized media and command internals * fix(qa-lab): re-export snapshot conversation type * style: format sessions sdk imports * fix(plugins): restore smoke entry export; pin budgets to exact actuals * fix(plugins): canonical smoke-entry import; drop orphaned root shims * fix(plugins): allowlist manifest probe, repoint qa web import, drop dead browser barrels * fix(plugin-sdk): pin codex auth marker and scaffold provider type * fix(qa-lab): keep web-facing model-selection shim within boundary rules * fix(plugin-sdk): preserve merged contracts through narrowed barrels * chore(plugin-sdk): pin post-rebase surface budgets
158 lines
5.2 KiB
TypeScript
158 lines
5.2 KiB
TypeScript
// Defines web provider plugin schema and runtime types.
|
|
import type { TSchema } from "typebox";
|
|
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";
|
|
|
|
type WebSearchProviderId = string;
|
|
type WebFetchProviderId = string;
|
|
|
|
export type WebSearchProviderToolDefinition = {
|
|
description: string;
|
|
parameters: TSchema;
|
|
execute: (
|
|
args: Record<string, unknown>,
|
|
context?: WebSearchProviderToolExecutionContext,
|
|
) => Promise<Record<string, unknown>>;
|
|
};
|
|
|
|
export type WebFetchProviderToolDefinition = {
|
|
description: string;
|
|
parameters: TSchema;
|
|
execute: (args: Record<string, unknown>) => Promise<Record<string, unknown>>;
|
|
};
|
|
|
|
type WebSearchProviderContext = {
|
|
config?: OpenClawConfig;
|
|
searchConfig?: Record<string, unknown>;
|
|
runtimeMetadata?: RuntimeWebSearchMetadata;
|
|
agentDir?: string;
|
|
};
|
|
|
|
export type WebSearchProviderToolExecutionContext = {
|
|
signal?: AbortSignal;
|
|
};
|
|
|
|
type WebFetchProviderContext = {
|
|
config?: OpenClawConfig;
|
|
fetchConfig?: Record<string, unknown>;
|
|
runtimeMetadata?: RuntimeWebFetchMetadata;
|
|
};
|
|
|
|
export type WebSearchCredentialResolutionSource = "config" | "secretRef" | "env" | "missing";
|
|
|
|
type WebSearchProviderConfiguredCredentialFallback = {
|
|
path: string;
|
|
value: unknown;
|
|
};
|
|
|
|
type WebFetchProviderConfiguredCredentialFallback = {
|
|
path: string;
|
|
value: unknown;
|
|
};
|
|
|
|
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";
|
|
|
|
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?: readonly "text-inference"[];
|
|
requiresCredential?: boolean;
|
|
credentialLabel?: string;
|
|
envVars: string[];
|
|
/** Optional model-provider auth profile id that can satisfy this web provider without a tool-specific API key. */
|
|
authProviderId?: string;
|
|
placeholder: string;
|
|
signupUrl: string;
|
|
docsUrl?: string;
|
|
/** Optional note shown before credential collection for provider-specific prerequisites. */
|
|
credentialNote?: 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;
|
|
getConfiguredCredentialFallback?: (
|
|
config?: OpenClawConfig,
|
|
) => WebSearchProviderConfiguredCredentialFallback | undefined;
|
|
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;
|
|
getConfiguredCredentialFallback?: (
|
|
config?: OpenClawConfig,
|
|
) => WebFetchProviderConfiguredCredentialFallback | undefined;
|
|
applySelectionConfig?: (config: OpenClawConfig) => OpenClawConfig;
|
|
resolveRuntimeMetadata?: (
|
|
ctx: WebFetchRuntimeMetadataContext,
|
|
) => Partial<RuntimeWebFetchMetadata> | Promise<Partial<RuntimeWebFetchMetadata>>;
|
|
createTool: (ctx: WebFetchProviderContext) => WebFetchProviderToolDefinition | null;
|
|
};
|
|
|
|
export type PluginWebFetchProviderEntry = WebFetchProviderPlugin & {
|
|
pluginId: string;
|
|
};
|