सामग्री पर जाएँ
cd /languages
  • Windows ऑटोमेशन
  • शेल
  • AST और सिंबल सपोर्ट

Maguyva में PowerShell: स्क्रिप्ट और मॉड्यूल के लिए कोड ग्राफ़

Maguyva, PowerShell को AST, सिंबल और ग्राफ़ के साथ सपोर्ट करता है, ताकि AI एजेंट स्क्रिप्ट और मॉड्यूल के पार फ़ंक्शन, क्लास और cmdlet कॉल को ट्रेस कर सकें।

PowerShell सतही AI टूल को कहाँ उलझाता है

आपके फ़ंक्शन और बिल्ट-इन 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 कॉल बनाए रखे जाते हैं, Write-Host और Select-Object जैसे बहुत आम cmdlet के बहुत सारे इनकमिंग एज होते हैं। जब आपको केंद्रित कॉल ग्राफ़ चाहिए, तो अपने फ़ंक्शन से शुरू करें।
  • Import-Module और डॉट-सोर्सिंग सामान्य कमांड हैं, इसलिए structural_search में imports प्रीसेट कुछ भी नहीं चुनता। इनकी सूची के लिए text_pattern_search इस्तेमाल करें।

अगले कदम

क्विकस्टार्ट से रिपॉज़िटरी जोड़ें, फिर सपोर्ट मैट्रिक्स कम्पैटिबिलिटी पेज पर देखें। आपकी स्क्रिप्ट जिस .NET कोड को कॉल करती हैं, उसके लिए C# गाइड पढ़ें।

सबसे उपयुक्त

  • > इन्फ़्रास्ट्रक्चर और ऑपरेशन टीमें जिनके पास `.ps1` और `.psm1` के बड़े संग्रह हैं और जिनकी स्क्रिप्ट एक-दूसरे के फ़ंक्शन कॉल करती हैं।
  • > एडवांस्ड फ़ंक्शन, क्लास और एनम से बने PowerShell मॉड्यूल।
  • > ऑटोमेशन रनबुक जहाँ किसी बदलाव से पहले एजेंट को देखना होता है कि कौन-सी स्क्रिप्ट किसी सर्विस, फ़ाइल शेयर या रजिस्ट्री कुंजी को छूती हैं।

एजेंट वर्कफ़्लो

  • > किसी एडवांस्ड फ़ंक्शन के पैरामीटर बदलने से पहले उसके सभी कॉलर ढूँढना।
  • > किसी रनबुक को बदलने से पहले `Restart-Service` जैसे cmdlet को कॉल करने वाली स्क्रिप्ट की सूची बनाना।
  • > किसी मॉड्यूल को रीफ़ैक्टर करने से पहले यह मैप करना कि कौन-से फ़ंक्शन किसी साझा वेरिएबल में लिखते हैं।

इंजन विवरण

  • > PowerShell सपोर्ट `.ps1`, `.psm1` और `.psd1` फ़ाइलों को कवर करता है। फ़ंक्शन और क्लास मेथड कॉलेबल हैं; क्लास और एनम टाइप हैं।
  • > PowerShell के लिए स्टैंडर्ड लाइब्रेरी फ़िल्टर बंद है, इसलिए `Get-ChildItem` जैसे cmdlet कॉल आपके अपने फ़ंक्शन के साथ ग्राफ़ में बने रहते हैं।
  • > किसी फ़ंक्शन के भीतर के रीड और राइट मॉड्यूल से नहीं, उसी फ़ंक्शन से जोड़े जाते हैं।

उपयोगी MCP एंट्री पॉइंट

  • find_symbol

    किसी एडवांस्ड फ़ंक्शन या क्लास के लिए इस्तेमाल करें जब आपको परिभाषा और कॉलर चाहिए।

  • dependency_search

    यह देखने के लिए इनकमिंग ट्रैवर्सल इस्तेमाल करें कि कौन-सी स्क्रिप्ट `Restart-Service` जैसे cmdlet को कॉल करती हैं।

  • get_task_context

    "ट्रेस करो कि `Deploy-Site` शुरू से अंत तक क्या करता है" जैसे प्रॉम्प्ट के लिए इस्तेमाल करें।

संबंधित गाइड

रिपॉज़िटरी के संबंधित हिस्से

सभी गाइड ब्राउज़ करें