一条命令看状态
$ npm run fvtt:cdp -- doctor
$ npm run fvtt:cdp -- combat-snapshot
$ npm run fvtt:cdp -- execute-turn --json '@turn.json'
核心特性
Turn Protocol v2
只公开 selected-targets / self / placed-template 三种 input.mode,枚举参数与目标模式正交,不存在第四种隐式模式。
四态回执
completed / rejected / partial / indeterminate 四态结果,写操作附带 token diff、chat card 与 timing,Agent 不猜状态。
allowlist 安全边界
正常命令走 allowlist;debug-eval 仅在 ARCANE_FVTT_DEBUG_EVAL=1 时启用,任意 eval 不进入主流程。
token diff 可观测性
每次写操作返回 tokenDiffs、itemCardId、warnings 与 timings,结果可审计、可重放、可对比。
execute-turn 返回示例
{
"status": "completed",
"sourceTokenId": "pNPz2V5cFKYZmzds",
"actionKey": "greatsword.attack",
"targetTokenIds": ["SUnqlZmNomEYNOzh"],
"tokenDiffs": [
{
"_id": "SUnqlZmNomEYNOzh",
"system.attributes.hp.value": -12
}
],
"itemCardId": "KxG8p2mQvLrT5wFj",
"warnings": [],
"timings": {
"totalMs": 1847
}
}