@autobe/agent
Version:
AI backend server code generator
90 lines (89 loc) • 3.84 kB
TypeScript
import { AutoBeOpenApi, AutoBeRealizeAuthorization } from "@autobe/interface";
import { ILlmSchema } from "@samchon/openapi";
import { AutoBeContext } from "../../context/AutoBeContext";
export interface RealizePlannerOutput {
/**
* The name of the function to be generated.
*
* Derived from the Swagger path and method. The function name must be written
* in snake_case. It serves as the entry point in both code generation and
* test code.
*
* Once the function is generated, the function name and file name will be the
* same. The generated file will be located at
* `src/providers/${function_name}.ts`.
*/
functionName: string;
/**
* Definition of path and query parameters extracted from the OpenAPI spec.
*
* Includes input values passed via URL path or query string. Used for type
* definitions, validation, and function signature construction.
*/
parameters: AutoBeOpenApi.IParameter[];
/**
* Schema definition for the request body input.
*
* Extracted from the requestBody section of Swagger. Represents the input
* data passed in the body (e.g., JSON). Used for generating function
* arguments or DTOs.
*/
inputSchema: AutoBeOpenApi.IRequestBody | null;
/**
* Schema definition for the response body.
*
* Extracted from the responses section of Swagger. Used to define the return
* type and expected output in test code.
*/
outputSchema: AutoBeOpenApi.IResponseBody | null;
/**
* Natural language description of the function’s purpose.
*
* Extracted from the summary or description field of Swagger. Used for code
* documentation, test scenario generation, and conveying function intent.
*/
description: string;
/**
* HTTP method information.
*
* Extracted from the Swagger operation method. Used to define the request
* type during code and test generation.
*/
operationType: "get" | "post" | "put" | "delete" | "patch";
/**
* List of scenario descriptions for test code generation.
*
* Each scenario describes the expected behavior of the function under certain
* conditions. Used as a basis for TDD-style automated test generation.
*/
testScenarios: string[];
/**
* Optional decorator event for customizing code generation behavior.
*
* Provides additional metadata or instructions that can modify how the
* function implementation is generated. Can include custom annotations,
* middleware configurations, or special handling directives that affect the
* final code output.
*/
decoratorEvent?: AutoBeRealizeAuthorization;
}
/**
* Generates a planning result that defines what kind of function should be
* created, based solely on the provided Swagger (OpenAPI) operation — without
* using an LLM.
*
* This function analyzes the structure of the OpenAPI operation (such as the
* path, method, parameters, request/response schema, and descriptions) to
* determine the appropriate function name, input/output types, and purpose of
* the function.
*
* The result of this function (`RealizePlannerOutput`) will be passed to the
* next step in the AutoBE pipeline, which is responsible for generating the
* actual implementation code.
*
* @param ctx - AutoBE context including model and configuration
* @param operation - A single OpenAPI operation object to analyze and plan
* @returns A planning object containing all structural information needed to
* generate the function
*/
export declare const orchestrateRealizePlanner: <Model extends ILlmSchema.Model>(ctx: AutoBeContext<Model>, operation: AutoBeOpenApi.IOperation, authorization?: AutoBeRealizeAuthorization) => Promise<RealizePlannerOutput>;