Files
iAs/tools/tool_manager/specs/tool_manager.tool.yaml
T
wunianxiao 4f80e81b0b security(executor): 统一工具级审批 + env 白名单 + 结构化结果
P0-1 统一审批: 高风险工具在 spawn 前统一走审批,与后续消息类型
      (result/http/db) 无关,堵住 stdio→result 绕过审批的漏洞。
      移除 http/db 分支内重复审批(入口已授权)。
P0-4 env 白名单: spawn 前 cmd.env_clear(),仅注入 PATH + spec 声明
      的 env 变量,避免工具读取宿主全部 API key/数据库密码。
      tool_manager spec 补充 HOME/CARGO_HOME/RUSTUP_HOME 供 cargo 使用。
P1-10 结构化结果: 引入 ToolRunOutcome{Ok,Err{kind,message}} 与
      ToolErrorKind 枚举,executor/registry dispatch 返回结构化结果。
      daemon 与 CLI 据此判断成败,删除脆弱的 is_tool_error 字符串前缀
      匹配;失败时记录 kind 便于追踪。
2026-06-22 10:47:01 +08:00

37 lines
1.2 KiB
YAML

name: tool_manager
desc: 创建、修改和构建本地能力工具。用于给助手新增或更新 tools 目录下的 stdio Rust 工具;高风险操作,执行前需要用户确认。
type: stdio
tool: tool_manager
path: /target/release/tool_manager
risk_level: high
timeout_secs: 300
env:
- HOME
- CARGO_HOME
- RUSTUP_HOME
params:
- name: action
required: true
desc: 操作类型:create_tool、update_tool 或 build_tool
- name: tool_name
required: true
desc: 工具名称,只允许字母、数字、下划线和短横线
- name: description
required: false
desc: 工具说明,创建或更新 spec 时使用
- name: rust_code
required: false
desc: 完整的 src/main.rs Rust 源码;省略时 create_tool 会生成默认模板
- name: params
required: false
desc: 参数列表数组,每项包含 name、required、desc
- name: risk_level
required: false
desc: 已弃用,tool_manager 创建/更新的工具一律强制 high risk,传入值将被忽略
- name: timeout_secs
required: false
desc: 新工具超时时间秒数,默认 30
- name: overwrite
required: false
desc: create_tool 目标已存在时是否覆盖,默认 false