TARS-snail/dsh-guard-sensitive-paths0

dsh-guard-sensitive-paths

Approval guard for DeepSeek Harness: write/edit/editor/bash calls touching sensitive paths (.env, .git, SSH keys, .pem) and reads of SSH keys or certificates become an approval ask.

包名
dsh-guard-sensitive-paths
版本
1.1.0
许可证
MIT
最近更新
2026年9月2日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:TARS-snail/dsh-guard-sensitive-paths

生效的配置里应能看到 id 为 sensitive-paths 的一行(name: dsh-guard-sensitive-paths)


## 配置

默认零配置即开启。在 profile 的 `cordis.patch.yml`(用户层)中按 id 覆盖:

```yaml
- id: sensitive-paths
  name: dsh-guard-sensitive-paths
  config:
    sensitivePaths: false
字段类型默认说明
sensitivePathsbooleantruefalse 时守卫整体关闭:不注册任何监听器,成为空操作

工作原理

  • 守卫以 PREPEND 方式注册在监听链最前,先于任何权限授予等其它 tools/pre-execute 监听执行;命中敏感目标(含读取密钥材料)即返回 ask 决策,理由为「 targets the sensitive path ; approval is required because it matches the sensitive-path policy」。
  • 未命中的调用经 next() 原样委托,不产生任何延迟或副作用。
  • 写/改类工具按完整敏感集(.env.git.ssh、SSH 私钥、.pem)匹配,read密钥子集(SSH 私钥、.pem)匹配,两者共享同一套 basename 规则。
  • 导出的 SENSITIVE_PATH_GLOBS 常量与搜索层的排除 globs 互为镜像,两处各自独立实现、互不依赖(守卫匹配用分段规则,搜索层匹配用 glob 排除 + 路径二次过滤)。

开发与维护

  • src/ 为源(仅类型导入 cordis / dsh-tools;运行时仅依赖 schemastery 的 z,由宿主提供)。
  • lib/ 为构建产物(tsc 输出 + 打包入口),随包发布;修改 src/ 后需重新构建并同步 lib/
  • 测试在 tests/sensitive-paths.spec.tsisSensitivePath 单测 + 真实组合下 pre-execute 返回 ask 的行为测试)。

许可证

MIT

配置

默认零配置即开启。在 profile 的 cordis.patch.yml(用户层)中按 id 覆盖:

- id: sensitive-paths
  name: dsh-guard-sensitive-paths
  config:
    sensitivePaths: false
字段类型默认说明
sensitivePathsbooleantruefalse 时守卫整体关闭:不注册任何监听器,成为空操作