UNPKG

@ai2070/l0

Version:

L0: The Missing Reliability Substrate for AI

79 lines 2.64 kB
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