refactor: derive adapter keys from Meta type instead of manual union
This commit is contained in:
parent
eaddd88109
commit
a609dc2486
@ -9,21 +9,20 @@ import { createPlannerRole } from "./roles/planner.js";
|
|||||||
import { createReviewerRole } from "./roles/reviewer.js";
|
import { createReviewerRole } from "./roles/reviewer.js";
|
||||||
import { createTesterRole } from "./roles/tester.js";
|
import { createTesterRole } from "./roles/tester.js";
|
||||||
|
|
||||||
type DevelopSenseRole = 'planner' | 'coder' | 'reviewer' | 'tester' | 'committer';
|
|
||||||
|
|
||||||
export type CreateDevelopSenseDeps = {
|
export type CreateDevelopSenseDeps = {
|
||||||
defaultAdapter: AgentFn;
|
defaultAdapter: AgentFn;
|
||||||
adapters?: Partial<Record<DevelopSenseRole, AgentFn>>;
|
adapters?: Partial<Record<keyof SenseMeta, AgentFn>>;
|
||||||
extract: LlmExtractorConfig;
|
extract: LlmExtractorConfig;
|
||||||
cwd: string;
|
cwd: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function createDevelopSenseWorkflow({
|
export function createDevelopSenseWorkflow({
|
||||||
|
defaultAdapter,
|
||||||
adapters,
|
adapters,
|
||||||
extract,
|
extract,
|
||||||
cwd,
|
cwd,
|
||||||
}: CreateDevelopSenseDeps): WorkflowDefinition<SenseMeta> {
|
}: CreateDevelopSenseDeps): WorkflowDefinition<SenseMeta> {
|
||||||
const a = (role: DevelopSenseRole) => adapters?.[role] ?? defaultAdapter;
|
const a = (role: keyof SenseMeta) => adapters?.[role] ?? defaultAdapter;
|
||||||
const roles = {
|
const roles = {
|
||||||
planner: createPlannerRole(a('planner'), extract),
|
planner: createPlannerRole(a('planner'), extract),
|
||||||
coder: createCoderRole(a('coder'), extract),
|
coder: createCoderRole(a('coder'), extract),
|
||||||
|
|||||||
@ -9,21 +9,20 @@ import { createPlannerRole } from "./roles/planner.js";
|
|||||||
import { createReviewerRole } from "./roles/reviewer.js";
|
import { createReviewerRole } from "./roles/reviewer.js";
|
||||||
import { createTesterRole } from "./roles/tester.js";
|
import { createTesterRole } from "./roles/tester.js";
|
||||||
|
|
||||||
type DevelopWorkflowRole = 'planner' | 'coder' | 'reviewer' | 'tester' | 'committer';
|
|
||||||
|
|
||||||
export type CreateDevelopWorkflowDeps = {
|
export type CreateDevelopWorkflowDeps = {
|
||||||
defaultAdapter: AgentFn;
|
defaultAdapter: AgentFn;
|
||||||
adapters?: Partial<Record<DevelopWorkflowRole, AgentFn>>;
|
adapters?: Partial<Record<keyof WorkflowMeta, AgentFn>>;
|
||||||
extract: LlmExtractorConfig;
|
extract: LlmExtractorConfig;
|
||||||
nerveRoot: string;
|
nerveRoot: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function createDevelopWorkflowWorkflow({
|
export function createDevelopWorkflowWorkflow({
|
||||||
|
defaultAdapter,
|
||||||
adapters,
|
adapters,
|
||||||
extract,
|
extract,
|
||||||
nerveRoot,
|
nerveRoot,
|
||||||
}: CreateDevelopWorkflowDeps): WorkflowDefinition<WorkflowMeta> {
|
}: CreateDevelopWorkflowDeps): WorkflowDefinition<WorkflowMeta> {
|
||||||
const a = (role: DevelopWorkflowRole) => adapters?.[role] ?? defaultAdapter;
|
const a = (role: keyof WorkflowMeta) => adapters?.[role] ?? defaultAdapter;
|
||||||
const roles = {
|
const roles = {
|
||||||
planner: createPlannerRole(a('planner'), extract),
|
planner: createPlannerRole(a('planner'), extract),
|
||||||
coder: createCoderRole(a('coder'), extract),
|
coder: createCoderRole(a('coder'), extract),
|
||||||
|
|||||||
@ -12,21 +12,20 @@ import { createReadIssueRole } from "./roles/read-issue/index.js";
|
|||||||
import { createReviewRole } from "./roles/review/index.js";
|
import { createReviewRole } from "./roles/review/index.js";
|
||||||
import { createTestRole } from "./roles/test/index.js";
|
import { createTestRole } from "./roles/test/index.js";
|
||||||
|
|
||||||
type SolveIssueRole = 'read-issue' | 'prepare' | 'plan' | 'implement' | 'committer' | 'review' | 'test' | 'publish';
|
|
||||||
|
|
||||||
export type CreateSolveIssueDeps = {
|
export type CreateSolveIssueDeps = {
|
||||||
defaultAdapter: AgentFn;
|
defaultAdapter: AgentFn;
|
||||||
adapters?: Partial<Record<SolveIssueRole, AgentFn>>;
|
adapters?: Partial<Record<keyof WorkflowMeta, AgentFn>>;
|
||||||
nerveRoot: string;
|
nerveRoot: string;
|
||||||
extract: LlmExtractorConfig;
|
extract: LlmExtractorConfig;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function createSolveIssueWorkflow({
|
export function createSolveIssueWorkflow({
|
||||||
|
defaultAdapter,
|
||||||
adapters,
|
adapters,
|
||||||
nerveRoot,
|
nerveRoot,
|
||||||
extract,
|
extract,
|
||||||
}: CreateSolveIssueDeps): WorkflowDefinition<WorkflowMeta> {
|
}: CreateSolveIssueDeps): WorkflowDefinition<WorkflowMeta> {
|
||||||
const a = (role: SolveIssueRole) => adapters?.[role] ?? defaultAdapter;
|
const a = (role: keyof WorkflowMeta) => adapters?.[role] ?? defaultAdapter;
|
||||||
return {
|
return {
|
||||||
name: "solve-issue",
|
name: "solve-issue",
|
||||||
roles: {
|
roles: {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user