Skip to main content
Une instance de WorkflowRun est créée via workflow.createRun(runId?). Elle encapsule l’état d’exécution, la surveillance des événements et la gestion des interactions humaines.

Méthodes

watch(listener)

Enregistre une fonction appelée à chaque événement (workflow:start, step:success, step:event, step:human:*, etc.). Retourne un disposeur pour arrêter l’écoute.

cancel(reason?)

Annule l’exécution en déclenchant l’AbortSignal interne. Le résultat final aura le statut "cancelled" et l’erreur contiendra WorkflowAbortError si aucun reason n’est fourni.

start(options)

Exécute le workflow jusqu’au bout (ou jusqu’à une attente humaine) sans streaming. L’appel ne peut être effectué qu’une seule fois par run.

stream(options)

Retourne un flux asynchrone d’événements immédiatement disponible. La promesse final se résout lorsque le run se termine (success, failed, cancelled ou waiting_human). En cas d’attente humaine, le flux reste ouvert jusqu’à la reprise.

resumeWithHumanInput({ stepId, data, runId? })

Valide la réponse via le schéma de l’étape humaine, met à jour les snapshots et relance la boucle d’exécution. Lève WorkflowResumeError si aucune interaction n’est en attente ou si l’identifiant ne correspond pas.

Télémétrie & événements

  • Les événements incluent workflowId, runId, timestamp, metadata (courante) et des données spécifiques au type (step:start, step:event, etc.).
  • La télémétrie (OTEL/Langfuse) est configurée via workflow ou options.telemetry. WorkflowRun expose automatiquement les spans par step et les événements humains.

Historique et contexte

Les handlers reçoivent un WorkflowStepRuntimeContext fournissant :
  • getMetadata() / updateMetadata() – métadonnées mutables partagées.
  • storeMap<string, unknown> pour stocker des références temporaires (utile pour resumeWithHumanInput).
  • getCtx() / updateCtx() – contexte partagé typé.
  • emit(event) – événements custom (step:event) relayés à watch/stream.
L’historique des steps est disponible dans WorkflowRunResult.steps (tableau par step avec statut, horodatage, occurrence, branche suivie et prochain step).