@ai2070/l0
Version:
L0: The Missing Reliability Substrate for AI
72 lines • 2.38 kB
TypeScript
export interface JSONSchemaDefinition {
$schema?: string;
$id?: string;
$ref?: string;
type?: string | string[];
properties?: Record<string, JSONSchemaDefinition>;
required?: string[];
items?: JSONSchemaDefinition | JSONSchemaDefinition[];
additionalProperties?: boolean | JSONSchemaDefinition;
enum?: unknown[];
const?: unknown;
allOf?: JSONSchemaDefinition[];
anyOf?: JSONSchemaDefinition[];
oneOf?: JSONSchemaDefinition[];
not?: JSONSchemaDefinition;
if?: JSONSchemaDefinition;
then?: JSONSchemaDefinition;
else?: JSONSchemaDefinition;
minimum?: number;
maximum?: number;
minLength?: number;
maxLength?: number;
pattern?: string;
format?: string;
default?: unknown;
description?: string;
title?: string;
[key: string]: unknown;
}
export interface JSONSchemaValidationError {
path: string;
message: string;
keyword?: string;
params?: Record<string, unknown>;
}
export type JSONSchemaValidationResult<T = unknown> = {
valid: true;
data: T;
} | {
valid: false;
errors: JSONSchemaValidationError[];
};
export interface JSONSchemaAdapter {
validate: <T = unknown>(schema: JSONSchemaDefinition, data: unknown) => JSONSchemaValidationResult<T>;
formatErrors: (errors: JSONSchemaValidationError[]) => string;
}
export declare function registerJSONSchemaAdapter(adapter: JSONSchemaAdapter): void;
export declare function unregisterJSONSchemaAdapter(): void;
export declare function hasJSONSchemaAdapter(): boolean;
export declare function getJSONSchemaAdapter(): JSONSchemaAdapter;
export declare function isJSONSchema(value: unknown): value is JSONSchemaDefinition;
export declare function validateJSONSchema<T = unknown>(schema: JSONSchemaDefinition, data: unknown): {
success: true;
data: T;
} | {
success: false;
error: Error;
};
export interface UnifiedSchema<T = unknown> {
readonly _tag: "zod" | "effect" | "jsonschema";
parse(data: unknown): T;
safeParse(data: unknown): {
success: true;
data: T;
} | {
success: false;
error: Error;
};
}
export declare function wrapJSONSchema<T = unknown>(schema: JSONSchemaDefinition): UnifiedSchema<T>;
export declare function createSimpleJSONSchemaAdapter(): JSONSchemaAdapter;
//# sourceMappingURL=jsonSchemaCompat.d.ts.map