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.
@@ -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
- - Zero Import : L'objet Fleetbo et les balises <fleetbo-*> sont des composants globaux au runtime.
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
- - Écriture des vues UI (.jsx, .tsx, .vue) en appelant directement le SDK global (Fleetbo.getDocsG, Fleetbo.add...).
84
- - L'Edge acquitte les mutations en mémoire vive sans altérer la base physique.
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
- if (fs.existsSync(fullPath)) {
415
- const stat = fs.statSync(fullPath);
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: baseName,
427
- content: fs.readFileSync(fullPath, "utf8"),
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 && (!params.rules || !params.rules.trim())) {
449
+ if (filesPayload.length === 0) {
436
450
  throw new Error(
437
- "Modeling failed: You must provide at least one valid UI view file (filePaths/viewFiles) or a business rule (rules)."
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fleetbo-svro",
3
- "version": "1.0.53",
3
+ "version": "1.0.54",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "exports": {