mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-12 21:53:00 -06:00
refactor(extensions): privatize small plugin internals (#107774)
* refactor(llama-cpp): privatize embedding internals * refactor(parallel): privatize MCP response helpers * refactor(logbook): privatize analysis parsers * refactor(crabbox): narrow worker provider exports * refactor(acpx): privatize process reaper internals * chore(deadcode): refresh unused-export baseline
This commit is contained in:
committed by
GitHub
parent
534300beed
commit
2eb9c7ebd7
@@ -22,12 +22,23 @@ vi.mock("openclaw/plugin-sdk/memory-core-host-engine-embeddings", () => ({
|
||||
}));
|
||||
|
||||
import llamaCppPlugin from "./index.js";
|
||||
import {
|
||||
DEFAULT_LLAMA_CPP_EMBEDDING_MODEL,
|
||||
createLlamaCppMemoryEmbeddingProvider,
|
||||
formatLlamaCppSetupError,
|
||||
llamaCppEmbeddingProviderAdapter,
|
||||
} from "./src/embedding-provider.js";
|
||||
import { llamaCppEmbeddingProviderAdapter } from "./src/embedding-provider.js";
|
||||
|
||||
const DEFAULT_LLAMA_CPP_EMBEDDING_MODEL =
|
||||
"hf:ggml-org/embeddinggemma-300m-qat-q8_0-GGUF/embeddinggemma-300m-qat-Q8_0.gguf";
|
||||
type AdapterCreateOptions = Parameters<typeof llamaCppEmbeddingProviderAdapter.create>[0];
|
||||
type MemoryCreateTestOptions = AdapterCreateOptions & {
|
||||
fallback?: "none";
|
||||
outputDimensionality?: number;
|
||||
};
|
||||
|
||||
async function createLlamaCppMemoryEmbeddingProvider(options: MemoryCreateTestOptions) {
|
||||
const { fallback: _fallback, outputDimensionality, ...adapterOptions } = options;
|
||||
return await llamaCppEmbeddingProviderAdapter.create({
|
||||
...adapterOptions,
|
||||
dimensions: outputDimensionality,
|
||||
});
|
||||
}
|
||||
|
||||
afterEach(() => {
|
||||
clearEmbeddingProviders();
|
||||
@@ -148,16 +159,13 @@ describe("llama.cpp provider plugin", () => {
|
||||
embedBatch: vi.fn(),
|
||||
});
|
||||
|
||||
const result = await createLlamaCppMemoryEmbeddingProvider(
|
||||
{
|
||||
config: {},
|
||||
provider: "local",
|
||||
fallback: "none",
|
||||
model: DEFAULT_LLAMA_CPP_EMBEDDING_MODEL,
|
||||
outputDimensionality: 512,
|
||||
},
|
||||
{ nodeLlamaCppImportUrl: "file:///plugin/node-llama-cpp.js" },
|
||||
);
|
||||
const result = await createLlamaCppMemoryEmbeddingProvider({
|
||||
config: {},
|
||||
provider: "local",
|
||||
fallback: "none",
|
||||
model: DEFAULT_LLAMA_CPP_EMBEDDING_MODEL,
|
||||
outputDimensionality: 512,
|
||||
});
|
||||
const resolvedIdentity = llamaCppEmbeddingProviderAdapter.resolveIndexIdentity?.({
|
||||
config: {},
|
||||
provider: "local",
|
||||
@@ -197,16 +205,13 @@ describe("llama.cpp provider plugin", () => {
|
||||
embedBatch: vi.fn(),
|
||||
});
|
||||
|
||||
const result = await createLlamaCppMemoryEmbeddingProvider(
|
||||
{
|
||||
config: {},
|
||||
provider: "local",
|
||||
fallback: "none",
|
||||
model: modelPath,
|
||||
local: { modelPath },
|
||||
},
|
||||
{ nodeLlamaCppImportUrl: "file:///plugin/node-llama-cpp.js" },
|
||||
);
|
||||
const result = await createLlamaCppMemoryEmbeddingProvider({
|
||||
config: {},
|
||||
provider: "local",
|
||||
fallback: "none",
|
||||
model: modelPath,
|
||||
local: { modelPath },
|
||||
});
|
||||
|
||||
expect(result.provider?.model).toBe(DEFAULT_LLAMA_CPP_EMBEDDING_MODEL);
|
||||
expect(result.runtime?.cacheKeyData).toEqual({
|
||||
@@ -265,7 +270,7 @@ describe("llama.cpp provider plugin", () => {
|
||||
local: { modelPath },
|
||||
}),
|
||||
{
|
||||
nodeLlamaCppImportUrl: "file:///plugin/node-llama-cpp.js",
|
||||
nodeLlamaCppImportUrl: expect.stringContaining("node-llama-cpp"),
|
||||
},
|
||||
);
|
||||
});
|
||||
@@ -283,16 +288,13 @@ describe("llama.cpp provider plugin", () => {
|
||||
embedBatch: vi.fn(),
|
||||
});
|
||||
|
||||
const result = await createLlamaCppMemoryEmbeddingProvider(
|
||||
{
|
||||
config: {},
|
||||
provider: "local",
|
||||
fallback: "none",
|
||||
model: modelPath,
|
||||
local: { modelPath },
|
||||
},
|
||||
{ nodeLlamaCppImportUrl: "file:///plugin/node-llama-cpp.js" },
|
||||
);
|
||||
const result = await createLlamaCppMemoryEmbeddingProvider({
|
||||
config: {},
|
||||
provider: "local",
|
||||
fallback: "none",
|
||||
model: modelPath,
|
||||
local: { modelPath },
|
||||
});
|
||||
|
||||
expect(result.provider?.model).toBe(modelPath);
|
||||
expect(result.runtime?.cacheKeyData).toEqual({
|
||||
@@ -316,16 +318,13 @@ describe("llama.cpp provider plugin", () => {
|
||||
embedBatch: vi.fn(),
|
||||
});
|
||||
|
||||
const result = await createLlamaCppMemoryEmbeddingProvider(
|
||||
{
|
||||
config: {},
|
||||
provider: "local",
|
||||
fallback: "none",
|
||||
model: modelPath,
|
||||
local: { modelPath },
|
||||
},
|
||||
{ nodeLlamaCppImportUrl: "file:///plugin/node-llama-cpp.js" },
|
||||
);
|
||||
const result = await createLlamaCppMemoryEmbeddingProvider({
|
||||
config: {},
|
||||
provider: "local",
|
||||
fallback: "none",
|
||||
model: modelPath,
|
||||
local: { modelPath },
|
||||
});
|
||||
|
||||
expect(result.provider?.model).toBe(modelPath);
|
||||
expect(result.runtime).not.toHaveProperty("indexIdentityAliases");
|
||||
@@ -341,16 +340,13 @@ describe("llama.cpp provider plugin", () => {
|
||||
embedBatch: vi.fn(),
|
||||
});
|
||||
|
||||
const result = await createLlamaCppMemoryEmbeddingProvider(
|
||||
{
|
||||
config: {},
|
||||
provider: "local",
|
||||
fallback: "none",
|
||||
model: DEFAULT_LLAMA_CPP_EMBEDDING_MODEL,
|
||||
local: { modelPath: DEFAULT_LLAMA_CPP_EMBEDDING_MODEL, modelCacheDir },
|
||||
},
|
||||
{ nodeLlamaCppImportUrl: "file:///plugin/node-llama-cpp.js" },
|
||||
);
|
||||
const result = await createLlamaCppMemoryEmbeddingProvider({
|
||||
config: {},
|
||||
provider: "local",
|
||||
fallback: "none",
|
||||
model: DEFAULT_LLAMA_CPP_EMBEDDING_MODEL,
|
||||
local: { modelPath: DEFAULT_LLAMA_CPP_EMBEDDING_MODEL, modelCacheDir },
|
||||
});
|
||||
|
||||
expect(result.provider?.model).toBe(DEFAULT_LLAMA_CPP_EMBEDDING_MODEL);
|
||||
expect(result.runtime?.cacheKeyData).toEqual({
|
||||
@@ -432,16 +428,13 @@ describe("llama.cpp provider plugin", () => {
|
||||
embedBatch: vi.fn(),
|
||||
});
|
||||
|
||||
const result = await createLlamaCppMemoryEmbeddingProvider(
|
||||
{
|
||||
config: {},
|
||||
provider: "local",
|
||||
fallback: "none",
|
||||
model: modelPath,
|
||||
local: { modelPath, modelCacheDir },
|
||||
},
|
||||
{ nodeLlamaCppImportUrl: "file:///plugin/node-llama-cpp.js" },
|
||||
);
|
||||
const result = await createLlamaCppMemoryEmbeddingProvider({
|
||||
config: {},
|
||||
provider: "local",
|
||||
fallback: "none",
|
||||
model: modelPath,
|
||||
local: { modelPath, modelCacheDir },
|
||||
});
|
||||
|
||||
expect(result.provider?.model).toBe(DEFAULT_LLAMA_CPP_EMBEDDING_MODEL);
|
||||
expect(result.runtime?.indexIdentityAliases).toEqual([
|
||||
@@ -467,7 +460,7 @@ describe("llama.cpp provider plugin", () => {
|
||||
code: "ERR_MODULE_NOT_FOUND",
|
||||
});
|
||||
|
||||
expect(formatLlamaCppSetupError(err)).toContain(
|
||||
expect(llamaCppEmbeddingProviderAdapter.formatSetupError?.(err)).toContain(
|
||||
"openclaw plugins install @openclaw/llama-cpp-provider",
|
||||
);
|
||||
});
|
||||
|
||||
@@ -29,7 +29,7 @@ type LlamaCppEmbeddingProviderRuntimeOptions = {
|
||||
|
||||
const LLAMA_CPP_EMBEDDING_PROVIDER_ID = "local";
|
||||
const LOCAL_EMBEDDING_RUNTIME_FACTS = Symbol.for("openclaw.localEmbeddingRuntimeFacts");
|
||||
export const DEFAULT_LLAMA_CPP_EMBEDDING_MODEL =
|
||||
const DEFAULT_LLAMA_CPP_EMBEDDING_MODEL =
|
||||
"hf:ggml-org/embeddinggemma-300m-qat-q8_0-GGUF/embeddinggemma-300m-qat-Q8_0.gguf";
|
||||
const DEFAULT_LLAMA_CPP_EMBEDDING_MODEL_CACHE_FILE_NAME =
|
||||
"hf_ggml-org_embeddinggemma-300m-qat-Q8_0.gguf";
|
||||
@@ -133,7 +133,7 @@ function formatErrorMessage(err: unknown): string {
|
||||
return String(err);
|
||||
}
|
||||
|
||||
export function formatLlamaCppSetupError(err: unknown): string {
|
||||
function formatLlamaCppSetupError(err: unknown): string {
|
||||
const detail = formatErrorMessage(err);
|
||||
const missing = isNodeLlamaCppMissing(err);
|
||||
return [
|
||||
@@ -195,7 +195,7 @@ function adaptMemoryEmbeddingProvider(provider: MemoryEmbeddingProvider): Embedd
|
||||
return adapted;
|
||||
}
|
||||
|
||||
export async function createLlamaCppMemoryEmbeddingProvider(
|
||||
async function createLlamaCppMemoryEmbeddingProvider(
|
||||
options: MemoryEmbeddingProviderCreateOptions,
|
||||
runtimeOptions: LlamaCppEmbeddingProviderRuntimeOptions = {},
|
||||
): Promise<MemoryEmbeddingProviderCreateResult> {
|
||||
|
||||
Reference in New Issue
Block a user