@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/agent.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import crypto from "node:crypto";
|
|
2
|
-
import { setTimeout as delay } from "node:timers/promises";
|
|
3
|
-
import { compactMessagesIfNeeded } from "./compaction.js";
|
|
4
2
|
import { MockModelClient } from "./mock.js";
|
|
5
3
|
import { HttpModelClient } from "./provider.js";
|
|
6
|
-
import {
|
|
4
|
+
import { detectRepoContext } from "./repo.js";
|
|
5
|
+
import { defaultClientContext, initialMessages, interruptedUserMessage, isCanonicalSystemMessage, repoContextFromSystemMessage, repoSystemMessage, toolDefinitions, } from "./spec.js";
|
|
7
6
|
import { ToolExecutor } from "./tools.js";
|
|
8
7
|
function parseToolResult(content) {
|
|
9
8
|
try {
|
|
@@ -13,76 +12,6 @@ function parseToolResult(content) {
|
|
|
13
12
|
return {};
|
|
14
13
|
}
|
|
15
14
|
}
|
|
16
|
-
// Network faults that abort an in-flight stream (a dropped socket, a reset, a
|
|
17
|
-
// DNS blip). undici surfaces these mid-stream as `TypeError: fetch failed` or
|
|
18
|
-
// `TypeError: terminated`; some are also reachable via an errno-style code on
|
|
19
|
-
// the error or its cause.
|
|
20
|
-
const retryableStreamCodes = new Set([
|
|
21
|
-
"ECONNRESET",
|
|
22
|
-
"ECONNREFUSED",
|
|
23
|
-
"ECONNABORTED",
|
|
24
|
-
"EPIPE",
|
|
25
|
-
"ETIMEDOUT",
|
|
26
|
-
"ENETUNREACH",
|
|
27
|
-
"ENETDOWN",
|
|
28
|
-
"EHOSTUNREACH",
|
|
29
|
-
"EAI_AGAIN",
|
|
30
|
-
"UND_ERR_SOCKET",
|
|
31
|
-
"UND_ERR_CONNECT_TIMEOUT",
|
|
32
|
-
"UND_ERR_HEADERS_TIMEOUT",
|
|
33
|
-
"UND_ERR_BODY_TIMEOUT",
|
|
34
|
-
"ARENA_STREAM_IDLE_TIMEOUT",
|
|
35
|
-
]);
|
|
36
|
-
function describeError(error) {
|
|
37
|
-
return error instanceof Error ? error.message : String(error);
|
|
38
|
-
}
|
|
39
|
-
function errorCode(error) {
|
|
40
|
-
const direct = error?.code;
|
|
41
|
-
if (typeof direct === "string")
|
|
42
|
-
return direct;
|
|
43
|
-
const cause = error?.cause?.code;
|
|
44
|
-
return typeof cause === "string" ? cause : undefined;
|
|
45
|
-
}
|
|
46
|
-
function isRetryableStreamError(error) {
|
|
47
|
-
if (error instanceof TypeError)
|
|
48
|
-
return true;
|
|
49
|
-
const code = errorCode(error);
|
|
50
|
-
return code !== undefined && retryableStreamCodes.has(code);
|
|
51
|
-
}
|
|
52
|
-
function completeInterruptedToolCalls(messages) {
|
|
53
|
-
const completed = [];
|
|
54
|
-
let pending = [];
|
|
55
|
-
const flushPending = () => {
|
|
56
|
-
for (const call of pending) {
|
|
57
|
-
completed.push({
|
|
58
|
-
role: "tool",
|
|
59
|
-
tool_call_id: call.id,
|
|
60
|
-
content: JSON.stringify({
|
|
61
|
-
status: "error",
|
|
62
|
-
tool: call.function.name,
|
|
63
|
-
error: "tool result was not recorded because the previous process stopped",
|
|
64
|
-
interrupted: true,
|
|
65
|
-
}),
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
pending = [];
|
|
69
|
-
};
|
|
70
|
-
for (const message of messages) {
|
|
71
|
-
if (pending.length && message.role !== "tool")
|
|
72
|
-
flushPending();
|
|
73
|
-
completed.push(message);
|
|
74
|
-
if (message.role === "assistant") {
|
|
75
|
-
pending = [...(message.tool_calls || [])];
|
|
76
|
-
}
|
|
77
|
-
else if (message.role === "tool") {
|
|
78
|
-
const index = pending.findIndex((call) => call.id === message.tool_call_id);
|
|
79
|
-
if (index !== -1)
|
|
80
|
-
pending.splice(index, 1);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
flushPending();
|
|
84
|
-
return completed;
|
|
85
|
-
}
|
|
86
15
|
class PartialAssistantTurnError extends Error {
|
|
87
16
|
cause;
|
|
88
17
|
assistant;
|
|
@@ -93,12 +22,19 @@ class PartialAssistantTurnError extends Error {
|
|
|
93
22
|
this.name = "PartialAssistantTurnError";
|
|
94
23
|
}
|
|
95
24
|
}
|
|
25
|
+
// Mode is fixed at the first turn: resume reads it back from the history's
|
|
26
|
+
// system message, so a mid-session clone or detached HEAD cannot flip it.
|
|
27
|
+
// Exported so the replay script checks the same decision instead of redoing it.
|
|
28
|
+
export function resolveRepoContext(workspace, history) {
|
|
29
|
+
return history?.length
|
|
30
|
+
? repoContextFromSystemMessage(history[0])
|
|
31
|
+
: detectRepoContext(workspace);
|
|
32
|
+
}
|
|
96
33
|
export class Agent {
|
|
97
34
|
config;
|
|
98
35
|
sink;
|
|
99
36
|
options;
|
|
100
37
|
client;
|
|
101
|
-
tools;
|
|
102
38
|
sessionId;
|
|
103
39
|
constructor(config, sink, options = {}) {
|
|
104
40
|
this.config = config;
|
|
@@ -109,12 +45,6 @@ export class Agent {
|
|
|
109
45
|
(config.model.startsWith("mock/")
|
|
110
46
|
? new MockModelClient()
|
|
111
47
|
: new HttpModelClient(config));
|
|
112
|
-
this.tools =
|
|
113
|
-
options.tools ||
|
|
114
|
-
new ToolExecutor(config, {
|
|
115
|
-
signal: options.signal,
|
|
116
|
-
workspaceContext: options.workspaceContext,
|
|
117
|
-
});
|
|
118
48
|
this.sessionId =
|
|
119
49
|
options.sessionId || crypto.randomUUID().replaceAll("-", "");
|
|
120
50
|
}
|
|
@@ -124,35 +54,35 @@ export class Agent {
|
|
|
124
54
|
const userMessage = runOptions.interrupted
|
|
125
55
|
? interruptedUserMessage(baseUserMessage)
|
|
126
56
|
: structuredClone(baseUserMessage);
|
|
57
|
+
const clientContext = this.options.clientContext || defaultClientContext();
|
|
58
|
+
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
|
+
});
|
|
127
63
|
const messages = history?.length
|
|
128
|
-
?
|
|
129
|
-
: initialMessages(prompt,
|
|
64
|
+
? structuredClone(history)
|
|
65
|
+
: initialMessages(prompt, clientContext, repoContext);
|
|
130
66
|
if (history?.length) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
67
|
+
// repo 模式下 canonical 的判据是用 history 里的仓库变量重新生成的
|
|
68
|
+
// 那条 system message,通用模式落回 fixture。
|
|
69
|
+
const expected = repoContext
|
|
70
|
+
? repoSystemMessage(clientContext, repoContext)
|
|
71
|
+
: undefined;
|
|
72
|
+
if (!isCanonicalSystemMessage(messages[0], expected)) {
|
|
73
|
+
throw new Error("history does not start with the canonical system message");
|
|
139
74
|
}
|
|
140
75
|
messages.push(userMessage);
|
|
141
76
|
}
|
|
142
77
|
else {
|
|
143
78
|
messages[1] = userMessage;
|
|
144
79
|
}
|
|
145
|
-
await this.maybeCompact(messages);
|
|
146
80
|
this.sink.start(this.sessionId, messages);
|
|
147
81
|
try {
|
|
148
|
-
|
|
149
|
-
for (let step = 1;; step += 1) {
|
|
82
|
+
for (let step = 1; step <= this.config.maxSteps; step += 1) {
|
|
150
83
|
if (this.options.signal?.aborted) {
|
|
151
84
|
throw this.options.signal.reason || new Error("operation cancelled");
|
|
152
85
|
}
|
|
153
|
-
if (step > 1 && (await this.maybeCompact(messages))) {
|
|
154
|
-
await this.checkpoint(messages);
|
|
155
|
-
}
|
|
156
86
|
this.sink.modelStart(this.sessionId, step);
|
|
157
87
|
let assistant;
|
|
158
88
|
try {
|
|
@@ -163,17 +93,15 @@ export class Agent {
|
|
|
163
93
|
if (error.assistant) {
|
|
164
94
|
messages.push(error.assistant);
|
|
165
95
|
this.sink.message(this.sessionId, error.assistant, messages);
|
|
166
|
-
await this.checkpoint(messages);
|
|
167
96
|
}
|
|
168
97
|
throw error.cause;
|
|
169
98
|
}
|
|
170
99
|
throw error;
|
|
171
100
|
}
|
|
172
101
|
const finishReason = assistant.tool_calls?.length ? "tool_calls" : "stop";
|
|
173
|
-
this.sink.modelComplete(this.sessionId, step, finishReason
|
|
102
|
+
this.sink.modelComplete(this.sessionId, step, finishReason);
|
|
174
103
|
messages.push(assistant);
|
|
175
104
|
this.sink.message(this.sessionId, assistant, messages);
|
|
176
|
-
await this.checkpoint(messages);
|
|
177
105
|
if (!assistant.tool_calls?.length) {
|
|
178
106
|
return this.sink.result(this.sessionId, "success", messages);
|
|
179
107
|
}
|
|
@@ -182,7 +110,7 @@ export class Agent {
|
|
|
182
110
|
const toolCallId = String(call.id || "");
|
|
183
111
|
const toolName = String(call.function?.name || "tool");
|
|
184
112
|
this.sink.toolStart(this.sessionId, toolCallId, toolName);
|
|
185
|
-
const toolMessage = await
|
|
113
|
+
const toolMessage = await tools.execute(call);
|
|
186
114
|
const toolResult = parseToolResult(toolMessage.content);
|
|
187
115
|
const skippedAskUser = toolName === "ask_user" && toolResult.skipped === true;
|
|
188
116
|
if (this.options.signal?.aborted && !skippedAskUser) {
|
|
@@ -191,15 +119,13 @@ export class Agent {
|
|
|
191
119
|
messages.push(toolMessage);
|
|
192
120
|
completedToolCallIds.push(toolCallId);
|
|
193
121
|
this.sink.message(this.sessionId, toolMessage, messages);
|
|
194
|
-
await this.checkpoint(messages);
|
|
195
122
|
this.sink.toolComplete(this.sessionId, toolCallId, toolName);
|
|
196
123
|
if (toolName === "ask_user") {
|
|
197
124
|
if (toolResult.status === "needs_input") {
|
|
198
|
-
const visualMessage =
|
|
125
|
+
const visualMessage = tools.takeVisualMessage(completedToolCallIds);
|
|
199
126
|
if (visualMessage) {
|
|
200
127
|
messages.push(visualMessage);
|
|
201
128
|
this.sink.message(this.sessionId, visualMessage, messages);
|
|
202
|
-
await this.checkpoint(messages);
|
|
203
129
|
}
|
|
204
130
|
const questions = Array.isArray(toolResult.questions)
|
|
205
131
|
? toolResult.questions
|
|
@@ -212,169 +138,105 @@ export class Agent {
|
|
|
212
138
|
throw this.options.signal.reason || new Error("operation cancelled");
|
|
213
139
|
}
|
|
214
140
|
}
|
|
215
|
-
const visualMessage =
|
|
141
|
+
const visualMessage = tools.takeVisualMessage(completedToolCallIds);
|
|
216
142
|
if (visualMessage) {
|
|
217
143
|
messages.push(visualMessage);
|
|
218
144
|
this.sink.message(this.sessionId, visualMessage, messages);
|
|
219
|
-
await this.checkpoint(messages);
|
|
220
145
|
}
|
|
221
146
|
}
|
|
147
|
+
return this.sink.result(this.sessionId, "error", messages, "agent exceeded ARENA_MAX_STEPS");
|
|
222
148
|
}
|
|
223
149
|
catch (error) {
|
|
224
150
|
const message = error instanceof Error ? error.message : String(error);
|
|
225
151
|
return this.sink.result(this.sessionId, "error", messages, message);
|
|
226
152
|
}
|
|
227
153
|
}
|
|
228
|
-
async checkpoint(messages) {
|
|
229
|
-
await this.options.onCheckpoint?.(messages);
|
|
230
|
-
}
|
|
231
|
-
async maybeCompact(messages) {
|
|
232
|
-
try {
|
|
233
|
-
const result = await compactMessagesIfNeeded(messages, this.tools.availableTools(), this.client, this.config.model, {
|
|
234
|
-
contextWindow: this.config.contextWindow,
|
|
235
|
-
triggerRatio: this.config.contextCompactionRatio,
|
|
236
|
-
summaryMaxTokens: this.config.compactionSummaryMaxTokens,
|
|
237
|
-
}, this.options.signal);
|
|
238
|
-
if (result.compacted) {
|
|
239
|
-
// The summary request's tokens belong to no history message (the
|
|
240
|
-
// summarized prefix is replaced), so the event stream is the only
|
|
241
|
-
// place its usage can be accounted for.
|
|
242
|
-
this.sink.compaction(this.sessionId, result.usage);
|
|
243
|
-
}
|
|
244
|
-
return result.compacted;
|
|
245
|
-
}
|
|
246
|
-
catch {
|
|
247
|
-
// Compaction is protective rather than task-critical. If its dedicated
|
|
248
|
-
// summary request fails, keep the original history and let the normal
|
|
249
|
-
// model request (and its retry policy) decide whether it still fits.
|
|
250
|
-
return false;
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
154
|
async assistantTurn(messages) {
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
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
|
+
});
|
|
170
|
+
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);
|
|
291
196
|
}
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
const value = String(reasoning);
|
|
295
|
-
reasoningParts.push(value);
|
|
296
|
-
this.sink.delta(this.sessionId, { reasoning_content: value });
|
|
197
|
+
if (fragment.function?.arguments) {
|
|
198
|
+
call.function.arguments += String(fragment.function.arguments);
|
|
297
199
|
}
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
200
|
+
calls.set(index, call);
|
|
201
|
+
this.sink.delta(this.sessionId, {
|
|
202
|
+
tool_calls: [
|
|
301
203
|
{
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
if (fragment.function?.name) {
|
|
309
|
-
call.function.name += String(fragment.function.name);
|
|
310
|
-
}
|
|
311
|
-
if (fragment.function?.arguments) {
|
|
312
|
-
call.function.arguments += String(fragment.function.arguments);
|
|
313
|
-
}
|
|
314
|
-
calls.set(index, call);
|
|
315
|
-
this.sink.delta(this.sessionId, {
|
|
316
|
-
tool_calls: [
|
|
317
|
-
{
|
|
318
|
-
index,
|
|
319
|
-
id: String(fragment.id || ""),
|
|
320
|
-
type: String(fragment.type || ""),
|
|
321
|
-
function: {
|
|
322
|
-
name: String(fragment.function?.name || ""),
|
|
323
|
-
arguments: String(fragment.function?.arguments || ""),
|
|
324
|
-
},
|
|
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 || ""),
|
|
325
210
|
},
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
}
|
|
211
|
+
},
|
|
212
|
+
],
|
|
213
|
+
});
|
|
329
214
|
}
|
|
330
215
|
}
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
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,
|
|
339
225
|
}
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
const partial = content || reasoningContent
|
|
343
|
-
? {
|
|
344
|
-
role: "assistant",
|
|
345
|
-
content,
|
|
346
|
-
reasoning_content: reasoningContent,
|
|
347
|
-
...(usage ? { usage } : {}),
|
|
348
|
-
...(reasoningDetails ? { reasoning_details: reasoningDetails } : {}),
|
|
349
|
-
}
|
|
350
|
-
: undefined;
|
|
351
|
-
throw new PartialAssistantTurnError(error, partial);
|
|
352
|
-
}
|
|
353
|
-
const assistant = {
|
|
354
|
-
role: "assistant",
|
|
355
|
-
content: contentParts.join(""),
|
|
356
|
-
reasoning_content: reasoningParts.join(""),
|
|
357
|
-
};
|
|
358
|
-
if (usage)
|
|
359
|
-
assistant.usage = usage;
|
|
360
|
-
if (reasoningDetails)
|
|
361
|
-
assistant.reasoning_details = reasoningDetails;
|
|
362
|
-
if (calls.size) {
|
|
363
|
-
assistant.tool_calls = [...calls.entries()]
|
|
364
|
-
.sort(([left], [right]) => left - right)
|
|
365
|
-
.map(([, call]) => call);
|
|
366
|
-
}
|
|
367
|
-
return assistant;
|
|
226
|
+
: undefined;
|
|
227
|
+
throw new PartialAssistantTurnError(error, partial);
|
|
368
228
|
}
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
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);
|
|
238
|
+
}
|
|
239
|
+
return assistant;
|
|
378
240
|
}
|
|
379
241
|
}
|
|
380
242
|
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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"}
|
package/dist/cli.js
CHANGED
|
@@ -3,7 +3,6 @@ import crypto from "node:crypto";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import dotenv from "dotenv";
|
|
5
5
|
import { Agent, finalText } from "./agent.js";
|
|
6
|
-
import { attachmentUserMessage, maxAttachmentBytesPerMessage, maxAttachmentsPerMessage, stageAttachment, } from "./attachments.js";
|
|
7
6
|
import { configFromEnv } from "./config.js";
|
|
8
7
|
import { loadStoredHistory, saveStoredHistory, storedHistoryPath, } from "./history.js";
|
|
9
8
|
import { EventSink } from "./protocol.js";
|
|
@@ -11,9 +10,9 @@ import { startServer } from "./server.js";
|
|
|
11
10
|
import { defaultClientContext } from "./spec.js";
|
|
12
11
|
import { runTui } from "./tui.js";
|
|
13
12
|
const version = "0.2.0";
|
|
14
|
-
function nextValue(argumentsList, index, name
|
|
13
|
+
function nextValue(argumentsList, index, name) {
|
|
15
14
|
const value = argumentsList[index + 1];
|
|
16
|
-
if (!value ||
|
|
15
|
+
if (!value || value.startsWith("-")) {
|
|
17
16
|
throw new Error(`${name} requires a value`);
|
|
18
17
|
}
|
|
19
18
|
return value;
|
|
@@ -23,16 +22,11 @@ function parsePromptOptions(argumentsList) {
|
|
|
23
22
|
prompt: "",
|
|
24
23
|
output: "text",
|
|
25
24
|
workspace: process.cwd(),
|
|
26
|
-
attachments: [],
|
|
27
25
|
};
|
|
28
26
|
for (let index = 0; index < argumentsList.length; index += 1) {
|
|
29
27
|
const argument = argumentsList[index];
|
|
30
28
|
if (argument === "-p" || argument === "--prompt") {
|
|
31
|
-
options.prompt = nextValue(argumentsList, index, argument
|
|
32
|
-
index += 1;
|
|
33
|
-
}
|
|
34
|
-
else if (argument === "--attach" || argument === "--image") {
|
|
35
|
-
options.attachments.push(nextValue(argumentsList, index, argument));
|
|
29
|
+
options.prompt = nextValue(argumentsList, index, argument);
|
|
36
30
|
index += 1;
|
|
37
31
|
}
|
|
38
32
|
else if (argument === "--output") {
|
|
@@ -64,13 +58,9 @@ function parsePromptOptions(argumentsList) {
|
|
|
64
58
|
process.exit(0);
|
|
65
59
|
}
|
|
66
60
|
else if (argument === "-h" || argument === "--help") {
|
|
67
|
-
console.log("Usage: arena -p <prompt> [--
|
|
61
|
+
console.log("Usage: arena -p <prompt> [--output text|json|stream-json] [--workspace path] [--session-id id|--history-file path]\n" +
|
|
68
62
|
" arena tui [--workspace path] [--model name] [--session-id id|--history-file path]\n" +
|
|
69
|
-
" arena serve [--host 127.0.0.1] [--port 3000] [--workspace path]
|
|
70
|
-
"\n" +
|
|
71
|
-
" --attach (alias --image) saves a local file or downloaded URL into the\n" +
|
|
72
|
-
" workspace uploads/ directory and attaches it to the prompt; images are\n" +
|
|
73
|
-
" also sent to the model as image content. Repeat the flag for multiple files.");
|
|
63
|
+
" arena serve [--host 127.0.0.1] [--port 3000] [--workspace path]");
|
|
74
64
|
process.exit(0);
|
|
75
65
|
}
|
|
76
66
|
else {
|
|
@@ -181,39 +171,20 @@ async function runPrompt(options) {
|
|
|
181
171
|
config.model = options.model;
|
|
182
172
|
const sink = new EventSink({ format: options.output });
|
|
183
173
|
const sessionId = options.sessionId || crypto.randomUUID();
|
|
184
|
-
const sessionHistoryPath = storedHistoryPath(
|
|
174
|
+
const sessionHistoryPath = storedHistoryPath(workspace, config.tenantId, sessionId);
|
|
185
175
|
const suppliedHistoryPath = options.historyFile
|
|
186
176
|
? confinedHistoryPath(workspace, options.historyFile)
|
|
187
177
|
: undefined;
|
|
188
178
|
const history = await loadStoredHistory(suppliedHistoryPath || sessionHistoryPath);
|
|
189
|
-
let userMessage;
|
|
190
|
-
if (options.attachments.length) {
|
|
191
|
-
if (options.attachments.length > maxAttachmentsPerMessage) {
|
|
192
|
-
throw new Error(`a message may include at most ${maxAttachmentsPerMessage} attachments`);
|
|
193
|
-
}
|
|
194
|
-
const attachments = [];
|
|
195
|
-
for (const source of options.attachments) {
|
|
196
|
-
attachments.push(await stageAttachment(workspace, source));
|
|
197
|
-
}
|
|
198
|
-
const totalBytes = attachments.reduce((total, attachment) => total + attachment.size, 0);
|
|
199
|
-
if (totalBytes > maxAttachmentBytesPerMessage) {
|
|
200
|
-
throw new Error(`message attachments exceed ${maxAttachmentBytesPerMessage} bytes`);
|
|
201
|
-
}
|
|
202
|
-
userMessage = attachmentUserMessage(options.prompt, attachments);
|
|
203
|
-
}
|
|
204
|
-
const persistHistory = async (messages) => {
|
|
205
|
-
await saveStoredHistory(sessionHistoryPath, messages);
|
|
206
|
-
if (suppliedHistoryPath &&
|
|
207
|
-
path.resolve(suppliedHistoryPath) !== path.resolve(sessionHistoryPath)) {
|
|
208
|
-
await saveStoredHistory(suppliedHistoryPath, messages);
|
|
209
|
-
}
|
|
210
|
-
};
|
|
211
179
|
const result = await new Agent(config, sink, {
|
|
212
180
|
sessionId,
|
|
213
181
|
clientContext: defaultClientContext(),
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
182
|
+
}).run(options.prompt, history);
|
|
183
|
+
await saveStoredHistory(sessionHistoryPath, result.messages);
|
|
184
|
+
if (suppliedHistoryPath &&
|
|
185
|
+
path.resolve(suppliedHistoryPath) !== path.resolve(sessionHistoryPath)) {
|
|
186
|
+
await saveStoredHistory(suppliedHistoryPath, result.messages);
|
|
187
|
+
}
|
|
217
188
|
if (options.output === "json") {
|
|
218
189
|
console.log(JSON.stringify(result));
|
|
219
190
|
}
|