UNPKG

@openai/agents-realtime

Version:

The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows. This package contains the logic for building realtime voice agents on the server or in the browser.

64 lines 2.41 kB
import { z } from 'zod'; export const baseItemSchema = z.object({ itemId: z.string(), }); export const realtimeMessageItemSchema = z.discriminatedUnion('role', [ z.object({ itemId: z.string(), previousItemId: z.string().nullable().optional(), type: z.literal('message'), role: z.literal('system'), content: z.array(z.object({ type: z.literal('input_text'), text: z.string() })), }), z.object({ itemId: z.string(), previousItemId: z.string().nullable().optional(), type: z.literal('message'), role: z.literal('user'), status: z.enum(['in_progress', 'completed']), content: z.array(z.object({ type: z.literal('input_text'), text: z.string() }).or(z.object({ type: z.literal('input_audio'), audio: z.string().nullable().optional(), transcript: z.string().nullable(), }))), }), z.object({ itemId: z.string(), previousItemId: z.string().nullable().optional(), type: z.literal('message'), role: z.literal('assistant'), status: z.enum(['in_progress', 'completed', 'incomplete']), content: z.array(z.object({ type: z.literal('output_text'), text: z.string() }).or(z.object({ type: z.literal('output_audio'), audio: z.string().nullable().optional(), transcript: z.string().nullable().optional(), }))), }), ]); export const realtimeToolCallItem = z.object({ itemId: z.string(), previousItemId: z.string().nullable().optional(), type: z.literal('function_call'), status: z.enum(['in_progress', 'completed', 'incomplete']), arguments: z.string(), name: z.string(), output: z.string().nullable(), }); export const realtimeMcpCallItem = z.object({ itemId: z.string(), previousItemId: z.string().nullable().optional(), type: z.enum(['mcp_call', 'mcp_tool_call']), status: z.enum(['in_progress', 'completed', 'incomplete']), arguments: z.string(), name: z.string(), output: z.string().nullable(), }); export const realtimeMcpCallApprovalRequestItem = z.object({ itemId: z.string(), type: z.literal('mcp_approval_request'), serverLabel: z.string(), name: z.string(), arguments: z.record(z.string(), z.any()), approved: z.boolean().optional().nullable(), }); //# sourceMappingURL=items.mjs.map