import { createCursorRole } from "@uncaged/nerve-workflow-utils"; import { resolveDashScopeProvider, buildSenseExamples, getNerveYaml, NERVE_ROOT } from "../shared.js"; import { plannerMetaSchema } from "../types.js"; import type { SenseMeta } from "../types.js"; import { plannerPrompt } from "./prompt.js"; const senseExamples = buildSenseExamples(); const nerveYaml = getNerveYaml(); export async function buildPlannerRole() { const provider = await resolveDashScopeProvider(); if (provider === null) { throw new Error("Cannot create planner: set DASHSCOPE_API_KEY and DASHSCOPE_BASE_URL"); } return createCursorRole({ cwd: NERVE_ROOT, mode: "ask", prompt: async (threadId) => plannerPrompt({ threadId, senseExamples, nerveYaml }), extract: { provider, schema: plannerMetaSchema }, }); }