Kotlin en Maguyva: grafos de código para Android y la JVM
Kotlin esconde mucho cableado en receptores y lambdas. El grafo lo saca a la luz.
Extensiones
.kt, .kts
Maguyva admite Dart con AST, símbolos y grafo, para que los agentes de IA sigan clases, mixins, extensiones y constructores en código Flutter y Dart.
Dart reparte un mismo tipo entre varias construcciones. Una clase puede heredar de una clase base, implementar varias interfaces e incorporar comportamiento de mixins con with. Los métodos de extensión añaden miembros a tipos definidos en otro lugar, y los constructores con nombre y los factory ocultan qué clase se construye en realidad. Una búsqueda de texto encuentra los nombres, pero no la estructura que hay detrás.
Maguyva le da esa estructura al agente, para que pueda seguir un cambio desde un widget hasta el servicio del que depende.
Maguyva cubre archivos .dart. Las clases, los mixins y las extensiones se extraen como tipos. El preset functions de structural_search cubre funciones, métodos, funciones locales, lambdas y constructores generativos, const y factory. Las firmas registran grupos de parámetros posicionales y con nombre opcionales y miembros static, y los nombres de definición pierden el ? o ! final.
Las importaciones normalizan las directivas import, part y library y eliminan sus cláusulas show, hide y as. Una llamada a través de un prefijo de importación, como http.get después de import 'package:http/http.dart' as http, se mantiene en el grafo.
El tipado de receptores sigue parámetros, variables tipadas e inicializadas, getters y bucles for-in sobre listas, conjuntos e iterables, y trata var y dynamic como tipos inferidos. Al resolver miembros heredados se siguen las cláusulas extends, implements y with. El grafo también registra instanciación, referencias de tipo, lecturas y escrituras, y aristas de excepciones.
CartRepository.addItem y desde qué widgets?” (find_symbol, luego dependency_search incoming)PaymentGateway?” (dependency_search)get_task_context)map, where y forEach, métodos de Future y Stream como then y listen, y las bibliotecas dart:. Usa text_pattern_search para encontrarlos.structural_search una función local o una lambda puede solaparse con el invocable que la contiene, y los getters y setters aparecen como firmas de método.Conecta un repositorio con el inicio rápido y luego revisa la matriz de compatibilidad en la página de compatibilidad. Para otras bases de código móviles, lee la guía de Kotlin y la guía de Swift.
Mejor uso
Flujos de trabajo del agente
Detalles del motor
Puntos de entrada MCP útiles
Úsalo para una clase de widget, repositorio o servicio cuando necesites la definición y las referencias.
Usa el recorrido incoming sobre un método de repositorio o una interfaz para ver llamadores e implementaciones antes de cambiar una API.
Úsalo para prompts como "rastrea cómo el botón de pago llega a la API de pagos".
Guías relacionadas
Kotlin esconde mucho cableado en receptores y lambdas. El grafo lo saca a la luz.
Extensiones
.kt, .kts
En Swift, el comportamiento vive en protocolos y extensiones. Un agente necesita ver ambos.
Extensiones
.swift