AESOP v1.1.0Beta · 09/08/2026 COP unifiée
Tous théâtres
Contexte théâtre d'opérations

Ce sélecteur affiche le théâtre actif de votre session de travail. Il sert de filtre global : les vues sensibles au théâtre (COP, cartes, listes, études de planification) se restreignent au théâtre choisi, et les nouveaux objets créés s'y rattachent.

« Tous théâtres » signifie qu'aucun filtre n'est appliqué : les vues agrègent les données de tous les théâtres, et les objets créés ne sont rattachés à aucun théâtre particulier tant qu'un théâtre n'est pas choisi.

Le théâtre se choisit depuis les services qui en gèrent (ex. Planification — sélection d'une étude de théâtre) ; le choix vaut pour toute la session, sur toutes les pages.

live

aesop_tree — Knowledge Graph

The 5th AESOP service (port 8003, dir app_tree/). It captures the structural knowledge of a "system considered" — technology, energy, political and ideology trees — as one unified Apache AGE property graph, fed by aesop_intell, and closes the OODA loop back to collection with intelligence orientations.

Internal Architecture & Flow

aesop_intell entités OSINT (GraphEntity) Keyword boost → collecte ciblée aesop_tree :8003 app_ingest webhook → résolveur app_graph — graphe unifié (Apache AGE) System · Node (abstrait | instance) · Edge science (requires) + logistique (supplied_by) + satisfied_by app_science DAG abstrait + LLM app_logistic pont satisfied_by app_search pgvector + pg_search app_api · app_chart dépendances / impact / carte+DAG app_propagation dégradation de capacité → siblings app_intell — moteur d'orientation (écart → RFI) détecte les prérequis sans fournisseur → demande de renseignement Modèle à deux liens — exemple « C4 » C4 RDX azote requires requires lien « science » (abstrait) satisfied_by Usine d'ammoniac (instance) lien « logistique » (concret, issu d'intell) écart = prérequis sans satisfied_by → RFI vers intell CONSUMERS aesop_modelisation aesop_simulation aesop_energy « capacité X −N% » POST /api/webhooks/ intell-entity/ POST /api/intell/ orientation/ PG18 · Apache AGE · pgvector · pg_search (ParadeDB BM25) · H3 res 9 · Django 5 + DRF + HTMX · Redis 9,10
The core idea — two kinds of link. Every tree is built from "science" links (abstract, actor-agnostic recipes: to make C4 you need RDX, which needs nitric acid, which needs nitrogen) and "logistic" links (concrete sourcing grounded in real actors from aesop_intell: Ukraine sources its nitrogen from this factory). The satisfied_by bridge joins the two. Where an abstract requirement has no satisfying supplier, that gap is itself an intelligence requirement.
Closing the OODA loop. app_intell diffs the science layer (what should exist) against the logistic layer (what we know exists) and turns each gap into an orientation / RFI dispatched to POST /api/intell/orientation/. aesop_intell boosts the relevant keyword, collects, and the answer returns through the normal entity webhook — the resolver attaches a satisfied_by edge and the RFI auto-closes. Structure drives collection; collection fills structure.

Django Apps

Graph & ingestion

  • app_graph — System / Node / Edge schema + Apache AGE shadow + traversal
  • app_ingest — intell entity webhook + match-or-create resolver
  • app_science — abstract recipe DAG authoring + LLM seeder
  • app_logisticsatisfied_by resolution + coverage UI

Search, API & loop

  • app_search — pgvector semantic + pg_search BM25 hybrid lookup
  • app_api — dependency / impact / subgraph / coverage REST
  • app_chart — Leaflet instance map + coverage-annotated DAG
  • app_propagation — graded degradation + Wh push to siblings
  • app_intell — gap → RFI orientation engine

Stack

PostgreSQL 18 Apache AGE pgvector pg_search (BM25) H3 res 9 Django 5 + DRF HTMX Celery + Redis 9,10

Plan + design: app_tree/AESOP_TREE_PLAN.md. Runs on SQLite (capability-guarded fallbacks) for dev/tests; 104 tests green.

API Contracts

DirectionEndpointPurpose
intell → treePOST /api/webhooks/intell-entity/Entity → instance Node (+ relations → logistic edges). Idempotent.
tree → intellPOST /api/intell/orientation/Gap → RFI; boosts collection relevance. Auth X-API-Key.
tree (read)GET /api/tree/{dependencies,impact,system/<s>/graph,…}Dependency / reverse-impact / subgraph / coverage / gaps.
tree → siblingsPOST /api/tree/system/<s>/propagate/Capability degradation (+ Wh) to modelisation / simulation / energy.