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

Canonical source: https://maguyva.ai/fil/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).

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.

## Snapshot ng support

- Antas: Support para sa AST at mga simbolo
- Shell
- Mga extension: .ps1, .psd1, .psm1
- Tunay na AST parsing para sa syntax-aware search at structural context.
- Pinapagana ng mga named symbol ang semantic lookup at cross-reference. Available ang graph navigation kapag naka-enable ang pagkuha ng mga ugnayan.
- Nag-aambag ang wikang ito ng mga simbolo at ugnayan sa graph-aware search; nag-iiba ang mga sinusuportahang uri ng edge ayon sa mga native construct nito.
- Available ang AST parsing at symbol extraction.

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

## 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](/fil/docs/quickstart), tapos tingnan ang support matrix sa [compatibility page](/fil/docs/compatibility). Para sa .NET code na tinatawag ng iyong mga script, basahin ang [gabay sa C#](/fil/languages/csharp).

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