Přeskočit na obsah
cd /languages
  • Automatizace Windows
  • Shell
  • Podpora AST a symbolů

PowerShell v Maguyva: grafy kódu pro skripty a moduly

Maguyva podporuje PowerShell s AST, symboly a grafem, takže AI agenti sledují funkce, třídy a volání cmdletů napříč skripty a moduly.

Kde PowerShell podráží povrchní AI nástroje

Vaše funkce i vestavěné cmdlety používají stejný styl pojmenování. Get-Invoice a Get-ChildItem vypadají stejně, takže nástroj, který podle slovesa vyřadí „vestavěné“ příkazy, zahodí i vaše vlastní funkce. Skripty navíc v jednom souboru míchají kód na úrovni modulu, funkce, třídy a bloky skriptu, takže je těžké poznat, ke které funkci řádek patří.

Maguyva ponechává oba druhy volání a každé přiřadí funkci, ve které se nachází.

Co Maguyva v PowerShell extrahuje

Maguyva pokrývá soubory .ps1, .psm1 a .psd1. Funkce a metody tříd se extrahují jako volatelné prvky, třídy a výčty jako typy. Sledují se parametry skriptů i metod a čtení a zápisy uvnitř funkce se přiřazují této funkci, nikoli modulu.

Volání cmdletů v grafu zůstávají. PowerShell nepoužívá filtr standardní knihovny, který má většina jazyků, takže Write-Host, Get-ChildItem a Restart-Service se zobrazují jako hrany volání vedle vašich vlastních funkcí Get-* a Set-*. Agent se může zeptat, které skripty restartují službu nebo které funkce zapisují do konzole, a dostane strukturní odpověď.

Pro PowerShell není žádný typ relace označen jako nepoužitelný, takže graf zaznamenává také dědičnost tříd a implementaci rozhraní, vytváření instancí, tok řízení a čtení a zápisy.

Ukázkové prompty pro agenty

  • „Kdo volá Invoke-Backup a ze kterých plánovaných skriptů?“ (find_symbol, pak dependency_search incoming)
  • „Které funkce volají Restart-Service?“ (dependency_search)
  • „Vysleduj, co Deploy-Site dělá od začátku do konce.“ (get_task_context)

Známá omezení

  • Protože se volání cmdletů zachovávají, velmi běžné cmdlety jako Write-Host a Select-Object mají obrovské množství příchozích hran. Když chcete zaměřený graf volání, začněte od vlastní funkce.
  • Import-Module a dot-sourcing jsou běžné příkazy, takže preset imports v structural_search nic nevybere. K jejich výpisu použijte text_pattern_search.

Další kroky

Připojte repozitář podle rychlého startu a pak si prohlédněte matici podpory na stránce kompatibility. Pro kód .NET, který vaše skripty volají, si přečtěte průvodce jazykem C#.

Nejlépe se hodí pro

  • > Infrastrukturní a provozní týmy s velkými sbírkami souborů `.ps1` a `.psm1`, jejichž skripty si navzájem volají funkce.
  • > Moduly pro PowerShell postavené z pokročilých funkcí, tříd a výčtů.
  • > Automatizační runbooky, u kterých agenti musí před změnou vidět, které skripty sahají na službu, sdílenou složku nebo klíč registru.

Workflow agentů

  • > Najít všechna volání pokročilé funkce před změnou jejích parametrů.
  • > Vypsat skripty, které volají cmdlet jako `Restart-Service`, před změnou runbooku.
  • > Před refaktoringem modulu zmapovat funkce, které zapisují do sdílené proměnné.

Podrobnosti enginu

  • > Podpora PowerShell pokrývá `.ps1`, `.psm1` a `.psd1`. Funkce a metody tříd jsou volatelné prvky, třídy a výčty jsou typy.
  • > Pro PowerShell je filtr standardní knihovny vypnutý, takže volání cmdletů jako `Get-ChildItem` zůstávají v grafu vedle vašich vlastních funkcí.
  • > Čtení a zápisy uvnitř funkce se přiřazují této funkci, nikoli modulu.

Užitečné vstupní body MCP

  • find_symbol

    Použijte ho pro pokročilou funkci nebo třídu, když potřebujete definici a volající.

  • dependency_search

    Použijte incoming procházení na cmdletu jako `Restart-Service`, abyste viděli, které skripty ho volají.

  • get_task_context

    Použijte ho pro prompty jako „vysleduj, co `Deploy-Site` dělá od začátku do konce“.