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/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("jinaai/jina-embeddings-v5-text-nano-text-matching"),
95
- openaiModel: z.string().default("jinaai/jina-embeddings-v5-text-nano-text-matching"),
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 = "jinaai/jina-embeddings-v5-text-nano-text-matching") {
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(() => loadTransformersPipeline());
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 || "onnx-community/embeddinggemma-300m-ONNX";
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,