© 2026 Hedgehog Software, LLC
export const runQuiz = createWorkflow({ id: "run-quiz", description: "Run a Telegram quiz with suspend/resume within do-while loop", inputSchema: zRunQuizInput, outputSchema: zRunQuizResult, }) .then(init) .dowhile( createWorkflow({ id: "quiz-iteration", inputSchema: zLoopState, outputSchema: zLoopState }) .then(processQuestion) .parallel([ processAnswer, ensureNextAudio, ]) .map(async ({ inputData }) => { // Pass-through the process-answer state const ns = inputData as Record<string, unknown>; return ns["process-answer"] as z.infer<typeof zLoopState>; }) .then(waitContinue) .commit(), async ({ inputData }) => { const state = inputData as z.infer<typeof zLoopState>; return state.currentIndex < state.total; }, ) .then(finalize) .commit();
waitContinue
undefined
inputData
mastra_workflow_snapshots