mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-02 12:43:33 +00:00
Gateway startup now includes plugin owners for explicit memorySearch.provider and memorySearch.fallback values, including custom models.providers API owners and generic embedding provider contracts. Sentinel and disabled paths keep existing startup behavior for auto, local, none, disabled memory search, and disabled memory slots. Adds post-runtime-load diagnostics for configured memory embedding providers that remain unregistered. Closes #89651 Co-authored-by: Joseph Krug <5925937+joeykrug@users.noreply.github.com>
69 lines
2.3 KiB
TypeScript
69 lines
2.3 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. */
|
|
export 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(),
|
|
});
|
|
}
|
|
|
|
export 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";
|