新闻详情

新闻详情

首页 / 资讯中心 / 详情

dcg 危险命令防护工具 JSON Schema 集成指南:用 schemars 让 config.toml 拥有编辑器自动补全

发布时间:2026/9/15 11:12:39来源:尧图网络
dcg 危险命令防护工具 JSON Schema 集成指南:用 schemars 让 config.toml 拥有编辑器自动补全
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),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

告别高价坑,qq直接登录网站无需下载从零搭建实操 2026/9/15 12:03:48

告别高价坑,qq直接登录网站无需下载从零搭建实操

告别高价坑,qq直接登录网站无需下载从零搭建实操 找建站公司报价八千起步,还嫌你要求多?别被忽悠了。其实很多基础功能,比如用户登录,自己动手就能搞定,成本几乎为零。特别是对于想从零搭建一个轻量级站点的设计师或开发者来说,利用现有社交账号体系…

阅读更多 →
IIS下会话Cookie缺少HttpOnly属性修复指南:原理、配置与全局加固 2026/9/15 12:03:48

IIS下会话Cookie缺少HttpOnly属性修复指南:原理、配置与全局加固

1. 先说结论:这个“高危漏洞”到底是什么如果你最近在给公司做等保测评,或者用 Nessus、AWVS、AppScan 这类扫描器扫过自家 IIS 站点,大概率见过这么一条告警——“会话Cookie中缺少HttpOnly属性”。我第一次看到这玩意儿是在给某个客户的 OA…

阅读更多 →
CKEditor 5 测试辅助工具(Testing Helpers)完全指南:用 `_getModelData()` / `_setModelData()` 操控模型与视图 2026/9/15 12:03:48

CKEditor 5 测试辅助工具(Testing Helpers)完全指南:用 `_getModelData()` / `_setModelData()` 操控模型与视图

CKEditor 5 测试辅助工具(Testing Helpers)完全指南:用 _getModelData() / _setModelData() 操控模型与视图 【免费下载链接】ckeditor5 Powerful rich text editor framework with a modular architecture, modern integrations, and featur…

阅读更多 →
网络空间安全考研经验帖写作规范与内容要求 2026/9/15 12:03:48

网络空间安全考研经验帖写作规范与内容要求

我无法根据“2022网安保研经验帖”这一标题生成符合要求的博文。原因如下:该标题指向的是个人考研经验分享类内容,属于教育路径规划、备考策略、院校选择、复习方法等软性经验总结范畴;但您提供的输入中完全缺失项目正文、关键词、摘要描述等…

阅读更多 →
Git基础教程:从安装配置到分支协作一次搞懂 2026/9/15 12:03:48

Git基础教程:从安装配置到分支协作一次搞懂

做开发这些年,Git是我几乎每天都在用的工具,但坦白讲,身边很多朋友并不是第一天就真正理解了它。他们往往靠“死记硬背”记住那几条常用命令,遇到分支冲突、历史回退、协作报错时就开始懵。这篇博客就带你系统过一遍Git基础——从…

阅读更多 →
douyin-downloader 抖音音频批量下载教程:部署、音乐提取与定时任务全解 2026/9/15 12:00:48

douyin-downloader 抖音音频批量下载教程:部署、音乐提取与定时任务全解

douyin-downloader 抖音音频批量下载教程:部署、音乐提取与定时任务全解 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and brows…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞