@ai2070/l0
Version:
L0: The Missing Reliability Substrate for AI
155 lines (154 loc) • 4.58 kB
JavaScript
import { z } from "zod4";
const CorrectionTypeSchema = z.enum([
"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"
]);
const CorrectionInfoSchema = z.object({
original: z.string(),
corrected: z.string(),
corrections: z.array(CorrectionTypeSchema),
success: z.boolean()
});
const AutoCorrectOptionsSchema = z.object(
{
structural: z.boolean().optional(),
stripFormatting: z.boolean().optional(),
schemaBased: z.boolean().optional(),
strict: z.boolean().optional()
}
);
const AutoCorrectResultSchema = z.object({
corrected: z.string(),
success: z.boolean(),
corrections: z.array(CorrectionTypeSchema),
error: z.instanceof(Error).optional()
});
const StructuredStateSchema = z.object({
// L0State fields
content: z.string(),
checkpoint: z.string(),
tokenCount: z.number(),
modelRetryCount: z.number(),
networkRetryCount: z.number(),
fallbackIndex: z.number(),
violations: z.array(z.any()),
// GuardrailViolation[]
driftDetected: z.boolean(),
completed: z.boolean(),
firstTokenAt: z.number().optional(),
lastTokenAt: z.number().optional(),
duration: z.number().optional(),
networkErrors: z.array(z.any()),
resumed: z.boolean(),
resumePoint: z.string().optional(),
resumeFrom: z.number().optional(),
dataOutputs: z.array(z.any()),
lastProgress: z.any().optional(),
toolCallStartTimes: z.map(z.string(), z.number()).optional(),
toolCallNames: z.map(z.string(), z.string()).optional(),
// StructuredState additions
validationFailures: z.number(),
autoCorrections: z.number(),
validationErrors: z.array(z.any())
// z.ZodError instances
});
const StructuredTelemetrySchema = z.object({
// L0Telemetry fields
sessionId: z.string(),
startTime: z.number(),
endTime: z.number().optional(),
duration: z.number().optional(),
metrics: z.object({
timeToFirstToken: z.number().optional(),
avgInterTokenTime: z.number().optional(),
tokensPerSecond: z.number().optional(),
totalTokens: z.number(),
totalRetries: z.number(),
networkRetryCount: z.number(),
modelRetryCount: z.number()
}),
network: z.object({
errorCount: z.number(),
errorsByType: z.record(z.string(), z.number()),
errors: z.array(z.any()).optional()
}),
guardrails: z.any().optional(),
drift: z.any().optional(),
continuation: z.any().optional(),
metadata: z.record(z.string(), z.any()).optional(),
// StructuredTelemetry additions
structured: z.object({
schemaName: z.string().optional(),
validationAttempts: z.number(),
validationFailures: z.number(),
autoCorrections: z.number(),
correctionTypes: z.array(z.string()),
validationSuccess: z.boolean(),
validationTime: z.number().optional()
})
});
const StructuredOptionsSchema = z.object({
schema: z.any(),
// z.ZodTypeAny - cannot be validated at runtime
stream: z.function(),
fallbackStreams: z.array(z.function()).optional(),
retry: z.any().optional(),
// RetryOptions has functions
autoCorrect: z.boolean().optional(),
strictMode: z.boolean().optional(),
timeout: z.object({
initialToken: z.number().optional(),
interToken: z.number().optional()
}).optional(),
signal: z.instanceof(AbortSignal).optional(),
monitoring: z.object({
enabled: z.boolean().optional(),
sampleRate: z.number().optional(),
metadata: z.record(z.string(), z.any()).optional()
}).optional(),
detectZeroTokens: z.boolean().optional(),
onValidationError: z.function().optional(),
onAutoCorrect: z.function().optional(),
onRetry: z.function().optional()
});
const StructuredResultSchema = z.object({
data: z.any(),
raw: z.string(),
corrected: z.boolean(),
corrections: z.array(z.string()),
state: StructuredStateSchema,
telemetry: StructuredTelemetrySchema.optional(),
errors: z.array(z.instanceof(Error)),
abort: z.function()
});
const StructuredPresetSchema = z.object({
name: z.string(),
autoCorrect: z.boolean(),
strictMode: z.boolean(),
retry: z.any()
// RetryOptions has functions
});
export {
AutoCorrectOptionsSchema,
AutoCorrectResultSchema,
CorrectionInfoSchema,
CorrectionTypeSchema,
StructuredOptionsSchema,
StructuredPresetSchema,
StructuredResultSchema,
StructuredStateSchema,
StructuredTelemetrySchema
};
//# sourceMappingURL=structured.js.map