claude-memory-layer 1.0.28 → 1.0.30
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 +204 -8
- package/dist/cli/index.js +37 -5
- package/dist/cli/index.js.map +2 -2
- package/dist/core/index.js +41 -5
- package/dist/core/index.js.map +2 -2
- package/dist/hooks/post-tool-use.js +35 -3
- package/dist/hooks/post-tool-use.js.map +2 -2
- package/dist/hooks/semantic-daemon.js +35 -3
- package/dist/hooks/semantic-daemon.js.map +2 -2
- package/dist/hooks/session-end.js +35 -3
- package/dist/hooks/session-end.js.map +2 -2
- package/dist/hooks/session-start.js +35 -3
- package/dist/hooks/session-start.js.map +2 -2
- package/dist/hooks/stop.js +35 -3
- package/dist/hooks/stop.js.map +2 -2
- package/dist/hooks/user-prompt-submit.js +35 -3
- package/dist/hooks/user-prompt-submit.js.map +2 -2
- package/dist/index.js +41 -5
- package/dist/index.js.map +2 -2
- package/dist/mcp/index.js +35 -3
- package/dist/mcp/index.js.map +2 -2
- package/dist/server/api/index.js +35 -3
- package/dist/server/api/index.js.map +2 -2
- package/dist/server/index.js +35 -3
- package/dist/server/index.js.map +2 -2
- package/dist/services/memory-service.js +35 -3
- package/dist/services/memory-service.js.map +2 -2
- package/package.json +6 -3
- package/scripts/postinstall-embedding-backend.cjs +141 -0
- package/src/apps/cli/index.ts +5 -1
- package/src/core/types.ts +2 -2
- package/src/extensions/vector/embedder.ts +39 -3
- package/tests/apps/postinstall-embedding-backend.test.ts +175 -0
- package/tests/extensions/embedder-warning-suppression.test.ts +30 -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,27 @@ 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
|
+
"Optional embedding backend is not installed.",
|
|
1352
|
+
"",
|
|
1353
|
+
"Claude Memory Layer can run embeddings on CPU-only ONNX Runtime; CUDA is not required.",
|
|
1354
|
+
"Reinstall globally with:",
|
|
1355
|
+
" ONNXRUNTIME_NODE_INSTALL_CUDA=skip npm install -g claude-memory-layer@latest",
|
|
1356
|
+
"",
|
|
1357
|
+
"If you are inside a local checkout or package directory, repair only the backend with:",
|
|
1358
|
+
" ONNXRUNTIME_NODE_INSTALL_CUDA=skip npm install --no-save --no-package-lock --omit=dev @huggingface/transformers@3.8.1"
|
|
1359
|
+
].join("\n")
|
|
1360
|
+
);
|
|
1361
|
+
error.cause = cause;
|
|
1362
|
+
return error;
|
|
1363
|
+
}
|
|
1332
1364
|
async function loadTransformersPipeline() {
|
|
1333
1365
|
const dynamicImport = new Function("specifier", "return import(specifier)");
|
|
1334
1366
|
const transformers = await dynamicImport("@huggingface/transformers");
|
|
@@ -13361,6 +13393,8 @@ export {
|
|
|
13361
13393
|
ConsolidatedMemorySchema,
|
|
13362
13394
|
ConsolidationRuleSchema,
|
|
13363
13395
|
ContinuityLogSchema,
|
|
13396
|
+
DEFAULT_EMBEDDING_FALLBACK_MODEL,
|
|
13397
|
+
DEFAULT_EMBEDDING_MODEL,
|
|
13364
13398
|
DEFAULT_ENABLED_SHARED_STORE_CONFIG,
|
|
13365
13399
|
DEFAULT_SHARED_STORAGE_PATH,
|
|
13366
13400
|
DISABLED_SHARED_STORE_CONFIG,
|
|
@@ -13461,6 +13495,7 @@ export {
|
|
|
13461
13495
|
VectorWorkerV2,
|
|
13462
13496
|
WorkingSetItemSchema,
|
|
13463
13497
|
createCodexSessionHistoryImporter,
|
|
13498
|
+
createEmbeddingBackendUnavailableError,
|
|
13464
13499
|
createEmbeddingMaintenanceService,
|
|
13465
13500
|
createEndlessMemoryServices,
|
|
13466
13501
|
createFactDeriver,
|
|
@@ -13502,6 +13537,7 @@ export {
|
|
|
13502
13537
|
hashContent,
|
|
13503
13538
|
hashProjectPath,
|
|
13504
13539
|
isKnownBenignTransformersWarning,
|
|
13540
|
+
isMissingTransformersDependencyError,
|
|
13505
13541
|
isSameCanonicalKey,
|
|
13506
13542
|
listCodexSessionFilesRecursive,
|
|
13507
13543
|
loadSessionRegistry,
|