wormclaude 1.0.218 → 1.0.220
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/dist/cli.js +7 -0
- package/dist/memory.js +18 -4
- package/dist/theme.js +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -213,6 +213,13 @@ const _initHistory = () => {
|
|
|
213
213
|
// /kopyala komutu (OSC52 ile panoya) sağlanır. ?1049h alt-screen · ?1007h alternate-scroll.
|
|
214
214
|
// VARSAYILAN: özel renderer (TUI). Eski ink sürümüne dönmek için WORMCLAUDE_INK=1.
|
|
215
215
|
const _TUI = process.env.WORMCLAUDE_INK ? false : true;
|
|
216
|
+
// Pencere/sekme başlığı → "WormClaude" (cmd/Windows Terminal'de "C:\WINDOWS\system32\cmd.exe"
|
|
217
|
+
// yerine). OSC 0 = ikon-adı + başlık. Renderer dalı ÖNCESİ → hem TUI hem ink'te geçerli.
|
|
218
|
+
try {
|
|
219
|
+
if (process.stdout.isTTY)
|
|
220
|
+
process.stdout.write('\x1b]0;WormClaude\x07');
|
|
221
|
+
}
|
|
222
|
+
catch { }
|
|
216
223
|
if (!_TUI) {
|
|
217
224
|
try {
|
|
218
225
|
process.stdout.write('\x1b[?1049h\x1b[?1007h\x1b[2J\x1b[H');
|
package/dist/memory.js
CHANGED
|
@@ -16,6 +16,18 @@ const SCAN_THROTTLE_MS = 10 * 60 * 1000;
|
|
|
16
16
|
const LOCK_STALE_MS = 60 * 60 * 1000;
|
|
17
17
|
const MEM_DIR = path.join(process.cwd(), '.wormclaude');
|
|
18
18
|
const MEM_FILE = path.join(MEM_DIR, 'memory.md');
|
|
19
|
+
// Hafıza KİRLENMESİNİ önle: ham tool_call XML + kod blokları + dosya dökümleri context'i bozar
|
|
20
|
+
// (model klon projesini "hatırlayıp" alakasız davranır). Yazmadan önce temizle + uzunluğu sınırla.
|
|
21
|
+
function sanitizeMemory(s) {
|
|
22
|
+
return (s || '')
|
|
23
|
+
.replace(/<\/?tool_call>/gi, '')
|
|
24
|
+
.replace(/<\/?function[^>\n]*>?/gi, '')
|
|
25
|
+
.replace(/<\/?parameter[^>\n]*>?/gi, '')
|
|
26
|
+
.replace(/```[\s\S]*?```/g, '[kod çıkarıldı]') // kod bloğu = hafıza değil
|
|
27
|
+
.replace(/\n{3,}/g, '\n\n')
|
|
28
|
+
.trim()
|
|
29
|
+
.slice(0, 6000);
|
|
30
|
+
}
|
|
19
31
|
const LOCK_FILE = path.join(MEM_DIR, '.consolidate-lock');
|
|
20
32
|
let initialized = false;
|
|
21
33
|
let inProgress = false;
|
|
@@ -76,12 +88,13 @@ export function triggerMemory(history, config) {
|
|
|
76
88
|
role: 'user',
|
|
77
89
|
content: 'NOT: Bu mesaj konuşmanın parçası değil. Yukarıdaki konuşmadan kalıcı, faydalı bilgileri ' +
|
|
78
90
|
'(kullanıcı tercihleri, kararlar, proje durumu, önemli dosyalar) çıkar ve aşağıdaki mevcut ' +
|
|
79
|
-
'hafızaya MERGE et — kopya yazma, çelişeni güncelle.
|
|
80
|
-
'
|
|
91
|
+
'hafızaya MERGE et — kopya yazma, çelişeni güncelle. SADECE kısa GERÇEKLER yaz (markdown madde imleri). ' +
|
|
92
|
+
'ASLA kod bloğu (```), dosya içeriği/dökümü, ya da araç (tool_call/function/parameter) sözdizimi YAZMA — ' +
|
|
93
|
+
'sadece bir-iki cümlelik özet bilgiler. Göreli tarihleri mutlak yap.\n\nMEVCUT HAFIZA:\n' + (prev || '(boş)'),
|
|
81
94
|
},
|
|
82
95
|
], config);
|
|
83
96
|
fs.mkdirSync(MEM_DIR, { recursive: true });
|
|
84
|
-
fs.writeFileSync(MEM_FILE, out);
|
|
97
|
+
fs.writeFileSync(MEM_FILE, sanitizeMemory(out));
|
|
85
98
|
tasks.append(task.id, `\nhafıza güncellendi: ${MEM_FILE} (${out.length} karakter)`);
|
|
86
99
|
tasks.finish(task.id, 'done');
|
|
87
100
|
}
|
|
@@ -142,7 +155,8 @@ const MEMORY_HEADER = '## Eklenen Hatıralar';
|
|
|
142
155
|
* scope: 'project' → cwd/.wormclaude/memory.md (varsayılan), 'global' → ~/.wormclaude/memory.md.
|
|
143
156
|
*/
|
|
144
157
|
export function saveMemoryFact(fact, scope = 'project') {
|
|
145
|
-
|
|
158
|
+
// Sanitize (tool-sözdizimi/kod çıkar) + tek satıra indir — bir "hatıra" kısa bir gerçektir, döküm değil.
|
|
159
|
+
const clean = sanitizeMemory(String(fact || '')).replace(/^(-+\s*)+/, '').replace(/\s*\n\s*/g, ' ').trim();
|
|
146
160
|
if (!clean)
|
|
147
161
|
throw new Error('boş hatıra');
|
|
148
162
|
const dir = scope === 'global'
|
package/dist/theme.js
CHANGED