import type { LlmProvider } from "@uncaged/nerve-workflow-utils"; import { createCursorRole } from "@uncaged/nerve-workflow-utils"; import { coderMetaSchema } from "./types.js"; import type { CoderMeta } from "./types.js"; import { coderPrompt } from "./prompt.js"; export type BuildCoderDeps = { provider: LlmProvider; cwd: string; sensesDir: string; nerveRoot: string; }; export function buildCoderRole(deps: BuildCoderDeps) { return createCursorRole({ cwd: deps.cwd, mode: "default", prompt: async (threadId) => coderPrompt({ threadId, sensesDir: deps.sensesDir, nerveRoot: deps.nerveRoot }), extract: { provider: deps.provider, schema: coderMetaSchema }, }); }