Граф кода
bee graph отвечает на вопросы о коде через локальный граф текущей рабочей копии
Git. MongoDB и bee init не нужны; результат хранится вне репозитория в локальной
директории Bee.
Построение и состояние
Заголовок раздела «Построение и состояние»Выполните внутри рабочей копии Git:
bee graph build --jsonbee graph status --check --jsonbee graph skillskill печатает инструкцию для агента, не устанавливает hook и не пишет файлы.
status --check: актуальный граф 0, устаревший 6, отсутствующий 3.
Для другой копии используйте --root /path/to/repo.
Найдите диапазоны исходного кода через outline
Заголовок раздела «Найдите диапазоны исходного кода через outline»bee graph outline src/Catalog/Product.cs --jsonПо умолчанию вывод — JSON: до 100 объявлений и 12 000 символов UTF-16. Ограничения меняются через --limit 1..1000 и --budget 2048..65536. Проверка актуальности хеширует всё дерево исходников и контекст проекта; inspectionMs показывает затраченное время. Десятисекундный бюджет принятия результата не является жёстким тайм-аутом I/O. Коды выхода: 0 полный результат, 3 граф/путь отсутствует, 4 неверное использование, 5 устаревший, неполный или неподдерживаемый результат.
Укажите существующий путь относительно репозитория. outline перечисляет
объявления в порядке исходного файла с начальной и конечной строками. Агент
может прочитать нужный диапазон вместо всего файла. Отдельные позиции partial
объявлений сохраняются; тела исходного кода в вывод не включаются.
Члены, созданные компилятором C# без собственного объявления в исходнике,
исключаются. Написанные конструкторы, свойства позиционных record и объявления
в сгенерированных исходных файлах сохраняются. Отдельный счётчик
result.counts.excludedSynthesized показывает исключённые члены; total, shown
и omitted считают объявления исходного кода после фильтрации.
Команда читает сохранённый граф без построения, обновления или изменения времени
последнего запроса. Перед использованием диапазонов проверьте идентичность
источника, актуальность, охват и число пропущенных элементов. Отсутствующий или
старый граф может потребовать явного bee graph build; неизвестная идентичность
источника не гарантирует актуальность. Лимиты вывода: bee graph outline --help.
Граф охватывает C#, Vue/TypeScript/TSX и объявления Swift/Kotlin.
Граф мобильных объявлений и анализ компилятора — отдельные возможности.
Вызовы C# и влияние изменений
Заголовок раздела «Вызовы C# и влияние изменений»Roslyn разрешает объявления и вызовы по проектам C#, включая interface и override. Замените пример символом из своего кода; неоднозначное имя вернёт кандидатов вместо догадки.
bee graph callers 'OrderService.Save' --jsonbee graph callees 'OrderService.Save' --jsonbee graph explain 'OrderService.Save' --jsonbee graph impact 'OrderService.Save' --jsonКаждый ответ включает покрытие и актуальность. Отсутствующие результаты restore
или ссылочные сборки могут снизить разрешение. Проверьте покрытие, прежде чем
считать ответ полным. Bee не запускает dotnet restore за вас.
Краткие ответы и бюджет всего вывода
Заголовок раздела «Краткие ответы и бюджет всего вывода»Начиная с beta.11, callers, callees, impact и explain принимают эти параметры:
bee graph callers 'OrderService.Save' --json --compact --output-budget-chars 8000bee graph explain 'src/App.vue' --json --compact --output-budget-chars 8000--compact опускает описательные поля записей списка результатов, такие как
display, project и test. --output-budget-chars N
ограничивает весь JSON в stdout вместе с завершающим переводом строки в кодовых
единицах UTF-16; минимум — 256. Оба требуют --json и могут использоваться
отдельно. Они не меняют прежний параметр запроса --budget, покрытие графа
или политику обновления.
Успешный ответ сохраняет идентичность графа/источника, актуальность и покрытие.
Прочитайте output.truncated, output.omittedItems и output.omittedByPath,
прежде чем считать все связи представленными. Если обязательные метаданные
не помещаются, команда возвращает output_budget_too_small и код завершения 4;
увеличьте бюджет. Это не лимит токенов и не гарантия ускорения запросов.
Без новых параметров прежний формат JSON сохраняется.
Vue, TypeScript и TSX
Заголовок раздела «Vue, TypeScript и TSX»Граф извлекает объявления и статические импорты из .vue, .ts, .tsx.
В Vue <script> и <script setup> сохраняются исходные номера строк.
Поддерживаются tsconfig baseUrl, paths, наследование, распространённые ссылки
на tsconfig.app.json и поддерживаемые литеральные alias Vite. Динамическая
конфигурация не исполняется; неподдерживаемые импорты остаются неразрешёнными.
Если в репозитории есть src/App.vue:
bee graph explain 'src/App.vue' --jsonexplain показывает прямые и обратные импорты. Между двумя существующими файлами
или ID символов path может пройти по связям импорта:
bee graph path 'src/App.vue' 'src/components/Welcome.vue' --jsonУкажите пути из своей рабочей копии. Покрытие Vue/TS сообщает calls: "none":
это объявления и импорты, а не семантические цели вызовов.
Синтаксический граф не воспроизводит набор исходных файлов компилятора TypeScript.
Объявления Swift и Kotlin
Заголовок раздела «Объявления Swift и Kotlin»Начиная с beta.12 файлы .swift, .kt и .kts участвуют в построении графа и обзорах. Выполните bee graph build --json, затем bee graph outline Sources/App.swift --json, указав существующий путь в вашей рабочей копии. Парсеру не нужны компиляторы Swift/Kotlin или JVM.
Поддерживаемое подмножество включает типы, функции, свойства и псевдонимы типов с принадлежностью файлу/типу и реальными диапазонами строк. Импорты и наследование описываются синтаксически. Зависимость может быть символической; межфайловое разрешение типов, объединение членов расширений и семантические вызовы не реализованы. Охват явно указывает calls:none.
Читайте parseStatus каждого файла: parsed означает отсутствие диагностик при разборе поддерживаемого подмножества, а не успешную компиляцию. partial или error сохраняет найденные объявления, объясняет ограничение и возвращает код 5. Лимиты: 16 MiB, 250 000 токенов и 128 вложенных областей. Неподдерживаемый синтаксис нельзя считать пустым полным файлом. Следующее построение обновит старый граф под новую версию экстрактора.
Актуальность
Заголовок раздела «Актуальность»Проверяются изменения кода и конфигурации. В запросах связей отсутствующий граф строится по запросу;
устаревший может обновиться автоматически в пределах времени. --fresh
принудительно обновляет, --no-refresh читает сохранённый граф без перестроения.
При превышении лимита ответ может быть помечен как устаревший.
Добавление, удаление или переименование скриптового модуля вызывает полное перестроение, чтобы импорт не сохранил исчезнувшую цель. Чтение и связи остаются в пределах текущей рабочей копии. Граф shell и семантические вызовы Vue/TS в beta.4 не входят.