dsh-plugin-sleep
Manifest valid★ 9Exposes a sleep tool to the model, pausing execution for the specified number of milliseconds before returning, with support for cancellation/clamping
dsh-sleep
DSH 插件:向模型暴露一个 sleep 工具,让模型按指定毫秒数暂停执行后再返回。适合等待时间相关条件成立(服务重启、debounce 窗口、retry backoff)且没有事件型工具可用的场景。
安装
# 从 npm 安装(推荐):
dsh plugin --profile web add @huanlin/dsh-plugin-sleep
# 从本地 checkout 开发安装:
dsh plugin --profile web add link:D:\Projects\deepseek-harness\dsh-sleep
预构建策略:lib/ 入库,无 prepare 脚本,npm 安装开箱即用,无需 allowBuilds。
配置
在 DSH GUI 设置页或 cordis.patch.yml 中配置:
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
maxDurationMs | number | 60000 | 单次 sleep 上限毫秒数。超过会被 clamp 到此值,并在返回中标 clamped: true。 |
defaultDurationMs | number | 0 | 当模型省略 duration_ms 时的回退值。 |
工具
sleep
暂停 N 毫秒后返回。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
duration_ms | integer | 是 | 暂停毫秒数,必须 ≥ 0。超过 maxDurationMs 会被 clamp。 |
reason | string | 否 | 人类可读的暂停理由,会原样回显。 |
返回(规范 JSON):
{
"requested_ms": 1000, // 调用方原始请求值
"actual_ms": 1002, // 实际等待毫秒数
"cancelled": false, // 是否被 abort 信号中断
"clamped": false, // 是否因超过 maxDurationMs 被钳制
"reason": "..." // 可选回显
}
取消语义:如果 sleep 中途 exec.signal 被 abort,工具不抛错,而是立即返回 cancelled: true(取消属于业务非理想态,不属基础设施失败,参见 plugin-development-guide.md §3 C5)。
开发
pnpm install # 安装开发依赖(schemastery、typescript、vitest)
pnpm run typecheck # tsc --noEmit 类型检查
pnpm test # vitest run 单元测试
pnpm run build # tsc + tsdown → lib/
检查
合规自检(参见 plugin-development-guide.md §10):
- 零源码 patch:未修改 DSH checkout 任何文件
- B1:
package.json声明dsh.bundle.patch - B2: 插件自带
cordis.patch.yml(insert 行 id/name/config 齐全) - B3: patch 行
name用包名(Loader 从 profile node_modules 解析) - F1:
files含lib/+cordis.patch.yml - F2:
peerDependencies含 cordis +@deepseek-ai/dsh-tools(不用 devDependencies 冒充) - F3: typecheck/test/build script 齐全
- A4: Config 用 Schemastery schema
- A6: 不导出 default
- C4: 工具返回规范 JSON 值 + render 投影分离
- C6: 尊重
exec.signal取消在途工作 - G: Unit 测试(
tests/tools.spec.ts,35+ 用例)
目录结构
dsh-sleep/
├── src/
│ ├── index.ts # 入口:name、inject、Config(Schemastery)、apply
│ ├── tools.ts # sleep 工具定义 + 可取消等待逻辑 + render 投影
│ └── types.d.ts # @deepseek-ai/dsh-tools + cordis 的环境类型声明
├── tests/
│ └── tools.spec.ts # 单元测试(覆盖正常/取消/clamp/边界)
├── cordis.patch.yml # bundle 层:插入 dsh-sleep 插件行
├── package.json # dsh.bundle.patch 声明 + peerDeps
├── tsconfig.json # NodeNext、ES2022、strict
├── tsdown.config.ts # 单 entry(host-only,无 client bundle)
└── vitest.config.ts # vitest forks pool
Compatibility
Versions
| Latest version | Published | Size |
|---|---|---|
| 0.1.0 | — | — |
| 0.1.1 | — | — |
| 0.1.2 | — | — |
| 0.1.3 | — | — |
| 0.1.4 | — | — |
| 0.1.5 | — | — |
| 0.2.1 | — | — |
| 0.1.6 | — | — |
| 0.2.0 | — | — |
| 0.2.2 | — | — |
Comments
Loading…
Similar plugins
by Ezisup
Pressing Stop on a DSH turn also ends the background jobs that turn started, so a finished job cannot wake the model for a turn you already cancelled.
★ 0
MIT
JavaScript
Sep 29, 2026
dsh plugin --profile web add dsh-stop-kills-jobsby liaoyuqing
LLM request retry plugin for DeepSeek Harness: when a model request fails with a configured HTTP status code, machine code, or provider field=value match, it sleeps for the per-rule delay and re-issue
★ 3
MIT
JavaScript
Oct 26, 2026
dsh plugin --profile web add dsh-llm-error-retryDSH 桌面端(Windows)重启插件:从侧边栏按钮或默认关闭的模型工具重启宿主,重启后按会话原有预设自动唤醒;宿主繁忙时拒绝重启。
★ 0
dsh plugin --profile web add dsh-desktop-auto-restartby kiterunner1
DSH 插件:任务结束或命令卡死时用本机人声提醒,自动中断卡住的 pwsh 调用并把「怎么继续」写回工具结果,并在 spawn 之前拦掉已知的性能陷阱写法。仅 Windows。 / Beeps + stuck-command watchdog + command guard for DeepSeek Harness. Windows only.
★ 0
MIT
JavaScript
Sep 15, 2026
dsh plugin --profile web add dsh-attention-beepby ZhangZiFei
为 DeepSeek Harness Web 提供持久化模型别名:将提供商、模型与推理等级绑定为易记名称,并通过输入框旁的单一选择器快速切换。
★ 0
MIT
TypeScript
Oct 8, 2026
dsh plugin --profile web add dsh-model-aliasesby sjh9714
Observe identical tool failures and optionally pause the next model step in DeepSeek Harness.
★ 0
MIT
JavaScript
Oct 4, 2026
dsh plugin --profile web add dsh-retry-guard