UNPKG

@autobe/agent

Version:

AI backend server code generator

134 lines (126 loc) 5.4 kB
import { AutoBePrisma } from "@autobe/interface"; import { IAutoBePreliminaryGetAnalysisFiles } from "../../common/structures/IAutoBePreliminaryGetAnalysisFiles"; import { IAutoBePreliminaryGetPrismaSchemas } from "../../common/structures/IAutoBePreliminaryGetPrismaSchemas"; export interface IAutoBePrismaReviewApplication { /** * Process schema review task or preliminary data requests. * * Reviews generated Prisma models to validate normalization, relationships, * indexes, and business alignment, producing necessary modifications. * * @param props Request containing either preliminary data request or complete * task */ process(props: IAutoBePrismaReviewApplication.IProps): void; } export namespace IAutoBePrismaReviewApplication { export interface IProps { /** * Think before you act. * * Before requesting preliminary data or completing your task, reflect on your * current state and explain your reasoning: * * For preliminary requests (getAnalysisFiles, getPrismaSchemas, etc.): * - What critical information is missing that you don't already have? * - Why do you need it specifically right now? * - Be brief - state the gap, don't list everything you have. * * For completion (complete): * - What key assets did you acquire? * - What did you accomplish? * - Why is it sufficient to complete? * - Summarize - don't enumerate every single item. * * This reflection helps you avoid duplicate requests and premature completion. */ thinking: string; /** * Type discriminator for the request. * * Determines which action to perform: preliminary data retrieval * (getAnalysisFiles, getPrismaSchemas) or final schema review (complete). * When preliminary returns empty array, that type is removed from the * union, physically preventing repeated calls. */ request: | IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas; } /** * Request to review and refine Prisma schema models. * * Executes comprehensive schema review to validate design quality and * identify necessary improvements for normalization, relationships, and * performance optimization. */ export interface IComplete { /** * Type discriminator for the request. * * Determines which action to perform: preliminary data retrieval or actual * task execution. Value "complete" indicates this is the final task * execution request. */ type: "complete"; /** * Comprehensive review analysis of the schema. * * Contains detailed evaluation of the schema design including: * * - Normalization validation: Confirms 3NF compliance and proper data * structure * - Relationship integrity: Validates foreign key references and cardinality * - Performance optimization: Reviews indexing strategy and query patterns * - Business logic alignment: Ensures schema supports all use cases * - Naming conventions: Verifies consistent naming patterns * - Data type consistency: Confirms appropriate field types * - Temporal field handling: Validates audit trail implementation * * The review identifies potential issues and confirms adherence to best * practices before final implementation. */ review: string; /** * Strategic database design plan. * * Contains the original planning document outlining the database * architecture strategy including table structures, relationships, * normalization approach, and business requirement mapping. This plan * serves as the blueprint for validating the implemented schema. * * Planning components: * * - Business requirements: Mapping of business needs to database structures * - Table design: Entity definitions and attribute specifications * - Relationship strategy: Cardinality and referential integrity planning * - Normalization approach: Application of 1NF, 2NF, 3NF principles * - Performance considerations: Index strategy and query optimization * - Snapshot architecture: Temporal data handling and audit requirements * - Materialized views: Denormalization strategy for performance */ plan: string; /** * Modified Prisma models based on review feedback. * * Contains ONLY the models that required changes, not the entire schema. * Each model is a complete table definition with all fields, relationships, * indexes, and documentation. These modifications merge with the original * schema to produce the final implementation. * * Model requirements: * * - Complete models: Each entry must be a complete model definition * - Targeted changes: Only includes models that need modifications * - AST compliance: Follows AutoBePrisma.IModel interface structure * - Relationship integrity: All foreign keys reference valid models * - Index optimization: Strategic indexes without redundancy * - Documentation: Comprehensive English descriptions * * Models not included remain unchanged from the original schema. All * modifications must resolve issues identified in the review. */ modifications: AutoBePrisma.IModel[]; } }