fix: 补全5个工具的权限策略 — task_manager/delegate_task 等不再被拦截
根因:DEFAULT_POLICIES 只配置了10个工具的策略,file_editor、code_search、 diff_viewer、task_manager、delegate_task 这5个工具未配置策略, PolicyEngine.checkAuthorization 对无策略工具返回 authorized: false, 导致 "Blocked: No policy configured for tool" 错误。 新增策略(按工具风险级别配置): - file_editor: WRITE + deniedPatterns(系统目录/MEMORY.md) + requireConfirmation + maxFrequency 10 - code_search: READ(只读搜索) - diff_viewer: READ(只读对比) - task_manager: WRITE(数据库读写,低风险) - delegate_task: EXTERNAL_ACTION + maxFrequency 5(启动 SubAgent)
This commit is contained in:
@@ -41,6 +41,17 @@ export const DEFAULT_POLICIES: PermissionPolicy[] = [
|
|||||||
// web_browser — 统一浏览器工具(合并自 9 个独立 browser_* 工具)
|
// web_browser — 统一浏览器工具(合并自 9 个独立 browser_* 工具)
|
||||||
// 由于该工具可执行 JS、点击元素等高风险操作,统一设为 EXTERNAL_ACTION
|
// 由于该工具可执行 JS、点击元素等高风险操作,统一设为 EXTERNAL_ACTION
|
||||||
{ toolName: 'web_browser', requiredLevel: PermissionLevel.EXTERNAL_ACTION, requireConfirmation: true, maxFrequency: 20 },
|
{ toolName: 'web_browser', requiredLevel: PermissionLevel.EXTERNAL_ACTION, requireConfirmation: true, maxFrequency: 20 },
|
||||||
|
// v0.3.0 修复: 补全缺失的工具策略 — 之前这5个工具未配置策略,导致被 PolicyEngine 拦截
|
||||||
|
// file_editor — 精准文件编辑(WRITE),与 write_file 同级安全约束
|
||||||
|
{ toolName: 'file_editor', requiredLevel: PermissionLevel.WRITE, deniedPatterns: [/\/etc(?:\/|["'\s,}]|$)/, /\/proc(?:\/|["'\s,}]|$)/, /\/System(?:\/|["'\s,}]|$)/, /C:\\Windows\\/i, /C:\\System32\\/i, /MEMORY\.md/i], requireConfirmation: true, maxFrequency: 10 },
|
||||||
|
// code_search — 基于 ripgrep 的只读搜索(READ)
|
||||||
|
{ toolName: 'code_search', requiredLevel: PermissionLevel.READ },
|
||||||
|
// diff_viewer — 文件/文本差异对比(只读,READ)
|
||||||
|
{ toolName: 'diff_viewer', requiredLevel: PermissionLevel.READ },
|
||||||
|
// task_manager — 任务管理(数据库读写,低风险 WRITE)
|
||||||
|
{ toolName: 'task_manager', requiredLevel: PermissionLevel.WRITE },
|
||||||
|
// delegate_task — 子任务委派(启动 SubAgent,EXTERNAL_ACTION)
|
||||||
|
{ toolName: 'delegate_task', requiredLevel: PermissionLevel.EXTERNAL_ACTION, requireConfirmation: false, maxFrequency: 5 },
|
||||||
];
|
];
|
||||||
|
|
||||||
export class PolicyEngine {
|
export class PolicyEngine {
|
||||||
|
|||||||
Reference in New Issue
Block a user