@oomkapwn/enquire-mcp 3.11.4-rc.2 → 3.11.4
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 +8 -0
- package/README.ar.md +3 -3
- package/README.de.md +4 -4
- package/README.es.md +2 -2
- package/README.fr.md +4 -4
- package/README.hi.md +3 -3
- package/README.ja.md +3 -3
- package/README.ko.md +4 -4
- package/README.md +4 -4
- package/README.pt.md +4 -4
- package/README.ru.md +4 -4
- package/README.zh.md +3 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/docs/COMPARISON.md +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
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.11.4] — 2026-07-01
|
|
6
|
+
|
|
7
|
+
> **TL;DR:** **v3.11.4 STABLE — promoted `@rc` → `@latest`.** A fresh from-scratch **8-lens post-v3.11.3 audit** (code-core · code-recent · security/DoS/ReDoS · privacy/leak · concurrency · supply-chain · docs-currency · test-infra), each finding adversarially refuted-or-confirmed, returned **4 confirmed (1 MED + 3 LOW), 0 CRIT / 0 HIGH, 0 false positives** — an exceptionally clean bill of health. **MED (regression):** `replace_in_notes`/`rename_note` silently flattened CRLF/CR/U+2028/U+2029 line endings to LF across the whole file (the rc.23 `splitLines` migration made the split terminator-aware but left the rejoin a hard-coded `join("\n")`); fixed with a new `splitLinesWithEnds` (preserves each line's own terminator) + behavioral round-trip tests. **3 LOW:** a `get_note_neighbors` outbound-neighbor-past-cap misclassification, 9 translation test-count badges stale, and a parser-cap invariant's block-wide (rather than per-field) token search. Separately, the **4 open dependabot PRs** were evaluated and bundled (js-yaml 5.2.0, pdfjs-dist 6.1.200, `@napi-rs/canvas` 1.0.2, dev `@biomejs/biome` 2.5.1 + `@types/node` 26.0.1) — all in-range, behaviorally re-verified, no new advisories. **The MANDATORY pre-promotion re-sweep then caught the audit's OWN fix recursing its own class**: the parser-cap fix's field-boundary regex required `field: z.` (dot immediately after `z`), so it silently bled through the DOMINANT `field: z\n .string()...` multi-line convention (58 of 160 fields in `tool-registry.ts`) — reproduced empirically by removing a real cap and watching the invariant still pass on a sibling's cap. Fixed (`z\b` word-boundary) and re-verified against the identical mutation. Test count 1441 → **1446**. **46 tools · 19 prompts · 1446 tests · 11 languages · 0 CodeQL · 0 open dependabot.** No API breaks (additive patch). CI publishes `@latest` + signed provenance (SLSA L2) + OIDC MCP-registry sync. **Per-RC detail: rc.1 → rc.3 below.** **Lesson: this release is the session's clearest proof of its own central discipline — a full audit found real findings, and the MANDATORY pre-promotion re-sweep then found that one of the audit's OWN fixes recursed the exact class it closed. Neither gate alone would have caught it; both together did.**
|
|
8
|
+
|
|
9
|
+
## [3.11.4-rc.3] — 2026-06-30
|
|
10
|
+
|
|
11
|
+
> **TL;DR:** **the MANDATORY pre-promotion re-sweep caught rc.2's OWN fix recursing its own class.** Before flipping v3.11.4 → `@latest`, a 3-lens re-sweep of the rc.1+rc.2 diff verified everything — and lens 2 found rc.2's `fieldSlice` (the PARSERCAP-FIELD-1 fix) required `field: z.` (dot immediately after `z`), so it only recognized the single-line schema shape and silently bled through EVERY multi-line `field: z\n .string()...` chain — **58 of 160 fields in `tool-registry.ts`, the codebase's DOMINANT convention** — into the next field's slice. Reproduced empirically: removing the real `.max(MAX_QUERY_LEN)` cap from `obsidian_hyde_search`'s `query` field still passed the invariant (it found the sibling `hypothetical_answer`'s cap instead). **Fixed** — `z\b` (word-boundary, not a literal dot) recognizes both shapes; the exact HyDE-shaped mutation now correctly fails; a matching multi-line NEGATIVE control added. Also closed the re-sweep's one minor: a dedicated behavioral regression test for `getNoteNeighbors`' NEIGHBORS-OUTBOUND-CAP-2 fix (an outbound neighbor past the display cap must never leak into `tag_siblings`) — previously verified only ad hoc. Test count 1445 → **1446**. No behavior change beyond the two test-infra fixes. Ships `@rc`. **Lesson (the session's signature pattern, once more): an audit-driven fix must be re-probed with the EXACT shape the codebase actually uses — the fix's own synthetic test corpus only covered the shape the auditor happened to write, not the dominant real-world shape; the pre-promotion re-sweep exists precisely to catch this before it reaches `@latest`.**
|
|
12
|
+
|
|
5
13
|
## [3.11.4-rc.2] — 2026-06-30
|
|
6
14
|
|
|
7
15
|
> **TL;DR:** **full-audit response — 4 confirmed findings (1 MED + 3 LOW), 0 CRIT / 0 HIGH.** A from-scratch 8-lens audit of the whole shipped v3.11.x line (code · security/DoS/ReDoS · privacy/leak · concurrency · supply-chain · docs-currency · test-infra), each finding adversarially refuted-or-confirmed (4/4 confirmed, 0 false positives). **MED — CRLF write-back regression:** `replace_in_notes` / `rename_note` silently flattened CRLF / CR / U+2028 / U+2029 line endings to LF across the WHOLE file — a regression from the rc.23 `splitLines` migration (split became terminator-aware but the rejoin stayed a hard-coded `out.join("\n")`). Fixed with a new `splitLinesWithEnds` (a capturing split preserving each line's own terminator) + a behavioral round-trip guard (the inventory invariant only forbade raw `split("\n")`, never checked the join). **LOW — `get_note_neighbors`:** a true outbound neighbor past the display cap (default 20) was mis-surfaced as a `tag_sibling`; `seenOut` now tracks ALL resolved outbound destinations (cheap O(1) lookups) while only the expensive readNote/display is capped. **LOW — i18n test-count:** the 9 translation tests badges + code-blocks were stale at 1440 (the rc.1 bump synced only en/fr); bumped + a new **language-neutral badge guard** (every README `tests-N` badge === actual). **LOW — parser-cap invariant soundness:** `fieldHasCap` did a block-wide token search, so a per-field cap drop on a multi-field tool could hide behind a sibling's cap; tightened to bind the cap to the field's own schema slice + a per-field NEGATIVE control. **No CRIT/HIGH and 0 false positives across 8 lenses — the codebase audited exceptionally clean.** Test count 1441 → **1445** (+4 CRLF round-trips). Ships `@rc`. **Lesson: an audit-driven fix (rc.23 splitLines) can leave an un-migrated leg (the join) live for many RCs — the durable guard is a behavioral round-trip, not a split-only inventory grep; and a structural detector must bind a property to its specific subject (field), not search the whole block.**
|
package/README.ar.md
CHANGED
|
@@ -56,7 +56,7 @@ claude mcp add obsidian -- npx -y @oomkapwn/enquire-mcp serve --vault ~/Document
|
|
|
56
56
|
> 3. **صفر استدعاءات سحابية أثناء التشغيل.** نموذج التضمين يعمل **على جهازك** ويُفهرس markdown الذي كتبته **أنت** — ولهذا فهو تنزيل محلي لمرة واحدة (~110 ميغابايت)، لا مفتاح API سحابي. الرسوخ والخصوصية لهما ثمن، ولا ندّعي خلاف ذلك: محتوى مكتبتك لا يغادر جهازك أبداً، وهي آمنة للعمل المعزول (air-gap) افتراضياً ([مفروضة بالكود](./SECURITY.md)، لا مجرّد طموح).
|
|
57
57
|
> 4. **استدعاء واعٍ بالحداثة.** تُبلّغ كل نتيجة عن عمر الملاحظة؛ وإعادة الترتيب الاختيارية بالحداثة تتيح للوكيل تفضيل المعرفة الحديثة ووسم الحقائق القديمة لإعادة التحقق — حدود "الوعي بالنسيان"، مبنيّة على `mtime` الذي تملكه ملفاتك أصلاً.
|
|
58
58
|
|
|
59
|
-
**46 أداة · 19 موجِّه MCP ·
|
|
59
|
+
**46 أداة · 19 موجِّه MCP · 1446+ اختبار وحدة · 50+ لغة · إصدار مستقر v3.11.x · مُقيَّد بالـ semver · MIT · إثبات بناء npm (SLSA L2).**
|
|
60
60
|
|
|
61
61
|
</div>
|
|
62
62
|
|
|
@@ -90,7 +90,7 @@ claude mcp add obsidian -- npx -y @oomkapwn/enquire-mcp serve --vault ~/Document
|
|
|
90
90
|
| **GraphRAG-light** (كشف مجتمعات Wikilink بمعامل Louvain) | ✅ **حصرياً هنا** | ❌ | ❌ |
|
|
91
91
|
| **تنفيذ استعلام `.base` مستقل** (يعمل دون تشغيل Obsidian) | ✅ **حصرياً هنا** | ❌ | ❌ يفوّض إلى Obsidian |
|
|
92
92
|
| **استرجاع HyDE** (Gao et al 2023) + تفكيك الأسئلة الفرعية | ✅ **حصرياً هنا** | ❌ | ❌ |
|
|
93
|
-
| **
|
|
93
|
+
| **1446 اختبار وحدة · 9 بوابات CI إلزامية + 5 إرشادية لكل PR** | ✅ | غير منطبق | نادر |
|
|
94
94
|
| **إثبات بناء موقَّع** (npm + Sigstore، SLSA Build L2) | ✅ | غير منطبق | ❌ |
|
|
95
95
|
| **سطح عام مُقيَّد بالـ semver** ([STABILITY.md](./STABILITY.md)) | ✅ | غير منطبق | ❌ |
|
|
96
96
|
| تشغيل مستقل (لا حاجة لإضافة Obsidian) | ✅ | ❌ يتطلب Obsidian | متفاوت |
|
|
@@ -409,7 +409,7 @@ graph LR
|
|
|
409
409
|
```bash
|
|
410
410
|
git clone https://github.com/oomkapwn/enquire-mcp.git
|
|
411
411
|
cd enquire-mcp && npm install
|
|
412
|
-
npm test # full suite (
|
|
412
|
+
npm test # full suite (1446 tests, ~12s)
|
|
413
413
|
npm run lint # zero warnings
|
|
414
414
|
npm run build # tsc → dist/
|
|
415
415
|
```
|
package/README.de.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
[](https://github.com/oomkapwn/enquire-mcp/actions/workflows/ci.yml)
|
|
18
18
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
19
19
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
20
|
-
[](#️-vertrauen)
|
|
21
21
|
[](./STABILITY.md)
|
|
22
22
|
[](https://slsa.dev/spec/v1.0/levels#build-l2)
|
|
23
23
|
[](https://modelcontextprotocol.io/)
|
|
@@ -55,7 +55,7 @@ Ihr Obsidian-Vault wird zum **persistenten, abfragbaren Langzeitgedächtnis** f
|
|
|
55
55
|
> 3. **Null Cloud-Aufrufe während des Servings.** Das Embedding-Modell läuft **auf Ihrem Rechner** und indexiert das von **Ihnen** geschriebene Markdown — deshalb ist es ein einmaliger lokaler Download (~110 MB), kein Cloud-API-Schlüssel. Verankert + privat gibt es nicht umsonst, und wir tun nicht so: Der Inhalt Ihres Vaults verlässt niemals Ihren Rechner, standardmäßig air-gap-sicher ([erzwungen](./SECURITY.md), nicht nur angestrebt).
|
|
56
56
|
> 4. **Frischebewusster Abruf.** Jeder Treffer meldet, wie alt die Notiz ist; das optionale Reranking nach Aktualität erlaubt es einem Agenten, frisches Wissen zu bevorzugen und veraltete Fakten zur erneuten Überprüfung zu markieren — die vergessensbewusste Front, aufgebaut auf der `mtime`, die Ihre Dateien bereits besitzen.
|
|
57
57
|
|
|
58
|
-
**46 Tools · 19 MCP-Prompts ·
|
|
58
|
+
**46 Tools · 19 MCP-Prompts · 1446+ Unit-Tests · 50+ Sprachen · v3.11.x stable · semver-gebunden · MIT · npm-Build-Provenienz (SLSA L2).**
|
|
59
59
|
|
|
60
60
|
---
|
|
61
61
|
|
|
@@ -83,7 +83,7 @@ Ihr Obsidian-Vault wird zum **persistenten, abfragbaren Langzeitgedächtnis** f
|
|
|
83
83
|
| **GraphRAG-light** (Wikilink-Community-Erkennung via Louvain-Modularität) | ✅ **nur hier** | ❌ | ❌ |
|
|
84
84
|
| **Eigenständige `.base`-Abfrageausführung** (funktioniert ohne laufendes Obsidian) | ✅ **nur hier** | ❌ | ❌ delegiert an Obsidian |
|
|
85
85
|
| **HyDE-Retrieval** (Gao et al. 2023) + Teilfragen-Zerlegung | ✅ **nur hier** | ❌ | ❌ |
|
|
86
|
-
| **
|
|
86
|
+
| **1446 Unit-Tests · 9 erforderliche + 5 beratende CI-Gates pro PR** | ✅ | n. z. | selten |
|
|
87
87
|
| **Signierte Build-Provenienz** (npm + Sigstore, SLSA Build L2) | ✅ | n. z. | ❌ |
|
|
88
88
|
| **Semver-gebundene öffentliche Oberfläche** ([STABILITY.md](./STABILITY.md)) | ✅ | n. z. | ❌ |
|
|
89
89
|
| Eigenständig (kein Obsidian-Plugin nötig) | ✅ | ❌ erfordert Obsidian | variiert |
|
|
@@ -322,7 +322,7 @@ Kanal: `npm install @oomkapwn/enquire-mcp` → neueste stabile Version (`@latest
|
|
|
322
322
|
```bash
|
|
323
323
|
git clone https://github.com/oomkapwn/enquire-mcp.git
|
|
324
324
|
cd enquire-mcp && npm install
|
|
325
|
-
npm test # vollständige Suite (
|
|
325
|
+
npm test # vollständige Suite (1446 Tests, ~12 s)
|
|
326
326
|
npm run lint # null Warnungen
|
|
327
327
|
npm run build # tsc → dist/
|
|
328
328
|
```
|
package/README.es.md
CHANGED
|
@@ -48,7 +48,7 @@ Tu bóveda de Obsidian se convierte en **memoria a largo plazo persistente y con
|
|
|
48
48
|
> 3. **Cero llamadas a la nube durante el servicio.** El modelo de embeddings se ejecuta **en tu máquina** e indexa el markdown que **tú** escribiste: por eso es una descarga local única (~110 MB), no una clave de API en la nube. Estar anclado y ser privado no sale gratis, y no fingimos que sí: el contenido de tu bóveda nunca sale de tu máquina, seguro para entornos aislados por defecto ([garantizado](./SECURITY.md), no aspiracional).
|
|
49
49
|
> 4. **Recuperación consciente de la frescura.** Cada resultado informa de la antigüedad de la nota; el reordenamiento por recencia opcional permite que un agente prefiera el conocimiento reciente y marque los hechos obsoletos para reverificación: la frontera consciente del olvido, construida sobre el `mtime` que tus archivos ya tienen.
|
|
50
50
|
|
|
51
|
-
**46 herramientas · 19 prompts MCP ·
|
|
51
|
+
**46 herramientas · 19 prompts MCP · 1446+ pruebas unitarias · 50+ idiomas · v3.11.x estable · ligado a semver · MIT · procedencia de compilación en npm (SLSA L2).**
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
@@ -76,7 +76,7 @@ Tu bóveda de Obsidian se convierte en **memoria a largo plazo persistente y con
|
|
|
76
76
|
| **GraphRAG-light** (detección de comunidades de wikilinks por modularidad de Louvain) | ✅ **solo aquí** | ❌ | ❌ |
|
|
77
77
|
| **Ejecución autónoma de consultas `.base`** (funciona sin Obsidian abierto) | ✅ **solo aquí** | ❌ | ❌ delega en Obsidian |
|
|
78
78
|
| **Recuperación HyDE** (Gao et al. 2023) + descomposición en subpreguntas | ✅ **solo aquí** | ❌ | ❌ |
|
|
79
|
-
| **
|
|
79
|
+
| **1446 pruebas unitarias · 9 puertas de CI requeridas + 5 indicativas por PR** | ✅ | n/d | raro |
|
|
80
80
|
| **Procedencia de compilación firmada** (npm + Sigstore, SLSA Build L2) | ✅ | n/d | ❌ |
|
|
81
81
|
| **Superficie pública ligada a semver** ([STABILITY.md](./STABILITY.md)) | ✅ | n/d | ❌ |
|
|
82
82
|
| Autónomo (sin necesidad de plugin de Obsidian) | ✅ | ❌ requiere Obsidian | varía |
|
package/README.fr.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
[](https://github.com/oomkapwn/enquire-mcp/actions/workflows/ci.yml)
|
|
16
16
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
17
17
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
18
|
-
[](#️-confiance)
|
|
19
19
|
[](./STABILITY.md)
|
|
20
20
|
[](https://slsa.dev/spec/v1.0/levels#build-l2)
|
|
21
21
|
[](https://modelcontextprotocol.io/)
|
|
@@ -53,7 +53,7 @@ Votre coffre Obsidian devient une **mémoire à long terme persistante et interr
|
|
|
53
53
|
> 3. **Zéro appel au cloud pendant le service.** Modèles mis en cache localement (téléchargement unique depuis HuggingFace). Le contenu de votre coffre ne quitte jamais votre machine. Sûr en environnement isolé par défaut.
|
|
54
54
|
> 4. **Rappel conscient de la fraîcheur.** Chaque résultat indique l'âge de la note ; le reclassement par récence optionnel permet à un agent de préférer le savoir frais et de signaler les faits périmés à revérifier — la frontière consciente de l'oubli, bâtie sur le `mtime` que vos fichiers possèdent déjà.
|
|
55
55
|
|
|
56
|
-
**46 outils · 19 prompts MCP ·
|
|
56
|
+
**46 outils · 19 prompts MCP · 1446+ tests unitaires · 50+ langues · v3.11.x stable · lié au semver · MIT · provenance de build npm (SLSA L2).**
|
|
57
57
|
|
|
58
58
|
---
|
|
59
59
|
|
|
@@ -81,7 +81,7 @@ Votre coffre Obsidian devient une **mémoire à long terme persistante et interr
|
|
|
81
81
|
| **GraphRAG-light** (détection de communautés de wikilinks par modularité de Louvain) | ✅ **uniquement ici** | ❌ | ❌ |
|
|
82
82
|
| **Exécution autonome de requêtes `.base`** (fonctionne sans Obsidian ouvert) | ✅ **uniquement ici** | ❌ | ❌ délègue à Obsidian |
|
|
83
83
|
| **Récupération HyDE** (Gao et al. 2023) + décomposition en sous-questions | ✅ **uniquement ici** | ❌ | ❌ |
|
|
84
|
-
| **
|
|
84
|
+
| **1446 tests unitaires · 9 portes CI requises + 5 indicatives par PR** | ✅ | s.o. | rare |
|
|
85
85
|
| **Provenance de build signée** (npm + Sigstore, SLSA Build L2) | ✅ | s.o. | ❌ |
|
|
86
86
|
| **Surface publique liée au semver** ([STABILITY.md](./STABILITY.md)) | ✅ | s.o. | ❌ |
|
|
87
87
|
| Autonome (aucun plugin Obsidian requis) | ✅ | ❌ requiert Obsidian | variable |
|
|
@@ -320,7 +320,7 @@ Canal : `npm install @oomkapwn/enquire-mcp` → dernière version stable (`@late
|
|
|
320
320
|
```bash
|
|
321
321
|
git clone https://github.com/oomkapwn/enquire-mcp.git
|
|
322
322
|
cd enquire-mcp && npm install
|
|
323
|
-
npm test # suite complète (
|
|
323
|
+
npm test # suite complète (1446 tests, ~12 s)
|
|
324
324
|
npm run lint # zéro avertissement
|
|
325
325
|
npm run build # tsc → dist/
|
|
326
326
|
```
|
package/README.hi.md
CHANGED
|
@@ -50,7 +50,7 @@ claude mcp add obsidian -- npx -y @oomkapwn/enquire-mcp serve --vault ~/Document
|
|
|
50
50
|
> 3. **serve के दौरान शून्य क्लाउड कॉल।** embedding मॉडल **आपकी मशीन पर** चलता है और उसी markdown को अनुक्रमित करता है जो **आपने** लिखी — इसीलिए यह एक-बार का स्थानीय डाउनलोड (~110 MB) है, न कि कोई क्लाउड API key। मूल-आधारित + निजी होना मुफ़्त नहीं है, और हम इसका दिखावा नहीं करते: आपके vault की सामग्री कभी आपकी मशीन नहीं छोड़ती, डिफ़ॉल्ट रूप से एयर-गैप-सुरक्षित ([प्रवर्तित](./SECURITY.md), केवल आकांक्षात्मक नहीं)।
|
|
51
51
|
> 4. **ताज़गी-सजग recall।** हर परिणाम बताता है कि नोट कितना पुराना है; वैकल्पिक recency re-ranking एजेंट को ताज़ा ज्ञान को प्राथमिकता देने और बासी तथ्यों को पुनः-सत्यापन हेतु चिह्नित करने देता है — भूलने-के-प्रति-सजग सीमांत, जो आपकी फ़ाइलों में पहले से मौजूद `mtime` पर बना है।
|
|
52
52
|
|
|
53
|
-
**46 टूल · 19 MCP प्रॉम्प्ट ·
|
|
53
|
+
**46 टूल · 19 MCP प्रॉम्प्ट · 1446+ यूनिट टेस्ट · 50+ भाषाएँ · v3.11.x स्थिर · semver-बाध्य · MIT · npm बिल्ड प्रोवेनेंस (SLSA L2)।**
|
|
54
54
|
|
|
55
55
|
---
|
|
56
56
|
|
|
@@ -78,7 +78,7 @@ claude mcp add obsidian -- npx -y @oomkapwn/enquire-mcp serve --vault ~/Document
|
|
|
78
78
|
| **GraphRAG-light** (Louvain modularity wikilink समुदाय-पहचान) | ✅ **केवल यहीं** | ❌ | ❌ |
|
|
79
79
|
| **स्वतंत्र `.base` क्वेरी निष्पादन** (Obsidian चले बिना काम करता है) | ✅ **केवल यहीं** | ❌ | ❌ Obsidian को सौंपता है |
|
|
80
80
|
| **HyDE retrieval** (Gao et al 2023) + उप-प्रश्न विघटन | ✅ **केवल यहीं** | ❌ | ❌ |
|
|
81
|
-
| **
|
|
81
|
+
| **1446 यूनिट टेस्ट · प्रति PR 9 आवश्यक + 5 सलाहकारी CI गेट** | ✅ | लागू नहीं | विरल |
|
|
82
82
|
| **साइन्ड बिल्ड प्रोवेनेंस** (npm + Sigstore, SLSA Build L2) | ✅ | लागू नहीं | ❌ |
|
|
83
83
|
| **semver-बाध्य सार्वजनिक सतह** ([STABILITY.md](./STABILITY.md)) | ✅ | लागू नहीं | ❌ |
|
|
84
84
|
| स्वतंत्र (कोई Obsidian प्लगइन ज़रूरी नहीं) | ✅ | ❌ Obsidian ज़रूरी | भिन्न |
|
|
@@ -319,7 +319,7 @@ graph LR
|
|
|
319
319
|
```bash
|
|
320
320
|
git clone https://github.com/oomkapwn/enquire-mcp.git
|
|
321
321
|
cd enquire-mcp && npm install
|
|
322
|
-
npm test # पूर्ण सूट (
|
|
322
|
+
npm test # पूर्ण सूट (1446 टेस्ट, ~12s)
|
|
323
323
|
npm run lint # ज़ीरो वॉर्निंग
|
|
324
324
|
npm run build # tsc → dist/
|
|
325
325
|
```
|
package/README.ja.md
CHANGED
|
@@ -48,7 +48,7 @@ claude mcp add obsidian -- npx -y @oomkapwn/enquire-mcp serve --vault ~/Document
|
|
|
48
48
|
> 3. **serve 中はクラウド呼び出しがゼロ。** モデルはローカルにキャッシュ(HuggingFace から一度だけダウンロード)。あなたのボールトの内容はマシンから決して出ていきません。デフォルトでエアギャップ安全。
|
|
49
49
|
> 4. **鮮度を意識した呼び戻し。** すべてのヒットが、そのノートがどれくらい古いかを報告します。オプトインの鮮度リランキングにより、エージェントは新しい知識を優先し、古くなった事実を再検証対象としてフラグ付けできます——これは忘却を意識したフロンティアであり、あなたのファイルがもともと持っている `mtime` の上に構築されています。
|
|
50
50
|
|
|
51
|
-
**46 ツール · 19 MCP プロンプト ·
|
|
51
|
+
**46 ツール · 19 MCP プロンプト · 1446+ ユニットテスト · 50+ 言語 · v3.11.x 安定版 · semver 準拠 · MIT · npm ビルドプロベナンス(SLSA L2)。**
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
@@ -76,7 +76,7 @@ claude mcp add obsidian -- npx -y @oomkapwn/enquire-mcp serve --vault ~/Document
|
|
|
76
76
|
| **GraphRAG-light**(Louvain モジュラリティによる wikilink コミュニティ検出) | ✅ **ここだけ** | ❌ | ❌ |
|
|
77
77
|
| **スタンドアロンの `.base` クエリ実行**(Obsidian を起動せずに動作) | ✅ **ここだけ** | ❌ | ❌ Obsidian に委譲 |
|
|
78
78
|
| **HyDE 検索**(Gao et al 2023)+ サブクエスチョン分解 | ✅ **ここだけ** | ❌ | ❌ |
|
|
79
|
-
| **
|
|
79
|
+
| **1446 ユニットテスト · PR ごとに 9 個の必須 + 5 個のアドバイザリ CI ゲート** | ✅ | 該当なし | まれ |
|
|
80
80
|
| **署名付きビルドプロベナンス**(npm + Sigstore、SLSA Build L2) | ✅ | 該当なし | ❌ |
|
|
81
81
|
| **semver 準拠の公開サーフェス**([STABILITY.md](./STABILITY.md)) | ✅ | 該当なし | ❌ |
|
|
82
82
|
| スタンドアロン(Obsidian プラグイン不要) | ✅ | ❌ Obsidian が必要 | まちまち |
|
|
@@ -315,7 +315,7 @@ graph LR
|
|
|
315
315
|
```bash
|
|
316
316
|
git clone https://github.com/oomkapwn/enquire-mcp.git
|
|
317
317
|
cd enquire-mcp && npm install
|
|
318
|
-
npm test # フルスイート(
|
|
318
|
+
npm test # フルスイート(1446 テスト、約 12 秒)
|
|
319
319
|
npm run lint # 警告ゼロ
|
|
320
320
|
npm run build # tsc → dist/
|
|
321
321
|
```
|
package/README.ko.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
[](https://github.com/oomkapwn/enquire-mcp/actions/workflows/ci.yml)
|
|
18
18
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
19
19
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
20
|
-
[](#️-신뢰)
|
|
21
21
|
[](./STABILITY.md)
|
|
22
22
|
[](https://slsa.dev/spec/v1.0/levels#build-l2)
|
|
23
23
|
[](https://modelcontextprotocol.io/)
|
|
@@ -55,7 +55,7 @@ claude mcp add obsidian -- npx -y @oomkapwn/enquire-mcp serve --vault ~/Document
|
|
|
55
55
|
> 3. **serve 중 클라우드 호출 0건.** 임베딩 모델은 **당신의 머신에서** 실행되어 **당신이** 작성한 마크다운을 인덱싱합니다 — 그래서 클라우드 API 키가 아니라 일회성 로컬 다운로드(~110 MB)입니다. 근거 기반 + 프라이버시는 공짜가 아니며, 우리는 그런 척하지 않습니다. 당신의 Vault 콘텐츠는 당신의 머신을 결코 떠나지 않으며, 기본적으로 에어갭(air-gap) 안전합니다([강제됨](./SECURITY.md), 희망 사항이 아님).
|
|
56
56
|
> 4. **신선도를 인식하는 회상.** 모든 결과는 노트가 얼마나 오래되었는지 보고합니다. 선택형 최신성 재순위는 에이전트가 신선한 지식을 선호하고 재검증이 필요한 오래된 사실을 표시하도록 합니다 — 망각을 인식하는 최전선이, 당신의 파일이 이미 가진 `mtime` 위에 구축됩니다.
|
|
57
57
|
|
|
58
|
-
**도구 46개 · MCP 프롬프트 19개 · 단위 테스트
|
|
58
|
+
**도구 46개 · MCP 프롬프트 19개 · 단위 테스트 1446+개 · 50+ 개 언어 · v3.11.x stable · semver 결속 · MIT · npm 빌드 출처 증명(SLSA L2).**
|
|
59
59
|
|
|
60
60
|
---
|
|
61
61
|
|
|
@@ -83,7 +83,7 @@ claude mcp add obsidian -- npx -y @oomkapwn/enquire-mcp serve --vault ~/Document
|
|
|
83
83
|
| **GraphRAG-light** (Louvain 모듈성을 통한 위키링크 커뮤니티 탐지) | ✅ **여기에만 있음** | ❌ | ❌ |
|
|
84
84
|
| **독립 실행형 `.base` 쿼리 실행** (Obsidian 실행 없이 동작) | ✅ **여기에만 있음** | ❌ | ❌ Obsidian에 위임 |
|
|
85
85
|
| **HyDE 검색** (Gao et al 2023) + 하위 질문 분해 | ✅ **여기에만 있음** | ❌ | ❌ |
|
|
86
|
-
| **단위 테스트
|
|
86
|
+
| **단위 테스트 1446개 · PR당 필수 9개 + 권고 5개 CI 게이트** | ✅ | 해당 없음 | 드묾 |
|
|
87
87
|
| **서명된 빌드 출처 증명** (npm + Sigstore, SLSA Build L2) | ✅ | 해당 없음 | ❌ |
|
|
88
88
|
| **semver로 결속된 공개 표면** ([STABILITY.md](./STABILITY.md)) | ✅ | 해당 없음 | ❌ |
|
|
89
89
|
| 독립 실행형 (Obsidian 플러그인 불필요) | ✅ | ❌ Obsidian 필요 | 제각각 |
|
|
@@ -322,7 +322,7 @@ graph LR
|
|
|
322
322
|
```bash
|
|
323
323
|
git clone https://github.com/oomkapwn/enquire-mcp.git
|
|
324
324
|
cd enquire-mcp && npm install
|
|
325
|
-
npm test # 전체 스위트 (
|
|
325
|
+
npm test # 전체 스위트 (1446개 테스트, ~12초)
|
|
326
326
|
npm run lint # 경고 0건
|
|
327
327
|
npm run build # tsc → dist/
|
|
328
328
|
```
|
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
[](https://github.com/oomkapwn/enquire-mcp/actions/workflows/ci.yml)
|
|
18
18
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
19
19
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
20
|
-
[](#️-trust)
|
|
21
21
|
[](./STABILITY.md)
|
|
22
22
|
[](https://slsa.dev/spec/v1.0/levels#build-l2)
|
|
23
23
|
[](https://modelcontextprotocol.io/)
|
|
@@ -53,7 +53,7 @@ Your Obsidian vault becomes **persistent, queryable long-term memory** for any M
|
|
|
53
53
|
> 3. **Zero cloud calls during serve.** The embedding model runs **on your machine** and indexes the markdown **you** wrote — that's why it's a one-time local download (~110 MB), not a cloud API key. Grounded + private isn't free, and we don't pretend it is: your vault content never leaves your machine, air-gap-safe by default ([enforced](./SECURITY.md), not aspirational).
|
|
54
54
|
> 4. **Freshness-aware recall.** Every hit reports how old the note is; opt-in recency re-ranking lets an agent prefer fresh knowledge and flag stale facts for re-verification — the forgetting-aware frontier, built on the `mtime` your files already have.
|
|
55
55
|
|
|
56
|
-
**46 tools · 19 MCP prompts ·
|
|
56
|
+
**46 tools · 19 MCP prompts · 1446 unit tests · 50+ languages · v3.11.x stable · semver-bound · MIT · npm build provenance (SLSA L2).**
|
|
57
57
|
|
|
58
58
|
---
|
|
59
59
|
|
|
@@ -81,7 +81,7 @@ Your Obsidian vault becomes **persistent, queryable long-term memory** for any M
|
|
|
81
81
|
| **GraphRAG-light** (wikilink community detection via Louvain modularity) | ✅ **only here** | ❌ | ❌ |
|
|
82
82
|
| **Standalone `.base` query execution** (works without Obsidian running) | ✅ **only here** | ❌ | ❌ delegates to Obsidian |
|
|
83
83
|
| **HyDE retrieval** (Gao et al 2023) + sub-question decomposition | ✅ **only here** | ❌ | ❌ |
|
|
84
|
-
| **
|
|
84
|
+
| **1446 unit tests · 9 required + 5 advisory CI gates per PR** | ✅ | n/a | rare |
|
|
85
85
|
| **Signed build provenance** (npm + Sigstore, SLSA Build L2) | ✅ | n/a | ❌ |
|
|
86
86
|
| **Semver-bound public surface** ([STABILITY.md](./STABILITY.md)) | ✅ | n/a | ❌ |
|
|
87
87
|
| Standalone (no Obsidian plugin needed) | ✅ | ❌ requires Obsidian | varies |
|
|
@@ -320,7 +320,7 @@ Channel: `npm install @oomkapwn/enquire-mcp` → latest stable (`@latest` = v3.1
|
|
|
320
320
|
```bash
|
|
321
321
|
git clone https://github.com/oomkapwn/enquire-mcp.git
|
|
322
322
|
cd enquire-mcp && npm install
|
|
323
|
-
npm test # full suite (
|
|
323
|
+
npm test # full suite (1446 tests, ~12s)
|
|
324
324
|
npm run lint # zero warnings
|
|
325
325
|
npm run build # tsc → dist/
|
|
326
326
|
```
|
package/README.pt.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
[](https://github.com/oomkapwn/enquire-mcp/actions/workflows/ci.yml)
|
|
16
16
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
17
17
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
18
|
-
[](#️-confiança)
|
|
19
19
|
[](./STABILITY.md)
|
|
20
20
|
[](https://slsa.dev/spec/v1.0/levels#build-l2)
|
|
21
21
|
[](https://modelcontextprotocol.io/)
|
|
@@ -53,7 +53,7 @@ Seu vault do Obsidian se torna **memória de longo prazo persistente e consultá
|
|
|
53
53
|
> 3. **Zero chamadas à nuvem durante o serve.** Modelos em cache local (download único do HuggingFace). O conteúdo do seu vault nunca sai da sua máquina. Seguro para ambientes isolados (air-gap) por padrão.
|
|
54
54
|
> 4. **Recuperação consciente da atualidade.** Cada resultado informa quão antiga é a nota; o reranqueamento por recência opcional permite que um agente prefira conhecimento recente e sinalize fatos desatualizados para reverificação — a fronteira consciente do esquecimento, construída sobre o `mtime` que seus arquivos já têm.
|
|
55
55
|
|
|
56
|
-
**46 ferramentas · 19 prompts MCP ·
|
|
56
|
+
**46 ferramentas · 19 prompts MCP · 1446+ testes unitários · 50+ idiomas · v3.11.x estável · vinculado a semver · MIT · proveniência de build no npm (SLSA L2).**
|
|
57
57
|
|
|
58
58
|
---
|
|
59
59
|
|
|
@@ -81,7 +81,7 @@ Seu vault do Obsidian se torna **memória de longo prazo persistente e consultá
|
|
|
81
81
|
| **GraphRAG-light** (detecção de comunidades de wikilinks via modularidade de Louvain) | ✅ **só aqui** | ❌ | ❌ |
|
|
82
82
|
| **Execução autônoma de consultas `.base`** (funciona sem o Obsidian em execução) | ✅ **só aqui** | ❌ | ❌ delega ao Obsidian |
|
|
83
83
|
| **Recuperação HyDE** (Gao et al. 2023) + decomposição em sub-perguntas | ✅ **só aqui** | ❌ | ❌ |
|
|
84
|
-
| **
|
|
84
|
+
| **1446 testes unitários · 9 gates obrigatórios + 5 consultivos de CI por PR** | ✅ | n/d | raro |
|
|
85
85
|
| **Proveniência de build assinada** (npm + Sigstore, SLSA Build L2) | ✅ | n/d | ❌ |
|
|
86
86
|
| **Superfície pública vinculada a semver** ([STABILITY.md](./STABILITY.md)) | ✅ | n/d | ❌ |
|
|
87
87
|
| Autônomo (sem necessidade de plugin do Obsidian) | ✅ | ❌ exige Obsidian | varia |
|
|
@@ -320,7 +320,7 @@ Canal: `npm install @oomkapwn/enquire-mcp` → último estável (`@latest` = v3.
|
|
|
320
320
|
```bash
|
|
321
321
|
git clone https://github.com/oomkapwn/enquire-mcp.git
|
|
322
322
|
cd enquire-mcp && npm install
|
|
323
|
-
npm test # suíte completa (
|
|
323
|
+
npm test # suíte completa (1446 testes, ~12s)
|
|
324
324
|
npm run lint # zero avisos
|
|
325
325
|
npm run build # tsc → dist/
|
|
326
326
|
```
|
package/README.ru.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
[](https://github.com/oomkapwn/enquire-mcp/actions/workflows/ci.yml)
|
|
16
16
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
17
17
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
18
|
-
[](#️-доверие)
|
|
19
19
|
[](./STABILITY.md)
|
|
20
20
|
[](https://slsa.dev/spec/v1.0/levels#build-l2)
|
|
21
21
|
[](https://modelcontextprotocol.io/)
|
|
@@ -53,7 +53,7 @@ claude mcp add obsidian -- npx -y @oomkapwn/enquire-mcp serve --vault ~/Document
|
|
|
53
53
|
> 3. **Ноль обращений в облако в режиме serve.** Модели кешируются локально (однократная загрузка с HuggingFace). Содержимое вашего хранилища никогда не покидает вашу машину. По умолчанию безопасно для изолированных сред.
|
|
54
54
|
> 4. **Поиск с учётом свежести.** Каждый результат сообщает, насколько стара заметка; опциональное переранжирование по давности позволяет агенту предпочитать свежие знания и помечать устаревшие факты для повторной проверки — рубеж «осознания забывания», построенный на `mtime`, который ваши файлы уже имеют.
|
|
55
55
|
|
|
56
|
-
**46 инструментов · 19 MCP-промптов ·
|
|
56
|
+
**46 инструментов · 19 MCP-промптов · 1446+ модульных тестов · 50+ языков · стабильная ветка v3.11.x · с гарантиями semver · MIT · подтверждённая сборка в npm (SLSA L2).**
|
|
57
57
|
|
|
58
58
|
---
|
|
59
59
|
|
|
@@ -81,7 +81,7 @@ claude mcp add obsidian -- npx -y @oomkapwn/enquire-mcp serve --vault ~/Document
|
|
|
81
81
|
| **GraphRAG-light** (детекция сообществ по wikilink-графу через модулярность Лувена) | ✅ **только здесь** | ❌ | ❌ |
|
|
82
82
|
| **Автономное выполнение `.base`-запросов** (работает без запущенного Obsidian) | ✅ **только здесь** | ❌ | ❌ делегирует Obsidian |
|
|
83
83
|
| **HyDE-поиск** (Gao et al 2023) + декомпозиция на подвопросы | ✅ **только здесь** | ❌ | ❌ |
|
|
84
|
-
| **
|
|
84
|
+
| **1446 модульных тестов · 9 обязательных + 5 совещательных CI-гейтов на каждый PR** | ✅ | н/д | редко |
|
|
85
85
|
| **Подтверждённое происхождение сборки** (npm + Sigstore, SLSA Build L2) | ✅ | н/д | ❌ |
|
|
86
86
|
| **Публичная поверхность с гарантиями semver** ([STABILITY.md](./STABILITY.md)) | ✅ | н/д | ❌ |
|
|
87
87
|
| Автономность (плагин Obsidian не нужен) | ✅ | ❌ требует Obsidian | по-разному |
|
|
@@ -320,7 +320,7 @@ graph LR
|
|
|
320
320
|
```bash
|
|
321
321
|
git clone https://github.com/oomkapwn/enquire-mcp.git
|
|
322
322
|
cd enquire-mcp && npm install
|
|
323
|
-
npm test # полный набор (
|
|
323
|
+
npm test # полный набор (1446 тестов, ~12с)
|
|
324
324
|
npm run lint # ноль предупреждений
|
|
325
325
|
npm run build # tsc → dist/
|
|
326
326
|
```
|
package/README.zh.md
CHANGED
|
@@ -48,7 +48,7 @@ claude mcp add obsidian -- npx -y @oomkapwn/enquire-mcp serve --vault ~/Document
|
|
|
48
48
|
> 3. **serve 期间零云端调用。** 向量嵌入模型**在你的机器上**运行,索引的是**你**亲手写下的 markdown——正因如此,它是一次性的本地下载(约 110 MB),而不是一个云端 API 密钥。扎根 + 隐私并非没有代价,我们也不假装它免费:你的仓库内容永不离开本机,默认即可隔离(air-gap)安全运行([已强制执行](./SECURITY.md),而非纸面承诺)。
|
|
49
49
|
> 4. **时效感知召回。** 每条结果都报告笔记有多旧;可选的时效重排让智能体优先采用新知识,并把陈旧事实标记出来等待复核——这是"遗忘感知"前沿,建立在你的文件本就拥有的 `mtime` 之上。
|
|
50
50
|
|
|
51
|
-
**46 个工具 · 19 个 MCP 提示词 ·
|
|
51
|
+
**46 个工具 · 19 个 MCP 提示词 · 1446+ 单元测试 · 50+ 语言 · v3.11.x 稳定版 · 语义化版本约束 · MIT · npm 构建溯源(SLSA L2)。**
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
@@ -76,7 +76,7 @@ claude mcp add obsidian -- npx -y @oomkapwn/enquire-mcp serve --vault ~/Document
|
|
|
76
76
|
| **GraphRAG-light**(Louvain 模块度社群检测) | ✅ **独有** | ❌ | ❌ |
|
|
77
77
|
| **独立 `.base` 查询执行**(无需运行 Obsidian) | ✅ **独有** | ❌ | ❌ 委托给 Obsidian |
|
|
78
78
|
| **HyDE 检索**(Gao et al. 2023)+ 子问题分解 | ✅ **独有** | ❌ | ❌ |
|
|
79
|
-
| **
|
|
79
|
+
| **1446 单元测试 · 每个 PR 9 项必需 + 5 项指导性 CI 门禁** | ✅ | 不适用 | 罕见 |
|
|
80
80
|
| **签名构建溯源**(npm + Sigstore,SLSA Build L2) | ✅ | 不适用 | ❌ |
|
|
81
81
|
| **语义化版本约束的公开接口**([STABILITY.md](./STABILITY.md)) | ✅ | 不适用 | ❌ |
|
|
82
82
|
| 独立运行(无需 Obsidian 插件) | ✅ | ❌ 需 Obsidian | 不一 |
|
|
@@ -315,7 +315,7 @@ graph LR
|
|
|
315
315
|
```bash
|
|
316
316
|
git clone https://github.com/oomkapwn/enquire-mcp.git
|
|
317
317
|
cd enquire-mcp && npm install
|
|
318
|
-
npm test # 完整套件(
|
|
318
|
+
npm test # 完整套件(1446 个测试,约 12s)
|
|
319
319
|
npm run lint # 零警告
|
|
320
320
|
npm run build # tsc → dist/
|
|
321
321
|
```
|
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.11.4
|
|
10
|
+
export declare const VERSION = "3.11.4";
|
|
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.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAoCA;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAoCA;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,WAAW,CAAC;AAUhC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -40,7 +40,7 @@ import { main } from "./cli.js";
|
|
|
40
40
|
* + `McpServer({version})`) and `src/tool-registry.ts` (used in the
|
|
41
41
|
* `vault-info` resource payload).
|
|
42
42
|
*/
|
|
43
|
-
export const VERSION = "3.11.4
|
|
43
|
+
export const VERSION = "3.11.4";
|
|
44
44
|
// Re-exports — preserve the v3.5.x public surface so http-transport.ts and
|
|
45
45
|
// tests don't need to know about the new module layout. The set below
|
|
46
46
|
// exactly matches the v3.5.x `export` declarations: `main`,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,yEAAyE;AACzE,8EAA8E;AAC9E,EAAE;AACF,sEAAsE;AACtE,uEAAuE;AACvE,qEAAqE;AACrE,kEAAkE;AAClE,kEAAkE;AAClE,EAAE;AACF,kBAAkB;AAClB,iFAAiF;AACjF,2FAA2F;AAC3F,wFAAwF;AACxF,sFAAsF;AACtF,sFAAsF;AACtF,yFAAyF;AACzF,gEAAgE;AAChE,2EAA2E;AAC3E,sEAAsE;AACtE,uFAAuF;AACvF,sFAAsF;AACtF,EAAE;AACF,yEAAyE;AACzE,wBAAwB;AACxB,2EAA2E;AAC3E,yEAAyE;AACzE,6EAA6E;AAC7E,+DAA+D;AAC/D,sFAAsF;AACtF,0EAA0E;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,yEAAyE;AACzE,8EAA8E;AAC9E,EAAE;AACF,sEAAsE;AACtE,uEAAuE;AACvE,qEAAqE;AACrE,kEAAkE;AAClE,kEAAkE;AAClE,EAAE;AACF,kBAAkB;AAClB,iFAAiF;AACjF,2FAA2F;AAC3F,wFAAwF;AACxF,sFAAsF;AACtF,sFAAsF;AACtF,yFAAyF;AACzF,gEAAgE;AAChE,2EAA2E;AAC3E,sEAAsE;AACtE,uFAAuF;AACvF,sFAAsF;AACtF,EAAE;AACF,yEAAyE;AACzE,wBAAwB;AACxB,2EAA2E;AAC3E,yEAAyE;AACzE,6EAA6E;AAC7E,+DAA+D;AAC/D,sFAAsF;AACtF,0EAA0E;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC,2EAA2E;AAC3E,sEAAsE;AACtE,4DAA4D;AAC5D,6EAA6E;AAC7E,sEAAsE;AACtE,sEAAsE;AACtE,2EAA2E;AAC3E,4EAA4E;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EAGjB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,4DAA4D;AAC5D,yEAAyE;AACzE,wEAAwE;AACxE,6EAA6E;AAC7E,sDAAsD;AACtD,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE;IACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,CAAC;QACH,oEAAoE;QACpE,mEAAmE;QACnE,wEAAwE;QACxE,2EAA2E;QAC3E,MAAM,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,IAAI,KAAK,IAAI,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,IAAI,UAAU,EAAE,CAAC;IACf,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/docs/COMPARISON.md
CHANGED
|
@@ -44,7 +44,7 @@ The four axes the external audit (#3, 2026-05) called out as decisive — **REST
|
|
|
44
44
|
| Zero outbound network calls in serve mode | **Yes** (default) | Local-only (REST)| Local-only (REST)| Yes | Yes |
|
|
45
45
|
| Signed build provenance on releases (SLSA L2) | **Yes** | No | No | No | No |
|
|
46
46
|
| Forgetting-aware freshness (`age_days` / recency re-rank) | Yes (v3.10) | No | No | No | No |
|
|
47
|
-
| Test count (public) | **
|
|
47
|
+
| Test count (public) | **1446** | (varies) | (varies) | (varies) | (varies) |
|
|
48
48
|
| Tool count | 46 | ~25 | ~8 | ~10 | 3–5 |
|
|
49
49
|
| MCP prompt count | 19 | 0 | 0 | 0 | 0 |
|
|
50
50
|
| License | MIT | Apache-2.0 | MIT | MIT | (varies) |
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@oomkapwn/enquire-mcp",
|
|
4
|
-
"version": "3.11.4
|
|
4
|
+
"version": "3.11.4",
|
|
5
5
|
"mcpName": "io.github.oomkapwn/enquire-mcp",
|
|
6
|
-
"description": "MCP server giving AI agents (Claude Code, Claude Desktop, Cursor, ChatGPT, Codex, OpenClaw) persistent long-term memory backed by your local Obsidian markdown vault. Hybrid retrieval (BM25 + ML embeddings + BGE reranker, RRF-fused), HNSW + int8 quantization, agentic RAG (HyDE + sub-question decomposition), GraphRAG-light (Louvain), standalone Obsidian Bases, PDFs + Tesseract OCR. Vendor-neutral memory layer for any MCP-compatible agent. 46 tools, 19 MCP prompts,
|
|
6
|
+
"description": "MCP server giving AI agents (Claude Code, Claude Desktop, Cursor, ChatGPT, Codex, OpenClaw) persistent long-term memory backed by your local Obsidian markdown vault. Hybrid retrieval (BM25 + ML embeddings + BGE reranker, RRF-fused), HNSW + int8 quantization, agentic RAG (HyDE + sub-question decomposition), GraphRAG-light (Louvain), standalone Obsidian Bases, PDFs + Tesseract OCR. Vendor-neutral memory layer for any MCP-compatible agent. 46 tools, 19 MCP prompts, 1446 tests, signed npm build provenance (SLSA L2), semver-bound, MIT, zero cloud calls during serve.",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"bin": {
|
|
9
9
|
"enquire-mcp": "dist/index.js"
|