@autobe/agent
Version:
AI backend server code generator
70 lines (61 loc) • 2.48 kB
text/typescript
import { AutoBeDatabaseComponentTableDesign } from "@autobe/interface";
import { tags } from "typia";
import { IAutoBePreliminaryComplete } from "../../common/structures/IAutoBePreliminaryComplete";
import { IAutoBePreliminaryGetAnalysisSections } from "../../common/structures/IAutoBePreliminaryGetAnalysisSections";
import { IAutoBePreliminaryGetPreviousAnalysisSections } from "../../common/structures/IAutoBePreliminaryGetPreviousAnalysisSections";
import { IAutoBePreliminaryGetPreviousDatabaseSchemas } from "../../common/structures/IAutoBePreliminaryGetPreviousDatabaseSchemas";
/**
* Designs ALL actor-related authentication tables. The Database Component agent
* will NOT create any actor or authentication tables — this agent owns that
* scope entirely.
*/
export interface IAutoBeDatabaseAuthorizationApplication {
/**
* Process authorization table design task.
*
* @param props Preliminary data request, write submission, or completion
* confirmation
*/
process(props: IAutoBeDatabaseAuthorizationApplication.IProps): void;
}
export namespace IAutoBeDatabaseAuthorizationApplication {
export interface IProps {
/**
* Think before you act.
*
* For preliminary requests: what information is missing and why?
*
* For write: what you're submitting and key design decisions.
*
* For complete: why you consider the last write final.
*/
thinking: string;
/**
* Action to perform. Exhausted preliminary types are removed from the
* union, physically preventing repeated calls.
*/
request:
| IWrite
| IAutoBePreliminaryComplete
| IAutoBePreliminaryGetAnalysisSections
| IAutoBePreliminaryGetPreviousAnalysisSections
| IAutoBePreliminaryGetPreviousDatabaseSchemas;
}
/** Submit authorization table design. */
export interface IWrite {
/** Type discriminator for write submission. */
type: "write";
/** Analysis of all actors' authentication requirements and patterns. */
analysis: string;
/** Rationale for the authorization table design decisions. */
rationale: string;
/**
* Table designs for all actors' authentication domains (snake_case, plural
* names).
*
* MUST include for each actor: main actor table + session table. MAY
* include: password reset, email verification, OAuth, 2FA tables.
*/
tables: AutoBeDatabaseComponentTableDesign[] & tags.MinItems<1>;
}
}