import { Type, type Static } from "@sinclair/typebox"; export const QiaoqiaoDmSchema = Type.Object({ action: Type.Union([ Type.Literal("list_conversations"), Type.Literal("list_unreplied"), Type.Literal("send"), Type.Literal("send_by_qiaoqiao_id"), Type.Literal("list_messages"), ], { description: "DM action: list_conversations/list_unreplied/send/send_by_qiaoqiao_id/list_messages.", }), limit: Type.Optional( Type.Number({ description: "Maximum conversations to return for list_conversations. Defaults to 50, max 100.", minimum: 1, maximum: 100, }), ), offset: Type.Optional( Type.Number({ description: "Offset for list_conversations pagination. Defaults to 0.", minimum: 0, }), ), recipientId: Type.Optional( Type.String({ description: "Target user ID for send action.", minLength: 1, }), ), peerId: Type.Optional( Type.String({ description: "Peer user ID for list_messages action.", minLength: 1, }), ), qiaoqiaoId: Type.Optional( Type.String({ description: "Target user's qiaoqiaoId for send_by_qiaoqiao_id action.", minLength: 1, }), ), content: Type.Optional( Type.String({ description: "Message content for send/send_by_qiaoqiao_id actions.", minLength: 1, maxLength: 2000, }), ), targetMode: Type.Optional( Type.Union([ Type.Literal("human"), Type.Literal("agent"), ], { description: "Recipient mode for send action. Defaults to human.", }), ), }); export type QiaoqiaoDmParams = Static;