package com.claudecode.command.impl; import com.claudecode.command.CommandContext; import com.claudecode.command.SlashCommand; import com.claudecode.console.AnsiStyle; import com.claudecode.permission.PermissionSettings; import com.claudecode.permission.PermissionTypes; import java.util.List; /** * /permissions 命令 —— 查看和管理权限设置。 *
* 对应 claude-code/src/commands/permissions.ts。
* 显示当前权限模式和规则列表。
*/
public class PermissionsCommand implements SlashCommand {
private final PermissionSettings settings;
public PermissionsCommand(PermissionSettings settings) {
this.settings = settings;
}
@Override
public String name() {
return "permissions";
}
@Override
public String description() {
return "View and manage permission settings";
}
@Override
public String execute(String args, CommandContext context) {
StringBuilder sb = new StringBuilder();
sb.append("\n ").append(AnsiStyle.bold("🔐 Permission Settings")).append("\n");
sb.append(" ").append("─".repeat(50)).append("\n");
// Current mode
PermissionTypes.PermissionMode mode = settings.getCurrentMode();
String modeStr = mode != null ? mode.name() : "DEFAULT";
String modeColor = switch (modeStr) {
case "AUTO_ALLOW" -> AnsiStyle.green(modeStr);
case "DENY_ALL" -> AnsiStyle.red(modeStr);
default -> AnsiStyle.yellow(modeStr);
};
sb.append(" Mode: ").append(modeColor).append("\n\n");
// All rules
List