| 114 | const LEGACY_AUTH_TOKEN_ENV_VAR = 'TOKEN'; |
| 115 | |
| 116 | function resolveAuthToken(cliToken, authDisabled) { |
| 117 | if (authDisabled) return null; |
| 118 | if (cliToken) return cliToken; |
| 119 | if (process.env[AUTH_TOKEN_ENV_VAR]) return process.env[AUTH_TOKEN_ENV_VAR]; |
| 120 | try { |
| 121 | const saved = fs.readFileSync(TOKEN_FILE, 'utf8').trim(); |
| 122 | if (saved) return saved; |
| 123 | } catch {} |
| 124 | const generated = crypto.randomBytes(24).toString('base64url'); |
| 125 | try { fs.writeFileSync(TOKEN_FILE, generated + '\n', { mode: 0o600 }); } catch {} |
| 126 | return generated; |
| 127 | } |
| 128 | |
| 129 | function initConfig() { |
| 130 | const parsed = parseCliArgs(process.argv); |