@qwen-code/arena-agent 0.0.10-dev.8-test.0 → 0.0.10-test.0
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.
- package/.env.example +61 -10
- package/CHANGELOG.md +148 -17
- package/README.md +309 -46
- package/dist/agent.d.ts +20 -6
- package/dist/agent.js +353 -72
- package/dist/agent.js.map +1 -1
- package/dist/anthropic.d.ts +1 -1
- package/dist/anthropic.js +46 -57
- package/dist/anthropic.js.map +1 -1
- package/dist/arena-history.d.ts +12 -0
- package/dist/arena-history.js +119 -0
- package/dist/arena-history.js.map +1 -0
- package/dist/ask-user.js +44 -2
- package/dist/ask-user.js.map +1 -1
- package/dist/attachment-limits.d.ts +4 -0
- package/dist/attachment-limits.js +10 -0
- package/dist/attachment-limits.js.map +1 -0
- package/dist/attachments.d.ts +4 -2
- package/dist/attachments.js +9 -11
- package/dist/attachments.js.map +1 -1
- package/dist/brave-search.js +11 -7
- package/dist/brave-search.js.map +1 -1
- package/dist/canonical-data.d.ts +9 -0
- package/dist/canonical-data.js +12 -3
- package/dist/canonical-data.js.map +1 -1
- package/dist/cli.js +140 -40
- package/dist/cli.js.map +1 -1
- package/dist/code-tool-schema.d.ts +3 -0
- package/dist/code-tool-schema.js +92 -0
- package/dist/code-tool-schema.js.map +1 -0
- package/dist/code-tools.d.ts +2 -1
- package/dist/code-tools.js +103 -31
- package/dist/code-tools.js.map +1 -1
- package/dist/compaction-threshold.d.ts +3 -0
- package/dist/compaction-threshold.js +6 -0
- package/dist/compaction-threshold.js.map +1 -0
- package/dist/compaction.d.ts +24 -7
- package/dist/compaction.js +242 -66
- package/dist/compaction.js.map +1 -1
- package/dist/config.d.ts +17 -0
- package/dist/config.js +30 -5
- package/dist/config.js.map +1 -1
- package/dist/connector-errors.d.ts +16 -0
- package/dist/connector-errors.js +69 -0
- package/dist/connector-errors.js.map +1 -0
- package/dist/connector-files.d.ts +31 -0
- package/dist/connector-files.js +249 -0
- package/dist/connector-files.js.map +1 -0
- package/dist/connector-input.d.ts +10 -0
- package/dist/connector-input.js +79 -0
- package/dist/connector-input.js.map +1 -0
- package/dist/connector-mcp.d.ts +60 -0
- package/dist/connector-mcp.js +474 -0
- package/dist/connector-mcp.js.map +1 -0
- package/dist/connectors.d.ts +13 -0
- package/dist/connectors.js +69 -0
- package/dist/connectors.js.map +1 -0
- package/dist/fetch-page.js +2 -2
- package/dist/fetch-page.js.map +1 -1
- package/dist/history.d.ts +16 -5
- package/dist/history.js +73 -14
- package/dist/history.js.map +1 -1
- package/dist/image-choice.d.ts +23 -0
- package/dist/image-choice.js +190 -0
- package/dist/image-choice.js.map +1 -0
- package/dist/image-input-fallback.js +5 -0
- package/dist/image-input-fallback.js.map +1 -1
- package/dist/image-model.d.ts +6 -0
- package/dist/image-model.js +32 -0
- package/dist/image-model.js.map +1 -0
- package/dist/midturn-checkpoint-hook.d.ts +14 -1
- package/dist/midturn-checkpoint-hook.js.map +1 -1
- package/dist/mode.js +1 -1
- package/dist/mode.js.map +1 -1
- package/dist/model-capabilities.js +18 -8
- package/dist/model-capabilities.js.map +1 -1
- package/dist/model-router-media.js +55 -3
- package/dist/model-router-media.js.map +1 -1
- package/dist/model-stream.d.ts +16 -0
- package/dist/model-stream.js +129 -0
- package/dist/model-stream.js.map +1 -0
- package/dist/openai-responses.d.ts +2 -1
- package/dist/openai-responses.js +85 -88
- package/dist/openai-responses.js.map +1 -1
- package/dist/process-manager.js +9 -9
- package/dist/process-manager.js.map +1 -1
- package/dist/prompts.d.ts +0 -2
- package/dist/prompts.js +10 -60
- package/dist/prompts.js.map +1 -1
- package/dist/protocol.d.ts +5 -1
- package/dist/protocol.js +23 -2
- package/dist/protocol.js.map +1 -1
- package/dist/provider.d.ts +18 -0
- package/dist/provider.js +120 -51
- package/dist/provider.js.map +1 -1
- package/dist/repo.d.ts +1 -1
- package/dist/repo.js +26 -4
- package/dist/repo.js.map +1 -1
- package/dist/routify-web-fetch.js +2 -2
- package/dist/routify-web-fetch.js.map +1 -1
- package/dist/server.js +55 -27
- package/dist/server.js.map +1 -1
- package/dist/session-memory-prompts.d.ts +3 -1
- package/dist/session-memory-prompts.js +4 -2
- package/dist/session-memory-prompts.js.map +1 -1
- package/dist/side-query.js +5 -0
- package/dist/side-query.js.map +1 -1
- package/dist/spec.d.ts +5 -4
- package/dist/spec.js +31 -23
- package/dist/spec.js.map +1 -1
- package/dist/startup-config.d.ts +39 -0
- package/dist/startup-config.js +347 -0
- package/dist/startup-config.js.map +1 -0
- package/dist/startup-main-config.d.ts +63 -0
- package/dist/startup-main-config.js +94 -0
- package/dist/startup-main-config.js.map +1 -0
- package/dist/startup-tool-config.d.ts +8 -0
- package/dist/startup-tool-config.js +116 -0
- package/dist/startup-tool-config.js.map +1 -0
- package/dist/summary-compaction.d.ts +29 -0
- package/dist/{legacy-compaction.js → summary-compaction.js} +79 -14
- package/dist/summary-compaction.js.map +1 -0
- package/dist/tools.d.ts +5 -1
- package/dist/tools.js +195 -68
- package/dist/tools.js.map +1 -1
- package/dist/tui.js +26 -6
- package/dist/tui.js.map +1 -1
- package/dist/types.d.ts +21 -1
- package/dist/web/app.js +30 -5
- package/dist/web/app.js.map +1 -1
- package/dist/workspace.js +61 -13
- package/dist/workspace.js.map +1 -1
- package/docs/BINARY_DISTRIBUTION.md +44 -8
- package/docs/MODES_AND_RELEASES.md +79 -6
- package/docs/SDK.md +1 -0
- package/modes/code-arena/capture-provenance.json +57 -0
- package/modes/code-arena/full-stack/dependencies.lock.json +8670 -0
- package/modes/code-arena/full-stack/system-prompt.txt +1 -1
- package/modes/code-arena/full-stack/template/eslint.config.mjs +3 -4
- package/modes/code-arena/full-stack/template/postcss.config.mjs +2 -2
- package/modes/code-arena/full-stack/tools.json +186 -186
- package/modes/code-arena/html/system-prompt.txt +1 -1
- package/modes/code-arena/html/tools.json +123 -123
- package/modes/code-arena/react/dependencies.lock.json +2707 -0
- package/modes/code-arena/react/system-prompt.txt +4 -3
- package/modes/code-arena/react/tools.json +178 -184
- package/package.json +7 -2
- package/scripts/README.md +23 -4
- package/web/styles.css +22 -0
- package/dist/legacy-compaction.d.ts +0 -16
- package/dist/legacy-compaction.js.map +0 -1
package/.env.example
CHANGED
|
@@ -13,6 +13,9 @@ OPENAI_API_KEY=
|
|
|
13
13
|
# ARENA_OPENAI_API=auto
|
|
14
14
|
# ARENA_OPENAI_API=responses
|
|
15
15
|
# ARENA_OPENAI_API=chat
|
|
16
|
+
# Set false to omit reasoning encrypted_content and id from Responses input.
|
|
17
|
+
# Other reasoning fields and the complete local history are preserved.
|
|
18
|
+
# ARENA_RESPONSES_REPLAY_REASONING_STATE=true
|
|
16
19
|
|
|
17
20
|
# Unified runtime mode. Canonical values are shown; full_stack/fullstack and
|
|
18
21
|
# single_html/single-html remain accepted compatibility aliases.
|
|
@@ -20,6 +23,14 @@ ARENA_HARNESS_MODE=arena
|
|
|
20
23
|
# ARENA_HARNESS_MODE=react
|
|
21
24
|
# ARENA_HARNESS_MODE=html
|
|
22
25
|
# ARENA_HARNESS_MODE=full-stack
|
|
26
|
+
# All modes use incremental message events for headless stream-json.
|
|
27
|
+
# Set full for consumers requiring a full messages snapshot on every event.
|
|
28
|
+
# ARENA_STREAM_HISTORY=full
|
|
29
|
+
# ARENA_CODE_STREAM_HISTORY remains a lower-priority compatibility alias.
|
|
30
|
+
|
|
31
|
+
# Headless configuration: a redacted startup record and actual request settings
|
|
32
|
+
# on stderr and in the session's startup-config.jsonl. Set false to disable both.
|
|
33
|
+
# ARENA_CONFIG_LOGGING=true
|
|
23
34
|
|
|
24
35
|
# Native provider fallbacks used when OPENAI_BASE_URL/API_KEY are unset.
|
|
25
36
|
# ANTHROPIC_BASE_URL=https://api.anthropic.com/v1
|
|
@@ -46,7 +57,8 @@ ARENA_HARNESS_MODE=arena
|
|
|
46
57
|
# HARBOR_REMOTE_COMMAND_API_KEY=
|
|
47
58
|
|
|
48
59
|
# Trace-compatible model settings.
|
|
49
|
-
#
|
|
60
|
+
# Agent Arena defaults to 250 model steps per turn; send a follow-up to continue.
|
|
61
|
+
# ARENA_MAX_TURNS=250
|
|
50
62
|
# Code Arena compatibility alias used only when ARENA_MAX_TURNS is unset:
|
|
51
63
|
# CODE_HARNESS_MAX_STEPS=50
|
|
52
64
|
# ARENA_MAX_TOKENS=131072
|
|
@@ -57,6 +69,23 @@ ARENA_HARNESS_MODE=arena
|
|
|
57
69
|
# ARENA_TOOL_CHOICE=auto
|
|
58
70
|
# JSON array of exact tool names hidden from the model and rejected if called.
|
|
59
71
|
# ARENA_DISALLOWED_TOOLS=["bash","write_file"]
|
|
72
|
+
# Agent Arena connectors through Merge MCP; opt-in, ignored by Code Arena.
|
|
73
|
+
# Enable the captured catalog in the Tool Pack; connect apps for the Registered
|
|
74
|
+
# User through Merge Link. The key and user must belong to the same environment.
|
|
75
|
+
# One configured Registered User is shared by all sessions of this process.
|
|
76
|
+
# Slugs: notion, google_calendar, google_drive, google_docs, google_sheets,
|
|
77
|
+
# google_slides, gmail, dropbox, supabase, vercel, linear.
|
|
78
|
+
# ARENA_CONNECTORS=["notion","google_drive","google_docs","google_sheets"]
|
|
79
|
+
# Optional host-provided authenticated-app snapshot, separate from conversation
|
|
80
|
+
# enablement. This does not authorize apps or query Merge. Explicit [] enables
|
|
81
|
+
# discovery with the captured no-connected-apps prompt. Omit both arrays to keep
|
|
82
|
+
# the connector-off baseline.
|
|
83
|
+
# ARENA_CONNECTED_CONNECTORS=["notion","google_drive","google_docs","google_sheets","gmail"]
|
|
84
|
+
# ARENA_MERGE_ACCESS_KEY=
|
|
85
|
+
# ARENA_MERGE_TOOL_PACK_ID=
|
|
86
|
+
# ARENA_MERGE_REGISTERED_USER_ID=
|
|
87
|
+
# ARENA_MERGE_API_BASE=https://ah-api.merge.dev
|
|
88
|
+
# ARENA_CONNECTOR_TIMEOUT_MS=60000
|
|
60
89
|
# ARENA_THINKING_BUDGET=81920
|
|
61
90
|
# ARENA_ENABLE_THINKING=true
|
|
62
91
|
# ARENA_PRESERVE_THINKING=true
|
|
@@ -64,16 +93,22 @@ ARENA_HARNESS_MODE=arena
|
|
|
64
93
|
# prompt fixtures and Code Arena prompts are unchanged.
|
|
65
94
|
# ARENA_EXCLUDE_QWEN_FROM_SYSTEM_PROMPT=false
|
|
66
95
|
# CLI equivalent: --exclude-qwen-from-system-prompt
|
|
67
|
-
# Agent Arena
|
|
68
|
-
#
|
|
69
|
-
#
|
|
70
|
-
#
|
|
71
|
-
#
|
|
96
|
+
# Agent Arena compaction: rolling (default) or summary (historical full summary).
|
|
97
|
+
# Code Arena always uses summary and ignores this setting.
|
|
98
|
+
# ARENA_COMPACTION_MODE=rolling
|
|
99
|
+
# Agent Arena: threshold = min(250000, context window * ratio), default ratio 0.8.
|
|
100
|
+
# Each setting can be configured independently; invalid values use its default.
|
|
101
|
+
# Code Arena keeps independent controls (default window 1000000, ratio 0.7).
|
|
102
|
+
# Compaction counts use completed-request usage plus newer messages.
|
|
72
103
|
# ARENA_CONTEXT_WINDOW=1000000
|
|
73
|
-
# ARENA_CONTEXT_COMPACTION_RATIO=0.
|
|
104
|
+
# ARENA_CONTEXT_COMPACTION_RATIO=0.8
|
|
105
|
+
# Restore Agent Arena background memory by default; set false to disable.
|
|
106
|
+
# CLI overrides: --restore-session-memory / --no-restore-session-memory.
|
|
107
|
+
# ARENA_RESTORE_SESSION_MEMORY=true
|
|
74
108
|
# Provisional Agent Arena background-memory budget for newly archivable content.
|
|
109
|
+
# Uses request-usage deltas with local supplements; local counts omit tool-call IDs.
|
|
75
110
|
# ARENA_MEMORY_UPDATE_TOKENS=24000
|
|
76
|
-
#
|
|
111
|
+
# Default: rolling memory 131072; summary mode and Code Arena 8192.
|
|
77
112
|
# ARENA_COMPACTION_SUMMARY_MAX_TOKENS=131072
|
|
78
113
|
# ARENA_EXTRA_BODY={"enable_thinking":true}
|
|
79
114
|
# Transient model failures use full-jitter exponential backoff. The retry delay
|
|
@@ -134,9 +169,16 @@ ARENA_HARNESS_MODE=arena
|
|
|
134
169
|
|
|
135
170
|
# Search, page reading, image generation, and speech through ModelRouter/Routify.
|
|
136
171
|
ROUTIFY_API_KEY=
|
|
172
|
+
# Optional per-tool keys override ROUTIFY_API_KEY; unset or blank falls back.
|
|
173
|
+
# ROUTIFY_WEB_SEARCH_API_KEY=
|
|
174
|
+
# ROUTIFY_IMAGE_SEARCH_API_KEY=
|
|
175
|
+
# ROUTIFY_GENERATE_IMAGE_API_KEY=
|
|
176
|
+
# For an image proxy, keep the real MR key in ROUTIFY_API_KEY and set only
|
|
177
|
+
# ROUTIFY_GENERATE_IMAGE_API_KEY to the proxy key, with the base URL below.
|
|
137
178
|
# ROUTIFY_WEB_SEARCH_URL=https://routify-pub.alibaba-inc.com/protocol/compatible-mode/res/v1/llm/context
|
|
138
179
|
# ROUTIFY_IMAGE_SEARCH_URL=https://routify-pub.alibaba-inc.com/protocol/brave/res/v1/images/search
|
|
139
180
|
# ROUTIFY_VERTEX_BASE_URL=https://routify-pub.alibaba-inc.com/protocol/vertex/v1beta
|
|
181
|
+
# ROUTIFY_OPENAI_BASE_URL=https://routify-pub.alibaba-inc.com/protocol/openai/v1
|
|
140
182
|
# ARENA_WEB_SEARCH_MODEL=brave.llm-context
|
|
141
183
|
# CODE_HARNESS_WEB_SEARCH_MODEL=brave.llm-context
|
|
142
184
|
# Optional fetch_page/web_fetch path: Firecrawl first, then Jina Reader.
|
|
@@ -144,9 +186,18 @@ ROUTIFY_API_KEY=
|
|
|
144
186
|
# Code Arena web_fetch content cap (UTF-8 bytes, including truncation notice).
|
|
145
187
|
# Applies to local and Routify readers in all formats; must be a positive integer.
|
|
146
188
|
# CODE_HARNESS_WEB_FETCH_MAX_BYTES=40000
|
|
147
|
-
#
|
|
189
|
+
# Agent Arena single images randomly use Gemini or gpt-image-2 by default.
|
|
190
|
+
# Set this variable to pin a model (also overrides option one).
|
|
191
|
+
# ARENA_IMAGE_MODEL=gpt-image-2
|
|
192
|
+
# Second model for Agent Arena generate_image with offer_options=true.
|
|
193
|
+
# Defaults to gpt-image-2 (or Gemini when that is the primary).
|
|
194
|
+
# Without a user handler, save option one and continue; otherwise ask the user.
|
|
195
|
+
# ARENA_IMAGE_ALTERNATIVE_MODEL=gpt-image-2
|
|
148
196
|
# ARENA_IMAGE_SIZE=1024*1024
|
|
149
|
-
#
|
|
197
|
+
# Code Arena randomly uses Sunburst or Flare.
|
|
198
|
+
# Set this variable to pin a model; otherwise an explicit ARENA_IMAGE_MODEL
|
|
199
|
+
# also pins Code Arena. Grok and Muse are not enabled.
|
|
200
|
+
# CODE_HARNESS_IMAGE_MODEL=gpt-image-2.5-sunburst
|
|
150
201
|
# CODE_HARNESS_IMAGE_SIZE=1024*1024
|
|
151
202
|
# ARENA_SPEECH_MODEL=gemini-3.1-flash-tts-preview
|
|
152
203
|
# ARENA_SPEECH_VOICE=Kore
|
package/CHANGELOG.md
CHANGED
|
@@ -12,23 +12,146 @@
|
|
|
12
12
|
|
|
13
13
|
## [Unreleased]
|
|
14
14
|
|
|
15
|
-
## [0.0.10-
|
|
15
|
+
## [0.0.10-test.0] - 2026-11-09
|
|
16
16
|
|
|
17
17
|
### Agent Arena
|
|
18
18
|
|
|
19
|
-
-
|
|
20
|
-
-
|
|
19
|
+
- 压缩阈值对齐为上下文窗口的 80% 与 250,000 tokens 中的较小值,单独设置 `ARENA_CONTEXT_WINDOW` 即可适配小窗口模型。
|
|
20
|
+
- 达到压缩阈值但尚无可用记忆时继续运行,不再强制生成或等待记忆。
|
|
21
|
+
- 每轮默认最多 250 个模型步骤,`ARENA_MAX_TURNS` 可覆盖;达到上限保存进度,发送消息即可继续。
|
|
22
|
+
- `web_search` 各深度的候选数量、正文和片段预算对齐官方文档。
|
|
23
|
+
- 普通附件单文件上限调整为 25 MB,PDF 为 10 MB,每条消息合计仍为 50 MB。
|
|
24
|
+
- 按官方请求补齐会话记忆更新前缀及用户消息合并,修复长工具循环中更新被拒绝,并保留恢复记忆和图片上下文。
|
|
25
|
+
|
|
26
|
+
### 通用
|
|
27
|
+
|
|
28
|
+
- Responses、Chat Completions 和 Anthropic Messages 的断流、空回复及临时错误按配置重试,不再将不完整回复误报为成功或执行未完成的工具调用。
|
|
29
|
+
- 摘要压缩、图片转文字及指标侧查询不再接受模型明确标记为未完成的内容。
|
|
30
|
+
- 兼容更多网关限流错误并避免重试明确的鉴权失败,保留 Chat Completions 的明确拒答,拦截 Responses 中前后冲突的工具调用。
|
|
31
|
+
|
|
32
|
+
## [0.0.10-dev.16] - 2026-11-04
|
|
33
|
+
|
|
34
|
+
### Agent Arena
|
|
35
|
+
|
|
36
|
+
- Repo 会话记住目标仓库,新增同级仓库后仍可继续和恢复;目标缺失或 Git 状态异常时明确报错。
|
|
37
|
+
- 对齐近期日志中的工作区、Repo 和记忆提示词,以及已有工具的声明顺序。
|
|
38
|
+
- `read_file` 支持 `offset`、`limit` 分页;`bash` 超时返回已有输出并允许命令继续运行,主动取消仍终止进程树。
|
|
39
|
+
- 对齐工具参数的默认值、实时与恢复历史格式,以及同批工具并发执行和结果顺序。
|
|
40
|
+
- 扩展 MCP 应用至 Google Drive、Docs、Sheets、Slides、Gmail、Dropbox、Supabase、Vercel 和 Linear,并对齐 Notion 工具、工作区文件传输及重复调用保护。
|
|
41
|
+
- 新增 `ARENA_CONNECTED_CONNECTORS`,区分已连接但未开启和未连接的应用。
|
|
42
|
+
- `generate_image` 单图默认随机使用 GPT Image 2 或 Gemini 3.1 Flash,`offer_options` 并行生成双图供选择,保存未选图片并支持中断后重试;第二模型可用 `ARENA_IMAGE_ALTERNATIVE_MODEL` 配置。
|
|
43
|
+
- Headless 未配置用户 handler 时,`generate_image` 的 `offer_options=true` 默认保存第一张候选图并继续执行。
|
|
44
|
+
|
|
45
|
+
### Code Arena
|
|
46
|
+
|
|
47
|
+
- `generate_image` 默认随机使用 `gpt-image-2.5-sunburst` 或 `gpt-image-2.5-flare`。
|
|
48
|
+
|
|
49
|
+
### 通用
|
|
50
|
+
|
|
51
|
+
- 新增 `ROUTIFY_WEB_SEARCH_API_KEY`、`ROUTIFY_IMAGE_SEARCH_API_KEY`、`ROUTIFY_GENERATE_IMAGE_API_KEY`,支持搜索与生图独立密钥,未设置或留空时继续使用 `ROUTIFY_API_KEY`。
|
|
52
|
+
|
|
53
|
+
## [0.0.10-dev.15] - 2026-10-28
|
|
54
|
+
|
|
55
|
+
### Agent Arena
|
|
56
|
+
|
|
57
|
+
- 后台记忆更新按服务端 token 用量差分判断新增预算,减少长签名造成的提前更新。
|
|
58
|
+
- 默认恢复同 session 的后台记忆,避免多轮调用重复更新;可用 `ARENA_RESTORE_SESSION_MEMORY=false` 或 `--no-restore-session-memory` 关闭。
|
|
59
|
+
|
|
60
|
+
### 通用
|
|
61
|
+
|
|
62
|
+
- 本地上下文估算忽略工具调用 ID,避免内嵌长签名抬高计数。
|
|
63
|
+
- Headless 记录生效配置、脱敏输入及实际模型请求参数和工具列表,输出到 stderr 与会话的 `startup-config.jsonl`,可用 `ARENA_CONFIG_LOGGING=false` 关闭。
|
|
64
|
+
|
|
65
|
+
## [0.0.10-dev.14] - 2026-10-26
|
|
66
|
+
|
|
67
|
+
### 通用
|
|
68
|
+
|
|
69
|
+
- 修复 Qwen4 及后续代际的图片输入识别,默认仅支持文字和图片。
|
|
70
|
+
- 修复 Claude Fable/Mythos、Vertex 日期型号及 DeepSeek Flash 视觉型号的输入模态识别。
|
|
71
|
+
|
|
72
|
+
## [0.0.10-dev.13] - 2026-10-23
|
|
73
|
+
|
|
74
|
+
### Agent Arena
|
|
75
|
+
|
|
76
|
+
- 修复远程 `ask_user` 在配置较长 `ARENA_ASK_USER_TIMEOUT_MS` 后仍于 300 秒提前超时的问题,并显示底层连接错误原因。
|
|
77
|
+
|
|
78
|
+
### Code Arena
|
|
79
|
+
|
|
80
|
+
- 对齐 Code Arena 官方 2026-10-19 更新日志:按官方契约声明工具的必填和可选参数,非 Responses 路径显式关闭严格模式;可选参数接受 `null` 并使用默认值。
|
|
81
|
+
- 对齐 Code Arena 官方 2026-10-20 更新日志:直连 OpenAI Responses 使用严格工具 schema,可选字段填写 `null` 时使用默认值。
|
|
82
|
+
- 根据最新回流修正 React 初始项目中文件列表的返回顺序。
|
|
83
|
+
|
|
84
|
+
## [0.0.10-dev.12] - 2026-10-15
|
|
85
|
+
|
|
86
|
+
### Agent Arena
|
|
87
|
+
|
|
88
|
+
- 摘要压缩接入服务端 token 用量,并支持长单轮工具任务。
|
|
89
|
+
|
|
90
|
+
### Code Arena
|
|
91
|
+
|
|
92
|
+
- 摘要压缩接入服务端 token 用量,支持长单轮工具任务,并在续跑时恢复已应用的摘要。
|
|
93
|
+
- 固定 React 和 Full Stack 模板的完整安装依赖,避免上游新版本发布导致初始化失败,并保留已有项目的依赖锁。
|
|
94
|
+
- React 与 Full Stack 的命令执行支持毫秒级 `timeout`,默认 180 秒,并拒绝空命令;React 可执行 Codex 的 `shell_command` 调用。
|
|
95
|
+
|
|
96
|
+
### 通用
|
|
97
|
+
|
|
98
|
+
- 压缩计数改善 SVG 等大工具输出的估算,避免重复计入已压缩内容。
|
|
99
|
+
- 模型因长度限制截断时保留部分输出并报告失败,避免将未完成的任务标为成功。
|
|
100
|
+
- 修复 Responses 多工具调用的事件错配,确保工具结果、文件展示和用户输入请求对应正确调用。
|
|
101
|
+
|
|
102
|
+
## [0.0.10-dev.11] - 2026-10-11
|
|
103
|
+
|
|
104
|
+
### Agent Arena
|
|
105
|
+
|
|
106
|
+
- 新增实验性 Notion、Google Calendar 接入,使用 `ARENA_CONNECTORS` 选择应用,并通过 `ARENA_MERGE_*` 配置已授权的 Merge 账号。
|
|
107
|
+
- Headless Hook 新增 `before_compaction` 事件,可按压缩次数在摘要式或 rolling session memory 压缩前快照暂停,续跑时延续计数。
|
|
108
|
+
|
|
109
|
+
### Code Arena
|
|
110
|
+
|
|
111
|
+
- `generate_image` 默认模型改为 `gpt-image-2.5-sunburst`,继续通过 ModelRouter 调用。
|
|
112
|
+
|
|
113
|
+
### 通用
|
|
114
|
+
|
|
115
|
+
- 修复 Claude Haiku 5.5 开启 thinking 时因旧参数格式报 400 的问题。
|
|
116
|
+
- 修复 Gemini 通过 Chat Completions 调用工具后因签名丢失而无法继续的问题。
|
|
117
|
+
|
|
118
|
+
## [0.0.10-dev.10] - 2026-10-07
|
|
119
|
+
|
|
120
|
+
### Agent Arena
|
|
121
|
+
|
|
122
|
+
- 新增 `ARENA_COMPACTION_MODE=summary`,可切换回摘要式压缩,默认仍为 `rolling`。
|
|
123
|
+
- 后台记忆写入 `history.json`,`--single-step` 默认恢复,普通续跑可用 `--restore-session-memory` 或 `ARENA_RESTORE_SESSION_MEMORY=true` 开启。
|
|
124
|
+
- `ARENA_CONTEXT_WINDOW` 与 `ARENA_CONTEXT_COMPACTION_RATIO` 同时配置有效值时按乘积压缩,否则阈值固定为 250k。
|
|
125
|
+
- 修复记忆中美元符号导致的提示词失真,补充更新失败与取消状态,并在任务结束和暂停时收束后台请求。
|
|
126
|
+
|
|
127
|
+
### Code Arena
|
|
128
|
+
|
|
129
|
+
- Full Stack 与 HTML 提示词对齐已核验的历史请求。
|
|
130
|
+
|
|
131
|
+
### 通用
|
|
132
|
+
|
|
133
|
+
- 新增 `ARENA_RESPONSES_REPLAY_REASONING_STATE=false`,可关闭 Responses 历史加密推理状态的回传。
|
|
134
|
+
- 四种模式统一降低 headless `stream-json` 长轨迹的日志量与接收端内存占用;依赖每条事件完整历史的消费者可用 `ARENA_STREAM_HISTORY=full` 恢复旧输出,兼容旧变量 `ARENA_CODE_STREAM_HISTORY`。
|
|
135
|
+
|
|
136
|
+
## [0.0.10-dev.9] - 2026-09-30
|
|
137
|
+
|
|
138
|
+
### Agent Arena
|
|
139
|
+
|
|
140
|
+
- 修正上下文 token 重复估算,记忆更新支持 `ARENA_REASONING_EFFORT`。
|
|
141
|
+
- 修复工具参数 JSON 非法时后续请求报 400、无法继续纠错的问题。
|
|
142
|
+
- 对齐空参数、搜索深度、URL 和重复选项 ID 的校验错误,修复旧会话续跑和 Responses 流中断后的恢复。
|
|
21
143
|
|
|
22
144
|
### Code Arena
|
|
23
145
|
|
|
24
|
-
- React
|
|
25
|
-
- 视觉模型可通过 `read_file` 查看 10 MiB 以内的 PNG/JPEG
|
|
146
|
+
- React 默认步数上限提高到 75,并改用 `bash` 安装依赖和构建。
|
|
147
|
+
- 视觉模型可通过 `read_file` 查看 10 MiB 以内的 PNG/JPEG 图片,并对齐文件读取描述与 MIME。
|
|
148
|
+
- 对齐工具参数校验和隐藏计划工具,修复 Full Stack 模板与依赖锁保留。
|
|
26
149
|
|
|
27
150
|
### 通用
|
|
28
151
|
|
|
29
152
|
- Headless Hook 支持重复输出检测,可选择继续、快照后继续或快照退出。
|
|
30
153
|
- 新增 `--single-step`,执行一轮后保存退出,可用 `--continue` 续跑。
|
|
31
|
-
-
|
|
154
|
+
- 修复续跑时历史模型覆盖当前模型配置、历史中途修正未及时保存的问题。
|
|
32
155
|
|
|
33
156
|
## [0.0.10-dev.8] - 2026-09-20
|
|
34
157
|
|
|
@@ -194,14 +317,22 @@
|
|
|
194
317
|
- `bash` 用于一次性命令,区分超时与信号终止,并清理遗留后台进程;需要持续运行
|
|
195
318
|
的任务改用进程工具。预览端口支持 E2B Host 探测及按需返回告警。
|
|
196
319
|
|
|
197
|
-
[Unreleased]: https://
|
|
198
|
-
[0.0.10-
|
|
199
|
-
[0.0.10-dev.
|
|
200
|
-
[0.0.10-dev.
|
|
201
|
-
[0.0.10-dev.
|
|
202
|
-
[0.0.10-dev.
|
|
203
|
-
[0.0.10-dev.
|
|
204
|
-
[0.0.10-dev.
|
|
205
|
-
[0.0.10-dev.
|
|
206
|
-
[0.0.10-dev.
|
|
207
|
-
[0.0.10-dev.
|
|
320
|
+
[Unreleased]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-test.0&to=master&mergeBase=true
|
|
321
|
+
[0.0.10-test.0]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.16&to=v0.0.10-test.0&mergeBase=true
|
|
322
|
+
[0.0.10-dev.16]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.15&to=v0.0.10-dev.16&mergeBase=true
|
|
323
|
+
[0.0.10-dev.15]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.14&to=v0.0.10-dev.15&mergeBase=true
|
|
324
|
+
[0.0.10-dev.14]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.13&to=v0.0.10-dev.14&mergeBase=true
|
|
325
|
+
[0.0.10-dev.13]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.12&to=v0.0.10-dev.13&mergeBase=true
|
|
326
|
+
[0.0.10-dev.12]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.11&to=v0.0.10-dev.12&mergeBase=true
|
|
327
|
+
[0.0.10-dev.11]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.10&to=v0.0.10-dev.11&mergeBase=true
|
|
328
|
+
[0.0.10-dev.10]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.9&to=v0.0.10-dev.10&mergeBase=true
|
|
329
|
+
[0.0.10-dev.9]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.8&to=v0.0.10-dev.9&mergeBase=true
|
|
330
|
+
[0.0.10-dev.8]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.7&to=v0.0.10-dev.8&mergeBase=true
|
|
331
|
+
[0.0.10-dev.7]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.6&to=v0.0.10-dev.7&mergeBase=true
|
|
332
|
+
[0.0.10-dev.6]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.5&to=v0.0.10-dev.6&mergeBase=true
|
|
333
|
+
[0.0.10-dev.5]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.4&to=v0.0.10-dev.5&mergeBase=true
|
|
334
|
+
[0.0.10-dev.4]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.3&to=v0.0.10-dev.4&mergeBase=true
|
|
335
|
+
[0.0.10-dev.3]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.2&to=v0.0.10-dev.3&mergeBase=true
|
|
336
|
+
[0.0.10-dev.2]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.1&to=v0.0.10-dev.2&mergeBase=true
|
|
337
|
+
[0.0.10-dev.1]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.10-dev.0&to=v0.0.10-dev.1&mergeBase=true
|
|
338
|
+
[0.0.10-dev.0]: https://code.alibaba-inc.com/know-how/arena-harness/compare?from=v0.0.9-dev.34&to=v0.0.10-dev.0&mergeBase=true
|