自动登记并回收浏览器标签、后台任务与端口
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/15 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add r-ayin/dsh-resource-lease该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 17 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/16) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 9 处,展示前 9 条)
- 发起网络请求src/client/index.ts:67
return fetch(API + path, { - 发起网络请求src/client/index.ts:79
fetch(API + '/leases').then((r) => r.json()).then((d: PanelData) => { setData(d); setErr('') }) - 写入本地文件src/index.ts:72
mkdirSync(dirname(logFile), { recursive: true }) - 写入本地文件src/index.ts:73
appendFileSync(logFile, '[' + new Date().toISOString() + '] ' + msg + '\n') - 读取本地文件src/registry.ts:58
if (!existsSync(this.file)) return - 读取本地文件src/registry.ts:59
const raw: unknown = JSON.parse(readFileSync(this.file, 'utf8')) - 写入本地文件src/registry.ts:82
mkdirSync(dirname(this.file), { recursive: true }) - 写入本地文件src/registry.ts:84
writeFileSync(tmp, JSON.stringify({ version: 1, leases: [...this.leases.values()] }, null, 1)) - 写入本地文件src/registry.ts:85
renameSync(tmp, this.file)
扫描于 2026/10/31(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-llm@deepseek-ai/dsh-tools@deepseek-ai/dsh-client-ui-slots给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
资源租约治理:把浏览器标签页、后台任务、进程和端口自动注册为会话持有的租约,支持 TTL 自动回收、固定和手动清理。
README
由 DeepSeek 最新模型翻译生成dsh-resource-lease — 资源租约治理插件
解决「智能体打开浏览器 tab / 后台 job / 临时进程后忘记关」的问题。不依赖模型自觉:资源打开即自动登记租约(归属会话 + TTL),回收由机制执行。
三层防线
1. 自动登记(tools/result 观察钩子,零提示词依赖)
- browser_tab_new → browser-tab 租约(tabId + 归属会话 + TTL,默认 240min)
- bash/subagent/workflow 带 run_in_background → job 租约(jobId,默认 360min)
- 其他资源(run_code 里起的服务器等)→ lease_register 工具手动登记
2. 自动回收(三个触发点互为冗余)
- session/disposed → 关闭该会话全部 session 级租约(正常路径)
- daemon 每 60s 扫 TTL 过期租约(会话挂死兜底)
- 启动 10s 后扫过期账(宿主重启兜底;注册表持久化于 ~/.dsh/resource-lease/leases.json)
- 浏览器空闲 10min 且实查 0 残留 tab 才 browser_close(共享实例安全闸:有未登记 tab 绝不误关)
3. 分类策略
展开完整文档(README 剩余 1 节)
dsh-resource-lease — 资源租约治理插件
解决「智能体打开浏览器 tab / 后台 job / 临时进程后忘记关」的问题。不依赖模型自觉:资源打开即自动登记租约(归属会话 + TTL),回收由机制执行。
三层防线
1. 自动登记(tools/result 观察钩子,零提示词依赖)
- browser_tab_new → browser-tab 租约(tabId + 归属会话 + TTL,默认 240min)
- bash/subagent/workflow 带 run_in_background → job 租约(jobId,默认 360min)
- 其他资源(run_code 里起的服务器等)→ lease_register 工具手动登记
2. 自动回收(三个触发点互为冗余)
- session/disposed → 关闭该会话全部 session 级租约(正常路径)
- daemon 每 60s 扫 TTL 过期租约(会话挂死兜底)
- 启动 10s 后扫过期账(宿主重启兜底;注册表持久化于 ~/.dsh/resource-lease/leases.json)
- 浏览器空闲 10min 且实查 0 残留 tab 才 browser_close(共享实例安全闸:有未登记 tab 绝不误关)
3. 分类策略
- session(默认):随会话/TTL 自动回收
- pinned:用户说「这个留着」→ lease_pin 升级,永不自动回收
- system:白名单(cron/watchdog 服务、外部 Chrome 本来就不登记,天然豁免)
工具面(智能体)
| 工具 | 用途 |
| lease_list | 列租约(默认当前会话活跃;all=true 全部) |
| lease_register | 手动登记(kind=process/port/custom;process/port 需 pid) |
| lease_pin | pinned 升级/降级 |
| lease_release | 立即关闭(force=true 连 pinned 也关) |
| lease_sweep | 立即扫一轮(给 sessionId 则清该会话) |
面板(conversation.view slot「资源租约」)
活跃租约表 + 单个关闭/固定 + 清扫过期,10s 自动刷新。宿主 API:/resource-lease/api/{leases,release,pin,sweep}。
回收执行路径(实测)
- browser tab → ctx.tools.execute('browser_tab_close')(无智能体上下文可用,PTC 不拦)
- job → ctx.jobs.kill(jobId, sessionId, reason) 直连服务(job_kill 工具是智能体作用域注册,全局视图不可见——v1 实测踩坑)
- process/port → process.kill(pid, SIGTERM)
- 「资源已不存在」(not found/ESRCH/already-finished)视为关闭成功;'unknown tool' 不算——连续失败 3 次标 failed 停止重试,面板可见待人工处理
构建(离线,无需 npm install)
- host:bash scripts/build.sh(DSH_CHECKOUT 自动探测 ~/dsh-harness)
- client:bash scripts/build-client.sh(tsc CJS + 手工 __ModuleLoader__ 包装,替代 tsdown)
- 一键:dev_build_plugin → dev_inject_plugin / dev_reload_package 热重载
配置(cordis.patch.yml 可覆盖)
sweepIntervalMs(60s) tabTtlMinutes(240) jobTtlMinutes(360) autoCloseBrowser(true) browserIdleCloseMs(10min) keepClosedHours(72)预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
r-ayin/dsh-resource-lease
自动登记并回收浏览器标签、后台任务与端口
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 266,913已汉化DSH
71.8
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,848已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,171已汉化DSH
70.4