> ## 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.

# Codex SDK 如何非侵入式接入 NiceEval

> 一个 Codex SDK（目录里的编码 agent）后端，接入 NiceEval 前后的完整代码 diff：应用侧一行没改。

对比对象：

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

**接入方式**：OTel + 官方转换器——`events: otelEvents({ dialects: [otel.codex] })`：
工具调用和 usage 从 codex CLI 原生 OTLP（config.toml 的 \[otel] 块）的 span 派生，瀑布图
经官方 `mapCodexSpans` 归一；span 上没有的消息文本由官方转换器 `fromCodexThreadEvents`
从原生 `ThreadEvent` 帧翻译。没有 HITL（Codex SDK 不支持）。eval 测的是真实编码任务
（在工作目录里写文件、跑命令），断言直接读磁盘验证。应用由你自己启动（`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>
        {"+85"}
      </td>
    </tr>

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

      <td>
        {"5"}
      </td>

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

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

      <td>
        {"10"}
      </td>

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

## 文件清单

```text theme={null}
codex-sdk/
├── package.json                    修改
├── tsconfig.json                   修改
├── pnpm-workspace.yaml             修改
├── niceeval.config.ts              新增
├── agents/
│   └── codex-sdk.ts                新增
├── evals/
│   ├── basic-qa.eval.ts            新增
│   ├── create-file.eval.ts         新增
│   ├── run-command.eval.ts         新增
│   └── session-isolation.eval.ts   新增
└── experiments/
    └── codex-sdk.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="gdf7">
          <td className="gd-ln" colSpan={2}>
            {"⇕"}
          </td>

          <td className="gd-sign" />

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

        <tr className="gd-fold gdf7">
          <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 gdf7">
          <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">
              {"\"codex-sdk-example\""}
            </span>

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

        <tr className="gd-fold gdf7">
          <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 gdf7">
          <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 gdf7">
          <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 gdf7">
          <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 gdf7">
          <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:5199 | 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 gdf7">
          <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:5199 && 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="gdf8">
          <td className="gd-ln" colSpan={2}>
            {"⇕"}
          </td>

          <td className="gd-sign" />

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

        <tr className="gd-fold gdf8">
          <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 gdf8">
          <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">
              {"\"@openai/codex-sdk\""}
            </span>

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

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

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

        <tr className="gd-fold gdf8">
          <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">
              {"\"react\""}
            </span>

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

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

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

        <tr className="gd-fold gdf8">
          <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-dom\""}
            </span>

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

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

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

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

          <td className="gd-sign" />

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

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

          <td className="gd-ln">
            {"21"}
          </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 gdf8">
          <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">
              {"\"@types/node\""}
            </span>

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

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

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

        <tr className="gd-fold gdf8">
          <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/react\""}
            </span>

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

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

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

        <tr>
          <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-dom\""}
            </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">
              {"\"@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">
            {"25"}
          </td>

          <td className="gd-ln">
            {"26"}
          </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">
            {"27"}
          </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">
            {"26"}
          </td>

          <td className="gd-ln">
            {"28"}
          </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.19.2\""}
            </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">
              {"\"typescript\""}
            </span>

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

            <span className="gdt2">
              {"\"^5.7.2\""}
            </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">
              {"\"vite\""}
            </span>

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

            <span className="gdt2">
              {"\"^7.0.0\""}
            </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">
              {"\"wait-on\""}
            </span>

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

            <span className="gdt2">
              {"\"^9.0.0\""}
            </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>
          </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>
      </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="gdf9">
          <td className="gd-ln" colSpan={2}>
            {"⇕"}
          </td>

          <td className="gd-sign" />

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

        <tr className="gd-fold gdf9">
          <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 gdf9">
          <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 gdf9">
          <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 gdf9">
          <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 gdf9">
          <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 gdf9">
          <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 gdf9">
          <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>
          </td>
        </tr>

        <tr className="gd-fold gdf9">
          <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 gdf9">
          <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 gdf9">
          <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">
              {"\"noUncheckedIndexedAccess\""}
            </span>

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

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

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

        <tr className="gd-fold gdf9">
          <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">
              {"\"esModuleInterop\""}
            </span>

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

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

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

        <tr className="gd-fold gdf9">
          <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">
              {"\"skipLibCheck\""}
            </span>

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

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

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

        <tr className="gd-fold gdf9">
          <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">
              {"\"allowImportingTsExtensions\""}
            </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">
              {"\"noEmit\""}
            </span>

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

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

            <span className="gdt0">
              {","}
            </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>

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

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

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

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

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

          <td className="gd-sign" />

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

        <tr className="gd-del">
          <td className="gd-ln">
            {"17"}
          </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">
            {"17"}
          </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">
            {"18"}
          </td>

          <td className="gd-ln">
            {"18"}
          </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="gdt6">
              {"# examples/ 不属于本仓库的 monorepo —— 每个 example 是独立 npm 项目(自带"}
            </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="gdt6">
              {"# package.json),不作为本仓库根 workspace 的成员。这个空 workspace 文件让 pnpm"}
            </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="gdt6">
              {"# 把这里当独立项目安装依赖,不往上找根 workspace。"}
            </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="gdt3">
              {"packages"}
            </span>

            <span className="gdt0">
              {": []"}
            </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="gdt3">
              {"allowBuilds"}
            </span>

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

        <tr>
          <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="gdt3">
              {"esbuild"}
            </span>

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

            <span className="gdt1">
              {"true"}
            </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="gdt3">
              {"overrides"}
            </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="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">
            {"9"}
          </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">
            {"10"}
          </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">
        {"+12"}
      </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">
              {"\"Codex SDK 示例\""}
            </span>

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

            <span className="gdt2">
              {"\"Codex SDK 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">
              {"180_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">
              {"// span 接收钉在 OTLP 标准端口:起应用时 OTEL_EXPORTER_OTLP_ENDPOINT 指过来即可(见 README)。"}
            </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">
              {"  telemetry: { port: "}
            </span>

            <span className="gdt1">
              {"4318"}
            </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">
              {"// 每个 attempt 都要经一个真实子进程(server.ts)+ Codex CLI 子进程(真的在工作目录里"}
            </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">
              {"// 跑命令/改文件)+ 网络调用,比其它示例都重,别开太高并发。"}
            </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">
              {"  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">
            {"12"}
          </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/codex-sdk.ts"}
    </span>

    <span className="gd-stats">
      <span className="gd-plus">
        {"+73"}
      </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">
              {"// codex-sdk 的 adapter:无侵入对接一个**已经在跑**的应用(../src/backend/server.ts,原生"}
            </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">
              {"// `ThreadEvent` 流原样透传成 SSE,外加一个和 `ThreadErrorEvent` 同形状的 `{type:\"error\"}`"}
            </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">
              {"// 传输帧)。没有 HITL(Codex SDK 不支持),永不返回 \"waiting\"。"}
            </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">
              {"// 事件分工:"}
            </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">
              {"//   · 工具调用 + usage —— `events: otelEvents({ dialects: [otel.codex] })` 官方方言,从"}
            </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">
              {"//     codex CLI 原生 OTLP(config.toml [otel] 块)的 span 派生;瀑布图经官方 `mapCodexSpans`"}
            </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">
              {"//     归一。codex 的 span 没有工具 I/O,要做 I/O 断言时按 call_id 手写补(本示例的断言"}
            </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">
              {"//   · 消息文本 / 终局错误 —— 官方转换器 `fromCodexThreadEvents` 从 `ThreadEvent` 帧翻译,"}
            </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">
              {"//     逐帧驱动是官方件 `driveFrameStream`(没有 HITL,onFrame 只用来处理传输帧 + 抓 threadId)。"}
            </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="gdt4">
              {"import"}
            </span>

            <span className="gdt0">
              {" { defineAgent, otelEvents, otel, mapCodexSpans, sseJsonFrames, fromCodexThreadEvents, driveFrameStream, 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">
            {"13"}
          </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 } "}
            </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">
            {"14"}
          </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">
              {" { 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">
            {"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">
              {" { ThreadEvent } "}
            </span>

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

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

            <span className="gdt2">
              {"\"@openai/codex-sdk\""}
            </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">
            {" "}
          </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="gdt6">
              {"// 被测应用由你自己按它的方式启动(pnpm start / 部署在哪都行),eval 不代管进程、不另开端口。"}
            </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="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">
              {"CODEX_SDK_URL"}
            </span>

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

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

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

            <span className="gdt2">
              {"\"http://127.0.0.1:5199\""}
            </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="gdt4">
              {"type"}
            </span>

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

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

            <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">
              {"\"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">
            {"21"}
          </td>

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

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

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

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

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

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

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

            <span className="gdt5">
              {"ThreadEvent"}
            </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">
            {"22"}
          </td>

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

          <td className="gd-code">
            {" "}
          </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="gdt6">
              {"// 会话续接走「服务端记历史」范式:请求带 session.id(ctx),thread.started 回传的 id 用 capture 写回。"}
            </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="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">
            {"25"}
          </td>

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

          <td className="gd-code">
            {" "}
          </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">
            <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">
            {"27"}
          </td>

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

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

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

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

            <span className="gdt4">
              {":"}
            </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">
            {"28"}
          </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">
            {"29"}
          </td>

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

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

            <span className="gdt4">
              {"="}
            </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">
              {"}/api/chat`"}
            </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">
              {"      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">
            {"31"}
          </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">
            {"32"}
          </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">
              {"({"}
            </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">
              {"        message: input.text,"}
            </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">
              {"        threadId: 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">
            {"35"}
          </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">
            {"36"}
          </td>

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

          <td className="gd-code">
            <span className="gdt0">
              {"      signal: ctx.signal,"}
            </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>
          </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">
              {"catch"}
            </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">
              {"if"}
            </span>

            <span className="gdt0">
              {" (ctx.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">
            {"40"}
          </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">
            {"41"}
          </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">
              {"}/api/chat。被测应用在跑吗?先起它:cd examples/zh/tier1/codex-sdk && pnpm start(或设 CODEX_SDK_URL 指向已部署实例)。`"}
            </span>

            <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">
            <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">
            {"45"}
          </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">
            {"46"}
          </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">
            {"47"}
          </td>

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

          <td className="gd-code">
            {" "}
          </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">
              {"const"}
            </span>

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

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

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

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

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

            <span className="gdt5">
              {"fromCodexThreadEvents"}
            </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>

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

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

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

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

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

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

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

            <span className="gdt0">
              {">(res.body), 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">
            {"50"}
          </td>

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

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

            <span className="gdt6">
              {"// 应用自定义传输帧(query() 之外的失败,比如 spawn 失败),不属于 ThreadEvent。"}
            </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="gdt0">
              {"    "}
            </span>

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

            <span className="gdt0">
              {" (frame.type "}
            </span>

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

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

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

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

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

            <span className="gdt0">
              {" { fail: (frame "}
            </span>

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

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

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

            <span className="gdt0">
              {").message };"}
            </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="gdt0">
              {"    session."}
            </span>

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

            <span className="gdt0">
              {"(ctx, stream.threadId);"}
            </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">
            <span className="gdt0">
              {"  });"}
            </span>
          </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="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">
            {" "}
          </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="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">
            {"57"}
          </td>

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

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

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

            <span className="gdt0">
              {","}
            </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">
              {"  capabilities: {"}
            </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>

            <span className="gdt6">
              {"// 验证过:isNew 时不带 threadId 开新会话、thread.started 帧回传的 thread_id 写回"}
            </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="gdt6">
              {"// ctx.session.id、非 isNew 时带 id 经 codex.resumeThread 续接同一条历史"}
            </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">
              {"    "}
            </span>

            <span className="gdt6">
              {"// (SDK 落盘在 ~/.codex/sessions)。"}
            </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">
              {"    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">
            {"63"}
          </td>

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

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

            <span className="gdt6">
              {"// 工具观测走 otel.codex 方言:每次真实执行都有带 tool_name + call_id 的 span"}
            </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>

            <span className="gdt6">
              {"// (实测见 src/o11y/otlp/dialects.ts 的 codex 方言注释),覆盖完整。"}
            </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">
              {"    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">
            {"66"}
          </td>

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

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

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

            <span className="gdt0">
              {","}
            </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>

            <span className="gdt6">
              {"// 声明了 events 就走 run 级共享接收器;端口钉在 niceeval.config.ts 的 telemetry.port,"}
            </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">
            <span className="gdt0">
              {"  "}
            </span>

            <span className="gdt6">
              {"// 起应用时 OTEL_EXPORTER_OTLP_ENDPOINT 指过来(codex 配置里自己拼 /v1/traces,给 base)。"}
            </span>
          </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="gdt0">
              {"  events: "}
            </span>

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

            <span className="gdt0">
              {"({ dialects: [otel.codex] }),"}
            </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">
              {"  spanMapper: mapCodexSpans,"}
            </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">
              {"  send,"}
            </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>
          </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 有没有从 turn.completed 的"}
            </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">
              {"// usage(input_tokens/output_tokens/cached_input_tokens)正确映射进 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="gdt6">
              {"// Codex 是自主编码 agent,即使是纯问答也可能顺手探索一下工作目录——这里不强断言"}
            </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">
              {"// usedNoTools(),只看回答本身和有没有失败的动作。"}
            </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">
              {"\"测试 agent 能正常问答\""}
            </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">
              {"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">
              {"\"1+1 等于几?用一句话回答就好,不用跑命令也不用建文件。\""}
            </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">
              {"    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">
            {"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">
              {"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">
            {"15"}
          </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">
            {"16"}
          </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">
            {"17"}
          </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">
              {"\"2\""}
            </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">
            {" "}
          </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">
              {"maxTokens"}
            </span>

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

            <span className="gdt1">
              {"40_000"}
            </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/create-file.eval.ts"}
    </span>

    <span className="gd-stats">
      <span className="gd-plus">
        {"+32"}
      </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 } "}
            </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">
            <span className="gdt4">
              {"import"}
            </span>

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

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

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

            <span className="gdt2">
              {"\"node:fs\""}
            </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="gdt4">
              {"import"}
            </span>

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

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

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

            <span className="gdt2">
              {"\"node:path\""}
            </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">
            {" "}
          </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">
              {"// Codex 是\"目录里的编码 agent\",这条 eval 测它最本分的事:在工作目录里写一个真实文件。"}
            </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">
              {"// 断言不只信模型的自我报告——先删掉目标文件(workspace/ 不会在 attempt 之间自动清空,见"}
            </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">
              {"// origin src/backend/agent.ts 头注释),跑完直接用 node:fs 读磁盘上的真实内容,双重核实"}
            </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="gdt4">
              {"const"}
            </span>

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

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

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

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

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

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

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

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

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

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

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

            <span className="gdt2">
              {"\"niceeval-create-file.txt\""}
            </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="gdt4">
              {"const"}
            </span>

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

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

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

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

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

            <span className="gdt2">
              {"\"niceeval-marker-926\""}
            </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">
            {" "}
          </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="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">
            {"14"}
          </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">
            {"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">
              {"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">
            {"17"}
          </td>

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

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

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

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

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

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

            <span className="gdt1">
              {"true"}
            </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="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>
          </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="gdt2">
              {"`在当前工作目录创建一个文件 niceeval-create-file.txt,内容只写一行:${"}
            </span>

            <span className="gdt1">
              {"MARKER"}
            </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">
              {"    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">
            {"23"}
          </td>

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

          <td className="gd-code">
            {" "}
          </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">
              {"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">
            {"25"}
          </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">
            {"26"}
          </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">
            {"27"}
          </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">
            {"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="gdt0">
              {"    "}
            </span>

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

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

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

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

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

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

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

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

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

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

            <span className="gdt2">
              {"\"utf8\""}
            </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">
              {"    t."}
            </span>

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

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

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

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

            <span className="gdt1">
              {"MARKER"}
            </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>
          </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">
              {"});"}
            </span>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

<div className="gd-file">
  <div className="gd-head">
    <span className="gd-name">
      {"evals/run-command.eval.ts"}
    </span>

    <span className="gd-stats">
      <span className="gd-plus">
        {"+20"}
      </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 会真的跑 shell 命令(而不是凭空回答)。工具事件由 otel.codex 方言"}
            </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">
              {"// 从 codex 原生 span 派生,工具名是 span 上的 codex 内部名 `exec_command`"}
            </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">
              {"// (不是 ThreadEvent item 的 `command_execution`——两套命名来自 codex 的不同层)。"}
            </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">
              {"\"测试 agent 能在工作目录里跑一个真实 shell 命令\""}
            </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="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">
              {"\"在当前工作目录跑 `echo niceeval-run-command-926`,把命令的输出告诉我。\""}
            </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">
              {"    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">
            {"12"}
          </td>

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

          <td className="gd-code">
            {" "}
          </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="gdt4">
              {"await"}
            </span>

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

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

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

            <span className="gdt2">
              {"\"调用了 shell 且没有失败的动作\""}
            </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">
            {"14"}
          </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">
              {"\"exec_command\""}
            </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">
            {"15"}
          </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">
            {"16"}
          </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">
            {"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">
              {"messageIncludes"}
            </span>

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

            <span className="gdt2">
              {"\"niceeval-run-command-926\""}
            </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>
          </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>
      </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">
        {"+24"}
      </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 能力位:同一 thread 里第二轮记得住第一轮说的事"}
            </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">
              {"// (codex.resumeThread 续接成功);t.newSession() 造出的新 thread 不共享历史。"}
            </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">
              {"//"}
            </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">
              {"// 故意用一句\"记住我最喜欢的颜色\"而不是\"你创建的文件叫什么\"——workspace/ 目录是所有"}
            </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">
              {"// thread 共享的同一份磁盘状态,如果拿文件是否存在当隔离信号,新 thread 完全可能自己"}
            </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">
              {"// ls 一下发现文件还在,那测的是\"文件系统有没有清空\"而不是\"对话记忆有没有隔离\","}
            </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">
              {"// 两回事。纯口头事实不受工作目录状态干扰,是更干净的隔离信号。"}
            </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="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">
            {"12"}
          </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">
            {"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">
              {"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">
            {"15"}
          </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">
            {"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">
              {"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">
            {"17"}
          </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="gdt8">
              {"蓝"}
            </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">
              {"    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">
            {"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">
              {"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">
            {"21"}
          </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">
            {"22"}
          </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">
            {"23"}
          </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">
            {"24"}
          </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/codex-sdk.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/codex-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">
              {"// 单配置基线:这个示例只有一个 agent、不比较模型,用 .env 里的默认模型(gpt-5.4)。"}
            </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">
              {"\"codex-sdk:真实 Codex SDK 后端\""}
            </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>
