Provider resolved once at top level, injected into each build*Role().
Role builders no longer async — they're pure factory calls.
小橘 🍊(NEKO Team)
25 lines
819 B
TypeScript
25 lines
819 B
TypeScript
import type { WorkflowDefinition } from "@uncaged/nerve-core";
|
|
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 { resolveDashScopeProvider } from "./roles/shared.js";
|
|
import type { SenseMeta } from "./roles/types.js";
|
|
|
|
const provider = await resolveDashScopeProvider();
|
|
if (provider === null) {
|
|
throw new Error("Cannot build workflow: set DASHSCOPE_API_KEY and DASHSCOPE_BASE_URL");
|
|
}
|
|
|
|
const workflow: WorkflowDefinition<SenseMeta> = {
|
|
name: "sense-generator",
|
|
roles: {
|
|
planner: buildPlannerRole(provider),
|
|
coder: buildCoderRole(provider),
|
|
tester: buildTesterRole(provider),
|
|
},
|
|
moderator,
|
|
};
|
|
|
|
export default workflow;
|