- Home
- Plugins
- Tools & Capabilities
- dsh-plan-auto
J
dsh-plan-auto
jipika/dsh-plan-auto
enter_plan_mode(默认不进:三条硬判据 + 10 分钟冷却)+ plan review 无人应答自动同意(client 点按钮 + host 兜底)。
Install
dsh plugin --profile web add github:jipika/dsh-plan-autoREADME
dsh-plan-auto
给 DSH 的 plan mode 补两件官方没有的东西:
enter_plan_mode工具 —— 把官方/plan命令包成模型可调用的 host 工具,复杂任务时 agent 自主进入 session plan mode。- plan review 无人应答自动同意 ——
exit_plan_mode弹出的 Plan review 卡片(同意执行 / 讨论)如果 3 分钟没人点,自动按下「同意执行」,plan mode 随即退出、agent 开始干活。
架构:两个半边,各管一段
exit_plan_mode ─► ctx.userQuestions.ask ─► 官方 waterfall ─► api-remotes 桥 ─► Client 弹出 Plan review 卡片
▲ │
host 半边包装(兜底) client 半边:到点自动点「同意执行」
- client 半边(主路径,
lib/client.js):每 1 秒扫一次[data-plan-review-key](官方卡片框架上的稳定属性),首次发现开始计时;窗口到点就模拟点击卡片里的「同意执行 / Approve」按钮 —— 等价用户亲手点:官方 waterfall 正常结算、卡片从界面消失、host 拿到正常答案。 - host 半边(兜底,
lib/index.js):包装ctx.userQuestions.ask,窗口 = client 窗口 +fallbackMarginSeconds(默认 +30s)。只在 client 没点成(页面没开、DOM 变了、脚本没加载)时兜底返回Approve。
为什么要 client 来点:那张卡片是 client 自己持有的 pending 请求。host 侧提前返回答案不会结束 client 的等待,卡片会一直挂在界面上(v0.2.0 实测:计划已经批准、agent 都在继续干活了,卡片还在)—— 所以真正的「自动同意」只能由点按钮完成。
行为细节
| 情况 | 结果 |
|---|---|
| 用户 3 分钟内点了 同意执行 / 讨论 / 写反馈 | 完全按用户的选择走(官方行为不变) |
| 3 分钟无人应答 | client 自动点「同意执行」→ 卡片消失、plan mode 退出、agent 执行计划 |
| client 没点成 | host 在 3 分钟 + 30 秒兜底返回 Approve(功能仍生效,但卡片会残留,点掉即可) |
ask_user_question(普通提问) | 完全不掺和,原样透传 |
| 关掉开关 | 完全退回官方行为:一直等用户点卡片 |
配置
优先级:环境变量 > 配置文件 > 默认。host 每次请求现读;client 每 30 秒从 GET /dsh-plan-auto/config 拉一次。
DSH_PLAN_AUTO_APPROVE_SECONDS=30 # client 自动点击窗口(0 = 关闭自动同意)
DSH_PLAN_AUTO_FALLBACK_MARGIN_SECONDS=30 # host 兜底相对 client 的余量
// ~/.dsh/plugin-config/dsh-plan-auto.json —— 改完即时生效(client 最迟 30s 跟上)
{ "approveAfterSeconds": 180, "fallbackMarginSeconds": 30, "enabled": true }
诊断:让 agent 调 plan_auto_status(返回版本 / 开关 / client 窗口 / host 兜底窗口 / 取值来源),或 curl http://127.0.0.1:19387/dsh-plan-auto/config。
安装(desktop profile 手工路线)
# 1) 本地 link
# package.json dependencies 加 "dsh-plan-auto": "link:../../local-plugins/dsh-plan-auto"
# 并 ln -s ../../../local-plugins/dsh-plan-auto node_modules/dsh-plan-auto
# 2) cordis.patch.yml 顶层加:
# - insert:
# - id: dsh-plan-auto
# name: dsh-plan-auto
# 3) 重启宿主生效(host / client 半边的新增与改动都必须重启;disable→enable 不会重读模块)
装好后模型工具面多出 enter_plan_mode 与 plan_auto_status。
契约
- 拥有:工具
enter_plan_mode、plan_auto_status;只读路由GET /dsh-plan-auto/config;运行时包装ctx.userQuestions.ask(卸载时还原);client 侧对[data-plan-review-key]卡片的轮询与点击。 - 冲突时:与本机其他插件无已知交集;工具名冲突会被 scoped layers 覆盖告警。
- 回滚:删掉上面三件套后重启即完全移除。
License
MIT
☕ 赞赏支持
如果 dsh-plan-auto 对你的研究与测试有所帮助,欢迎请作者喝杯咖啡 ☕
给项目点个 Star ⭐ 同样是对开发者最大的鼓励!
Related plugins
T
archify (deepseek-harness)
tt-a1i/archify
90.4k4 hours agoTools & CapabilitiesApache-2.0
T
WeKnora (dsh-weknora)
tencent/weknora
35.7k17 hours agoTools & Capabilities
T
weknora
tencent/weknora
20.2k2 months agoTools & Capabilities
T
BrowserSkill (dsh-plugin-browserskill)
tencent/browserskill
9.7k11 hours agoTools & CapabilitiesMIT