Maguyva 的 Kotlin 支持:面向 Android 与 JVM 的代码图谱
Kotlin 把大量连接关系藏在接收者和匿名函数里。图谱把它们找回来。
扩展名
.kt, .kts
Dart 会把一个类型分散到多种结构里。一个类可以继承一个基类、实现多个接口,并通过 with 混入 mixin 的行为。扩展方法把成员附加到别处定义的类型上,命名构造函数和 factory 构造函数则隐藏了实际构建的是哪个类。文本搜索能找到名字,却找不到名字背后的结构。
Maguyva 把这些结构交给智能体,让它能从组件一路追踪到所依赖的服务。
Maguyva 支持 .dart 文件。类、mixin 和扩展会作为类型提取。structural_search 中的 functions 预设覆盖函数、方法、局部函数、lambda,以及生成式、const 和 factory 构造函数。签名会记录可选的位置参数组和命名参数组以及 static 成员,定义名会去掉末尾的 ? 和 !。
导入会规范化 import、part 和 library 指令,并去掉其中的 show、hide 和 as 子句。通过导入前缀发起的调用,例如 import 'package:http/http.dart' as http 之后的 http.get,会保留在图谱中。
接收者类型推断会跟踪参数、带类型和已初始化的变量、getter,以及遍历列表、集合和可迭代对象的 for-in 循环,并把 var 和 dynamic 视为推断类型。解析继承成员时会跟踪 extends、implements 和 with 子句。图谱还会记录实例化、类型引用、读写和异常边。
CartRepository.addItem,来自哪些组件?”(先用 find_symbol,再用 dependency_search 的 incoming 方向)PaymentGateway?”(dependency_search)get_task_context)map、where 和 forEach 等集合辅助函数,then 和 listen 等 Future 与 Stream 方法,以及 dart: 库。查找它们请使用 text_pattern_search。structural_search 的结果中,局部函数或 lambda 可能与包含它的可调用对象重叠,getter 和 setter 会显示为方法签名。最适合场景
智能体工作流
引擎细节
常用 MCP 入口工具
需要组件、仓储或服务类的定义和引用时使用它。
修改 API 之前,对仓储方法或接口使用 incoming 方向遍历,查看调用方和实现者。
用于“追踪结账按钮如何到达支付 API”这类提示词。