mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-30 06:23:37 +00:00
Summary: - Merged feat(plugins): add embedding provider contract after ClawSweeper review. Automerge notes: - PR branch already contained follow-up commit before automerge: chore(plugins): refresh embedding provider sdk baseline - PR branch already contained follow-up commit before automerge: docs(plugins): document embedding provider contract - PR branch already contained follow-up commit before automerge: fix(plugins): restore embedding providers after snapshot loads - PR branch already contained follow-up commit before automerge: fix(plugins): resolve embedding providers from manifests - PR branch already contained follow-up commit before automerge: fix(plugin-sdk): keep embedding provider registry mutators internal - PR branch already contained follow-up commit before automerge: chore(plugin-sdk): refresh embedding provider API baseline Validation: - ClawSweeper review passed for head41ebd66ab4. - Required merge gates passed before the squash merge. Prepared head SHA:41ebd66ab4Review: https://github.com/openclaw/openclaw/pull/84947#issuecomment-4514762026 Co-authored-by: Bob <dutifulbob@gmail.com> Co-authored-by: Mariano Belinky <mbelinky@gmail.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: osolmaz Co-authored-by: osolmaz <2453968+osolmaz@users.noreply.github.com>
57 lines
1.6 KiB
TypeScript
57 lines
1.6 KiB
TypeScript
import type { OpenClawConfig } from "../config/types.openclaw.js";
|
|
import {
|
|
resolvePluginCapabilityProvider,
|
|
resolvePluginCapabilityProviders,
|
|
} from "./capability-provider-runtime.js";
|
|
import {
|
|
getRegisteredEmbeddingProvider,
|
|
listRegisteredEmbeddingProviders,
|
|
type EmbeddingProviderAdapter,
|
|
} from "./embedding-providers.js";
|
|
|
|
export { listRegisteredEmbeddingProviders };
|
|
|
|
export function listRegisteredEmbeddingProviderAdapters(): EmbeddingProviderAdapter[] {
|
|
return listRegisteredEmbeddingProviders().map((entry) => entry.adapter);
|
|
}
|
|
|
|
export function listEmbeddingProviders(cfg?: OpenClawConfig): EmbeddingProviderAdapter[] {
|
|
const registered = listRegisteredEmbeddingProviderAdapters();
|
|
const merged = new Map(registered.map((adapter) => [adapter.id, adapter]));
|
|
for (const adapter of resolvePluginCapabilityProviders({
|
|
key: "embeddingProviders",
|
|
cfg,
|
|
})) {
|
|
if (!merged.has(adapter.id)) {
|
|
merged.set(adapter.id, adapter);
|
|
}
|
|
}
|
|
return [...merged.values()];
|
|
}
|
|
|
|
export function getEmbeddingProvider(
|
|
id: string,
|
|
cfg?: OpenClawConfig,
|
|
): EmbeddingProviderAdapter | undefined {
|
|
const registered = getRegisteredEmbeddingProvider(id);
|
|
if (registered) {
|
|
return registered.adapter;
|
|
}
|
|
return resolvePluginCapabilityProvider({
|
|
key: "embeddingProviders",
|
|
providerId: id,
|
|
cfg,
|
|
});
|
|
}
|
|
|
|
export type {
|
|
EmbeddingInput,
|
|
EmbeddingProvider,
|
|
EmbeddingProviderAdapter,
|
|
EmbeddingProviderCallOptions,
|
|
EmbeddingProviderCreateOptions,
|
|
EmbeddingProviderCreateResult,
|
|
EmbeddingProviderRuntime,
|
|
RegisteredEmbeddingProvider,
|
|
} from "./embedding-providers.js";
|