@qwen-code/arena-agent 0.0.8 → 0.0.9-dev.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.
Files changed (55) hide show
  1. package/.env.example +41 -11
  2. package/README.md +128 -29
  3. package/dist/agent.d.ts +2 -0
  4. package/dist/agent.js +57 -36
  5. package/dist/agent.js.map +1 -1
  6. package/dist/cli.js +12 -4
  7. package/dist/cli.js.map +1 -1
  8. package/dist/compaction.js +2 -1
  9. package/dist/compaction.js.map +1 -1
  10. package/dist/config.d.ts +11 -0
  11. package/dist/config.js +73 -9
  12. package/dist/config.js.map +1 -1
  13. package/dist/conversation-metrics.d.ts +61 -0
  14. package/dist/conversation-metrics.js +433 -0
  15. package/dist/conversation-metrics.js.map +1 -0
  16. package/dist/document-reader.js +9 -0
  17. package/dist/document-reader.js.map +1 -1
  18. package/dist/history.d.ts +31 -2
  19. package/dist/history.js +53 -3
  20. package/dist/history.js.map +1 -1
  21. package/dist/metrics.d.ts +61 -0
  22. package/dist/metrics.js +578 -0
  23. package/dist/metrics.js.map +1 -0
  24. package/dist/mock.js +153 -0
  25. package/dist/mock.js.map +1 -1
  26. package/dist/protocol.d.ts +1 -1
  27. package/dist/protocol.js +9 -2
  28. package/dist/protocol.js.map +1 -1
  29. package/dist/provider.js +22 -8
  30. package/dist/provider.js.map +1 -1
  31. package/dist/runtime-assets.d.ts +3 -0
  32. package/dist/runtime-assets.js +16 -0
  33. package/dist/runtime-assets.js.map +1 -0
  34. package/dist/sdk.d.ts +28 -1
  35. package/dist/sdk.js +38 -0
  36. package/dist/sdk.js.map +1 -1
  37. package/dist/server.js +486 -36
  38. package/dist/server.js.map +1 -1
  39. package/dist/side-query.d.ts +31 -0
  40. package/dist/side-query.js +138 -0
  41. package/dist/side-query.js.map +1 -0
  42. package/dist/spec.js +4 -1
  43. package/dist/spec.js.map +1 -1
  44. package/dist/tools.js +122 -45
  45. package/dist/tools.js.map +1 -1
  46. package/dist/tui.js +4 -3
  47. package/dist/tui.js.map +1 -1
  48. package/dist/types.d.ts +155 -0
  49. package/dist/web/app.d.ts +1 -0
  50. package/dist/web/app.js +333 -10
  51. package/dist/web/app.js.map +1 -1
  52. package/docs/SDK.md +563 -0
  53. package/package.json +5 -1
  54. package/web/index.html +25 -0
  55. package/web/styles.css +109 -3
package/dist/tools.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import { existsSync, mkdirSync, realpathSync, } from "node:fs";
3
- import { readFile, realpath, stat, writeFile, } from "node:fs/promises";
3
+ import { open, readFile, realpath, stat, writeFile, } from "node:fs/promises";
4
4
  import path from "node:path";
5
5
  import { setTimeout as delay } from "node:timers/promises";
6
6
  import { Ajv } from "ajv";
@@ -187,6 +187,8 @@ const visualIntroText = "<arena-system-message>\n" +
187
187
  "treat them as the authentic output of the tool call.\n" +
188
188
  "</arena-system-message>";
189
189
  const bashOutputLimit = 20_000;
190
+ const textFileByteLimit = 256 * 1024;
191
+ const toolResultCharacterLimit = 1_000_000;
190
192
  // 中段截断,逐字反推自 3 个 truncated:true 参考样本:头尾各 9987 字符 +
191
193
  // 26 字符标记,总长恰 20000(由 T1(b) 执行回放发现,非首段截断)。
192
194
  const bashTruncationMarker = "\n... output truncated ...\n";
@@ -332,6 +334,12 @@ function json(value) {
332
334
  function errorMessage(error) {
333
335
  return error instanceof Error ? error.message : String(error);
334
336
  }
337
+ function displayByteSize(value) {
338
+ if (value >= 1024 * 1024) {
339
+ return `${(value / (1024 * 1024)).toFixed(1)} MB`;
340
+ }
341
+ return `${Math.max(1, Math.ceil(value / 1024))} KB`;
342
+ }
335
343
  function record(value) {
336
344
  return value !== null && typeof value === "object" && !Array.isArray(value)
337
345
  ? value
@@ -433,10 +441,12 @@ export class ToolExecutor {
433
441
  // canonical trace set, adjusted for the selected workspace runtime and minus
434
442
  // ask_user when no interactive handler is wired.
435
443
  availableTools() {
436
- const definitions = toolDefinitions(this.workspaceContext);
437
- if (this.askUserEnabled)
438
- return definitions;
439
- return definitions.filter((definition) => definition.function.name !== "ask_user");
444
+ let definitions = toolDefinitions(this.workspaceContext);
445
+ if (!this.askUserEnabled) {
446
+ definitions = definitions.filter((definition) => definition.function.name !== "ask_user");
447
+ }
448
+ const disallowed = new Set(this.config.disallowedTools || []);
449
+ return definitions.filter((definition) => !disallowed.has(definition.function.name));
440
450
  }
441
451
  async execute(call) {
442
452
  const callId = String(call.id || "");
@@ -446,6 +456,9 @@ export class ToolExecutor {
446
456
  // 监听器不会补发已发生的 abort:已取消的 signal 必须在产生任何副作用
447
457
  // 之前短路,否则命令会照常 spawn 直到自然结束。
448
458
  this.signal?.throwIfAborted();
459
+ if (this.config.disallowedTools?.includes(name)) {
460
+ throw new Error(`tool is disallowed: ${name}`);
461
+ }
449
462
  const argumentsValue = JSON.parse(typeof call.function?.arguments === "string"
450
463
  ? call.function.arguments
451
464
  : "{}");
@@ -459,10 +472,23 @@ export class ToolExecutor {
459
472
  throw new Error(`invalid arguments: ${errors}`);
460
473
  }
461
474
  const result = await this.dispatch(name, argumentsValue, callId);
475
+ const content = typeof result === "string" ? result : json(result);
476
+ if (content.length > toolResultCharacterLimit) {
477
+ return {
478
+ role: "tool",
479
+ tool_call_id: callId,
480
+ content: json({
481
+ status: "error",
482
+ message: `Tool result from ${name} (${content.length} characters) exceeds the ` +
483
+ `maximum allowed size (${toolResultCharacterLimit} characters). ` +
484
+ "Retry with narrower arguments or inspect the data in smaller portions.",
485
+ }),
486
+ };
487
+ }
462
488
  return {
463
489
  role: "tool",
464
490
  tool_call_id: callId,
465
- content: typeof result === "string" ? result : json(result),
491
+ content,
466
492
  };
467
493
  }
468
494
  catch (error) {
@@ -744,9 +770,23 @@ export class ToolExecutor {
744
770
  }
745
771
  async readWorkspaceFile(rawPath, toolCallId) {
746
772
  const target = await this.confinedPath(rawPath);
747
- let data;
773
+ let fileSize;
774
+ let sample;
748
775
  try {
749
- data = await readFile(target);
776
+ const metadata = await stat(target);
777
+ if (!metadata.isFile())
778
+ throw new Error("not a regular file");
779
+ fileSize = metadata.size;
780
+ sample = Buffer.alloc(Math.min(fileSize, 4096));
781
+ if (sample.length) {
782
+ const handle = await open(target, "r");
783
+ try {
784
+ await handle.read(sample, 0, sample.length, 0);
785
+ }
786
+ finally {
787
+ await handle.close();
788
+ }
789
+ }
750
790
  }
751
791
  catch {
752
792
  // 逐字对齐生产错误文案,路径按调用方原样回显。
@@ -756,7 +796,29 @@ export class ToolExecutor {
756
796
  };
757
797
  }
758
798
  const extension = path.extname(target).toLowerCase();
759
- const kind = workspaceFileKind(target, data.subarray(0, 4096));
799
+ const kind = workspaceFileKind(target, sample);
800
+ if (kind === "text" && fileSize > textFileByteLimit) {
801
+ return {
802
+ status: "error",
803
+ message: `File content (${displayByteSize(fileSize)}) exceeds the maximum allowed size ` +
804
+ `(${displayByteSize(textFileByteLimit)}). Use bash with sed/head/tail to read ` +
805
+ "specific portions of the file, or grep/rg to search for specific content " +
806
+ "instead of reading the whole file.",
807
+ };
808
+ }
809
+ if (kind === "image" && fileSize > 20 * 1024 * 1024) {
810
+ throw new Error(`image exceeds 20 MB: ${rawPath}`);
811
+ }
812
+ let data;
813
+ try {
814
+ data = await readFile(target);
815
+ }
816
+ catch {
817
+ return {
818
+ status: "error",
819
+ message: `Failed to read workspace file: ${rawPath}`,
820
+ };
821
+ }
760
822
  if (isStructuredDocument(target)) {
761
823
  // 文档提取无参考样本(known-unknown),保留本地扩展键。
762
824
  const result = {
@@ -794,15 +856,12 @@ export class ToolExecutor {
794
856
  mimeTypes[extension] ||
795
857
  "application/octet-stream";
796
858
  if (kind === "image") {
797
- if (data.length > 20 * 1024 * 1024) {
798
- throw new Error(`image exceeds 20 MB: ${rawPath}`);
799
- }
800
859
  this.pendingVisualContent.set(toolCallId, [
801
860
  {
802
861
  image: `data:${mimeType};base64,${data.toString("base64")}`,
803
862
  },
804
863
  ]);
805
- return [{ text: imageResultPlaceholder }];
864
+ return [{ type: "text", text: imageResultPlaceholder }];
806
865
  }
807
866
  return {
808
867
  status: "success",
@@ -949,7 +1008,8 @@ export class ToolExecutor {
949
1008
  throw new Error("file_path must end in .jpg, .jpeg, or .png");
950
1009
  }
951
1010
  mkdirSync(path.dirname(target), { recursive: true });
952
- const model = process.env.ARENA_IMAGE_MODEL || "wan2.7-image-pro";
1011
+ const model = process.env.ARENA_IMAGE_MODEL || "qwen-image-2.0-pro";
1012
+ const isQwenImage2 = model.startsWith("qwen-image-2.0");
953
1013
  const content = [];
954
1014
  for (const imagePath of images || []) {
955
1015
  const source = await this.confinedPath(imagePath);
@@ -968,18 +1028,28 @@ export class ToolExecutor {
968
1028
  }
969
1029
  content.push({ text: prompt });
970
1030
  const parameters = {
971
- size: process.env.ARENA_IMAGE_SIZE || "2K",
972
- n: 1,
1031
+ size: process.env.ARENA_IMAGE_SIZE ||
1032
+ (isQwenImage2 ? "2048*2048" : "2K"),
973
1033
  watermark: false,
974
1034
  };
975
- if (!images?.length)
976
- parameters.thinking_mode = true;
977
- const submitted = await dashScopeJson("api", "/services/aigc/image-generation/generation", {
1035
+ if (isQwenImage2) {
1036
+ parameters.prompt_extend = true;
1037
+ }
1038
+ else {
1039
+ parameters.n = 1;
1040
+ if (!images?.length)
1041
+ parameters.thinking_mode = true;
1042
+ }
1043
+ const headers = {
1044
+ "content-type": "application/json",
1045
+ };
1046
+ if (!isQwenImage2)
1047
+ headers["x-dashscope-async"] = "enable";
1048
+ const submitted = await dashScopeJson("api", isQwenImage2
1049
+ ? "/services/aigc/multimodal-generation/generation"
1050
+ : "/services/aigc/image-generation/generation", {
978
1051
  method: "POST",
979
- headers: {
980
- "content-type": "application/json",
981
- "x-dashscope-async": "enable",
982
- },
1052
+ headers,
983
1053
  body: JSON.stringify({
984
1054
  model,
985
1055
  input: {
@@ -989,31 +1059,38 @@ export class ToolExecutor {
989
1059
  }),
990
1060
  signal: this.signal,
991
1061
  }, "generate_image");
992
- const taskId = stringValue(record(submitted.output).task_id);
993
- if (!taskId) {
994
- throw new Error(`generate_image returned no task_id: ${responseMessage(submitted)}`);
995
- }
996
- const timeoutMs = Number(process.env.DASHSCOPE_TASK_TIMEOUT_MS || 5 * 60 * 1000);
997
- const pollIntervalMs = Number(process.env.DASHSCOPE_TASK_POLL_INTERVAL_MS || 1000);
998
- const deadline = Date.now() + timeoutMs;
999
- let completed;
1000
- while (Date.now() <= deadline) {
1001
- const task = await dashScopeJson("api", `/tasks/${encodeURIComponent(taskId)}`, { method: "GET", signal: this.signal }, "generate_image status");
1002
- const output = record(task.output);
1003
- const taskStatus = stringValue(output.task_status).toUpperCase();
1004
- if (taskStatus === "SUCCEEDED") {
1005
- completed = task;
1006
- break;
1062
+ let completed = isQwenImage2
1063
+ ? submitted
1064
+ : undefined;
1065
+ if (!isQwenImage2) {
1066
+ const taskId = stringValue(record(submitted.output).task_id);
1067
+ if (!taskId) {
1068
+ throw new Error(`generate_image returned no task_id: ${responseMessage(submitted)}`);
1007
1069
  }
1008
- if (["FAILED", "CANCELED", "UNKNOWN"].includes(taskStatus)) {
1009
- throw new Error(`generate_image task ${taskStatus}: ${responseMessage(task)}`);
1070
+ const timeoutMs = Number(process.env.DASHSCOPE_TASK_TIMEOUT_MS || 5 * 60 * 1000);
1071
+ const pollIntervalMs = Number(process.env.DASHSCOPE_TASK_POLL_INTERVAL_MS || 1000);
1072
+ const deadline = Date.now() + timeoutMs;
1073
+ while (Date.now() <= deadline) {
1074
+ const task = await dashScopeJson("api", `/tasks/${encodeURIComponent(taskId)}`, { method: "GET", signal: this.signal }, "generate_image status");
1075
+ const output = record(task.output);
1076
+ const taskStatus = stringValue(output.task_status).toUpperCase();
1077
+ if (taskStatus === "SUCCEEDED") {
1078
+ completed = task;
1079
+ break;
1080
+ }
1081
+ if (["FAILED", "CANCELED", "UNKNOWN"].includes(taskStatus)) {
1082
+ throw new Error(`generate_image task ${taskStatus}: ${responseMessage(task)}`);
1083
+ }
1084
+ if (Date.now() + pollIntervalMs > deadline)
1085
+ break;
1086
+ await delay(pollIntervalMs, undefined, { signal: this.signal });
1087
+ }
1088
+ if (!completed) {
1089
+ throw new Error(`generate_image timed out waiting for task ${taskId}`);
1010
1090
  }
1011
- if (Date.now() + pollIntervalMs > deadline)
1012
- break;
1013
- await delay(pollIntervalMs, undefined, { signal: this.signal });
1014
1091
  }
1015
1092
  if (!completed) {
1016
- throw new Error(`generate_image timed out waiting for task ${taskId}`);
1093
+ throw new Error("generate_image returned no response");
1017
1094
  }
1018
1095
  const output = record(completed.output);
1019
1096
  const choices = Array.isArray(output.choices) ? output.choices : [];
@@ -1028,7 +1105,7 @@ export class ToolExecutor {
1028
1105
  const imageUrl = stringValue(generated?.image) ||
1029
1106
  stringValue(record(legacyResults[0]).url);
1030
1107
  if (!imageUrl) {
1031
- throw new Error("generate_image task succeeded without an image URL");
1108
+ throw new Error("generate_image response did not include an image URL");
1032
1109
  }
1033
1110
  const imageResponse = await fetch(imageUrl, { signal: this.signal });
1034
1111
  if (!imageResponse.ok) {
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/dist/tui.js CHANGED
@@ -4,7 +4,7 @@ import path from "node:path";
4
4
  import dotenv from "dotenv";
5
5
  import { Agent, resolveRepoContext } from "./agent.js";
6
6
  import { configFromEnv } from "./config.js";
7
- import { loadStoredHistory, saveStoredHistory, storedHistoryPath, } from "./history.js";
7
+ import { historyMetadata, loadStoredHistory, saveStoredHistory, storedHistoryPath, } from "./history.js";
8
8
  import { EventSink } from "./protocol.js";
9
9
  import { defaultClientContext } from "./spec.js";
10
10
  import { ToolExecutor } from "./tools.js";
@@ -240,6 +240,7 @@ export async function runTui(options) {
240
240
  const readline = createInterface({ input, output, terminal });
241
241
  const promptReader = new PromptReader(readline, output);
242
242
  const sessionId = options.sessionId || crypto.randomUUID();
243
+ const metadata = historyMetadata(config, sessionId);
243
244
  const sessionHistoryPath = storedHistoryPath(config.stateRoot, config.tenantId, sessionId);
244
245
  const suppliedHistoryPath = options.historyFile
245
246
  ? confinedHistoryPath(workspace, options.historyFile)
@@ -322,10 +323,10 @@ export async function runTui(options) {
322
323
  askUserHandler: (_toolCallId, questions) => answerQuestions(promptReader, renderer, questions, controller.signal),
323
324
  });
324
325
  const persistHistory = async (messages) => {
325
- await saveStoredHistory(sessionHistoryPath, messages);
326
+ await saveStoredHistory(sessionHistoryPath, messages, metadata);
326
327
  if (suppliedHistoryPath &&
327
328
  path.resolve(suppliedHistoryPath) !== path.resolve(sessionHistoryPath)) {
328
- await saveStoredHistory(suppliedHistoryPath, messages);
329
+ await saveStoredHistory(suppliedHistoryPath, messages, metadata);
329
330
  }
330
331
  };
331
332
  const result = await new Agent(config, sink, {
package/dist/tui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}