import { z } from 'zod'; import { queryFilterSchema } from '@morten-olsen/stash-query-dsl'; import { createListResultSchema, queryDSLSchema } 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: z.union([queryDSLSchema, queryFilterSchema]).optional(), }) .meta({ id: 'DocumentChunkFilter' }); type DocumentChunkFilter = z.infer; const documentChunksFindResultSchema = createListResultSchema( documentChunkSchema .extend({ distance: z.number().optional(), }) .meta({ id: 'DocumentChunkWithDistance' }), ).meta({ id: 'DocumentChunkFindResult' }); type DocumentChunksFindResult = z.infer; export type { DocumentChunk, DocumentChunkFilter, DocumentChunksFindResult }; export { documentChunkSchema, documentChunkFilterSchema, documentChunksFindResultSchema };