权限系统裁决链路

模型可以提出动作,但是否执行必须由本地 runtime 的权限系统裁决。

flowchart TD
  A[tool_use 请求] --> B[PermissionMode]
  B --> C[通用权限入口]
  C --> D{allow / ask / deny}
  D -->|allow| E[执行工具]
  D -->|ask| F[请求用户确认]
  D -->|deny| G[生成拒绝结果]
  E --> H[tool_result]
  F --> H
  G --> H
Phase 5 阅读路线图
allow直接执行
ask需要用户确认
deny拒绝但不让 Agent 崩溃
# Phase 5: 权限系统

## 权限模式和行为类型
### PermissionMode 和 PermissionBehavior
### PermissionRule:allow / deny / ask 规则

## 通用权限入口:所有工具执行前的大门
### hasPermissionsToUseToolInner:通用权限判断主流程
### hasPermissionsToUseTool:处理 ask 在不同模式下的命运

## Bash 权限系统:从工具名到命令语义
### bashToolCheckPermission:Bash 单条命令的权限判断
### bashToolHasPermission:完整 Bash 命令的权限入口
### checkCommandAndSuggestRules:权限判断后的规则建议

## Bash 安全检查:为什么 shell 特别难
### bashSecurity.ts 的整体角色
### bashCommandIsSafeAsync:命令注入与误解析检查
### validateDangerousPatterns:危险语法模式
### read-only command:为什么“只读命令”也要小心

## 路径与文件权限约束
### checkPathConstraints:命令访问路径的权限边界
### read / write / sensitive path 的区别
### cd、重定向和路径解析为什么会影响权限

## 权限结果如何回到 Agent Loop
### checkPermissionsAndCallTool:权限不是 allow 时如何生成 tool_result
### 权限拒绝为什么不会让 agent 崩溃
### deny / ask 如何影响下一轮模型推理

## Phase 5 总结:模型提动作,runtime 做裁决
### Phase5 完整调用链
### Python mini-agent 的权限系统抽象

Phase 5: 权限系统