@amsterdamdatalabs/enact-docs-search 0.1.0 → 0.1.2
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/NOTICE +2 -2
- package/README.md +55 -5
- package/dist/cli.js +75 -21
- package/dist/cli.js.map +1 -1
- package/dist/dependency-errors.d.ts +3 -0
- package/dist/dependency-errors.d.ts.map +1 -0
- package/dist/dependency-errors.js +26 -0
- package/dist/dependency-errors.js.map +1 -0
- package/dist/doctor.d.ts +17 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +88 -0
- package/dist/doctor.js.map +1 -0
- package/dist/embeddings/embedding-service.d.ts +9 -0
- package/dist/embeddings/embedding-service.d.ts.map +1 -1
- package/dist/embeddings/embedding-service.js +34 -9
- package/dist/embeddings/embedding-service.js.map +1 -1
- package/dist/indexing/indexing-service.d.ts +2 -0
- package/dist/indexing/indexing-service.d.ts.map +1 -1
- package/dist/indexing/indexing-service.js +90 -32
- package/dist/indexing/indexing-service.js.map +1 -1
- package/dist/search/search-service.d.ts +1 -1
- package/dist/storage/persistence.d.ts +33 -5
- package/dist/storage/persistence.d.ts.map +1 -1
- package/dist/storage/persistence.js +88 -24
- package/dist/storage/persistence.js.map +1 -1
- package/dist/storage/vector-store.d.ts +28 -1
- package/dist/storage/vector-store.d.ts.map +1 -1
- package/dist/storage/vector-store.js +43 -9
- package/dist/storage/vector-store.js.map +1 -1
- package/package.json +10 -2
package/NOTICE
CHANGED
|
@@ -26,7 +26,7 @@ specific plumbing with no Node analogue worth porting):
|
|
|
26
26
|
|
|
27
27
|
src/embeddings/embedding-service.ts (upstream patches ONNX Runtime for
|
|
28
28
|
Obsidian's Electron renderer via blob
|
|
29
|
-
URLs; @
|
|
29
|
+
URLs; @huggingface/transformers needs none
|
|
30
30
|
of that under plain Node/Bun)
|
|
31
31
|
src/adapter/repo-walker.ts (replaces Obsidian's `Vault` with
|
|
32
32
|
node:fs/promises)
|
|
@@ -44,7 +44,7 @@ Runtime dependencies and their licences (all permissive, verified in
|
|
|
44
44
|
package.json / node_modules at time of writing):
|
|
45
45
|
|
|
46
46
|
minisearch MIT BM25 full-text index
|
|
47
|
-
@
|
|
47
|
+
@huggingface/transformers Apache-2.0 local embeddings (no API key/network
|
|
48
48
|
call after the model is first cached)
|
|
49
49
|
hnswlib-node Apache-2.0 HNSW vector index (native Node build,
|
|
50
50
|
not the wasm build obsidian-qmd uses)
|
package/README.md
CHANGED
|
@@ -9,9 +9,55 @@ Hybrid BM25 and vector search over a repository's `docs/`, `.plans/`, and
|
|
|
9
9
|
npm install -g @amsterdamdatalabs/enact-docs-search
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
+
Verify the installed version:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
enact-docs-search --version
|
|
16
|
+
```
|
|
17
|
+
|
|
12
18
|
Node.js 22 or newer is required. The first semantic query downloads the local
|
|
13
|
-
`Xenova/all-MiniLM-L6-v2` embedding model
|
|
14
|
-
cache
|
|
19
|
+
`Xenova/all-MiniLM-L6-v2` embedding model into the target repository's
|
|
20
|
+
`.cache/docs/models/` directory. The search index is stored alongside it under
|
|
21
|
+
`.cache/docs/index/`.
|
|
22
|
+
|
|
23
|
+
Semantic search uses `hnswlib-node`, a native Node addon compiled with
|
|
24
|
+
`node-gyp` during installation. The machine installing the CLI therefore needs
|
|
25
|
+
Python 3 and a C/C++ build toolchain: Xcode Command Line Tools on macOS,
|
|
26
|
+
`make`/GCC on Linux, or Python plus Visual Studio Build Tools with the Desktop
|
|
27
|
+
development with C++ workload on Windows. For a global install with npm's
|
|
28
|
+
lifecycle-script policy enabled, use:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm install -g @amsterdamdatalabs/enact-docs-search \
|
|
32
|
+
--allow-scripts=hnswlib-node,onnxruntime-node,sharp,protobufjs \
|
|
33
|
+
--foreground-scripts
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Check the native installation without downloading the embedding model:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
enact-docs-search doctor
|
|
40
|
+
enact-docs-search doctor --json
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
For a project-scoped install, put the lifecycle approvals in the consuming
|
|
44
|
+
project's root `package.json` (npm does not accept `--allow-scripts` on a
|
|
45
|
+
project-scoped install), then rebuild the native packages:
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"allowScripts": {
|
|
50
|
+
"hnswlib-node": true,
|
|
51
|
+
"onnxruntime-node": true,
|
|
52
|
+
"sharp": true,
|
|
53
|
+
"protobufjs": true
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npm rebuild hnswlib-node onnxruntime-node sharp protobufjs --foreground-scripts
|
|
60
|
+
```
|
|
15
61
|
|
|
16
62
|
## Usage
|
|
17
63
|
|
|
@@ -21,11 +67,15 @@ Run inside a target repository:
|
|
|
21
67
|
enact-docs-search query "how crate boundaries are defined?"
|
|
22
68
|
enact-docs-search index
|
|
23
69
|
enact-docs-search index --force
|
|
70
|
+
enact-docs-search prepare
|
|
24
71
|
```
|
|
25
72
|
|
|
26
|
-
Queries automatically
|
|
27
|
-
|
|
28
|
-
|
|
73
|
+
Queries automatically provision a missing model and refresh missing or stale
|
|
74
|
+
indexes incrementally. If keyword-only indexing leaves semantic vectors stale,
|
|
75
|
+
the next hybrid or semantic query repairs them automatically before searching.
|
|
76
|
+
`prepare` performs the model bootstrap and a complete semantic index build
|
|
77
|
+
explicitly. Use `enact-docs-search --help` for advanced scope, mode, JSON, and
|
|
78
|
+
exclusion controls.
|
|
29
79
|
|
|
30
80
|
The package is also usable through `npx` or `bunx`:
|
|
31
81
|
|
package/dist/cli.js
CHANGED
|
@@ -14,17 +14,22 @@ import { EmbeddingService, DependencyError as EmbeddingDependencyError } from ".
|
|
|
14
14
|
import { SearchService } from "./search/search-service.js";
|
|
15
15
|
import { runIndex } from "./indexing/indexing-service.js";
|
|
16
16
|
import { listMarkdownFiles } from "./adapter/repo-walker.js";
|
|
17
|
-
import { repoCacheDir, paths, readManifest, readDocumentStoreExport, readVectorSidecar, vectorIndexExists, checkFreshness, } from "./storage/persistence.js";
|
|
17
|
+
import { repoCacheDir, repoCacheRoot, repoModelCacheDir, ensureRepoCache, CachePermissionError, paths, readManifest, readDocumentStoreExport, readVectorSidecar, vectorIndexExists, checkFreshness, EMBEDDING_MODEL_ID, } from "./storage/persistence.js";
|
|
18
18
|
import { scopesToRoots } from "./types.js";
|
|
19
19
|
import { existsSync } from "node:fs";
|
|
20
|
+
import { createRequire } from "node:module";
|
|
20
21
|
import { dirname, join } from "node:path";
|
|
22
|
+
import { renderDoctor, runDoctor } from "./doctor.js";
|
|
21
23
|
const EMBEDDING_DIMENSIONS = 384;
|
|
24
|
+
const { version: PACKAGE_VERSION } = createRequire(import.meta.url)("../package.json");
|
|
22
25
|
function usage() {
|
|
23
26
|
return `enact-docs-search — hybrid semantic + keyword search over docs/.plans/.specs
|
|
24
27
|
|
|
25
28
|
Usage:
|
|
26
29
|
enact-docs-search index --repo <path> [--scope docs|plans|specs|all] [--force] [--keyword-only] [--exclude <glob>]
|
|
30
|
+
enact-docs-search prepare --repo <path> [--scope docs|plans|specs|all] [--force] [--exclude <glob>]
|
|
27
31
|
enact-docs-search query "<text>" --repo <path> [--scope docs|plans|specs|all] [--mode hybrid|keyword|semantic] [--limit N] [--exclude <glob>]
|
|
32
|
+
enact-docs-search doctor [--json]
|
|
28
33
|
|
|
29
34
|
Options:
|
|
30
35
|
--repo <path> Target repository root. If omitted, auto-detected by
|
|
@@ -33,10 +38,11 @@ Options:
|
|
|
33
38
|
--scope <scope> docs | plans | specs | all (default: all)
|
|
34
39
|
--mode <mode> hybrid | keyword | semantic (default: hybrid, query only)
|
|
35
40
|
--limit <n> Max results to return (default: 10, query only)
|
|
36
|
-
--force Full rebuild, ignoring the incremental manifest (index only)
|
|
41
|
+
--force Full rebuild, ignoring the incremental manifest (index/prepare only)
|
|
37
42
|
--keyword-only Skip embedding generation entirely (index only, much faster)
|
|
38
43
|
--exclude <glob> Additional glob to exclude from scanning; repeatable
|
|
39
|
-
--json Emit machine-readable JSON instead of text (query
|
|
44
|
+
--json Emit machine-readable JSON instead of text (query/doctor)
|
|
45
|
+
-V, --version Print version and exit
|
|
40
46
|
|
|
41
47
|
Query automatically incrementally refreshes a missing or stale cache. Use
|
|
42
48
|
index --force only for an explicit full rebuild.
|
|
@@ -134,7 +140,7 @@ function validateMode(mode) {
|
|
|
134
140
|
fail(`unknown mode '${mode}' (use keyword, semantic, or hybrid)`);
|
|
135
141
|
}
|
|
136
142
|
}
|
|
137
|
-
|
|
143
|
+
function resolveRepo(args) {
|
|
138
144
|
if (!args.repo) {
|
|
139
145
|
const detected = detectRepoRoot(process.cwd());
|
|
140
146
|
if (!detected) {
|
|
@@ -144,6 +150,10 @@ async function cmdIndex(args) {
|
|
|
144
150
|
}
|
|
145
151
|
args.repo = detected;
|
|
146
152
|
}
|
|
153
|
+
return args.repo;
|
|
154
|
+
}
|
|
155
|
+
async function cmdIndex(args) {
|
|
156
|
+
resolveRepo(args);
|
|
147
157
|
validateScope(args.scope);
|
|
148
158
|
info(`root: ${args.repo} (scope: ${args.scope})`);
|
|
149
159
|
const t0 = Date.now();
|
|
@@ -154,6 +164,7 @@ async function cmdIndex(args) {
|
|
|
154
164
|
force: args.force,
|
|
155
165
|
skipEmbeddings: args.keywordOnly,
|
|
156
166
|
exclude: args.exclude,
|
|
167
|
+
allowRemoteModels: true,
|
|
157
168
|
onProgress: (p) => {
|
|
158
169
|
if (p.phase !== lastPhase) {
|
|
159
170
|
process.stderr.write(`\n[${p.phase}] `);
|
|
@@ -169,23 +180,46 @@ async function cmdIndex(args) {
|
|
|
169
180
|
`${result.filesScanned} files scanned, ${result.filesChanged} changed, ${result.filesRemoved} removed, ` +
|
|
170
181
|
`${result.chunksIndexed} chunks, ${result.embeddingsGenerated} embeddings ` +
|
|
171
182
|
`(${(Date.now() - t0)}ms)`);
|
|
172
|
-
console.log(`enact-docs-search: cache at ${
|
|
183
|
+
console.log(`enact-docs-search: cache at ${repoCacheRoot(args.repo)}`);
|
|
184
|
+
}
|
|
185
|
+
async function cmdPrepare(args) {
|
|
186
|
+
resolveRepo(args);
|
|
187
|
+
validateScope(args.scope);
|
|
188
|
+
await ensureRepoCache(args.repo);
|
|
189
|
+
const embeddingService = new EmbeddingService({
|
|
190
|
+
modelCacheDir: repoModelCacheDir(args.repo),
|
|
191
|
+
allowRemoteModels: true,
|
|
192
|
+
});
|
|
193
|
+
await embeddingService.initialize();
|
|
194
|
+
await embeddingService.embed("semantic search bootstrap");
|
|
195
|
+
await runIndex({
|
|
196
|
+
repoPath: args.repo,
|
|
197
|
+
scope: args.scope,
|
|
198
|
+
force: args.force,
|
|
199
|
+
exclude: args.exclude,
|
|
200
|
+
allowRemoteModels: true,
|
|
201
|
+
});
|
|
202
|
+
console.log(`enact-docs-search: prepared cache at ${repoCacheRoot(args.repo)}`);
|
|
203
|
+
}
|
|
204
|
+
async function cmdDoctor(args) {
|
|
205
|
+
const report = await runDoctor();
|
|
206
|
+
if (args.json) {
|
|
207
|
+
console.log(JSON.stringify(report, null, 2));
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
console.log(renderDoctor(report));
|
|
211
|
+
}
|
|
212
|
+
if (!report.healthy)
|
|
213
|
+
process.exitCode = 2;
|
|
173
214
|
}
|
|
174
215
|
async function cmdQuery(args) {
|
|
175
216
|
const query = args.positional[0];
|
|
176
217
|
if (!query)
|
|
177
218
|
fail("a query string is required");
|
|
178
|
-
|
|
179
|
-
const detected = detectRepoRoot(process.cwd());
|
|
180
|
-
if (!detected) {
|
|
181
|
-
fail("--repo <path> was not given, and no docs/, .plans/, or .specs/ found walking up from " +
|
|
182
|
-
process.cwd() +
|
|
183
|
-
" — pass --repo explicitly");
|
|
184
|
-
}
|
|
185
|
-
args.repo = detected;
|
|
186
|
-
}
|
|
219
|
+
resolveRepo(args);
|
|
187
220
|
validateScope(args.scope);
|
|
188
221
|
validateMode(args.mode);
|
|
222
|
+
await ensureRepoCache(args.repo);
|
|
189
223
|
// In --json mode, stdout must be pure JSON for downstream parsers — route
|
|
190
224
|
// this status line to stderr instead of suppressing it outright.
|
|
191
225
|
if (args.json) {
|
|
@@ -199,10 +233,12 @@ async function cmdQuery(args) {
|
|
|
199
233
|
// Freshness check (I-08: refresh stale or missing results before serving them).
|
|
200
234
|
const roots = scopesToRoots(args.scope);
|
|
201
235
|
const currentFiles = await listMarkdownFiles(args.repo, roots, { exclude: args.exclude });
|
|
202
|
-
const freshness = checkFreshness(manifest, args.scope, currentFiles);
|
|
236
|
+
const freshness = checkFreshness(manifest, args.scope, currentFiles, args.mode !== "keyword");
|
|
203
237
|
const hasVectorFile = args.mode !== "keyword" && await vectorIndexExists(cacheDir);
|
|
204
238
|
const vectorSidecar = args.mode !== "keyword" ? await readVectorSidecar(cacheDir) : null;
|
|
205
|
-
const needsVectorIndex = args.mode !== "keyword" &&
|
|
239
|
+
const needsVectorIndex = args.mode !== "keyword" &&
|
|
240
|
+
(!hasVectorFile || !vectorSidecar || freshness.vectorStaleCount > 0 ||
|
|
241
|
+
manifest?.embeddingModel !== EMBEDDING_MODEL_ID);
|
|
206
242
|
const rebuildVectorIndex = args.mode !== "keyword" && hasVectorFile && !vectorSidecar;
|
|
207
243
|
const needsRefresh = freshness.neverIndexed || freshness.staleCount > 0 || needsVectorIndex;
|
|
208
244
|
if (needsRefresh) {
|
|
@@ -210,7 +246,9 @@ async function cmdQuery(args) {
|
|
|
210
246
|
? "no index"
|
|
211
247
|
: freshness.staleCount > 0
|
|
212
248
|
? `${freshness.staleCount} changed file(s)`
|
|
213
|
-
:
|
|
249
|
+
: freshness.vectorStaleCount > 0
|
|
250
|
+
? `${freshness.vectorStaleCount} stale vector file(s)`
|
|
251
|
+
: "no usable vector index";
|
|
214
252
|
const message = `enact-docs-search: refreshing ${args.scope} index (${reason})`;
|
|
215
253
|
if (args.json)
|
|
216
254
|
console.error(message);
|
|
@@ -223,10 +261,11 @@ async function cmdQuery(args) {
|
|
|
223
261
|
force: rebuildVectorIndex,
|
|
224
262
|
skipEmbeddings: args.mode === "keyword",
|
|
225
263
|
exclude: args.exclude,
|
|
264
|
+
allowRemoteModels: true,
|
|
226
265
|
});
|
|
227
266
|
}
|
|
228
267
|
catch (error) {
|
|
229
|
-
if (error instanceof VectorDependencyError || error instanceof EmbeddingDependencyError) {
|
|
268
|
+
if (error instanceof VectorDependencyError || error instanceof EmbeddingDependencyError || error instanceof CachePermissionError) {
|
|
230
269
|
fail(error.message);
|
|
231
270
|
}
|
|
232
271
|
throw error;
|
|
@@ -247,11 +286,14 @@ async function cmdQuery(args) {
|
|
|
247
286
|
fail("vector index sidecar is missing or corrupt; re-run index --force");
|
|
248
287
|
try {
|
|
249
288
|
await vectorStore.loadFromDisk(paths(cacheDir).vectorIndex, sidecar);
|
|
250
|
-
embeddingService = new EmbeddingService(
|
|
289
|
+
embeddingService = new EmbeddingService({
|
|
290
|
+
modelCacheDir: repoModelCacheDir(args.repo),
|
|
291
|
+
allowRemoteModels: true,
|
|
292
|
+
});
|
|
251
293
|
await embeddingService.initialize();
|
|
252
294
|
}
|
|
253
295
|
catch (error) {
|
|
254
|
-
if (error instanceof VectorDependencyError || error instanceof EmbeddingDependencyError) {
|
|
296
|
+
if (error instanceof VectorDependencyError || error instanceof EmbeddingDependencyError || error instanceof CachePermissionError) {
|
|
255
297
|
fail(error.message);
|
|
256
298
|
}
|
|
257
299
|
throw error;
|
|
@@ -287,6 +329,10 @@ function printResults(query, results) {
|
|
|
287
329
|
}
|
|
288
330
|
async function main() {
|
|
289
331
|
const [command, ...rest] = process.argv.slice(2);
|
|
332
|
+
if (command === "-V" || command === "--version") {
|
|
333
|
+
console.log(PACKAGE_VERSION);
|
|
334
|
+
process.exit(0);
|
|
335
|
+
}
|
|
290
336
|
if (!command || command === "-h" || command === "--help") {
|
|
291
337
|
console.log(usage());
|
|
292
338
|
process.exit(command ? 0 : 2);
|
|
@@ -296,14 +342,22 @@ async function main() {
|
|
|
296
342
|
case "index":
|
|
297
343
|
await cmdIndex(args);
|
|
298
344
|
break;
|
|
345
|
+
case "prepare":
|
|
346
|
+
await cmdPrepare(args);
|
|
347
|
+
break;
|
|
299
348
|
case "query":
|
|
300
349
|
await cmdQuery(args);
|
|
301
350
|
break;
|
|
351
|
+
case "doctor":
|
|
352
|
+
await cmdDoctor(args);
|
|
353
|
+
break;
|
|
302
354
|
default:
|
|
303
|
-
fail(`unknown command '${command}' (use 'index'
|
|
355
|
+
fail(`unknown command '${command}' (use 'index', 'prepare', 'query', or 'doctor')`);
|
|
304
356
|
}
|
|
305
357
|
}
|
|
306
358
|
main().catch((error) => {
|
|
359
|
+
if (error instanceof CachePermissionError)
|
|
360
|
+
fail(error.message);
|
|
307
361
|
console.error(`enact-docs-search: FAIL — unexpected error: ${error.stack ?? error}`);
|
|
308
362
|
process.exit(2);
|
|
309
363
|
});
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-errors.d.ts","sourceRoot":"","sources":["../src/dependency-errors.ts"],"names":[],"mappings":"AAIA,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAoBvF;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAOrF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
function messageOf(error) {
|
|
2
|
+
return error instanceof Error ? error.message : String(error);
|
|
3
|
+
}
|
|
4
|
+
export function nativeDependencyRemediation(packageName, error) {
|
|
5
|
+
const detail = messageOf(error);
|
|
6
|
+
const lower = detail.toLowerCase();
|
|
7
|
+
if (lower.includes("node-gyp") || lower.includes("gyp err") || lower.includes("binding.gyp")) {
|
|
8
|
+
return `The native build failed; install Python 3 and the platform C/C++ toolchain, then run \`npm rebuild ${packageName} --foreground-scripts\`.`;
|
|
9
|
+
}
|
|
10
|
+
if (lower.includes("build/release") ||
|
|
11
|
+
lower.includes("dlopen") ||
|
|
12
|
+
lower.includes("invalid elf") ||
|
|
13
|
+
lower.includes("mach-o") ||
|
|
14
|
+
lower.includes("node_module_version") ||
|
|
15
|
+
lower.includes("symbol not found")) {
|
|
16
|
+
return `The native binding is missing or incompatible with this Node.js/platform combination; run \`npm rebuild ${packageName} --foreground-scripts\`.`;
|
|
17
|
+
}
|
|
18
|
+
return `The package may be missing or its lifecycle script may have been blocked; reinstall with \`npm install ${packageName} --foreground-scripts --allow-scripts=${packageName}\`.`;
|
|
19
|
+
}
|
|
20
|
+
export function semanticDependencyMessage(packageName, error) {
|
|
21
|
+
return (`Semantic search could not load ${packageName}.\n` +
|
|
22
|
+
`${nativeDependencyRemediation(packageName, error)}\n` +
|
|
23
|
+
"Run `enact-docs-search doctor` to check the native/runtime dependencies.\n" +
|
|
24
|
+
`Original error: ${messageOf(error)}`);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=dependency-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-errors.js","sourceRoot":"","sources":["../src/dependency-errors.ts"],"names":[],"mappings":"AAAA,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,WAAmB,EAAE,KAAc;IAC7E,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAEnC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7F,OAAO,sGAAsG,WAAW,0BAA0B,CAAC;IACrJ,CAAC;IAED,IACE,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC/B,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxB,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC7B,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxB,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACrC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAClC,CAAC;QACD,OAAO,2GAA2G,WAAW,0BAA0B,CAAC;IAC1J,CAAC;IAED,OAAO,0GAA0G,WAAW,yCAAyC,WAAW,KAAK,CAAC;AACxL,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,WAAmB,EAAE,KAAc;IAC3E,OAAO,CACL,kCAAkC,WAAW,KAAK;QAClD,GAAG,2BAA2B,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI;QACtD,4EAA4E;QAC5E,mBAAmB,SAAS,CAAC,KAAK,CAAC,EAAE,CACtC,CAAC;AACJ,CAAC"}
|
package/dist/doctor.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface DoctorCheck {
|
|
2
|
+
name: string;
|
|
3
|
+
ok: boolean;
|
|
4
|
+
detail: string;
|
|
5
|
+
}
|
|
6
|
+
export interface DoctorReport {
|
|
7
|
+
healthy: boolean;
|
|
8
|
+
node: string;
|
|
9
|
+
platform: NodeJS.Platform;
|
|
10
|
+
arch: string;
|
|
11
|
+
checks: DoctorCheck[];
|
|
12
|
+
}
|
|
13
|
+
export declare function buildToolingGuidance(platform: NodeJS.Platform): string;
|
|
14
|
+
export declare function formatDoctorFailure(name: string, error: unknown, platform?: NodeJS.Platform): string;
|
|
15
|
+
export declare function runDoctor(): Promise<DoctorReport>;
|
|
16
|
+
export declare function renderDoctor(report: DoctorReport): string;
|
|
17
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAiBD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAWtE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,kBAAmB,GAAG,MAAM,CAOrG;AA8CD,wBAAsB,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC,CASvD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAOzD"}
|
package/dist/doctor.js
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { nativeDependencyRemediation } from "./dependency-errors.js";
|
|
2
|
+
const ONNX_RUNTIME_MODULE = "onnxruntime-node";
|
|
3
|
+
function errorMessage(error) {
|
|
4
|
+
return error instanceof Error ? error.message : String(error);
|
|
5
|
+
}
|
|
6
|
+
export function buildToolingGuidance(platform) {
|
|
7
|
+
switch (platform) {
|
|
8
|
+
case "darwin":
|
|
9
|
+
return "Install the macOS Command Line Tools with `xcode-select --install`, then reinstall the package.";
|
|
10
|
+
case "win32":
|
|
11
|
+
return "Install Python and Visual Studio Build Tools with the Desktop development with C++ workload, then reinstall the package.";
|
|
12
|
+
case "linux":
|
|
13
|
+
return "Install Python 3, make, and a C/C++ compiler (for example `sudo apt-get install python3 make g++`), then reinstall the package.";
|
|
14
|
+
default:
|
|
15
|
+
return "Install Python 3 and a working C/C++ compiler toolchain for this platform, then reinstall the package.";
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export function formatDoctorFailure(name, error, platform = process.platform) {
|
|
19
|
+
const detail = errorMessage(error);
|
|
20
|
+
const native = /hnsw|onnx|binding|\.node|node-gyp|gyp err|dlopen|native|module/i.test(detail);
|
|
21
|
+
const nativeHint = native
|
|
22
|
+
? ` ${nativeDependencyRemediation(name, error)}${/node-gyp|gyp err|binding\.gyp/i.test(detail) ? ` ${buildToolingGuidance(platform)}` : ""}`
|
|
23
|
+
: " Check that the package dependencies are installed and compatible with this Node.js version.";
|
|
24
|
+
return `${name} failed: ${detail}.${nativeHint}`;
|
|
25
|
+
}
|
|
26
|
+
async function checkTransformers() {
|
|
27
|
+
try {
|
|
28
|
+
const transformers = await import("@huggingface/transformers");
|
|
29
|
+
if (typeof transformers.pipeline !== "function") {
|
|
30
|
+
throw new Error("pipeline export is missing");
|
|
31
|
+
}
|
|
32
|
+
return { name: "Transformers.js", ok: true, detail: "package loaded" };
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
return { name: "Transformers.js", ok: false, detail: formatDoctorFailure("Transformers.js", error) };
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async function checkOnnxRuntime() {
|
|
39
|
+
try {
|
|
40
|
+
const runtime = (await import(ONNX_RUNTIME_MODULE));
|
|
41
|
+
if (typeof runtime.InferenceSession !== "object" && typeof runtime.InferenceSession !== "function") {
|
|
42
|
+
throw new Error("InferenceSession export is missing");
|
|
43
|
+
}
|
|
44
|
+
return { name: "ONNX Runtime", ok: true, detail: "native runtime loaded" };
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
return { name: "ONNX Runtime", ok: false, detail: formatDoctorFailure("ONNX Runtime", error) };
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async function checkHnsw() {
|
|
51
|
+
try {
|
|
52
|
+
const module = (await import("hnswlib-node"));
|
|
53
|
+
const HierarchicalNSW = module.HierarchicalNSW ?? module.default?.HierarchicalNSW;
|
|
54
|
+
if (!HierarchicalNSW)
|
|
55
|
+
throw new Error("HierarchicalNSW export is missing");
|
|
56
|
+
const index = new HierarchicalNSW("cosine", 3);
|
|
57
|
+
index.initIndex(4);
|
|
58
|
+
index.addPoint([1, 0, 0], 0);
|
|
59
|
+
index.addPoint([0, 1, 0], 1);
|
|
60
|
+
const result = index.searchKnn([1, 0, 0], 1);
|
|
61
|
+
if (result.neighbors.length !== 1 || result.neighbors[0] !== 0) {
|
|
62
|
+
throw new Error("native search returned an unexpected result");
|
|
63
|
+
}
|
|
64
|
+
return { name: "hnswlib-node", ok: true, detail: "native index created and searched" };
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
return { name: "hnswlib-node", ok: false, detail: formatDoctorFailure("hnswlib-node", error) };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export async function runDoctor() {
|
|
71
|
+
const checks = await Promise.all([checkTransformers(), checkOnnxRuntime(), checkHnsw()]);
|
|
72
|
+
return {
|
|
73
|
+
healthy: checks.every((check) => check.ok),
|
|
74
|
+
node: process.version,
|
|
75
|
+
platform: process.platform,
|
|
76
|
+
arch: process.arch,
|
|
77
|
+
checks,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export function renderDoctor(report) {
|
|
81
|
+
const lines = [
|
|
82
|
+
`Node.js ${report.node} (${report.platform}/${report.arch})`,
|
|
83
|
+
`Status: ${report.healthy ? "healthy" : "failed"}`,
|
|
84
|
+
...report.checks.map((check) => `${check.ok ? "PASS" : "FAIL"} ${check.name}: ${check.detail}`),
|
|
85
|
+
];
|
|
86
|
+
return lines.join("\n");
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
+
export declare const MODEL_ID = "Xenova/all-MiniLM-L6-v2";
|
|
1
2
|
export declare const EMBEDDING_DIMENSIONS = 384;
|
|
2
3
|
export declare class DependencyError extends Error {
|
|
3
4
|
}
|
|
5
|
+
export interface EmbeddingServiceOptions {
|
|
6
|
+
/** Transformers.js filesystem cache; always supplied by the repo cache resolver. */
|
|
7
|
+
modelCacheDir: string;
|
|
8
|
+
/** Permit Transformers.js to download missing model files. */
|
|
9
|
+
allowRemoteModels?: boolean;
|
|
10
|
+
}
|
|
4
11
|
export declare class EmbeddingService {
|
|
12
|
+
private readonly options;
|
|
5
13
|
private embeddingPipeline;
|
|
6
14
|
private ready;
|
|
15
|
+
constructor(options: EmbeddingServiceOptions);
|
|
7
16
|
initialize(): Promise<void>;
|
|
8
17
|
isReady(): boolean;
|
|
9
18
|
embed(text: string): Promise<number[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-service.d.ts","sourceRoot":"","sources":["../../src/embeddings/embedding-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"embedding-service.d.ts","sourceRoot":"","sources":["../../src/embeddings/embedding-service.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,QAAQ,4BAA4B,CAAC;AAClD,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAE7C,MAAM,WAAW,uBAAuB;IACtC,oFAAoF;IACpF,aAAa,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,qBAAa,gBAAgB;IAIf,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,iBAAiB,CAA0C;IACnE,OAAO,CAAC,KAAK,CAAS;gBAEO,OAAO,EAAE,uBAAuB;IAEvD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA+CjC,OAAO,IAAI,OAAO;IAIZ,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAWtC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAqBvD"}
|
|
@@ -1,32 +1,57 @@
|
|
|
1
|
-
|
|
1
|
+
import { rm } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { semanticDependencyMessage } from "../dependency-errors.js";
|
|
4
|
+
export const MODEL_ID = "Xenova/all-MiniLM-L6-v2";
|
|
2
5
|
export const EMBEDDING_DIMENSIONS = 384;
|
|
3
6
|
export class DependencyError extends Error {
|
|
4
7
|
}
|
|
5
8
|
export class EmbeddingService {
|
|
9
|
+
options;
|
|
6
10
|
embeddingPipeline = null;
|
|
7
11
|
ready = false;
|
|
12
|
+
constructor(options) {
|
|
13
|
+
this.options = options;
|
|
14
|
+
}
|
|
8
15
|
async initialize() {
|
|
9
16
|
let transformers;
|
|
10
17
|
try {
|
|
11
|
-
transformers = await import("@
|
|
18
|
+
transformers = await import("@huggingface/transformers");
|
|
12
19
|
}
|
|
13
20
|
catch (error) {
|
|
14
|
-
throw new DependencyError("
|
|
15
|
-
"Run `npm install` in the enact-docs-search directory, then retry.\n" +
|
|
16
|
-
`Original error: ${error.message}`);
|
|
21
|
+
throw new DependencyError(semanticDependencyMessage("@huggingface/transformers", error));
|
|
17
22
|
}
|
|
18
23
|
const { pipeline, env } = transformers;
|
|
19
|
-
env.allowLocalModels =
|
|
24
|
+
env.allowLocalModels = true;
|
|
25
|
+
env.allowRemoteModels = this.options.allowRemoteModels ?? true;
|
|
26
|
+
env.cacheDir = this.options.modelCacheDir;
|
|
20
27
|
try {
|
|
21
28
|
this.embeddingPipeline = (await pipeline("feature-extraction", MODEL_ID, {
|
|
22
|
-
|
|
29
|
+
dtype: "fp32",
|
|
23
30
|
}));
|
|
24
31
|
this.ready = true;
|
|
25
32
|
}
|
|
26
33
|
catch (error) {
|
|
34
|
+
// A partially downloaded model is recoverable. Remove only this model's
|
|
35
|
+
// repo-local cache and retry once; all other cache contents remain intact.
|
|
36
|
+
if (env.allowRemoteModels) {
|
|
37
|
+
try {
|
|
38
|
+
await rm(join(this.options.modelCacheDir, MODEL_ID), { recursive: true, force: true });
|
|
39
|
+
this.embeddingPipeline = (await pipeline("feature-extraction", MODEL_ID, {
|
|
40
|
+
dtype: "fp32",
|
|
41
|
+
}));
|
|
42
|
+
this.ready = true;
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
catch (retryError) {
|
|
46
|
+
throw new DependencyError("Failed to load the local embedding model (Xenova/all-MiniLM-L6-v2).\n" +
|
|
47
|
+
"The model is downloaded automatically into the repository-local cache; " +
|
|
48
|
+
"check network access and repository write permissions.\n" +
|
|
49
|
+
`Original error: ${retryError.message}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
27
52
|
throw new DependencyError("Failed to load the local embedding model (Xenova/all-MiniLM-L6-v2).\n" +
|
|
28
|
-
"
|
|
29
|
-
"
|
|
53
|
+
"The repository-local model cache is incomplete or unreadable; retry after " +
|
|
54
|
+
"running the search command again.\n" +
|
|
30
55
|
`Original error: ${error.message}`);
|
|
31
56
|
}
|
|
32
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-service.js","sourceRoot":"","sources":["../../src/embeddings/embedding-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"embedding-service.js","sourceRoot":"","sources":["../../src/embeddings/embedding-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,8 @@ export interface IndexOptions {
|
|
|
22
22
|
skipEmbeddings?: boolean;
|
|
23
23
|
/** Ignore the manifest and rebuild every file in scope from scratch. */
|
|
24
24
|
force?: boolean;
|
|
25
|
+
/** Permit automatic model download when semantic indexing is required. */
|
|
26
|
+
allowRemoteModels?: boolean;
|
|
25
27
|
exclude?: string[];
|
|
26
28
|
onProgress?: ProgressCallback;
|
|
27
29
|
}
|