claude-memory-layer 1.0.29 → 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 +16 -2
- 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 +1 -1
- package/scripts/postinstall-embedding-backend.cjs +2 -3
- 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 +23 -15
- package/tests/extensions/embedder-warning-suppression.test.ts +30 -0
package/dist/server/index.js
CHANGED
|
@@ -1541,12 +1541,14 @@ import * as fs5 from "fs";
|
|
|
1541
1541
|
import * as path4 from "path";
|
|
1542
1542
|
|
|
1543
1543
|
// src/extensions/vector/embedder.ts
|
|
1544
|
+
var DEFAULT_EMBEDDING_MODEL = "Xenova/multilingual-e5-small";
|
|
1545
|
+
var DEFAULT_EMBEDDING_FALLBACK_MODEL = "intfloat/multilingual-e5-small";
|
|
1544
1546
|
var Embedder = class _Embedder {
|
|
1545
1547
|
pipeline = null;
|
|
1546
1548
|
modelName;
|
|
1547
1549
|
activeModelName;
|
|
1548
1550
|
initialized = false;
|
|
1549
|
-
constructor(modelName =
|
|
1551
|
+
constructor(modelName = DEFAULT_EMBEDDING_MODEL) {
|
|
1550
1552
|
this.modelName = modelName;
|
|
1551
1553
|
this.activeModelName = modelName;
|
|
1552
1554
|
}
|
|
@@ -1556,14 +1558,23 @@ var Embedder = class _Embedder {
|
|
|
1556
1558
|
async initialize() {
|
|
1557
1559
|
if (this.initialized)
|
|
1558
1560
|
return;
|
|
1559
|
-
const pipeline = await withSuppressedKnownTransformersWarnings(() =>
|
|
1561
|
+
const pipeline = await withSuppressedKnownTransformersWarnings(async () => {
|
|
1562
|
+
try {
|
|
1563
|
+
return await loadTransformersPipeline();
|
|
1564
|
+
} catch (error) {
|
|
1565
|
+
if (isMissingTransformersDependencyError(error)) {
|
|
1566
|
+
throw createEmbeddingBackendUnavailableError(error);
|
|
1567
|
+
}
|
|
1568
|
+
throw error;
|
|
1569
|
+
}
|
|
1570
|
+
});
|
|
1560
1571
|
try {
|
|
1561
1572
|
this.pipeline = await withSuppressedKnownTransformersWarnings(() => pipeline("feature-extraction", this.modelName));
|
|
1562
1573
|
this.activeModelName = this.modelName;
|
|
1563
1574
|
this.initialized = true;
|
|
1564
1575
|
return;
|
|
1565
1576
|
} catch (primaryError) {
|
|
1566
|
-
const fallbackModel = process.env.CLAUDE_MEMORY_EMBEDDING_FALLBACK_MODEL ||
|
|
1577
|
+
const fallbackModel = process.env.CLAUDE_MEMORY_EMBEDDING_FALLBACK_MODEL || DEFAULT_EMBEDDING_FALLBACK_MODEL;
|
|
1567
1578
|
if (fallbackModel === this.modelName) {
|
|
1568
1579
|
throw primaryError;
|
|
1569
1580
|
}
|
|
@@ -1682,6 +1693,27 @@ async function withSuppressedKnownTransformersWarnings(fn) {
|
|
|
1682
1693
|
function isKnownBenignTransformersWarning(message) {
|
|
1683
1694
|
return message.includes('Unknown model class "eurobert"') || message.includes('dtype not specified for "model"');
|
|
1684
1695
|
}
|
|
1696
|
+
function isMissingTransformersDependencyError(error) {
|
|
1697
|
+
const maybeError = error;
|
|
1698
|
+
const message = typeof maybeError?.message === "string" ? maybeError.message : "";
|
|
1699
|
+
return maybeError?.code === "ERR_MODULE_NOT_FOUND" && message.includes("@huggingface/transformers");
|
|
1700
|
+
}
|
|
1701
|
+
function createEmbeddingBackendUnavailableError(cause) {
|
|
1702
|
+
const error = new Error(
|
|
1703
|
+
[
|
|
1704
|
+
"Optional embedding backend is not installed.",
|
|
1705
|
+
"",
|
|
1706
|
+
"Claude Memory Layer can run embeddings on CPU-only ONNX Runtime; CUDA is not required.",
|
|
1707
|
+
"Reinstall globally with:",
|
|
1708
|
+
" ONNXRUNTIME_NODE_INSTALL_CUDA=skip npm install -g claude-memory-layer@latest",
|
|
1709
|
+
"",
|
|
1710
|
+
"If you are inside a local checkout or package directory, repair only the backend with:",
|
|
1711
|
+
" ONNXRUNTIME_NODE_INSTALL_CUDA=skip npm install --no-save --no-package-lock --omit=dev @huggingface/transformers@3.8.1"
|
|
1712
|
+
].join("\n")
|
|
1713
|
+
);
|
|
1714
|
+
error.cause = cause;
|
|
1715
|
+
return error;
|
|
1716
|
+
}
|
|
1685
1717
|
async function loadTransformersPipeline() {
|
|
1686
1718
|
const dynamicImport = new Function("specifier", "return import(specifier)");
|
|
1687
1719
|
const transformers = await dynamicImport("@huggingface/transformers");
|