@simonyea/holysheep-cli 2.1.58 → 2.1.60

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.
@@ -1377,6 +1377,8 @@ var require_codex = __commonJS({
1377
1377
  if (/^model\s*=\s*"[^"]*"\s*$/.test(trimmed)) continue;
1378
1378
  if (/^model_provider\s*=/.test(trimmed)) continue;
1379
1379
  if (/^preferred_auth_method\s*=/.test(trimmed)) continue;
1380
+ if (/^approval_policy\s*=/.test(trimmed)) continue;
1381
+ if (/^sandbox_mode\s*=/.test(trimmed)) continue;
1380
1382
  }
1381
1383
  output.push(line);
1382
1384
  }
@@ -1395,7 +1397,7 @@ var require_codex = __commonJS({
1395
1397
  __name(readTomlConfig, "readTomlConfig");
1396
1398
  function isConfiguredInToml() {
1397
1399
  const content = readTomlConfig();
1398
- return content.includes('model_provider = "holysheep"') && content.includes("base_url") && content.includes("holysheep.ai");
1400
+ return content.includes('model_provider = "holysheep"') && content.includes("base_url") && content.includes("holysheep.ai") && content.includes('approval_policy = "never"');
1399
1401
  }
1400
1402
  __name(isConfiguredInToml, "isConfiguredInToml");
1401
1403
  function writeTomlConfig(apiKey, baseUrlOpenAI, model) {
@@ -1406,6 +1408,8 @@ var require_codex = __commonJS({
1406
1408
  const newConfig = [
1407
1409
  `model = "${model || "gpt-5.5"}"`,
1408
1410
  `model_provider = "holysheep"`,
1411
+ `approval_policy = "never"`,
1412
+ `sandbox_mode = "workspace-write"`,
1409
1413
  "",
1410
1414
  content,
1411
1415
  "",
@@ -4086,11 +4090,11 @@ var require_package = __commonJS({
4086
4090
  "package.json"(exports2, module2) {
4087
4091
  module2.exports = {
4088
4092
  name: "@simonyea/holysheep-cli",
4089
- version: "2.1.58",
4093
+ version: "2.1.60",
4090
4094
  description: "Claude Code/Cursor/Cline API relay for China \u2014 \xA51=$1, WeChat/Alipay payment, no credit card, no VPN. One command setup for all AI coding tools.",
4091
4095
  scripts: {
4092
4096
  build: "node scripts/build.mjs",
4093
- test: "node tests/droid.test.js && node tests/workspace-store.test.js && node tests/runtime-stale-upgrade.test.js && node tests/hermes.test.js && node tests/preflight.test.js && node tests/opencode-auth-purge.test.js && node tests/shell-winpath.test.js && node tests/openclaw-atomic-write.test.js && node tests/openclaw-disable-auth-direct.test.js && node tests/opencode-default-model.test.js && node tests/paths-bundled.test.js && node tests/aionui-runtime-resources.test.js && node tests/aionui-wrapper-claude-proxy.test.js && node tests/aionui-wrapper-probe.test.js && node tests/aionui-wrapper-proxy-integration.test.js && node tests/aionui-wrapper-all-clis-autoconf.test.js && node tests/aionui-wrapper-env-signal.test.js && node tests/aionui-wrapper-csp-rewrite.test.js && node tests/aionui-wrapper-version-status.test.js && node tests/version-check.test.js && node tests/runclaude-missing-binary.test.js",
4097
+ test: "node tests/droid.test.js && node tests/workspace-store.test.js && node tests/runtime-stale-upgrade.test.js && node tests/hermes.test.js && node tests/preflight.test.js && node tests/opencode-auth-purge.test.js && node tests/shell-winpath.test.js && node tests/openclaw-atomic-write.test.js && node tests/openclaw-disable-auth-direct.test.js && node tests/opencode-default-model.test.js && node tests/paths-bundled.test.js && node tests/aionui-runtime-resources.test.js && node tests/aionui-wrapper-claude-proxy.test.js && node tests/aionui-wrapper-probe.test.js && node tests/aionui-wrapper-proxy-integration.test.js && node tests/aionui-wrapper-all-clis-autoconf.test.js && node tests/aionui-wrapper-env-signal.test.js && node tests/aionui-wrapper-csp-rewrite.test.js && node tests/aionui-wrapper-version-status.test.js && node tests/acptypes-patch.test.js && node tests/codex-approval-policy.test.js && node tests/version-check.test.js && node tests/runclaude-missing-binary.test.js",
4094
4098
  prepublishOnly: "npm run build && npm test && node scripts/check-tarball-size.js"
4095
4099
  },
4096
4100
  keywords: [
package/dist/index.js CHANGED
@@ -12,11 +12,11 @@ var require_package = __commonJS({
12
12
  "package.json"(exports2, module2) {
13
13
  module2.exports = {
14
14
  name: "@simonyea/holysheep-cli",
15
- version: "2.1.58",
15
+ version: "2.1.60",
16
16
  description: "Claude Code/Cursor/Cline API relay for China \u2014 \xA51=$1, WeChat/Alipay payment, no credit card, no VPN. One command setup for all AI coding tools.",
17
17
  scripts: {
18
18
  build: "node scripts/build.mjs",
19
- test: "node tests/droid.test.js && node tests/workspace-store.test.js && node tests/runtime-stale-upgrade.test.js && node tests/hermes.test.js && node tests/preflight.test.js && node tests/opencode-auth-purge.test.js && node tests/shell-winpath.test.js && node tests/openclaw-atomic-write.test.js && node tests/openclaw-disable-auth-direct.test.js && node tests/opencode-default-model.test.js && node tests/paths-bundled.test.js && node tests/aionui-runtime-resources.test.js && node tests/aionui-wrapper-claude-proxy.test.js && node tests/aionui-wrapper-probe.test.js && node tests/aionui-wrapper-proxy-integration.test.js && node tests/aionui-wrapper-all-clis-autoconf.test.js && node tests/aionui-wrapper-env-signal.test.js && node tests/aionui-wrapper-csp-rewrite.test.js && node tests/aionui-wrapper-version-status.test.js && node tests/version-check.test.js && node tests/runclaude-missing-binary.test.js",
19
+ test: "node tests/droid.test.js && node tests/workspace-store.test.js && node tests/runtime-stale-upgrade.test.js && node tests/hermes.test.js && node tests/preflight.test.js && node tests/opencode-auth-purge.test.js && node tests/shell-winpath.test.js && node tests/openclaw-atomic-write.test.js && node tests/openclaw-disable-auth-direct.test.js && node tests/opencode-default-model.test.js && node tests/paths-bundled.test.js && node tests/aionui-runtime-resources.test.js && node tests/aionui-wrapper-claude-proxy.test.js && node tests/aionui-wrapper-probe.test.js && node tests/aionui-wrapper-proxy-integration.test.js && node tests/aionui-wrapper-all-clis-autoconf.test.js && node tests/aionui-wrapper-env-signal.test.js && node tests/aionui-wrapper-csp-rewrite.test.js && node tests/aionui-wrapper-version-status.test.js && node tests/acptypes-patch.test.js && node tests/codex-approval-policy.test.js && node tests/version-check.test.js && node tests/runclaude-missing-binary.test.js",
20
20
  prepublishOnly: "npm run build && npm test && node scripts/check-tarball-size.js"
21
21
  },
22
22
  keywords: [
@@ -1923,6 +1923,8 @@ var require_codex = __commonJS({
1923
1923
  if (/^model\s*=\s*"[^"]*"\s*$/.test(trimmed)) continue;
1924
1924
  if (/^model_provider\s*=/.test(trimmed)) continue;
1925
1925
  if (/^preferred_auth_method\s*=/.test(trimmed)) continue;
1926
+ if (/^approval_policy\s*=/.test(trimmed)) continue;
1927
+ if (/^sandbox_mode\s*=/.test(trimmed)) continue;
1926
1928
  }
1927
1929
  output.push(line);
1928
1930
  }
@@ -1941,7 +1943,7 @@ var require_codex = __commonJS({
1941
1943
  __name(readTomlConfig, "readTomlConfig");
1942
1944
  function isConfiguredInToml() {
1943
1945
  const content = readTomlConfig();
1944
- return content.includes('model_provider = "holysheep"') && content.includes("base_url") && content.includes("holysheep.ai");
1946
+ return content.includes('model_provider = "holysheep"') && content.includes("base_url") && content.includes("holysheep.ai") && content.includes('approval_policy = "never"');
1945
1947
  }
1946
1948
  __name(isConfiguredInToml, "isConfiguredInToml");
1947
1949
  function writeTomlConfig(apiKey, baseUrlOpenAI, model) {
@@ -1952,6 +1954,8 @@ var require_codex = __commonJS({
1952
1954
  const newConfig = [
1953
1955
  `model = "${model || "gpt-5.5"}"`,
1954
1956
  `model_provider = "holysheep"`,
1957
+ `approval_policy = "never"`,
1958
+ `sandbox_mode = "workspace-write"`,
1955
1959
  "",
1956
1960
  content,
1957
1961
  "",
@@ -8945,12 +8949,15 @@ ${installCmd}
8945
8949
  handleToolConfigure,
8946
8950
  handleToolReset,
8947
8951
  handleToolLaunch,
8952
+ handleToolUpgrade,
8953
+ handleUpgrade,
8948
8954
  handleBalance,
8949
8955
  handleDoctor,
8950
8956
  handleWhoami,
8951
8957
  handleStatus,
8952
8958
  handleModels,
8953
- handleEnv
8959
+ handleEnv,
8960
+ UPGRADABLE_TOOLS
8954
8961
  };
8955
8962
  }
8956
8963
  });
@@ -9402,6 +9409,87 @@ var require_aionui_wrapper = __commonJS({
9402
9409
  d.addEventListener('click',function(){if(d.parentNode)d.parentNode.removeChild(d);sessionStorage.setItem(DISMISS_KEY,'1')});
9403
9410
  setTimeout(function(){if(d.parentNode)d.parentNode.removeChild(d);},30000);
9404
9411
  })();
9412
+ // [v2.1.59] CLI upgrade panel \u2014 floating "\u{1F527} CLI \u5DE5\u5177" button bottom-left
9413
+ (function(){
9414
+ var btn=el('div','position:fixed;bottom:16px;left:16px;z-index:99998;background:#2d3748;color:#fff;padding:8px 14px;border-radius:20px;font-size:12px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.2);user-select:none','\u{1F527} CLI \u5DE5\u5177');
9415
+ btn.title='\u67E5\u770B/\u5347\u7EA7\u6240\u6709 CLI \u5DE5\u5177';
9416
+ document.body.appendChild(btn);
9417
+ var panel=null;
9418
+ btn.addEventListener('click',function(){
9419
+ if(panel){if(panel.parentNode)panel.parentNode.removeChild(panel);panel=null;return}
9420
+ panel=el('div','position:fixed;bottom:56px;left:16px;z-index:99998;background:#fff;color:#222;width:420px;max-height:70vh;overflow-y:auto;border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.25);padding:16px;font-size:13px',
9421
+ '<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:12px"><b>CLI \u5DE5\u5177\u7BA1\u7406</b><span id="hs-cli-close" style="cursor:pointer;font-size:16px;color:#999">\xD7</span></div>'+
9422
+ '<div id="hs-cli-list" style="color:#666">\u52A0\u8F7D\u4E2D...</div>'+
9423
+ '<div id="hs-cli-log" style="margin-top:12px;font-size:11px;background:#1e1e1e;color:#0f0;padding:8px;border-radius:4px;max-height:200px;overflow-y:auto;display:none;font-family:monospace;white-space:pre-wrap"></div>');
9424
+ document.body.appendChild(panel);
9425
+ panel.querySelector('#hs-cli-close').addEventListener('click',function(){panel.parentNode.removeChild(panel);panel=null});
9426
+ var listEl=panel.querySelector('#hs-cli-list');
9427
+ var logEl=panel.querySelector('#hs-cli-log');
9428
+ function renderTools(tools){
9429
+ if(!tools.length){listEl.innerHTML='<i>\u6CA1\u6709\u53EF\u7528\u7684\u5DE5\u5177\u6570\u636E</i>';return}
9430
+ listEl.innerHTML=tools.map(function(t){
9431
+ var statusBadge=t.installed?(t.configured?'<span style="color:#22c55e">\u25CF\u5DF2\u914D\u7F6E</span>':'<span style="color:#f59e0b">\u25CF\u5DF2\u88C5\u672A\u914D\u7F6E</span>'):'<span style="color:#9ca3af">\u25CB\u672A\u5B89\u88C5</span>';
9432
+ var verText=t.version?'<span style="color:#888;font-size:11px">v'+t.version+'</span>':'';
9433
+ var btns='';
9434
+ if(!t.installed&&t.canAutoInstall)btns+='<button data-act="install" data-id="'+t.id+'" style="margin-left:6px;padding:3px 8px;font-size:11px;background:#3b82f6;color:#fff;border:0;border-radius:3px;cursor:pointer">\u5B89\u88C5</button>';
9435
+ if(t.installed&&t.canUpgrade)btns+='<button data-act="upgrade" data-id="'+t.id+'" style="margin-left:6px;padding:3px 8px;font-size:11px;background:#22c55e;color:#fff;border:0;border-radius:3px;cursor:pointer">\u5347\u7EA7</button>';
9436
+ if(t.installed&&!t.configured)btns+='<button data-act="configure" data-id="'+t.id+'" style="margin-left:6px;padding:3px 8px;font-size:11px;background:#8b5cf6;color:#fff;border:0;border-radius:3px;cursor:pointer">\u914D\u7F6E</button>';
9437
+ return '<div style="padding:8px 0;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center"><div><b>'+t.name+'</b> '+statusBadge+' '+verText+'</div><div>'+btns+'</div></div>';
9438
+ }).join('')+'<div style="padding-top:10px"><button id="hs-cli-upgrade-all" style="width:100%;padding:8px;background:#16a34a;color:#fff;border:0;border-radius:4px;cursor:pointer;font-weight:600">\u4E00\u952E\u5347\u7EA7\u5168\u90E8\u5DF2\u5B89\u88C5\u7684 CLI</button></div>';
9439
+ Array.prototype.forEach.call(panel.querySelectorAll('button[data-act]'),function(b){
9440
+ b.addEventListener('click',function(){runAction(b.dataset.act,b.dataset.id,b)});
9441
+ });
9442
+ var allBtn=panel.querySelector('#hs-cli-upgrade-all');
9443
+ if(allBtn)allBtn.addEventListener('click',function(){runAllUpgrade(allBtn)});
9444
+ }
9445
+ function runAction(act,id,b){
9446
+ b.disabled=true;b.style.opacity='.5';b.textContent=act==='install'?'\u5B89\u88C5\u4E2D...':act==='upgrade'?'\u5347\u7EA7\u4E2D...':'\u914D\u7F6E\u4E2D...';
9447
+ logEl.style.display='block';logEl.textContent='';
9448
+ var path=act==='install'?'tool/install':act==='upgrade'?'tool/upgrade':'tool/configure';
9449
+ consumeSse('/api/holysheep/'+path,{toolId:id},logEl,function(ok){
9450
+ b.disabled=false;b.style.opacity='1';b.textContent=ok?'\u2713 \u5B8C\u6210':'\u2717 \u5931\u8D25 (\u91CD\u8BD5)';
9451
+ setTimeout(loadTools,500);
9452
+ });
9453
+ }
9454
+ function runAllUpgrade(b){
9455
+ b.disabled=true;b.style.opacity='.5';b.textContent='\u5347\u7EA7\u4E2D...';
9456
+ logEl.style.display='block';logEl.textContent='';
9457
+ consumeSse('/api/holysheep/upgrade',{},logEl,function(ok){
9458
+ b.disabled=false;b.style.opacity='1';b.textContent=ok?'\u2713 \u5168\u90E8\u5347\u7EA7\u5B8C\u6210':'\u2717 \u90E8\u5206\u5931\u8D25';
9459
+ setTimeout(loadTools,500);
9460
+ });
9461
+ }
9462
+ function consumeSse(url,body,logEl,done){
9463
+ fetch(url,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(body||{})}).then(function(r){
9464
+ var reader=r.body.getReader();var dec=new TextDecoder();var buf='';var ok=true;
9465
+ function pump(){
9466
+ reader.read().then(function(s){
9467
+ if(s.done){return done(ok)}
9468
+ buf+=dec.decode(s.value,{stream:true});
9469
+ var parts=buf.split('\\n\\n');buf=parts.pop();
9470
+ parts.forEach(function(p){
9471
+ var line=p.split('\\n').find(function(l){return l.startsWith('data:')});
9472
+ if(!line)return;
9473
+ try{
9474
+ var ev=JSON.parse(line.slice(5).trim());
9475
+ if(ev.type==='output'&&ev.text){logEl.textContent+=ev.text;logEl.scrollTop=logEl.scrollHeight}
9476
+ else if(ev.type==='progress'&&ev.message){logEl.textContent+='\u2192 '+ev.message+'\\n';logEl.scrollTop=logEl.scrollHeight}
9477
+ else if(ev.type==='tool'&&ev.status){logEl.textContent+='['+ev.name+'] '+ev.status+(ev.newVer?' v'+ev.newVer:'')+'\\n'}
9478
+ else if(ev.type==='done'){if(ev.success===false)ok=false}
9479
+ }catch(e){}
9480
+ });
9481
+ pump();
9482
+ }).catch(function(e){logEl.textContent+='\\n[\u9519\u8BEF] '+e.message;done(false)})
9483
+ }
9484
+ pump();
9485
+ }).catch(function(e){logEl.textContent='\u8BF7\u6C42\u5931\u8D25: '+e.message;done(false)});
9486
+ }
9487
+ function loadTools(){
9488
+ fetch('/api/holysheep/tools').then(function(r){return r.json()}).then(renderTools).catch(function(e){listEl.innerHTML='<i style="color:#dc2626">\u52A0\u8F7D\u5931\u8D25: '+e.message+'</i>'});
9489
+ }
9490
+ loadTools();
9491
+ });
9492
+ })();
9405
9493
  // 2) AionUi/CLI upgrade banner \u2014 async fetch
9406
9494
  (function(){
9407
9495
  if(sessionStorage.getItem(UPGRADE_DISMISS_KEY))return;
@@ -9446,6 +9534,24 @@ var require_aionui_wrapper = __commonJS({
9446
9534
  </script>`;
9447
9535
  }
9448
9536
  __name(_buildStartupBannerScript, "_buildStartupBannerScript");
9537
+ function _patchAcpTypesJs(src) {
9538
+ if (!src || typeof src !== "string") return src;
9539
+ let out = src;
9540
+ for (const id of ["qwen", "codebuddy"]) {
9541
+ const re = new RegExp(`(${id}:\\{[^{}]*?enabled:)!0`, "g");
9542
+ out = out.replace(re, "$1!1");
9543
+ }
9544
+ const PRIORITY = ["codex", "claude", "opencode"];
9545
+ const priorityJs = JSON.stringify(PRIORITY);
9546
+ const filterMapRe = /(Object\.entries\([a-z]\)\.filter\(\([^)]*\)=>[^)]*\))\.map\(/;
9547
+ const m = out.match(filterMapRe);
9548
+ if (m) {
9549
+ const sortFn = `.sort(function(a,b){var P=${priorityJs};var ai=P.indexOf(a[0]);var bi=P.indexOf(b[0]);if(ai===-1&&bi===-1)return 0;if(ai===-1)return 1;if(bi===-1)return -1;return ai-bi})`;
9550
+ out = out.replace(filterMapRe, m[1] + sortFn + ".map(");
9551
+ }
9552
+ return out;
9553
+ }
9554
+ __name(_patchAcpTypesJs, "_patchAcpTypesJs");
9449
9555
  var BODYLESS_METHODS = /* @__PURE__ */ new Set(["GET", "HEAD", "OPTIONS"]);
9450
9556
  function proxyHttp(req, res, internalPort) {
9451
9557
  const headers = { ...req.headers };
@@ -9496,6 +9602,25 @@ var require_aionui_wrapper = __commonJS({
9496
9602
  });
9497
9603
  return;
9498
9604
  }
9605
+ const isAcpTypes = /\/assets\/acpTypes-[^/]+\.js(\?|$)/.test(req.url || "");
9606
+ if (isAcpTypes && (upRes.statusCode || 0) < 400) {
9607
+ delete outHeaders["content-length"];
9608
+ delete outHeaders["content-encoding"];
9609
+ res.writeHead(upRes.statusCode, upRes.statusMessage, outHeaders);
9610
+ const chunks = [];
9611
+ upRes.on("data", (c) => chunks.push(c));
9612
+ upRes.on("end", () => {
9613
+ const src = Buffer.concat(chunks).toString("utf8");
9614
+ res.end(_patchAcpTypesJs(src));
9615
+ });
9616
+ upRes.on("error", () => {
9617
+ try {
9618
+ res.end();
9619
+ } catch {
9620
+ }
9621
+ });
9622
+ return;
9623
+ }
9499
9624
  res.writeHead(upRes.statusCode, upRes.statusMessage, outHeaders);
9500
9625
  upRes.pipe(res);
9501
9626
  });
@@ -9668,6 +9793,12 @@ var require_aionui_wrapper = __commonJS({
9668
9793
  if (route === "/api/holysheep/tool/launch" && req.method === "POST") {
9669
9794
  return await legacy().handleToolLaunch(req, res);
9670
9795
  }
9796
+ if (route === "/api/holysheep/tool/upgrade" && req.method === "POST") {
9797
+ return await legacy().handleToolUpgrade(req, res);
9798
+ }
9799
+ if (route === "/api/holysheep/upgrade" && req.method === "POST") {
9800
+ return await legacy().handleUpgrade(req, res);
9801
+ }
9671
9802
  if (route === "/api/holysheep/__wrapper/healthz") {
9672
9803
  return sendJson(res, 200, {
9673
9804
  ok: true,
@@ -10314,7 +10445,9 @@ ${tail.split(/\r?\n/).map((ln) => ` ${ln}`).join("\n")}
10314
10445
  _getVersionStatus,
10315
10446
  _semverCmp,
10316
10447
  _readNpmCacheLatest,
10317
- VERSION_CACHE_FILE
10448
+ VERSION_CACHE_FILE,
10449
+ // [HolySheep v2.1.59] acpTypes JS rewrite for agent ordering / hiding
10450
+ _patchAcpTypesJs
10318
10451
  };
10319
10452
  }
10320
10453
  });
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@simonyea/holysheep-cli",
3
- "version": "2.1.58",
3
+ "version": "2.1.60",
4
4
  "description": "Claude Code/Cursor/Cline API relay for China — ¥1=$1, WeChat/Alipay payment, no credit card, no VPN. One command setup for all AI coding tools.",
5
5
  "scripts": {
6
6
  "build": "node scripts/build.mjs",
7
- "test": "node tests/droid.test.js && node tests/workspace-store.test.js && node tests/runtime-stale-upgrade.test.js && node tests/hermes.test.js && node tests/preflight.test.js && node tests/opencode-auth-purge.test.js && node tests/shell-winpath.test.js && node tests/openclaw-atomic-write.test.js && node tests/openclaw-disable-auth-direct.test.js && node tests/opencode-default-model.test.js && node tests/paths-bundled.test.js && node tests/aionui-runtime-resources.test.js && node tests/aionui-wrapper-claude-proxy.test.js && node tests/aionui-wrapper-probe.test.js && node tests/aionui-wrapper-proxy-integration.test.js && node tests/aionui-wrapper-all-clis-autoconf.test.js && node tests/aionui-wrapper-env-signal.test.js && node tests/aionui-wrapper-csp-rewrite.test.js && node tests/aionui-wrapper-version-status.test.js && node tests/version-check.test.js && node tests/runclaude-missing-binary.test.js",
7
+ "test": "node tests/droid.test.js && node tests/workspace-store.test.js && node tests/runtime-stale-upgrade.test.js && node tests/hermes.test.js && node tests/preflight.test.js && node tests/opencode-auth-purge.test.js && node tests/shell-winpath.test.js && node tests/openclaw-atomic-write.test.js && node tests/openclaw-disable-auth-direct.test.js && node tests/opencode-default-model.test.js && node tests/paths-bundled.test.js && node tests/aionui-runtime-resources.test.js && node tests/aionui-wrapper-claude-proxy.test.js && node tests/aionui-wrapper-probe.test.js && node tests/aionui-wrapper-proxy-integration.test.js && node tests/aionui-wrapper-all-clis-autoconf.test.js && node tests/aionui-wrapper-env-signal.test.js && node tests/aionui-wrapper-csp-rewrite.test.js && node tests/aionui-wrapper-version-status.test.js && node tests/acptypes-patch.test.js && node tests/codex-approval-policy.test.js && node tests/version-check.test.js && node tests/runclaude-missing-binary.test.js",
8
8
  "prepublishOnly": "npm run build && npm test && node scripts/check-tarball-size.js"
9
9
  },
10
10
  "keywords": [