lastgen-cli 1.0.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 ADDED
@@ -0,0 +1,269 @@
1
+ # QAI CLI
2
+
3
+ > **Lastgen Software CLI Project**
4
+
5
+ OpenAI uyumlu (`/v1/chat/completions`, `/v1/models`) herhangi bir API'ye bağlanan,
6
+ terminal içinde tam ekran **TUI** arayüzüyle çalışan Global / Kurumsal AI Terminal Asistanı.
7
+
8
+ Kurumsal LiteLLM proxy, GLM z.ai, OpenAI, OpenRouter, Groq, Together, LM Studio,
9
+ Ollama gibi tüm OpenAI uyumlu endpoint'lerle çalışır.
10
+
11
+ ---
12
+
13
+ ## Kurulum
14
+
15
+ ```bash
16
+ npm install
17
+ npm run build
18
+ npm link # global "qai" komutu
19
+ ```
20
+
21
+ ---
22
+
23
+ ## Kullanım
24
+
25
+ ```bash
26
+ qai
27
+ ```
28
+
29
+ İlk çalıştırmada yapılandırma yoksa otomatik olarak `/login` akışı başlar.
30
+
31
+ ---
32
+
33
+ ## Tam Ekran TUI
34
+
35
+ ```
36
+ ╭──────────────────────────────────────╮
37
+ │ lastGen pixel logo │
38
+ │ QAI CLI · Global / Kurumsal AI │
39
+ │ Lastgen Software CLI Project │
40
+ ╰──────────────────────────────────────╯
41
+
42
+ ◢ QAI Merhaba! Bugün ne keşfediyoruz?
43
+
44
+ ╭─────────────────────────────────╮
45
+ │ kullanıcı mesajı (beyaz balon) │
46
+ ╰─────────────────────────────────╯
47
+
48
+ ◢ QAI · glm-5.2
49
+ Yanıt token token akar (daktilo efekti)...
50
+ ↳ 312 tok · 4.1s
51
+
52
+ ┄──────────────────────────────────
53
+ [1] kuyrukta bekleyen mesaj ← Ctrl+O ile genişlet/daralt
54
+ ┄──────────────────────────────────
55
+ ╭──────────────────────────────────────╮
56
+ │ › /trello-write-plan▌ │
57
+ ╰─────────────────── total token: 1.2k╯
58
+ ```
59
+
60
+ **TUI özellikleri:**
61
+
62
+ | Özellik | Açıklama |
63
+ |---------|----------|
64
+ | Tam ekran alternate buffer | Resize'da bozulma yok, synchronized output |
65
+ | Daktilo efekti | QAI yanıtları token token yazılır (Markdown render) |
66
+ | Düşünme animasyonu | Türkçe cümleler glitch→decode efektiyle geçiş yapar |
67
+ | Scroll | `↑`/`↓` satır satır, `PgUp`/`PgDn` yarım ekran |
68
+ | Kuyruk (queue) | QAI meşgulken mesajlar sıraya girer, `↑`/`↓` ile düzenle |
69
+ | Ctrl+O | Tool call stack'ini genişlet/daralt |
70
+ | Paste desteği | Bracketed paste — çok satırlı metin `⌗1 47 satır` olarak gösterilir |
71
+ | Komut renklendirme | `/login` mavi, bilinmeyen komut kırmızı |
72
+ | Syntax highlighting | Kod blokları VS Code Dark+ temasına yakın renklendirilir |
73
+ | Rich formatting | Dosya yolu (mavi), class (cyan), fonksiyon (yeşil), satır no (sarı) |
74
+ | Token göstergesi | Her yanıtta `↳ tok · s` (yeşil), sağ altta `total token` |
75
+ | Karşılama / veda | Açılışta logo decode animasyonu + Türkçe karşılama, CTRL+C'de veda mesajı |
76
+ | Lastgen logosu | Banner'da piksel bazlı LED dot-matrix, açılışta glitch→decode efekti |
77
+ | Ekstra bağlam | write-plan'da kart/issue seçildikten sonra "Seçilen Task" kutusu + opsiyonel ekstra bilgi girişi |
78
+
79
+ ### Klavye kısayolları
80
+
81
+ | Tuş | İşlev |
82
+ |-----|-------|
83
+ | `Enter` | Mesaj gönder |
84
+ | `↑` / `↓` | Scroll (normal) · Kuyruk gezme (QAI meşgulken) |
85
+ | `PgUp` / `PgDn` | Yarım ekran scroll |
86
+ | `Ctrl+O` | Tool call stack genişlet/daralt (write-plan sırasında) |
87
+ | `Ctrl+C` | Veda animasyonu + kayıt + çıkış |
88
+
89
+ ---
90
+
91
+ ## Oturum Yönetimi
92
+
93
+ ```
94
+ ~/.qai/
95
+ ├── config.json # API yapılandırması
96
+ ├── current-session # Aktif oturum ID'si
97
+ └── sessions/
98
+ ├── 20260618-153000-ab12.json
99
+ └── ...
100
+ ```
101
+
102
+ - **Yeni oturum**: `qai` her açıldığında yeni oturum başlar
103
+ - **Geçiş**: `/resume` ile ok tuşlu seçici açılır
104
+ - **Silme**: Session picker'da `D` tuşu
105
+
106
+ ---
107
+
108
+ ## Komutlar
109
+
110
+ | Komut | Açıklama |
111
+ |-------|----------|
112
+ | `/login` | Endpoint türü seç (Kurumsal / Global), key gir, doğrula, kaydet |
113
+ | `/models` | Modelleri listele ve aktif modeli seç |
114
+ | `/trello` | Trello kartından geliştirme planı üret ve dosyaya kaydet |
115
+ | `/trello-login` | Trello App Key ve Token ayarla |
116
+ | `/trello-write-plan` | Trello kartını AI ile analiz et, JSON uygulama planı üret |
117
+ | `/trello-execute-plan` | Kaydedilen planı seçip Coding Agent ile uygula |
118
+ | `/jira <KEY>` | Jira task'ından geliştirme planı üret |
119
+ | `/jira-login` | Jira base URL ve PAT ayarla |
120
+ | `/export` | Aktif oturumu Markdown dosyasına aktar |
121
+ | `/prompt` | Sistem prompt editörü |
122
+ | `/config` | Mevcut bağlantı ayarlarını göster |
123
+ | `/clear` | Ekranı temizle |
124
+ | `/reset` | Sohbet geçmişini sıfırla |
125
+ | `/resume` | Ok tuşlu seçiciyle kayıtlı oturumlar arasında geçiş yap |
126
+ | `/session-delete` | Eski oturumları sil |
127
+ | `/help` | Yardımı göster |
128
+ | `/exit` | Çıkış (Ctrl+C de çalışır) |
129
+
130
+ ---
131
+
132
+ ## Coding Agent Pipeline
133
+
134
+ ### `/trello-write-plan`
135
+
136
+ Trello kartını gerçek kaynak kodla analiz ederek atomik uygulama planı üretir.
137
+
138
+ ```
139
+ 1. Pano seçici (ok tuşlu) → Kart seçici (ok tuşlu)
140
+ 2. Seçilen Task kutusu + ekstra bilgi promptu (opsiyonel)
141
+ 3. AI araştırma: list_files + read_file ile proje incelenir
142
+ ⚙ 34 araç çağrısı Ctrl+O genişlet
143
+ 4. Araştırma özeti → bağlam sıkıştırma
144
+ 5. JSON plan üretimi (temperature: 0.3, token limiti yok)
145
+ 6. .trello_plans/{id}.json olarak kaydedilir
146
+ ```
147
+
148
+ Plan formatı (JSON):
149
+ ```json
150
+ {
151
+ "task_source": "Trello",
152
+ "task_id": "AbCdEfGh",
153
+ "title": "Görev başlığı",
154
+ "summary": "Teknik özet",
155
+ "affected_files": ["src/services/UserService.java"],
156
+ "steps": [
157
+ {
158
+ "step_number": 1,
159
+ "description": "UUID import ekle",
160
+ "target_file": "src/utils/UsernameGenerator.java",
161
+ "instructions": "generateUsername() metodunu güncelle..."
162
+ }
163
+ ],
164
+ "verification_command": "mvn test"
165
+ }
166
+ ```
167
+
168
+ ### `/trello-execute-plan`
169
+
170
+ Kaydedilen planı seçip Coding Agent ile uygular.
171
+
172
+ ```
173
+ 1. Plan seçici (ok tuşlu)
174
+ 2. Onay
175
+ 3. Agent döngüsü:
176
+ - Her adım: read_file → apply_patch → run_command (test)
177
+ - Test başarısızsa: hata analiz → yeni patch → tekrar test
178
+ - Döngü sonu: verification_command otomatik çalıştırılır
179
+ 4. Tüm çıktılar TUI transcript'e yazılır
180
+ ```
181
+
182
+ **Güvenlik:**
183
+ - Yalnızca proje dizini içindeki dosyalara erişim
184
+ - İzinli komutlar: `pytest`, `npm test`, `mvn test`, `go test`, `cd && ...` vb.
185
+ - Her `apply_patch` `.{timestamp}.bak` yedek oluşturur
186
+
187
+ ---
188
+
189
+ ## Endpoint Türleri
190
+
191
+ | Tür | Açıklama |
192
+ |-----|----------|
193
+ | **Kurumsal** | Endpoint elle girilir, `verifySsl`/`caBundlePath` desteklenir |
194
+ | **Global (GLM z.ai)** | `https://api.z.ai/api/coding/paas/v4` sabit, sadece API key istenir |
195
+
196
+ ---
197
+
198
+ ## Yapılandırma
199
+
200
+ `~/.qai/config.json`:
201
+
202
+ ```json
203
+ {
204
+ "provider": "external",
205
+ "baseUrl": "https://api.z.ai/api/coding/paas/v4",
206
+ "apiKey": "<Z_AI_API_KEY>",
207
+ "model": "glm-5.2",
208
+ "trelloKey": "<TRELLO_APP_KEY>",
209
+ "trelloToken": "<TRELLO_USER_TOKEN>",
210
+ "trelloBoardId": "<BOARD_ID>",
211
+ "trelloBoardName": "My Board",
212
+ "jiraBaseUrl": "https://jira.sirket.com",
213
+ "jiraToken": "<JIRA_PAT>"
214
+ }
215
+ ```
216
+
217
+ ---
218
+
219
+ ## Ortam Değişkenleri
220
+
221
+ | Değişken | Açıklama |
222
+ |----------|----------|
223
+ | `QAI_CONFIG_DIR` | Yapılandırma dizini (varsayılan: `~/.qai`) |
224
+ | `QAI_NO_TUI` | `1` → TUI devre dışı, klasik readline modu |
225
+
226
+ ---
227
+
228
+ ## Geliştirme
229
+
230
+ ```bash
231
+ npm test # Vitest birim testleri (96 test)
232
+ npm run typecheck # TypeScript tip kontrolü
233
+ npm run build # dist/ çıktısı (tsup, ESM)
234
+ ```
235
+
236
+ Proje yapısı:
237
+
238
+ ```
239
+ src/
240
+ ├── index.ts # Giriş noktası
241
+ ├── repl.ts # Ana döngü ve başlangıç
242
+ ├── tui.ts # Tam ekran TUI (~1250 satır) — logo decode animasyonu
243
+ ├── session-picker.ts # Ok tuşlu oturum seçici
244
+ ├── sessions.ts # Oturum kayıt/yükleme sistemi
245
+ ├── history.ts # Geriye dönük uyumluluk
246
+ ├── commands.ts # Slash komutları + agent fonksiyonları + ekstra bağlam
247
+ ├── agent-tools.ts # list_files, read_file, apply_patch, run_command
248
+ ├── agent-loop.ts # Execute agent döngüsü, self-correction
249
+ ├── agent-plan.ts # Write-plan: araştırma, özet, JSON plan
250
+ ├── rich-format.ts # Terminal rich formatting
251
+ ├── api.ts # OpenAI uyumlu streaming + retry
252
+ ├── markdown.ts # Markdown→ANSI renderer + syntax highlighting
253
+ ├── ui.ts # Terminal yardımcıları, renkler, animasyon, banner, logo decode, promptExtraContext
254
+ ├── config.ts # Yapılandırma okuma/yazma
255
+ ├── providers.ts # Endpoint preset sistemi
256
+ ├── jira.ts # Jira REST API istemcisi
257
+ ├── trello.ts # Trello API + kart/pano seçici
258
+ ├── context.ts # Proje dosyası tarayıcı
259
+ └── plan.ts # Jira geliştirme planı üretici
260
+
261
+ scripts/
262
+ └── png-to-blocks.mjs # PNG → terminal half-block karakter dönüştürücü
263
+ ```
264
+
265
+ ---
266
+
267
+ ## Lisans
268
+
269
+ MIT
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ LASTGEN_CONTEXT_FILE,
4
+ generateLastgenContext,
5
+ hasLastgenContext,
6
+ lastgenContextPath,
7
+ readLastgenContext
8
+ } from "./chunk-UV67GGHZ.js";
9
+ export {
10
+ LASTGEN_CONTEXT_FILE,
11
+ generateLastgenContext,
12
+ hasLastgenContext,
13
+ lastgenContextPath,
14
+ readLastgenContext
15
+ };