$ cat ~/map/pi-jev-auto-mode.md
pi-jev-auto-mode
Jev 驱动的自动模式:确定性策略先行、语义判断居后,无法决断的调用一律阻断。
extensions✓ 9月18日
事实速查
- GitHub Stars
- ★ 32
- Forks
- 2
- 许可证
- MIT
- npm / 月
- —
- 最后推送
- 2026年9月24日
安装
运行 pi install npm:pi-jev-auto-mode(或 pi install git:github.com/jomatsu/pi-jev-auto-mode,或用 pi -e npm:pi-jev-auto-mode 免安装试用);语义层需要经 /jev-auto-mode login 存入的 TypeSafe API 密钥,即使没有密钥,门控也照常工作## 速览
一个由 TypeSafe Jev 驱动的 pi 自动模式:确定性策略层先回答它能回答的,被上抛的工具调用交由语义判断,而一切无法决断的调用一律阻断,不会回头来问你。
## 要点
- $两层依次把关:硬拒绝命令与你的 deny 模式在第一层就地阻断、绝不送抵 Jev,allow 模式与声明的 safeCommands 分别带记录放行或静默放行,只读内建工具与项目内对未保护路径的写入静默放行——而危险命令形态与受保护路径(.env、.git/、~/.ssh、.pi/、.github/workflows/、AGENTS.md)即使看起来只读、或仍留在工作目录内,也会上抛给 Jev;其余一切同样进入判断。
- $无法决断的中间带默认阻断:Jev 条目带 required 或 hazard 的 mode、hazard 或 soft 的 severity,intent_coverage 是许可问题;/jev-auto-mode uncertain deny|ask|allow 可以恢复确认对话框或信任中间带。
- $gateScope 决定语义层的覆盖范围:默认 all 由确定性层为它能够担保的情形背书——只读检查、声明的安全命令、项目内未保护路径的写入——其余全部送判;matched 恢复仅按模式匹配的旧行为,正是那种模式曾让一条谁也没匹配上的上传命令未经任何判断就执行了。
- $实测开销:一次被判断的调用约半秒(十一条普通命令实测 193-642 毫秒),快速路径零开销;随包发布的阈值以十二个夹具校准,数字全文公布在 docs/calibration.md,并被明确当作起点而非真理。
- $密钥处理:/jev-auto-mode login 先对 API 验证 TypeSafe 密钥,通过后才以属主只读文件存入 $PI_CODING_AGENT_DIR/secrets/;设置了 TYPESAFE_API_KEY 时环境变量优先,TYPESAFE_DEFAULT_MODEL 选择模型(默认 jev-latest);Jev 处于早期访问阶段,账号可能在等待名单上。
- $无密钥时照样失败关闭:确定性规则继续运行——只读与声明的安全命令放行、硬拒绝形态阻断——而无人担保的调用会收到未连接的提示并被阻断,而非悄悄放行;语义层活跃时页脚显示 jev 与其作用域,未连接时显示 jev no key。
- $项目级设置受信任门约束:全局配置在 $PI_CODING_AGENT_DIR/jev-auto-mode.json,项目覆盖 .pi/jev-auto-mode.json 只对受信任的项目生效——不受信任的 checkout 无权放松正在把关它的门控。
## 常见问题
Q 自动模式会放行一切吗?
不会——设计方向恰恰相反。硬拒绝与危险形态在确定性层阻断,危险形态的命令只在意图覆盖明确满足时才放行,而任何无人担保的调用——包括 Jev 无法决断的一切——默认一律阻断。
Q 没有 TypeSafe API 密钥会怎样?
门控依然在岗:确定性规则继续运行,只读与声明的安全命令放行,硬拒绝形态阻断;无人担保的调用会收到未连接 Jev 的提示并被阻断,而不是被悄悄允许。
Q 如何重新调整阈值?
每次判断都会在转录中记录一张按条件展开的表格;/jev-auto-mode threshold 会在上次观测到的概率旁显示当前值,threshold 加规则名与数值即可写入立即生效的覆盖值;阈值必须两侧都留有中间带(0.5 < t <= 1)。
## 参考链接
## 相关条目
## 教程
最后更新: 2026年9月18日