feat: add test-preflight runner and deployer prepare adapters

agent-runtime executes fixed tester node operations over JSON stdin.
deployer prepare brings up the local test Compose service the same way.
test-preflight now passes the tester binding; tester select skips
unauthorized cases before creating a runner.
This commit is contained in:
2026-10-19 09:28:50 +08:00
parent 9075ff6a5a
commit adaa8e4edd
9 changed files with 1179 additions and 11 deletions
+16
View File
@@ -52,6 +52,22 @@ python3 <skill-dir>/scripts/agent.py run stop --root <project-root> --run <run-i
`run start` 只为 builder 生成受控的 make 命令;tester/ACK 的执行入口仍由对应 skill
适配器提供。环境、项目或精确 worktree 缺失时 fail closed,并报告需要补的字段。
tester 的 test-preflight 一次性节点入口使用 JSON stdin/stdout:
```bash
printf '%s\n' '{"binding":"tester.android","operation":"platform_probe","platform":"android","node":"local"}' \
| python3 <skill-dir>/scripts/agent.py run exec --root <project-root>
```
入口只接受 `platform_probe`、`network_probe`、`install`、`start` 四种受控操作,命令
由 adapter 固定生成,不读取配置中的 command/argv/shell/env/token。local binding 可执行
固定的只读平台/网络探针和 test-preflight 已授权的 Android 安装/启动;非 local binding
先按 `environment + host + project + path` 解析 Orca worktree,再通过 Orca 的临时 terminal
执行固定的节点 runner,并从协议标记读取一个 JSON 结果,结束后关闭该 terminal。远程 iOS
的安装/启动要求调用方把产物放在 Mac 节点可读路径,并在 matrix 的 `artifact.remote_path`
中声明;协调机上的本地路径不会被错误地当成 Mac 路径。任何 transport、节点工具链或远端
产物缺失都返回结构化 `environment-fail`,绝不在协调节点执行平台命令或伪造 `ready`。
## 验证
- `python3 <skill-dir>/scripts/agent.py validate --root <project-root>` 通过。