@qwen-code/arena-agent 0.0.5 → 0.0.7-preview.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 +12 -19
- package/README.md +26 -133
- package/dist/agent.d.ts +3 -9
- package/dist/agent.js +108 -246
- package/dist/agent.js.map +1 -1
- package/dist/cli.js +12 -41
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -6
- package/dist/config.js +2 -28
- package/dist/config.js.map +1 -1
- package/dist/fetch-page.js +7 -18
- package/dist/fetch-page.js.map +1 -1
- package/dist/history.d.ts +3 -3
- package/dist/history.js +4 -4
- package/dist/history.js.map +1 -1
- package/dist/mock.js +9 -25
- package/dist/mock.js.map +1 -1
- package/dist/prompts.d.ts +4 -0
- package/dist/prompts.js +57 -0
- package/dist/prompts.js.map +1 -0
- package/dist/protocol.d.ts +2 -4
- package/dist/protocol.js +1 -17
- package/dist/protocol.js.map +1 -1
- package/dist/provider.d.ts +0 -4
- package/dist/provider.js +11 -169
- package/dist/provider.js.map +1 -1
- package/dist/repo.d.ts +4 -0
- package/dist/repo.js +84 -0
- package/dist/repo.js.map +1 -0
- package/dist/server.js +184 -26
- package/dist/server.js.map +1 -1
- package/dist/spec.d.ts +11 -6
- package/dist/spec.js +74 -123
- package/dist/spec.js.map +1 -1
- package/dist/tools.d.ts +2 -5
- package/dist/tools.js +237 -134
- package/dist/tools.js.map +1 -1
- package/dist/tui.js +15 -40
- package/dist/tui.js.map +1 -1
- package/dist/types.d.ts +24 -25
- package/dist/web/app.js +3 -2
- package/dist/web/app.js.map +1 -1
- package/docs/SDK.md +521 -0
- package/package.json +5 -4
- package/spec/tools.json +418 -0
- package/dist/anthropic.d.ts +0 -16
- package/dist/anthropic.js +0 -391
- package/dist/anthropic.js.map +0 -1
- package/dist/attachments.d.ts +0 -29
- package/dist/attachments.js +0 -222
- package/dist/attachments.js.map +0 -1
- package/dist/canonical-data.d.ts +0 -2
- package/dist/canonical-data.js +0 -4
- package/dist/canonical-data.js.map +0 -1
- package/dist/compaction.d.ts +0 -16
- package/dist/compaction.js +0 -182
- package/dist/compaction.js.map +0 -1
package/dist/provider.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { anthropicChunks, anthropicFallbackChunk, anthropicRequestBody, } from "./anthropic.js";
|
|
2
1
|
function withoutTrailingSlash(value) {
|
|
3
2
|
return value.replace(/\/+$/, "");
|
|
4
3
|
}
|
|
@@ -37,36 +36,6 @@ function abortableSleep(milliseconds, signal) {
|
|
|
37
36
|
signal?.addEventListener("abort", abort, { once: true });
|
|
38
37
|
});
|
|
39
38
|
}
|
|
40
|
-
// Histories store multimodal user content in Arena's native part format
|
|
41
|
-
// ({image}/{text}); chat-completions endpoints expect OpenAI-style parts,
|
|
42
|
-
// so the translation happens here at the wire boundary only.
|
|
43
|
-
function wireContentPart(part) {
|
|
44
|
-
if (typeof part.type === "string")
|
|
45
|
-
return part;
|
|
46
|
-
if (typeof part.image === "string") {
|
|
47
|
-
return {
|
|
48
|
-
type: "image_url",
|
|
49
|
-
image_url: { url: part.image, detail: "auto" },
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
return { type: "text", text: String(part.text ?? "") };
|
|
53
|
-
}
|
|
54
|
-
function wireMessages(messages) {
|
|
55
|
-
return messages.map((message) => {
|
|
56
|
-
if (message.role === "user" && Array.isArray(message.content)) {
|
|
57
|
-
return {
|
|
58
|
-
role: "user",
|
|
59
|
-
content: message.content.map((part) => wireContentPart(part)),
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
if (message.role === "assistant" &&
|
|
63
|
-
(message.usage !== undefined || message.reasoning_details !== undefined)) {
|
|
64
|
-
const { usage: _usage, reasoning_details: _details, ...wire } = message;
|
|
65
|
-
return wire;
|
|
66
|
-
}
|
|
67
|
-
return message;
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
39
|
function stripProviderPrefix(model) {
|
|
71
40
|
const separator = model.indexOf("/");
|
|
72
41
|
if (separator === -1)
|
|
@@ -117,18 +86,11 @@ export function resolveApiConnection(config, requestedModel = config.model) {
|
|
|
117
86
|
if (!apiKey) {
|
|
118
87
|
throw new Error(`No API key configured for ${provider}; set ARENA_API_KEY or the provider key`);
|
|
119
88
|
}
|
|
89
|
+
headers.authorization = `Bearer ${apiKey}`;
|
|
120
90
|
if (provider === "anthropic") {
|
|
121
|
-
// Anthropic authenticates with x-api-key; Authorization is deliberately
|
|
122
|
-
// omitted because some Anthropic-compatible gateways (e.g. DashScope's
|
|
123
|
-
// /apps/anthropic) hang when both headers are present. Gateways that
|
|
124
|
-
// expect a Bearer token instead (e.g. DashScope's claude-code-proxy) are
|
|
125
|
-
// handled by a one-time 401 fallback in the native client.
|
|
126
91
|
headers["x-api-key"] = apiKey;
|
|
127
92
|
headers["anthropic-version"] = "2023-06-01";
|
|
128
93
|
}
|
|
129
|
-
else {
|
|
130
|
-
headers.authorization = `Bearer ${apiKey}`;
|
|
131
|
-
}
|
|
132
94
|
return {
|
|
133
95
|
baseUrl: withoutTrailingSlash(baseUrl),
|
|
134
96
|
apiKey,
|
|
@@ -161,47 +123,6 @@ async function responseError(response) {
|
|
|
161
123
|
}
|
|
162
124
|
return new Error(`Model request failed (${response.status} ${response.statusText}): ${detail.slice(0, 2000)}`);
|
|
163
125
|
}
|
|
164
|
-
// Guards against streams that stay open but silently stop delivering bytes
|
|
165
|
-
// (observed on DashScope's /apps/anthropic gateway, which can send a single
|
|
166
|
-
// ping frame and then stall forever). The error carries a code the agent's
|
|
167
|
-
// stream-retry logic treats as a transient network fault.
|
|
168
|
-
export function withIdleTimeout(stream, timeoutMs) {
|
|
169
|
-
if (!timeoutMs || timeoutMs <= 0)
|
|
170
|
-
return stream;
|
|
171
|
-
const reader = stream.getReader();
|
|
172
|
-
return new ReadableStream({
|
|
173
|
-
async pull(controller) {
|
|
174
|
-
let timer;
|
|
175
|
-
try {
|
|
176
|
-
const result = await Promise.race([
|
|
177
|
-
reader.read(),
|
|
178
|
-
new Promise((_resolve, reject) => {
|
|
179
|
-
timer = setTimeout(() => {
|
|
180
|
-
const error = new Error(`model stream produced no data for ${timeoutMs}ms`);
|
|
181
|
-
error.code =
|
|
182
|
-
"ARENA_STREAM_IDLE_TIMEOUT";
|
|
183
|
-
reject(error);
|
|
184
|
-
}, timeoutMs);
|
|
185
|
-
}),
|
|
186
|
-
]);
|
|
187
|
-
if (result.done)
|
|
188
|
-
controller.close();
|
|
189
|
-
else
|
|
190
|
-
controller.enqueue(result.value);
|
|
191
|
-
}
|
|
192
|
-
catch (error) {
|
|
193
|
-
await reader.cancel().catch(() => undefined);
|
|
194
|
-
controller.error(error);
|
|
195
|
-
}
|
|
196
|
-
finally {
|
|
197
|
-
clearTimeout(timer);
|
|
198
|
-
}
|
|
199
|
-
},
|
|
200
|
-
cancel(reason) {
|
|
201
|
-
return reader.cancel(reason);
|
|
202
|
-
},
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
126
|
async function* parseSse(stream) {
|
|
206
127
|
const reader = stream.getReader();
|
|
207
128
|
const decoder = new TextDecoder();
|
|
@@ -238,7 +159,6 @@ async function* parseSse(stream) {
|
|
|
238
159
|
function fallbackChunk(value) {
|
|
239
160
|
const choices = (value.choices || []);
|
|
240
161
|
return {
|
|
241
|
-
usage: value.usage,
|
|
242
162
|
choices: choices.map((choice) => {
|
|
243
163
|
const message = (choice.message || {});
|
|
244
164
|
return {
|
|
@@ -259,7 +179,6 @@ export class HttpModelClient {
|
|
|
259
179
|
sleep;
|
|
260
180
|
random;
|
|
261
181
|
now;
|
|
262
|
-
anthropicBearerAuth = false;
|
|
263
182
|
constructor(config, options = {}) {
|
|
264
183
|
this.config = config;
|
|
265
184
|
this.fetch = options.fetch || globalThis.fetch.bind(globalThis);
|
|
@@ -278,45 +197,13 @@ export class HttpModelClient {
|
|
|
278
197
|
const exponential = Math.min(maximum, base * 2 ** Math.min(retry, 30));
|
|
279
198
|
return Math.floor(exponential * this.random());
|
|
280
199
|
}
|
|
281
|
-
// The same silent-stall guard as withIdleTimeout, but for the phase before
|
|
282
|
-
// response headers arrive — a gateway can also accept the request and never
|
|
283
|
-
// answer. The coded abort reason makes the agent's stream retry re-issue
|
|
284
|
-
// the turn instead of waiting on undici's five-minute default.
|
|
285
|
-
async fetchWithHeadersTimeout(url, init) {
|
|
286
|
-
const timeoutMs = this.config.modelStreamIdleTimeoutMs;
|
|
287
|
-
if (!timeoutMs || timeoutMs <= 0)
|
|
288
|
-
return this.fetch(url, init);
|
|
289
|
-
const outerSignal = init.signal ?? undefined;
|
|
290
|
-
const controller = new AbortController();
|
|
291
|
-
// The derived signal also governs the response body, so the outer abort
|
|
292
|
-
// listener must stay attached for the lifetime of the response — only the
|
|
293
|
-
// headers timer is cleared once headers arrive.
|
|
294
|
-
if (outerSignal) {
|
|
295
|
-
if (outerSignal.aborted)
|
|
296
|
-
controller.abort(outerSignal.reason);
|
|
297
|
-
else {
|
|
298
|
-
outerSignal.addEventListener("abort", () => controller.abort(outerSignal.reason), { once: true });
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
const timer = setTimeout(() => {
|
|
302
|
-
const error = new Error(`model response headers not received within ${timeoutMs}ms`);
|
|
303
|
-
error.code = "ARENA_STREAM_IDLE_TIMEOUT";
|
|
304
|
-
controller.abort(error);
|
|
305
|
-
}, timeoutMs);
|
|
306
|
-
try {
|
|
307
|
-
return await this.fetch(url, { ...init, signal: controller.signal });
|
|
308
|
-
}
|
|
309
|
-
finally {
|
|
310
|
-
clearTimeout(timer);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
200
|
async completionResponse(url, init) {
|
|
314
201
|
const maxRetries = Math.max(0, Math.floor(this.config.modelMaxRetries ?? 5));
|
|
315
202
|
for (let retry = 0;; retry += 1) {
|
|
316
203
|
init.signal?.throwIfAborted();
|
|
317
204
|
let response;
|
|
318
205
|
try {
|
|
319
|
-
response = await this.
|
|
206
|
+
response = await this.fetch(url, init);
|
|
320
207
|
}
|
|
321
208
|
catch (error) {
|
|
322
209
|
if (init.signal?.aborted)
|
|
@@ -338,39 +225,28 @@ export class HttpModelClient {
|
|
|
338
225
|
}
|
|
339
226
|
async *stream(request) {
|
|
340
227
|
const connection = resolveApiConnection(this.config, request.model);
|
|
341
|
-
// Direct anthropic/ connections speak the native Messages protocol; the
|
|
342
|
-
// LiteLLM proxy path resolves to provider "litellm" and stays on the
|
|
343
|
-
// OpenAI-compatible wire format below.
|
|
344
|
-
if (connection.provider === "anthropic") {
|
|
345
|
-
yield* this.streamAnthropic(connection, request);
|
|
346
|
-
return;
|
|
347
|
-
}
|
|
348
228
|
const body = {
|
|
349
229
|
model: connection.model,
|
|
350
|
-
messages:
|
|
230
|
+
messages: request.messages,
|
|
351
231
|
tools: request.tools,
|
|
352
232
|
tool_choice: request.toolChoice,
|
|
353
233
|
temperature: request.temperature,
|
|
354
234
|
max_tokens: request.maxTokens,
|
|
355
235
|
stream: true,
|
|
356
|
-
// Ask OpenAI-compatible services to report token usage on the final
|
|
357
|
-
// stream chunk so each assistant turn can be recorded with its real
|
|
358
|
-
// cost. Providers that reject the option can override it through
|
|
359
|
-
// ARENA_EXTRA_BODY, which is merged after this body is built.
|
|
360
|
-
stream_options: { include_usage: true },
|
|
361
236
|
};
|
|
362
|
-
if (
|
|
363
|
-
if (
|
|
237
|
+
if (connection.liteLlmProxy) {
|
|
238
|
+
if (request.enableThinking) {
|
|
364
239
|
body.thinking = {
|
|
365
240
|
type: "enabled",
|
|
366
241
|
budget_tokens: request.thinkingBudget,
|
|
367
242
|
};
|
|
368
243
|
body.drop_params = true;
|
|
369
244
|
}
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
245
|
+
}
|
|
246
|
+
else if (connection.baseUrl.includes("dashscope.aliyuncs.com")) {
|
|
247
|
+
body.enable_thinking = request.enableThinking;
|
|
248
|
+
body.thinking_budget = request.thinkingBudget;
|
|
249
|
+
body.preserve_thinking = request.preserveThinking;
|
|
374
250
|
}
|
|
375
251
|
if (process.env.ARENA_EXTRA_BODY) {
|
|
376
252
|
const extra = JSON.parse(process.env.ARENA_EXTRA_BODY);
|
|
@@ -389,46 +265,12 @@ export class HttpModelClient {
|
|
|
389
265
|
throw await responseError(response);
|
|
390
266
|
if (response.body &&
|
|
391
267
|
(response.headers.get("content-type") || "").includes("text/event-stream")) {
|
|
392
|
-
yield* parseSse(
|
|
268
|
+
yield* parseSse(response.body);
|
|
393
269
|
return;
|
|
394
270
|
}
|
|
395
271
|
const value = (await response.json());
|
|
396
272
|
yield fallbackChunk(value);
|
|
397
273
|
}
|
|
398
|
-
async *streamAnthropic(connection, request) {
|
|
399
|
-
const body = anthropicRequestBody(request, connection.model);
|
|
400
|
-
if (process.env.ARENA_EXTRA_BODY) {
|
|
401
|
-
const extra = JSON.parse(process.env.ARENA_EXTRA_BODY);
|
|
402
|
-
Object.assign(body, extra);
|
|
403
|
-
}
|
|
404
|
-
const url = apiEndpoint(connection, "/messages");
|
|
405
|
-
const bearerHeaders = {
|
|
406
|
-
"anthropic-version": "2023-06-01",
|
|
407
|
-
authorization: `Bearer ${connection.apiKey}`,
|
|
408
|
-
};
|
|
409
|
-
const send = (headers) => this.completionResponse(url, {
|
|
410
|
-
method: "POST",
|
|
411
|
-
headers: { "content-type": "application/json", ...headers },
|
|
412
|
-
body: JSON.stringify(body),
|
|
413
|
-
signal: request.signal,
|
|
414
|
-
});
|
|
415
|
-
let response = await send(this.anthropicBearerAuth ? bearerHeaders : connection.headers);
|
|
416
|
-
if (response.status === 401 && !this.anthropicBearerAuth) {
|
|
417
|
-
// Anthropic-compatible gateways that authenticate with a Bearer token
|
|
418
|
-
// reject x-api-key with a 401; switch auth styles once and remember.
|
|
419
|
-
await response.body?.cancel().catch(() => undefined);
|
|
420
|
-
this.anthropicBearerAuth = true;
|
|
421
|
-
response = await send(bearerHeaders);
|
|
422
|
-
}
|
|
423
|
-
if (!response.ok)
|
|
424
|
-
throw await responseError(response);
|
|
425
|
-
if (response.body &&
|
|
426
|
-
(response.headers.get("content-type") || "").includes("text/event-stream")) {
|
|
427
|
-
yield* anthropicChunks(withIdleTimeout(response.body, this.config.modelStreamIdleTimeoutMs));
|
|
428
|
-
return;
|
|
429
|
-
}
|
|
430
|
-
yield anthropicFallbackChunk((await response.json()));
|
|
431
|
-
}
|
|
432
274
|
}
|
|
433
275
|
export async function checkedFetch(connection, pathname, init) {
|
|
434
276
|
const response = await fetch(apiEndpoint(connection, pathname), {
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/repo.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { RepoContext } from "./types.js";
|
|
2
|
+
/** 从 origin 的 URL 还原 owner/repo,支持 SSH 与 HTTPS 两种写法。 */
|
|
3
|
+
export declare function repoSlugFromRemote(remoteUrl: string): string | undefined;
|
|
4
|
+
export declare function detectRepoContext(workspace: string): RepoContext | undefined;
|
package/dist/repo.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
/** Arena 对模型呈现的文件系统根;仅用于拼出 system message 里的检出路径。 */
|
|
5
|
+
const arenaHome = "/home/user";
|
|
6
|
+
function git(cwd, args) {
|
|
7
|
+
try {
|
|
8
|
+
const output = execFileSync("git", args, {
|
|
9
|
+
cwd,
|
|
10
|
+
encoding: "utf8",
|
|
11
|
+
timeout: 5_000,
|
|
12
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
13
|
+
});
|
|
14
|
+
const value = output.trim();
|
|
15
|
+
return value || undefined;
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function isCheckout(directory) {
|
|
22
|
+
return fs.existsSync(path.join(directory, ".git"));
|
|
23
|
+
}
|
|
24
|
+
/** 从 origin 的 URL 还原 owner/repo,支持 SSH 与 HTTPS 两种写法。 */
|
|
25
|
+
export function repoSlugFromRemote(remoteUrl) {
|
|
26
|
+
const match = remoteUrl
|
|
27
|
+
.trim()
|
|
28
|
+
.replace(/\/+$/, "")
|
|
29
|
+
.match(/[:/]([^/:]+)\/([^/]+?)(?:\.git)?$/);
|
|
30
|
+
if (!match?.[1] || !match[2])
|
|
31
|
+
return undefined;
|
|
32
|
+
return `${match[1]}/${match[2]}`;
|
|
33
|
+
}
|
|
34
|
+
function defaultBranch(cwd) {
|
|
35
|
+
const head = git(cwd, ["symbolic-ref", "--short", "refs/remotes/origin/HEAD"]);
|
|
36
|
+
if (head)
|
|
37
|
+
return head.replace(/^origin\//, "");
|
|
38
|
+
for (const candidate of ["main", "master"]) {
|
|
39
|
+
if (git(cwd, ["rev-parse", "--verify", "--quiet", candidate]))
|
|
40
|
+
return candidate;
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
// Arena checks the repo out at /home/user/<repo>, i.e. a child of the
|
|
45
|
+
// workspace — so exactly one direct child being a checkout is the signal.
|
|
46
|
+
// A checkout at the workspace root is someone's own project under
|
|
47
|
+
// `--workspace .` and must not be flipped into repo mode.
|
|
48
|
+
export function detectRepoContext(workspace) {
|
|
49
|
+
if (isCheckout(workspace))
|
|
50
|
+
return undefined;
|
|
51
|
+
let entries;
|
|
52
|
+
try {
|
|
53
|
+
entries = fs.readdirSync(workspace, { withFileTypes: true });
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
const checkouts = entries.filter((entry) => entry.isDirectory() && isCheckout(path.join(workspace, entry.name)));
|
|
59
|
+
if (checkouts.length !== 1)
|
|
60
|
+
return undefined;
|
|
61
|
+
const name = checkouts[0].name;
|
|
62
|
+
const cwd = path.join(workspace, name);
|
|
63
|
+
const branch = git(cwd, ["branch", "--show-current"]);
|
|
64
|
+
const remote = git(cwd, ["remote", "get-url", "origin"]);
|
|
65
|
+
if (!branch || !remote)
|
|
66
|
+
return undefined;
|
|
67
|
+
const slug = repoSlugFromRemote(remote);
|
|
68
|
+
if (!slug)
|
|
69
|
+
return undefined;
|
|
70
|
+
const baseBranch = defaultBranch(cwd);
|
|
71
|
+
if (!baseBranch)
|
|
72
|
+
return undefined;
|
|
73
|
+
const baseCommit = git(cwd, ["merge-base", "HEAD", baseBranch]);
|
|
74
|
+
if (!baseCommit)
|
|
75
|
+
return undefined;
|
|
76
|
+
return {
|
|
77
|
+
slug,
|
|
78
|
+
checkoutPath: `${arenaHome}/${name}`,
|
|
79
|
+
branch,
|
|
80
|
+
baseBranch,
|
|
81
|
+
baseCommit,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=repo.js.map
|
package/dist/repo.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo.js","sourceRoot":"","sources":["../src/repo.ts"],"names":[],"mappings":"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"}
|