mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-18 12:01:34 +00:00
69 lines
2.2 KiB
TypeScript
69 lines
2.2 KiB
TypeScript
/** Runtime resolver for plugin-contributed embedding providers. */
|
|
import type { OpenClawConfig } from "../config/types.openclaw.js";
|
|
import { resolveConfiguredGenericEmbeddingProviderId } from "./embedding-provider-config.js";
|
|
import {
|
|
getRuntimeEmbeddingProviderAdapter,
|
|
listRuntimeEmbeddingProviderAdapters,
|
|
resolveRuntimeEmbeddingProviderLookupIds,
|
|
} from "./embedding-provider-runtime-shared.js";
|
|
import {
|
|
getRegisteredEmbeddingProvider,
|
|
listRegisteredEmbeddingProviders,
|
|
type EmbeddingProviderAdapter,
|
|
} from "./embedding-providers.js";
|
|
|
|
export { listRegisteredEmbeddingProviders };
|
|
|
|
/** Lists embedding provider adapters registered directly with the process registry. */
|
|
function listRegisteredEmbeddingProviderAdapters(): EmbeddingProviderAdapter[] {
|
|
return listRegisteredEmbeddingProviders().map((entry) => entry.adapter);
|
|
}
|
|
|
|
/** Lists embedding providers from registered adapters and plugin capabilities. */
|
|
export function listEmbeddingProviders(cfg?: OpenClawConfig): EmbeddingProviderAdapter[] {
|
|
return listRuntimeEmbeddingProviderAdapters({
|
|
key: "embeddingProviders",
|
|
cfg,
|
|
registered: listRegisteredEmbeddingProviderAdapters(),
|
|
});
|
|
}
|
|
|
|
function resolveConfiguredEmbeddingProviderId(
|
|
providerId: string,
|
|
cfg?: OpenClawConfig,
|
|
): string | undefined {
|
|
return resolveConfiguredGenericEmbeddingProviderId(providerId, cfg);
|
|
}
|
|
|
|
function resolveEmbeddingProviderLookupIds(id: string, cfg?: OpenClawConfig): string[] {
|
|
return resolveRuntimeEmbeddingProviderLookupIds({
|
|
id,
|
|
cfg,
|
|
resolveConfiguredProviderId: resolveConfiguredEmbeddingProviderId,
|
|
});
|
|
}
|
|
|
|
/** Resolves one embedding provider adapter by id, including configured API aliases. */
|
|
export function getEmbeddingProvider(
|
|
id: string,
|
|
cfg?: OpenClawConfig,
|
|
): EmbeddingProviderAdapter | undefined {
|
|
return getRuntimeEmbeddingProviderAdapter({
|
|
key: "embeddingProviders",
|
|
cfg,
|
|
lookupIds: resolveEmbeddingProviderLookupIds(id, cfg),
|
|
getRegisteredProvider: getRegisteredEmbeddingProvider,
|
|
});
|
|
}
|
|
|
|
export type {
|
|
EmbeddingInput,
|
|
EmbeddingProvider,
|
|
EmbeddingProviderAdapter,
|
|
EmbeddingProviderCallOptions,
|
|
EmbeddingProviderCreateOptions,
|
|
EmbeddingProviderCreateResult,
|
|
EmbeddingProviderRuntime,
|
|
RegisteredEmbeddingProvider,
|
|
} from "./embedding-providers.js";
|