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

资源租约治理 r-ayin/dsh-resource-lease

DeepSeek Harness
r-ayin17 天前有提交已提供中文文档扫描:含敏感能力

自动登记并回收浏览器标签、后台任务与端口

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
装得上吗
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 17 天前
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/16) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
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)
预览分享卡片长什么样 ↓r-ayin/dsh-resource-lease
分享 · DeepSeek Harness Hub
r-ayin/dsh-resource-lease

自动登记并回收浏览器标签、后台任务与端口

回到顶部