@ai2070/l0
Version:
L0: The Missing Reliability Substrate for AI
79 lines • 2.64 kB
TypeScript
import type { z } from "zod";
import type { L0State, L0Telemetry, RetryOptions } from "./l0";
export interface StructuredOptions<T extends z.ZodTypeAny = z.ZodTypeAny> {
schema: T;
stream: () => Promise<any> | any;
fallbackStreams?: Array<() => Promise<any> | any>;
retry?: RetryOptions;
autoCorrect?: boolean;
strictMode?: boolean;
timeout?: {
initialToken?: number;
interToken?: number;
};
signal?: AbortSignal;
monitoring?: {
enabled?: boolean;
sampleRate?: number;
metadata?: Record<string, any>;
};
detectZeroTokens?: boolean;
onValidationError?: (error: z.ZodError, attempt: number) => void;
onAutoCorrect?: (corrections: CorrectionInfo) => void;
onRetry?: (attempt: number, reason: string) => void;
}
export interface StructuredResult<T> {
data: T;
raw: string;
corrected: boolean;
corrections: string[];
state: StructuredState;
telemetry?: StructuredTelemetry;
errors: Error[];
abort: () => void;
}
export interface StructuredState extends L0State {
validationFailures: number;
autoCorrections: number;
validationErrors: z.ZodError[];
}
export interface StructuredTelemetry extends L0Telemetry {
structured: {
schemaName?: string;
validationAttempts: number;
validationFailures: number;
autoCorrections: number;
correctionTypes: string[];
validationSuccess: boolean;
validationTime?: number;
};
}
export interface CorrectionInfo {
original: string;
corrected: string;
corrections: CorrectionType[];
success: boolean;
}
export type CorrectionType = "close_brace" | "close_bracket" | "remove_trailing_comma" | "strip_markdown_fence" | "strip_json_prefix" | "remove_prefix_text" | "remove_suffix_text" | "fix_quotes" | "remove_comments" | "escape_control_chars" | "fill_missing_fields" | "remove_unknown_fields" | "coerce_types" | "extract_json";
export interface AutoCorrectOptions {
structural?: boolean;
stripFormatting?: boolean;
schemaBased?: boolean;
strict?: boolean;
}
export interface AutoCorrectResult {
corrected: string;
success: boolean;
corrections: CorrectionType[];
error?: Error;
}
export interface StructuredPreset {
name: string;
autoCorrect: boolean;
strictMode: boolean;
retry: RetryOptions;
}
export declare const minimalStructured: Partial<StructuredOptions>;
export declare const recommendedStructured: Partial<StructuredOptions>;
export declare const strictStructured: Partial<StructuredOptions>;
//# sourceMappingURL=structured.d.ts.map