# Maguyva'da PowerShell: betikler ve modüller için kod grafları

Canonical source: https://maguyva.ai/tr/languages/powershell

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva, PowerShell dilini AST, sembol ve graf desteğiyle sunar; böylece yapay zeka ajanları betikler ve modüller boyunca fonksiyonları, sınıfları ve cmdlet çağrılarını izleyebilir.

## Destek anlık görüntüsü

- Katman: AST ve sembol desteği
- Shell
- Uzantılar: .ps1, .psd1, .psm1
- Sözdizimi farkında arama ve yapısal bağlam için gerçek AST ayrıştırması.
- Adlandırılmış semboller anlamsal aramayı ve çapraz referansı besler. İlişki çıkarımı etkinleştirildiğinde graf gezinmesi kullanılabilir.
- Bu dil, graf farkındalıklı aramaya semboller ve ilişkiler sağlar; desteklenen kenar türleri dilin yerel yapılarına göre değişir.
- Hem AST ayrıştırma hem de sembol çıkarma kullanılabilir.

## En uygun kullanım

- Betiklerinin birbirinin fonksiyonlarını çağırdığı büyük `.ps1` ve `.psm1` varlıklarına sahip altyapı ve operasyon ekipleri.
- Gelişmiş fonksiyonlar, sınıflar ve numaralandırmalardan oluşan PowerShell modülleri.
- Ajanların bir değişiklikten önce hangi betiklerin bir servise, dosya paylaşımına veya kayıt defteri anahtarına dokunduğunu görmesi gereken otomasyon runbook'ları.

## Ajan iş akışları

- Gelişmiş bir fonksiyonun parametrelerini değiştirmeden önce tüm çağıranlarını bulmak.
- Bir runbook'u değiştirmeden önce `Restart-Service` gibi bir cmdlet'i çağıran betikleri listelemek.
- Bir modülü yeniden düzenlemeden önce paylaşılan bir değişkene yazan fonksiyonları haritalamak.

## PowerShell yüzeysel yapay zeka araçlarını nerede şaşırtır

Sizin fonksiyonlarınız ve yerleşik cmdlet'ler aynı adlandırma tarzını kullanır. `Get-Invoice` ve `Get-ChildItem` aynı görünür; bu yüzden "yerleşik" komutları fiile göre eleyen bir araç sizin fonksiyonlarınızı da atar. Betikler ayrıca modül düzeyindeki kodu, fonksiyonları, sınıfları ve betik bloklarını tek dosyada karıştırır; bir satırın hangi fonksiyona ait olduğunu anlamak zorlaşır.

Maguyva her iki çağrı türünü de korur ve her çağrıyı içinde bulunduğu fonksiyona atar.

## Maguyva PowerShell kodundan neleri çıkarır

Maguyva `.ps1`, `.psm1` ve `.psd1` dosyalarını kapsar. Fonksiyonlar ve sınıf metotları çağrılabilir öğe, sınıflar ve numaralandırmalar ise tür olarak çıkarılır. Betik ve metot parametreleri izlenir; bir fonksiyon içindeki okuma ve yazmalar modüle değil o fonksiyona atanır.

Cmdlet çağrıları grafta kalır. PowerShell, çoğu dilin kullandığı standart kütüphane filtresini uygulamaz; bu yüzden `Write-Host`, `Get-ChildItem` ve `Restart-Service`, kendi `Get-*` ve `Set-*` fonksiyonlarınızın yanında çağrı kenarları olarak görünür. Ajan hangi betiklerin bir servisi yeniden başlattığını ya da hangi fonksiyonların konsola yazdığını sorup yapısal bir yanıt alabilir.

PowerShell için hiçbir ilişki türü uygulanamaz olarak işaretlenmemiştir; bu yüzden graf ayrıca sınıf kalıtımını ve arayüz uygulamasını, örneklemeyi, kontrol akışını ve okuma ve yazmaları kaydeder.

## Örnek ajan istemleri

- "`Invoke-Backup`'u kim çağırıyor ve hangi zamanlanmış betiklerden?" (`find_symbol`, ardından `dependency_search` incoming)
- "Hangi fonksiyonlar `Restart-Service`'i çağırıyor?" (`dependency_search`)
- "`Deploy-Site`'in baştan sona ne yaptığını izle." (`get_task_context`)

## Bilinen sınırlar

- Cmdlet çağrıları korunduğu için `Write-Host` ve `Select-Object` gibi çok yaygın olanların çok sayıda gelen kenarı olur. Odaklı bir çağrı grafı istediğinizde kendi fonksiyonunuzdan başlayın.
- `Import-Module` ve dot-sourcing sıradan komutlardır; bu yüzden `structural_search` içindeki `imports` hazır ayarı hiçbir şey seçmez. Bunları listelemek için `text_pattern_search` kullanın.

## Sonraki adımlar

[Hızlı başlangıç](/tr/docs/quickstart) ile bir repo bağlayın, ardından destek matrisi için [uyumluluk sayfasına](/tr/docs/compatibility) bakın. Betiklerinizin çağırdığı .NET kodu için [C# rehberini](/tr/languages/csharp) okuyun.

## Motor ayrıntıları

- PowerShell desteği `.ps1`, `.psm1` ve `.psd1` dosyalarını kapsar. Fonksiyonlar ve sınıf metotları çağrılabilir öğelerdir; sınıflar ve numaralandırmalar türdür.
- PowerShell için standart kütüphane filtresi kapalıdır; bu yüzden `Get-ChildItem` gibi cmdlet çağrıları kendi fonksiyonlarınızın yanında grafta kalır.
- Bir fonksiyon içindeki okuma ve yazmalar modüle değil o fonksiyona atanır.

## Yararlı MCP giriş noktaları

- `find_symbol`: Tanıma ve çağıranlara ihtiyaç duyduğunuzda gelişmiş bir fonksiyon veya sınıf için kullanın.
- `dependency_search`: Hangi betiklerin `Restart-Service` gibi bir cmdlet'i çağırdığını görmek için incoming geçişi kullanın.
- `get_task_context`: "`Deploy-Site`'ın baştan sona ne yaptığını izle" gibi istemler için kullanın.
