{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/LiquidCondition", "title": "LiquidCondition", "type": "object", "properties": { "type": { "type": "string", "description": "This is the type discriminator for liquid condition", "example": "liquid", "enum": [ "liquid" ] }, "liquid": { "type": "string", "description": "This is the Liquid template that must return exactly \"true\" or \"false\" as a string.\nThe template is evaluated and the entire output must be either \"true\" or \"false\" - nothing else.\n\nAvailable variables:\n- `messages`: Array of recent messages in OpenAI chat completions format (ChatCompletionMessageParam[])\n Each message has properties like: role ('user', 'assistant', 'system'), content (string), etc.\n- `now`: Current timestamp in milliseconds (built-in Liquid variable)\n- Any assistant variable values (e.g., `userName`, `accountStatus`)\n\nUseful Liquid filters for messages:\n- `messages | last: 5` - Get the 5 most recent messages\n- `messages | where: 'role', 'user'` - Filter to only user messages\n- `messages | reverse` - Reverse the order of messages", "examples": [ "{% if messages.last.content contains goodbye %}true{% else %}false{% endif %}", "{% assign userMessages = messages | where: role, user %}{% if userMessages.size > 3 %}true{% else %}false{% endif %}" ] } }, "required": [ "type", "liquid" ] }