fleetbo-cockpit-cli 1.0.139 → 1.0.140
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 +14 -9
- package/package.json +1 -1
package/cli.js
CHANGED
|
@@ -646,16 +646,20 @@ if (command === 'alex') {
|
|
|
646
646
|
rl.on('line', async (line) => {
|
|
647
647
|
if (isProcessing) return;
|
|
648
648
|
|
|
649
|
-
// 1. On accumule les lignes
|
|
649
|
+
// 1. On accumule les lignes
|
|
650
650
|
inputBuffer += (inputBuffer ? "\n" : "") + line;
|
|
651
651
|
|
|
652
|
-
// 2.
|
|
652
|
+
// 🪄 2. LE BOUCLIER VISUEL : On efface immédiatement le prompt.
|
|
653
|
+
// Ça empêche le terminal de spammer "jojo ❯" à chaque ligne du copier-coller !
|
|
654
|
+
rl.setPrompt("");
|
|
655
|
+
|
|
656
|
+
// 3. On annule le timer précédent
|
|
653
657
|
if (pasteTimeout) clearTimeout(pasteTimeout);
|
|
654
658
|
|
|
655
|
-
//
|
|
659
|
+
// 4. Timer légèrement augmenté à 50ms
|
|
656
660
|
pasteTimeout = setTimeout(async () => {
|
|
657
661
|
const finalPrompt = inputBuffer.trim();
|
|
658
|
-
inputBuffer = "";
|
|
662
|
+
inputBuffer = "";
|
|
659
663
|
|
|
660
664
|
// Gestion de la sortie
|
|
661
665
|
if (['exit', 'quit'].includes(finalPrompt.toLowerCase())) {
|
|
@@ -664,7 +668,7 @@ if (command === 'alex') {
|
|
|
664
668
|
return;
|
|
665
669
|
}
|
|
666
670
|
|
|
667
|
-
//
|
|
671
|
+
// Si le texte final n'est pas vide
|
|
668
672
|
if (finalPrompt !== "") {
|
|
669
673
|
if (finalPrompt.length > 4000) {
|
|
670
674
|
console.log(`\n\x1b[31m⛔ [Alex Safety] Mission rejected: Excessive size (${finalPrompt.length}/4000 characters).\x1b[0m`);
|
|
@@ -675,19 +679,20 @@ if (command === 'alex') {
|
|
|
675
679
|
|
|
676
680
|
// On verrouille et on envoie
|
|
677
681
|
isProcessing = true;
|
|
678
|
-
rl.setPrompt("");
|
|
679
|
-
|
|
680
682
|
await processAlexRequest(finalPrompt);
|
|
681
683
|
|
|
682
|
-
// On libère
|
|
684
|
+
// On libère et on RESTAURE le prompt
|
|
683
685
|
isProcessing = false;
|
|
684
686
|
console.log('');
|
|
685
687
|
rl.setPrompt(`\x1b[34m${dynamicUsername} ❯ \x1b[0m`);
|
|
686
688
|
rl.prompt();
|
|
687
689
|
} else {
|
|
690
|
+
// Si l'utilisateur appuie juste sur Entrée dans le vide
|
|
691
|
+
// On RESTAURE le prompt proprement
|
|
692
|
+
rl.setPrompt(`\x1b[34m${dynamicUsername} ❯ \x1b[0m`);
|
|
688
693
|
rl.prompt();
|
|
689
694
|
}
|
|
690
|
-
},
|
|
695
|
+
}, 50);
|
|
691
696
|
});
|
|
692
697
|
};
|
|
693
698
|
|