natureco-cli 5.49.1 → 5.50.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/CHANGELOG.md +7 -0
- package/SELF.md +116 -0
- package/package.json +2 -1
- package/src/tools/workflow.js +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to NatureCo CLI will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [5.50.0] - 2026-07-10 — "ÖZ-BİLGİ: ajan kendi evini tanıyor ve kendini onarabiliyor"
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **`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ı).
|
|
9
|
+
- 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).
|
|
10
|
+
- 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ı.
|
|
11
|
+
|
|
5
12
|
## [5.49.1] - 2026-07-10 — "FIX: ajan kendi skill/araç envanterini yanlış anlatıyordu"
|
|
6
13
|
|
|
7
14
|
### 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.
|
|
3
|
+
"version": "5.50.0",
|
|
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",
|
package/src/tools/workflow.js
CHANGED
|
@@ -261,7 +261,10 @@ async function workflow(params) {
|
|
|
261
261
|
selfInfo = '\n\nKendi kurulumun (kullanici sorarsa BU bilgiyi kullan, dosya sayarak tahmin etme):'
|
|
262
262
|
+ '\n- Toplam skill: ' + skillCount + ' (yerlesikler paketle gelir: ' + path.join(pkgRoot, 'skills') + ' — ~/.natureco/skills-builtin baglantisi da ayni yere acilir)'
|
|
263
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.'
|
|
264
|
+
+ '\n- ~/.natureco/skills SADECE kullanicinin kendi ekledigi skill\'lerdir; yerlesikleri ICERMEZ.'
|
|
265
|
+
+ '\n- OZ-BILGI HARITAN: ' + path.join(pkgRoot, 'SELF.md') + ' — kendi mimarin, dosya haritasi ve KENDINI ONARMA protokolun.'
|
|
266
|
+
+ ' Kullanici "kendini incele / su ozelligin bozuk / kendini onar / nasil calisiyorsun" derse ONCE bu dosyayi read_file ile oku,'
|
|
267
|
+
+ ' ilgili kaynak dosyayi bul-oku, gerekirse edit_file ile onar, node --check ile dogrula ve yaptigini durustce anlat.';
|
|
265
268
|
} catch { /* sayilamazsa satiri atla */ }
|
|
266
269
|
|
|
267
270
|
const sysMsg = [
|