From a609dc2486cfc9cefe0ff2a0d3d705879f23c94d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=A9=98?= Date: Wed, 29 Apr 2026 12:41:10 +0000 Subject: [PATCH] refactor: derive adapter keys from Meta type instead of manual union --- workflows/develop-sense/build.ts | 7 +++---- workflows/develop-workflow/build.ts | 7 +++---- workflows/solve-issue/build.ts | 7 +++---- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/workflows/develop-sense/build.ts b/workflows/develop-sense/build.ts index 3e8904d..e49b0e1 100644 --- a/workflows/develop-sense/build.ts +++ b/workflows/develop-sense/build.ts @@ -9,21 +9,20 @@ import { createPlannerRole } from "./roles/planner.js"; import { createReviewerRole } from "./roles/reviewer.js"; import { createTesterRole } from "./roles/tester.js"; -type DevelopSenseRole = 'planner' | 'coder' | 'reviewer' | 'tester' | 'committer'; - export type CreateDevelopSenseDeps = { defaultAdapter: AgentFn; - adapters?: Partial>; + adapters?: Partial>; extract: LlmExtractorConfig; cwd: string; }; export function createDevelopSenseWorkflow({ + defaultAdapter, adapters, extract, cwd, }: CreateDevelopSenseDeps): WorkflowDefinition { - const a = (role: DevelopSenseRole) => adapters?.[role] ?? defaultAdapter; + const a = (role: keyof SenseMeta) => adapters?.[role] ?? defaultAdapter; const roles = { planner: createPlannerRole(a('planner'), extract), coder: createCoderRole(a('coder'), extract), diff --git a/workflows/develop-workflow/build.ts b/workflows/develop-workflow/build.ts index abcde86..c64c139 100644 --- a/workflows/develop-workflow/build.ts +++ b/workflows/develop-workflow/build.ts @@ -9,21 +9,20 @@ import { createPlannerRole } from "./roles/planner.js"; import { createReviewerRole } from "./roles/reviewer.js"; import { createTesterRole } from "./roles/tester.js"; -type DevelopWorkflowRole = 'planner' | 'coder' | 'reviewer' | 'tester' | 'committer'; - export type CreateDevelopWorkflowDeps = { defaultAdapter: AgentFn; - adapters?: Partial>; + adapters?: Partial>; extract: LlmExtractorConfig; nerveRoot: string; }; export function createDevelopWorkflowWorkflow({ + defaultAdapter, adapters, extract, nerveRoot, }: CreateDevelopWorkflowDeps): WorkflowDefinition { - const a = (role: DevelopWorkflowRole) => adapters?.[role] ?? defaultAdapter; + const a = (role: keyof WorkflowMeta) => adapters?.[role] ?? defaultAdapter; const roles = { planner: createPlannerRole(a('planner'), extract), coder: createCoderRole(a('coder'), extract), diff --git a/workflows/solve-issue/build.ts b/workflows/solve-issue/build.ts index cf267a0..d43499c 100644 --- a/workflows/solve-issue/build.ts +++ b/workflows/solve-issue/build.ts @@ -12,21 +12,20 @@ import { createReadIssueRole } from "./roles/read-issue/index.js"; import { createReviewRole } from "./roles/review/index.js"; import { createTestRole } from "./roles/test/index.js"; -type SolveIssueRole = 'read-issue' | 'prepare' | 'plan' | 'implement' | 'committer' | 'review' | 'test' | 'publish'; - export type CreateSolveIssueDeps = { defaultAdapter: AgentFn; - adapters?: Partial>; + adapters?: Partial>; nerveRoot: string; extract: LlmExtractorConfig; }; export function createSolveIssueWorkflow({ + defaultAdapter, adapters, nerveRoot, extract, }: CreateSolveIssueDeps): WorkflowDefinition { - const a = (role: SolveIssueRole) => adapters?.[role] ?? defaultAdapter; + const a = (role: keyof WorkflowMeta) => adapters?.[role] ?? defaultAdapter; return { name: "solve-issue", roles: {