+
    jHàjŸ  ã                  ó¨   € R t ^ RIHt ^ RIt^ RIt^ RIHtHtHtH	t	 ^ RI
HtHt ^ RIHtHt ]P                   ! ]4      tR
t ! R R]4      tR R	 ltR# )a
  FAL.ai registration adapter. Catalog, payload, submission, managed-gateway selection and
Clarity Upscaler chaining live in :mod:`tools.image_generation_tool`; this plugin imports it at
call time so tests keep patching ``image_tool.*`` and there is one FAL code path.)ÚannotationsN)ÚAnyÚDictÚListÚOptional)ÚDEFAULT_ASPECT_RATIOÚresolve_aspect_ratio)ÚStaticImageGenProviderÚcatalog_rowsc            	      óŒ   € ] tR t^tRtRtRt]! RRRRRRR	7      tR
 R lt	R R lt
R R ltR R lt]3RRRR/R R llltRtR# )ÚFalImageGenProviderzJFAL.ai backend delegating to ``tools.image_generation_tool`` at call time.ÚfalzFAL.aiÚpaiduu   Pick from flux-2-klein, flux-2-pro, gpt-image, nano-banana-2, nano-banana-pro, etc. â€” text-to-image & image editingÚFAL_KEYzFAL API keyzhttps://fal.ai/dashboard/keys)ÚnameÚbadgeÚtagÚkeyÚpromptÚurlc               ó   € V ^8„  d   QhRR/# )é   ÚreturnÚbool© )Úformats   "ÚC/home/ubuntu/.hermes/hermes-agent/plugins/image_gen/fal/__init__.pyÚ__annotate__Ú FalImageGenProvider.__annotate__   s   € ÷ ñ ˜dñ ó    c                	óf   € ^ RI Hp  \        VP                  4       4      #   \         d     R# i ; i)é    NF)Útools.image_generation_toolÚimage_generation_toolr   Úcheck_fal_api_keyÚ	Exception)ÚselfÚ_its   & r   Úis_availableÚ FalImageGenProvider.is_available   s0   € å1ð	Ü˜×-Ñ-Ó/Ó0Ð0øÜô 	Úð	ús   ˆ! ¡0¯0c               ó   € V ^8„  d   QhRR/# )r   r   zlist[dict[str, Any]]r   )r   s   "r   r   r   (   s   € ÷ (ñ (Ð1ñ (r   c                	ó$   € ^ RI Hp \        V4      # )r!   )Ú
FAL_MODELS)Útools.image_generation_catalogr,   r
   )r&   r,   s   & r   Úlist_modelsÚFalImageGenProvider.list_models(   s   € Ý=Ü˜JÓ'Ð'r   c               ó   € V ^8„  d   QhRR/# )r   r   úOptional[str]r   )r   s   "r   r   r   ,   s   € ÷ ñ ˜}ñ r   c                	ó   € ^ RI Hp V# )r!   )ÚDEFAULT_MODEL)r-   r3   )r&   r3   s   & r   Údefault_modelÚ!FalImageGenProvider.default_model,   s   € Ý@ØÐr   c               ó   € V ^8„  d   QhRR/# )r   r   údict[str, Any]r   )r   s   "r   r   r   0   s   € ÷ ]ñ ]˜nñ ]r   c                	óü   € ^ RI Hp  VP                  4       w  r#TP	                  R4      '       d-   RRR.R\        TP	                  R4      ;'       g    ^4      RR/# RR.R^ RR/#   \         d    RR.R^ /u # i ; i)	r!   NÚ
modalitiesÚtextÚmax_reference_imagesÚedit_endpointÚimageÚsupports_upscaleT)r"   r#   Ú_resolve_fal_modelr%   ÚgetÚint)r&   r'   Ú	_model_idÚmetas   &   r   ÚcapabilitiesÚ FalImageGenProvider.capabilities0   s¡   € å1ð	GØ!×4Ñ4Ó6‰OˆIð �8‰8�O×$Ò$à˜v wÐ/Ø&¬¨D¯H©HÐ5KÓ,L×,QÐ,QÐPQÓ(RØ" Dðð ð
 ˜v˜hÐ(>ÀÐCUÐW[Ð\Ð\øô ô 	GØ  6 (Ð,BÀAÐFÒFð	Gús   ˆA& Á&A;Á:A;Ú	image_urlNÚreference_image_urlsc               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# )r   r   ÚstrÚaspect_ratiorF   r1   rG   zOptional[list[str]]Úkwargsr   r   r7   r   )r   s   "r   r   r   @   s@   € ÷ ,ñ ,Øð,Ø),ð,à ð,à?Rð,ð ð,ð 
ñ	,r   c               ó4  € ^ RI Hp \        V4      p\         Uu/ uF   q…P	                  V4      f   K  W…V,          bK"  	  p	pVe   W9R&   Ve   WIR&    VP
                  ! RRVRV/V	B p
 \        T
\        4      '       d   \        P                  ! T
4      MT
p\        T\        4      '       g   R	R
RRRRRR/pTP!                  RR4       TP!                  RT4       TP!                  RT4       RT9  d    TP#                  4       ^ ,          TR&   T# T# u upi   \         dI   p\        P                  RTRR7       R	R
RRRRT 2R\        T4      P                  RRRTRT/u Rp?# Rp?ii ; i  \         d    R	R
RRRR/p Lìi ; i  \         d     T# i ; i)zZForward to ``image_generate_tool`` and reshape its JSON-string response into the ABC dict.NrF   rG   r   rJ   z"FAL image_generate_tool raised: %sT)Úexc_infoÚsuccessFr=   ÚerrorzFAL image generation failed: Ú
error_typeÚproviderr   zInvalid JSON from FAL pipelinez)FAL pipeline returned a non-dict responseÚprovider_contractÚmodelr   )r"   r#   r   Ú_PASSTHROUGH_KWARGSr@   Úimage_generate_toolr%   ÚloggerÚwarningÚtypeÚ__name__Ú
isinstancerI   ÚjsonÚloadsÚdictÚ
setdefaultr?   )r&   r   rJ   rF   rG   rK   r'   Úaspectr   ÚpassthroughÚrawÚexcÚresponses   &&&$$,       r   ÚgenerateÚFalImageGenProvider.generate@   sÎ  € õ 	2ä% lÓ3ˆÝ3FÓfÑ3F¨CÏ*É*ÐUXË/Ô'�s 3�KÒ'Ñ3FˆÐfàÒ Ø'0˜Ñ$ØÒ+Ø2FÐ.Ñ/ð	Ø×)Ò)Ñ\°Ð\ÀfÐ\ÐP[Ñ\ˆCð	dÜ*4°S¼#×*>Ò*>”t—z’z #”ÀCˆHô ˜(¤D×)Ò)à˜5 '¨4°Ð:eØÐ1ðˆHð
 	×Ñ˜J¨Ô.Ø×Ñ˜H fÔ-Ø×Ñ˜N¨FÔ3Ø˜(Ô"ðØ$'×$:Ñ$:Ó$<¸QÕ$?�˜Ñ!ð ˆˆxˆùòG gøô ô 	Ü�N‰NÐ?ÀÈtˆNÔTà˜5 '¨4°Ð<YÐZ]ÐY^Ð:_Øœd 3›i×0Ñ0°*¸eÀXÈvÐWeÐgmðõ ûð	ûô ô 	dØ! 5¨'°4¸ÐBbÐcŠHð	dûô ô ØØˆðúsL   šD³DÁD Á*.E/ Ã6F ÄE,Ä$=E'Å!E,Å'E,Å/FÆFÆFÆFr   )rY   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úprovider_idÚlabelr]   Úsetupr(   r.   r4   rD   r   rd   Ú__static_attributes__r   r   r   r   r      sb   † ÙTà€KØ€EÙØ˜Vð DØ˜mÐ1PôR€Eõ
õ(õõ]ð" 0Dñ,à#'ð,àUY÷,ô ,r   r   c               ó   € V ^8„  d   QhRR/# )r   r   ÚNoner   )r   s   "r   r   r   o   s   € ÷ ;ñ ;�Tñ ;r   c                ó8   € V P                  \        4       4       R# )uF   Plugin entry point â€” wire ``FalImageGenProvider`` into the registry.N)Úregister_image_gen_providerr   )Úctxs   &r   Úregisterrs   o   s   € à×#Ñ#Ô$7Ó$9Ö:r   )Únum_inference_stepsÚguidance_scaleÚ
num_imagesÚoutput_formatÚseedÚupscale)ri   Ú
__future__r   r[   ÚloggingÚtypingr   r   r   r   Úagent.image_gen_providerr   r   Úplugins.image_gen._commonr	   r
   Ú	getLoggerrY   rV   rT   r   rs   r   r   r   Ú<module>r€      sO   ðñUõ #ã Û ß ,Ó ,ç Oß Jà	×	Ò	˜8Ó	$€ðÐ ô
WÐ0ô W÷t;r   