fleetbo-cockpit-cli 1.0.203 → 1.0.205
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 +5 -40
- package/package.json +1 -1
package/cli.js
CHANGED
|
@@ -74,34 +74,6 @@ if (!projectId) {
|
|
|
74
74
|
// ============================================
|
|
75
75
|
// HELPERS
|
|
76
76
|
// ============================================
|
|
77
|
-
const wrapText = (text, maxWidth) => {
|
|
78
|
-
if (!text) return "";
|
|
79
|
-
const rawLines = text.split('\n');
|
|
80
|
-
let formattedLines = [];
|
|
81
|
-
rawLines.forEach(line => {
|
|
82
|
-
if (line.trim().length === 0) {
|
|
83
|
-
formattedLines.push("");
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
const isSpecialFormat = /^[\s]*[-*•\d]/.test(line) || line.startsWith(" ");
|
|
87
|
-
if (isSpecialFormat) {
|
|
88
|
-
formattedLines.push(line);
|
|
89
|
-
} else {
|
|
90
|
-
const words = line.split(" ");
|
|
91
|
-
let currentLine = words[0];
|
|
92
|
-
for (let i = 1; i < words.length; i++) {
|
|
93
|
-
if (currentLine.length + 1 + words[i].length <= maxWidth) {
|
|
94
|
-
currentLine += " " + words[i];
|
|
95
|
-
} else {
|
|
96
|
-
formattedLines.push(currentLine);
|
|
97
|
-
currentLine = words[i];
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
formattedLines.push(currentLine);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
return formattedLines.join('\n ');
|
|
104
|
-
};
|
|
105
77
|
|
|
106
78
|
const checkGitSecurity = () => {
|
|
107
79
|
const gitDir = path.join(process.cwd(), '.git');
|
|
@@ -520,14 +492,13 @@ if (command === 'alex') {
|
|
|
520
492
|
console.log('');
|
|
521
493
|
let rawMsg = aiData.message || "I'm ready.";
|
|
522
494
|
|
|
523
|
-
// Final safety: if rawMsg is still an object
|
|
524
495
|
if (typeof rawMsg === 'object') {
|
|
525
496
|
rawMsg = rawMsg.message || rawMsg.text || "Module generated.";
|
|
526
497
|
}
|
|
527
498
|
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
499
|
+
// On supprime le wrapText(85)
|
|
500
|
+
// On laisse Xterm.js et le FitAddon utiliser 100% de la largeur du panneau !
|
|
501
|
+
console.log('\x1b[32mAlex ❯\x1b[0m \n' + rawMsg);
|
|
531
502
|
}
|
|
532
503
|
|
|
533
504
|
// --- FILE CREATION LOGIC ---
|
|
@@ -640,11 +611,6 @@ if (command === 'alex') {
|
|
|
640
611
|
let hasAiKey = false;
|
|
641
612
|
let aiProvider = null;
|
|
642
613
|
let aiModel = null;
|
|
643
|
-
|
|
644
|
-
// ASTUCE : On demande gentiment à l'IDE de noter qu'Alex est en cours de démarrage
|
|
645
|
-
if (process.env.VITE_FLEETBO_DEV === 'true' || true) { // Force l'exécution en dev
|
|
646
|
-
process.stdout.write('[ALEX_BOOTING]\n');
|
|
647
|
-
}
|
|
648
614
|
|
|
649
615
|
while (attempts < maxAttempts && !isReady) {
|
|
650
616
|
try {
|
|
@@ -654,7 +620,7 @@ if (command === 'alex') {
|
|
|
654
620
|
|
|
655
621
|
if (validation.data?.isRunning) {
|
|
656
622
|
isReady = true;
|
|
657
|
-
//
|
|
623
|
+
// ASTUCE : On confirme que le moteur est allumé
|
|
658
624
|
process.stdout.write('[ALEX_ONLINE]\n');
|
|
659
625
|
dynamicUsername = validation.data.username || 'Pilot';
|
|
660
626
|
hasAiKey = validation.data.hasAiKey || false;
|
|
@@ -753,8 +719,7 @@ if (command === 'alex') {
|
|
|
753
719
|
|
|
754
720
|
// READY
|
|
755
721
|
console.log('');
|
|
756
|
-
console.log('\x1b[32mAlex ❯\x1b[0m
|
|
757
|
-
console.log('');
|
|
722
|
+
console.log('\x1b[32mAlex ❯\x1b[0m Describe your feature using the Compose panel...');
|
|
758
723
|
|
|
759
724
|
// 1. ON SUPPRIME LE PROMPT VISUEL (Plus de "Pilot ❯")
|
|
760
725
|
const rl = readline.createInterface({
|