# PowerShell di Maguyva: graf kode untuk skrip dan modul

Canonical source: https://maguyva.ai/id/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 mendukung PowerShell dengan AST, simbol, dan graf, sehingga agen AI dapat menelusuri fungsi, kelas, dan panggilan cmdlet di seluruh skrip dan modul.

## Snapshot dukungan

- Tier: Dukungan AST dan simbol
- Shell
- Ekstensi: .ps1, .psd1, .psm1
- Parsing AST sungguhan untuk pencarian sadar-syntax dan konteks struktural.
- Simbol bernama menggerakkan pencarian semantik dan cross-reference. Navigasi graf tersedia saat ekstraksi relasi diaktifkan.
- Bahasa ini menyumbangkan simbol dan relasi ke pencarian berbasis graf; jenis edge yang didukung bervariasi sesuai konstruk bawaan bahasa tersebut.
- Parsing AST dan ekstraksi simbol sama-sama tersedia.

## Paling cocok untuk

- Tim infrastruktur dan operasi dengan koleksi besar `.ps1` dan `.psm1` yang skripnya saling memanggil fungsi.
- Modul PowerShell yang dibangun dari fungsi lanjutan, kelas, dan enum.
- Runbook otomatisasi tempat agen perlu melihat skrip mana yang menyentuh layanan, berbagi berkas, atau kunci registri sebelum ada perubahan.

## Workflow agent

- Menemukan semua pemanggil fungsi lanjutan sebelum mengubah parameternya.
- Mendaftar skrip yang memanggil cmdlet seperti `Restart-Service` sebelum mengubah runbook.
- Memetakan fungsi mana yang menulis ke variabel bersama sebelum merefaktor modul.

## Di mana PowerShell menjebak alat AI yang dangkal

Fungsi Anda dan cmdlet bawaan memakai gaya penamaan yang sama. `Get-Invoice` dan `Get-ChildItem` tampak serupa, sehingga alat yang membuang perintah "bawaan" berdasarkan kata kerjanya juga membuang fungsi Anda. Skrip juga mencampur kode tingkat modul, fungsi, kelas, dan blok skrip dalam satu berkas, sehingga sulit mengetahui fungsi mana pemilik sebuah baris.

Maguyva mempertahankan kedua jenis panggilan dan mengatribusikan setiap panggilan ke fungsi tempatnya berada.

## Apa yang diekstrak Maguyva dari kode PowerShell

Maguyva mencakup berkas `.ps1`, `.psm1`, dan `.psd1`. Fungsi dan metode kelas diekstrak sebagai callable, sedangkan kelas dan enum sebagai tipe. Parameter skrip dan metode dilacak, dan pembacaan serta penulisan di dalam fungsi diatribusikan ke fungsi itu, bukan ke modul.

Panggilan cmdlet tetap ada di graf. PowerShell tidak menerapkan filter pustaka standar yang dipakai sebagian besar bahasa, sehingga `Write-Host`, `Get-ChildItem`, dan `Restart-Service` muncul sebagai tepi panggilan di samping fungsi `Get-*` dan `Set-*` milik Anda. Agen dapat bertanya skrip mana yang memulai ulang sebuah layanan atau fungsi mana yang menulis ke konsol dan mendapat jawaban struktural.

Tidak ada tipe relasi yang ditandai tidak berlaku untuk PowerShell, sehingga graf juga mencatat pewarisan kelas dan implementasi antarmuka, instansiasi, alur kendali, serta pembacaan dan penulisan.

## Contoh prompt agen

- "Siapa yang memanggil `Invoke-Backup`, dan dari skrip terjadwal mana saja?" (`find_symbol`, lalu `dependency_search` incoming)
- "Fungsi mana saja yang memanggil `Restart-Service`?" (`dependency_search`)
- "Telusuri apa yang dilakukan `Deploy-Site` dari awal sampai akhir." (`get_task_context`)

## Batasan yang diketahui

- Karena panggilan cmdlet dipertahankan, cmdlet yang sangat umum seperti `Write-Host` dan `Select-Object` memiliki banyak tepi masuk. Mulailah dari fungsi Anda sendiri saat menginginkan graf panggilan yang terfokus.
- `Import-Module` dan dot-sourcing adalah perintah biasa, sehingga preset `imports` di `structural_search` tidak memilih apa pun. Gunakan `text_pattern_search` untuk mendaftarnya.

## Langkah berikutnya

Hubungkan repositori dengan [panduan memulai cepat](/id/docs/quickstart), lalu periksa matriks dukungan di [halaman kompatibilitas](/id/docs/compatibility). Untuk kode .NET yang dipanggil skrip Anda, baca [panduan C#](/id/languages/csharp).

## Detail engine

- Dukungan PowerShell mencakup berkas `.ps1`, `.psm1`, dan `.psd1`. Fungsi dan metode kelas adalah callable; kelas dan enum adalah tipe.
- Filter pustaka standar dinonaktifkan untuk PowerShell, sehingga panggilan cmdlet seperti `Get-ChildItem` tetap ada di graf di samping fungsi Anda sendiri.
- Pembacaan dan penulisan di dalam fungsi diatribusikan ke fungsi itu, bukan ke modul.

## Titik masuk MCP yang berguna

- `find_symbol`: Gunakan untuk fungsi lanjutan atau kelas saat Anda membutuhkan definisi dan pemanggilnya.
- `dependency_search`: Gunakan penelusuran incoming untuk melihat skrip mana yang memanggil cmdlet seperti `Restart-Service`.
- `get_task_context`: Gunakan untuk prompt seperti "telusuri apa yang dilakukan `Deploy-Site` dari awal sampai akhir".
