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

Підтримка TypeScript у Maguyva: кращий контекст для монорепозиторіїв

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

Чому сторінки про TypeScript важливі

TypeScript — мова, де багато команд очікують, що рефакторинг за допомогою AI нарешті відчуватиметься безпечним. Система типів допомагає, але не усуває реальну проблему: спільні пакети, DTO, згенеровані клієнти, компоненти React, тести та код застосунку — усе це тягне за одні й ті самі назви у великому репозиторії.

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

Що Maguyva насправді вилучає в TypeScript

Maguyva вилучає класи, методи, інтерфейси та псевдоніми типів у межах .ts, .mts, .cts та поширених варіантів файлів TypeScript навколо тестів і story-файлів. Префікси членів нормалізуються, але кваліфіковані класом ідентифікатори зберігаються, що допомагає, коли в репозиторії є і гола назва хелпера, і метод у межах класу з тим самим кінцевим сегментом.

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

Корисні робочі процеси 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, коли потрібен патерн, а не збіг рядка — наприклад, повторювані форми компонентів чи методів.