Langkau ke kandungan
cd /languages
  • Automasi Windows
  • Shell
  • Sokongan AST dan simbol

PowerShell dalam Maguyva: graf kod untuk skrip dan modul

Maguyva menyokong PowerShell dengan AST, simbol dan graf, supaya ejen AI boleh menjejak fungsi, kelas dan panggilan cmdlet merentas skrip dan modul.

Di mana PowerShell memerangkap alat AI yang cetek

Fungsi anda dan cmdlet terbina dalam menggunakan gaya penamaan yang sama. Get-Invoice dan Get-ChildItem kelihatan serupa, jadi alat yang membuang arahan “terbina dalam” berdasarkan kata kerja turut membuang fungsi anda. Skrip juga mencampurkan kod peringkat modul, fungsi, kelas dan blok skrip dalam satu fail, jadi sukar untuk mengetahui fungsi mana yang memiliki sesuatu baris.

Maguyva mengekalkan kedua-dua jenis panggilan dan mengaitkan setiap panggilan dengan fungsi tempat ia berada.

Apa yang diekstrak oleh Maguyva daripada kod PowerShell

Maguyva merangkumi fail .ps1, .psm1 dan .psd1. Fungsi dan kaedah kelas diekstrak sebagai callable, manakala kelas dan enum sebagai jenis. Parameter skrip dan kaedah dijejak, dan bacaan serta tulisan di dalam fungsi dikaitkan dengan fungsi itu, bukan dengan modul.

Panggilan cmdlet kekal dalam graf. PowerShell tidak menggunakan penapis pustaka standard yang digunakan oleh kebanyakan bahasa, jadi Write-Host, Get-ChildItem dan Restart-Service muncul sebagai tepi panggilan bersebelahan fungsi Get-* dan Set-* anda sendiri. Ejen boleh bertanya skrip mana yang memulakan semula sesuatu perkhidmatan atau fungsi mana yang menulis ke konsol dan mendapat jawapan berstruktur.

Tiada jenis hubungan yang ditanda sebagai tidak berkenaan untuk PowerShell, jadi graf juga merekodkan pewarisan kelas dan pelaksanaan antara muka, instansiasi, aliran kawalan, serta bacaan dan tulisan.

Contoh gesaan ejen

  • “Siapa yang memanggil Invoke-Backup, dan daripada skrip berjadual mana?” (find_symbol, kemudian dependency_search arah masuk)
  • “Fungsi mana yang memanggil Restart-Service?” (dependency_search)
  • “Jejaki apa yang dilakukan oleh Deploy-Site dari mula hingga akhir.” (get_task_context)

Had yang diketahui

  • Oleh sebab panggilan cmdlet dikekalkan, cmdlet yang sangat biasa seperti Write-Host dan Select-Object mempunyai banyak tepi masuk. Mulakan daripada fungsi anda sendiri apabila anda mahukan graf panggilan yang terfokus.
  • Import-Module dan dot-sourcing ialah arahan biasa, jadi pratetap imports dalam structural_search tidak memilih apa-apa. Gunakan text_pattern_search untuk menyenaraikannya.

Langkah seterusnya

Sambungkan repositori dengan panduan permulaan pantas, kemudian semak matriks sokongan di halaman keserasian. Untuk kod .NET yang dipanggil oleh skrip anda, baca panduan C#.

Paling sesuai

  • > Pasukan infrastruktur dan operasi dengan koleksi besar `.ps1` dan `.psm1` yang skripnya saling memanggil fungsi.
  • > Modul PowerShell yang dibina daripada fungsi lanjutan, kelas dan enum.
  • > Runbook automasi di mana ejen perlu melihat skrip mana yang menyentuh perkhidmatan, perkongsian fail atau kunci registri sebelum sesuatu perubahan.

Aliran kerja ejen

  • > Mencari semua pemanggil fungsi lanjutan sebelum mengubah parameternya.
  • > Menyenaraikan skrip yang memanggil cmdlet seperti `Restart-Service` sebelum mengubah runbook.
  • > Memetakan fungsi mana yang menulis kepada pemboleh ubah dikongsi sebelum memfaktorkan semula modul.

Butiran enjin

  • > Sokongan PowerShell merangkumi fail `.ps1`, `.psm1` dan `.psd1`. Fungsi dan kaedah kelas ialah callable; kelas dan enum ialah jenis.
  • > Penapis pustaka standard dimatikan untuk PowerShell, jadi panggilan cmdlet seperti `Get-ChildItem` kekal dalam graf bersebelahan fungsi anda sendiri.
  • > Bacaan dan tulisan di dalam fungsi dikaitkan dengan fungsi itu, bukan dengan modul.

Titik masuk MCP yang berguna

  • find_symbol

    Gunakan untuk fungsi lanjutan atau kelas apabila anda memerlukan takrifan dan pemanggilnya.

  • dependency_search

    Gunakan penelusuran arah masuk untuk melihat skrip mana yang memanggil cmdlet seperti `Restart-Service`.

  • get_task_context

    Gunakan untuk gesaan seperti "jejaki apa yang dilakukan oleh `Deploy-Site` dari mula hingga akhir".