openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
75 lines (74 loc) • 2.59 kB
TypeScript
import { i as OpenClawConfig } from "./types.openclaw-DBHlrrVj.js";
import { d as SecretInput } from "./types.secrets-rAcqRhcN.js";
//#region src/plugins/embedding-provider-types.d.ts
/** Input accepted by embedding providers, including multimodal inline-data parts. */
type EmbeddingInput = string | {
text: string;
parts?: Array<{
type: "text";
text: string;
} | {
type: "inline-data";
mimeType: string;
data: string;
}>;
};
/** Per-call options passed to embedding provider calls. */
type EmbeddingProviderCallOptions = {
signal?: AbortSignal;
inputType?: "query" | "document" | "semantic" | "classification" | "clustering";
};
/** Runtime metadata returned with a created embedding provider. */
type EmbeddingProviderRuntime = {
id: string;
cacheKeyData?: Record<string, unknown>;
inlineQueryTimeoutMs?: number;
inlineBatchTimeoutMs?: number;
};
/** Created embedding provider instance used by memory/search callers. */
type EmbeddingProvider = {
id: string;
model: string;
dimensions?: number;
maxInputTokens?: number;
embed: (input: EmbeddingInput, options?: EmbeddingProviderCallOptions) => Promise<number[]>;
embedBatch: (inputs: EmbeddingInput[], options?: EmbeddingProviderCallOptions) => Promise<number[][]>;
close?: () => Promise<void> | void;
};
/** Options passed to embedding provider adapters when creating providers. */
type EmbeddingProviderCreateOptions = {
config: OpenClawConfig;
agentDir?: string;
provider?: string;
remote?: {
baseUrl?: string;
apiKey?: SecretInput;
headers?: Record<string, string>;
};
model: string;
inputType?: string;
queryInputType?: string;
documentInputType?: string;
local?: {
modelPath?: string;
modelCacheDir?: string;
};
dimensions?: number;
taskType?: string;
};
/** Result returned by an embedding provider adapter create call. */
type EmbeddingProviderCreateResult = {
provider: EmbeddingProvider | null;
runtime?: EmbeddingProviderRuntime;
};
/** Adapter contract registered by core or plugin embedding providers. */
type EmbeddingProviderAdapter = {
id: string;
defaultModel?: string;
transport?: "local" | "remote";
authProviderId?: string;
create: (options: EmbeddingProviderCreateOptions) => Promise<EmbeddingProviderCreateResult>;
formatSetupError?: (err: unknown) => string;
};
//#endregion
export { EmbeddingProviderCreateOptions as a, EmbeddingProviderCallOptions as i, EmbeddingProvider as n, EmbeddingProviderCreateResult as o, EmbeddingProviderAdapter as r, EmbeddingProviderRuntime as s, EmbeddingInput as t };