Ctrl K
ComunidadGuías…

tests/_image_fixtures.py

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
"""Shared tiny image fixtures for tool-result replay tests.

Real Pillow-generated images, small enough to inline: used by both the
Claude-native transcript tests and the runtime tool-result-content tests.
"""

from typing import Any

# Genuinely decodable 1x1 images (generated and round-trip verified), so the
# replay tests exercise the exact payloads real MCP screenshot tools persist.
_TINY_PNG_BASE64 = (
    "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR4nGNgYGBgAAAABQAB"
    "pfZFQAAAAABJRU5ErkJggg=="
)


_TINY_JPEG_BASE64 = (
    "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRof"
    "Hh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwh"
    "MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAAR"
    "CAABAAEDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA"
    "AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK"
    "FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG"
    "h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl"
    "5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA"
    "AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk"
    "NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE"
    "hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk"
    "5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDi6KKK+ZP3E//Z"
)


_TINY_PROGRESSIVE_JPEG_BASE64 = (
    "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a"
    "HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy"
    "MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wgARCAAEAAQDASIA"
    "AhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAX/xAAVAQEBAAAAAAAAAAAAAAAAAAAEBv/aAAwD"
    "AQACEAMQAAABjgVN/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQABBQJ//8QAFBEBAAAAAAAA"
    "AAAAAAAAAAAAAP/aAAgBAwEBPwF//8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgBAgEBPwF//8QA"
    "FBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAGPwJ//8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgB"
    "AQABPyF//9oADAMBAAIAAwAAABDz/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgBAwEBPxB//8QA"
    "FBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgBAgEBPxB//8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgB"
    "AQABPxB//9k="
)


_TINY_PROGRESSIVE_GRAY_JPEG_BASE64 = (
    "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a"
    "HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wgALCAAEAAQBAREA/8QAFAABAAAAAAAA"
    "AAAAAAAAAAAAAP/aAAgBAQAAAAF//8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQABBQJ//8QA"
    "FBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAGPwJ//8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgB"
    "AQABPyF//9oACAEBAAAAEH//xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAE/EH//2Q=="
)


_TINY_CMYK_JPEG_BASE64 = (
    "/9j/7gAOQWRvYmUAZAAAAAAA/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwc"
    "ICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/8IAFAgABAAEBEMRAE0RAFkRAEsRAP/EABYA"
    "AQEBAAAAAAAAAAAAAAAAAAYBB//aAA4EQwBNAFkASwAAAAF/M/f/AP/EABQQAQAAAAAAAAAAAAAA"
    "AAAAAAD/2gAIAUMAAQUCf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAU0AAQUCf//EABQQAQAA"
    "AAAAAAAAAAAAAAAAAAD/2gAIAVkAAQUCf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAUsAAQUC"
    "f//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAUMABj8Cf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/"
    "2gAIAU0ABj8Cf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAVkABj8Cf//EABQQAQAAAAAAAAAA"
    "AAAAAAAAAAD/2gAIAUsABj8Cf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAUMAAT8hf//EABQQ"
    "AQAAAAAAAAAAAAAAAAAAAAD/2gAIAU0AAT8hf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAVkA"
    "AT8hf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAUsAAT8hf//aAA4EQwBNAFkASwAAABDf/8QA"
    "FBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBQwABPxB//8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgB"
    "TQABPxB//8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBWQABPxB//8QAFBABAAAAAAAAAAAAAAAA"
    "AAAAAP/aAAgBSwABPxB//9k="
)


_TINY_GIF_BASE64 = "R0lGODdhAQABAIAAAAAAAAAAACwAAAAAAQABAAAIBAABBAQAOw=="


_TINY_WEBP_BASE64 = (
    "UklGRj4AAABXRUJQVlA4IDIAAADQAQCdASoBAAEAAUAmJaACdLoB+AADsAD+6SIf+8+fufP3"
    "Pn/Rn/+U/fI4/kcf/KBAAA=="
)


def mcp_call_output(*content_blocks: Any, is_error: bool = False) -> str:
    """Format a real ``CallToolResult`` through the real ``_format_call_result``.

    ``is_error=True`` gives the failed spelling, which that formatter prefixes.
    """
    from mcp.types import CallToolResult

    from omnigent.tools.mcp import _format_call_result

    return _format_call_result(CallToolResult(content=list(content_blocks), isError=is_error))