fleetbo-svro 1.0.53 → 1.0.54
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/dist/fleetbo-mcp.js +23 -9
- package/package.json +1 -1
package/dist/fleetbo-mcp.js
CHANGED
|
@@ -58,7 +58,10 @@ const FLEETBO_SYSTEM_GUIDELINES = `
|
|
|
58
58
|
- Agent Frontend : gère exclusivement l'ergonomie, les composants d'affichage et l'UX.
|
|
59
59
|
- Alex AI : autorité exclusive sur la structure physique DDL, la sécurité ReBAC et la conformité.
|
|
60
60
|
- Zéro backend intermédiaire : N'écris AUCUN serveur Express, NestJS ou route REST fictive.
|
|
61
|
-
-
|
|
61
|
+
- CONTRÔLE DE FLUX UI : Utilise impérativement la syntaxe native standard du framework du projet (conditions ternaires, boucles natives, v-for, .map, etc.).
|
|
62
|
+
- INTERDICTION FORMELLE d'inventer des balises de structure inconnues (<fleetbo-list>, <fleetbo-if>, <fleetbo-else>, <fleetbo-button>, <template>).
|
|
63
|
+
- COMPOSANTS D'AFFICHAGE SÉCURISÉS : Seuls les composants Web <fleetbo-text value="..." fallback="..." /> et <fleetbo-number value="..." currency="EUR" /> sont autorisés.
|
|
64
|
+
- OPÉRATIONS DE DONNÉES : Passe exclusivement par l'objet global JavaScript : Fleetbo.getDocsG(), Fleetbo.add(), Fleetbo.update(), Fleetbo.delete().
|
|
62
65
|
|
|
63
66
|
# WORKFLOW DE PRODUCTION UNIFIÉ FLEETBO SVRO (ZERO-BACKEND DATA OS)
|
|
64
67
|
|
|
@@ -80,8 +83,10 @@ const FLEETBO_SYSTEM_GUIDELINES = `
|
|
|
80
83
|
- L'agent IA dispose alors de la bibliothèque complète pour prototyper l'UI sans inventer de backend.
|
|
81
84
|
|
|
82
85
|
### Étape 2 : Prototypage Visuel & Pré-câblage Direct Zero-Rewrite
|
|
83
|
-
-
|
|
84
|
-
-
|
|
86
|
+
- Utilise la syntaxe native du framework du projet (conditions ternaires, boucles .map, événements onClick, etc.).
|
|
87
|
+
- INTERDICTION d'inventer des balises de structure inexistantes (<fleetbo-list>, <fleetbo-if>, <fleetbo-else>, <fleetbo-button>, <template>).
|
|
88
|
+
- Seuls composants Web autorisés pour l'affichage : <fleetbo-text value="..." fallback="..." /> et <fleetbo-number value="..." currency="EUR" />.
|
|
89
|
+
- Toute interaction de données passe par les méthodes JavaScript : Fleetbo.getDocsG(), Fleetbo.add(), Fleetbo.delete().
|
|
85
90
|
|
|
86
91
|
### Étape 3 : Modélisation Additive & Extraction Métier (Alex AI)
|
|
87
92
|
- L'agent transmet les fichiers UI et les contraintes métier via 'fleetbo_update_project'.
|
|
@@ -411,8 +416,17 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
411
416
|
continue;
|
|
412
417
|
}
|
|
413
418
|
|
|
414
|
-
|
|
415
|
-
|
|
419
|
+
// Résolution tolérante : teste le chemin complet puis la racine du projet
|
|
420
|
+
let targetPath = fullPath;
|
|
421
|
+
if (!fs.existsSync(targetPath)) {
|
|
422
|
+
const fallback = path.resolve(resolvedProjectRoot, path.basename(relPath));
|
|
423
|
+
if (fs.existsSync(fallback)) {
|
|
424
|
+
targetPath = fallback;
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
if (fs.existsSync(targetPath)) {
|
|
429
|
+
const stat = fs.statSync(targetPath);
|
|
416
430
|
if (!stat.isFile()) {
|
|
417
431
|
console.warn(`[MCP Security] Path skipped (not a regular file): ${relPath}`);
|
|
418
432
|
continue;
|
|
@@ -423,8 +437,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
423
437
|
}
|
|
424
438
|
|
|
425
439
|
filesPayload.push({
|
|
426
|
-
name:
|
|
427
|
-
content: fs.readFileSync(
|
|
440
|
+
name: path.basename(targetPath),
|
|
441
|
+
content: fs.readFileSync(targetPath, "utf8"),
|
|
428
442
|
});
|
|
429
443
|
} else {
|
|
430
444
|
console.warn(`[MCP Security] File not found on disk: ${relPath}`);
|
|
@@ -432,9 +446,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
432
446
|
}
|
|
433
447
|
}
|
|
434
448
|
|
|
435
|
-
if (filesPayload.length === 0
|
|
449
|
+
if (filesPayload.length === 0) {
|
|
436
450
|
throw new Error(
|
|
437
|
-
"Modeling
|
|
451
|
+
"Modeling rejected: No valid UI view file found on disk. You must create the component (.jsx, .tsx, .vue, .svelte, .html) with concrete UI code before calling 'fleetbo_update_project'."
|
|
438
452
|
);
|
|
439
453
|
}
|
|
440
454
|
|