UNPKG

@artinet/types

Version:

A collection of useful types for the artinet.

33 lines (32 loc) 1.06 kB
import z from "zod"; import { BaseSchema, RemoteServerSchema, WithKindSchema } from "./base.js"; export const ArtinetAgentSchema = BaseSchema.partial({ id: true, }).extend({ uri: z.string(), }); export const AgentCallSchema = ArtinetAgentSchema.extend({ directive: z.string(), }); export const AgentCallResultSchema = AgentCallSchema.extend({ result: z.string(), }); export const RemoteAgentSchema = RemoteServerSchema; export const AgentServerSchema = z.union([ ArtinetAgentSchema, RemoteAgentSchema, ]); export const AgentRequestSchema = AgentCallSchema.extend(WithKindSchema.shape) .extend({ kind: z.literal("agent_request").default("agent_request"), }) .refine((data) => data.kind === "agent_request", { message: "Kind must be agent_request", }); export const AgentResponseSchema = AgentCallResultSchema.extend(WithKindSchema.shape) .extend({ kind: z.literal("agent_response").default("agent_response"), }) .refine((data) => data.kind === "agent_response", { message: "Kind must be agent_response", });