feat: MCP stdio server + TUI回车发送 + 子Agent无限制 + 安全引擎优化 + diff弹窗绿红背景
- 新增 mcp_server.py: 标准 MCP stdio 传输层入口 - TUI: 回车发送消息,Shift+回车换行 (SendTextArea子类) - 子Agent: 移除 max_steps=20 限制 - 安全引擎: 移除 ALWAYS_CONFIRM 关键词强制拦截 - code_editor: diff弹窗绿底(+)/红底(-)背景色
This commit is contained in:
1 parent
b0d9a24003
commit
161ab9d3a8
7 files changed
+294
-49
No files matched your search
@@ -18,16 +18,6 @@ MODE_NAMES = {
|
||||
MODE_MANUAL: "人工确认",
|
||||
}
|
||||
|
||||
# ── 始终需要人工确认的指令(无论模式) ──
|
||||
ALWAYS_CONFIRM = {
|
||||
("cmd_executor", "run rm"),
|
||||
("cmd_executor", "run chmod"),
|
||||
("cmd_executor", "run chown"),
|
||||
("file_manager", "delete"),
|
||||
("git_tools", "checkout -b"),
|
||||
}
|
||||
|
||||
|
||||
class SafetyLayer:
|
||||
"""统一安全检查层"""
|
||||
|
||||
@@ -65,17 +55,6 @@ class SafetyLayer:
|
||||
if self.mode == MODE_UNRESTRICTED:
|
||||
return True, ""
|
||||
|
||||
# 检查是否是始终需要确认的指令
|
||||
args_lower = tool_args.strip().lower()
|
||||
for (t, pattern) in ALWAYS_CONFIRM:
|
||||
if tool_name == t and args_lower.startswith(pattern.split(" ", 1)[1] if " " in pattern else ""):
|
||||
return self._ask_user_confirm(
|
||||
tool_name, tool_args,
|
||||
risk_level="高",
|
||||
impact="此操作始终需要人工确认",
|
||||
reason="敏感指令"
|
||||
)
|
||||
|
||||
# 人工确认模式:所有指令都确认
|
||||
if self.mode == MODE_MANUAL:
|
||||
return self._ask_user_confirm(
|
||||
|
||||
Reference in new issue
Block a user