hedgequantx 2.7.80 → 2.7.82

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": "hedgequantx",
3
- "version": "2.7.80",
3
+ "version": "2.7.82",
4
4
  "description": "HedgeQuantX - Prop Futures Trading CLI",
5
5
  "main": "src/app.js",
6
6
  "bin": {
@@ -276,13 +276,41 @@ const handleCliProxyConnection = async (provider, config, boxWidth) => {
276
276
  }
277
277
 
278
278
  } else {
279
- console.log(chalk.gray(' AFTER AUTHENTICATING, PRESS ENTER TO CONTINUE...'));
279
+ // Local machine - browser opens automatically, wait for user to auth
280
+ console.log(chalk.gray(' AFTER AUTHENTICATING IN YOUR BROWSER, PRESS ENTER...'));
280
281
  await prompts.waitForEnter();
282
+
283
+ // Wait for login process to finish saving auth file
284
+ const spinner = ora({ text: 'SAVING AUTHENTICATION...', color: 'yellow' }).start();
285
+
286
+ await new Promise((resolve) => {
287
+ if (!loginResult.childProcess) return resolve();
288
+
289
+ let elapsed = 0;
290
+ const checkInterval = setInterval(() => {
291
+ elapsed += 500;
292
+
293
+ if (loginResult.childProcess.exitCode !== null || loginResult.childProcess.killed) {
294
+ clearInterval(checkInterval);
295
+ resolve();
296
+ return;
297
+ }
298
+
299
+ // Safety timeout after 15s
300
+ if (elapsed >= 15000) {
301
+ clearInterval(checkInterval);
302
+ try { loginResult.childProcess.kill(); } catch (e) { /* ignore */ }
303
+ resolve();
304
+ }
305
+ }, 500);
306
+ });
307
+
308
+ spinner.succeed('AUTHENTICATION SAVED');
281
309
  }
282
310
 
283
311
  // Small delay for CLIProxy to detect new auth file
284
312
  const spinner = ora({ text: 'LOADING MODELS...', color: 'yellow' }).start();
285
- await new Promise(r => setTimeout(r, 1000));
313
+ await new Promise(r => setTimeout(r, 2000));
286
314
 
287
315
  // Fetch models from CLIProxy API
288
316
  const modelsResult = await cliproxy.fetchProviderModels(provider.id);
@@ -373,11 +373,14 @@ const ensureRunning = async (onProgress = null) => {
373
373
  * @returns {Promise<Object>} { success, url, childProcess, isHeadless, error }
374
374
  */
375
375
  const getLoginUrl = async (provider) => {
376
+ // CLIProxyAPI login flags per provider (from --help)
376
377
  const providerFlags = {
377
- anthropic: '-claude-login',
378
- openai: '-codex-login',
379
- google: '-gemini-login',
380
- qwen: '-qwen-login'
378
+ anthropic: '-claude-login', // Claude Code
379
+ openai: '-codex-login', // OpenAI Codex
380
+ google: '-login', // Gemini CLI (Google Account)
381
+ qwen: '-qwen-login', // Qwen Code
382
+ antigravity: '-antigravity-login', // Antigravity
383
+ iflow: '-iflow-login' // iFlow
381
384
  };
382
385
 
383
386
  const flag = providerFlags[provider];