@qwen-code/arena-agent 0.0.9-dev.0 → 0.0.9-dev.11

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 (94) hide show
  1. package/.env.example +30 -0
  2. package/README.md +126 -25
  3. package/dist/agent.d.ts +4 -2
  4. package/dist/agent.js +116 -15
  5. package/dist/agent.js.map +1 -1
  6. package/dist/anthropic.d.ts +1 -1
  7. package/dist/anthropic.js +68 -7
  8. package/dist/anthropic.js.map +1 -1
  9. package/dist/ask-user.d.ts +20 -0
  10. package/dist/ask-user.js +388 -0
  11. package/dist/ask-user.js.map +1 -0
  12. package/dist/canonical-data.d.ts +1 -0
  13. package/dist/canonical-data.js +1 -0
  14. package/dist/canonical-data.js.map +1 -1
  15. package/dist/cli.js +26 -9
  16. package/dist/cli.js.map +1 -1
  17. package/dist/code-cli.d.ts +2 -0
  18. package/dist/code-cli.js +12 -0
  19. package/dist/code-cli.js.map +1 -0
  20. package/dist/code-tools.d.ts +73 -0
  21. package/dist/code-tools.js +2106 -0
  22. package/dist/code-tools.js.map +1 -0
  23. package/dist/config.d.ts +12 -1
  24. package/dist/config.js +66 -3
  25. package/dist/config.js.map +1 -1
  26. package/dist/fetch-page.d.ts +2 -0
  27. package/dist/fetch-page.js +50 -21
  28. package/dist/fetch-page.js.map +1 -1
  29. package/dist/history.d.ts +3 -0
  30. package/dist/history.js +4 -0
  31. package/dist/history.js.map +1 -1
  32. package/dist/mode.d.ts +6 -0
  33. package/dist/mode.js +33 -0
  34. package/dist/mode.js.map +1 -0
  35. package/dist/model-capabilities.d.ts +20 -0
  36. package/dist/model-capabilities.js +98 -0
  37. package/dist/model-capabilities.js.map +1 -0
  38. package/dist/model-diagnostics.d.ts +32 -0
  39. package/dist/model-diagnostics.js +365 -0
  40. package/dist/model-diagnostics.js.map +1 -0
  41. package/dist/provider.d.ts +16 -0
  42. package/dist/provider.js +328 -37
  43. package/dist/provider.js.map +1 -1
  44. package/dist/sdk.d.ts +26 -1
  45. package/dist/sdk.js +1 -0
  46. package/dist/sdk.js.map +1 -1
  47. package/dist/server.d.ts +2 -0
  48. package/dist/server.js +11 -2
  49. package/dist/server.js.map +1 -1
  50. package/dist/spec.d.ts +11 -8
  51. package/dist/spec.js +101 -12
  52. package/dist/spec.js.map +1 -1
  53. package/dist/tools.d.ts +11 -28
  54. package/dist/tools.js +60 -11
  55. package/dist/tools.js.map +1 -1
  56. package/dist/tui.d.ts +2 -0
  57. package/dist/tui.js +8 -2
  58. package/dist/tui.js.map +1 -1
  59. package/dist/types.d.ts +6 -1
  60. package/dist/workspace.d.ts +12 -0
  61. package/dist/workspace.js +165 -0
  62. package/dist/workspace.js.map +1 -0
  63. package/docs/BINARY_DISTRIBUTION.md +225 -0
  64. package/docs/MODES_AND_RELEASES.md +119 -0
  65. package/modes/code-arena/full-stack/system-prompt.txt +77 -0
  66. package/modes/code-arena/full-stack/template/.env +1 -0
  67. package/modes/code-arena/full-stack/template/drizzle.config.json +7 -0
  68. package/modes/code-arena/full-stack/template/eslint.config.mjs +9 -0
  69. package/modes/code-arena/full-stack/template/next.config.ts +5 -0
  70. package/modes/code-arena/full-stack/template/package.json +32 -0
  71. package/modes/code-arena/full-stack/template/postcss.config.mjs +7 -0
  72. package/modes/code-arena/full-stack/template/src/app/api/health/route.ts +13 -0
  73. package/modes/code-arena/full-stack/template/src/app/globals.css +1 -0
  74. package/modes/code-arena/full-stack/template/src/app/layout.tsx +16 -0
  75. package/modes/code-arena/full-stack/template/src/app/page.tsx +22 -0
  76. package/modes/code-arena/full-stack/template/src/db/index.ts +24 -0
  77. package/modes/code-arena/full-stack/template/src/db/schema.ts +3 -0
  78. package/modes/code-arena/full-stack/template/tsconfig.json +24 -0
  79. package/modes/code-arena/full-stack/tools.json +446 -0
  80. package/modes/code-arena/html/system-prompt.txt +36 -0
  81. package/modes/code-arena/html/tools.json +284 -0
  82. package/modes/code-arena/model.json +10 -0
  83. package/modes/code-arena/react/system-prompt.txt +33 -0
  84. package/modes/code-arena/react/template/index.html +12 -0
  85. package/modes/code-arena/react/template/package.json +28 -0
  86. package/modes/code-arena/react/template/src/App.tsx +28 -0
  87. package/modes/code-arena/react/template/src/index.css +1 -0
  88. package/modes/code-arena/react/template/src/main.tsx +10 -0
  89. package/modes/code-arena/react/template/src/utils/cn.ts +6 -0
  90. package/modes/code-arena/react/template/tsconfig.json +25 -0
  91. package/modes/code-arena/react/template/vite.config.ts +18 -0
  92. package/modes/code-arena/react/tools.json +410 -0
  93. package/package.json +15 -3
  94. package/dist/web/app.d.ts +0 -1
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,8 +38,11 @@ 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
45
+ # OpenAI-compatible: reasoning_effort; native Anthropic: output_config.effort.
36
46
  # ARENA_REASONING_EFFORT=max
37
47
  # ARENA_TOOL_CHOICE=auto
38
48
  # JSON array of exact tool names hidden from the model and rejected if called.
@@ -55,6 +65,13 @@ OPENAI_API_KEY=
55
65
  # retried like a network fault (0 disables). Some gateways stall silently.
56
66
  # ARENA_MODEL_STREAM_IDLE_TIMEOUT_MS=300000
57
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
+
58
75
  # Dynamic session metrics. High-confidence Bash cases use deterministic rules;
59
76
  # ambiguous Bash attribution/termination plus user praise, complaint, correction,
60
77
  # repair-attempt, and repair-verdict classification use this tool-free structured
@@ -87,5 +104,18 @@ DASHSCOPE_API_KEY=
87
104
  # ARENA_SPEECH_MODEL=qwen-audio-3.0-tts-flash
88
105
  # DASHSCOPE_SPEECH_VOICE=longanhuan_v3.6
89
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
+
90
120
  # Optional LibreOffice executable for read_file support of legacy .doc/.ppt/.xls.
91
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
 
@@ -30,21 +30,59 @@ npm test
30
30
 
31
31
  ### 单文件二进制
32
32
 
33
- 如果目标机器无法安装 Node.js,可以在构建机上把 Arena 打包为包含 Node.js
34
- 运行时和静态资源的单文件可执行程序:
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
+ 直接运行。构建机可以执行:
35
46
 
36
47
  ```bash
37
48
  npm ci
38
- npm run build:binary
49
+ npm run package:binary
39
50
  ```
40
51
 
41
- 产物为 `build/sea/arena`(Windows 为 `build/sea/arena.exe`),交付该文件即可,
42
- 目标机器不需要安装 Node.js。二进制必须针对目标操作系统和 CPU 架构分别构建;
43
- Linux 业务机如果 glibc 较旧,应在相同或更老的系统环境中构建并实机验证。
52
+ 命令会生成 `build/sea/arena`(Windows 为 `arena.exe`),并打出当前平台包和
53
+ `@qwen-code/arena-cli` 的 npm tarball。二进制必须针对目标操作系统、CPU 架构和
54
+ Linux libc 分别构建;不能把 macOS 上生成的文件直接用于 Linux。
44
55
 
45
- 详细的安装、平台兼容性和外部工具要求见
56
+ 平台包矩阵、发包顺序、旧系统兼容性和外部工具要求见
46
57
  [Arena 单文件二进制](docs/BINARY_DISTRIBUTION.md)。
47
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
+
48
86
  ## 模型
49
87
 
50
88
  TypeScript 运行时根据模型前缀选择协议:`openai/` 使用 OpenAI Chat
@@ -98,11 +136,13 @@ claude-code-proxy),收到 401 后会自动切换鉴权方式并记住。流
98
136
  `ARENA_MODEL_STREAM_IDLE_TIMEOUT_MS`(默认 300000,设 0 关闭)中止并按
99
137
  网络故障重试。
100
138
 
101
- Anthropic 直连在原生协议上完整支持 extended thinking:
102
- `ARENA_ENABLE_THINKING` / `ARENA_THINKING_BUDGET` 映射为
103
- `thinking.budget_tokens`(Anthropic 要求启用 thinking 时不调整
104
- temperature,此时不发送该参数)。带签名的 thinking/redacted_thinking
105
- block 会原样保存在对应 assistant 消息的 `reasoning_details` 字段——
139
+ Anthropic 直连在原生协议上完整支持 thinking。旧版 Claude 和非 Claude
140
+ 兼容网关把 `ARENA_ENABLE_THINKING` / `ARENA_THINKING_BUDGET` 映射为
141
+ `thinking.type=enabled` / `thinking.budget_tokens`;Claude Opus/Sonnet 4.6+
142
+ 以及 Claude 5、Fable、Mythos 使用 `thinking.type=adaptive`,不再发送固定
143
+ budget。Anthropic 要求启用 thinking 时不调整 temperature,此时不发送该
144
+ 参数。带签名的 thinking/redacted_thinking block 会原样保存在对应 assistant
145
+ 消息的 `reasoning_details` 字段——
106
146
  Anthropic 要求 tool-use 续跑时回传签名 thinking block,重放历史时会按
107
147
  原顺序还原;无签名的 thinking block(部分网关返回 `signature: ""`)
108
148
  不参与重放,因为协议不需要它们,而且某些网关收到会挂起。
@@ -134,8 +174,9 @@ ARENA_COMPACTION_SUMMARY_MAX_TOKENS=8192
134
174
  ```
135
175
 
136
176
  可选的 `ARENA_REASONING_EFFORT` 支持 `low`、`medium`、`high`、`xhigh`
137
- 和 `max` 五档;配置后会作为 OpenAI-compatible 请求的
138
- `reasoning_effort` 原样发送,不做 provider 映射或降级。
177
+ 和 `max` 五档;OpenAI-compatible 请求使用 `reasoning_effort`,原生
178
+ Anthropic Messages 请求映射为 `output_config.effort`。不会按模型静默
179
+ 降档;目标模型或兼容网关不支持所选档位时,由服务端返回明确错误。
139
180
  `ARENA_DISALLOWED_TOOLS` 是 JSON 字符串数组,工具名精确匹配:
140
181
 
141
182
  ```dotenv
@@ -206,11 +247,52 @@ daemon 相同的目录层级和 JSON 格式:
206
247
 
207
248
  ```text
208
249
  ~/.arena/tenants/<tenantId>/sessions/<sessionId>/history.json
250
+ ~/.arena/tenants/<tenantId>/sessions/<sessionId>/llm-calls.jsonl
209
251
  ```
210
252
 
211
253
  session 状态统一存放在 `~/.arena`(可用 `ARENA_HOME` 覆盖),不写入
212
254
  workspace,因此不会污染任务工作区或被 diff 工作区的 verifier 观察到。
213
255
 
256
+ `llm-calls.jsonl` 默认以 `raw` 模式记录每次主模型调用:实际发送的完整 JSON
257
+ request body(system/user/assistant/tool 消息、工具定义及图片/视频 Base64 均不
258
+ 截断、不脱敏)、聚合后的完整模型回复,以及错误响应的原始 body。流式 SSE chunk
259
+ 不会逐条写入;聚合后的 `response` 事件直接包含完整 `reasoning_content`、`content`、
260
+ tool calls 和 `finish_reason`。`raw` 模式的 `request` 事件只写一份
261
+ `raw_request_body`,不会再附带一份包含相同 prompt 的诊断摘要。
262
+ 同时记录协议、endpoint、HTTP 重试、响应状态、provider request ID、耗时、finish
263
+ reason 和 usage。HTTP 认证 header 不属于模型 payload,不会写入日志。设置
264
+ `ARENA_MODEL_CALL_LOG_MODE=summary` 可改为仅记录脱敏摘要,设置
265
+ `ARENA_MODEL_CALL_LOGGING=false` 可完全关闭。Harbor 收集 session 目录时会随
266
+ `history.json` 一起带出该文件,因此失败 rollout 也能直接查看原始 LLM 调用。
267
+
268
+ 如果未知模型或能力配置不准确,导致模型端点仍在解析阶段以明确的媒体/content-part
269
+ 拒绝签名返回错误,Arena 会保留该次 400 和原始请求,然后把私有模型上下文中的对应
270
+ 媒体替换为“不支持该媒体输入”说明,再调用同一个模型完成回复;不会静默切换模型,
271
+ 也不会改写 `history.json` 中的原始媒体轨迹。普通的 `messages input is invalid`
272
+ 不会触发这条降级路径。
273
+
274
+ Arena 还维护一份有顺序的模型输入模态表,在第一次 HTTP 调用前处理已知模型;版本级
275
+ 规则优先于系列规则,避免同一别名下能力不同造成误判。当前覆盖:
276
+
277
+ - Qwen:`qwen3.8-max[-preview]`、`qwen3.7-max-2026-06-08` 支持图片;
278
+ Qwen 3.5/3.6/3.7 Plus、Qwen 3.5/3.6 Flash、Qwen-VL/QVQ 支持图片和视频;
279
+ Qwen-Omni 另支持音频;`qwen3.7-max` 当前别名按文本模型处理。
280
+ - Claude:Claude 3 及后续系列支持图片;Claude 1/2/Instant 按文本模型处理。
281
+ - GPT/OpenAI:GPT-5、GPT-4o、GPT-4.1、GPT-4.5、GPT-4 Turbo/Vision 及已知
282
+ o-series 视觉模型支持图片;`gpt-audio*` 支持音频,Realtime 系列支持图片和
283
+ 音频;旧 GPT-3.5/GPT-4、
284
+ `o1-mini`、`o3-mini` 按文本模型处理。
285
+ - DeepSeek:官方托管的 Chat/Reasoner/V3/V4 系列按文本模型处理;单独部署的
286
+ DeepSeek-VL/OCR 系列支持图片。
287
+ - Kimi:Kimi K2 与 Kimi coding 系列支持图片和视频;旧
288
+ `moonshot-v1-*-vision*` 支持图片。
289
+ - Gemini:常规 Gemini 1.5/2.x/3.x 模型支持图片、视频和音频;TTS、图片生成、
290
+ Live/Realtime 等不同 API 合同的变体不做静态推断。
291
+
292
+ 未知模型默认尝试发送,具体路由能力仍以端点返回为准。可以分别用
293
+ `ARENA_MODEL_SUPPORTS_IMAGE_INPUT`、`ARENA_MODEL_SUPPORTS_VIDEO_INPUT`、
294
+ `ARENA_MODEL_SUPPORTS_AUDIO_INPUT` 显式覆盖;覆盖值优先于内置表。
295
+
214
296
  输出事件及 JSON 结果中的 `session_id` 就是路径里的 `<sessionId>`。
215
297
  `history.json` 的 `messages` 是只追加的原始轨迹;上下文压缩只影响发送给模型的
216
298
  临时副本。`metadata` 记录 session、模型以及本次实际生效的 `max_turns`、
@@ -265,8 +347,8 @@ data-URI。
265
347
  `stream-json` 每行一个 JSON 对象。`start`、`message`、`result` 事件中的
266
348
  `messages` 与输入样例保持相同契约:
267
349
 
268
- - system/user:`role` + `content`;图片读取后会持久化一条 multimodal user
269
- message
350
+ - system/user:`role` + `content`;支持图片输入的模型在读取图片后会持久化
351
+ 一条 multimodal user message
270
352
  - assistant:`role` + `content` + `reasoning_content`,工具轮含 `tool_calls`;
271
353
  服务端上报用量时含 `usage`
272
354
  - tool:`role` + `tool_call_id` + JSON 字符串 `content`
@@ -275,15 +357,34 @@ data-URI。
275
357
  `model.start`、`model.complete`、`model.retry`、`tool.start`、`tool.complete`
276
358
  标记阶段。最后的 `result` 带完整可重放消息。
277
359
 
278
- `ask_user` 需要交互式前端(TUI/WebUI)来收集选项,因此 **headless(`-p`)与
279
- 无会话的 `/query` 端点不会把 `ask_user` 提供给模型**——只有 TUI 和 WebUI
280
- 交互会话(都注入了 ask-user handler)才会开放该工具。这样 headless 不会再
281
- 卡在 `needs_input` 上阻塞训练 worker。作为兜底,若续写的历史或模型幻觉在无
282
- handler 的会话里仍调用了 `ask_user`,工具会返回一个 error 结果(提示模型用
283
- 合理默认值继续),而不是 `needs_input`。
360
+ `ask_user` 只有在注入 handler 时才会提供给模型。TUI 和 WebUI 使用真人交互
361
+ handler;headless(`-p`)默认仍不开放该工具,但可配置远程 User Agent handler:
362
+
363
+ ```bash
364
+ export ARENA_ASK_USER_MODE=remote
365
+ export ARENA_ASK_USER_HANDLER_URL=http://127.0.0.1:8080/v1/ask-user
366
+ export ARENA_ASK_USER_TIMEOUT_MS=60000
367
+ arena -p 'build a home page'
368
+ ```
284
369
 
285
- 图片 `read_file` 的 tool result 使用占位文本;真实图片作为紧随工具结果组的
286
- multimodal user message 注入并写入历史,因此后续重放不依赖原图片仍然存在。
370
+ 远程请求使用 `application/json`,body 只含 `sessionId`、`toolCallId`、
371
+ `questions` 和字符串形式的完整 ATIF `trajectory`;当前不发送 token 或鉴权
372
+ header。合法的 `answers`/`skipped` 会直接写成 tool result。服务端 `error`、
373
+ HTTP 非 2xx、超时、非法 JSON 或不符合问题约束的答案会转换成普通 error tool
374
+ result:只把错误信息放在 tool result 的 `message` 字段提供给模型,由模型决定如何
375
+ 采用合理默认值继续执行,不会因此终止整个任务。无会话的 `/query` 仍不注入
376
+ handler。
377
+
378
+ 未配置远程模式时行为不变:headless 不开放 `ask_user`,因此不会卡在
379
+ `needs_input` 上阻塞训练 worker。若续写历史或模型幻觉仍调用它,工具返回普通
380
+ error 结果,提示模型使用合理默认值继续。
381
+
382
+ 对于支持图片输入的模型,图片 `read_file` 的 tool result 使用占位文本;真实图片
383
+ 作为紧随工具结果组的 multimodal user message 注入并写入历史,因此后续重放不依赖
384
+ 原图片仍然存在。已知不支持图片的模型则直接在 `read_file` tool result 中返回
385
+ `Unsupported image file` 文本,不生成带图 user message,也不向模型服务发送图片。
386
+ 用户直接附带的已知不支持模态也会在首次请求前仅从私有模型上下文移除并换成说明;
387
+ 原始附件部件仍保留在 `history.json`。
287
388
 
288
389
  ## TUI
289
390
 
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 = [];
@@ -370,6 +460,17 @@ export class Agent {
370
460
  // A user cancellation is not a transient fault: skip the retry, but
371
461
  // still fall through so any partial output is preserved in history.
372
462
  const aborted = Boolean(this.options.signal?.aborted);
463
+ if (!aborted &&
464
+ !multimodalFallbackApplied &&
465
+ error instanceof ModelCapabilityError) {
466
+ const replacedMedia = replaceUnsupportedMedia(messages, error.mediaTypes);
467
+ if (replacedMedia > 0) {
468
+ multimodalFallbackApplied = true;
469
+ this.sink.modelRetry(this.sessionId, attempt + 1, `model rejected ${error.mediaTypes.join(", ")} input; replaced ` +
470
+ `${replacedMedia} media part(s) with an unsupported-input notice`);
471
+ continue;
472
+ }
473
+ }
373
474
  if (!aborted && isRetryableStreamError(error) && attempt < maxRetries) {
374
475
  this.sink.modelRetry(this.sessionId, attempt + 1, describeError(error));
375
476
  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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"}
@@ -3,7 +3,7 @@ type Block = Record<string, unknown> & {
3
3
  type: string;
4
4
  };
5
5
  interface ConvertedMessages {
6
- system?: string;
6
+ system?: Block[];
7
7
  messages: Array<{
8
8
  role: "user" | "assistant";
9
9
  content: Block[];