28 lines
917 B
TypeScript
28 lines
917 B
TypeScript
/**
|
|
* skills domain zod schemas (names derived from map keys: skillListRequestSchema /
|
|
* skillListValueSchema).
|
|
*/
|
|
|
|
import { z } from 'zod'
|
|
import type { RequestPayload, ResponseValue } from './rpc-map.ts'
|
|
import type { Wire } from './rpc.schema.ts'
|
|
import { sessionIdSchema } from './sessions.schema.ts'
|
|
import type { SkillEntry } from './skills.ts'
|
|
|
|
/** SkillEntry row of skill.list. */
|
|
export const skillEntrySchema = z.object({
|
|
name: z.string().min(1),
|
|
description: z.string(),
|
|
whenToUse: z.string().optional(),
|
|
}) satisfies z.ZodType<Wire<SkillEntry>>
|
|
|
|
/** skill.list request payload. */
|
|
export const skillListRequestSchema = z.object({
|
|
sessionId: sessionIdSchema,
|
|
}) satisfies z.ZodType<Wire<RequestPayload<'skill.list'>>>
|
|
|
|
/** skill.list response value. */
|
|
export const skillListValueSchema = z.object({
|
|
skills: z.array(skillEntrySchema),
|
|
}) satisfies z.ZodType<Wire<ResponseValue<'skill.list'>>>
|