337 lines
9.0 KiB
JSON
337 lines
9.0 KiB
JSON
{
|
||
"schema_version": 2,
|
||
"id": "artemis-device-test",
|
||
"name": "家庭安防多工具测试",
|
||
"version": "0.5.0+artemis.6",
|
||
"description": "集成 artemis-device-test Skill:PATH/统一目录自动发现工具及匹配位数的 MediaInfo DLL、按能力独立自检、本机网卡枚举、357 条用例路由、媒体/抓包/串口、V1/V2 设备及联合证据。PC/网站复用视觉插件,手机沿用 Artemis;工具成功不等于用例通过。",
|
||
"artemis_version": ">=2.0.0,<3.0.0",
|
||
"platforms": [
|
||
"win32"
|
||
],
|
||
"architectures": [
|
||
"amd64"
|
||
],
|
||
"license": "LicenseRef-Yitong-Artemis-Market; Apache-2.0-Adapter",
|
||
"server": {
|
||
"transport": "stdio",
|
||
"command": "${config.python}",
|
||
"args": [
|
||
"-B",
|
||
"${plugin_dir}/server.py"
|
||
],
|
||
"env": {
|
||
"ARTEMIS_DEVICE_TEST_PROFILE": "${config.profile}",
|
||
"ARTEMIS_DEVICE_TEST_TOOL_ROOT": "${config.tool_root}",
|
||
"ARTEMIS_DEVICE_TEST_ENV_FILE": "${config.rtsp_env_file}",
|
||
"ARTEMIS_DEVICE_TEST_TIMEOUT": "${config.operation_timeout_seconds}",
|
||
"ARTEMIS_DEVICE_TEST_ALLOW_FIRMWARE_WRITE": "${config.allow_firmware_write}"
|
||
}
|
||
},
|
||
"config": {
|
||
"python": {
|
||
"label": "Artemis Python 解释器",
|
||
"description": "填写已安装 MCP 依赖的 Python 绝对路径。源码环境可使用项目 .venv/Scripts/python.exe。",
|
||
"default": "python",
|
||
"required": true
|
||
},
|
||
"profile": {
|
||
"label": "本机工具 profile JSON",
|
||
"description": "可选,固定 tools/runtimes/libraries 路径;不保存凭据。留空时自动发现统一目录和宿主 PATH;显式错误路径不回退。",
|
||
"default": ""
|
||
},
|
||
"tool_root": {
|
||
"label": "已解压工具目录",
|
||
"description": "可选,本机已解压工具目录绝对路径;自动发现 EXE/匹配位数的 MediaInfo.dll,以及 binwalk-python/Scripts/python.exe。不安装程序。",
|
||
"default": ""
|
||
},
|
||
"rtsp_env_file": {
|
||
"label": "本机 RTSP 环境文件",
|
||
"description": "可选,受控 .env 文件的绝对路径;仅按工具指定的环境变量名读取,不回显凭据。",
|
||
"default": ""
|
||
},
|
||
"operation_timeout_seconds": {
|
||
"label": "单次操作预算(秒)",
|
||
"description": "默认 45。10..3300;增加前须将宿主 ARTEMIS_PLUGIN_TOOL_TIMEOUT_SECONDS 设得至少大 10 秒。任务总时限同样生效。",
|
||
"default": "45"
|
||
},
|
||
"allow_firmware_write": {
|
||
"label": "允许显式固件写入",
|
||
"description": "默认 false。仅当前用例明确授权升级时设置 true;工具还要求 execute、完整身份、ROM SHA-256 和审阅摘要。",
|
||
"default": "false"
|
||
}
|
||
},
|
||
"skill": "SKILL.md",
|
||
"targets": [
|
||
"android",
|
||
"mixed",
|
||
"computer"
|
||
],
|
||
"resources": [
|
||
"desktop:local",
|
||
"lab:device-test"
|
||
],
|
||
"capabilities": {
|
||
"kind": "other",
|
||
"recording": "none",
|
||
"required_tools": [
|
||
"environment_doctor",
|
||
"lookup_case",
|
||
"probe_media",
|
||
"media_info",
|
||
"analyze_pcap",
|
||
"scan_ports",
|
||
"scan_firmware",
|
||
"device_capabilities",
|
||
"list_network_interfaces",
|
||
"discover_devices",
|
||
"identify_device",
|
||
"device_info",
|
||
"inspect_firmware",
|
||
"firmware_preflight",
|
||
"verify_firmware",
|
||
"capture_packets",
|
||
"capture_serial",
|
||
"upgrade_firmware",
|
||
"import_evidence",
|
||
"bundle_evidence"
|
||
],
|
||
"tools": {
|
||
"environment_doctor": {
|
||
"effect": "read",
|
||
"observation": false,
|
||
"idempotent": true,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
]
|
||
},
|
||
"lookup_case": {
|
||
"effect": "read",
|
||
"observation": false,
|
||
"idempotent": true,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
]
|
||
},
|
||
"probe_media": {
|
||
"effect": "read",
|
||
"observation": false,
|
||
"idempotent": true,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
],
|
||
"target_argument": "input_file"
|
||
},
|
||
"media_info": {
|
||
"effect": "read",
|
||
"observation": false,
|
||
"idempotent": true,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
],
|
||
"target_argument": "input_file"
|
||
},
|
||
"analyze_pcap": {
|
||
"effect": "read",
|
||
"observation": false,
|
||
"idempotent": true,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
],
|
||
"target_argument": "input_file"
|
||
},
|
||
"scan_ports": {
|
||
"effect": "read",
|
||
"observation": false,
|
||
"idempotent": true,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
],
|
||
"target_argument": "host"
|
||
},
|
||
"scan_firmware": {
|
||
"effect": "read",
|
||
"observation": false,
|
||
"idempotent": true,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
],
|
||
"target_argument": "input_file"
|
||
},
|
||
"device_capabilities": {
|
||
"effect": "read",
|
||
"observation": false,
|
||
"idempotent": true,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
]
|
||
},
|
||
"list_network_interfaces": {
|
||
"effect": "read",
|
||
"observation": false,
|
||
"idempotent": true,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
]
|
||
},
|
||
"discover_devices": {
|
||
"effect": "read",
|
||
"observation": false,
|
||
"idempotent": true,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
]
|
||
},
|
||
"identify_device": {
|
||
"effect": "read",
|
||
"observation": false,
|
||
"idempotent": true,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
],
|
||
"target_argument": "host"
|
||
},
|
||
"device_info": {
|
||
"effect": "read",
|
||
"observation": false,
|
||
"idempotent": true,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
],
|
||
"target_argument": "host"
|
||
},
|
||
"inspect_firmware": {
|
||
"effect": "read",
|
||
"observation": false,
|
||
"idempotent": true,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
],
|
||
"target_argument": "rom_file"
|
||
},
|
||
"firmware_preflight": {
|
||
"effect": "read",
|
||
"observation": false,
|
||
"idempotent": true,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
],
|
||
"target_argument": "host"
|
||
},
|
||
"verify_firmware": {
|
||
"effect": "read",
|
||
"observation": false,
|
||
"idempotent": true,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
],
|
||
"target_argument": "host"
|
||
},
|
||
"capture_packets": {
|
||
"effect": "write",
|
||
"observation": false,
|
||
"idempotent": false,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
],
|
||
"target_argument": "host"
|
||
},
|
||
"capture_serial": {
|
||
"effect": "write",
|
||
"observation": false,
|
||
"idempotent": false,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
],
|
||
"target_argument": "port"
|
||
},
|
||
"upgrade_firmware": {
|
||
"effect": "write",
|
||
"observation": false,
|
||
"idempotent": false,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
],
|
||
"target_argument": "host"
|
||
},
|
||
"import_evidence": {
|
||
"effect": "write",
|
||
"observation": false,
|
||
"idempotent": false,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
],
|
||
"target_argument": "input_file"
|
||
},
|
||
"bundle_evidence": {
|
||
"effect": "write",
|
||
"observation": false,
|
||
"idempotent": false,
|
||
"cancellation": "unknown",
|
||
"evidence": [
|
||
"text",
|
||
"state",
|
||
"file"
|
||
],
|
||
"target_argument": "run_id"
|
||
}
|
||
}
|
||
}
|
||
}
|