Lompat ke konten
cd /languages
  • Otomatisasi Windows
  • Shell
  • Dukungan AST dan simbol

PowerShell di Maguyva: graf kode untuk skrip dan modul

Maguyva mendukung PowerShell dengan AST, simbol, dan graf, sehingga agen AI dapat menelusuri fungsi, kelas, dan panggilan cmdlet di seluruh skrip dan 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, lalu periksa matriks dukungan di halaman kompatibilitas. Untuk kode .NET yang dipanggil skrip Anda, baca panduan C#.

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.

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".