关于 testing-mastracode-tui
testing-mastracode-tui 是供开发者在 Konsole 中测试 mastracode 终端界面的指南,涵盖构建设置、交互检查、渲染测试、线程状态行为和单元测试。
主要功能
- 01构建并启动 mastracode
- 02配置 OpenRouter 提供方
- 03测试 TUI 命令与线程状态
- 04按指定宽度渲染组件
- 05运行 TUI 单元测试
适用场景
- 01检查终端组件的对齐和换行
- 02验证新建、切换及克隆线程时的任务状态
- 03没有 Anthropic 或 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 用作自定义提供方
前提条件
-
构建 mastracode 及其依赖项:
cd /home/ubuntu/repos/mastra COREPACK_ENABLE_STRICT=0 pnpm build:mastracode这可能需要几分钟。如果
pnpm出现 corepack 问题,可直接安装:npm install -g [email protected] -
如果构建因
@mastra/core或@mastra/memory中已有的 DTS 错误而失败,请使用--continue,以便下游包(包括 mastracode)仍能构建:COREPACK_ENABLE_STRICT=0 pnpm turbo build --filter ./mastracode --continue -
如果单元测试因缺少
@mastra/core/workspace而失败,请先运行pnpm build:core。
配置自定义提供方(OpenRouter)
如果你没有直接的 Anthropic/OpenAI API 密钥,请将 OpenRouter 配置为自定义提供方:
-
编辑
~/.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" } ] } -
启动 mastracode 后,你可能还需要通过
/models→ 选择“Custom” → “Activate”来激活自定义模型包。 -
检查底部状态栏是否显示正确的模型(例如
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组件产生的末尾空行 - 对于前后对比,内联模拟旧逻辑,以确认缺陷确实存在
这种方法能够发现肉眼难以察觉的缺陷,并提供明确的通过/失败证据。
测试线程状态隔离
线程状态测试的关键场景:
-
生成任务:明确要求模型使用
task_write工具。某些模型(例如 minimax)可能不会自动调用它,你可能需要这样说:“请使用 task_write 工具创建一个包含 3 项的任务列表:修复登录漏洞、添加单元测试、更新文档” -
验证任务可见:在状态行与编辑器输入框之间,查找带有 ○/▶/✓ 图标的“Tasks [0/N completed]”部分。
-
测试
/new:任务进度组件应完全消失。屏幕应仅显示“Ready for new conversation”和一个空输入框。 -
测试
/threads切换:切换回原线程,消息和任务应能正确恢复。 -
测试
/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),以构建所有传递依赖项。 - 未使用大模型渲染用户消息:按下 Enter 后,用户消息框会立即渲染,无需等待任何大模型响应。你可以在没有可用大模型连接的情况下测试渲染问题——只需提交一条消息并检查带边框的消息框。
运行单元测试
cd /home/ubuntu/repos/mastra
COREPACK_ENABLE_STRICT=0 pnpm --filter mastracode exec vitest run src/tui/__tests__/
更广泛的测试套件中可能存在一些既有测试失败;请重点关注与待验证功能相关的测试。