import type { WorkflowDefinition } from "@uncaged/nerve-core"; import type { LlmProvider } from "@uncaged/nerve-workflow-utils"; import { buildPlannerRole } from "./roles/planner/index.js"; import { buildCoderRole } from "./roles/coder/index.js"; import { buildTesterRole } from "./roles/tester/index.js"; import { moderator } from "./moderator.js"; import type { SenseMeta } from "./moderator.js"; export type BuildSenseGeneratorDeps = { provider: LlmProvider; nerveRoot: string; sensesDir: string; nerveYaml: string; }; export function buildSenseGenerator({ provider, nerveRoot, sensesDir, nerveYaml, }: BuildSenseGeneratorDeps): WorkflowDefinition { return { name: "sense-generator", roles: { planner: buildPlannerRole({ provider, cwd: nerveRoot, nerveYaml }), coder: buildCoderRole({ provider, cwd: nerveRoot, sensesDir, nerveRoot }), tester: buildTesterRole({ provider, sensesDir, nerveRoot }), }, moderator, }; }