@pcircle/memesh 4.0.3 → 4.1.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 (118) hide show
  1. package/README.de.md +227 -53
  2. package/README.es.md +230 -56
  3. package/README.fr.md +230 -56
  4. package/README.ja.md +229 -55
  5. package/README.ko.md +230 -56
  6. package/README.md +54 -3
  7. package/README.pt.md +230 -56
  8. package/README.th.md +230 -56
  9. package/README.vi.md +228 -54
  10. package/README.zh-CN.md +230 -56
  11. package/README.zh-TW.md +228 -54
  12. package/dashboard/dist/index.html +3 -3
  13. package/dist/core/analytics.d.ts +53 -0
  14. package/dist/core/analytics.d.ts.map +1 -0
  15. package/dist/core/analytics.js +127 -0
  16. package/dist/core/analytics.js.map +1 -0
  17. package/dist/core/auto-tagger.d.ts.map +1 -1
  18. package/dist/core/auto-tagger.js +14 -54
  19. package/dist/core/auto-tagger.js.map +1 -1
  20. package/dist/core/config.d.ts +1 -0
  21. package/dist/core/config.d.ts.map +1 -1
  22. package/dist/core/config.js +6 -10
  23. package/dist/core/config.js.map +1 -1
  24. package/dist/core/consolidator.d.ts.map +1 -1
  25. package/dist/core/consolidator.js +11 -61
  26. package/dist/core/consolidator.js.map +1 -1
  27. package/dist/core/doctor.d.ts +40 -0
  28. package/dist/core/doctor.d.ts.map +1 -0
  29. package/dist/core/doctor.js +264 -0
  30. package/dist/core/doctor.js.map +1 -0
  31. package/dist/core/embedder.js.map +1 -1
  32. package/dist/core/failure-analyzer.d.ts +2 -1
  33. package/dist/core/failure-analyzer.d.ts.map +1 -1
  34. package/dist/core/failure-analyzer.js +14 -47
  35. package/dist/core/failure-analyzer.js.map +1 -1
  36. package/dist/core/graph.d.ts +13 -0
  37. package/dist/core/graph.d.ts.map +1 -0
  38. package/dist/core/graph.js +13 -0
  39. package/dist/core/graph.js.map +1 -0
  40. package/dist/core/lesson-engine.d.ts +2 -1
  41. package/dist/core/lesson-engine.d.ts.map +1 -1
  42. package/dist/core/lesson-engine.js +2 -0
  43. package/dist/core/lesson-engine.js.map +1 -1
  44. package/dist/core/lifecycle.d.ts.map +1 -1
  45. package/dist/core/lifecycle.js +2 -1
  46. package/dist/core/lifecycle.js.map +1 -1
  47. package/dist/core/llm-client.d.ts +6 -0
  48. package/dist/core/llm-client.d.ts.map +1 -0
  49. package/dist/core/llm-client.js +64 -0
  50. package/dist/core/llm-client.js.map +1 -0
  51. package/dist/core/operations.d.ts +0 -1
  52. package/dist/core/operations.d.ts.map +1 -1
  53. package/dist/core/operations.js +40 -61
  54. package/dist/core/operations.js.map +1 -1
  55. package/dist/core/prompt-safety.d.ts +3 -0
  56. package/dist/core/prompt-safety.d.ts.map +1 -0
  57. package/dist/core/prompt-safety.js +13 -0
  58. package/dist/core/prompt-safety.js.map +1 -0
  59. package/dist/core/query-expander.d.ts.map +1 -1
  60. package/dist/core/query-expander.js +11 -72
  61. package/dist/core/query-expander.js.map +1 -1
  62. package/dist/core/schema-export.d.ts.map +1 -1
  63. package/dist/core/schema-export.js +72 -0
  64. package/dist/core/schema-export.js.map +1 -1
  65. package/dist/core/skill-usage-log.d.ts +11 -0
  66. package/dist/core/skill-usage-log.d.ts.map +1 -0
  67. package/dist/core/skill-usage-log.js +125 -0
  68. package/dist/core/skill-usage-log.js.map +1 -0
  69. package/dist/core/stats.d.ts +12 -0
  70. package/dist/core/stats.d.ts.map +1 -0
  71. package/dist/core/stats.js +19 -0
  72. package/dist/core/stats.js.map +1 -0
  73. package/dist/core/types.d.ts +9 -2
  74. package/dist/core/types.d.ts.map +1 -1
  75. package/dist/core/verifier.d.ts +37 -0
  76. package/dist/core/verifier.d.ts.map +1 -0
  77. package/dist/core/verifier.js +195 -0
  78. package/dist/core/verifier.js.map +1 -0
  79. package/dist/db.d.ts.map +1 -1
  80. package/dist/db.js +14 -0
  81. package/dist/db.js.map +1 -1
  82. package/dist/knowledge-graph.d.ts.map +1 -1
  83. package/dist/knowledge-graph.js +8 -43
  84. package/dist/knowledge-graph.js.map +1 -1
  85. package/dist/skills-manifest.json +71 -0
  86. package/dist/storage/conflicts.d.ts +4 -0
  87. package/dist/storage/conflicts.d.ts.map +1 -0
  88. package/dist/storage/conflicts.js +32 -0
  89. package/dist/storage/conflicts.js.map +1 -0
  90. package/dist/storage/fts-index.d.ts +4 -0
  91. package/dist/storage/fts-index.d.ts.map +1 -0
  92. package/dist/storage/fts-index.js +18 -0
  93. package/dist/storage/fts-index.js.map +1 -0
  94. package/dist/transports/cli/cli.js +203 -69
  95. package/dist/transports/cli/cli.js.map +1 -1
  96. package/dist/transports/http/server.d.ts +1 -0
  97. package/dist/transports/http/server.d.ts.map +1 -1
  98. package/dist/transports/http/server.js +138 -231
  99. package/dist/transports/http/server.js.map +1 -1
  100. package/dist/transports/mcp/handlers.d.ts +93 -0
  101. package/dist/transports/mcp/handlers.d.ts.map +1 -1
  102. package/dist/transports/mcp/handlers.js +51 -1
  103. package/dist/transports/mcp/handlers.js.map +1 -1
  104. package/dist/transports/schemas.d.ts +28 -0
  105. package/dist/transports/schemas.d.ts.map +1 -1
  106. package/dist/transports/schemas.js +25 -0
  107. package/dist/transports/schemas.js.map +1 -1
  108. package/hooks/hooks.json +10 -0
  109. package/package.json +5 -3
  110. package/plugin.json +1 -1
  111. package/scripts/hooks/_shared.js +207 -1
  112. package/scripts/hooks/post-commit.js +5 -76
  113. package/scripts/hooks/pre-bash-orchestration-nudge.js +150 -0
  114. package/scripts/hooks/pre-compact.js +8 -76
  115. package/scripts/hooks/pre-edit-recall.js +0 -0
  116. package/scripts/hooks/session-start.js +69 -8
  117. package/scripts/hooks/session-summary.js +12 -81
  118. package/skills/agentic-orchestration/SKILL.md +399 -0
package/README.ko.md CHANGED
@@ -1,110 +1,284 @@
1
+ <!-- translated from README.md @ ab9d25f8d9cb7c78c4cc271717709e2efb4bac76 -->
2
+ <!-- DO NOT edit this file by hand. The maintainer regenerates it from README.md via a private toolkit script (see internal docs). Manual edits will be overwritten on next sync. -->
3
+
1
4
  🌐 [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
5
 
3
6
  <p align="center">
4
7
  <h1 align="center">MeMesh LLM Memory</h1>
5
8
  <p align="center">
6
- <strong>Claude Code와 MCP coding agents를 위한 로컬 메모리 레이어.</strong><br />
7
- SQLite 파일 하나. Docker 불필요. 클라우드 불필요.
9
+ <strong>Claude Code와 MCP 코딩 에이전트를 위한 로컬 메모리.</strong><br />
10
+ SQLite 파일 하나. Docker 없음. 클라우드 필수 아님.
11
+ </p>
12
+ <p align="center">
13
+ <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>
14
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-22c55e?style=flat-square" alt="MIT" /></a>
15
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20-22c55e?style=flat-square" alt="Node" /></a>
16
+ <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-a855f7?style=flat-square" alt="MCP" /></a>
8
17
  </p>
9
18
  </p>
10
19
 
11
- > 이 한국어 README는 핵심만 정리한 안내 버전입니다. 최신의 완전한 내용은 [English README](README.md)를 기준으로 보세요.
20
+ ---
12
21
 
13
- ## 어떤 문제를 해결하나?
22
+ ## 문제점
14
23
 
15
- coding agent는 세션이 바뀌면 맥락을 잃기 쉽습니다. 아키텍처 결정, 버그를 고친 과정, 이미 배운 교훈, 프로젝트 제약을 계속 다시 설명해야 합니다.
24
+ 코딩 에이전트는 세션이 끝나면 모든 것을 잊어버립니다. 아키텍처 결정, 버그 수정, 실패한 테스트, 힘들게 얻은 교훈 매번 다시 설명해야 합니다. Claude Code는 매번 새로 시작하고, 이미 알아야 할 제약 조건을 다시 발견하며, 불필요하게 컨텍스트를 소비합니다.
16
25
 
17
- **MeMesh는 이런 지식을 로컬에 남기고, 검색 가능하게 유지하며, 나중에 다시 불러올 수 있게 해줍니다.**
26
+ **MeMesh는 코딩 에이전트에게 영구적이고 검색 가능하며 진화하는 로컬 메모리를 제공합니다.**
18
27
 
19
- npm package는 MeMesh 로컬 plugin / package 버전입니다. 클라우드 워크스페이스나 엔터프라이즈 플랫폼 전체를 담은 제품은 아닙니다.
28
+ 패키지는 MeMesh 제품군의 로컬 메모리 레이어입니다. 의도적으로 작고 오픈소스입니다: npm으로 설치하고, 메모리는 `~/.memesh/knowledge-graph.db`에 보관하며, Claude Code 또는 MCP 호환 클라이언트와 연결합니다. 호스팅 워크스페이스와 엔터프라이즈 OS 제품은 이 패키지의 README와 로드맵과 별개로 유지됩니다.
20
29
 
21
- ## 60초 시작
30
+ ---
22
31
 
23
- ### 1. 설치
32
+ ## 60초 안에 시작하기
33
+
34
+ ### 1단계: 설치
24
35
 
25
36
  ```bash
26
37
  npm install -g @pcircle/memesh
27
38
  ```
28
39
 
29
- ### 2. 결정 하나 저장
40
+ ### 2단계: 의사결정 저장
30
41
 
31
42
  ```bash
32
43
  memesh remember --name "auth-decision" --type "decision" --obs "Use OAuth 2.0 with PKCE"
33
44
  ```
34
45
 
35
- ### 3. 나중에 다시 찾기
46
+ ### 3단계: 나중에 회상
36
47
 
37
48
  ```bash
38
49
  memesh recall "login security"
39
- # → 표현이 달라도 "OAuth 2.0 with PKCE"를 찾을 수 있습니다
50
+ # → 다른 단어를 검색했어도 "OAuth 2.0 with PKCE"를 찾습니다
51
+ ```
52
+
53
+ **이게 전부입니다.** MeMesh가 이제 세션 간에 기억하고 회상합니다.
54
+
55
+ 설치와 로컬 연결을 확인하려면:
56
+
57
+ ```bash
58
+ memesh doctor
40
59
  ```
41
60
 
42
- 대시보드 열기:
61
+ 대시보드를 열어서 메모리를 탐색합니다:
43
62
 
44
63
  ```bash
45
64
  memesh
46
65
  ```
47
66
 
48
- ## 이런 사용자에게 맞습니다
67
+ <p align="center">
68
+ <img src="docs/images/dashboard-search.png" alt="MeMesh Search — 모든 메모리를 즉시 찾습니다" width="100%" />
69
+ </p>
70
+
71
+ <p align="center">
72
+ <img src="docs/images/dashboard-analytics.png" alt="MeMesh Analytics — 건강 점수, 타임라인, 패턴, 지식 커버리지" width="100%" />
73
+ </p>
74
+
75
+ <p align="center">
76
+ <img src="docs/images/dashboard-graph.png" alt="MeMesh Graph — 타입 필터와 에고 모드가 있는 인터랙티브 지식 그래프" width="100%" />
77
+ </p>
78
+
79
+ ---
80
+
81
+ ## 누가 사용할까요?
82
+
83
+ | 이런 개발자라면 | MeMesh가 도와줍니다 |
84
+ |---|---|
85
+ | **Claude Code를 사용 중** | 프로젝트 결정, 파일별 교훈, 과거 실패를 작업 중에 자동으로 회상 |
86
+ | **코딩 에이전트 파워 유저** | MCP 호환 도구 전체에서 하나의 로컬 메모리 레이어 공유 |
87
+ | **팀이 AI 코딩 워크플로우 실험 중** | 호스팅 인프라 도입 없이 프로젝트 지식 내보내기/가져오기 |
88
+ | **에이전트 개발자** | MCP, HTTP, CLI, Python SDK를 통해 로컬 메모리 추가 |
89
+
90
+ ---
91
+
92
+ ## 코딩 에이전트를 우선으로 설계
93
+
94
+ <table>
95
+ <tr>
96
+ <td width="33%" align="center">
97
+
98
+ **Claude Code / Desktop**
99
+ ```bash
100
+ memesh-mcp
101
+ ```
102
+ MCP 도구 + Claude Code 훅
103
+
104
+ </td>
105
+ <td width="33%" align="center">
106
+
107
+ **모든 HTTP 클라이언트**
108
+ ```bash
109
+ curl localhost:3737/v1/recall \
110
+ -H "Content-Type: application/json" \
111
+ -d '{"query":"auth"}'
112
+ ```
113
+ `memesh serve` (REST API)
114
+
115
+ </td>
116
+ <td width="33%" align="center">
117
+
118
+ **모든 LLM (OpenAI 형식)**
119
+ ```bash
120
+ memesh export-schema \
121
+ --format openai
122
+ ```
123
+ 모든 API 호출에 도구 붙여넣기
124
+
125
+ </td>
126
+ </tr>
127
+ </table>
128
+
129
+ ---
49
130
 
50
- - Claude Code를 쓰면서 세션 사이에도 프로젝트 맥락을 유지하고 싶은 개발자
51
- - 같은 로컬 메모리를 여러 MCP coding agents에서 함께 쓰고 싶은 고급 사용자
52
- - export / import로 팀 지식을 공유하려는 소규모 AI-native 개발팀
53
- - CLI, HTTP, MCP 흐름에 로컬 메모리를 붙이고 싶은 agent 개발자
131
+ ## OpenMemory, Cursor Memories, Mem0, Zep와는 다를까요?
54
132
 
55
- ## MeMesh인가?
133
+ | | **MeMesh** | OpenMemory | Cursor Memories | Mem0 | Zep / Graphiti |
134
+ |---|---|---|---|---|---|
135
+ | **최적화 대상** | 코딩 에이전트 로컬 메모리 | 로컬/크로스 클라이언트 MCP 메모리 | Cursor 네이티브 프로젝트 메모리 | 관리형 앱/에이전트 메모리 | 시계열 지식 그래프 |
136
+ | **설치 방식** | `npm install -g @pcircle/memesh` | 로컬 앱/서버 흐름 | Cursor 내장 | 클라우드 API / SDK / MCP | 서비스/프레임워크 구성 |
137
+ | **저장소** | 로컬 SQLite 파일 하나 | 로컬 메모리 스택 | Cursor 관리 규칙/메모리 | 호스팅 또는 셀프 호스팅 스택 | 그래프 데이터베이스 |
138
+ | **클라우드 필수** | 아니오 | 로컬 모드는 아니오 | Cursor 계정/설정에 따라 | 플랫폼을 위해서 필수 | 보통 필수/셀프 호스팅 |
139
+ | **Claude Code 훅** | 1순위 | MCP 도구 | 없음 | MCP 도구 | Claude Code 특화 아님 |
140
+ | **대시보드** | 내장 | 내장 | Cursor 설정 | 플랫폼 대시보드 | 플랫폼/그래프 도구 |
141
+ | **트레이드오프** | 간단한 로컬 솔루션, 엔터프라이즈 규모 아님 | 더 넓은 로컬 앱 풋프린트 | Cursor에 종속 | 강력한 관리형 플랫폼, 로컬 우선 아님 | 강력한 그래프 모델, 복잡한 구성 |
56
142
 
57
- - 로컬 우선: 데이터가 SQLite 파일에 저장됨
58
- - 가벼운 설치: `npm install -g` 후 바로 사용 가능
59
- - 연결 방식이 명확함: CLI, HTTP, MCP 지원
60
- - Claude Code 친화적: hooks로 작업 중 관련 메모리를 쉽게 불러옴
61
- - 확인과 정리가 쉬움: dashboard가 있어 블랙박스가 아님
62
- - import 안전 경계: import한 메모리는 검색되더라도, 검토하거나 다시 저장하기 전에는 Claude hooks에 자동 주입되지 않음
143
+ **MeMesh는 엔터프라이즈급 관리 인프라를 포기하고 즉각적인 로컬 구성, 검사 가능한 저장소, 코딩 에이전트 워크플로우 훅을 얻습니다.**
63
144
 
64
- ## Claude Code에서 자동으로 하는 일
145
+ ---
65
146
 
66
- MeMesh는 현재 다음 5가지 시점에 도움을 줍니다.
147
+ ## Claude Code에서 자동으로 일어나는
67
148
 
68
- - 세션 시작 관련 메모리와 이미 배운 교훈을 불러옴
69
- - 파일 편집 전에 그 파일이나 프로젝트와 관련된 메모리를 먼저 찾음
70
- - `git commit` 후 변경 내용을 기록함
71
- - 세션 종료 시 이번 수정, 오류, lesson learned를 정리함
72
- - context compact 전에 중요한 내용을 로컬 메모리에 저장함
149
+ 모든 것을 수동으로 기억할 필요는 없습니다. MeMesh는 작업 중에 지식을 캡처하고 주입하는 **6가지 훅**이 있습니다:
73
150
 
74
- ## Dashboard에는 무엇이 있나?
151
+ | 시점 | MeMesh가 수행하는 작업 |
152
+ |------|---|
153
+ | **매 세션 시작** | 가장 관련 있는 메모리 + 과거 교훈의 사전 경고 + 에이전트 오케스트레이션 배너 로드 |
154
+ | **파일 편집 전** | Claude가 코드를 작성하기 전에 파일 또는 프로젝트와 연결된 메모리 회상 |
155
+ | **Bash 명령 전** | Claude가 높은 검증 가능성의 명령어(테스트, 빌드, 린트, 마이그레이션, 배포, 벤치마크)를 백그라운드 에이전트로 실행하도록 유도 |
156
+ | **모든 `git commit` 후** | 변경 사항을 diff 통계와 함께 기록 |
157
+ | **Claude가 멈출 때** | 편집된 파일, 수정된 에러, 실패로부터 자동 생성된 구조화된 교훈 캡처 |
158
+ | **컨텍스트 압축 전** | 컨텍스트 제한으로 손실되기 전에 지식 저장 |
75
159
 
76
- Dashboard는 현재 7개 탭과 11개 언어를 지원합니다.
160
+ > **언제든 해제 가능:** `export MEMESH_AUTO_CAPTURE=false`
77
161
 
78
- - Search: 메모리 검색
79
- - Browse: 전체 메모리 보기
80
- - Analytics: 건강도와 추세 확인
81
- - Graph: 지식 관계 보기
82
- - Lessons: 과거 교훈 보기
83
- - Manage: 아카이브와 복원
84
- - Settings: LLM provider와 언어 설정
162
+ ---
85
163
 
86
- ## Smart Mode란?
164
+ ## 대시보드
87
165
 
88
- MeMesh는 기본적으로 오프라인에서 사용할 있습니다. 여기에 LLM API key를 설정하면 다음과 같은 기능을 더 쓸 수 있습니다.
166
+ 7개 탭, 11개 언어, 외부 의존성 없음. 서버 실행 `http://localhost:3737/dashboard`에서 접근합니다.
89
167
 
90
- - query expansion
91
- - 더 나은 자동 추출
92
- - 똑똑한 정리와 압축
168
+ | | 내용 |
169
+ |------|---|
170
+ | **Search** | 모든 메모리에 걸친 전체 텍스트 + 벡터 유사성 검색 |
171
+ | **Browse** | 보관 및 복구 옵션이 있는 모든 엔티티 페이지 리스트 |
172
+ | **Analytics** | 메모리 건강 점수(0-100), 30일 타임라인, 가치 지표, 지식 커버리지, 정리 제안, 작업 패턴 |
173
+ | **Graph** | 타입 필터, 검색, 에고 모드, 최근성 히트맵이 있는 인터랙티브 포스 디렉션 지식 그래프 |
174
+ | **Lessons** | 과거 실패로부터 구조화된 교훈(에러, 근본 원인, 수정, 예방) |
175
+ | **Manage** | 엔티티 보관 및 복구 |
176
+ | **Settings** | LLM 프로바이더 설정, 즉시 언어 선택기 |
93
177
 
94
- API key가 없어도 핵심 기능은 그대로 사용할 수 있습니다.
178
+ ---
95
179
 
96
- ## 알아보기
180
+ ## 스마트 기능
97
181
 
98
- - 전체 기능, 비교, API, release 정보: [English README](README.md)
99
- - 플랫폼별 안내: [docs/platforms/README.md](docs/platforms/README.md)
100
- - API 참고: [docs/api/API_REFERENCE.md](docs/api/API_REFERENCE.md)
182
+ **🧠 스마트 검색** "login security"를 검색하면 "OAuth PKCE"에 관한 메모리를 찾습니다. MeMesh는 설정된 LLM으로 쿼리를 관련 용어로 확장합니다.
101
183
 
102
- ## 개발과 검증
184
+ **📊 점수 순위 매김** — 결과는 관련성(30%) + 최근성(25%) + 빈도(15%) + 신뢰도(15%) + 회상 영향(10%) + 시계열 유효성(5%)으로 순위 매겨집니다.
185
+
186
+ **🔄 지식 진화** — 결정은 변합니다. `forget`으로 오래된 메모리 보관(절대 삭제 안 함). `supersedes` 관계가 구 → 신 을 연결합니다. AI는 항상 최신 버전을 봅니다.
187
+
188
+ **⚠️ 충돌 감지** — 서로 모순되는 메모리 두 개가 있으면 MeMesh가 경고합니다.
189
+
190
+ **📦 팀 공유** — `memesh export > team-knowledge.json` → 팀과 공유 → `memesh import team-knowledge.json`
191
+ 임포트된 번들은 계속 검색 가능하지만, MeMesh는 검토하거나 로컬에 다시 저장할 때까지 Claude 훅에 임포트된 메모리를 자동 주입하지 않습니다.
192
+
193
+ ---
194
+
195
+ ## 사용 예시
196
+
197
+ > "MeMesh가 3주 전에 암시적 흐름보다 PKCE를 선택했다는 것을 기억했습니다. 다시 인증에 대해 Claude에게 물었을 때, 이미 알고 있었습니다 — 설명할 필요 없었습니다."
198
+ > — **SaaS를 만드는 개별 개발자**
199
+
200
+ > "매주 금요일 팀 메모리를 내보내고 월요일에 임포트합니다. 모든 Claude가 주간 시작 시 팀이 지난주에 배운 것을 알고 시작합니다."
201
+ > — **3명 스타트업, 공유 지식베이스**
202
+
203
+ > "대시보드를 보니 메모리의 90%가 자동 생성된 세션 로그였습니다. `remember`를 의식적으로 사용해서 아키텍처 결정을 저장하기 시작했습니다. 정말 바뀌었습니다."
204
+ > — **Analytics 탭을 발견한 개발자**
205
+
206
+ ---
207
+
208
+ ## 스마트 모드 언잠금 (선택)
209
+
210
+ MeMesh는 기본적으로 오프라인에서 작동합니다. 쿼리 확장, 더 스마트한 추출, 압축을 원할 때만 LLM API 키를 추가합니다:
211
+
212
+ ```bash
213
+ memesh config set llm.provider anthropic
214
+ memesh config set llm.api-key sk-ant-...
215
+ ```
216
+
217
+ 또는 대시보드 Settings 탭 사용 (비주얼 설정):
218
+
219
+ ```bash
220
+ memesh # 대시보드 열기 → Settings 탭
221
+ ```
222
+
223
+ | | Level 0 (기본) | Level 1 (스마트 모드) |
224
+ |---|---|---|
225
+ | **검색** | FTS5 키워드 매칭 | + LLM 쿼리 확장 (~97% 회상율) |
226
+ | **자동 캡처** | 규칙 기반 패턴 | + LLM이 결정과 교훈 추출 |
227
+ | **압축** | 사용 불가 | `consolidate`로 장황한 메모리 압축 |
228
+ | **비용** | 무료, API 키 불필요 | ~$0.0001 검색당 (Haiku) |
229
+
230
+ ---
231
+
232
+ ## 9가지 메모리 도구 전체
233
+
234
+ | 도구 | 역할 |
235
+ |---|---|
236
+ | `remember` | 관찰, 관계, 태그를 포함한 지식 저장 |
237
+ | `recall` | 다중 요소 점수 매김과 LLM 쿼리 확장이 있는 스마트 검색 |
238
+ | `forget` | 소프트 보관(절대 삭제 안 함) 또는 특정 관찰 제거 |
239
+ | `consolidate` | LLM 기반 장황한 메모리 압축 |
240
+ | `export` | 프로젝트나 팀 멤버 간 메모리 JSON 공유 |
241
+ | `import` | 병합 전략(스킵/덮어쓰기/추가)이 있는 메모리 임포트 |
242
+ | `learn` | 실수로부터 구조화된 교훈 기록(에러, 근본 원인, 수정, 예방) |
243
+ | `user_patterns` | 작업 패턴 분석 — 일정, 도구, 강점, 학습 영역 |
244
+ | `verify_agent_work` | 백그라운드 에이전트 작업에 대한 검증 보고서 유지; 청구된 파일 변경사항을 `git diff`와 현실 확인 |
245
+
246
+ ---
247
+
248
+ ## 아키텍처
249
+
250
+ ```
251
+ ┌─────────────────┐
252
+ │ Core Engine │
253
+ │ (8 operations) │
254
+ └────────┬────────┘
255
+ ┌─────────────────┼─────────────────┐
256
+ │ │ │
257
+ CLI (memesh) HTTP API (serve) MCP (memesh-mcp)
258
+ │ │ │
259
+ └─────────────────┼─────────────────┘
260
+
261
+ SQLite + FTS5 + sqlite-vec
262
+ (~/.memesh/knowledge-graph.db)
263
+ ```
264
+
265
+ 코어는 프레임워크에 구애받지 않습니다. 같은 로직이 터미널, HTTP, MCP에서 실행됩니다.
266
+
267
+ ---
268
+
269
+ ## 기여하기
103
270
 
104
271
  ```bash
105
272
  git clone https://github.com/PCIRCLE-AI/memesh-llm-memory
106
- cd memesh-llm-memory
107
- npm install
108
- npm run build
109
- npm test
273
+ cd memesh-llm-memory && npm install && npm run build
274
+ npm test # 489 tests
275
+ npm run test:e2e-dashboard
110
276
  ```
277
+
278
+ 대시보드: `cd dashboard && npm install && npm run dev`
279
+
280
+ ---
281
+
282
+ <p align="center">
283
+ <strong>MIT</strong> — Made by <a href="https://pcircle.ai">PCIRCLE AI</a>
284
+ </p>
package/README.md CHANGED
@@ -26,6 +26,22 @@ This package is the local memory layer of the MeMesh product family. It is inten
26
26
 
27
27
  ---
28
28
 
29
+ ## Proof — 95.40% R@5 on LongMemEval-S
30
+
31
+ MeMesh's retrieval engine 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):
32
+
33
+ | System | R@5 | Source |
34
+ |---|---|---|
35
+ | **MeMesh (Mode A, FTS5)** | **95.40%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
36
+ | MemPalace | 96.6% | Vendor self-report |
37
+ | Supermemory | ~82% | Vendor estimate |
38
+ | Zep | 63.8% | LongMemEval paper |
39
+ | Mem0 | 49.0% | LongMemEval paper |
40
+
41
+ Reproduction commands, dataset SHA256, raw per-question results, and known-failure analysis are all in [`benchmarks/longmemeval/`](benchmarks/longmemeval/). Re-runnable in ~10 seconds.
42
+
43
+ ---
44
+
29
45
  ## Get Started in 60 Seconds
30
46
 
31
47
  ### Step 1: Install
@@ -34,8 +50,18 @@ This package is the local memory layer of the MeMesh product family. It is inten
34
50
  npm install -g @pcircle/memesh
35
51
  ```
36
52
 
53
+ > **First-install notes (one-time):**
54
+ > - **Native modules** — `better-sqlite3` and `sqlite-vec` install via prebuilt binaries on macOS (arm64/x64), Linux (x64/arm64), and Windows x64. On uncommon platforms or when prebuilds fail, you'll need a working C/C++ toolchain.
55
+ > - **Embedding model** — the first call that triggers a local embedding (e.g. `recall` with semantic mode) downloads `Xenova/all-MiniLM-L6-v2` (~80 MB) into `~/.memesh/models/`. Subsequent calls are instant. The default retrieval path (FTS5) does not require this download.
56
+
37
57
  ### Step 2: Store a decision
38
58
 
59
+ ```bash
60
+ memesh remember "Use OAuth 2.0 with PKCE for the new auth"
61
+ ```
62
+
63
+ Or use the explicit form when you want a stable name and type for later filtering:
64
+
39
65
  ```bash
40
66
  memesh remember --name "auth-decision" --type "decision" --obs "Use OAuth 2.0 with PKCE"
41
67
  ```
@@ -49,6 +75,12 @@ memesh recall "login security"
49
75
 
50
76
  **That's it.** MeMesh is now remembering and recalling across sessions.
51
77
 
78
+ If you want to verify the install and local wiring end to end:
79
+
80
+ ```bash
81
+ memesh doctor
82
+ ```
83
+
52
84
  Open the dashboard to explore your memory:
53
85
 
54
86
  ```bash
@@ -137,12 +169,13 @@ Paste tools into any API call
137
169
 
138
170
  ## What Happens Automatically In Claude Code
139
171
 
140
- You don't need to manually remember everything. MeMesh has **5 hooks** that capture and inject knowledge while you work:
172
+ You don't need to manually remember everything. MeMesh has **6 hooks** that capture and inject knowledge while you work:
141
173
 
142
174
  | When | What MeMesh does |
143
175
  |------|------------------|
144
176
  | **Every session start** | Loads your most relevant memories + proactive warnings from past lessons |
145
177
  | **Before editing files** | Recalls memories tied to the file or project before Claude writes code |
178
+ | **Before bash commands** | (Opt-in) Nudges Claude to dispatch high-verifiability commands (test, build, lint, migrate, deploy, benchmark) as background agents |
146
179
  | **After every `git commit`** | Records what you changed, with diff stats |
147
180
  | **When Claude stops** | Captures files edited, errors fixed, and auto-generates structured lessons from failures |
148
181
  | **Before context compaction** | Saves knowledge before it's lost to context limits |
@@ -151,6 +184,23 @@ You don't need to manually remember everything. MeMesh has **5 hooks** that capt
151
184
 
152
185
  ---
153
186
 
187
+ ## Configuration
188
+
189
+ All configuration is via environment variables. Defaults are local-only and zero-network — you don't need to set anything to get a working system.
190
+
191
+ | Variable | Default | What it does |
192
+ |---|---|---|
193
+ | `MEMESH_DB_PATH` | `~/.memesh/knowledge-graph.db` | Override the SQLite database location. |
194
+ | `MEMESH_AUTO_CAPTURE` | `true` | Disable the auto-capture hooks (`Stop`, `PreCompact`) entirely. |
195
+ | `MEMESH_AUTO_DETECT_LLM` | unset | Set to `1` to let memesh auto-detect a provider from your shell env (`OPENAI_API_KEY` etc.) and switch to BYOK embeddings. **Default fresh-install is local ONNX (384-dim) only** — opt in if you want cloud embeddings. Without this flag set, an `OPENAI_API_KEY` lying around in your shell is ignored. |
196
+ | `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. |
197
+ | `OPENAI_API_KEY` | unset | Your OpenAI key. Only used when `MEMESH_AUTO_DETECT_LLM=1` or you explicitly configure the provider. |
198
+ | `OLLAMA_HOST` | `http://localhost:11434` | Override the Ollama endpoint when using a local Ollama provider. |
199
+
200
+ `memesh doctor` prints the resolved configuration so you can see what's active.
201
+
202
+ ---
203
+
154
204
  ## Dashboard
155
205
 
156
206
  7 tabs, 11 languages, zero external dependencies. Access at `http://localhost:3737/dashboard` when the server is running.
@@ -219,7 +269,7 @@ memesh # opens dashboard → Settings tab
219
269
 
220
270
  ---
221
271
 
222
- ## All 8 Memory Tools
272
+ ## All 9 Memory Tools
223
273
 
224
274
  | Tool | What it does |
225
275
  |------|-------------|
@@ -231,6 +281,7 @@ memesh # opens dashboard → Settings tab
231
281
  | `import` | Import memories with merge strategies (skip / overwrite / append) |
232
282
  | `learn` | Record structured lessons from mistakes (error, root cause, fix, prevention) |
233
283
  | `user_patterns` | Analyze your work patterns — schedule, tools, strengths, learning areas |
284
+ | `verify_agent_work` | Persist a verification report for background-agent work; reality-checks claimed file changes against `git diff` |
234
285
 
235
286
  ---
236
287
 
@@ -260,7 +311,7 @@ Core is framework-agnostic. Same logic runs from terminal, HTTP, or MCP.
260
311
  ```bash
261
312
  git clone https://github.com/PCIRCLE-AI/memesh-llm-memory
262
313
  cd memesh-llm-memory && npm install && npm run build
263
- npm test # 484 tests
314
+ npm test # 489 tests
264
315
  npm run test:e2e-dashboard
265
316
  ```
266
317