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
package/src/pages/ai-agents.js
CHANGED
|
@@ -276,13 +276,41 @@ const handleCliProxyConnection = async (provider, config, boxWidth) => {
|
|
|
276
276
|
}
|
|
277
277
|
|
|
278
278
|
} else {
|
|
279
|
-
|
|
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,
|
|
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: '-
|
|
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];
|