import { z } from 'zod' export const sendMessageInputSchema = z.object({ msg: z.string(), searchEnable: z.boolean().optional(), history: z .array( z.object({ role: z.union([z.literal('user'), z.literal('assistant')]), content: z.string() }) ) .optional(), files: z.array(z.string()).optional(), conversationId: z.string().optional() }) const WeChatCommonInputSchema = z.object({ toUserName: z.string(), fromUserName: z.string(), createTime: z.number(), msgType: z.string(), msgId: z.union([z.string(), z.number()]).transform(val => val.toString()) }) const WeChatTextInputSchema = WeChatCommonInputSchema.extend({ content: z.string() }) const WeChatVoiceInputSchema = WeChatCommonInputSchema.extend({ mediaId: z.string(), format: z.string() }) const WeChatWorkCommonInputSchema = z.object({ msgId: z.string(), openKfId: z.string(), externalUserId: z.string(), sendTime: z.number(), origin: z.number(), msgType: z.string() }) const WeChatWorkTextInputSchema = WeChatWorkCommonInputSchema.extend({ text: z.object({ content: z.string() }) }) const WeChatWorkVoiceInputSchema = WeChatWorkCommonInputSchema.extend({ voice: z.object({ mediaId: z.string() }) }) export const wxSendMessageInputSchema = z.object({ callbackData: z.union([WeChatTextInputSchema, WeChatVoiceInputSchema, WeChatWorkTextInputSchema, WeChatWorkVoiceInputSchema]) }) export const sendFeedbackInputSchema = z.object({ recordId: z.string(), type: z.string(), comment: z.string(), rating: z.number(), tags: z.array(z.string()), input: z.string(), aiAnswer: z.string() }) export const getFeedbackInputSchema = z.object({ type: z.string(), sender: z.string(), senderFilter: z.string(), minRating: z.coerce.number(), maxRating: z.coerce.number(), from: z.coerce.number(), to: z.coerce.number(), pageSize: z.coerce.number(), pageNumber: z.coerce.number() }) export const getChatRecordInputSchema = z.object({ sort: z.string(), pageSize: z.coerce.number(), pageNumber: z.coerce.number(), conversationId: z.string().optional() }) export const getRecommendQuestionsInputSchema = z.object({ name: z.string().optional(), introduction: z.string().optional(), agentSetting: z.string().optional(), msg: z.string().optional(), history: z .array( z.object({ role: z.string(), content: z.string() }) ) .optional() }) export const speechToTextInputSchema = z.object({ engSerViceType: z.string(), voiceFormat: z.string(), url: z.string(), isPreview: z.boolean().optional() }) export const textToSpeechInputSchema = z.object({ text: z.string(), voiceType: z.number(), isPreview: z.boolean().optional() }) export const getTextToSpeechResultInputSchema = z.object({ taskId: z.string(), isPreview: z.string().optional() }) export const getConversationInputSchema = z.object({ isDefault: z .string() .transform(value => { if (value === 'true') return true if (value === 'false') return false }) .optional(), limit: z.coerce.number().optional(), offset: z.coerce.number().optional() }) export const updateConversationInputSchema = z.object({ title: z.string() })