C w Maguyva: grafy wywołań dla kodu systemowego i wbudowanego
W C graf wywołań jest architekturą. Agent powinien go przeczytać przed edycją.
Rozszerzenia
.c, .h
Maguyva obsługuje Lua przez AST, symbole i graf, dzięki czemu agenci AI śledzą moduły, metody z dwukropkiem, klasy oparte na metatablicach i łańcuchy require.
Lua nie ma słowa kluczowego dla klas. Obiekty są tablicami, metody to przechowywane w nich funkcje, a dziedziczenie to wywołanie setmetatable. Moduł to cokolwiek zwróci require. Struktura jest prawdziwa, ale żyje w konwencjach, których wyszukiwanie tekstowe nie rozumie.
Maguyva czyta te konwencje jako strukturę, więc agent może zapytać, kto wywołuje metodę albo które tablice rozszerzają bazę, i dostać bezpośrednią odpowiedź.
Maguyva obejmuje pliki .lua. Wyodrębniane są deklaracje funkcji, definicje local function i wyrażenia funkcyjne, a metody z dwukropkiem, takie jak function Account:deposit(), są przypisywane do tablicy, która jest ich właścicielem, czyli Account. Łańcuchy metod są śledzone wywołanie po wywołaniu, a wywołania na self pozostają powiązane z otaczającym obiektem.
Konwencje Lua stają się relacjami:
require, dofile i loadfile zapisują importy.setmetatable na poziomie modułu zapisuje dziedziczenie.ClassName:new(), ClassName.new() i setmetatable({...}, ClassName) liczą się jako tworzenie instancji.error() zapisuje rzucenie błędu, a pcall i xpcall jego przechwycenie.Graf zapisuje też odczyty i zapisy oraz przepływ sterowania.
Inventory:addItem i z których skryptów?” (find_symbol, potem dependency_search incoming)util.http przez require?” (dependency_search)get_task_context)string, table, math, io, os, coroutine, debug i utf8) oraz API Neovima vim.* i API OpenResty ngx.*. Wywołania tych API nie są krawędziami grafu, więc do ich wyszukania użyj text_pattern_search.classes i imports w structural_search niczego nie wybierają dla Lua. Zamiast nich użyj find_symbol lub text_pattern_search.Podłącz repozytorium za pomocą szybkiego startu, a potem sprawdź macierz obsługi na stronie zgodności. W przypadku silników osadzających Lua w kodzie natywnym przeczytaj też przewodnik po C.
Najlepsze dopasowanie
Workflow agentów
Szczegóły silnika
Przydatne punkty wejścia MCP
Użyj go dla funkcji modułu lub metody z dwukropkiem, gdy potrzebujesz definicji i wywołujących.
Użyj przejścia incoming na współdzielonym module, aby przed przeniesieniem zobaczyć, które pliki ładują go przez require.
Użyj go do wywołań `vim.*`, `ngx.*` lub biblioteki standardowej, które są odfiltrowywane z grafu.
Powiązane przewodniki
W C graf wywołań jest architekturą. Agent powinien go przeczytać przed edycją.
Rozszerzenia
.c, .h
Przydatne, gdy bazy kodu Python rozrastają się na usługi, skrypty, stuby typów i kod spajający operacje.
Rozszerzenia
.py, .pyi, .pyw