hedgequantx 2.9.27 → 2.9.29
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 +1 -1
- package/src/config/propfirms.js +11 -0
- package/src/pages/ai-agents-ui.js +8 -16
package/package.json
CHANGED
package/src/config/propfirms.js
CHANGED
|
@@ -15,6 +15,14 @@ const PROPFIRMS = {
|
|
|
15
15
|
rithmicSystem: 'Apex',
|
|
16
16
|
wsEndpoint: 'wss://ritpa11120.11.rithmic.com:443',
|
|
17
17
|
},
|
|
18
|
+
rithmic_paper: {
|
|
19
|
+
id: 'rithmic-paper',
|
|
20
|
+
name: 'Rithmic Paper Trading',
|
|
21
|
+
displayName: 'Rithmic Paper Trading',
|
|
22
|
+
platform: 'Rithmic',
|
|
23
|
+
rithmicSystem: 'Rithmic Paper Trading',
|
|
24
|
+
wsEndpoint: 'wss://ritpa11120.11.rithmic.com:443',
|
|
25
|
+
},
|
|
18
26
|
topsteptrader: {
|
|
19
27
|
id: 'topsteptrader',
|
|
20
28
|
name: 'TopstepTrader',
|
|
@@ -146,6 +154,9 @@ const PROPFIRM_CHOICES = Object.entries(PROPFIRMS)
|
|
|
146
154
|
// Apex always first
|
|
147
155
|
if (a.name === 'Apex') return -1;
|
|
148
156
|
if (b.name === 'Apex') return 1;
|
|
157
|
+
// Rithmic Paper Trading second
|
|
158
|
+
if (a.name === 'Rithmic Paper Trading') return -1;
|
|
159
|
+
if (b.name === 'Rithmic Paper Trading') return 1;
|
|
149
160
|
// 4PropTrader and 10XFutures always last
|
|
150
161
|
const lastItems = ['4PropTrader', '10XFutures'];
|
|
151
162
|
const aIsLast = lastItems.includes(a.name);
|
|
@@ -334,33 +334,25 @@ const drawConnectionTest = async (agents, boxWidth, clearWithBanner) => {
|
|
|
334
334
|
|
|
335
335
|
const W = boxWidth - 2;
|
|
336
336
|
|
|
337
|
-
// Show loading
|
|
337
|
+
// Show loading box with centered spinner text
|
|
338
338
|
clearWithBanner();
|
|
339
339
|
console.log(chalk.cyan('╔' + '═'.repeat(W) + '╗'));
|
|
340
340
|
console.log(chalk.cyan('║') + chalk.yellow.bold(centerText('AI AGENTS CONNECTION TEST', W)) + chalk.cyan('║'));
|
|
341
341
|
console.log(chalk.cyan('╠' + '═'.repeat(W) + '╣'));
|
|
342
|
-
|
|
343
|
-
// Empty lines for vertical centering (top)
|
|
344
|
-
console.log(chalk.cyan('║') + ' '.repeat(W) + chalk.cyan('║'));
|
|
345
342
|
console.log(chalk.cyan('║') + ' '.repeat(W) + chalk.cyan('║'));
|
|
346
343
|
console.log(chalk.cyan('║') + ' '.repeat(W) + chalk.cyan('║'));
|
|
344
|
+
console.log(chalk.cyan('╚' + '═'.repeat(W) + '╝'));
|
|
345
|
+
console.log('');
|
|
347
346
|
|
|
348
|
-
//
|
|
347
|
+
// Spinner with text - centered below the box
|
|
349
348
|
const spinnerText = 'Testing connections...';
|
|
350
|
-
const
|
|
351
|
-
console.log(chalk.cyan('║') + chalk.yellow(paddedText) + chalk.cyan('║'));
|
|
352
|
-
|
|
353
|
-
// Empty lines for vertical centering (bottom)
|
|
354
|
-
console.log(chalk.cyan('║') + ' '.repeat(W) + chalk.cyan('║'));
|
|
355
|
-
console.log(chalk.cyan('║') + ' '.repeat(W) + chalk.cyan('║'));
|
|
356
|
-
console.log(chalk.cyan('║') + ' '.repeat(W) + chalk.cyan('║'));
|
|
357
|
-
console.log(chalk.cyan('╚' + '═'.repeat(W) + '╝'));
|
|
349
|
+
const spinnerLeftPad = Math.floor((W - spinnerText.length - 2) / 2);
|
|
358
350
|
|
|
359
|
-
// Start spinner below the box
|
|
360
351
|
const spinner = ora({
|
|
361
|
-
text:
|
|
352
|
+
text: chalk.yellow(spinnerText),
|
|
362
353
|
spinner: 'dots',
|
|
363
|
-
color: 'yellow'
|
|
354
|
+
color: 'yellow',
|
|
355
|
+
indent: spinnerLeftPad
|
|
364
356
|
}).start();
|
|
365
357
|
|
|
366
358
|
// Run pre-flight check
|