@directus/api
Version:
Directus is a real-time API and App dashboard for managing SQL database content
27 lines (26 loc) • 933 B
JavaScript
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(),
}));