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

集群编排 ddvnguyen/dsh-orchestration

DeepSeek Harness
ddvnguyen74 天前有提交已提供中文文档扫描:高危

把多个 DSH 实例组队协同执行复杂任务

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · skill
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 74 天前
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/8) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
🔴 安全扫描发现高危能力自动 · 静态分析源码
v2.7.0
🔴 扫描:高危尚无人工评估

静态扫描发现安装期即执行代码,或命令参数由运行时变量拼接(参数来源无法静态判定,从严处理)。

命令参数由运行时变量拼接读写/删除本地文件发起外部网络请求
查看扫描证据(共 69 处,展示前 69 条)
  • 读取本地文件
    plugins/fleet-agent/src/key-store.ts:171
    text = readFileSync(this.file, 'utf8')
  • 写入本地文件
    plugins/fleet-agent/src/key-store.ts:187
    mkdirSync(dirname(this.file), { recursive: true, mode: 0o700 })
  • 写入本地文件
    plugins/fleet-agent/src/key-store.ts:189
    writeFileSync(tmp, `${JSON.stringify(Object.fromEntries(this.keys), null, 2)}\n`, { encoding: 'utf8', mode: KEY_STORE_MODE })
  • 写入本地文件
    plugins/fleet-agent/src/key-store.ts:190
    chmodSync(tmp, KEY_STORE_MODE)
  • 写入本地文件
    plugins/fleet-agent/src/key-store.ts:191
    renameSync(tmp, this.file)
  • 写入本地文件
    plugins/fleet-agent/src/key-store.ts:192
    chmodSync(this.file, KEY_STORE_MODE)
  • 读取本地文件
    plugins/fleet-agent/src/key-store.ts:208
    if (!existsSync(legacy) || existsSync(current)) return
  • 写入本地文件
    plugins/fleet-agent/src/key-store.ts:210
    renameSync(legacy, current)
  • 读取本地文件
    plugins/fleet-agent/src/service.ts:377
    text = readFileSync(this.profilesFile, 'utf8')
  • 写入本地文件
    plugins/fleet-agent/src/service.ts:407
    mkdirSync(dirname(this.profilesFile), { recursive: true })
  • 写入本地文件
    plugins/fleet-agent/src/service.ts:410
    writeFileSync(tmp, `${JSON.stringify(payload, null, 2)}\n`, { encoding: 'utf8', mode: PROFILE_STORE_MODE })
  • 写入本地文件
    plugins/fleet-agent/src/service.ts:411
    chmodSync(tmp, PROFILE_STORE_MODE)
  • 写入本地文件
    plugins/fleet-agent/src/service.ts:412
    renameSync(tmp, this.profilesFile)
  • 写入本地文件
    plugins/fleet-agent/src/service.ts:413
    chmodSync(this.profilesFile, PROFILE_STORE_MODE)
  • 执行外部命令运行时拼接
    plugins/fleet-agent-provider/src/worktree.ts:17
    execSync(`git worktree add "${worktreePath}" -b "${branchName}"`, {
  • 读取本地文件
    plugins/fleet-agent-provider/src/worktree.ts:30
    if (!existsSync(worktreePath)) return
  • 执行外部命令运行时拼接
    plugins/fleet-agent-provider/src/worktree.ts:31
    execSync(`git worktree remove "${worktreePath}" --force`, {
  • 执行外部命令固定命令
    plugins/fleet-agent-provider/src/worktree.ts:43
    const raw = execSync('git worktree list --porcelain', {
  • 读取本地文件
    plugins/fleet-board/src/feed.ts:130
    if (!existsSync(this.store.path)) {
  • 读取本地文件
    plugins/fleet-board/src/feed.ts:134
    const lines = readFileSync(this.store.path, 'utf8').split('\n').filter(line => line.length > 0)
  • 写入本地文件
    plugins/fleet-budget/src/store.ts:69
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    plugins/fleet-bus/src/store.ts:45
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    plugins/fleet-bus/src/store.ts:58
    appendFileSync(this.path, `${JSON.stringify(event)}\n`, 'utf8')
  • 读取本地文件
    plugins/fleet-bus/src/store.ts:62
    if (!existsSync(this.path)) return
  • 读取本地文件
    plugins/fleet-bus/src/store.ts:63
    const lines = readFileSync(this.path, 'utf8').split('\n').filter(line => line.length > 0)
  • 读取本地文件
    plugins/fleet-extras/src/service.ts:384
    stat = statSync(root)
  • 读取本地文件
    plugins/fleet-extras/src/service.ts:402
    stat = statSync(path)
  • 读取本地文件
    plugins/fleet-extras/src/service.ts:425
    statSync(path)
  • 读取本地文件
    plugins/fleet-extras/src/service.ts:458
    entries = readdirSync(root)
  • 读取本地文件
    plugins/fleet-extras/src/service.ts:467
    stat = statSync(full)
  • 读取本地文件
    plugins/fleet-extras/src/service.ts:480
    return createHash('sha256').update(readFileSync(path)).digest('hex')
  • 读取本地文件
    plugins/fleet-settings/src/overlay.ts:84
    text = readFileSync(this.file, 'utf8')
  • 写入本地文件
    plugins/fleet-settings/src/overlay.ts:112
    mkdirSync(dirname(this.file), { recursive: true })
  • 写入本地文件
    plugins/fleet-settings/src/overlay.ts:114
    writeFileSync(tmp, `${JSON.stringify(this.data, null, 2)}\n`, { encoding: 'utf8' })
  • 写入本地文件
    plugins/fleet-settings/src/overlay.ts:115
    renameSync(tmp, this.file)
  • 发起网络请求
    plugins/fleet-settings/src/service.ts:142
    const response = await fetch(seam.url, {
  • 读取本地文件
    plugins/fleet-settings/src/sessions.ts:201
    return statSync(path).mtimeMs
  • 写入本地文件
    plugins/fleet-supervisor/src/queue.ts:46
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    plugins/fleet-supervisor/src/queue.ts:79
    writeFileSync(tmp, body, 'utf8')
  • 写入本地文件
    plugins/fleet-supervisor/src/queue.ts:80
    renameSync(tmp, this.path)
  • 读取本地文件
    plugins/fleet-supervisor/src/queue.ts:84
    if (!existsSync(this.path)) return
  • 读取本地文件
    plugins/fleet-supervisor/src/queue.ts:85
    const lines = readFileSync(this.path, 'utf8').split('\n').filter(line => line.length > 0)
  • 写入本地文件
    plugins/fleet-tasks/src/store.ts:76
    mkdirSync(dir, { recursive: true })
  • 读取本地文件
    plugins/fleet-teams/src/service.ts:582
    readFileSync(file, 'utf8')
  • 读取本地文件
    plugins/fleet-teams/src/service.ts:590
    return readFileSync(this.memoryFilePath(roomId), 'utf8')
  • 写入本地文件
    plugins/fleet-teams/src/service.ts:597
    mkdirSync(this.storeDir, { recursive: true })
  • 写入本地文件
    plugins/fleet-teams/src/service.ts:600
    writeFileSync(tmp, content, { encoding: 'utf8' })
  • 写入本地文件
    plugins/fleet-teams/src/service.ts:601
    renameSync(tmp, file)
  • 读取本地文件
    plugins/fleet-teams/src/service.ts:668
    text = readFileSync(join(this.storeDir, TEAMS_STORE_FILE), 'utf8')
  • 写入本地文件
    plugins/fleet-teams/src/service.ts:732
    mkdirSync(this.storeDir, { recursive: true })
  • 写入本地文件
    plugins/fleet-teams/src/service.ts:740
    writeFileSync(tmp, `${JSON.stringify(payload, null, 2)}\n`, { encoding: 'utf8' })
  • 写入本地文件
    plugins/fleet-teams/src/service.ts:741
    renameSync(tmp, file)
  • 读取本地文件
    plugins/fleet-teams-ui/src/identity.ts:94
    text = readFileSync(this.file, 'utf8')
  • 读取本地文件
    plugins/fleet-teams-ui/src/overlay.ts:101
    text = readFileSync(this.file, 'utf8')
  • 写入本地文件
    plugins/fleet-teams-ui/src/overlay.ts:130
    mkdirSync(dirname(this.file), { recursive: true })
  • 写入本地文件
    plugins/fleet-teams-ui/src/overlay.ts:132
    writeFileSync(tmp, `${JSON.stringify(this.data, null, 2)}\n`, { encoding: 'utf8' })
  • 写入本地文件
    plugins/fleet-teams-ui/src/overlay.ts:133
    renameSync(tmp, this.file)
  • 写入本地文件
    src/request-log.ts:139
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    src/request-log.ts:140
    appendFileSync(requestLogPath(storeDir, svc), `${JSON.stringify(line)}\n`, 'utf8')
  • 读取本地文件
    src/schedule-store.ts:55
    text = readFileSync(this.path, 'utf8')
  • 写入本地文件
    src/schedule-store.ts:70
    mkdirSync(dirname(this.path), { recursive: true })
  • 写入本地文件
    src/schedule-store.ts:72
    writeFileSync(tmp, `${JSON.stringify(records, null, 2)}\n`, { encoding: 'utf8', mode: STORE_MODE })
  • 写入本地文件
    src/schedule-store.ts:73
    chmodSync(tmp, STORE_MODE)
  • 写入本地文件
    src/schedule-store.ts:74
    renameSync(tmp, this.path)
  • 写入本地文件
    src/schedule-store.ts:75
    chmodSync(this.path, STORE_MODE)
  • 读取本地文件
    team/bootstrap.ts:314
    if (existsSync(presetYmlPath) && existsSync(cordisYmlPath)) {
  • 写入本地文件
    team/bootstrap.ts:319
    mkdirSync(presetDir, { recursive: true })
  • 写入本地文件
    team/bootstrap.ts:526
    writeFileSync(presetYmlPath, presetContent)
  • 写入本地文件
    team/bootstrap.ts:527
    writeFileSync(cordisYmlPath, cordisContent)
扫描于 2026/11/1(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-persona@deepseek-ai/dsh-agent-instructions@deepseek-ai/dsh-tool-bash@deepseek-ai/dsh-tool-pwsh@deepseek-ai/dsh-tool-subagent
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 多实例组队协同
  • 执行复杂任务

README

由 DeepSeek 最新模型翻译生成
dsh-orchestration DSH(DeepSeek Harness)的集群编排层。在 DSH 之上组合,不 fork 它。 结构 - plugins/ — @hydra/dsh-fleet-* cordis 插件(宿主侧) - plugins/ui-fleet-settings/ — 客户端 React 插件(DSH 设置集成) - team/ — 名册、bootstrap、预设、提示词、leader-contract - tests/ — 集群冒烟测试 - container/ — Dockerfile、fleet-web.patch.yml、supervisor 脚本 - bin/ — fleet-supervisor.sh、fleet-e2e.sh
预览分享卡片长什么样 ↓ddvnguyen/dsh-orchestration
分享 · DeepSeek Harness Hub
ddvnguyen/dsh-orchestration

把多个 DSH 实例组队协同执行复杂任务

回到顶部