> ## Documentation Index
> Fetch the complete documentation index at: https://niceeval.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# pi-agent-core 如何非侵入式接入 NiceEval

> 一个 pi-agent-core(@earendil-works)助手后端，接入 NiceEval 前后的完整代码 diff：应用侧只加了一个 devDependency。

对比对象：

* **before**：[https://github.com/CorrectRoadH/niceeval/tree/main/examples/zh/origin/pi-sdk](https://github.com/CorrectRoadH/niceeval/tree/main/examples/zh/origin/pi-sdk) —— 独立的 `@earendil-works/pi-agent-core` HTTP 服务，还没接任何 eval。
* **after**：[https://github.com/CorrectRoadH/niceeval/tree/main/examples/zh/tier1/pi-sdk](https://github.com/CorrectRoadH/niceeval/tree/main/examples/zh/tier1/pi-sdk) —— 同一个应用接入 NiceEval 之后的样子。

**接入方式**：官方转换器——pi 原生 `AgentEvent` → 标准事件的映射是
`fromPiAgentEvents`（`"niceeval/adapter"` 导出）的事，adapter 只剩传输粘合：
应用在哪个 URL、审批打哪个端点（`calculate` 工具走 HITL 审批）。应用由你自己按它的
方式启动（`pnpm start`），eval 不代管进程。应用侧 `src/backend/*` 逐字节未变。

接入的全部代码变更（生成时从两个目录实测统计）：

<table className="gd-summary">
  <tbody>
    <tr>
      <th>
        {"类别"}
      </th>

      <th>
        {"文件数"}
      </th>

      <th>
        {"行数"}
      </th>
    </tr>

    <tr>
      <td>
        {"应用侧配置（必要：依赖声明）"}
      </td>

      <td>
        {"3"}
      </td>

      <td>
        {"+7 −1"}
      </td>
    </tr>

    <tr>
      <td>
        {"adapter（必要：传输粘合，协议映射在官方包里）"}
      </td>

      <td>
        {"2"}
      </td>

      <td>
        {"+113"}
      </td>
    </tr>

    <tr>
      <td>
        {"evals 与 experiments（评测内容，按需增长）"}
      </td>

      <td>
        {"6"}
      </td>

      <td>
        {"+118"}
      </td>
    </tr>

    <tr className="gd-total">
      <td>
        {"合计"}
      </td>

      <td>
        {"11"}
      </td>

      <td>
        {"+238 −1"}
      </td>
    </tr>
  </tbody>
</table>

## 文件清单

```text theme={null}
pi-sdk/
├── package.json                    修改
├── tsconfig.json                   修改
├── pnpm-workspace.yaml             修改
├── niceeval.config.ts              新增
├── agents/
│   └── pi-sdk.ts                   新增
├── evals/
│   ├── basic-qa.eval.ts            新增
│   ├── hitl-approve.eval.ts        新增
│   ├── hitl-deny.eval.ts           新增
│   ├── session-isolation.eval.ts   新增
│   └── weather-tool.eval.ts        新增
└── experiments/
    └── assistant.ts                新增
```

## 应用侧的变更(只有依赖声明)

<div className="gd-file">
  <div className="gd-head">
    <span className="gd-name">
      {"package.json"}
    </span>

    <span className="gd-stats">
      <span className="gd-plus">
        {"+2"}
      </span>
    </span>
  </div>

  <div className="gd-body">
    <table className="gd-table">
      <tbody>
        <tr className="gd-expand" data-fold="gdf0">
          <td className="gd-ln" colSpan={2}>
            {"⇕"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            {"展开 8 行未变更代码"}
          </td>
        </tr>

        <tr className="gd-fold gdf0">
          <td className="gd-ln">
            {"1"}
          </td>

          <td className="gd-ln">
            {"1"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"{"}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf0">
          <td className="gd-ln">
            {"2"}
          </td>

          <td className="gd-ln">
            {"2"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt1">
              {"\"name\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"pi-sdk-example\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf0">
          <td className="gd-ln">
            {"3"}
          </td>

          <td className="gd-ln">
            {"3"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt1">
              {"\"version\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"0.1.0\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf0">
          <td className="gd-ln">
            {"4"}
          </td>

          <td className="gd-ln">
            {"4"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt1">
              {"\"private\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt1">
              {"true"}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf0">
          <td className="gd-ln">
            {"5"}
          </td>

          <td className="gd-ln">
            {"5"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt1">
              {"\"type\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"module\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf0">
          <td className="gd-ln">
            {"6"}
          </td>

          <td className="gd-ln">
            {"6"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt1">
              {"\"scripts\""}
            </span>

            <span className="gdt0">
              {": {"}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf0">
          <td className="gd-ln">
            {"7"}
          </td>

          <td className="gd-ln">
            {"7"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"dev\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"lsof -ti tcp:5299 | xargs kill -9 2>/dev/null; concurrently -k -n server,web -c blue,green "}
            </span>

            <span className="gdt1">
              {"\\\""}
            </span>

            <span className="gdt2">
              {"pnpm dev:server"}
            </span>

            <span className="gdt1">
              {"\\\""}
            </span>

            <span className="gdt2">
              {" "}
            </span>

            <span className="gdt1">
              {"\\\""}
            </span>

            <span className="gdt2">
              {"pnpm dev:web"}
            </span>

            <span className="gdt1">
              {"\\\""}
            </span>

            <span className="gdt2">
              {"\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf0">
          <td className="gd-ln">
            {"8"}
          </td>

          <td className="gd-ln">
            {"8"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"dev:server\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"node --env-file .env --import tsx/esm --watch src/backend/server.ts\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"9"}
          </td>

          <td className="gd-ln">
            {"9"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"dev:web\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"wait-on -t 30000 tcp:127.0.0.1:5299 && vite\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"10"}
          </td>

          <td className="gd-ln">
            {"10"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"build\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"vite build\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"11"}
          </td>

          <td className="gd-ln">
            {"11"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"start\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"node --env-file .env --import tsx/esm src/backend/server.ts\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"12"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"eval\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"niceeval\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"12"}
          </td>

          <td className="gd-ln">
            {"13"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"typecheck\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"tsc --noEmit\""}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"13"}
          </td>

          <td className="gd-ln">
            {"14"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"  },"}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"14"}
          </td>

          <td className="gd-ln">
            {"15"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt1">
              {"\"dependencies\""}
            </span>

            <span className="gdt0">
              {": {"}
            </span>
          </td>
        </tr>

        <tr className="gd-expand" data-fold="gdf1">
          <td className="gd-ln" colSpan={2}>
            {"⇕"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            {"展开 9 行未变更代码"}
          </td>
        </tr>

        <tr className="gd-fold gdf1">
          <td className="gd-ln">
            {"15"}
          </td>

          <td className="gd-ln">
            {"16"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"@assistant-ui/react\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"^0.14.24\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf1">
          <td className="gd-ln">
            {"16"}
          </td>

          <td className="gd-ln">
            {"17"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"@earendil-works/pi-agent-core\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"0.80.3\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf1">
          <td className="gd-ln">
            {"17"}
          </td>

          <td className="gd-ln">
            {"18"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"@earendil-works/pi-ai\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"0.80.3\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf1">
          <td className="gd-ln">
            {"18"}
          </td>

          <td className="gd-ln">
            {"19"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"react\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"^19.0.0\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf1">
          <td className="gd-ln">
            {"19"}
          </td>

          <td className="gd-ln">
            {"20"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"react-dom\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"^19.0.0\""}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf1">
          <td className="gd-ln">
            {"20"}
          </td>

          <td className="gd-ln">
            {"21"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"  },"}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf1">
          <td className="gd-ln">
            {"21"}
          </td>

          <td className="gd-ln">
            {"22"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt1">
              {"\"devDependencies\""}
            </span>

            <span className="gdt0">
              {": {"}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf1">
          <td className="gd-ln">
            {"22"}
          </td>

          <td className="gd-ln">
            {"23"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"@types/node\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"^26.1.0\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf1">
          <td className="gd-ln">
            {"23"}
          </td>

          <td className="gd-ln">
            {"24"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"@types/react\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"^19.0.0\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"24"}
          </td>

          <td className="gd-ln">
            {"25"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"@types/react-dom\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"^19.0.0\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"25"}
          </td>

          <td className="gd-ln">
            {"26"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"@vitejs/plugin-react\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"^5.0.0\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"26"}
          </td>

          <td className="gd-ln">
            {"27"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"concurrently\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"^9.0.0\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"28"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"niceeval\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"file:../../../..\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"27"}
          </td>

          <td className="gd-ln">
            {"29"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"tsx\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"^4.22.4\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"28"}
          </td>

          <td className="gd-ln">
            {"30"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"typescript\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"^6.0.3\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"29"}
          </td>

          <td className="gd-ln">
            {"31"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"vite\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"^7.0.0\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"30"}
          </td>

          <td className="gd-ln">
            {"32"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"wait-on\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"^9.0.0\""}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"31"}
          </td>

          <td className="gd-ln">
            {"33"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"  }"}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"32"}
          </td>

          <td className="gd-ln">
            {"34"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"}"}
            </span>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

<div className="gd-file">
  <div className="gd-head">
    <span className="gd-name">
      {"tsconfig.json"}
    </span>

    <span className="gd-stats">
      <span className="gd-plus">
        {"+1"}
      </span>

      <span className="gd-minus">
        {"−1"}
      </span>
    </span>
  </div>

  <div className="gd-body">
    <table className="gd-table">
      <tbody>
        <tr className="gd-expand" data-fold="gdf2">
          <td className="gd-ln" colSpan={2}>
            {"⇕"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            {"展开 12 行未变更代码"}
          </td>
        </tr>

        <tr className="gd-fold gdf2">
          <td className="gd-ln">
            {"1"}
          </td>

          <td className="gd-ln">
            {"1"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"{"}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf2">
          <td className="gd-ln">
            {"2"}
          </td>

          <td className="gd-ln">
            {"2"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt1">
              {"\"compilerOptions\""}
            </span>

            <span className="gdt0">
              {": {"}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf2">
          <td className="gd-ln">
            {"3"}
          </td>

          <td className="gd-ln">
            {"3"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"target\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"ES2022\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf2">
          <td className="gd-ln">
            {"4"}
          </td>

          <td className="gd-ln">
            {"4"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"module\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"NodeNext\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf2">
          <td className="gd-ln">
            {"5"}
          </td>

          <td className="gd-ln">
            {"5"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"moduleResolution\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"NodeNext\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf2">
          <td className="gd-ln">
            {"6"}
          </td>

          <td className="gd-ln">
            {"6"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"lib\""}
            </span>

            <span className="gdt0">
              {": ["}
            </span>

            <span className="gdt2">
              {"\"ES2023\""}
            </span>

            <span className="gdt0">
              {", "}
            </span>

            <span className="gdt2">
              {"\"DOM\""}
            </span>

            <span className="gdt0">
              {", "}
            </span>

            <span className="gdt2">
              {"\"DOM.Iterable\""}
            </span>

            <span className="gdt0">
              {"],"}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf2">
          <td className="gd-ln">
            {"7"}
          </td>

          <td className="gd-ln">
            {"7"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"types\""}
            </span>

            <span className="gdt0">
              {": ["}
            </span>

            <span className="gdt2">
              {"\"node\""}
            </span>

            <span className="gdt0">
              {", "}
            </span>

            <span className="gdt2">
              {"\"vite/client\""}
            </span>

            <span className="gdt0">
              {"],"}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf2">
          <td className="gd-ln">
            {"8"}
          </td>

          <td className="gd-ln">
            {"8"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"jsx\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"react-jsx\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf2">
          <td className="gd-ln">
            {"9"}
          </td>

          <td className="gd-ln">
            {"9"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"strict\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt1">
              {"true"}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf2">
          <td className="gd-ln">
            {"10"}
          </td>

          <td className="gd-ln">
            {"10"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"esModuleInterop\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt1">
              {"true"}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf2">
          <td className="gd-ln">
            {"11"}
          </td>

          <td className="gd-ln">
            {"11"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"skipLibCheck\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt1">
              {"true"}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-fold gdf2">
          <td className="gd-ln">
            {"12"}
          </td>

          <td className="gd-ln">
            {"12"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"allowImportingTsExtensions\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt1">
              {"true"}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"13"}
          </td>

          <td className="gd-ln">
            {"13"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"noEmit\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt1">
              {"true"}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"14"}
          </td>

          <td className="gd-ln">
            {"14"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt1">
              {"\"forceConsistentCasingInFileNames\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt1">
              {"true"}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"15"}
          </td>

          <td className="gd-ln">
            {"15"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"  },"}
            </span>
          </td>
        </tr>

        <tr className="gd-del">
          <td className="gd-ln">
            {"16"}
          </td>

          <td className="gd-ln" />

          <td className="gd-sign">
            {"−"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt1">
              {"\"include\""}
            </span>

            <span className="gdt0">
              {": ["}
            </span>

            <span className="gdt2">
              {"\"src\""}
            </span>

            <span className="gdt0">
              {", "}
            </span>

            <span className="gdt2">
              {"\"vite.config.ts\""}
            </span>

            <span className="gdt0">
              {"]"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"16"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt1">
              {"\"include\""}
            </span>

            <span className="gdt0">
              {": ["}
            </span>

            <span className="gdt2">
              {"\"src\""}
            </span>

            <span className="gdt0">
              {", "}
            </span>

            <span className="gdt2">
              {"\"vite.config.ts\""}
            </span>

            <span className="gdt0">
              {", "}
            </span>

            <span className="gdt2">
              {"\"niceeval.config.ts\""}
            </span>

            <span className="gdt0">
              {", "}
            </span>

            <span className="gdt2">
              {"\"agents\""}
            </span>

            <span className="gdt0">
              {", "}
            </span>

            <span className="gdt2">
              {"\"evals\""}
            </span>

            <span className="gdt0">
              {", "}
            </span>

            <span className="gdt2">
              {"\"experiments\""}
            </span>

            <span className="gdt0">
              {"]"}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"17"}
          </td>

          <td className="gd-ln">
            {"17"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"}"}
            </span>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

<div className="gd-file">
  <div className="gd-head">
    <span className="gd-name">
      {"pnpm-workspace.yaml"}
    </span>

    <span className="gd-stats">
      <span className="gd-plus">
        {"+4"}
      </span>
    </span>
  </div>

  <div className="gd-body">
    <table className="gd-table">
      <tbody>
        <tr>
          <td className="gd-ln">
            {"1"}
          </td>

          <td className="gd-ln">
            {"1"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt3">
              {"packages"}
            </span>

            <span className="gdt0">
              {": []"}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"2"}
          </td>

          <td className="gd-ln">
            {"2"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt3">
              {"allowBuilds"}
            </span>

            <span className="gdt0">
              {":"}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"3"}
          </td>

          <td className="gd-ln">
            {"3"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt2">
              {"'@google/genai'"}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt1">
              {"false"}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"4"}
          </td>

          <td className="gd-ln">
            {"4"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt3">
              {"esbuild"}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt1">
              {"true"}
            </span>
          </td>
        </tr>

        <tr>
          <td className="gd-ln">
            {"5"}
          </td>

          <td className="gd-ln">
            {"5"}
          </td>

          <td className="gd-sign" />

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt3">
              {"protobufjs"}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt1">
              {"false"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"6"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt3">
              {"overrides"}
            </span>

            <span className="gdt0">
              {":"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"7"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt3">
              {"niceeval"}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"link:../../../.."}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"8"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt3">
              {"minimumReleaseAgeExclude"}
            </span>

            <span className="gdt0">
              {":"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"9"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  - "}
            </span>

            <span className="gdt2">
              {"niceeval@0.1.1"}
            </span>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

## 新增的 adapter、evals 与 experiments

<div className="gd-file">
  <div className="gd-head">
    <span className="gd-name">
      {"niceeval.config.ts"}
    </span>

    <span className="gd-stats">
      <span className="gd-plus">
        {"+9"}
      </span>
    </span>
  </div>

  <div className="gd-body">
    <table className="gd-table">
      <tbody>
        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"1"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"import"}
            </span>

            <span className="gdt0">
              {" { defineConfig } "}
            </span>

            <span className="gdt4">
              {"from"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"niceeval\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"2"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"3"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"export"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"default"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"defineConfig"}
            </span>

            <span className="gdt0">
              {"({"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"4"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  name: { "}
            </span>

            <span className="gdt2">
              {"\"zh-CN\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"pi-agent-core 示例\""}
            </span>

            <span className="gdt0">
              {", en: "}
            </span>

            <span className="gdt2">
              {"\"pi-agent-core example\""}
            </span>

            <span className="gdt0">
              {" },"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"5"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  judge: { model: "}
            </span>

            <span className="gdt2">
              {"\"gpt-5.4\""}
            </span>

            <span className="gdt0">
              {" },"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"6"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  timeoutMs: "}
            </span>

            <span className="gdt1">
              {"120_000"}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"7"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt6">
              {"// 每个 attempt 都要经一个真实子进程(server.ts)+ DeepSeek 网络调用,偏重,别开太高并发。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"8"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  maxConcurrency: "}
            </span>

            <span className="gdt1">
              {"2"}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"9"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"});"}
            </span>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

<div className="gd-file">
  <div className="gd-head">
    <span className="gd-name">
      {"agents/pi-sdk.ts"}
    </span>

    <span className="gd-stats">
      <span className="gd-plus">
        {"+104"}
      </span>
    </span>
  </div>

  <div className="gd-body">
    <table className="gd-table">
      <tbody>
        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"1"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// pi-sdk 的 adapter:无侵入对接一个**已经在跑**的应用(../src/backend/server.ts,pi 的原生"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"2"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// `AgentEvent` 原样透传成 SSE,外加三种自定义传输帧:session / approval_request /"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"3"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// server_error,见 server.ts 头注释)。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"4"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"//"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"5"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// `AgentEvent` → 标准事件的映射是官方转换器 `fromPiAgentEvents`(`\"niceeval/adapter\"` 导出)"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"6"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// 的事;逐帧驱动 + HITL 挂起也是官方件(`driveFrameStream` / `pausable`)。这里只剩传输粘合:"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"7"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// 端点在哪、三种传输帧怎么处理、审批打哪个端点——不再手写循环和模块级 Map。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"8"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// 无 OTel(pi-agent-core 没有官方集成),事件全部来自转换器。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"9"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"//"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"10"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// HITL:calculate 工具经服务端 beforeToolCall 挂审批。approval_request 帧到达时,流并不关闭——"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"11"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// 服务端把执行卡在一个 Promise 上等 POST /api/chat/approve。所以 `driveFrameStream` 在这一帧"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"12"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// 返回 `{ pause }`,`pausable()` 记住\"读了一半的 SSE 流\"(连同转换器状态);下一次 send"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"13"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// (即 t.respond)先打 approve 端点、再继续读同一条流到结束——不重新发 /api/chat。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"14"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"import"}
            </span>

            <span className="gdt0">
              {" { defineAgent, sseJsonFrames, fromPiAgentEvents, driveFrameStream, pausable, serverSession } "}
            </span>

            <span className="gdt4">
              {"from"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"niceeval/adapter\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"15"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"import"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"type"}
            </span>

            <span className="gdt0">
              {" { AgentContext, PiAgentStream, SseFrameCursor } "}
            </span>

            <span className="gdt4">
              {"from"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"niceeval/adapter\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"16"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"import"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"type"}
            </span>

            <span className="gdt0">
              {" { JsonValue, Turn, TurnInput } "}
            </span>

            <span className="gdt4">
              {"from"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"niceeval\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"17"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"import"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"type"}
            </span>

            <span className="gdt0">
              {" { AgentEvent } "}
            </span>

            <span className="gdt4">
              {"from"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"@earendil-works/pi-agent-core\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"18"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"19"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// 被测应用由你自己按它的方式启动(pnpm start / 部署在哪都行),eval 不代管进程、不另开端口。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"20"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"const"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"BASE_URL"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>

            <span className="gdt0">
              {" process.env."}
            </span>

            <span className="gdt1">
              {"PI_SDK_URL"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"??"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"http://127.0.0.1:5299\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"21"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"22"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"type"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"TransportFrame"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"23"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"|"}
            </span>

            <span className="gdt0">
              {" { "}
            </span>

            <span className="gdt7">
              {"type"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"session\""}
            </span>

            <span className="gdt0">
              {"; "}
            </span>

            <span className="gdt7">
              {"sessionId"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"string"}
            </span>

            <span className="gdt0">
              {" }"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"24"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"|"}
            </span>

            <span className="gdt0">
              {" { "}
            </span>

            <span className="gdt7">
              {"type"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"approval_request\""}
            </span>

            <span className="gdt0">
              {"; "}
            </span>

            <span className="gdt7">
              {"toolCallId"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"string"}
            </span>

            <span className="gdt0">
              {"; "}
            </span>

            <span className="gdt7">
              {"toolName"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"string"}
            </span>

            <span className="gdt0">
              {"; "}
            </span>

            <span className="gdt7">
              {"args"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"unknown"}
            </span>

            <span className="gdt0">
              {" }"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"25"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"|"}
            </span>

            <span className="gdt0">
              {" { "}
            </span>

            <span className="gdt7">
              {"type"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"server_error\""}
            </span>

            <span className="gdt0">
              {"; "}
            </span>

            <span className="gdt7">
              {"message"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"string"}
            </span>

            <span className="gdt0">
              {" };"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"26"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"27"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"type"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"PiFrame"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"AgentEvent"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"|"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"TransportFrame"}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"28"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"29"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"async"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"function"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"appFetch"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt7">
              {"path"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"string"}
            </span>

            <span className="gdt0">
              {", "}
            </span>

            <span className="gdt7">
              {"body"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"unknown"}
            </span>

            <span className="gdt0">
              {", "}
            </span>

            <span className="gdt7">
              {"signal"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"AbortSignal"}
            </span>

            <span className="gdt0">
              {")"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"Promise"}
            </span>

            <span className="gdt0">
              {"<"}
            </span>

            <span className="gdt5">
              {"Response"}
            </span>

            <span className="gdt0">
              {"> {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"30"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"try"}
            </span>

            <span className="gdt0">
              {" {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"31"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"return"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"fetch"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"`${"}
            </span>

            <span className="gdt1">
              {"BASE_URL"}
            </span>

            <span className="gdt2">
              {"}${"}
            </span>

            <span className="gdt0">
              {"path"}
            </span>

            <span className="gdt2">
              {"}`"}
            </span>

            <span className="gdt0">
              {", {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"32"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      method: "}
            </span>

            <span className="gdt2">
              {"\"POST\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"33"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      headers: { "}
            </span>

            <span className="gdt2">
              {"\"content-type\""}
            </span>

            <span className="gdt0">
              {": "}
            </span>

            <span className="gdt2">
              {"\"application/json\""}
            </span>

            <span className="gdt0">
              {" },"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"34"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      body: "}
            </span>

            <span className="gdt1">
              {"JSON"}
            </span>

            <span className="gdt0">
              {"."}
            </span>

            <span className="gdt5">
              {"stringify"}
            </span>

            <span className="gdt0">
              {"(body),"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"35"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      signal,"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"36"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    });"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"37"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  } "}
            </span>

            <span className="gdt4">
              {"catch"}
            </span>

            <span className="gdt0">
              {" (err) {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"38"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"if"}
            </span>

            <span className="gdt0">
              {" (signal.aborted) "}
            </span>

            <span className="gdt4">
              {"throw"}
            </span>

            <span className="gdt0">
              {" err;"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"39"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"throw"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"new"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"Error"}
            </span>

            <span className="gdt0">
              {"("}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"40"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      "}
            </span>

            <span className="gdt2">
              {"`连不上 ${"}
            </span>

            <span className="gdt1">
              {"BASE_URL"}
            </span>

            <span className="gdt2">
              {"}${"}
            </span>

            <span className="gdt0">
              {"path"}
            </span>

            <span className="gdt2">
              {"}。被测应用在跑吗?先起它:cd examples/zh/tier1/pi-sdk && pnpm start(或设 PI_SDK_URL 指向已部署实例)。`"}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"41"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    );"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"42"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  }"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"43"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"}"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"44"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"45"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"interface"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"Pending"}
            </span>

            <span className="gdt0">
              {" {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"46"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"readonly"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt7">
              {"cursor"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"SseFrameCursor"}
            </span>

            <span className="gdt0">
              {"<"}
            </span>

            <span className="gdt5">
              {"PiFrame"}
            </span>

            <span className="gdt0">
              {">;"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"47"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"readonly"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt7">
              {"stream"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"PiAgentStream"}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"48"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"readonly"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt7">
              {"toolCallId"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"string"}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"49"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"}"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"50"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"const"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"pendingApprovals"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"pausable"}
            </span>

            <span className="gdt0">
              {"<"}
            </span>

            <span className="gdt5">
              {"Pending"}
            </span>

            <span className="gdt0">
              {">();"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"51"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// 会话续接走「服务端记历史」范式:请求带 session.id(ctx),回传的 sessionId 用 capture 写回。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"52"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"const"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"session"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"serverSession"}
            </span>

            <span className="gdt0">
              {"();"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"53"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"54"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"function"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"readStream"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt7">
              {"cursor"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"SseFrameCursor"}
            </span>

            <span className="gdt0">
              {"<"}
            </span>

            <span className="gdt5">
              {"PiFrame"}
            </span>

            <span className="gdt0">
              {">, "}
            </span>

            <span className="gdt7">
              {"ctx"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"AgentContext"}
            </span>

            <span className="gdt0">
              {", "}
            </span>

            <span className="gdt7">
              {"stream"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"PiAgentStream"}
            </span>

            <span className="gdt0">
              {")"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"Promise"}
            </span>

            <span className="gdt0">
              {"<"}
            </span>

            <span className="gdt5">
              {"Turn"}
            </span>

            <span className="gdt0">
              {"> {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"55"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"return"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"driveFrameStream"}
            </span>

            <span className="gdt0">
              {"(cursor, stream, ctx, ("}
            </span>

            <span className="gdt7">
              {"frame"}
            </span>

            <span className="gdt0">
              {") "}
            </span>

            <span className="gdt4">
              {"=>"}
            </span>

            <span className="gdt0">
              {" {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"56"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"if"}
            </span>

            <span className="gdt0">
              {" (frame.type "}
            </span>

            <span className="gdt4">
              {"==="}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"session\""}
            </span>

            <span className="gdt0">
              {") {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"57"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      session."}
            </span>

            <span className="gdt5">
              {"capture"}
            </span>

            <span className="gdt0">
              {"(ctx, frame.sessionId);"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"58"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      "}
            </span>

            <span className="gdt4">
              {"return"}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"59"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    }"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"60"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"if"}
            </span>

            <span className="gdt0">
              {" (frame.type "}
            </span>

            <span className="gdt4">
              {"==="}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"approval_request\""}
            </span>

            <span className="gdt0">
              {") {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"61"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      pendingApprovals."}
            </span>

            <span className="gdt5">
              {"hold"}
            </span>

            <span className="gdt0">
              {"(ctx, { cursor, stream, toolCallId: frame.toolCallId });"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"62"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      "}
            </span>

            <span className="gdt4">
              {"return"}
            </span>

            <span className="gdt0">
              {" {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"63"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"        pause: { id: frame.toolCallId, action: frame.toolName, input: frame.args "}
            </span>

            <span className="gdt4">
              {"as"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"JsonValue"}
            </span>

            <span className="gdt0">
              {", options: [{ id: "}
            </span>

            <span className="gdt2">
              {"\"approve\""}
            </span>

            <span className="gdt0">
              {" }, { id: "}
            </span>

            <span className="gdt2">
              {"\"deny\""}
            </span>

            <span className="gdt0">
              {" }] },"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"64"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      };"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"65"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    }"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"66"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"if"}
            </span>

            <span className="gdt0">
              {" (frame.type "}
            </span>

            <span className="gdt4">
              {"==="}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"server_error\""}
            </span>

            <span className="gdt0">
              {") "}
            </span>

            <span className="gdt4">
              {"return"}
            </span>

            <span className="gdt0">
              {" { fail: frame.message };"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"67"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  });"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"68"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"}"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"69"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"70"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"async"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"function"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"send"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt7">
              {"input"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"TurnInput"}
            </span>

            <span className="gdt0">
              {", "}
            </span>

            <span className="gdt7">
              {"ctx"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"AgentContext"}
            </span>

            <span className="gdt0">
              {")"}
            </span>

            <span className="gdt4">
              {":"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"Promise"}
            </span>

            <span className="gdt0">
              {"<"}
            </span>

            <span className="gdt5">
              {"Turn"}
            </span>

            <span className="gdt0">
              {"> {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"71"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"const"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"pending"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>

            <span className="gdt0">
              {" pendingApprovals."}
            </span>

            <span className="gdt5">
              {"take"}
            </span>

            <span className="gdt0">
              {"(ctx);"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"72"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"if"}
            </span>

            <span className="gdt0">
              {" (pending) {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"73"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"const"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"approved"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>

            <span className="gdt0">
              {" input.text."}
            </span>

            <span className="gdt5">
              {"trim"}
            </span>

            <span className="gdt0">
              {"()."}
            </span>

            <span className="gdt5">
              {"toLowerCase"}
            </span>

            <span className="gdt0">
              {"() "}
            </span>

            <span className="gdt4">
              {"==="}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"approve\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"74"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"if"}
            </span>

            <span className="gdt0">
              {" ("}
            </span>

            <span className="gdt4">
              {"!"}
            </span>

            <span className="gdt0">
              {"approved) pending.stream."}
            </span>

            <span className="gdt5">
              {"markRejected"}
            </span>

            <span className="gdt0">
              {"(pending.toolCallId);"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"75"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"const"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"approveRes"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"appFetch"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"/api/chat/approve\""}
            </span>

            <span className="gdt0">
              {", { toolUseId: pending.toolCallId, approved }, ctx.signal);"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"76"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"if"}
            </span>

            <span className="gdt0">
              {" ("}
            </span>

            <span className="gdt4">
              {"!"}
            </span>

            <span className="gdt0">
              {"approveRes.ok) {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"77"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      "}
            </span>

            <span className="gdt4">
              {"throw"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"new"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"Error"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"`POST /api/chat/approve 失败: ${"}
            </span>

            <span className="gdt0">
              {"approveRes"}
            </span>

            <span className="gdt2">
              {"."}
            </span>

            <span className="gdt0">
              {"status"}
            </span>

            <span className="gdt2">
              {"} ${"}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt2">
              {" "}
            </span>

            <span className="gdt0">
              {"approveRes"}
            </span>

            <span className="gdt2">
              {"."}
            </span>

            <span className="gdt5">
              {"text"}
            </span>

            <span className="gdt2">
              {"()"}
            </span>

            <span className="gdt2">
              {"}`"}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"78"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    }"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"79"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"return"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"readStream"}
            </span>

            <span className="gdt0">
              {"(pending.cursor, ctx, pending.stream);"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"80"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  }"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"81"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"82"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"const"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"res"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"appFetch"}
            </span>

            <span className="gdt0">
              {"("}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"83"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt2">
              {"\"/api/chat\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"84"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    { message: input.text, sessionId: session."}
            </span>

            <span className="gdt5">
              {"id"}
            </span>

            <span className="gdt0">
              {"(ctx) },"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"85"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    ctx.signal,"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"86"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  );"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"87"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"if"}
            </span>

            <span className="gdt0">
              {" ("}
            </span>

            <span className="gdt4">
              {"!"}
            </span>

            <span className="gdt0">
              {"res.ok "}
            </span>

            <span className="gdt4">
              {"||"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"!"}
            </span>

            <span className="gdt0">
              {"res.body) {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"88"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"throw"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"new"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"Error"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"`POST /api/chat 失败: ${"}
            </span>

            <span className="gdt0">
              {"res"}
            </span>

            <span className="gdt2">
              {"."}
            </span>

            <span className="gdt0">
              {"status"}
            </span>

            <span className="gdt2">
              {"} ${"}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt2">
              {" "}
            </span>

            <span className="gdt0">
              {"res"}
            </span>

            <span className="gdt2">
              {"."}
            </span>

            <span className="gdt5">
              {"text"}
            </span>

            <span className="gdt2">
              {"()."}
            </span>

            <span className="gdt5">
              {"catch"}
            </span>

            <span className="gdt2">
              {"(() "}
            </span>

            <span className="gdt4">
              {"=>"}
            </span>

            <span className="gdt2">
              {" "}
            </span>

            <span className="gdt2">
              {"\"\""}
            </span>

            <span className="gdt2">
              {")"}
            </span>

            <span className="gdt2">
              {"}`"}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"89"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  }"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"90"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"return"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"readStream"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt5">
              {"sseJsonFrames"}
            </span>

            <span className="gdt0">
              {"<"}
            </span>

            <span className="gdt5">
              {"PiFrame"}
            </span>

            <span className="gdt0">
              {">(res.body), ctx, "}
            </span>

            <span className="gdt5">
              {"fromPiAgentEvents"}
            </span>

            <span className="gdt0">
              {"());"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"91"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"}"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"92"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"93"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"export"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"default"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"defineAgent"}
            </span>

            <span className="gdt0">
              {"({"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"94"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  name: "}
            </span>

            <span className="gdt2">
              {"\"pi-sdk\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"95"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  capabilities: {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"96"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt6">
              {"// 验证过:isNew 时不带 sessionId 开新会话、server.ts 回传的 sessionId 写回 ctx.session.id、"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"97"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt6">
              {"// 非 isNew 时带 id 续接同一条服务端内存历史(见 evals/session-isolation.eval.ts)。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"98"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    conversation: "}
            </span>

            <span className="gdt1">
              {"true"}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"99"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt6">
              {"// 验证过:get_weather / calculate 每次调用都有配对的 tool_execution_start → action.called、"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"100"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt6">
              {"// tool_execution_end → action.result,无遗漏(映射见 fromPiAgentEvents)。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"101"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    toolObservability: "}
            </span>

            <span className="gdt1">
              {"true"}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"102"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  },"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"103"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  send,"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"104"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"});"}
            </span>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

<div className="gd-file">
  <div className="gd-head">
    <span className="gd-name">
      {"evals/basic-qa.eval.ts"}
    </span>

    <span className="gd-stats">
      <span className="gd-plus">
        {"+22"}
      </span>
    </span>
  </div>

  <div className="gd-body">
    <table className="gd-table">
      <tbody>
        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"1"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"import"}
            </span>

            <span className="gdt0">
              {" { defineEval } "}
            </span>

            <span className="gdt4">
              {"from"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"niceeval\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"2"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"3"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// 这条 eval 验证 agent 能正常问答、不瞎调工具,顺带冒烟 usage 有没有正确从"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"4"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// message_end 的 AssistantMessage.usage 累加进 Turn.usage。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"5"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"export"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"default"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"defineEval"}
            </span>

            <span className="gdt0">
              {"({"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"6"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  description: "}
            </span>

            <span className="gdt2">
              {"\"测试 agent 能正常问答且不瞎调工具\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"7"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"8"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"async"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"test"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt7">
              {"t"}
            </span>

            <span className="gdt0">
              {") {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"9"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"const"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"turn"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt0">
              {" t."}
            </span>

            <span className="gdt5">
              {"send"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"用一句话介绍一下你自己,这轮不用查天气也不用算数。\""}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"10"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    turn."}
            </span>

            <span className="gdt5">
              {"expectOk"}
            </span>

            <span className="gdt0">
              {"();"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"11"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"12"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt0">
              {" t."}
            </span>

            <span className="gdt5">
              {"group"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"正常收发、没有多余工具调用\""}
            </span>

            <span className="gdt0">
              {", () "}
            </span>

            <span className="gdt4">
              {"=>"}
            </span>

            <span className="gdt0">
              {" {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"13"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      t."}
            </span>

            <span className="gdt5">
              {"succeeded"}
            </span>

            <span className="gdt0">
              {"();"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"14"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      t."}
            </span>

            <span className="gdt5">
              {"usedNoTools"}
            </span>

            <span className="gdt0">
              {"();"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"15"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    });"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"16"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"17"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt6">
              {"// usage 冒烟:拿不到就应该是 0,不该抛错;上限给得宽松,只为证明数字不是编的。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"18"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    t."}
            </span>

            <span className="gdt5">
              {"maxTokens"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt1">
              {"20_000"}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"19"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"20"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    t.judge.autoevals."}
            </span>

            <span className="gdt5">
              {"closedQA"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"助手是否用一两句话正常介绍了自己,而不是报错或答非所问?\""}
            </span>

            <span className="gdt0">
              {")."}
            </span>

            <span className="gdt5">
              {"gate"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt1">
              {"0.6"}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"21"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  },"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"22"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"});"}
            </span>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

<div className="gd-file">
  <div className="gd-head">
    <span className="gd-name">
      {"evals/hitl-approve.eval.ts"}
    </span>

    <span className="gd-stats">
      <span className="gd-plus">
        {"+25"}
      </span>
    </span>
  </div>

  <div className="gd-body">
    <table className="gd-table">
      <tbody>
        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"1"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"import"}
            </span>

            <span className="gdt0">
              {" { defineEval } "}
            </span>

            <span className="gdt4">
              {"from"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"niceeval\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"2"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"import"}
            </span>

            <span className="gdt0">
              {" { equals } "}
            </span>

            <span className="gdt4">
              {"from"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"niceeval/expect\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"3"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"4"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// calculate 工具经服务端 beforeToolCall 挂了审批(见 agents/pi-sdk.ts、origin src/backend/server.ts)。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"5"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// 这条验证批准分支:approve 之后工具正常执行,calledTool 的 status 是 \"completed\"。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"6"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"export"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"default"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"defineEval"}
            </span>

            <span className="gdt0">
              {"({"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"7"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  description: "}
            </span>

            <span className="gdt2">
              {"\"HITL:calculate 经批准后正常执行\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"8"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"9"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"async"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"test"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt7">
              {"t"}
            </span>

            <span className="gdt0">
              {") {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"10"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt6">
              {"// 提示词不提\"审批\"——一提审批,deepseek-v4-flash 就倾向于用文字问\"可以吗\",而不是真的发起"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"11"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt6">
              {"// 工具调用;审批门是服务端 beforeToolCall 自动挂的,跟用户怎么问无关,越自然越准确触发工具。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"12"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"const"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"draft"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt0">
              {" t."}
            </span>

            <span className="gdt5">
              {"send"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"用计算器算一下 (23+19)*3 等于多少\""}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"13"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt6">
              {"// t.parked() 之类的作用域断言是延迟求值的(评到 run 结束时的最终状态),这一轮结束后马上"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"14"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt6">
              {"// continue 到 approve,run 早就不再\"停着\"了——判\"当下有没有停在审批上\"只能看这个"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"15"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt6">
              {"// TurnHandle 自己的 status,不能用 t.parked()。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"16"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    t."}
            </span>

            <span className="gdt5">
              {"check"}
            </span>

            <span className="gdt0">
              {"(draft.status, "}
            </span>

            <span className="gdt5">
              {"equals"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"waiting\""}
            </span>

            <span className="gdt0">
              {"));"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"17"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"18"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    t."}
            </span>

            <span className="gdt5">
              {"requireInputRequest"}
            </span>

            <span className="gdt0">
              {"({ action: "}
            </span>

            <span className="gdt2">
              {"\"calculate\""}
            </span>

            <span className="gdt0">
              {" });"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"19"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"20"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"const"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"approved"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt0">
              {" t."}
            </span>

            <span className="gdt5">
              {"respond"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"approve\""}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"21"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    approved."}
            </span>

            <span className="gdt5">
              {"succeeded"}
            </span>

            <span className="gdt0">
              {"();"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"22"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    t."}
            </span>

            <span className="gdt5">
              {"calledTool"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"calculate\""}
            </span>

            <span className="gdt0">
              {", { status: "}
            </span>

            <span className="gdt2">
              {"\"completed\""}
            </span>

            <span className="gdt0">
              {" });"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"23"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    t."}
            </span>

            <span className="gdt5">
              {"messageIncludes"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"/"}
            </span>

            <span className="gdt8">
              {"126"}
            </span>

            <span className="gdt2">
              {"/"}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"24"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  },"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"25"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"});"}
            </span>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

<div className="gd-file">
  <div className="gd-head">
    <span className="gd-name">
      {"evals/hitl-deny.eval.ts"}
    </span>

    <span className="gd-stats">
      <span className="gd-plus">
        {"+19"}
      </span>
    </span>
  </div>

  <div className="gd-body">
    <table className="gd-table">
      <tbody>
        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"1"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"import"}
            </span>

            <span className="gdt0">
              {" { defineEval } "}
            </span>

            <span className="gdt4">
              {"from"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"niceeval\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"2"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"3"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// deny 分支:人否决和工具故障是两回事——calledTool 的 status 应该是 \"rejected\","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"4"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// noFailedActions() 依然通过(拒绝是预期路径,不是执行错误)。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"5"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"export"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"default"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"defineEval"}
            </span>

            <span className="gdt0">
              {"({"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"6"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  description: "}
            </span>

            <span className="gdt2">
              {"\"HITL:calculate 被拒绝后标记 rejected 而不是 failed\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"7"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"8"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"async"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"test"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt7">
              {"t"}
            </span>

            <span className="gdt0">
              {") {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"9"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt6">
              {"// 提示词不提\"审批\"——一提审批,deepseek-v4-flash 就倾向于用文字问\"可以吗\",而不是真的发起"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"10"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt6">
              {"// 工具调用;审批门是服务端 beforeToolCall 自动挂的,跟用户怎么问无关,越自然越准确触发工具。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"11"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt0">
              {" t."}
            </span>

            <span className="gdt5">
              {"send"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"用计算器算一下 (23+19)*3 等于多少\""}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"12"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    t."}
            </span>

            <span className="gdt5">
              {"requireInputRequest"}
            </span>

            <span className="gdt0">
              {"({ action: "}
            </span>

            <span className="gdt2">
              {"\"calculate\""}
            </span>

            <span className="gdt0">
              {" });"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"13"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"14"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"const"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"denied"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt0">
              {" t."}
            </span>

            <span className="gdt5">
              {"respond"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"deny\""}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"15"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    denied."}
            </span>

            <span className="gdt5">
              {"succeeded"}
            </span>

            <span className="gdt0">
              {"();"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"16"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    t."}
            </span>

            <span className="gdt5">
              {"calledTool"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"calculate\""}
            </span>

            <span className="gdt0">
              {", { status: "}
            </span>

            <span className="gdt2">
              {"\"rejected\""}
            </span>

            <span className="gdt0">
              {" });"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"17"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    t."}
            </span>

            <span className="gdt5">
              {"noFailedActions"}
            </span>

            <span className="gdt0">
              {"();"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"18"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  },"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"19"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"});"}
            </span>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

<div className="gd-file">
  <div className="gd-head">
    <span className="gd-name">
      {"evals/session-isolation.eval.ts"}
    </span>

    <span className="gd-stats">
      <span className="gd-plus">
        {"+22"}
      </span>
    </span>
  </div>

  <div className="gd-body">
    <table className="gd-table">
      <tbody>
        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"1"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"import"}
            </span>

            <span className="gdt0">
              {" { defineEval } "}
            </span>

            <span className="gdt4">
              {"from"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"niceeval\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"2"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"import"}
            </span>

            <span className="gdt0">
              {" { includes, excludes } "}
            </span>

            <span className="gdt4">
              {"from"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"niceeval/expect\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"3"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"4"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// 这条 eval 专门验证 conversation 能力位的两半承诺:同一 session 里第二轮记得住第一轮说的名字"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"5"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// (server.ts 内存 Map<sessionId, AgentMessage[]> 续接成功);t.newSession() 造出的新 session"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"6"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// 不共享历史(常见 bug:adapter 忽略 ctx.session.isNew 一律续接,隔离会静默失真且不报错)。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"7"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"export"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"default"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"defineEval"}
            </span>

            <span className="gdt0">
              {"({"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"8"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  description: "}
            </span>

            <span className="gdt2">
              {"\"测试跨轮记忆与 newSession() 隔离\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"9"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"10"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"async"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"test"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt7">
              {"t"}
            </span>

            <span className="gdt0">
              {") {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"11"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt0">
              {" t."}
            </span>

            <span className="gdt5">
              {"send"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"我叫小明,帮我记住这个名字。\""}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"12"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"const"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"recall"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt0">
              {" t."}
            </span>

            <span className="gdt5">
              {"send"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"我刚才说我叫什么名字?\""}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"13"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    recall."}
            </span>

            <span className="gdt5">
              {"messageIncludes"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"小明\""}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"14"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    t."}
            </span>

            <span className="gdt5">
              {"check"}
            </span>

            <span className="gdt0">
              {"(t.reply, "}
            </span>

            <span className="gdt5">
              {"includes"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"小明\""}
            </span>

            <span className="gdt0">
              {"));"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"15"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"16"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"const"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"fresh"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>

            <span className="gdt0">
              {" t."}
            </span>

            <span className="gdt5">
              {"newSession"}
            </span>

            <span className="gdt0">
              {"();"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"17"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt0">
              {" fresh."}
            </span>

            <span className="gdt5">
              {"send"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"我叫什么名字?\""}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"18"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt6">
              {"// 新 session 没有历史,不应该知道\"小明\"这个事实——用 fresh.* 只看这条新 session 自己的事件,"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"19"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt6">
              {"// 不是 t.*(t.* 是 run 级聚合,会同时看到主 session 的事件)。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"20"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    t."}
            </span>

            <span className="gdt5">
              {"check"}
            </span>

            <span className="gdt0">
              {"(fresh.reply, "}
            </span>

            <span className="gdt5">
              {"excludes"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"小明\""}
            </span>

            <span className="gdt0">
              {"));"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"21"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  },"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"22"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"});"}
            </span>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

<div className="gd-file">
  <div className="gd-head">
    <span className="gd-name">
      {"evals/weather-tool.eval.ts"}
    </span>

    <span className="gd-stats">
      <span className="gd-plus">
        {"+21"}
      </span>
    </span>
  </div>

  <div className="gd-body">
    <table className="gd-table">
      <tbody>
        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"1"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"import"}
            </span>

            <span className="gdt0">
              {" { defineEval } "}
            </span>

            <span className="gdt4">
              {"from"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"niceeval\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"2"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"3"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// 这条 eval 验证 agent 遇到实时天气问题时会调 get_weather,而不是直接编一个答案。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"4"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"export"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"default"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"defineEval"}
            </span>

            <span className="gdt0">
              {"({"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"5"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  description: "}
            </span>

            <span className="gdt2">
              {"\"测试 agent 在天气问题中正确调用 get_weather 并基于结果作答\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"6"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"7"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt4">
              {"async"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"test"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt7">
              {"t"}
            </span>

            <span className="gdt0">
              {") {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"8"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"const"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt1">
              {"turn"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"="}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt0">
              {" t."}
            </span>

            <span className="gdt5">
              {"send"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"北京今天天气怎么样?\""}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"9"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    turn."}
            </span>

            <span className="gdt5">
              {"expectOk"}
            </span>

            <span className="gdt0">
              {"();"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"10"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"11"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt4">
              {"await"}
            </span>

            <span className="gdt0">
              {" t."}
            </span>

            <span className="gdt5">
              {"group"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"调用 get_weather 且城市正确\""}
            </span>

            <span className="gdt0">
              {", () "}
            </span>

            <span className="gdt4">
              {"=>"}
            </span>

            <span className="gdt0">
              {" {"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"12"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      t."}
            </span>

            <span className="gdt5">
              {"calledTool"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"get_weather\""}
            </span>

            <span className="gdt0">
              {", { input: { city: "}
            </span>

            <span className="gdt2">
              {"\"北京\""}
            </span>

            <span className="gdt0">
              {" } });"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"13"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      t."}
            </span>

            <span className="gdt5">
              {"messageIncludes"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"/"}
            </span>

            <span className="gdt8">
              {"°C"}
            </span>

            <span className="gdt4">
              {"|"}
            </span>

            <span className="gdt8">
              {"气温"}
            </span>

            <span className="gdt4">
              {"|"}
            </span>

            <span className="gdt8">
              {"天气"}
            </span>

            <span className="gdt4">
              {"|"}
            </span>

            <span className="gdt8">
              {"晴"}
            </span>

            <span className="gdt4">
              {"|"}
            </span>

            <span className="gdt8">
              {"多云"}
            </span>

            <span className="gdt4">
              {"|"}
            </span>

            <span className="gdt8">
              {"雨"}
            </span>

            <span className="gdt4">
              {"|"}
            </span>

            <span className="gdt8">
              {"阴"}
            </span>

            <span className="gdt2">
              {"/"}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"14"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    });"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"15"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"16"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    "}
            </span>

            <span className="gdt6">
              {"// 「是否走了工具」由上面的 t.calledTool 确定性把关;judge 只评回复本身的质量。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"17"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"    t.judge.autoevals"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"18"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      ."}
            </span>

            <span className="gdt5">
              {"closedQA"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt2">
              {"\"助手是否给出了具体的天气数据(温度或天气状况),而不是拒绝回答或含糊其辞?\""}
            </span>

            <span className="gdt0">
              {")"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"19"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"      ."}
            </span>

            <span className="gdt5">
              {"atLeast"}
            </span>

            <span className="gdt0">
              {"("}
            </span>

            <span className="gdt1">
              {"0.7"}
            </span>

            <span className="gdt0">
              {");"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"20"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  },"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"21"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"});"}
            </span>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

<div className="gd-file">
  <div className="gd-head">
    <span className="gd-name">
      {"experiments/assistant.ts"}
    </span>

    <span className="gd-stats">
      <span className="gd-plus">
        {"+9"}
      </span>
    </span>
  </div>

  <div className="gd-body">
    <table className="gd-table">
      <tbody>
        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"1"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"import"}
            </span>

            <span className="gdt0">
              {" { defineExperiment } "}
            </span>

            <span className="gdt4">
              {"from"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"niceeval\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"2"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"import"}
            </span>

            <span className="gdt0">
              {" agent "}
            </span>

            <span className="gdt4">
              {"from"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt2">
              {"\"../agents/pi-sdk.ts\""}
            </span>

            <span className="gdt0">
              {";"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"3"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            {" "}
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"4"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt6">
              {"// 单配置基线:不比较模型,用 .env 里的默认模型(deepseek-v4-flash)。"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"5"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt4">
              {"export"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt4">
              {"default"}
            </span>

            <span className="gdt0">
              {" "}
            </span>

            <span className="gdt5">
              {"defineExperiment"}
            </span>

            <span className="gdt0">
              {"({"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"6"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  description: "}
            </span>

            <span className="gdt2">
              {"\"pi-sdk:真实 DeepSeek 后端(默认模型)\""}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"7"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  agent,"}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"8"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"  runs: "}
            </span>

            <span className="gdt1">
              {"1"}
            </span>

            <span className="gdt0">
              {","}
            </span>
          </td>
        </tr>

        <tr className="gd-add">
          <td className="gd-ln" />

          <td className="gd-ln">
            {"9"}
          </td>

          <td className="gd-sign">
            {"+"}
          </td>

          <td className="gd-code">
            <span className="gdt0">
              {"});"}
            </span>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</div>
