C dans Maguyva : des graphes d'appels pour le code système et embarqué
En C, le graphe d'appels est l'architecture. Un agent devrait le lire avant de modifier quoi que ce soit.
Extensions
.c, .h
Maguyva prend en charge Lua avec AST, symboles et graphe, pour que les agents IA suivent modules, méthodes à deux-points, classes par métatable et chaînes de require.
Lua n’a pas de mot-clé pour les classes. Les objets sont des tables, les méthodes sont des fonctions stockées dedans, et l’héritage est un appel à setmetatable. Un module est tout ce que renvoie require. La structure est réelle, mais elle vit dans des conventions qu’une recherche textuelle ne comprend pas.
Maguyva lit ces conventions comme de la structure : l’agent peut demander qui appelle une méthode ou quelles tables étendent une base, et obtenir une réponse directe.
Maguyva couvre les fichiers .lua. Les déclarations de fonction, les définitions local function et les expressions de fonction sont extraites, et les méthodes à deux-points comme function Account:deposit() sont rattachées à leur table propriétaire, Account. Les chaînes de méthodes sont suivies appel par appel, et les appels sur self restent liés à l’objet englobant.
Les conventions de Lua deviennent des relations :
require, dofile et loadfile enregistrent des imports.setmetatable au niveau du module enregistre un héritage.ClassName:new(), ClassName.new() et setmetatable({...}, ClassName) comptent comme instanciation.error() enregistre un throw, et pcall et xpcall enregistrent un catch.Le graphe enregistre aussi les lectures et écritures et le flux de contrôle.
Inventory:addItem, et depuis quels scripts ? » (find_symbol, puis dependency_search en incoming)util.http avec require ? » (dependency_search)get_task_context)string, table, math, io, os, coroutine, debug et utf8) ainsi que les API vim.* de Neovim et ngx.* d’OpenResty. Les appels à ces API ne sont pas des arêtes du graphe : utilisez text_pattern_search pour les retrouver.classes et imports de structural_search ne sélectionnent rien pour Lua. Utilisez plutôt find_symbol ou text_pattern_search.Connectez un dépôt avec le démarrage rapide, puis consultez la matrice de prise en charge sur la page de compatibilité. Pour les moteurs qui embarquent Lua dans du code natif, lisez aussi le guide C.
Idéal pour
Workflows d'agent
Détails du moteur
Points d'entrée MCP utiles
Utilisez-le pour une fonction de module ou une méthode à deux-points quand vous avez besoin de la définition et des appelants.
Utilisez la traversée incoming sur un module partagé pour voir quels fichiers le chargent avec require avant de le déplacer.
Utilisez-le pour les appels à `vim.*`, `ngx.*` ou à la bibliothèque standard, qui sont filtrés du graphe.
Guides connexes
En C, le graphe d'appels est l'architecture. Un agent devrait le lire avant de modifier quoi que ce soit.
Extensions
.c, .h
Utile quand les bases de code Python s'étalent sur des services, des scripts, des stubs de types et du code de liaison opérationnel.
Extensions
.py, .pyi, .pyw