@ai2070/l0
Version:
L0: The Missing Reliability Substrate for AI
126 lines (125 loc) • 3.82 kB
JavaScript
import { z } from "zod4";
const GuardrailViolationSchema = z.object(
{
rule: z.string(),
message: z.string(),
severity: z.enum(["warning", "error", "fatal"]),
position: z.number().optional(),
recoverable: z.boolean(),
timestamp: z.number().optional(),
context: z.record(z.string(), z.unknown()).optional(),
suggestion: z.string().optional()
}
);
const GuardrailContextSchema = z.object({
content: z.string(),
checkpoint: z.string().optional(),
delta: z.string().optional(),
tokenCount: z.number(),
completed: z.boolean(),
metadata: z.record(z.string(), z.any()).optional(),
previousViolations: z.array(z.lazy(() => GuardrailViolationSchema)).optional()
});
const GuardrailRuleSchema = z.object({
name: z.string(),
description: z.string().optional(),
check: z.function(),
streaming: z.boolean().optional(),
severity: z.enum(["warning", "error", "fatal"]).optional(),
recoverable: z.boolean().optional()
});
const GuardrailStateSchema = z.object({
violations: z.array(GuardrailViolationSchema),
violationsByRule: z.map(z.string(), z.array(GuardrailViolationSchema)),
hasFatalViolations: z.boolean(),
hasErrorViolations: z.boolean(),
violationCount: z.number(),
lastCheckTime: z.number().optional()
});
const GuardrailConfigSchema = z.object({
rules: z.array(GuardrailRuleSchema),
stopOnFatal: z.boolean().optional(),
enableStreaming: z.boolean().optional(),
checkInterval: z.number().optional(),
onViolation: z.function().optional(),
onPhaseStart: z.function().optional(),
onPhaseEnd: z.function().optional(),
onRuleStart: z.function().optional(),
onRuleEnd: z.function().optional()
});
const GuardrailResultSchema = z.object({
passed: z.boolean(),
violations: z.array(GuardrailViolationSchema),
shouldRetry: z.boolean(),
shouldHalt: z.boolean(),
summary: z.object({
total: z.number(),
fatal: z.number(),
errors: z.number(),
warnings: z.number()
})
});
const JsonStructureSchema = z.object({
openBraces: z.number(),
closeBraces: z.number(),
openBrackets: z.number(),
closeBrackets: z.number(),
inString: z.boolean(),
isBalanced: z.boolean(),
issues: z.array(z.string())
});
const MarkdownStructureSchema = z.object({
openFences: z.number(),
fenceLanguages: z.array(z.string()),
inFence: z.boolean(),
headers: z.array(z.number()),
listDepth: z.number(),
issues: z.array(z.string())
});
const LatexStructureSchema = z.object({
openEnvironments: z.array(z.string()),
isBalanced: z.boolean(),
issues: z.array(z.string())
});
const PatternConfigSchema = z.object({
patterns: z.array(z.union([z.string(), z.instanceof(RegExp)])),
isBadPattern: z.boolean(),
message: z.string().optional(),
fatal: z.boolean().optional()
});
const DriftConfigSchema = z.object({
detectToneShift: z.boolean().optional(),
detectMetaCommentary: z.boolean().optional(),
detectRepetition: z.boolean().optional(),
detectEntropySpike: z.boolean().optional(),
entropyThreshold: z.number().optional(),
repetitionThreshold: z.number().optional()
});
const FunctionCallStructureSchema = z.object({
name: z.string().optional(),
arguments: z.string().optional(),
parsedArguments: z.record(z.string(), z.any()).optional(),
isValid: z.boolean(),
errors: z.array(z.string())
});
const SchemaValidationSchema = z.object({
valid: z.boolean(),
errors: z.array(z.string()),
parsed: z.any().optional()
});
export {
DriftConfigSchema,
FunctionCallStructureSchema,
GuardrailConfigSchema,
GuardrailContextSchema,
GuardrailResultSchema,
GuardrailRuleSchema,
GuardrailStateSchema,
GuardrailViolationSchema,
JsonStructureSchema,
LatexStructureSchema,
MarkdownStructureSchema,
PatternConfigSchema,
SchemaValidationSchema
};
//# sourceMappingURL=guardrails.js.map