feat(vwb): expose competence yaml catalog
This commit is contained in:
@@ -84,6 +84,14 @@ except ImportError:
|
||||
cv2 = None
|
||||
np = None
|
||||
|
||||
try:
|
||||
from core.competences.catalog import load_competence_catalog_actions
|
||||
COMPETENCE_CATALOG_AVAILABLE = True
|
||||
except ImportError as e:
|
||||
print(f"⚠️ Catalogue compétences Léa non disponible: {e}")
|
||||
COMPETENCE_CATALOG_AVAILABLE = False
|
||||
load_competence_catalog_actions = None
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# OmniParser (Microsoft) - Détection d'éléments UI avancée
|
||||
@@ -1068,6 +1076,18 @@ catalog_bp = Blueprint('catalog', __name__, url_prefix='/api/vwb/catalog')
|
||||
_screen_capturer_instance = None
|
||||
|
||||
|
||||
def _load_lea_competence_actions() -> List[Dict[str, Any]]:
|
||||
"""Load YAML-backed Lea competences for the VWB catalogue."""
|
||||
|
||||
if not COMPETENCE_CATALOG_AVAILABLE or load_competence_catalog_actions is None:
|
||||
return []
|
||||
try:
|
||||
return load_competence_catalog_actions()
|
||||
except Exception as e:
|
||||
print(f"⚠️ Erreur chargement catalogue compétences Léa: {e}")
|
||||
return []
|
||||
|
||||
|
||||
def get_screen_capturer():
|
||||
"""
|
||||
Obtient l'instance du ScreenCapturer (initialisation paresseuse).
|
||||
@@ -1553,6 +1573,9 @@ def list_actions():
|
||||
}
|
||||
]
|
||||
|
||||
# Ajouter les compétences YAML Léa comme actions testables.
|
||||
available_actions.extend(_load_lea_competence_actions())
|
||||
|
||||
# Filtrer par catégorie
|
||||
if category_filter:
|
||||
available_actions = [
|
||||
@@ -1701,7 +1724,18 @@ Cette action permet d'attendre qu'un élément apparaisse ou disparaisse de l'é
|
||||
"""
|
||||
}
|
||||
|
||||
action['documentation'] = documentation.get(action_id, "Documentation non disponible")
|
||||
if action.get("source") == "competence_yaml":
|
||||
action['documentation'] = """
|
||||
# Compétence Léa
|
||||
|
||||
Cette entrée vient de `data/competences/*.yaml`. Elle représente une compétence apprise
|
||||
ou candidate, avec méthode, marqueur de succès, message d'échec et gaps runtime.
|
||||
|
||||
Le premier usage attendu est le replay supervisé : Léa tente la compétence, l'humain
|
||||
valide ou corrige, puis les résultats alimentent l'historique d'apprentissage.
|
||||
"""
|
||||
else:
|
||||
action['documentation'] = documentation.get(action_id, "Documentation non disponible")
|
||||
|
||||
return jsonify({
|
||||
"success": True,
|
||||
@@ -2727,6 +2761,8 @@ def list_categories():
|
||||
}
|
||||
"""
|
||||
try:
|
||||
competence_action_count = len(_load_lea_competence_actions())
|
||||
|
||||
# Définir les catégories disponibles avec métadonnées
|
||||
available_categories = [
|
||||
{
|
||||
@@ -2757,6 +2793,17 @@ def list_categories():
|
||||
"isEnabled": True
|
||||
}
|
||||
]
|
||||
|
||||
if competence_action_count:
|
||||
available_categories.append({
|
||||
"id": "lea_competence",
|
||||
"name": "Compétences Léa",
|
||||
"description": "Compétences YAML candidates ou supervisées à tester",
|
||||
"icon": "🧠",
|
||||
"actionCount": competence_action_count,
|
||||
"color": "#673ab7",
|
||||
"isEnabled": True
|
||||
})
|
||||
|
||||
return jsonify({
|
||||
"success": True,
|
||||
@@ -2793,9 +2840,12 @@ def catalog_health():
|
||||
# Vérifier les services
|
||||
screen_capturer = get_screen_capturer()
|
||||
|
||||
competence_action_count = len(_load_lea_competence_actions())
|
||||
|
||||
services_status = {
|
||||
"screen_capturer": screen_capturer is not None,
|
||||
"actions": 7, # Nombre d'actions disponibles
|
||||
"actions": 7 + competence_action_count,
|
||||
"lea_competences": competence_action_count,
|
||||
"screen_capturer_method": getattr(screen_capturer, 'method', 'unavailable') if screen_capturer else 'unavailable'
|
||||
}
|
||||
|
||||
@@ -2834,4 +2884,4 @@ def register_catalog_routes(app):
|
||||
print(" - GET /api/vwb/catalog/actions/<action_id>")
|
||||
print(" - POST /api/vwb/catalog/execute")
|
||||
print(" - POST /api/vwb/catalog/validate")
|
||||
print(" - GET /api/vwb/catalog/health")
|
||||
print(" - GET /api/vwb/catalog/health")
|
||||
|
||||
Reference in New Issue
Block a user