import type { AgentFn, Role, StartStep } from "@uncaged/nerve-core"; import type { LlmExtractorConfig } from "@uncaged/nerve-workflow-utils"; import { createRole } from "@uncaged/nerve-workflow-utils"; import { z } from "zod"; import { preparePrompt } from "./prompt.js"; export const prepareMetaSchema = z.object({ ready: z.boolean().describe("true if repo is ready and baseline build ok"), }); export type PrepareMeta = z.infer; export function createPrepareRole(adapter: AgentFn, extract: LlmExtractorConfig): Role { return createRole( adapter, async (start: StartStep) => preparePrompt({ threadId: start.meta.threadId }), prepareMetaSchema, extract, ); }