Studio runtimePipeline de génération

Pipeline de génération Studio

Chemin serveur réel d’une génération payante, du scope au settlement.

Le runtime converge les générations payantes vers packages/engine/src/generation/run.ts.

Ordre canonique actuel

scope
→ idempotency replay
→ validation + estimation
→ journal QUEUED
→ reserve ledger
→ SUBMITTED
→ provider
→ stockage + StudioAsset GENERATED
→ settlement au coût mesuré
→ COMPLETED

En cas d’échec fournisseur ou de livraison impossible, la réserve est libérée/remboursée selon le cas et la génération conserve un état auditable.

Invariants

  • une ligne de génération existe avant le hold et avant l’appel provider ;
  • un refus de réserve ne déclenche aucun appel ;
  • le même idempotency key ne doit pas rappeler le provider ;
  • le coût final privilégie le coût observé/mesuré ;
  • un résultat non livré ne doit pas être facturé comme livré ;
  • les erreurs de settlement/closing sont réconciliables par sweep au lieu d’être masquées.

Vidéo et travaux longs

Vidéo et lipsync deviennent des jobs asynchrones : départ rapide, hold ouvert, puis fermeture par webhook, lecture de statut ou sweep.

Les renders de templates suivent aussi un cycle asynchrone dédié.

Cette page décrit le runtime interne actuel. Le futur Context Engine intervient avant la composition du contexte de génération ; il ne remplace ni le journal, ni le ledger, ni le job lifecycle.