import type { LlmProvider } from "@uncaged/nerve-workflow-utils"; import { createCursorRole } from "@uncaged/nerve-workflow-utils"; import { coderPrompt } from "./prompt.js"; import { z } from "zod"; export type CoderMeta = { filesCreated: boolean }; export const coderMetaSchema = z.object({ filesCreated: z.boolean().describe("true if the sense files were created"), }); export type BuildCoderDeps = { provider: LlmProvider; cwd: string; }; export function buildCoderRole({ provider, cwd }: BuildCoderDeps) { return createCursorRole({ cwd, mode: "default", prompt: async (threadId) => coderPrompt({ threadId }), extract: { provider, schema: coderMetaSchema }, }); }