mcp-local-rag 0.13.2 → 0.14.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.
Files changed (109) hide show
  1. package/README.md +55 -5
  2. package/dist/cli/common.d.ts +1 -1
  3. package/dist/cli/common.d.ts.map +1 -1
  4. package/dist/cli/common.js +2 -0
  5. package/dist/cli/common.js.map +1 -1
  6. package/dist/cli/ingest.d.ts +48 -0
  7. package/dist/cli/ingest.d.ts.map +1 -1
  8. package/dist/cli/ingest.js +143 -38
  9. package/dist/cli/ingest.js.map +1 -1
  10. package/dist/cli/list.d.ts.map +1 -1
  11. package/dist/cli/list.js +6 -3
  12. package/dist/cli/list.js.map +1 -1
  13. package/dist/cli/options.d.ts +5 -0
  14. package/dist/cli/options.d.ts.map +1 -1
  15. package/dist/cli/options.js +9 -0
  16. package/dist/cli/options.js.map +1 -1
  17. package/dist/cli/query.d.ts.map +1 -1
  18. package/dist/cli/query.js +4 -0
  19. package/dist/cli/query.js.map +1 -1
  20. package/dist/cli/sync.d.ts +3 -0
  21. package/dist/cli/sync.d.ts.map +1 -0
  22. package/dist/cli/sync.js +81 -0
  23. package/dist/cli/sync.js.map +1 -0
  24. package/dist/cli-main.d.ts +7 -3
  25. package/dist/cli-main.d.ts.map +1 -1
  26. package/dist/cli-main.js +22 -16
  27. package/dist/cli-main.js.map +1 -1
  28. package/dist/embedder/index.d.ts +6 -0
  29. package/dist/embedder/index.d.ts.map +1 -1
  30. package/dist/embedder/index.js +40 -19
  31. package/dist/embedder/index.js.map +1 -1
  32. package/dist/index.js +27 -14
  33. package/dist/index.js.map +1 -1
  34. package/dist/ingest/compute.d.ts +40 -0
  35. package/dist/ingest/compute.d.ts.map +1 -0
  36. package/dist/ingest/compute.js +47 -0
  37. package/dist/ingest/compute.js.map +1 -0
  38. package/dist/ingest/visual.d.ts +77 -0
  39. package/dist/ingest/visual.d.ts.map +1 -0
  40. package/dist/ingest/visual.js +104 -0
  41. package/dist/ingest/visual.js.map +1 -0
  42. package/dist/parser/index.d.ts +49 -0
  43. package/dist/parser/index.d.ts.map +1 -1
  44. package/dist/parser/index.js +173 -54
  45. package/dist/parser/index.js.map +1 -1
  46. package/dist/pdf-visual/captioner.d.ts +21 -0
  47. package/dist/pdf-visual/captioner.d.ts.map +1 -0
  48. package/dist/pdf-visual/captioner.js +71 -0
  49. package/dist/pdf-visual/captioner.js.map +1 -0
  50. package/dist/pdf-visual/captioners/fast.d.ts +7 -0
  51. package/dist/pdf-visual/captioners/fast.d.ts.map +1 -0
  52. package/dist/pdf-visual/captioners/fast.js +129 -0
  53. package/dist/pdf-visual/captioners/fast.js.map +1 -0
  54. package/dist/pdf-visual/captioners/quality.d.ts +7 -0
  55. package/dist/pdf-visual/captioners/quality.d.ts.map +1 -0
  56. package/dist/pdf-visual/captioners/quality.js +150 -0
  57. package/dist/pdf-visual/captioners/quality.js.map +1 -0
  58. package/dist/pdf-visual/captioners/shared.d.ts +11 -0
  59. package/dist/pdf-visual/captioners/shared.d.ts.map +1 -0
  60. package/dist/pdf-visual/captioners/shared.js +40 -0
  61. package/dist/pdf-visual/captioners/shared.js.map +1 -0
  62. package/dist/pdf-visual/detector.d.ts +36 -0
  63. package/dist/pdf-visual/detector.d.ts.map +1 -0
  64. package/dist/pdf-visual/detector.js +233 -0
  65. package/dist/pdf-visual/detector.js.map +1 -0
  66. package/dist/pdf-visual/index.d.ts +59 -0
  67. package/dist/pdf-visual/index.d.ts.map +1 -0
  68. package/dist/pdf-visual/index.js +96 -0
  69. package/dist/pdf-visual/index.js.map +1 -0
  70. package/dist/pdf-visual/renderer.d.ts +17 -0
  71. package/dist/pdf-visual/renderer.d.ts.map +1 -0
  72. package/dist/pdf-visual/renderer.js +82 -0
  73. package/dist/pdf-visual/renderer.js.map +1 -0
  74. package/dist/pdf-visual/types.d.ts +44 -0
  75. package/dist/pdf-visual/types.d.ts.map +1 -0
  76. package/dist/pdf-visual/types.js +28 -0
  77. package/dist/pdf-visual/types.js.map +1 -0
  78. package/dist/server/index.d.ts +6 -0
  79. package/dist/server/index.d.ts.map +1 -1
  80. package/dist/server/index.js +69 -10
  81. package/dist/server/index.js.map +1 -1
  82. package/dist/server/tool-definitions.d.ts.map +1 -1
  83. package/dist/server/tool-definitions.js +10 -0
  84. package/dist/server/tool-definitions.js.map +1 -1
  85. package/dist/server/types.d.ts +18 -0
  86. package/dist/server/types.d.ts.map +1 -1
  87. package/dist/server-main.d.ts +2 -0
  88. package/dist/server-main.d.ts.map +1 -1
  89. package/dist/server-main.js +8 -1
  90. package/dist/server-main.js.map +1 -1
  91. package/dist/utils/raw-data-utils.d.ts.map +1 -1
  92. package/dist/utils/raw-data-utils.js +5 -2
  93. package/dist/utils/raw-data-utils.js.map +1 -1
  94. package/dist/utils/sync-runner.d.ts +68 -0
  95. package/dist/utils/sync-runner.d.ts.map +1 -0
  96. package/dist/utils/sync-runner.js +73 -0
  97. package/dist/utils/sync-runner.js.map +1 -0
  98. package/dist/utils/sync-utils.d.ts +26 -0
  99. package/dist/utils/sync-utils.d.ts.map +1 -0
  100. package/dist/utils/sync-utils.js +39 -0
  101. package/dist/utils/sync-utils.js.map +1 -0
  102. package/dist/vectordb/index.d.ts +4 -0
  103. package/dist/vectordb/index.d.ts.map +1 -1
  104. package/dist/vectordb/index.js +13 -0
  105. package/dist/vectordb/index.js.map +1 -1
  106. package/package.json +10 -9
  107. package/skills/mcp-local-rag/SKILL.md +89 -14
  108. package/skills/mcp-local-rag/references/cli-reference.md +27 -0
  109. package/skills/mcp-local-rag/references/query-optimization.md +1 -1
package/README.md CHANGED
@@ -119,6 +119,51 @@ Supports PDF, DOCX, TXT, and Markdown. The server extracts text, splits it into
119
119
 
120
120
  Re-ingesting the same file replaces the old version automatically.
121
121
 
122
+ ##### Ingesting PDFs with figures (visual mode)
123
+
124
+ PDFs with charts, tables, or diagrams can optionally add local VLM-generated captions to the document index, giving visual content some searchable representation in the same vector + FTS pipeline. Captions are auxiliary text — not image search, not OCR, and not a faithful transcription of the figure.
125
+
126
+ **Via MCP**:
127
+ ```
128
+ "Ingest /Users/me/docs/api-spec.pdf with visual: true"
129
+ ```
130
+
131
+ **Via CLI**:
132
+ ```bash
133
+ npx mcp-local-rag ingest ./docs/spec.pdf --visual
134
+ ```
135
+
136
+ Each caption is emitted as its own chunk with the envelope `[Visual content on page N: …]`, alongside the page-body chunks. It flows through the existing embedder and FTS index — no schema differences, no separate index.
137
+
138
+ Visual mode is opt-in; normal ingest does not load the VLM. Per-page VLM failures are tolerated — that page proceeds with text only.
139
+
140
+ ###### Choosing a visual-quality profile
141
+
142
+ Visual mode offers two profiles, selected per ingest call:
143
+
144
+ | Profile | Model | Disk (cache) | Per-page inference | Suited for |
145
+ |---|---|---|---|---|
146
+ | `fast` (default) | `HuggingFaceTB/SmolVLM-256M-Instruct` | ~250 MB | baseline | Light visual indexing, quick first-run setup. |
147
+ | `quality` | `onnx-community/Qwen2.5-VL-3B-Instruct-ONNX` | ~2.9 GB | ~2× `fast` | Figures with in-image text (axis labels, panel sub-labels, annotations) where caption fidelity matters more than inference time. |
148
+
149
+ The numbers above are measured on CPU during development on the project's probe PDFs; they may shift with model updates or differ on your hardware.
150
+
151
+ **Via MCP** — `ingest_file` accepts an optional `visualQuality` parameter (enum: `'fast' | 'quality'`, default `'fast'`; ignored when `visual` is false):
152
+ ```
153
+ "Ingest /Users/me/docs/research-paper.pdf with visual: true and visualQuality: 'quality'"
154
+ ```
155
+
156
+ **Via CLI** — `--visual-quality fast|quality` (default `fast`; silently ignored when `--visual` is absent):
157
+ ```bash
158
+ npx mcp-local-rag ingest ./docs/research-paper.pdf --visual --visual-quality quality
159
+ ```
160
+
161
+ Profile model identifiers and quantization variants are fixed per release. Both profiles share the same `CACHE_DIR` (default: `./models/`); the first run on each profile downloads its model.
162
+
163
+ > **Behavior change from v0.14.0**: Captions are now emitted as dedicated chunks rather than appended to the page text before chunking. As a side effect, `metadata.fileSize` for visual ingests no longer includes the caption character count — it measures the post-extraction body length only. The underlying PDF is unchanged; only the reported `fileSize` for visual-ingested PDFs may shrink across the release boundary.
164
+
165
+ > **Security note**: Visual captions are derived from PDF contents and may inherit attacker-controlled text. Downstream LLM consumers should treat retrieved chunks as untrusted data, not as instructions. The `[Visual content on page N: …]` envelope helps consumers distinguish caption text from prose.
166
+
122
167
  #### Ingesting HTML Content
123
168
 
124
169
  Use `ingest_data` to ingest HTML content retrieved by your AI assistant (via web fetch, curl, browser tools, etc.):
@@ -217,7 +262,7 @@ For the full list of CLI flags, environment variables, and defaults, see [Config
217
262
 
218
263
  For CLI-only setups (no MCP server), install [Agent Skills](#agent-skills) so your AI assistant can form better queries and interpret results consistently.
219
264
 
220
- > ⚠️ **`--model-name` must match your MCP server config.** Using a different embedding model against an existing database produces incompatible vectors, silently degrading search quality.
265
+ > ⚠️ **CLI `--model-name` must match the MCP server's `MODEL_NAME` env var.** Using a different embedding model against an existing database produces incompatible vectors, silently degrading search quality.
221
266
 
222
267
  ## Search Tuning
223
268
 
@@ -310,7 +355,7 @@ apply the mcp-local-rag skill for better query formulation and result interpreta
310
355
 
311
356
  ### Environment Variables and CLI Flags
312
357
 
313
- Both MCP and CLI use the same environment variables. The CLI also accepts equivalent flags.
358
+ The MCP server is configured by environment variables only — pass them through your MCP client's `env` block. The CLI accepts the same env vars plus equivalent flags (priority: CLI flag > env > default). CLI flags are not accepted on the bare `mcp-local-rag` (MCP server) launch.
314
359
 
315
360
  | Environment Variable | CLI Flag | Default | Description |
316
361
  |---------------------|----------|---------|-------------|
@@ -320,6 +365,7 @@ Both MCP and CLI use the same environment variables. The CLI also accepts equiva
320
365
  | `MODEL_NAME` | `--model-name` | `Xenova/all-MiniLM-L6-v2` | HuggingFace model ID ([available models](https://huggingface.co/models?library=transformers.js&pipeline_tag=feature-extraction)) |
321
366
  | `MAX_FILE_SIZE` | `--max-file-size` | `104857600` (100MB) | Maximum file size in bytes |
322
367
  | `CHUNK_MIN_LENGTH` | `--chunk-min-length` | `50` | Minimum chunk length in characters (1–10000) |
368
+ | `RAG_DEVICE` | — | `cpu` | Execution device. Passed straight to ONNX Runtime. See the [Transformers.js device source code](https://github.com/huggingface/transformers.js/blob/main/packages/transformers/src/utils/devices.js) for the live list of supported backend names. If initialization fails, the server throws an error. |
323
369
 
324
370
  **Model choice tips:**
325
371
  - Multilingual docs → e.g., `onnx-community/embeddinggemma-300m-ONNX` (100+ languages)
@@ -373,7 +419,11 @@ The embedding model (~90MB) downloads on first use. Takes 1-2 minutes, then work
373
419
 
374
420
  - **Path restriction**: Only files within `BASE_DIR` are accessible
375
421
  - **Local only**: No network requests after model download
376
- - **Model source**: Official HuggingFace repository ([verify here](https://huggingface.co/Xenova/all-MiniLM-L6-v2))
422
+ - **Model sources** (all official HuggingFace repositories):
423
+ - Embedder: [`Xenova/all-MiniLM-L6-v2`](https://huggingface.co/Xenova/all-MiniLM-L6-v2)
424
+ - Visual `fast` profile: [`HuggingFaceTB/SmolVLM-256M-Instruct`](https://huggingface.co/HuggingFaceTB/SmolVLM-256M-Instruct)
425
+ - Visual `quality` profile: [`onnx-community/Qwen2.5-VL-3B-Instruct-ONNX`](https://huggingface.co/onnx-community/Qwen2.5-VL-3B-Instruct-ONNX)
426
+ - **Visual caption fidelity**: The `quality` profile reproduces in-image text more faithfully than `fast`. Both profiles output captions wrapped as `[Visual content on page N: …]`, but a faithful reproduction means attacker-controlled in-image text — including characters like `]` that visually close the envelope — can appear verbatim in retrieved chunks. Downstream LLM consumers should treat retrieved chunks as untrusted data, not as instructions, regardless of envelope shape.
377
427
 
378
428
  <details>
379
429
  <summary><strong>Performance</strong></summary>
@@ -432,7 +482,7 @@ Ensure file paths are within `BASE_DIR`. Use absolute paths.
432
482
  Yes. After model download, nothing leaves your machine. Verify with network monitoring.
433
483
 
434
484
  **Can I use this offline?**
435
- Yes, after the first model download (~90MB).
485
+ Yes, after the required models are cached locally. Text ingest/search needs the embedding model. PDF visual mode is opt-in and also needs the VLM model on first use; the download is ~250 MB for the default `fast` profile (SmolVLM-256M) or ~2.9 GB for the `quality` profile (Qwen2.5-VL-3B), cached under `CACHE_DIR` (default: `./models/`).
436
486
 
437
487
  **How does this compare to cloud RAG?**
438
488
  Cloud services offer better accuracy at scale but require sending data externally. This trades some accuracy for complete privacy and zero runtime cost.
@@ -444,7 +494,7 @@ PDF, DOCX, TXT, Markdown, and HTML (via `ingest_data`). Not yet: Excel, PowerPoi
444
494
  Yes, but you must delete your database and re-ingest all documents. Different models produce incompatible vector dimensions.
445
495
 
446
496
  **GPU acceleration?**
447
- Transformers.js runs on CPU. GPU support is experimental. CPU performance is adequate for most use cases.
497
+ Opt-in via `RAG_DEVICE`. Devices are passed straight to ONNX Runtime. GPU support is highly dependent on your system, Node.js version, and the underlying ONNX backend. See the [Transformers.js device source code](https://github.com/huggingface/transformers.js/blob/main/packages/transformers/src/utils/devices.js) for the live list of supported backend names. If the requested device fails to initialize, the server throws an error — set `RAG_DEVICE=cpu` to revert.
448
498
 
449
499
  **Multi-user support?**
450
500
  No. Designed for single-user, local access. Multi-user would require authentication/access control.
@@ -1,6 +1,6 @@
1
1
  import { Embedder } from '../embedder/index.js';
2
2
  import { VectorStore } from '../vectordb/index.js';
3
- import type { ResolvedGlobalConfig } from './options.js';
3
+ import { type ResolvedGlobalConfig } from './options.js';
4
4
  /**
5
5
  * Create an uninitialized VectorStore from resolved global config.
6
6
  * Callers are responsible for calling initialize() before use.
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/cli/common.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAExD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,WAAW,CAK3E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,QAAQ,CAMrE"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/cli/common.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,KAAK,oBAAoB,EAAiB,MAAM,cAAc,CAAA;AAEvE;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,WAAW,CAK3E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,QAAQ,CAOrE"}
@@ -1,6 +1,7 @@
1
1
  // Shared CLI component helpers — factory functions for VectorStore and Embedder
2
2
  import { Embedder } from '../embedder/index.js';
3
3
  import { VectorStore } from '../vectordb/index.js';
4
+ import { resolveDevice } from './options.js';
4
5
  /**
5
6
  * Create an uninitialized VectorStore from resolved global config.
6
7
  * Callers are responsible for calling initialize() before use.
@@ -20,6 +21,7 @@ export function createEmbedder(config) {
20
21
  modelPath: config.modelName,
21
22
  batchSize: 16,
22
23
  cacheDir: config.cacheDir,
24
+ device: resolveDevice(process.env['RAG_DEVICE']),
23
25
  });
24
26
  }
25
27
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/cli/common.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGlD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA4B;IAC5D,OAAO,IAAI,WAAW,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAA;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAA4B;IACzD,OAAO,IAAI,QAAQ,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/cli/common.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAA6B,aAAa,EAAE,MAAM,cAAc,CAAA;AAEvE;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA4B;IAC5D,OAAO,IAAI,WAAW,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAA;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAA4B;IACzD,OAAO,IAAI,QAAQ,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;KACjD,CAAC,CAAA;AACJ,CAAC"}
@@ -1,3 +1,8 @@
1
+ import { SemanticChunker } from '../chunker/index.js';
2
+ import type { Embedder } from '../embedder/index.js';
3
+ import { DocumentParser } from '../parser/index.js';
4
+ import type { QualityProfile } from '../pdf-visual/types.js';
5
+ import type { VectorStore } from '../vectordb/index.js';
1
6
  import type { GlobalOptions, ResolvedGlobalConfig } from './options.js';
2
7
  interface IngestConfig {
3
8
  baseDir: string;
@@ -11,6 +16,13 @@ interface IngestCliOptions {
11
16
  baseDir?: string | undefined;
12
17
  maxFileSize?: number | undefined;
13
18
  chunkMinLength?: number | undefined;
19
+ visual?: boolean | undefined;
20
+ /**
21
+ * Visual-quality profile selector. Only meaningful when `visual` is true;
22
+ * silently ignored otherwise (mirrors the existing `--visual` precedent
23
+ * of silently coercing for non-PDF files). Defaults to `'fast'`.
24
+ */
25
+ visualQuality?: QualityProfile | undefined;
14
26
  }
15
27
  interface ParsedArgs {
16
28
  positional: string | undefined;
@@ -29,6 +41,42 @@ export declare function parseArgs(args: string[]): ParsedArgs;
29
41
  * Validates all resolved values before returning.
30
42
  */
31
43
  export declare function resolveConfig(globalConfig: ResolvedGlobalConfig, ingestOptions?: IngestCliOptions): IngestConfig;
44
+ /**
45
+ * Options for `ingestSingleFile`. Discriminated on `visual` so the visual
46
+ * path is type-only callable with the VLM config it actually needs:
47
+ * - `visual` absent or `false` → no VLM fields required (and not accepted).
48
+ * - `visual: true` → `profile` and `cacheDir` required; `device` optional.
49
+ *
50
+ * Why a union rather than always-required fields: making the VLM fields
51
+ * unconditionally required forces non-visual callers (default-mode tests,
52
+ * future direct-import callers that only ingest non-PDF files) to fabricate
53
+ * VLM config they will never use. The visual-true variant still catches
54
+ * accidental misuse at compile time, which was the original goal.
55
+ */
56
+ export type IngestSingleFileOptions = {
57
+ visual?: false | undefined;
58
+ } | {
59
+ visual: true;
60
+ profile: QualityProfile;
61
+ cacheDir: string;
62
+ device?: string | undefined;
63
+ };
64
+ /**
65
+ * Ingest a single file: parse, chunk, embed, delete old chunks, insert new chunks.
66
+ * Returns the number of chunks inserted.
67
+ *
68
+ * When `options.visual === true` AND the file is a `.pdf`, routes through the
69
+ * visual-enrichment path: `parsePdfPages` + VLM captioning (`pdf-visual`
70
+ * orchestrator) + joined-text chunking. `pdf-visual` is loaded via dynamic
71
+ * `await import('../pdf-visual/index.js')` so the default (non-visual) path
72
+ * never pulls the VLM module into the bundle (NFR-1 dynamic-import discipline,
73
+ * verified by AC-001 Proxy sentinel in T4.6).
74
+ *
75
+ * Non-visual, non-PDF, and `visual: true` + non-PDF (silently falls through
76
+ * to the default branch — AC-006) paths are byte-identical to the post-T0.3
77
+ * state and never load `pdf-visual`.
78
+ */
79
+ export declare function ingestSingleFile(filePath: string, parser: DocumentParser, chunker: SemanticChunker, embedder: Embedder, vectorStore: VectorStore, options?: IngestSingleFileOptions): Promise<number>;
32
80
  /**
33
81
  * Run the ingest CLI subcommand.
34
82
  * @param args - Arguments after "ingest" (e.g., option flags and file/directory path)
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/cli/ingest.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAkBvE,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAQD,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC;AAED,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,gBAAgB,CAAA;IACzB,IAAI,EAAE,OAAO,CAAA;CACd;AAiCD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAwEpD;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,oBAAoB,EAClC,aAAa,GAAE,gBAAqB,GACnC,YAAY,CA+Cd;AAuJD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,aAAa,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4FhG"}
1
+ {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/cli/ingest.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAGpD,OAAO,EAAE,cAAc,EAAwB,MAAM,oBAAoB,CAAA;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAmBvE,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAQD,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC5B;;;;OAIG;IACH,aAAa,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;CAC3C;AAED,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,gBAAgB,CAAA;IACzB,IAAI,EAAE,OAAO,CAAA;CACd;AAmCD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA6FpD;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,oBAAoB,EAClC,aAAa,GAAE,gBAAqB,GACnC,YAAY,CA+Cd;AAgFD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IAAE,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAAE,GAC9B;IACE,MAAM,EAAE,IAAI,CAAA;IACZ,OAAO,EAAE,cAAc,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC5B,CAAA;AAEL;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,MAAM,CAAC,CAuGjB;AAMD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,aAAa,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2HhG"}
@@ -1,11 +1,13 @@
1
1
  // CLI ingest subcommand — bulk file ingestion with single optimize() at end
2
2
  import { randomUUID } from 'node:crypto';
3
3
  import { opendir, stat } from 'node:fs/promises';
4
- import { extname, join, resolve } from 'node:path';
4
+ import { basename, extname, join, resolve, sep } from 'node:path';
5
5
  import { SemanticChunker } from '../chunker/index.js';
6
+ import { buildChunksAndEmbeddings } from '../ingest/compute.js';
7
+ import { prepareVisualPdfChunks } from '../ingest/visual.js';
6
8
  import { DocumentParser, SUPPORTED_EXTENSIONS } from '../parser/index.js';
7
9
  import { createEmbedder, createVectorStore } from './common.js';
8
- import { resolveGlobalConfig, validateChunkMinLength, validateMaxFileSize, validatePath, } from './options.js';
10
+ import { resolveDevice, resolveGlobalConfig, validateChunkMinLength, validateMaxFileSize, validatePath, } from './options.js';
9
11
  // ============================================
10
12
  // Constants
11
13
  // ============================================
@@ -24,10 +26,12 @@ const HELP_TEXT = `Usage: mcp-local-rag [global-options] ingest [options] <path>
24
26
  Ingest a single file or all supported files under a directory.
25
27
 
26
28
  Options:
27
- --base-dir <path> Base directory for documents (default: cwd)
28
- --max-file-size <n> Max file size in bytes (default: ${INGEST_DEFAULTS.maxFileSize})
29
- --chunk-min-length <n> Minimum chunk length in characters (default: 50, range: 1-10000)
30
- -h, --help Show this help
29
+ --base-dir <path> Base directory for documents (default: cwd)
30
+ --max-file-size <n> Max file size in bytes (default: ${INGEST_DEFAULTS.maxFileSize})
31
+ --chunk-min-length <n> Minimum chunk length in characters (default: 50, range: 1-10000)
32
+ --visual Enable VLM captioning for PDF figure pages (PDFs only; no effect on other types)
33
+ --visual-quality <profile> VLM profile when --visual is set: fast (default, lightweight) or quality (Qwen2.5-VL-3B, ~10x cache, ~2x inference)
34
+ -h, --help Show this help
31
35
 
32
36
  Global options (must appear before "ingest"):
33
37
  --db-path <path> LanceDB database path
@@ -92,6 +96,25 @@ export function parseArgs(args) {
92
96
  i++;
93
97
  break;
94
98
  }
99
+ case '--visual':
100
+ // Boolean toggle: no value consumed. Mirrors the -h/--help pattern.
101
+ options.visual = true;
102
+ i++;
103
+ break;
104
+ case '--visual-quality': {
105
+ const value = args[++i];
106
+ if (value === undefined || value.startsWith('-')) {
107
+ console.error('Missing value for --visual-quality');
108
+ process.exit(1);
109
+ }
110
+ if (value !== 'fast' && value !== 'quality') {
111
+ console.error(`Invalid value for --visual-quality: "${value.slice(0, 100)}". Expected "fast" or "quality".`);
112
+ process.exit(1);
113
+ }
114
+ options.visualQuality = value;
115
+ i++;
116
+ break;
117
+ }
95
118
  default:
96
119
  if (arg.startsWith('-')) {
97
120
  console.error(`Unknown option: ${arg}`);
@@ -221,19 +244,78 @@ async function collectFiles(targetPath, excludePaths) {
221
244
  }
222
245
  return [];
223
246
  }
224
- // ============================================
225
- // Per-file Ingestion
226
- // ============================================
227
247
  /**
228
248
  * Ingest a single file: parse, chunk, embed, delete old chunks, insert new chunks.
229
249
  * Returns the number of chunks inserted.
250
+ *
251
+ * When `options.visual === true` AND the file is a `.pdf`, routes through the
252
+ * visual-enrichment path: `parsePdfPages` + VLM captioning (`pdf-visual`
253
+ * orchestrator) + joined-text chunking. `pdf-visual` is loaded via dynamic
254
+ * `await import('../pdf-visual/index.js')` so the default (non-visual) path
255
+ * never pulls the VLM module into the bundle (NFR-1 dynamic-import discipline,
256
+ * verified by AC-001 Proxy sentinel in T4.6).
257
+ *
258
+ * Non-visual, non-PDF, and `visual: true` + non-PDF (silently falls through
259
+ * to the default branch — AC-006) paths are byte-identical to the post-T0.3
260
+ * state and never load `pdf-visual`.
230
261
  */
231
- async function ingestSingleFile(filePath, parser, chunker, embedder, vectorStore) {
262
+ export async function ingestSingleFile(filePath, parser, chunker, embedder, vectorStore, options) {
232
263
  // Parse file
233
264
  const isPdf = filePath.toLowerCase().endsWith('.pdf');
234
265
  let text;
235
266
  let title = null;
236
- if (isPdf) {
267
+ if (options?.visual === true && isPdf) {
268
+ // Visual dispatch — delegates the shared visual-PDF flow to
269
+ // `prepareVisualPdfChunks` (NFR-1: the dynamic `pdf-visual` import lives
270
+ // inside that helper, not here). This branch keeps the CLI persistence
271
+ // model (delete + insert; bulk-loop optimize at the end of `runIngest`).
272
+ //
273
+ // `profile` and `cacheDir` are required by `prepareVisualPdfChunks`;
274
+ // the CLI bulk-loop always supplies them from the resolved CLI options
275
+ // (`runIngest` defaults `visualQuality` to `'fast'` when `--visual` is
276
+ // set without `--visual-quality`).
277
+ const visualResult = await prepareVisualPdfChunks(filePath, parser, chunker, embedder, {
278
+ profile: options.profile,
279
+ cacheDir: options.cacheDir,
280
+ device: options.device,
281
+ });
282
+ const { chunks, embeddings } = visualResult;
283
+ if (chunks.length === 0) {
284
+ console.error(` Warning: 0 chunks generated (file may be empty or too short)`);
285
+ return 0;
286
+ }
287
+ title = visualResult.title;
288
+ // Persistence — identical to the default branch below; inlined here so
289
+ // chunks/embeddings produced on the visual path persist correctly. The
290
+ // joined enriched-page text is taken from the helper to preserve the
291
+ // pre-existing `metadata.fileSize` semantics (post-enrichment,
292
+ // pre-chunking text length).
293
+ await vectorStore.deleteChunks(filePath);
294
+ const timestamp = new Date().toISOString();
295
+ const vectorChunks = chunks.map((chunk, index) => {
296
+ const embedding = embeddings[index];
297
+ if (!embedding) {
298
+ throw new Error(`Missing embedding for chunk ${index}`);
299
+ }
300
+ return {
301
+ id: randomUUID(),
302
+ filePath,
303
+ chunkIndex: chunk.index,
304
+ text: chunk.text,
305
+ vector: embedding,
306
+ metadata: {
307
+ fileName: basename(filePath),
308
+ fileSize: visualResult.text.length,
309
+ fileType: extname(filePath).slice(1),
310
+ },
311
+ fileTitle: title,
312
+ timestamp,
313
+ };
314
+ });
315
+ await vectorStore.insertChunks(vectorChunks);
316
+ return vectorChunks.length;
317
+ }
318
+ else if (isPdf) {
237
319
  const result = await parser.parsePdf(filePath, embedder);
238
320
  text = result.content;
239
321
  title = result.title || null;
@@ -243,14 +325,12 @@ async function ingestSingleFile(filePath, parser, chunker, embedder, vectorStore
243
325
  text = result.content;
244
326
  title = result.title || null;
245
327
  }
246
- // Chunk text
247
- const chunks = await chunker.chunkText(text, embedder);
328
+ // Chunk text + generate embeddings via the shared computation layer (Phase 0).
329
+ const { chunks, embeddings } = await buildChunksAndEmbeddings(text, title, chunker, embedder);
248
330
  if (chunks.length === 0) {
249
331
  console.error(` Warning: 0 chunks generated (file may be empty or too short)`);
250
332
  return 0;
251
333
  }
252
- // Generate embeddings
253
- const embeddings = await embedder.embedBatch(chunks.map((c) => c.text));
254
334
  // Delete existing chunks for this file
255
335
  await vectorStore.deleteChunks(filePath);
256
336
  // Build vector chunks
@@ -267,9 +347,9 @@ async function ingestSingleFile(filePath, parser, chunker, embedder, vectorStore
267
347
  text: chunk.text,
268
348
  vector: embedding,
269
349
  metadata: {
270
- fileName: filePath.split('/').pop() || filePath,
350
+ fileName: basename(filePath),
271
351
  fileSize: text.length,
272
- fileType: filePath.split('.').pop() || '',
352
+ fileType: extname(filePath).slice(1),
273
353
  },
274
354
  fileTitle: title,
275
355
  timestamp,
@@ -314,7 +394,7 @@ export async function runIngest(args, globalOptions = {}) {
314
394
  // Resolve config: CLI flags > env vars > defaults
315
395
  const globalConfig = resolveGlobalConfig(globalOptions);
316
396
  const config = resolveConfig(globalConfig, options);
317
- const excludePaths = [`${resolve(config.dbPath)}/`, `${resolve(config.cacheDir)}/`];
397
+ const excludePaths = [`${resolve(config.dbPath)}${sep}`, `${resolve(config.cacheDir)}${sep}`];
318
398
  // Collect files
319
399
  const files = await collectFiles(targetPath, excludePaths);
320
400
  if (files.length === 0) {
@@ -333,30 +413,55 @@ export async function runIngest(args, globalOptions = {}) {
333
413
  await vectorStore.initialize();
334
414
  // Process each file
335
415
  const summary = { succeeded: 0, failed: 0, totalChunks: 0 };
336
- for (let i = 0; i < files.length; i++) {
337
- const filePath = files[i];
338
- const label = `[${i + 1}/${files.length}]`;
339
- try {
340
- const chunkCount = await ingestSingleFile(filePath, parser, chunker, embedder, vectorStore);
341
- if (chunkCount === 0) {
342
- // 0 chunks is a skip/warning, not a failure
343
- console.error(`${label} ${filePath} ... SKIPPED (0 chunks)`);
344
- summary.succeeded++;
416
+ try {
417
+ for (let i = 0; i < files.length; i++) {
418
+ const filePath = files[i];
419
+ const label = `[${i + 1}/${files.length}]`;
420
+ try {
421
+ // Forward visual + VLM env-resolved options into the per-file ingestor.
422
+ // `ingestSingleFile` routes through the visual path when
423
+ // `options.visual === true && filePath.endsWith('.pdf')`. The two
424
+ // variants of `IngestSingleFileOptions` are built explicitly so the
425
+ // VLM fields only travel with the visual-true branch (the cacheDir is
426
+ // pre-validated by `resolveGlobalConfig` so the captioner does not
427
+ // re-read `process.env['CACHE_DIR']` raw).
428
+ const ingestOptions = options.visual
429
+ ? {
430
+ visual: true,
431
+ // Default the profile to `'fast'` when `--visual-quality` was
432
+ // not provided. The flag is silently ignored when `--visual`
433
+ // itself is absent (mirrors the existing `--visual` precedent
434
+ // of silently coercing for non-PDF files).
435
+ profile: options.visualQuality ?? 'fast',
436
+ cacheDir: globalConfig.cacheDir,
437
+ device: resolveDevice(process.env['RAG_DEVICE']),
438
+ }
439
+ : { visual: false };
440
+ const chunkCount = await ingestSingleFile(filePath, parser, chunker, embedder, vectorStore, ingestOptions);
441
+ if (chunkCount === 0) {
442
+ // 0 chunks is a skip/warning, not a failure
443
+ console.error(`${label} ${filePath} ... SKIPPED (0 chunks)`);
444
+ summary.succeeded++;
445
+ }
446
+ else {
447
+ console.error(`${label} ${filePath} ... OK (${chunkCount} chunks)`);
448
+ summary.succeeded++;
449
+ summary.totalChunks += chunkCount;
450
+ }
345
451
  }
346
- else {
347
- console.error(`${label} ${filePath} ... OK (${chunkCount} chunks)`);
348
- summary.succeeded++;
349
- summary.totalChunks += chunkCount;
452
+ catch (error) {
453
+ const reason = error instanceof Error ? error.message : String(error);
454
+ console.error(`${label} ${filePath} ... FAILED: ${reason}`);
455
+ summary.failed++;
350
456
  }
351
457
  }
352
- catch (error) {
353
- const reason = error instanceof Error ? error.message : String(error);
354
- console.error(`${label} ${filePath} ... FAILED: ${reason}`);
355
- summary.failed++;
356
- }
458
+ // Optimize once at end (not per-file)
459
+ await vectorStore.optimize();
460
+ }
461
+ finally {
462
+ await embedder.dispose();
463
+ await vectorStore.close();
357
464
  }
358
- // Optimize once at end (not per-file)
359
- await vectorStore.optimize();
360
465
  // Print summary
361
466
  console.error('');
362
467
  console.error('--- Ingest Summary ---');
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/cli/ingest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/cli/ingest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAOjD,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC7B;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,OAAO,CAAA;CACd;AA2CD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAoCpD;AAMD;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,aAAa,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6E9F"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAOjD,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC7B;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,OAAO,CAAA;CACd;AA2CD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAoCpD;AAMD;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,aAAa,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgF9F"}
package/dist/cli/list.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // CLI list subcommand — list files and ingestion status
2
2
  import { readdir } from 'node:fs/promises';
3
- import { extname, join, resolve } from 'node:path';
3
+ import { extname, join, resolve, sep } from 'node:path';
4
4
  import { SUPPORTED_EXTENSIONS } from '../parser/index.js';
5
5
  import { extractSourceFromPath, isRawDataPath } from '../utils/raw-data-utils.js';
6
6
  import { createVectorStore } from './common.js';
@@ -94,8 +94,11 @@ export async function runList(args, globalOptions = {}) {
94
94
  // Initialize VectorStore only (no Embedder needed for list)
95
95
  const vectorStore = createVectorStore(globalConfig);
96
96
  await vectorStore.initialize();
97
- // Build exclude paths (resolved to absolute)
98
- const excludePaths = [`${resolve(globalConfig.dbPath)}/`, `${resolve(globalConfig.cacheDir)}/`];
97
+ // Build exclude paths (resolved to absolute, platform-aware trailing separator)
98
+ const excludePaths = [
99
+ `${resolve(globalConfig.dbPath)}${sep}`,
100
+ `${resolve(globalConfig.cacheDir)}${sep}`,
101
+ ];
99
102
  // Get all ingested entries from the vector store
100
103
  const ingested = await vectorStore.listFiles();
101
104
  const ingestedMap = new Map(ingested.map((f) => [f.filePath, f]));
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"AAAA,wDAAwD;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAmChE,+CAA+C;AAC/C,OAAO;AACP,+CAA+C;AAE/C,MAAM,SAAS,GAAG;;;;;;;;;;;yCAWuB,CAAA;AAEzC,+CAA+C;AAC/C,cAAc;AACd,+CAA+C;AAE/C;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,OAAO,GAAmB,EAAE,CAAA;IAClC,IAAI,IAAI,GAAG,KAAK,CAAA;IAEhB,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;QACpB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,IAAI,CAAC;YACV,KAAK,QAAQ;gBACX,IAAI,GAAG,IAAI,CAAA;gBACX,CAAC,EAAE,CAAA;gBACH,MAAK;YACP,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;gBACvB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjD,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;oBAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;gBACD,OAAO,CAAC,OAAO,GAAG,KAAK,CAAA;gBACvB,CAAC,EAAE,CAAA;gBACH,MAAK;YACP,CAAC;YACD;gBACE,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,OAAO,CAAC,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAA;oBACvC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;oBACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAA;gBAC5C,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAA;gBACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC;AAED,+CAA+C;AAC/C,mBAAmB;AACnB,+CAA+C;AAE/C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc,EAAE,gBAA+B,EAAE;IAC7E,oBAAoB;IACpB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAEzC,gBAAgB;IAChB,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,wBAAwB;IACxB,MAAM,YAAY,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAEvD,iDAAiD;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IAE3E,wBAAwB;IACxB,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IACxD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,CAAC;QACH,4DAA4D;QAC5D,MAAM,WAAW,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;QACnD,MAAM,WAAW,CAAC,UAAU,EAAE,CAAA;QAE9B,6CAA6C;QAC7C,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAE/F,iDAAiD;QACjD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,CAAA;QAC9C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAEjE,+CAA+C;QAC/C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QAChF,MAAM,YAAY,GAAG,OAAO;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;aACpF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,CAAA;YACxB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;aACzE,IAAI,EAAE,CAAA;QAET,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAA;QAExC,yCAAyC;QACzC,MAAM,KAAK,GAAgB,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YACvD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACvC,OAAO,KAAK;gBACV,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;gBACxF,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;QACnC,CAAC,CAAC,CAAA;QAEF,yEAAyE;QACzE,0DAA0D;QAC1D,MAAM,OAAO,GAAkB,QAAQ;aACpC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,IAAI,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;gBAChD,IAAI,MAAM;oBAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAA;YACjF,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAA;QACnF,CAAC,CAAC,CAAA;QAEJ,MAAM,MAAM,GAAe,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;QAEtD,wBAAwB;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,OAAO,CAAC,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"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"}
@@ -51,4 +51,9 @@ export declare function parseGlobalOptions(args: string[]): ParsedGlobalResult;
51
51
  * Validates all resolved values before returning.
52
52
  */
53
53
  export declare function resolveGlobalConfig(options: GlobalOptions): ResolvedGlobalConfig;
54
+ /**
55
+ * Resolve RAG_DEVICE. The value is passed through to transformers.js — no
56
+ * allowlist is maintained here. Whitespace-only is treated as unset.
57
+ */
58
+ export declare function resolveDevice(value: string | undefined): string;
54
59
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAuBhF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CASnE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKxE;AAMD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,aAAa,CAAA;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAMD,eAAO,MAAM,eAAe;;;;CAIlB,CAAA;AAMV,eAAO,MAAM,cAAc,QAeiC,CAAA;AAM5D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAqErE;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,oBAAoB,CA0BhF"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAuBhF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CASnE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKxE;AAMD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,aAAa,CAAA;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAMD,eAAO,MAAM,eAAe;;;;CAIlB,CAAA;AAMV,eAAO,MAAM,cAAc,QAeiC,CAAA;AAM5D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAqErE;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,oBAAoB,CA0BhF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG/D"}
@@ -201,4 +201,13 @@ export function resolveGlobalConfig(options) {
201
201
  }
202
202
  return { dbPath, cacheDir, modelName };
203
203
  }
204
+ /**
205
+ * Resolve RAG_DEVICE. The value is passed through to transformers.js — no
206
+ * allowlist is maintained here. Whitespace-only is treated as unset.
207
+ */
208
+ export function resolveDevice(value) {
209
+ if (!value || value.trim() === '')
210
+ return 'cpu';
211
+ return value.trim();
212
+ }
204
213
  //# sourceMappingURL=options.js.map