fix(device-test): contain tool processes and add reviewed preview

This commit is contained in:
chenmingxuan committed 2026-10-30 12:43:36 +08:00
1 parent c98d7527a0
commit 7d31e09cb7
59 files changed
+23722

No files matched your search

@@ -0,0 +1,80 @@
"""Read local Windows IPv4 interfaces without sending device discovery packets."""
from __future__ import annotations
import importlib.util
import json
from pathlib import Path
import sys
def discovery_helper():
path = Path(__file__).resolve().parent / "skill" / "scripts" / "vendor" / "v2_discover.py"
name = "artemis_device_test_network_discovery"
spec = importlib.util.spec_from_file_location(name, path)
module = importlib.util.module_from_spec(spec)
sys.modules[name] = module
spec.loader.exec_module(module)
return module
def inventory() -> dict:
helper = discovery_helper()
interfaces = []
eligible = []
for interface in helper.powershell_interfaces():
network = interface.network
reason = helper.exclusion_reason(interface, include_virtual=False)
if not reason and (
network.prefixlen > 30
or interface.address in {network.network_address, network.broadcast_address}
):
reason = "没有可用的 IPv4 广播主机地址"
cidr = f"{interface.address}/{interface.prefix_length}"
interfaces.append(
{
"alias": interface.alias,
"description": interface.description,
"ipv4_interface": cidr,
"network": str(network),
"broadcast": str(network.broadcast_address),
"hardware": interface.hardware,
"eligible": reason is None,
"exclusion_reason": reason,
}
)
if reason is None and cidr not in eligible:
eligible.append(cidr)
return {
"status": "INTERFACES_ENUMERATED",
"interfaces": interfaces,
"eligible_interfaces": eligible,
"device_discovery_executed": False,
}
def main() -> int:
for stream in (sys.stdout, sys.stderr):
if hasattr(stream, "reconfigure"):
stream.reconfigure(encoding="utf-8", errors="backslashreplace")
try:
result = inventory()
except (OSError, RuntimeError, ValueError, TypeError):
print(
json.dumps(
{
"execution_status": "configuration_error",
"error_code": "network_interface_query_failed",
"message": "本机 IPv4 网卡枚举失败;未执行设备发现,请检查 Windows 网络查询权限。",
"device_discovery_executed": False,
},
ensure_ascii=False,
)
)
return 2
print(json.dumps(result, ensure_ascii=False))
return 0
if __name__ == "__main__":
raise SystemExit(main())