// Chat2API headless server entrypoint // Intercepts require('electron') and loads the compiled main process. 'use strict'; process.env.HEADLESS = 'true'; process.env.PORT = process.env.PORT || '7860'; process.env.PROXY_PORT = process.env.PORT; const Module = require('module'); const path = require('path'); const fs = require('fs'); // Patch module resolution: any require('electron') → our stub const _orig = Module._resolveFilename.bind(Module); Module._resolveFilename = function (request, parent, isMain, options) { if (request === 'electron') { return path.resolve('/app/node_modules/electron/index.js'); } return _orig(request, parent, isMain, options); }; // Find the compiled main process entry point const candidates = [ '/app/out/main/index.js', '/app/out/main/index.cjs', '/app/dist/main/index.js', '/app/dist/main/index.cjs', ]; const entry = candidates.find(p => fs.existsSync(p)); if (!entry) { console.error('❌ Could not find compiled main process. Searched:'); candidates.forEach(c => console.error(' -', c)); console.error('\nAll JS files in /app/out and /app/dist:'); try { const { execSync } = require('child_process'); console.error(execSync('find /app/out /app/dist -name "*.js" 2>/dev/null || echo none').toString()); } catch (e) {} process.exit(1); } console.log('🚀 Chat2API starting headless from:', entry); require(entry);