UNPKG

@xynehq/jaf

Version:

Juspay Agent Framework - A purely functional agent framework with immutable state and composable tools

73 lines 2.31 kB
/** * Pure functional A2A types for JAF * Maintains immutability and type safety */ import { z } from 'zod'; // Error Types export const A2AErrorCodes = { PARSE_ERROR: -32700, INVALID_REQUEST: -32600, METHOD_NOT_FOUND: -32601, INVALID_PARAMS: -32602, INTERNAL_ERROR: -32603, TASK_NOT_FOUND: -32001, TASK_NOT_CANCELABLE: -32002, PUSH_NOTIFICATION_NOT_SUPPORTED: -32003, UNSUPPORTED_OPERATION: -32004, CONTENT_TYPE_NOT_SUPPORTED: -32005, INVALID_AGENT_RESPONSE: -32006 }; // Validation Schemas export const a2aMessageSchema = z.object({ role: z.enum(['user', 'agent']), parts: z.array(z.union([ z.object({ kind: z.literal('text'), text: z.string(), metadata: z.record(z.any()).optional() }), z.object({ kind: z.literal('data'), data: z.record(z.any()), metadata: z.record(z.any()).optional() }), z.object({ kind: z.literal('file'), file: z.union([ z.object({ bytes: z.string(), name: z.string().optional(), mimeType: z.string().optional() }), z.object({ uri: z.string(), name: z.string().optional(), mimeType: z.string().optional() }) ]), metadata: z.record(z.any()).optional() }) ])), messageId: z.string(), contextId: z.string().optional(), taskId: z.string().optional(), kind: z.literal('message'), metadata: z.record(z.any()).optional(), extensions: z.array(z.string()).optional(), referenceTaskIds: z.array(z.string()).optional() }); export const sendMessageRequestSchema = z.object({ jsonrpc: z.literal('2.0'), id: z.union([z.string(), z.number()]), method: z.literal('message/send'), params: z.object({ message: a2aMessageSchema, configuration: z.object({ acceptedOutputModes: z.array(z.string()).optional(), historyLength: z.number().optional(), blocking: z.boolean().optional() }).optional(), metadata: z.record(z.any()).optional() }) }); //# sourceMappingURL=types.js.map