@pcircle/memesh 4.5.1 → 4.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/.claude-plugin/marketplace.json +5 -3
  2. package/.claude-plugin/plugin.json +6 -4
  3. package/AGENTS.md +116 -0
  4. package/README.de.md +141 -48
  5. package/README.md +173 -48
  6. package/README.zh-TW.md +142 -48
  7. package/dashboard/dist/index.html +15 -14
  8. package/dist/cli/view-live.js +3 -3
  9. package/dist/core/analytics.d.ts +9 -0
  10. package/dist/core/analytics.d.ts.map +1 -1
  11. package/dist/core/analytics.js +36 -18
  12. package/dist/core/analytics.js.map +1 -1
  13. package/dist/core/auto-tagger.d.ts.map +1 -1
  14. package/dist/core/auto-tagger.js +4 -9
  15. package/dist/core/auto-tagger.js.map +1 -1
  16. package/dist/core/briefing.d.ts +8 -0
  17. package/dist/core/briefing.d.ts.map +1 -0
  18. package/dist/core/briefing.js +92 -0
  19. package/dist/core/briefing.js.map +1 -0
  20. package/dist/core/capture-flag.d.ts +5 -0
  21. package/dist/core/capture-flag.d.ts.map +1 -0
  22. package/dist/core/capture-flag.js +10 -0
  23. package/dist/core/capture-flag.js.map +1 -0
  24. package/dist/core/config.d.ts +0 -1
  25. package/dist/core/config.d.ts.map +1 -1
  26. package/dist/core/config.js.map +1 -1
  27. package/dist/core/conflict-candidates.d.ts +20 -0
  28. package/dist/core/conflict-candidates.d.ts.map +1 -0
  29. package/dist/core/conflict-candidates.js +79 -0
  30. package/dist/core/conflict-candidates.js.map +1 -0
  31. package/dist/core/conflict-judge.d.ts +47 -0
  32. package/dist/core/conflict-judge.d.ts.map +1 -0
  33. package/dist/core/conflict-judge.js +189 -0
  34. package/dist/core/conflict-judge.js.map +1 -0
  35. package/dist/core/demo.d.ts.map +1 -1
  36. package/dist/core/demo.js +1 -1
  37. package/dist/core/demo.js.map +1 -1
  38. package/dist/core/digest-validator.d.ts.map +1 -1
  39. package/dist/core/digest-validator.js +3 -5
  40. package/dist/core/digest-validator.js.map +1 -1
  41. package/dist/core/doctor.d.ts +2 -0
  42. package/dist/core/doctor.d.ts.map +1 -1
  43. package/dist/core/doctor.js +59 -62
  44. package/dist/core/doctor.js.map +1 -1
  45. package/dist/core/dreamer.d.ts +5 -2
  46. package/dist/core/dreamer.d.ts.map +1 -1
  47. package/dist/core/dreamer.js +329 -25
  48. package/dist/core/dreamer.js.map +1 -1
  49. package/dist/core/embedder.d.ts +8 -4
  50. package/dist/core/embedder.d.ts.map +1 -1
  51. package/dist/core/embedder.js +82 -24
  52. package/dist/core/embedder.js.map +1 -1
  53. package/dist/core/failure-analyzer.d.ts.map +1 -1
  54. package/dist/core/failure-analyzer.js +7 -12
  55. package/dist/core/failure-analyzer.js.map +1 -1
  56. package/dist/core/graph.d.ts +12 -0
  57. package/dist/core/graph.d.ts.map +1 -1
  58. package/dist/core/graph.js +56 -1
  59. package/dist/core/graph.js.map +1 -1
  60. package/dist/core/guards.d.ts +20 -0
  61. package/dist/core/guards.d.ts.map +1 -0
  62. package/dist/core/guards.js +103 -0
  63. package/dist/core/guards.js.map +1 -0
  64. package/dist/core/install-channel.d.ts +1 -1
  65. package/dist/core/install-channel.d.ts.map +1 -1
  66. package/dist/core/install-channel.js +16 -5
  67. package/dist/core/install-channel.js.map +1 -1
  68. package/dist/core/install-hooks.d.ts +5 -0
  69. package/dist/core/install-hooks.d.ts.map +1 -1
  70. package/dist/core/install-hooks.js +0 -0
  71. package/dist/core/install-hooks.js.map +1 -1
  72. package/dist/core/json-utils.d.ts +1 -0
  73. package/dist/core/json-utils.d.ts.map +1 -1
  74. package/dist/core/json-utils.js +19 -10
  75. package/dist/core/json-utils.js.map +1 -1
  76. package/dist/core/kg-backfill.d.ts +5 -2
  77. package/dist/core/kg-backfill.d.ts.map +1 -1
  78. package/dist/core/kg-backfill.js +155 -5
  79. package/dist/core/kg-backfill.js.map +1 -1
  80. package/dist/core/lifecycle.d.ts.map +1 -1
  81. package/dist/core/lifecycle.js +14 -21
  82. package/dist/core/lifecycle.js.map +1 -1
  83. package/dist/core/memory-tool.d.ts.map +1 -1
  84. package/dist/core/memory-tool.js +4 -4
  85. package/dist/core/memory-tool.js.map +1 -1
  86. package/dist/core/operations.d.ts +13 -2
  87. package/dist/core/operations.d.ts.map +1 -1
  88. package/dist/core/operations.js +115 -28
  89. package/dist/core/operations.js.map +1 -1
  90. package/dist/core/prompt-safety.d.ts +1 -0
  91. package/dist/core/prompt-safety.d.ts.map +1 -1
  92. package/dist/core/prompt-safety.js +7 -0
  93. package/dist/core/prompt-safety.js.map +1 -1
  94. package/dist/core/schema-export.d.ts.map +1 -1
  95. package/dist/core/schema-export.js +31 -0
  96. package/dist/core/schema-export.js.map +1 -1
  97. package/dist/core/serializer.d.ts.map +1 -1
  98. package/dist/core/serializer.js +8 -0
  99. package/dist/core/serializer.js.map +1 -1
  100. package/dist/core/setup.d.ts +29 -0
  101. package/dist/core/setup.d.ts.map +1 -0
  102. package/dist/core/setup.js +127 -0
  103. package/dist/core/setup.js.map +1 -0
  104. package/dist/core/task-state-store.d.ts +17 -0
  105. package/dist/core/task-state-store.d.ts.map +1 -0
  106. package/dist/core/task-state-store.js +45 -0
  107. package/dist/core/task-state-store.js.map +1 -0
  108. package/dist/core/task-state.d.ts +19 -0
  109. package/dist/core/task-state.d.ts.map +1 -0
  110. package/dist/core/task-state.js +91 -0
  111. package/dist/core/task-state.js.map +1 -0
  112. package/dist/core/time-utils.d.ts +2 -0
  113. package/dist/core/time-utils.d.ts.map +1 -0
  114. package/dist/core/time-utils.js +14 -0
  115. package/dist/core/time-utils.js.map +1 -0
  116. package/dist/core/title.d.ts +5 -0
  117. package/dist/core/title.d.ts.map +1 -0
  118. package/dist/core/title.js +14 -0
  119. package/dist/core/title.js.map +1 -0
  120. package/dist/core/transcript-source.d.ts.map +1 -1
  121. package/dist/core/transcript-source.js +2 -3
  122. package/dist/core/transcript-source.js.map +1 -1
  123. package/dist/core/types.d.ts +5 -0
  124. package/dist/core/types.d.ts.map +1 -1
  125. package/dist/core/why.d.ts +54 -0
  126. package/dist/core/why.d.ts.map +1 -0
  127. package/dist/core/why.js +168 -0
  128. package/dist/core/why.js.map +1 -0
  129. package/dist/core/work-topology.d.ts +36 -0
  130. package/dist/core/work-topology.d.ts.map +1 -0
  131. package/dist/core/work-topology.js +192 -0
  132. package/dist/core/work-topology.js.map +1 -0
  133. package/dist/db.d.ts +33 -11
  134. package/dist/db.d.ts.map +1 -1
  135. package/dist/db.js +307 -315
  136. package/dist/db.js.map +1 -1
  137. package/dist/knowledge-graph.d.ts +1 -0
  138. package/dist/knowledge-graph.d.ts.map +1 -1
  139. package/dist/knowledge-graph.js +50 -40
  140. package/dist/knowledge-graph.js.map +1 -1
  141. package/dist/skills-manifest.json +62 -22
  142. package/dist/storage/conflicts.d.ts.map +1 -1
  143. package/dist/storage/conflicts.js +2 -7
  144. package/dist/storage/conflicts.js.map +1 -1
  145. package/dist/storage/fts-index.d.ts +4 -2
  146. package/dist/storage/fts-index.d.ts.map +1 -1
  147. package/dist/storage/fts-index.js +16 -4
  148. package/dist/storage/fts-index.js.map +1 -1
  149. package/dist/storage/schema.d.ts +20 -0
  150. package/dist/storage/schema.d.ts.map +1 -0
  151. package/dist/storage/schema.js +274 -0
  152. package/dist/storage/schema.js.map +1 -0
  153. package/dist/storage/sqlite.d.ts.map +1 -1
  154. package/dist/storage/sqlite.js +1 -1
  155. package/dist/storage/sqlite.js.map +1 -1
  156. package/dist/transports/cli/cli.d.ts +1 -4
  157. package/dist/transports/cli/cli.d.ts.map +1 -1
  158. package/dist/transports/cli/cli.js +579 -66
  159. package/dist/transports/cli/cli.js.map +1 -1
  160. package/dist/transports/http/server.d.ts.map +1 -1
  161. package/dist/transports/http/server.js +242 -303
  162. package/dist/transports/http/server.js.map +1 -1
  163. package/dist/transports/mcp/handlers.d.ts +46 -0
  164. package/dist/transports/mcp/handlers.d.ts.map +1 -1
  165. package/dist/transports/mcp/handlers.js +59 -4
  166. package/dist/transports/mcp/handlers.js.map +1 -1
  167. package/dist/transports/schemas.d.ts +29 -10
  168. package/dist/transports/schemas.d.ts.map +1 -1
  169. package/dist/transports/schemas.js +33 -8
  170. package/dist/transports/schemas.js.map +1 -1
  171. package/hooks/hooks.json +10 -0
  172. package/llms-install.md +138 -0
  173. package/package.json +14 -9
  174. package/scripts/hooks/_generated/capture-flag.js +17 -0
  175. package/scripts/hooks/_generated/fts-index.js +16 -4
  176. package/scripts/hooks/_generated/guards.js +110 -0
  177. package/scripts/hooks/_generated/schema.js +281 -0
  178. package/scripts/hooks/_generated/sqlite.js +1 -1
  179. package/scripts/hooks/_generated/task-state.js +98 -0
  180. package/scripts/hooks/_generated/time-utils.js +21 -0
  181. package/scripts/hooks/_generated/title.js +21 -0
  182. package/scripts/hooks/_generated/work-topology.js +199 -0
  183. package/scripts/hooks/_shared.js +197 -480
  184. package/scripts/hooks/guard-check.js +76 -0
  185. package/scripts/hooks/post-commit.js +31 -1
  186. package/scripts/hooks/pre-compact.js +13 -1
  187. package/scripts/hooks/pre-edit-recall.js +158 -120
  188. package/scripts/hooks/session-start.js +169 -82
  189. package/scripts/hooks/session-summary.js +78 -90
  190. package/skills/memesh/SKILL.md +108 -76
  191. package/README.es.md +0 -467
  192. package/README.fr.md +0 -459
  193. package/README.ja.md +0 -467
  194. package/README.ko.md +0 -467
  195. package/README.pt.md +0 -459
  196. package/README.th.md +0 -460
  197. package/README.vi.md +0 -459
  198. package/README.zh-CN.md +0 -466
  199. package/dist/cli/view.d.ts +0 -3
  200. package/dist/cli/view.d.ts.map +0 -1
  201. package/dist/cli/view.js +0 -523
  202. package/dist/cli/view.js.map +0 -1
package/README.pt.md DELETED
@@ -1,459 +0,0 @@
1
- 🌐 [English](README.md) | [繁體中文](README.zh-TW.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [Português](README.pt.md) | [Français](README.fr.md) | [Deutsch](README.de.md) | [Tiếng Việt](README.vi.md) | [Español](README.es.md) | [ภาษาไทย](README.th.md)
2
-
3
- <p align="center">
4
- <h1 align="center">MeMesh LLM Memory</h1>
5
- <p align="center">
6
- <strong>Memória local para Claude Code e agentes de codificação MCP.</strong><br />
7
- Um arquivo SQLite. Sem Docker. Sem dependência de nuvem.
8
- </p>
9
- <p align="center">
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
- <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%3D22-22c55e?style=flat-square" alt="Node" /></a>
13
- <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-a855f7?style=flat-square" alt="MCP" /></a>
14
- </p>
15
- </p>
16
-
17
- ---
18
-
19
- > [!IMPORTANT]
20
- > **Projeto em desenvolvimento ativo** — funcionalidades evoluem continuamente e podem mudar entre releases. Em caso de bug ou pedido de funcionalidade, por favor [abra uma issue](https://github.com/PCIRCLE-AI/memesh-llm-memory/issues).
21
-
22
- ## O Problema
23
-
24
- Seu agente de código esquece tudo entre sessões. Toda decisão arquitetônica, correção de bug, teste que falhou e lição conquistada na marra precisa ser re-explicada. Claude Code sempre começa do zero, redescobre restrições antigas e queima contexto em coisas que já deveria saber.
25
-
26
- **MeMesh oferece memória local persistente, pesquisável e evolutiva para agentes de código.**
27
-
28
- Este pacote é a camada de memória local da família de produtos MeMesh. É propositalmente pequeno e open-source: instale via npm, mantenha sua memória em `~/.memesh/knowledge-graph.db` e conecte ao Claude Code ou qualquer cliente compatível com MCP. Produtos de workspace hospedado e sistemas operacionais corporativos devem se manter separados do roadmap e README deste pacote.
29
-
30
- ---
31
-
32
- ## Prova — 95,60% R@5 no LongMemEval-S
33
-
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
-
36
- | Sistema | R@5 | Fonte |
37
- |---|---|---|
38
- | **MeMesh (Mode A, via `recallEnhanced()`)** | **95,60%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
39
- | MemPalace | 96,6% | Auto-relato do fornecedor |
40
- | Supermemory | ~82% | Estimativa do fornecedor |
41
- | Zep | 63,8% | Paper LongMemEval |
42
- | Mem0 | 49,0% | Paper LongMemEval |
43
-
44
- Comandos de reprodução, SHA256 do dataset, resultados brutos por pergunta e análise de falhas conhecidas estão todos em [`benchmarks/longmemeval/`](benchmarks/longmemeval/). Reexecutável em ~10 segundos.
45
-
46
- ---
47
-
48
- ## Caminhos de instalação resumidos
49
-
50
- MeMesh tem **dois caminhos de instalação que coexistem**. A maioria dos usuários quer ambos. Ambos escrevem no **mesmo banco de dados de memória** (`~/.memesh/knowledge-graph.db`), então memórias capturadas no chat do Claude Code aparecem no seu shell, e vice-versa.
51
-
52
- ```mermaid
53
- flowchart TB
54
- classDef client fill:#1f2937,stroke:#4b5563,color:#f9fafb,stroke-width:1px
55
- classDef pathA fill:#1e3a8a,stroke:#3b82f6,color:#eff6ff,stroke-width:2px
56
- classDef pathB fill:#14532d,stroke:#22c55e,color:#f0fdf4,stroke-width:2px
57
- classDef db fill:#7c2d12,stroke:#f97316,color:#fff7ed,stroke-width:2px
58
-
59
- subgraph clients["Where you use memesh from"]
60
- direction LR
61
- CC["Claude Code<br/>(chat + agent)"]:::client
62
- TERM["Terminal / other<br/>MCP clients<br/>(Cursor, Cline...)"]:::client
63
- end
64
-
65
- subgraph paths["Two install paths"]
66
- direction LR
67
- A["<b>Path A — /plugin install</b><br/>───────────────<br/>Lives in <code>~/.claude/plugins/</code><br/><br/>• MCP tools in chat<br/>• Auto-capture hooks<br/>• <code>/memesh</code> skill<br/>• Session-start banner"]:::pathA
68
- B["<b>Path B — npm install -g</b><br/>───────────────<br/>Lives in <code>$(npm prefix -g)/bin/</code><br/><br/>• <code>memesh</code> shell command<br/>• <code>memesh-mcp</code>, <code>-http</code>, <code>-view</code> bins<br/>• For Cursor / Cline / other MCP"]:::pathB
69
- end
70
-
71
- DB[("Shared memory DB<br/><code>~/.memesh/knowledge-graph.db</code><br/>Same data, both paths see it")]:::db
72
-
73
- CC -->|uses| A
74
- TERM -->|uses| B
75
- A --> DB
76
- B --> DB
77
- ```
78
-
79
- **Qual você precisa?**
80
-
81
- | O que você quer fazer | Caminho de instalação |
82
- |---|---|
83
- | Usar o skill `/memesh` numa conversa do Claude Code | Path A (plugin) |
84
- | Auto-captura no Claude Code (sessão → lições → recall seguinte) | Path A (plugin) |
85
- | Rodar `memesh remember` / `memesh recall` / `memesh doctor` em qualquer terminal | Path B (npm-global) |
86
- | Abrir o dashboard via `memesh serve` (sem atraso de inicialização do `npx`) | Path B (npm-global) |
87
- | Conectar `memesh-mcp` ao Cursor, Cline ou outro cliente MCP | Path B (npm-global) |
88
- | Tudo acima | **Instale ambos** — não conflitam |
89
-
90
- > **Confusão comum**: o plugin do Claude Code **não** coloca `memesh` no `PATH` do seu shell. Se você só rodar `/plugin install` e depois digitar `memesh reindex` num terminal, vai ver `command not found`. É normal — adicione `npm install -g @pcircle/memesh` também para acesso pelo shell.
91
-
92
- ### ⚠️ Instalar o plugin NÃO instala o CLI
93
-
94
- É a confusão mais comum. Leia uma vez e economize tempo no futuro:
95
-
96
- - `/plugin install memesh@pcircle-memesh` no Claude Code → instala **apenas Path A**. Te dá ferramentas MCP, hooks, o skill `/memesh`. **NÃO** coloca `memesh` no `PATH` do seu shell.
97
- - `memesh reindex` / `memesh update` / `memesh doctor` num terminal → precisa do **Path B** (npm-global). Sem ele: `zsh: command not found: memesh`.
98
- - **Configuração recomendada para usuários do Claude Code**: **instale ambos**. Coexistem, compartilham o mesmo banco, sem conflito.
99
-
100
- ```bash
101
- # Depois de /plugin install ..., rode também isto:
102
- npm install -g @pcircle/memesh
103
- ```
104
-
105
- Se você só usa memesh pelo chat do Claude Code (nunca digita `memesh` num terminal), Path A sozinho basta. Os demais: instale ambos.
106
-
107
- ---
108
-
109
- ## Comece em 60 Segundos
110
-
111
- ### Opção A — Plugin do Claude Code (instalação em uma linha)
112
-
113
- Se você usa o Claude Code, instale o MeMesh como plugin de dentro da CLI:
114
-
115
- ```
116
- /plugin marketplace add PCIRCLE-AI/memesh-llm-memory
117
- /plugin install memesh@pcircle-memesh
118
- ```
119
-
120
- O Claude Code conecta hooks, skills e o servidor MCP automaticamente. Você ganha auto-captura em sessão, recall proativo, o skill `/memesh` na conversa e `remember` / `recall` / `forget` / `learn` como ferramentas MCP para o agente.
121
-
122
- ### Opção B — npm global (otimização opcional)
123
-
124
- Se quiser o binário direto no seu `PATH` (para que `memesh` funcione em qualquer terminal sem o atraso do `npx`), ou expor `memesh-mcp` como comando stdio de caminho fixo para clientes MCP fora do Claude Code (Cursor, Cline):
125
-
126
- ```bash
127
- npm install -g @pcircle/memesh
128
- ```
129
-
130
- ### Passo 1.5: Conecte o MeMesh ao Claude Code (recomendado, uma só vez)
131
-
132
- `npm install -g` coloca a CLI no PATH e registra o servidor MCP, mas **não** conecta automaticamente os hooks de sessão do MeMesh ao Claude Code. Sem esses hooks você pode usar `memesh remember` / `recall` manualmente, mas o **loop de auto-captura** (sessão → lições → recall proativo na próxima sessão) fica silencioso.
133
-
134
- ```bash
135
- memesh install-hooks # adiciona os hooks do memesh em ~/.claude/settings.json
136
- memesh doctor # confirma que "Hooks wired into Claude Code" passou
137
- ```
138
-
139
- Os hooks coexistem com qualquer hook customizado em `~/.claude/hooks/` — `install-hooks` escreve de forma aditiva e nunca sobrescreve. Para remover: `memesh uninstall-hooks`.
140
-
141
- ### Passo 2: Armazene uma decisão
142
-
143
- ```bash
144
- memesh remember "Use OAuth 2.0 with PKCE for the new auth"
145
- ```
146
-
147
- Ou use a forma explícita quando quiser um nome e um tipo estáveis para filtrar depois:
148
-
149
- ```bash
150
- memesh remember --name "auth-decision" --type "decision" --obs "Use OAuth 2.0 with PKCE"
151
- ```
152
-
153
- ### Passo 3: Recupere depois
154
-
155
- ```bash
156
- memesh recall "login security"
157
- # → Encontra "OAuth 2.0 with PKCE" mesmo com palavras de busca diferentes
158
- ```
159
-
160
- **É só isso.** MeMesh já está lembrando e recuperando entre sessões.
161
-
162
- Se quiser verificar a instalação e toda a configuração local de ponta a ponta:
163
-
164
- ```bash
165
- memesh doctor
166
- ```
167
-
168
- Abra o dashboard para explorar sua memória:
169
-
170
- ```bash
171
- memesh serve
172
- ```
173
-
174
- <p align="center">
175
- <img src="docs/images/dashboard-search.png" alt="MeMesh Search — encontre qualquer memória instantaneamente" width="100%" />
176
- </p>
177
-
178
- <p align="center">
179
- <img src="docs/images/dashboard-analytics.png" alt="MeMesh Analytics — score de saúde, timeline, padrões, cobertura de conhecimento" width="100%" />
180
- </p>
181
-
182
- <p align="center">
183
- <img src="docs/images/dashboard-graph.png" alt="MeMesh Graph — grafo de conhecimento interativo com filtros por tipo e modo ego" width="100%" />
184
- </p>
185
-
186
- ---
187
-
188
- ## Para Quem é Isso?
189
-
190
- | Se você é... | MeMesh te ajuda a... |
191
- |---------------|---------------------|
192
- | **Um dev usando Claude Code** | Recuperar automaticamente decisões de projeto, lições por arquivo e falhas passadas enquanto trabalha |
193
- | **Um power user de agentes de código** | Compartilhar uma camada de memória local entre ferramentas compatíveis com MCP |
194
- | **Uma equipe experimentando workflows de IA para código** | Exportar/importar conhecimento de projeto sem precisar de infraestrutura hospedada |
195
- | **Um desenvolvedor de agentes** | Adicionar memória local via MCP, HTTP ou CLI |
196
-
197
- ---
198
-
199
- ## Pensado Primeiro para Agentes de Código
200
-
201
- <table>
202
- <tr>
203
- <td width="33%" align="center">
204
-
205
- **Claude Code / Desktop**
206
- ```bash
207
- memesh-mcp
208
- ```
209
- Ferramentas MCP + hooks do Claude Code
210
-
211
- </td>
212
- <td width="33%" align="center">
213
-
214
- **Qualquer cliente HTTP**
215
- ```bash
216
- curl localhost:3737/v1/recall \
217
- -H "Content-Type: application/json" \
218
- -d '{"query":"auth"}'
219
- ```
220
- `memesh serve` (REST API)
221
-
222
- </td>
223
- <td width="33%" align="center">
224
-
225
- **Qualquer LLM (formato OpenAI)**
226
- ```bash
227
- memesh export-schema \
228
- --format openai
229
- ```
230
- Cole as ferramentas em qualquer chamada de API
231
-
232
- </td>
233
- </tr>
234
- </table>
235
-
236
- ---
237
-
238
- ## Por Que Não OpenMemory, Cursor Memories, Mem0 Ou Zep?
239
-
240
- | | **MeMesh** | OpenMemory | Cursor Memories | Mem0 | Zep / Graphiti |
241
- |---|---|---|---|---|---|
242
- | **Melhor para** | Memória local para agentes de código | Memória local/cross-client MCP | Memória de projeto nativa do Cursor | Memória gerenciada de app/agent | Grafos de conhecimento temporal |
243
- | **Forma de instalar** | `npm install -g @pcircle/memesh` | Fluxo de app local/server | Integrado no Cursor | Cloud API / SDK / MCP | Setup de serviço/framework |
244
- | **Armazenamento** | Um arquivo SQLite local | Stack de memória local | Regras/memórias gerenciadas pelo Cursor | Stack hospedada ou self-hosted | Banco de dados de grafo |
245
- | **Requer nuvem** | Não | Não em modo local | Depende de conta Cursor/configurações | Sim para plataforma | Geralmente sim/self-hosted |
246
- | **Hooks Claude Code** | Primeira classe | Ferramentas MCP | Não | Ferramentas MCP | Não específico para Claude Code |
247
- | **Dashboard** | Integrado | Integrado | Configurações do Cursor | Dashboard da plataforma | Ferramentas de plataforma/grafo |
248
- | **Trade-off** | Cunha local simples, não em escala corporativa | Footprint de app local mais amplo | Preso ao Cursor | Plataforma gerenciada forte, menos local-first | Modelo de grafo forte, setup mais pesado |
249
-
250
- **MeMesh troca infraestrutura gerenciada em escala corporativa por setup local instantâneo, armazenamento inspeionável e hooks de workflow para agentes de código.**
251
-
252
- ---
253
-
254
- ## O Que Acontece Automaticamente no Claude Code
255
-
256
- Você não precisa lembrar tudo manualmente. MeMesh tem **6 hooks** que capturam e injetam conhecimento enquanto você trabalha:
257
-
258
- | Quando | O que MeMesh faz |
259
- |------|------------------|
260
- | **Início de cada sessão** | Carrega suas memórias mais relevantes + alertas proativos de lições passadas + banner de orquestração de agentes |
261
- | **Antes de editar arquivos** | Recupera memórias vinculadas ao arquivo ou projeto antes de Claude escrever código |
262
- | **Quando você pede para lembrar** | Detecta intenção "remember this" / "記下來" e lembra Claude de escrever dual (memesh + MEMORY.md) |
263
- | **Depois de cada `git commit`** | Registra o que você mudou, com estatísticas de diff |
264
- | **Quando Claude para** | Captura arquivos editados, erros corrigidos e gera automaticamente lições estruturadas de falhas |
265
- | **Antes da compactação de contexto** | Salva conhecimento antes de ser perdido nos limites de contexto |
266
-
267
- > **Desative quando quiser:** `export MEMESH_AUTO_CAPTURE=false`
268
-
269
- ---
270
-
271
- ## Configuração
272
-
273
- Toda a configuração é feita por variáveis de ambiente. Os padrões são local-only e zero-network — você não precisa configurar nada para ter um sistema funcional.
274
-
275
- | Variável | Padrão | O que faz |
276
- |---|---|---|
277
- | `MEMESH_DB_PATH` | `~/.memesh/knowledge-graph.db` | Sobrescreve a localização do banco SQLite. |
278
- | `MEMESH_AUTO_CAPTURE` | `true` | Desativa completamente os hooks de auto-captura (`Stop`, `PreCompact`). |
279
- | `MEMESH_AUTO_DETECT_LLM` | não definido (autodetecção **ligada**) | Defina como `0` para que o memesh NÃO use uma chave de API encontrada no ambiente do shell. Por padrão, se `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` estiver definida e você não tiver configurado um provedor em `~/.memesh/config.json`, o memesh a usa para as funções LLM de escrita (consolidação, extração de lições, autotagging, dream). Os embeddings não são afetados — permanecem apenas por palavras-chave (FTS5) a menos que você defina `embedder.provider` como `ollama` ou `openai`. |
280
- | `MEMESH_AUTO_UPDATE` | `off` | Política de auto-update. `off` (padrão) nunca faz auto-update; `patch` permite `X.Y.Z → X.Y.Z+N`; `minor` adiciona `X.Y.Z → X.Y+1.0`; `major` permite qualquer bump. Quando permitido, um `npm install -g` desanexado dispara no fim da sessão (hook Stop) para nunca bloquear seu trabalho — os resultados aparecem em `~/.memesh/auto-update.log`. Também configurável como `autoUpdate` em `~/.memesh/config.json` (env vence). Quando a versão instalada é depreciada pelos mantenedores (advisory de segurança), `patch` é forçado mesmo em `off` — bumps minor / major continuam manuais para evitar drift silencioso de comportamento. |
281
- | `OPENAI_API_KEY` | não definido | Sua chave da OpenAI. Usada automaticamente para as funções LLM a menos que você defina `MEMESH_AUTO_DETECT_LLM=0` ou configure um provedor explicitamente. |
282
- | `OLLAMA_HOST` | `http://localhost:11434` | Sobrescreve o endpoint do Ollama ao usar um provedor Ollama local. |
283
-
284
- `memesh doctor` imprime a configuração resolvida para você ver o que está ativo.
285
-
286
- **Provedores LLM de fallback (Smart Mode).** No dashboard, em **Settings → “Fallback providers”**, você pode definir uma cadeia de failover ordenada — o memesh tenta cada provedor por vez quando o principal está fora do ar. Adicione um fallback local [Ollama](https://ollama.com), ou um na nuvem (OpenAI / Anthropic, com uma API key). Compromisso de privacidade: quando um fallback na nuvem é usado, o texto da memória — que pode ser privado — é enviado a esse provedor, o que importa se você roda só local por privacidade.
287
-
288
- Quando o npm sinaliza uma versão instalada como depreciada (tipicamente um advisory de segurança), o próximo início de sessão antepõe um banner forte `⚠️ MeMesh <ver> is DEPRECATED` e `memesh update-status` mostra a mesma linha até você atualizar. A verificação fica em cache em `~/.memesh/update-check.<version>.json` para que uma falha de rede transitória não atenue o aviso.
289
-
290
- ---
291
-
292
- ## Dashboard
293
-
294
- 8 abas, 11 idiomas, zero dependências externas. Acesse em `http://localhost:3737/dashboard` quando o servidor estiver rodando.
295
-
296
- | Aba | O que você vê |
297
- |-----|-------------|
298
- | **Insights** | Insights de memória — resumos semanais e propostas de padrões do motor dreamer; aceitar/rejeitar com um clique |
299
- | **Search** | Busca full-text + similaridade vetorial em todas as memórias |
300
- | **Browse** | Lista paginada de todas as entidades com archive/restore |
301
- | **Analytics** | Memory Health Score, timeline de 30 dias, velocidade PM + métricas de conectividade KG, padrões de trabalho, sugestões de limpeza |
302
- | **Graph** | Grafo de conhecimento interativo force-directed com filtros por tipo, busca, modo ego, heatmap de recência |
303
- | **Lessons** | Lições estruturadas de falhas passadas (erro, causa raiz, fix, prevenção) |
304
- | **Manage** | Archive e restore de entidades |
305
- | **Settings** | Config do provedor LLM, seletor de idioma instantâneo |
306
-
307
- ---
308
-
309
- ## Funcionalidades Inteligentes
310
-
311
- **🧠 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.
312
-
313
- **🌏 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.
314
-
315
- **📊 Ranking Pontuado** — Resultados ranqueados por relevância (30%) + recência (25%) + frequência (18%) + confiança (17%) + impacto de recall (10%).
316
-
317
- **🔄 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.
318
-
319
- **⚠️ Detecção de Conflitos** — Se você tem duas memórias que se contradizem, MeMesh te avisa.
320
-
321
- **🕸️ Conectividade do grafo de conhecimento** — `memesh kg backfill-relations --all-rules` liga entidades órfãs usando co-ocorrência de tags, agrupamento de projetos, contexto de sessão e similaridade de nomes — sem LLM.
322
-
323
- **📦 Compartilhamento em Equipe** — `memesh export > team-knowledge.json` → compartilhe com sua equipe → `memesh import team-knowledge.json`
324
- Bundles importados permanecem pesquisáveis, mas MeMesh não injeta automaticamente memórias importadas nos hooks do Claude até você revisar ou re-armazená-las localmente.
325
-
326
- ---
327
-
328
- ## Exemplos de Uso
329
-
330
- > "MeMesh lembrou que escolhemos PKCE em vez de implicit flow há três semanas. Quando pedi ao Claude sobre auth de novo, ele já sabia — sem need de re-explicar."
331
- > — **Dev solo, construindo um SaaS**
332
-
333
- > "Exportamos a memória da equipe toda sexta e importamos segunda. O Claude de todo mundo começa a semana sabendo o que a equipe aprendeu na semana passada."
334
- > — **Startup com 3 pessoas, base de conhecimento compartilhada**
335
-
336
- > "O dashboard mostrou que 90% das minhas memórias eram logs de sessão auto-gerados. Comecei a usar `remember` deliberadamente para decisões arquitetônicas. Game changer."
337
- > — **Dev que descobriu a aba Analytics**
338
-
339
- ---
340
-
341
- ## Desbloqueie Smart Mode (Opcional)
342
-
343
- 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`:
344
-
345
- ```bash
346
- memesh config set llm.provider anthropic
347
- memesh config set llm.api-key sk-ant-...
348
- ```
349
-
350
- Ou use a aba Settings do dashboard (setup visual):
351
-
352
- ```bash
353
- memesh serve # abre dashboard → aba Settings
354
- ```
355
-
356
- **Minere memória das suas sessões passadas.** `memesh dream run --from-transcripts` lê as transcrições de sessão do Claude Code deste projeto, pede ao LLM as decisões e lições escondidas na conversa e as prepara como propostas — nada entra no seu grafo automaticamente. Revise cada uma com `memesh dream show <id>` e aceite as que valerem a pena.
357
-
358
- ### Use seus próprios embeddings (opcional)
359
-
360
- Por padrão o MeMesh faz recall **apenas por palavras-chave** (FTS5) — sem chave de API, sem download de modelo, nada sai da sua máquina. A busca semântica (por significado) é opcional e precisa de um embedder. Configure um:
361
-
362
- ```bash
363
- memesh config set embedder.provider openai # or: ollama
364
- memesh config set embedder.model text-embedding-3-small
365
- ```
366
-
367
- O embedder é configurado **independentemente do LLM de chat** — mudar `llm.provider` nunca muda seus embeddings silenciosamente. Se você trocar para uma dimensão diferente (ex.: 768 → 1536), o MeMesh reconstrói o índice vetorial automaticamente na próxima escrita. Valores de `embedder.provider` suportados: `ollama` (local), `openai` (hospedado). Sem nenhum, o recall permanece na busca por palavras-chave.
368
-
369
- | | Level 0 (padrão) | Level 1 (Smart Mode) |
370
- |---|---|---|
371
- | **Busca** | FTS5 + sqlite-vec, 95,60% R@5 | inalterado — recall é LLM-free em todos os níveis |
372
- | **Auto-capture** | Padrões baseados em regras | + LLM extrai decisões & lições |
373
- | **Auto-tagging** | Apenas tags manuais | + LLM gera tags para novas memórias |
374
- | **Análise de falhas** | Não disponível | + LLM converte erros de sessão em structured lessons |
375
- | **Compressão** | Não disponível | `dream` comprimem memórias verbosas |
376
- | **Custo** | Grátis, sem chave de API | ~$0.0001 por analysis call (Haiku) |
377
-
378
- ---
379
-
380
- ## Todas as 7 Ferramentas de Memória
381
-
382
- | Ferramenta | O que faz |
383
- |------|-------------|
384
- | `remember` | Armazena conhecimento com observações, relações e tags |
385
- | `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 |
386
- | `forget` | Soft-archive (nunca deleta) ou remove observações específicas |
387
- | `export` | Compartilha memórias como JSON entre projetos ou membros da equipe |
388
- | `import` | Importa memórias com estratégias de merge (skip / overwrite / append) |
389
- | `learn` | Registra lições estruturadas de erros (erro, causa raiz, fix, prevenção) |
390
- | `user_patterns` | Analisa seus padrões de trabalho — schedule, ferramentas, pontos fortes, áreas de aprendizado |
391
-
392
- ---
393
-
394
- ## Arquitetura
395
-
396
- ```
397
- ┌─────────────────┐
398
- │ Core Engine │
399
- │ (7 operations) │
400
- └────────┬────────┘
401
- ┌─────────────────┼─────────────────┐
402
- │ │ │
403
- CLI (memesh) HTTP API (serve) MCP (memesh-mcp)
404
- │ │ │
405
- └─────────────────┼─────────────────┘
406
-
407
- SQLite + FTS5 + sqlite-vec
408
- (~/.memesh/knowledge-graph.db)
409
- ```
410
-
411
- Core é agnóstico a framework. A mesma lógica roda de terminal, HTTP ou MCP.
412
-
413
- ---
414
-
415
- ## Atualizando
416
-
417
- O plugin marketplace do Claude Code fixa versões no momento da instalação e **não** atualiza automaticamente. Para obter uma nova versão:
418
-
419
- **Opção A — UI `/plugin`**: desinstale `memesh@pcircle-memesh`, depois reinstale. O Claude Code busca a versão mais recente do marketplace.
420
-
421
- **Opção B — Script de uma linha** (sem cliques na UI, idempotente):
422
-
423
- ```bash
424
- # Se o seu plugin instalado for v4.2.5 ou mais recente, o script já está incluído:
425
- bash ~/.claude/plugins/cache/pcircle-memesh/memesh/<current-version>/scripts/upgrade-plugin.sh
426
-
427
- # Se você instalou antes de v4.2.5 (ou seja, v4.2.4 ou v4.2.3),
428
- # o script ainda não está no seu plugin. Use a cópia npm-global no lugar:
429
- bash "$(npm prefix -g)/lib/node_modules/@pcircle/memesh/scripts/upgrade-plugin.sh"
430
-
431
- # (Isso assume que você também executou `npm install -g @pcircle/memesh`. Se não,
432
- # este é um bom momento para fazê-lo — veja a seção "Caminhos de instalação resumidos"
433
- # acima para entender por que a maioria dos usuários quer ambos os caminhos.)
434
- ```
435
-
436
- O script fast-forwarded o cache do marketplace, prepara a nova versão em `~/.claude/plugins/cache/`, instala runtime deps e repõe o ponteiro de `installed_plugins.json`. Reinicie o Claude Code depois para o MCP server reconectar.
437
-
438
- **Instalações npm-global** (`npm install -g @pcircle/memesh`) podem se auto-atualizar via `memesh update`. Source checkouts: `git pull && npm install && npm run build`.
439
-
440
- No início da sessão aparece um banner de uma linha (limitado a uma vez por 24h por versão) quando há uma nova versão disponível, e `memesh doctor` reporta o alvo de upgrade com o comando específico do canal.
441
-
442
- ---
443
-
444
- ## Contribuindo
445
-
446
- ```bash
447
- git clone https://github.com/PCIRCLE-AI/memesh-llm-memory
448
- cd memesh-llm-memory && npm install && npm run build
449
- npm test
450
- npm run test:e2e-dashboard
451
- ```
452
-
453
- Dashboard: `cd dashboard && npm install && npm run dev`
454
-
455
- ---
456
-
457
- <p align="center">
458
- <strong>MIT</strong> — Feito por <a href="https://pcircle.com">PCIRCLE AI</a>
459
- </p>