@aeriondyseti/vector-memory-mcp 2.3.0-rc.6 → 2.4.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aeriondyseti/vector-memory-mcp",
3
- "version": "2.3.0-rc.6",
3
+ "version": "2.4.0",
4
4
  "description": "A zero-configuration RAG memory server for MCP clients",
5
5
  "type": "module",
6
6
  "main": "server/index.ts",
@@ -30,6 +30,7 @@
30
30
  "test:quick": "bun test",
31
31
  "test:coverage": "bun test --preload ./tests/preload.ts --coverage",
32
32
  "benchmark": "bun test tests/benchmark.test.ts --preload ./tests/preload.ts",
33
+ "benchmark:update": "bun run scripts/update-benchmarks.ts",
33
34
  "test:preload": "bun run tests/preload.ts",
34
35
  "smoke": "bun run scripts/smoke-test.ts",
35
36
  "warmup": "bun run scripts/warmup.ts",
@@ -23,6 +23,14 @@ export class EmbeddingsService {
23
23
  return this._dimension;
24
24
  }
25
25
 
26
+ get isReady(): boolean {
27
+ return this.session !== null;
28
+ }
29
+
30
+ async warmup(): Promise<void> {
31
+ await this.initialize();
32
+ }
33
+
26
34
  private async initialize(): Promise<void> {
27
35
  if (this.session) return;
28
36
  if (!this.initPromise) {
@@ -111,10 +111,22 @@ export function createHttpApp(memoryService: MemoryService, config: Config): Hon
111
111
  embeddingDimension: config.embeddingDimension,
112
112
  historyEnabled: config.conversationHistory.enabled,
113
113
  pluginMode: config.pluginMode,
114
+ embeddingReady: memoryService.getEmbeddings().isReady,
114
115
  },
115
116
  });
116
117
  });
117
118
 
119
+ // Warmup endpoint — triggers ONNX model load if not already cached
120
+ app.post("/warmup", async (c) => {
121
+ const embeddings = memoryService.getEmbeddings();
122
+ if (embeddings.isReady) {
123
+ return c.json({ status: "already_warm" });
124
+ }
125
+ const start = Date.now();
126
+ await embeddings.warmup();
127
+ return c.json({ status: "warmed", elapsed: Date.now() - start });
128
+ });
129
+
118
130
  // Search endpoint
119
131
  app.post("/search", async (c) => {
120
132
  try {