
    opj                    \    d Z ddlmZ ddlZddlZddlmZ  ej                  e      Z	ddZ
y)zAbacus AI image generation provider for Hermes Agent.

Uses Abacus AI's RouteLLM API which provides access to FLUX, DALL-E,
MidJourney, and many other image generation models through a single
OpenAI-compatible endpoint.
    )annotationsN)Anyc                   ddl m} | j                   |              ddlm} dddddd	dg d
ddddd	dg dddddd	ddd	dddddidg d
dddidg ddddidddddd}| j                  dd||j                  d       dd dd!dd"d	id!gd#d}| j                  dd||j                  d$       t        j                  d%       y&)'z?Register the Abacus AI image gen provider and background tools.   )AbacusAIImageProvider)
backgroundimage_generate_backgroundzStart one or more image generation jobs in the background and return immediately with a job_id. Use image_generate_background_status to poll for results. Supports batch generation via the 'jobs' array.objectstringzDescribe the image to generate)typedescription)square	landscapeportraitzAspect ratio of the image)r   enumr   z0Model override (e.g. flux2_pro, nano_banana_pro))lowmediumhighzQuality tier (OpenAI models)z0Resolution: 1080p, 2K, 4K (nano_banana_pro only)integerz'Number of images (1-4, model dependent)arrayz-Batch of generation specs for multiple imagesr   )r   r   )promptaspect_ratiomodelquality
resolution)r   
properties)r   r   items)r   r   r   r   r   
num_imagesjobs)namer   
parameters	abacus_aiz&Start background image generation jobs)r    toolsetschemahandlerr    image_generate_background_statuszyCheck the status and result of a background image generation job. Returns the current status and the result if completed.job_idz%Job ID from image_generate_background)r   r   requiredzCheck background job statuszEPlugin 'abacus_ai' registered image_gen provider and background toolsN)
providerr   register_image_gen_provider r   register_tool!image_generate_background_handler(image_generate_background_status_handlerloggerinfo)ctxr   r   	bg_schemabg_status_schemas        5/root/.hermes/plugins/image_gen/abacus_ai/__init__.pyregisterr5      s{    0 ##$9$;<  ,>  %#C
 %?#>! %#U
 %5#A %#U
 &#L
 $#R ('-x&8(0(K- '-h%7(0(A( ,28*<'7/2
;Iz (<<<   3F $#J "
	
$ /CC1   KKWX    )r1   r   returnNone)__doc__
__future__r   jsonloggingtypingr   	getLogger__name__r/   r5    r6   r4   <module>rA      s1    #   			8	$lYr6   