UNPKG

@autobe/agent

Version:

AI backend server code generator

135 lines (134 loc) 6.37 kB
import { IAutoBeFacadeApplicationResult } from "./IAutoBeFacadeApplicationResult"; /** * Application for AutoBE function calling. * * @author Samchon */ export interface IAutoBeFacadeApplication { /** * Run Analyze Agent. * * Executes the Analyze agent to process user requirements and generate a * structured specification document. This agent analyzes all conversation * history between users and AI, separates business logic from technical * requirements, and establishes development priorities and scope. * * **IMPORTANT**: Only call this function when sufficient requirements have * been discussed to generate a comprehensive specification. The context must * contain enough detail about the system's purpose, core features, data * models, and business rules. If requirements are unclear or incomplete, * continue gathering information through conversation instead. * * The agent will automatically generate follow-up questions for any ambiguous * requirements and continuously refine its understanding through iterative * conversation. When executed after other agents have generated code, it can * also interpret change requests in the context of existing implementations. */ analyze(): Promise<IAutoBeFacadeApplicationResult>; /** * Run database agent. * * Executes the Database agent to generate database schema files and ERD * documentation. This agent reads the requirements specification created by * the {@link analyze Analyze agent} and produces a complete database schema * with comprehensive documentation for each entity and attribute. * * **PREREQUISITE**: Only call this function after the {@link analyze} function * has been successfully executed and a requirements specification document * has been generated. The Database agent depends on the structured * requirements analysis to design the database schema properly. Without a * completed requirements specification, this function should NOT be called. * * The agent will automatically validate the generated schema using the * database schema compilation, self-correct any compilation errors through * feedback loops, and generate ERD documentation using prisma-markdown. An * internal review process ensures schema quality and optimization. */ database(props: { /** * Database design instructions from user conversation. * * Pass empty string "" if no database-specific instructions exist. */ instruction: string; }): Promise<IAutoBeFacadeApplicationResult>; /** * Run interface agent. * * Executes the Interface agent to design and generate API interfaces. This * agent creates OpenAPI schemas and TypeScript/NestJS code based on the * requirements specification and ERD documentation from previous agents. * * The agent follows a sophisticated pipeline: first constructing formal * OpenAPI Operation Schemas and JSON Schemas, then validating these schemas, * and finally transforming them into NestJS controllers and DTOs. Each * generated interface includes comprehensive JSDoc comments and undergoes * internal review for consistency. */ interface(props: { /** * API design instructions from user conversation. * * Pass empty string "" if no API-specific instructions exist. */ instruction: string; }): Promise<IAutoBeFacadeApplicationResult>; /** * Run test program agent. * * Executes the Test agent to generate comprehensive E2E test suites for all * {@link interface API interfaces}. This agent synthesizes outputs from * previous agents to create tests that validate both individual endpoints and * their interactions. * * **PREREQUISITE**: Only call this function after the {@link interface} * function has been successfully executed and API interfaces have been * generated. The Test agent requires the completed API interface definitions, * OpenAPI schemas, and TypeScript code to generate appropriate test * scenarios. Without completed interface design, this function should NOT be * called. * * The agent will analyze dependency relationships between API functions, * structure integrated test scenarios with correct execution sequences, and * enhance pre-generated test scaffolds with business logic validation. * TypeScript compiler validation and internal review ensure test quality and * optimal coverage. */ test(props: { /** * Testing strategy instructions from user conversation. * * Pass empty string "" if no test-specific instructions exist. */ instruction: string; }): Promise<IAutoBeFacadeApplicationResult>; /** * Run realize agent. * * Executes the Realize agent to implement the actual business logic for each * API endpoint. This agent synthesizes all outputs from previous agents to * generate fully functional service provider code. * * **PREREQUISITE**: Only call this function after the {@link interface} * function has been successfully executed and API interfaces have been * generated. The Realize agent requires the completed API interface * definitions to implement the corresponding service logic. It also benefits * from having test code available for validation. Without completed interface * design, this function should NOT be called. * * The agent will create service implementations with multiple validation * layers: TypeScript compiler feedback, runtime validation through test * execution, and quality optimization through internal review. The generated * code handles database interactions through Database, implements security * and validation checks, and processes business rules according to * specifications. */ realize(props: { /** * Implementation instructions from user conversation. * * Pass empty string "" if no implementation-specific instructions exist. */ instruction: string; }): Promise<IAutoBeFacadeApplicationResult>; }