perf(memory-core): defer embedding engine startup imports

This commit is contained in:
Peter Steinberger
2026-06-01 04:22:05 +01:00
parent 592b6e2916
commit ebcdb637bb
7 changed files with 21 additions and 22 deletions

View File

@@ -652,6 +652,7 @@ releases.
| `plugin-sdk/zod` | Deprecated Zod compatibility re-export | Import `zod` from `zod` directly |
| `plugin-sdk/memory-core` | Bundled memory-core helpers | Memory manager/config/file/CLI helper surface |
| `plugin-sdk/memory-core-engine-runtime` | Memory engine runtime facade | Memory index/search runtime facade |
| `plugin-sdk/memory-core-host-embedding-registry` | Memory embedding registry | Lightweight memory embedding provider registry helpers |
| `plugin-sdk/memory-core-host-engine-foundation` | Memory host foundation engine | Memory host foundation engine exports |
| `plugin-sdk/memory-core-host-engine-embeddings` | Memory host embedding engine | Memory embedding contracts, registry access, local provider, and generic batch/remote helpers; concrete remote providers live in their owning plugins |
| `plugin-sdk/memory-core-host-engine-qmd` | Memory host QMD engine | Memory host QMD engine exports |

View File

@@ -355,6 +355,7 @@ usage endpoint failed or returned no usable usage data.
| --- | --- |
| `plugin-sdk/memory-core` | Bundled memory-core helper surface for manager/config/file/CLI helpers |
| `plugin-sdk/memory-core-engine-runtime` | Memory index/search runtime facade |
| `plugin-sdk/memory-core-host-embedding-registry` | Lightweight memory embedding provider registry helpers |
| `plugin-sdk/memory-core-host-engine-foundation` | Memory host foundation engine exports |
| `plugin-sdk/memory-core-host-engine-embeddings` | Memory host embedding contracts, registry access, local provider, and generic batch/remote helpers. `registerMemoryEmbeddingProvider` on this surface is deprecated; use the generic embedding provider API for new providers. |
| `plugin-sdk/memory-core-host-engine-qmd` | Memory host QMD engine exports |

View File

@@ -1,12 +1,9 @@
import fsSync from "node:fs";
import {
createLocalEmbeddingProvider,
DEFAULT_LOCAL_MODEL,
listMemoryEmbeddingProviders,
listRegisteredMemoryEmbeddingProviderAdapters,
type MemoryEmbeddingProviderAdapter,
} from "openclaw/plugin-sdk/memory-core-host-engine-embeddings";
import { resolveUserPath } from "openclaw/plugin-sdk/memory-core-host-engine-foundation";
} from "openclaw/plugin-sdk/memory-core-host-embedding-registry";
import { getProviderEnvVars } from "openclaw/plugin-sdk/provider-env-vars";
import { formatErrorMessage } from "../dreaming-shared.js";
import { filterUnregisteredMemoryEmbeddingProviderAdapters } from "./provider-adapter-registration.js";
@@ -66,22 +63,6 @@ function formatLocalSetupError(err: unknown): string {
.join("\n");
}
function canAutoSelectLocal(modelPath?: string): boolean {
const trimmed = modelPath?.trim();
if (!trimmed) {
return false;
}
if (/^(hf:|https?:)/i.test(trimmed)) {
return false;
}
const resolved = resolveUserPath(trimmed);
try {
return fsSync.statSync(resolved).isFile();
} catch {
return false;
}
}
const localAdapter: MemoryEmbeddingProviderAdapter = {
id: "local",
defaultModel: DEFAULT_LOCAL_MODEL,
@@ -90,6 +71,8 @@ const localAdapter: MemoryEmbeddingProviderAdapter = {
formatSetupError: formatLocalSetupError,
shouldContinueAutoSelection: () => true,
create: async (options) => {
const { createLocalEmbeddingProvider } =
await import("openclaw/plugin-sdk/memory-core-host-engine-embeddings");
const provider = await createLocalEmbeddingProvider({
...options,
provider: "local",
@@ -166,5 +149,3 @@ export function listBuiltinAutoSelectMemoryEmbeddingProviderDoctorMetadata(): Ar
};
});
}
export { canAutoSelectLocal };

View File

@@ -1085,6 +1085,10 @@
"types": "./dist/plugin-sdk/memory-core-engine-runtime.d.ts",
"default": "./dist/plugin-sdk/memory-core-engine-runtime.js"
},
"./plugin-sdk/memory-core-host-embedding-registry": {
"types": "./dist/plugin-sdk/memory-core-host-embedding-registry.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-embedding-registry.js"
},
"./plugin-sdk/memory-core-host-engine-embeddings": {
"types": "./dist/plugin-sdk/memory-core-host-engine-embeddings.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-engine-embeddings.js"

View File

@@ -250,6 +250,7 @@
"qa-live-transport-scenarios",
"memory-core",
"memory-core-engine-runtime",
"memory-core-host-embedding-registry",
"memory-core-host-engine-embeddings",
"memory-core-host-engine-foundation",
"memory-core-host-engine-qmd",

View File

@@ -58,6 +58,7 @@ export const publicPluginOwnedSdkEntrypoints = [
"browser-config",
"image-generation-core",
"memory-core",
"memory-core-host-embedding-registry",
"memory-core-host-engine-embeddings",
"memory-core-host-engine-foundation",
"memory-core-host-engine-qmd",

View File

@@ -0,0 +1,10 @@
export { DEFAULT_LOCAL_MODEL } from "../../packages/memory-host-sdk/src/host/embedding-defaults.js";
export {
listMemoryEmbeddingProviders,
listRegisteredMemoryEmbeddingProviderAdapters,
} from "../plugins/memory-embedding-provider-runtime.js";
export type {
MemoryEmbeddingProviderAdapter,
MemoryEmbeddingProviderCreateOptions,
MemoryEmbeddingProviderCreateResult,
} from "../plugins/memory-embedding-providers.js";