@qwen-code/arena-agent 0.0.10-dev.4 → 0.0.10-dev.5

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 (53) hide show
  1. package/.env.example +8 -1
  2. package/README.md +25 -12
  3. package/dist/agent.d.ts +4 -0
  4. package/dist/agent.js +19 -6
  5. package/dist/agent.js.map +1 -1
  6. package/dist/brave-search.js +1 -3
  7. package/dist/brave-search.js.map +1 -1
  8. package/dist/canonical-data.js +1 -1
  9. package/dist/canonical-data.js.map +1 -1
  10. package/dist/cli.js +5 -3
  11. package/dist/cli.js.map +1 -1
  12. package/dist/code-tools.d.ts +1 -0
  13. package/dist/code-tools.js +220 -2
  14. package/dist/code-tools.js.map +1 -1
  15. package/dist/compaction.d.ts +29 -2
  16. package/dist/compaction.js +242 -187
  17. package/dist/compaction.js.map +1 -1
  18. package/dist/config.d.ts +1 -0
  19. package/dist/config.js +2 -1
  20. package/dist/config.js.map +1 -1
  21. package/dist/fetch-page.js +9 -33
  22. package/dist/fetch-page.js.map +1 -1
  23. package/dist/history.d.ts +6 -3
  24. package/dist/history.js +42 -11
  25. package/dist/history.js.map +1 -1
  26. package/dist/legacy-compaction.d.ts +16 -0
  27. package/dist/legacy-compaction.js +207 -0
  28. package/dist/legacy-compaction.js.map +1 -0
  29. package/dist/mock.js +5 -0
  30. package/dist/mock.js.map +1 -1
  31. package/dist/process-manager.js +2 -1
  32. package/dist/process-manager.js.map +1 -1
  33. package/dist/prompts.d.ts +2 -0
  34. package/dist/prompts.js +6 -2
  35. package/dist/prompts.js.map +1 -1
  36. package/dist/routify-web-fetch.js +2 -3
  37. package/dist/routify-web-fetch.js.map +1 -1
  38. package/dist/sandbox-file-write.d.ts +10 -0
  39. package/dist/sandbox-file-write.js +58 -0
  40. package/dist/sandbox-file-write.js.map +1 -0
  41. package/dist/server.js +8 -5
  42. package/dist/server.js.map +1 -1
  43. package/dist/session-memory-prompts.d.ts +5 -0
  44. package/dist/session-memory-prompts.js +7 -0
  45. package/dist/session-memory-prompts.js.map +1 -0
  46. package/dist/spec.js +15 -9
  47. package/dist/spec.js.map +1 -1
  48. package/dist/tools.js +39 -12
  49. package/dist/tools.js.map +1 -1
  50. package/dist/tui.js +4 -2
  51. package/dist/tui.js.map +1 -1
  52. package/dist/types.d.ts +2 -0
  53. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"canonical-data.js","sourceRoot":"","sources":["../src/canonical-data.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,CAAC,MAAM,kBAAkB,GAAW,yqwGAAyqwG,CAAC;AACptwG,MAAM,CAAC,MAAM,aAAa,GAAW,morBAAmorB,CAAC;AACzqrB,MAAM,CAAC,MAAM,qBAAqB,GAAW,kpxCAAkpxC,CAAC"}
1
+ {"version":3,"file":"canonical-data.js","sourceRoot":"","sources":["../src/canonical-data.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,CAAC,MAAM,kBAAkB,GAAW,irwGAAirwG,CAAC;AAC5twG,MAAM,CAAC,MAAM,aAAa,GAAW,morBAAmorB,CAAC;AACzqrB,MAAM,CAAC,MAAM,qBAAqB,GAAW,kpxCAAkpxC,CAAC"}
package/dist/cli.js CHANGED
@@ -283,6 +283,7 @@ async function runPrompt(options) {
283
283
  ? confinedHistoryPath(workspace, options.historyFile)
284
284
  : undefined;
285
285
  const storedHistory = await loadStoredHistoryState(suppliedHistoryPath || sessionHistoryPath);
286
+ const sessionMemory = { state: storedHistory?.session_memory };
286
287
  const history = storedHistory?.messages;
287
288
  const repoContext = resolveRepoContext(workspace, history, config.mode);
288
289
  if (repoContext)
@@ -308,7 +309,7 @@ async function runPrompt(options) {
308
309
  // --history-file is also mirrored into the serve-compatible session path.
309
310
  // Seed that distinct base once so both incremental journals describe the
310
311
  // same prefix even when the session path already existed.
311
- await saveStoredHistory(sessionHistoryPath, storedHistory?.messages || [], metadata, storedHistory?.metrics ?? null, storedHistory?.tools);
312
+ await saveStoredHistory(sessionHistoryPath, storedHistory?.messages || [], metadata, storedHistory?.metrics ?? null, storedHistory?.tools, storedHistory?.session_memory ?? null);
312
313
  }
313
314
  const historyWriters = [
314
315
  await IncrementalHistoryWriter.create(sessionHistoryPath, storedHistory, metadata),
@@ -320,7 +321,7 @@ async function runPrompt(options) {
320
321
  const persistHistory = async (messages, tools) => {
321
322
  if (tools)
322
323
  persistedTools = tools;
323
- await Promise.all(historyWriters.map((writer) => writer.checkpoint(messages, persistedTools)));
324
+ await Promise.all(historyWriters.map((writer) => writer.checkpoint(messages, persistedTools, sessionMemory.state ?? null)));
324
325
  };
325
326
  const result = await new Agent(config, sink, {
326
327
  askUserHandler: remoteAskUserHandlerFromConfig(config, version),
@@ -328,9 +329,10 @@ async function runPrompt(options) {
328
329
  clientContext: defaultClientContext(),
329
330
  workspaceContext,
330
331
  reuseHistoryMessages: true,
332
+ sessionMemory,
331
333
  onCheckpoint: persistHistory,
332
334
  }).run(options.prompt, history, { userMessage });
333
- await Promise.all(historyWriters.map((writer) => writer.finalize(result.messages, storedHistory?.metrics ?? null, persistedTools)));
335
+ await Promise.all(historyWriters.map((writer) => writer.finalize(result.messages, storedHistory?.metrics ?? null, persistedTools, sessionMemory.state ?? null)));
334
336
  if (options.output === "json") {
335
337
  console.log(JSON.stringify(result));
336
338
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ export declare class CodeToolExecutor {
43
43
  private mutationResult;
44
44
  private createCodeFile;
45
45
  private editCodeFile;
46
+ private applyCodePatch;
46
47
  private deleteCodeFile;
47
48
  private listCodeFiles;
48
49
  private grepCodeFiles;
@@ -639,6 +639,57 @@ function interleaveMedia(left, right) {
639
639
  function normalizeMediaQuery(value) {
640
640
  return value.trim().replace(/\s+/g, " ").toLowerCase();
641
641
  }
642
+ // Captured sessions call apply_patch even though no recorded request ever
643
+ // advertised it: six react calls (s05/s17/s33) and 260+ html calls executed
644
+ // successfully against the untouched 13-tool/7-tool contracts, while one h19
645
+ // call was rejected by a turn whose runtime lacked it. The canonical schemas
646
+ // stay untouched; the executor accepts the call the way the recording
647
+ // environment's runtime did.
648
+ const APPLY_PATCH_PARAMETERS = {
649
+ type: "object",
650
+ properties: {
651
+ input: { type: "string" },
652
+ },
653
+ required: ["input"],
654
+ additionalProperties: false,
655
+ };
656
+ const APPLY_PATCH_DESCRIPTION = "Apply a patch to files in the project. The patch uses the codex patch format: " +
657
+ "'*** Begin Patch' ... '*** End Patch', with '*** Add File: <path>' (content as " +
658
+ "'+'-prefixed lines), '*** Update File: <path>' ('@@'-separated hunks with ' ' " +
659
+ "context, '-' removed and '+' added lines), and '*** Delete File: <path>'.";
660
+ // CODE_HARNESS_APPLY_PATCH_TOOL opts into advertising the tool to the model.
661
+ // It stays out of the tool list by default while the executor still accepts
662
+ // the call, matching the recorded runtime.
663
+ function applyPatchToolAdvertised() {
664
+ const value = process.env.CODE_HARNESS_APPLY_PATCH_TOOL;
665
+ return (value !== undefined && !["0", "false", "no"].includes(value.toLowerCase()));
666
+ }
667
+ function locateHunkContext(lines, findLines, fromIndex) {
668
+ const limit = lines.length - findLines.length;
669
+ for (let start = Math.max(0, fromIndex); start <= limit; start += 1) {
670
+ let matched = true;
671
+ for (let offset = 0; offset < findLines.length; offset += 1) {
672
+ if (lines[start + offset] !== findLines[offset]) {
673
+ matched = false;
674
+ break;
675
+ }
676
+ }
677
+ if (matched)
678
+ return start;
679
+ }
680
+ for (let start = Math.max(0, fromIndex); start <= limit; start += 1) {
681
+ let matched = true;
682
+ for (let offset = 0; offset < findLines.length; offset += 1) {
683
+ if (lines[start + offset].trim() !== findLines[offset].trim()) {
684
+ matched = false;
685
+ break;
686
+ }
687
+ }
688
+ if (matched)
689
+ return start;
690
+ }
691
+ return undefined;
692
+ }
642
693
  export class CodeToolExecutor {
643
694
  config;
644
695
  workspace;
@@ -672,12 +723,30 @@ export class CodeToolExecutor {
672
723
  this.workspaceContext = options.workspaceContext;
673
724
  this.pageReader = new FetchPageReader({ signal: options.signal });
674
725
  const disallowed = new Set(config.disallowedTools || []);
675
- this.definitions = toolDefinitions(this.workspaceContext, config.mode).filter((definition) => !disallowed.has(definition.function.name));
726
+ const canonical = toolDefinitions(this.workspaceContext, config.mode).filter((definition) => !disallowed.has(definition.function.name));
727
+ const advertiseApplyPatch = applyPatchToolAdvertised() && !disallowed.has("apply_patch");
728
+ this.definitions = advertiseApplyPatch
729
+ ? [
730
+ ...canonical,
731
+ {
732
+ type: "function",
733
+ function: {
734
+ name: "apply_patch",
735
+ description: APPLY_PATCH_DESCRIPTION,
736
+ parameters: APPLY_PATCH_PARAMETERS,
737
+ },
738
+ },
739
+ ]
740
+ : canonical;
676
741
  this.seedFileRank = capturedSeedFileRank(config.mode);
677
742
  addFormats(this.ajv);
678
743
  for (const definition of this.definitions) {
679
744
  this.validators.set(definition.function.name, this.ajv.compile(definition.function.parameters));
680
745
  }
746
+ // Hidden mode: advertise nothing, but keep the call executable.
747
+ if (!advertiseApplyPatch && !disallowed.has("apply_patch")) {
748
+ this.validators.set("apply_patch", this.ajv.compile(APPLY_PATCH_PARAMETERS));
749
+ }
681
750
  }
682
751
  // The tool schemas offered to the model for this session. Identical to the
683
752
  // canonical trace set, adjusted for the selected workspace runtime.
@@ -707,7 +776,7 @@ export class CodeToolExecutor {
707
776
  argumentsValue.offset ??= 1;
708
777
  argumentsValue.limit ??= 2000;
709
778
  }
710
- else if (name === "list_files") {
779
+ else if (name === "list_files" || name === "glob_files") {
711
780
  argumentsValue.path ??= "";
712
781
  }
713
782
  else if (name === "grep_files") {
@@ -781,6 +850,8 @@ export class CodeToolExecutor {
781
850
  return this.createCodeFile(String(values.path), String(values.content));
782
851
  case "edit_file":
783
852
  return this.editCodeFile(String(values.path), String(values.context), String(values.replacement));
853
+ case "apply_patch":
854
+ return this.applyCodePatch(String(values.input));
784
855
  case "delete_file":
785
856
  return this.deleteCodeFile(String(values.path));
786
857
  case "list_files":
@@ -1080,6 +1151,13 @@ export class CodeToolExecutor {
1080
1151
  whitespaceInsensitiveMultiline: true,
1081
1152
  });
1082
1153
  if (edited === undefined) {
1154
+ // Captured sessions re-issue an edit after compaction or a retry. The
1155
+ // provider reports success without touching the file when the context
1156
+ // is already gone and the replacement is in place (f39 re-issues four
1157
+ // dashboard edits this way).
1158
+ if (replacement && source.includes(replacement)) {
1159
+ return this.mutationResult("Edited", rawPath);
1160
+ }
1083
1161
  return {
1084
1162
  status: "error",
1085
1163
  message: "Context not found. Read the file to verify the text exists.",
@@ -1088,6 +1166,146 @@ export class CodeToolExecutor {
1088
1166
  await writeFile(target, edited, "utf8");
1089
1167
  return this.mutationResult("Edited", rawPath);
1090
1168
  }
1169
+ // Some recorded sessions exposed a codex-style apply_patch tool (*** Begin
1170
+ // Patch / Add|Update|Delete File / @@ hunks) that the provider executed
1171
+ // without ever advertising it. Its observable contract: "Patch applied[.
1172
+ // Type errors found.]" on success, "Invalid Context <anchor>:\n<context>"
1173
+ // when a hunk context cannot be located — the anchor is the line where the
1174
+ // previous hunk's match ended and the failed search started (h17 reports
1175
+ // 666 after a four-line context hunk matching lines 663-666).
1176
+ async applyCodePatch(patchText) {
1177
+ const kindByMarker = {
1178
+ Add: "add",
1179
+ Update: "update",
1180
+ Delete: "delete",
1181
+ };
1182
+ const operations = [];
1183
+ let current;
1184
+ for (const line of patchText.split("\n")) {
1185
+ const marker = /^\*\*\* (Add|Update|Delete) File: (.+)$/.exec(line);
1186
+ if (marker) {
1187
+ current = {
1188
+ kind: kindByMarker[marker[1]],
1189
+ path: marker[2].trim(),
1190
+ lines: [],
1191
+ };
1192
+ operations.push(current);
1193
+ continue;
1194
+ }
1195
+ if (line.startsWith("*** ")) {
1196
+ current = undefined;
1197
+ continue;
1198
+ }
1199
+ current?.lines.push(line);
1200
+ }
1201
+ for (const operation of operations) {
1202
+ const target = await this.confinedPath(operation.path);
1203
+ if (operation.kind === "add") {
1204
+ if (await this.existsWithExactCase(operation.path)) {
1205
+ return {
1206
+ status: "error",
1207
+ message: `Add File Error: Duplicate Path: ${operation.path}`,
1208
+ };
1209
+ }
1210
+ // The recorded provider writes exactly the "+" lines joined by
1211
+ // newlines without appending a trailing one (h17's 27-line
1212
+ // manifest.json reads back as totalLines 27, not 28).
1213
+ const content = operation.lines
1214
+ .filter((line) => line.startsWith("+"))
1215
+ .map((line) => line.slice(1))
1216
+ .join("\n");
1217
+ mkdirSync(path.dirname(target), { recursive: true });
1218
+ await writeFile(target, content, "utf8");
1219
+ this.rememberListedFile(this.relativePath(target));
1220
+ continue;
1221
+ }
1222
+ if (operation.kind === "delete") {
1223
+ if (!(await this.existsWithExactCase(operation.path))) {
1224
+ return {
1225
+ status: "error",
1226
+ message: `Delete File Error: File Not Found: ${operation.path}`,
1227
+ };
1228
+ }
1229
+ await rm(target, { force: true });
1230
+ this.forgetListedPath(this.relativePath(target));
1231
+ continue;
1232
+ }
1233
+ let source;
1234
+ try {
1235
+ if (!(await this.existsWithExactCase(operation.path)))
1236
+ throw new Error("missing");
1237
+ source = await readFile(target, "utf8");
1238
+ }
1239
+ catch {
1240
+ return {
1241
+ status: "error",
1242
+ message: `Update File Error: File Not Found: ${operation.path}`,
1243
+ };
1244
+ }
1245
+ // Hunks are separated by @@ lines; within a hunk, " " context and "-"
1246
+ // removed lines form the find pattern, " " context and "+" added lines
1247
+ // form the replacement. Hunks stream over the original file: each
1248
+ // context is searched forward from where the previous hunk ended, and a
1249
+ // miss reports the search anchor over the find text the way the
1250
+ // recorded provider does (h17: "Invalid Context 666:"). Whitespace
1251
+ // drifted contexts match by trimmed lines.
1252
+ const hunks = [];
1253
+ let hunk = [];
1254
+ for (const line of operation.lines) {
1255
+ if (line.startsWith("@@")) {
1256
+ if (hunk.length)
1257
+ hunks.push(hunk);
1258
+ hunk = [];
1259
+ continue;
1260
+ }
1261
+ hunk.push(line);
1262
+ }
1263
+ if (hunk.length)
1264
+ hunks.push(hunk);
1265
+ const originalLines = source.split("\n");
1266
+ const output = [];
1267
+ let position = 0;
1268
+ for (const hunkLines of hunks) {
1269
+ const findLines = [];
1270
+ const replaceLines = [];
1271
+ for (const line of hunkLines) {
1272
+ if (line.startsWith("-")) {
1273
+ findLines.push(line.slice(1));
1274
+ }
1275
+ else if (line.startsWith("+")) {
1276
+ replaceLines.push(line.slice(1));
1277
+ }
1278
+ else {
1279
+ findLines.push(line.slice(1));
1280
+ replaceLines.push(line.slice(1));
1281
+ }
1282
+ }
1283
+ if (!findLines.length)
1284
+ continue;
1285
+ const start = locateHunkContext(originalLines, findLines, position);
1286
+ if (start === undefined) {
1287
+ return {
1288
+ status: "error",
1289
+ message: `Invalid Context ${position}:\n${findLines.join("\n")}`,
1290
+ };
1291
+ }
1292
+ output.push(...originalLines.slice(position, start));
1293
+ output.push(...replaceLines);
1294
+ position = start + findLines.length;
1295
+ }
1296
+ output.push(...originalLines.slice(position));
1297
+ await writeFile(target, output.join("\n"), "utf8");
1298
+ }
1299
+ const lintError = await this.typeErrors();
1300
+ if (lintError) {
1301
+ return {
1302
+ status: "success",
1303
+ message: "Patch applied. Type errors found.",
1304
+ lint_error: lintError,
1305
+ };
1306
+ }
1307
+ return { status: "success", message: "Patch applied." };
1308
+ }
1091
1309
  async deleteCodeFile(rawPath) {
1092
1310
  const target = await this.confinedPath(rawPath);
1093
1311
  await rm(target, { force: true, recursive: true });