@qwen-code/arena-agent 0.0.9-dev.1 → 0.0.9-dev.2
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/README.md +49 -4
- package/dist/agent.d.ts +1 -1
- package/dist/agent.js +82 -4
- package/dist/agent.js.map +1 -1
- package/dist/config.d.ts +6 -0
- package/dist/config.js +16 -0
- package/dist/config.js.map +1 -1
- package/dist/history.d.ts +1 -0
- package/dist/history.js +3 -0
- package/dist/history.js.map +1 -1
- package/dist/model-capabilities.d.ts +20 -0
- package/dist/model-capabilities.js +98 -0
- package/dist/model-capabilities.js.map +1 -0
- package/dist/model-diagnostics.d.ts +32 -0
- package/dist/model-diagnostics.js +365 -0
- package/dist/model-diagnostics.js.map +1 -0
- package/dist/provider.d.ts +16 -0
- package/dist/provider.js +328 -37
- package/dist/provider.js.map +1 -1
- package/dist/tools.d.ts +1 -1
- package/dist/tools.js +8 -0
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
import crypto from "node:crypto";
|
|
2
|
+
import { appendFile, mkdir } from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
export class JsonlModelCallDiagnostics {
|
|
5
|
+
filePath;
|
|
6
|
+
pending = Promise.resolve();
|
|
7
|
+
constructor(filePath) {
|
|
8
|
+
this.filePath = filePath;
|
|
9
|
+
}
|
|
10
|
+
record(event) {
|
|
11
|
+
const line = `${JSON.stringify(event)}\n`;
|
|
12
|
+
const write = this.pending.then(async () => {
|
|
13
|
+
await mkdir(path.dirname(this.filePath), { recursive: true });
|
|
14
|
+
await appendFile(this.filePath, line, { encoding: "utf8", mode: 0o600 });
|
|
15
|
+
});
|
|
16
|
+
// Diagnostics must never turn a successful model call into an agent
|
|
17
|
+
// failure. Keep writes ordered, but make a filesystem failure best-effort.
|
|
18
|
+
this.pending = write.catch(() => undefined);
|
|
19
|
+
return this.pending;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function sha256(value) {
|
|
23
|
+
return crypto.createHash("sha256").update(value).digest("hex");
|
|
24
|
+
}
|
|
25
|
+
function stableJson(value) {
|
|
26
|
+
if (Array.isArray(value)) {
|
|
27
|
+
return `[${value.map((item) => stableJson(item)).join(",")}]`;
|
|
28
|
+
}
|
|
29
|
+
if (value && typeof value === "object") {
|
|
30
|
+
const record = value;
|
|
31
|
+
return `{${Object.keys(record)
|
|
32
|
+
.sort()
|
|
33
|
+
.map((key) => `${JSON.stringify(key)}:${stableJson(record[key])}`)
|
|
34
|
+
.join(",")}}`;
|
|
35
|
+
}
|
|
36
|
+
return JSON.stringify(value);
|
|
37
|
+
}
|
|
38
|
+
function stringSummary(value) {
|
|
39
|
+
return { chars: value.length, sha256: sha256(value) };
|
|
40
|
+
}
|
|
41
|
+
export function redactSensitiveText(value) {
|
|
42
|
+
return value
|
|
43
|
+
.replace(/\bsk-[A-Za-z0-9_-]{8,}\b/g, "sk-***")
|
|
44
|
+
.replace(/(authorization\s*["']?\s*[:=]\s*["']?)(?:bearer\s+)?[^\s,;"'}]+/gi, "$1***")
|
|
45
|
+
.replace(/((?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret)\s*["']?\s*[:=]\s*["']?)[^\s,;"'}]+/gi, "$1***");
|
|
46
|
+
}
|
|
47
|
+
export function rawDiagnosticValue(value, _key = "", _depth = 0) {
|
|
48
|
+
// Request bodies and aggregated response values are already JSON-compatible.
|
|
49
|
+
// Raw mode deliberately preserves them byte-for-byte at the string/value
|
|
50
|
+
// level, including prompts, tool output, and media Base64. HTTP auth headers
|
|
51
|
+
// are never passed to this function and therefore never enter the log.
|
|
52
|
+
return value;
|
|
53
|
+
}
|
|
54
|
+
function loggedTextSummary(value) {
|
|
55
|
+
const maximumChars = 16_384;
|
|
56
|
+
const redacted = redactSensitiveText(value);
|
|
57
|
+
return {
|
|
58
|
+
...stringSummary(value),
|
|
59
|
+
text: redacted.slice(0, maximumChars),
|
|
60
|
+
...(redacted.length > maximumChars ? { truncated: true } : {}),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function dataUrlSummary(value) {
|
|
64
|
+
const match = value.match(/^data:([^;,]+)?(?:;[^,]*)?,(.*)$/s);
|
|
65
|
+
if (!match)
|
|
66
|
+
return undefined;
|
|
67
|
+
return {
|
|
68
|
+
kind: "data_url",
|
|
69
|
+
media_type: match[1] || "application/octet-stream",
|
|
70
|
+
encoded_chars: match[2]?.length || 0,
|
|
71
|
+
sha256: sha256(value),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function mediaReferenceSummary(value) {
|
|
75
|
+
if (typeof value === "string") {
|
|
76
|
+
const data = dataUrlSummary(value);
|
|
77
|
+
if (data)
|
|
78
|
+
return data;
|
|
79
|
+
try {
|
|
80
|
+
const url = new URL(value);
|
|
81
|
+
return {
|
|
82
|
+
kind: "url",
|
|
83
|
+
protocol: url.protocol,
|
|
84
|
+
host: url.host,
|
|
85
|
+
path_chars: url.pathname.length,
|
|
86
|
+
has_query: Boolean(url.search),
|
|
87
|
+
sha256: sha256(value),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return { kind: "string", ...stringSummary(value) };
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
95
|
+
return diagnosticValue(value);
|
|
96
|
+
}
|
|
97
|
+
const record = value;
|
|
98
|
+
return {
|
|
99
|
+
keys: Object.keys(record).sort(),
|
|
100
|
+
...(record.url !== undefined
|
|
101
|
+
? { url: mediaReferenceSummary(record.url) }
|
|
102
|
+
: {}),
|
|
103
|
+
...(record.data !== undefined
|
|
104
|
+
? { data: mediaReferenceSummary(record.data) }
|
|
105
|
+
: {}),
|
|
106
|
+
...Object.fromEntries(Object.entries(record)
|
|
107
|
+
.filter(([key]) => key !== "url" && key !== "data")
|
|
108
|
+
.map(([key, item]) => [key, diagnosticValue(item, key)])),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
const sensitiveKey = /(?:api.?key|authorization|bearer|credential|password|secret|token)$/i;
|
|
112
|
+
export function diagnosticValue(value, key = "", depth = 0) {
|
|
113
|
+
if (sensitiveKey.test(key))
|
|
114
|
+
return "***";
|
|
115
|
+
if (depth >= 8)
|
|
116
|
+
return { truncated: true, type: typeof value };
|
|
117
|
+
if (typeof value === "string") {
|
|
118
|
+
const data = dataUrlSummary(value);
|
|
119
|
+
if (data)
|
|
120
|
+
return data;
|
|
121
|
+
if (value.length > 4096)
|
|
122
|
+
return stringSummary(value);
|
|
123
|
+
return value;
|
|
124
|
+
}
|
|
125
|
+
if (value === null ||
|
|
126
|
+
value === undefined ||
|
|
127
|
+
typeof value === "number" ||
|
|
128
|
+
typeof value === "boolean") {
|
|
129
|
+
return value;
|
|
130
|
+
}
|
|
131
|
+
if (Array.isArray(value)) {
|
|
132
|
+
return value
|
|
133
|
+
.slice(0, 256)
|
|
134
|
+
.map((item) => diagnosticValue(item, "", depth + 1));
|
|
135
|
+
}
|
|
136
|
+
if (typeof value === "object") {
|
|
137
|
+
return Object.fromEntries(Object.entries(value).map(([name, item]) => [
|
|
138
|
+
name,
|
|
139
|
+
diagnosticValue(item, name, depth + 1),
|
|
140
|
+
]));
|
|
141
|
+
}
|
|
142
|
+
return String(value);
|
|
143
|
+
}
|
|
144
|
+
function contentPartSummary(value, index, includeText) {
|
|
145
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
146
|
+
return { index, value: diagnosticValue(value) };
|
|
147
|
+
}
|
|
148
|
+
const part = value;
|
|
149
|
+
const omitted = new Set([
|
|
150
|
+
"text",
|
|
151
|
+
"image",
|
|
152
|
+
"image_url",
|
|
153
|
+
"video",
|
|
154
|
+
"video_url",
|
|
155
|
+
"source",
|
|
156
|
+
]);
|
|
157
|
+
return {
|
|
158
|
+
index,
|
|
159
|
+
keys: Object.keys(part).sort(),
|
|
160
|
+
type: typeof part.type === "string" ? part.type : null,
|
|
161
|
+
...(typeof part.text === "string"
|
|
162
|
+
? {
|
|
163
|
+
text: includeText
|
|
164
|
+
? loggedTextSummary(part.text)
|
|
165
|
+
: stringSummary(part.text),
|
|
166
|
+
}
|
|
167
|
+
: {}),
|
|
168
|
+
...(part.image !== undefined
|
|
169
|
+
? { image: mediaReferenceSummary(part.image) }
|
|
170
|
+
: {}),
|
|
171
|
+
...(part.image_url !== undefined
|
|
172
|
+
? { image_url: mediaReferenceSummary(part.image_url) }
|
|
173
|
+
: {}),
|
|
174
|
+
...(part.video !== undefined
|
|
175
|
+
? { video: mediaReferenceSummary(part.video) }
|
|
176
|
+
: {}),
|
|
177
|
+
...(part.video_url !== undefined
|
|
178
|
+
? { video_url: mediaReferenceSummary(part.video_url) }
|
|
179
|
+
: {}),
|
|
180
|
+
...(part.source !== undefined
|
|
181
|
+
? { source: mediaReferenceSummary(part.source) }
|
|
182
|
+
: {}),
|
|
183
|
+
...Object.fromEntries(Object.entries(part)
|
|
184
|
+
.filter(([name]) => name !== "type" && !omitted.has(name))
|
|
185
|
+
.map(([name, item]) => [name, diagnosticValue(item, name)])),
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
function messageSummary(value, index) {
|
|
189
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
190
|
+
return { index, value: diagnosticValue(value) };
|
|
191
|
+
}
|
|
192
|
+
const message = value;
|
|
193
|
+
const role = typeof message.role === "string" ? message.role : null;
|
|
194
|
+
const includeText = role === "system" || role === "user";
|
|
195
|
+
const content = message.content;
|
|
196
|
+
return {
|
|
197
|
+
index,
|
|
198
|
+
role,
|
|
199
|
+
keys: Object.keys(message).sort(),
|
|
200
|
+
content: typeof content === "string"
|
|
201
|
+
? {
|
|
202
|
+
kind: "string",
|
|
203
|
+
...(includeText
|
|
204
|
+
? loggedTextSummary(content)
|
|
205
|
+
: stringSummary(content)),
|
|
206
|
+
}
|
|
207
|
+
: Array.isArray(content)
|
|
208
|
+
? {
|
|
209
|
+
kind: "array",
|
|
210
|
+
parts: content.map((part, partIndex) => contentPartSummary(part, partIndex, includeText)),
|
|
211
|
+
}
|
|
212
|
+
: { kind: typeof content, value: diagnosticValue(content) },
|
|
213
|
+
...(typeof message.tool_call_id === "string"
|
|
214
|
+
? { tool_call_id: message.tool_call_id }
|
|
215
|
+
: {}),
|
|
216
|
+
...(Array.isArray(message.tool_calls)
|
|
217
|
+
? {
|
|
218
|
+
tool_calls: message.tool_calls.map((call) => {
|
|
219
|
+
const record = call && typeof call === "object"
|
|
220
|
+
? call
|
|
221
|
+
: {};
|
|
222
|
+
const fn = record.function && typeof record.function === "object"
|
|
223
|
+
? record.function
|
|
224
|
+
: {};
|
|
225
|
+
return {
|
|
226
|
+
id: record.id,
|
|
227
|
+
type: record.type,
|
|
228
|
+
function: {
|
|
229
|
+
name: fn.name,
|
|
230
|
+
arguments: typeof fn.arguments === "string"
|
|
231
|
+
? stringSummary(fn.arguments)
|
|
232
|
+
: diagnosticValue(fn.arguments),
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
}),
|
|
236
|
+
}
|
|
237
|
+
: {}),
|
|
238
|
+
...(typeof message.reasoning_content === "string"
|
|
239
|
+
? { reasoning_content: stringSummary(message.reasoning_content) }
|
|
240
|
+
: {}),
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
export function contentPartMediaTypes(value) {
|
|
244
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
245
|
+
return [];
|
|
246
|
+
const record = value;
|
|
247
|
+
const type = String(record.type || "").toLowerCase();
|
|
248
|
+
const result = new Set();
|
|
249
|
+
if (["image", "image_url", "input_image"].includes(type) ||
|
|
250
|
+
record.image !== undefined ||
|
|
251
|
+
record.image_url !== undefined) {
|
|
252
|
+
result.add("image");
|
|
253
|
+
}
|
|
254
|
+
if (["video", "video_url", "input_video"].includes(type) ||
|
|
255
|
+
record.video !== undefined ||
|
|
256
|
+
record.video_url !== undefined) {
|
|
257
|
+
result.add("video");
|
|
258
|
+
}
|
|
259
|
+
if (["audio", "audio_url", "input_audio"].includes(type) ||
|
|
260
|
+
record.audio !== undefined ||
|
|
261
|
+
record.audio_url !== undefined ||
|
|
262
|
+
record.input_audio !== undefined) {
|
|
263
|
+
result.add("audio");
|
|
264
|
+
}
|
|
265
|
+
if (["file", "file_url", "input_file"].includes(type) ||
|
|
266
|
+
record.file !== undefined ||
|
|
267
|
+
record.file_url !== undefined) {
|
|
268
|
+
result.add("file");
|
|
269
|
+
}
|
|
270
|
+
return [...result];
|
|
271
|
+
}
|
|
272
|
+
export function requestMediaTypes(body) {
|
|
273
|
+
const messages = Array.isArray(body.messages) ? body.messages : [];
|
|
274
|
+
const result = new Set();
|
|
275
|
+
for (const message of messages) {
|
|
276
|
+
if (!message || typeof message !== "object" || Array.isArray(message)) {
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
const content = message.content;
|
|
280
|
+
if (!Array.isArray(content))
|
|
281
|
+
continue;
|
|
282
|
+
for (const part of content) {
|
|
283
|
+
for (const mediaType of contentPartMediaTypes(part))
|
|
284
|
+
result.add(mediaType);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
return [...result];
|
|
288
|
+
}
|
|
289
|
+
export function requestContainsImage(body) {
|
|
290
|
+
return requestMediaTypes(body).includes("image");
|
|
291
|
+
}
|
|
292
|
+
export function requestDiagnosticSummary(body) {
|
|
293
|
+
const messages = Array.isArray(body.messages) ? body.messages : [];
|
|
294
|
+
const tools = Array.isArray(body.tools) ? body.tools : [];
|
|
295
|
+
const summarizedMessages = messages.map((message, index) => messageSummary(message, index));
|
|
296
|
+
const parameters = Object.fromEntries(Object.entries(body)
|
|
297
|
+
.filter(([key]) => key !== "messages" && key !== "tools" && key !== "model")
|
|
298
|
+
.map(([key, value]) => [key, diagnosticValue(value, key)]));
|
|
299
|
+
return {
|
|
300
|
+
body_keys: Object.keys(body).sort(),
|
|
301
|
+
parameters,
|
|
302
|
+
messages: summarizedMessages,
|
|
303
|
+
messages_sha256: sha256(stableJson(messages)),
|
|
304
|
+
tools: {
|
|
305
|
+
count: tools.length,
|
|
306
|
+
names: tools.map((tool) => {
|
|
307
|
+
const record = tool && typeof tool === "object"
|
|
308
|
+
? tool
|
|
309
|
+
: {};
|
|
310
|
+
const fn = record.function && typeof record.function === "object"
|
|
311
|
+
? record.function
|
|
312
|
+
: {};
|
|
313
|
+
return fn.name ?? record.name ?? null;
|
|
314
|
+
}),
|
|
315
|
+
sha256: sha256(stableJson(tools)),
|
|
316
|
+
},
|
|
317
|
+
contains_image: requestContainsImage(body),
|
|
318
|
+
media_types: requestMediaTypes(body),
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
export function safeEndpoint(value) {
|
|
322
|
+
try {
|
|
323
|
+
const url = new URL(value);
|
|
324
|
+
url.username = "";
|
|
325
|
+
url.password = "";
|
|
326
|
+
url.search = "";
|
|
327
|
+
url.hash = "";
|
|
328
|
+
return url.toString();
|
|
329
|
+
}
|
|
330
|
+
catch {
|
|
331
|
+
return value.split(/[?#]/, 1)[0] || value;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
export function responseRequestIds(response) {
|
|
335
|
+
const result = {};
|
|
336
|
+
for (const name of [
|
|
337
|
+
"x-request-id",
|
|
338
|
+
"request-id",
|
|
339
|
+
"x-dashscope-request-id",
|
|
340
|
+
"x-litellm-call-id",
|
|
341
|
+
]) {
|
|
342
|
+
const value = response.headers.get(name);
|
|
343
|
+
if (value)
|
|
344
|
+
result[name] = value;
|
|
345
|
+
}
|
|
346
|
+
return result;
|
|
347
|
+
}
|
|
348
|
+
export function diagnosticError(error) {
|
|
349
|
+
const direct = error;
|
|
350
|
+
const cause = direct?.cause && typeof direct.cause === "object"
|
|
351
|
+
? direct.cause
|
|
352
|
+
: undefined;
|
|
353
|
+
return {
|
|
354
|
+
name: typeof direct?.name === "string" ? direct.name : typeof error,
|
|
355
|
+
message: typeof direct?.message === "string"
|
|
356
|
+
? redactSensitiveText(direct.message.slice(0, 4000))
|
|
357
|
+
: redactSensitiveText(String(error)),
|
|
358
|
+
...((typeof direct?.code === "string" || typeof direct?.code === "number")
|
|
359
|
+
? { code: direct.code }
|
|
360
|
+
: typeof cause?.code === "string"
|
|
361
|
+
? { code: cause.code }
|
|
362
|
+
: {}),
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
//# sourceMappingURL=model-diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-diagnostics.js","sourceRoot":"","sources":["../src/model-diagnostics.ts"],"names":[],"mappings":"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"}
|
package/dist/provider.d.ts
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import type { ArenaConfig } from "./config.js";
|
|
2
|
+
import { type ModelCallDiagnosticSink } from "./model-diagnostics.js";
|
|
2
3
|
import type { ModelChunk, ModelClient, ModelRequest } from "./types.js";
|
|
3
4
|
interface HttpModelClientOptions {
|
|
4
5
|
fetch?: typeof globalThis.fetch;
|
|
5
6
|
sleep?: (milliseconds: number, signal?: AbortSignal) => Promise<void>;
|
|
6
7
|
random?: () => number;
|
|
7
8
|
now?: () => number;
|
|
9
|
+
diagnostics?: ModelCallDiagnosticSink;
|
|
10
|
+
}
|
|
11
|
+
export declare class ModelCapabilityError extends Error {
|
|
12
|
+
readonly capabilityHint: string;
|
|
13
|
+
readonly mediaTypes: string[];
|
|
14
|
+
readonly code = "ARENA_MULTIMODAL_CONTENT_UNSUPPORTED";
|
|
15
|
+
constructor(capabilityHint: string, cause: Error, mediaTypes?: string[]);
|
|
8
16
|
}
|
|
9
17
|
export interface ApiConnection {
|
|
10
18
|
baseUrl: string;
|
|
@@ -23,8 +31,16 @@ export declare class HttpModelClient implements ModelClient {
|
|
|
23
31
|
private readonly sleep;
|
|
24
32
|
private readonly random;
|
|
25
33
|
private readonly now;
|
|
34
|
+
private readonly diagnostics?;
|
|
35
|
+
private readonly recordedToolSchemas;
|
|
26
36
|
private anthropicBearerAuth;
|
|
27
37
|
constructor(config: ArenaConfig, options?: HttpModelClientOptions);
|
|
38
|
+
private recordDiagnostic;
|
|
39
|
+
private recordRequest;
|
|
40
|
+
private recordResponseHeaders;
|
|
41
|
+
private recordCompletion;
|
|
42
|
+
private recordCallError;
|
|
43
|
+
private recordAggregatedResponse;
|
|
28
44
|
private retryDelay;
|
|
29
45
|
private fetchWithHeadersTimeout;
|
|
30
46
|
private completionResponse;
|