Hopp til innhold
cd /languages
  • Windows-automatisering
  • Shell
  • AST- og symbolstøtte

PowerShell i Maguyva: kodegrafer for skript og moduler

Maguyva støtter PowerShell med AST, symboler og graf, slik at AI-agenter kan følge funksjoner, klasser og cmdlet-kall i skript og moduler.

Der PowerShell får overfladiske AI-verktøy til å snuble

Funksjonene dine og de innebygde cmdletene følger samme navnestil. Get-Invoice og Get-ChildItem ser like ut, så et verktøy som luker bort «innebygde» kommandoer etter verb, kaster også dine egne funksjoner. Skript blander dessuten kode på modulnivå, funksjoner, klasser og skriptblokker i én fil, noe som gjør det vanskelig å se hvilken funksjon en linje hører til.

Maguyva beholder begge typer kall og knytter hvert kall til funksjonen det står i.

Hva Maguyva henter ut i PowerShell

Maguyva dekker .ps1-, .psm1- og .psd1-filer. Funksjoner og klassemetoder hentes ut som kallbare enheter, og klasser og enums som typer. Skript- og metodeparametere følges, og lesinger og skrivinger inne i en funksjon knyttes til den funksjonen i stedet for modulen.

Cmdlet-kall blir værende i grafen. PowerShell bruker ikke standardbibliotekfilteret som de fleste språk har, så Write-Host, Get-ChildItem og Restart-Service vises som kallkanter ved siden av dine egne Get-*- og Set-*-funksjoner. En agent kan spørre hvilke skript som starter en tjeneste på nytt, eller hvilke funksjoner som skriver til konsollen, og få et strukturelt svar.

For PowerShell er ingen relasjonstype merket som ikke relevant, så grafen registrerer også klassearv og grensesnittimplementasjon, instansiering, kontrollflyt og lesinger og skrivinger.

Eksempler på prompter for agenter

  • «Hvem kaller Invoke-Backup, og fra hvilke planlagte skript?» (find_symbol, deretter dependency_search incoming)
  • «Hvilke funksjoner kaller Restart-Service?» (dependency_search)
  • «Spor hva Deploy-Site gjør fra start til slutt.» (get_task_context)

Kjente begrensninger

  • Fordi cmdlet-kall beholdes, har svært vanlige cmdleter som Write-Host og Select-Object veldig mange innkommende kanter. Start fra din egen funksjon når du vil ha en fokusert kallgraf.
  • Import-Module og dot-sourcing er vanlige kommandoer, så presetet imports i structural_search velger ingenting. Bruk text_pattern_search for å liste dem.

Neste steg

Koble til et repositorium med hurtigstarten, og se deretter støttematrisen på kompatibilitetssiden. For .NET-kode som skriptene dine kaller, bør du lese veiledningen for C#.

Best egnet

  • > Infrastruktur- og driftsteam med store samlinger av `.ps1`- og `.psm1`-filer der skriptene kaller hverandres funksjoner.
  • > PowerShell-moduler bygget av avanserte funksjoner, klasser og enums.
  • > Automatiseringsrunbooks der agenter før en endring må se hvilke skript som berører en tjeneste, en filressurs eller en registernøkkel.

Agent-arbeidsflyter

  • > Finne alle kallere av en avansert funksjon før parameterne endres.
  • > Liste hvilke skript som kaller en cmdlet som `Restart-Service` før en runbook endres.
  • > Kartlegge hvilke funksjoner som skriver til en delt variabel før en modul refaktoreres.

Motordetaljer

  • > PowerShell-støtten dekker `.ps1`, `.psm1` og `.psd1`. Funksjoner og klassemetoder er kallbare enheter, og klasser og enums er typer.
  • > Standardbibliotekfilteret er slått av for PowerShell, så cmdlet-kall som `Get-ChildItem` blir værende i grafen ved siden av dine egne funksjoner.
  • > Lesinger og skrivinger inne i en funksjon knyttes til den funksjonen i stedet for modulen.

Nyttige MCP-inngangspunkter

  • find_symbol

    Bruk det for en avansert funksjon eller klasse når du trenger definisjonen og kallerne.

  • dependency_search

    Bruk incoming-traversering på en cmdlet som `Restart-Service` for å se hvilke skript som kaller den.

  • get_task_context

    Bruk det for prompter som «spor hva `Deploy-Site` gjør fra start til slutt».