lemma-mcp 0.7.0
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/LICENSE +21 -0
- package/README.md +474 -0
- package/README.tr.md +384 -0
- package/dist/guides/core.d.ts +33 -0
- package/dist/guides/core.d.ts.map +1 -0
- package/dist/guides/core.js +424 -0
- package/dist/guides/core.js.map +1 -0
- package/dist/guides/index.d.ts +2 -0
- package/dist/guides/index.d.ts.map +1 -0
- package/dist/guides/index.js +2 -0
- package/dist/guides/index.js.map +1 -0
- package/dist/guides/task-map.d.ts +3 -0
- package/dist/guides/task-map.d.ts.map +1 -0
- package/dist/guides/task-map.js +107 -0
- package/dist/guides/task-map.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/config.d.ts +6 -0
- package/dist/memory/config.d.ts.map +1 -0
- package/dist/memory/config.js +69 -0
- package/dist/memory/config.js.map +1 -0
- package/dist/memory/core.d.ts +27 -0
- package/dist/memory/core.d.ts.map +1 -0
- package/dist/memory/core.js +415 -0
- package/dist/memory/core.js.map +1 -0
- package/dist/memory/index.d.ts +2 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +2 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/server/handlers.d.ts +131 -0
- package/dist/server/handlers.d.ts.map +1 -0
- package/dist/server/handlers.js +694 -0
- package/dist/server/handlers.js.map +1 -0
- package/dist/server/hooks.d.ts +16 -0
- package/dist/server/hooks.d.ts.map +1 -0
- package/dist/server/hooks.js +77 -0
- package/dist/server/hooks.js.map +1 -0
- package/dist/server/index.d.ts +5 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +322 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/system-prompt.d.ts +5 -0
- package/dist/server/system-prompt.d.ts.map +1 -0
- package/dist/server/system-prompt.js +143 -0
- package/dist/server/system-prompt.js.map +1 -0
- package/dist/server/tools.d.ts +22 -0
- package/dist/server/tools.d.ts.map +1 -0
- package/dist/server/tools.js +443 -0
- package/dist/server/tools.js.map +1 -0
- package/dist/sessions/core.d.ts +17 -0
- package/dist/sessions/core.d.ts.map +1 -0
- package/dist/sessions/core.js +162 -0
- package/dist/sessions/core.js.map +1 -0
- package/dist/sessions/index.d.ts +2 -0
- package/dist/sessions/index.d.ts.map +1 -0
- package/dist/sessions/index.js +2 -0
- package/dist/sessions/index.js.map +1 -0
- package/dist/sessions/virtual.d.ts +23 -0
- package/dist/sessions/virtual.d.ts.map +1 -0
- package/dist/sessions/virtual.js +157 -0
- package/dist/sessions/virtual.js.map +1 -0
- package/dist/types.d.ts +143 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +62 -0
package/README.tr.md
ADDED
|
@@ -0,0 +1,384 @@
|
|
|
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 bellek çürümesi ve öğrenme ile şık bir arayüz 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
|
+
- **LLM her oturumda fragmanları okur** ve kim olduğunu hatırlar
|
|
21
|
+
|
|
22
|
+
## Nasıl Çalışır?
|
|
23
|
+
|
|
24
|
+
### Dinamik Sistem İstemi
|
|
25
|
+
|
|
26
|
+
Lemma, ilgili bağlamı LLM'nin sistem istemine çalışma zamanında otomatik enjekte eder:
|
|
27
|
+
|
|
28
|
+
- **Küresel Bağlam**: Projeler arası öğrenimler ve tercihler (maksimum 10 fragman)
|
|
29
|
+
- **Proje Bağlamı**: Projeye özel fragmanlar, güven görselleştirmesi ile (maksimum 20 fragman)
|
|
30
|
+
- **Görsel Formatlama**: Güven çubukları (`███░░`) ve kaynak ikonları (🤖/👤)
|
|
31
|
+
- **İstem Değiştiricileri**: Özel istem dönüşümleri için genişletilebilir sistem
|
|
32
|
+
|
|
33
|
+
### Bellek Yapısı
|
|
34
|
+
|
|
35
|
+
Her bellek fragmanı şu alanlara sahiptir:
|
|
36
|
+
|
|
37
|
+
| Alan | Tip | Açıklama |
|
|
38
|
+
|-------|------|-------------|
|
|
39
|
+
| `id` | string | Benzersiz kimlik (format: `m` + 6 hex karakter) |
|
|
40
|
+
| `title` | string | Hızlı tarama için kısa başlık |
|
|
41
|
+
| `fragment` | string | Sentezlenmiş bellek metni |
|
|
42
|
+
| `project` | string | Proje kapsamı (küresel için `null`) |
|
|
43
|
+
| `confidence` | float | Güvenilirlik 0.0-1.0 (zamanla çürür ve güçlenir) |
|
|
44
|
+
| `source` | string | `"user"` veya `"ai"` |
|
|
45
|
+
| `created` | string | Oluşturulma tarihi (YYYY-MM-DD) |
|
|
46
|
+
| `lastAccessed` | string | Son okuma zamanı (ISO timestamp) |
|
|
47
|
+
| `accessed` | int | Mevcut çürüme döngüsündeki erişim sayısı |
|
|
48
|
+
| `tags` | string[] | Kullanımdan elde edilen bağlam etiketleri (örn. "debugging", "refactoring") |
|
|
49
|
+
| `associatedWith` | string[] | Aynı oturumda erişilen fragman ID'leri |
|
|
50
|
+
| `negativeHits` | int | Bu belleğin yardımcı olmadığı işaretlenme sayısı (oturum başına sıfırlanır) |
|
|
51
|
+
|
|
52
|
+
### Öğrenme Sistemi
|
|
53
|
+
|
|
54
|
+
Statik belleğin aksine, Lemma bilginin kullanım yoluyla evrildiği biyolojik bir model kullanır:
|
|
55
|
+
|
|
56
|
+
**Güçlendirme (erişimde):**
|
|
57
|
+
```
|
|
58
|
+
confidence = min(1.0, confidence + 0.1)
|
|
59
|
+
tags += context_tag (örn. "debugging")
|
|
60
|
+
associatedWith += co_accessed_fragment_ids
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Çürüme (oturum başına):**
|
|
64
|
+
```
|
|
65
|
+
decay = max(0.005, 0.05 - (accessed * 0.005))
|
|
66
|
+
confidence = confidence - decay
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
- **Sıklık**: Sık erişilen öğeler daha yavaş çürür (minimum oturum başına 0.005)
|
|
70
|
+
- **Kullanılmayan öğeler** temel oran olan oturum başına 0.05 çürür
|
|
71
|
+
- **İlişkiler**: Birlikte kullanılan fragmanlar gelecekteki hatırlama için çapraz referanslar oluşturur
|
|
72
|
+
|
|
73
|
+
### Bellek Dosyası Konumu
|
|
74
|
+
|
|
75
|
+
Bellekler JSONL formatında şu konumda saklanır:
|
|
76
|
+
|
|
77
|
+
| İşletim Sistemi | Yol |
|
|
78
|
+
|---|---|
|
|
79
|
+
| **Windows** | `C:\Users\{kullanıcı}\.lemma\memory.jsonl` |
|
|
80
|
+
| **macOS** | `/Users/{kullanıcı}/.lemma/memory.jsonl` |
|
|
81
|
+
| **Linux** | `/home/{kullanıcı}/.lemma/memory.jsonl` |
|
|
82
|
+
|
|
83
|
+
## Hızlı Başlangıç
|
|
84
|
+
|
|
85
|
+
Lemma'yı kullanmanın önerilen yolu **JSR** üzerindendir. MCP istemci konfigürasyonunuza ekleyin:
|
|
86
|
+
|
|
87
|
+
**Claude Desktop (Windows):** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
88
|
+
**Claude Desktop (macOS):** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
89
|
+
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"mcpServers": {
|
|
93
|
+
"lemma": {
|
|
94
|
+
"command": "npx",
|
|
95
|
+
"args": ["-y", "jsr", "@lemma/lemma"]
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Alternatif: Doğrudan GitHub'dan çalıştır
|
|
102
|
+
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"mcpServers": {
|
|
106
|
+
"lemma": {
|
|
107
|
+
"command": "npx",
|
|
108
|
+
"args": ["-y", "github:xenitV1/lemma"]
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Hook Sistemi
|
|
117
|
+
|
|
118
|
+
Lemma, sunucu davranışını genişletmek için eklenti tabanlı bir hook sistemi sağlar:
|
|
119
|
+
|
|
120
|
+
### Yaşam Döngüsü Hook'ları
|
|
121
|
+
|
|
122
|
+
```javascript
|
|
123
|
+
import { registerHook, HookTypes } from "@lemma/lemma/server";
|
|
124
|
+
|
|
125
|
+
// Sunucu başlangıcında callback kaydet
|
|
126
|
+
registerHook(HookTypes.ON_START, async (context) => {
|
|
127
|
+
console.log("Sunucu başladı!", context);
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
// Proje bağlamı değişikliğinde callback kaydet
|
|
131
|
+
registerHook(HookTypes.ON_PROJECT_CHANGE, async (context) => {
|
|
132
|
+
console.log(`Proje değişti: ${context.project}`);
|
|
133
|
+
});
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### İstem Değiştiricileri
|
|
137
|
+
|
|
138
|
+
Sistem istemi oluşturmayı özel dönüşümlerle genişletin:
|
|
139
|
+
|
|
140
|
+
```javascript
|
|
141
|
+
import { registerPromptModifier } from "@lemma/lemma/server";
|
|
142
|
+
|
|
143
|
+
registerPromptModifier(async (prompt, context) => {
|
|
144
|
+
// İsteme özel bağlam ekle
|
|
145
|
+
if (context.project === "uygulamam") {
|
|
146
|
+
return prompt + "\n\n<custom>Not: Deneysel özellikler kullanılıyor.</custom>";
|
|
147
|
+
}
|
|
148
|
+
return prompt;
|
|
149
|
+
});
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Manuel Kurulum (Geliştiriciler İçin)
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
git clone https://github.com/xenitV1/lemma
|
|
158
|
+
cd Lemma
|
|
159
|
+
npm install
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Gereksinimler:** Node.js 18.0.0 veya üzeri
|
|
163
|
+
|
|
164
|
+
### Yerel Konfigürasyon
|
|
165
|
+
|
|
166
|
+
```json
|
|
167
|
+
{
|
|
168
|
+
"mcpServers": {
|
|
169
|
+
"lemma": {
|
|
170
|
+
"command": "node",
|
|
171
|
+
"args": ["C:\\yol\\to\\Lemma\\src\\index.js"]
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Mevcut Araçlar
|
|
180
|
+
|
|
181
|
+
### Bellek Araçları
|
|
182
|
+
|
|
183
|
+
#### `memory_read`
|
|
184
|
+
|
|
185
|
+
Bellek fragmanlarını okur. ÖZET MODU sadece başlık + açıklama gösterir; tam detay için `id` kullanın.
|
|
186
|
+
|
|
187
|
+
**Parametreler:**
|
|
188
|
+
- `project` (string, opsiyonel): Filtrelenecek proje adı
|
|
189
|
+
- `query` (string, opsiyonel): Semantik arama anahtar kelimesi
|
|
190
|
+
- `id` (string, opsiyonel): Belirli bir fragmanın tam detayını al
|
|
191
|
+
- `context` (string, opsiyonel): Bu erişimi bir bağlamla etiketle (örn. "debugging") — güveni artırır
|
|
192
|
+
- `all` (boolean, opsiyonel): Tüm projelerden fragmanları göster (varsayılan: false)
|
|
193
|
+
|
|
194
|
+
**Dönüş:** Güven çubuklarıyla formatlanmış string:
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
=== LEMMA BELLEK FRAGMANLARI (project: myapp) ===
|
|
198
|
+
[m1a2b3] ████░ (🤖) [myapp] React Hooks
|
|
199
|
+
useState ve useEffect pattern'leri
|
|
200
|
+
==============================
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
#### `memory_add`
|
|
204
|
+
|
|
205
|
+
**ZORUNLU:** Analizi tamamladıktan SONRA bulguları kaydetmek için çağır.
|
|
206
|
+
|
|
207
|
+
**Parametreler:**
|
|
208
|
+
- `fragment` (string, zorunlu): Saklanacak bellek metni
|
|
209
|
+
- `title` (string, opsiyonel): Kısa başlık
|
|
210
|
+
- `description` (string, opsiyonel): Kısa özet
|
|
211
|
+
- `project` (string, opsiyonel): Proje kapsamı (null = küresel)
|
|
212
|
+
- `source` (string, opsiyonel): "user" veya "ai", varsayılan "ai"
|
|
213
|
+
|
|
214
|
+
#### `memory_update`
|
|
215
|
+
|
|
216
|
+
Mevcut bir fragmanı ID ile güncelle.
|
|
217
|
+
|
|
218
|
+
**Parametreler:**
|
|
219
|
+
- `id` (string, zorunlu): Fragman ID'si
|
|
220
|
+
- `title` (string, opsiyonel): Yeni başlık
|
|
221
|
+
- `fragment` (string, opsiyonel): Yeni metin
|
|
222
|
+
- `confidence` (number, opsiyonel): Yeni güven değeri 0-1
|
|
223
|
+
|
|
224
|
+
#### `memory_feedback`
|
|
225
|
+
|
|
226
|
+
Kullanımdan sonra bir bellek fragmanı hakkında geri bildirim ver. Pozitif geri bildirim güveni artırır; negatif geri bildirim doğrudan düşürür (-0.1).
|
|
227
|
+
|
|
228
|
+
**Parametreler:**
|
|
229
|
+
- `id` (string, zorunlu): Fragman ID'si
|
|
230
|
+
- `useful` (boolean, zorunlu): Yardımcı olduysa `true`, olmadıysa `false`
|
|
231
|
+
|
|
232
|
+
#### `memory_forget`
|
|
233
|
+
|
|
234
|
+
Bir bellek fragmanını ID ile sil.
|
|
235
|
+
|
|
236
|
+
**Parametreler:**
|
|
237
|
+
- `id` (string, zorunlu): Fragman ID'si
|
|
238
|
+
|
|
239
|
+
#### `memory_merge`
|
|
240
|
+
|
|
241
|
+
Birden fazla fragmanı birleştir. Yeni ID oluşturur, orijinalleri siler.
|
|
242
|
+
|
|
243
|
+
**Parametreler:**
|
|
244
|
+
- `ids` (string[], zorunlu): Birleştirilecek fragman ID'leri
|
|
245
|
+
- `title` (string, zorunlu): Birleştirilmiş fragmanın başlığı
|
|
246
|
+
- `fragment` (string, zorunlu): Birleştirilmiş içerik
|
|
247
|
+
- `project` (string, opsiyonel): Proje kapsamı
|
|
248
|
+
|
|
249
|
+
### Rehber Araçları
|
|
250
|
+
|
|
251
|
+
#### `guide_get`
|
|
252
|
+
|
|
253
|
+
Kullanım istatistikleriyle takip edilen rehberleri getir. Kullanım sayısına göre sıralı (en çok kullanılan önce).
|
|
254
|
+
|
|
255
|
+
**Parametreler:**
|
|
256
|
+
- `category` (string, opsiyonel): Kategoriye göre filtrele
|
|
257
|
+
- `guide` (string, opsiyonel): Belirli rehber detayı al
|
|
258
|
+
- `task` (string, opsiyonel): İlgili rehber önerileri almak için görev açıklaması
|
|
259
|
+
|
|
260
|
+
#### `guide_practice`
|
|
261
|
+
|
|
262
|
+
**ZORUNLU:** Çalışma sırasında bir rehber kullandığınızda kullanımını kaydedin.
|
|
263
|
+
|
|
264
|
+
**Parametreler:**
|
|
265
|
+
- `guide` (string, zorunlu): Rehber adı
|
|
266
|
+
- `category` (string, zorunlu): Kategori
|
|
267
|
+
- `description` (string, opsiyonel): Detaylı kılavuz/protokoller
|
|
268
|
+
- `contexts` (string[], zorunlu): Kullanıldığı bağlamlar
|
|
269
|
+
- `learnings` (string[], zorunlu): Keşfedilen yeni öğrenimler
|
|
270
|
+
|
|
271
|
+
#### `guide_create`
|
|
272
|
+
|
|
273
|
+
Detaylı bir kılavuzla rehber oluştur.
|
|
274
|
+
|
|
275
|
+
**Parametreler:**
|
|
276
|
+
- `guide` (string, zorunlu): Rehber adı
|
|
277
|
+
- `category` (string, zorunlu): Kategori
|
|
278
|
+
- `description` (string, zorunlu): Tam kılavuz/protokoller
|
|
279
|
+
- `contexts` (string[], opsiyonel): İlk bağlamlar
|
|
280
|
+
- `learnings` (string[], opsiyonel): İlk öğrenimler
|
|
281
|
+
|
|
282
|
+
#### `guide_distill`
|
|
283
|
+
|
|
284
|
+
Bir bellek fragmanını rehber öğrenimine dönüştür.
|
|
285
|
+
|
|
286
|
+
**Parametreler:**
|
|
287
|
+
- `memory_id` (string, zorunlu): Bellek fragmanı ID'si
|
|
288
|
+
- `guide` (string, zorunlu): Hedef rehber adı
|
|
289
|
+
- `category` (string, opsiyonel): Kategori (yeni rehber oluşturuluyorsa gerekli)
|
|
290
|
+
|
|
291
|
+
#### `guide_update`
|
|
292
|
+
|
|
293
|
+
Mevcut bir rehberin özelliklerini güncelle.
|
|
294
|
+
|
|
295
|
+
**Parametreler:**
|
|
296
|
+
- `guide` (string, zorunlu): Mevcut rehber adı
|
|
297
|
+
- `new_name` (string, opsiyonel): Yeni ad
|
|
298
|
+
- `category` (string, opsiyonel): Yeni kategori
|
|
299
|
+
- `description` (string, opsiyonel): Yeni açıklama/kılavuz
|
|
300
|
+
|
|
301
|
+
#### `guide_forget`
|
|
302
|
+
|
|
303
|
+
Bir rehberi sil.
|
|
304
|
+
|
|
305
|
+
**Parametreler:**
|
|
306
|
+
- `guide` (string, zorunlu): Rehber adı
|
|
307
|
+
|
|
308
|
+
#### `guide_merge`
|
|
309
|
+
|
|
310
|
+
Birden fazla rehberi birleştir. Kullanım sayıları toplanır.
|
|
311
|
+
|
|
312
|
+
**Parametreler:**
|
|
313
|
+
- `guides` (string[], zorunlu): Birleştirilecek rehber adları
|
|
314
|
+
- `guide` (string, zorunlu): Birleştirilmiş rehberin adı
|
|
315
|
+
- `category` (string, zorunlu): Kategori
|
|
316
|
+
- `description` (string, opsiyonel): Birleştirilmiş açıklama
|
|
317
|
+
- `contexts` (string[], opsiyonel): Birleştirilmiş bağlamlar
|
|
318
|
+
- `learnings` (string[], opsiyonel): Birleştirilmiş öğrenimler
|
|
319
|
+
|
|
320
|
+
## Felsefe
|
|
321
|
+
|
|
322
|
+
### Saklanması Gerekenler
|
|
323
|
+
|
|
324
|
+
**Kullanıcı Katmanı:**
|
|
325
|
+
- Kullanıcı tercihleri (iletişim tarzı, format, dil)
|
|
326
|
+
- Proje bağlamı (teknoloji yığını, klasör yapısı, konvansiyonlar)
|
|
327
|
+
- Açıkça istenen anılar
|
|
328
|
+
|
|
329
|
+
**Yetenek Katmanı:**
|
|
330
|
+
- Kullanılan başarılı çözümler ve yaklaşımlar
|
|
331
|
+
- Tekrar eden görevler için keşfedilen kısayollar
|
|
332
|
+
- Denenen ve başarısız olan yaklaşımlar
|
|
333
|
+
|
|
334
|
+
### Saklanmaması Gerekenler
|
|
335
|
+
|
|
336
|
+
- Ham konuşma içeriği
|
|
337
|
+
- Tekrar etmeyecek tek seferlik sorular
|
|
338
|
+
- Geçici veya yüksek bağlama özgü bilgiler
|
|
339
|
+
- Kişisel veya hassas veriler
|
|
340
|
+
|
|
341
|
+
## Geliştirme
|
|
342
|
+
|
|
343
|
+
### Testleri Çalıştırma
|
|
344
|
+
|
|
345
|
+
```bash
|
|
346
|
+
npm test
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
Kapsamlı test paketi: bellek çekirdeği, rehber çekirdeği, işleyiciler, öğrenme yaşam döngüsü, hook sistemi ve dinamik istem oluşturma. Tüm I/O geçici dizinlere izole edilir — gerçek verilere dokunulmaz.
|
|
350
|
+
|
|
351
|
+
### Proje Yapısı
|
|
352
|
+
|
|
353
|
+
```
|
|
354
|
+
Lemma/
|
|
355
|
+
├── src/
|
|
356
|
+
│ ├── index.js # MCP sunucu giriş noktası
|
|
357
|
+
│ ├── memory/
|
|
358
|
+
│ │ ├── index.js # Bellek modülü yeniden dışa aktarmalar
|
|
359
|
+
│ │ └── core.js # Temel bellek mantığı
|
|
360
|
+
│ ├── guides/
|
|
361
|
+
│ │ ├── index.js # Rehber modülü yeniden dışa aktarmalar
|
|
362
|
+
│ │ ├── core.js # Temel rehber mantığı
|
|
363
|
+
│ │ └── task-map.js # Görev-rehber eşlemesi
|
|
364
|
+
│ └── server/
|
|
365
|
+
│ ├── index.js # Sunucu kurulumu
|
|
366
|
+
│ ├── handlers.js # Araç işleyicileri
|
|
367
|
+
│ ├── tools.js # Araç tanımları
|
|
368
|
+
│ ├── hooks.js # Hook sistemi ve istem değiştiriciler
|
|
369
|
+
│ └── system-prompt.js
|
|
370
|
+
├── tests/
|
|
371
|
+
│ └── test.js # Test paketi
|
|
372
|
+
├── package.json
|
|
373
|
+
├── jsr.json
|
|
374
|
+
├── CHANGELOG.md
|
|
375
|
+
└── README.md
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
## Güvenlik
|
|
379
|
+
|
|
380
|
+
`memory.jsonl` ve `guides.jsonl` yerel dosyalardır ve asla hiçbir yere gönderilmez. Kullanıcılar içeriklerini inceleyebilir veya MCP araçları üzerinden istedikleri zaman temizleyebilirler.
|
|
381
|
+
|
|
382
|
+
## Lisans
|
|
383
|
+
|
|
384
|
+
MIT License
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { TASK_GUIDE_MAP } from "./task-map.js";
|
|
2
|
+
import type { Guide, SuggestResult } from "../types.js";
|
|
3
|
+
interface GuideUpdates {
|
|
4
|
+
guide?: string;
|
|
5
|
+
category?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
add_anti_patterns?: string[];
|
|
8
|
+
add_pitfalls?: string[];
|
|
9
|
+
superseded_by?: string;
|
|
10
|
+
deprecated?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function setGuidesDir(dir: string): void;
|
|
13
|
+
export declare function generateGuideId(): string;
|
|
14
|
+
export declare function getToday(): string;
|
|
15
|
+
export declare function createGuide(guide: string, category: string, description?: string, contexts?: string[], learnings?: string[]): Guide;
|
|
16
|
+
export declare function loadGuides(): Guide[];
|
|
17
|
+
export declare function saveGuides(guides: Guide[], options?: {
|
|
18
|
+
force?: boolean;
|
|
19
|
+
}): void;
|
|
20
|
+
export declare function promoteToGuide(guides: Guide[], guideName: string, category: string, knowledge: string, context?: string): Guide;
|
|
21
|
+
export declare function findGuide(guides: Guide[], guideName: string): Guide | null;
|
|
22
|
+
export declare function findSimilarGuide(guides: Guide[], guideName: string): Guide | null;
|
|
23
|
+
export declare function updateGuide(guides: Guide[], guideName: string, updates: GuideUpdates): Guide | null;
|
|
24
|
+
export declare function deleteGuide(guides: Guide[], guideName: string): boolean;
|
|
25
|
+
export declare function practiceGuide(guides: Guide[], guideName: string, category: string, description?: string, newContexts?: string[], newLearnings?: string[], outcome?: string | null): Guide;
|
|
26
|
+
export declare function getTopGuides(guides: Guide[], limit?: number): Guide[];
|
|
27
|
+
export declare function getGuidesByCategory(guides: Guide[], category: string): Guide[];
|
|
28
|
+
export declare function formatGuidesForLLM(guides: Guide[]): string;
|
|
29
|
+
export declare function suggestGuides(taskDescription: string, existingGuides?: Guide[]): SuggestResult;
|
|
30
|
+
export declare function formatSuggestions(result: SuggestResult): string;
|
|
31
|
+
export declare function formatGuideDetail(guide: Guide | null): string;
|
|
32
|
+
export { TASK_GUIDE_MAP };
|
|
33
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/guides/core.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAEzE,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAKD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAG9C;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAAW,EACxB,QAAQ,GAAE,MAAM,EAAO,EACvB,SAAS,GAAE,MAAM,EAAO,GACvB,KAAK,CAoBP;AAED,wBAAgB,UAAU,IAAI,KAAK,EAAE,CAiBpC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,IAAI,CAqCnF;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,KAAK,EAAE,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,MAAW,GACnB,KAAK,CAkBP;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAG1E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAsBjF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAqBnG;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAUvE;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,KAAK,EAAE,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAAW,EACxB,WAAW,GAAE,MAAM,EAAO,EAC1B,YAAY,GAAE,MAAM,EAAO,EAC3B,OAAO,GAAE,MAAM,GAAG,IAAW,GAC5B,KAAK,CAyCP;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,GAAE,MAAW,GAAG,KAAK,EAAE,CAIzE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE,CAG9E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAY1D;AA8BD,wBAAgB,aAAa,CAAC,eAAe,EAAE,MAAM,EAAE,cAAc,GAAE,KAAK,EAAO,GAAG,aAAa,CAoGlG;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAsC/D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,CAuD7D;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
|