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/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");
|
|
@@ -13361,6 +13394,8 @@ export {
|
|
|
13361
13394
|
ConsolidatedMemorySchema,
|
|
13362
13395
|
ConsolidationRuleSchema,
|
|
13363
13396
|
ContinuityLogSchema,
|
|
13397
|
+
DEFAULT_EMBEDDING_FALLBACK_MODEL,
|
|
13398
|
+
DEFAULT_EMBEDDING_MODEL,
|
|
13364
13399
|
DEFAULT_ENABLED_SHARED_STORE_CONFIG,
|
|
13365
13400
|
DEFAULT_SHARED_STORAGE_PATH,
|
|
13366
13401
|
DISABLED_SHARED_STORE_CONFIG,
|
|
@@ -13461,6 +13496,7 @@ export {
|
|
|
13461
13496
|
VectorWorkerV2,
|
|
13462
13497
|
WorkingSetItemSchema,
|
|
13463
13498
|
createCodexSessionHistoryImporter,
|
|
13499
|
+
createEmbeddingBackendUnavailableError,
|
|
13464
13500
|
createEmbeddingMaintenanceService,
|
|
13465
13501
|
createEndlessMemoryServices,
|
|
13466
13502
|
createFactDeriver,
|
|
@@ -13502,6 +13538,7 @@ export {
|
|
|
13502
13538
|
hashContent,
|
|
13503
13539
|
hashProjectPath,
|
|
13504
13540
|
isKnownBenignTransformersWarning,
|
|
13541
|
+
isMissingTransformersDependencyError,
|
|
13505
13542
|
isSameCanonicalKey,
|
|
13506
13543
|
listCodexSessionFilesRecursive,
|
|
13507
13544
|
loadSessionRegistry,
|