import { z } from "zod"; /** Kinds a library folder indexes; everything else in the folder is ignored. */ export const MediaLibraryKindSchema = z.enum(["photo", "video"]); export type MediaLibraryKind = z.infer; export const MediaLibrarySourceStatusSchema = z.enum(["idle", "syncing", "failed"]); export type MediaLibrarySourceStatus = z.infer; export const MediaLibrarySourceSchema = z.object({ id: z.string(), path: z.string(), status: MediaLibrarySourceStatusSchema, error: z.string().nullable(), assetCount: z.number().int().nonnegative(), lastSyncedAt: z.string().nullable(), }); export type MediaLibrarySource = z.infer; export const MediaLibrarySourceAddInputSchema = z.object({ path: z.string().trim().min(1).max(4096), }); export type MediaLibrarySourceAddInput = z.infer; /** Arguments of the `search_media` agent tool. */ export const MediaLibrarySearchInputSchema = z.object({ query: z.string().trim().max(200).optional(), kind: MediaLibraryKindSchema.optional(), taken_after: z.string().datetime({ offset: true }).optional(), taken_before: z.string().datetime({ offset: true }).optional(), limit: z.number().int().min(1).max(50).optional(), }); export type MediaLibrarySearchInput = z.infer; /** Arguments of the `import_media` agent tool. */ export const MediaLibraryImportInputSchema = z.object({ asset_id: z.string().min(1).max(64), }); export type MediaLibraryImportInput = z.infer;