🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

前台转后台 nu0y4/dsh-manual-bg

DeepSeek Harness
nu0y414 天前有提交已提供中文文档扫描:未发现敏感能力

一键把正在跑的前台命令转入后台继续执行

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add nu0y4/dsh-manual-bg
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · dev
装得上吗
本站尚未做安装检查
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
  • 发起网络请求
    lib/client.js:151
    fetch("/manual-bg/promote", {
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/dsh-llm@deepseek-ai/dsh-sandbox@deepseek-ai/dsh-shell@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

在 DeepSeek Harness 里一键把正在运行的 shell 命令转到后台:一个 run 工具,卡片上带个小 SVG 掉头按钮。

README

由 DeepSeek 最新模型翻译生成
dsh-manual-bg 把 DeepSeek Harness(DSH)里正在跑的前台 shell 命令,点一下转成后台任务。 DSH 的 jobs 服务只有 start / list / read / kill,没有「接管进行中前台调用」的接口,所以官方工具要么一直等到超时、要么你只能干等。本插件补上这块: - 一个 run 工具(改造自官方 @deepseek-ai/dsh-tool-pwsh,sandbox / jobs / 超时语义保持一致); - 前台等待时同时竞速「命令跑完」和「用户点按钮」; - Web 对话里只渲染一行:命令行 + 行尾 ↩ 图标按钮(无文字、不展开、不输出块); - 点 ↘ 图标 → host 唤醒该调用的等待器 → 工具立刻返回 [moved to background job <id>],命令继续在后台跑,智能体马上能继续下一步;跑完有完成通知,输出可用 job_output 读、job_kill 停。 适用平台 - Windows + PowerShell(run 工具就是 pwsh 工具的改造版)。 - Linux/macOS 需要把工具描述与执行语义换成 bash;架构不用动(ctx.shell 本身就是平台执行器)。
展开完整文档(README 剩余 1 节)
dsh-manual-bg

把 DeepSeek Harness(DSH)里正在跑的前台 shell 命令,点一下转成后台任务。

DSH 的 jobs 服务只有 start / list / read / kill,没有「接管进行中前台调用」的接口,所以官方工具要么一直等到超时、要么你只能干等。本插件补上这块:

- 一个 run 工具(改造自官方 @deepseek-ai/dsh-tool-pwsh,sandbox / jobs / 超时语义保持一致);
- 前台等待时同时竞速「命令跑完」和「用户点按钮」;
- Web 对话里只渲染一行:命令行 + 行尾 ↩ 图标按钮(无文字、不展开、不输出块);
- 点 ↘ 图标 → host 唤醒该调用的等待器 → 工具立刻返回 [moved to background job <id>],命令继续在后台跑,智能体马上能继续下一步;跑完有完成通知,输出可用 job_output 读、job_kill 停。

适用平台

- Windows + PowerShell(run 工具就是 pwsh 工具的改造版)。
- Linux/macOS 需要把工具描述与执行语义换成 bash;架构不用动(ctx.shell 本身就是平台执行器)。

安装

方式 A:从 GitHub 直装(推荐)

dsh plugin --profile web add "github:nu0y4/dsh-manual-bg"

需要配置档里能解析 @deepseek-ai/ 运行时包(本仓库声明了 peerDependencies; DSH 自带插件依赖齐全时 pnpm 会直接复用)。

方式 B:本地开发(link)

1) 让树外包能解析 @deepseek-ai/ 运行时(在包内建 node_modules/@deepseek-ai junction) pwsh -File .\scripts\link-deps.ps1

2) 装进 web profile(写入依赖 + dsh.profile.bundles)
dsh plugin --profile web add "link:<本仓库绝对路径>"

接入预设(让模型真正用上 run 工具)

插件本身只提供能力;要在会话里看到按钮,需要把目标预设里的 shell 工具行换成 dsh-manual-bg/tool。

方式 1:手改预设(原生模式)

在预设的 agent.cordis.yml 里,把:

- id: tool-pwsh
name: '@deepseek-ai/dsh-tool-pwsh'
disabled: !!js process.platform !== 'win32'

换成:

- id: tool-run
name: 'dsh-manual-bg/tool'
disabled: !!js process.platform !== 'win32'

方式 2:全模式覆盖层(原生 + PTC 一起)

scripts/gen-all-modes-patch.mjs 会读 DSH 出厂预设(standard / ptc / minimal / cordis),把它们的 shell 工具行替换成 dsh-manual-bg/tool,生成一个 --patch 覆盖层:

node .\scripts\gen-all-modes-patch.mjs
默认输出:$env:DSH_HOME\profiles\web\all-modes.patch.yml(可用 DSH_HOME 覆盖)

然后用 --patch 挂载(Web 启动参数):

dsh web --patch <...>\lan-access.patch.yml --patch <...>\all-modes.patch.yml --no-open

环境变量:DSH_WEB_PRESETS_DIR(dsh-web-app 的 presets 目录)、DSH_HOME(输出位置)。

不支持出厂预设升级后的自动迁移:DSH 升级后重跑生成器即可。

原理

浏览器(client 半边) host(Node 进程) ┌──────────────────────────┐ ┌───────────────────────────────┐ │ tool.call.toolview │ POST │ manualBackground 服务 │ │ key = "run" │ ─────────────▶ │ Map<callId, resolve> │ │ 命令行 + 行尾 ↩ 图标 │ /manual-bg/ │ promote(callId) → resolve() │ └──────────────────────────┘ promote └──────────────┬────────────────┘ │ 唤醒 ┌────────────────▼────────────────┐ │ run 工具 execute() │ │ registry.start(job) │ │ race(job 完成, 用户 promote) │ │ 完了直接返回 exit/stdout │ │ 用户点了 → 返回 job id │ └─────────────────────────────────┘
- host(lib/index.js):提供 manualBackground 服务,外加 /manual-bg/promote、/manual-bg/ping 两条 HTTP 路由。
- tool(lib/tool.js):run 工具。前台调用先注册成 job,再
Promise.race([registry.wait(...), promotePromise]);按钮命中时返回
kind: "promoted"(timeoutMs: 0 作为手动标记),job 继续跑。
- client(lib/client.js):手写 DSH ModuleLoader bundle,注册 tool.call.toolview(key=run),渲染单行折叠卡片。

行为与边界

- 按钮只对本插件提供的 run 工具生效(原生 pwsh/bash 卡片没有按钮)。
- 失败安全:host 服务不可用时,工具行为退化为官方 pwsh 工具(不会崩)。
- /manual-bg/promote 只接受 {callId},只做「把已登记的前台等待转后台」,不执行命令、不返回数据;/manual-bg/ping 返回待转数量,便于排障。
- 后台任务与官方 job_output / job_kill 完全互通;完成通知走官方 jobs 消费面。

开发 / 测试

node test/host-service.test.mjs # host 服务 + HTTP 路由逻辑
node test/client-view.test.mjs # client bundle(mock ModuleLoader/react)渲染与点击

已知限制

- pending 等待器按进程内 callId 关联,只在一次调用存活期内有效。
- PTC 模式下按钮位于 run_code 卡片展开后的子调用行上(命令不是独立卡片)。
- 覆盖层整份替换出厂预设的 config,Web 编辑器里对这几个预设的修改会被盖掉。
- LAN 开放时(示例中的 lan-access.patch.yml)同网段浏览器也能调 promote 路由:该动作只能把已在跑的命令转后台,不接受参数,风险可控。

致谢 / 归属

lib/tool.js 改写自 DeepSeek Harness 官方包 @deepseek-ai/dsh-tool-pwsh (MIT)。其余代码为本项目原创。

License

MIT
预览分享卡片长什么样 ↓nu0y4/dsh-manual-bg
分享 · DeepSeek Harness Hub
nu0y4/dsh-manual-bg

一键把正在跑的前台命令转入后台继续执行

回到顶部