1818from agntcy .dir_sdk .client .auth .session import OAuthSessionManager
1919from agntcy .dir_sdk .client .auth .token_cache import CachedToken , TokenCache
2020from agntcy .dir_sdk .client .config import Config
21+ from agntcy .dir_sdk .client .services .ai_finder import AIFinderService
2122from agntcy .dir_sdk .client .services .events import EventService
2223from agntcy .dir_sdk .client .services .naming import NamingService
2324from agntcy .dir_sdk .client .services .publication import PublicationService
3233 JWTAuthInterceptor ,
3334)
3435from agntcy .dir_sdk .models import (
36+ catalog_v1 ,
3537 core_v1 ,
3638 events_v1 ,
3739 naming_v1 ,
4042 sign_v1 ,
4143 store_v1 ,
4244)
45+ from google .api .httpbody_pb2 import HttpBody
4346
4447logger = logging .getLogger ("client" )
4548
@@ -76,6 +79,7 @@ def __init__(self, config: Config | None = None) -> None:
7679 self .sync_client = store_v1 .SyncServiceStub (channel )
7780 self .event_client = events_v1 .EventServiceStub (channel )
7881 self .naming_client = naming_v1 .NamingServiceStub (channel )
82+ self .ai_finder_client = catalog_v1 .AIFinderServiceStub (channel )
7983
8084 # Service-layer adapters grouped by technical area.
8185 self .store_service = StoreService (self .store_client , logger )
@@ -86,6 +90,7 @@ def __init__(self, config: Config | None = None) -> None:
8690 self .sync_service = SyncService (self .sync_client , logger )
8791 self .event_service = EventService (self .event_client , logger )
8892 self .naming_service = NamingService (self .naming_client , logger )
93+ self .ai_finder_service = AIFinderService (self .ai_finder_client , logger )
8994
9095 def has_cached_oauth_token (self ) -> bool :
9196 return self .oauth_session .has_access_token ()
@@ -278,5 +283,33 @@ def verify(
278283 ) -> sign_v1 .VerifyResponse :
279284 return self .sign_service .verify (req , metadata = metadata )
280285
286+ def list_agents (
287+ self ,
288+ req : catalog_v1 .ListAgentsRequest ,
289+ metadata : Sequence [tuple [str , str ]] | None = None ,
290+ ) -> catalog_v1 .ListAgentsResponse :
291+ return self .ai_finder_service .list_agents (req , metadata = metadata )
292+
293+ def get_agent (
294+ self ,
295+ req : catalog_v1 .GetAgentRequest ,
296+ metadata : Sequence [tuple [str , str ]] | None = None ,
297+ ) -> catalog_v1 .GetAgentResponse :
298+ return self .ai_finder_service .get_agent (req , metadata = metadata )
299+
300+ def export_agent (
301+ self ,
302+ req : catalog_v1 .ExportAgentRequest ,
303+ metadata : Sequence [tuple [str , str ]] | None = None ,
304+ ) -> HttpBody :
305+ return self .ai_finder_service .export_agent (req , metadata = metadata )
306+
307+ def get_well_known_catalog (
308+ self ,
309+ req : catalog_v1 .GetWellKnownCatalogRequest ,
310+ metadata : Sequence [tuple [str , str ]] | None = None ,
311+ ) -> catalog_v1 .GetWellKnownCatalogResponse :
312+ return self .ai_finder_service .get_well_known_catalog (req , metadata = metadata )
313+
281314 def sign (self , req : sign_v1 .SignRequest ) -> None :
282315 self .sign_service .sign (req )
0 commit comments