import type { WorkflowDefinition } from "@uncaged/nerve-core"; import { moderator } from "./moderator.js"; import type { WorkflowMeta } from "./moderator.js"; import { buildIntakeRole } from "./roles/intake/index.js"; import { buildIssueReaderRole } from "./roles/issue-reader/index.js"; import { buildPlannerRole } from "./roles/planner/index.js"; import { buildImplementerRole } from "./roles/implementer/index.js"; import { buildTesterRole } from "./roles/tester/index.js"; import { buildPrPublisherRole } from "./roles/pr-publisher/index.js"; export type BuildGiteaIssueSolverDeps = { nerveRoot: string; }; export function buildGiteaIssueSolver({ nerveRoot }: BuildGiteaIssueSolverDeps): WorkflowDefinition { return { name: "gitea-issue-solver", roles: { intake: buildIntakeRole(), "issue-reader": buildIssueReaderRole({ nerveRoot }), planner: buildPlannerRole({ nerveRoot }), implementer: buildImplementerRole({ nerveRoot }), tester: buildTesterRole({ nerveRoot }), "pr-publisher": buildPrPublisherRole({ nerveRoot }), }, moderator, }; }