@qwen-code/arena-agent 0.0.10-dev.14 → 0.0.10-dev.15
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 +7 -3
- package/CHANGELOG.md +14 -1
- package/README.md +64 -5
- package/dist/agent.d.ts +3 -1
- package/dist/agent.js +3 -1
- package/dist/agent.js.map +1 -1
- package/dist/cli.js +72 -12
- package/dist/cli.js.map +1 -1
- package/dist/code-arena-output.d.ts +15 -0
- package/dist/code-arena-output.js +41 -0
- package/dist/code-arena-output.js.map +1 -0
- package/dist/code-cli.js +0 -0
- package/dist/compaction.d.ts +2 -0
- package/dist/compaction.js +48 -8
- package/dist/compaction.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -3
- package/dist/config.js.map +1 -1
- package/dist/legacy-compaction.d.ts +20 -0
- package/dist/legacy-compaction.js +209 -0
- package/dist/legacy-compaction.js.map +1 -0
- package/dist/provider.d.ts +18 -0
- package/dist/provider.js +52 -16
- package/dist/provider.js.map +1 -1
- package/dist/startup-config.d.ts +39 -0
- package/dist/startup-config.js +346 -0
- package/dist/startup-config.js.map +1 -0
- package/dist/startup-main-config.d.ts +62 -0
- package/dist/startup-main-config.js +93 -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 +106 -0
- package/dist/startup-tool-config.js.map +1 -0
- package/dist/summary-compaction.d.ts +2 -0
- package/dist/summary-compaction.js +17 -3
- package/dist/summary-compaction.js.map +1 -1
- package/dist/web/app.d.ts +1 -0
- package/docs/BINARY_DISTRIBUTION.md +43 -8
- package/docs/MODES_AND_RELEASES.md +23 -5
- package/package.json +1 -1
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { tmpdir } from "node:os";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
function positiveInteger(value, fallback) {
|
|
4
|
+
if (!value)
|
|
5
|
+
return fallback;
|
|
6
|
+
const parsed = Number(value);
|
|
7
|
+
return Number.isInteger(parsed) && parsed > 0 ? parsed : fallback;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Settings read lazily by tools rather than configFromEnv. Match each tool's
|
|
11
|
+
* parsing rules without importing its executor or triggering tool work.
|
|
12
|
+
* Null means unset or unused by this headless entry point / harness mode.
|
|
13
|
+
* Endpoint defaults describe available services, not requests already made.
|
|
14
|
+
*/
|
|
15
|
+
export function startupToolConfig(mode, env, hostEnv) {
|
|
16
|
+
const arena = mode === "arena";
|
|
17
|
+
const code = !arena;
|
|
18
|
+
const codeImage = code && mode !== "html";
|
|
19
|
+
const mediaGeneration = arena || codeImage;
|
|
20
|
+
const fullStack = mode === "full-stack";
|
|
21
|
+
const configuredMediaRetries = Number(env.ROUTIFY_MEDIA_MAX_RETRIES || env.CODE_HARNESS_TOOL_MAX_RETRIES || 5);
|
|
22
|
+
const mediaRetries = Number.isSafeInteger(configuredMediaRetries) && configuredMediaRetries >= 0
|
|
23
|
+
? configuredMediaRetries : 5;
|
|
24
|
+
const configuredCacheTtl = Number(env.CODE_HARNESS_MEDIA_CACHE_TTL_MS);
|
|
25
|
+
const cacheTtl = Number.isFinite(configuredCacheTtl) && configuredCacheTtl >= 0
|
|
26
|
+
? configuredCacheTtl : 24 * 60 * 60 * 1000;
|
|
27
|
+
const webFetchBytesText = env.CODE_HARNESS_WEB_FETCH_MAX_BYTES?.trim() || "";
|
|
28
|
+
const parsedWebFetchBytes = /^\d+$/.test(webFetchBytesText) ? Number(webFetchBytesText) : NaN;
|
|
29
|
+
const webFetchBytes = Number.isSafeInteger(parsedWebFetchBytes) && parsedWebFetchBytes > 0
|
|
30
|
+
? parsedWebFetchBytes : 40_000;
|
|
31
|
+
const configuredBashTimeout = Number(env.CODE_HARNESS_BASH_TIMEOUT_SECONDS || 180);
|
|
32
|
+
const bashTimeout = Number.isFinite(configuredBashTimeout) && configuredBashTimeout > 0
|
|
33
|
+
? configuredBashTimeout : 180;
|
|
34
|
+
const previewPort = positiveInteger(env.CODE_HARNESS_PREVIEW_PORT, 3000);
|
|
35
|
+
const sandboxId = env.E2B_SANDBOX_ID?.trim() || null;
|
|
36
|
+
const previewHostTemplate = env.ARENA_PREVIEW_HOST_TEMPLATE?.trim()
|
|
37
|
+
|| (sandboxId ? `{port}-${sandboxId}.e2b.app` : null);
|
|
38
|
+
const checkpointHook = hostEnv.ARENA_MIDTURN_CHECKPOINT_HOOK?.trim();
|
|
39
|
+
return {
|
|
40
|
+
ARENA_CONFIG_LOGGING: !["0", "false", "no"].includes((env.ARENA_CONFIG_LOGGING ?? "").toLowerCase()),
|
|
41
|
+
// CLI naming and checkpoint configuration are captured before workspace .env.
|
|
42
|
+
ARENA_CLI_NAME: hostEnv.ARENA_CLI_NAME === "code-harness" ? "code-harness" : "arena",
|
|
43
|
+
ARENA_MIDTURN_CHECKPOINT_HOOK: checkpointHook ? path.resolve(checkpointHook) : null,
|
|
44
|
+
HARBOR_REMOTE_COMMAND_BASE_URL: hostEnv.HARBOR_REMOTE_COMMAND_BASE_URL?.trim().replace(/\/+$/, "") || null,
|
|
45
|
+
HARBOR_REMOTE_COMMAND_API_KEY: hostEnv.HARBOR_REMOTE_COMMAND_API_KEY?.trim() || null,
|
|
46
|
+
ARENA_SESSION_WORKSPACE_MODE: null,
|
|
47
|
+
NO_COLOR: null,
|
|
48
|
+
ARENA_WEB_SEARCH_MODEL: arena ? env.ARENA_WEB_SEARCH_MODEL || "brave.llm-context" : null,
|
|
49
|
+
CODE_HARNESS_WEB_SEARCH_MODEL: code
|
|
50
|
+
? env.CODE_HARNESS_WEB_SEARCH_MODEL || env.ARENA_WEB_SEARCH_MODEL || "brave.llm-context" : null,
|
|
51
|
+
ROUTIFY_API_KEY: env.ROUTIFY_API_KEY || null,
|
|
52
|
+
ROUTIFY_WEB_SEARCH_URL: env.ROUTIFY_WEB_SEARCH_URL?.trim()
|
|
53
|
+
|| "https://routify-pub.alibaba-inc.com/protocol/compatible-mode/res/v1/llm/context",
|
|
54
|
+
ROUTIFY_IMAGE_SEARCH_URL: arena
|
|
55
|
+
? env.ROUTIFY_IMAGE_SEARCH_URL?.trim()
|
|
56
|
+
|| "https://routify-pub.alibaba-inc.com/protocol/brave/res/v1/images/search" : null,
|
|
57
|
+
CODE_HARNESS_ROUTIFY_WEB_FETCH_ENABLED: code
|
|
58
|
+
? ["1", "true", "yes", "on"].includes(env.CODE_HARNESS_ROUTIFY_WEB_FETCH_ENABLED?.trim().toLowerCase() || "") : null,
|
|
59
|
+
CODE_HARNESS_WEB_FETCH_MAX_BYTES: code ? webFetchBytes : null,
|
|
60
|
+
ARENA_IMAGE_MODEL: arena ? env.ARENA_IMAGE_MODEL || "gemini-3.1-flash-image" : null,
|
|
61
|
+
ARENA_IMAGE_SIZE: arena ? env.ARENA_IMAGE_SIZE || "1024*1024" : null,
|
|
62
|
+
CODE_HARNESS_IMAGE_MODEL: codeImage
|
|
63
|
+
? env.CODE_HARNESS_IMAGE_MODEL || env.ARENA_IMAGE_MODEL || "gpt-image-2.5-sunburst" : null,
|
|
64
|
+
CODE_HARNESS_IMAGE_SIZE: codeImage
|
|
65
|
+
? env.CODE_HARNESS_IMAGE_SIZE || env.ARENA_IMAGE_SIZE || "1024*1024" : null,
|
|
66
|
+
// Remote input attachments use these limits in every mode.
|
|
67
|
+
ARENA_IMAGE_MAX_EDGE: positiveInteger(env.ARENA_IMAGE_MAX_EDGE, 1568),
|
|
68
|
+
ARENA_IMAGE_MAX_PATCHES: positiveInteger(env.ARENA_IMAGE_MAX_PATCHES, 1568),
|
|
69
|
+
ARENA_SPEECH_MODEL: arena ? env.ARENA_SPEECH_MODEL || "gemini-3.1-flash-tts-preview" : null,
|
|
70
|
+
// The default voice depends on the voice selected by each tool call.
|
|
71
|
+
ARENA_SPEECH_VOICE: arena ? env.ARENA_SPEECH_VOICE || null : null,
|
|
72
|
+
ROUTIFY_VERTEX_BASE_URL: mediaGeneration
|
|
73
|
+
? (env.ROUTIFY_VERTEX_BASE_URL || "https://routify-pub.alibaba-inc.com/protocol/vertex/v1beta").replace(/\/+$/, "") : null,
|
|
74
|
+
ROUTIFY_OPENAI_BASE_URL: mediaGeneration
|
|
75
|
+
? (env.ROUTIFY_OPENAI_BASE_URL || "https://routify-pub.alibaba-inc.com/protocol/openai/v1").replace(/\/+$/, "") : null,
|
|
76
|
+
ROUTIFY_MEDIA_MAX_RETRIES: mediaGeneration ? mediaRetries : null,
|
|
77
|
+
PEXELS_API_KEY: code ? env.PEXELS_API_KEY || null : null,
|
|
78
|
+
CODE_HARNESS_MEDIA_CACHE_TTL_MS: code ? cacheTtl : null,
|
|
79
|
+
CODE_HARNESS_MEDIA_CACHE_DIR: code
|
|
80
|
+
? env.CODE_HARNESS_MEDIA_CACHE_DIR || path.join(tmpdir(), "code-harness", "fetch-media-cache-v1") : null,
|
|
81
|
+
ARENA_SOFFICE_PATH: arena ? env.ARENA_SOFFICE_PATH || "soffice" : null,
|
|
82
|
+
// The actual privilege gate also checks platform, workspace, Docker and uid.
|
|
83
|
+
ARENA_SANDBOX_PRIVILEGED_FILE_CREATION: arena ? env.ARENA_SANDBOX_PRIVILEGED_FILE_CREATION || null : null,
|
|
84
|
+
ARENA_PREVIEW_HOST_TEMPLATE: arena ? previewHostTemplate : null,
|
|
85
|
+
E2B_SANDBOX_ID: arena ? sandboxId : null,
|
|
86
|
+
CODE_HARNESS_APPLY_PATCH_TOOL: code
|
|
87
|
+
? env.CODE_HARNESS_APPLY_PATCH_TOOL !== undefined
|
|
88
|
+
&& !["0", "false", "no"].includes(env.CODE_HARNESS_APPLY_PATCH_TOOL.toLowerCase()) : null,
|
|
89
|
+
CODE_HARNESS_NPM_CLI_JS: code ? env.CODE_HARNESS_NPM_CLI_JS || null : null,
|
|
90
|
+
CODE_HARNESS_BASH_TIMEOUT_SECONDS: codeImage ? bashTimeout : null,
|
|
91
|
+
// Preserve non-finite Number results for the caller's invalid-value marker.
|
|
92
|
+
CODE_HARNESS_FULLSTACK_BUILD_TIMEOUT_MS: fullStack
|
|
93
|
+
? Number(env.CODE_HARNESS_FULLSTACK_BUILD_TIMEOUT_MS || 300_000) : null,
|
|
94
|
+
CODE_HARNESS_PREVIEW_PORT: fullStack ? previewPort : null,
|
|
95
|
+
CODE_HARNESS_PREVIEW_URL: fullStack
|
|
96
|
+
? env.CODE_HARNESS_PREVIEW_URL || `http://127.0.0.1:${previewPort}` : null,
|
|
97
|
+
// Both executors load the recording lazily; only the exit hook is eager.
|
|
98
|
+
CODE_HARNESS_REPLAY_RESPONSES: env.CODE_HARNESS_REPLAY_RESPONSES
|
|
99
|
+
? path.resolve(env.CODE_HARNESS_REPLAY_RESPONSES) : null,
|
|
100
|
+
replayExitSummaryEnabled: Boolean(hostEnv.CODE_HARNESS_REPLAY_RESPONSES),
|
|
101
|
+
HTTP_PROXY: env.http_proxy ?? env.HTTP_PROXY ?? null,
|
|
102
|
+
HTTPS_PROXY: env.https_proxy ?? env.HTTPS_PROXY ?? null,
|
|
103
|
+
NO_PROXY: env.no_proxy ?? env.NO_PROXY ?? null,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=startup-tool-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup-tool-config.js","sourceRoot":"","sources":["../src/startup-tool-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,8 @@ export interface CompactionResult {
|
|
|
22
22
|
}
|
|
23
23
|
/** Keep the newest complete step, including all parallel results and images. */
|
|
24
24
|
export declare function latestCompleteStepStart(messages: readonly Message[]): number;
|
|
25
|
+
/** Omit accounting metadata and tool correlation IDs, including embedded signatures. */
|
|
26
|
+
export declare function contextTokenReplacer(this: Record<string, unknown>, key: string, value: unknown): unknown;
|
|
25
27
|
export declare function estimateContextTokens(messages: readonly Message[], tools: readonly ToolDefinition[], imageTokenEstimate?: number): number;
|
|
26
28
|
export declare function continuationSummaryBlock(summary: string): string;
|
|
27
29
|
export declare function compactMessagesIfNeeded(messages: Message[], tools: readonly ToolDefinition[], client: ModelClient, model: string, settings: CompactionSettings, signal?: AbortSignal): Promise<CompactionResult>;
|
|
@@ -75,9 +75,23 @@ function addCharacterCounts(counts, value) {
|
|
|
75
75
|
counts.nonAscii += 1;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
+
/** Omit accounting metadata and tool correlation IDs, including embedded signatures. */
|
|
79
|
+
export function contextTokenReplacer(key, value) {
|
|
80
|
+
if (key === "image" && typeof value === "string")
|
|
81
|
+
return "<image>";
|
|
82
|
+
if (key === "usage" && this.role === "assistant")
|
|
83
|
+
return undefined;
|
|
84
|
+
if (key === "tool_call_id" && this.role === "tool")
|
|
85
|
+
return undefined;
|
|
86
|
+
if (key === "id" && this.type === "function" && this.function)
|
|
87
|
+
return undefined;
|
|
88
|
+
if ((key === "id" || key === "call_id") &&
|
|
89
|
+
(this.type === "function_call" || this.type === "function_call_output"))
|
|
90
|
+
return undefined;
|
|
91
|
+
return value;
|
|
92
|
+
}
|
|
78
93
|
function serializedContextTokens(messages, tools) {
|
|
79
94
|
const counts = { ascii: 0, nonAscii: 0 };
|
|
80
|
-
const replacer = (key, value) => key === "image" && typeof value === "string" ? "<image>" : value;
|
|
81
95
|
addCharacterCounts(counts, '{"messages":[');
|
|
82
96
|
for (let index = 0; index < messages.length; index += 1) {
|
|
83
97
|
if (index)
|
|
@@ -89,10 +103,10 @@ function serializedContextTokens(messages, tools) {
|
|
|
89
103
|
openai_response_items: message.openai_response_items,
|
|
90
104
|
}
|
|
91
105
|
: message;
|
|
92
|
-
addCharacterCounts(counts, JSON.stringify(modelVisible,
|
|
106
|
+
addCharacterCounts(counts, JSON.stringify(modelVisible, contextTokenReplacer));
|
|
93
107
|
}
|
|
94
108
|
addCharacterCounts(counts, '],"tools":');
|
|
95
|
-
addCharacterCounts(counts, JSON.stringify(tools,
|
|
109
|
+
addCharacterCounts(counts, JSON.stringify(tools, contextTokenReplacer));
|
|
96
110
|
addCharacterCounts(counts, "}");
|
|
97
111
|
return Math.ceil(counts.ascii / 4 + counts.nonAscii);
|
|
98
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary-compaction.js","sourceRoot":"","sources":["../src/summary-compaction.ts"],"names":[],"mappings":"AAUA,MAAM,oBAAoB,GACxB,8EAA8E;IAC9E,+EAA+E;IAC/E,2EAA2E;IAC3E,6EAA6E;IAC7E,6EAA6E;IAC7E,yBAAyB,CAAC;AAE5B,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;4gBAgBgf,CAAC;AAE7gB,MAAM,cAAc,GAClB,8EAA8E,CAAC;AAEjF,MAAM,uBAAuB,GAC3B,+HAA+H,CAAC;AAyBlI,SAAS,iBAAiB,CAAC,OAAwB;IACjD,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IAChE,OAAO,OAAO,CAAC,OAAO;SACnB,MAAM,CAAC,CAAC,IAAI,EAA4B,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC;SAC1D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,MAAM;QACvB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QAC9B,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CACzD,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,QAA4B;IACxD,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,OAAO,EAAE,IAAI,KAAK,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;IAC7E,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,uBAAuB,CAAC,QAA4B;IAClE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAC;QACjC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC9F,IAAI,OAAO,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC5B,KAAK,GAAG,KAAK,CAAC;YACd,OAAO,KAAK,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC;gBAAE,KAAK,EAAE,CAAC;YAC/G,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACjC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE;oBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5E,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACnC,CAAC;AAOD,SAAS,kBAAkB,CAAC,MAAuB,EAAE,KAAa;IAChE,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC9B,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,CAAE,IAAI,IAAI;YAAE,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;;YACpD,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"summary-compaction.js","sourceRoot":"","sources":["../src/summary-compaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -146,7 +146,9 @@ CI 应构建并汇总 `build/npm/packages/<target>`。原生 Runtime 通常应
|
|
|
146
146
|
发布这四个平台包、`@qwen-code/arena-agent` 和
|
|
147
147
|
`@qwen-code/arena-cli`;后两个包都包含四种模式和两个命令入口。普通分支 push
|
|
148
148
|
不触发,手动运行只构建、不发布。发布前
|
|
149
|
-
需要在“设置 → 持续集成 →
|
|
149
|
+
需要在“设置 → 持续集成 → 变量管理”中配置有效的 `NPM_TOKEN` Secret;本地使用的
|
|
150
|
+
凭证不会自动更新 CI。Tag 发布先校验版本、changelog 和 npm 身份,成功后才启动
|
|
151
|
+
四个平台构建;凭证缺失或认证失败会直接停止。手动构建跳过认证,不要求 npm 凭证。
|
|
150
152
|
|
|
151
153
|
每次发布前先按[发版流程](MODES_AND_RELEASES.md#发布节奏)更新
|
|
152
154
|
[`CHANGELOG.md`](../CHANGELOG.md)。以下以新的预发布版 `0.0.10-dev.7` 为例,
|
|
@@ -156,6 +158,8 @@ CI 应构建并汇总 `build/npm/packages/<target>`。原生 Runtime 通常应
|
|
|
156
158
|
npm version 0.0.10-dev.7 --no-git-tag-version
|
|
157
159
|
# 将本次变更整理到 CHANGELOG.md 的 0.0.10-dev.7 条目,填写日期并更新比较链接
|
|
158
160
|
npm run check:changelog
|
|
161
|
+
# 在已配置 NPM_TOKEN 的环境中验证发布身份,无需先构建平台包
|
|
162
|
+
ARENA_RELEASE_REF=v0.0.10-dev.7 npm run publish:binaries -- --preflight
|
|
159
163
|
git add package.json package-lock.json CHANGELOG.md
|
|
160
164
|
git commit -m "chore: release 0.0.10-dev.7"
|
|
161
165
|
git push origin master
|
|
@@ -179,12 +183,18 @@ Linux arm64 的两个平台包暂不参与自动发布,以免非关键 ARM64 J
|
|
|
179
183
|
`npm publish` 和多平台发布脚本均执行此检查,缺失时立即失败;多平台脚本在发布
|
|
180
184
|
第一个平台包前检查,避免只发布部分包后才发现变更记录缺失。
|
|
181
185
|
|
|
182
|
-
|
|
186
|
+
本地发布可通过环境变量 `NPM_TOKEN` 提供凭证。发布入口使用临时 npm 配置,不修改
|
|
187
|
+
全局 npm 配置;不要将凭证写入仓库。`--preflight` 不要求平台包目录,先检查
|
|
188
|
+
changelog 和 `ARENA_RELEASE_REF`,再检查 npm 身份。`npm whoami` 成功仅确认身份,
|
|
189
|
+
实际包的发布权限仍由 npm 在上传时检查。
|
|
190
|
+
|
|
191
|
+
汇总受支持的四个平台包目录后,重新生成入口包并进行发布前检查:
|
|
183
192
|
|
|
184
193
|
```bash
|
|
185
194
|
npm run check:changelog
|
|
186
195
|
npm run package:binary:cli
|
|
187
|
-
npm run publish:binaries -- --dry-run --tag dev
|
|
196
|
+
npm run publish:binaries -- --dry-run --tag dev \
|
|
197
|
+
--targets darwin-arm64,darwin-x64,linux-x64,linux-x64-musl
|
|
188
198
|
```
|
|
189
199
|
|
|
190
200
|
确认后去掉 `--dry-run`,按需传入 registry:
|
|
@@ -192,15 +202,40 @@ npm run publish:binaries -- --dry-run --tag dev
|
|
|
192
202
|
```bash
|
|
193
203
|
npm run publish:binaries -- \
|
|
194
204
|
--tag dev \
|
|
205
|
+
--targets darwin-arm64,darwin-x64,linux-x64,linux-x64-musl \
|
|
195
206
|
--registry https://registry.example.com
|
|
196
207
|
```
|
|
197
208
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
209
|
+
发布脚本会校验所选平台包和入口包的名称、版本、依赖是否一致,先上传平台包和
|
|
210
|
+
`@qwen-code/arena-agent`,最后发布 `@qwen-code/arena-cli`。上传被 npm 接受后可能
|
|
211
|
+
还需等待异步扫描;脚本会等待版本公开可见,并核对已发布包与本地产物的哈希,
|
|
212
|
+
平台包可用后才发布入口包。网络失败后会先确认 npm 上的版本状态,再决定是否重试;
|
|
213
|
+
认证和权限错误会直接报告,不作为网络错误反复上传。
|
|
214
|
+
|
|
215
|
+
同版本重跑会核验已存在的包并继续剩余步骤。预发布默认使用 `dev` tag,稳定版本
|
|
216
|
+
默认使用 `latest`,也可显式用 `--tag` 覆盖。发布结束会将各包的滚动标签同步到该
|
|
217
|
+
渠道所有包均已发布的最新版本,避免历史补发把标签退回旧版。历史版本补发仍应
|
|
218
|
+
从旧到新执行,待所有批次完成后确认标签一致。
|
|
219
|
+
|
|
220
|
+
上传进度和待发布 tarball 保存在 `build/npm/releases/<version>/`,中断后重跑可
|
|
221
|
+
继续等待已受理的上传。扫描等待可并行进行,大文件上传保持串行。npm 上传遇到
|
|
222
|
+
网络问题时会尝试通过 curl 直连、限速传输同一份 tarball(不使用代理);
|
|
223
|
+
可通过以下环境变量调整等待与上传参数:
|
|
224
|
+
|
|
225
|
+
| 变量 | 默认值 | 用途 |
|
|
226
|
+
| --- | --- | --- |
|
|
227
|
+
| `ARENA_NPM_WAIT_SECONDS` | `1200` | 等待已受理版本公开可见的最长秒数 |
|
|
228
|
+
| `ARENA_NPM_UPLOAD_RATE` | `2M` | 网络恢复上传的限速,使用 curl 的速率格式 |
|
|
229
|
+
|
|
230
|
+
最后运行完整版本验证。CI 自动执行此步骤,本地补发也必须通过:
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
node scripts/verify-release.mjs --version 0.0.10-dev.7
|
|
234
|
+
```
|
|
202
235
|
|
|
203
|
-
|
|
236
|
+
验证覆盖 Agent、CLI 和受支持平台包的精确版本与 dist-tag,并通过当前平台的
|
|
237
|
+
`install.sh` 完成安装烟测。仅看到 `npm publish` 接受上传或某一个包可查询,不能
|
|
238
|
+
视为整次发布完成。
|
|
204
239
|
|
|
205
240
|
## 平台与兼容性
|
|
206
241
|
|
|
@@ -154,6 +154,10 @@ arena --mode full-stack -p '...'
|
|
|
154
154
|
2. 保留顶部 `## [Unreleased]` 供后续记录,更新新版本及 `Unreleased` 的比较链接。
|
|
155
155
|
3. 完成下面的发布检查,再提交版本变更和 changelog、推送匹配的 `v<version>` 标签。
|
|
156
156
|
|
|
157
|
+
发布前确认 Aone 的 `NPM_TOKEN` Secret 有效。本地临时提供的凭证不会同步到 CI;
|
|
158
|
+
更换凭证时需更新该 Secret。Tag 流水线在所有平台构建之前执行发布预检,认证失败
|
|
159
|
+
会立即停止。手动触发仍只构建,不要求 npm 凭证。
|
|
160
|
+
|
|
157
161
|
Changelog 只记录用户使用 CLI 时能感知的功能、行为、修复、配置、安装兼容性和
|
|
158
162
|
迁移要求。内部技能、回放与审计工具、报告、测试、发布流程维护、源码归档及
|
|
159
163
|
构建下载诊断不写入 changelog。
|
|
@@ -171,18 +175,32 @@ npm run typecheck
|
|
|
171
175
|
npm test
|
|
172
176
|
npm pack --dry-run
|
|
173
177
|
|
|
178
|
+
# 已配置 NPM_TOKEN;此检查不依赖平台构建产物
|
|
179
|
+
node scripts/publish-binaries.mjs --preflight
|
|
180
|
+
|
|
174
181
|
# 每个平台 runner
|
|
175
182
|
npm run package:binary:platform
|
|
176
183
|
|
|
177
184
|
# 汇总平台产物后
|
|
178
185
|
npm run package:binary:cli
|
|
179
|
-
npm run publish:binaries -- --dry-run
|
|
186
|
+
npm run publish:binaries -- --dry-run \
|
|
187
|
+
--targets darwin-arm64,darwin-x64,linux-x64,linux-x64-musl
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
平台包必须先于 `@qwen-code/arena-cli` 发布。发布入口会等待 npm 异步扫描结束、
|
|
191
|
+
核对公开包的哈希,并在平台包可用后发布 CLI,最后核验滚动 dist-tag。已被接受但
|
|
192
|
+
尚未公开的上传不应当作未发布包重复上传;同版本重跑由发布入口检查状态后续跑。
|
|
193
|
+
|
|
194
|
+
推送标签后,CI 自动运行下列完整版本验证。本地补发也必须运行并通过:
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
node scripts/verify-release.mjs --version 0.0.10-dev.7
|
|
180
198
|
```
|
|
181
199
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
`
|
|
185
|
-
|
|
200
|
+
验证覆盖 Agent、CLI 和所有受支持平台包的 exact-version npm 查询,至少包括
|
|
201
|
+
`darwin-arm64`、`darwin-x64`、`linux-x64`、`linux-x64-musl`,并用该完整版本号的
|
|
202
|
+
`install.sh` 在当前平台做端到端烟测。预发布还需确认相关包的 `dev` dist-tag
|
|
203
|
+
均指向最新预发布版本;历史补发从旧到新执行,待所有批次结束后再确认标签。
|
|
186
204
|
完整矩阵及发布命令见 [`BINARY_DISTRIBUTION.md`](BINARY_DISTRIBUTION.md)。
|
|
187
205
|
|
|
188
206
|
## 原 Code Harness 的迁移边界
|