The previous commit incorrectly deleted all workflows. Only restart-gateway should be removed (replaced by direct shell trigger). Other workflows (solve-issue, extract-knowledge, develop-sense, develop-workflow) are CLI-triggered and independent of sense coupling.
44 lines
1.7 KiB
TypeScript
44 lines
1.7 KiB
TypeScript
import type { AgentFn, WorkflowDefinition } from "@uncaged/nerve-core";
|
|
import type { LlmExtractorConfig } from "@uncaged/nerve-workflow-utils";
|
|
|
|
import { moderator } from "./moderator.js";
|
|
import type { WorkflowMeta } from "./moderator.js";
|
|
import { createCommitterRole } from "./roles/committer.js";
|
|
import { createImplementRole } from "./roles/implement.js";
|
|
import { createPlanRole } from "./roles/plan.js";
|
|
import { createPrepareRole } from "./roles/prepare.js";
|
|
import { createPublishRole } from "./roles/publish.js";
|
|
import { createReadIssueRole } from "./roles/read-issue.js";
|
|
import { createReviewRole } from "./roles/review.js";
|
|
import { createTestRole } from "./roles/test.js";
|
|
|
|
export type CreateSolveIssueDeps = {
|
|
defaultAdapter: AgentFn;
|
|
adapters?: Partial<Record<keyof WorkflowMeta, AgentFn>>;
|
|
nerveRoot: string;
|
|
extract: LlmExtractorConfig;
|
|
};
|
|
|
|
export function createSolveIssueWorkflow({
|
|
defaultAdapter,
|
|
adapters,
|
|
nerveRoot,
|
|
extract,
|
|
}: CreateSolveIssueDeps): WorkflowDefinition<WorkflowMeta> {
|
|
const a = (role: keyof WorkflowMeta) => adapters?.[role] ?? defaultAdapter;
|
|
return {
|
|
name: "solve-issue",
|
|
roles: {
|
|
"read-issue": createReadIssueRole(a("read-issue"), extract),
|
|
prepare: createPrepareRole(a("prepare"), extract),
|
|
plan: createPlanRole(a("plan"), { extract, nerveRoot }),
|
|
implement: createImplementRole(a("implement"), { extract, nerveRoot }),
|
|
committer: createCommitterRole(a("committer"), extract),
|
|
review: createReviewRole(a("review"), extract, nerveRoot),
|
|
test: createTestRole(a("test"), extract),
|
|
publish: createPublishRole(a("publish"), { extract, nerveRoot }),
|
|
},
|
|
moderator,
|
|
};
|
|
}
|