
> baoer-pi-agent-labs@1.0.0 test
> node --test --test-reporter spec test/*.test.ts

✔ 真实 QuickJS VM 没有 Node / fetch 能力 (199.203474ms)
✔ 成功 store 写入由宿主提交，load 获得上次状态 (206.22491ms)
✔ 失败脚本不提交 store，但先前工具副作用仍发生 (103.424591ms)
✔ 嵌套脚本调用复用 runToolCall 的授权 hook (92.639557ms)
✔ 实际三轮循环把工具结果带回下一次模型请求 (24.867431ms)
✔ 非法参数不会进入工具 execute (7.032083ms)
✔ beforeToolCall 拦截产生错误结果，阻止副作用 (2.569454ms)
✔ 被输出长度截断的工具调用不执行 (2.127497ms)
✔ 并行结束事件按完成顺序，历史按调用顺序 (6.411934ms)
✔ mixed batch 中一个 sequential 工具阻止其他工具提前启动 (12.850719ms)
✔ 等待 agent_end 监听器后才完成 prompt (2.110527ms)
✔ finishTurn 的有界 continuation 恰好补一轮 (1.447549ms)
✔ SessionManager 分支保留废弃历史，恢复选定路径 (14.617915ms)
✔ SDK 使用持久投影，内存篡改不会替代 canonical history (96.34699ms)
✔ 真实Core预算在第8轮toolUse之后停止，不发第9次模型请求 (6.215469ms)
✔ 实际SDK资源配置隔离目标项目的AGENTS/SYSTEM/APPEND与可执行扩展 (113.901268ms)
✔ branch只切内存leaf，未append便重开会恢复最后写入的分支 (5.513327ms)
✔ 路径提取与forkFrom全树复制语义不同 (4.343674ms)
✔ context_edit只改变投影并保留来源，旁支编辑不会泄漏 (0.897085ms)
✔ 压缩保留有效system checkpoint，近期消息保留，旧全文换成摘要 (1.218349ms)
✔ 真实研究包加载 extension / skill / template，拦截 edit (161.170026ms)
ℹ tests 21
ℹ suites 0
ℹ pass 21
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 4458.34903
