@pcircle/memesh 4.2.10 → 4.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.de.md +11 -10
  4. package/README.es.md +11 -10
  5. package/README.fr.md +11 -10
  6. package/README.ja.md +11 -10
  7. package/README.ko.md +11 -10
  8. package/README.md +12 -11
  9. package/README.pt.md +11 -10
  10. package/README.th.md +12 -11
  11. package/README.vi.md +11 -10
  12. package/README.zh-CN.md +10 -9
  13. package/README.zh-TW.md +10 -9
  14. package/dashboard/dist/index.html +6 -6
  15. package/dist/core/config.d.ts +14 -0
  16. package/dist/core/config.d.ts.map +1 -1
  17. package/dist/core/config.js +25 -5
  18. package/dist/core/config.js.map +1 -1
  19. package/dist/core/doctor.d.ts +3 -0
  20. package/dist/core/doctor.d.ts.map +1 -1
  21. package/dist/core/doctor.js +78 -5
  22. package/dist/core/doctor.js.map +1 -1
  23. package/dist/core/dreamer.d.ts.map +1 -1
  24. package/dist/core/dreamer.js +26 -15
  25. package/dist/core/dreamer.js.map +1 -1
  26. package/dist/core/embedder.d.ts +6 -1
  27. package/dist/core/embedder.d.ts.map +1 -1
  28. package/dist/core/embedder.js +33 -9
  29. package/dist/core/embedder.js.map +1 -1
  30. package/dist/core/memory-tool.d.ts +37 -0
  31. package/dist/core/memory-tool.d.ts.map +1 -0
  32. package/dist/core/memory-tool.js +371 -0
  33. package/dist/core/memory-tool.js.map +1 -0
  34. package/dist/core/operations.d.ts +11 -5
  35. package/dist/core/operations.d.ts.map +1 -1
  36. package/dist/core/operations.js +91 -34
  37. package/dist/core/operations.js.map +1 -1
  38. package/dist/core/prompt-safety.d.ts.map +1 -1
  39. package/dist/core/prompt-safety.js.map +1 -1
  40. package/dist/core/schema-export.d.ts.map +1 -1
  41. package/dist/core/schema-export.js +19 -34
  42. package/dist/core/schema-export.js.map +1 -1
  43. package/dist/core/types.d.ts +5 -12
  44. package/dist/core/types.d.ts.map +1 -1
  45. package/dist/core/types.js +4 -1
  46. package/dist/core/types.js.map +1 -1
  47. package/dist/core/verifier.d.ts +3 -0
  48. package/dist/core/verifier.d.ts.map +1 -1
  49. package/dist/core/verifier.js +27 -11
  50. package/dist/core/verifier.js.map +1 -1
  51. package/dist/db.d.ts +11 -0
  52. package/dist/db.d.ts.map +1 -1
  53. package/dist/db.js +174 -35
  54. package/dist/db.js.map +1 -1
  55. package/dist/index.d.ts +2 -0
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +1 -0
  58. package/dist/index.js.map +1 -1
  59. package/dist/knowledge-graph.d.ts +1 -2
  60. package/dist/knowledge-graph.d.ts.map +1 -1
  61. package/dist/knowledge-graph.js +94 -44
  62. package/dist/knowledge-graph.js.map +1 -1
  63. package/dist/skills-manifest.json +13 -14
  64. package/dist/storage/conflicts.d.ts +1 -4
  65. package/dist/storage/conflicts.d.ts.map +1 -1
  66. package/dist/storage/conflicts.js +2 -5
  67. package/dist/storage/conflicts.js.map +1 -1
  68. package/dist/storage/fts-index.d.ts +11 -0
  69. package/dist/storage/fts-index.d.ts.map +1 -1
  70. package/dist/storage/fts-index.js +58 -2
  71. package/dist/storage/fts-index.js.map +1 -1
  72. package/dist/transports/cli/cli.d.ts.map +1 -1
  73. package/dist/transports/cli/cli.js +95 -49
  74. package/dist/transports/cli/cli.js.map +1 -1
  75. package/dist/transports/http/server.d.ts.map +1 -1
  76. package/dist/transports/http/server.js +8 -3
  77. package/dist/transports/http/server.js.map +1 -1
  78. package/dist/transports/mcp/handlers.d.ts +4 -25
  79. package/dist/transports/mcp/handlers.d.ts.map +1 -1
  80. package/dist/transports/mcp/handlers.js +8 -28
  81. package/dist/transports/mcp/handlers.js.map +1 -1
  82. package/dist/transports/schemas.d.ts +0 -5
  83. package/dist/transports/schemas.d.ts.map +1 -1
  84. package/dist/transports/schemas.js +0 -5
  85. package/dist/transports/schemas.js.map +1 -1
  86. package/package.json +31 -5
  87. package/scripts/hooks/_generated/fts-index.js +58 -2
  88. package/scripts/hooks/_shared.js +238 -4
  89. package/scripts/hooks/pre-compact.js +14 -3
  90. package/scripts/hooks/pre-edit-recall.js +76 -9
  91. package/skills/memesh/SKILL.md +11 -4
  92. package/skills/memesh-review/SKILL.md +6 -4
  93. package/dist/core/consolidator.d.ts +0 -3
  94. package/dist/core/consolidator.d.ts.map +0 -1
  95. package/dist/core/consolidator.js +0 -108
  96. package/dist/core/consolidator.js.map +0 -1
@@ -8,7 +8,7 @@
8
8
  "name": "memesh",
9
9
  "source": "./",
10
10
  "description": "MeMesh — Local memory for Claude Code and MCP coding agents. One SQLite file, zero cloud required.",
11
- "version": "4.2.10",
11
+ "version": "4.2.11",
12
12
  "author": {
13
13
  "name": "PCIRCLE AI"
14
14
  },
@@ -4,7 +4,7 @@
4
4
  "author": {
5
5
  "name": "PCIRCLE AI"
6
6
  },
7
- "version": "4.2.10",
7
+ "version": "4.2.11",
8
8
  "homepage": "https://pcircle.ai/memesh-llm-memory",
9
9
  "repository": "https://github.com/PCIRCLE-AI/memesh-llm-memory",
10
10
  "license": "MIT",
package/README.de.md CHANGED
@@ -9,7 +9,7 @@
9
9
  <p align="center">
10
10
  <a href="https://www.npmjs.com/package/@pcircle/memesh"><img src="https://img.shields.io/npm/v/@pcircle/memesh?style=flat-square&color=3b82f6&label=npm" alt="npm" /></a>
11
11
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-22c55e?style=flat-square" alt="MIT" /></a>
12
- <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20-22c55e?style=flat-square" alt="Node" /></a>
12
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D22-22c55e?style=flat-square" alt="Node" /></a>
13
13
  <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-a855f7?style=flat-square" alt="MCP" /></a>
14
14
  </p>
15
15
  </p>
@@ -29,13 +29,13 @@ Dieses Paket ist die lokale Speicherschicht der MeMesh-Produktfamilie. Es ist be
29
29
 
30
30
  ---
31
31
 
32
- ## Proof — 95.40% R@5 on LongMemEval-S
32
+ ## Proof — 95.60% R@5 on LongMemEval-S
33
33
 
34
34
  MeMeshs Retrieval-Engine ist **FTS5 alleine** (kein LLM, keine Embeddings auf dem Hot Path), gemessen am öffentlichen [LongMemEval-S](https://huggingface.co/datasets/xiaowu0162/longmemeval) Benchmark (500 Fragen, MIT-lizenziert):
35
35
 
36
36
  | System | R@5 | Quelle |
37
37
  |---|---|---|
38
- | **MeMesh (Mode A, FTS5)** | **95.40%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
38
+ | **MeMesh (Mode A, via `recallEnhanced()`)** | **95.60%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
39
39
  | MemPalace | 96.6% | Eigenangabe des Anbieters |
40
40
  | Supermemory | ~82% | Schätzung des Anbieters |
41
41
  | Zep | 63.8% | LongMemEval-Paper |
@@ -288,9 +288,11 @@ Wenn npm eine installierte Version als veraltet kennzeichnet (typischerweise ein
288
288
 
289
289
  ## Intelligente Features
290
290
 
291
- **🧠 Intelligente Suche** — Suche nach „Login Security" und finde Memories über „OAuth PKCE". MeMesh erweitert Anfragen mit verwandten Begriffen unter Verwendung Ihres konfigurierten LLM.
291
+ **🧠 Intelligente Suche** — Suche nach „Login Security" und finde Memories über „OAuth PKCE". MeMesh nutzt auf dem heißen Pfad FTS5 + sqlite-vec, ohne LLM; die Vektor-Ergänzung erreicht dennoch verwandte Formulierungen.
292
292
 
293
- **📊 Bewertetes Ranking** — Ergebnisse geordnet nach Relevanz (30%) + Aktualität (25%) + Häufigkeit (15%) + Konfidenz (15%) + Abruf-Auswirkung (10%) + Zeitliche Gültigkeit (5%).
293
+ **🌏 Suche in Schriften ohne Wortzwischenräume** — Chinesisch, Japanisch, Koreanisch, Thai, Laotisch, Khmer und halbbreites Katakana werden als überlappende Zeichenpaare indiziert. Eine als 「資料庫遷移前一定要先備份」 gespeicherte Erinnerung findet man deshalb mit 「備份」 — und nicht nur über den exakten Volltext. Der Text wird beim Schreiben wie beim Suchen normalisiert (NFC), sodass unter macOS oder mit einer koreanischen bzw. vietnamesischen Eingabemethode getippte Erinnerungen in beiden Schreibweisen gefunden werden.
294
+
295
+ **📊 Bewertetes Ranking** — Ergebnisse geordnet nach Relevanz (30%) + Aktualität (25%) + Häufigkeit (18%) + Konfidenz (17%) + Abruf-Auswirkung (10%).
294
296
 
295
297
  **🔄 Wissensentwicklung** — Entscheidungen ändern sich. `forget` archiviert alte Memories (löscht nie). `supersedes`-Relationen verbinden alt → neu. Ihr KI sieht immer die aktuelle Version.
296
298
 
@@ -318,7 +320,7 @@ Importierte Bundles bleiben durchsuchbar, aber MeMesh injiziert importierte Memo
318
320
 
319
321
  ## Smart Mode freischalten (optional)
320
322
 
321
- MeMesh funktioniert standardmäßig offline — Recall bleibt strikt LLM-frei (95,40 % R@5 auf LongMemEval-S, ohne LLM). Fügen Sie einen LLM API-Schlüssel nur hinzu, wenn Sie LLM-augmentierte Analyseflüsse zusätzlich nutzen möchten: intelligentere Session-Extraktion, Auto-Tagging neuer Memories, Lektionen aus Fehlern und `consolidate` / `dream` Kompression:
323
+ MeMesh funktioniert standardmäßig offline — Recall bleibt strikt LLM-frei (95,60 % R@5 auf LongMemEval-S, ohne LLM). Fügen Sie einen LLM API-Schlüssel nur hinzu, wenn Sie LLM-augmentierte Analyseflüsse zusätzlich nutzen möchten: intelligentere Session-Extraktion, Auto-Tagging neuer Memories, Lektionen aus Fehlern und `dream` Kompression:
322
324
 
323
325
  ```bash
324
326
  memesh config set llm.provider anthropic
@@ -344,11 +346,11 @@ Der Embedder wird **unabhängig vom Chat-LLM** konfiguriert — `llm.provider` z
344
346
 
345
347
  | | Stufe 0 (Standard) | Stufe 1 (Smart Mode) |
346
348
  |---|---|---|
347
- | **Search** | FTS5 + sqlite-vec, 95,40 % R@5 (~18 ms/Query) | unverändert — Recall ist auf jeder Stufe LLM-frei |
349
+ | **Search** | FTS5 + sqlite-vec, 95,60 % R@5 (~4 ms pro Recall) | unverändert — Recall ist auf jeder Stufe LLM-frei |
348
350
  | **Auto-Capture** | Regelbasierte Muster | + LLM extrahiert Entscheidungen & Lektionen |
349
351
  | **Auto-Tagging** | Nur manuelle Tags | + LLM generiert Tags für neue Memories |
350
352
  | **Fehleranalyse** | Nicht verfügbar | + LLM wandelt Session-Fehler in strukturierte Lektionen um |
351
- | **Kompression** | Nicht verfügbar | `consolidate` + `dream` komprimieren ausschweifende Memories |
353
+ | **Kompression** | Nicht verfügbar | `dream` komprimieren ausschweifende Memories |
352
354
  | **Kosten** | Kostenlos, kein API-Schlüssel | ~$0,0001 pro Analyseanfrage (Haiku) |
353
355
 
354
356
  ---
@@ -358,9 +360,8 @@ Der Embedder wird **unabhängig vom Chat-LLM** konfiguriert — `llm.provider` z
358
360
  | Tool | Was es tut |
359
361
  |------|-------------|
360
362
  | `remember` | Wissen mit Beobachtungen, Relationen und Tags speichern |
361
- | `recall` | FTS5 + sqlite-vec Suche mit Multi-Faktor-Bewertung (Relevanz, Aktualität, Häufigkeit, Konfidenz, zeitliche Gültigkeit) — kein LLM auf dem Hot Path |
363
+ | `recall` | FTS5 + sqlite-vec Suche mit Multi-Faktor-Bewertung (Relevanz, Aktualität, Häufigkeit, Konfidenz, Abruf-Auswirkung) — kein LLM auf dem Hot Path |
362
364
  | `forget` | Soft-Archivierung (löscht nie) oder entfernt spezifische Beobachtungen |
363
- | `consolidate` | LLM-gestützte Kompression ausschweifender Memories |
364
365
  | `export` | Memories als JSON zwischen Projekten oder Teamkollegen teilen |
365
366
  | `import` | Memories mit Merge-Strategien importieren (Skip / Overwrite / Append) |
366
367
  | `learn` | Strukturierte Lektionen aus Fehlern erfassen (Fehler, Grundursache, Behebung, Prävention) |
package/README.es.md CHANGED
@@ -9,7 +9,7 @@
9
9
  <p align="center">
10
10
  <a href="https://www.npmjs.com/package/@pcircle/memesh"><img src="https://img.shields.io/npm/v/@pcircle/memesh?style=flat-square&color=3b82f6&label=npm" alt="npm" /></a>
11
11
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-22c55e?style=flat-square" alt="MIT" /></a>
12
- <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20-22c55e?style=flat-square" alt="Node" /></a>
12
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D22-22c55e?style=flat-square" alt="Node" /></a>
13
13
  <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-a855f7?style=flat-square" alt="MCP" /></a>
14
14
  </p>
15
15
  </p>
@@ -29,13 +29,13 @@ Este paquete es la capa de memoria local de la familia de productos MeMesh. Es i
29
29
 
30
30
  ---
31
31
 
32
- ## Prueba — 95.40% R@5 en LongMemEval-S
32
+ ## Prueba — 95.60% R@5 en LongMemEval-S
33
33
 
34
34
  El motor de recuperación de MeMesh es **solo FTS5** (sin LLM, sin embeddings en la ruta caliente), medido contra el benchmark público [LongMemEval-S](https://huggingface.co/datasets/xiaowu0162/longmemeval) (500 preguntas, licencia MIT):
35
35
 
36
36
  | Sistema | R@5 | Fuente |
37
37
  |---|---|---|
38
- | **MeMesh (Modo A, FTS5)** | **95.40%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
38
+ | **MeMesh (Modo A, via `recallEnhanced()`)** | **95.60%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
39
39
  | MemPalace | 96.6% | Auto-reporte del proveedor |
40
40
  | Supermemory | ~82% | Estimación del proveedor |
41
41
  | Zep | 63.8% | Paper de LongMemEval |
@@ -316,9 +316,11 @@ Cuando npm marca una versión instalada como deprecada (típicamente un aviso de
316
316
 
317
317
  ## Características Inteligentes
318
318
 
319
- **🧠 Búsqueda Inteligente** — Busca "login security" y encuentra memorias sobre "OAuth PKCE". MeMesh expande consultas con términos relacionados usando tu LLM configurado.
319
+ **🧠 Búsqueda Inteligente** — Busca "login security" y encuentra memorias sobre "OAuth PKCE". MeMesh usa FTS5 + sqlite-vec en la ruta caliente, sin LLM; el complemento vectorial aún alcanza términos relacionados.
320
320
 
321
- **📊 Ranking Puntuado** — Los resultados se clasifican por relevancia (30%) + recencia (25%) + frecuencia (15%) + confianza (15%) + impacto de recuperación (10%) + validez temporal (5%).
321
+ **🌏 Búsqueda en escrituras que no separan las palabras con espacios** — El chino, el japonés, el coreano, el tailandés, el lao, el jemer y el katakana de media anchura se indexan como pares de caracteres solapados. Así, un recuerdo escrito como 「資料庫遷移前一定要先備份」 se encuentra buscando 「備份」, no solo con su texto completo exacto. El texto se normaliza (NFC) tanto al escribir como al consultar, de modo que un recuerdo tecleado en macOS o con un IME coreano o vietnamita se encuentra en cualquiera de las dos grafías.
322
+
323
+ **📊 Ranking Puntuado** — Los resultados se clasifican por relevancia (30%) + recencia (25%) + frecuencia (18%) + confianza (17%) + impacto de recuperación (10%).
322
324
 
323
325
  **🔄 Evolución del Conocimiento** — Las decisiones cambian. `forget` archiva memorias antiguas (nunca borra). Las relaciones `supersedes` vinculan antiguas → nuevas. Tu IA siempre ve la versión más reciente.
324
326
 
@@ -346,7 +348,7 @@ Los bundles importados permanecen buscables, pero MeMesh no inyecta automáticam
346
348
 
347
349
  ## Desbloquea Modo Inteligente (Opcional)
348
350
 
349
- MeMesh funciona sin conexión por defecto — el recall permanece estrictamente sin LLM (95.40% R@5 en LongMemEval-S de fábrica). Añade una clave API de LLM solo si quieres flujos de análisis aumentados por LLM encima: extracción de sesión más inteligente, auto-etiquetado de nuevas memorias, generación de lecciones a partir de fallos, y compresión `consolidate` / `dream`:
351
+ MeMesh funciona sin conexión por defecto — el recall permanece estrictamente sin LLM (95.60% R@5 en LongMemEval-S de fábrica). Añade una clave API de LLM solo si quieres flujos de análisis aumentados por LLM encima: extracción de sesión más inteligente, auto-etiquetado de nuevas memorias, generación de lecciones a partir de fallos, y compresión `dream`:
350
352
 
351
353
  ```bash
352
354
  memesh config set llm.provider anthropic
@@ -372,11 +374,11 @@ El embedder se configura **independientemente del LLM de chat** — cambiar `llm
372
374
 
373
375
  | | Nivel 0 (por defecto) | Nivel 1 (Modo Inteligente) |
374
376
  |---|---|---|
375
- | **Búsqueda** | FTS5 + sqlite-vec, 95.40% R@5 (~18ms/consulta) | sin cambios — el recall es sin LLM en cada nivel |
377
+ | **Búsqueda** | FTS5 + sqlite-vec, 95.60% R@5 (~4ms por recall) | sin cambios — el recall es sin LLM en cada nivel |
376
378
  | **Auto-capture** | Patrones basados en reglas | + LLM extrae decisiones y lecciones |
377
379
  | **Auto-etiquetado** | Solo etiquetas manuales | + LLM genera etiquetas para nuevas memorias |
378
380
  | **Análisis de fallos** | No disponible | + LLM convierte errores de sesión en lecciones estructuradas |
379
- | **Compresión** | No disponible | `consolidate` + `dream` comprimen memorias verbosas |
381
+ | **Compresión** | No disponible | `dream` comprimen memorias verbosas |
380
382
  | **Costo** | Gratis, sin clave API | ~$0.0001 por llamada de análisis (Haiku) |
381
383
 
382
384
  ---
@@ -386,9 +388,8 @@ El embedder se configura **independientemente del LLM de chat** — cambiar `llm
386
388
  | Herramienta | Qué hace |
387
389
  |---|---|
388
390
  | `remember` | Guardar conocimiento con observaciones, relaciones y etiquetas |
389
- | `recall` | Búsqueda FTS5 + sqlite-vec con scoring multifactor (relevancia, recencia, frecuencia, confianza, validez temporal) — sin LLM en la ruta caliente |
391
+ | `recall` | Búsqueda FTS5 + sqlite-vec con scoring multifactor (relevancia, recencia, frecuencia, confianza, impacto de recuperación) — sin LLM en la ruta caliente |
390
392
  | `forget` | Archivo suave (nunca borra) o elimina observaciones específicas |
391
- | `consolidate` | Compresión impulsada por LLM de memorias verbosas |
392
393
  | `export` | Compartir memorias como JSON entre proyectos o miembros del equipo |
393
394
  | `import` | Importar memorias con estrategias de fusión (skip / overwrite / append) |
394
395
  | `learn` | Registrar lecciones estructuradas de errores (error, causa raíz, corrección, prevención) |
package/README.fr.md CHANGED
@@ -9,7 +9,7 @@
9
9
  <p align="center">
10
10
  <a href="https://www.npmjs.com/package/@pcircle/memesh"><img src="https://img.shields.io/npm/v/@pcircle/memesh?style=flat-square&color=3b82f6&label=npm" alt="npm" /></a>
11
11
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-22c55e?style=flat-square" alt="MIT" /></a>
12
- <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20-22c55e?style=flat-square" alt="Node" /></a>
12
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D22-22c55e?style=flat-square" alt="Node" /></a>
13
13
  <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-a855f7?style=flat-square" alt="MCP" /></a>
14
14
  </p>
15
15
  </p>
@@ -29,13 +29,13 @@ Ce package constitue la couche de mémoire locale de la famille de produits MeMe
29
29
 
30
30
  ---
31
31
 
32
- ## Preuve — 95,40 % R@5 sur LongMemEval-S
32
+ ## Preuve — 95,60 % R@5 sur LongMemEval-S
33
33
 
34
34
  Le moteur de récupération de MeMesh utilise **FTS5 seul** (pas de LLM, pas d'embeddings sur le chemin chaud), mesuré sur le benchmark public [LongMemEval-S](https://huggingface.co/datasets/xiaowu0162/longmemeval) (500 questions, licence MIT) :
35
35
 
36
36
  | Système | R@5 | Source |
37
37
  |---|---|---|
38
- | **MeMesh (Mode A, FTS5)** | **95,40 %** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
38
+ | **MeMesh (Mode A, via `recallEnhanced()`)** | **95,60 %** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
39
39
  | MemPalace | 96,6 % | Auto-déclaration de l'éditeur |
40
40
  | Supermemory | ~82 % | Estimation de l'éditeur |
41
41
  | Zep | 63,8 % | Article LongMemEval |
@@ -258,7 +258,7 @@ Toute la configuration passe par des variables d'environnement. Les valeurs par
258
258
  |---|---|---|
259
259
  | `MEMESH_DB_PATH` | `~/.memesh/knowledge-graph.db` | Remplace l'emplacement de la base SQLite. |
260
260
  | `MEMESH_AUTO_CAPTURE` | `true` | Désactive entièrement les hooks d'auto-capture (`Stop`, `PreCompact`). |
261
- | `MEMESH_AUTO_DETECT_LLM` | non défini (détection auto **activée**) | Mettre à `0` pour empêcher memesh d'utiliser une clé API trouvée dans l'environnement du shell. Par défaut, si `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` est définie et qu'aucun fournisseur n'est configuré dans `~/.memesh/config.json`, memesh l'utilise pour les fonctions LLM d'écriture (consolidation, extraction de leçons, auto-tagging, dream). Les embeddings ne sont pas affectés — ils restent en ONNX local (384-dim) sauf si vous définissez explicitement `embedder.provider`. |
261
+ | `MEMESH_AUTO_DETECT_LLM` | non défini (détection auto **activée**) | Mettre à `0` pour empêcher memesh d'utiliser une clé API trouvée dans l'environnement du shell. Par défaut, si `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` est définie et qu'aucun fournisseur n'est configuré dans `~/.memesh/config.json`, memesh l'utilise pour les fonctions LLM d'écriture (extraction de leçons, auto-tagging, dream). Les embeddings ne sont pas affectés — ils restent en ONNX local (384-dim) sauf si vous définissez explicitement `embedder.provider`. |
262
262
  | `MEMESH_ENABLE_AGENTIC_ORCHESTRATION` | non défini | Mettre à `1` pour activer un protocole de modèle de travail expérimental (cadre CTO / Orchestrateur / Agents). Ajoute une bannière en début de session, un nudge sur les commandes Bash et la télémétrie `verify_agent_work`. L'efficacité du protocole est instrumentée mais pas encore prouvée — activez-la si vous souhaitez participer. **Désactivé par défaut** : les fonctionnalités de mémoire principales fonctionnent sans ce flag. |
263
263
  | `MEMESH_AUTO_UPDATE` | `off` | Politique de mise à jour automatique. `off` (défaut) ne met jamais à jour automatiquement ; `patch` autorise `X.Y.Z → X.Y.Z+N` ; `minor` ajoute `X.Y.Z → X.Y+1.0` ; `major` autorise tout incrément. Quand c'est permis, un `npm install -g` détaché s'exécute en fin de session (hook Stop) pour ne jamais bloquer votre travail — les résultats arrivent dans `~/.memesh/auto-update.log`. Configurable aussi via `autoUpdate` dans `~/.memesh/config.json` (la variable d'environnement l'emporte). Quand la version installée est dépréciée par les mainteneurs (alerte de sécurité), `patch` est forcé même en `off` — les incréments minor / major restent manuels pour éviter une dérive de comportement silencieuse. |
264
264
  | `OPENAI_API_KEY` | non défini | Votre clé OpenAI. Utilisée automatiquement pour les fonctions LLM sauf si vous mettez `MEMESH_AUTO_DETECT_LLM=0` ou configurez un fournisseur explicitement. |
@@ -291,7 +291,9 @@ Lorsque npm signale une version installée comme dépréciée (typiquement une a
291
291
 
292
292
  **🧠 Recherche Intelligente** — Cherchez « sécurité login » et trouvez des mémoires sur « OAuth PKCE ». MeMesh combine FTS5 et la similarité vectorielle sqlite-vec pour trouver des mémoires sémantiquement liées sans LLM sur le chemin chaud.
293
293
 
294
- **📊 Classement Avec Score** — Les résultats sont classés par pertinence (30 %) + récence (25 %) + fréquence (15 %) + confiance (15 %) + impact de rappel (10 %) + validité temporelle (5 %).
294
+ **🌏 Recherche dans les écritures sans espaces entre les mots** — Le chinois, le japonais, le coréen, le thaï, le lao, le khmer et les katakana demi-chasse sont indexés par paires de caractères qui se chevauchent. Un souvenir écrit 「資料庫遷移前一定要先備份」 se retrouve donc en cherchant 「備份」, et pas seulement par son texte intégral exact. Le texte est normalisé (NFC) à l'écriture comme à la recherche : un souvenir saisi sur macOS ou avec une méthode de saisie coréenne ou vietnamienne se retrouve dans les deux graphies.
295
+
296
+ **📊 Classement Avec Score** — Les résultats sont classés par pertinence (30 %) + récence (25 %) + fréquence (18 %) + confiance (17 %) + impact de rappel (10 %).
295
297
 
296
298
  **🔄 Évolution Des Connaissances** — Les décisions changent. `forget` archive les anciennes mémoires (jamais supprimer). Les relations `supersedes` relient ancien → nouveau. Votre IA voit toujours la version la plus récente.
297
299
 
@@ -319,7 +321,7 @@ Les bundles importés restent consultables, mais MeMesh n'injecte pas automatiqu
319
321
 
320
322
  ## Déverrouiller Le Mode Smart (Optionnel)
321
323
 
322
- MeMesh fonctionne hors ligne par défaut — le rappel reste strictement sans LLM (95,40 % R@5 sur LongMemEval-S dès l'installation). Ajoutez une clé API LLM uniquement si vous voulez des flux d'analyse augmentés par LLM par-dessus : extraction de session plus intelligente, auto-tagging des nouvelles mémoires, génération de leçons depuis les défaillances et compression `consolidate` / `dream` :
324
+ MeMesh fonctionne hors ligne par défaut — le rappel reste strictement sans LLM (95,60 % R@5 sur LongMemEval-S dès l'installation). Ajoutez une clé API LLM uniquement si vous voulez des flux d'analyse augmentés par LLM par-dessus : extraction de session plus intelligente, auto-tagging des nouvelles mémoires, génération de leçons depuis les défaillances et compression `dream` :
323
325
 
324
326
  ```bash
325
327
  memesh config set llm.provider anthropic
@@ -345,11 +347,11 @@ L'embedder se configure **indépendamment du LLM de chat** — changer `llm.prov
345
347
 
346
348
  | | Niveau 0 (défaut) | Niveau 1 (Mode Smart) |
347
349
  |---|---|---|
348
- | **Recherche** | FTS5 + sqlite-vec, 95,40 % R@5 (~18 ms/requête) | inchangé — le rappel est sans LLM à tous les niveaux |
350
+ | **Recherche** | FTS5 + sqlite-vec, 95,60 % R@5 (~4 ms par rappel) | inchangé — le rappel est sans LLM à tous les niveaux |
349
351
  | **Auto-capture** | Motifs basés sur les règles | + LLM extrait les décisions & leçons |
350
352
  | **Auto-tagging** | Tags manuels uniquement | + LLM génère des tags pour les nouvelles mémoires |
351
353
  | **Analyse de défaillance** | Indisponible | + LLM convertit les erreurs de session en leçons structurées |
352
- | **Compression** | Indisponible | `consolidate` + `dream` compressent les mémoires verbeux |
354
+ | **Compression** | Indisponible | `dream` compressent les mémoires verbeux |
353
355
  | **Coût** | Gratuit, aucune clé API | ~$0,0001 par appel d'analyse (Haiku) |
354
356
 
355
357
  ---
@@ -359,9 +361,8 @@ L'embedder se configure **indépendamment du LLM de chat** — changer `llm.prov
359
361
  | Outil | Ce qu'il fait |
360
362
  |---|---|
361
363
  | `remember` | Stocker les connaissances avec observations, relations et tags |
362
- | `recall` | Recherche FTS5 + sqlite-vec avec notation multi-facteurs (pertinence, récence, fréquence, confiance, validité temporelle) — pas de LLM sur le chemin chaud |
364
+ | `recall` | Recherche FTS5 + sqlite-vec avec notation multi-facteurs (pertinence, récence, fréquence, confiance, impact de rappel) — pas de LLM sur le chemin chaud |
363
365
  | `forget` | Soft-archivage (jamais supprimer) ou suppression d'observations spécifiques |
364
- | `consolidate` | Compression des mémoires verbeux alimentée par LLM |
365
366
  | `export` | Partager les mémoires au format JSON entre projets ou membres d'équipe |
366
367
  | `import` | Importer les mémoires avec stratégies de fusion (skip / overwrite / append) |
367
368
  | `learn` | Enregistrer les leçons structurées à partir des erreurs (erreur, cause racine, correctif, prévention) |
package/README.ja.md CHANGED
@@ -9,7 +9,7 @@
9
9
  <p align="center">
10
10
  <a href="https://www.npmjs.com/package/@pcircle/memesh"><img src="https://img.shields.io/npm/v/@pcircle/memesh?style=flat-square&color=3b82f6&label=npm" alt="npm" /></a>
11
11
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-22c55e?style=flat-square" alt="MIT" /></a>
12
- <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20-22c55e?style=flat-square" alt="Node" /></a>
12
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D22-22c55e?style=flat-square" alt="Node" /></a>
13
13
  <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-a855f7?style=flat-square" alt="MCP" /></a>
14
14
  </p>
15
15
  </p>
@@ -29,13 +29,13 @@
29
29
 
30
30
  ---
31
31
 
32
- ## エビデンス — LongMemEval-S で 95.40% R@5
32
+ ## エビデンス — LongMemEval-S で 95.60% R@5
33
33
 
34
34
  MeMesh の検索エンジンは **FTS5 のみ**(LLM もホットパスのエンベディングも使用しない)で、公開されている [LongMemEval-S](https://huggingface.co/datasets/xiaowu0162/longmemeval) ベンチマーク(500 問、MIT ライセンス)で測定された結果です:
35
35
 
36
36
  | システム | R@5 | ソース |
37
37
  |---|---|---|
38
- | **MeMesh (Mode A, FTS5)** | **95.40%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
38
+ | **MeMesh (Mode A, via `recallEnhanced()`)** | **95.60%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
39
39
  | MemPalace | 96.6% | ベンダー自社申告 |
40
40
  | Supermemory | ~82% | ベンダー推定値 |
41
41
  | Zep | 63.8% | LongMemEval 論文 |
@@ -316,9 +316,11 @@ npm がインストール済みバージョンを非推奨としてフラグし
316
316
 
317
317
  ## スマート機能
318
318
 
319
- **🧠 スマート検索** — 「login security」で検索すると「OAuth PKCE」についてのメモリが見つかります。MeMesh は設定された LLM を使い、クエリを関連用語で拡張します。
319
+ **🧠 スマート検索** — 「login security」で検索すると「OAuth PKCE」についてのメモリが見つかります。MeMesh はホットパスで FTS5 + sqlite-vec を使い、LLM を使いません。ベクトル補完により関連する表現にも届きます。
320
320
 
321
- **📊 スコア付きランキング**関連性 (30%) + 新しさ (25%) + 頻度 (15%) + 信頼度 (15%) + リコール影響度 (10%) + 時間的有効性 (5%) でランク付け。
321
+ **🌏 分かち書きしない文字体系での検索**中国語・日本語・韓国語・タイ語・ラオ語・クメール語・半角カタカナは隣り合う 2 文字の組として索引化されます。そのため「資料庫遷移前一定要先備份」と書いた記憶は、全文を正確に打ち込まなくても「備份」で見つかります。書き込み側と検索側の両方で NFC 正規化を行うので、macOS や韓国語・ベトナム語の IME で入力した記憶もどちらの表記でも見つかります。
322
+
323
+ **📊 スコア付きランキング** — 関連性 (30%) + 新しさ (25%) + 頻度 (18%) + 信頼度 (17%) + リコール影響度 (10%) でランク付け。
322
324
 
323
325
  **🔄 知識の進化** — 判断は変わります。`forget` で古いメモリをアーカイブ (削除されない)。`supersedes` 関係で古い → 新しい をリンク。AI は常に最新版を参照します。
324
326
 
@@ -346,7 +348,7 @@ npm がインストール済みバージョンを非推奨としてフラグし
346
348
 
347
349
  ## スマートモードをアンロック (オプション)
348
350
 
349
- MeMesh はデフォルトでオフライン動作します — リコールは厳密に LLM フリーのまま(箱出し状態で LongMemEval-S 95.40% R@5)。LLM API キーを追加するのは、その上に LLM 拡張の分析フローを重ねたい場合のみです: より賢いセッション抽出、新規メモリの自動タグ付け、失敗からのレッスン生成、`consolidate` / `dream` 圧縮:
351
+ MeMesh はデフォルトでオフライン動作します — リコールは厳密に LLM フリーのまま(箱出し状態で LongMemEval-S 95.60% R@5)。LLM API キーを追加するのは、その上に LLM 拡張の分析フローを重ねたい場合のみです: より賢いセッション抽出、新規メモリの自動タグ付け、失敗からのレッスン生成、`dream` 圧縮:
350
352
 
351
353
  ```bash
352
354
  memesh config set llm.provider anthropic
@@ -372,11 +374,11 @@ memesh config set embedder.model text-embedding-3-small
372
374
 
373
375
  | | レベル 0 (デフォルト) | レベル 1 (スマートモード) |
374
376
  |---|---|---|
375
- | **検索** | FTS5 + sqlite-vec、95.40% R@5(~18ms/クエリ) | 変更なし — リコールはどのレベルでも LLM フリー |
377
+ | **検索** | FTS5 + sqlite-vec、95.60% R@5(リコール 1 回あたり ~4ms) | 変更なし — リコールはどのレベルでも LLM フリー |
376
378
  | **自動キャプチャ** | ルールベースパターン | + LLM が判断・教訓を抽出 |
377
379
  | **自動タグ付け** | 手動タグのみ | + LLM が新規メモリにタグを生成 |
378
380
  | **失敗分析** | 利用不可 | + LLM がセッションエラーを構造化教訓に変換 |
379
- | **圧縮** | 利用不可 | `consolidate` + `dream` が冗長メモリを圧縮 |
381
+ | **圧縮** | 利用不可 | `dream` が冗長メモリを圧縮 |
380
382
  | **コスト** | 無料、API キー不要 | 分析呼び出しあたり ~$0.0001(Haiku) |
381
383
 
382
384
  ---
@@ -386,9 +388,8 @@ memesh config set embedder.model text-embedding-3-small
386
388
  | ツール | 機能 |
387
389
  |------|------|
388
390
  | `remember` | 観察、関係、タグ付きで知識を保存 |
389
- | `recall` | FTS5 + sqlite-vec 検索、多要素スコアリング(関連性、新しさ、頻度、信頼度、時間的有効性) — ホットパスに LLM なし |
391
+ | `recall` | FTS5 + sqlite-vec 検索、多要素スコアリング(関連性、新しさ、頻度、信頼度、リコール影響度) — ホットパスに LLM なし |
390
392
  | `forget` | ソフトアーカイブ (削除されない) または特定の観察を削除 |
391
- | `consolidate` | LLM が冗長メモリを圧縮 |
392
393
  | `export` | メモリを JSON でシェア (プロジェクト・チーム間) |
393
394
  | `import` | マージ戦略付きメモリインポート (スキップ / 上書き / 追記) |
394
395
  | `learn` | ミスから構造化教訓を記録 (エラー、根本原因、修正、予防) |
package/README.ko.md CHANGED
@@ -9,7 +9,7 @@
9
9
  <p align="center">
10
10
  <a href="https://www.npmjs.com/package/@pcircle/memesh"><img src="https://img.shields.io/npm/v/@pcircle/memesh?style=flat-square&color=3b82f6&label=npm" alt="npm" /></a>
11
11
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-22c55e?style=flat-square" alt="MIT" /></a>
12
- <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20-22c55e?style=flat-square" alt="Node" /></a>
12
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D22-22c55e?style=flat-square" alt="Node" /></a>
13
13
  <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-a855f7?style=flat-square" alt="MCP" /></a>
14
14
  </p>
15
15
  </p>
@@ -29,13 +29,13 @@
29
29
 
30
30
  ---
31
31
 
32
- ## 검증 — LongMemEval-S에서 R@5 95.40%
32
+ ## 검증 — LongMemEval-S에서 R@5 95.60%
33
33
 
34
34
  MeMesh의 검색 엔진은 **FTS5 단독**(핫 패스에 LLM 없음, 임베딩 없음)이며, 공개 [LongMemEval-S](https://huggingface.co/datasets/xiaowu0162/longmemeval) 벤치마크(500개 질문, MIT 라이선스)로 측정되었습니다:
35
35
 
36
36
  | 시스템 | R@5 | 출처 |
37
37
  |---|---|---|
38
- | **MeMesh (Mode A, FTS5)** | **95.40%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
38
+ | **MeMesh (Mode A, via `recallEnhanced()`)** | **95.60%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
39
39
  | MemPalace | 96.6% | 벤더 자체 보고 |
40
40
  | Supermemory | ~82% | 벤더 추정치 |
41
41
  | Zep | 63.8% | LongMemEval 논문 |
@@ -316,9 +316,11 @@ npm이 설치된 버전을 deprecated로 플래그하면(일반적으로 보안
316
316
 
317
317
  ## 스마트 기능
318
318
 
319
- **🧠 스마트 검색** — FTS5 + sqlite-vec를 사용해 모든 메모리에서 즉시 검색. 핫 패스에 LLM이 없어 LongMemEval-S에서 R@5 95.40% 달성.
319
+ **🧠 스마트 검색** — FTS5 + sqlite-vec를 사용해 모든 메모리에서 즉시 검색. 핫 패스에 LLM이 없어 LongMemEval-S에서 R@5 95.60% 달성.
320
320
 
321
- **📊 점수 순위 매김**결과는 관련성(30%) + 최근성(25%) + 빈도(15%) + 신뢰도(15%) + 회상 영향(10%) + 시계열 유효성(5%)으로 순위 매겨집니다.
321
+ **🌏 띄어쓰기를 하지 않는 문자 검색** 중국어, 일본어, 한국어, 태국어, 라오어, 크메르어, 반각 가타카나는 인접한 글자 묶음으로 색인됩니다. 따라서 「資料庫遷移前一定要先備份」으로 저장한 기억은 전체 문장을 그대로 입력하지 않아도 「備份」으로 찾을 수 있습니다. 저장할 때와 검색할 때 모두 NFC 정규화를 거치므로, macOS나 한국어·베트남어 IME로 입력한 기억도 어느 쪽 표기로든 찾을 수 있습니다.
322
+
323
+ **📊 점수 순위 매김** — 결과는 관련성(30%) + 최근성(25%) + 빈도(18%) + 신뢰도(17%) + 회상 영향(10%)으로 순위 매겨집니다.
322
324
 
323
325
  **🔄 지식 진화** — 결정은 변합니다. `forget`으로 오래된 메모리 보관(절대 삭제 안 함). `supersedes` 관계가 구 → 신을 연결합니다. AI는 항상 최신 버전을 봅니다.
324
326
 
@@ -346,7 +348,7 @@ npm이 설치된 버전을 deprecated로 플래그하면(일반적으로 보안
346
348
 
347
349
  ## 스마트 모드 언락 (선택)
348
350
 
349
- MeMesh는 기본적으로 오프라인에서 작동합니다 — 회상은 엄격히 LLM-free로 유지됩니다(기본 설치만으로 LongMemEval-S에서 R@5 95.40%). LLM API 키는 그 위에 LLM 증강 분석 흐름을 원할 때만 추가합니다: 더 스마트한 세션 추출, 새 메모리의 자동 태그 부여, 실패로부터의 교훈 생성, `consolidate` / `dream` 압축:
351
+ MeMesh는 기본적으로 오프라인에서 작동합니다 — 회상은 엄격히 LLM-free로 유지됩니다(기본 설치만으로 LongMemEval-S에서 R@5 95.60%). LLM API 키는 그 위에 LLM 증강 분석 흐름을 원할 때만 추가합니다: 더 스마트한 세션 추출, 새 메모리의 자동 태그 부여, 실패로부터의 교훈 생성, `dream` 압축:
350
352
 
351
353
  ```bash
352
354
  memesh config set llm.provider anthropic
@@ -372,11 +374,11 @@ memesh config set embedder.model text-embedding-3-small
372
374
 
373
375
  | | Level 0 (기본) | Level 1 (스마트 모드) |
374
376
  |---|---|---|
375
- | **검색** | FTS5 + sqlite-vec, R@5 95.40% (~18ms/쿼리) | 변경 없음 — 회상은 모든 레벨에서 LLM-free |
377
+ | **검색** | FTS5 + sqlite-vec, R@5 95.60% (회상 1회당 ~4ms) | 변경 없음 — 회상은 모든 레벨에서 LLM-free |
376
378
  | **자동 캡처** | 규칙 기반 패턴 | + LLM이 결정과 교훈 추출 |
377
379
  | **자동 태그 부여** | 수동 태그만 | + LLM이 새 메모리에 태그 생성 |
378
380
  | **실패 분석** | 사용 불가 | + LLM이 세션 에러를 구조화된 교훈으로 변환 |
379
- | **압축** | 사용 불가 | `consolidate` + `dream`이 장황한 메모리 압축 |
381
+ | **압축** | 사용 불가 | `dream`이 장황한 메모리 압축 |
380
382
  | **비용** | 무료, API 키 불필요 | ~$0.0001 분석 호출당 (Haiku) |
381
383
 
382
384
  ---
@@ -386,9 +388,8 @@ memesh config set embedder.model text-embedding-3-small
386
388
  | 도구 | 역할 |
387
389
  |---|---|
388
390
  | `remember` | 관찰, 관계, 태그를 포함한 지식 저장 |
389
- | `recall` | 다중 요소 점수 매김(관련성, 최근성, 빈도, 신뢰도, 시계열 유효성)이 있는 FTS5 + sqlite-vec 검색 — 핫 패스에 LLM 없음 |
391
+ | `recall` | 다중 요소 점수 매김(관련성, 최근성, 빈도, 신뢰도, 회상 영향)이 있는 FTS5 + sqlite-vec 검색 — 핫 패스에 LLM 없음 |
390
392
  | `forget` | 소프트 보관(절대 삭제 안 함) 또는 특정 관찰 제거 |
391
- | `consolidate` | LLM 기반 장황한 메모리 압축 |
392
393
  | `export` | 프로젝트나 팀 멤버 간 메모리 JSON 공유 |
393
394
  | `import` | 병합 전략(스킵/덮어쓰기/추가)이 있는 메모리 임포트 |
394
395
  | `learn` | 실수로부터 구조화된 교훈 기록(에러, 근본 원인, 수정, 예방) |
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
  <p align="center">
10
10
  <a href="https://www.npmjs.com/package/@pcircle/memesh"><img src="https://img.shields.io/npm/v/@pcircle/memesh?style=flat-square&color=3b82f6&label=npm" alt="npm" /></a>
11
11
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-22c55e?style=flat-square" alt="MIT" /></a>
12
- <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20-22c55e?style=flat-square" alt="Node" /></a>
12
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D22-22c55e?style=flat-square" alt="Node" /></a>
13
13
  <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-a855f7?style=flat-square" alt="MCP" /></a>
14
14
  </p>
15
15
  </p>
@@ -18,13 +18,13 @@
18
18
 
19
19
  **MeMesh** — the open-source **memory layer** for Claude Code & MCP agents. One SQLite file. No cloud. Plugs into any LLM.
20
20
 
21
- ## 95.40% R@5 on LongMemEval-S — beats Mem0 by 46 points
21
+ ## 95.60% R@5 on LongMemEval-S — beats Mem0 by 46 points
22
22
 
23
23
  MeMesh's retrieval is **FTS5 alone** — no LLM, no embeddings on the hot path. Measured against the public [LongMemEval-S](https://huggingface.co/datasets/xiaowu0162/longmemeval) benchmark (500 questions, MIT-licensed):
24
24
 
25
25
  | System | R@5 | Source |
26
26
  |---|---|---|
27
- | **MeMesh (Mode A, FTS5)** | **95.40%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
27
+ | **MeMesh (Mode A, via `recallEnhanced()`)** | **95.60%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
28
28
  | MemPalace | 96.6% | Vendor self-report |
29
29
  | Supermemory | ~82% | Vendor estimate |
30
30
  | Zep | 63.8% | LongMemEval paper |
@@ -287,7 +287,7 @@ All configuration is via environment variables. Defaults are local-only and zero
287
287
  |---|---|---|
288
288
  | `MEMESH_DB_PATH` | `~/.memesh/knowledge-graph.db` | Override the SQLite database location. |
289
289
  | `MEMESH_AUTO_CAPTURE` | `true` | Disable the auto-capture hooks (`Stop`, `PreCompact`) entirely. |
290
- | `MEMESH_AUTO_DETECT_LLM` | unset (auto-detect **on**) | Set to `0` to stop memesh using an API key it finds in your shell env. By default, if `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` is set and you have not configured a provider in `~/.memesh/config.json`, memesh uses it for write-side LLM features (consolidation, lesson extraction, auto-tagging, dream). Embeddings are unaffected — they stay local ONNX (384-dim) unless you explicitly set `embedder.provider`. |
290
+ | `MEMESH_AUTO_DETECT_LLM` | unset (auto-detect **on**) | Set to `0` to stop memesh using an API key it finds in your shell env. By default, if `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` is set and you have not configured a provider in `~/.memesh/config.json`, memesh uses it for write-side LLM features (lesson extraction, auto-tagging, dream). Embeddings are unaffected — they stay local ONNX (384-dim) unless you explicitly set `embedder.provider`. |
291
291
  | `MEMESH_ENABLE_AGENTIC_ORCHESTRATION` | unset | Set to `1` to enable an experimental working-model protocol (CTO / Orchestrator / Agents framing). Adds a session-start banner, a Bash command nudge, and `verify_agent_work` telemetry. The protocol's effectiveness is being instrumented, not yet proven — opt in if you want to participate. **Default is OFF**: the core memory features work without this flag. |
292
292
  | `MEMESH_AUTO_UPDATE` | `off` | Auto-update policy. `off` (default) never auto-updates; `patch` allows `X.Y.Z → X.Y.Z+N`; `minor` adds `X.Y.Z → X.Y+1.0`; `major` allows any bump. When permitted, a detached `npm install -g` fires at session end (Stop hook) so it never blocks your work — outcomes land in `~/.memesh/auto-update.log`. Also settable as `autoUpdate` in `~/.memesh/config.json` (env wins). When the installed version is deprecated by maintainers (security advisory), `patch` is force-allowed even on `off` — minor / major bumps still stay manual to avoid silent behaviour drift. |
293
293
  | `OPENAI_API_KEY` | unset | Your OpenAI key. Used automatically for LLM features unless you set `MEMESH_AUTO_DETECT_LLM=0` or configure a provider explicitly. |
@@ -318,9 +318,11 @@ When npm flags an installed version as deprecated (typically a security advisory
318
318
 
319
319
  ## Smart Features
320
320
 
321
- **🧠 Smart Search** — Search "login security" and find memories about "OAuth PKCE". MeMesh expands queries with related terms using your configured LLM.
321
+ **🧠 Smart Search** — Search "login security" and find memories about "OAuth PKCE". MeMesh uses FTS5 + sqlite-vec on the hot path, LLM-free, and the vector supplement still reaches across related wording.
322
322
 
323
- **📊 Scored Ranking** — Results ranked by relevance (30%) + recency (25%) + frequency (15%) + confidence (15%) + recall impact (10%) + temporal validity (5%).
323
+ **🌏 Search in scripts that don't use spaces** — Chinese, Japanese, Korean, Thai, Lao, Khmer and half-width katakana are indexed as overlapping character pairs, so a memory written as 「資料庫遷移前一定要先備份」 is found by searching 「備份」 not only by its exact full text. Text is normalised (NFC) on both the write and the query side, so memories typed on macOS or with a Korean or Vietnamese IME are found in either spelling.
324
+
325
+ **📊 Scored Ranking** — Results ranked by relevance (30%) + recency (25%) + frequency (18%) + confidence (17%) + recall impact (10%).
324
326
 
325
327
  **🔄 Knowledge Evolution** — Decisions change. `forget` archives old memories (never deletes). `supersedes` relations link old → new. Your AI always sees the latest version.
326
328
 
@@ -348,7 +350,7 @@ Imported bundles stay searchable, but MeMesh does not auto-inject imported memor
348
350
 
349
351
  ## Unlock Smart Mode (Optional)
350
352
 
351
- MeMesh works offline by default — recall stays strictly LLM-free (95.40% R@5 on LongMemEval-S out of the box). Add an LLM API key only if you want LLM-augmented analysis flows on top: smarter session extraction, auto-tagging of new memories, lesson generation from failures, and `consolidate` / `dream` compression:
353
+ MeMesh works offline by default — recall stays strictly LLM-free (95.60% R@5 on LongMemEval-S out of the box). Add an LLM API key only if you want LLM-augmented analysis flows on top: smarter session extraction, auto-tagging of new memories, lesson generation from failures, and `dream` compression:
352
354
 
353
355
  ```bash
354
356
  memesh config set llm.provider anthropic
@@ -374,11 +376,11 @@ The embedder is configured **independently of the chat LLM** — changing `llm.p
374
376
 
375
377
  | | Level 0 (default) | Level 1 (Smart Mode) |
376
378
  |---|---|---|
377
- | **Search** | FTS5 + sqlite-vec, 95.40% R@5 (~18ms/query) | unchanged — recall is LLM-free at every level |
379
+ | **Search** | FTS5 + sqlite-vec, 95.60% R@5 (~4ms per recall) | unchanged — recall is LLM-free at every level |
378
380
  | **Auto-capture** | Rule-based patterns | + LLM extracts decisions & lessons |
379
381
  | **Auto-tagging** | Manual tags only | + LLM generates tags for new memories |
380
382
  | **Failure analysis** | Not available | + LLM converts session errors into structured lessons |
381
- | **Compression** | Not available | `consolidate` + `dream` compress verbose memories |
383
+ | **Compression** | Not available | `dream` compress verbose memories |
382
384
  | **Cost** | Free, no API key | ~$0.0001 per analysis call (Haiku) |
383
385
 
384
386
  ---
@@ -388,9 +390,8 @@ The embedder is configured **independently of the chat LLM** — changing `llm.p
388
390
  | Tool | What it does |
389
391
  |------|-------------|
390
392
  | `remember` | Store knowledge with observations, relations, and tags |
391
- | `recall` | FTS5 + sqlite-vec search with multi-factor scoring (relevance, recency, frequency, confidence, temporal validity) — no LLM in the hot path |
393
+ | `recall` | FTS5 + sqlite-vec search with multi-factor scoring (relevance, recency, frequency, confidence, recall impact) — no LLM in the hot path |
392
394
  | `forget` | Soft-archive (never deletes) or remove specific observations |
393
- | `consolidate` | LLM-powered compression of verbose memories |
394
395
  | `export` | Share memories as JSON between projects or team members |
395
396
  | `import` | Import memories with merge strategies (skip / overwrite / append) |
396
397
  | `learn` | Record structured lessons from mistakes (error, root cause, fix, prevention) |
package/README.pt.md CHANGED
@@ -9,7 +9,7 @@
9
9
  <p align="center">
10
10
  <a href="https://www.npmjs.com/package/@pcircle/memesh"><img src="https://img.shields.io/npm/v/@pcircle/memesh?style=flat-square&color=3b82f6&label=npm" alt="npm" /></a>
11
11
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-22c55e?style=flat-square" alt="MIT" /></a>
12
- <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20-22c55e?style=flat-square" alt="Node" /></a>
12
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D22-22c55e?style=flat-square" alt="Node" /></a>
13
13
  <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-a855f7?style=flat-square" alt="MCP" /></a>
14
14
  </p>
15
15
  </p>
@@ -29,13 +29,13 @@ Este pacote é a camada de memória local da família de produtos MeMesh. É pro
29
29
 
30
30
  ---
31
31
 
32
- ## Prova — 95,40% R@5 no LongMemEval-S
32
+ ## Prova — 95,60% R@5 no LongMemEval-S
33
33
 
34
34
  O motor de recuperação do MeMesh é **apenas FTS5** (sem LLM, sem embeddings no hot path), medido contra o benchmark público [LongMemEval-S](https://huggingface.co/datasets/xiaowu0162/longmemeval) (500 perguntas, licença MIT):
35
35
 
36
36
  | Sistema | R@5 | Fonte |
37
37
  |---|---|---|
38
- | **MeMesh (Mode A, FTS5)** | **95,40%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
38
+ | **MeMesh (Mode A, via `recallEnhanced()`)** | **95,60%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
39
39
  | MemPalace | 96,6% | Auto-relato do fornecedor |
40
40
  | Supermemory | ~82% | Estimativa do fornecedor |
41
41
  | Zep | 63,8% | Paper LongMemEval |
@@ -289,9 +289,11 @@ Quando o npm sinaliza uma versão instalada como depreciada (tipicamente um advi
289
289
 
290
290
  ## Funcionalidades Inteligentes
291
291
 
292
- **🧠 Busca Inteligente** — Busque "login security" e encontre memórias sobre "OAuth PKCE". MeMesh expande queries com termos relacionados usando seu LLM configurado.
292
+ **🧠 Busca Inteligente** — Busque "login security" e encontre memórias sobre "OAuth PKCE". MeMesh usa FTS5 + sqlite-vec no caminho quente, sem LLM; o complemento vetorial ainda alcança termos relacionados.
293
293
 
294
- **📊 Ranking Pontuado** — Resultados ranqueados por relevância (30%) + recência (25%) + frequência (15%) + confiança (15%) + impacto de recall (10%) + validade temporal (5%).
294
+ **🌏 Busca em escritas que não separam palavras por espaços** — Chinês, japonês, coreano, tailandês, laosiano, khmer e katakana de meia largura são indexados como pares de caracteres sobrepostos. Assim, uma memória escrita como 「資料庫遷移前一定要先備份」 é encontrada buscando 「備份」, e não apenas pelo texto completo exato. O texto é normalizado (NFC) tanto na escrita quanto na consulta, então uma memória digitada no macOS ou com um IME coreano ou vietnamita é encontrada em qualquer das duas grafias.
295
+
296
+ **📊 Ranking Pontuado** — Resultados ranqueados por relevância (30%) + recência (25%) + frequência (18%) + confiança (17%) + impacto de recall (10%).
295
297
 
296
298
  **🔄 Evolução de Conhecimento** — Decisões mudam. `forget` arquiva memórias antigas (nunca deleta). Relações `supersedes` vinculam antigas → novas. Sua IA sempre vê a versão mais recente.
297
299
 
@@ -319,7 +321,7 @@ Bundles importados permanecem pesquisáveis, mas MeMesh não injeta automaticame
319
321
 
320
322
  ## Desbloqueie Smart Mode (Opcional)
321
323
 
322
- MeMesh funciona offline por padrão — o recall permanece estritamente LLM-free (95,40% R@5 no LongMemEval-S, sem LLM). Adicione uma chave de API de LLM apenas se quiser fluxos de análise LLM-augmented adicionais: extração de sessão mais inteligente, auto-tagging de novas memórias, geração de lessons a partir de falhas, e compressão `consolidate` / `dream`:
324
+ MeMesh funciona offline por padrão — o recall permanece estritamente LLM-free (95,60% R@5 no LongMemEval-S, sem LLM). Adicione uma chave de API de LLM apenas se quiser fluxos de análise LLM-augmented adicionais: extração de sessão mais inteligente, auto-tagging de novas memórias, geração de lessons a partir de falhas, e compressão `dream`:
323
325
 
324
326
  ```bash
325
327
  memesh config set llm.provider anthropic
@@ -345,11 +347,11 @@ O embedder é configurado **independentemente do LLM de chat** — mudar `llm.pr
345
347
 
346
348
  | | Level 0 (padrão) | Level 1 (Smart Mode) |
347
349
  |---|---|---|
348
- | **Busca** | FTS5 + sqlite-vec, 95,40% R@5 (~18ms/query) | inalterado — recall é LLM-free em todos os níveis |
350
+ | **Busca** | FTS5 + sqlite-vec, 95,60% R@5 (~4ms por recall) | inalterado — recall é LLM-free em todos os níveis |
349
351
  | **Auto-capture** | Padrões baseados em regras | + LLM extrai decisões & lições |
350
352
  | **Auto-tagging** | Apenas tags manuais | + LLM gera tags para novas memórias |
351
353
  | **Análise de falhas** | Não disponível | + LLM converte erros de sessão em structured lessons |
352
- | **Compressão** | Não disponível | `consolidate` + `dream` comprimem memórias verbosas |
354
+ | **Compressão** | Não disponível | `dream` comprimem memórias verbosas |
353
355
  | **Custo** | Grátis, sem chave de API | ~$0.0001 por analysis call (Haiku) |
354
356
 
355
357
  ---
@@ -359,9 +361,8 @@ O embedder é configurado **independentemente do LLM de chat** — mudar `llm.pr
359
361
  | Ferramenta | O que faz |
360
362
  |------|-------------|
361
363
  | `remember` | Armazena conhecimento com observações, relações e tags |
362
- | `recall` | Busca FTS5 + sqlite-vec com scoring multi-fator (relevância, recência, frequência, confiança, validade temporal) — sem LLM no hot path |
364
+ | `recall` | Busca FTS5 + sqlite-vec com scoring multi-fator (relevância, recência, frequência, confiança, impacto de recall) — sem LLM no hot path |
363
365
  | `forget` | Soft-archive (nunca deleta) ou remove observações específicas |
364
- | `consolidate` | Compressão com LLM de memórias verbosas |
365
366
  | `export` | Compartilha memórias como JSON entre projetos ou membros da equipe |
366
367
  | `import` | Importa memórias com estratégias de merge (skip / overwrite / append) |
367
368
  | `learn` | Registra lições estruturadas de erros (erro, causa raiz, fix, prevenção) |