@jcode.labs/ragmir 6.1.4 → 6.1.5

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.
@@ -1,9 +1,10 @@
1
- import { createHash } from "node:crypto";
1
+ import { createHash, randomUUID } from "node:crypto";
2
2
  import { createReadStream } from "node:fs";
3
- import { mkdir, readdir, stat } from "node:fs/promises";
3
+ import { mkdir, mkdtemp, readdir, rename, rm, stat } from "node:fs/promises";
4
4
  import path from "node:path";
5
5
  import { MAX_EMBEDDING_BATCH_SIZE } from "./defaults.js";
6
6
  import { throwIfAborted } from "./operation.js";
7
+ import { ensurePrivateDirectory } from "./permissions.js";
7
8
  import { tokenize } from "./text.js";
8
9
  import { runWorkload } from "./workload.js";
9
10
  const LOCAL_HASH_DIMENSIONS = 384;
@@ -20,6 +21,9 @@ const MAX_LOCAL_HASH_FEATURE_CACHE_ENTRIES = 16_384;
20
21
  const MAX_TRANSFORMERS_PIPELINES = 1;
21
22
  const MAX_QUERY_EMBEDDING_CACHE_ENTRIES = 128;
22
23
  const MAX_QUERY_EMBEDDING_CACHE_VALUES = 65_536;
24
+ const MODEL_BOOTSTRAP_TEXTS = ["Ragmir semantic embedding model bootstrap."];
25
+ /** Files that Transformers.js offline discovery reads from the model root before loading. */
26
+ const OFFLINE_DISCOVERY_FILES = ["config.json", "tokenizer_config.json"];
23
27
  const transformersPipelines = new Map();
24
28
  const transformersModelOwners = new Map();
25
29
  export async function embedTexts(texts, config, inputType = "document", signal, onAdmission) {
@@ -38,24 +42,35 @@ export async function embedTexts(texts, config, inputType = "document", signal,
38
42
  return embeddings;
39
43
  });
40
44
  }
45
+ /**
46
+ * Download the configured model revision and install it as an offline snapshot.
47
+ *
48
+ * Transformers.js caches a pinned revision under `<model>/<revision>/`, but its offline file
49
+ * discovery only reads `<model>/` on the main revision and then loads the pipeline without a
50
+ * tokenizer. The download therefore runs in a private cache where local files cannot shadow the
51
+ * pinned revision, and the complete revision snapshot replaces `<model>/` only after validation.
52
+ */
41
53
  export async function pullEmbeddingModel(config) {
42
- await mkdir(config.embeddingModelPath, { recursive: true });
43
- const pullConfig = {
44
- ...config,
45
- embeddingProvider: "transformers",
46
- transformersAllowRemoteModels: true,
47
- };
48
- const lease = await acquireTransformersPipeline(pullConfig);
54
+ await ensurePrivateDirectory(config.embeddingModelPath);
55
+ const modelRoot = embeddingModelRoot(config);
56
+ const downloadRoot = await mkdtemp(path.join(config.embeddingModelPath, ".download-"));
49
57
  try {
50
- await lease.extractor(["Ragmir semantic embedding model bootstrap."], {
51
- pooling: "mean",
52
- normalize: true,
53
- });
54
- const embeddingModelDigest = await resolveEmbeddingModelDigest(pullConfig);
58
+ const extractor = await createTransformersExtractor({ ...config, embeddingProvider: "transformers", transformersAllowRemoteModels: true }, { cacheDir: downloadRoot, allowLocalModels: false });
59
+ try {
60
+ await extractor(MODEL_BOOTSTRAP_TEXTS, { pooling: "mean", normalize: true });
61
+ }
62
+ finally {
63
+ await extractor.dispose?.();
64
+ }
65
+ const snapshot = cachedRevisionPath(config, downloadRoot);
66
+ await assertOfflineSnapshot(config, snapshot);
67
+ const embeddingModelDigest = await artifactTreeDigest(snapshot);
55
68
  if (config.embeddingModelDigest !== null &&
56
- config.embeddingModelDigest !== embeddingModelDigest) {
69
+ config.embeddingModelDigest !== embeddingModelDigest &&
70
+ !(await recordsUnloadableRevisionLayout(config, modelRoot))) {
57
71
  throw new Error(`Embedding model digest mismatch: expected ${config.embeddingModelDigest}, received ${embeddingModelDigest}.`);
58
72
  }
73
+ await replaceDirectory(modelRoot, snapshot);
59
74
  return {
60
75
  embeddingModel: config.embeddingModel,
61
76
  embeddingModelRevision: config.embeddingModelRevision,
@@ -64,8 +79,7 @@ export async function pullEmbeddingModel(config) {
64
79
  };
65
80
  }
66
81
  finally {
67
- await lease.release();
68
- await disposeTransformersModel(pullConfig);
82
+ await rm(downloadRoot, { recursive: true, force: true });
69
83
  }
70
84
  }
71
85
  export async function embeddingModelArtifactDigest(config) {
@@ -215,7 +229,10 @@ function transformersCacheKey(config) {
215
229
  config.embeddingModelPath,
216
230
  ].join("\n");
217
231
  }
218
- async function createTransformersExtractor(config) {
232
+ async function createTransformersExtractor(config, files = {
233
+ cacheDir: config.embeddingModelPath,
234
+ allowLocalModels: true,
235
+ }) {
219
236
  return withTransformersEnvironment(async () => {
220
237
  const transformers = await import("@huggingface/transformers").catch((error) => {
221
238
  if (error instanceof Error &&
@@ -229,19 +246,27 @@ async function createTransformersExtractor(config) {
229
246
  const previous = {
230
247
  localModelPath: transformers.env.localModelPath,
231
248
  cacheDir: transformers.env.cacheDir,
249
+ allowLocalModels: transformers.env.allowLocalModels,
232
250
  allowRemoteModels: transformers.env.allowRemoteModels,
233
251
  };
234
252
  transformers.env.localModelPath = config.embeddingModelPath;
235
- transformers.env.cacheDir = config.embeddingModelPath;
253
+ transformers.env.cacheDir = files.cacheDir;
254
+ transformers.env.allowLocalModels = files.allowLocalModels;
236
255
  transformers.env.allowRemoteModels = config.transformersAllowRemoteModels;
237
256
  try {
238
- return (await transformers.pipeline("feature-extraction", config.embeddingModel, {
257
+ const extractor = (await transformers.pipeline("feature-extraction", config.embeddingModel, {
239
258
  revision: config.embeddingModelRevision,
240
259
  }));
260
+ if ("tokenizer" in extractor && extractor.tokenizer == null) {
261
+ await extractor.dispose?.();
262
+ throw new Error(`Transformers.js loaded ${config.embeddingModel} without its tokenizer from ${embeddingModelRoot(config)}. Run \`rgr models pull --enable\` to install a complete offline snapshot, then \`rgr ingest --rebuild\`.`);
263
+ }
264
+ return extractor;
241
265
  }
242
266
  finally {
243
267
  transformers.env.localModelPath = previous.localModelPath;
244
268
  transformers.env.cacheDir = previous.cacheDir;
269
+ transformers.env.allowLocalModels = previous.allowLocalModels;
245
270
  transformers.env.allowRemoteModels = previous.allowRemoteModels;
246
271
  }
247
272
  });
@@ -343,7 +368,9 @@ function takeTransformersCache() {
343
368
  return entries;
344
369
  }
345
370
  async function resolveEmbeddingModelDigest(config) {
346
- const modelRoot = embeddingModelRoot(config);
371
+ return artifactTreeDigest(embeddingModelRoot(config));
372
+ }
373
+ async function artifactTreeDigest(modelRoot) {
347
374
  const files = await modelArtifactFiles(modelRoot);
348
375
  if (files.length === 0) {
349
376
  throw new Error(`No embedding model artifacts found under ${modelRoot}.`);
@@ -362,6 +389,57 @@ async function resolveEmbeddingModelDigest(config) {
362
389
  }
363
390
  return `sha256:${identity.digest("hex")}`;
364
391
  }
392
+ /** Transformers.js keys main-revision files as `<model>/<file>` and pinned ones under the revision. */
393
+ function cachedRevisionPath(config, cacheRoot) {
394
+ const modelCache = path.join(cacheRoot, config.embeddingModel);
395
+ return config.embeddingModelRevision === "main"
396
+ ? modelCache
397
+ : path.join(modelCache, config.embeddingModelRevision);
398
+ }
399
+ async function assertOfflineSnapshot(config, snapshot) {
400
+ for (const filename of OFFLINE_DISCOVERY_FILES) {
401
+ const metadata = await stat(path.join(snapshot, filename)).catch(() => null);
402
+ if (!metadata?.isFile()) {
403
+ throw new Error(`Transformers.js did not download ${filename} for ${config.embeddingModel}@${config.embeddingModelRevision}, so the model could not load offline. The installed model was left unchanged.`);
404
+ }
405
+ }
406
+ }
407
+ /**
408
+ * Earlier pulls let Transformers.js cache pinned revisions under `<model>/<revision>/`, a layout
409
+ * that offline discovery never loads. A digest recorded for exactly that tree identifies an install
410
+ * that could not serve offline embeddings, so a validated snapshot may replace it.
411
+ */
412
+ async function recordsUnloadableRevisionLayout(config, modelRoot) {
413
+ if (config.embeddingModelRevision === "main") {
414
+ return false;
415
+ }
416
+ const revisionCache = await stat(path.join(modelRoot, config.embeddingModelRevision)).catch(() => null);
417
+ if (!revisionCache?.isDirectory()) {
418
+ return false;
419
+ }
420
+ return (await artifactTreeDigest(modelRoot).catch(() => null)) === config.embeddingModelDigest;
421
+ }
422
+ /** Swap in a complete directory so an interrupted pull keeps the previous model artifacts. */
423
+ async function replaceDirectory(target, replacement) {
424
+ await mkdir(path.dirname(target), { recursive: true });
425
+ const previous = `${target}.previous-${randomUUID()}`;
426
+ const hadPrevious = await stat(target).then(() => true, () => false);
427
+ if (hadPrevious) {
428
+ await rename(target, previous);
429
+ }
430
+ try {
431
+ await rename(replacement, target);
432
+ }
433
+ catch (error) {
434
+ if (hadPrevious) {
435
+ await rename(previous, target);
436
+ }
437
+ throw error;
438
+ }
439
+ if (hadPrevious) {
440
+ await rm(previous, { recursive: true, force: true });
441
+ }
442
+ }
365
443
  function embeddingModelRoot(config) {
366
444
  const base = path.resolve(config.embeddingModelPath);
367
445
  const root = path.resolve(base, config.embeddingModel);
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../src/embeddings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../src/embeddings.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { Config, IndexManifest } from "./types.js";
3
3
  * Version of the keyword text derived from each chunk. Searches keep using an index built with an
4
4
  * older version, while the next ingestion stages a full rebuild before activating it.
5
5
  */
6
- export declare const LEXICAL_POLICY_VERSION = 2;
6
+ export declare const LEXICAL_POLICY_VERSION = 3;
7
7
  export declare function indexPolicyFingerprint(config: Config): string;
8
8
  /** Fingerprint that keeps an interrupted ingestion from resuming under a different keyword policy. */
9
9
  export declare function ingestionPolicyFingerprint(config: Config): string;
@@ -6,7 +6,7 @@ const CHUNKING_ADAPTER_VERSION = 4;
6
6
  * Version of the keyword text derived from each chunk. Searches keep using an index built with an
7
7
  * older version, while the next ingestion stages a full rebuild before activating it.
8
8
  */
9
- export const LEXICAL_POLICY_VERSION = 2;
9
+ export const LEXICAL_POLICY_VERSION = 3;
10
10
  const LEGACY_LEXICAL_POLICY_VERSION = 1;
11
11
  export function indexPolicyFingerprint(config) {
12
12
  const policy = {
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAOA,wBAAsB,WAAW,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA8CxE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAkBA,wBAAsB,WAAW,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA8CxE"}
package/dist/init.js CHANGED
@@ -1,9 +1,11 @@
1
1
  import { existsSync } from "node:fs";
2
2
  import { writeFile } from "node:fs/promises";
3
3
  import path from "node:path";
4
- import { CONFIG_PATH, DEFAULT_CONFIG, LEGACY_CONFIG_PATH, RAGMIR_DIR } from "./defaults.js";
4
+ import { CONFIG_PATH, DEFAULT_CONFIG, LEGACY_CONFIG_PATH, RAGMIR_DIR, RETRIEVAL_PROFILE_FIELDS, } from "./defaults.js";
5
5
  import { ensureRagmirGitignore } from "./gitignore.js";
6
6
  import { ensurePrivateDirectory, hardenPrivateFile } from "./permissions.js";
7
+ // Writing the balanced budgets would pin them, so a later `retrievalProfile` change kept topK 8.
8
+ const INITIAL_CONFIG = Object.fromEntries(Object.entries(DEFAULT_CONFIG).filter(([key]) => !RETRIEVAL_PROFILE_FIELDS.has(key)));
7
9
  export async function initProject(cwd = process.cwd()) {
8
10
  const root = path.resolve(cwd);
9
11
  const ragmirDir = path.join(root, RAGMIR_DIR);
@@ -25,7 +27,7 @@ export async function initProject(cwd = process.cwd()) {
25
27
  }
26
28
  if (!hasConfig && !hasLegacyConfig) {
27
29
  await ensurePrivateDirectory(rawDir);
28
- await writeFile(configPath, `${JSON.stringify(DEFAULT_CONFIG, null, 2)}\n`, "utf8");
30
+ await writeFile(configPath, `${JSON.stringify(INITIAL_CONFIG, null, 2)}\n`, "utf8");
29
31
  await hardenPrivateFile(configPath);
30
32
  created.push(path.relative(root, configPath));
31
33
  }
package/dist/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAE5E,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IACrD,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,MAAM,sBAAsB,CAAC,SAAS,CAAC,CAAA;IACvC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAC5D,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IACxC,MAAM,eAAe,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAA;IACpD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAA;IACrC,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;IAC3C,CAAC;IACD,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAA;QACpC,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACnF,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAA;QACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QACjD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,SAAS,CACb,UAAU,EACV,kGAAkG,EAClG,MAAM,CACP,CAAA;YACD,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAA;YACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,IAAI,MAAM,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC5B,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
package/dist/ocr.d.ts CHANGED
@@ -72,5 +72,7 @@ export declare function inspectPdfOcr(cwd?: string): Promise<PdfOcrStatus>;
72
72
  export declare function configurePdfOcr(options?: ConfigurePdfOcrOptions): Promise<ConfigurePdfOcrResult>;
73
73
  export declare function extractPdfPage(options: ExtractPdfPageOptions): Promise<string>;
74
74
  export declare function extractPdfPages(options: ExtractPdfPagesOptions): Promise<ExtractPdfPagesResult>;
75
+ /** 300 DPI, lowered so the longest rendered side stays within US Legal at 300 DPI. */
76
+ export declare function ocrRenderDpi(longSidePoints: number | undefined): number;
75
77
  export declare function pdfOcrCommandIdentity(command: string[], cwd?: string): Promise<PdfOcrCommandIdentity>;
76
78
  //# sourceMappingURL=ocr.d.ts.map
package/dist/ocr.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ocr.d.ts","sourceRoot":"","sources":["../src/ocr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ocr.d.ts","sourceRoot":"","sources":["../src/ocr.ts"],"names":[],"mappings":"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"}
package/dist/ocr.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import { createHash } from "node:crypto";
3
3
  import { createReadStream } from "node:fs";
4
- import { mkdtemp, readdir, readFile, rm, stat, writeFile } from "node:fs/promises";
4
+ import { mkdtemp, readFile, rm, stat, writeFile } from "node:fs/promises";
5
5
  import os from "node:os";
6
6
  import path from "node:path";
7
7
  import { findProjectConfig, loadConfig } from "./config.js";
@@ -14,6 +14,8 @@ const OCR_COMMAND_TIMEOUT_MS = 120_000;
14
14
  const OCR_PROBE_TIMEOUT_MS = 10_000;
15
15
  const OCR_PROCESS_KILL_GRACE_MS = 1_000;
16
16
  export const OCR_RENDER_DPI = 300;
17
+ /** Longest rendered page side in pixels: US Legal at 300 DPI, so standard paper keeps 300 DPI. */
18
+ const MAX_OCR_RENDER_PIXELS = 4_200;
17
19
  export const MAX_OCR_BATCH_PAGES = 16;
18
20
  const MINIMUM_OCRMYPDF_VERSION = { major: 12, minor: 6 };
19
21
  export function parsePdfOcrEngine(value, allowAuto = false) {
@@ -141,7 +143,7 @@ export async function extractPdfPages(options) {
141
143
  engine,
142
144
  language,
143
145
  dpi: OCR_RENDER_DPI,
144
- subprocesses: 2,
146
+ subprocesses: pages.length + 2,
145
147
  pages: pairOcrPageText(pages, await extractWithTesseract({ input, pages, language, timeoutMs, tempDir })),
146
148
  };
147
149
  }
@@ -193,38 +195,34 @@ async function extractWithOcrMyPdf(options) {
193
195
  return readFile(sidecarPath, "utf8");
194
196
  }
195
197
  async function extractWithTesseract(options) {
196
- const firstPage = options.pages[0];
197
- const lastPage = options.pages.at(-1);
198
- if (firstPage === undefined || lastPage === undefined) {
199
- throw new Error("At least one PDF page is required for OCR.");
200
- }
201
- const outputPrefix = path.join(options.tempDir, "rendered-page");
202
- await runProcess("pdftoppm", [
203
- "-f",
204
- String(firstPage),
205
- "-l",
206
- String(lastPage),
207
- "-r",
208
- String(OCR_RENDER_DPI),
209
- "-gray",
210
- "-png",
211
- options.input,
212
- outputPrefix,
213
- ], { timeoutMs: options.timeoutMs });
214
- const renderedPages = (await readdir(options.tempDir))
215
- .filter((entry) => entry.startsWith("rendered-page-") && entry.endsWith(".png"))
216
- .sort(naturalFilenameOrder);
217
- const renderedCount = lastPage - firstPage + 1;
218
- if (renderedPages.length !== renderedCount) {
219
- throw new Error(`Poppler rendered ${renderedPages.length} pages, expected ${renderedCount} for OCR.`);
220
- }
221
- const selectedPages = options.pages.map((pageNumber) => {
222
- const filename = renderedPages[pageNumber - firstPage];
223
- if (!filename) {
198
+ const longSides = await pdfPageLongSides(options);
199
+ const selectedPages = [];
200
+ for (const pageNumber of options.pages) {
201
+ const outputPrefix = path.join(options.tempDir, `rendered-page-${pageNumber}`);
202
+ // Phone scanners write PDF pages whose size is in pixels, so 300 DPI rendered them at about
203
+ // 58 megapixels, and PNG compression alone took about 26 s per page. The pixel cap and LZW
204
+ // TIFF keep a 16-page batch of such scans well inside the default OCR timeout.
205
+ await runProcess("pdftoppm", [
206
+ "-f",
207
+ String(pageNumber),
208
+ "-l",
209
+ String(pageNumber),
210
+ "-r",
211
+ String(ocrRenderDpi(longSides.get(pageNumber))),
212
+ "-gray",
213
+ "-tiff",
214
+ "-tiffcompression",
215
+ "lzw",
216
+ "-singlefile",
217
+ options.input,
218
+ outputPrefix,
219
+ ], { timeoutMs: options.timeoutMs });
220
+ const renderedPage = `${outputPrefix}.tif`;
221
+ if (!(await stat(renderedPage).catch(() => null))?.isFile()) {
224
222
  throw new Error(`Poppler did not render requested PDF page ${pageNumber}.`);
225
223
  }
226
- return path.join(options.tempDir, filename);
227
- });
224
+ selectedPages.push(renderedPage);
225
+ }
228
226
  const pageListPath = path.join(options.tempDir, "pages.txt");
229
227
  await writeFile(pageListPath, `${selectedPages.join("\n")}\n`, "utf8");
230
228
  const result = await runProcess("tesseract", [pageListPath, "stdout", "-l", options.language], {
@@ -233,6 +231,27 @@ async function extractWithTesseract(options) {
233
231
  });
234
232
  return result.stdout;
235
233
  }
234
+ /** 300 DPI, lowered so the longest rendered side stays within US Legal at 300 DPI. */
235
+ export function ocrRenderDpi(longSidePoints) {
236
+ if (longSidePoints === undefined || !(longSidePoints > 0)) {
237
+ return OCR_RENDER_DPI;
238
+ }
239
+ return Math.max(1, Math.min(OCR_RENDER_DPI, Math.floor((MAX_OCR_RENDER_PIXELS * 72) / longSidePoints)));
240
+ }
241
+ /** Longest side, in points, of each requested page; empty when Poppler `pdfinfo` is unavailable. */
242
+ async function pdfPageLongSides(options) {
243
+ const longSides = new Map();
244
+ const firstPage = options.pages[0];
245
+ const lastPage = options.pages.at(-1);
246
+ if (firstPage === undefined || lastPage === undefined) {
247
+ return longSides;
248
+ }
249
+ const result = await runProcess("pdfinfo", ["-f", String(firstPage), "-l", String(lastPage), options.input], { timeoutMs: options.timeoutMs }).catch(() => null);
250
+ for (const match of result?.stdout.matchAll(/^Page\s+(\d+)\s+size:\s+([\d.]+)\s+x\s+([\d.]+)/gmu) ?? []) {
251
+ longSides.set(Number(match[1]), Math.max(Number(match[2]), Number(match[3])));
252
+ }
253
+ return longSides;
254
+ }
236
255
  function pairOcrPageText(pages, output) {
237
256
  const pageTexts = output.replace(/\r\n?/gu, "\n").split("\f");
238
257
  if (pageTexts.length === pages.length + 1 && pageTexts.at(-1) === "") {
@@ -253,11 +272,6 @@ function normalizePdfOcrPages(pages) {
253
272
  }
254
273
  return normalized;
255
274
  }
256
- function naturalFilenameOrder(left, right) {
257
- const leftPage = Number(left.match(/(\d+)\.png$/u)?.[1]);
258
- const rightPage = Number(right.match(/(\d+)\.png$/u)?.[1]);
259
- return leftPage - rightPage;
260
- }
261
275
  export async function pdfOcrCommandIdentity(command, cwd = process.cwd()) {
262
276
  const configuredEngine = commandOption(command, "--engine");
263
277
  const engine = configuredEngine === "ocrmypdf" || configuredEngine === "tesseract"
package/dist/ocr.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ocr.js","sourceRoot":"","sources":["../src/ocr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ocr.js","sourceRoot":"","sources":["../src/ocr.ts"],"names":[],"mappings":"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"}
package/dist/query.js CHANGED
@@ -15,7 +15,7 @@ import { sanitizeRetrievalQuery } from "./query-sanitizer.js";
15
15
  import { abstentionFilter, fusionCandidateDepth, queryEvidence, rankHybridRows, rankingPolicyFingerprint, rankingPolicyFor, tokensAreLexicallyRelated, } from "./ranking.js";
16
16
  import { selectDiverseRows } from "./retrieval-diversity.js";
17
17
  import { closeIndexReadSnapshot, loadIndexReadSnapshot } from "./store.js";
18
- import { tokenize } from "./text.js";
18
+ import { normalizeForMatch, tokenize } from "./text.js";
19
19
  import { configureAdaptiveVectorQuery, vectorIndexManifestCompatible } from "./vector-index.js";
20
20
  import { runWorkload } from "./workload.js";
21
21
  // Margin over the fusion bound from fusionCandidateDepth. Deeper pools returned the same rankings on
@@ -714,7 +714,7 @@ function lexicalQuery(query) {
714
714
  const joined = tokens.join(" ");
715
715
  const broadQuery = new MatchQuery(joined, "searchText", { operator: Operator.Or });
716
716
  const supplemental = [];
717
- const identifierTerms = [...query.matchAll(LEXICAL_IDENTIFIER_PATTERN)]
717
+ const identifierTerms = [...normalizeForMatch(query).matchAll(LEXICAL_IDENTIFIER_PATTERN)]
718
718
  .map((match) => match[0])
719
719
  .filter(Boolean);
720
720
  const identifiers = [...new Set(identifierTerms)];