refactor: use destructuring to simplify build functions
This commit is contained in:
parent
cb61e98979
commit
69eb4ffe49
@ -14,27 +14,19 @@ export type BuildSenseGeneratorDeps = {
|
||||
nerveYaml: string;
|
||||
};
|
||||
|
||||
export function buildSenseGenerator(deps: BuildSenseGeneratorDeps): WorkflowDefinition<SenseMeta> {
|
||||
export function buildSenseGenerator({
|
||||
provider,
|
||||
nerveRoot,
|
||||
sensesDir,
|
||||
senseExamples,
|
||||
nerveYaml,
|
||||
}: BuildSenseGeneratorDeps): WorkflowDefinition<SenseMeta> {
|
||||
return {
|
||||
name: "sense-generator",
|
||||
roles: {
|
||||
planner: buildPlannerRole({
|
||||
provider: deps.provider,
|
||||
cwd: deps.nerveRoot,
|
||||
senseExamples: deps.senseExamples,
|
||||
nerveYaml: deps.nerveYaml,
|
||||
}),
|
||||
coder: buildCoderRole({
|
||||
provider: deps.provider,
|
||||
cwd: deps.nerveRoot,
|
||||
sensesDir: deps.sensesDir,
|
||||
nerveRoot: deps.nerveRoot,
|
||||
}),
|
||||
tester: buildTesterRole({
|
||||
provider: deps.provider,
|
||||
sensesDir: deps.sensesDir,
|
||||
nerveRoot: deps.nerveRoot,
|
||||
}),
|
||||
planner: buildPlannerRole({ provider, cwd: nerveRoot, senseExamples, nerveYaml }),
|
||||
coder: buildCoderRole({ provider, cwd: nerveRoot, sensesDir, nerveRoot }),
|
||||
tester: buildTesterRole({ provider, sensesDir, nerveRoot }),
|
||||
},
|
||||
moderator,
|
||||
};
|
||||
|
||||
@ -11,12 +11,11 @@ export type BuildCoderDeps = {
|
||||
nerveRoot: string;
|
||||
};
|
||||
|
||||
export function buildCoderRole(deps: BuildCoderDeps) {
|
||||
export function buildCoderRole({ provider, cwd, sensesDir, nerveRoot }: BuildCoderDeps) {
|
||||
return createCursorRole<CoderMeta>({
|
||||
cwd: deps.cwd,
|
||||
cwd,
|
||||
mode: "default",
|
||||
prompt: async (threadId) =>
|
||||
coderPrompt({ threadId, sensesDir: deps.sensesDir, nerveRoot: deps.nerveRoot }),
|
||||
extract: { provider: deps.provider, schema: coderMetaSchema },
|
||||
prompt: async (threadId) => coderPrompt({ threadId, sensesDir, nerveRoot }),
|
||||
extract: { provider, schema: coderMetaSchema },
|
||||
});
|
||||
}
|
||||
|
||||
@ -11,12 +11,11 @@ export type BuildPlannerDeps = {
|
||||
nerveYaml: string;
|
||||
};
|
||||
|
||||
export function buildPlannerRole(deps: BuildPlannerDeps) {
|
||||
export function buildPlannerRole({ provider, cwd, senseExamples, nerveYaml }: BuildPlannerDeps) {
|
||||
return createCursorRole<PlannerMeta>({
|
||||
cwd: deps.cwd,
|
||||
cwd,
|
||||
mode: "ask",
|
||||
prompt: async (threadId) =>
|
||||
plannerPrompt({ threadId, senseExamples: deps.senseExamples, nerveYaml: deps.nerveYaml }),
|
||||
extract: { provider: deps.provider, schema: plannerMetaSchema },
|
||||
prompt: async (threadId) => plannerPrompt({ threadId, senseExamples, nerveYaml }),
|
||||
extract: { provider, schema: plannerMetaSchema },
|
||||
});
|
||||
}
|
||||
|
||||
@ -10,10 +10,9 @@ export type BuildTesterDeps = {
|
||||
nerveRoot: string;
|
||||
};
|
||||
|
||||
export function buildTesterRole(deps: BuildTesterDeps) {
|
||||
export function buildTesterRole({ provider, sensesDir, nerveRoot }: BuildTesterDeps) {
|
||||
return createHermesRole<TesterMeta>({
|
||||
prompt: async (threadId) =>
|
||||
testerPrompt({ threadId, sensesDir: deps.sensesDir, nerveRoot: deps.nerveRoot }),
|
||||
extract: { provider: deps.provider, schema: testerMetaSchema },
|
||||
prompt: async (threadId) => testerPrompt({ threadId, sensesDir, nerveRoot }),
|
||||
extract: { provider, schema: testerMetaSchema },
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user