export default smithers((ctx) => {
const latestReview = ctx.latest("review", "review");
return (
<Workflow name="refine-loop">
<Loop until={latestReview?.approved === true} maxIterations={5}>
<Sequence>
<Task id="write" output={outputs.draft} agent={writer}>
{latestReview
? `Improve the draft. Feedback: ${latestReview.feedback}`
: `Write a draft about: ${ctx.input.topic}`}
</Task>
<Task id="review" output={outputs.review} agent={reviewer}>
{`Review the latest draft.`}
</Task>
</Sequence>
</Loop>
</Workflow>
);
});