# PowerShell στο Maguyva: γράφοι κώδικα για σενάρια και αρθρώματα

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

Το Maguyva υποστηρίζει το PowerShell με AST, σύμβολα και γράφο, ώστε οι πράκτορες AI να ακολουθούν συναρτήσεις, κλάσεις και κλήσεις cmdlet σε σενάρια και αρθρώματα.

## Στιγμιότυπο υποστήριξης

- Επίπεδο: Υποστήριξη AST και συμβόλων
- Κέλυφος & Σενάρια
- Επεκτάσεις: .ps1, .psd1, .psm1
- Πραγματική ανάλυση AST για αναζήτηση με επίγνωση σύνταξης και δομικό πλαίσιο.
- Τα επώνυμα σύμβολα τροφοδοτούν τη σημασιολογική αναζήτηση και τη διασταύρωση αναφορών. Η πλοήγηση στον γράφο είναι διαθέσιμη όταν είναι ενεργοποιημένη η εξαγωγή σχέσεων.
- Αυτή η γλώσσα συνεισφέρει σύμβολα και σχέσεις στην αναζήτηση με επίγνωση του γράφου· οι υποστηριζόμενοι τύποι ακμών διαφέρουν ανάλογα με τις εγγενείς δομές της.
- Διατίθενται τόσο ανάλυση AST όσο και εξαγωγή συμβόλων.

## Ιδανική χρήση

- Ομάδες υποδομής και λειτουργιών με μεγάλες συλλογές `.ps1` και `.psm1` όπου τα σενάρια καλούν το ένα τις συναρτήσεις του άλλου.
- Αρθρώματα του PowerShell χτισμένα από προηγμένες συναρτήσεις, κλάσεις και απαριθμήσεις.
- Εγχειρίδια αυτοματισμού όπου ο πράκτορας πρέπει να δει ποια σενάρια αγγίζουν μια υπηρεσία, έναν κοινόχρηστο φάκελο ή ένα κλειδί μητρώου πριν από οποιαδήποτε αλλαγή.

## Ροές εργασίας πρακτόρων

- Εύρεση όλων των καλούντων μιας προηγμένης συνάρτησης πριν αλλάξουν οι παράμετροί της.
- Καταγραφή των σεναρίων που καλούν ένα cmdlet όπως το `Restart-Service` πριν αλλάξει ένα εγχειρίδιο αυτοματισμού.
- Χαρτογράφηση των συναρτήσεων που γράφουν σε μια κοινόχρηστη μεταβλητή πριν από αναδιαμόρφωση ενός αρθρώματος.

## Πού σκοντάφτουν τα επιφανειακά εργαλεία AI στο PowerShell

Οι δικές σας συναρτήσεις και τα ενσωματωμένα cmdlet ακολουθούν το ίδιο στυλ ονοματοδοσίας. Τα `Get-Invoice` και `Get-ChildItem` μοιάζουν, οπότε ένα εργαλείο που απορρίπτει «ενσωματωμένες» εντολές με βάση το ρήμα απορρίπτει και τις δικές σας συναρτήσεις. Τα σενάρια επίσης αναμειγνύουν κώδικα επιπέδου αρθρώματος, συναρτήσεις, κλάσεις και μπλοκ σεναρίων σε ένα αρχείο, οπότε είναι δύσκολο να πει κανείς σε ποια συνάρτηση ανήκει μια γραμμή.

Το Maguyva κρατά και τα δύο είδη κλήσεων και αποδίδει κάθε κλήση στη συνάρτηση μέσα στην οποία βρίσκεται.

## Τι εξάγει το Maguyva από κώδικα PowerShell

Το Maguyva καλύπτει αρχεία `.ps1`, `.psm1` και `.psd1`. Οι συναρτήσεις και οι μέθοδοι κλάσεων εξάγονται ως καλέσιμες μονάδες, ενώ οι κλάσεις και οι απαριθμήσεις ως τύποι. Οι παράμετροι σεναρίων και μεθόδων παρακολουθούνται, και οι αναγνώσεις και εγγραφές μέσα σε μια συνάρτηση αποδίδονται σε αυτήν τη συνάρτηση, όχι στο άρθρωμα.

Οι κλήσεις cmdlet παραμένουν στον γράφο. Το PowerShell δεν εφαρμόζει το φίλτρο τυπικής βιβλιοθήκης που χρησιμοποιούν οι περισσότερες γλώσσες, οπότε τα `Write-Host`, `Get-ChildItem` και `Restart-Service` εμφανίζονται ως ακμές κλήσεων δίπλα στις δικές σας συναρτήσεις `Get-*` και `Set-*`. Ο πράκτορας μπορεί να ρωτήσει ποια σενάρια επανεκκινούν μια υπηρεσία ή ποιες συναρτήσεις γράφουν στην κονσόλα και να πάρει δομημένη απάντηση.

Κανένας τύπος σχέσης δεν σημειώνεται ως μη εφαρμόσιμος για το PowerShell, οπότε ο γράφος καταγράφει επίσης κληρονομικότητα κλάσεων και υλοποίηση διεπαφών, δημιουργία στιγμιοτύπων, ροή ελέγχου, αναγνώσεις και εγγραφές.

## Παραδείγματα προτροπών για πράκτορες

- «Ποιος καλεί το `Invoke-Backup` και από ποια προγραμματισμένα σενάρια;» (`find_symbol`, μετά `dependency_search` με εισερχόμενη κατεύθυνση)
- «Ποιες συναρτήσεις καλούν το `Restart-Service`;» (`dependency_search`)
- «Ακολούθησε τι κάνει το `Deploy-Site` από την αρχή ως το τέλος.» (`get_task_context`)

## Γνωστοί περιορισμοί

- Επειδή οι κλήσεις cmdlet διατηρούνται, πολύ συνηθισμένα cmdlet όπως `Write-Host` και `Select-Object` έχουν πολλές εισερχόμενες ακμές. Ξεκινήστε από τη δική σας συνάρτηση όταν θέλετε εστιασμένο γράφο κλήσεων.
- Το `Import-Module` και η φόρτωση σεναρίων με τελεία είναι συνηθισμένες εντολές, οπότε η προεπιλογή `imports` στο `structural_search` δεν επιλέγει τίποτα. Χρησιμοποιήστε το `text_pattern_search` για να τα καταγράψετε.

## Επόμενα βήματα

Συνδέστε ένα αποθετήριο με τον [γρήγορο οδηγό εκκίνησης](/el/docs/quickstart) και έπειτα δείτε τον πίνακα υποστήριξης στη [σελίδα συμβατότητας](/el/docs/compatibility). Για τον κώδικα .NET που καλούν τα σενάριά σας, διαβάστε τον [οδηγό για τη C#](/el/languages/csharp).

## Λεπτομέρειες μηχανής

- Η υποστήριξη του PowerShell καλύπτει αρχεία `.ps1`, `.psm1` και `.psd1`. Οι συναρτήσεις και οι μέθοδοι κλάσεων είναι καλέσιμες μονάδες· οι κλάσεις και οι απαριθμήσεις είναι τύποι.
- Το φίλτρο τυπικής βιβλιοθήκης είναι απενεργοποιημένο για το PowerShell, οπότε κλήσεις cmdlet όπως `Get-ChildItem` μένουν στον γράφο δίπλα στις δικές σας συναρτήσεις.
- Οι αναγνώσεις και εγγραφές μέσα σε μια συνάρτηση αποδίδονται σε αυτήν τη συνάρτηση, όχι στο module.

## Χρήσιμα σημεία εισόδου MCP

- `find_symbol`: Χρησιμοποιήστε το για μια προηγμένη συνάρτηση ή κλάση όταν χρειάζεστε τον ορισμό και τους καλούντες.
- `dependency_search`: Χρησιμοποιήστε εισερχόμενη διάσχιση για να δείτε ποια σενάρια καλούν ένα cmdlet όπως το `Restart-Service`.
- `get_task_context`: Χρησιμοποιήστε το για προτροπές όπως «ακολούθησε τι κάνει το `Deploy-Site` από την αρχή ως το τέλος».
