本文へスキップ
cd /languages
モノレポの定番プログラミングフルグラフ対応

MaguyvaのTypeScript対応: モノレポのためのより良いコンテキスト

MaguyvaはAST解析とシンボル抽出によりTypeScriptに対応しており、AIエージェントはモノレポ全体で、インターフェース、実装、共有パッケージ、JSXを多用したアプリケーションコードをたどることができます。

TypeScriptのページが重要な理由

TypeScriptは、多くのチームがAI支援によるリファクタリングにようやく安心感を抱けると期待する言語です。型システムは助けにはなりますが、本当の問題を取り除いてはくれません。共有パッケージ、DTO、生成されたクライアント、Reactコンポーネント、テスト、アプリコードのすべてが、大規模なリポジトリの中で同じ名前を引き合いに出しているという問題です。

TypeScriptにとって、基準は「構文を理解している」よりも高いところにあります。エージェントは、共有の型、フック、クライアントを編集する前に、定義から実装、影響範囲へとコントラクトをたどる必要があります。

MaguyvaがTypeScriptで実際に抽出するもの

Maguyvaは、.ts.mts.cts、そしてテストやストーリー周りの一般的なTypeScriptファイルのバリエーションにわたって、クラス、メソッド、インターフェース、型エイリアスを抽出します。メンバー接頭辞は正規化される一方、クラス修飾された識別子は保持されます。これは、リポジトリに素のヘルパー名と、同じ末尾セグメントを持つクラススコープのメソッドの両方がある場合に役立ちます。

JSXは、はぐれたマークアップではなく本物の構造シグナルとして扱われ、シンボルの期待値は多くのテスト、ストーリー、設定のパスを明示的にスキップします。これはモノレポにおいて重要です。そうでなければ、エージェントは実際の実装面ではなく足場の再発見に時間を使いすぎてしまうからです。

TypeScriptのリポジトリに役立つMCPワークフロー

通常、次の3つの出発点のパターンで十分です。

  • find_symbolを使う — インターフェース、型エイリアス、フック、サービスの名前がすでに分かっているとき。
  • dependency_searchを使う — パッケージ横断で波及する可能性のある共有の型やクライアントを変更する前に。
  • structural_searchを使う — キーワード一致ではなくコードの形が必要なとき、例えば繰り返されるコンポーネントやメソッドのパターンなど。

「チェックアウトの送信パスを追う」のような概念的な疑問には、生の検索よりもget_task_contextの方がしばしば良い最初の一手になります。

このページが特に関連する場面

このページは、TypeScriptが複数のパッケージの調整レイヤーとなっているWeb/プラットフォームのモノレポにおいて、最も力を発揮します。リポジトリに今も古いJSが多く含まれる場合は、JavaScriptガイドを読んでください。あなたの疑問が本当に「エージェントはアプリコードとインフラのコンテキストを一緒に保持できるか」というものであれば、これをTerraformと組み合わせて読んでください。

最適な用途

  • >1つのTypeScriptリポジトリの中でNext.js、Nodeサービス、共有パッケージ、ツール群を運用する、プロダクト/プラットフォームチーム。
  • >インターフェース、DTO、スキーマ、Reactコンポーネントが連動して動くものの、異なるディレクトリに置かれているリポジトリ。
  • >共有の型やパッケージ境界に手を加える前に、AIエージェントに安全なコンテキストを与えようとするチーム。

エージェントワークフロー

  • >型、インターフェース、コンポーネントを、その定義から実際に使用しているコードパスまで追う。
  • >共有ヘルパーやAPIコントラクトを変更する前に、パッケージ横断で実装を比較する。
  • >共有の型、ユーティリティ、サービスモジュールを編集した場合に想定されるブラストラディウスをマッピングする。

エンジンの詳細

  • >TypeScriptでは、すべてを汎用的なシンボルにまとめてしまうのではなく、クラス・メソッド・インターフェース・型エイリアスを個別に抽出します。
  • >メンバーのプレフィックスは除去されますが、クラス修飾された識別子は保持されるため、`CheckoutService.create` を単なる `create` と区別できます。
  • >JSX要素はインスタンス化としてカウントされ、ノイズを減らすためtest/story/config系のパスはシンボル抽出の対象から明示的に除外されます。

役立つMCPエントリーポイント

  • find_symbol

    調べたい共有インターフェース、型エイリアス、フック、サービスが分かっている場合はここから始めてください。

  • dependency_search

    共有のDTOやクライアントを変更する前に使用し、パッケージ横断での現実的な影響範囲を把握してください。

  • structural_search

    文字列一致ではなくパターンで検索したいとき、例えば繰り返し現れるコンポーネントやメソッドの形状を探すときは、ASTレベルの検索を使用してください。