@oomkapwn/enquire-mcp 3.7.12 → 3.7.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +81 -0
- package/README.md +5 -5
- package/dist/http-transport.d.ts +11 -0
- package/dist/http-transport.d.ts.map +1 -1
- package/dist/http-transport.js +34 -0
- package/dist/http-transport.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/pdf.d.ts +22 -1
- package/dist/pdf.d.ts.map +1 -1
- package/dist/pdf.js +9 -2
- package/dist/pdf.js.map +1 -1
- package/dist/tool-registry.d.ts.map +1 -1
- package/dist/tool-registry.js +26 -1
- package/dist/tool-registry.js.map +1 -1
- package/dist/tools/media.d.ts.map +1 -1
- package/dist/tools/media.js +15 -6
- package/dist/tools/media.js.map +1 -1
- package/dist/tools/write.d.ts +10 -4
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +56 -14
- package/dist/tools/write.js.map +1 -1
- package/dist/vault.d.ts.map +1 -1
- package/dist/vault.js +108 -29
- package/dist/vault.js.map +1 -1
- package/docs/COMPARISON.md +1 -1
- package/docs/QUICKSTART.md +2 -2
- package/docs/api.md +1 -1
- package/docs/benchmarks.md +16 -9
- package/package.json +9 -4
- package/dist/tools.d.ts +0 -980
- package/dist/tools.d.ts.map +0 -1
- package/dist/tools.js +0 -3132
- package/dist/tools.js.map +0 -1
- package/docs/api-reference/.nojekyll +0 -1
- package/docs/api-reference/assets/hierarchy.js +0 -1
- package/docs/api-reference/assets/highlight.css +0 -71
- package/docs/api-reference/assets/icons.js +0 -18
- package/docs/api-reference/assets/icons.svg +0 -1
- package/docs/api-reference/assets/main.js +0 -60
- package/docs/api-reference/assets/navigation.js +0 -1
- package/docs/api-reference/assets/search.js +0 -1
- package/docs/api-reference/assets/style.css +0 -1633
- package/docs/api-reference/functions/index.buildEmbedText.html +0 -15
- package/docs/api-reference/functions/index.buildMcpServer.html +0 -4
- package/docs/api-reference/functions/index.formatReadyBanner.html +0 -4
- package/docs/api-reference/functions/index.main.html +0 -1
- package/docs/api-reference/functions/index.parsePositiveInt.html +0 -1
- package/docs/api-reference/functions/index.parseQuantizationMode.html +0 -5
- package/docs/api-reference/functions/index.prepareServerDeps.html +0 -5
- package/docs/api-reference/functions/index.startServer.html +0 -1
- package/docs/api-reference/functions/tools.appendToNote.html +0 -17
- package/docs/api-reference/functions/tools.archiveNote.html +0 -15
- package/docs/api-reference/functions/tools.assertHnswModelMatchesEmbedder.html +0 -13
- package/docs/api-reference/functions/tools.chatThreadAppend.html +0 -22
- package/docs/api-reference/functions/tools.chatThreadRead.html +0 -16
- package/docs/api-reference/functions/tools.contextPack.html +0 -21
- package/docs/api-reference/functions/tools.createNote.html +0 -19
- package/docs/api-reference/functions/tools.dataviewQuery.html +0 -16
- package/docs/api-reference/functions/tools.embeddingsSearch.html +0 -40
- package/docs/api-reference/functions/tools.findPath.html +0 -23
- package/docs/api-reference/functions/tools.findSimilar.html +0 -21
- package/docs/api-reference/functions/tools.frontmatterGet.html +0 -15
- package/docs/api-reference/functions/tools.frontmatterSearch.html +0 -16
- package/docs/api-reference/functions/tools.frontmatterSet.html +0 -19
- package/docs/api-reference/functions/tools.getBacklinks.html +0 -15
- package/docs/api-reference/functions/tools.getNoteNeighbors.html +0 -16
- package/docs/api-reference/functions/tools.getOpenQuestions.html +0 -19
- package/docs/api-reference/functions/tools.getOutboundLinks.html +0 -16
- package/docs/api-reference/functions/tools.getRecentEdits.html +0 -14
- package/docs/api-reference/functions/tools.getUnresolvedWikilinks.html +0 -14
- package/docs/api-reference/functions/tools.getVaultStats.html +0 -13
- package/docs/api-reference/functions/tools.lintWiki.html +0 -20
- package/docs/api-reference/functions/tools.listCanvases.html +0 -16
- package/docs/api-reference/functions/tools.listNotes.html +0 -19
- package/docs/api-reference/functions/tools.listPdfs.html +0 -15
- package/docs/api-reference/functions/tools.listTags.html +0 -14
- package/docs/api-reference/functions/tools.ocrPdf.html +0 -18
- package/docs/api-reference/functions/tools.openInUi.html +0 -17
- package/docs/api-reference/functions/tools.paperAudit.html +0 -16
- package/docs/api-reference/functions/tools.pickEmbedTextForHyde.html +0 -8
- package/docs/api-reference/functions/tools.readCanvas.html +0 -19
- package/docs/api-reference/functions/tools.readNote.html +0 -20
- package/docs/api-reference/functions/tools.readPdf.html +0 -18
- package/docs/api-reference/functions/tools.renameNote.html +0 -24
- package/docs/api-reference/functions/tools.replaceInNotes.html +0 -20
- package/docs/api-reference/functions/tools.resolveTarget.html +0 -24
- package/docs/api-reference/functions/tools.resolveWikilink.html +0 -20
- package/docs/api-reference/functions/tools.searchHybrid.html +0 -62
- package/docs/api-reference/functions/tools.searchText.html +0 -19
- package/docs/api-reference/functions/tools.semanticSearch.html +0 -19
- package/docs/api-reference/functions/tools.validateNoteProposal.html +0 -19
- package/docs/api-reference/hierarchy.html +0 -1
- package/docs/api-reference/index.html +0 -1
- package/docs/api-reference/interfaces/index.ServeOptions.html +0 -74
- package/docs/api-reference/interfaces/index.ServerDeps.html +0 -27
- package/docs/api-reference/interfaces/tool-manifest.ToolManifestEntry.html +0 -33
- package/docs/api-reference/interfaces/tools.ArchiveNoteArgs.html +0 -12
- package/docs/api-reference/interfaces/tools.BacklinkHit.html +0 -15
- package/docs/api-reference/interfaces/tools.CanvasEdge.html +0 -19
- package/docs/api-reference/interfaces/tools.CanvasSummary.html +0 -16
- package/docs/api-reference/interfaces/tools.ChatThreadAppendArgs.html +0 -10
- package/docs/api-reference/interfaces/tools.ChatThreadMessage.html +0 -14
- package/docs/api-reference/interfaces/tools.ChatThreadReadResult.html +0 -10
- package/docs/api-reference/interfaces/tools.ContextPackArgs.html +0 -12
- package/docs/api-reference/interfaces/tools.ContextPackResult.html +0 -20
- package/docs/api-reference/interfaces/tools.EmbedHit.html +0 -21
- package/docs/api-reference/interfaces/tools.EmbedSearchResponse.html +0 -14
- package/docs/api-reference/interfaces/tools.FindPathResult.html +0 -17
- package/docs/api-reference/interfaces/tools.FrontmatterSearchArgs.html +0 -20
- package/docs/api-reference/interfaces/tools.FrontmatterSetArgs.html +0 -13
- package/docs/api-reference/interfaces/tools.HnswSearchContext.html +0 -21
- package/docs/api-reference/interfaces/tools.LintWikiArgs.html +0 -14
- package/docs/api-reference/interfaces/tools.LintWikiFinding.html +0 -14
- package/docs/api-reference/interfaces/tools.LintWikiResult.html +0 -9
- package/docs/api-reference/interfaces/tools.NoteNeighbors.html +0 -17
- package/docs/api-reference/interfaces/tools.NoteReadFull.html +0 -20
- package/docs/api-reference/interfaces/tools.NoteReadMap.html +0 -25
- package/docs/api-reference/interfaces/tools.NoteSummary.html +0 -14
- package/docs/api-reference/interfaces/tools.OcrPdfArgs.html +0 -16
- package/docs/api-reference/interfaces/tools.OcrPdfPage.html +0 -15
- package/docs/api-reference/interfaces/tools.OcrPdfResult.html +0 -18
- package/docs/api-reference/interfaces/tools.OpenInUiResult.html +0 -11
- package/docs/api-reference/interfaces/tools.OpenQuestion.html +0 -20
- package/docs/api-reference/interfaces/tools.OutboundLink.html +0 -20
- package/docs/api-reference/interfaces/tools.PaperAuditFinding.html +0 -17
- package/docs/api-reference/interfaces/tools.PathStep.html +0 -9
- package/docs/api-reference/interfaces/tools.PdfSummary.html +0 -9
- package/docs/api-reference/interfaces/tools.ReadCanvasResult.html +0 -15
- package/docs/api-reference/interfaces/tools.ReadPdfArgs.html +0 -8
- package/docs/api-reference/interfaces/tools.ReadPdfPage.html +0 -13
- package/docs/api-reference/interfaces/tools.ReadPdfResult.html +0 -18
- package/docs/api-reference/interfaces/tools.RenameNoteResult.html +0 -14
- package/docs/api-reference/interfaces/tools.RenameProposal.html +0 -13
- package/docs/api-reference/interfaces/tools.ReplaceInNotesArgs.html +0 -15
- package/docs/api-reference/interfaces/tools.ReplaceInNotesFileResult.html +0 -6
- package/docs/api-reference/interfaces/tools.ReplaceInNotesResult.html +0 -21
- package/docs/api-reference/interfaces/tools.SearchHit.html +0 -16
- package/docs/api-reference/interfaces/tools.SearchHybridHit.html +0 -30
- package/docs/api-reference/interfaces/tools.SearchHybridResponse.html +0 -23
- package/docs/api-reference/interfaces/tools.SearchResponse.html +0 -13
- package/docs/api-reference/interfaces/tools.SemanticHit.html +0 -15
- package/docs/api-reference/interfaces/tools.SimilarNote.html +0 -15
- package/docs/api-reference/interfaces/tools.TagSummary.html +0 -13
- package/docs/api-reference/interfaces/tools.UnresolvedWikilink.html +0 -22
- package/docs/api-reference/interfaces/tools.ValidateProposalArgs.html +0 -10
- package/docs/api-reference/interfaces/tools.ValidateProposalResult.html +0 -14
- package/docs/api-reference/interfaces/tools.VaultStats.html +0 -26
- package/docs/api-reference/modules/index.html +0 -1
- package/docs/api-reference/modules/tool-manifest.html +0 -1
- package/docs/api-reference/modules/tools.html +0 -1
- package/docs/api-reference/types/tools.CanvasNode.html +0 -7
- package/docs/api-reference/types/tools.SearchMode.html +0 -7
- package/docs/api-reference/variables/index.VERSION.html +0 -9
- package/docs/api-reference/variables/tool-manifest.TOOL_MANIFEST.html +0 -1
- package/docs/audits/findings/L1-code-quality.md +0 -213
- package/docs/audits/findings/L2-architecture.md +0 -245
- package/docs/audits/findings/L3-tests.md +0 -339
- package/docs/audits/findings/L4-cicd.md +0 -290
- package/docs/audits/findings/L5-security.md +0 -350
- package/docs/audits/findings/L6-documentation.md +0 -347
- package/docs/audits/findings/L7-operational.md +0 -50
- package/docs/audits/findings/L8-reproducibility.md +0 -64
- package/docs/audits/findings/L9-process.md +0 -84
- package/docs/audits/findings/baseline.json +0 -19
- package/docs/audits/v3.6.0-external-anonymous-audit.md +0 -163
- package/docs/audits/v3.6.0-final-audit.md +0 -171
- package/docs/audits/v3.6.0-rc.4-rootcause.md +0 -134
- package/docs/audits/v3.6.0-system-audit-plan.md +0 -199
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,87 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
4
4
|
|
|
5
|
+
## [3.7.14] — 2026-05-18
|
|
6
|
+
|
|
7
|
+
> **TL;DR:** Round-16 self-audit on the v3.7.13 codebase — class-sweep methodology applied to the round-15 fixes. Found 5 findings: **F1** v3.7.13 silent overclaim (M1 fixed renameNote ordering but the TSDoc header still described the OLD buggy write order — 6th overclaim instance), **F2** M2 sibling (`vault.renameFile` had the same stat-then-rename TOCTOU race that M2 fixed for `writeNote`), **F3** `appendNote` had a stat-then-append race that let parallel writers bypass the `maxFileBytes` size cap, **F4** "8 required CI gates" hardcoded count was not gated by docs-consistency (v3.5.9 anti-pattern recurrence), **F5** automated `gh release create` in `release.yml` (M13 from round-15, originally deferred to v3.8.0 but trivial to land). **+1 test** (815 total), **+1 docs-consistency invariant** (required-gates count).
|
|
8
|
+
|
|
9
|
+
**Patch — round-16 self-audit batch.**
|
|
10
|
+
|
|
11
|
+
### Findings
|
|
12
|
+
|
|
13
|
+
- **F1 — v3.7.13 silent overclaim #6** (`src/tools/write.ts:145-148`). The v3.7.13 M1 fix reordered `renameNote()`'s write steps (rename first, backlinks second) and added a long comment block inside the function explaining the new order. But the function-LEVEL TSDoc header (lines 145-148, what TypeDoc publishes + IDE hover surfaces) still described the OLD ordering: *"backlink-bearing files first, source last, fs.rename last — a mid-operation crash leaves backlinks pointing at the still-present old name"*. That's the exact (LYING) comment v3.7.13 M1 replaced inside the function body — but the public-facing docstring kept it. **6th overclaim instance** documented (after v3.6.1 CRIT-1, v3.6.2 K-1 callsite count, v3.6.4 K-1 cli.ts callsites, v3.7.10 silent `files`-array miss, v3.7.11 round-13 retroactive correction). Header now matches reality + cross-references v3.7.13 M1.
|
|
14
|
+
- **F2 — `vault.renameFile` had the M2 TOCTOU race for the destination** (`src/vault.ts:633-688`). v3.7.13 M2 fixed `writeNote(overwrite=false)`'s stat-then-write race by switching to the `wx` open flag, but `renameFile(overwrite=false)` had the SAME pattern: `stat(toAbs)` → check ENOENT → `fs.rename(fromAbs, toAbs)`. POSIX `rename(2)` silently replaces the destination if it exists, so a parallel writer creating the destination between the stat and the rename would get its file clobbered by ours, bypassing the `overwrite=false` guard. Fix: use `fs.link(fromAbs, toAbs)` for the non-overwrite path. `link(2)` fails atomically with `EEXIST` when the destination exists — no stat-then-act window. After successful link, `fs.unlink(fromAbs)` completes the move semantic. `EXDEV` (cross-device link) falls back to `copyFile(..., COPYFILE_EXCL)` + `unlink` for the same atomic guarantee on bind-mounted vaults. **+1 negative-control test** firing two simultaneous `renameFile()` calls at the same destination and asserting exactly-one-success.
|
|
15
|
+
- **F3 — `appendNote` stat-then-append size-cap bypass** (`src/vault.ts:697-704`). Pre-3.7.14 the size guard was `fs.stat(abs)` → check `before.size + addition <= maxFileBytes` → `fs.appendFile(abs, addition)`. Under parallel appends, the stat could report size X, another process appended size Y between stat and our append, and our append took the file to X+Y+addition — past the cap. Fix: open the file via `fs.open(abs, "a")`, `handle.stat()` from the open fd to get the current size, check the cap, write via `handle.write()`, close in `finally`. Keeps the stat→write window inside a single kernel-held fd, and the "a" mode flag's POSIX append guarantee ensures atomic end-of-file writes.
|
|
16
|
+
- **F4 — "8 required CI gates" claim ungated** (`README.md:115`, `README.md:185`, `CLAUDE.md:29`). v3.7.13 M5 bumped the claim from 7 → 8 manually, but no test gated it against `.github/workflows/release.yml`'s actual `REQUIRED` regex. Recurrence of the v3.5.9 anti-pattern ("Hardcoded counts in docs without an invariant"). Fix: new docs-consistency invariant `'N required CI gates' claims match release.yml REQUIRED regex count` that (a) parses the `REQUIRED="lint|test \(22\)|..."` assignment, splits on `|`, counts entries; (b) cross-checks against `REQ_COUNT=N` in the same workflow (double-source-of-truth structural guard); (c) asserts every `**N**? required` claim in README + CLAUDE.md matches the actual count. If a 9th gate is added later, all three drift surfaces fail together.
|
|
17
|
+
- **F5 — Automated `gh release create` in release workflow** (`.github/workflows/release.yml:124-167`, M13 from round-15). Pre-3.7.14 README claimed *"npm + GitHub release per tag"* but `gh release create` was a manual post-release step (CONTRIBUTING.md:87). Originally deferred to v3.8.0 in round-15; landed early because it's trivial. Workflow now: extracts the matching `## [X.Y.Z]` section from `CHANGELOG.md` via `awk`, marks stable versions (`latest` dist-tag) as Latest with `--latest --target main`, marks prereleases with `--prerelease`, falls back to a CHANGELOG link if the section can't be parsed, skips with a warning if a release already exists (manual creation before the tag-push). CONTRIBUTING.md updated to reflect the new automation.
|
|
18
|
+
|
|
19
|
+
### Stats
|
|
20
|
+
|
|
21
|
+
- **815 tests** (was 813 in v3.7.13). **+2 tests**: 1 F2 negative-control (`tests/write.test.ts`) + 1 F4 invariant (`tests/docs-consistency.test.ts`).
|
|
22
|
+
- **+1 docs-consistency invariant** (required-gates count).
|
|
23
|
+
- npm tarball unchanged; v3.7.14 is a pure correctness + automation patch.
|
|
24
|
+
|
|
25
|
+
### Method
|
|
26
|
+
|
|
27
|
+
Round-16 was a SELF-audit (no external auditor), but used the round-15 fix patterns AS the audit methodology — apply each fix's class pattern across the rest of the codebase. The result: 2 real new bugs (F2/F3) that v3.7.13's external-audit-driven scope didn't catch, plus 1 silent overclaim instance (F1) of the SAME class that recurred in v3.7.10, v3.7.11, v3.7.12. **Class-pattern sweeps after every external-audit cycle is the right post-ship discipline** — externals find the entry point, the class sweep cleans up the siblings before another auditor flags them.
|
|
28
|
+
|
|
29
|
+
## [3.7.13] — 2026-05-18
|
|
30
|
+
|
|
31
|
+
> **TL;DR:** Round-15 external audit response (4th independent external audit since v3.6.0). 15 ship-ready fixes landed: 3 High (PDF page slicing pre-extraction DoS vector, HTTP stateful pre-initialize resource leak, `engines.node` floor mismatch with CI matrix), 9 Medium (renameNote rollback recovery, atomic non-overwrite create via `wx`, OCR lang regex validation, README required-gates count, per-file coverage fail-on-missing, parse-cache chmod-only-newly-created, broken docs/api.md → SECURITY.md link, benchmarks latency-column de-duplication, COMPARISON.md test-count gate), 3 Low (OCR/read_pdf page-range refine, github-metadata invariant fail-loud in CI with GH_TOKEN, exclude `docs/audits/` from npm package). **+11 tests** (813 total), with negative-controls on every new invariant. 2 audit findings already closed by v3.7.12 (L1 `.base` path normalization, L3 canvas mtimeMs leak). 7 architectural findings deferred to v3.8.0 with reasoning (M4/M6/M7/M13/L5/L6 — write-tool smoke variant, reranker-smoke-in-CI, release automation, declarations-vs-runs test count).
|
|
32
|
+
|
|
33
|
+
**Patch — round-15 external audit batch.**
|
|
34
|
+
|
|
35
|
+
### High-severity fixes
|
|
36
|
+
|
|
37
|
+
- **H1 — PDF page slicing applied AFTER full document extraction** (`src/pdf.ts` + `src/tools/media.ts`). Pre-3.7.13 `extractPdfText(buf)` iterated EVERY page of the doc, then `readPdf` sliced down to the caller's `args.pages` window. Wasted CPU/memory on big PDFs and a bearer-token DoS vector in `serve-http` (a client with a valid token could request small page ranges of 1000-page PDFs to peg the server). Fixed by adding `ExtractPdfTextOptions.pageRange` and threading the requested window through to `doc.getPage()`, so only the needed pages get deserialized. `result.pageCount` still reports the document total (read from pdfjs metadata, not from page count returned), so callers can paginate. **+4 tests** in `tests/pdf.test.ts` including negative-control that omitting `pageRange` extracts every page.
|
|
38
|
+
- **H2 — HTTP stateful mode allocated server/transport BEFORE checking that the body was `initialize`** (`src/http-transport.ts:480-516`). Any POST without `Mcp-Session-Id` allocated a fresh `McpServer` + `StreamableHTTPServerTransport` pair, then handed the body to the SDK; in some failure modes (the body not being a valid `initialize` request), `onsessioninitialized` never fired and cleanup never ran, leaking the pair. Bearer-token DoS — not anonymous, but easy for any client with a valid token to fire create-and-abandon traffic until `maxSessions` blocks further work. Fix: new `isInitializeRequest(body)` helper validates the JSON-RPC method BEFORE allocation; non-initialize POSTs are rejected with `400 -32600`. **+5 tests** in `tests/http-transport.test.ts` covering single + batch + 5 negative-control cases (tools/list, tools/call, malformed, batch-without-initialize, case-sensitivity).
|
|
39
|
+
- **H3 — `package.json#engines.node: ">=20"` was wider than the CI matrix (Node 22+24)** (`package.json:168-170`, `docs/QUICKSTART.md`). Pre-3.7.13, users on Node 20 could install the package (npm honored the loose `>=20`) but get into trouble at runtime — `pdfjs-dist@5.7+` requires `>=22.13.0`, so PDF features either crashed or silently no-op'd. CI hasn't tested Node 20 since v3.5.11, but the engines floor stayed at the old value. Fixed: bumped `engines.node` to `>=22.13.0` matching the CI matrix. Users on Node 20 now get a clean `unsupported engine` warning at install time. QUICKSTART updated to recommend pinning v3.7.12 for Node 20 use cases.
|
|
40
|
+
|
|
41
|
+
### Medium-severity fixes
|
|
42
|
+
|
|
43
|
+
- **M1 — `renameNote()` write order made backlinks inconsistent on partial failure** (`src/tools/write.ts:263-277`). Pre-3.7.13: (1) rewrite all backlink-bearing files → (2) rewrite source content at OLD path → (3) `fs.rename` OLD → NEW. If step 3 failed, backlinks were ALREADY pointing at the NEW name (rewritten in step 1) but the file was still at the OLD path — backlinks reference a phantom destination. The inline comment claimed "backlinks pointing at the still-present old name (worst case: safe, recoverable)" — but that was FALSE; step 1 had already broken them. Fix: reordered to (1) rewrite source at OLD path → (2) `fs.rename` (atomic, most-failure-prone step runs FIRST) → (3) rewrite backlinks (destination exists, so updated backlinks always resolve). Every failure mode is now recoverable by re-running the same call (each step is idempotent on re-input).
|
|
44
|
+
- **M2 — `overwrite=false` create path was not atomic** (`src/vault.ts:564-580`). Pre-3.7.13 `writeNote(..., overwrite=false)` was `stat()`-then-`writeFile()`: between the two calls, another process or parallel MCP call could create the file, and overwrite=false would silently clobber it. Fixed by using `fs.writeFile(abs, content, { flag: "wx" })` for the non-overwrite path — the kernel atomically refuses to open the file if it exists, translating to the same user-facing "Note already exists" error. **+1 integration test** firing two simultaneous `createNote()` calls against the same path and asserting exactly-one-success.
|
|
45
|
+
- **M3 — OCR `lang` was an unconstrained string** (`src/tool-registry.ts:731`). Schema accepted any string and passed it straight to `tesseract.createWorker(langs, ...)`, which downloads each requested language pack on first use (~10 MB each). A bearer-token client could request `lang: "eng+rus+jpn+chi_sim+...+ben+hin+kor+vie+tha"` to trigger N parallel pack downloads + slow multi-language OCR. Resource exhaustion DoS. Fix: schema regex `/^[a-z]{3}(_[a-z]+)?(\+[a-z]{3}(_[a-z]+)?){0,7}$/` (1-8 `+`-joined Tesseract codes, lowercase 3-letter codes with optional `_variant` suffix for regional packs like `chi_sim`, `chi_tra`). The pattern matches the standard Tesseract trained-data file naming.
|
|
46
|
+
- **M5 — README claimed "7 required" CI gates, but release.yml requires 8** (`README.md:115` + `README.md:185` + `CLAUDE.md:29`). The 8th gate (`docs` — TypeDoc generation) was added in v3.7.10's release.yml but the README + CLAUDE.md text wasn't updated. The release workflow already enforces 8 (`REQ_COUNT=8`), so the public-facing claim was simply stale. Fixed: 7 → 8 across all 3 surfaces with v3.7.10 attribution.
|
|
47
|
+
- **M8 — `scripts/check-per-file-coverage.mjs` warning-only on missing coverage entries** (`scripts/check-per-file-coverage.mjs:79-93`). If a `FLOORS` key didn't have a matching coverage entry (e.g., file renamed, vitest include-regex change excluded it), the script emitted a `WARN` and continued. So a per-file floor could silently disappear from enforcement. Fixed: `hasError = true` + clear "update FLOORS or coverage config" message; the script now exits 1 on missing entries.
|
|
48
|
+
- **M9 — `saveDiskCache()` chmod'd the parse-cache parent dir even if it pre-existed** (`src/vault.ts:361-367`). Pre-3.7.13, `await fs.chmod(cacheDir, 0o700)` ran unconditionally — clobbering perms on a custom `--cache-file` parent (e.g., a shared Dropbox folder, an NFS mount with group-readable defaults). `FtsIndex` and `EmbedDb` already use the `parentExisted` gate (only chmod if newly-created); applying the same pattern here closes the inconsistency. Fix: `stat(cacheDir).then(true).catch(false)` → if parent existed, skip the chmod; if we created it, lock perms.
|
|
49
|
+
- **M10 — `docs/api.md` linked to a non-existent README anchor** (`docs/api.md:80`). The `--persistent-cache` row referenced `[Cache & privacy](../README.md#cache--privacy)` but README has no such section — the canonical content lives at `SECURITY.md#persistent-cache-privacy-posture`. Users following the link missed the privacy warning. Fix: redirect to the real anchor in `SECURITY.md`.
|
|
50
|
+
- **M11 — Benchmark latency numbers contradicted between TL;DR and stack-config tables** (`docs/benchmarks.md:14-23` vs `:107-115`). TL;DR was re-synced in v3.7.10 (round-12 audit M-5) to A18 Pro measurements; the stack-config implementation table still carried the original M1 numbers (~110ms / ~230ms / ~520ms / ~730ms vs the new 179 / 401 / 1028 / 1344). Fix: dropped the latency column from the implementation table entirely. Latency now has a single source of truth (TL;DR, re-measured from `bench/benchmarks.json`).
|
|
51
|
+
- **M12 — `docs/COMPARISON.md` test count was stale + ungated** (`docs/COMPARISON.md:46`). Pre-3.7.13 COMPARISON said `Test count (public) | **786**` while README+package were at 787 (and 801 after v3.7.12). The previous COMPARISON docs-consistency gate covered tools+prompts but missed test count. Fix: bumped to 813 + added a new invariant that locks "**N**" in the `Test count` row against the actual `countActualTests()` result.
|
|
52
|
+
|
|
53
|
+
### Low-severity fixes
|
|
54
|
+
|
|
55
|
+
- **L2 — Invalid OCR page ranges silently returned empty success** (`src/ocr.ts:166-185`, `src/tool-registry.ts:739`). `pages: [10, 5]` made `from=10, to=5`, the loop body never executed, and the response was a successful `{ pages: [], full_text: "" }`. Clients couldn't distinguish "PDF has nothing on those pages" from "your range was invalid". Fix: schema-level `.refine(([from, to]) => to >= from)` rejects inverted ranges at the tool boundary; the library function still clamps as a defense-in-depth. Same constraint added to `obsidian_read_pdf` for parity.
|
|
56
|
+
- **L4 — `tests/github-metadata-invariant.test.ts` silently no-op'd in CI** (`tests/github-metadata-invariant.test.ts:100-127`, `.github/workflows/ci.yml`). Pre-3.7.13 the test had `if (!available) return;` (early-return without assertion) when `gh` wasn't authenticated AND `if (!meta) return;` (early-return) when `gh` was available but the API call failed (rate limit, network). Both branches let CI count the test as "passed" without verifying anything. Fix: (1) CI workflow now passes `GH_TOKEN: ${{ github.token }}` so `gh api` always works against the live repo, (2) test now fails loud with a clear error message when `gh` is available but the API fails (rate limit / network / token scope problem worth surfacing).
|
|
57
|
+
- **L7 — npm package shipped `docs/audits/` (228 KB internal audit process notes)** (`package.json#files`). Pre-3.7.13 `"files": ["dist", "docs", ...]` shipped the entire `docs/` tree. End users don't need rc-stage audit plans or `findings/L9-process.md` snapshots. Fix: explicit file list (`docs/api.md` + QUICKSTART/COMPARISON/benchmarks/http-transport.md + `docs/api-reference/`), dropping the `docs/audits/` subtree from npm tarballs.
|
|
58
|
+
|
|
59
|
+
### Audit findings already closed by v3.7.12
|
|
60
|
+
|
|
61
|
+
- **L1 — `.base` path docs say extension optional, implementation doesn't.** Closed by v3.7.12 H2 (`.base` path normalization in `readBase` mirrors `readCanvas` / `readPdf`).
|
|
62
|
+
- **L3 — Malformed canvas summaries report `mtimeMs` as `size_bytes`.** Closed by v3.7.12 M3 (`let size = 0` initialization in `listCanvases`).
|
|
63
|
+
|
|
64
|
+
### Architectural findings DEFERRED to v3.8.0
|
|
65
|
+
|
|
66
|
+
Documented inline so future audits don't re-flag:
|
|
67
|
+
|
|
68
|
+
- **M4** — HTTP transport `serve-http` doesn't accept `--enable-reranker` / `--use-hnsw` / `--include-pdfs`; docs claim "identical semantics" for those flags. Capability matrix is a docs-only fix but the underlying flag plumbing needs design work (HNSW persistence in HTTP mode, reranker model lifecycle across stateless sessions).
|
|
69
|
+
- **M6** — Real reranker smoke not enforced in CI. Adding `ENQUIRE_LOAD_RERANKER_SMOKE=1` to a CI job will download ~110 MB of BGE weights on every PR; needs a dedicated job with cache strategy.
|
|
70
|
+
- **M7** — Write-tool MCP registration + `--enabled-tools` / `--disabled-tools` filtering not smoke-tested. Requires a new smoke variant — non-trivial design.
|
|
71
|
+
- **M13** — README claims "npm + GitHub release per tag" but `gh release create` is manual per CONTRIBUTING.md. Automating this in `release.yml` is on the v3.8.0 backlog.
|
|
72
|
+
- **L5** — Public test count is `it()` declaration count, not Vitest-actually-ran count. Switching to Vitest JSON output is a meaningful design change to the count invariant.
|
|
73
|
+
- **L6** — Watcher tests timing-sensitive (chokidar polling). Refactoring to observable events / injectable watcher adapter is a multi-day test refactor.
|
|
74
|
+
|
|
75
|
+
### Stats
|
|
76
|
+
|
|
77
|
+
- **813 tests** (was 801 in v3.7.12). **+12 tests**: 4 pageRange (`tests/pdf.test.ts`), 5 isInitializeRequest (`tests/http-transport.test.ts`), 1 atomic create-race (`tests/write.test.ts`), 1 COMPARISON test-count gate + 1 STABILITY-exports invariant alignment (`tests/docs-consistency.test.ts`).
|
|
78
|
+
- **+1 docs-consistency invariant** (COMPARISON.md test count).
|
|
79
|
+
- **CI**: GH_TOKEN wired to test jobs so `tests/github-metadata-invariant.test.ts` actually runs against the live repo.
|
|
80
|
+
- **npm package**: `docs/audits/` (228 KB) removed from published tarball.
|
|
81
|
+
|
|
82
|
+
### Method
|
|
83
|
+
|
|
84
|
+
Round-15 audit found findings that 4 prior internal audits + 3 prior external audits all missed. Notably H1 (PDF page slicing) and H2 (HTTP stateful pre-check) are CPU/memory DoS vectors that became obvious only when the auditor traced the resource path end-to-end — a methodology different from the K-1 destructive-bootstrap class that previous audits emphasized. Re-confirms the v3.6.1 method note: **every minor / major needs ≥2 independent external auditors with DIFFERENT methodologies**.
|
|
85
|
+
|
|
5
86
|
## [3.7.12] — 2026-05-18
|
|
6
87
|
|
|
7
88
|
> **TL;DR:** Round-14 external audit response (3rd independent external audit; 8 High + 11 Medium + 7 Low findings on the v3.7.5 codebase, re-verified against current v3.7.11). 10 ship-ready fixes landed: 2 High (`.base` path normalization, `./tool-manifest` missing from `package.json#exports`), 4 Medium (`listCanvases` mtime-as-bytes leak, HTTP body cap below file cap, graph-boost wasted I/O on `.pdf`, HTTP docs token-env primary), 4 Low (HTTP stateless/stateful clarification, QUICKSTART version stale, reranker catalog vs verified clarification, TypeDoc `treatWarningsAsErrors`). **+14 tests** (801 total), with negative-controls on every new invariant. 2 audit findings verified as FALSE POSITIVES (audit ran on stale v3.7.5 tree — PNG asset + `examples/queries.jsonl` already present in current main). 19 architectural findings deferred to v3.8.0 backlog with reasoning.
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
[](https://github.com/oomkapwn/enquire-mcp/actions/workflows/ci.yml)
|
|
12
12
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
13
13
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
14
|
-
[](#trust)
|
|
15
15
|
[](./STABILITY.md)
|
|
16
16
|
[](https://slsa.dev/spec/v1.0/levels#build-l3)
|
|
17
17
|
[](https://modelcontextprotocol.io/)
|
|
@@ -36,7 +36,7 @@ Your Obsidian vault becomes **persistent, queryable long-term memory** for any M
|
|
|
36
36
|
> 2. **Best-in-class retrieval.** Hybrid BM25 + multilingual embeddings + BGE cross-encoder reranker fused via RRF, scaled with HNSW + int8 quantization. The same IR stack a search startup would build — open-sourced, in one binary.
|
|
37
37
|
> 3. **Zero cloud calls during serve.** Models cached locally (one-time download from HuggingFace). Your vault content never leaves your machine. Air-gap-safe by default.
|
|
38
38
|
|
|
39
|
-
**44 tools · 19 MCP prompts ·
|
|
39
|
+
**44 tools · 19 MCP prompts · 815 unit tests · 50+ languages · v3.7.x stable · semver-bound · MIT · SLSA-3 signed.**
|
|
40
40
|
|
|
41
41
|
---
|
|
42
42
|
|
|
@@ -112,7 +112,7 @@ Auto-generated **[API reference at oomkapwn.github.io/enquire-mcp](https://oomka
|
|
|
112
112
|
| **GraphRAG-light** (wikilink community detection via Louvain modularity) | ✅ **only here** | ❌ | ❌ |
|
|
113
113
|
| **Standalone `.base` query execution** (works without Obsidian running) | ✅ **only here** | ❌ | ❌ delegates to Obsidian |
|
|
114
114
|
| **HyDE retrieval** (Gao et al 2023) + sub-question decomposition | ✅ **only here** | ❌ | ❌ |
|
|
115
|
-
| **
|
|
115
|
+
| **815 unit tests · 8 required + 4 advisory CI gates per PR** | ✅ | n/a | rare |
|
|
116
116
|
| **SLSA-3 build provenance** | ✅ | n/a | ❌ |
|
|
117
117
|
| **Semver-bound public surface** ([STABILITY.md](./STABILITY.md)) | ✅ | n/a | ❌ |
|
|
118
118
|
| Standalone (no Obsidian plugin needed) | ✅ | ❌ requires Obsidian | varies |
|
|
@@ -182,7 +182,7 @@ Plus 3 MCP resources (`obsidian://vault/info`, `obsidian://note/{path}`, `obsidi
|
|
|
182
182
|
| **HTTP transport** | Bearer auth (constant-time SHA-256 + `timingSafeEqual`), per-token rate-limit, strict CORS |
|
|
183
183
|
| **Frontmatter** | `gray-matter` (`js-yaml` safeLoad) — no code execution |
|
|
184
184
|
| **Cache + index files** | chmod 0600, parent dir 0700 |
|
|
185
|
-
| **CI** | **
|
|
185
|
+
| **CI** | **8 required** branch-protection gates (lint · test ×2 [Node 22/24] · smoke · audit · coverage · version-consistency · docs) + **4 advisory** (test-macos · CodeQL ×2 · Analyze actions). Release workflow re-verifies all 8 required passed on tagged SHA before npm publish. _v3.7.10 — `docs` (TypeDoc generation gate) added to required set. v3.7.13 — `engines.node` floor bumped to `>=22.13.0` to match the CI matrix._ |
|
|
186
186
|
| **Coverage** | Lines ≥86% · statements ≥82% · functions ≥75% · branches ≥74% (gated) |
|
|
187
187
|
| **Releases** | npm + GitHub release per tag · semver · **SLSA-3** build provenance |
|
|
188
188
|
| **Stability** | v3.0+ semver-bound — every CLI flag, tool name, MCP resource, prompt, exported symbol is contract |
|
|
@@ -222,7 +222,7 @@ Channel: `npm install @oomkapwn/enquire-mcp` → latest stable. Full changelog:
|
|
|
222
222
|
```bash
|
|
223
223
|
git clone https://github.com/oomkapwn/enquire-mcp.git
|
|
224
224
|
cd enquire-mcp && npm install
|
|
225
|
-
npm test # full suite (
|
|
225
|
+
npm test # full suite (815 tests, ~5s)
|
|
226
226
|
npm run lint # zero warnings
|
|
227
227
|
npm run build # tsc → dist/
|
|
228
228
|
```
|
package/dist/http-transport.d.ts
CHANGED
|
@@ -98,6 +98,17 @@ declare class RateLimiter {
|
|
|
98
98
|
declare function verifyBearer(authHeader: string | undefined, expectedToken: string): string | null;
|
|
99
99
|
/** Read the entire request body (UTF-8 JSON). Returns undefined for empty. */
|
|
100
100
|
declare function readJsonBody(req: IncomingMessage, maxBytes: number): Promise<unknown>;
|
|
101
|
+
/**
|
|
102
|
+
* v3.7.13 H2 — detect a JSON-RPC 2.0 `initialize` request without parsing
|
|
103
|
+
* the full envelope. The body can be either a single message or a batch
|
|
104
|
+
* (JSON-RPC permits arrays); we accept both, requiring AT LEAST ONE
|
|
105
|
+
* element in a batch to be `method: "initialize"`. Returns false on
|
|
106
|
+
* anything else (including malformed bodies — the caller has already
|
|
107
|
+
* parsed JSON, so the shape is unknown but not parse-error territory).
|
|
108
|
+
*
|
|
109
|
+
* @internal — exported only for tests.
|
|
110
|
+
*/
|
|
111
|
+
export declare function isInitializeRequest(body: unknown): boolean;
|
|
101
112
|
/**
|
|
102
113
|
* Build the request handler. Factored out of the listener-creation path
|
|
103
114
|
* so tests can drive it without binding a TCP port.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../src/http-transport.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAgB,KAAK,MAAM,IAAI,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAC/G,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,cAAc,EAAwC,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAGtH;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mGAAmG;IACnG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,cAAM,WAAW;IACf,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;gBAE3C,SAAS,EAAE,MAAM;IAI7B,6DAA6D;IAC7D,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAmB,GAAG,OAAO;IAiB7D,oCAAoC;IACpC,KAAK,IAAI,IAAI;CAGd;AAED;;;;;;;;;GASG;AACH,iBAAS,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa1F;AAED,8EAA8E;AAC9E,iBAAe,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAcpF;AAwED;;;GAGG;AACH;;;;;;GAMG;AACH,UAAU,eAAe;IACvB,MAAM,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAC1C,SAAS,EAAE,YAAY,CAAC,OAAO,6BAA6B,CAAC,CAAC;IAC9D,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAChD,6EAA6E;IAC7E,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,wCAAwC;IACxC,IAAI,IAAI,MAAM,CAAC;CAChB;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,CAoB5E;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAK7E;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG1E;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,gBAAgB,GACrB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../src/http-transport.ts"],"names":[],"mappings":"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"}
|
package/dist/http-transport.js
CHANGED
|
@@ -114,6 +114,24 @@ async function readJsonBody(req, maxBytes) {
|
|
|
114
114
|
const text = Buffer.concat(chunks).toString("utf8");
|
|
115
115
|
return JSON.parse(text);
|
|
116
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* v3.7.13 H2 — detect a JSON-RPC 2.0 `initialize` request without parsing
|
|
119
|
+
* the full envelope. The body can be either a single message or a batch
|
|
120
|
+
* (JSON-RPC permits arrays); we accept both, requiring AT LEAST ONE
|
|
121
|
+
* element in a batch to be `method: "initialize"`. Returns false on
|
|
122
|
+
* anything else (including malformed bodies — the caller has already
|
|
123
|
+
* parsed JSON, so the shape is unknown but not parse-error territory).
|
|
124
|
+
*
|
|
125
|
+
* @internal — exported only for tests.
|
|
126
|
+
*/
|
|
127
|
+
export function isInitializeRequest(body) {
|
|
128
|
+
if (Array.isArray(body))
|
|
129
|
+
return body.some(isInitializeRequest);
|
|
130
|
+
if (!body || typeof body !== "object")
|
|
131
|
+
return false;
|
|
132
|
+
const method = body.method;
|
|
133
|
+
return method === "initialize";
|
|
134
|
+
}
|
|
117
135
|
/** Send a JSON-RPC error response with the given HTTP + RPC status. */
|
|
118
136
|
function sendJsonRpcError(res, httpStatus, code, message) {
|
|
119
137
|
if (res.headersSent)
|
|
@@ -402,6 +420,22 @@ export function createHttpHandler(deps, opts) {
|
|
|
402
420
|
}));
|
|
403
421
|
return;
|
|
404
422
|
}
|
|
423
|
+
// v3.7.13 H2 — verify the body is an `initialize` JSON-RPC request
|
|
424
|
+
// BEFORE we allocate a server + transport. Pre-3.7.13, any POST
|
|
425
|
+
// without `Mcp-Session-Id` allocated both, then handed the body to
|
|
426
|
+
// the SDK; if the body wasn't `initialize`, the SDK would either
|
|
427
|
+
// reject internally or surface a protocol error — but in some
|
|
428
|
+
// failure modes `onsessioninitialized` never fires and cleanup
|
|
429
|
+
// never runs, leaking the McpServer + transport pair. Bearer-token
|
|
430
|
+
// DoS: not anonymous, but easy for any client with a valid token
|
|
431
|
+
// to fire create-and-abandon traffic until `maxSessions` blocks
|
|
432
|
+
// further work. This pre-validation short-circuits the leak by
|
|
433
|
+
// rejecting non-initialize POSTs at the JSON-RPC level before any
|
|
434
|
+
// allocation.
|
|
435
|
+
if (!isInitializeRequest(body)) {
|
|
436
|
+
sendJsonRpcError(res, 400, -32600, "First POST without Mcp-Session-Id header must be a JSON-RPC `initialize` request");
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
405
439
|
// Allocate session: server + transport with a fresh session id.
|
|
406
440
|
// The SDK's `sessionIdGenerator` returns a UUID; the transport
|
|
407
441
|
// sets the `Mcp-Session-Id` response header automatically on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../src/http-transport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../src/http-transport.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* + `McpServer({version})`) and `src/tool-registry.ts` (used in the
|
|
8
8
|
* `vault-info` resource payload).
|
|
9
9
|
*/
|
|
10
|
-
export declare const VERSION = "3.7.
|
|
10
|
+
export declare const VERSION = "3.7.14";
|
|
11
11
|
export { main } from "./cli.js";
|
|
12
12
|
export { buildEmbedText, buildMcpServer, formatReadyBanner, prepareServerDeps, type ServeOptions, type ServerDeps, startServer } from "./server.js";
|
|
13
13
|
export { parsePositiveInt, parseQuantizationMode } from "./tool-registry.js";
|
package/dist/index.js
CHANGED
|
@@ -32,7 +32,7 @@ import { main } from "./cli.js";
|
|
|
32
32
|
* + `McpServer({version})`) and `src/tool-registry.ts` (used in the
|
|
33
33
|
* `vault-info` resource payload).
|
|
34
34
|
*/
|
|
35
|
-
export const VERSION = "3.7.
|
|
35
|
+
export const VERSION = "3.7.14";
|
|
36
36
|
// Re-exports — preserve the v3.5.x public surface so http-transport.ts and
|
|
37
37
|
// tests don't need to know about the new module layout. The set below
|
|
38
38
|
// exactly matches the v3.5.x `export` declarations: `main`,
|
package/dist/pdf.d.ts
CHANGED
|
@@ -37,6 +37,27 @@ export interface PdfExtractionResult {
|
|
|
37
37
|
modDate?: string;
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Optional options for {@link extractPdfText}.
|
|
42
|
+
*
|
|
43
|
+
* v3.7.13 H1 — `pageRange` lets callers limit which pages get loaded by
|
|
44
|
+
* pdfjs. Pre-3.7.13, `extractPdfText` ALWAYS iterated `pageCount` pages
|
|
45
|
+
* even when the caller only wanted pages 1-3 of a 1000-page PDF, then
|
|
46
|
+
* `obsidian_read_pdf` sliced down to the requested window post-hoc. That
|
|
47
|
+
* was wasted CPU/memory and a bearer-token DoS vector in `serve-http`
|
|
48
|
+
* (a client with a valid token could request small page ranges of huge
|
|
49
|
+
* PDFs to peg the server). Passing the range down to `doc.getPage()`
|
|
50
|
+
* means we only deserialize the pages we need.
|
|
51
|
+
*/
|
|
52
|
+
export interface ExtractPdfTextOptions {
|
|
53
|
+
/** 1-indexed inclusive page range. `to >= from > 0`. Values are clamped
|
|
54
|
+
* to the document's actual `pageCount` if out-of-range. When `undefined`,
|
|
55
|
+
* every page is extracted (legacy behavior). */
|
|
56
|
+
pageRange?: {
|
|
57
|
+
from: number;
|
|
58
|
+
to: number;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
40
61
|
/**
|
|
41
62
|
* Extract text from a PDF buffer. Memory-mode — caller has already
|
|
42
63
|
* loaded the file. Use `vault.readBinaryFile(relPath)` to get the
|
|
@@ -46,6 +67,6 @@ export interface PdfExtractionResult {
|
|
|
46
67
|
* Throws on encrypted PDFs without a password or on hard-corrupt files.
|
|
47
68
|
* Returns empty pages (with `isEmpty: true`) for image-only scans.
|
|
48
69
|
*/
|
|
49
|
-
export declare function extractPdfText(buffer: Buffer): Promise<PdfExtractionResult>;
|
|
70
|
+
export declare function extractPdfText(buffer: Buffer, opts?: ExtractPdfTextOptions): Promise<PdfExtractionResult>;
|
|
50
71
|
export declare function isPdfjsAvailable(): Promise<boolean>;
|
|
51
72
|
//# sourceMappingURL=pdf.d.ts.map
|
package/dist/pdf.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../src/pdf.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB;gEAC4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,QAAQ,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AA0BD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../src/pdf.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB;gEAC4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,QAAQ,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AA0BD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,qBAAqB;IACpC;;qDAEiD;IACjD,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,qBAA0B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA2FnH;AAQD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CASzD"}
|
package/dist/pdf.js
CHANGED
|
@@ -63,7 +63,7 @@ async function loadPdfjs() {
|
|
|
63
63
|
* Throws on encrypted PDFs without a password or on hard-corrupt files.
|
|
64
64
|
* Returns empty pages (with `isEmpty: true`) for image-only scans.
|
|
65
65
|
*/
|
|
66
|
-
export async function extractPdfText(buffer) {
|
|
66
|
+
export async function extractPdfText(buffer, opts = {}) {
|
|
67
67
|
const pdfjs = await loadPdfjs();
|
|
68
68
|
// Convert Buffer → Uint8Array (pdfjs accepts both, but the typed-array
|
|
69
69
|
// path skips a copy in some Node builds).
|
|
@@ -79,7 +79,14 @@ export async function extractPdfText(buffer) {
|
|
|
79
79
|
const doc = await loadingTask.promise;
|
|
80
80
|
const pageCount = doc.numPages;
|
|
81
81
|
const pages = [];
|
|
82
|
-
|
|
82
|
+
// v3.7.13 H1 — restrict the iteration to the requested window so
|
|
83
|
+
// doc.getPage() / getTextContent() only fire on pages the caller asked
|
|
84
|
+
// for. `pageRange.from / to` are clamped against the actual pageCount;
|
|
85
|
+
// an inverted or out-of-range range yields an empty iteration (the
|
|
86
|
+
// earlier full-document extraction was the resource-leak path).
|
|
87
|
+
const fromPage = opts.pageRange ? Math.max(1, opts.pageRange.from) : 1;
|
|
88
|
+
const toPage = opts.pageRange ? Math.min(pageCount, opts.pageRange.to) : pageCount;
|
|
89
|
+
for (let i = fromPage; i <= toPage; i++) {
|
|
83
90
|
try {
|
|
84
91
|
const page = await doc.getPage(i);
|
|
85
92
|
const content = await page.getTextContent();
|
package/dist/pdf.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf.js","sourceRoot":"","sources":["../src/pdf.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,sEAAsE;AACtE,uEAAuE;AACvE,qEAAqE;AACrE,oEAAoE;AACpE,iEAAiE;AACjE,qCAAqC;AACrC,EAAE;AACF,wBAAwB;AACxB,EAAE;AACF,sEAAsE;AACtE,uEAAuE;AACvE,qEAAqE;AACrE,kDAAkD;AAClD,EAAE;AACF,yEAAyE;AACzE,wEAAwE;AACxE,gEAAgE;AAChE,oEAAoE;AACpE,sDAAsD;AACtD,EAAE;AACF,iEAAiE;AACjE,kEAAkE;AAClE,iEAAiE;AACjE,qEAAqE;AACrE,EAAE;AACF,wEAAwE;AACxE,mEAAmE;AACnE,+BAA+B;AAC/B,EAAE;AACF,iEAAiE;AACjE,oEAAoE;AACpE,iEAAiE;AA4CjE;;;;;;;;GAQG;AACH,KAAK,UAAU,SAAS;IACtB,IAAI,CAAC;QACH,+DAA+D;QAC/D,6DAA6D;QAC7D,uDAAuD;QACvD,OAAO,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAA2C,CAAC;IACrG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,oFAAoF;YAClF,oEAAoE,GAAG,EAAE,CAC5E,CAAC;IACJ,CAAC;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"pdf.js","sourceRoot":"","sources":["../src/pdf.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAE3F,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAyC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CA8DrF;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,qBAAqB,EAAE,OAAO;AAC9B;;;;GAIG;AACH,cAAc,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAW;AAC/D;;;;GAIG;AACH,WAAW,GAAE,UAAU,CAAC,aAAa,CAAQ,GAC5C,IAAI,
|
|
1
|
+
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAE3F,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAyC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CA8DrF;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,qBAAqB,EAAE,OAAO;AAC9B;;;;GAIG;AACH,cAAc,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAW;AAC/D;;;;GAIG;AACH,WAAW,GAAE,UAAU,CAAC,aAAa,CAAQ,GAC5C,IAAI,CAq3BN;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CA2JxE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAoD1F;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAsDvE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CASzF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAI/F"}
|
package/dist/tool-registry.js
CHANGED
|
@@ -486,8 +486,16 @@ hnswContext = null) {
|
|
|
486
486
|
annotations: { ...READ_ONLY, title: "Read PDF" },
|
|
487
487
|
inputSchema: {
|
|
488
488
|
path: z.string().describe("Vault-relative path of the .pdf file (with or without .pdf)"),
|
|
489
|
+
// v3.7.13 L2 — schema-level rejection of inverted ranges (parity
|
|
490
|
+
// with obsidian_ocr_pdf). Pre-3.7.13 a `[10, 5]` request flowed
|
|
491
|
+
// through to readPdf's silent fallback (range ignored, full doc
|
|
492
|
+
// extracted) — actively worse than the OCR path because the
|
|
493
|
+
// entire PDF still got iterated by pdfjs. Now rejected upfront.
|
|
489
494
|
pages: z
|
|
490
495
|
.tuple([z.number().int().positive(), z.number().int().positive()])
|
|
496
|
+
.refine(([from, to]) => to >= from, {
|
|
497
|
+
message: "pages: 'to' must be >= 'from' (1-indexed inclusive range)"
|
|
498
|
+
})
|
|
491
499
|
.optional()
|
|
492
500
|
.describe("Optional 1-indexed inclusive page range, e.g. [2, 5] reads pages 2..5"),
|
|
493
501
|
include_metadata: z.boolean().optional().describe("Include doc-level metadata in result (default true)")
|
|
@@ -504,12 +512,29 @@ hnswContext = null) {
|
|
|
504
512
|
annotations: { ...READ_ONLY, title: "OCR PDF" },
|
|
505
513
|
inputSchema: {
|
|
506
514
|
path: z.string().describe("Vault-relative path of the .pdf file (with or without .pdf)"),
|
|
515
|
+
// v3.7.13 M3 — `lang` is passed straight to `tesseract.createWorker`,
|
|
516
|
+
// which downloads each requested language pack on first use (~10 MB
|
|
517
|
+
// each, cached). A bearer-token client could request many language
|
|
518
|
+
// combinations to trigger repeated downloads + slow OCR jobs — a
|
|
519
|
+
// resource-exhaustion DoS vector. Schema constraint: 1-8 entries,
|
|
520
|
+
// each a 3-letter Tesseract code (lowercase, optionally suffixed
|
|
521
|
+
// with `_<variant>` for regional packs like `chi_sim`, `chi_tra`).
|
|
522
|
+
// The pattern accepts the common Tesseract trained-data file
|
|
523
|
+
// naming (https://tesseract-ocr.github.io/tessdoc/Data-Files.html).
|
|
507
524
|
lang: z
|
|
508
525
|
.string()
|
|
526
|
+
.regex(/^[a-z]{3}(_[a-z]+)?(\+[a-z]{3}(_[a-z]+)?){0,7}$/, "lang must be 1-8 '+'-joined Tesseract codes (3 lowercase letters, optional `_variant` suffix). Example: 'eng', 'rus', 'chi_sim', 'eng+rus'.")
|
|
509
527
|
.optional()
|
|
510
|
-
.describe("Tesseract language pack(s). Default 'eng'. Multi-lang via '+': 'eng+rus' for English+Russian mixed scans. Common: 'eng', 'rus', 'jpn', 'chi_sim', 'fra', 'deu'."),
|
|
528
|
+
.describe("Tesseract language pack(s). Default 'eng'. Multi-lang via '+': 'eng+rus' for English+Russian mixed scans (max 8 packs per call). Common: 'eng', 'rus', 'jpn', 'chi_sim', 'fra', 'deu'."),
|
|
529
|
+
// v3.7.13 L2 — schema-level rejection of inverted ranges. Pre-3.7.13
|
|
530
|
+
// a `pages: [10, 5]` request flowed through to `ocr.ts:166-170` where
|
|
531
|
+
// `[from=10, to=5]` made the loop body never execute and returned an
|
|
532
|
+
// empty "success" result. Now rejected at the boundary.
|
|
511
533
|
pages: z
|
|
512
534
|
.tuple([z.number().int().positive(), z.number().int().positive()])
|
|
535
|
+
.refine(([from, to]) => to >= from, {
|
|
536
|
+
message: "pages: 'to' must be >= 'from' (1-indexed inclusive range)"
|
|
537
|
+
})
|
|
513
538
|
.optional()
|
|
514
539
|
.describe("Optional 1-indexed inclusive page range, e.g. [2, 5] OCRs pages 2..5"),
|
|
515
540
|
scale: z
|