host.schema.ts 1.1 KB

123456789101112131415161718192021222324252627
  1. /**
  2. * host domain zod schemas (names derived from map keys).
  3. */
  4. import { z } from 'zod'
  5. import type { RequestPayload, ResponseValue } from './rpc-map.ts'
  6. import type { Wire } from './rpc.schema.ts'
  7. /** host.describe request payload (empty object literal). */
  8. export const hostDescribeRequestSchema = z.object({}) satisfies z.ZodType<Wire<RequestPayload<'host.describe'>>>
  9. /** host.describe response value. */
  10. export const hostDescribeValueSchema = z.object({
  11. version: z.string(),
  12. cwd: z.string(),
  13. provider: z.string().optional(),
  14. model: z.string().optional(),
  15. attachedSessions: z.number().int().nonnegative(),
  16. }) satisfies z.ZodType<Wire<ResponseValue<'host.describe'>>>
  17. /** host.pickDirectory request payload (empty object literal). */
  18. export const hostPickDirectoryRequestSchema = z.object({}) satisfies z.ZodType<Wire<RequestPayload<'host.pickDirectory'>>>
  19. /** host.pickDirectory response value; null means the user cancelled. */
  20. export const hostPickDirectoryValueSchema = z.object({
  21. path: z.string().nullable(),
  22. }) satisfies z.ZodType<Wire<ResponseValue<'host.pickDirectory'>>>