diff --git a/workflows/sense-generator/index.ts b/workflows/sense-generator/index.ts index 20468cc..84af45d 100644 --- a/workflows/sense-generator/index.ts +++ b/workflows/sense-generator/index.ts @@ -6,26 +6,24 @@ import { tester } from "./roles/tester/index.js"; import type { SenseMeta } from "./roles/types.js"; -async function buildWorkflow(): Promise> { - const planner = await buildPlannerRole(); - const coder = await buildCoderRole(); +const workflow: WorkflowDefinition = { + name: "sense-generator", + roles: { + planner: await buildPlannerRole(), + coder: await buildCoderRole(), + tester, + }, + moderator(context) { + if (context.steps.length === 0) return "planner"; + const last = context.steps[context.steps.length - 1]; + if (last.role === "planner") return "coder"; + if (last.role === "coder") return "tester"; + if (last.role === "tester") { + if (last.meta.passed) return END; + return last.meta.attempt < 3 ? "coder" : END; + } + return END; + }, +}; - return { - name: "sense-generator", - roles: { planner, coder, tester }, - moderator(context) { - if (context.steps.length === 0) return "planner"; - const last = context.steps[context.steps.length - 1]; - if (last.role === "planner") return "coder"; - if (last.role === "coder") return "tester"; - if (last.role === "tester") { - if (last.meta.passed) return END; - return last.meta.attempt < 3 ? "coder" : END; - } - return END; - }, - }; -} - -const workflow = await buildWorkflow(); export default workflow;