9.2 权限评估引擎
9.2.1 PermissionNext.evaluate() 的实现
export function evaluate(
permission: string, // 权限类型(如 "bash")
pattern: string, // 匹配模式(如 "ls -la")
...rulesets: Ruleset[] // 一个或多个规则集
): Rule {
const merged = merge(...rulesets) // 合并所有规则集
const match = merged.findLast(
(rule) =>
Wildcard.match(permission, rule.permission) &&
Wildcard.match(pattern, rule.pattern),
)
return match ?? { action: "ask", permission, pattern: "*" }
}第一步:合并规则集
第二步:从后往前查找匹配
第三步:默认回退
评估示例
请求
匹配规则
结果
9.2.2 Wildcard 模式匹配(util/wildcard.ts)
模式
输入
结果
结构化通配符匹配
9.2.3 ~ 和 $HOME 路径展开
~ 和 $HOME 路径展开输入模式
展开结果
Last updated
