首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
dcg 危险命令防护工具 JSON Schema 集成指南:用 schemars 让 config.toml 拥有编辑器自动补全
📅 2026/9/15 11:12:53
✍️ 爱科研究院
👁 阅读 3,247
dcg 危险命令防护工具 JSON Schema 集成指南用 schemars 让 config.toml 拥有编辑器自动补全【免费下载链接】destructive_command_guardThe Destructive Command Guard (dcg) is for blocking dangerous git and shell commands from being executed by agents.项目地址: https://gitcode.com/GitHub_Trending/de/destructive_command_guarddcgDestructive Command Guard是一个 AI 智能体危险命令防护工具能拦截 AI Agent 执行的git reset --hard、rm -rf /等破坏性命令。它的核心配置文件config.toml字段众多手写时容易拼错键名。好消息是dcg 通过 Rust 生态的schemars库直接从配置类型自动生成 JSON Schema让你的编辑器获得自动补全、悬停文档和错误校验。一、为什么 dcg 需要 JSON Schemadcg 的 config.toml 包含 16 个配置板块general、packs、policy、heredoc、history、git_awareness等每个板块又有若干字段。新手常见痛点❓ 记不住字段名retention_days还是retain_days❓ 不确定取值范围history.max_size_mb最小能设多少❓ 拼写错误静默通过TOML 本身不校验未知键错写enable true不报错配置直接失效JSON Schema 正是解法——它是描述配置结构的标准格式编辑器插件读入后即可提供补全与校验。二、schemars类型到 Schema 的一键生成dcg 没有手写 Schema而是在每个 Rust 配置结构体上派生schemars::JsonSchematraitSchema 由代码自动生成配置类型定义src/config.rs 中的Config结构体生成逻辑src/config.rs 的config_json_schema()函数调用schemars::schema_for!(Config)后补上$id、title、description元信息依赖声明Cargo.toml 中schemars 1.0注释明确写着用途——JSON Schema generation for config.toml (editor autocomplete/validation)这样做的好处配置结构一改Schema 自动跟上永远不会和二进制行为脱节。生成的成品已提交在仓库根目录config.schema.json采用 JSON Schema draft 2020-12 规范。三、一键启用编辑器自动补全步骤VS Code 用户Even Better TOML 插件在插件市场安装Even Better TOML在config.toml顶部加一行 Schema 关联注释#:schema 指向 dcg 发布的 config.schema.json 地址 [packs] enabled [kubernetes]也可以在 VS Code 设置的evenBetterToml.schema.associations中把**/dcg/config.toml和**/.dcg.toml关联到该 Schemataplo 用户LSP / CLI在仓库根目录的.taplo.toml中为 dcg 配置文件规则指定[rule.schema]的path即可。两种方式的完整配置示例参见官方文档 docs/configuration.md 的 Editor Autocomplete Validation 章节。启用后你会得到✅ 输入[his自动补出[history]✅ 悬停字段名显示完整文档如retention_days会提示保留天数默认 90✅ 未知字段、类型错误标红报错四、快速了解 Schema 结构config.schema.json 的根对象把 16 个配置板块暴露为properties每个板块通过$ref指向$defs中的定义关键亮点板块校验能力示例policy模式只允许deny/ask/warn/log四个值oneOf约束historyretention_days限制在 1~3650 之间minimum/maximumgeneralunverified_decision只能是ask或denyheredoctimeout_ms等字段标注uint64格式且minimum: 0这些约束来自 src/config.rs 中的#[schemars(range(min 1, max 3650))]等属性宏——校验规则与代码共享同一份真相。五、如何重新生成 Schema 与漂移检测手动重新生成# 打印到标准输出 dcg config schema # 写入或覆盖文件 dcg config schema --output config.schema.json该子命令定义于 src/cli.rs。漂移检测测试防止 Schema 过期dcg 内置了一个防脱节测试 tests/config_schema_drift.rs它用当前配置类型重新生成 Schema与仓库中提交的config.schema.json逐字节比对一旦有人改了配置结构却忘了重新生成 SchemaCI 立即失败。若确认是有意变更可运行DCG_BLESS_SCHEMA1 cargo test --test config_schema_drift让测试自动重写提交文件。六、总结 dcg 用schemars派生宏把 Rust 配置类型直接编译成 JSON SchemaSchema 与程序行为永不脱节⚡ 一条dcg config schema命令即可导出最新 Schema 配合Even Better TOML或taploconfig.toml立刻拥有补全、悬停文档与报错能力 漂移检测测试保证提交的 config.schema.json 始终与代码同步想让 AI Agent 安全执行命令配置是第一步有了 Schema配置这一步也可以又快又稳。 延伸阅读docs/configuration.md · src/config.rs · tests/config_schema_drift.rs【免费下载链接】destructive_command_guardThe Destructive Command Guard (dcg) is for blocking dangerous git and shell commands from being executed by agents.项目地址: https://gitcode.com/GitHub_Trending/de/destructive_command_guard创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/9/15 11:12:53
CubeSandbox v0.2.1 版本解析:官方 Python SDK、启动性能优化与 Seccomp 安全修复全解读
2026/9/15 11:12:53
用 Faker::TvShows::DrWho 生成《神秘博士》主题假数据:完整 API 指南与实现解析
2026/9/15 11:07:52
OpenCreator:46分钟口播一次跑完多语言版,视频翻译与AI配音本地化
2026/9/15 14:08:20
二手车数据爬取与可视化分析:从抓包到交互看板的完整实现
2026/9/15 14:08:20
美赛可用的可复现复杂网络随机图生成工具
2026/9/15 14:08:20
AI辅助8GB老笔记本内存优化:从94%占用降到64%的实战记录
2026/9/15 14:08:20
负载高但CPU空闲?一次定时任务引发的上下文切换过高排查实践
2026/9/15 14:08:20
Mininet 2.2.1 MiniEdit 图形界面实操:从画拓扑到导出脚本的完整指南
2026/9/15 14:03:19
Astryx 导航目的地契约(navigation-destinations)深度解析:跨组件统一的导航安全规则与共享 sink 架构
2026/9/15 0:01:49
2026年NVMe SSD装机避坑指南:PCIe 4.0/5.0、NVMe启动与M.2 Key兼容性实测
2026/9/15 0:01:49
Flutter与OpenHarmony物理动画实现指南
2026/9/15 0:01:49
vscode插件开发之语言服务器,这次让用 TaoToken 接入的 Codex 排查 LSP 服务端连接
2026/9/15 13:08:25
拯救者Y7000黑屏故障排查与维修实战指南
2026/9/14 2:50:57
AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
2026/9/14 11:25:37
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化