security(tool_manager): 禁止自改保留名 + 强制 high risk + 审计日志 + 构建超时清理

P0-2: validate_tool_name 将 tool_manager 等列为保留名,禁止
      create/update/build 作用于自身,杜绝持久化后门。
P0-3: spec_yaml 忽略调用方传入的 risk_level,由 tool_manager
      产出的工具一律 high risk,避免创建低风险后门绕过审批。
审计: 每次调用追加记录到 tools/.tool_audit.log
      (timestamp/user_id/action/tool_name/ok|err/detail)。
构建: 用 timeout 限制 180s,失败时删除残留旧二进制,
      避免 reload 后调用旧版本造成"假成功"。
This commit is contained in:
2026-06-22 10:37:42 +08:00
parent 32c4fcf3a8
commit bf231352fb
2 changed files with 81 additions and 21 deletions
@@ -4,7 +4,7 @@ type: stdio
tool: tool_manager
path: /target/release/tool_manager
risk_level: high
timeout_secs: 120
timeout_secs: 300
params:
- name: action
required: true
@@ -23,7 +23,7 @@ params:
desc: 参数列表数组,每项包含 name、required、desc
- name: risk_level
required: false
desc: 新工具风险级别,low 或 high,默认 low
desc: 已弃用,tool_manager 创建/更新的工具一律强制 high risk,传入值将被忽略
- name: timeout_secs
required: false
desc: 新工具超时时间秒数,默认 30