@ai2070/l0
Version:
L0: The Missing Reliability Substrate for AI
121 lines • 4.11 kB
JavaScript
import { z } from "zod4";
import { L0ResultSchema } from "./l0";
export const ChunkStrategySchema = z.enum([
"token",
"char",
"paragraph",
"sentence",
]);
export const ContextRestorationStrategySchema = z.enum(["adjacent", "overlap", "full"]);
export const WindowOptionsSchema = z.object({
size: z.number().optional(),
overlap: z.number().optional(),
strategy: ChunkStrategySchema.optional(),
estimateTokens: z.function().optional(),
preserveParagraphs: z.boolean().optional(),
preserveSentences: z.boolean().optional(),
metadata: z.record(z.string(), z.any()).optional(),
});
export const DocumentChunkSchema = z.object({
index: z.number(),
content: z.string(),
startPos: z.number(),
endPos: z.number(),
tokenCount: z.number(),
charCount: z.number(),
isFirst: z.boolean(),
isLast: z.boolean(),
totalChunks: z.number(),
metadata: z.record(z.string(), z.any()).optional(),
});
export const WindowProcessResultSchema = z.object({
chunk: DocumentChunkSchema,
result: L0ResultSchema.optional(),
status: z.enum(["success", "error"]),
error: z.instanceof(Error).optional(),
duration: z.number(),
});
export const WindowStatsSchema = z.object({
totalChunks: z.number(),
totalChars: z.number(),
totalTokens: z.number(),
avgChunkSize: z.number(),
avgChunkTokens: z.number(),
overlapSize: z.number(),
strategy: ChunkStrategySchema,
});
export const DocumentWindowSchema = z.object({
document: z.string(),
totalChunks: z.number(),
currentIndex: z.number(),
options: z.any(),
get: z.function(),
current: z.function(),
next: z.function(),
prev: z.function(),
jump: z.function(),
reset: z.function(),
getAllChunks: z.function(),
getRange: z.function(),
hasNext: z.function(),
hasPrev: z.function(),
processAll: z.function(),
processSequential: z.function(),
processParallel: z.function(),
getStats: z.function(),
});
export const ContextRestorationOptionsSchema = z.object({
enabled: z.boolean().optional(),
strategy: ContextRestorationStrategySchema.optional(),
maxAttempts: z.number().optional(),
onRestore: z.function().optional(),
});
export const L0WindowOptionsSchema = z.object({
__outputType: z.unknown().optional(),
stream: z.function(),
context: z.record(z.string(), z.unknown()).optional(),
fallbackStreams: z.array(z.function()).optional(),
guardrails: z.array(z.any()).optional(),
retry: z.any().optional(),
timeout: z
.object({
initialToken: z.number().optional(),
interToken: z.number().optional(),
})
.optional(),
signal: z.instanceof(AbortSignal).optional(),
monitoring: z.any().optional(),
checkIntervals: z.any().optional(),
detectDrift: z.boolean().optional(),
detectZeroTokens: z.boolean().optional(),
continueFromLastKnownGoodToken: z.boolean().optional(),
buildContinuationPrompt: z.function().optional(),
deduplicateContinuation: z.boolean().optional(),
deduplicationOptions: z.any().optional(),
onStart: z.function().optional(),
onComplete: z.function().optional(),
onError: z.function().optional(),
onEvent: z.function().optional(),
onViolation: z.function().optional(),
onRetry: z.function().optional(),
onFallback: z.function().optional(),
onResume: z.function().optional(),
onCheckpoint: z.function().optional(),
onTimeout: z.function().optional(),
onAbort: z.function().optional(),
onDrift: z.function().optional(),
onToolCall: z.function().optional(),
interceptors: z.array(z.any()).optional(),
adapter: z.any().optional(),
adapterOptions: z.unknown().optional(),
window: DocumentWindowSchema.optional(),
chunkIndex: z.number().optional(),
contextRestoration: ContextRestorationOptionsSchema.optional(),
});
export const WindowPresetSchema = z.object({
name: z.string(),
size: z.number(),
overlap: z.number(),
strategy: ChunkStrategySchema,
});
//# sourceMappingURL=window.js.map