natureco-cli 5.49.1 → 5.50.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to NatureCo CLI will be documented in this file.
4
4
 
5
+ ## [5.50.1] - 2026-07-10 — "PERF: öz-bilgi bloğu sıkıştırıldı (~%55 daha az token)"
6
+
7
+ ### Changed
8
+ - **Öz-bilgi bloğu 208 → ~94 tokene indirildi** (her istekte sistem mesajıyla gider; gerçek ölçüm: "merhaba" prompt'u 5.029 → 4.883 token). Uzun mutlak yollar tekilleştirildi, talimat metni sıkıştırıldı; sayılar "TAM OLARAK" vurgusuyla korundu. SELF.md haritası zaten sysMsg'e gömülmüyordu (istek üzerine okunur) — ölçümle bir kez daha doğrulandı. E2E: "kaç skillin var?" → "Toplam 319 skill ve 90 aracım var"; onarım sorusunda ilk okunacak dosya SELF.md.
9
+
10
+ ## [5.50.0] - 2026-07-10 — "ÖZ-BİLGİ: ajan kendi evini tanıyor ve kendini onarabiliyor"
11
+
12
+ ### Added
13
+ - **`SELF.md` — ajanın öz-bilgi haritası** (paket köküne eklenir, pakete dahil): mimari harita (chat→repl→workflow→agentic-runner akışı, gateway/tek-beyin, hafıza sistemi, skill sistemi, güvenlik katmanları, ~/.natureco veri haritası), dosya-görev tablosu ve **kendini onarma protokolü** (belirtiyi netleştir → haritadan dosyayı bul → read_file → edit_file → node --check ile doğrula → dürüstçe raporla → "kurulu paketteki düzeltme güncellemede ezilir" uyarısı).
14
+ - Sistem mesajındaki öz-bilgi bloğu SELF.md'ye işaret eder: kullanıcı "kendini incele / şu özelliğin bozuk / kendini onar / nasıl çalışıyorsun" dediğinde ajan önce haritayı okur, sonra ilgili kaynak dosyada çalışır. Token maliyeti düşük tutuldu (harita sysMsg'e GÖMÜLMEZ, istek üzerine okunur — progressive disclosure).
15
+ - E2E doğrulandı: "hafıza sistemin hangi dosyalarda, Türkçe arama sorununu hangi dosya çözüyor, kendini nasıl onarırsın?" → doğru dosyalar (`memory_tree.js`, `tr-text.js`...) + SELF.md protokol adımları.
16
+
5
17
  ## [5.49.1] - 2026-07-10 — "FIX: ajan kendi skill/araç envanterini yanlış anlatıyordu"
6
18
 
7
19
  ### Fixed
package/SELF.md ADDED
@@ -0,0 +1,116 @@
1
+ # SELF.md — NatureCo CLI Öz-Bilgi Haritası
2
+
3
+ > Bu dosya AJANIN KENDİSİ içindir: kendi evinin haritası. Kullanıcı "şu özelliğin
4
+ > bozuldu / kendini incele / şunu onar" dediğinde ÖNCE burayı oku, ilgili dosyayı
5
+ > bul, `read_file` ile incele, `edit_file` ile onar, sonra doğrula.
6
+ > Şüphede kalırsan harita değil KAYNAK KOD doğrudur — dosyayı aç ve oku.
7
+
8
+ ## Kimlik ve konum
9
+
10
+ - Ben `natureco-cli` npm paketiyim. Kurulum kökümü bu dosyanın bulunduğu klasörden bilirsin.
11
+ - Giriş noktası: `bin/natureco.js` (commander tabanlı komut yönlendirici; açılışta
12
+ güncelleme bildirimi `src/utils/update-check.js` ve `~/.natureco` bağlantıları
13
+ `src/utils/builtin-links.js` çalışır).
14
+ - Kullanıcı verileri KODDAN AYRIDIR: `~/.natureco/` (config.json, memory/, sessions,
15
+ crons.json, channel-history/, gateway.log...). Kod güncellenince veri korunur.
16
+
17
+ ## Ana akışlar (bir özellik bozulduğunda önce akışı bul)
18
+
19
+ ### 1. Sohbet: `natureco chat` → repl → workflow → agentic-runner
20
+ - `src/commands/chat.js` → `src/commands/repl.js`'i çağırır (Phase 9 TUI).
21
+ - `repl.js`: girdi okuma, oturum yönetimi, hafıza yükleme (`loadMemory`), her mesajı
22
+ `workflow` aracına gönderir, yanıtı model-adı temizliğinden geçirir
23
+ (MiniMax/Claude → bot adı), oturum sonunda `extractPreferenceFacts` ile korumalı
24
+ otomatik hafıza kaydı yapar (ajan zaten yazdıysa atlanır).
25
+ - `src/tools/workflow.js`: ORKESTRATÖR. `execute({action:'run', task, conversationHistory})`.
26
+ - Tool-calling desteklemeyen sağlayıcılar (MiniMax/Gemini/Groq/Ollama) →
27
+ `src/tools/agentic-runner.js` (XML `<invoke>` protokolünü parse edip araçları
28
+ çalıştıran sınırlı döngü, maxIterations 15, DEFAULT_ALLOWED allowlist).
29
+ - Sistem mesajı burada kurulur: kullanıcı hafızası + ağaç-hafıza digest +
30
+ skill index (`src/utils/skill-index.js`) + araç tanıtımları + öz-bilgi.
31
+ - YENİ ARAÇ EKLERKEN 3 YER: `src/tools/<ad>.js` dosyası + agentic-runner
32
+ DEFAULT_ALLOWED + workflow.js sysMsg tanıtımı. Biri eksikse araç "phantom"
33
+ olur (var ama ajan çağıramaz) — geçmişte cron/web_search/todo bu yüzden bozuktu.
34
+ - `src/utils/api.js`: OpenAI/Anthropic tool_calls yolu (`sendMessage`,
35
+ `sendMessageToProvider`) + konuşma kalıcılığı + MCP istemcileri.
36
+
37
+ ### 2. Mesajlaşma kanalları: `natureco gateway start`
38
+ - `src/commands/gateway.js` (başlat/durdur) → `src/commands/gateway-server.js`
39
+ (worker; Telegram/WhatsApp/Signal/IRC/Mattermost/iMessage/SMS sağlayıcıları).
40
+ - TEK BEYİN: güvenilir (allow-list'teki) gönderen `src/utils/channel-brain.js`
41
+ üzerinden terminaldekiyle AYNI workflow ajanına gider (aynı kişilik + hafıza).
42
+ Kanal-içi kısa geçmiş: `~/.natureco/channel-history/<kanal>_<sohbet>.json`.
43
+ - Güvenlik: `channelGate(config, kanal, gönderen)` — allow-list doluysa dışındakiler
44
+ engellenir; boşsa yanıt verilir ama hafızasız + araçsız (`noTools`).
45
+
46
+ ### 3. Hafıza (en kritik özellik — "yanlış hatırlamak hiç hatırlamamaktan kötü")
47
+ - Düz hafıza: `~/.natureco/memory/<kullanıcı>.json` (+ eski `default.json` birleşir).
48
+ Araç: `src/tools/memory_write.js`. Okuyucu: workflow `loadUserMemory`.
49
+ - Ağaç hafıza: `~/.natureco/memory/tree/<kullanıcı>/` (1-kisisel/2-teknik/3-kararlar
50
+ → ## dal → yaprak). Araç: `src/tools/memory_tree.js` (index|read|search|append|remove;
51
+ yazma-anı dedup/çelişki uyarısı içerir). Digest her istekte sysMsg'e gömülür.
52
+ - Türkçe arama: `src/utils/tr-text.js` `foldTr` (İ/I/ı/i tek form — JS toLowerCase
53
+ Türkçe'de GÜVENİLMEZ). Hafıza hijyeni: `src/utils/memory-lint.js` (`natureco memory lint`).
54
+ - Bekleyen işler: 3-kararlar/"Bekleyen İşler" dalı; repl açılışta hatırlatır.
55
+
56
+ ### 4. Skill sistemi
57
+ - Yerleşikler: paket kökünde `skills/` (her biri `<ad>/SKILL.md`, YAML frontmatter).
58
+ Kullanıcınınkiler: `~/.natureco/skills/`. Proje: `./.natureco/skills/`.
59
+ - İndeks: `src/utils/skill-index.js` (`_discoverSkills`, `buildSkillIndex` — 60+
60
+ skill'de KOMPAKT isim listesi üretir, token şişmesin diye; `NATURECO_SKILL_INDEX` env).
61
+ - Yükleme: ajan `skill_view` aracıyla (progressive disclosure). CLI: `src/commands/skills.js`
62
+ + `src/utils/skills.js` (list/install/remove; indirme allowlist'i `skills-allowlist.json`).
63
+ - Görünürlük bağlantıları: `~/.natureco/skills-builtin` ve `~/.natureco/tools`
64
+ (junction/symlink, `src/utils/builtin-links.js`).
65
+
66
+ ### 5. Güvenlik katmanları (GEVŞETME — bilinçli tasarım)
67
+ - `src/utils/exec-policy.js` + `src/commands/exec-policy.js`: bash komutları için
68
+ deny-by-default allowlist; yıkıcı komutlar (`rm -rf /` vb.) agentic yolda HER
69
+ modda bloklu (`isDangerousCommand`, agentic-runner içinde).
70
+ - Tam mod: `config set agentExec full` → tüm ~90 araç açılır; yıkıcılar yine bloklu.
71
+ - Her araç KENDİ güvenliğini uygular (allowlist'e güvenme) — tool_calls yolu
72
+ (api.js) tüm src/tools/*.js'i yükleyebilir. Shell çağrısı `execFileSync`
73
+ (shell:false) tercih edilir; string + execSync = komut enjeksiyonu riski.
74
+ - Kanal/webhook: gönderen doğrulama + imza kontrolü. Admin RPC: 127.0.0.1 + bearer token.
75
+
76
+ ### 6. Diğer önemli parçalar
77
+ - `src/commands/cron.js` + cron_create aracı: zamanlanmış görevler `~/.natureco/crons.json`;
78
+ fiilen çalışması için daemon gerekir (`natureco daemon start|install`).
79
+ - `src/commands/status.js`: sürüm/gateway/provider/skill/araç özeti (teşhis için ilk bakılacak yer).
80
+ - `src/commands/memory-cmd.js`: `natureco memory lint|search`.
81
+ - `src/utils/config.js`: `~/.natureco/config.json` okuma/yazma (0600 izin).
82
+ - `src/utils/tui.js` + `src/utils/branding.js`: TUI bileşenleri + ASCII logo.
83
+ - `src/commands/tools.js`: araç kataloğunu listeler. Araç kaynakları: `src/tools/*.js`
84
+ (~90 dosya; her modül `{name, description, inputSchema, execute}` dışa verir).
85
+
86
+ ## Kendini onarma protokolü
87
+
88
+ 1. Belirtiyi netleştir: hangi komut/özellik, hata mesajı ne, `natureco status` çıktısı.
89
+ 2. Bu haritadan ilgili akışı ve dosyayı bul; `read_file` ile oku (önce oku, sonra düzelt).
90
+ 3. `grep_search` ile ilgili fonksiyon/hata metnini kaynakta ara (kurulum kökünde).
91
+ 4. Düzeltmeyi `edit_file` ile hedefli yap (dosyayı komple yeniden yazma).
92
+ 5. Doğrula: `node --check <dosya>` (sözdizimi) ve mümkünse ilgili komutu çalıştır.
93
+ Test paketi kurulum kökünde: `npm test` (vitest; dev bağımlılıkları global
94
+ kurulumda olmayabilir — yoksa node --check + elle deneme yeterlidir).
95
+ 6. Kullanıcıya NE bozuktu, NEYİ değiştirdin, NASIL doğruladın — dürüstçe söyle.
96
+ 7. ÖNEMLİ: kurulu paketteki düzeltmeler bir sonraki `npm install -g natureco-cli`
97
+ güncellemesinde ezilir. Kalıcı çözüm için kullanıcıya "bu düzeltme geçici;
98
+ kalıcısı yeni sürümde yayınlanmalı" de.
99
+
100
+ ## Veri haritası (~/.natureco)
101
+
102
+ | Yol | İçerik |
103
+ |---|---|
104
+ | `config.json` | sağlayıcı, bot adı, kullanıcı adı, kanal tokenları (0600) |
105
+ | `memory/<kullanıcı>.json` | düz hafıza fact'leri |
106
+ | `memory/tree/<kullanıcı>/` | ağaç hafıza (kalıcı bilgi) |
107
+ | `sessions/`, `sessions.json` | REPL oturumları |
108
+ | `channel-history/` | kanal başına kısa konuşma geçmişi |
109
+ | `crons.json` | zamanlanmış görevler |
110
+ | `skills/` | kullanıcının kendi skill'leri |
111
+ | `skills-builtin` → paket | yerleşik skill bağlantısı |
112
+ | `tools` → paket | araç kaynakları bağlantısı |
113
+ | `gateway.log`, `gateway.pid` | kanal sunucusu |
114
+ | `update-check.json` | sürüm bildirimi önbelleği |
115
+ | `exec-approvals.json`, `perm-approvals.json` | izin kayıtları |
116
+ | `audit/` | denetim logları |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "natureco-cli",
3
- "version": "5.49.1",
3
+ "version": "5.50.1",
4
4
  "description": "OpenClaw'dan daha güvenli, daha hızlı, daha ucuz AI agent CLI. Multi-agent, self-evolving skills, audit log, maliyet optimizasyonu ve NatureCo platform-native.",
5
5
  "bin": {
6
6
  "natureco": "bin/natureco.js"
@@ -11,6 +11,7 @@
11
11
  "scripts/",
12
12
  "skills/",
13
13
  "README.md",
14
+ "SELF.md",
14
15
  "CHANGELOG.md",
15
16
  "AUDIT.md",
16
17
  "SECURITY_AUDIT_SUMMARY.md",
@@ -254,14 +254,16 @@ async function workflow(params) {
254
254
  // sistemini kesfe cikip YANLIS sayiyordu (~/.natureco/skills yalniz kullanici
255
255
  // skill'leridir; yerlesikler paketin icindedir). Gercek sayilari ve konumlari
256
256
  // sistem mesajina gomuyoruz ki ajan kendi kurulumunu dogru anlatsin.
257
+ // Kompakt tutulur (~85 token): harita sysMsg'e GOMULMEZ, gerektiginde okunur
257
258
  let selfInfo = '';
258
259
  try {
259
260
  const skillCount = require('../utils/skill-index')._discoverSkills().length;
260
261
  const pkgRoot = path.join(__dirname, '..', '..');
261
- selfInfo = '\n\nKendi kurulumun (kullanici sorarsa BU bilgiyi kullan, dosya sayarak tahmin etme):'
262
- + '\n- Toplam skill: ' + skillCount + ' (yerlesikler paketle gelir: ' + path.join(pkgRoot, 'skills') + ' — ~/.natureco/skills-builtin baglantisi da ayni yere acilir)'
263
- + '\n- Toplam arac: ' + tools.length + ' (kaynaklari: ' + path.join(pkgRoot, 'src', 'tools') + ' — ~/.natureco/tools baglantisi)'
264
- + '\n- ~/.natureco/skills SADECE kullanicinin kendi ekledigi skill\'lerdir; yerlesikleri ICERMEZ.';
262
+ selfInfo = '\nKurulumun: kok=' + pkgRoot
263
+ + ' | skill sayin TAM OLARAK ' + skillCount + ' (kok/skills = ~/.natureco/skills-builtin; ~/.natureco/skills YALNIZ kullanici skill\'leri)'
264
+ + ' | arac sayin TAM OLARAK ' + tools.length + ' (kok/src/tools).'
265
+ + ' Oz-bilgi/onarim haritan: kok/SELF.md "kendini incele/onar/nasil calisiyorsun" istenirse ONCE onu read_file ile oku;'
266
+ + ' onarim: read_file→edit_file→node --check, sonucu durustce raporla.';
265
267
  } catch { /* sayilamazsa satiri atla */ }
266
268
 
267
269
  const sysMsg = [