@qwen-code/arena-agent 0.0.10-dev.11 → 0.0.10-dev.13

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/dist/workspace.js CHANGED
@@ -2,7 +2,7 @@ import { constants as fsConstants } from "node:fs";
2
2
  import { execFile } from "node:child_process";
3
3
  import { access, appendFile, copyFile, mkdir, readFile, readdir, rm, writeFile, } from "node:fs/promises";
4
4
  import path from "node:path";
5
- import { promisify } from "node:util";
5
+ import { isDeepStrictEqual, promisify } from "node:util";
6
6
  import { embeddedAsset } from "./runtime-assets.js";
7
7
  import { projectRoot } from "./spec.js";
8
8
  const execFileAsync = promisify(execFile);
@@ -67,24 +67,69 @@ async function isCapturedWorkspace(workspace, mode) {
67
67
  typeof manifest.dependencies?.["drizzle-orm"] === "string" &&
68
68
  typeof manifest.dependencies?.pg === "string");
69
69
  }
70
+ async function readModeAsset(mode, relative) {
71
+ const name = `modes/code-arena/${mode}/${relative}`;
72
+ return embeddedAsset(name) ?? readFile(path.join(projectRoot(), name));
73
+ }
74
+ async function hasFile(file) {
75
+ try {
76
+ await access(file);
77
+ return true;
78
+ }
79
+ catch (error) {
80
+ if (error.code !== "ENOENT")
81
+ throw error;
82
+ return false;
83
+ }
84
+ }
70
85
  async function prepareDependencies(workspace, mode) {
71
86
  const npmCli = process.env.CODE_HARNESS_NPM_CLI_JS;
72
87
  const command = npmCli ? process.execPath : "npm";
73
- const args = [
74
- ...(npmCli ? [npmCli] : []),
75
- "install",
76
- ...(mode === "react" ? ["--package-lock=false"] : []),
77
- "--ignore-scripts",
78
- "--no-audit",
79
- "--no-fund",
80
- ];
88
+ const lockPath = path.join(workspace, "package-lock.json");
89
+ let stagedLock = false;
90
+ let installed = false;
81
91
  try {
92
+ let operation = "install";
93
+ if (!(await hasFile(lockPath)) &&
94
+ !(await hasFile(path.join(workspace, "npm-shrinkwrap.json")))) {
95
+ const manifest = await readManifest(workspace);
96
+ const template = JSON.parse((await readModeAsset(mode, "template/package.json")).toString("utf8"));
97
+ const dependencyFields = [
98
+ "dependencies",
99
+ "devDependencies",
100
+ "optionalDependencies",
101
+ "peerDependencies",
102
+ "peerDependenciesMeta",
103
+ "overrides",
104
+ "workspaces",
105
+ "bundledDependencies",
106
+ "bundleDependencies",
107
+ ];
108
+ // A resumed project may have added packages. Seed its original dependency
109
+ // versions too, but let npm install reconcile the changed manifest.
110
+ if (dependencyFields.every((key) => isDeepStrictEqual(manifest[key], template[key]))) {
111
+ operation = "ci";
112
+ }
113
+ await writeFile(lockPath, await readModeAsset(mode, "dependencies.lock.json"), {
114
+ flag: "wx",
115
+ });
116
+ stagedLock = true;
117
+ }
118
+ const args = [
119
+ ...(npmCli ? [npmCli] : []),
120
+ operation,
121
+ "--package-lock=true",
122
+ "--ignore-scripts",
123
+ "--no-audit",
124
+ "--no-fund",
125
+ ];
82
126
  await execFileAsync(command, args, {
83
127
  cwd: workspace,
84
- env: { ...process.env, npm_config_package_lock: mode === "react" ? "false" : "true" },
128
+ env: { ...process.env, npm_config_package_lock: "true" },
85
129
  timeout: dependencyInstallTimeoutMs,
86
130
  maxBuffer: 10 * 1024 * 1024,
87
131
  });
132
+ installed = true;
88
133
  }
89
134
  catch (error) {
90
135
  const detail = error && typeof error === "object" && "stderr" in error
@@ -93,8 +138,12 @@ async function prepareDependencies(workspace, mode) {
93
138
  throw new Error(`Failed to prepare ${mode === "react" ? "React" : "Full Stack"} workspace dependencies${detail ? `: ${detail}` : ""}`, { cause: error });
94
139
  }
95
140
  finally {
96
- if (mode === "react")
97
- await rm(path.join(workspace, "package-lock.json"), { force: true });
141
+ // The captured React scaffold has no visible lock. Only remove our own
142
+ // staging file; never delete a lock supplied by the user or another tool.
143
+ // Failed installs must retry with the bundled lock, without an install fallback.
144
+ if (stagedLock && (mode === "react" || !installed)) {
145
+ await rm(lockPath, { force: true });
146
+ }
98
147
  }
99
148
  }
100
149
  async function ensureFullStackDatabaseUrl(workspace) {
@@ -155,8 +204,6 @@ export async function initializeWorkspace(workspace, mode) {
155
204
  const binary = mode === "react" ? "vite" : "next";
156
205
  try {
157
206
  await access(path.join(targetRoot, "node_modules", ".bin", binary));
158
- if (mode === "react")
159
- await rm(path.join(targetRoot, "package-lock.json"), { force: true });
160
207
  }
161
208
  catch {
162
209
  await prepareDependencies(targetRoot, mode);
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,MAAM,EACN,UAAU,EACV,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,OAAO,EACP,EAAE,EACF,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,0BAA0B,GAAG,CAAC,GAAG,MAAM,CAAC;AAE9C,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,iBAAiB;IACjB,eAAe;IACf,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,cAAc;IACd,YAAY;CACJ,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,oBAAoB;IACpB,mBAAmB;IACnB,gBAAgB;IAChB,eAAe;IACf,cAAc;IACd,qBAAqB;IACrB,MAAM;IACN,kBAAkB;IAClB,iBAAiB;IACjB,6BAA6B;IAC7B,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;CACZ,CAAC;AASX,kFAAkF;AAClF,MAAM,UAAU,qBAAqB,CAAC,IAAmB;IACvD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAY;IAC9C,OAAO,CACL,IAAI,KAAK,WAAW;QACpB,IAAI,KAAK,QAAQ;QACjB,IAAI,KAAK,eAAe;QACxB,IAAI,KAAK,MAAM;QACf,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CACzB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,SAAiB;IAK3C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CACf,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAK7D,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,SAAiB,EACjB,IAAmB;IAEnB,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,CACL,QAAQ,CAAC,IAAI,KAAK,qBAAqB;YACvC,QAAQ,CAAC,OAAO,EAAE,KAAK,KAAK,YAAY;YACxC,OAAO,QAAQ,CAAC,YAAY,EAAE,KAAK,KAAK,QAAQ;YAChD,OAAO,QAAQ,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC,KAAK,QAAQ,CACzD,CAAC;IACJ,CAAC;IACD,OAAO,CACL,QAAQ,CAAC,IAAI,KAAK,4BAA4B;QAC9C,QAAQ,CAAC,OAAO,EAAE,KAAK,KAAK,YAAY;QACxC,OAAO,QAAQ,CAAC,YAAY,EAAE,IAAI,KAAK,QAAQ;QAC/C,OAAO,QAAQ,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,KAAK,QAAQ;QAC1D,OAAO,QAAQ,CAAC,YAAY,EAAE,EAAE,KAAK,QAAQ,CAC9C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,SAAiB,EACjB,IAAoC;IAEpC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,MAAM,IAAI,GAAG;QACX,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,SAAS;QACT,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,kBAAkB;QAClB,YAAY;QACZ,WAAW;KACZ,CAAC;IACF,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE;YACjC,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,uBAAuB,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE;YACrF,OAAO,EAAE,0BAA0B;YACnC,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GACV,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK;YACrD,CAAC,CAAC,MAAM,CAAE,KAA8B,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAC7D,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,0BAA0B,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EACrH,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,IAAI,KAAK,OAAO;YAAE,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,SAAiB;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;IACtE,CAAC;IACD,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,MAAM,UAAU,CACd,OAAO,EACP,GAAG,MAAM,qEAAqE,EAC9E,MAAM,CACP,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAiB,EACjB,IAAmB;IAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAC9C,CAAC;IAEF,yEAAyE;IACzE,qCAAqC;IACrC,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAE9D,IAAI,iBAAiB,IAAI,CAAC,CAAC,MAAM,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAC7E,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC/C,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,oBAAoB,IAAI,aAAa,QAAQ,EAAE,CAAC;gBAClE,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC1C,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;gBAC5D,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,KAAK,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,YAAY;QAAE,MAAM,0BAA0B,CAAC,UAAU,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACpE,IAAI,IAAI,KAAK,OAAO;YAAE,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3D,CAAC;AAED,iDAAiD;AACjD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,SAAiB;IAEjB,OAAO,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,29 @@ modes/code-arena/
45
45
  contract 一起编译到 `src/canonical-data.ts`。正常 npm 运行不读取 prompt/schema
46
46
  源文件;scaffold 仍作为包资源保留,SEA 构建时则作为 assets 嵌入二进制。
47
47
 
48
+ ### 模板安装依赖锁
49
+
50
+ React 和 Full Stack 的 `dependencies.lock.json` 位于各模式目录,随 npm 包和
51
+ SEA 二进制发布;它锁定完整安装依赖树,是本地发布资源,不代表历史完整依赖
52
+ 已恢复。模板 `package.json` 和 canonical 提示词、工具契约保持原样。
53
+
54
+ 初始化没有依赖锁且依赖声明与模板一致的工作区时,先临时写入
55
+ `package-lock.json`,再执行 `npm ci --ignore-scripts --no-audit --no-fund`。
56
+ 安装失败会报告错误,删除临时锁以便下次按相同版本重试,不退回浮动安装。
57
+ 成功后 React 删除临时锁以保留历史文件状态,Full Stack 保留锁。
58
+ 已有项目的 lock/shrinkwrap 优先,恢复已修改依赖的项目使用 `npm install`;
59
+ 如果项目还没有锁,则以随包依赖锁为起点解析新增依赖。
60
+
61
+ 普通构建和发版不重新解析模板依赖。需要升级时,指定发布截止时间,在空目录
62
+ 生成锁以保留各平台的可选原生包,然后检查差异并在目标环境执行冷缓存安装、
63
+ 构建验证。首次锁采用 `2026-10-10T00:00:00Z` 截止时间:
64
+
65
+ ```bash
66
+ node scripts/update-code-arena-dependency-locks.mjs --before 2026-10-10T00:00:00Z
67
+ ```
68
+
69
+ 锁定版本不能代替镜像同步;部署使用的 registry 或代理仍需能下载锁中的包。
70
+
48
71
  ## 源码入口与历史资料
49
72
 
50
73
  普通 Agent Arena 的提示词正文只在 `spec/message.json` 维护。构建将它嵌入