21 lines
684 B
TypeScript
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 },
|
|
});
|
|
}
|