fleetbo-cockpit-cli 1.0.107 → 1.0.109
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/cli.js +39 -46
- package/package.json +4 -3
package/cli.js
CHANGED
|
@@ -12,7 +12,7 @@ const axios = require('axios');
|
|
|
12
12
|
const dotenv = require('dotenv');
|
|
13
13
|
const os = require('os');
|
|
14
14
|
const archiver = require('archiver');
|
|
15
|
-
|
|
15
|
+
// readline remplacé par @inquirer/prompts (gestion paste + single Enter)
|
|
16
16
|
|
|
17
17
|
// ============================================
|
|
18
18
|
// FLEETBO CLI - Centralized Package
|
|
@@ -630,59 +630,52 @@ if (command === 'alex') {
|
|
|
630
630
|
console.log(' \x1b[32m Alex ❯\x1b[0m Describe your feature.');
|
|
631
631
|
console.log('');
|
|
632
632
|
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
});
|
|
638
|
-
|
|
639
|
-
process.stdout.write('\n\x1b[F');
|
|
640
|
-
rl.prompt();
|
|
633
|
+
// ── Boucle interactive avec @inquirer/prompts ──
|
|
634
|
+
// Soumet sur une seule Entrée, gère le paste multi-lignes correctement,
|
|
635
|
+
// curseur clignotant natif du terminal.
|
|
636
|
+
const { input } = await import('@inquirer/prompts');
|
|
641
637
|
|
|
642
|
-
let
|
|
643
|
-
let isProcessing = false;
|
|
638
|
+
let isProcessing = false;
|
|
644
639
|
|
|
645
|
-
|
|
646
|
-
|
|
640
|
+
const runLoop = async () => {
|
|
641
|
+
while (true) {
|
|
642
|
+
let answer;
|
|
643
|
+
try {
|
|
644
|
+
answer = await input({
|
|
645
|
+
message: `\x1b[34m${dynamicUsername} ❯\x1b[0m`,
|
|
646
|
+
theme: {
|
|
647
|
+
prefix: '',
|
|
648
|
+
style: { answer: (t) => `\x1b[0m${t}` }
|
|
649
|
+
}
|
|
650
|
+
});
|
|
651
|
+
} catch (e) {
|
|
652
|
+
// Ctrl+C ou Ctrl+D
|
|
653
|
+
console.log('\n\x1b[90m Alex session closed.\x1b[0m');
|
|
654
|
+
process.exit(0);
|
|
655
|
+
}
|
|
647
656
|
|
|
648
|
-
|
|
657
|
+
const trimmed = answer.trim();
|
|
649
658
|
|
|
650
|
-
|
|
651
|
-
console.log('\n\x1b[90m Alex session closed.\x1b[0m');
|
|
652
|
-
rl.close();
|
|
653
|
-
return;
|
|
654
|
-
}
|
|
659
|
+
if (!trimmed) continue;
|
|
655
660
|
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
else {
|
|
661
|
-
if (inputBuffer.trim() !== "") {
|
|
662
|
-
const finalPrompt = inputBuffer.trim();
|
|
663
|
-
inputBuffer = "";
|
|
664
|
-
|
|
665
|
-
if (finalPrompt.length > 1000) {
|
|
666
|
-
console.log(`\n\x1b[31m⛔ [Alex Safety] Mission rejected: Excessive size (${finalPrompt.length}/1000 characters).\x1b[0m`);
|
|
667
|
-
rl.setPrompt(`\x1b[34m${dynamicUsername} ❯ \x1b[0m`);
|
|
668
|
-
rl.prompt();
|
|
669
|
-
return;
|
|
670
|
-
}
|
|
661
|
+
if (['exit', 'quit'].includes(trimmed.toLowerCase())) {
|
|
662
|
+
console.log('\n\x1b[90m Alex session closed.\x1b[0m');
|
|
663
|
+
process.exit(0);
|
|
664
|
+
}
|
|
671
665
|
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
isProcessing = false;
|
|
676
|
-
|
|
677
|
-
console.log('');
|
|
678
|
-
rl.setPrompt(`\x1b[34m${dynamicUsername} ❯ \x1b[0m`);
|
|
679
|
-
rl.prompt();
|
|
680
|
-
} else {
|
|
681
|
-
rl.setPrompt(`\x1b[34m${dynamicUsername} ❯ \x1b[0m`);
|
|
682
|
-
rl.prompt();
|
|
666
|
+
if (trimmed.length > 1000) {
|
|
667
|
+
console.log(`\n\x1b[31m⛔ [Alex Safety] Mission rejected: Excessive size (${trimmed.length}/1000 characters).\x1b[0m`);
|
|
668
|
+
continue;
|
|
683
669
|
}
|
|
670
|
+
|
|
671
|
+
isProcessing = true;
|
|
672
|
+
await processAlexRequest(trimmed);
|
|
673
|
+
isProcessing = false;
|
|
674
|
+
console.log('');
|
|
684
675
|
}
|
|
685
|
-
}
|
|
676
|
+
};
|
|
677
|
+
|
|
678
|
+
runLoop();
|
|
686
679
|
};
|
|
687
680
|
|
|
688
681
|
if (!initialPrompt || initialPrompt === '?') startAlexSession();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fleetbo-cockpit-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.109",
|
|
4
4
|
"description": "Fleetbo CLI - Build native mobile apps with React",
|
|
5
5
|
"author": "Fleetbo",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,9 +26,10 @@
|
|
|
26
26
|
"url": "https://github.com/FleetFleetbo/fleetbo-cockpit-cli.git"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
+
"@inquirer/prompts": "^8.3.2",
|
|
30
|
+
"archiver": "^7.0.0",
|
|
29
31
|
"axios": "^1.6.0",
|
|
30
|
-
"dotenv": "^16.3.0"
|
|
31
|
-
"archiver": "^7.0.0"
|
|
32
|
+
"dotenv": "^16.3.0"
|
|
32
33
|
},
|
|
33
34
|
"engines": {
|
|
34
35
|
"node": ">=16.0.0"
|