跳到主要内容

dsh-exec-extension

已验证

dsh-exec-extension · v0.1.3 · MIT

Official-pattern dsh bundle: replace headless-startup with per-invocation CLI flags without writing settings

安装

dsh plugin add dsh-exec-extension

用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。

源码

标签

作者

说明文档

dsh-exec-extension

npm · English

DeepSeek Harness bundle,一次性 exec,形状与官方 surface 插件相同(dsh.bundle.patch + parseCmdline + commander)。官方 headless-startup 只声明 [task...];本包禁用该行并插入仍提供 headlessStartup.task 的实现,不改 headless-runner。

CLI 对齐 OpenCode run 与 Pi -p:stdin 拼进 prompt,@file / -f 附文件,--format json 打 session 事件流,--dir 设 cwd,--yolo 跳过审批询问(不关闭 sandbox,不是全开权限)。模型覆盖只在进程内(Rust WASM),不写 settings.yaml。

安装

dsh plugin --profile exec add @deepseek-ai/dsh-headless@$(npm view @deepseek-ai/dsh version)
dsh plugin --profile exec add dsh-exec-extension
dsh --profile exec --help

跟随 dsh CLI 的 npm latest 通道(官方默认:npx @deepseek-ai/dsh / npm install --global @deepseek-ai/dsh)。除非你装的是 dsh@next,否则不要用 @next。@deepseek-ai/dsh-headless 自己的 latest 标签是过期 rc,所以第一行取 CLI 的 latest 版本,而不是 headless 自己的 latest。dsh-exec-extension 走本包 latest。只有需要快照时才用 @<version> 冻结。npm 安装不必放行 prepare。

Git 备选:dsh plugin --profile exec add github:LvDAO/dsh-exec-extension

只用独立 profile。官方 headless --model 必须仍因未知选项失败。

命令行

dsh --profile exec [options] [--] [task|-]
cat README.md | dsh --profile exec "summarize this"
dsh --profile exec @notes.md --full-auto "use the notes"
旗标 含义
-m, --model 本进程模型(不进入 task)
--effort, --reasoning-effort off|high|max
--thinking Pi 档位;xhigh/max → max,minimal/low/medium/high → high
--provider 本进程 provider
-C, --cwd / --cd / --dir 工作目录(发布到 headlessStartup.cwd)
--timeout <seconds> N 秒后 appExit(1)
-s, --sandbox / --permission-mode read-only | workspace-write | danger-full-access
--approval ask|never|allow ask 无 UI 则 fail-closed;never 自动拒绝;allow 自动批准
--full-auto workspace-write + auto-allow(CI)
--yolo / --dangerously-skip-permissions 跳过审批询问(auto-allow)。不设 danger-full-access;默认 sandbox 仍是 workspace-write。全开权限请用 --sandbox danger-full-access
--tools-mode native|code|both 工具呈现
-f, --file / @path 把文件正文附进 task
--output-schema <path> prompt 约束 JSON Schema,不是解码期强制
-o, --output-last-message <path> 同时把最终 assistant 文本写入文件
--format text|json / --mode json json 为 session 事件 JSONL
-c, --config key=value 可重复的本进程覆盖
--env KEY=VALUE / --api-key 只改进程环境变量,不写盘
--print-selection 打印 overlay 后的 selection JSON 并退出

未知旗标报错。Overlay 从不调用 saveSelection()。

--output-schema 只是 prompt 约束,不是解码期强制。--approval allow 与 --yolo 会装本进程 auto-grant:dsh 的 never 是自动拒绝,headless 又没有审批 UI。--yolo 不会改成 danger-full-access;要全开请用 --sandbox danger-full-access。

headlessStartup 为 { task, cwd, permissionMode, approvalPolicy, autoApprove, toolsMode?, format }。sandbox-policy / approval / tools 通过 !!js ctx.headlessStartup.* 注入。官方 headless-runner 仍只读 task。

非目标

MCP、Host、HTTP、resume、--image、分叉 headless-runner。MCP 放 profile 静态 patch + 进程 env。

npm test
DSH_BIN=/path/to/dsh npm run acceptance