@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
JavaScript
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