import type { LlmProvider } from "@uncaged/nerve-workflow-utils"; import { createHermesRole } from "@uncaged/nerve-workflow-utils"; import { z } from "zod"; import { reviewPrompt } from "./prompt.js"; export const reviewMetaSchema = z.object({ approved: z.boolean().describe("true if diff is clean and ready for tests"), }); export type ReviewMeta = z.infer; export type BuildReviewDeps = { provider: LlmProvider; nerveRoot: string; }; export function buildReviewRole({ provider, nerveRoot }: BuildReviewDeps) { return createHermesRole({ prompt: async (threadId) => reviewPrompt({ threadId, nerveRoot }), extract: { provider, schema: reviewMetaSchema }, }); }