feat(ui): 实现 Agent 模式切换和 Auto Edit 功能

- 添加 AgentModeSelector 组件,支持 Build/Plan 模式切换
- Build 模式下显示 Auto Edit 开关,自动授权文件写入/编辑
- 扩展 useChat hook 添加会话级别的 agentMode/autoApprove 状态
- 服务端支持解析和应用 Agent 模式配置
- 权限处理器实现 auto-approve 检查(仅 write/edit,不含 delete)
This commit is contained in:
2025-12-15 19:42:51 +08:00
parent f09f8f2b03
commit ec3c7bccf9
13 changed files with 409 additions and 7 deletions
+3 -1
View File
@@ -106,6 +106,8 @@ export async function handleWebSocketMessage(
case 'message': {
// 用户发送消息
let content = message.payload?.content || '';
const agentMode = message.payload?.agentMode as 'build' | 'plan' | undefined;
const autoApprove = message.payload?.autoApprove as boolean | undefined;
// 将 @filepath 转换为 ./filepath 格式(方便 AI 识别为文件路径)
content = content.replace(/@([\w./-]+)/g, './$1');
@@ -119,7 +121,7 @@ export async function handleWebSocketMessage(
// 调用 Agent 处理消息(异步,不阻塞)
// 消息存储由 Core Agent 负责
processMessage(sessionId, content).catch((error) => {
processMessage(sessionId, content, { agentMode, autoApprove }).catch((error) => {
console.error('[WS] Agent processing error:', error);
});
break;