Add files via upload

This commit is contained in:
公明
2026-06-02 13:32:05 +08:00
committed by GitHub
parent 449781c029
commit 203a99bed4
4 changed files with 14 additions and 8 deletions
@@ -6,7 +6,7 @@
- Configure **Host / Port / HTTPS / Password** and choose an agent mode
- Click **Validate** to login (`POST /api/auth/login`) and verify token (`GET /api/auth/validate`)
- Right-click any HTTP message in Burp and send it to CyberStrikeAI for **streaming web pentest**
- Right-click any HTTP message in Burp and send it to CyberStrikeAI for **streaming web pentest** (agent modes: **Eino Single**, Deep, Plan-Execute, Supervisor — maps to `/api/eino-agent/stream` or `/api/multi-agent/stream`)
- Keep a **test history sidebar** (searchable) so you can revisit previous runs
- Output is split into **collapsible Progress** + **Final Response** (Markdown rendering supported)
- View captured **Request / Response** for each run
@@ -10,8 +10,8 @@
- 右键任意 HTTP 请求包 → **Send to CyberStrikeAI (stream test)**
- 将该 HTTP 请求(含 headers/body;若存在响应则附带截断片段)发送到 CyberStrikeAI
- 以 **SSE 流式**接收返回内容,并在标签页中实时展示
- 单 Agent`POST /api/agent-loop/stream`
- 多 Agent`POST /api/multi-agent/stream`(需要服务端启用 `multi_agent.enabled: true`
- 单 Agent`POST /api/eino-agent/stream`
- 多 Agent`POST /api/multi-agent/stream`(需 `multi_agent.enabled: true`,请求体 `orchestration`
- **测试历史侧边栏(可搜索)**:每次发送都会新增一条记录,方便回看与对比
- **Output 分区**`Progress`(可折叠)+ `Final Response`(主区域)
- **Markdown 渲染**:最终输出可在 Output 主区域渲染为富文本(可开关)
@@ -38,7 +38,6 @@ final class CyberStrikeAIClient {
}
enum AgentMode {
NATIVE_REACT("Native ReAct", "/api/agent-loop/stream", null),
EINO_SINGLE("Eino Single (ADK)", "/api/eino-agent/stream", null),
DEEP("Deep (DeepAgent)", "/api/multi-agent/stream", "deep"),
PLAN_EXECUTE("Plan-Execute", "/api/multi-agent/stream", "plan_execute"),
@@ -16,9 +16,16 @@ final class CyberStrikeAITab implements ITab {
private final JTextField portField = new JTextField("8080");
private final JCheckBox useHttpsBox = new JCheckBox("HTTPS", true);
private final JPasswordField passwordField = new JPasswordField();
private final JComboBox<String> agentModeBox = new JComboBox<>(new String[]{
"Native ReAct", "Eino Single (ADK)", "Deep (DeepAgent)", "Plan-Execute", "Supervisor"
});
private final JComboBox<String> agentModeBox = new JComboBox<>(agentModeLabels());
private static String[] agentModeLabels() {
CyberStrikeAIClient.AgentMode[] modes = CyberStrikeAIClient.AgentMode.values();
String[] labels = new String[modes.length];
for (int i = 0; i < modes.length; i++) {
labels[i] = modes[i].displayName;
}
return labels;
}
private final JButton validateButton = new JButton("Validate");
private final JButton clearButton = new JButton("Clear Output");
private final JButton stopButton = new JButton("Stop");
@@ -554,7 +561,7 @@ final class CyberStrikeAITab implements ITab {
int idx = agentModeBox.getSelectedIndex();
CyberStrikeAIClient.AgentMode mode = (idx >= 0 && idx < AGENT_MODES.length)
? AGENT_MODES[idx]
: CyberStrikeAIClient.AgentMode.NATIVE_REACT;
: CyberStrikeAIClient.AgentMode.EINO_SINGLE;
return new CyberStrikeAIClient.Config(baseUrl, password, mode);
}