> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Run.timeTravelStream() La méthode `.timeTravelStream()` réexécute un Workflow à partir de n’importe quelle étape donnée et en diffuse les événements. Vous pouvez recevoir des mises à jour en temps réel pendant l’exécution Time Travel, tout en conservant une visibilité complète sur la progression de chaque étape. ## Exemple d’utilisation ```typescript const run = await workflow.createRun() const output = run.timeTravelStream({ step: 'step2', inputData: { value: 10 }, }) // Process events as they arrive for await (const event of output.fullStream) { console.log(event.type, event.payload) } // Get the final result const result = await output.result ``` ## Paramètres Tous les paramètres sont identiques à ceux de [`Run.timeTravel()`](https://mastra.zisheng.pro/fr/reference/workflows/run-methods/timeTravel). Consultez la [référence de timeTravel](https://mastra.zisheng.pro/fr/reference/workflows/run-methods/timeTravel) pour obtenir la documentation détaillée des paramètres. ## Valeur renvoyée **output** (`WorkflowRunOutput>`): Objet contenant à la fois le flux et la Promise du résultat **output.fullStream** (`ReadableStream`): Flux lisible qui émet les événements du Workflow à mesure que l’exécution progresse **output.result** (`Promise>`): Promise résolue avec le résultat final de l’exécution du Workflow **output.traceId** (`string`): ID de Trace associé à cette exécution lorsque le Tracing est activé ## Événements du flux Le flux émet des événements de Workflow pendant l’exécution : - `workflow-step-start` : émis lorsqu’une étape commence son exécution - `workflow-step-finish` : émis lorsqu’une étape se termine avec succès - `workflow-step-error` : émis lorsqu’une étape rencontre une erreur - `workflow-step-suspended` : émis lorsqu’une étape est suspendue - Événements supplémentaires selon le type d’étape (Agents, Tools, etc.) ## Exemples d’utilisation avancée ### Traiter les événements pendant le Time Travel ```typescript const run = await workflow.createRun() const output = run.timeTravelStream({ step: 'step2', inputData: { value: 10 }, }) for await (const event of output.fullStream) { switch (event.type) { case 'workflow-step-start': console.log(`Starting step: ${event.payload.stepName}`) break case 'workflow-step-finish': console.log(`Completed step: ${event.payload.stepName}`) break case 'workflow-step-error': console.error(`Error in step: ${event.payload.stepName}`, event.payload.error) break } } const result = await output.result console.log('Time travel completed:', result) ``` ### Flux Time Travel avec contexte ```typescript const output = run.timeTravelStream({ step: 'step2', context: { step1: { status: 'success', payload: { value: 0 }, output: { step1Result: 2 }, startedAt: Date.now(), endedAt: Date.now(), }, }, }) for await (const event of output.fullStream) { // Handle events console.log(event) } const result = await output.result ``` ### Flux Time Travel avec des Workflows imbriqués ```typescript const output = run.timeTravelStream({ step: ['nestedWorkflow', 'step3'], inputData: { value: 10 }, nestedStepsContext: { nestedWorkflow: { step2: { status: 'success', payload: { step1Result: 2 }, output: { step2Result: 3 }, startedAt: Date.now(), endedAt: Date.now(), }, }, }, }) for await (const event of output.fullStream) { console.log(event.type, event.payload) } const result = await output.result ``` ## Remarques - Le flux se ferme automatiquement lorsque l’exécution Time Travel se termine ou rencontre une erreur - Vous pouvez traiter les événements du flux pendant que le Workflow est encore en cours d’exécution - La Promise `result` n’est résolue qu’une fois toutes les étapes terminées - Les événements du flux suivent le même format que lors du streaming habituel d’un Workflow - Le streaming Time Travel nécessite la configuration d’un stockage, car il repose sur des snapshots de Workflow persistants ## Voir aussi - [Run.timeTravel()](https://mastra.zisheng.pro/fr/reference/workflows/run-methods/timeTravel) - [Time Travel](https://mastra.zisheng.pro/fr/docs/workflows/time-travel) - [Streaming des Workflows](https://mastra.zisheng.pro/fr/docs/workflows/overview) - [Run.stream()](https://mastra.zisheng.pro/fr/reference/streaming/workflows/stream) - [Run.resumeStream()](https://mastra.zisheng.pro/fr/reference/streaming/workflows/resumeStream)