import type { LlmProvider } from "@uncaged/nerve-workflow-utils"; import { createCursorRole } from "@uncaged/nerve-workflow-utils"; import { plannerMetaSchema } from "./types.js"; import type { PlannerMeta } from "./types.js"; import { plannerPrompt } from "./prompt.js"; export type BuildPlannerDeps = { provider: LlmProvider; cwd: string; senseExamples: string; nerveYaml: string; }; export function buildPlannerRole(deps: BuildPlannerDeps) { return createCursorRole({ cwd: deps.cwd, mode: "ask", prompt: async (threadId) => plannerPrompt({ threadId, senseExamples: deps.senseExamples, nerveYaml: deps.nerveYaml }), extract: { provider: deps.provider, schema: plannerMetaSchema }, }); }