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-mcp ile 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.