@qwen-code/arena-agent 0.0.7-preview.0 → 0.0.7

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 (51) hide show
  1. package/.env.example +15 -5
  2. package/README.md +127 -16
  3. package/dist/agent.d.ts +9 -1
  4. package/dist/agent.js +249 -94
  5. package/dist/agent.js.map +1 -1
  6. package/dist/anthropic.d.ts +16 -0
  7. package/dist/anthropic.js +391 -0
  8. package/dist/anthropic.js.map +1 -0
  9. package/dist/attachments.d.ts +29 -0
  10. package/dist/attachments.js +222 -0
  11. package/dist/attachments.js.map +1 -0
  12. package/dist/canonical-data.d.ts +2 -0
  13. package/dist/canonical-data.js +4 -0
  14. package/dist/canonical-data.js.map +1 -0
  15. package/dist/cli.js +55 -13
  16. package/dist/cli.js.map +1 -1
  17. package/dist/compaction.d.ts +16 -0
  18. package/dist/compaction.js +183 -0
  19. package/dist/compaction.js.map +1 -0
  20. package/dist/config.d.ts +6 -1
  21. package/dist/config.js +28 -2
  22. package/dist/config.js.map +1 -1
  23. package/dist/history.d.ts +3 -3
  24. package/dist/history.js +4 -4
  25. package/dist/history.js.map +1 -1
  26. package/dist/mock.js +24 -1
  27. package/dist/mock.js.map +1 -1
  28. package/dist/protocol.d.ts +4 -2
  29. package/dist/protocol.js +17 -1
  30. package/dist/protocol.js.map +1 -1
  31. package/dist/provider.d.ts +4 -0
  32. package/dist/provider.js +163 -4
  33. package/dist/provider.js.map +1 -1
  34. package/dist/repo.js +2 -5
  35. package/dist/repo.js.map +1 -1
  36. package/dist/server.js +9 -174
  37. package/dist/server.js.map +1 -1
  38. package/dist/spec.d.ts +7 -9
  39. package/dist/spec.js +125 -27
  40. package/dist/spec.js.map +1 -1
  41. package/dist/tools.d.ts +5 -1
  42. package/dist/tools.js +45 -23
  43. package/dist/tools.js.map +1 -1
  44. package/dist/tui.js +48 -12
  45. package/dist/tui.js.map +1 -1
  46. package/dist/types.d.ts +21 -9
  47. package/dist/web/app.js +2 -3
  48. package/dist/web/app.js.map +1 -1
  49. package/package.json +4 -4
  50. package/docs/SDK.md +0 -521
  51. package/spec/tools.json +0 -418
package/dist/agent.js CHANGED
@@ -1,8 +1,10 @@
1
1
  import crypto from "node:crypto";
2
+ import { setTimeout as delay } from "node:timers/promises";
3
+ import { compactMessagesIfNeeded } from "./compaction.js";
2
4
  import { MockModelClient } from "./mock.js";
3
5
  import { HttpModelClient } from "./provider.js";
4
6
  import { detectRepoContext } from "./repo.js";
5
- import { defaultClientContext, initialMessages, interruptedUserMessage, isCanonicalSystemMessage, repoContextFromSystemMessage, repoSystemMessage, toolDefinitions, } from "./spec.js";
7
+ import { defaultClientContext, initialMessages, interruptedUserMessage, isCanonicalSystemMessage, repoContextFromSystemMessage, repoSystemMessage, } from "./spec.js";
6
8
  import { ToolExecutor } from "./tools.js";
7
9
  function parseToolResult(content) {
8
10
  try {
@@ -12,6 +14,76 @@ function parseToolResult(content) {
12
14
  return {};
13
15
  }
14
16
  }
17
+ // Network faults that abort an in-flight stream (a dropped socket, a reset, a
18
+ // DNS blip). undici surfaces these mid-stream as `TypeError: fetch failed` or
19
+ // `TypeError: terminated`; some are also reachable via an errno-style code on
20
+ // the error or its cause.
21
+ const retryableStreamCodes = new Set([
22
+ "ECONNRESET",
23
+ "ECONNREFUSED",
24
+ "ECONNABORTED",
25
+ "EPIPE",
26
+ "ETIMEDOUT",
27
+ "ENETUNREACH",
28
+ "ENETDOWN",
29
+ "EHOSTUNREACH",
30
+ "EAI_AGAIN",
31
+ "UND_ERR_SOCKET",
32
+ "UND_ERR_CONNECT_TIMEOUT",
33
+ "UND_ERR_HEADERS_TIMEOUT",
34
+ "UND_ERR_BODY_TIMEOUT",
35
+ "ARENA_STREAM_IDLE_TIMEOUT",
36
+ ]);
37
+ function describeError(error) {
38
+ return error instanceof Error ? error.message : String(error);
39
+ }
40
+ function errorCode(error) {
41
+ const direct = error?.code;
42
+ if (typeof direct === "string")
43
+ return direct;
44
+ const cause = error?.cause?.code;
45
+ return typeof cause === "string" ? cause : undefined;
46
+ }
47
+ function isRetryableStreamError(error) {
48
+ if (error instanceof TypeError)
49
+ return true;
50
+ const code = errorCode(error);
51
+ return code !== undefined && retryableStreamCodes.has(code);
52
+ }
53
+ function completeInterruptedToolCalls(messages) {
54
+ const completed = [];
55
+ let pending = [];
56
+ const flushPending = () => {
57
+ for (const call of pending) {
58
+ completed.push({
59
+ role: "tool",
60
+ tool_call_id: call.id,
61
+ content: JSON.stringify({
62
+ status: "error",
63
+ tool: call.function.name,
64
+ error: "tool result was not recorded because the previous process stopped",
65
+ interrupted: true,
66
+ }),
67
+ });
68
+ }
69
+ pending = [];
70
+ };
71
+ for (const message of messages) {
72
+ if (pending.length && message.role !== "tool")
73
+ flushPending();
74
+ completed.push(message);
75
+ if (message.role === "assistant") {
76
+ pending = [...(message.tool_calls || [])];
77
+ }
78
+ else if (message.role === "tool") {
79
+ const index = pending.findIndex((call) => call.id === message.tool_call_id);
80
+ if (index !== -1)
81
+ pending.splice(index, 1);
82
+ }
83
+ }
84
+ flushPending();
85
+ return completed;
86
+ }
15
87
  class PartialAssistantTurnError extends Error {
16
88
  cause;
17
89
  assistant;
@@ -35,6 +107,7 @@ export class Agent {
35
107
  sink;
36
108
  options;
37
109
  client;
110
+ tools;
38
111
  sessionId;
39
112
  constructor(config, sink, options = {}) {
40
113
  this.config = config;
@@ -45,6 +118,13 @@ export class Agent {
45
118
  (config.model.startsWith("mock/")
46
119
  ? new MockModelClient()
47
120
  : new HttpModelClient(config));
121
+ this.tools =
122
+ options.tools ||
123
+ new ToolExecutor(config, {
124
+ signal: options.signal,
125
+ askUserHandler: options.askUserHandler,
126
+ workspaceContext: options.workspaceContext,
127
+ });
48
128
  this.sessionId =
49
129
  options.sessionId || crypto.randomUUID().replaceAll("-", "");
50
130
  }
@@ -56,33 +136,39 @@ export class Agent {
56
136
  : structuredClone(baseUserMessage);
57
137
  const clientContext = this.options.clientContext || defaultClientContext();
58
138
  const repoContext = resolveRepoContext(this.config.workspace, history);
59
- const tools = new ToolExecutor(this.config, {
60
- signal: this.options.signal,
61
- askUserHandler: this.options.askUserHandler,
62
- });
63
139
  const messages = history?.length
64
- ? structuredClone(history)
65
- : initialMessages(prompt, clientContext, repoContext);
140
+ ? completeInterruptedToolCalls(structuredClone(history))
141
+ : initialMessages(prompt, clientContext, this.options.workspaceContext, repoContext);
66
142
  if (history?.length) {
67
- // repo 模式下 canonical 的判据是用 history 里的仓库变量重新生成的
68
- // 那条 system message,通用模式落回 fixture。
69
143
  const expected = repoContext
70
144
  ? repoSystemMessage(clientContext, repoContext)
71
145
  : undefined;
72
- if (!isCanonicalSystemMessage(messages[0], expected)) {
73
- throw new Error("history does not start with the canonical system message");
146
+ if (!isCanonicalSystemMessage(messages[0], expected || this.options.workspaceContext)) {
147
+ if (!repoContext &&
148
+ this.options.workspaceContext &&
149
+ isCanonicalSystemMessage(messages[0])) {
150
+ messages[0] = initialMessages("", this.options.clientContext, this.options.workspaceContext)[0];
151
+ }
152
+ else {
153
+ throw new Error("history does not match the current workspace runtime context");
154
+ }
74
155
  }
75
156
  messages.push(userMessage);
76
157
  }
77
158
  else {
78
159
  messages[1] = userMessage;
79
160
  }
161
+ await this.maybeCompact(messages);
80
162
  this.sink.start(this.sessionId, messages);
81
163
  try {
82
- for (let step = 1; step <= this.config.maxSteps; step += 1) {
164
+ await this.checkpoint(messages);
165
+ for (let step = 1;; step += 1) {
83
166
  if (this.options.signal?.aborted) {
84
167
  throw this.options.signal.reason || new Error("operation cancelled");
85
168
  }
169
+ if (step > 1 && (await this.maybeCompact(messages))) {
170
+ await this.checkpoint(messages);
171
+ }
86
172
  this.sink.modelStart(this.sessionId, step);
87
173
  let assistant;
88
174
  try {
@@ -93,15 +179,17 @@ export class Agent {
93
179
  if (error.assistant) {
94
180
  messages.push(error.assistant);
95
181
  this.sink.message(this.sessionId, error.assistant, messages);
182
+ await this.checkpoint(messages);
96
183
  }
97
184
  throw error.cause;
98
185
  }
99
186
  throw error;
100
187
  }
101
188
  const finishReason = assistant.tool_calls?.length ? "tool_calls" : "stop";
102
- this.sink.modelComplete(this.sessionId, step, finishReason);
189
+ this.sink.modelComplete(this.sessionId, step, finishReason, assistant.usage);
103
190
  messages.push(assistant);
104
191
  this.sink.message(this.sessionId, assistant, messages);
192
+ await this.checkpoint(messages);
105
193
  if (!assistant.tool_calls?.length) {
106
194
  return this.sink.result(this.sessionId, "success", messages);
107
195
  }
@@ -110,7 +198,7 @@ export class Agent {
110
198
  const toolCallId = String(call.id || "");
111
199
  const toolName = String(call.function?.name || "tool");
112
200
  this.sink.toolStart(this.sessionId, toolCallId, toolName);
113
- const toolMessage = await tools.execute(call);
201
+ const toolMessage = await this.tools.execute(call);
114
202
  const toolResult = parseToolResult(toolMessage.content);
115
203
  const skippedAskUser = toolName === "ask_user" && toolResult.skipped === true;
116
204
  if (this.options.signal?.aborted && !skippedAskUser) {
@@ -119,13 +207,15 @@ export class Agent {
119
207
  messages.push(toolMessage);
120
208
  completedToolCallIds.push(toolCallId);
121
209
  this.sink.message(this.sessionId, toolMessage, messages);
210
+ await this.checkpoint(messages);
122
211
  this.sink.toolComplete(this.sessionId, toolCallId, toolName);
123
212
  if (toolName === "ask_user") {
124
213
  if (toolResult.status === "needs_input") {
125
- const visualMessage = tools.takeVisualMessage(completedToolCallIds);
214
+ const visualMessage = this.tools.takeVisualMessage(completedToolCallIds);
126
215
  if (visualMessage) {
127
216
  messages.push(visualMessage);
128
217
  this.sink.message(this.sessionId, visualMessage, messages);
218
+ await this.checkpoint(messages);
129
219
  }
130
220
  const questions = Array.isArray(toolResult.questions)
131
221
  ? toolResult.questions
@@ -138,105 +228,170 @@ export class Agent {
138
228
  throw this.options.signal.reason || new Error("operation cancelled");
139
229
  }
140
230
  }
141
- const visualMessage = tools.takeVisualMessage(completedToolCallIds);
231
+ const visualMessage = this.tools.takeVisualMessage(completedToolCallIds);
142
232
  if (visualMessage) {
143
233
  messages.push(visualMessage);
144
234
  this.sink.message(this.sessionId, visualMessage, messages);
235
+ await this.checkpoint(messages);
145
236
  }
146
237
  }
147
- return this.sink.result(this.sessionId, "error", messages, "agent exceeded ARENA_MAX_STEPS");
148
238
  }
149
239
  catch (error) {
150
240
  const message = error instanceof Error ? error.message : String(error);
151
241
  return this.sink.result(this.sessionId, "error", messages, message);
152
242
  }
153
243
  }
154
- async assistantTurn(messages) {
155
- const contentParts = [];
156
- const reasoningParts = [];
157
- const calls = new Map();
158
- const stream = this.client.stream({
159
- model: this.config.model,
160
- messages: structuredClone(messages),
161
- tools: toolDefinitions(),
162
- toolChoice: this.config.toolChoice,
163
- temperature: this.config.temperature,
164
- maxTokens: this.config.maxTokens,
165
- enableThinking: this.config.enableThinking,
166
- thinkingBudget: this.config.thinkingBudget,
167
- preserveThinking: this.config.preserveThinking,
168
- signal: this.options.signal,
169
- });
244
+ async checkpoint(messages) {
245
+ await this.options.onCheckpoint?.(messages);
246
+ }
247
+ async maybeCompact(messages) {
170
248
  try {
171
- for await (const chunk of stream) {
172
- const delta = chunk.choices?.[0]?.delta || {};
173
- if (delta.content) {
174
- const content = String(delta.content);
175
- contentParts.push(content);
176
- this.sink.delta(this.sessionId, { content });
177
- }
178
- const reasoning = delta.reasoning_content || delta.reasoning;
179
- if (reasoning) {
180
- const value = String(reasoning);
181
- reasoningParts.push(value);
182
- this.sink.delta(this.sessionId, { reasoning_content: value });
183
- }
184
- for (const [position, fragment] of (delta.tool_calls || []).entries()) {
185
- const index = Number(fragment.index ?? position);
186
- const call = calls.get(index) ||
187
- {
188
- id: "",
189
- type: "function",
190
- function: { name: "", arguments: "" },
191
- };
192
- if (fragment.id)
193
- call.id += String(fragment.id);
194
- if (fragment.function?.name) {
195
- call.function.name += String(fragment.function.name);
249
+ const result = await compactMessagesIfNeeded(messages, this.tools.availableTools(), this.client, this.config.model, {
250
+ contextWindow: this.config.contextWindow,
251
+ triggerRatio: this.config.contextCompactionRatio,
252
+ summaryMaxTokens: this.config.compactionSummaryMaxTokens,
253
+ }, this.options.signal);
254
+ if (result.compacted) {
255
+ // The summary request's tokens belong to no history message (the
256
+ // summarized prefix is replaced), so the event stream is the only
257
+ // place its usage can be accounted for.
258
+ this.sink.compaction(this.sessionId, result.usage);
259
+ }
260
+ return result.compacted;
261
+ }
262
+ catch {
263
+ // Compaction is protective rather than task-critical. If its dedicated
264
+ // summary request fails, keep the original history and let the normal
265
+ // model request (and its retry policy) decide whether it still fits.
266
+ return false;
267
+ }
268
+ }
269
+ async assistantTurn(messages) {
270
+ // A mid-stream network fault loses only the tokens produced so far, not the
271
+ // conversation: the request is idempotent, so the whole turn is re-issued
272
+ // from scratch. Accumulators live inside the loop and reset each attempt, so
273
+ // the assistant message written to history reflects one clean completion.
274
+ const maxRetries = Math.max(0, Math.floor(this.config.modelMaxRetries ?? 5));
275
+ for (let attempt = 0;; attempt += 1) {
276
+ const contentParts = [];
277
+ const reasoningParts = [];
278
+ const calls = new Map();
279
+ let usage;
280
+ let reasoningDetails;
281
+ try {
282
+ const stream = this.client.stream({
283
+ model: this.config.model,
284
+ messages: structuredClone(messages),
285
+ tools: this.tools.availableTools(),
286
+ toolChoice: this.config.toolChoice,
287
+ temperature: this.config.temperature,
288
+ maxTokens: this.config.maxTokens,
289
+ enableThinking: this.config.enableThinking,
290
+ thinkingBudget: this.config.thinkingBudget,
291
+ preserveThinking: this.config.preserveThinking,
292
+ signal: this.options.signal,
293
+ });
294
+ for await (const chunk of stream) {
295
+ // With stream_options.include_usage the usage arrives on the final
296
+ // chunk; providers that report it cumulatively are covered by
297
+ // letting the last non-empty value win.
298
+ if (chunk.usage)
299
+ usage = chunk.usage;
300
+ if (chunk.reasoning_details?.length) {
301
+ reasoningDetails = chunk.reasoning_details;
196
302
  }
197
- if (fragment.function?.arguments) {
198
- call.function.arguments += String(fragment.function.arguments);
303
+ const delta = chunk.choices?.[0]?.delta || {};
304
+ if (delta.content) {
305
+ const content = String(delta.content);
306
+ contentParts.push(content);
307
+ this.sink.delta(this.sessionId, { content });
199
308
  }
200
- calls.set(index, call);
201
- this.sink.delta(this.sessionId, {
202
- tool_calls: [
309
+ const reasoning = delta.reasoning_content || delta.reasoning;
310
+ if (reasoning) {
311
+ const value = String(reasoning);
312
+ reasoningParts.push(value);
313
+ this.sink.delta(this.sessionId, { reasoning_content: value });
314
+ }
315
+ for (const [position, fragment] of (delta.tool_calls || []).entries()) {
316
+ const index = Number(fragment.index ?? position);
317
+ const call = calls.get(index) ||
203
318
  {
204
- index,
205
- id: String(fragment.id || ""),
206
- type: String(fragment.type || ""),
207
- function: {
208
- name: String(fragment.function?.name || ""),
209
- arguments: String(fragment.function?.arguments || ""),
319
+ id: "",
320
+ type: "function",
321
+ function: { name: "", arguments: "" },
322
+ };
323
+ if (fragment.id)
324
+ call.id += String(fragment.id);
325
+ if (fragment.function?.name) {
326
+ call.function.name += String(fragment.function.name);
327
+ }
328
+ if (fragment.function?.arguments) {
329
+ call.function.arguments += String(fragment.function.arguments);
330
+ }
331
+ calls.set(index, call);
332
+ this.sink.delta(this.sessionId, {
333
+ tool_calls: [
334
+ {
335
+ index,
336
+ id: String(fragment.id || ""),
337
+ type: String(fragment.type || ""),
338
+ function: {
339
+ name: String(fragment.function?.name || ""),
340
+ arguments: String(fragment.function?.arguments || ""),
341
+ },
210
342
  },
211
- },
212
- ],
213
- });
343
+ ],
344
+ });
345
+ }
214
346
  }
215
347
  }
216
- }
217
- catch (error) {
218
- const content = contentParts.join("");
219
- const reasoningContent = reasoningParts.join("");
220
- const partial = content || reasoningContent
221
- ? {
222
- role: "assistant",
223
- content,
224
- reasoning_content: reasoningContent,
348
+ catch (error) {
349
+ // A user cancellation is not a transient fault: skip the retry, but
350
+ // still fall through so any partial output is preserved in history.
351
+ const aborted = Boolean(this.options.signal?.aborted);
352
+ if (!aborted && isRetryableStreamError(error) && attempt < maxRetries) {
353
+ this.sink.modelRetry(this.sessionId, attempt + 1, describeError(error));
354
+ await this.retryBackoff(attempt);
355
+ continue;
225
356
  }
226
- : undefined;
227
- throw new PartialAssistantTurnError(error, partial);
228
- }
229
- const assistant = {
230
- role: "assistant",
231
- content: contentParts.join(""),
232
- reasoning_content: reasoningParts.join(""),
233
- };
234
- if (calls.size) {
235
- assistant.tool_calls = [...calls.entries()]
236
- .sort(([left], [right]) => left - right)
237
- .map(([, call]) => call);
357
+ const content = contentParts.join("");
358
+ const reasoningContent = reasoningParts.join("");
359
+ const partial = content || reasoningContent
360
+ ? {
361
+ role: "assistant",
362
+ content,
363
+ reasoning_content: reasoningContent,
364
+ ...(usage ? { usage } : {}),
365
+ ...(reasoningDetails ? { reasoning_details: reasoningDetails } : {}),
366
+ }
367
+ : undefined;
368
+ throw new PartialAssistantTurnError(error, partial);
369
+ }
370
+ const assistant = {
371
+ role: "assistant",
372
+ content: contentParts.join(""),
373
+ reasoning_content: reasoningParts.join(""),
374
+ };
375
+ if (usage)
376
+ assistant.usage = usage;
377
+ if (reasoningDetails)
378
+ assistant.reasoning_details = reasoningDetails;
379
+ if (calls.size) {
380
+ assistant.tool_calls = [...calls.entries()]
381
+ .sort(([left], [right]) => left - right)
382
+ .map(([, call]) => call);
383
+ }
384
+ return assistant;
238
385
  }
239
- return assistant;
386
+ }
387
+ async retryBackoff(attempt) {
388
+ const base = Math.max(0, this.config.modelRetryBaseMs ?? 1000);
389
+ const maximum = Math.max(0, this.config.modelRetryMaxMs ?? 30000);
390
+ const exponential = Math.min(maximum, base * 2 ** Math.min(attempt, 30));
391
+ const wait = Math.floor(exponential * Math.random());
392
+ if (wait <= 0)
393
+ return;
394
+ await delay(wait, undefined, { signal: this.options.signal });
240
395
  }
241
396
  }
242
397
  export function finalText(result) {
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { Message, ModelChunk, ModelRequest } from "./types.js";
2
+ type Block = Record<string, unknown> & {
3
+ type: string;
4
+ };
5
+ interface ConvertedMessages {
6
+ system?: string;
7
+ messages: Array<{
8
+ role: "user" | "assistant";
9
+ content: Block[];
10
+ }>;
11
+ }
12
+ export declare function anthropicMessages(messages: Message[], includeThinking: boolean): ConvertedMessages;
13
+ export declare function anthropicRequestBody(request: ModelRequest, model: string): Record<string, unknown>;
14
+ export declare function anthropicChunks(stream: ReadableStream<Uint8Array>): AsyncGenerator<ModelChunk>;
15
+ export declare function anthropicFallbackChunk(value: Record<string, unknown>): ModelChunk;
16
+ export {};