parsePermissionRule function
Parse a permission rule string like "Bash(npm install)" or "FileEdit(src/**)".
Implementation
({String toolName, String? content}) parsePermissionRule(String rule) {
// Handle escaped parentheses
final openParen = _findUnescapedChar(rule, '(');
if (openParen == -1) {
return (toolName: rule.trim(), content: null);
}
final closeParen = _findLastUnescapedChar(rule, ')');
if (closeParen == -1 || closeParen <= openParen) {
return (toolName: rule.trim(), content: null);
}
final toolName = rule.substring(0, openParen).trim();
var content = rule.substring(openParen + 1, closeParen);
// Unescape parentheses in content
content = content.replaceAll(r'\(', '(').replaceAll(r'\)', ')');
return (toolName: toolName, content: content.isEmpty ? null : content);
}