
    'jE                    T   U d Z ddlmZ ddlZddlmZmZ  ed           G d d                      ZdGdZ eddddej	        
                    dd           edd                     eddddej	        
                    dd           edd                     edd d!d"ej	        
                    d#d           ed$d%                     ed&d'd(d)ej	        
                    d*d           ed+d,          d-.           ed/d0d1d2ej	        
                    d3d           ed4d5          d.           ed6d7d8d9ej	        
                    d:d           ed;d<                     ed=d>d?d@ej	        
                    dAd           edBdC                    dDZdEedF<   dS )Hu?  Agent endpoint registry for Chanakya.

This is the single source of truth for every sub-agent's network location,
display name, and description.  Both the agents (for ``to_a2a`` registration
and uvicorn startup) and Chanakya (for A2A client URLs) derive their values
from here — no more scattered hardcoded strings.

Usage::

    from backend.chanakya.config import AGENT_REGISTRY

    cfg = AGENT_REGISTRY["gmail"]
    print(cfg.url)          # http://localhost:8001
    print(cfg.name)         # Gmail Agent
    print(cfg.module_path)  # backend.chanakya.gmail.agent:app
    )annotationsN)	dataclassfieldT)frozenc                      e Zd ZU dZded<   ded<   ded<   ded<   dZded<   d	Zd
ed<   dZded<   edd            Z	edd            Z
dS )AgentEndpointConfigz)Configuration for a single A2A sub-agent.strkeynamedescriptionmodule_path	localhosthosti@  intportFboolsupports_queryreturnc                &    d| j          d| j         S )z!Full base URL for the A2A client.http://:r   r   selfs    </var/www/html/ai-enterprise-brain/backend/chanakya/config.pyurlzAgentEndpointConfig.url.   s     100TY000    c                (    d| j          d| j         dS )z@URL for the pylogue chat UI (mounted at /chat on the same port).r   r   z/chatr   r   s    r   chat_urlzAgentEndpointConfig.chat_url3   s!     655TY5555r   N)r   r	   )__name__
__module____qualname____doc____annotations__r   r   r   propertyr   r    r   r   r   r      s         33 HHH III   DD N    1 1 1 X1 6 6 6 X6 6 6r   r   env_varr	   defaultr   r   c                    t           j                            |           }|r 	 t          |          S # t          $ r Y nw xY w|S )zBRead an integer port from an environment variable with a fallback.)osenvirongetr   
ValueError)r'   r(   raws      r   _portr/   9   sR    
*..
!
!C
 	s88O 	 	 	D	Ns   2 
??gmailzGmail AgentzzSearches and retrieves emails from Tata Steel's Gmail. Covers procurement, operations, safety, and project communications.z backend.chanakya.gmail.agent:appGMAIL_AGENT_HOSTr   GMAIL_AGENT_PORTiA  )r
   r   r   r   r   r   jiraz
Jira AgentzSearches and retrieves Jira tickets for Tata Steel operations. Covers maintenance, procurement, safety, and Enterprise Brain development.zbackend.chanakya.jira.agent:appJIRA_AGENT_HOSTJIRA_AGENT_PORTiB  
user_awarezUser Aware AgentzDelivers a personalised org snapshot to a user based on their role and project membership. Filters emails and tickets from the daily snapshot and shapes the response to their persona.z%backend.chanakya.user_aware.agent:appUSER_AWARE_AGENT_HOSTUSER_AWARE_AGENT_PORTiC  	insurancezInsurance AgentzAnswers natural-language questions by querying a live PostgreSQL database. Reads the schema definition, generates accurate SELECT queries, and returns results.z$backend.chanakya.insurance.agent:appPOSTGRES_AGENT_HOSTPOSTGRES_AGENT_PORTiD  F)r
   r   r   r   r   r   r   	tatasteelzTatasteel AgentzAnswers natural-language questions about Tata Steel's construction project database. Covers contracts, early warnings, compensation events, and quotations.z%backend.chanakya.tatasteel.server:appTATASTEEL_AGENT_HOSTTATASTEEL_AGENT_PORTiE  chanakyaChanakyazCentral intelligence hub for Tata Steel's Enterprise Brain. Orchestrates Gmail, Jira, and Insurance agents to answer cross-system questions.zbackend.chanakya.rt_agent:appCHANAKYA_HOSTCHANAKYA_PORTiJ  ui_agentzUI AgentzReceives raw query rows and a plain-text explanation from a data agent and renders them as frontend-ready visualisation widgets.z#backend.chanakya.ui_agent.agent:appUI_AGENT_HOSTUI_AGENT_PORTiK  )r0   r3   r6   r9   r<   r?   rC   zdict[str, AgentEndpointConfig]AGENT_REGISTRY)r'   r	   r(   r   r   r   )r#   
__future__r   r*   dataclassesr   r   r   r/   r+   r,   rF   r$   r&   r   r   <module>rI      s    " # " " " " " 				 ( ( ( ( ( ( ( ( $6 6 6 6 6 6 6 6@     ! R 7Z^^.<<U%t,,
 
 
  Y 6Z^^-{;;U$d++
 
 
 &%k <Z^^3[AAU*D11
 
 
 %$c ;Z^^1;??U($//   %$U <Z^^2K@@U)400  2 $#_ 4Z^^O[99U?D))
 
 
 $#H :Z^^O[99U?D))
 
 
e]2 ]2 ] ] ] ] ] ]r   