{"code":200,"msg":"OK","data":<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Agent 模块静态测试入口</title>
    <link rel="stylesheet" href="./agent-test.css">
</head>
<body>
<div class="page">
    <header class="page-header">
        <h1>Agent 模块静态测试入口</h1>
        <p>这里不是花里胡哨的演示页，就是给联调和回归用的。公共配置会写进浏览器本地存储，切页不用反复填。</p>
    </header>

    <nav class="nav">
        <a class="active" href="./index.html">测试入口</a>
        <a href="./chat.html">同步对话</a>
        <a href="./chat-stream.html">流式对话</a>
        <a href="./knowledge.html">知识库管理</a>
        <a href="./metrics.html">运行指标</a>
    </nav>

    <section class="card hero">
        <h2>先把公共配置填了再测</h2>
        <div class="form-grid">
            <div class="field">
                <label for="baseUrl">Agent 服务地址</label>
                <input id="baseUrl" data-shared-config="baseUrl" placeholder="http://localhost:11590/agent">
            </div>
            <div class="field full">
                <label for="token">Token</label>
                <input id="token" data-shared-config="token" placeholder="需要鉴权时填写原始 Token，页面不会自动加 Bearer 前缀">
            </div>
        </div>
        <div class="pill-list">
            <span class="pill">推荐服务地址：`http://localhost:11590/agent`</span>
            <span class="pill">本地鉴权联调统一走单体入口，别再直连旧业务端口</span>
            <span class="pill">适合联调 App 端对话和知识库管理</span>
            <span class="pill">支持查看 SSE 原始事件</span>
        </div>
    </section>

    <section class="grid two" style="margin-top: 20px;">
        <article class="card">
            <h3>同步对话测试</h3>
            <p>覆盖创建会话、发送消息、查询会话列表、查询消息列表、消息反馈。适合先确认鉴权、上下文和基础链路。</p>
            <div class="toolbar">
                <a href="./chat.html"><button type="button">打开页面</button></a>
            </div>
        </article>

        <article class="card">
            <h3>流式对话测试</h3>
            <p>用 <code>fetch + ReadableStream</code> 解析服务端 SSE，能看到 <code>accepted</code>、<code>metadata</code>、<code>delta</code>、<code>done</code> 这些事件。</p>
            <div class="toolbar">
                <a href="./chat-stream.html"><button type="button">打开页面</button></a>
            </div>
        </article>

        <article class="card">
            <h3>知识库管理测试</h3>
            <p>覆盖知识库新增、分页、详情、状态切换、文档导入、分页、详情、删除、重建索引和测试检索。这个页最像运维控制台，能狠狠干活。</p>
            <div class="toolbar">
                <a href="./knowledge.html"><button type="button">打开页面</button></a>
            </div>
        </article>

        <article class="card">
            <h3>指标观测测试</h3>
            <p>运行时指标和检索质量观测都在这儿，适合排查降级、空召回、转人工建议这些指标是不是在动。</p>
            <div class="toolbar">
                <a href="./metrics.html"><button type="button">打开页面</button></a>
            </div>
        </article>
    </section>

    <section class="card" style="margin-top: 20px;">
        <h3>当前页面覆盖的接口</h3>
        <div class="pill-list">
            <span class="pill">POST /consumer/chat/session</span>
            <span class="pill">POST /consumer/chat/send</span>
            <span class="pill">POST /consumer/chat/send/stream</span>
            <span class="pill">GET /consumer/chat/session/list</span>
            <span class="pill">GET /consumer/chat/session/{sessionId}/message/list</span>
            <span class="pill">POST /consumer/chat/message/{messageId}/feedback</span>
            <span class="pill">POST /operation/knowledge/base</span>
            <span class="pill">POST /operation/knowledge/base/page</span>
            <span class="pill">GET /operation/knowledge/base/{id}</span>
            <span class="pill">POST /operation/knowledge/document/import</span>
            <span class="pill">POST /operation/knowledge/document/page</span>
            <span class="pill">GET /operation/knowledge/document/{id}</span>
            <span class="pill">POST /operation/knowledge/document/reindex</span>
            <span class="pill">POST /operation/knowledge/document/test-search</span>
            <span class="pill">GET /operation/runtime/metrics</span>
            <span class="pill">POST /operation/retrieval/metrics</span>
        </div>
    </section>
</div>
<script src="./agent-test.js"