bingocode 1.1.56 → 1.1.57

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bingocode",
3
- "version": "1.1.56",
3
+ "version": "1.1.57",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "claude": "bin/claude-win.cjs",
@@ -289,30 +289,39 @@ export const CliMenuManager: React.FC = () => {
289
289
  // 动态定位 server 入口,兼容开发环境 (.ts) 和打包环境 (.js)
290
290
  let entry = "";
291
291
  try {
292
- // 尝试从当前文件位置向上寻找 server 目录
293
- const currentDir = path.dirname(new URL(import.meta.url).pathname);
292
+ // 方案 1: 基于 import.meta.url 动态计算 (最通用)
293
+ const __filename = fileURLToPath(import.meta.url);
294
+ const __dirname = path.dirname(__filename);
295
+
296
+ // 方案 2: 尝试包内的几种标准结构
297
+ const pkgRoot = path.resolve(__dirname, '../../'); // 从 src/manager 向上两级到根目录
294
298
  const possiblePaths = [
295
- path.resolve(currentDir, '../server/index.ts'), // 开发源码路径
296
- path.resolve(currentDir, '../server/index.js'), // 编译后路径
297
- path.resolve(currentDir, '../../src/server/index.ts'), // 嵌套结构
298
- path.join(process.cwd(), 'node_modules/bingocode/src/server/index.ts') // npm 安装路径备选
299
+ path.join(__dirname, '../server/index.ts'), // 结构 1: src/manager -> src/server
300
+ path.join(__dirname, '../server/index.js'),
301
+ path.join(pkgRoot, 'src/server/index.ts'), // 结构 2: root -> src/server
302
+ path.join(pkgRoot, 'dist/server.js'),
303
+ path.resolve(process.argv[1], '../../src/server/index.ts'), // 结构 3: 从 bin 文件位置反推
299
304
  ];
300
305
 
301
306
  for (const p of possiblePaths) {
302
- // Windows 路径兼容处理:如果是以 /C:/ 开头的路径需要处理
303
- const formattedPath = process.platform === 'win32' && p.startsWith('/') ? p.substring(1) : p;
304
- if (fs.existsSync(formattedPath)) {
305
- entry = formattedPath;
307
+ if (fs.existsSync(p)) {
308
+ entry = p;
306
309
  break;
307
310
  }
308
311
  }
309
312
  } catch (e) {
310
- // fallback to old logic if path detection fails
311
- entry = path.resolve(process.cwd(), 'src/server/index.ts');
313
+ // Fallback: 如果上面的动态探测挂了,尝试最后的大招:
314
+ // 既然 package.json 里的 name 是 bingocode,我们可以尝试寻找它
315
+ try {
316
+ // 这里不做具体的 require.resolve 以免在非 node 环境报错,但可以手动拼
317
+ entry = path.join(process.cwd(), 'node_modules/bingocode/src/server/index.ts');
318
+ } catch {}
312
319
  }
313
320
 
314
- if (!entry) {
315
- setBootErr('无法定位服务器入口文件');
321
+ if (!entry || !fs.existsSync(entry)) {
322
+ // 最后的诊断信息:显示一下我找过哪里,方便用户反馈
323
+ const lastTry = path.resolve(import.meta.dir || "", '../server/index.ts');
324
+ setBootErr(`无法定位服务器入口文件。请确保 src/server/index.ts 存在。\n尝试路径: ${entry || '未找到'}`);
316
325
  return;
317
326
  }
318
327