
    i                         S r SSKrSSKrSSKrSSKrSSKJr  SSKJrJ	r	  SSK
JrJrJrJr  \R                  " S5      r\" S5      r\S-  r\S	-  r\ " S
 S5      5       r " S S5      r\" 5       rg)u   
Genesis V2 Ultrathink Bridge
============================
Unified session persistence and cross-tool dispatch system.
Connects Google Antigravity ↔ Gemini CLI ↔ Claude Code.
    N)Path)	dataclassasdict)DictListOptionalAnyzgenesis_v2.core.ultrathinkzE:/genesis-systemz.genesis_statezultrathink_session.jsonc                       \ rS rSr% Sr\\S'   \\S'   \\S'   \\S'   \\\	4   \S'   \\S'   \
\\\4      \S	'   \
\   \S
'   S\4S jr\S\SS 4S j5       rSrg)BridgeSession   z0Represents the unified Ultrathink session state.
session_idmission
started_at	last_syncactive_toolscontext_summarydispatch_queue	learningsreturnc                     [        U 5      $ N)r   selfs    6e:\genesis-system\genesis_v2\core\ultrathink_bridge.pyto_dictBridgeSession.to_dict$   s    d|    datac           
          U " S0 UR                  5        VVs0 s H  u  p#X R                  ;   d  M  X#_M     snnD6$ s  snnf )N )items__dataclass_fields__)clsr   kvs       r   	from_dictBridgeSession.from_dict'   s9    Vtzz|U|tqq<T<T7Tdad|UVVUs   ==r    N)__name__
__module____qualname____firstlineno____doc__str__annotations__floatr   boolr   r	   dictr   classmethodr&   __static_attributes__r    r   r   r   r      s~    :OLsDy/!c3h((Cy  WT Wo W Wr   r   c            	           \ rS rSrSrS rS rS\S\4S jr	S\
\   4S jrS	 rSS
\S\4S jjrSS\S\S\\\4   4S jjrS\S\4S jrS\\\4   4S jrS\4S jrSrg)UltrathinkBridge,   z+
Bridge controller for cross-tool synergy.
c                 R    S U l         U R                  5         U R                  5         g r   )session_ensure_state_dirload_sessionr   s    r   __init__UltrathinkBridge.__init__1   s!    04 r   c                 `    [         R                  5       (       d  [         R                  SSS9  gg)zEnsure state directory exists.T)parentsexist_okN)	STATE_DIRexistsmkdirr   s    r   r9   "UltrathinkBridge._ensure_state_dir6   s&    !!OOD4O8 "r   r   r   c                 *   S[        [        R                  " 5       5       3n[        UU[        R                  " 5       [        R                  " 5       SSSS.S/ / S9U l        U R	                  5         [
        R                  SU 35        U R                  $ )z$Initialize a new Ultrathink session.ultrathink_FT)
gemini_cliantigravityclaude_codezSession started.)r   r   r   r   r   r   r   r   zUltrathink session started: )inttimer   r8   save_sessionloggerinfo)r   r   r   s      r   start_sessionUltrathinkBridge.start_session;   s~    "3tyy{#3"45
$!yy{iik(-dSXY.	
 	2:,?@||r   c                 0   [         R                  5       (       aN   [        R                  " [         R	                  SS95      n[
        R                  U5      U l        U R                  $ g! [         a"  n[        R                  SU 35         SnAgSnAff = f)zLoad session state from disk.utf-8encodingzFailed to load session: N)SESSION_FILErA   jsonloads	read_textr   r&   r8   	ExceptionrL   error)r   r   es      r   r:   UltrathinkBridge.load_sessionL   s      =zz,"8"8'"8"JK,66t<||#   =7s;<<=s   AA) )
B3BBc                     U R                   (       ad  [        R                  " 5       U R                   l        [        R	                  [
        R                  " U R                   R                  5       SS9SS9  gg)zPersist session state to disk.   )indentrQ   rR   N)r8   rJ   r   rT   
write_textrU   dumpsr   r   s    r   rK   UltrathinkBridge.save_sessionW   sL    <<%)YY[DLL"##DJJt||/C/C/Ea$P[b#c r   	tool_namestatusc                     U R                   (       d  U R                  S5        U R                   (       a)  X R                   R                  U'   U R                  5         gg)z1Register a tool as active in the current session.zAuto-started sessionN)r8   rN   r   rK   )r   rb   rc   s      r   register_toolUltrathinkBridge.register_tool]   sB    ||56<<39LL%%i0 r   taskpriorityc                 *   U R                  U5      nS[        [        R                  " 5       5       3UUUS[        R                  " 5       S.nU R                  (       a5  U R                  R                  R                  U5        U R                  5         U$ )z^
Route a task to the optimal tool based on capability and cost.
Returns the routing decision.
task_pending)idcontentrh   assigned_toolrc   
created_at)_determine_optimal_toolrI   rJ   r8   r   appendrK   )r   rg   rh   tooltask_packets        r   dispatchUltrathinkBridge.dispatchf   s{    
 ++D1 #diik*+, !))+
 <<LL''..{;r   c                    ^ UR                  5       m[        U4S jS 5       5      (       a  g[        U4S jS 5       5      (       a  g[        U4S jS 5       5      (       a  g	[        U4S
 jS 5       5      (       a  gg)zHeuristic dispatch logic.c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r    .0w
task_lowers     r   	<genexpr>;UltrathinkBridge._determine_optimal_tool.<locals>.<genexpr>   s     c(b1J(b   )writeblogpostemail	marketingrm   z
gemini-clic              3   ,   >#    U  H	  oT;   v   M     g 7fr   r    rx   s     r   r|   r}           T(S1J(Sr~   )refactorrewritemigratefilesz	jules-proc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r    rx   s     r   r|   r}      r   r~   )	architectdesignplanstrategyzclaude-codec              3   ,   >#    U  H	  oT;   v   M     g 7fr   r    rx   s     r   r|   r}      s     `(_1J(_r~   )researchbrowsefindsearchinvestigaterG   )lowerany)r   rg   r{   s     @r   rp   (UltrathinkBridge._determine_optimal_tool|   so    ZZ\
 c(bccc T(STTT T(STTT  `(_```  r   c                     U R                  5         U R                  (       a  SOSU R                  (       a  U R                  R                  5       OS[        [        5      SS.$ )z#Return comprehensive bridge status.activeinactiveNz1.0.0)rc   r8   
state_filebridge_version)r:   r8   r   r-   rT   r   s    r   get_bridge_status"UltrathinkBridge.get_bridge_status   sH     #',,hJ15t||++-4l+%	
 	
r   insightc                     U R                   (       aP  XR                   R                  ;  a6  U R                   R                  R                  U5        U R                  5         ggg)z#Save a key learning to the session.N)r8   r   rq   rK   )r   r   s     r   persist_learning!UltrathinkBridge.persist_learning   sG    <<ll444&&--g6!!# 5 r   )r8   N)T)medium)r(   r)   r*   r+   r,   r;   r9   r-   r   rN   r   r:   rK   r0   re   r   r	   rt   rp   r   r   r3   r    r   r   r5   r5   ,   s    
9
S ] "	h}5 	d s  D  S C tCH~ ,C C .	
4S> 	
$ $r   r5   )r,   osrU   rJ   loggingpathlibr   dataclassesr   r   typingr   r   r   r	   	getLoggerrL   GENESIS_ROOTr@   rT   r   r5   bridger    r   r   <module>r      s    
     ) , , 
		7	8 '(++	44
W W W&w$ w$t 
	r   