Maguyva में C: सिस्टम और एम्बेडेड कोड के लिए कॉल ग्राफ़
C में कॉल ग्राफ़ ही आर्किटेक्चर है। एजेंट को एडिट करने से पहले उसे पढ़ना चाहिए।
एक्सटेंशन
.c, .h
Maguyva, Lua को AST, सिंबल और ग्राफ़ के साथ सपोर्ट करता है, ताकि AI एजेंट Lua कोड में मॉड्यूल, कोलन मेथड, मेटाटेबल क्लास और require श्रृंखलाओं को ट्रेस कर सकें।
Lua में क्लास के लिए कोई कीवर्ड नहीं है। ऑब्जेक्ट टेबल हैं, मेथड उनमें रखे फ़ंक्शन हैं, और इनहेरिटेंस एक setmetatable कॉल है। मॉड्यूल वही है जो require लौटाता है। संरचना असली है, पर वह ऐसी परिपाटियों में रहती है जिन्हें टेक्स्ट सर्च नहीं समझता।
Maguyva इन परिपाटियों को संरचना के रूप में पढ़ता है, ताकि एजेंट पूछ सके कि किसी मेथड को कौन कॉल करता है या कौन-सी टेबल किसी बेस को बढ़ाती हैं, और सीधा जवाब पा सके।
Maguyva .lua फ़ाइलों को कवर करता है। फ़ंक्शन डिक्लेरेशन, local function परिभाषाएँ और फ़ंक्शन एक्सप्रेशन निकाले जाते हैं, और function Account:deposit() जैसे कोलन मेथड अपनी मालिक टेबल Account से जोड़े जाते हैं। मेथड श्रृंखलाएँ एक-एक कॉल करके ट्रेस की जाती हैं, और self पर किए गए कॉल अपने घेरने वाले ऑब्जेक्ट से बँधे रहते हैं।
Lua की परिपाटियाँ इस तरह संबंध बनती हैं:
require, dofile और loadfile इम्पोर्ट दर्ज करते हैं।setmetatable कॉल इनहेरिटेंस दर्ज करता है।ClassName:new(), ClassName.new() और setmetatable({...}, ClassName) इंस्टैंशिएशन गिने जाते हैं।error() थ्रो दर्ज करता है, और pcall तथा xpcall कैच दर्ज करते हैं।ग्राफ़ रीड और राइट तथा कंट्रोल फ़्लो भी दर्ज करता है।
Inventory:addItem को कौन कॉल करता है, और किन स्क्रिप्ट से?” (find_symbol, फिर dependency_search इनकमिंग)util.http को require से लोड करते हैं?” (dependency_search)get_task_context)string, table, math, io, os, coroutine, debug और utf8) के साथ Neovim का vim.* और OpenResty का ngx.* API। इन API के कॉल ग्राफ़ एज नहीं हैं; उन्हें ढूँढने के लिए text_pattern_search इस्तेमाल करें।structural_search में classes और imports प्रीसेट Lua के लिए कुछ भी नहीं चुनते। इसकी जगह find_symbol या text_pattern_search इस्तेमाल करें।क्विकस्टार्ट से रिपॉज़िटरी जोड़ें, फिर सपोर्ट मैट्रिक्स कम्पैटिबिलिटी पेज पर देखें। नेटिव कोड में Lua को एम्बेड करने वाले इंजन के लिए C गाइड भी पढ़ें।
सबसे उपयुक्त
एजेंट वर्कफ़्लो
इंजन विवरण
उपयोगी MCP एंट्री पॉइंट
किसी मॉड्यूल फ़ंक्शन या कोलन मेथड के लिए इस्तेमाल करें जब आपको परिभाषा और कॉलर चाहिए।
किसी साझा मॉड्यूल को दूसरी जगह ले जाने से पहले यह देखने के लिए इनकमिंग ट्रैवर्सल इस्तेमाल करें कि कौन-सी फ़ाइलें उसे require से लोड करती हैं।
ग्राफ़ से फ़िल्टर किए गए `vim.*`, `ngx.*` या स्टैंडर्ड लाइब्रेरी कॉल के लिए इस्तेमाल करें।
संबंधित गाइड
C में कॉल ग्राफ़ ही आर्किटेक्चर है। एजेंट को एडिट करने से पहले उसे पढ़ना चाहिए।
एक्सटेंशन
.c, .h
उपयोगी तब जब Python कोडबेस सर्विसेज़, स्क्रिप्ट, टाइप स्टब, और ऑपरेशनल ग्लू में फैल जाए।
एक्सटेंशन
.py, .pyi, .pyw