refactor: tier 文件重命名为 agent-mock/agent-scenario/agent-llm
This commit is contained in:
69
tests/agent/agent-scenario.ts
Normal file
69
tests/agent/agent-scenario.ts
Normal file
@@ -0,0 +1,69 @@
|
||||
import type { RuneConfig } from "../../src/types.ts";
|
||||
import type { AgentRunner, AgentResult } from "./runner.ts";
|
||||
import { CommandLevelRunner } from "./agent-mock.ts";
|
||||
|
||||
export type PlanOverride = (
|
||||
projectDir: string,
|
||||
changeName: string,
|
||||
docName: string,
|
||||
config: RuneConfig,
|
||||
) => Promise<AgentResult>;
|
||||
|
||||
export type BuildOverride = (
|
||||
projectDir: string,
|
||||
changeName: string,
|
||||
config: RuneConfig,
|
||||
) => Promise<AgentResult>;
|
||||
|
||||
export type ArchiveOverride = (
|
||||
projectDir: string,
|
||||
changeName: string,
|
||||
config: RuneConfig,
|
||||
) => Promise<AgentResult>;
|
||||
|
||||
export interface ScenarioOverrides {
|
||||
plan?: PlanOverride;
|
||||
build?: BuildOverride;
|
||||
archive?: ArchiveOverride;
|
||||
}
|
||||
|
||||
export class ScenarioRunner implements AgentRunner {
|
||||
readonly tier = 2;
|
||||
private defaults: CommandLevelRunner;
|
||||
private overrides: ScenarioOverrides;
|
||||
|
||||
constructor(defaults: CommandLevelRunner, overrides: ScenarioOverrides = {}) {
|
||||
this.defaults = defaults;
|
||||
this.overrides = overrides;
|
||||
}
|
||||
|
||||
async runPlan(
|
||||
projectDir: string,
|
||||
changeName: string,
|
||||
docName: string,
|
||||
config: RuneConfig,
|
||||
): Promise<AgentResult> {
|
||||
if (this.overrides.plan) {
|
||||
return this.overrides.plan(projectDir, changeName, docName, config);
|
||||
}
|
||||
return this.defaults.runPlan(projectDir, changeName, docName, config);
|
||||
}
|
||||
|
||||
async runBuild(projectDir: string, changeName: string, config: RuneConfig): Promise<AgentResult> {
|
||||
if (this.overrides.build) {
|
||||
return this.overrides.build(projectDir, changeName, config);
|
||||
}
|
||||
return this.defaults.runBuild(projectDir, changeName, config);
|
||||
}
|
||||
|
||||
async runArchive(
|
||||
projectDir: string,
|
||||
changeName: string,
|
||||
config: RuneConfig,
|
||||
): Promise<AgentResult> {
|
||||
if (this.overrides.archive) {
|
||||
return this.overrides.archive(projectDir, changeName, config);
|
||||
}
|
||||
return this.defaults.runArchive(projectDir, changeName, config);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user