mcpField
T
testing-mastracode-tui

testing-mastracode-tui

github.com/mastra-aiテスト・品質29.2k40 回インストール今日更新
リポジトリ

testing-mastracode-tui について

testing-mastracode-tui は、Konsole で mastracode のターミナル UI をテストする開発者向けガイドです。セットアップ、対話操作、描画、スレッド状態、ユニットテストを扱います。

主な機能

  1. 01mastracode のビルドと起動
  2. 02OpenRouter プロバイダーの設定
  3. 03TUI コマンドとスレッド状態のテスト
  4. 04指定幅でのコンポーネント描画
  5. 05TUI のユニットテスト実行

活用シーン

  1. 01ターミナル部品の配置と折り返しを確認
  2. 02新規・切り替え・複製スレッド間のタスク状態を検証
  3. 03Anthropic または OpenAI の直接キーなしで mastracode をテスト

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mastra-ai/mastra --skill testing-mastracode-tui

インストール後、Claude Code で/testing-mastracode-tuiを入力して読み込まれたか確認します。

詳細

Mastracode TUI のテスト

Konsole で mastracode のターミナル UI を対話形式でテストするためのガイドです。

必要な Devin シークレット

  • OPENROUTER_API_KEY — Anthropic/OpenAI のキーを利用できない場合に、OpenRouter をカスタムプロバイダーとして使用するために必要です

前提条件

  1. mastracode とその依存関係をビルドします。

    cd /home/ubuntu/repos/mastra
    COREPACK_ENABLE_STRICT=0 pnpm build:mastracode
    

    これには数分かかる場合があります。pnpm で corepack の問題が発生する場合は、直接インストールしてください:npm install -g [email protected]

  2. @mastra/core または @mastra/memory の既存の DTS エラーが原因でビルドに失敗する場合は、--continue を使って、mastracode を含む後続のパッケージもビルドされるようにします。

    COREPACK_ENABLE_STRICT=0 pnpm turbo build --filter ./mastracode --continue
    
  3. @mastra/core/workspace が見つからず単体テストに失敗する場合は、先に pnpm build:core を実行します。

カスタムプロバイダー(OpenRouter)の設定

Anthropic/OpenAI の API キーを直接お持ちでない場合は、OpenRouter をカスタムプロバイダーとして設定します。

  1. ~/.local/share/mastracode/settings.json を編集します。

    {
      "customProviders": [
        {
          "name": "OpenRouter",
          "url": "https://openrouter.ai/api/v1",
          "apiKey": "<OPENROUTER_API_KEY value>",
          "models": ["minimax/minimax-m2.7"]
        }
      ],
      "models": {
        "activeModelPackId": "custom:Custom",
        "modeDefaults": {
          "build": "openrouter/minimax/minimax-m2.7",
          "plan": "openrouter/minimax/minimax-m2.7",
          "fast": "openrouter/minimax/minimax-m2.7"
        }
      },
      "customModelPacks": [
        {
          "name": "Custom",
          "models": {
            "build": "openrouter/minimax/minimax-m2.7",
            "plan": "openrouter/minimax/minimax-m2.7",
            "fast": "openrouter/minimax/minimax-m2.7"
          },
          "createdAt": "2026-01-01T00:00:00.000Z"
        }
      ]
    }
    
  2. mastracode の起動後、/models → 「Custom」を選択 → 「Activate」でカスタムパックを有効にする必要がある場合もあります。

  3. 画面下部のステータスバーに正しいモデルが表示されていることを確認します(例:build openrouter/minimax/minimax-m2.7)。

Mastracode の起動

cd /home/ubuntu/repos/mastra/mastracode
COREPACK_ENABLE_STRICT=0 pnpm cli

初回起動時に、mastracode のセットアップウィザードが表示される場合があります。「Skip」を選択すると、モデルを対話形式で設定せずにメインの TUI に進めます。

主な TUI コマンド

コマンド操作
/new新しい空のスレッドを作成
/threadsスレッド選択画面を開く(↑↓で移動、Enterで選択)
/clone現在のスレッドを複製
/modelsモデルパックを切り替える
/help利用可能なすべてのコマンドを表示

プログラムによる描画テスト

境界線の位置合わせ、パディング、折り返しなどの表示・描画の不具合を調べる場合は、コンポーネントを直接描画する簡単な tsx スクリプトを書くほうが、目視だけで確認するよりも確実です。

cd /home/ubuntu/repos/mastra/mastracode
npx tsx test-script.ts

主なアプローチ:

  • コンポーネントを直接インポートします(例:./src/tui/components/user-message.js の UserMessageComponent)
  • 指定した幅で描画し、ANSI コードを除去して表示文字幅を測定します
  • (枠線付きコンポーネントの場合)すべての行の表示幅が同じであることをアサートします
  • 複数のターミナル幅(40、60、80、100、120 以上)でテストし、エッジケースを検出します
  • 測定時には Spacer コンポーネントによる末尾の空行を除外します
  • 変更前後を比較する場合は、古いロジックをインラインで再現し、不具合が存在することを確認します

この方法では、目視では見つけにくい不具合を検出でき、合否を具体的に示せます。

スレッド状態の分離テスト

スレッド状態をテストする際の主なシナリオ:

  1. タスクを生成する:モデルに task_write ツールを明示的に使うよう依頼します。モデルによっては(例:minimax)、自動で呼び出さない場合があるため、「task_write ツールを使って、ログインの不具合修正、単体テストの追加、ドキュメントの更新の 3 項目からなるタスクリストを作成してください」のように伝える必要があります。

  2. タスクが表示されることを確認する:ステータス行とエディター入力欄の間に、「Tasks [0/N completed]」セクションがあり、○/▶/✓ アイコンが表示されていることを確認します。

  3. /new をテストする:タスクの進行状況を表示するコンポーネントが完全に消えることを確認します。画面には「Ready for new conversation」と空の入力欄だけが表示されます。

  4. /threads による切り替えをテストする:元のスレッドに戻り、メッセージとタスクが正しく復元されることを確認します。

  5. /clone をテストする:複製したスレッドでは、タスクが空の状態で開始されることを確認します(タスクは一時的なもので、複製先には保存されません)。

よくある問題

  • 観察メモリのエラー:OM モデルに関する GOOGLE_GENERATIVE_AI_API_KEY のエラーが表示されることがあります。/om または settings.json(models.omModelOverride)で、OM モデルを OpenRouter モデルに設定すると解決できます。テスト中に観察が実行されることを想定している場合は、OM モデルを設定してください。
  • モデルがツールを呼び出さない:能力が低いモデルは、mastracode のツールシステムを使用しないことがあります。特定のツール名を指定して、使用するよう明示的に指示してください。
  • ステータスバーに誤ったモデルが表示される:settings.json を変更した後、カスタムパックを有効にするために、TUI で /models を実行する必要がある場合があります。
  • ビルドの失敗:pnpm cli がモジュール解決エラーで失敗する場合は、リポジトリのルートで pnpm build:mastracode(または --continue を付けて)を実行し、すべての推移的依存関係をビルドしてください。
  • LLM を使わないユーザーメッセージの表示:ユーザーメッセージのボックスは、LLM の応答より先に、Enter キーを押すとすぐに表示されます。LLM への接続が機能していなくても、メッセージを送信して枠線付きのボックスを確認することで、表示の不具合をテストできます。

ユニットテストの実行

cd /home/ubuntu/repos/mastra
COREPACK_ENABLE_STRICT=0 pnpm --filter mastracode exec vitest run src/tui/__tests__/

より広範なテストスイートには、既存のテスト失敗が含まれている場合があります。検証する機能に関連するテストに重点を置いてください。

コメント