21 lines
684 B
TypeScript

import type { LlmProvider } from "@uncaged/nerve-workflow-utils";
import { createHermesRole } 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<typeof prepareMetaSchema>;
export type BuildPrepareDeps = {
provider: LlmProvider;
};
export function buildPrepareRole({ provider }: BuildPrepareDeps) {
return createHermesRole<PrepareMeta>({
prompt: async (threadId) => preparePrompt({ threadId }),
extract: { provider, schema: prepareMetaSchema },
});
}