UNPKG

@autobe/agent

Version:

AI backend server code generator

103 lines (96 loc) 4.26 kB
import { AutoBeHistory, IAutoBeCompiler, IAutoBeCompilerListener, IAutoBeTokenUsageJson, } from "@autobe/interface"; import { AutoBeTokenUsage } from "../context/AutoBeTokenUsage"; import { IAutoBeConfig } from "./IAutoBeConfig"; import { IAutoBeVendor } from "./IAutoBeVendor"; /** * Configuration properties for initializing an AutoBeAgent instance. * * This interface defines all the essential parameters required to create and * configure an AutoBeAgent for vibe coding operations. The properties establish * the AI model capabilities, vendor connectivity, compilation infrastructure, * behavioral context, and optional session continuity through conversation * histories. * * The configuration enables type-safe AI function calling through * model-specific schema generation, ensures compatibility with various AI * service providers, and provides the compilation tools necessary for the * sophisticated AST-based development pipeline that transforms conversations * into working software. * * @author Samchon */ export interface IAutoBeProps { /** * AI vendor configuration for service provider integration. * * Defines the complete AI service connection including the OpenAI SDK * instance, model identifier, request options, and concurrency controls. This * configuration enables the AutoBeAgent to connect with various AI providers * while maintaining consistent functionality across the entire automated * development workflow. * * The vendor settings determine the AI capabilities available for * requirements analysis, database design, API specification, testing, and * implementation phases of the vibe coding process. */ vendor: IAutoBeVendor; /** * Compiler factory function for TypeScript, database schema, and OpenAPI * operations. * * Factory function that creates compiler instances required for the * sophisticated AST-based development pipeline. The compiler handles * validation, transformation, and code generation across all development * phases including database schema compilation, OpenAPI document validation, * and TypeScript code compilation. * * For high-performance scenarios with multiple concurrent users, the compiler * can be separated into dedicated worker processes to prevent blocking the * main agent during computationally intensive compilation operations. */ compiler: ( listener: IAutoBeCompilerListener, ) => IAutoBeCompiler | Promise<IAutoBeCompiler>; /** * Optional conversation and development histories for session continuation. * * Enables resuming previous vibe coding sessions by providing the * chronological record of past conversations, development activities, and * generated artifacts. When provided, the agent reconstructs its internal * state from these histories, allowing seamless continuation of development * work. * * This capability supports iterative development workflows where users can * return to modify, enhance, or extend previously generated applications * while maintaining full context of earlier decisions and implementations. */ histories?: AutoBeHistory[] | undefined; /** * Optional behavioral configuration for localization and context. * * Customizes the agent's communication style, language preferences, and * geographical context to provide personalized vibe coding experiences. * Configuration includes locale settings for internationalized responses and * timezone information for temporal context awareness. * * These settings influence how the agent communicates with users, interprets * regional requirements (such as regulatory considerations), and handles * time-sensitive operations throughout the development process. */ config?: IAutoBeConfig | undefined; /** * Token usage information. * * You can start token usage tracing by assigning this property. * * If you assign {@link IAutoBeTokenUsageJson} value, the token usage tracing * would be from the value. Otherwise you assign the {@link AutoBeTokenUsage} * typed instance, the tracing would be binded to the instance. */ tokenUsage?: IAutoBeTokenUsageJson | AutoBeTokenUsage | undefined; }