Belgeler / Başvuru
Mimari
Yuli nasıl inşa edildi: Rust ile yazılmış yerel bir motor, TypeScript ve React ile bir Electron arayüzü ve akıl yürüten katman olarak dil modeli.
Yuli, ağır işi kimin yaptığını, ekrana kimin çizdiğini ve kimin akıl yürüttüğünü net biçimde ayırır.
| Katman | Teknoloji | Sorumluluk |
|---|---|---|
| Yerel motor | Rust | Dizinleme ve anlamsal analiz, Git, süreçler, hata ayıklama, veritabanı, güvenlik, kalite ve ajan orkestrasyonu. |
| Arayüz | Electron, TypeScript ve React | Yalnızca çizer: düzenleyici, paneller, diyagramlar ve önizlemeler. |
| Dil modeli | Seçtiğiniz sağlayıcı veya ajan | Akıl yürütür: planlar, karar verir ve IDE servislerini denetimli araçlarla kullanır. |
Uygulama Windows, macOS ve Linux'ta, baştan sona 64 bit olarak çalışır.
Nasıl iletişim kurarlar
Arayüz (Electron + React)
│ stdin/stdout üzerinden IPC
▼
Motor (agent-engine, Rust) ──▶ Git, build, hata ayıklayıcı, veritabanı, dizin
│
├──▶ Yapay zekâ sağlayıcısı (Platform modu)
│
└──◀ yuli-mcp ◀── stdio ── Claude Code, Kiro, Codex, Antigravity
(TCP 127.0.0.1 + token)
- Arayüz motoru bir süreç olarak başlatır ve onunla stdin/stdout üzerinden konuşur.
- Arayüz diske, Git'e veya ajanın ağına asla kendi başına dokunmaz: her şey motorun controller'larından geçer.
- Harici ajanlar, motorla token'lı bir loopback soketi üzerinden konuşan
yuli-mcpile bağlanır. Bkz. MCP sunucusu olarak Yuli.
Motorun bileşenleri
| Bileşen | Ne yapar |
|---|---|
agent-engine |
Ana ikili dosya: servisler, controller'lar ve ajan orkestrasyonu. |
yuli-mcp |
Harici ajanlar için MCP sunucusu, hook'lar ve gate. |
code-intelligence |
Kod zekâsı motoru: grafik çekirdeği, Java, otomatik tamamlama, zamanlayıcı ve framework'ler (Struts, JBoss). |
java-debug |
Java hata ayıklayıcısının JDWP istemcisi. |
Motor katmanlar halinde düzenlenmiştir: domain (saf türler ve kurallar), service (mantık) ve controller (IPC). Arayüz yalnızca controller'larla konuşur.
Kod zekâsı
| Parça | Teknoloji |
|---|---|
| Sözdizimi analizi | Tree-sitter (Java ve TypeScript) |
| Sembol grafiği | Düğümler (sınıflar, metotlar, alanlar, Spring bean'leri) ve kenarlar (çağırır, genişletir, uygular, enjekte eder) içeren petgraph |
| Kalıcılık | Proje başına .ai/codebase/ içinde SQLite |
| Geçersiz kılma | Dosyalar arası bir bağımlılık grafiği: bir dosyayı düzenlemek yalnızca ona bağlı olanları yeniden analiz eder |
| Tür çözümleme | Java derleyicisi |
| Zamanlama | Baktığınız şeyin önce çözümlenmesi için öncelik kuyrukları |
Proje hakkındaki soruları yanıtlamak için ajan, dosyaların tamamı yerine sınırlı bir alt grafik alır. Böylece ne bağlam penceresi ne de token maliyeti tükenir.
Her şey nerede durur
| Yer | İçerik |
|---|---|
Projenizdeki .ai/ |
Sözleşme, görevler, bellek, kurallar ve dizin. Bkz. .ai klasörü. |
%APPDATA%\.yulicode (Windows) |
Ayarlar, kendi prompt'larınız, skill'leriniz ve hook'larınız, sohbet geçmişi. |
%LOCALAPPDATA%\.yulicode (Windows) |
Çalışma zamanları, dizinler, önbellekler ve günlükler. Silinebilir. |
| Sistem anahtarlığı | API anahtarları, parolalar ve token'lar. |
macOS ve Linux'ta aynı ayrım, her sistemin standart klasörlerinde kullanılır.
Deterministik kurallar
Güvenlik ve kalite sınırları prompt'ta değil, motorda durur:
- Proje sandbox'ı ve korunan yollar.
- Her eylemin risk değerlendirmesi.
- Gizli bilgilerin bilgisayardan çıkmadan önce maskelenmesi.
- Her veritabanına erişim politikası.
- İnsanlar, ajanlar, Git hook'ları ve CI için aynı olan kalite gate'i.
Bir model kendini ikna ederek bir kuralı atlayamaz.
Uzantılar
Eklentiler yeniden derlemeden yüklenir, yalıtılmış olarak çalışır (bir hata IDE'yi etkilemez) ve izinlerini bir manifestoda bildirir. Komutlar ve paneller, denetimler, menü ve durum çubuğu girdileri, kendi ayarları, ajan için veriler ve kendi çevirilerini ekleyebilirler.