appium-mcp 1.74.0 → 1.74.1
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/CHANGELOG.md +6 -0
- package/dist/tools/documentation/simple-pdf-indexer.d.ts.map +1 -1
- package/dist/tools/documentation/simple-pdf-indexer.js +104 -104
- package/dist/tools/documentation/simple-pdf-indexer.js.map +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/resources/submodules.zip +0 -0
- package/src/tools/documentation/simple-pdf-indexer.ts +147 -147
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## [1.74.1](https://github.com/appium/appium-mcp/compare/v1.74.0...v1.74.1) (2026-05-16)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* lint ([#336](https://github.com/appium/appium-mcp/issues/336)) ([0713701](https://github.com/appium/appium-mcp/commit/07137018677e75a6bbf9242fdd6371005a44f894))
|
|
6
|
+
|
|
1
7
|
## [1.74.0](https://github.com/appium/appium-mcp/compare/v1.73.0...v1.74.0) (2026-05-16)
|
|
2
8
|
|
|
3
9
|
### Features
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-pdf-indexer.d.ts","sourceRoot":"","sources":["../../../src/tools/documentation/simple-pdf-indexer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"simple-pdf-indexer.d.ts","sourceRoot":"","sources":["../../../src/tools/documentation/simple-pdf-indexer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAqF3E;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,MAAa,EACxB,YAAY,GAAE,MAAY,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAmD5B;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,EAAE,CAAC,CAwCnB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,MAAa,EACxB,YAAY,GAAE,MAAY,GACzB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAa,EACxB,YAAY,GAAE,MAAY,GACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CAuGnB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,MAAW,GAChB,OAAO,CAAC,QAAQ,EAAE,CAAC,CA6CrB"}
|
|
@@ -66,110 +66,6 @@ const EXCLUDED_MARKDOWN_DIRECTORIES = new Set(['appium-skills']);
|
|
|
66
66
|
* re-embedded automatically.
|
|
67
67
|
*/
|
|
68
68
|
const CACHE_VERSION = 1;
|
|
69
|
-
function sanitizeForFilename(name) {
|
|
70
|
-
return name.replace(/[^a-zA-Z0-9._-]/g, '-');
|
|
71
|
-
}
|
|
72
|
-
function getEmbeddingsCachePath(modelName) {
|
|
73
|
-
return path.join(__dirname, 'uploads', `embeddings-${sanitizeForFilename(modelName)}.json`);
|
|
74
|
-
}
|
|
75
|
-
function computeContentHash(documents) {
|
|
76
|
-
const hash = crypto.createHash('sha256');
|
|
77
|
-
for (const doc of documents) {
|
|
78
|
-
hash.update(doc.pageContent);
|
|
79
|
-
hash.update('\x00'); // separator avoids concat collisions across chunks
|
|
80
|
-
}
|
|
81
|
-
return hash.digest('hex');
|
|
82
|
-
}
|
|
83
|
-
function makeFingerprint(documents, modelName) {
|
|
84
|
-
return {
|
|
85
|
-
modelName,
|
|
86
|
-
chunkCount: documents.length,
|
|
87
|
-
contentHash: computeContentHash(documents),
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
function fingerprintsMatch(a, b) {
|
|
91
|
-
return (a.modelName === b.modelName &&
|
|
92
|
-
a.chunkCount === b.chunkCount &&
|
|
93
|
-
a.contentHash === b.contentHash);
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Try to load a valid embeddings cache for the given documents + model.
|
|
97
|
-
* Returns null if no cache file exists, the file is corrupt, or its
|
|
98
|
-
* fingerprint disagrees with what we'd compute now.
|
|
99
|
-
*/
|
|
100
|
-
async function loadEmbeddingsCache(documents, modelName) {
|
|
101
|
-
const cachePath = getEmbeddingsCachePath(modelName);
|
|
102
|
-
if (!(await fs.exists(cachePath))) {
|
|
103
|
-
log.info(`No embeddings cache found at ${cachePath}`);
|
|
104
|
-
return null;
|
|
105
|
-
}
|
|
106
|
-
try {
|
|
107
|
-
const raw = await fs.readFile(cachePath, 'utf-8');
|
|
108
|
-
const cache = JSON.parse(raw);
|
|
109
|
-
if (cache.version !== CACHE_VERSION) {
|
|
110
|
-
log.warn(`Embeddings cache version mismatch (got ${cache.version}, want ${CACHE_VERSION}). Invalidating.`);
|
|
111
|
-
return null;
|
|
112
|
-
}
|
|
113
|
-
const expected = makeFingerprint(documents, modelName);
|
|
114
|
-
if (!fingerprintsMatch(cache.fingerprint, expected)) {
|
|
115
|
-
log.info(`Embeddings cache fingerprint mismatch — will re-embed. ` +
|
|
116
|
-
`Cached: ${JSON.stringify(cache.fingerprint)}; expected: ${JSON.stringify(expected)}`);
|
|
117
|
-
return null;
|
|
118
|
-
}
|
|
119
|
-
if (!Array.isArray(cache.embeddings) ||
|
|
120
|
-
cache.embeddings.length !== documents.length) {
|
|
121
|
-
log.warn(`Embeddings cache length (${cache.embeddings?.length}) does not match documents length (${documents.length}). Invalidating.`);
|
|
122
|
-
return null;
|
|
123
|
-
}
|
|
124
|
-
log.info(`Embeddings cache hit: ${cache.embeddings.length} vectors loaded from ${cachePath}`);
|
|
125
|
-
return cache.embeddings;
|
|
126
|
-
}
|
|
127
|
-
catch (err) {
|
|
128
|
-
log.warn(`Failed to read embeddings cache (${err instanceof Error ? err.message : String(err)}). Will re-embed.`);
|
|
129
|
-
return null;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Persist embedding vectors for the given documents under the given model name.
|
|
134
|
-
* Writes to a .tmp file then moves into place; the finally block sweeps the
|
|
135
|
-
* tmp file if anything between writeFile and mv throws. Uses fs.mv so the
|
|
136
|
-
* overwrite works across platforms (Windows rename-over-existing can be flaky
|
|
137
|
-
* in edge cases involving file locks).
|
|
138
|
-
*/
|
|
139
|
-
async function saveEmbeddingsCache(documents, vectors, modelName) {
|
|
140
|
-
if (vectors.length === 0) {
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
if (vectors.length !== documents.length) {
|
|
144
|
-
log.warn(`Refusing to write embeddings cache: ${vectors.length} vectors vs ${documents.length} documents`);
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
const cachePath = getEmbeddingsCachePath(modelName);
|
|
148
|
-
await fs.mkdirp(path.dirname(cachePath));
|
|
149
|
-
const cache = {
|
|
150
|
-
version: CACHE_VERSION,
|
|
151
|
-
fingerprint: makeFingerprint(documents, modelName),
|
|
152
|
-
embeddings: vectors,
|
|
153
|
-
};
|
|
154
|
-
const tmpPath = `${cachePath}.tmp`;
|
|
155
|
-
try {
|
|
156
|
-
await fs.writeFile(tmpPath, JSON.stringify(cache));
|
|
157
|
-
await fs.mv(tmpPath, cachePath, { clobber: true, mkdirp: true });
|
|
158
|
-
log.info(`Saved embeddings cache (${vectors.length} vectors) to ${cachePath}`);
|
|
159
|
-
}
|
|
160
|
-
finally {
|
|
161
|
-
if (await fs.exists(tmpPath)) {
|
|
162
|
-
try {
|
|
163
|
-
await fs.unlink(tmpPath);
|
|
164
|
-
}
|
|
165
|
-
catch (cleanupErr) {
|
|
166
|
-
log.warn(`Failed to clean up tmp cache file ${tmpPath}: ${cleanupErr instanceof Error
|
|
167
|
-
? cleanupErr.message
|
|
168
|
-
: String(cleanupErr)}`);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
69
|
/**
|
|
174
70
|
* Initialize the vector store with Markdown content
|
|
175
71
|
* @param markdownPath Path to the Markdown file
|
|
@@ -401,6 +297,110 @@ export async function queryVectorStore(query, topK = 25) {
|
|
|
401
297
|
throw error;
|
|
402
298
|
}
|
|
403
299
|
}
|
|
300
|
+
function sanitizeForFilename(name) {
|
|
301
|
+
return name.replace(/[^a-zA-Z0-9._-]/g, '-');
|
|
302
|
+
}
|
|
303
|
+
function getEmbeddingsCachePath(modelName) {
|
|
304
|
+
return path.join(__dirname, 'uploads', `embeddings-${sanitizeForFilename(modelName)}.json`);
|
|
305
|
+
}
|
|
306
|
+
function computeContentHash(documents) {
|
|
307
|
+
const hash = crypto.createHash('sha256');
|
|
308
|
+
for (const doc of documents) {
|
|
309
|
+
hash.update(doc.pageContent);
|
|
310
|
+
hash.update('\x00'); // separator avoids concat collisions across chunks
|
|
311
|
+
}
|
|
312
|
+
return hash.digest('hex');
|
|
313
|
+
}
|
|
314
|
+
function makeFingerprint(documents, modelName) {
|
|
315
|
+
return {
|
|
316
|
+
modelName,
|
|
317
|
+
chunkCount: documents.length,
|
|
318
|
+
contentHash: computeContentHash(documents),
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
function fingerprintsMatch(a, b) {
|
|
322
|
+
return (a.modelName === b.modelName &&
|
|
323
|
+
a.chunkCount === b.chunkCount &&
|
|
324
|
+
a.contentHash === b.contentHash);
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Try to load a valid embeddings cache for the given documents + model.
|
|
328
|
+
* Returns null if no cache file exists, the file is corrupt, or its
|
|
329
|
+
* fingerprint disagrees with what we'd compute now.
|
|
330
|
+
*/
|
|
331
|
+
async function loadEmbeddingsCache(documents, modelName) {
|
|
332
|
+
const cachePath = getEmbeddingsCachePath(modelName);
|
|
333
|
+
if (!(await fs.exists(cachePath))) {
|
|
334
|
+
log.info(`No embeddings cache found at ${cachePath}`);
|
|
335
|
+
return null;
|
|
336
|
+
}
|
|
337
|
+
try {
|
|
338
|
+
const raw = await fs.readFile(cachePath, 'utf-8');
|
|
339
|
+
const cache = JSON.parse(raw);
|
|
340
|
+
if (cache.version !== CACHE_VERSION) {
|
|
341
|
+
log.warn(`Embeddings cache version mismatch (got ${cache.version}, want ${CACHE_VERSION}). Invalidating.`);
|
|
342
|
+
return null;
|
|
343
|
+
}
|
|
344
|
+
const expected = makeFingerprint(documents, modelName);
|
|
345
|
+
if (!fingerprintsMatch(cache.fingerprint, expected)) {
|
|
346
|
+
log.info(`Embeddings cache fingerprint mismatch — will re-embed. ` +
|
|
347
|
+
`Cached: ${JSON.stringify(cache.fingerprint)}; expected: ${JSON.stringify(expected)}`);
|
|
348
|
+
return null;
|
|
349
|
+
}
|
|
350
|
+
if (!Array.isArray(cache.embeddings) ||
|
|
351
|
+
cache.embeddings.length !== documents.length) {
|
|
352
|
+
log.warn(`Embeddings cache length (${cache.embeddings?.length}) does not match documents length (${documents.length}). Invalidating.`);
|
|
353
|
+
return null;
|
|
354
|
+
}
|
|
355
|
+
log.info(`Embeddings cache hit: ${cache.embeddings.length} vectors loaded from ${cachePath}`);
|
|
356
|
+
return cache.embeddings;
|
|
357
|
+
}
|
|
358
|
+
catch (err) {
|
|
359
|
+
log.warn(`Failed to read embeddings cache (${err instanceof Error ? err.message : String(err)}). Will re-embed.`);
|
|
360
|
+
return null;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Persist embedding vectors for the given documents under the given model name.
|
|
365
|
+
* Writes to a .tmp file then moves into place; the finally block sweeps the
|
|
366
|
+
* tmp file if anything between writeFile and mv throws. Uses fs.mv so the
|
|
367
|
+
* overwrite works across platforms (Windows rename-over-existing can be flaky
|
|
368
|
+
* in edge cases involving file locks).
|
|
369
|
+
*/
|
|
370
|
+
async function saveEmbeddingsCache(documents, vectors, modelName) {
|
|
371
|
+
if (vectors.length === 0) {
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
374
|
+
if (vectors.length !== documents.length) {
|
|
375
|
+
log.warn(`Refusing to write embeddings cache: ${vectors.length} vectors vs ${documents.length} documents`);
|
|
376
|
+
return;
|
|
377
|
+
}
|
|
378
|
+
const cachePath = getEmbeddingsCachePath(modelName);
|
|
379
|
+
await fs.mkdirp(path.dirname(cachePath));
|
|
380
|
+
const cache = {
|
|
381
|
+
version: CACHE_VERSION,
|
|
382
|
+
fingerprint: makeFingerprint(documents, modelName),
|
|
383
|
+
embeddings: vectors,
|
|
384
|
+
};
|
|
385
|
+
const tmpPath = `${cachePath}.tmp`;
|
|
386
|
+
try {
|
|
387
|
+
await fs.writeFile(tmpPath, JSON.stringify(cache));
|
|
388
|
+
await fs.mv(tmpPath, cachePath, { clobber: true, mkdirp: true });
|
|
389
|
+
log.info(`Saved embeddings cache (${vectors.length} vectors) to ${cachePath}`);
|
|
390
|
+
}
|
|
391
|
+
finally {
|
|
392
|
+
if (await fs.exists(tmpPath)) {
|
|
393
|
+
try {
|
|
394
|
+
await fs.unlink(tmpPath);
|
|
395
|
+
}
|
|
396
|
+
catch (cleanupErr) {
|
|
397
|
+
log.warn(`Failed to clean up tmp cache file ${tmpPath}: ${cleanupErr instanceof Error
|
|
398
|
+
? cleanupErr.message
|
|
399
|
+
: String(cleanupErr)}`);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
404
|
/**
|
|
405
405
|
* Save the documents to a file
|
|
406
406
|
* @param documents The documents to save
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-pdf-indexer.js","sourceRoot":"","sources":["../../../src/tools/documentation/simple-pdf-indexer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"simple-pdf-indexer.js","sourceRoot":"","sources":["../../../src/tools/documentation/simple-pdf-indexer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/server.json
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"name": "io.github.appium/appium-mcp",
|
|
4
4
|
"title": "MCP Appium - Mobile Development and Automation Server",
|
|
5
5
|
"description": "MCP server for Appium mobile automation on iOS and Android devices with test creation tools.",
|
|
6
|
-
"version": "1.74.
|
|
6
|
+
"version": "1.74.1",
|
|
7
7
|
"packages": [
|
|
8
8
|
{
|
|
9
9
|
"registryType": "npm",
|
|
10
10
|
"identifier": "appium-mcp",
|
|
11
|
-
"version": "1.74.
|
|
11
|
+
"version": "1.74.1",
|
|
12
12
|
"transport": {
|
|
13
13
|
"type": "stdio"
|
|
14
14
|
}
|
|
Binary file
|
|
@@ -93,153 +93,6 @@ interface EmbeddingsCacheFile {
|
|
|
93
93
|
embeddings: number[][];
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
function sanitizeForFilename(name: string): string {
|
|
97
|
-
return name.replace(/[^a-zA-Z0-9._-]/g, '-');
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
function getEmbeddingsCachePath(modelName: string): string {
|
|
101
|
-
return path.join(
|
|
102
|
-
__dirname,
|
|
103
|
-
'uploads',
|
|
104
|
-
`embeddings-${sanitizeForFilename(modelName)}.json`
|
|
105
|
-
);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
function computeContentHash(documents: Document[]): string {
|
|
109
|
-
const hash = crypto.createHash('sha256');
|
|
110
|
-
for (const doc of documents) {
|
|
111
|
-
hash.update(doc.pageContent);
|
|
112
|
-
hash.update('\x00'); // separator avoids concat collisions across chunks
|
|
113
|
-
}
|
|
114
|
-
return hash.digest('hex');
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
function makeFingerprint(
|
|
118
|
-
documents: Document[],
|
|
119
|
-
modelName: string
|
|
120
|
-
): EmbeddingsCacheFingerprint {
|
|
121
|
-
return {
|
|
122
|
-
modelName,
|
|
123
|
-
chunkCount: documents.length,
|
|
124
|
-
contentHash: computeContentHash(documents),
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
function fingerprintsMatch(
|
|
129
|
-
a: EmbeddingsCacheFingerprint,
|
|
130
|
-
b: EmbeddingsCacheFingerprint
|
|
131
|
-
): boolean {
|
|
132
|
-
return (
|
|
133
|
-
a.modelName === b.modelName &&
|
|
134
|
-
a.chunkCount === b.chunkCount &&
|
|
135
|
-
a.contentHash === b.contentHash
|
|
136
|
-
);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Try to load a valid embeddings cache for the given documents + model.
|
|
141
|
-
* Returns null if no cache file exists, the file is corrupt, or its
|
|
142
|
-
* fingerprint disagrees with what we'd compute now.
|
|
143
|
-
*/
|
|
144
|
-
async function loadEmbeddingsCache(
|
|
145
|
-
documents: Document[],
|
|
146
|
-
modelName: string
|
|
147
|
-
): Promise<number[][] | null> {
|
|
148
|
-
const cachePath = getEmbeddingsCachePath(modelName);
|
|
149
|
-
if (!(await fs.exists(cachePath))) {
|
|
150
|
-
log.info(`No embeddings cache found at ${cachePath}`);
|
|
151
|
-
return null;
|
|
152
|
-
}
|
|
153
|
-
try {
|
|
154
|
-
const raw = await fs.readFile(cachePath, 'utf-8');
|
|
155
|
-
const cache = JSON.parse(raw as string) as EmbeddingsCacheFile;
|
|
156
|
-
if (cache.version !== CACHE_VERSION) {
|
|
157
|
-
log.warn(
|
|
158
|
-
`Embeddings cache version mismatch (got ${cache.version}, want ${CACHE_VERSION}). Invalidating.`
|
|
159
|
-
);
|
|
160
|
-
return null;
|
|
161
|
-
}
|
|
162
|
-
const expected = makeFingerprint(documents, modelName);
|
|
163
|
-
if (!fingerprintsMatch(cache.fingerprint, expected)) {
|
|
164
|
-
log.info(
|
|
165
|
-
`Embeddings cache fingerprint mismatch — will re-embed. ` +
|
|
166
|
-
`Cached: ${JSON.stringify(cache.fingerprint)}; expected: ${JSON.stringify(expected)}`
|
|
167
|
-
);
|
|
168
|
-
return null;
|
|
169
|
-
}
|
|
170
|
-
if (
|
|
171
|
-
!Array.isArray(cache.embeddings) ||
|
|
172
|
-
cache.embeddings.length !== documents.length
|
|
173
|
-
) {
|
|
174
|
-
log.warn(
|
|
175
|
-
`Embeddings cache length (${cache.embeddings?.length}) does not match documents length (${documents.length}). Invalidating.`
|
|
176
|
-
);
|
|
177
|
-
return null;
|
|
178
|
-
}
|
|
179
|
-
log.info(
|
|
180
|
-
`Embeddings cache hit: ${cache.embeddings.length} vectors loaded from ${cachePath}`
|
|
181
|
-
);
|
|
182
|
-
return cache.embeddings;
|
|
183
|
-
} catch (err) {
|
|
184
|
-
log.warn(
|
|
185
|
-
`Failed to read embeddings cache (${err instanceof Error ? err.message : String(err)}). Will re-embed.`
|
|
186
|
-
);
|
|
187
|
-
return null;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Persist embedding vectors for the given documents under the given model name.
|
|
193
|
-
* Writes to a .tmp file then moves into place; the finally block sweeps the
|
|
194
|
-
* tmp file if anything between writeFile and mv throws. Uses fs.mv so the
|
|
195
|
-
* overwrite works across platforms (Windows rename-over-existing can be flaky
|
|
196
|
-
* in edge cases involving file locks).
|
|
197
|
-
*/
|
|
198
|
-
async function saveEmbeddingsCache(
|
|
199
|
-
documents: Document[],
|
|
200
|
-
vectors: number[][],
|
|
201
|
-
modelName: string
|
|
202
|
-
): Promise<void> {
|
|
203
|
-
if (vectors.length === 0) {
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
if (vectors.length !== documents.length) {
|
|
207
|
-
log.warn(
|
|
208
|
-
`Refusing to write embeddings cache: ${vectors.length} vectors vs ${documents.length} documents`
|
|
209
|
-
);
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
212
|
-
const cachePath = getEmbeddingsCachePath(modelName);
|
|
213
|
-
await fs.mkdirp(path.dirname(cachePath));
|
|
214
|
-
const cache: EmbeddingsCacheFile = {
|
|
215
|
-
version: CACHE_VERSION,
|
|
216
|
-
fingerprint: makeFingerprint(documents, modelName),
|
|
217
|
-
embeddings: vectors,
|
|
218
|
-
};
|
|
219
|
-
const tmpPath = `${cachePath}.tmp`;
|
|
220
|
-
try {
|
|
221
|
-
await fs.writeFile(tmpPath, JSON.stringify(cache));
|
|
222
|
-
await fs.mv(tmpPath, cachePath, { clobber: true, mkdirp: true });
|
|
223
|
-
log.info(
|
|
224
|
-
`Saved embeddings cache (${vectors.length} vectors) to ${cachePath}`
|
|
225
|
-
);
|
|
226
|
-
} finally {
|
|
227
|
-
if (await fs.exists(tmpPath)) {
|
|
228
|
-
try {
|
|
229
|
-
await fs.unlink(tmpPath);
|
|
230
|
-
} catch (cleanupErr) {
|
|
231
|
-
log.warn(
|
|
232
|
-
`Failed to clean up tmp cache file ${tmpPath}: ${
|
|
233
|
-
cleanupErr instanceof Error
|
|
234
|
-
? cleanupErr.message
|
|
235
|
-
: String(cleanupErr)
|
|
236
|
-
}`
|
|
237
|
-
);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
|
|
243
96
|
/**
|
|
244
97
|
* Initialize the vector store with Markdown content
|
|
245
98
|
* @param markdownPath Path to the Markdown file
|
|
@@ -549,6 +402,153 @@ export async function queryVectorStore(
|
|
|
549
402
|
}
|
|
550
403
|
}
|
|
551
404
|
|
|
405
|
+
function sanitizeForFilename(name: string): string {
|
|
406
|
+
return name.replace(/[^a-zA-Z0-9._-]/g, '-');
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
function getEmbeddingsCachePath(modelName: string): string {
|
|
410
|
+
return path.join(
|
|
411
|
+
__dirname,
|
|
412
|
+
'uploads',
|
|
413
|
+
`embeddings-${sanitizeForFilename(modelName)}.json`
|
|
414
|
+
);
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
function computeContentHash(documents: Document[]): string {
|
|
418
|
+
const hash = crypto.createHash('sha256');
|
|
419
|
+
for (const doc of documents) {
|
|
420
|
+
hash.update(doc.pageContent);
|
|
421
|
+
hash.update('\x00'); // separator avoids concat collisions across chunks
|
|
422
|
+
}
|
|
423
|
+
return hash.digest('hex');
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
function makeFingerprint(
|
|
427
|
+
documents: Document[],
|
|
428
|
+
modelName: string
|
|
429
|
+
): EmbeddingsCacheFingerprint {
|
|
430
|
+
return {
|
|
431
|
+
modelName,
|
|
432
|
+
chunkCount: documents.length,
|
|
433
|
+
contentHash: computeContentHash(documents),
|
|
434
|
+
};
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
function fingerprintsMatch(
|
|
438
|
+
a: EmbeddingsCacheFingerprint,
|
|
439
|
+
b: EmbeddingsCacheFingerprint
|
|
440
|
+
): boolean {
|
|
441
|
+
return (
|
|
442
|
+
a.modelName === b.modelName &&
|
|
443
|
+
a.chunkCount === b.chunkCount &&
|
|
444
|
+
a.contentHash === b.contentHash
|
|
445
|
+
);
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
/**
|
|
449
|
+
* Try to load a valid embeddings cache for the given documents + model.
|
|
450
|
+
* Returns null if no cache file exists, the file is corrupt, or its
|
|
451
|
+
* fingerprint disagrees with what we'd compute now.
|
|
452
|
+
*/
|
|
453
|
+
async function loadEmbeddingsCache(
|
|
454
|
+
documents: Document[],
|
|
455
|
+
modelName: string
|
|
456
|
+
): Promise<number[][] | null> {
|
|
457
|
+
const cachePath = getEmbeddingsCachePath(modelName);
|
|
458
|
+
if (!(await fs.exists(cachePath))) {
|
|
459
|
+
log.info(`No embeddings cache found at ${cachePath}`);
|
|
460
|
+
return null;
|
|
461
|
+
}
|
|
462
|
+
try {
|
|
463
|
+
const raw = await fs.readFile(cachePath, 'utf-8');
|
|
464
|
+
const cache = JSON.parse(raw as string) as EmbeddingsCacheFile;
|
|
465
|
+
if (cache.version !== CACHE_VERSION) {
|
|
466
|
+
log.warn(
|
|
467
|
+
`Embeddings cache version mismatch (got ${cache.version}, want ${CACHE_VERSION}). Invalidating.`
|
|
468
|
+
);
|
|
469
|
+
return null;
|
|
470
|
+
}
|
|
471
|
+
const expected = makeFingerprint(documents, modelName);
|
|
472
|
+
if (!fingerprintsMatch(cache.fingerprint, expected)) {
|
|
473
|
+
log.info(
|
|
474
|
+
`Embeddings cache fingerprint mismatch — will re-embed. ` +
|
|
475
|
+
`Cached: ${JSON.stringify(cache.fingerprint)}; expected: ${JSON.stringify(expected)}`
|
|
476
|
+
);
|
|
477
|
+
return null;
|
|
478
|
+
}
|
|
479
|
+
if (
|
|
480
|
+
!Array.isArray(cache.embeddings) ||
|
|
481
|
+
cache.embeddings.length !== documents.length
|
|
482
|
+
) {
|
|
483
|
+
log.warn(
|
|
484
|
+
`Embeddings cache length (${cache.embeddings?.length}) does not match documents length (${documents.length}). Invalidating.`
|
|
485
|
+
);
|
|
486
|
+
return null;
|
|
487
|
+
}
|
|
488
|
+
log.info(
|
|
489
|
+
`Embeddings cache hit: ${cache.embeddings.length} vectors loaded from ${cachePath}`
|
|
490
|
+
);
|
|
491
|
+
return cache.embeddings;
|
|
492
|
+
} catch (err) {
|
|
493
|
+
log.warn(
|
|
494
|
+
`Failed to read embeddings cache (${err instanceof Error ? err.message : String(err)}). Will re-embed.`
|
|
495
|
+
);
|
|
496
|
+
return null;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* Persist embedding vectors for the given documents under the given model name.
|
|
502
|
+
* Writes to a .tmp file then moves into place; the finally block sweeps the
|
|
503
|
+
* tmp file if anything between writeFile and mv throws. Uses fs.mv so the
|
|
504
|
+
* overwrite works across platforms (Windows rename-over-existing can be flaky
|
|
505
|
+
* in edge cases involving file locks).
|
|
506
|
+
*/
|
|
507
|
+
async function saveEmbeddingsCache(
|
|
508
|
+
documents: Document[],
|
|
509
|
+
vectors: number[][],
|
|
510
|
+
modelName: string
|
|
511
|
+
): Promise<void> {
|
|
512
|
+
if (vectors.length === 0) {
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
if (vectors.length !== documents.length) {
|
|
516
|
+
log.warn(
|
|
517
|
+
`Refusing to write embeddings cache: ${vectors.length} vectors vs ${documents.length} documents`
|
|
518
|
+
);
|
|
519
|
+
return;
|
|
520
|
+
}
|
|
521
|
+
const cachePath = getEmbeddingsCachePath(modelName);
|
|
522
|
+
await fs.mkdirp(path.dirname(cachePath));
|
|
523
|
+
const cache: EmbeddingsCacheFile = {
|
|
524
|
+
version: CACHE_VERSION,
|
|
525
|
+
fingerprint: makeFingerprint(documents, modelName),
|
|
526
|
+
embeddings: vectors,
|
|
527
|
+
};
|
|
528
|
+
const tmpPath = `${cachePath}.tmp`;
|
|
529
|
+
try {
|
|
530
|
+
await fs.writeFile(tmpPath, JSON.stringify(cache));
|
|
531
|
+
await fs.mv(tmpPath, cachePath, { clobber: true, mkdirp: true });
|
|
532
|
+
log.info(
|
|
533
|
+
`Saved embeddings cache (${vectors.length} vectors) to ${cachePath}`
|
|
534
|
+
);
|
|
535
|
+
} finally {
|
|
536
|
+
if (await fs.exists(tmpPath)) {
|
|
537
|
+
try {
|
|
538
|
+
await fs.unlink(tmpPath);
|
|
539
|
+
} catch (cleanupErr) {
|
|
540
|
+
log.warn(
|
|
541
|
+
`Failed to clean up tmp cache file ${tmpPath}: ${
|
|
542
|
+
cleanupErr instanceof Error
|
|
543
|
+
? cleanupErr.message
|
|
544
|
+
: String(cleanupErr)
|
|
545
|
+
}`
|
|
546
|
+
);
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
|
|
552
552
|
/**
|
|
553
553
|
* Save the documents to a file
|
|
554
554
|
* @param documents The documents to save
|