Lumaktaw papunta sa content
cd /languages
  • Automation sa Windows
  • Shell
  • Support para sa AST at mga simbolo

PowerShell sa Maguyva: mga code graph para sa script at module

Sinusuportahan ng Maguyva ang PowerShell gamit ang AST, mga symbol at graph, para ma-trace ng mga AI agent ang mga function, class at cmdlet call sa iba't ibang script at module.

Saan nalilito ang mababaw na AI tool sa PowerShell

Parehong istilo ng pagpapangalan ang gamit ng sarili mong mga function at ng mga built-in cmdlet. Magkamukha ang Get-Invoice at Get-ChildItem, kaya ang tool na nagtatapon ng “built-in” na command batay sa verb ay nagtatapon din ng mga function mo. Pinaghahalo rin ng mga script ang module-level code, function, class at script block sa iisang file, kaya mahirap malaman kung aling function ang may-ari ng isang linya.

Pinapanatili ng Maguyva ang dalawang uri ng call at iniuugnay ang bawat call sa function na naglalaman nito.

Ano ang kinukuha ng Maguyva mula sa PowerShell code

Sakop ng Maguyva ang mga .ps1, .psm1 at .psd1 file. Kinukuha bilang callable ang mga function at class method, at bilang type ang mga class at enum. Sinusundan ang mga parameter ng script at method, at iniuugnay sa function ang mga read at write sa loob nito, hindi sa module.

Nananatili sa graph ang mga cmdlet call. Hindi ginagamit ng PowerShell ang standard-library filter na ginagamit ng karamihan ng wika, kaya lumalabas ang Write-Host, Get-ChildItem at Restart-Service bilang call edge katabi ng sarili mong Get-* at Set-* function. Maitatanong ng agent kung aling mga script ang nagre-restart ng isang service o aling mga function ang sumusulat sa console, at makakakuha ng sagot na may istruktura.

Walang relationship type na minarkahang hindi naaangkop para sa PowerShell, kaya itinatala rin ng graph ang class inheritance at interface implementation, instantiation, control flow, at mga read at write.

Mga halimbawang agent prompt

  • “Sino ang tumatawag sa Invoke-Backup, at mula sa aling mga naka-schedule na script?” (find_symbol, tapos dependency_search na incoming)
  • “Aling mga function ang tumatawag sa Restart-Service?” (dependency_search)
  • “I-trace kung ano ang ginagawa ng Deploy-Site mula simula hanggang dulo.” (get_task_context)

Mga kilalang limitasyon

  • Dahil pinapanatili ang mga cmdlet call, napakaraming incoming edge ng mga karaniwang cmdlet tulad ng Write-Host at Select-Object. Magsimula sa sarili mong function kapag gusto mo ng nakatutok na call graph.
  • Karaniwang command lang ang Import-Module at dot-sourcing, kaya walang napipili ang imports preset sa structural_search. Gamitin ang text_pattern_search para ilista ang mga iyon.

Mga susunod na hakbang

Mag-connect ng repository gamit ang quickstart, tapos tingnan ang support matrix sa compatibility page. Para sa .NET code na tinatawag ng iyong mga script, basahin ang gabay sa C#.

Pinakabagay

  • > Mga infrastructure at operations team na may malalaking koleksyon ng `.ps1` at `.psm1` na nagtatawagan ang mga script.
  • > Mga PowerShell module na binuo mula sa advanced function, class at enum.
  • > Mga automation runbook kung saan kailangang makita ng agent kung aling mga script ang humahawak sa isang service, file share o registry key bago ang anumang pagbabago.

Mga workflow ng agent

  • > Hanapin ang lahat ng tumatawag sa isang advanced function bago baguhin ang mga parameter nito.
  • > Ilista ang mga script na tumatawag sa isang cmdlet tulad ng `Restart-Service` bago baguhin ang isang runbook.
  • > I-map kung aling mga function ang sumusulat sa isang shared variable bago i-refactor ang isang module.

Mga detalye ng engine

  • > Sakop ng suporta sa PowerShell ang mga `.ps1`, `.psm1` at `.psd1` file. Mga callable ang function at class method; mga type ang class at enum.
  • > Naka-off ang standard-library filter para sa PowerShell, kaya nananatili sa graph ang mga cmdlet call tulad ng `Get-ChildItem` katabi ng sarili mong mga function.
  • > Iniuugnay sa function ang mga read at write sa loob nito, hindi sa module.

Mga kapaki-pakinabang na MCP entry point

  • find_symbol

    Gamitin para sa isang advanced function o class kapag kailangan mo ang definition at mga caller.

  • dependency_search

    Gumamit ng incoming traversal para makita kung aling mga script ang tumatawag sa isang cmdlet tulad ng `Restart-Service`.

  • get_task_context

    Gamitin para sa mga prompt tulad ng "i-trace kung ano ang ginagawa ng `Deploy-Site` mula simula hanggang dulo".