Static imports, no runtime file reads, bundler friendly.
Removed mustache dependency.
小橘 🍊(NEKO Team)
22 lines
845 B
TypeScript
22 lines
845 B
TypeScript
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<SenseMeta["planner"]>({
|
|
cwd: NERVE_ROOT,
|
|
mode: "ask",
|
|
prompt: async (threadId) => plannerPrompt({ threadId, senseExamples, nerveYaml }),
|
|
extract: { provider, schema: plannerMetaSchema },
|
|
});
|
|
}
|