beast-agent 1.7.0 → 1.9.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/README.md +2 -0
- package/bin/beast-agent.js +12 -0
- package/package.json +1 -1
- package/src/agent/engine.js +19 -10
- package/src/agent/llm.js +46 -34
- package/src/agent/mcp.js +427 -0
- package/src/agent/scripts/stealthsearch.py +30 -0
- package/src/agent/searxng.js +325 -0
- package/src/agent/seeds/brainstorming/SKILL.md +90 -0
- package/src/agent/seeds/dispatching-parallel-agents/SKILL.md +120 -0
- package/src/agent/seeds/executing-plans/SKILL.md +60 -0
- package/src/agent/seeds/subagent-driven-development/SKILL.md +167 -0
- package/src/agent/seeds/systematic-debugging/SKILL.md +131 -0
- package/src/agent/seeds/test-driven-development/SKILL.md +152 -0
- package/src/agent/seeds/verification-before-completion/SKILL.md +63 -0
- package/src/agent/seeds/writing-plans/SKILL.md +162 -0
- package/src/agent/seeds/writing-skills/SKILL.md +229 -0
- package/src/agent/skills.js +41 -10
- package/src/agent/tools.js +2340 -2273
- package/src/main.js +7085 -7106
- package/src/preload.js +192 -192
- package/src/renderer/i18n.js +1220 -1226
- package/src/renderer/index.html +2 -6
- package/src/renderer/renderer.js +7461 -7480
- package/src/renderer/style.css +3388 -3430
- package/src/agent/obscura.js +0 -292
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: writing-skills
|
|
3
|
+
description: Yeni skill oluştururken, mevcut skill düzenlerken veya deploy öncesi doğrularken kullan — %APPDATA%\beast\skills altına SKILL.md yazılacak/herhangi bir edit olacaksa.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill Yazma
|
|
7
|
+
|
|
8
|
+
## Genel Bakış
|
|
9
|
+
|
|
10
|
+
**Skill yazmak, süreç dokümantasyonuna uygulanan TDD'dir.**
|
|
11
|
+
|
|
12
|
+
Test senaryoları yaz (paralel ajanla baskı senaryosu), fail izle (baseline
|
|
13
|
+
davranış), skill'i yaz (doküman), geçiş izle (ajan artık uyuyor), refactor
|
|
14
|
+
(loophole kapat).
|
|
15
|
+
|
|
16
|
+
**Çekirdek ilke:** Skill'siz ajanın fail ettiğini izlemediysen, skill'in
|
|
17
|
+
doğru şeyi öğrettiğini bilmezsin.
|
|
18
|
+
|
|
19
|
+
**ZORUNLU TEMEL:** test-driven-development skill'ini anlıyor olmalısın —
|
|
20
|
+
o RED-GREEN-REFACTOR'ü tanımlar, bu skill onu dokümana uyarlar.
|
|
21
|
+
|
|
22
|
+
## Skill Nedir?
|
|
23
|
+
|
|
24
|
+
**Skill:** Kanıtlanmış teknik, desen veya araç için referans rehber.
|
|
25
|
+
**Skill'dir:** Yeniden kullanılabilir teknik/pattern/araç/rehber.
|
|
26
|
+
**Skill değildir:** Bir problemi bir kez nasıl çözdüğüne dair hikâye.
|
|
27
|
+
|
|
28
|
+
## Ne Zaman Skill Yaratılır
|
|
29
|
+
|
|
30
|
+
**Yarat:**
|
|
31
|
+
- Teknik sana sezgisel gelmediyse
|
|
32
|
+
- Projeler arası tekrar referans edeceksen
|
|
33
|
+
- Desen genelse (proje-özel değilse)
|
|
34
|
+
|
|
35
|
+
**Yaratma:**
|
|
36
|
+
- Tek seferlik çözümler için
|
|
37
|
+
- Başka yerde iyi dokümante edilmiş standart pratikler için
|
|
38
|
+
- Proje-özel konvansiyonlar (onlar AGENTS.md'ye/proje talimatına)
|
|
39
|
+
- Regex/validasyonla zorlanabilir mekanik kısıtlar (otomatikleştir —
|
|
40
|
+
dokümanı yargı gerektiren kararlara sakla)
|
|
41
|
+
|
|
42
|
+
## Beast'te Skill Yapısı
|
|
43
|
+
|
|
44
|
+
Yer: `%APPDATA%\beast\skills\<slug>\SKILL.md` (write_file ile yaz; slug
|
|
45
|
+
küçük-harf-tire). Isim+açıklama HER SOHBETE system prompta girer — gövde
|
|
46
|
+
sadece ilgiliyken read_file ile okunur.
|
|
47
|
+
|
|
48
|
+
```markdown
|
|
49
|
+
---
|
|
50
|
+
name: skill-adi
|
|
51
|
+
description: [TETİKLEYİCİ — ne zaman okunmalı; aşağıya bak]
|
|
52
|
+
version: 1.0.0
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
# Skill Adı
|
|
56
|
+
|
|
57
|
+
## Genel Bakış
|
|
58
|
+
Bu ne? Çekirdek ilke 1-2 cümle.
|
|
59
|
+
|
|
60
|
+
## Ne Zaman
|
|
61
|
+
Belirtiler ve kullanım durumları; ne zaman KULLANILMAZ
|
|
62
|
+
|
|
63
|
+
## Çekirdek Desen
|
|
64
|
+
Önce/sonra karşılaştırması veya adımlar
|
|
65
|
+
|
|
66
|
+
## Hızlı Referans
|
|
67
|
+
Sık işlemler için tablo
|
|
68
|
+
|
|
69
|
+
## Yaygın Hatalar
|
|
70
|
+
Ne yanlış gider + fix
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Frontmatter kuralları:**
|
|
74
|
+
- `name`: harf, rakam, tire (özel karakter yok)
|
|
75
|
+
- `description`: üçüncü şahıs, SADECE ne zaman kullanılacağını anlatır
|
|
76
|
+
|
|
77
|
+
## Skill Keşif Optimizasyonu (SDO)
|
|
78
|
+
|
|
79
|
+
**description = NE ZAMAN, ne YAPDIĞI değil.**
|
|
80
|
+
|
|
81
|
+
Test şunu gösterdi: description workflow'u özetlerse ajan TÜM skill'i
|
|
82
|
+
okumadan description'daki kısayolu uygular. Gövde, ajanın atladığı
|
|
83
|
+
dokümana döner.
|
|
84
|
+
|
|
85
|
+
```yaml
|
|
86
|
+
# ❌ KÖTÜ: workflow özetler — ajan gövdeyi okumadan bunu takip eder
|
|
87
|
+
description: Plan yürütürken kullan — görev başına alt-ajan devreder, aralarında inceleme yapar
|
|
88
|
+
|
|
89
|
+
# ✅ İYİ: sadece tetikleyici koşullar
|
|
90
|
+
description: Bağımsız görevlere bölünmüş implementasyon planı yürütülürken kullan
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
- Somut tetikleyiciler, belirtiler ve durumlar yaz
|
|
94
|
+
- Sorunu tarif et (race condition, tutarsız davranış), dile özgü belirtiyi değil
|
|
95
|
+
- Arama kelimeleri kullan: hata mesajları, belirtiler ("flaky", "takılıyor"),
|
|
96
|
+
araç adları
|
|
97
|
+
- Üçüncü şahıs yaz (system prompta enjekte edilir)
|
|
98
|
+
|
|
99
|
+
## Demir Kanun (TDD ile aynı)
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
FAILING TEST OLMADAN SKILL YOK
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Bu YENİ skill'ler VE mevcut skill EDİTLERİ için geçerli. Test etmeden
|
|
106
|
+
skill yazdıysan: sil, baştan başla. "Basit ekleme" istisnası yok.
|
|
107
|
+
|
|
108
|
+
## RED-GREEN-REFACTOR (skill için)
|
|
109
|
+
|
|
110
|
+
### RED: Başarısız Test (Baseline)
|
|
111
|
+
|
|
112
|
+
Skill'siz ajanla baskı senaryosu çalıştır (run_background ile taze ajan —
|
|
113
|
+
sistem promptu skill'in yaşayacağı gerçek bağlam, kullanıcı mesajı hataya
|
|
114
|
+
çekecek görev olsun). Birebir belgele:
|
|
115
|
+
- Hangi seçimleri yaptı?
|
|
116
|
+
- Hangi bahaneleri kullandı (verbatim)?
|
|
117
|
+
- Hangi baskılar ihlale yol açtı?
|
|
118
|
+
|
|
119
|
+
### GREEN: Minimal Skill Yaz
|
|
120
|
+
|
|
121
|
+
Baseline'da belgelenen SPESİFİK bahaneleri karşılayan skill yaz. Hayali
|
|
122
|
+
durumlar için ekstra içerik EKLEME. Aynı senaryoyu skill ile tekrar koştur —
|
|
123
|
+
ajan artık uymalı.
|
|
124
|
+
|
|
125
|
+
### REFACTOR: Loophole Kapat
|
|
126
|
+
|
|
127
|
+
Ajan YENİ bahane buldu? Açık karşı-argüman ekle. Bulletproof olana kadar
|
|
128
|
+
tekrar test et.
|
|
129
|
+
|
|
130
|
+
**Mikro-test:** tam senaryo pahalıysa önce kelimelik test — tek taze örnek +
|
|
131
|
+
rehberli vs kontrolsüz (rehbersiz) karşılaştırma, 5+ tekrar, her eşleşmeyi
|
|
132
|
+
elle oku. Kontrol grupta hata YOKSA yazılacak rehber de yok — dur.
|
|
133
|
+
|
|
134
|
+
## Uyum Sağlamayı Ezberle (Disiplin Skill'leri)
|
|
135
|
+
|
|
136
|
+
Kural bilen ajan baskı altında atlarsa:
|
|
137
|
+
|
|
138
|
+
**Her loophole'u açıkça kapat** — kuralı söylemek yetmez, workaround'ları
|
|
139
|
+
tek tek yasakla:
|
|
140
|
+
|
|
141
|
+
```markdown
|
|
142
|
+
Testten önce kod yazdıysan: SİL. Baştan başla.
|
|
143
|
+
|
|
144
|
+
**İstisna yok:**
|
|
145
|
+
- "Referans olarak" tutma
|
|
146
|
+
- Testleri yazarken uyarlama
|
|
147
|
+
- Silmek silmektir
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**"Ruh vs harf" argümanını baştan kes:**
|
|
151
|
+
|
|
152
|
+
```markdown
|
|
153
|
+
**Kuralın harfini ihlal etmek, kuralın ruhunu ihlal etmektir.**
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Bahane tablosu kur** — baseline testten çıkan HER bahane:
|
|
157
|
+
|
|
158
|
+
```markdown
|
|
159
|
+
| Bahane | Gerçek |
|
|
160
|
+
|---|---|
|
|
161
|
+
| "Test etmek için çok basit" | Basit kod da kırılır. Test 30 saniye. |
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**Kırmızı bayrak listesi** — ajanın kendini kontrolü kolay olsun:
|
|
165
|
+
|
|
166
|
+
```markdown
|
|
167
|
+
## Kırmızı Bayraklar — DUR
|
|
168
|
+
- "Sadece bu sefer" bahanesi
|
|
169
|
+
- "Elle test ettim zaten"
|
|
170
|
+
|
|
171
|
+
**Hepsi: kodu sil, TDD ile baştan başla.**
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Kalıbı Hatanın Türüne Eşle
|
|
175
|
+
|
|
176
|
+
| Baseline hatası | Doğru kalıp | Yanlış kalıp |
|
|
177
|
+
|---|---|---|
|
|
178
|
+
| Baskı altında kuralı atlıyor | Yasak + bahane tablosu + kırmızı bayraklar | Yumuşak yönlendirme ("tercih et", "düşün") |
|
|
179
|
+
| Uyuyor ama çıktı yanlış biçimde | Pozitif reçete: çıktı NE — parçaları ve sırasıyla | Yasak listesi |
|
|
180
|
+
| Zaten ürettiği şeyden eleman eksitiyor | Şablon REQUIRED alanı | Şablon yanına prose hatırlatma |
|
|
181
|
+
| Davranış koşula bağlı olmalı | Gözlenebilir koşullu ("brief varsa ona atıf yap") | Koşulsuz kural + istisna cümleleri |
|
|
182
|
+
|
|
183
|
+
Yasaklar, şekillendirme sorunlarında TERS TEPER — "X yapma" pazarlığa
|
|
184
|
+
açık kalır; reçete pazarlık bırakmaz: çıktı ya söylenen kalıptadır ya değil.
|
|
185
|
+
|
|
186
|
+
**Seçtiğin kalıp için:** nüans cümlesi YOK ("X yapma, önemliyse hariç"
|
|
187
|
+
pazarlığı yeniden açar).
|
|
188
|
+
|
|
189
|
+
## Token Verimliliği (Kritik)
|
|
190
|
+
|
|
191
|
+
Skill gövdesi okunduğunda bağlama girer:
|
|
192
|
+
|
|
193
|
+
- Sık yüklenen skill'ler: <200 kelime hedef
|
|
194
|
+
- Diğerleri: <500 kelime (yine de öz ol)
|
|
195
|
+
- Detayları araç yardımına bırak; cross-referans kullan ("ZORUNLU:
|
|
196
|
+
test-driven-development skill'ini kullan" — içerik tekrarı yok)
|
|
197
|
+
- Tek mükemmel örnek, çok vasat örnekten iyi
|
|
198
|
+
- Yeniden kullanılabilir ağır referans (100+ satır) ayrı dosyaya
|
|
199
|
+
(`SKILL.md` yanına `referans.md`), inline ilkeler/prensipler kalır
|
|
200
|
+
|
|
201
|
+
## Anti-Desenler
|
|
202
|
+
|
|
203
|
+
- ❌ **Hikâye anlatımı:** "2025-10-03 oturumunda empty projectDir yüzünden..."
|
|
204
|
+
— çok spesifik, yeniden kullanılamaz
|
|
205
|
+
- ❌ **Çok-dil sulandırma:** example-js.js + example-py.py + example-go.go
|
|
206
|
+
- ❌ **Anlamsız etiketler:** helper1, step3, pattern4
|
|
207
|
+
|
|
208
|
+
## Test Türüne Göre
|
|
209
|
+
|
|
210
|
+
| Skill türü | Test yöntemi | Başarı kriteri |
|
|
211
|
+
|---|---|---|
|
|
212
|
+
| Disiplin (kural dayatır: TDD, verification) | Baskı senaryosu: zaman+sunk cost+baskı birleşik; bahaneleri yakala | Maksimum baskıda kurala uyar |
|
|
213
|
+
| Teknik (nasıl-yapılır) | Uygulama + varyasyon + eksik bilgi senaryoları | Tekniği yeni senaryoya doğru uygular |
|
|
214
|
+
| Desen (zihinsel model) | Tanıma + uygulama + karşı-örnek | Ne zaman uygulanacağını doğru bulur |
|
|
215
|
+
| Referans (API/komut dokümanı) | Erişim + uygulama + boşluk testi | Doğru bilgiyi bulur ve uygular |
|
|
216
|
+
|
|
217
|
+
## Deploy Etmeden ÖNCE
|
|
218
|
+
|
|
219
|
+
Her skill için (toplu üretimde her biri AYRI test edilmeden sonrakine geçme):
|
|
220
|
+
|
|
221
|
+
- [ ] Baseline (skill'siz) davranış birebir belgelendi
|
|
222
|
+
- [ ] description "ne zaman" tarzında, workflow özetlemiyor
|
|
223
|
+
- [ ] name kurallara uygun, dosya `%APPDATA%\beast\skills\<slug>\SKILL.md`
|
|
224
|
+
- [ ] Skill ile senaryo artık geçiyor
|
|
225
|
+
- [ ] Yeni bahaneler bulunduysa karşıları eklendi, tekrar test edildi
|
|
226
|
+
- [ ] Bahane tablosu + kırmızı bayraklar var (disiplin skill'i ise)
|
|
227
|
+
- [ ] `/skills` listesinde görünüyor, okunabilirlik kontrol edildi
|
|
228
|
+
|
|
229
|
+
Deploy edilmemiş skill = deploy edilmemiş kod. Test et, sonra konuşlandır.
|
package/src/agent/skills.js
CHANGED
|
@@ -102,7 +102,7 @@ Get-Content "$env:APPDATA\\beast\\sessions\\bg-jobs.json" | ConvertFrom-Json | %
|
|
|
102
102
|
| Yol | Ne İşe Yarar |
|
|
103
103
|
|---|---|
|
|
104
104
|
| \`config.yaml\` + \`.env\` | Model sağlayıcıları + API anahtarları (\`providers.<id>.base_url/key_env/models\`, aktif: \`model.provider/default\`) |
|
|
105
|
-
| \`settings.json\` | App ayarları: theme, workspace, modelOverride, customProviders, roleModels, deletedModels, fallout, waTts, email, waAllow, **searchChain (web arama sırası)**,
|
|
105
|
+
| \`settings.json\` | App ayarları: theme, workspace, modelOverride, customProviders, roleModels, deletedModels, fallout, waTts, email, waAllow, **searchChain (web arama sırası)**, activeBotId |
|
|
106
106
|
| \`sessions\\*.jsonl\` | Sohbet oturumları (satır JSON: t:meta kod, t:meta2 paralel-ajan işareti, t:msg mesaj, t:todo, t:notes) |
|
|
107
107
|
| \`sessions\\bg-jobs.json\` | Paralel ajan iş kayıtları: id, title, status(queued/running/done/error/aborted), error=İPTAL SEBEBİ, groupId |
|
|
108
108
|
| \`memories\\\` | SOUL.md (kişilik), MEMORY.md (uzun hafıza), USER.md (kullanıcı) |
|
|
@@ -110,9 +110,10 @@ Get-Content "$env:APPDATA\\beast\\sessions\\bg-jobs.json" | ConvertFrom-Json | %
|
|
|
110
110
|
| \`bots.json\` | Bot kayıt defteri — max 5 bot, ilk kayıt admin 'Beast' (silinemez). Bot adı HARFLE başlamak ZORUNDA |
|
|
111
111
|
| \`bots/<id>/\` | Botun izole klasörü: config.json, memory.md, yetkiler.json, logs/ |
|
|
112
112
|
| \`whitelist.json\`, \`wa-auth\\\`, \`wa-chats.json\`, \`wa.log\` | WhatsApp izin listesi, Baileys auth (SİLME), sohbet eşlemesi, log |
|
|
113
|
+
| \`mcp.json\` | MCP server tanımları — dış araçlar (Ayarlar → MCP'den düzenlenir; araçlar modele \`mcp__<server>__<tool>\` adıyla açılır, çağrı onay kapısından geçer, çöken server 3 dk sonra otomatik yeniden denenir) |
|
|
113
114
|
| \`cron.json\`, \`watchers.json\`, \`bus.json\` | Zamanlanmış görevler, web/batarya izleyicileri, olay abonelikleri |
|
|
114
115
|
| \`scripts\\\` | Python scriptleri (websearch.py, news.py) |
|
|
115
|
-
| \`
|
|
116
|
+
| \`searxng\\settings.yml\` | SearXNG yerel arama motoru ayarları (127.0.0.1:8888 — \`beast searxng\` ile kurulur/başlatılır) |
|
|
116
117
|
| \`py\\python.exe\` | Gömülü Python runtime (makinede Python olmasa bile python_run çalışır) |
|
|
117
118
|
| \`usage.json\`, \`logs\\\` | Kullanım sayaçları, çalışma logları |
|
|
118
119
|
| Masaüstü\\Beast-Backups | Şifreli yedekler (.beastbak) — /backup ile alınır |
|
|
@@ -121,14 +122,14 @@ Get-Content "$env:APPDATA\\beast\\sessions\\bg-jobs.json" | ConvertFrom-Json | %
|
|
|
121
122
|
|
|
122
123
|
| Dosya | Sorumluluk |
|
|
123
124
|
|---|---|
|
|
124
|
-
| \`main.js\` | Electron ana süreç: tüm IPC, WhatsApp/Telegram/Discord entegrasyonları, onay kapısı (/approve), /stop /restart, splash, gizli araştırma
|
|
125
|
+
| \`main.js\` | Electron ana süreç: tüm IPC, WhatsApp/Telegram/Discord entegrasyonları, onay kapısı (/approve), /stop /restart, splash, gizli araştırma tarayıcısı |
|
|
125
126
|
| \`agent/engine.js\` | OTURUM MOTORU: send/_run tur döngüsü, paralel ajanlar (run_background, run_background_many, tasks_list, task_status, task_cancel — task_cancel reason ZORUNLU), superyorizon (takılan işi zorla kapatır), iptal sebep disiplini, flushPendingReports |
|
|
126
127
|
| \`agent/tools.js\` | Araçlar + web_search SIRALI ZİNCİRİ (searchChain: 1 dahili tarayıcı(Google) → 2 Obscura(stealth→DuckDuckGo) → 3 TinyFish(anahtarsa) → 4 python çoklu-motor; sıra Ayarlar→Web Arama'dan değişir), run_command, read/write_file, python_run, http_fetch, deep_search |
|
|
127
128
|
| \`agent/llm.js\` | Sağlayıcı çağrısı + retry: ağ kopmasında 6 deneme + internet dönene kadar bekler; akış ortası kopmada kaldığı yerden devam |
|
|
128
129
|
| \`agent/agentdefs.js\` | Özel ajan tanımları: %APPDATA%\beast\agents\\*.md (frontmatter: model/tools/steps/mode + prompt gövdesi); /agent ile bağlanır, run_background(agent:) ile paralel ajana verilir |
|
|
129
|
-
| \`agent/
|
|
130
|
+
| \`agent/searxng.js\` | SearXNG entegrasyonu: gömülü Python'a kurulum + 127.0.0.1:8888 başlatıcı + JSON arama motoru |
|
|
130
131
|
| \`agent/bots.js\` | Bot CRUD, 5 haneli bot kodu, izolasyon; ad-ilk-harf doğrulaması |
|
|
131
|
-
| \`agent/skills.js\` | Builtin tohumlar (help, email, python-web-search, pdf, gold-trading) + SKILL.md taraması + taslaklar |
|
|
132
|
+
| \`agent/skills.js\` | Builtin tohumlar (help, email, python-web-search, pdf, gold-trading + superpowers metodoloji paketi: brainstorming/writing-plans/executing-plans/TDD/paralel-ajan/alt-ajan-geliştirme/sistematik-debugging/doğrulama/skill-yazma) + SKILL.md taraması + taslaklar |
|
|
132
133
|
| \`agent/memory.js\`, \`agent/kb.js\` | Kalıcı hafıza + bilgi bankası |
|
|
133
134
|
| \`cron.js\` (src kökü), \`agent/watchers.js\`, \`agent/bus.js\` | Cron, izleyici, olay merkezi — /stop bunlara DOKUNMAZ |
|
|
134
135
|
| \`agent/usage.js\` | Token/maliyet sayaçları |
|
|
@@ -139,7 +140,7 @@ Get-Content "$env:APPDATA\\beast\\sessions\\bg-jobs.json" | ConvertFrom-Json | %
|
|
|
139
140
|
/help · /version · /new · /open <kod> · /sessions · /stop · /start · /restart · /change [n] · /model <isim> · /think 0-5 · /clear · /notes · /rule <metin> · /rules · /notify on|off · /screenshot · /approve [always] · /deny · /update [now] · /usage · /backup · /status · /skills
|
|
140
141
|
|
|
141
142
|
## AYAR SEKMELERİ
|
|
142
|
-
Provider · Fallout · Skills · Paralel Ajanlar · TTS · E-posta · Entegrasyonlar · Web Arama
|
|
143
|
+
Provider · Fallout · Skills · Paralel Ajanlar · TTS · E-posta · Entegrasyonlar · Web Arama · MCP · Olaylar · Cron · Maliyet · Loglar · Panel · Limitler · Güvenlik · Güncelleme
|
|
143
144
|
|
|
144
145
|
## PARALEL AJAN HIZLI BİLGİ
|
|
145
146
|
- CEO modu: konuşan ajan iş YAPMAZ, run_background/run_background_many ile devreder; görev tanımı kendine yeterli olmalı (ajan CEO bağlamını GÖREMEZ).
|
|
@@ -235,9 +236,9 @@ web_search aracı çağrıldığında zincir OTOMATİK çalışır — elle moto
|
|
|
235
236
|
|
|
236
237
|
Gerçek Chromium olduğu için Google'a bot koruması uygulamaz. Arama aep=1 ile açılır: Google'ın KENDİ AI cevabı yanıtın 'ai' alanında HAZIR gelir — "kimdir/nedir" sorularında önce onu kullan, kaynak linkleri de 'results' alanında gelir. Sağ panelde açılır, kullanıcı da görebilir. CAPTCHA/trafik uyarısı gelirse tarayıcı 10 dk atlanır, sıradaki motor devreye girer.
|
|
237
238
|
|
|
238
|
-
## 2.
|
|
239
|
+
## 2. SearXNG (yerel metasearch — otomatik öncelik)
|
|
239
240
|
|
|
240
|
-
|
|
241
|
+
Ücretsiz, sınırsız, anahtarsız. \`beast searxng\` ile gömülü Python'a kurulur ve 127.0.0.1:8888'de arka planda çalışır. AYAKTAYSA zincirde nerede olursa olsun OTOMATİK ÖNE alınır (çok kaynaklı: Google/Bing/DDG…); kapalıysa sessizce atlanır.
|
|
241
242
|
|
|
242
243
|
## 3. TinyFish API (anahtar varsa)
|
|
243
244
|
|
|
@@ -452,16 +453,45 @@ function writeSeed(seed) {
|
|
|
452
453
|
} catch {}
|
|
453
454
|
}
|
|
454
455
|
|
|
456
|
+
/* Dosya tohumları: src/agent/seeds/<klasör>/SKILL.md — Superpowers metodoloji
|
|
457
|
+
paketi gibi kod dışı taşınan builtin skill'ler. Hepsi force: her açılışta
|
|
458
|
+
app sürümüyle güncellenir (kullanıcı düzenlemesi korunmaz, builtin'dir). */
|
|
459
|
+
function fileSeedsDir() {
|
|
460
|
+
return path.join(__dirname, 'seeds');
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
function loadFileSeeds() {
|
|
464
|
+
const out = [];
|
|
465
|
+
let entries;
|
|
466
|
+
try {
|
|
467
|
+
entries = fs.readdirSync(fileSeedsDir(), { withFileTypes: true });
|
|
468
|
+
} catch {
|
|
469
|
+
return out;
|
|
470
|
+
}
|
|
471
|
+
for (const e of entries) {
|
|
472
|
+
if (!e.isDirectory()) continue;
|
|
473
|
+
try {
|
|
474
|
+
out.push({
|
|
475
|
+
folder: e.name,
|
|
476
|
+
force: true,
|
|
477
|
+
body: fs.readFileSync(path.join(fileSeedsDir(), e.name, 'SKILL.md'), 'utf8'),
|
|
478
|
+
});
|
|
479
|
+
} catch {}
|
|
480
|
+
}
|
|
481
|
+
return out;
|
|
482
|
+
}
|
|
483
|
+
|
|
455
484
|
/* Kaldırılan eski tohumlar: kullanıcı makinesinden de silinir */
|
|
456
485
|
const RETIRED_SEEDS = ['free-web-search'];
|
|
457
486
|
|
|
458
487
|
function seedIfEmpty() {
|
|
488
|
+
const seeds = SEEDS.concat(loadFileSeeds());
|
|
459
489
|
if (!scan().length) {
|
|
460
|
-
for (const seed of
|
|
490
|
+
for (const seed of seeds) writeSeed(seed);
|
|
461
491
|
} else {
|
|
462
492
|
/* force tohumlar her açılışta güncellenir: varsayılan web arama skill'inin
|
|
463
493
|
içeriği hep güncel kalır (mevcut kurulum dahil) */
|
|
464
|
-
for (const seed of
|
|
494
|
+
for (const seed of seeds) {
|
|
465
495
|
if (seed.force) writeSeed(seed);
|
|
466
496
|
}
|
|
467
497
|
}
|
|
@@ -612,6 +642,7 @@ module.exports = {
|
|
|
612
642
|
scan,
|
|
613
643
|
seedIfEmpty,
|
|
614
644
|
parseFrontmatter,
|
|
645
|
+
loadFileSeeds,
|
|
615
646
|
addDraft,
|
|
616
647
|
listDrafts,
|
|
617
648
|
acceptDraft,
|