C en Maguyva: grafos de llamadas para código de sistemas y embebido
En C, el grafo de llamadas es la arquitectura. Un agente debería leerlo antes de editar.
Extensiones
.c, .h
Maguyva admite Lua con AST, símbolos y grafo, para que los agentes de IA sigan módulos, métodos con dos puntos, clases con metatablas y cadenas de require en código Lua.
Lua no tiene una palabra clave para clases. Los objetos son tablas, los métodos son funciones guardadas en ellas y la herencia es una llamada a setmetatable. Un módulo es lo que devuelva require. La estructura es real, pero vive en convenciones que una búsqueda de texto no entiende.
Maguyva lee esas convenciones como estructura, para que un agente pueda preguntar quién llama a un método o qué tablas extienden una base y obtener una respuesta directa.
Maguyva cubre archivos .lua. Se extraen declaraciones de funciones, definiciones local function y expresiones de función, y los métodos con dos puntos como function Account:deposit() se atribuyen a su tabla propietaria, Account. Las cadenas de métodos se siguen llamada a llamada, y las llamadas sobre self quedan ligadas al objeto que las contiene.
Las convenciones de Lua se convierten en relaciones:
require, dofile y loadfile registran importaciones.setmetatable a nivel de módulo registra herencia.ClassName:new(), ClassName.new() y setmetatable({...}, ClassName) cuentan como instanciación.error() registra un throw, y pcall y xpcall registran un catch.El grafo también registra lecturas y escrituras y flujo de control.
Inventory:addItem y desde qué scripts?” (find_symbol, luego dependency_search incoming)util.http con require?” (dependency_search)get_task_context)string, table, math, io, os, coroutine, debug y utf8) más las API vim.* de Neovim y ngx.* de OpenResty. Las llamadas a esas API no son aristas del grafo, así que usa text_pattern_search para encontrarlas.classes y imports de structural_search no seleccionan nada para Lua. Usa en su lugar find_symbol o text_pattern_search.Conecta un repositorio con el inicio rápido y luego revisa la matriz de compatibilidad en la página de compatibilidad. Para motores que embeben Lua en código nativo, lee también la guía de C.
Mejor uso
Flujos de trabajo del agente
Detalles del motor
Puntos de entrada MCP útiles
Úsalo para una función de módulo o un método con dos puntos cuando necesites la definición y los llamadores.
Usa el recorrido incoming sobre un módulo compartido para ver qué archivos lo cargan con require antes de moverlo.
Úsalo para llamadas a `vim.*`, `ngx.*` o la biblioteca estándar, que se filtran del grafo.
Guías relacionadas
En C, el grafo de llamadas es la arquitectura. Un agente debería leerlo antes de editar.
Extensiones
.c, .h
Útil cuando las bases de código Python se extienden entre servicios, scripts, stubs de tipos y código de enlace operativo.
Extensiones
.py, .pyi, .pyw