UNPKG

@xynehq/jaf

Version:

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

75 lines 2.28 kB
import { z } from 'zod'; // Request/Response schemas export const httpMessageSchema = z.object({ role: z.enum(['user', 'assistant', 'system']), content: z.string() }); export const chatRequestSchema = z.object({ messages: z.array(httpMessageSchema), agentName: z.string(), context: z.any().optional(), maxTurns: z.number().optional(), stream: z.boolean().default(false), conversationId: z.string().optional(), memory: z.object({ autoStore: z.boolean().default(true), maxMessages: z.number().optional(), compressionThreshold: z.number().optional() }).optional() }); // Extended message schema that includes tool calls and responses export const fullMessageSchema = z.union([ httpMessageSchema, z.object({ role: z.literal('assistant'), content: z.string(), tool_calls: z.array(z.object({ id: z.string(), type: z.literal('function'), function: z.object({ name: z.string(), arguments: z.string() }) })).optional() }), z.object({ role: z.literal('tool'), content: z.string(), tool_call_id: z.string().optional() }) ]); export const chatResponseSchema = z.object({ success: z.boolean(), data: z.object({ runId: z.string(), traceId: z.string(), conversationId: z.string().optional(), messages: z.array(fullMessageSchema), outcome: z.object({ status: z.enum(['completed', 'error', 'max_turns']), output: z.string().optional(), error: z.any().optional() }), turnCount: z.number(), executionTimeMs: z.number() }).optional(), error: z.string().optional() }); export const agentListResponseSchema = z.object({ success: z.boolean(), data: z.object({ agents: z.array(z.object({ name: z.string(), description: z.string(), tools: z.array(z.string()) })) }).optional(), error: z.string().optional() }); export const healthResponseSchema = z.object({ status: z.literal('healthy'), timestamp: z.string(), version: z.string(), uptime: z.number() }); //# sourceMappingURL=types.js.map