feat(ui,docs): Agent 流式侧栏 + 结果区/MCP 点/确认条 + 官网文案

- 侧栏消费 Agent SSE:时间线边 append、正文 ▌、停止按钮
- 「在结果区打开」不抢编辑器 focus;MCP 活跃点;写操作确认条
- 文档/落地页补充 Ask|Agent 与 npx @rlwj-lab/opsxdb-mcp(不宣传默认可写)
This commit is contained in:
logan committed 2026-10-15 13:00:58 +08:00
1 parent 2336c9433c
commit 979efb606d
9 files changed
+580 -92

No files matched your search

+23 -2
View File
@@ -14,7 +14,7 @@
| 写操作 | **P0 纯只读**;「确认后才可写」复用现有 dangerConfirm,进 **P1**,MCP 首版不可写 |
| 代码边界 | 只动根级 `src` + `server`;禁止 `packages/ui`(死树) |
| Redis | 对齐现有精确 TYPE / 集群 SCAN,不另起搜键 |
| UI | P0 无新重界面;Ask\|Agent Seg / 步骤时间线已落地阶段 2;MCP 状态点属后续 |
| UI | Ask\|Agent + SSE 时间线 + 插入/结果区 + MCP 状态点已落地;P1 确认条已接 |
| 冲突 | 与未推「补偿包」冲突先停报,勿 silently 覆盖 |
| 问题 | 结论 |
@@ -103,7 +103,7 @@
- [x] 只读模式下 `DELETE`/`DROP`/写 SQL 被拒;审计写 `mcp-audit.jsonl`
- [x] 通路代码就绪;单测用 sqlite 覆盖 list/describe/exec;MySQL/PG 真库待桌面验收
- [x] Redis 读白名单 + FLUSH*/KEYS/写拒(单测);真库待验
- [x] 侧栏 Agent 调同一 runtime(阶段 2:Ask|Agent + `/api/ai/agent` + 步骤时间线)
- [x] 侧栏 Agent 调同一 runtime(Ask|Agent + `/api/ai/agent` SSE + 步骤时间线 + 结果区/确认)
- [x] 文档:`docs/mcp-cursor.example.json` + 本文件
## 参考路径(本机)
@@ -210,3 +210,24 @@ go build -o ../bin/opsxdb-mcp ./cmd/opsxdb-mcp
### 真库验收 2026-10-15
MySQL 3306 demo + Redis 6379:`go run ./cmd/opsxdb-mcp-accept/` 全过。实践文档:`~/Downloads/AI-Agent接入GUI工具开发实践.md`。
## 阶段 3–4 完成记录(2026-10-15)
| 项 | 状态 |
|----|------|
| Agent SSE | ✅ `stream=true` / `Accept: text/event-stream`;步骤边推 + 正文分块;非流式 JSON fallback;停止=Abort |
| Anthropic / responses tool calling | ✅ 解析与回灌单测;DeepSeek 仍走 openai-chat |
| 在结果区打开 / 插入编辑器 | ✅ 气泡步骤与代码块动作;不抢编辑器 focus |
| MCP 状态点 | ✅ 仅 `source=mcp` 近 5 分钟活跃时显示;`GET /api/ai/mcp-status` |
| P1 可写+确认 | ✅ 默认只读;`mode=read_write` + 确认条 / `confirm_danger`;Agent 剥离模型自带令牌;`POST /api/ai/agent/confirm` |
| 官网/文档 | ✅ intro / AI / FAQ + homepage AI/MCP 文案;**未**宣传默认可写 |
手动测:
```bash
cd server && go test ./internal/ai/ ./internal/aitools/ ./internal/server/ -count=1
# 侧栏 Agent:发问看步骤流式出现;有行列结果点「在结果区打开」
# 写:mcp.json mode=read_write 后让 Agent 尝试写 → 气泡确认条 → 执行/取消
# MCP:npx @rlwj-lab/opsxdb-mcp 调工具后侧栏应出现 MCP 点
```