import { z } from 'zod'; import { querySchema } from '@morten-olsen/stash-query-dsl'; import { createListResultSchema } from '../../utils/utils.schema.js'; const documentChunkSchema = z .object({ id: z.guid(), owner: z.string(), content: z.string(), metadata: z.unknown(), }) .meta({ id: 'DocumentChunk' }); type DocumentChunk = z.infer; const documentChunkFilterSchema = z .object({ limit: z.number().default(20), offset: z.number().default(0), semanticText: z.string().optional(), conditions: querySchema.optional(), }) .meta({ id: 'DocumentChunkFilter' }); type DocumentChunkFilter = z.infer; const documentChunkWithDistanceSchema = documentChunkSchema .extend({ distance: z.number().optional(), }) .meta({ id: 'DocumentChunkWithDistance' }); const documentChunksFindResultSchema = createListResultSchema(documentChunkWithDistanceSchema).meta({ id: 'DocumentChunkFindResult', }); type DocumentChunksFindResult = z.infer; export type { DocumentChunk, DocumentChunkFilter, DocumentChunksFindResult }; export { documentChunkSchema, documentChunkFilterSchema, documentChunksFindResultSchema, documentChunkWithDistanceSchema, };