UNPKG

@directus/api

Version:

Directus is a real-time API and App dashboard for managing SQL database content

27 lines (26 loc) 933 B
import {} from 'ai'; import { z } from 'zod'; import { parseJsonSchema7 } from '../utils/parse-json-schema-7.js'; import { ProviderAnthropic, ProviderOpenAi } from './providers.js'; export const ChatRequestTool = z.union([ z.string(), z.object({ name: z.string(), description: z.string(), inputSchema: z.custom((schema) => { try { parseJsonSchema7(schema); return true; } catch { return false; } }, { message: 'Invalid JSON schema' }), }), ]); export const ToolApprovalMode = z.enum(['always', 'ask', 'disabled']); export const ChatRequest = z.intersection(z.discriminatedUnion('provider', [ProviderOpenAi, ProviderAnthropic]), z.object({ tools: z.array(ChatRequestTool), messages: z.array(z.looseObject({})), toolApprovals: z.record(z.string(), ToolApprovalMode).optional(), }));