- Description: "Send a text message to a WhatsApp chat. Send only a message that the user asked you to send, to the chat that the user named. Give a new id for each message: a call with an id that was used gives the answer of the first call and sends nothing.",
+ Description: "Send text or a stored image with text as its caption to a WhatsApp chat. Send only a message that the user asked you to send, to the chat that the user named. Give a new id for each message: a call with an id that was used gives the answer of the first call and sends nothing.",
+ Parameters: promptObjectSchema(map[string]any{
+ "id": promptStringSchema("A new id for this message, such as a short random word."),
+ "chat": promptStringSchema("The ID of the chat, from whatsapp_find or from a [WhatsApp] message."),
+ "text": promptStringSchema("The text, or the caption when sending an image. Can be empty with an image."),
+ "image": promptNullableStringSchema("The stored image filename from an [image FILE] line, or null for text only."),
+ }),
+ Strict: true,
+ }, ModelTool{
+ Type: "function",
+ Name: "route",
+ Description: "Route a source to your child, only after the user agrees. Use whatsapp:CHAT-ID with the ID from whatsapp_find or a [WhatsApp] message.",
+ Parameters: promptObjectSchema(map[string]any{
+ "source": promptStringSchema("The source key, whatsapp:CHAT-ID."),
+ "agent": promptStringSchema("The name of your child."),
+ }),
+ Strict: true,
+ }, ModelTool{
+ Type: "function",
+ Name: "unroute",
+ Description: "Remove a source route, only after the user agrees. New inputs go to you.",