@autobe/agent
Version:
AI backend server code generator
115 lines (114 loc) • 3.83 kB
TypeScript
import { AutoBeAnalyze, AutoBeAnalyzeWriteSectionEvent } from "@autobe/interface";
export declare const buildConstraintConsistencyReport: (props: {
files: Array<{
file: AutoBeAnalyze.IFileScenario;
sectionEvents: AutoBeAnalyzeWriteSectionEvent[][];
}>;
}) => string;
export interface IConstraintConflict {
key: string;
values: Array<{
display: string;
files: string[];
}>;
}
/**
* Detect numeric constraint conflicts across files as structured data.
*
* Returns an array of conflicts where the same constraint key has different
* normalized values across files.
*/
export declare const detectConstraintConflicts: (props: {
files: Array<{
file: AutoBeAnalyze.IFileScenario;
sectionEvents: AutoBeAnalyzeWriteSectionEvent[][];
}>;
}) => IConstraintConflict[];
/** Build a map from filename → list of conflict feedback strings. */
export declare const buildFileConflictMap: (conflicts: IConstraintConflict[]) => Map<string, string[]>;
export interface IAttributeDuplicate {
key: string;
files: string[];
hasValueConflict: boolean;
values?: Array<{
specification: string;
files: string[];
}>;
}
/**
* Detect cross-file attribute duplication from YAML spec blocks.
*
* Returns attributes that are defined in YAML blocks across multiple files.
*/
export declare const detectAttributeDuplicates: (props: {
files: Array<{
file: AutoBeAnalyze.IFileScenario;
sectionEvents: AutoBeAnalyzeWriteSectionEvent[][];
}>;
}) => IAttributeDuplicate[];
export declare const buildFileAttributeDuplicateMap: (duplicates: IAttributeDuplicate[]) => Map<string, string[]>;
export interface IEnumConflict {
key: string;
values: Array<{
enumSet: string;
display: string;
files: string[];
}>;
}
/**
* Detect enum value conflicts from YAML spec blocks.
*
* Scans YAML attribute blocks for enum-like constraints and detects when
* different files define different enum value sets for the same attribute.
*/
export declare const detectEnumConflicts: (props: {
files: Array<{
file: AutoBeAnalyze.IFileScenario;
sectionEvents: AutoBeAnalyzeWriteSectionEvent[][];
}>;
}) => IEnumConflict[];
export declare const buildFileEnumConflictMap: (conflicts: IEnumConflict[]) => Map<string, string[]>;
export interface IPermissionConflict {
actorOperation: string;
rules: Array<{
condition: string;
files: string[];
}>;
}
/**
* Detect permission rule conflicts from YAML spec blocks.
*
* A conflict occurs when one YAML block allows an action but another doesn't
* include it for the same actor+resource.
*/
export declare const detectPermissionConflicts: (props: {
files: Array<{
file: AutoBeAnalyze.IFileScenario;
sectionEvents: AutoBeAnalyzeWriteSectionEvent[][];
}>;
}) => IPermissionConflict[];
export declare const buildFilePermissionConflictMap: (conflicts: IPermissionConflict[]) => Map<string, string[]>;
export interface IStateFieldConflict {
entity: string;
conflictType: string;
fields: Array<{
fieldName: string;
specification: string;
files: string[];
}>;
}
/**
* Detect state field conflicts from YAML spec blocks.
*
* Known contradiction patterns:
*
* 1. Same entity has both `deletedAt` (datetime) and `isDeleted` (boolean)
* 2. Same entity has `status` (enum) and semantically equivalent `is*` booleans
*/
export declare const detectStateFieldConflicts: (props: {
files: Array<{
file: AutoBeAnalyze.IFileScenario;
sectionEvents: AutoBeAnalyzeWriteSectionEvent[][];
}>;
}) => IStateFieldConflict[];
export declare const buildFileStateFieldConflictMap: (conflicts: IStateFieldConflict[]) => Map<string, string[]>;