@autobe/agent
Version:
AI backend server code generator
45 lines (44 loc) • 2.23 kB
TypeScript
import { AutoBeEventSource, AutoBePreliminaryKind, AutoBeProgressEventBase, AutoBeRealizeFunction } from "@autobe/interface";
import { ILlmController } from "typia";
import { AutoBeContext } from "../../../context/AutoBeContext";
import { IAutoBeOrchestrateHistory } from "../../../structures/IAutoBeOrchestrateHistory";
import { AutoBePreliminaryController } from "../../common/AutoBePreliminaryController";
import { IAutoBeRealizeFunctionFailure } from "../structures/IAutoBeRealizeFunctionFailure";
import { IAutoBeRealizeFunctionResult } from "../structures/IAutoBeRealizeFunctionResult";
interface IProgrammer<RealizeFunction extends AutoBeRealizeFunction, PreliminaryKind extends AutoBePreliminaryKind, Complete> {
template(func: RealizeFunction): string;
replaceImportStatements(props: {
function: RealizeFunction;
code: string;
}): Promise<string>;
additional(functions: RealizeFunction[]): Record<string, string>;
histories(props: {
function: RealizeFunction;
failures: IAutoBeRealizeFunctionFailure<RealizeFunction>[];
preliminary: AutoBePreliminaryController<PreliminaryKind>;
}): Promise<IAutoBeOrchestrateHistory>;
controller(next: {
function: RealizeFunction;
preliminary: AutoBePreliminaryController<PreliminaryKind>;
source: Exclude<AutoBeEventSource, "facade" | "preliminaryAcquire">;
build(next: Complete): void;
}): ILlmController;
preliminary(props: {
function: RealizeFunction;
source: Exclude<AutoBeEventSource, "facade" | "preliminaryAcquire">;
}): AutoBePreliminaryController<PreliminaryKind>;
location: string;
}
interface IComplete {
draft: string;
revise: {
review: string;
final: string | null;
};
}
export declare const orchestrateRealizeCorrectOverall: <RealizeFunction extends AutoBeRealizeFunction, PreliminaryKind extends AutoBePreliminaryKind, Complete extends IComplete>(ctx: AutoBeContext, props: {
programmer: IProgrammer<RealizeFunction, PreliminaryKind, Complete>;
functions: RealizeFunction[];
progress: AutoBeProgressEventBase;
}, life?: number) => Promise<IAutoBeRealizeFunctionResult<RealizeFunction>[]>;
export {};