panrouter 6.3.0 → 6.3.3

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 (2) hide show
  1. package/package.json +1 -1
  2. package/pool-worker.mjs +12 -16
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "panrouter",
3
- "version": "6.3.0",
3
+ "version": "6.3.3",
4
4
  "description": "让 Claude Code 免费使用 DeepSeek 等模型,无需 API Key",
5
5
  "type": "module",
6
6
  "bin": {
package/pool-worker.mjs CHANGED
@@ -256,7 +256,7 @@ async function doRestart() {
256
256
  clearTimeout(reconnectTimer);
257
257
  reconnectTimer = null;
258
258
  }
259
- await ensureServer();
259
+ ensureServer();
260
260
  reconnectDelay = WS_RECONNECT_BASE;
261
261
  writePid();
262
262
  connectToHub();
@@ -403,13 +403,14 @@ let _serverReady = false;
403
403
 
404
404
  function isServerReady() { return _serverReady; }
405
405
 
406
- async function ensureServer() {
407
- if (await isPortOpen(SERVER_PORT)) {
408
- _serverReady = true;
409
- log(`9router 已就绪 (端口 ${SERVER_PORT})`, "OK");
410
- return;
411
- }
406
+ function ensureServer() {
407
+ isPortOpen(SERVER_PORT).then(open => {
408
+ if (open) { _serverReady = true; log(`9router 已就绪 (端口 ${SERVER_PORT})`, "OK"); return; }
409
+ _ensureServer();
410
+ });
411
+ }
412
412
 
413
+ function _ensureServer() {
413
414
  const setupScript = path.join(__dirname, "setup-9router.cjs");
414
415
  if (!fs.existsSync(setupScript)) {
415
416
  log("找不到 setup-9router.cjs,直接尝试启动 9router", "WARN");
@@ -418,27 +419,22 @@ async function ensureServer() {
418
419
  return;
419
420
  }
420
421
 
421
- // 第一步:跑你的脚本(安装+注入数据库)
422
422
  log("正在执行 9router 安装与数据库配置...");
423
423
  const child = spawn(process.execPath, [setupScript], {
424
- cwd: __dirname, stdio: "ignore", detached: true,
424
+ cwd: __dirname, stdio: "inherit",
425
425
  });
426
- child.unref();
427
-
428
- // 第二步:脚本退出后直接 spawn 9router(静默不弹窗)
429
426
  child.on("exit", () => {
430
427
  log("部署脚本完成,正在启动 9router...");
431
428
  trySpawn9router();
432
429
  });
433
430
 
434
- // 第三步:后台轮询端口
435
431
  poll9router();
436
432
  }
437
433
 
438
434
  function trySpawn9router() {
439
435
  try {
440
- const r = spawn("9router", [], {
441
- detached: true, windowsHide: true, stdio: "ignore",
436
+ const r = spawn("npx", ["--yes", "9router"], {
437
+ detached: true, stdio: "ignore",
442
438
  });
443
439
  r.unref();
444
440
  } catch (e) {
@@ -522,7 +518,7 @@ export async function start() {
522
518
  cleanupStaleSelf();
523
519
 
524
520
  // 后台启动 9router(不阻塞注册)
525
- await ensureServer();
521
+ ensureServer();
526
522
 
527
523
  writePid();
528
524
  connectToHub();