SuperAPI AI 工具集

argent-vega

测试与质量

查看项目

更新于 10-15 15:12

技能介绍

Argent Vega 是 argent 提供的针对 Amazon Fire TV(Vega 平台)的控制与检查工具集。它的核心用途是在 TV 设备或 SDK 管理的虚拟设备上驱动、检查 Fire TV 应用,完成应用生命周期管理、界面导航与调试。

平台前提

Vega 是电视平台,只能使用 D-pad。所有交互必须通过 tv-remote 完成,禁止使用 gesture-* 或 touch 类工具,它们在 Vega 上不受支持。导航前必须先 describe 描述界面:从元素树中找到当前光标,即 [focused] 元素;如果没有任何元素报告 [focused],则以 [selected] 作为光标(该工具包经常把高亮项标记为 [selected] 而 focused 仍为 false)。不要凭截图猜测焦点位置。所有工具都以 Vega 序列号(来自 list-devices)作为 udid。

导航循环

对每个屏幕采用两次调用:先 describe,找到光标与目标;再从焦点到目标计算完整的 D-pad 路径(按 frame 数行数与列数),以一次 tv-remote {button:[...]} 下发并以 select 结束;然后再 describe 一次确认。若未命中,重复该循环。

工具列表

设备生命周期:list-devices 列出 Vega 设备及其序列号(用作 udid)和 vvdImage,通常从这里获取两者;boot-device {vvdImage} 启动单个由 SDK 管理的 VVD(例如 vvdImage:"tv")并返回其序列号,若 list-devices 已显示运行中的设备可跳过。停止 VVD 需在 shell 中运行 vega virtual-device stop;注意 CLI 只跟踪它在前台启动的 VVD,因此对用 boot-device 启动的 VVD 可能报告“virtual device not running”且不会停止它;要重启该 VVD,可运行 boot-device {vvdImage, force: true},它会先停止正在运行的 VVD 进程再重新启动。

应用生命周期:launch-app {udid, bundleId},其中 bundleId 为 manifest.toml 中的 interactive component 应用 id(如 com.example.app.main);restart-app {udid, bundleId} 先终止再启动;reinstall-app {udid, bundleId, appPath} 先卸载再安装,appPath 为 .vpkg 文件。

检查与输入:describe {udid} 返回屏幕元素树,是导航前必用的发现工具;tv-remote {udid, button} 用于 D-pad,支持单键、路径数组或重复;keyboard {udid, text} 或 {udid, key:"enter"},使用前需先用 D-pad 聚焦输入框;screenshot {udid, scale?} 通过 adb 在主控端截屏。

describe 返回的是来自设备端自动化工具包的嵌套元素树,每行是一个按钮/文本/图像,带有标签、id(test_id)、[clickable] 以及 [focused]/[selected] 和归一化的 [0,1] frame。只要依据元素树导航即可。如果树返回为空,则 restart-app 后重试。

tv-remote 的 button 可以是单个按键或整条路径。按键包括 up/down/left/right、select、back、home、menu、playPause、rewind、fastForward。单键示例:{button:"down"};重复某键:{button:"down", repeat:3};一次调用下发整条路径:{button:["up","right","right","select"]},对于多步移动强烈建议使用这种方式。

Fast Refresh

Fast Refresh 需要 Debug 构建并运行 Metro。argent 只负责连接 Metro,不会启动 Metro,也不做端口转发(任何平台都一样),这些需在 shell 中自行完成:构建并安装 Debug .vpkg,使用 vega device install-app -p <path/to/debug.vpkg>;运行 npm start(Metro 在 8081,请用 npm start 而非 npx react-native start);运行 vega device start-port-forwarding --port 8081 --forward false(反向);运行 vega device launch-app -a <appId>。Metro 必须在启动应用前就绪;确认 http://localhost:8081/json/list 列出了 Hermes React Native target,之后 .tsx 的修改即可实时热更新。

故障排查

describe 返回空树:restart-app(自动化工具包在启动时附加),然后重试。键盘/D-pad 输入被忽略:在 VVD 内启用开发者模式,运行 vsm developer-mode enable。修改 node_modules 无效:说明当前是 Release 构建;Release 版 Vega 应用的 JavaScript 与原生代码分开加载并存储在设备上,因此打补丁到 node_modules 只在 Debug 构建中有效。

平台说明

Metro 只在 8081 端口连接,固定不可更改。性能分析与崩溃排查请使用 amazon-devices-buildertools-mcp 服务器(analyze_perfetto_traces、get_app_hot_functions、symbolicate_acr)。不受支持的工具及其 Vega 替代:gesture-* 改用 tv-remote;open-url 未接入;debugger-* 因 Vega 不支持 JS 调试器而不可用。这些调用会失败并提示 Tool '<id>' is not supported on vega vvd.(或 ... is not yet implemented on vega.)。

知识库

可使用 search_documentation 工具(amazon-devices-buildertools-mcp 服务器)检索 Vega 文档;社区问答位于 community.amazondeveloper.com。

收费与价格

资料中暂未提供收费、价格或授权方式的信息。