§
    øžyj‡
  ã            
      ó¬   — d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ deedfdeedfde	ed	fd
e
edfdeedfdeedfdeedffZdd„ZdS )u¢  Spotify integration plugin â€” bundled, auto-loaded.

Registers 7 tools (playback, devices, queue, search, playlists, albums,
library) into the ``spotify`` toolset. Each tool's handler is gated by
``_check_spotify_available()`` â€” when the user has not run ``hermes auth
spotify``, the tools remain registered (so they appear in ``hermes
tools``) but the runtime check prevents dispatch.

Why a plugin instead of a top-level ``tools/`` file?

- ``plugins/`` is where third-party service integrations live (see
  ``plugins/image_gen/`` for the backend-provider pattern, ``plugins/
  disk-cleanup/`` for the standalone pattern). ``tools/`` is reserved
  for foundational capabilities (terminal, read_file, web_search, etc.).
- Mirroring the image_gen plugin layout (``plugins/<category>/<backend>/``
  for categories, flat ``plugins/<name>/`` for standalones) makes new
  service integrations a pattern contributors can copy.
- Bundled + ``kind: backend`` auto-loads on startup just like image_gen
  backends â€” no user opt-in needed, no ``plugins.enabled`` config.

The Spotify auth flow (``hermes auth spotify``), CLI plumbing, and docs
are unchanged. This move is purely structural.
é    )Úannotations)ÚSPOTIFY_ALBUMS_SCHEMAÚSPOTIFY_DEVICES_SCHEMAÚSPOTIFY_LIBRARY_SCHEMAÚSPOTIFY_PLAYBACK_SCHEMAÚSPOTIFY_PLAYLISTS_SCHEMAÚSPOTIFY_QUEUE_SCHEMAÚSPOTIFY_SEARCH_SCHEMAÚ_check_spotify_availableÚ_handle_spotify_albumsÚ_handle_spotify_devicesÚ_handle_spotify_libraryÚ_handle_spotify_playbackÚ_handle_spotify_playlistsÚ_handle_spotify_queueÚ_handle_spotify_searchÚspotify_playbacku   ðŸŽµÚspotify_devicesu   ðŸ”ˆÚspotify_queueu   ðŸ“»Úspotify_searchu   ðŸ”ŽÚspotify_playlistsu   ðŸ“šÚspotify_albumsu   ðŸ’¿Úspotify_libraryu   â�¤ï¸�ÚreturnÚNonec           	     ód   — t           D ]'\  }}}}|                      |d||t          |¬¦  «         Œ(dS )z=Register all Spotify tools. Called once by the plugin loader.Úspotify)ÚnameÚtoolsetÚschemaÚhandlerÚcheck_fnÚemojiN)Ú_TOOLSÚregister_toolr   )Úctxr   r    r!   r#   s        ú>/home/ragecks/.hermes/hermes-agent/plugins/spotify/__init__.pyÚregisterr(   8   sX   € å(.ð 
ð 
Ñ$ˆˆf�g˜uØ×ÒØØØØÝ-Øð 	ñ 	
ô 	
ð 	
ð 	
ð
ð 
ó    N)r   r   )Ú__doc__Ú
__future__r   Úplugins.spotify.toolsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r$   r(   © r)   r'   ú<module>r.      sV  ððð ð0 #Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð& Ð1Ð4LÈvÐVØÐ0Ð4KÈvÐVØÐ.Ð4IÈvÐVØÐ/Ð4JÈvÐVØÐ2Ð4MÈvÐVØÐ/Ð4JÈvÐVØÐ0Ð4KÈxÐXð
€ð

ð 

ð 

ð 

ð 

ð 

r)   