@artinet/types
Version:
A collection of useful types for the artinet.
33 lines (32 loc) • 1.06 kB
JavaScript
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",
});