@takimcizgisi/ajan 0.2.5 → 0.3.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.
Potentially problematic release.
This version of @takimcizgisi/ajan might be problematic. Click here for more details.
- package/LICENSE +227 -674
- package/README.md +243 -305
- package/ajan-logo.txt +2 -0
- package/dist/config/configManager.js +122 -19
- package/dist/config/types.d.ts +37 -0
- package/dist/core/agent.d.ts +1 -1
- package/dist/core/agent.js +25 -4
- package/dist/discord/presence.d.ts +65 -0
- package/dist/discord/presence.js +401 -0
- package/dist/engine/llama.d.ts +5 -0
- package/dist/engine/llama.js +19 -5
- package/dist/engine/modelManager.d.ts +0 -1
- package/dist/engine/modelManager.js +0 -8
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/service.js +0 -1
- package/dist/tools/playground.d.ts +4 -0
- package/dist/tools/playground.js +125 -0
- package/dist/tools/registry.d.ts +0 -1
- package/dist/tools/registry.js +5 -4
- package/dist/tools/taskComplete.js +16 -4
- package/dist/tools/terminal.js +12 -12
- package/dist/utils/paths.d.ts +1 -0
- package/dist/utils/paths.js +29 -11
- package/package.json +78 -106
- package/scripts/build-vscode.mjs +28 -0
- package/scripts/ensure-tgz.mjs +27 -0
- package/scripts/install-vscode.mjs +236 -0
- package/scripts/release.mjs +19 -0
- package/scripts/smoke-new-tools.ts +79 -0
- package/scripts/smoke-tools.ts +201 -0
- package/src/vscode/LICENSE +674 -0
- package/src/vscode/README.md +54 -0
- package/src/vscode/media/assets/Anton.ttf +0 -0
- package/src/vscode/media/chat.js +634 -0
- package/src/vscode/media/style.css +767 -0
- package/src/vscode/out/extension.js +598 -0
- package/src/vscode/package.json +243 -0
- package/dist/cli/index.d.ts +0 -2
- package/dist/cli/index.js +0 -741
- package/dist/cli/tui.d.ts +0 -145
- package/dist/cli/tui.js +0 -1003
- package/dist/electron/main.d.ts +0 -1
- package/dist/electron/main.js +0 -364
- package/dist/electron/preload.d.ts +0 -1
- package/dist/electron/preload.js +0 -67
- package/dist/utils/clipboard.d.ts +0 -2
- package/dist/utils/clipboard.js +0 -40
- package/dist/utils/lock.d.ts +0 -12
- package/dist/utils/lock.js +0 -68
- package/dist/utils/sacGuard.d.ts +0 -4
- package/dist/utils/sacGuard.js +0 -47
- package/dist/utils/spinner.d.ts +0 -10
- package/dist/utils/spinner.js +0 -32
- package/src/gui/assets/image/logo.svg +0 -1
- package/src/gui/assets/image/opencode.svg +0 -18
- package/src/gui/css/style.css +0 -430
- package/src/gui/html/chat.html +0 -34
- package/src/gui/html/downloads.html +0 -11
- package/src/gui/html/hakkinda.html +0 -26
- package/src/gui/html/index.html +0 -82
- package/src/gui/html/projects.html +0 -12
- package/src/gui/html/settings.html +0 -4
- package/src/gui/js/app.js +0 -197
- package/src/gui/js/chat.js +0 -434
- package/src/gui/js/downloads.js +0 -172
- package/src/gui/js/hakkinda.js +0 -16
- package/src/gui/js/projects.js +0 -113
- package/src/gui/js/settings.js +0 -177
- /package/src/{gui/assets/image → vscode/media/assets}/AJAN_LOGO.svg +0 -0
- /package/src/{gui/assets/image → vscode/media/assets}/ajan.png +0 -0
package/README.md
CHANGED
|
@@ -1,366 +1,304 @@
|
|
|
1
|
-
|
|
2
|
-
<img src="./src/gui/assets/image/AJAN_LOGO.svg" alt="AJAN AI" width="420">
|
|
3
|
-
</p>
|
|
1
|
+
# AJAN AI
|
|
4
2
|
|
|
5
|
-
|
|
3
|
+
```
|
|
4
|
+
▀█▀ ▄▀█ █▄▀ █ █▀▄▀█ █▀▀ █ ▀█ █▀▀ █ █▀ █
|
|
5
|
+
░█░ █▀█ █░█ █ █░▀░█ █▄▄ █ █▄ █▄█ █ ▄█ █
|
|
6
|
+
```
|
|
6
7
|
|
|
7
|
-
**
|
|
8
|
+
**Otonom, yerel AI kodlama ajanı** — TakımÇizgisi Yazılım Geliştirme Grubu
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-

|
|
11
|
-

|
|
12
|
-

|
|
13
|
-

|
|
10
|
+
AJAN, görevleri bağımsız olarak **planlayan**, **kod yazan**, **test eden** ve **sonuçları doğrulayan** bir yapay zeka ajanıdır. Tümüyle yerel çalışır: modeliniz bilgisayarınızda koşar, dosyalarınız cihazınızdan çıkmaz. VSCode uzantısı ile gelir ve AI motoru olarak **node-llama-cpp** kullanır (CUDA / Vulkan / Metal / CPU).
|
|
14
11
|
|
|
15
|
-
|
|
12
|
+
> **Neden yerel?** Bulut ajanların aksine AJAN hiçbir koda, yapılandırmaya veya sohbete dışarı erişim vermez. 3–8 GB'lık model bilgisayarınızda indirilir ve tüm işlemler tamamen offline yürütülür.
|
|
16
13
|
|
|
17
|
-
|
|
18
|
-
<table>
|
|
19
|
-
<tr>
|
|
20
|
-
<td align="center" style="background-color:#ffe0e0; border:2px solid #d32f2f; border-radius:8px; padding:12px 18px;">
|
|
21
|
-
<b style="color:#c62828; font-size:1.1em;">⚠️ DENEYSEL PROJE</b><br>
|
|
22
|
-
<span style="color:#b71c1c;">Bu proje <b>deneyseldir</b> ve <b>tam stabil değildir.</b> Beklenmeyen hatalar veya davranış değişiklikleri olabilir.</span>
|
|
23
|
-
</td>
|
|
24
|
-
</tr>
|
|
25
|
-
</table>
|
|
26
|
-
</div>
|
|
14
|
+
---
|
|
27
15
|
|
|
28
|
-
|
|
16
|
+
## İçindekiler
|
|
17
|
+
|
|
18
|
+
- [Özellikler](#özellikler)
|
|
19
|
+
- [Nasıl çalışır?](#nasıl-çalışır)
|
|
20
|
+
- [Gereksinimler](#gereksinimler)
|
|
21
|
+
- [Kurulum](#kurulum)
|
|
22
|
+
- [İzinler](#izinler)
|
|
23
|
+
- [VSCode Kullanımı](#vscode-kullanımı)
|
|
24
|
+
- [Ayarlar](#ayarlar)
|
|
25
|
+
- [Modeller](#modeller)
|
|
26
|
+
- [Araçlar (Tools)](#araçlar-tools)
|
|
27
|
+
- [SDK Olarak Kullanım](#sdk-olarak-kullanım)
|
|
28
|
+
- [Proje Yapısı](#proje-yapısı)
|
|
29
|
+
- [Geliştirme](#geliştirme)
|
|
30
|
+
- [Kaldırma](#kaldırma)
|
|
31
|
+
- [Sorun Giderme](#sorun-giderme)
|
|
32
|
+
- [Lisans](#lisans)
|
|
29
33
|
|
|
30
34
|
---
|
|
31
35
|
|
|
32
|
-
##
|
|
36
|
+
## Özellikler
|
|
33
37
|
|
|
34
|
-
|
|
38
|
+
- **Otonom ajan döngüsü** — görevi planlar, adımları araçlarla uygular, sonucu doğrular, bitirir.
|
|
39
|
+
- **Tamamen yerel LLM** — `node-llama-cpp` üzerinde Gemma / Qwen GGUF modelleri; buluta kod/hiç veri gönderilmez.
|
|
40
|
+
- **GPU hızlandırma** — CUDA, Vulkan, Metal (macOS), WebGPU veya saf CPU; GPU katman sayısı `auto`/`max`.
|
|
41
|
+
- **VSCode entegrasyonu** — Activity Bar sekmesi (turuncu), yerleşik sohbet + `.ajan` test alanı (playground).
|
|
42
|
+
- **20'ye yakın yerleşik araç** — dosya okuma/yazma, grep/arama, kod düzenleme, diff uygulama, terminal komutu, web arama, not defteri, todo yönetimi vb.
|
|
43
|
+
- **Akıllı dosya sistemi** — yol güvenliği, dizin dışı erişim engelleme, izin verilen kök kontrolü.
|
|
44
|
+
- **128K bağlam** — Gemma 4 E2B ile uzun proje bağlamı.
|
|
45
|
+
- **Model yönetimi** — `config/models.json` kayıt defteri + uzaktan güncelleme, indirme/onarım, modele özel GGUF.
|
|
46
|
+
- **Oturum yönetimi** — sohbet geçmişini diske kaydeder, yeni sohbet başlatabilir.
|
|
47
|
+
- **Playground (`.ajan`)** — sınırsız hakları istemeden betik/todo/test senaryosu çalıştırma alanı.
|
|
48
|
+
- **Discord presence** — ayarlanabilir "şu anda AJAN çalışıyor" durumu.
|
|
49
|
+
- **Konsol / Test betikleri** — `scripts/` altında otomasyon, paketleme (VSIX + npm tgz), dağıtım ve smoke test araçları.
|
|
35
50
|
|
|
36
|
-
|
|
51
|
+
## Nasıl çalışır?
|
|
37
52
|
|
|
38
|
-
|
|
53
|
+
1. **Model yüklenir** — `node-llama-cpp` modeli indirir (HUFF/GGUF kaynağından) ve GPU/CPU ile yükler.
|
|
54
|
+
2. **Ajan döngüsü başlar** — `core/agent.ts`, kullanıcı mesajını modele verir; model araç çağrısı yaparsa araç çalıştırılır (`tools/registry.ts`).
|
|
55
|
+
3. **Sonuç modele geri döner** — araç çıktısı modele iletılır; ajan "görev tamam" diyene (veya maksimum adıma ulaşana) kadar döngü sürer.
|
|
56
|
+
4. **Doğrulama** — görev tamamlandığında `taskComplete` aracı özeti raporlar; hatalar "GERÇEKLEŞMEDİ" olarak işaretlenir ve asla başarılı diye raporlanmaz.
|
|
39
57
|
|
|
40
|
-
|
|
41
|
-
- 🖥️ **Çift Arayüz** — Terminal (TUI) ve masaüstü GUI (Electron)
|
|
42
|
-
- 💬 **Sohbet Modu** — Çoklu oturum, geçmiş kaydı ve model seçimi
|
|
43
|
-
- 🔧 **Görev / Ajan Modu** — Dosya, terminal, web ve patch araçlarıyla otonom görevler
|
|
44
|
-
- 📥 **Model Yönetimi** — Modelleri indirme, kurma ve yönetme
|
|
45
|
-
- 📁 **Proje Yönetimi** — Ajanı belirli proje klasörlerine bağlama
|
|
46
|
-
- ⚙️ **Yapılandırılabilir** — Kullanıcı dostu ayarlar ekranı
|
|
47
|
-
- 📦 **Kolay Kurulum** — Kurulumdan sonra ek yapılandırma gerektirmez
|
|
58
|
+
Tüm araç çağrıları çalışma dizini/politika ile kısıtlanır; terminal komutları ve web erişimi varsayılan olarak güvenli sınırlarda tutulur.
|
|
48
59
|
|
|
49
|
-
|
|
60
|
+
## Gereksinimler
|
|
50
61
|
|
|
51
|
-
|
|
62
|
+
| Bileşen | Gereksinim |
|
|
63
|
+
|---|---|
|
|
64
|
+
| Node.js | `>= 26.4.0` |
|
|
65
|
+
| npm | `11.x` (npm 11 `allowScripts` izin sistemini kullanır) |
|
|
66
|
+
| VSCode | `^1.95.0` (uzantı için) |
|
|
67
|
+
| RAM | Model başına ~3–8 GB (Q4: ~3–4 GB, Q8: ~5–8 GB) |
|
|
68
|
+
| GPU (ops.) | NVIDIA CUDA, Intel/AMD Vulkan, Apple Metal — yoksa CPU |
|
|
69
|
+
| Disk | Model başına ~3–8 GB + uygulama paketi |
|
|
52
70
|
|
|
53
|
-
|
|
54
|
-
- [Kurulum](#-kurulum)
|
|
55
|
-
- [Kullanım](#-kullanım)
|
|
56
|
-
- [Araçlar](#-araçlar-tools)
|
|
57
|
-
- [Nasıl Çalışır](#-nasıl-çalışır)
|
|
58
|
-
- [Proje Yapısı](#-proje-yapısı)
|
|
59
|
-
- [Katkı & Lisans](#-katkı--lisans)
|
|
71
|
+
## Kurulum
|
|
60
72
|
|
|
61
|
-
|
|
73
|
+
AJAN global bir npm paketi olarak kurulur ve kurulurken hem **VSCode uzantısını** hem de **AI motorunu** (node-llama-cpp) otomatik kurar. İki yol vardır: tek satırlık indirici veya yerel depo.
|
|
62
74
|
|
|
63
|
-
|
|
75
|
+
> ⚠️ **Sürüm uyumluluğu:** Eski sürümler (`0.2.x` ve daha eskisi) artık **desteklenmiyor**. Yalnızca en güncel sürümü kurun:
|
|
76
|
+
>
|
|
77
|
+
> ```sh
|
|
78
|
+
> npm install -g @takimcizgisi/ajan@latest
|
|
79
|
+
> ```
|
|
64
80
|
|
|
65
|
-
|
|
66
|
-
|---------|-------|
|
|
67
|
-
| 🧠 Model | Gemma 4 E2B (GGUF) |
|
|
68
|
-
| 🔌 AI Motoru | node-llama-cpp |
|
|
69
|
-
| 💾 RAM / VRAM | Yaklaşık 4 GB |
|
|
70
|
-
| 🧾 Bağlam | Yüksek token (Gemma 4 E2B) |
|
|
71
|
-
| 🖥️ Platform | Windows, Linux, macOS |
|
|
72
|
-
| 🖱️ Arayüz | CLI (TUI) + Electron GUI |
|
|
73
|
-
| 📝 Dil | TypeScript |
|
|
81
|
+
### A) Tek satır (yayınlanınca kullanılabilir)
|
|
74
82
|
|
|
75
|
-
|
|
83
|
+
> Paket henüz npm registry'sine **yayınlanmadı** — bu komutlar var olduğunda çalışacaktır.
|
|
76
84
|
|
|
77
|
-
|
|
85
|
+
- **Linux / macOS**
|
|
78
86
|
|
|
79
|
-
|
|
87
|
+
```sh
|
|
88
|
+
curl -fsSL https://raw.githubusercontent.com/takimcizgisi/ajan/main/install.sh | sh
|
|
89
|
+
```
|
|
80
90
|
|
|
81
|
-
|
|
82
|
-
>
|
|
83
|
-
> - ⚠️ Kaynak kodları repo'da **bulunmaz** — yalnızca release paketleri üzerinden yayımlanır.
|
|
84
|
-
> - 📦 Her yeni sürüm, kaynak kodu paketiyle birlikte release olarak yayımlanır.
|
|
85
|
-
> - 🔗 Kaynak kodu almak için en güncel sürümün **Release** sayfasındaki kaynak arşivini indirin.
|
|
91
|
+
- **Windows (PowerShell)**
|
|
86
92
|
|
|
87
|
-
|
|
93
|
+
```powershell
|
|
94
|
+
curl.exe -fsSL https://raw.githubusercontent.com/takimcizgisi/ajan/main/install.bat -o "$env:TEMP\ajan-install.bat"; & "$env:TEMP\ajan-install.bat"
|
|
95
|
+
```
|
|
88
96
|
|
|
89
|
-
|
|
90
|
-
- ✅ **npm** veya **yarn**
|
|
91
|
-
- ✅ (İsteğe bağlı) GPU hızlandırma için **CUDA**
|
|
97
|
+
### B) Yerel depodan (geliştirici)
|
|
92
98
|
|
|
93
|
-
|
|
99
|
+
Depo kökünde:
|
|
94
100
|
|
|
95
|
-
|
|
96
|
-
npm install -g @takimcizgisi/ajan
|
|
97
|
-
```
|
|
101
|
+
- **Windows:**
|
|
98
102
|
|
|
99
|
-
|
|
103
|
+
```bat
|
|
104
|
+
install.bat
|
|
105
|
+
```
|
|
100
106
|
|
|
101
|
-
|
|
107
|
+
- **Linux / macOS:**
|
|
102
108
|
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
npm install
|
|
107
|
-
npm run build:all
|
|
108
|
-
```
|
|
109
|
+
```sh
|
|
110
|
+
sh install.sh
|
|
111
|
+
```
|
|
109
112
|
|
|
110
|
-
|
|
113
|
+
Installers şunları yapar:
|
|
111
114
|
|
|
112
|
-
|
|
115
|
+
1. Node.js (`>=26.4`) ve npm varlığını/uygunluğunu kontrol eder.
|
|
116
|
+
2. Kaynağı seçer: yerel depodaki tarball veya npm registry paketi.
|
|
117
|
+
3. VSCode uzantısı için izin ister/sessiz onay alır (`AJAN_YES=1`).
|
|
118
|
+
4. Paketi `--allow-scripts=node-llama-cpp` ile global kurar (LLM motoru native binary'lerini indirir).
|
|
119
|
+
5. VSIX kurulumunu `scripts/install-vscode.mjs` ile doğrudan çalıştırır (postinstall'den bağımsız).
|
|
120
|
+
6. Global kurulumu, AI motorunu ve VSCode uzantısını doğrular.
|
|
113
121
|
|
|
114
|
-
|
|
122
|
+
**Belli bir sürümü registry'den kurmak** (yayınlandığında):
|
|
115
123
|
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
ajan # Global kurulumda sohbet TUI'si
|
|
124
|
+
```sh
|
|
125
|
+
sh install.sh 0.3.0 # Linux/macOS
|
|
126
|
+
install.bat 0.3.0 # Windows
|
|
120
127
|
```
|
|
121
128
|
|
|
122
|
-
|
|
129
|
+
**Yerel paketi yeniden derlemek** (dist/vsix taze olsun diye):
|
|
123
130
|
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
ajan gui # Global kurulumda GUI
|
|
131
|
+
```sh
|
|
132
|
+
AJAN_REPACK=1 sh install.sh # Linux/macOS
|
|
133
|
+
set AJAN_REPACK=1 && install.bat # Windows
|
|
128
134
|
```
|
|
129
135
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
### 📦 npm Betikleri
|
|
133
|
-
|
|
134
|
-
| Betik | Açıklama |
|
|
135
|
-
|-------|----------|
|
|
136
|
-
| `build` | CLI (TypeScript) derle |
|
|
137
|
-
| `build:gui` | GUI (TypeScript) derle |
|
|
138
|
-
| `build:all` | CLI + GUI birlikte derle |
|
|
139
|
-
| `build:electron` | Electron tip kontrolü (derleme yok) |
|
|
140
|
-
| `doctor` | Sistem / bağımlılık kontrolü |
|
|
141
|
-
| `test:tools` | Araçların smoke testleri |
|
|
142
|
-
| `release` | Sürüm paketleme |
|
|
143
|
-
|
|
144
|
-
### 🧩 CLI Alt Komutları
|
|
145
|
-
|
|
146
|
-
```bash
|
|
147
|
-
ajan # Sohbet TUI'sini başlat (varsayılan)
|
|
148
|
-
ajan gui # Masaüstü arayüzünü başlat
|
|
149
|
-
ajan model list # Modelleri listele
|
|
150
|
-
ajan model install <id> # Model indir
|
|
151
|
-
ajan model use <id> # Modeli etkin yap
|
|
152
|
-
ajan model remove <id> # Modeli sil
|
|
153
|
-
```
|
|
136
|
+
## İzinler
|
|
154
137
|
|
|
155
|
-
|
|
138
|
+
AJAN, kurulum ve çalışma için aşağıdaki izinleri kullanır:
|
|
139
|
+
|
|
140
|
+
| İzin | Nerede | Neden |
|
|
141
|
+
|---|---|---|
|
|
142
|
+
| VSCode uzantı kurulumu (sessiz onay) | `AJAN_YES=1` | `scripts/install-vscode.mjs` VSIX'i sessiz kurar |
|
|
143
|
+
| LLM motoru betikleri (native binary) | `--allow-scripts=node-llama-cpp` | model dosyaları ve CUDA/Vulkan/CPU binary'leri |
|
|
144
|
+
| Çalışma dizini + terminal | VSCode `ajan.workspaceDir` ayarı | dosya okuma/yazma ve komut çalıştırma bu dizinle sınırlanır |
|
|
156
145
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
| Komut | Açıklama |
|
|
160
|
-
|-------|----------|
|
|
161
|
-
| `/yeni` | Yeni oturum başlat |
|
|
162
|
-
| `/clear` | Konuşma geçmişini temizle |
|
|
163
|
-
| `/sessions` | Kayıtlı oturumları listele |
|
|
164
|
-
| `/resume <id>` | Kayıtlı oturumu yükle |
|
|
165
|
-
| `/export [dosya]` | Oturumu Markdown'a dışa aktar |
|
|
166
|
-
| `/kopyala` | Son çıktıyı/yanıtı panoya kopyala |
|
|
167
|
-
| `/todo` | Görevler: `ekle <metin> | sil <no> | temizle | list` |
|
|
168
|
-
| `/model` | Model: `list | install <id> | use <id> | remove <id>` |
|
|
169
|
-
| `/cd <dizin>` | Çalışma dizinini değiştir |
|
|
170
|
-
| `/doctor` | Sistem kontrolü (GPU, model, SAC) |
|
|
171
|
-
| `/stats` | Bağlam ve oturum istatistikleri |
|
|
172
|
-
| `/tools` | Ajanın araçlarını listele |
|
|
173
|
-
| `/config [anahtar değer]` | Ayarları göster/değiştir |
|
|
174
|
-
| `/help` | Komutları listele |
|
|
175
|
-
| `/exit` | Çıkış yap |
|
|
176
|
-
|
|
177
|
-
> **Yapılandırma örnekleri**
|
|
146
|
+
> **npm 12 notu:** npm, `allowScripts` dışındaki `postinstall` betiklerini yakında varsayılan olarak engelleyecek. Bu nedenle installers, VSIX kurulumunu npm'in postinstall mekanizmasına değil doğrudan çalıştırmaya dayanır. npm 11'de isterseniz kalıcı izin için:
|
|
178
147
|
>
|
|
179
|
-
> ```
|
|
180
|
-
>
|
|
181
|
-
> /config maxTokens 2048 # Maks. üretim token'ı (>=256)
|
|
182
|
-
> /config maxSteps 40 # Maks. ajan adımı (1-200)
|
|
148
|
+
> ```sh
|
|
149
|
+
> npm config set allow-scripts=node-llama-cpp --location=user
|
|
183
150
|
> ```
|
|
184
151
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
ajan
|
|
152
|
+
## VSCode Kullanımı
|
|
153
|
+
|
|
154
|
+
Kurulumdan sonra VSCode'u açın — sol Activity Bar'da turuncu **AJAN** sekmesi görünür.
|
|
155
|
+
|
|
156
|
+
| Komut (Palette / Araç çubuğu) | Açıklama |
|
|
157
|
+
|---|---|
|
|
158
|
+
| `AJAN: Sohbeti Aç` (`ajan.chat`) | Sohbet webview'ini açar |
|
|
159
|
+
| `AJAN: Yeni Sohbet` (`ajan.newChat`) | Oturum sıfırlar, yeni sohbet başlatır |
|
|
160
|
+
| `AJAN: Üretimi Durdur` (`ajan.stop`) | Devam eden üretimi durdurur |
|
|
161
|
+
| `AJAN: Model Listesini Yenile` (`ajan.refreshModels`) | Model kayıt defterini yeniden yükler / uzaktan günceller |
|
|
162
|
+
| `AJAN: Ayarları Aç` (`ajan.openSettings`) | VSCode ayarlarını açar |
|
|
163
|
+
| `AJAN: Test Alanını Aç (.ajan)` (`ajan.openPlayground`) | Sınırsız hak listesi olmadan betik/todo test alanı |
|
|
164
|
+
|
|
165
|
+
## Ayarlar
|
|
166
|
+
|
|
167
|
+
VSCode ayarlarında (`settings.json`) `ajan.*` anahtarları:
|
|
168
|
+
|
|
169
|
+
| Ayar | Varsayılan | Açıklama |
|
|
170
|
+
|---|---|---|
|
|
171
|
+
| `ajan.workspaceDir` | `""` (aktif klasör) | AJAN çalışma dizini; dosya/terminal işlemlerinin kökü |
|
|
172
|
+
| `ajan.modelId` | `gemma-4-e2b-q4-k-m` | Kullanılacak model kimliği (`config/models.json`) |
|
|
173
|
+
| `ajan.gpu` | `auto` | `auto` \| `metal` \| `cuda` \| `vulkan` \| `webgpu` \| `cuda-llama` \| `vulkan-llama` |
|
|
174
|
+
| `ajan.gpuLayers` | `auto` | GPU katman sayısı (`auto`/`max` veya sayı) |
|
|
175
|
+
| `ajan.contextSize` | `auto` | Bağlam penceresi (token) |
|
|
176
|
+
| `ajan.temperature` | `0.6` | Samimiyet / rastlantısallık (0–2) |
|
|
177
|
+
| `ajan.maxTokens` | `8192` | Maks. üretilecek token |
|
|
178
|
+
| `ajan.maxSteps` | `25` | Otonom görevde maksimum araç adımı |
|
|
179
|
+
| `ajan.toolTimeout` | `60000` | Tek araç zaman aşımı (ms) |
|
|
180
|
+
| `ajan.maxToolOutput` | `40000` | Araç çıktısının log'lanacak maks. karakteri |
|
|
181
|
+
| `ajan.beepOnComplete` | `false` | Görev bitince bip çal |
|
|
182
|
+
|
|
183
|
+
## Modeller
|
|
184
|
+
|
|
185
|
+
Kayıt defteri: `config/models.json` (uzaktan `refreshRemoteModels` ile güncellenebilir). İndirilen dosyalar `getModelsDir()` altında tutulur.
|
|
186
|
+
|
|
187
|
+
| Model | Dosya / boyut | Bağlam | Açıklama |
|
|
188
|
+
|---|---|---|---|
|
|
189
|
+
| `gemma-4-e2b-q4-k-m` | `gemma-4-E2B-it-Q4_K_M.gguf` ~3–4 GB | 128K | **Varsayılan.** 4-bit, muhakeme + çoklu mod |
|
|
190
|
+
| `gemma-4-e2b-q8` | `gemma-4-E2B-it-Q8_0.gguf` ~5–8 GB | 128K | Daha yüksek kalite, daha fazla RAM |
|
|
191
|
+
| `gemma-3-4b-it-q4-k-m` | `Gemma-3 4B Q4_K_M` | 32K | Çoklu mod destekli, orta boy alternatif |
|
|
192
|
+
| `qwen-3-4b-instruct-q4-k-m` | `Qwen3 4B Q4_K_M` | 32K | Güçlü tool-calling alternatifi |
|
|
193
|
+
|
|
194
|
+
Modeller Hugging Face GGUF kaynaklarından indirilir (`uri` alanı), indirme ilerlemesi SDK üzerinden `events` ile takip edilebilir.
|
|
195
|
+
|
|
196
|
+
## Araçlar (Tools)
|
|
197
|
+
|
|
198
|
+
Ajanın kullanabildiği araçlar `tools/registry.ts` içinde toplanır:
|
|
199
|
+
|
|
200
|
+
| Araç | İşlev |
|
|
201
|
+
|---|---|
|
|
202
|
+
| `readFile` / `writeFile` | Dosya okuma / yazma |
|
|
203
|
+
| `listDir` | Dizin içeriği |
|
|
204
|
+
| `searchFiles` | Dosya adı arama |
|
|
205
|
+
| `grep` | İçerik arama (regex) |
|
|
206
|
+
| `editFile` | Konum bazlı dosya düzenleme |
|
|
207
|
+
| `applyPatch` | Unified diff uygulama (`parseUnifiedDiff`) |
|
|
208
|
+
| `runCommand` | Terminal komutu çalıştırma (zaman aşımı + ağaç öldürme 👉 *Windows'ta timeout'lu süreçleri temiz kapatır*) |
|
|
209
|
+
| `moveFile` / `deleteFile` | Dosya taşıma / silme |
|
|
210
|
+
| `readData` / `unzipFile` | Veri bölgesi okuma / arşiv açma |
|
|
211
|
+
| `webSearch` / `fetchUrl` | Web arama / URL içeriği |
|
|
212
|
+
| `noteAdd` / `noteRead` | Kalıcı ajan not defteri |
|
|
213
|
+
| `taskComplete` | Görevi bitir ve sonucu raporla |
|
|
214
|
+
| `openPlayground` / `setTodos` / `getTodos` | Todo yönetimi ve `.ajan` test alanı |
|
|
215
|
+
|
|
216
|
+
## SDK Olarak Kullanım
|
|
217
|
+
|
|
218
|
+
Paket bir Node kütüphanesi olarak da kullanılabilir (`dist/index.js`, tip bildirimleri `dist/index.d.ts`):
|
|
219
|
+
|
|
220
|
+
```ts
|
|
221
|
+
import { AjanAgent, AjanService, LlamaEngine, loadConfig, getModelsRegistry } from "@takimcizgisi/ajan";
|
|
222
|
+
|
|
223
|
+
const config = await loadConfig(); // ajan.jsonc
|
|
224
|
+
const models = getModelsRegistry(); // config/models.json
|
|
225
|
+
const model = models.find((m) => m.id === config.modelId);
|
|
226
|
+
|
|
227
|
+
const engine = new LlamaEngine(model, { gpu: "auto" });
|
|
228
|
+
await engine.load();
|
|
229
|
+
|
|
230
|
+
const agent = new AjanAgent(engine, { maxSteps: 25 });
|
|
231
|
+
agent.on("toolCall", ({ name, params }) => console.log("araç:", name));
|
|
232
|
+
agent.on("toolResult", ({ name, ok, output }) => console.log(name, ok ? "ok" : "hata"));
|
|
233
|
+
|
|
234
|
+
const answer = await agent.run("src/index.ts dosyasını incele ve birim test ekle");
|
|
235
|
+
console.log(answer);
|
|
193
236
|
```
|
|
194
237
|
|
|
195
|
-
|
|
196
|
-
> Merhaba
|
|
197
|
-
AJAN Merhaba! Size nasıl yardımcı olabilirim?
|
|
198
|
-
```
|
|
238
|
+
Ayrıca dışa aktarılanlar: `DiscordPresence`, `downloadModel`, `listInstalledModels`, `isModelInstalled`, `resolveModelFilePath`, `refreshRemoteModels`, `parseUnifiedDiff`, `createCoreTools`, `getDataDir/getModelsDir/getConfigPath/getLogDir` vb.
|
|
199
239
|
|
|
200
|
-
|
|
240
|
+
## Proje Yapısı
|
|
201
241
|
|
|
202
|
-
```bash
|
|
203
|
-
ajan
|
|
204
|
-
> Bu projenin testlerini çalıştır ve sonuçları özetle
|
|
205
242
|
```
|
|
206
|
-
|
|
207
|
-
AJAN, terminal aracını kullanarak komutu çalıştırır, çıktıyı analiz eder ve sonucu özetler — görev tamamlanana kadar araçları otonom şekilde sırayla kullanır.
|
|
208
|
-
|
|
209
|
-
### 🧠 Model Yönetimi
|
|
210
|
-
|
|
211
|
-
```bash
|
|
212
|
-
ajan model list
|
|
213
|
-
ajan model install gemma-4-e2b-q4-k-m
|
|
214
|
-
ajan model use gemma-4-e2b-q4-k-m
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
### 📦 Bağımlılıklar
|
|
218
|
-
|
|
219
|
-
| Paket | Rol |
|
|
220
|
-
|-------|-----|
|
|
221
|
-
| **node-llama-cpp** | Yerel LLM motoru (yükleme + inferans) |
|
|
222
|
-
| **chalk** | Terminal renklendirme (TUI) |
|
|
223
|
-
| **diff** | Satır farkı / yama hesaplama |
|
|
224
|
-
| **js-yaml** | Yapılandırma / YAML ayrıştırma |
|
|
225
|
-
| **adm-zip** | Model arşivlerini açma |
|
|
226
|
-
| **electron** · **tsx** · **typescript** | GUI kabuğu ve dev araçları |
|
|
227
|
-
|
|
228
|
-
---
|
|
229
|
-
|
|
230
|
-
## 🛠️ Araçlar (Tools)
|
|
231
|
-
|
|
232
|
-
AJAN çekirdeği, otonom görevleri yerine getirmek için şu araçlara sahiptir:
|
|
233
|
-
|
|
234
|
-
| Araç | Görev |
|
|
235
|
-
|------|-------|
|
|
236
|
-
| **file** | Dosya oku / yaz / listele |
|
|
237
|
-
| **edit** | Mevcut dosyaları düzenle |
|
|
238
|
-
| **filesys** | Dosya sistemi operasyonları |
|
|
239
|
-
| **patch** | Yama (diff) uygula / üret |
|
|
240
|
-
| **terminal** | Shell komutları çalıştır |
|
|
241
|
-
| **web** | Web sayfası getir / ara |
|
|
242
|
-
| **memory** | Kısa / uzun dönem bellek yönetimi |
|
|
243
|
-
| **data** | Veri işleme / sorgulama |
|
|
244
|
-
| **taskComplete** | Görev tamamlandı işareti |
|
|
245
|
-
|
|
246
|
-
> ⚙️ Her araç çağrısı TUI/GUI'de görsel olarak izlenir: `çalıştırılıyor... → ✅ / ❌`
|
|
247
|
-
|
|
248
|
-
---
|
|
249
|
-
|
|
250
|
-
## ⚙️ Nasıl Çalışır?
|
|
251
|
-
|
|
252
|
-
| # | Aşama | Açıklama |
|
|
253
|
-
|---|-------|----------|
|
|
254
|
-
| 1 | **Model** | Gemma 4 E2B (GGUF) `node-llama-cpp` ile yüklenir; GPU varsa CUDA, yoksa CPU kullanılır |
|
|
255
|
-
| 2 | **Ajan döngüsü** | `AjanService` mesajı modele iletir; model düşünür ve ilgili aracı (`tools/`) çağırır. Sonuç tekrar modele verilir; görev bitene kadar döngü sürer (maxSteps ile sınırlı) |
|
|
256
|
-
| 3 | **Bağlam** | Uzun konuşmalarda eski turlar otomatik sıkıştırılır, bağlam penceresi aşılmaz |
|
|
257
|
-
| 4 | **Oturumlar** | Konuşmalar kaydedilir: `/sessions` listeler, `/resume <id>` geri yükler, `/export` Markdown'a döker |
|
|
258
|
-
| 5 | **Güvenlik** | Lock mekanizması aynı anda tek arayüz çalıştırır; SAC durumu `/doctor` ile izlenir |
|
|
259
|
-
|
|
260
|
-
---
|
|
261
|
-
|
|
262
|
-
## ⌨️ Kısayollar
|
|
263
|
-
|
|
264
|
-
| Tuş | İşlev |
|
|
265
|
-
|-----|-------|
|
|
266
|
-
| `Enter` | Mesaj gönder |
|
|
267
|
-
| `ESC` | Üretimi durdur |
|
|
268
|
-
| `TAB` | Komut otomatik tamamlama (TUI) |
|
|
269
|
-
| `↑` / `↓` | Geçmiş / imleç gezinme |
|
|
270
|
-
| `Page Up` / `Down` | Kaydırma |
|
|
271
|
-
| `Ctrl + C` / `/exit` | Çıkış |
|
|
272
|
-
| GUI üst menü | Yeni sohbet · Projeler · İndirmeler · Ayarlar |
|
|
273
|
-
|
|
274
|
-
---
|
|
275
|
-
|
|
276
|
-
## 📂 Proje Yapısı
|
|
277
|
-
|
|
278
|
-
```text
|
|
279
|
-
ajan/
|
|
280
|
-
├── config/ # Yapılandırma dosyaları
|
|
281
|
-
├── dist/ # Derlenmiş çıktı
|
|
282
|
-
├── scripts/ # Betikler (release, smoke-test)
|
|
243
|
+
AJAN/
|
|
283
244
|
├── src/
|
|
284
|
-
│ ├──
|
|
285
|
-
│ ├──
|
|
286
|
-
│ ├──
|
|
287
|
-
│
|
|
288
|
-
│
|
|
289
|
-
│ ├──
|
|
290
|
-
│ ├──
|
|
291
|
-
│ ├──
|
|
292
|
-
│
|
|
293
|
-
|
|
294
|
-
│ └──
|
|
245
|
+
│ ├── core/ # Ajan döngüsü (agent.ts)
|
|
246
|
+
│ ├── engine/ # LLM motoru (llama.ts) + model indirme (modelManager.ts)
|
|
247
|
+
│ ├── config/ # Ajan konfigürasyonu + model kayıt defteri (types.ts, configManager.ts)
|
|
248
|
+
│ ├── tools/ # 20'ye yakın ajan aracı + kayıt (registry.ts)
|
|
249
|
+
│ ├── utils/ # oturum, proje bağlamı, dizin/yerel yollar (paths.ts, sessions.ts, projectContext.ts)
|
|
250
|
+
│ ├── discord/ # Discord presence (presence.ts)
|
|
251
|
+
│ ├── vscode/ # VSCode uzantısı: webview panel, backend, ajan servisi
|
|
252
|
+
│ ├── service.ts # Üst düzey servis (olaylar, durum)
|
|
253
|
+
│ └── index.ts # SDK dışa aktarımları
|
|
254
|
+
├── config/
|
|
255
|
+
│ └── models.json # Model kayıt defteri (GGUF, bağlam, gpu, chatWrapper)
|
|
256
|
+
├── scripts/
|
|
257
|
+
│ ├── install-vscode.mjs # Uzantı kurulumu (onaylı, non-fatal)
|
|
258
|
+
│ ├── build-vscode.mjs # Uzantı build + VSIX paketleme
|
|
259
|
+
│ ├── ensure-tgz.mjs # tgz üretim garantisi
|
|
260
|
+
│ ├── release.mjs # sürüm / yayınlama
|
|
261
|
+
│ └── smoke-*.ts # araç smoke testleri
|
|
262
|
+
├── install.bat / install.sh # tek adım kurulum (CRLF dikkat!)
|
|
263
|
+
├── ajan-logo.txt # kurulum logoları
|
|
295
264
|
└── package.json
|
|
296
265
|
```
|
|
297
266
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
---
|
|
301
|
-
|
|
302
|
-
## 🤝 Katkı & Lisans
|
|
303
|
-
|
|
304
|
-
### 🤝 Katkıda Bulunma
|
|
305
|
-
|
|
306
|
-
Katkılar her zaman memnuniyetle karşılanır!
|
|
307
|
-
|
|
308
|
-
1. Repository'yi **fork** edin
|
|
309
|
-
2. Yeni bir **branch** oluşturun
|
|
310
|
-
3. Değişikliklerinizi yapın
|
|
311
|
-
4. Açıklayıcı **commit** mesajları kullanın
|
|
312
|
-
5. **Pull request** gönderin
|
|
313
|
-
|
|
314
|
-
### ⚖️ Lisans
|
|
267
|
+
## Geliştirme
|
|
315
268
|
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
Ancak;
|
|
326
|
-
|
|
327
|
-
- ❌ Değiştirdiğiniz/dağıttığınız sürümleri aynı GPL-3.0 lisansı altında yayımlamadan dağıtamazsınız (copyleft)
|
|
328
|
-
- ❌ Kaynak kodunu erişilebilir kılmadan yalnızca derlenmiş halini dağıtamazsınız
|
|
329
|
-
- ❌ Bu yazılım için **hiçbir garanti** verilmez
|
|
330
|
-
|
|
331
|
-
> **Not:** Bu proje, özgür yazılım felsefesiyle geliştirilmiştir. GPL-3.0 yazılım özgürlüğü sağlar; telif hakkı sahipliğini devretmez. Tam lisans metni için **[LICENSE](./LICENSE)** dosyasına bakınız.
|
|
332
|
-
|
|
333
|
-
---
|
|
334
|
-
|
|
335
|
-
## 💛 Destekleyin
|
|
336
|
-
|
|
337
|
-
Açık kaynak, topluluğun desteğiyle yaşar. Bu projeye katkıda bulunmanın birkaç yolu vardır:
|
|
338
|
-
|
|
339
|
-
### ⭐ AJAN'a Destek
|
|
340
|
-
|
|
341
|
-
- Repoya ⭐ **yıldız** verin — görünürlük her şeydir
|
|
342
|
-
- 🐛 Bug bildirin veya 💡 özellik önerisi açın (Issues)
|
|
343
|
-
- 🔧 Kod, dökümantasyon veya çeviri katkısı sağlayın
|
|
344
|
-
- 📣 Projeyi çevrenizle paylaşın
|
|
345
|
-
|
|
346
|
-
### 🌐 OpenCode'a Destek
|
|
347
|
-
|
|
348
|
-
**AJAN AI**, 🧢 Vibecoding yöntemiyle [opencode](https://opencode.ai) kullanılarak geliştirilmiştir. OpenCode — açık kaynak ajanının gelişimine de destek olabilirsiniz:
|
|
349
|
-
|
|
350
|
-
- ⭐ [GitHub'da opencode](https://github.com/anomalyco/opencode) repolarına yıldız verin
|
|
351
|
-
- 💻 Yapay zeka ajanı geliştiricisiyseniz PR'larınızla katkı sağlayın
|
|
352
|
-
- 🗣️ Topluluğa katılın (Discord) ve geri bildirim verin
|
|
269
|
+
```sh
|
|
270
|
+
npm install # bağımlılıklar (+npm 11: allowScripts zaten tanımlı)
|
|
271
|
+
npm run build:all # dist + vscode uzantısını derler (tsc + esbuild)
|
|
272
|
+
npm run test:tools # araç smoke testleri
|
|
273
|
+
npm run test:new # yeni araç testleri
|
|
274
|
+
npm run build && npm run build:vscode && npm run vscode:package # tam paketleme
|
|
275
|
+
npm run release:patch # sürümü artırır ve yayınlar
|
|
276
|
+
```
|
|
353
277
|
|
|
354
|
-
|
|
278
|
+
| Betik | Ne yapar |
|
|
279
|
+
|---|---|
|
|
280
|
+
| `build` | `tsc -p tsconfig.json` → `dist/` |
|
|
281
|
+
| `build:vscode` | `scripts/build-vscode.mjs` → uzantı `out/` |
|
|
282
|
+
| `vscode:package` | `vsce package` → `src/vscode/ajan-ai-*.vsix` |
|
|
283
|
+
| `test:tools` / `test:new` | `tsx` ile smoke testleri (kalıntı süreç/dizin bırakmaz) |
|
|
284
|
+
| `prepack` | temiz → build → vscode build → VSIX paketle |
|
|
285
|
+
| `postinstall` | `scripts/install-vscode.mjs` (VSIX kurulumu) |
|
|
355
286
|
|
|
356
|
-
|
|
287
|
+
## Kaldırma
|
|
357
288
|
|
|
358
|
-
|
|
289
|
+
```sh
|
|
290
|
+
npm uninstall -g @takimcizgisi/ajan
|
|
291
|
+
code --uninstall-extension takimcizgisi.ajan-ai
|
|
292
|
+
```
|
|
359
293
|
|
|
360
|
-
|
|
294
|
+
## Sorun Giderme
|
|
361
295
|
|
|
362
|
-
|
|
296
|
+
- **`EALLOWSCRIPTS` / postinstall engellendi** → `--allow-scripts=node-llama-cpp` kullanın veya `npm config set allow-scripts=node-llama-cpp --location=user`.
|
|
297
|
+
- **VSCode açıkken uzantı kurulamıyor** → "Please restart VS Code" hatası VSCode CLI yüzündendir: VSCode'u tamamen kapatıp tekrar deneyin veya `code --install-extension <ajan-ai-*.vsix> --force`.
|
|
298
|
+
- **`'code' komutu PATH'te yok`** → VSCode içinde `Ctrl+Shift+P` → "Shell Command: Install 'code' command in PATH".
|
|
299
|
+
- **Model indirme yavaş / kesildi** → model dosyaları yeniden denenebilir; `isModelInstalled()` ile durumu kontrol edin. Disk alanınızı (3–8 GB) kontrol edin.
|
|
300
|
+
- **`node-llama-cpp` dizini görünmüyor** → istemci, global kurulumda `node_modules/@takimcizgisi/ajan/node_modules/node-llama-cpp` altına kurulur; ilk kullanımda otomatik çözülür.
|
|
363
301
|
|
|
364
|
-
|
|
302
|
+
## Lisans
|
|
365
303
|
|
|
366
|
-
|
|
304
|
+
**GPL-3.0** — bkz. [LICENSE](src/vscode/LICENSE) (uzantı lisansı). Bu proje, TakımÇizgisi Yazılım Geliştirme Grubu tarafından geliştirilmiştir.
|
package/ajan-logo.txt
ADDED