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

安装总览 kurumi1ksllq/dsh-inventory

DeepSeek Harness
kurumi1ksllq11 天前有提交已提供中文文档扫描:无法判定

在侧栏查看本机插件、MCP、技能与工具的只读清单

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 11 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 取源不可用(Error: github tarball HTTP 404 @ https:
  • · api.github.com
  • · repos
  • · kurumi1ksllq
  • · dsh-inventory
  • · tarball)
扫描于 2026/11/4(1 天前)

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DeepSeek Harness 的只读安装清单:插件包、加载器条目、MCP 服务器、技能及其调用的工具,都收在一个侧边栏面板里。

README

由 DeepSeek 最新模型翻译生成
dsh-inventory DSH 的只读安装清单插件。在左侧栏「安装总览」面板里显示这台机器上实际装了什么。 显示什么 | 分区 | 数据源 | 说明 | | 插件包 | profile package.json(dependencies + dsh.profile.bundles) | 标出未安装(orphan)、已加载、声明来源 | | 插件加载行 | ctx.loader.entries() | 条目 id、模块名、启用状态、fiber 阶段 | | MCP 服务器 | @deepseek-ai/dsh-mcp-client 行 + 运行时工具前缀 | 每台的连接状态、工具数、脱敏后的 command/url | | 技能 | 磁盘根目录扫描 + ctx.skills.list() | 含 disable-model-invocation 的屏蔽桩、来源 rank | | 工具 | ctx.tools.schemas() | 全量工具,含被 tool-search 折叠的(deferred) | | 技能 → 工具 | SKILL.md 正文匹配 + 会话日志 | 四层:精确工具名 / MCP 服务名 / 外部命令 / 脚本路径;会话实证附命中次数 | 只读保证 - 只有 GET /inventory/snapshot,没有写端点
展开完整文档(README 剩余 1 节)
dsh-inventory

DSH 的只读安装清单插件。在左侧栏「安装总览」面板里显示这台机器上实际装了什么。

显示什么

| 分区 | 数据源 | 说明 |
| 插件包 | profile package.json(dependencies + dsh.profile.bundles) | 标出未安装(orphan)、已加载、声明来源 |
| 插件加载行 | ctx.loader.entries() | 条目 id、模块名、启用状态、fiber 阶段 |
| MCP 服务器 | @deepseek-ai/dsh-mcp-client 行 + 运行时工具前缀 | 每台的连接状态、工具数、脱敏后的 command/url |
| 技能 | 磁盘根目录扫描 + ctx.skills.list() | 含 disable-model-invocation 的屏蔽桩、来源 rank |
| 工具 | ctx.tools.schemas() | 全量工具,含被 tool-search 折叠的(deferred) |
| 技能 → 工具 | SKILL.md 正文匹配 + 会话日志 | 四层:精确工具名 / MCP 服务名 / 外部命令 / 脚本路径;会话实证附命中次数 |

只读保证

- 只有 GET /inventory/snapshot,没有写端点
- 不写任何 state 文件,不改 profile 配置,不改 SKILL.md
- 不注册模型可见的工具、skill 或 prompt 段落

快照接口

GET /inventory/snapshot[?refresh=1]

返回 packages / rows / mcp / skills / tools / edges / warnings / counts。MCP 的 env 与 headers 一律不返回,args 里的密钥值会被替换为 <redacted>。

安装

git clone https://github.com/kurumi1ksllq/dsh-inventory.git

在 profile 目录下,把插件 link 进 profile
cd ~/.dsh/profiles/desktop
pnpm add "link:<仓库克隆到的绝对路径>/dsh-inventory"

然后把 dsh-inventory 加进 package.json 的 dsh.profile.bundles,并在 cordis.patch.yml 追加:

- insert:
- id: inventory
name: "dsh-inventory"

重启 DSH 后,左侧栏会出现「安装总览」入口;点进去是整页面板,左上角「‹ 返回对话」回到聊天。

开发

node --test test/.test.mjs # 单元测试(离线,不依赖 DSH)
node scripts/preview.mjs # 用 profile 配置 + 真实 skill 目录跑一遍静态汇总
node scripts/smoke.mjs --snapshot=<snapshot.json> # 用抓到的真实快照跑 host 集成冒烟

npm test 覆盖:多帧 zstd 会话解码、frontmatter(含 CRLF / symlink)、技能扫描与去重、四层边匹配、会话实证窗口、快照组装、包安装判定、工具归属推断、tool-search 折叠判定、客户端侧栏入口 + 主面板注册与三态渲染。

scripts/smoke.mjs 会起一个 stub Cordis 上下文,跑真实的 apply() 和 HTTP handler,验证 14 项:HTTP 200、幽灵包识别、deferred 计算、bsk_ 归属、tool_search 归属、MCP 全连通、技能扫描、屏蔽桩、会话实证、冷构建 <3s、agent 平面工具收录、global 平面工具收录、平面计数上报、payload 无密钥。本机实测冷构建 626 ms,15s 缓存命中 3–4 ms,payload 约 82 KB。

实测数据(本机 2026-10-25 审计,live 快照)

| 项 | 值 |
| 插件包 | 18:13 已加载、5 个「无自身加载行」(bundle 由 include 组成,loader 不暴露同名行)、0 未安装 |
| Loader 行 | 222 行 / 212 个不同模块名(其中 25 行 disabled) |
| MCP | 4 台全连通,41 个工具(codegraph 1 / davinci-resolve 37 / officecli 1 / context7 2),mcp__ 前缀零遗漏 |
| 技能 | 35 = 磁盘 28(user-dsh 27 + user-agents 1)+ 插件运行时 7;磁盘侧零漏扫,7 个屏蔽桩 |
| 工具 | 113 = 全局平面 77 + agent 平面 36(4 个活跃 agent 的并集);归属:内置 55 / MCP 41 / 插件 17 / 未识别 0;被 tool-search 折叠 98 |
| 关系边 | 131,其中 22 条带会话实证;96 个工具没有被任何技能指名 |

「未安装」判定看两件事:package.json 在且它声明的入口文件(main / exports["."])也在。只有目录没有入口的包会被标 orphan 并在 broken 里写明缺什么——这正是首版把「包存在但没激活」误报成「幽灵包」后补的判据。

「已加载」不能只看同名行:bundle 的行是它 include 的模块(dsh-doublecheck/grill、@deepseek-ai/dsh-llm …),包本身没有同名行。判据按「同名行 → 以 包名/ 开头的子行」逐级回退,active 优先;两者都没有的包标 rowless,UI 显示「无自身加载行」,不冒充「未加载」。

工具必须同时读两个平面:ctx.tools.schemas() 不带 scope 只返回全局层,而 read/write/edit/pwsh/skill/todo_write 这些核心工具由 agent preset 注册在每会话平面。只读全局会静默丢掉它们(这正是首版漏掉的东西)。插件通过 ctx.get('agents').list() 枚举活跃 agent,再按 agent 取 schemas(agent),与全局层取并集,并在快照里回报 toolPlanes。

准确性边界(哪些是事实、哪些是推断)

| 面 | 证据等级 | 边界 |
| 插件包 / 加载行 / MCP 列表 | 事实(loader 与磁盘) | 完整;「已加载」见上条回退规则 |
| MCP 工具清单 | 事实(工具注册表前缀) | 与实际数量逐台核对一致 |
| 技能 | 事实(磁盘 + 运行时注册) | 只扫固定根目录,且 cwd 取 host 进程目录;别的会话工作区里的项目级 .dsh/skills 不会出现 |
| 工具清单 | 事实(注册表并集) | 只覆盖快照时刻已注册的;插件注册的临时工具看不到 |
| 工具归属 | 推断 | mcp__ 确定;内置查静态名单;插件靠扫包内 JS 字面量——找不到就标「未识别」,不瞎猜 |
| 技能 → 工具 | 推断 | 文本匹配 + 会话窗口证据;命中次数只代表最近 12 个会话、窗口 8 次调用 |

生效方式

- host 侧代码:DSH 启动时加载,改完要重启 DSH(当前 profile 没开源码 HMR,touch cordis.patch.yml 不会重载插件代码)。
- client 侧代码:浏览器里刷新页面即可。
- 插件本身是只读的,加载失败最多让这一行 fiber 变 failed,不会阻止 DSH 启动;去掉 cordis.patch.yml 里的 - insert: inventory 即可回滚。

已知限制

- 工具归属是推断:mcp__<server>__ 确定;BUILTIN_TOOLS 只收 DSH 本体注册的工具(把它写成插件工具会导致归属错判,且扫描会跳过内置名);其余通过扫描插件包 JS 里的工具名字面量判定,找不到就标「未识别」。
- 技能只扫固定根目录(项目 .dsh/skills、项目 .agents/skills、$DSH_CUSTOM_SKILL_DIRS、~/.dsh/skills、~/.agents/skills、$DSH_BUNDLED_SKILL_DIR),其中「项目」取 host 进程的 cwd,不是每个会话自己的工作区。
- 会话实证只读最近 12 个会话文件,窗口 8 次工具调用。
- 快照缓存 15 秒;?refresh=1 强制重算。
- 被屏蔽的 skill(disable-model-invocation: true)在运行时注册表里看不见,只能靠磁盘扫描,因此显示为「已屏蔽」。

面板布局约定(改 UI 前先读)

根节点是唯一滚动容器(height: 100% + overflowY: auto)。由此有三条硬约定:

1. 根节点的每个直接子节点都必须 flexShrink: 0(header / toolbar / chips / warn / errorBox / section)。列向 flex 默认把子元素压扁:分区一被压缩,overflow: hidden 会把展开的行裁掉,而且根节点 scrollHeight 永远等于 clientHeight——滚动条不出现,展开多了就再也看不到下面的内容。
2. 行内统一 alignItems: center,不要用 baseline。徽章盒(16px 行高 + 边框 = 18px)比文字行高,基线对齐会让徽章看起来比同一行的文字高一截。
3. 空字段不要渲染占位元素。h('span', null, '') 宽高都是 0,但仍然吃掉一个 gap,行与行之间的间距就歪了。

回归测试在 test/client.test.mjs(panel rows stay whole and aligned once a lot is expanded):断言根节点子元素不收缩、全树无 baseline、无版本号的包行不产出空 span。
预览分享卡片长什么样 ↓kurumi1ksllq/dsh-inventory
分享 · DeepSeek Harness Hub
kurumi1ksllq/dsh-inventory

在侧栏查看本机插件、MCP、技能与工具的只读清单

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部