claude-memory-layer 1.0.29 → 1.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -6
- package/dist/cli/index.js +38 -5
- package/dist/cli/index.js.map +2 -2
- package/dist/core/index.js +42 -5
- package/dist/core/index.js.map +2 -2
- package/dist/hooks/post-tool-use.js +36 -3
- package/dist/hooks/post-tool-use.js.map +2 -2
- package/dist/hooks/semantic-daemon.js +36 -3
- package/dist/hooks/semantic-daemon.js.map +2 -2
- package/dist/hooks/session-end.js +36 -3
- package/dist/hooks/session-end.js.map +2 -2
- package/dist/hooks/session-start.js +36 -3
- package/dist/hooks/session-start.js.map +2 -2
- package/dist/hooks/stop.js +36 -3
- package/dist/hooks/stop.js.map +2 -2
- package/dist/hooks/user-prompt-submit.js +36 -3
- package/dist/hooks/user-prompt-submit.js.map +2 -2
- package/dist/index.js +42 -5
- package/dist/index.js.map +2 -2
- package/dist/mcp/index.js +36 -3
- package/dist/mcp/index.js.map +2 -2
- package/dist/server/api/index.js +36 -3
- package/dist/server/api/index.js.map +2 -2
- package/dist/server/index.js +36 -3
- package/dist/server/index.js.map +2 -2
- package/dist/services/memory-service.js +36 -3
- package/dist/services/memory-service.js.map +2 -2
- package/package.json +4 -6
- package/scripts/postinstall-embedding-backend.cjs +4 -7
- package/src/apps/cli/index.ts +5 -1
- package/src/core/types.ts +2 -2
- package/src/extensions/vector/embedder.ts +40 -3
- package/tests/apps/postinstall-embedding-backend.test.ts +36 -18
- package/tests/extensions/embedder-warning-suppression.test.ts +31 -0
package/dist/core/index.js
CHANGED
|
@@ -91,8 +91,8 @@ var ConfigSchema = z.object({
|
|
|
91
91
|
}).default({}),
|
|
92
92
|
embedding: z.object({
|
|
93
93
|
provider: z.enum(["local", "openai"]).default("local"),
|
|
94
|
-
model: z.string().default("
|
|
95
|
-
openaiModel: z.string().default("
|
|
94
|
+
model: z.string().default("Xenova/multilingual-e5-small"),
|
|
95
|
+
openaiModel: z.string().default("Xenova/multilingual-e5-small"),
|
|
96
96
|
batchSize: z.number().default(32)
|
|
97
97
|
}).default({}),
|
|
98
98
|
retrieval: z.object({
|
|
@@ -1188,12 +1188,14 @@ import * as fs6 from "fs";
|
|
|
1188
1188
|
import * as path5 from "path";
|
|
1189
1189
|
|
|
1190
1190
|
// src/extensions/vector/embedder.ts
|
|
1191
|
+
var DEFAULT_EMBEDDING_MODEL = "Xenova/multilingual-e5-small";
|
|
1192
|
+
var DEFAULT_EMBEDDING_FALLBACK_MODEL = "intfloat/multilingual-e5-small";
|
|
1191
1193
|
var Embedder = class _Embedder {
|
|
1192
1194
|
pipeline = null;
|
|
1193
1195
|
modelName;
|
|
1194
1196
|
activeModelName;
|
|
1195
1197
|
initialized = false;
|
|
1196
|
-
constructor(modelName =
|
|
1198
|
+
constructor(modelName = DEFAULT_EMBEDDING_MODEL) {
|
|
1197
1199
|
this.modelName = modelName;
|
|
1198
1200
|
this.activeModelName = modelName;
|
|
1199
1201
|
}
|
|
@@ -1203,14 +1205,23 @@ var Embedder = class _Embedder {
|
|
|
1203
1205
|
async initialize() {
|
|
1204
1206
|
if (this.initialized)
|
|
1205
1207
|
return;
|
|
1206
|
-
const pipeline = await withSuppressedKnownTransformersWarnings(() =>
|
|
1208
|
+
const pipeline = await withSuppressedKnownTransformersWarnings(async () => {
|
|
1209
|
+
try {
|
|
1210
|
+
return await loadTransformersPipeline();
|
|
1211
|
+
} catch (error) {
|
|
1212
|
+
if (isMissingTransformersDependencyError(error)) {
|
|
1213
|
+
throw createEmbeddingBackendUnavailableError(error);
|
|
1214
|
+
}
|
|
1215
|
+
throw error;
|
|
1216
|
+
}
|
|
1217
|
+
});
|
|
1207
1218
|
try {
|
|
1208
1219
|
this.pipeline = await withSuppressedKnownTransformersWarnings(() => pipeline("feature-extraction", this.modelName));
|
|
1209
1220
|
this.activeModelName = this.modelName;
|
|
1210
1221
|
this.initialized = true;
|
|
1211
1222
|
return;
|
|
1212
1223
|
} catch (primaryError) {
|
|
1213
|
-
const fallbackModel = process.env.CLAUDE_MEMORY_EMBEDDING_FALLBACK_MODEL ||
|
|
1224
|
+
const fallbackModel = process.env.CLAUDE_MEMORY_EMBEDDING_FALLBACK_MODEL || DEFAULT_EMBEDDING_FALLBACK_MODEL;
|
|
1214
1225
|
if (fallbackModel === this.modelName) {
|
|
1215
1226
|
throw primaryError;
|
|
1216
1227
|
}
|
|
@@ -1329,6 +1340,28 @@ async function withSuppressedKnownTransformersWarnings(fn) {
|
|
|
1329
1340
|
function isKnownBenignTransformersWarning(message) {
|
|
1330
1341
|
return message.includes('Unknown model class "eurobert"') || message.includes('dtype not specified for "model"');
|
|
1331
1342
|
}
|
|
1343
|
+
function isMissingTransformersDependencyError(error) {
|
|
1344
|
+
const maybeError = error;
|
|
1345
|
+
const message = typeof maybeError?.message === "string" ? maybeError.message : "";
|
|
1346
|
+
return maybeError?.code === "ERR_MODULE_NOT_FOUND" && message.includes("@huggingface/transformers");
|
|
1347
|
+
}
|
|
1348
|
+
function createEmbeddingBackendUnavailableError(cause) {
|
|
1349
|
+
const error = new Error(
|
|
1350
|
+
[
|
|
1351
|
+
"Required embedding backend is not installed.",
|
|
1352
|
+
"",
|
|
1353
|
+
"Claude Memory Layer requires @huggingface/transformers for local semantic/vector embeddings.",
|
|
1354
|
+
"The backend runs on CPU-only ONNX Runtime; CUDA is not required.",
|
|
1355
|
+
"Reinstall globally with:",
|
|
1356
|
+
" ONNXRUNTIME_NODE_INSTALL_CUDA=skip npm install -g claude-memory-layer@latest",
|
|
1357
|
+
"",
|
|
1358
|
+
"If you are inside a local checkout or package directory, repair only the backend with:",
|
|
1359
|
+
" ONNXRUNTIME_NODE_INSTALL_CUDA=skip npm install --no-save --no-package-lock --omit=dev @huggingface/transformers@3.8.1"
|
|
1360
|
+
].join("\n")
|
|
1361
|
+
);
|
|
1362
|
+
error.cause = cause;
|
|
1363
|
+
return error;
|
|
1364
|
+
}
|
|
1332
1365
|
async function loadTransformersPipeline() {
|
|
1333
1366
|
const dynamicImport = new Function("specifier", "return import(specifier)");
|
|
1334
1367
|
const transformers = await dynamicImport("@huggingface/transformers");
|
|
@@ -11924,6 +11957,8 @@ export {
|
|
|
11924
11957
|
ConsolidatedMemorySchema,
|
|
11925
11958
|
ConsolidationRuleSchema,
|
|
11926
11959
|
ContinuityLogSchema,
|
|
11960
|
+
DEFAULT_EMBEDDING_FALLBACK_MODEL,
|
|
11961
|
+
DEFAULT_EMBEDDING_MODEL,
|
|
11927
11962
|
DefaultContentProvider,
|
|
11928
11963
|
EdgeRepo,
|
|
11929
11964
|
EdgeSchema,
|
|
@@ -12019,6 +12054,7 @@ export {
|
|
|
12019
12054
|
VectorWorker,
|
|
12020
12055
|
VectorWorkerV2,
|
|
12021
12056
|
WorkingSetItemSchema,
|
|
12057
|
+
createEmbeddingBackendUnavailableError,
|
|
12022
12058
|
createEmbeddingMaintenanceService,
|
|
12023
12059
|
createEndlessMemoryServices,
|
|
12024
12060
|
createFactDeriver,
|
|
@@ -12050,6 +12086,7 @@ export {
|
|
|
12050
12086
|
hashContent,
|
|
12051
12087
|
hashProjectPath,
|
|
12052
12088
|
isKnownBenignTransformersWarning,
|
|
12089
|
+
isMissingTransformersDependencyError,
|
|
12053
12090
|
isSameCanonicalKey,
|
|
12054
12091
|
loadSessionRegistry,
|
|
12055
12092
|
makeArtifactKey,
|