İçeriğe geç

Kod grafı

bee graph, mevcut Git çalışma kopyasının yerel grafıyla kod sorularını yanıtlar. MongoDB veya bee init gerekmez; çıktı deponun dışında, Bee’nin yerel dizininde saklanır.

Bir Git çalışma kopyası içinde çalıştırın:

Terminal window
bee graph build --json
bee graph status --check --json
bee graph skill

skill, ajana verebileceğiniz rehberi yazdırır; hook kurmaz, dosya yazmaz. status --check: güncel graf 0, eski graf 6, olmayan graf 3. Başka bir çalışma kopyası için --root /path/to/repo kullanın.

Terminal window
bee graph outline src/Catalog/Product.cs --json

Varsayılan çıktı JSON’dır; en fazla 100 bildirim ve 12.000 UTF-16 karakter içerir. --limit 1..1000 ve --budget 2048..65536 ile ayarlayın. Güncellik denetimi bütün kaynak ağacının ve proje bağlamının hash’ini hesaplar; inspectionMs bu işin süresini gösterir. On saniyelik sonuç kabul bütçesi kesin bir I/O zaman aşımı değildir. Çıkış kodları: 0 tamamlandı, 3 harita/yol yok, 4 geçersiz kullanım, 5 eski, eksik veya desteklenmeyen sonuç.

Repo içinde var olan göreli bir dosya yolu kullanın. outline, bildirimleri kaynak sırasıyla başlangıç ve bitiş satırlarıyla listeler. Böylece ajan bütün dosya yerine gereken aralığı okuyabilir. Partial bildirimlerin ayrı konumları korunur; kaynak gövdeleri çıktıya eklenmez.

C# derleyicisinin ürettiği, kaynakta ayrı bildirimi olmayan üyeler dışlanır. Yazılmış constructor’lar, positional record property’leri ve üretilmiş kaynak dosyalarındaki bildirimler korunur. result.counts.excludedSynthesized bu ayrı sayıyı gösterir; total, shown ve omitted filtrelenmiş kaynak bildirimlerini sayar.

Komut kayıtlı grafı okur; build, refresh veya sorgu zaman damgası güncellemesi yapmaz. Aralıkları kullanmadan kaynak kimliğini, güncelliği, kapsamı ve gösterilmeyen öğeleri kontrol edin. Eksik veya eski graf için açıkça bee graph build çalıştırmak gerekebilir; bilinmeyen kaynak kimliği güncellik garantisi değildir. Çıktı sınırları için bee graph outline --help kullanın. Graph kapsamı C#, Vue/TypeScript/TSX ve Swift/Kotlin bildirimlerini içerir. Mobil bildirim grafı ile derleyici analizi ayrı yeteneklerdir.

Roslyn, C# projesi bazında bildirimleri ve interface/override dahil çağrı ilişkilerini çözer. Örnek sembolü kendi kodunuzdaki bir sembolle değiştirin; belirsiz isimler tahmin yerine aday döndürür.

Terminal window
bee graph callers 'OrderService.Save' --json
bee graph callees 'OrderService.Save' --json
bee graph explain 'OrderService.Save' --json
bee graph impact 'OrderService.Save' --json

Her yanıt kapsam ve güncellik içerir. Eksik restore çıktısı veya referanslar çözümlemeyi düşürebilir; yanıtı eksiksiz saymadan kapsamı okuyun. Bee sizin yerinize dotnet restore çalıştırmaz.

Kısa yanıtlar ve bütün çıktıyı kapsayan bütçe

Bölüm başlığı “Kısa yanıtlar ve bütün çıktıyı kapsayan bütçe”

Beta.11’den itibaren callers, callees, impact ve explain şu seçenekleri destekler:

Terminal window
bee graph callers 'OrderService.Save' --json --compact --output-budget-chars 8000
bee graph explain 'src/App.vue' --json --compact --output-budget-chars 8000

--compact, sonuç listesindeki display, project ve test gibi açıklayıcı alanları çıkarır. --output-budget-chars N, son satır sonu dahil bütün stdout JSON’unu UTF-16 kod birimiyle sınırlar; alt sınır 256’dır. İkisi de --json gerektirir ve tek başına kullanılabilir. Mevcut --budget sorgu seçeneğini, graf kapsamını veya yenileme politikasını değiştirmez.

Başarılı yanıtta graf/kaynak kimliği, güncellik ve kapsam korunur. Bütün ilişkilerin gösterildiğini varsaymadan output.truncated, output.omittedItems ve output.omittedByPath alanlarını okuyun. Zorunlu üstveri sığmazsa komut output_budget_too_small ve çıkış kodu 4 döndürür; bütçeyi artırın. Bu sınır token sayısı veya sorgu hızlanma garantisi değildir. İki seçenek de verilmezse mevcut JSON biçimi korunur.

.vue, .ts, .tsx bildirimleri ve statik import ilişkileri çıkarılır. Vue <script> ve <script setup> bildirimlerinde orijinal satır numaraları korunur. tsconfig baseUrl, paths, kalıtım, yaygın tsconfig.app.json referansları ve desteklenen sabit Vite alias’ları okunur. Dinamik yapılandırma çalıştırılmaz; desteklenmeyen import’lar çözümlenmemiş kalır.

src/App.vue içeren bir depoda:

Terminal window
bee graph explain 'src/App.vue' --json

explain, import’ları ve ters ilişkileri gösterir. İki mevcut dosya veya sembol kimliğiyle path, import kenarlarından yol bulabilir:

Terminal window
bee graph path 'src/App.vue' 'src/components/Welcome.vue' --json

Kendi deponuzda bulunan yolları kullanın. Vue/TS kapsamı calls: "none" bildirir: bildirim ve import grafıdır, semantik çağrı hedefleri değildir. Sözdizimi grafı TypeScript derleyicisinin kaynak dosya kümesini yeniden üretmez.

Beta.12 ile .swift, .kt ve .kts dosyaları graph build ve outline kapsamına girer. Önce bee graph build --json, ardından deponuzda var olan bir yolla bee graph outline Sources/App.swift --json çalıştırın. Ayrıştırıcı için Swift/Kotlin derleyicisi veya JVM gerekmez.

Desteklenen alt küme; tip, fonksiyon, özellik ve tip takma adlarını dosya/tip üyeliği ve gerçek satır aralıklarıyla çıkarır. Import ve kalıtım/uyum ilişkileri sözdizimine dayanır. Bağımlılık sembolik olabilir; dosyalar arası tip çözümleme, extension üyelerini birleştirme ve anlamsal çağrı çözümleme yoktur. Kapsam açıkça calls:none bildirir.

Her dosyanın parseStatus alanını okuyun: parsed, desteklenen alt kümenin tanı olmadan tarandığını belirtir; programın derlendiğini kanıtlamaz. partial veya error, çıkarılabilen bildirimleri korur, sınırı açıklar ve çıkış 5 döndürür. Kaynak sınırları 16 MiB, 250.000 token ve 128 iç içe kapsamdır. Desteklenmeyen sözdizimini boş ve tam bir dosya saymayın. Sonraki build, yeni extractor sürümü için eski grafı yeniler.

Kaynak ve yapılandırma değişiklikleri güncellik kontrolüne dahildir. İlişki sorgularında olmayan graf istek üzerine oluşur; eski graf süre sınırı içinde otomatik yenilenebilir. --fresh yenilemeyi zorlar, --no-refresh yeniden oluşturmadan kayıtlı grafı okur. Süre sınırı aşıldığında yanıt eski olarak işaretlenebilir.

Script modülü ekleme, silme veya yeniden adlandırma tam oluşturmayı tetikler; import kaybolmuş hedefi tutmaz. Okumalar ve kenarlar mevcut çalışma kopyası içinde kalır. Shell grafı ve semantik Vue/TS çağrıları beta.4’e dahil değildir.