@simonyea/holysheep-cli 2.1.53 → 2.1.55
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/configure-worker.js +2 -2
- package/dist/index.js +206 -16
- package/package.json +2 -2
package/dist/configure-worker.js
CHANGED
|
@@ -4019,11 +4019,11 @@ var require_package = __commonJS({
|
|
|
4019
4019
|
"package.json"(exports2, module2) {
|
|
4020
4020
|
module2.exports = {
|
|
4021
4021
|
name: "@simonyea/holysheep-cli",
|
|
4022
|
-
version: "2.1.
|
|
4022
|
+
version: "2.1.55",
|
|
4023
4023
|
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.",
|
|
4024
4024
|
scripts: {
|
|
4025
4025
|
build: "node scripts/build.mjs",
|
|
4026
|
-
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/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/version-check.test.js && node tests/runclaude-missing-binary.test.js",
|
|
4026
|
+
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/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",
|
|
4027
4027
|
prepublishOnly: "npm run build && npm test && node scripts/check-tarball-size.js"
|
|
4028
4028
|
},
|
|
4029
4029
|
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.
|
|
15
|
+
version: "2.1.55",
|
|
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/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/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/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",
|
|
20
20
|
prepublishOnly: "npm run build && npm test && node scripts/check-tarball-size.js"
|
|
21
21
|
},
|
|
22
22
|
keywords: [
|
|
@@ -8854,6 +8854,16 @@ var require_aionui_wrapper = __commonJS({
|
|
|
8854
8854
|
// tool ids that are installed but not configured
|
|
8855
8855
|
openclawNeedsPairing: false
|
|
8856
8856
|
};
|
|
8857
|
+
var _aionuiUpgrade = {
|
|
8858
|
+
status: "idle",
|
|
8859
|
+
// idle | running | success | error
|
|
8860
|
+
pid: null,
|
|
8861
|
+
logFile: null,
|
|
8862
|
+
startedAt: null,
|
|
8863
|
+
finishedAt: null,
|
|
8864
|
+
exitCode: null,
|
|
8865
|
+
message: ""
|
|
8866
|
+
};
|
|
8857
8867
|
function log(msg) {
|
|
8858
8868
|
console.log(`[holysheep-web] ${msg}`);
|
|
8859
8869
|
}
|
|
@@ -9199,10 +9209,9 @@ var require_aionui_wrapper = __commonJS({
|
|
|
9199
9209
|
}
|
|
9200
9210
|
}
|
|
9201
9211
|
__name(rewriteCspHeaders, "rewriteCspHeaders");
|
|
9202
|
-
function
|
|
9212
|
+
function _getStartupWarningMessages() {
|
|
9203
9213
|
const notInstalled = _startupWarnings.notInstalled || [];
|
|
9204
9214
|
const needsPairing = _startupWarnings.openclawNeedsPairing;
|
|
9205
|
-
if (notInstalled.length === 0 && !needsPairing) return "";
|
|
9206
9215
|
const lines = [];
|
|
9207
9216
|
if (notInstalled.length > 0) {
|
|
9208
9217
|
const names = notInstalled.map((id) => {
|
|
@@ -9214,19 +9223,74 @@ var require_aionui_wrapper = __commonJS({
|
|
|
9214
9223
|
if (needsPairing) {
|
|
9215
9224
|
lines.push("\u26A0\uFE0F OpenClaw Gateway \u9700\u8981 Pairing \u8BA4\u8BC1\u3002\u8BF7\u8FD0\u884C <code>hs openclaw</code> \u5B8C\u6210\u914D\u7F6E\uFF0C\u5426\u5219 OpenClaw \u5BF9\u8BDD\u5C06\u6301\u7EED\u62A5\u9519\u3002");
|
|
9216
9225
|
}
|
|
9217
|
-
|
|
9226
|
+
return lines;
|
|
9227
|
+
}
|
|
9228
|
+
__name(_getStartupWarningMessages, "_getStartupWarningMessages");
|
|
9229
|
+
function _buildStartupBannerScript() {
|
|
9230
|
+
const startupMsgs = _getStartupWarningMessages();
|
|
9231
|
+
const startupJson = JSON.stringify(startupMsgs);
|
|
9218
9232
|
return `<script>
|
|
9219
9233
|
(function(){
|
|
9220
|
-
|
|
9221
|
-
|
|
9222
|
-
var
|
|
9223
|
-
if(
|
|
9224
|
-
|
|
9225
|
-
|
|
9226
|
-
|
|
9227
|
-
|
|
9228
|
-
|
|
9229
|
-
|
|
9234
|
+
if(window.__hsBannerInstalled) return; window.__hsBannerInstalled=true;
|
|
9235
|
+
var DISMISS_KEY='hs-startup-banner-dismissed';
|
|
9236
|
+
var UPGRADE_DISMISS_KEY='hs-upgrade-banner-dismissed';
|
|
9237
|
+
function el(tag,style,html){var x=document.createElement(tag);if(style)x.style.cssText=style;if(html!=null)x.innerHTML=html;return x}
|
|
9238
|
+
function showBanner(opts){
|
|
9239
|
+
var bg=opts.color||'#ff8c00';
|
|
9240
|
+
var d=el('div','position:fixed;bottom:16px;right:16px;z-index:99999;max-width:440px;background:'+bg+';color:#fff;padding:12px 16px;border-radius:8px;font-size:13px;line-height:1.5;box-shadow:0 4px 16px rgba(0,0,0,.3)');
|
|
9241
|
+
d.innerHTML=opts.html;
|
|
9242
|
+
document.body.appendChild(d);
|
|
9243
|
+
return d;
|
|
9244
|
+
}
|
|
9245
|
+
// 1) Static startup warnings
|
|
9246
|
+
(function(){
|
|
9247
|
+
if(sessionStorage.getItem(DISMISS_KEY))return;
|
|
9248
|
+
var msgs=${startupJson}; if(!msgs.length)return;
|
|
9249
|
+
var d=showBanner({html:msgs.join('<br><br>')+'<br><span style="font-size:11px;opacity:.8;cursor:pointer">\u70B9\u51FB\u5173\u95ED (\u672C\u6B21\u4F1A\u8BDD\u4E0D\u518D\u663E\u793A)</span>'});
|
|
9250
|
+
d.style.cursor='pointer';
|
|
9251
|
+
d.addEventListener('click',function(){if(d.parentNode)d.parentNode.removeChild(d);sessionStorage.setItem(DISMISS_KEY,'1')});
|
|
9252
|
+
setTimeout(function(){if(d.parentNode)d.parentNode.removeChild(d);},30000);
|
|
9253
|
+
})();
|
|
9254
|
+
// 2) AionUi/CLI upgrade banner \u2014 async fetch
|
|
9255
|
+
(function(){
|
|
9256
|
+
if(sessionStorage.getItem(UPGRADE_DISMISS_KEY))return;
|
|
9257
|
+
fetch('/api/holysheep/__wrapper/version-status').then(function(r){return r.json()}).catch(function(){return null}).then(function(j){
|
|
9258
|
+
if(!j||!j.upgradeAvailable)return;
|
|
9259
|
+
var current=j.cli&&j.cli.current||'?';
|
|
9260
|
+
var latest=j.cli&&j.cli.latest||'?';
|
|
9261
|
+
var bannerHtml='\u2728 <b>AionUi \u6709\u65B0\u7248\u672C\u53EF\u7528</b><br>\u5F53\u524D: v'+current+' \u2192 \u6700\u65B0: v'+latest+'<br><br>'+
|
|
9262
|
+
'<button id="hs-upgrade-btn" style="background:#fff;color:#1976d2;border:0;padding:6px 12px;border-radius:4px;font-size:12px;cursor:pointer;font-weight:600">\u7ACB\u5373\u66F4\u65B0</button> '+
|
|
9263
|
+
'<button id="hs-upgrade-dismiss" style="background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5);padding:6px 12px;border-radius:4px;font-size:12px;cursor:pointer">\u7A0D\u540E</button>'+
|
|
9264
|
+
'<div id="hs-upgrade-progress" style="margin-top:10px;font-size:11px;display:none"></div>';
|
|
9265
|
+
var d=showBanner({color:'#1976d2',html:bannerHtml});
|
|
9266
|
+
var btn=d.querySelector('#hs-upgrade-btn');
|
|
9267
|
+
var dis=d.querySelector('#hs-upgrade-dismiss');
|
|
9268
|
+
var prog=d.querySelector('#hs-upgrade-progress');
|
|
9269
|
+
dis.addEventListener('click',function(){if(d.parentNode)d.parentNode.removeChild(d);sessionStorage.setItem(UPGRADE_DISMISS_KEY,'1')});
|
|
9270
|
+
btn.addEventListener('click',function(){
|
|
9271
|
+
btn.disabled=true;btn.style.opacity='.6';btn.textContent='\u6B63\u5728\u542F\u52A8...';
|
|
9272
|
+
prog.style.display='block';prog.textContent='\u63D0\u4EA4\u540E\u53F0\u66F4\u65B0\u4EFB\u52A1...';
|
|
9273
|
+
fetch('/api/holysheep/__wrapper/aionui-update',{method:'POST'}).then(function(r){return r.json()}).then(function(res){
|
|
9274
|
+
if(!res||!res.ok){prog.textContent='\u542F\u52A8\u5931\u8D25: '+((res&&res.message)||'unknown');return}
|
|
9275
|
+
prog.textContent='\u5347\u7EA7\u4E2D (pid='+res.pid+')... \u5B8C\u6210\u540E\u8BF7\u5173\u95ED\u5E76\u91CD\u542F hs web';
|
|
9276
|
+
var poll=setInterval(function(){
|
|
9277
|
+
fetch('/api/holysheep/__wrapper/aionui-update').then(function(r){return r.json()}).then(function(s){
|
|
9278
|
+
if(!s)return;
|
|
9279
|
+
if(s.status==='running'){prog.textContent='\u5347\u7EA7\u4E2D (pid='+s.pid+')...';return}
|
|
9280
|
+
clearInterval(poll);
|
|
9281
|
+
if(s.status==='success'){
|
|
9282
|
+
btn.style.display='none';dis.textContent='\u6211\u77E5\u9053\u4E86';
|
|
9283
|
+
prog.innerHTML='\u2705 \u5347\u7EA7\u5B8C\u6210 (exit='+s.exitCode+')<br>\u8BF7<b>\u5173\u95ED\u5E76\u91CD\u65B0\u542F\u52A8 hs web</b> \u4EE5\u4F7F\u7528\u65B0\u7248\u672C\u3002';
|
|
9284
|
+
}else{
|
|
9285
|
+
prog.innerHTML='\u274C \u5347\u7EA7\u5931\u8D25 (exit='+s.exitCode+')<br>\u8BF7\u6253\u5F00\u7EC8\u7AEF\u8FD0\u884C: <code>npm i -g @simonyea/holysheep-cli@latest</code><br>\u65E5\u5FD7: <code>'+(s.logFile||'-')+'</code>';
|
|
9286
|
+
btn.disabled=false;btn.style.opacity='1';btn.textContent='\u91CD\u8BD5';
|
|
9287
|
+
}
|
|
9288
|
+
}).catch(function(){})
|
|
9289
|
+
},2000);
|
|
9290
|
+
}).catch(function(e){prog.textContent='\u8BF7\u6C42\u5931\u8D25: '+e.message});
|
|
9291
|
+
});
|
|
9292
|
+
});
|
|
9293
|
+
})();
|
|
9230
9294
|
})();
|
|
9231
9295
|
</script>`;
|
|
9232
9296
|
}
|
|
@@ -9467,6 +9531,24 @@ var require_aionui_wrapper = __commonJS({
|
|
|
9467
9531
|
openclawNeedsPairing: _startupWarnings.openclawNeedsPairing
|
|
9468
9532
|
});
|
|
9469
9533
|
}
|
|
9534
|
+
if (route === "/api/holysheep/__wrapper/version-status" && req.method === "GET") {
|
|
9535
|
+
return sendJson(res, 200, _getVersionStatus());
|
|
9536
|
+
}
|
|
9537
|
+
if (route === "/api/holysheep/__wrapper/aionui-update" && req.method === "POST") {
|
|
9538
|
+
const result = _startDetachedNpmUpgrade();
|
|
9539
|
+
return sendJson(res, result.ok ? 200 : 409, result);
|
|
9540
|
+
}
|
|
9541
|
+
if (route === "/api/holysheep/__wrapper/aionui-update" && req.method === "GET") {
|
|
9542
|
+
return sendJson(res, 200, {
|
|
9543
|
+
status: _aionuiUpgrade.status,
|
|
9544
|
+
pid: _aionuiUpgrade.pid,
|
|
9545
|
+
logFile: _aionuiUpgrade.logFile,
|
|
9546
|
+
startedAt: _aionuiUpgrade.startedAt,
|
|
9547
|
+
finishedAt: _aionuiUpgrade.finishedAt,
|
|
9548
|
+
exitCode: _aionuiUpgrade.exitCode,
|
|
9549
|
+
message: _aionuiUpgrade.message
|
|
9550
|
+
});
|
|
9551
|
+
}
|
|
9470
9552
|
return proxyHttp(req, res, ctx.internalPort);
|
|
9471
9553
|
} catch (e) {
|
|
9472
9554
|
try {
|
|
@@ -9643,6 +9725,109 @@ var require_aionui_wrapper = __commonJS({
|
|
|
9643
9725
|
}
|
|
9644
9726
|
}
|
|
9645
9727
|
__name(_checkOpenClawPairingNeeded, "_checkOpenClawPairingNeeded");
|
|
9728
|
+
var VERSION_CACHE_FILE = path.join(os.homedir(), ".holysheep", "last-version-check.json");
|
|
9729
|
+
var UPGRADE_LOG_FILE = path.join(os.homedir(), ".holysheep", "auto-update.log");
|
|
9730
|
+
var PACKAGE_NAME = "@simonyea/holysheep-cli";
|
|
9731
|
+
function _readLocalCliVersion() {
|
|
9732
|
+
try {
|
|
9733
|
+
return require_package().version || null;
|
|
9734
|
+
} catch {
|
|
9735
|
+
return null;
|
|
9736
|
+
}
|
|
9737
|
+
}
|
|
9738
|
+
__name(_readLocalCliVersion, "_readLocalCliVersion");
|
|
9739
|
+
function _readNpmCacheLatest() {
|
|
9740
|
+
try {
|
|
9741
|
+
if (!fs.existsSync(VERSION_CACHE_FILE)) return null;
|
|
9742
|
+
const j = JSON.parse(fs.readFileSync(VERSION_CACHE_FILE, "utf8"));
|
|
9743
|
+
if (j && typeof j.remote === "string") return j.remote;
|
|
9744
|
+
} catch {
|
|
9745
|
+
}
|
|
9746
|
+
return null;
|
|
9747
|
+
}
|
|
9748
|
+
__name(_readNpmCacheLatest, "_readNpmCacheLatest");
|
|
9749
|
+
function _semverCmp(a, b) {
|
|
9750
|
+
const pa = String(a || "").replace(/^v/, "").match(/^(\d+)\.(\d+)\.(\d+)/);
|
|
9751
|
+
const pb = String(b || "").replace(/^v/, "").match(/^(\d+)\.(\d+)\.(\d+)/);
|
|
9752
|
+
if (!pa || !pb) return 0;
|
|
9753
|
+
for (let i = 1; i <= 3; i++) {
|
|
9754
|
+
const da = Number(pa[i]) - Number(pb[i]);
|
|
9755
|
+
if (da !== 0) return da;
|
|
9756
|
+
}
|
|
9757
|
+
return 0;
|
|
9758
|
+
}
|
|
9759
|
+
__name(_semverCmp, "_semverCmp");
|
|
9760
|
+
function _getVersionStatus() {
|
|
9761
|
+
const current = _readLocalCliVersion();
|
|
9762
|
+
const latest = _readNpmCacheLatest();
|
|
9763
|
+
let upgradeAvailable = false;
|
|
9764
|
+
if (current && latest) {
|
|
9765
|
+
upgradeAvailable = _semverCmp(latest, current) > 0;
|
|
9766
|
+
}
|
|
9767
|
+
return {
|
|
9768
|
+
cli: { current, latest, upgradeAvailable },
|
|
9769
|
+
upgradeAvailable
|
|
9770
|
+
};
|
|
9771
|
+
}
|
|
9772
|
+
__name(_getVersionStatus, "_getVersionStatus");
|
|
9773
|
+
function _startDetachedNpmUpgrade() {
|
|
9774
|
+
if (_aionuiUpgrade.status === "running") {
|
|
9775
|
+
return { ok: false, message: "\u5DF2\u6709\u5347\u7EA7\u4EFB\u52A1\u5728\u8FD0\u884C" };
|
|
9776
|
+
}
|
|
9777
|
+
try {
|
|
9778
|
+
fs.mkdirSync(path.dirname(UPGRADE_LOG_FILE), { recursive: true });
|
|
9779
|
+
const header = `[${(/* @__PURE__ */ new Date()).toISOString()}] starting auto-update of ${PACKAGE_NAME}
|
|
9780
|
+
[platform=${process.platform}] [pid-parent=${process.pid}]
|
|
9781
|
+
`;
|
|
9782
|
+
fs.writeFileSync(UPGRADE_LOG_FILE, header);
|
|
9783
|
+
const out = fs.openSync(UPGRADE_LOG_FILE, "a");
|
|
9784
|
+
const isWin = process.platform === "win32";
|
|
9785
|
+
const cmd = isWin ? "npm.cmd" : "npm";
|
|
9786
|
+
const args = ["i", "-g", `${PACKAGE_NAME}@latest`];
|
|
9787
|
+
const child = spawn(cmd, args, {
|
|
9788
|
+
detached: true,
|
|
9789
|
+
stdio: ["ignore", out, out],
|
|
9790
|
+
windowsHide: true,
|
|
9791
|
+
shell: isWin
|
|
9792
|
+
// npm.cmd is a .cmd shim on Windows; needs shell to resolve via PATH
|
|
9793
|
+
});
|
|
9794
|
+
child.on("error", (err) => {
|
|
9795
|
+
_aionuiUpgrade.status = "error";
|
|
9796
|
+
_aionuiUpgrade.message = err.message;
|
|
9797
|
+
_aionuiUpgrade.finishedAt = nowMs();
|
|
9798
|
+
try {
|
|
9799
|
+
fs.appendFileSync(UPGRADE_LOG_FILE, `[error] spawn failed: ${err.message}
|
|
9800
|
+
`);
|
|
9801
|
+
} catch {
|
|
9802
|
+
}
|
|
9803
|
+
});
|
|
9804
|
+
child.on("exit", (code) => {
|
|
9805
|
+
_aionuiUpgrade.status = code === 0 ? "success" : "error";
|
|
9806
|
+
_aionuiUpgrade.exitCode = code;
|
|
9807
|
+
_aionuiUpgrade.finishedAt = nowMs();
|
|
9808
|
+
try {
|
|
9809
|
+
fs.appendFileSync(UPGRADE_LOG_FILE, `[done] exit code=${code}
|
|
9810
|
+
`);
|
|
9811
|
+
} catch {
|
|
9812
|
+
}
|
|
9813
|
+
});
|
|
9814
|
+
child.unref();
|
|
9815
|
+
_aionuiUpgrade.status = "running";
|
|
9816
|
+
_aionuiUpgrade.pid = child.pid;
|
|
9817
|
+
_aionuiUpgrade.logFile = UPGRADE_LOG_FILE;
|
|
9818
|
+
_aionuiUpgrade.startedAt = nowMs();
|
|
9819
|
+
_aionuiUpgrade.finishedAt = null;
|
|
9820
|
+
_aionuiUpgrade.exitCode = null;
|
|
9821
|
+
_aionuiUpgrade.message = "";
|
|
9822
|
+
log(`detached npm upgrade started (pid=${child.pid}, log=${UPGRADE_LOG_FILE})`);
|
|
9823
|
+
return { ok: true, pid: child.pid, logFile: UPGRADE_LOG_FILE };
|
|
9824
|
+
} catch (e) {
|
|
9825
|
+
_aionuiUpgrade.status = "error";
|
|
9826
|
+
_aionuiUpgrade.message = e.message;
|
|
9827
|
+
return { ok: false, message: e.message };
|
|
9828
|
+
}
|
|
9829
|
+
}
|
|
9830
|
+
__name(_startDetachedNpmUpgrade, "_startDetachedNpmUpgrade");
|
|
9646
9831
|
function _ensureClaudeProxyConfig(apiKey) {
|
|
9647
9832
|
const config = claudeProcessProxy.readConfig();
|
|
9648
9833
|
const next = claudeCodeTool.buildBridgeConfig(apiKey, BASE_URL_ANTHROPIC, {
|
|
@@ -9943,7 +10128,12 @@ ${tail.split(/\r?\n/).map((ln) => ` ${ln}`).join("\n")}
|
|
|
9943
10128
|
ensureOpenClawBridgeRunning,
|
|
9944
10129
|
rewriteCspHeaders,
|
|
9945
10130
|
getOpenClawOrigins,
|
|
9946
|
-
appendOriginsToDirective
|
|
10131
|
+
appendOriginsToDirective,
|
|
10132
|
+
// [HolySheep v2.1.54] Version-status / upgrade helpers
|
|
10133
|
+
_getVersionStatus,
|
|
10134
|
+
_semverCmp,
|
|
10135
|
+
_readNpmCacheLatest,
|
|
10136
|
+
VERSION_CACHE_FILE
|
|
9947
10137
|
};
|
|
9948
10138
|
}
|
|
9949
10139
|
});
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simonyea/holysheep-cli",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.55",
|
|
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/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/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/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",
|
|
8
8
|
"prepublishOnly": "npm run build && npm test && node scripts/check-tarball-size.js"
|
|
9
9
|
},
|
|
10
10
|
"keywords": [
|