Перейти к содержимому
cd /languages
Стандарт для монорепозиториевПрограммированиеПолная поддержка графа

Поддержка TypeScript в Maguyva: лучший контекст для монорепозиториев

Maguyva поддерживает TypeScript с разбором AST и извлечением символов, чтобы AI-агенты могли прослеживать интерфейсы, реализации, общие пакеты и насыщенный JSX прикладной код в монорепозиториях.

Почему страницы про TypeScript важны

TypeScript — язык, в котором многие команды наконец ждут, что AI-рефакторинг будет ощущаться безопасным. Система типов помогает, но не устраняет настоящую проблему: общие пакеты, DTO, сгенерированные клиенты, React-компоненты, тесты и прикладной код — всё это тянет за одни и те же имена в крупном репозитории.

Для TypeScript планка выше, чем «понимает синтаксис». Агенту нужно проследить контракт от определения через реализацию до радиуса воздействия, прежде чем редактировать общий тип, хук или клиент.

Что Maguyva реально извлекает в TypeScript

Maguyva извлекает классы, методы, интерфейсы и алиасы типов из .ts, .mts, .cts и распространённых вариантов файлов TypeScript вокруг тестов и историй (stories). Префиксы членов нормализуются, но идентификаторы, квалифицированные классом, сохраняются — это помогает, когда в репозитории есть и голое имя хелпера, и метод в области видимости класса с тем же конечным сегментом.

JSX трактуется как настоящий структурный сигнал, а не случайная разметка, а ожидания по символам явно пропускают многие пути тестов, историй и конфигурации. Это важно в монорепозиториях, потому что иначе агент тратит слишком много времени на повторное обнаружение вспомогательных конструкций вместо реальной поверхности реализации.

Полезные MCP-сценарии для репозиториев TypeScript

Обычно достаточно трёх стартовых паттернов:

  • Используйте find_symbol, когда вы уже знаете имя интерфейса, алиаса типа, хука или сервиса.
  • Используйте dependency_search перед изменением общих типов или клиентов, которые могут разветвляться по нескольким пакетам.
  • Используйте structural_search, когда нужна форма кода, а не совпадение по ключевому слову — например, повторяющиеся паттерны компонентов или методов.

Для концептуальных вопросов вроде «проследить путь отправки оформления заказа» get_task_context часто лучший первый шаг, чем сырой поиск.

Где эта страница наиболее актуальна

Эта страница сильнее всего подходит для веб- и платформенных монорепозиториев, где TypeScript — координирующий слой для нескольких пакетов. Если в вашем репозитории всё ещё много старого JS, читайте руководство по JavaScript. Если ваш вопрос на самом деле «может ли агент удерживать вместе контекст приложения и инфраструктуры?», сочетайте эту страницу с Terraform.

Лучше всего подходит

  • >Продуктовые и платформенные команды, у которых Next.js, сервисы на Node, общие пакеты и инструментарий живут в одном репозитории на TypeScript.
  • >Репозитории, где интерфейсы, DTO, схемы и React-компоненты меняются вместе, но живут в разных каталогах.
  • >Команды, стремящиеся дать AI-агентам безопасный контекст, прежде чем те тронут общие типы или границы пакетов.

Сценарии работы агента

  • >Проследить тип, интерфейс или компонент от его определения до путей кода, которые его реально используют.
  • >Сравнить реализации в разных пакетах перед изменением общего хелпера или контракта API.
  • >Составить карту вероятного радиуса воздействия при редактировании общего типа, утилиты или сервисного модуля.

Детали движка

  • >TypeScript извлекает классы, методы, интерфейсы и алиасы типов, а не сводит всё к обобщённым символам.
  • >Префиксы членов удаляются, но идентификаторы, привязанные к классу, сохраняются, что помогает отличить `CheckoutService.create` от голого `create`.
  • >Элементы JSX считаются инстанциациями, а пути test/story/config явно пропускаются при ожидании символов, чтобы снизить шум.

Полезные точки входа MCP

  • find_symbol

    Начните здесь, если знаете общий интерфейс, алиас типа, хук или сервис, который хотите изучить.

  • dependency_search

    Используйте его перед изменением общего DTO или клиента, чтобы получить реалистичный радиус влияния по всем пакетам.

  • structural_search

    Используйте поиск на уровне AST, когда вам нужен паттерн, а не совпадение строки, например повторяющиеся формы компонентов или методов.