Releases: SeverusZh/dsh-yolo-mode
Releases · SeverusZh/dsh-yolo-mode
Release list
dsh-yolo-mode v0.4.0
dsh-yolo-mode v0.4.0
用大模型自动裁决 DeepSeek Harness 沙箱升权申请的双面包插件(宿主审批应答 + 客户端 UI)。
本版本亮点
- 模型下拉选择:设置页的裁判
provider/model改为下拉框,直接读取 Harness 模型配置(connection.api.llm),切换 provider 联动清空 model。 - 每预设默认裁判提示词:
strict最保守、balanced通用、permissive宽松、custom按层级表,judge.systemPrompt留空时自动选用。 - 预设预填充:切换预设时自动把该预设的默认提示词与层级表填入
systemPrompt/levels(选custom留空,供自定义)。
功能总览
- LLM 自动裁决
workspace-write会话中的沙箱升权申请(allow / deny / unsure),确定时免去人工弹窗。 - 六种内置预设(
off/strict/balanced/permissive/yolo/custom)+ 自定义层级表(逐目标模式、逐工具、error/unsure回退)。 - 图形化设置页 + 输入栏状态 chip + 决策统计面板。
- fail-closed:超时、非法输出、模型不可用、并发溢出等一切异常路径都回退为「拒绝」或「转人工」。
- 完整 JSONL 审计日志。
安装
dsh plugin --profile web add dsh-yolo-mode在 profile 的 cordis.patch.yml 追加两行(主条目 + 设置桥接条目):
- insert:
- id: yolo-mode
name: dsh-yolo-mode
config:
preset: balanced
judge: { provider: <provider>, model: <model> }
- insert:
- id: yolo-mode-bridge
name: dsh-yolo-mode/bridge详见 README。
v0.1.0
Changelog
本项目遵循 Semantic Versioning。
[0.1.0] - 2026-08-14
新增
- 宿主侧审批应答插件:作为
approval/requestseam 的应答者,在会话处于可写沙箱模式且审批策略为ask时,用 LLM 自动裁决沙箱升权申请。 - 抢占注册:以
ctx.on('approval/request', handler, { prepend: true })抢占监听列表头,抢在人工应答者之前裁决。 - 前置门槛:按
ctx.sandboxPolicy.resolve({session})校验当前有效模式,仅处理位于modes列表(默认['workspace-write'])内的会话。 - 内置预设:
off/strict/balanced(默认)/permissive/yolo/custom,各含workspace-write与danger-full-access的处置策略与失败 / 不确定回退。 - 自定义层级:
levels支持目标模式、error/unsure回退、以及逐工具tools.<toolName>覆盖,custom预设全字段开放。 - LLM 裁判封装:基于
@deepseek-ai/dsh-llm(BlockAssembler/createUserMessage/llm.stream)与@deepseek-ai/dsh-timeout(deadline)实现,含并发信号量上限与超时。 - 裁决策略映射:
allow → allowed-once、deny → rejected、delegate → next()、judge → 裁判;失败 / 不确定按预设 fail-closed 回退。 - JSONL 审计:
ctx.logger+ 文件(默认%TEMP%/dsh-yolo/judge.log)记录每次裁决的明细。 - 纯函数策略层
lib/policy.js(零依赖,可单测)与单元测试test/policy.test.mjs、test/judge.test.mjs。
安全
- fail-closed:任何错误、超时、非法输出、工具块、并发溢出路径均不放行。
- 裁判 prompt 与 agent 上下文隔离,防审批回环自批准。
- 默认预设为
balanced(不确定 → 转人工),不默认启用permissive/yolo。