lemma-mcp 0.7.2 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +4 -3
- package/README.tr.md +0 -488
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Lemma - Persistent Memory for LLMs via MCP
|
|
6
6
|
|
|
7
|
-
[English](README.md) | [Türkçe](README.tr.md)
|
|
7
|
+
[English](README.md) | [Türkçe](docs/README.tr.md)
|
|
8
8
|
|
|
9
9
|
Lemma is a Model Context Protocol (MCP) server that provides a persistent memory layer for Large Language Models. It enables LLMs to remember facts, preferences, and context across sessions through a biological memory model with automatic decay, learning, and universal injection.
|
|
10
10
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lemma-mcp",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.3",
|
|
4
4
|
"description": "Persistent memory layer for LLMs via MCP",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,11 +13,12 @@
|
|
|
13
13
|
"./guides": "./dist/guides/index.js",
|
|
14
14
|
"./server": "./dist/server/index.js"
|
|
15
15
|
},
|
|
16
|
-
|
|
16
|
+
"files": [
|
|
17
17
|
"dist",
|
|
18
18
|
"README.md",
|
|
19
|
+
"README.tr.md",
|
|
19
20
|
"LICENSE"
|
|
20
|
-
|
|
21
|
+
],
|
|
21
22
|
"scripts": {
|
|
22
23
|
"build": "tsc",
|
|
23
24
|
"prepare": "npm run build",
|
package/README.tr.md
DELETED
|
@@ -1,488 +0,0 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<img src="assets/logo.png" width="200" alt="Lemma Logo">
|
|
3
|
-
</p>
|
|
4
|
-
|
|
5
|
-
# Lemma - LLM'ler için Kalıcı Bellek (MCP)
|
|
6
|
-
|
|
7
|
-
[English](README.md) | [Türkçe](README.tr.md)
|
|
8
|
-
|
|
9
|
-
Lemma, Büyük Dil Modelleri (LLM) için kalıcı bir bellek katmanı sağlayan bir Model Bağlam Protokolü (MCP) sunucusudur. LLM'lerin oturumlar arasında gerçekleri, tercihleri ve bağlamı hatırlamasını sağlar; otomatik çürüme, öğrenme ve evrensel enjeksiyon ile biyolojik bir bellek modeli sunar.
|
|
10
|
-
|
|
11
|
-
## Lemma Nedir?
|
|
12
|
-
|
|
13
|
-
Lemma, AI asistanları için harici bir hipokampüs görevi görür. İnsan beyni her şeyi kaydetmez — sentezler, damıtır ve fragmanlar bırakır. Sık erişilen bilgiler güçlenir; kullanılmayan bilgiler solar ve unutulur.
|
|
14
|
-
|
|
15
|
-
Lemma aynı prensiple çalışır:
|
|
16
|
-
|
|
17
|
-
- **Ham konuşmalar asla saklanmaz** — sadece sentezlenmiş fragmanlar
|
|
18
|
-
- **Fragmanlar zamanla çürür** — sık erişilenler güçlenir
|
|
19
|
-
- **Kullanılan bilgi bağlam kazanır** — etiketler ve ilişkiler otomatik oluşturulur
|
|
20
|
-
- **Bellekler otomatik enjekte edilir** — LLM araç çağırmadan onları görür
|
|
21
|
-
|
|
22
|
-
## Nasıl Çalışır?
|
|
23
|
-
|
|
24
|
-
### Evrensel Bellek Enjeksiyonu (Universal Memory Injection)
|
|
25
|
-
|
|
26
|
-
Lemma, bellekleri `tools/list` üzerinden doğrudan araç açıklamalarına enjekte eder. Bu **her MCP istemcisinde** çalışır — Claude Desktop, Cursor, VS Code, opencode, Gemini CLI ve diğerleri.
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
tools/list → memory_read description includes:
|
|
30
|
-
"YOUR MEMORIES (you already know these):
|
|
31
|
-
[m8f728] React Architecture (95%)
|
|
32
|
-
Full content here...
|
|
33
|
-
[m1bbea] Clean Code Research (77%)
|
|
34
|
-
Full content here..."
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
LLM her oturuma en önemli belleklerini zaten bilerek başlar. Açık bir araç çağrısına gerek yoktur.
|
|
38
|
-
|
|
39
|
-
**Çift katmanlı enjeksiyon:**
|
|
40
|
-
1. **Açıklamalar (Tool descriptions)** — evrensel, her yerde çalışır
|
|
41
|
-
2. **`instructions` alanı** — MCP başlatma talimatlarını destekleyen istemciler için
|
|
42
|
-
|
|
43
|
-
**3 katmanlı mimari:**
|
|
44
|
-
- Katman 1: En önemli bellekler için tam içerik (~3000 token, yapılandırılabilir)
|
|
45
|
-
- Katman 2: Kalan bellekler için özet indeksi
|
|
46
|
-
- Katman 3: Açıklamaları ve öğrenimleriyle aktif rehberler
|
|
47
|
-
|
|
48
|
-
### Bellek Yapısı
|
|
49
|
-
|
|
50
|
-
Her bellek fragmanı şu alanlara sahiptir:
|
|
51
|
-
|
|
52
|
-
| Alan | Tip | Açıklama |
|
|
53
|
-
|-------|------|-------------|
|
|
54
|
-
| `id` | string | Benzersiz kimlik (`m` + crypto.randomUUID'den 12 hex karakter) |
|
|
55
|
-
| `title` | string | Hızlı tarama için kısa başlık |
|
|
56
|
-
| `fragment` | string | Sentezlenmiş bellek metni |
|
|
57
|
-
| `project` | string | Proje kapsamı (küresel için `null`) |
|
|
58
|
-
| `confidence` | float | Güvenilirlik 0.0-1.0 (zamanla çürür ve güçlenir) |
|
|
59
|
-
| `source` | string | `"user"` veya `"ai"` |
|
|
60
|
-
| `created` | string | Oluşturulma tarihi (YYYY-MM-DD) |
|
|
61
|
-
| `lastAccessed` | string | Son okuma zamanı (ISO timestamp) |
|
|
62
|
-
| `accessed` | int | Mevcut çürüme döngüsündeki erişim sayısı |
|
|
63
|
-
| `tags` | string[] | Kullanımdan elde edilen bağlam etiketleri (örn. "debugging", "refactoring") |
|
|
64
|
-
| `associatedWith` | string[] | Aynı oturumda erişilen fragman ID'leri |
|
|
65
|
-
| `negativeHits` | int | Bu belleğin yardımcı olmadığı işaretlenme sayısı (oturum başına sıfırlanır) |
|
|
66
|
-
|
|
67
|
-
### Öğrenme Sistemi
|
|
68
|
-
|
|
69
|
-
Statik belleğin aksine, Lemma bilginin kullanım yoluyla evrildiği biyolojik bir model kullanır:
|
|
70
|
-
|
|
71
|
-
**Güçlendirme (erişimde):**
|
|
72
|
-
```
|
|
73
|
-
confidence = min(1.0, confidence + 0.015)
|
|
74
|
-
tags += context_tag (örn. "debugging")
|
|
75
|
-
associatedWith += co_accessed_fragment_ids
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
**Çürüme (oturum başına, sadece kullanılmayan fragmanlar):**
|
|
79
|
-
```
|
|
80
|
-
if accessed == 0:
|
|
81
|
-
confidence = confidence - 0.002
|
|
82
|
-
if accessed > 0:
|
|
83
|
-
çürüme yok (kalkan — kullanılan bilgi korunur)
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
- **Kalkan**: Sık erişilen öğeler çürümeden tamamen korunur
|
|
87
|
-
- **Kullanılmayan öğeler** oturum başına sadece 0.002 çürür (çok yavaş)
|
|
88
|
-
- **Olumsuz geri bildirim** güveni -0.02 azaltır (eskiden -0.1 idi)
|
|
89
|
-
- **İlişkiler**: Birlikte kullanılan fragmanlar gelecekteki hatırlama için çapraz referanslar oluşturur
|
|
90
|
-
- **Zaman bazlı çürüme yok**: Güven sadece sistem aktif olarak kullanıldığında değişir
|
|
91
|
-
|
|
92
|
-
### Tekilleştirme (Deduplication)
|
|
93
|
-
|
|
94
|
-
Lemma, tekilleştirme için **Fuse.js bulanık eşleştirme** (Jaccard değil) kullanır:
|
|
95
|
-
- "Use React hooks" vs "Don't use React hooks" — doğru şekilde farklı algılanır
|
|
96
|
-
- "react", "reactjs", "React.js" — doğru şekilde aynı algılanır (rehberler için)
|
|
97
|
-
- Hem kullanıcı hem de AI kaynaklı belleklere uygulanır
|
|
98
|
-
|
|
99
|
-
### Sanal Oturumlar (Virtual Sessions)
|
|
100
|
-
|
|
101
|
-
Araç çağrıları otomatik olarak sanal oturumlara dönüştürülür:
|
|
102
|
-
- İlk araç çağrısında otomatik başlar
|
|
103
|
-
- 30 dakikalık işlem yapılmadığında otomatik sonlanır
|
|
104
|
-
- Karşılaşılan teknolojileri, kullanılan rehberleri, oluşturulan bellekleri izler
|
|
105
|
-
- Açık `session_start`/`session_end` gerekmez
|
|
106
|
-
- Oturumlar `~/.lemma/sessions/` dizininde saklanır
|
|
107
|
-
|
|
108
|
-
### Veri Güvenliği
|
|
109
|
-
|
|
110
|
-
- **Kümülatif yedekleme**: `.bak` dosyaları ID tabanlı birleştirmedir — mevcut girdilerin üzerine asla yazmaz
|
|
111
|
-
- **Dosya kilitleme**: Modül düzeyinde yazma kilidi eşzamanlı veri bozulmasını önler
|
|
112
|
-
- **Güvenli I/O**: Boş/null diziler yazılmadan önce reddedilir
|
|
113
|
-
- **Örtük silme yok**: Çürüme sadece güveni azaltır, fragmanları asla kaldırmaz
|
|
114
|
-
|
|
115
|
-
### Yapılandırma
|
|
116
|
-
|
|
117
|
-
`~/.lemma/config.json` konumunda isteğe bağlı yapılandırma dosyası:
|
|
118
|
-
|
|
119
|
-
```json
|
|
120
|
-
{
|
|
121
|
-
"token_budget": {
|
|
122
|
-
"full_content": 3000,
|
|
123
|
-
"summary_index": 1000,
|
|
124
|
-
"guides_detail": 1000
|
|
125
|
-
},
|
|
126
|
-
"injection": {
|
|
127
|
-
"max_full_content_fragments": 15,
|
|
128
|
-
"max_summary_fragments": 30,
|
|
129
|
-
"max_guides": 20,
|
|
130
|
-
"max_guide_detail": 3
|
|
131
|
-
},
|
|
132
|
-
"virtual_session": {
|
|
133
|
-
"timeout_minutes": 30
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### Dosya Konumları
|
|
139
|
-
|
|
140
|
-
| İşletim Sistemi | Yol |
|
|
141
|
-
|---|---|
|
|
142
|
-
| **Windows** | `C:\Users\{username}\.lemma\` |
|
|
143
|
-
| **macOS** | `/Users/{username}/.lemma/` |
|
|
144
|
-
| **Linux** | `/home/{username}/.lemma/` |
|
|
145
|
-
|
|
146
|
-
Dosyalar:
|
|
147
|
-
- `memory.jsonl` — bellek fragmanları
|
|
148
|
-
- `guides.jsonl` — deneyim rehberleri
|
|
149
|
-
- `config.json` — kullanıcı yapılandırması (isteğe bağlı)
|
|
150
|
-
- `sessions/` — sanal oturum kayıtları
|
|
151
|
-
- `.bak` dosyaları — kümülatif yedekler
|
|
152
|
-
|
|
153
|
-
## Hızlı Başlangıç
|
|
154
|
-
|
|
155
|
-
Lemma'yı MCP istemci yapılandırmanıza ekleyin:
|
|
156
|
-
|
|
157
|
-
**Claude Desktop (Windows):** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
158
|
-
**Claude Desktop (macOS):** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
159
|
-
|
|
160
|
-
```json
|
|
161
|
-
{
|
|
162
|
-
"mcpServers": {
|
|
163
|
-
"lemma": {
|
|
164
|
-
"command": "npx",
|
|
165
|
-
"args": ["-y", "lemma-mcp"]
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
## Hook Sistemi
|
|
174
|
-
|
|
175
|
-
Lemma, sunucu davranışını genişletmek için eklenti tabanlı bir hook sistemi sağlar:
|
|
176
|
-
|
|
177
|
-
### Yaşam Döngüsü Hook'ları
|
|
178
|
-
|
|
179
|
-
```javascript
|
|
180
|
-
import { registerHook, HookTypes } from "@lemma/lemma/server";
|
|
181
|
-
|
|
182
|
-
registerHook(HookTypes.ON_START, async (context) => {
|
|
183
|
-
console.log("Server started!", context);
|
|
184
|
-
});
|
|
185
|
-
|
|
186
|
-
registerHook(HookTypes.ON_PROJECT_CHANGE, async (context) => {
|
|
187
|
-
console.log(`Project changed to: ${context.project}`);
|
|
188
|
-
});
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### İstem Değiştiricileri
|
|
192
|
-
|
|
193
|
-
Sistem istemi oluşturmayı özel dönüşümlerle genişletin:
|
|
194
|
-
|
|
195
|
-
```javascript
|
|
196
|
-
import { registerPromptModifier } from "lemma-mcp/server";
|
|
197
|
-
|
|
198
|
-
registerPromptModifier(async (prompt, context) => {
|
|
199
|
-
if (context.project === "my-app") {
|
|
200
|
-
return prompt + "\n\n<custom>Note: Using experimental features.</custom>";
|
|
201
|
-
}
|
|
202
|
-
return prompt;
|
|
203
|
-
});
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
---
|
|
207
|
-
|
|
208
|
-
## Manuel Kurulum
|
|
209
|
-
|
|
210
|
-
```bash
|
|
211
|
-
git clone https://github.com/xenitV1/lemma
|
|
212
|
-
cd Lemma
|
|
213
|
-
npm install
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
**Gereksinimler:** Node.js 18.0.0 veya üzeri
|
|
217
|
-
|
|
218
|
-
### Yerel Yapılandırma
|
|
219
|
-
|
|
220
|
-
```json
|
|
221
|
-
{
|
|
222
|
-
"mcpServers": {
|
|
223
|
-
"lemma": {
|
|
224
|
-
"command": "node",
|
|
225
|
-
"args": ["C:\\path\\to\\Lemma\\src\\index.js"]
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
---
|
|
232
|
-
|
|
233
|
-
## Mevcut Araçlar (20)
|
|
234
|
-
|
|
235
|
-
### Bellek Araçları (10)
|
|
236
|
-
|
|
237
|
-
#### `memory_read`
|
|
238
|
-
|
|
239
|
-
Bellek fragmanlarını okur. ÖZET MODU sadece başlık + açıklama gösterir; tam detay için `id` kullanın.
|
|
240
|
-
|
|
241
|
-
**Parametreler:**
|
|
242
|
-
- `project` (string, opsiyonel): Filtrelenecek proje adı
|
|
243
|
-
- `query` (string, opsiyonel): Semantik arama anahtar kelimesi
|
|
244
|
-
- `id` (string, opsiyonel): Belirli bir fragmanın tam detayını al
|
|
245
|
-
- `ids` (string[], opsiyonel): Birden fazla fragmanın tam detaylarını al
|
|
246
|
-
- `context` (string, opsiyonel): Bu erişimi bir bağlamla etiketle (örn. "debugging")
|
|
247
|
-
- `all` (boolean, opsiyonel): Tüm projelerden fragmanları göster (varsayılan: false)
|
|
248
|
-
|
|
249
|
-
#### `memory_add`
|
|
250
|
-
|
|
251
|
-
**ZORUNLU:** Analizi tamamladıktan SONRA bulguları kaydetmek için çağır.
|
|
252
|
-
|
|
253
|
-
**Parametreler:**
|
|
254
|
-
- `fragment` (string, zorunlu): Saklanacak bellek metni
|
|
255
|
-
- `title` (string, opsiyonel): Kısa başlık
|
|
256
|
-
- `description` (string, opsiyonel): Kısa özet
|
|
257
|
-
- `project` (string, opsiyonel): Proje kapsamı (null = küresel)
|
|
258
|
-
- `source` (string, opsiyonel): "user" veya "ai", varsayılan "ai"
|
|
259
|
-
|
|
260
|
-
#### `memory_update`
|
|
261
|
-
|
|
262
|
-
Mevcut bir fragmanı ID ile güncelle.
|
|
263
|
-
|
|
264
|
-
**Parametreler:**
|
|
265
|
-
- `id` (string, zorunlu): Fragman ID'si
|
|
266
|
-
- `title` (string, opsiyonel): Yeni başlık
|
|
267
|
-
- `fragment` (string, opsiyonel): Yeni metin
|
|
268
|
-
- `confidence` (number, opsiyonel): Yeni güven değeri 0-1
|
|
269
|
-
|
|
270
|
-
#### `memory_feedback`
|
|
271
|
-
|
|
272
|
-
Kullanımdan sonra bir bellek fragmanı hakkında geri bildirim ver. Pozitif geri bildirim güveni artırır; negatif -0.02 düşürür.
|
|
273
|
-
|
|
274
|
-
**Parametreler:**
|
|
275
|
-
- `id` (string, zorunlu): Fragman ID'si
|
|
276
|
-
- `useful` (boolean, zorunlu): Yardımcı olduysa `true`, olmadıysa `false`
|
|
277
|
-
|
|
278
|
-
#### `memory_forget`
|
|
279
|
-
|
|
280
|
-
Bir bellek fragmanını ID ile sil.
|
|
281
|
-
|
|
282
|
-
**Parametreler:**
|
|
283
|
-
- `id` (string, zorunlu): Fragman ID'si
|
|
284
|
-
|
|
285
|
-
#### `memory_merge`
|
|
286
|
-
|
|
287
|
-
Birden fazla fragmanı birleştir. Yeni ID oluşturur, orijinalleri siler.
|
|
288
|
-
|
|
289
|
-
**Parametreler:**
|
|
290
|
-
- `ids` (string[], zorunlu): Birleştirilecek fragman ID'leri
|
|
291
|
-
- `title` (string, zorunlu): Birleştirilmiş fragmanın başlığı
|
|
292
|
-
- `fragment` (string, zorunlu): Birleştirilmiş içerik
|
|
293
|
-
- `project` (string, opsiyonel): Proje kapsamı
|
|
294
|
-
|
|
295
|
-
#### `memory_stats`
|
|
296
|
-
|
|
297
|
-
Bellek deposu istatistiklerini getir: fragman sayıları, ortalama güven, proje dağılımı.
|
|
298
|
-
|
|
299
|
-
**Parametreler:**
|
|
300
|
-
- `project` (string, opsiyonel): Projeye göre filtrele
|
|
301
|
-
|
|
302
|
-
#### `memory_audit`
|
|
303
|
-
|
|
304
|
-
Bellek deposunda bütünlük sorunlarını denetle: yetim referanslar, yinelenen ID'ler, güven anomalileri.
|
|
305
|
-
|
|
306
|
-
### Rehber Araçları (8)
|
|
307
|
-
|
|
308
|
-
#### `guide_get`
|
|
309
|
-
|
|
310
|
-
Kullanım istatistikleriyle takip edilen rehberleri getir. Kullanım sayısına göre sıralı (en çok kullanılan önce).
|
|
311
|
-
|
|
312
|
-
**Parametreler:**
|
|
313
|
-
- `category` (string, opsiyonel): Kategoriye göre filtrele
|
|
314
|
-
- `guide` (string, opsiyonel): Belirli rehber detayı al
|
|
315
|
-
- `task` (string, opsiyonel): İlgili rehber önerileri almak için görev açıklaması
|
|
316
|
-
|
|
317
|
-
#### `guide_practice`
|
|
318
|
-
|
|
319
|
-
**ZORUNLU:** Çalışma sırasında bir rehber kullandığınızda kullanımını kaydedin.
|
|
320
|
-
|
|
321
|
-
**Parametreler:**
|
|
322
|
-
- `guide` (string, zorunlu): Rehber adı
|
|
323
|
-
- `category` (string, zorunlu): Kategori
|
|
324
|
-
- `description` (string, opsiyonel): Detaylı kılavuz/protokoller
|
|
325
|
-
- `contexts` (string[], zorunlu): Kullanıldığı bağlamlar
|
|
326
|
-
- `learnings` (string[], zorunlu): Keşfedilen yeni öğrenimler
|
|
327
|
-
- `outcome` (string, opsiyonel): "success" veya "failure" — başarı oranını izler
|
|
328
|
-
|
|
329
|
-
#### `guide_create`
|
|
330
|
-
|
|
331
|
-
Detaylı bir kılavuzla rehber oluştur.
|
|
332
|
-
|
|
333
|
-
**Parametreler:**
|
|
334
|
-
- `guide` (string, zorunlu): Rehber adı
|
|
335
|
-
- `category` (string, zorunlu): Kategori
|
|
336
|
-
- `description` (string, zorunlu): Tam kılavuz/protokoller
|
|
337
|
-
- `contexts` (string[], opsiyonel): İlk bağlamlar
|
|
338
|
-
- `learnings` (string[], opsiyonel): İlk öğrenimler
|
|
339
|
-
|
|
340
|
-
#### `guide_distill`
|
|
341
|
-
|
|
342
|
-
Bir bellek fragmanını rehber öğrenimine dönüştür.
|
|
343
|
-
|
|
344
|
-
**Parametreler:**
|
|
345
|
-
- `memory_id` (string, zorunlu): Bellek fragmanı ID'si
|
|
346
|
-
- `guide` (string, zorunlu): Hedef rehber adı
|
|
347
|
-
- `category` (string, opsiyonel): Kategori (yeni rehber oluşturuluyorsa gerekli)
|
|
348
|
-
|
|
349
|
-
#### `guide_update`
|
|
350
|
-
|
|
351
|
-
Mevcut bir rehberin özelliklerini güncelle.
|
|
352
|
-
|
|
353
|
-
**Parametreler:**
|
|
354
|
-
- `guide` (string, zorunlu): Mevcut rehber adı
|
|
355
|
-
- `new_name` (string, opsiyonel): Yeni ad
|
|
356
|
-
- `category` (string, opsiyonel): Yeni kategori
|
|
357
|
-
- `description` (string, opsiyonel): Yeni açıklama/kılavuz
|
|
358
|
-
- `add_anti_patterns` (string[], opsiyonel): Anti-pattern'ler ekle
|
|
359
|
-
- `add_pitfalls` (string[], opsiyonel): Bilinen tuzaklar ekle
|
|
360
|
-
- `superseded_by` (string, opsiyonel): Başka bir rehberle değiştirildi olarak işaretle
|
|
361
|
-
- `deprecated` (boolean, opsiyonel): Kullanımdan kaldırıldı olarak işaretle
|
|
362
|
-
|
|
363
|
-
#### `guide_forget`
|
|
364
|
-
|
|
365
|
-
Bir rehberi sil.
|
|
366
|
-
|
|
367
|
-
**Parametreler:**
|
|
368
|
-
- `guide` (string, zorunlu): Rehber adı
|
|
369
|
-
|
|
370
|
-
#### `guide_merge`
|
|
371
|
-
|
|
372
|
-
Birden fazla rehberi birleştir. Kullanım sayıları toplanır.
|
|
373
|
-
|
|
374
|
-
**Parametreler:**
|
|
375
|
-
- `guides` (string[], zorunlu): Birleştirilecek rehber adları
|
|
376
|
-
- `guide` (string, zorunlu): Birleştirilmiş rehberin adı
|
|
377
|
-
- `category` (string, zorunlu): Kategori
|
|
378
|
-
- `description` (string, opsiyonel): Birleştirilmiş açıklama
|
|
379
|
-
- `contexts` (string[], opsiyonel): Birleştirilmiş bağlamlar
|
|
380
|
-
- `learnings` (string[], opsiyonel): Birleştirilmiş öğrenimler
|
|
381
|
-
|
|
382
|
-
### Oturum Araçları (2)
|
|
383
|
-
|
|
384
|
-
#### `session_start`
|
|
385
|
-
|
|
386
|
-
İzlenen bir çalışma oturumu başlat. Görev metaverisini kaydeder ve ilgili rehberleri getirir.
|
|
387
|
-
|
|
388
|
-
**Parametreler:**
|
|
389
|
-
- `task_type` (string, zorunlu): "debugging", "implementation", "refactoring", "testing", "research", "documentation", "optimization" veya "other"
|
|
390
|
-
- `technologies` (string[], opsiyonel): İlgili teknolojiler
|
|
391
|
-
- `initial_approach` (string, opsiyonel): İlk plan
|
|
392
|
-
|
|
393
|
-
#### `session_end`
|
|
394
|
-
|
|
395
|
-
Mevcut oturumu sonlandır. Sonucu kaydeder ve rehber başarı takibini günceller.
|
|
396
|
-
|
|
397
|
-
**Parametreler:**
|
|
398
|
-
- `outcome` (string, zorunlu): "success", "partial", "failure" veya "abandoned"
|
|
399
|
-
- `final_approach` (string, opsiyonel): Hangi yaklaşım işe yaradı
|
|
400
|
-
- `lessons` (string[], opsiyonel): Öğrenilenler
|
|
401
|
-
|
|
402
|
-
#### `session_stats`
|
|
403
|
-
|
|
404
|
-
Sanal oturum istatistiklerini getir: son araç kullanım örüntüleri ve teknolojiler.
|
|
405
|
-
|
|
406
|
-
**Parametreler:**
|
|
407
|
-
- `count` (number, opsiyonel): Son oturum sayısı (varsayılan 10)
|
|
408
|
-
|
|
409
|
-
## Felsefe
|
|
410
|
-
|
|
411
|
-
### Saklanması Gerekenler
|
|
412
|
-
|
|
413
|
-
**Kullanıcı Katmanı:**
|
|
414
|
-
- Kullanıcı tercihleri (iletişim tarzı, format, dil)
|
|
415
|
-
- Proje bağlamı (teknoloji yığını, klasör yapısı, konvansiyonlar)
|
|
416
|
-
- Açıkça istenen anılar
|
|
417
|
-
|
|
418
|
-
**Yetenek Katmanı:**
|
|
419
|
-
- Kullanılan başarılı çözümler ve yaklaşımlar
|
|
420
|
-
- Tekrar eden görevler için keşfedilen kısayollar
|
|
421
|
-
- Denenen ve başarısız olan yaklaşımlar
|
|
422
|
-
|
|
423
|
-
### Saklanmaması Gerekenler
|
|
424
|
-
|
|
425
|
-
- Ham konuşma içeriği
|
|
426
|
-
- Tekrar etmeyecek tek seferlik sorular
|
|
427
|
-
- Geçici veya yüksek bağlama özgü bilgiler
|
|
428
|
-
- Kişisel veya hassas veriler
|
|
429
|
-
|
|
430
|
-
## Geliştirme
|
|
431
|
-
|
|
432
|
-
### Testleri Çalıştırma
|
|
433
|
-
|
|
434
|
-
```bash
|
|
435
|
-
npm test
|
|
436
|
-
```
|
|
437
|
-
|
|
438
|
-
360 test: bellek çekirdeği, rehber çekirdeği, işleyiciler, öğrenme yaşam döngüsü, hook sistemi, dinamik istem oluşturma ve sanal oturumları kapsar. Tüm I/O geçici dizinlere izole edilir.
|
|
439
|
-
|
|
440
|
-
```bash
|
|
441
|
-
npm run typecheck # TypeScript tip kontrolü
|
|
442
|
-
npm run build # TypeScript'i dist/ dizinine derle
|
|
443
|
-
```
|
|
444
|
-
|
|
445
|
-
### Proje Yapısı
|
|
446
|
-
|
|
447
|
-
```
|
|
448
|
-
Lemma/
|
|
449
|
-
├── src/
|
|
450
|
-
│ ├── index.ts # MCP sunucu giriş noktası
|
|
451
|
-
│ ├── types.ts # Paylaşılan TypeScript arayüzleri
|
|
452
|
-
│ ├── memory/
|
|
453
|
-
│ │ ├── index.ts # Bellek modülü yeniden dışa aktarmalar
|
|
454
|
-
│ │ ├── core.ts # Temel bellek mantığı, çürüme, arama, tekilleştirme
|
|
455
|
-
│ │ └── config.ts # Kullanıcı yapılandırma yükleyici
|
|
456
|
-
│ ├── guides/
|
|
457
|
-
│ │ ├── index.ts # Rehber modülü yeniden dışa aktarmalar
|
|
458
|
-
│ │ ├── core.ts # Temel rehber mantığı, bulanık tekilleştirme
|
|
459
|
-
│ │ └── task-map.ts # Görev-rehber eşlemesi
|
|
460
|
-
│ ├── server/
|
|
461
|
-
│ │ ├── index.ts # Sunucu kurulumu, enjeksiyon, bildirimler
|
|
462
|
-
│ │ ├── handlers.ts # Araç işleyicileri (20 araç)
|
|
463
|
-
│ │ ├── tools.ts # Araç tanımları
|
|
464
|
-
│ │ ├── hooks.ts # Hook sistemi ve istem değiştiriciler
|
|
465
|
-
│ │ └── system-prompt.ts # Dinamik sistem istemi
|
|
466
|
-
│ └── sessions/
|
|
467
|
-
│ ├── index.ts # Oturum modülü yeniden dışa aktarmalar
|
|
468
|
-
│ ├── core.ts # Oturum yaşam döngüsü
|
|
469
|
-
│ └── virtual.ts # Sanal oturum izleme
|
|
470
|
-
├── tests/
|
|
471
|
-
│ ├── memory/ # 7 test dosyası
|
|
472
|
-
│ ├── guides/ # 6 test dosyası
|
|
473
|
-
│ ├── sessions/ # 2 test dosyası
|
|
474
|
-
│ └── server/ # 10 test dosyası
|
|
475
|
-
├── docs/ # Araştırma makaleleri ve referanslar
|
|
476
|
-
├── package.json
|
|
477
|
-
├── tsconfig.json
|
|
478
|
-
├── CHANGELOG.md
|
|
479
|
-
└── README.md
|
|
480
|
-
```
|
|
481
|
-
|
|
482
|
-
## Güvenlik
|
|
483
|
-
|
|
484
|
-
Tüm veriler yerel olarak `~/.lemma/` dizininde saklanır. Hiçbir şey harici sunuculara gönderilmez. Kullanıcılar istedikleri zaman MCP araçları üzerinden veya doğrudan verileri inceleyebilir, düzenleyebilir veya temizleyebilir.
|
|
485
|
-
|
|
486
|
-
## Lisans
|
|
487
|
-
|
|
488
|
-
MIT License
|