@qwen-code/arena-agent 0.0.9-dev.1 → 0.0.9-dev.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/.env.example +29 -0
  2. package/README.md +149 -12
  3. package/dist/agent.d.ts +4 -2
  4. package/dist/agent.js +118 -15
  5. package/dist/agent.js.map +1 -1
  6. package/dist/ask-user.d.ts +20 -0
  7. package/dist/ask-user.js +388 -0
  8. package/dist/ask-user.js.map +1 -0
  9. package/dist/canonical-data.d.ts +1 -0
  10. package/dist/canonical-data.js +1 -0
  11. package/dist/canonical-data.js.map +1 -1
  12. package/dist/cli.js +29 -10
  13. package/dist/cli.js.map +1 -1
  14. package/dist/code-cli.d.ts +2 -0
  15. package/dist/code-cli.js +12 -0
  16. package/dist/code-cli.js.map +1 -0
  17. package/dist/code-tools.d.ts +73 -0
  18. package/dist/code-tools.js +2106 -0
  19. package/dist/code-tools.js.map +1 -0
  20. package/dist/config.d.ts +16 -1
  21. package/dist/config.js +66 -3
  22. package/dist/config.js.map +1 -1
  23. package/dist/document-reader.js +9 -0
  24. package/dist/document-reader.js.map +1 -1
  25. package/dist/fetch-page.d.ts +2 -0
  26. package/dist/fetch-page.js +50 -21
  27. package/dist/fetch-page.js.map +1 -1
  28. package/dist/history.d.ts +3 -0
  29. package/dist/history.js +4 -0
  30. package/dist/history.js.map +1 -1
  31. package/dist/mock.d.ts +1 -0
  32. package/dist/mock.js +38 -0
  33. package/dist/mock.js.map +1 -1
  34. package/dist/mode.d.ts +6 -0
  35. package/dist/mode.js +33 -0
  36. package/dist/mode.js.map +1 -0
  37. package/dist/model-capabilities.d.ts +20 -0
  38. package/dist/model-capabilities.js +98 -0
  39. package/dist/model-capabilities.js.map +1 -0
  40. package/dist/model-diagnostics.d.ts +32 -0
  41. package/dist/model-diagnostics.js +365 -0
  42. package/dist/model-diagnostics.js.map +1 -0
  43. package/dist/provider.d.ts +16 -0
  44. package/dist/provider.js +334 -37
  45. package/dist/provider.js.map +1 -1
  46. package/dist/sdk.d.ts +35 -3
  47. package/dist/sdk.js +6 -2
  48. package/dist/sdk.js.map +1 -1
  49. package/dist/server.d.ts +2 -0
  50. package/dist/server.js +82 -4
  51. package/dist/server.js.map +1 -1
  52. package/dist/spec.d.ts +11 -8
  53. package/dist/spec.js +105 -13
  54. package/dist/spec.js.map +1 -1
  55. package/dist/tools.d.ts +11 -28
  56. package/dist/tools.js +60 -11
  57. package/dist/tools.js.map +1 -1
  58. package/dist/tui.d.ts +2 -0
  59. package/dist/tui.js +8 -2
  60. package/dist/tui.js.map +1 -1
  61. package/dist/types.d.ts +8 -1
  62. package/dist/web/app.d.ts +1 -0
  63. package/dist/web/app.js +59 -6
  64. package/dist/web/app.js.map +1 -1
  65. package/dist/workspace.d.ts +12 -0
  66. package/dist/workspace.js +165 -0
  67. package/dist/workspace.js.map +1 -0
  68. package/docs/BINARY_DISTRIBUTION.md +227 -0
  69. package/docs/MODES_AND_RELEASES.md +123 -0
  70. package/docs/SDK.md +24 -1
  71. package/modes/code-arena/full-stack/system-prompt.txt +77 -0
  72. package/modes/code-arena/full-stack/template/.env +1 -0
  73. package/modes/code-arena/full-stack/template/drizzle.config.json +7 -0
  74. package/modes/code-arena/full-stack/template/eslint.config.mjs +9 -0
  75. package/modes/code-arena/full-stack/template/next.config.ts +5 -0
  76. package/modes/code-arena/full-stack/template/package.json +32 -0
  77. package/modes/code-arena/full-stack/template/postcss.config.mjs +7 -0
  78. package/modes/code-arena/full-stack/template/src/app/api/health/route.ts +13 -0
  79. package/modes/code-arena/full-stack/template/src/app/globals.css +1 -0
  80. package/modes/code-arena/full-stack/template/src/app/layout.tsx +16 -0
  81. package/modes/code-arena/full-stack/template/src/app/page.tsx +22 -0
  82. package/modes/code-arena/full-stack/template/src/db/index.ts +24 -0
  83. package/modes/code-arena/full-stack/template/src/db/schema.ts +3 -0
  84. package/modes/code-arena/full-stack/template/tsconfig.json +24 -0
  85. package/modes/code-arena/full-stack/tools.json +446 -0
  86. package/modes/code-arena/html/system-prompt.txt +36 -0
  87. package/modes/code-arena/html/tools.json +284 -0
  88. package/modes/code-arena/model.json +10 -0
  89. package/modes/code-arena/react/system-prompt.txt +33 -0
  90. package/modes/code-arena/react/template/index.html +12 -0
  91. package/modes/code-arena/react/template/package.json +28 -0
  92. package/modes/code-arena/react/template/src/App.tsx +28 -0
  93. package/modes/code-arena/react/template/src/index.css +1 -0
  94. package/modes/code-arena/react/template/src/main.tsx +10 -0
  95. package/modes/code-arena/react/template/src/utils/cn.ts +6 -0
  96. package/modes/code-arena/react/template/tsconfig.json +25 -0
  97. package/modes/code-arena/react/template/vite.config.ts +18 -0
  98. package/modes/code-arena/react/tools.json +410 -0
  99. package/package.json +24 -4
  100. package/web/styles.css +22 -7
package/.env.example CHANGED
@@ -7,6 +7,13 @@ OPENAI_MODEL=openai/qwen-latest-series-invite-beta-v92
7
7
  OPENAI_BASE_URL=
8
8
  OPENAI_API_KEY=
9
9
 
10
+ # Unified runtime mode. Canonical values are shown; full_stack/fullstack and
11
+ # single_html/single-html remain accepted compatibility aliases.
12
+ ARENA_HARNESS_MODE=arena
13
+ # ARENA_HARNESS_MODE=react
14
+ # ARENA_HARNESS_MODE=html
15
+ # ARENA_HARNESS_MODE=full-stack
16
+
10
17
  # Native provider fallbacks used when OPENAI_BASE_URL/API_KEY are unset.
11
18
  # ANTHROPIC_BASE_URL=https://api.anthropic.com/v1
12
19
  # ANTHROPIC_API_KEY=
@@ -31,6 +38,8 @@ OPENAI_API_KEY=
31
38
 
32
39
  # Trace-compatible model settings.
33
40
  # ARENA_MAX_TURNS=500
41
+ # Code Arena compatibility alias used only when ARENA_MAX_TURNS is unset:
42
+ # CODE_HARNESS_MAX_STEPS=50
34
43
  # ARENA_MAX_TOKENS=131072
35
44
  # ARENA_TEMPERATURE=1
36
45
  # OpenAI-compatible: reasoning_effort; native Anthropic: output_config.effort.
@@ -56,6 +65,13 @@ OPENAI_API_KEY=
56
65
  # retried like a network fault (0 disables). Some gateways stall silently.
57
66
  # ARENA_MODEL_STREAM_IDLE_TIMEOUT_MS=300000
58
67
 
68
+ # Optional headless ask_user delegation. When enabled, `arena -p` sends the
69
+ # current questions plus a serialized ATIF trajectory to this JSON endpoint.
70
+ # No authorization token/header is added by the harness.
71
+ # ARENA_ASK_USER_MODE=remote
72
+ # ARENA_ASK_USER_HANDLER_URL=http://127.0.0.1:8080/v1/ask-user
73
+ # ARENA_ASK_USER_TIMEOUT_MS=60000
74
+
59
75
  # Dynamic session metrics. High-confidence Bash cases use deterministic rules;
60
76
  # ambiguous Bash attribution/termination plus user praise, complaint, correction,
61
77
  # repair-attempt, and repair-verdict classification use this tool-free structured
@@ -88,5 +104,18 @@ DASHSCOPE_API_KEY=
88
104
  # ARENA_SPEECH_MODEL=qwen-audio-3.0-tts-flash
89
105
  # DASHSCOPE_SPEECH_VOICE=longanhuan_v3.6
90
106
 
107
+ # Code Arena stock photo/video search used by fetch_media.
108
+ # PEXELS_API_KEY=
109
+ # CODE_HARNESS_MEDIA_CACHE_DIR=/tmp/code-harness-media-cache
110
+ # CODE_HARNESS_MEDIA_CACHE_TTL_MS=86400000
111
+
112
+ # Full Stack build_and_start runtime. It builds and health-checks the Next.js
113
+ # preview and can start PostgreSQL 16 in Docker for an unavailable local URL.
114
+ # CODE_HARNESS_PREVIEW_PORT=3000
115
+ # CODE_HARNESS_PREVIEW_URL=http://127.0.0.1:3000
116
+ # CODE_HARNESS_FULLSTACK_BUILD_TIMEOUT_MS=300000
117
+ # CODE_HARNESS_BASH_TIMEOUT_SECONDS=300
118
+ # CODE_HARNESS_POSTGRES_IMAGE=postgres:16-alpine
119
+
91
120
  # Optional LibreOffice executable for read_file support of legacy .doc/.ppt/.xls.
92
121
  # ARENA_SOFFICE_PATH=/usr/local/bin/soffice
package/README.md CHANGED
@@ -9,7 +9,7 @@ harness。运行时只依赖 Node.js,不再依赖 Python:
9
9
  - Agent loop:流式 assistant → tool call → tool result → assistant。
10
10
  - 11 个工具逐字使用 `tools.json` 的 Draft-07 schema。
11
11
 
12
- ## 安装
12
+ ## 源码与 SDK 安装
13
13
 
14
14
  要求 Node.js 20.16+:
15
15
 
@@ -28,6 +28,65 @@ npm run typecheck
28
28
  npm test
29
29
  ```
30
30
 
31
+ ### 单文件二进制
32
+
33
+ 业务机器已有 Node.js 18、但无法升级到 Node.js 20+ 时,安装平台选择入口包:
34
+
35
+ ```bash
36
+ npm install -g @qwen-code/arena-cli
37
+ arena --version
38
+ code-harness --version
39
+ ```
40
+
41
+ 这个入口脚本本身兼容 Node.js 18,只负责选择并启动随 npm 安装的平台二进制;
42
+ Arena 业务代码使用二进制内嵌的 Node.js,不会在业务机的 Node.js 18 中运行。
43
+
44
+ 如果目标机器完全没有 Node.js,则从发布产物下载对应平台的 `arena` / `arena.exe`
45
+ 直接运行。构建机可以执行:
46
+
47
+ ```bash
48
+ npm ci
49
+ npm run package:binary
50
+ ```
51
+
52
+ 命令会生成 `build/sea/arena`(Windows 为 `arena.exe`),并打出当前平台包和
53
+ `@qwen-code/arena-cli` 的 npm tarball。二进制必须针对目标操作系统、CPU 架构和
54
+ Linux libc 分别构建;不能把 macOS 上生成的文件直接用于 Linux。
55
+
56
+ 平台包矩阵、发包顺序、旧系统兼容性和外部工具要求见
57
+ [Arena 单文件二进制](docs/BINARY_DISTRIBUTION.md)。
58
+
59
+ ## 四种模式
60
+
61
+ | 模式 | 选择方式 | 初始工作区 |
62
+ | --- | --- | --- |
63
+ | Arena | `--mode arena`(`arena` 默认) | 保持现有工作区 |
64
+ | React | `--mode react`(`code-harness` 默认) | Vite + React scaffold |
65
+ | HTML | `--mode html` | 空工作区,生成单个 `index.html` |
66
+ | Full Stack | `--mode full-stack` | Next.js + PostgreSQL scaffold |
67
+
68
+ 四种模式共用同一套配置、provider、agent loop、上下文压缩、历史记录、服务端、
69
+ TUI 和 SDK,只替换模式对应的 system prompt、tools 与可选 scaffold:
70
+
71
+ ```bash
72
+ arena -p '分析这个目录' --mode arena
73
+ arena -p '做一个产品页' --mode react
74
+ arena -p '做一个单文件网页' --mode html
75
+ arena -p '做一个带数据库的应用' --mode full-stack
76
+
77
+ # 兼容原 Code Harness 命令,默认等价于 --mode react
78
+ code-harness -p '做一个产品页'
79
+ code-harness -p '做一个单文件网页' --mode html
80
+ ```
81
+
82
+ 也可以设置 `ARENA_HARNESS_MODE=arena|react|html|full-stack`。迁移期继续接受
83
+ `CODE_HARNESS_MODE`、`ARENA_MODE` 及旧模式别名。详细目录和发包决策见
84
+ [`docs/MODES_AND_RELEASES.md`](docs/MODES_AND_RELEASES.md)。
85
+
86
+ 三个 Code Arena 模式的 150 个历史 case、工具 replay 和真实模型行为实验入口见
87
+ [`tasks/code-harness/README.md`](tasks/code-harness/README.md);这些开发数据不会
88
+ 进入 npm 或 SEA 发布包。
89
+
31
90
  ## 模型
32
91
 
33
92
  TypeScript 运行时根据模型前缀选择协议:`openai/` 使用 OpenAI Chat
@@ -192,11 +251,52 @@ daemon 相同的目录层级和 JSON 格式:
192
251
 
193
252
  ```text
194
253
  ~/.arena/tenants/<tenantId>/sessions/<sessionId>/history.json
254
+ ~/.arena/tenants/<tenantId>/sessions/<sessionId>/llm-calls.jsonl
195
255
  ```
196
256
 
197
257
  session 状态统一存放在 `~/.arena`(可用 `ARENA_HOME` 覆盖),不写入
198
258
  workspace,因此不会污染任务工作区或被 diff 工作区的 verifier 观察到。
199
259
 
260
+ `llm-calls.jsonl` 默认以 `raw` 模式记录每次主模型调用:实际发送的完整 JSON
261
+ request body(system/user/assistant/tool 消息、工具定义及图片/视频 Base64 均不
262
+ 截断、不脱敏)、聚合后的完整模型回复,以及错误响应的原始 body。流式 SSE chunk
263
+ 不会逐条写入;聚合后的 `response` 事件直接包含完整 `reasoning_content`、`content`、
264
+ tool calls 和 `finish_reason`。`raw` 模式的 `request` 事件只写一份
265
+ `raw_request_body`,不会再附带一份包含相同 prompt 的诊断摘要。
266
+ 同时记录协议、endpoint、HTTP 重试、响应状态、provider request ID、耗时、finish
267
+ reason 和 usage。HTTP 认证 header 不属于模型 payload,不会写入日志。设置
268
+ `ARENA_MODEL_CALL_LOG_MODE=summary` 可改为仅记录脱敏摘要,设置
269
+ `ARENA_MODEL_CALL_LOGGING=false` 可完全关闭。Harbor 收集 session 目录时会随
270
+ `history.json` 一起带出该文件,因此失败 rollout 也能直接查看原始 LLM 调用。
271
+
272
+ 如果未知模型或能力配置不准确,导致模型端点仍在解析阶段以明确的媒体/content-part
273
+ 拒绝签名返回错误,Arena 会保留该次 400 和原始请求,然后把私有模型上下文中的对应
274
+ 媒体替换为“不支持该媒体输入”说明,再调用同一个模型完成回复;不会静默切换模型,
275
+ 也不会改写 `history.json` 中的原始媒体轨迹。普通的 `messages input is invalid`
276
+ 不会触发这条降级路径。
277
+
278
+ Arena 还维护一份有顺序的模型输入模态表,在第一次 HTTP 调用前处理已知模型;版本级
279
+ 规则优先于系列规则,避免同一别名下能力不同造成误判。当前覆盖:
280
+
281
+ - Qwen:`qwen3.8-max[-preview]`、`qwen3.7-max-2026-06-08` 支持图片;
282
+ Qwen 3.5/3.6/3.7 Plus、Qwen 3.5/3.6 Flash、Qwen-VL/QVQ 支持图片和视频;
283
+ Qwen-Omni 另支持音频;`qwen3.7-max` 当前别名按文本模型处理。
284
+ - Claude:Claude 3 及后续系列支持图片;Claude 1/2/Instant 按文本模型处理。
285
+ - GPT/OpenAI:GPT-5、GPT-4o、GPT-4.1、GPT-4.5、GPT-4 Turbo/Vision 及已知
286
+ o-series 视觉模型支持图片;`gpt-audio*` 支持音频,Realtime 系列支持图片和
287
+ 音频;旧 GPT-3.5/GPT-4、
288
+ `o1-mini`、`o3-mini` 按文本模型处理。
289
+ - DeepSeek:官方托管的 Chat/Reasoner/V3/V4 系列按文本模型处理;单独部署的
290
+ DeepSeek-VL/OCR 系列支持图片。
291
+ - Kimi:Kimi K2 与 Kimi coding 系列支持图片和视频;旧
292
+ `moonshot-v1-*-vision*` 支持图片。
293
+ - Gemini:常规 Gemini 1.5/2.x/3.x 模型支持图片、视频和音频;TTS、图片生成、
294
+ Live/Realtime 等不同 API 合同的变体不做静态推断。
295
+
296
+ 未知模型默认尝试发送,具体路由能力仍以端点返回为准。可以分别用
297
+ `ARENA_MODEL_SUPPORTS_IMAGE_INPUT`、`ARENA_MODEL_SUPPORTS_VIDEO_INPUT`、
298
+ `ARENA_MODEL_SUPPORTS_AUDIO_INPUT` 显式覆盖;覆盖值优先于内置表。
299
+
200
300
  输出事件及 JSON 结果中的 `session_id` 就是路径里的 `<sessionId>`。
201
301
  `history.json` 的 `messages` 是只追加的原始轨迹;上下文压缩只影响发送给模型的
202
302
  临时副本。`metadata` 记录 session、模型以及本次实际生效的 `max_turns`、
@@ -251,8 +351,8 @@ data-URI。
251
351
  `stream-json` 每行一个 JSON 对象。`start`、`message`、`result` 事件中的
252
352
  `messages` 与输入样例保持相同契约:
253
353
 
254
- - system/user:`role` + `content`;图片读取后会持久化一条 multimodal user
255
- message
354
+ - system/user:`role` + `content`;支持图片输入的模型在读取图片后会持久化
355
+ 一条 multimodal user message
256
356
  - assistant:`role` + `content` + `reasoning_content`,工具轮含 `tool_calls`;
257
357
  服务端上报用量时含 `usage`
258
358
  - tool:`role` + `tool_call_id` + JSON 字符串 `content`
@@ -261,15 +361,34 @@ data-URI。
261
361
  `model.start`、`model.complete`、`model.retry`、`tool.start`、`tool.complete`
262
362
  标记阶段。最后的 `result` 带完整可重放消息。
263
363
 
264
- `ask_user` 需要交互式前端(TUI/WebUI)来收集选项,因此 **headless(`-p`)与
265
- 无会话的 `/query` 端点不会把 `ask_user` 提供给模型**——只有 TUI 和 WebUI
266
- 交互会话(都注入了 ask-user handler)才会开放该工具。这样 headless 不会再
267
- 卡在 `needs_input` 上阻塞训练 worker。作为兜底,若续写的历史或模型幻觉在无
268
- handler 的会话里仍调用了 `ask_user`,工具会返回一个 error 结果(提示模型用
269
- 合理默认值继续),而不是 `needs_input`。
364
+ `ask_user` 只有在注入 handler 时才会提供给模型。TUI 和 WebUI 使用真人交互
365
+ handler;headless(`-p`)默认仍不开放该工具,但可配置远程 User Agent handler:
270
366
 
271
- 图片 `read_file` 的 tool result 使用占位文本;真实图片作为紧随工具结果组的
272
- multimodal user message 注入并写入历史,因此后续重放不依赖原图片仍然存在。
367
+ ```bash
368
+ export ARENA_ASK_USER_MODE=remote
369
+ export ARENA_ASK_USER_HANDLER_URL=http://127.0.0.1:8080/v1/ask-user
370
+ export ARENA_ASK_USER_TIMEOUT_MS=60000
371
+ arena -p 'build a home page'
372
+ ```
373
+
374
+ 远程请求使用 `application/json`,body 只含 `sessionId`、`toolCallId`、
375
+ `questions` 和字符串形式的完整 ATIF `trajectory`;当前不发送 token 或鉴权
376
+ header。合法的 `answers`/`skipped` 会直接写成 tool result。服务端 `error`、
377
+ HTTP 非 2xx、超时、非法 JSON 或不符合问题约束的答案会转换成普通 error tool
378
+ result:只把错误信息放在 tool result 的 `message` 字段提供给模型,由模型决定如何
379
+ 采用合理默认值继续执行,不会因此终止整个任务。无会话的 `/query` 仍不注入
380
+ handler。
381
+
382
+ 未配置远程模式时行为不变:headless 不开放 `ask_user`,因此不会卡在
383
+ `needs_input` 上阻塞训练 worker。若续写历史或模型幻觉仍调用它,工具返回普通
384
+ error 结果,提示模型使用合理默认值继续。
385
+
386
+ 对于支持图片输入的模型,图片 `read_file` 的 tool result 使用占位文本;真实图片
387
+ 作为紧随工具结果组的 multimodal user message 注入并写入历史,因此后续重放不依赖
388
+ 原图片仍然存在。已知不支持图片的模型则直接在 `read_file` tool result 中返回
389
+ `Unsupported image file` 文本,不生成带图 user message,也不向模型服务发送图片。
390
+ 用户直接附带的已知不支持模态也会在首次请求前仅从私有模型上下文移除并换成说明;
391
+ 原始附件部件仍保留在 `history.json`。
273
392
 
274
393
  ## TUI
275
394
 
@@ -357,6 +476,17 @@ for await (const event of session.stream({ input: "设计一个网站" })) {
357
476
  }
358
477
  ```
359
478
 
479
+ 如果用户选择跳过问题,可提交结构化响应;这会写入
480
+ `{"answers":[],"skipped":true}` 并继续当前 turn,不会像 `cancel()` 那样
481
+ 中断 turn:
482
+
483
+ ```ts
484
+ await session.respondToInput(request.requestId, {
485
+ answers: [],
486
+ skipped: true,
487
+ });
488
+ ```
489
+
360
490
  持久连接、恢复和取消分别使用:
361
491
 
362
492
  ```ts
@@ -427,7 +557,7 @@ workspace,可设置 `ARENA_SESSION_WORKSPACE_MODE=empty`。
427
557
  | `GET /api/chat/sessions/:id/messages` | 恢复完整消息历史 |
428
558
  | `POST /api/chat/sessions/:id/retry` | 从最后一个失败模型节点继续,不追加 user 消息 |
429
559
  | `POST /api/chat/sessions/:id/uploads` | 上传当前消息的附件 |
430
- | `POST /api/chat/sessions/:id/input-response` | 回答 `ask_user` |
560
+ | `POST /api/chat/sessions/:id/input-response` | 回答或跳过 `ask_user` |
431
561
  | `POST /api/chat/sessions/:id/cancel` | 取消当前 turn |
432
562
  | `POST /api/chat/sessions/:id/undo` | 回滚最近完成的 turn,并返回原输入 |
433
563
  | `GET /api/chat/sessions/:id/workspace/:path` | 鉴权获取该 session 的 workspace 文件 |
@@ -462,6 +592,13 @@ part 放入实时消息。每个文件最大 20 MB,每条消息最多 10 个
462
592
  SSE 支持 `Last-Event-ID` 断线续传。`ask_user` 会暂停同一个 Agent Promise;
463
593
  用户提交答案后生成标准 `role=tool` 消息并继续循环。
464
594
 
595
+ Session SSE 会原样透传 `model.start`、`model.retry`、`model.complete` 和
596
+ `compaction` 生命周期事件。`model.complete.usage` 是当前模型请求的用量;
597
+ 压缩摘要不会进入消息历史,其用量只存在于 `compaction.usage`。WebUI 同时通过
598
+ `data-agent-status` 显示模型重试和上下文压缩状态。收到 `model.retry` 时,客户端
599
+ 应丢弃该次模型请求在此前产生的 reasoning、text 和 tool-call delta;重试后的
600
+ 增量会从干净状态重新开始。
601
+
465
602
  模型自动重试耗尽时,daemon 会把 `history.json` 保持在该模型调用之前的最后
466
603
  一个完整 checkpoint,并将对应的历史哈希和失败元数据原子记录到
467
604
  `model-retry.json`;消息内容仍以 `history.json` 为唯一真相源。手动重试只重新
package/dist/agent.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import type { ArenaConfig } from "./config.js";
1
+ import { type ArenaConfig } from "./config.js";
2
2
  import { EventSink } from "./protocol.js";
3
+ import { type HarnessMode } from "./mode.js";
3
4
  import { ToolExecutor } from "./tools.js";
4
5
  import type { AgentResult, AskUserHandler, ClientContext, Message, ModelClient, RepoContext, UserTurnMessage, WorkspaceContext } from "./types.js";
5
6
  interface AgentOptions {
@@ -18,13 +19,14 @@ interface AgentRunOptions {
18
19
  userMessage?: UserTurnMessage;
19
20
  resumeFromHistory?: boolean;
20
21
  }
21
- export declare function resolveRepoContext(workspace: string, history?: Message[]): RepoContext | undefined;
22
+ export declare function resolveRepoContext(workspace: string, history?: Message[], mode?: HarnessMode): RepoContext | undefined;
22
23
  export declare class Agent {
23
24
  private readonly config;
24
25
  private readonly sink;
25
26
  private readonly options;
26
27
  private readonly client;
27
28
  private readonly tools;
29
+ private readonly workspaceContext?;
28
30
  readonly sessionId: string;
29
31
  constructor(config: ArenaConfig, sink: EventSink, options?: AgentOptions);
30
32
  run(prompt: string, history?: Message[], runOptions?: AgentRunOptions): Promise<AgentResult>;
package/dist/agent.js CHANGED
@@ -1,11 +1,16 @@
1
1
  import crypto from "node:crypto";
2
2
  import { setTimeout as delay } from "node:timers/promises";
3
+ import { supportsModelInput, } from "./config.js";
3
4
  import { compactMessagesIfNeeded } from "./compaction.js";
5
+ import { modelCallLogPath } from "./history.js";
4
6
  import { MockModelClient } from "./mock.js";
5
- import { HttpModelClient } from "./provider.js";
7
+ import { contentPartMediaTypes, JsonlModelCallDiagnostics, } from "./model-diagnostics.js";
8
+ import { HttpModelClient, ModelCapabilityError } from "./provider.js";
6
9
  import { detectRepoContext } from "./repo.js";
10
+ import { isCodeArenaMode } from "./mode.js";
7
11
  import { defaultClientContext, initialMessages, interruptedUserMessage, isCanonicalSystemMessage, repoContextFromSystemMessage, repoSystemMessage, } from "./spec.js";
8
12
  import { ToolExecutor } from "./tools.js";
13
+ import { initializeWorkspace } from "./workspace.js";
9
14
  function parseToolResult(content) {
10
15
  try {
11
16
  return JSON.parse(content);
@@ -50,6 +55,58 @@ function isRetryableStreamError(error) {
50
55
  const code = errorCode(error);
51
56
  return code !== undefined && retryableStreamCodes.has(code);
52
57
  }
58
+ function unsupportedMediaNotice(mediaTypes) {
59
+ const label = mediaTypes.join(", ") || "media";
60
+ return ("<arena-system-message>\n" +
61
+ `The ${label} content in this message could not be delivered because the ` +
62
+ "configured model endpoint rejected that media input. You cannot inspect " +
63
+ `the ${label} content. Tell the user that you cannot read it with the ` +
64
+ "current model; do not infer or invent its contents.\n" +
65
+ "</arena-system-message>");
66
+ }
67
+ function replaceUnsupportedMedia(messages, mediaTypes) {
68
+ const unsupported = new Set(mediaTypes);
69
+ let replaced = 0;
70
+ for (const message of messages) {
71
+ if (message.role !== "user" || !Array.isArray(message.content))
72
+ continue;
73
+ const textParts = message.content.filter((part) => {
74
+ const partTypes = contentPartMediaTypes(part);
75
+ if (partTypes.some((type) => unsupported.has(type))) {
76
+ replaced += 1;
77
+ return false;
78
+ }
79
+ return true;
80
+ });
81
+ if (textParts.length !== message.content.length) {
82
+ message.content = [
83
+ ...textParts,
84
+ { text: unsupportedMediaNotice(mediaTypes) },
85
+ ];
86
+ }
87
+ }
88
+ return replaced;
89
+ }
90
+ function preflightUnsupportedMedia(config, messages) {
91
+ const present = new Set();
92
+ for (const message of messages) {
93
+ if (message.role !== "user" || !Array.isArray(message.content))
94
+ continue;
95
+ for (const part of message.content) {
96
+ for (const mediaType of contentPartMediaTypes(part)) {
97
+ if ((mediaType === "image" ||
98
+ mediaType === "video" ||
99
+ mediaType === "audio") &&
100
+ !supportsModelInput(config, mediaType)) {
101
+ present.add(mediaType);
102
+ }
103
+ }
104
+ }
105
+ }
106
+ return present.size
107
+ ? replaceUnsupportedMedia(messages, [...present])
108
+ : 0;
109
+ }
53
110
  function completeInterruptedToolCalls(messages) {
54
111
  const completed = [];
55
112
  let pending = [];
@@ -97,7 +154,9 @@ class PartialAssistantTurnError extends Error {
97
154
  // Mode is fixed at the first turn: resume reads it back from the history's
98
155
  // system message, so a mid-session clone or detached HEAD cannot flip it.
99
156
  // Exported so the replay script checks the same decision instead of redoing it.
100
- export function resolveRepoContext(workspace, history) {
157
+ export function resolveRepoContext(workspace, history, mode = "arena") {
158
+ if (isCodeArenaMode(mode))
159
+ return undefined;
101
160
  return history?.length
102
161
  ? repoContextFromSystemMessage(history[0])
103
162
  : detectRepoContext(workspace);
@@ -108,49 +167,68 @@ export class Agent {
108
167
  options;
109
168
  client;
110
169
  tools;
170
+ workspaceContext;
111
171
  sessionId;
112
172
  constructor(config, sink, options = {}) {
113
173
  this.config = config;
114
174
  this.sink = sink;
115
175
  this.options = options;
176
+ this.sessionId =
177
+ options.sessionId || crypto.randomUUID().replaceAll("-", "");
178
+ this.workspaceContext =
179
+ options.workspaceContext ||
180
+ (isCodeArenaMode(config.mode)
181
+ ? {
182
+ root: config.workspace,
183
+ cwd: config.workspace,
184
+ presentFile: false,
185
+ }
186
+ : undefined);
116
187
  this.client =
117
188
  options.client ||
118
189
  (config.model.startsWith("mock/")
119
190
  ? new MockModelClient()
120
- : new HttpModelClient(config));
191
+ : new HttpModelClient(config, {
192
+ ...(config.modelCallLogging === false
193
+ ? {}
194
+ : {
195
+ diagnostics: new JsonlModelCallDiagnostics(modelCallLogPath(config.stateRoot, config.tenantId, this.sessionId)),
196
+ }),
197
+ }));
121
198
  this.tools =
122
199
  options.tools ||
123
200
  new ToolExecutor(config, {
124
201
  signal: options.signal,
125
202
  askUserHandler: options.askUserHandler,
126
- workspaceContext: options.workspaceContext,
203
+ workspaceContext: this.workspaceContext,
127
204
  });
128
- this.sessionId =
129
- options.sessionId || crypto.randomUUID().replaceAll("-", "");
130
205
  }
131
206
  async run(prompt, history, runOptions = {}) {
132
207
  if (runOptions.resumeFromHistory && !history?.length) {
133
208
  throw new Error("resumeFromHistory requires a non-empty history");
134
209
  }
210
+ if (isCodeArenaMode(this.config.mode)) {
211
+ await initializeWorkspace(this.config.workspace, this.config.mode);
212
+ }
135
213
  const baseUserMessage = runOptions.userMessage ||
136
214
  { role: "user", content: prompt };
137
215
  const userMessage = runOptions.interrupted
138
- ? interruptedUserMessage(baseUserMessage)
216
+ ? interruptedUserMessage(baseUserMessage, this.config.mode)
139
217
  : structuredClone(baseUserMessage);
140
218
  const clientContext = this.options.clientContext || defaultClientContext();
141
- const repoContext = resolveRepoContext(this.config.workspace, history);
219
+ const repoContext = resolveRepoContext(this.config.workspace, history, this.config.mode);
142
220
  const trajectory = history?.length
143
221
  ? completeInterruptedToolCalls(structuredClone(history))
144
- : initialMessages(prompt, clientContext, this.options.workspaceContext, repoContext);
222
+ : initialMessages(prompt, clientContext, this.workspaceContext, repoContext, this.config.mode, this.config.maxTurns);
145
223
  if (history?.length) {
146
224
  const expected = repoContext
147
- ? repoSystemMessage(clientContext, repoContext)
225
+ ? repoSystemMessage(clientContext, repoContext, this.config.mode, this.workspaceContext, this.config.maxTurns)
148
226
  : undefined;
149
- if (!isCanonicalSystemMessage(trajectory[0], expected || this.options.workspaceContext)) {
227
+ if (!isCanonicalSystemMessage(trajectory[0], expected || this.workspaceContext, this.config.mode, this.config.maxTurns)) {
150
228
  if (!repoContext &&
151
- this.options.workspaceContext &&
152
- isCanonicalSystemMessage(trajectory[0])) {
153
- trajectory[0] = initialMessages("", this.options.clientContext, this.options.workspaceContext)[0];
229
+ this.workspaceContext &&
230
+ isCanonicalSystemMessage(trajectory[0], undefined, this.config.mode, this.config.maxTurns)) {
231
+ trajectory[0] = initialMessages("", this.options.clientContext, this.workspaceContext, undefined, this.config.mode, this.config.maxTurns)[0];
154
232
  }
155
233
  else {
156
234
  throw new Error("history does not match the current workspace runtime context");
@@ -224,7 +302,13 @@ export class Agent {
224
302
  const toolCallId = String(call.id || "");
225
303
  const toolName = String(call.function?.name || "tool");
226
304
  this.sink.toolStart(this.sessionId, toolCallId, toolName);
227
- const toolMessage = await this.tools.execute(call);
305
+ const toolMessage = await this.tools.execute(call, toolName === "ask_user"
306
+ ? {
307
+ sessionId: this.sessionId,
308
+ messages: structuredClone(trajectory),
309
+ signal: this.options.signal,
310
+ }
311
+ : undefined);
228
312
  const toolResult = parseToolResult(toolMessage.content);
229
313
  const skippedAskUser = toolName === "ask_user" && toolResult.skipped === true;
230
314
  if (this.options.signal?.aborted && !skippedAskUser) {
@@ -265,6 +349,7 @@ export class Agent {
265
349
  await this.options.onCheckpoint?.(messages);
266
350
  }
267
351
  async maybeCompact(messages) {
352
+ preflightUnsupportedMedia(this.config, messages);
268
353
  try {
269
354
  const result = await compactMessagesIfNeeded(messages, this.tools.availableTools(), this.client, this.config.model, {
270
355
  contextWindow: this.config.contextWindow,
@@ -291,7 +376,12 @@ export class Agent {
291
376
  // conversation: the request is idempotent, so the whole turn is re-issued
292
377
  // from scratch. Accumulators live inside the loop and reset each attempt, so
293
378
  // the assistant message written to history reflects one clean completion.
379
+ // Known-unsupported media is removed from this private model-context copy
380
+ // before the first HTTP request. The lossless trajectory still retains the
381
+ // original content, and route-specific rejections keep the runtime fallback.
382
+ preflightUnsupportedMedia(this.config, messages);
294
383
  const maxRetries = Math.max(0, Math.floor(this.config.modelMaxRetries ?? 5));
384
+ let multimodalFallbackApplied = false;
295
385
  for (let attempt = 0;; attempt += 1) {
296
386
  const contentParts = [];
297
387
  const reasoningParts = [];
@@ -306,6 +396,8 @@ export class Agent {
306
396
  toolChoice: this.config.toolChoice,
307
397
  temperature: this.config.temperature,
308
398
  maxTokens: this.config.maxTokens,
399
+ incrementalOutput: this.config.incrementalOutput,
400
+ resultFormat: this.config.resultFormat,
309
401
  reasoningEffort: this.config.reasoningEffort,
310
402
  enableThinking: this.config.enableThinking,
311
403
  thinkingBudget: this.config.thinkingBudget,
@@ -370,6 +462,17 @@ export class Agent {
370
462
  // A user cancellation is not a transient fault: skip the retry, but
371
463
  // still fall through so any partial output is preserved in history.
372
464
  const aborted = Boolean(this.options.signal?.aborted);
465
+ if (!aborted &&
466
+ !multimodalFallbackApplied &&
467
+ error instanceof ModelCapabilityError) {
468
+ const replacedMedia = replaceUnsupportedMedia(messages, error.mediaTypes);
469
+ if (replacedMedia > 0) {
470
+ multimodalFallbackApplied = true;
471
+ this.sink.modelRetry(this.sessionId, attempt + 1, `model rejected ${error.mediaTypes.join(", ")} input; replaced ` +
472
+ `${replacedMedia} media part(s) with an unsupported-input notice`);
473
+ continue;
474
+ }
475
+ }
373
476
  if (!aborted && isRetryableStreamError(error) && attempt < maxRetries) {
374
477
  this.sink.modelRetry(this.sessionId, attempt + 1, describeError(error));
375
478
  await this.retryBackoff(attempt);
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { ArenaConfig } from "./config.js";
2
+ import type { AskUserHandler, Message } from "./types.js";
3
+ export interface RemoteAskUserHandlerOptions {
4
+ url: string;
5
+ timeoutMs?: number;
6
+ model: string;
7
+ agentVersion?: string;
8
+ fetch?: typeof fetch;
9
+ }
10
+ export declare class AskUserHandlerError extends Error {
11
+ readonly code: string;
12
+ constructor(code: string, message: string, options?: ErrorOptions);
13
+ }
14
+ export declare function serializeAtifTrajectory(messages: readonly Message[], options: {
15
+ sessionId: string;
16
+ model: string;
17
+ agentVersion?: string;
18
+ }): string;
19
+ export declare function createRemoteAskUserHandler(options: RemoteAskUserHandlerOptions): AskUserHandler;
20
+ export declare function remoteAskUserHandlerFromConfig(config: ArenaConfig, agentVersion?: string): AskUserHandler | undefined;