@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.

Files changed (71) hide show
  1. package/LICENSE +227 -674
  2. package/README.md +243 -305
  3. package/ajan-logo.txt +2 -0
  4. package/dist/config/configManager.js +122 -19
  5. package/dist/config/types.d.ts +37 -0
  6. package/dist/core/agent.d.ts +1 -1
  7. package/dist/core/agent.js +25 -4
  8. package/dist/discord/presence.d.ts +65 -0
  9. package/dist/discord/presence.js +401 -0
  10. package/dist/engine/llama.d.ts +5 -0
  11. package/dist/engine/llama.js +19 -5
  12. package/dist/engine/modelManager.d.ts +0 -1
  13. package/dist/engine/modelManager.js +0 -8
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.js +1 -0
  16. package/dist/service.js +0 -1
  17. package/dist/tools/playground.d.ts +4 -0
  18. package/dist/tools/playground.js +125 -0
  19. package/dist/tools/registry.d.ts +0 -1
  20. package/dist/tools/registry.js +5 -4
  21. package/dist/tools/taskComplete.js +16 -4
  22. package/dist/tools/terminal.js +12 -12
  23. package/dist/utils/paths.d.ts +1 -0
  24. package/dist/utils/paths.js +29 -11
  25. package/package.json +78 -106
  26. package/scripts/build-vscode.mjs +28 -0
  27. package/scripts/ensure-tgz.mjs +27 -0
  28. package/scripts/install-vscode.mjs +236 -0
  29. package/scripts/release.mjs +19 -0
  30. package/scripts/smoke-new-tools.ts +79 -0
  31. package/scripts/smoke-tools.ts +201 -0
  32. package/src/vscode/LICENSE +674 -0
  33. package/src/vscode/README.md +54 -0
  34. package/src/vscode/media/assets/Anton.ttf +0 -0
  35. package/src/vscode/media/chat.js +634 -0
  36. package/src/vscode/media/style.css +767 -0
  37. package/src/vscode/out/extension.js +598 -0
  38. package/src/vscode/package.json +243 -0
  39. package/dist/cli/index.d.ts +0 -2
  40. package/dist/cli/index.js +0 -741
  41. package/dist/cli/tui.d.ts +0 -145
  42. package/dist/cli/tui.js +0 -1003
  43. package/dist/electron/main.d.ts +0 -1
  44. package/dist/electron/main.js +0 -364
  45. package/dist/electron/preload.d.ts +0 -1
  46. package/dist/electron/preload.js +0 -67
  47. package/dist/utils/clipboard.d.ts +0 -2
  48. package/dist/utils/clipboard.js +0 -40
  49. package/dist/utils/lock.d.ts +0 -12
  50. package/dist/utils/lock.js +0 -68
  51. package/dist/utils/sacGuard.d.ts +0 -4
  52. package/dist/utils/sacGuard.js +0 -47
  53. package/dist/utils/spinner.d.ts +0 -10
  54. package/dist/utils/spinner.js +0 -32
  55. package/src/gui/assets/image/logo.svg +0 -1
  56. package/src/gui/assets/image/opencode.svg +0 -18
  57. package/src/gui/css/style.css +0 -430
  58. package/src/gui/html/chat.html +0 -34
  59. package/src/gui/html/downloads.html +0 -11
  60. package/src/gui/html/hakkinda.html +0 -26
  61. package/src/gui/html/index.html +0 -82
  62. package/src/gui/html/projects.html +0 -12
  63. package/src/gui/html/settings.html +0 -4
  64. package/src/gui/js/app.js +0 -197
  65. package/src/gui/js/chat.js +0 -434
  66. package/src/gui/js/downloads.js +0 -172
  67. package/src/gui/js/hakkinda.js +0 -16
  68. package/src/gui/js/projects.js +0 -113
  69. package/src/gui/js/settings.js +0 -177
  70. /package/src/{gui/assets/image → vscode/media/assets}/AJAN_LOGO.svg +0 -0
  71. /package/src/{gui/assets/image → vscode/media/assets}/ajan.png +0 -0
package/README.md CHANGED
@@ -1,366 +1,304 @@
1
- <p align="center">
2
- <img src="./src/gui/assets/image/AJAN_LOGO.svg" alt="AJAN AI" width="420">
3
- </p>
1
+ # AJAN AI
4
2
 
5
- <div align="center">
3
+ ```
4
+ ▀█▀ ▄▀█ █▄▀ █ █▀▄▀█ █▀▀ █ ▀█ █▀▀ █ █▀ █
5
+ ░█░ █▀█ █░█ █ █░▀░█ █▄▄ █ █▄ █▄█ █ ▄█ █
6
+ ```
6
7
 
7
- **[AJAN AI](https://github.com/takimcizgisi/ajan)** — Tamamen yerel, açık kaynak yapay zeka kodlama ajanı.
8
+ **Otonom, yerel AI kodlama ajanı** — TakımÇizgisi Yazılım Geliştirme Grubu
8
9
 
9
- ![Version](https://img.shields.io/badge/sürüm-v0.2.5-ff751f)
10
- ![License](https://img.shields.io/badge/lisans-GPL--3.0-1a1a1a)
11
- ![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white)
12
- ![Node](https://img.shields.io/badge/Node.js-18%2B-339933?logo=node.js&logoColor=white)
13
- ![Platform](https://img.shields.io/badge/Windows%20%7C%20Linux%20%7C%20macOS-555)
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
- _Gemma 4 E2B + Node-llama-cpp ile tamamen çevrimdışı çalışır — verileriniz cihazınızdan çıkmaz._
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
- <div align="center">
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
- </div>
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
- ## 🛠️ Nasıl Yapıldı?
36
+ ## Özellikler
33
37
 
34
- > Bu proje, **🧢 Vibecoding** yöntemiyle [<img src="./src/gui/assets/image/opencode.svg" alt="opencode" width="60em" style="vertical-align:middle">](https://opencode.ai) ile geliştirilmiştir.
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
- ## ✨ Özellikler
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
- - 🤖 **Yerel AI Motoru** — Node-llama-cpp ile tamamen çevrimdışı ve gizlilik odaklı
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
- ## 📖 İçindekiler
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
- - [Teknik Bilgiler](#-teknik-bilgiler)
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
- ## 🖥️ Teknik Bilgiler
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
- | Özellik | Bilgi |
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
- ## 📥 Kurulum
85
+ - **Linux / macOS**
78
86
 
79
- ### 🗂️ Yayın (Release) Politikası
87
+ ```sh
88
+ curl -fsSL https://raw.githubusercontent.com/takimcizgisi/ajan/main/install.sh | sh
89
+ ```
80
90
 
81
- > **Önemli:** Bu projenin **kaynak kodları GitHub deposunda bulunmaz.** Her **release** sürümünde kaynak kodu, ayrı bir paket (zip/tar) olarak **Release dosyalarına** yüklenir ve dağıtılır.
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
- ### Gereksinimler
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
- - ✅ **Node.js** 18 veya daha yeni
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
- ### ☁️ Global Kurulum (npm)
99
+ Depo kökünde:
94
100
 
95
- ```bash
96
- npm install -g @takimcizgisi/ajan
97
- ```
101
+ - **Windows:**
98
102
 
99
- Global kurulumdan sonra `ajan` komutunu doğrudan terminalden kullanabilirsiniz.
103
+ ```bat
104
+ install.bat
105
+ ```
100
106
 
101
- ### 🧑‍💻 Geliştirici Kurulumu
107
+ - **Linux / macOS:**
102
108
 
103
- ```bash
104
- git clone https://github.com/takimcizgisi/ajan.git
105
- cd ajan
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
- ## 🚀 Kullanım
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
- ### 💻 CLI (Terminal) Arayüzü
122
+ **Belli bir sürümü registry'den kurmak** (yayınlandığında):
115
123
 
116
- ```bash
117
- npm run dev # Geliştirme modunda CLI
118
- npm start # Derlenmiş CLI
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
- ### 🖥️ GUI (Masaüstü) Arayüzü
129
+ **Yerel paketi yeniden derlemek** (dist/vsix taze olsun diye):
123
130
 
124
- ```bash
125
- npm run dev:gui # Geliştirme modunda GUI (build + electron)
126
- npm run gui # Paketlenmiş GUI
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
- > 💡 GUI ilk açılışta model indirilmesini isteyebilir; ilerleme arayüzde gösterilir.
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
- ## ⌨️ CLI Komutları (TUI içinde)
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
- > ```text
180
- > /config temperature 0.7 # Sıcaklık (0-2)
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
- ## 📚 Kullanım Örnekleri
188
-
189
- ### 💬 Basit Sohbet
190
-
191
- ```bash
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
- ```text
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
- ### 🔧 Kodlama / Görev Ajanı
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
- │ ├── index.ts # Paket girişi
285
- │ ├── service.ts # Servis katmanı
286
- │ ├── cli/ # CLI & TUI arayüzü
287
- │ │ ├── index.ts
288
- │ │ └── tui.ts
289
- │ ├── core/ # Ajan çekirdeği (agent)
290
- │ ├── engine/ # Llama motoru + model yönetimi
291
- │ ├── electron/ # GUI kabuk (main + preload)
292
- │ ├── gui/ # Masaüstü arayüzü (HTML/CSS/JS/TS)
293
- │ ├── tools/ # Dosya, terminal, web, patch araçları
294
- │ └── utils/ # Yardımcı işlevler
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
- > **GUI** — `src/gui/` altında `html/`, `css/`, `ts/` (kaynak) ve `js/` (derlenmiş) klasörlerinden oluşur; `assets/` içinde Bootstrap, font ve görseller bulunur.
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
- Bu proje **[GNU GPL v3.0](./LICENSE)** — _GNU General Public License v3_ — ile yayımlanan **özgür ve copyleft** bir yazılımdır.
317
-
318
- GPL-3.0 kapsamında bu projeyi;
319
-
320
- - ✅ Kullanabilirsiniz
321
- - ✅ İnceleyebilirsiniz
322
- - ✅ Değiştirebilirsiniz
323
- - ✅ Dağıtabilirsiniz (ücretli/ücretsiz)
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
- > Open source, birlikte geliştirilen yazılımın gücüdür. 💪
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
- <div align="center">
289
+ ```sh
290
+ npm uninstall -g @takimcizgisi/ajan
291
+ code --uninstall-extension takimcizgisi.ajan-ai
292
+ ```
359
293
 
360
- **👨‍💻 İbrahim Anadol** · TakımÇizgisi Yazılım Geliştirme Grubu
294
+ ## Sorun Giderme
361
295
 
362
- © 2026 İbrahim Anadol · Tüm hakları saklıdır.
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
- _Bu projeyi 🤖⭐ bir yıldızla destekleyebilirsiniz!_
302
+ ## Lisans
365
303
 
366
- </div>
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
@@ -0,0 +1,2 @@
1
+ ▀█▀ ▄▀█ █▄▀ █ █▀▄▀█ █▀▀ █ ▀█ █▀▀ █ █▀ █
2
+ ░█░ █▀█ █░█ █ █░▀░█ █▄▄ █ █▄ █▄█ █ ▄█ █