@autobe/agent
Version:
AI backend server code generator
90 lines (89 loc) • 3.94 kB
TypeScript
import { IAutoBePreliminaryComplete } from "../../common/structures/IAutoBePreliminaryComplete";
import { IAutoBePreliminaryGetPreviousAnalysisSections } from "../../common/structures/IAutoBePreliminaryGetPreviousAnalysisSections";
/**
* Reviews all files' section metadata in a single call for cross-file
* terminology, value, and naming consistency.
*/
export interface IAutoBeAnalyzeSectionCrossFileReviewApplication {
/** Review section metadata across all files for cross-file consistency. */
process(props: IAutoBeAnalyzeSectionCrossFileReviewApplication.IProps): void;
}
export declare namespace IAutoBeAnalyzeSectionCrossFileReviewApplication {
interface IProps {
/**
* Reasoning: what's missing (preliminary), what you're submitting (write),
* or why you're finalizing (complete).
*/
thinking?: string | null;
/**
* Action to perform. Review your own write output — call `complete` if
* satisfied, or submit another `write` to improve (3 writes maximum).
* Exhausted preliminary types are removed from the union.
*/
request: IWrite | IAutoBePreliminaryComplete | IAutoBePreliminaryGetPreviousAnalysisSections;
}
/** Submit the cross-file section consistency review with per-file verdicts. */
interface IWrite {
/** Type discriminator for write submission. */
type: "write";
/** Per-file review results. */
fileResults: IFileResult[];
}
/** Per-file review result from cross-file consistency check. */
interface IFileResult {
/** Index of the file in the scenario's files array. */
fileIndex: number;
/** Whether this file's sections are consistent with other files. */
approved: boolean;
/**
* Cross-file consistency feedback. For rejected files, describe specific
* inconsistencies.
*/
feedback: string;
/**
* Structured review issues for targeted rewrites. Optional for backward
* compatibility.
*/
issues?: IReviewIssue[] | null;
/**
* Module/unit pairs with cross-file consistency issues. Only these are
* regenerated on retry. Set to null if all module/units need regeneration,
* or if approving.
*/
rejectedModuleUnits: IRejectedModuleUnit[] | null;
}
/** Identifies specific module/unit pairs whose sections were rejected. */
interface IRejectedModuleUnit {
/** Index of the module section. */
moduleIndex: number;
/** Unit indices needing section regeneration. */
unitIndices: number[];
/** Feedback for this module/unit group's issues. */
feedback: string;
/**
* Structured issues scoped to this module/unit group. Optional for backward
* compatibility.
*/
issues?: IReviewIssue[] | null;
/**
* Per-unit mapping of section indices needing regeneration. When null or a
* unitIndex is absent, ALL sections for that unit are regenerated.
*/
sectionIndicesPerUnit?: Record<number, number[]> | null;
}
/** A specific review issue found during cross-file consistency check. */
interface IReviewIssue {
/** Rule violation code (e.g., "TERM-001", "VALUE-002"). */
ruleCode: string;
/** Module index where the issue was found, or null if file-level. */
moduleIndex: number | null;
/** Unit index where the issue was found, or null if module-level. */
unitIndex: number | null;
/** Section index where the issue was found, or null if unit-level. */
sectionIndex?: number | null;
/** Specific instruction for fixing this issue. */
fixInstruction: string;
/** Supporting evidence from the source text. */
evidence?: string | null;
}
}