
    h&                        S r SSKrSSKrSSKJr  SSKJrJrJr  SSKJ	r	J
r
  SSKJr   SSKJr  SSKJr   " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S5      rS rg! \ a    SrSr NQf = f)zY
Eden MCP FastAPI Integration
Adds MCP v2.0 endpoints to Eden's existing FastAPI backend
    N)datetime)DictAnyOptional)	APIRouterHTTPException)	BaseModel)MemoryManager)Eden100Percentc                   .    \ rS rSr% \\S'   Sr\\S'   Srg)VisionRequest   
image_pathzWhat do you see in this image?prompt N)__name__
__module____qualname____firstlineno__str__annotations__r   __static_attributes__r       ;/home/james-whalen/eden-agi-project/eden_mcp_integration.pyr   r      s    O2FC2r   r   c                        \ rS rSr% \\S'   Srg)VisionResultRequest   
request_idr   N)r   r   r   r   r   r   r   r   r   r   r   r      s    Or   r   c                   .    \ rS rSr% \\S'   Sr\\S'   Srg)EmotionalStateUpdate   emotionffffff?	intensityr   N)	r   r   r   r   r   r   r$   floatr   r   r   r   r    r       s    LIur   r    c                   8    \ rS rSr% \\S'   \\S'   Sr\\S'   Srg)MemoryRequest!   kindtext      ?
importancer   N)	r   r   r   r   r   r   r,   r%   r   r   r   r   r'   r'   !   s    
I
IJr   r'   c                   .    \ rS rSr% \\S'   Sr\\S'   Srg)MemorySearchRequest&   query
   limitr   N)	r   r   r   r   r   r   r2   intr   r   r   r   r.   r.   &   s    JE3Or   r.   c                   *    \ rS rSrSrS rS rS rSrg)EdenMCPIntegration+   z]
Integration layer for Eden MCP v2.0
Adds async MCP capabilities to existing FastAPI backend
c                 D   [        SS/S9U l        SSS/ SQS.U l        [        (       a
  [        5       OS U l        [
        (       a
  [        5       OS U l        S U l        0 U l        S	S
[        R                  " 5       R                  5       S.U l        U R                  5         g )Nz/mcpmcp)prefixtagszEden AGIz2.0.0z9Eden's complete sensory, cognitive, and emotional systems)computer_visioncamera_controlemotional_awarenessmemory_systemsagi_developmentself_reflection)nameversiondescriptioncapabilitiescuriousr#   currentr$   
updated_at)r   routerserver_infor
   memory_managerr   eden_100vision_queuevision_resultsr   now	isoformatemotional_state_register_routesselfs    r   __init__EdenMCPIntegration.__init__1   s    vUG< V	
 2?moD,:N( !  !",,.224 
 	r   c                   ^ ^ T R                   R                  S5      U 4S j5       nT R                   R                  S5      S[        4U 4S jj5       mT R                   R                  S5      S[        4U 4S jj5       nT R                   R                  S5      S S
[
        [           S[        4U4S jjj5       nT R                   R                  S5      U 4S j5       nT R                   R                  S5      S[        4U 4S jj5       nT R                   R                  S5      S[        4U 4S jj5       nT R                   R                  S5      S[        4U 4S jj5       nT R                   R                  S5      S!S[        4U 4S jjj5       nT R                   R                  S5      U 4S j5       n	T R                   R                  S5      U 4S j5       n
T R                   R                  S5      S"S[        4U 4S jjj5       ng	)#zRegister all MCP endpointsz/get_server_infoc                  $   >#    T R                   $ 7f)z+Get Eden's server identity and capabilities)rJ   rS   s   r   get_server_info<EdenMCPIntegration._register_routes.<locals>.get_server_info\   s      ###   z/analyze_image_asyncrequestc                 "  >#    S[         R                  " 5       R                  5        3nTR                  R	                  UU R
                  U R                  [         R                  " 5       R                  5       S.5      I Sh  vN   SUSS.$  N
7f)zStart async vision processingvision_)r   r   r   	timestampN
processingzVision processing started)statusr   message)r   rO   r_   rM   putr   r   rP   )r\   r   rT   s     r   analyze_image_async@EdenMCPIntegration._register_routes.<locals>.analyze_image_asyncb   s      #8<<>#;#;#=">?J##''(%00!..%\\^557	)    '(6 s   A?BBBz/check_vision_resultc                 |   >#    U R                   TR                  ;   a  TR                  U R                      $ SSS.$ 7f)zCheck vision processing resultr`   z!Vision analysis still in progress)ra   rb   )r   rN   )r\   rT   s    r   check_vision_result@EdenMCPIntegration._register_routes.<locals>.check_vision_resultt   sC      !!T%8%88**7+=+=>>&>    9<z/capture_photoNfilenameanalyzec                   >#    U (       d(  S[         R                  " 5       R                  S5       S3n SU [         R                  " 5       R                  5       S.nU(       a   T" [	        U SS95      I Sh  vN nUS	   US
'   U$  N7f)z$Capture photo with optional analysiseden_capture_z%Y%m%d_%H%M%Sz.jpgcaptured)ra   rj   captured_atzDescribe what you see)r   r   Nr   vision_request_id)r   rO   strftimerP   r   )rj   rk   result
vision_reqrd   s       r   capture_photo:EdenMCPIntegration._register_routes.<locals>.capture_photo   s      *8<<>+B+B?+S*TTXY %$'||~779F #6}'28 $ 
 /9.F*+Ms   A1B4B5Bz/get_emotional_statec                  $   >#    T R                   $ 7f)zGet current emotional state)rQ   rS   s   r   get_emotional_state@EdenMCPIntegration._register_routes.<locals>.get_emotional_state   s      '''r[   z/set_emotional_stateupdatec                    >#    U R                   U R                  [        R                  " 5       R	                  5       S.Tl        SU R                   U R                  S.$ 7f)zUpdate emotional staterF   updated)ra   r"   r$   )r"   r$   r   rO   rP   rQ   )ry   rT   s    r   set_emotional_state@EdenMCPIntegration._register_routes.<locals>.set_emotional_state   sS      ">>#--&lln668$D  $!>>#-- s   AAz/eden_rememberc                    >#    TR                   (       d
  [        SSS9eTR                   R                  U R                  U R                  U R
                  S9nUSS.$ 7f)zStore memory  Memory system not availablestatus_codedetail)r)   r*   r,   stored)	memory_idra   )rK   r   addr)   r*   r,   )r\   r   rT   s     r   eden_remember:EdenMCPIntegration._register_routes.<locals>.eden_remember   s^      &&#<YZZ++//\\\\"-- 0 I "+h??s   AAz/eden_recallc                    >#    TR                   (       d
  [        SSS9eTR                   R                  U R                  U R                  S9nSU0$ 7f)zSearch memoriesr   r   r   )r0   kresults)rK   r   searchr0   r2   )r\   r   rT   s     r   eden_recall8EdenMCPIntegration._register_routes.<locals>.eden_recall   sU      &&#<YZZ))00mm-- 1 G
 w''s   AAz/eden_recent_memoriesr2   c                 |   >#    TR                   (       d
  [        SSS9eTR                   R                  U S9nSU0$ 7f)zGet recent memoriesr   r   r   )r2   r   )rK   r   recent)r2   r   rT   s     r   eden_recent_memoriesAEdenMCPIntegration._register_routes.<locals>.eden_recent_memories   sC      &&#<YZZ))00u0=Gw''ri   z/eden_memory_statsc                  z   >#    TR                   (       d
  [        SSS9eTR                   R                  5       n U $ 7f)zGet memory statisticsr   r   r   )rK   r   stats)r   rT   s    r   eden_memory_stats>EdenMCPIntegration._register_routes.<locals>.eden_memory_stats   s8      &&#<YZZ''--/ELs   8;z/eden_agi_statusc                     >#    TR                   (       d
  [        SSS9eTR                   R                  5       n U S   U S   U S   S   S   S	   U S   S
   S.$ 7f)zGet AGI development statusr   zAGI system not availabler   current_agi_levelprojected_agi_leveldevelopment_statusrD   self_awarenessscorestage)current_agi	projectedr   r   )rL   r    comprehensive_enhancement_status)ra   rT   s    r   eden_agi_status<EdenMCPIntegration._register_routes.<locals>.eden_agi_status   ss      ==#<VWW]]CCEF%&9:#$9:"()=">~"NO_"`ah"i 45g>	 s   AAz/eden_reflectcontextc                 |   >#    TR                   (       d
  [        SSS9eTR                   R                  U S9nSU0$ 7f)zTrigger self-reflectionr   r   r   )r   
reflection)rK   r   reflect)r   r   rT   s     r   eden_reflect9EdenMCPIntegration._register_routes.<locals>.eden_reflect   sC      &&#<YZZ,,44W4EJ *--ri   )NF)   ) )rI   getpostr   r   r   r   boolr    r'   r.   r3   )rT   rY   rg   rt   rw   r|   r   r   r   r   r   r   rd   s   `           @r   rR   #EdenMCPIntegration._register_routesX   s    
+	,	$ 
-	$
 
		0	1	} 	 
2	" 
		0	1	/B 	 
2	 
		*	+	(3- 	 	 
,	, 
/	0	( 
1	( 
		0	1	.B 	 
2	 
		*	+	@ 	@ 
,	@ 
		.	)
	(': 
	( 
*
	( 
0	1	(c 	( 
2	( 
-	.	 
/	 
+	,	 
-	 
		/	*	. 	. 
+	.r   c                 *  #      U R                   R                  5       (       d  U R                   R                  5       I Sh  vN nUS   n[        R                  " S5      I Sh  vN   SSUS    3US   [
        R                  " 5       R                  5       S.U R                  U'   O[        R                  " S	5      I Sh  vN    M   N Nf N! [         a7  n[        S
U 35        [        R                  " S5      I Sh  vN     SnANDSnAff = f7f)z+Background task for processing vision queueNr   r+   completezVision analysis for: r   r   )ra   analysisr   processed_atg?zVision processor error:    )rM   emptyr   asynciosleepr   rO   rP   rN   	Exceptionprint)rT   taskr   es       r   _vision_processor$EdenMCPIntegration._vision_processor   s     '((..00!%!2!2!6!6!88D!%l!3J "--,,, #-&;DN;K$L&*<&8(0(@(@(B	7D''
3 "--,,,'  9 - - '045mmA&&&'s}   D<C C	"C $C%AC 'D(C CC D	C C C 
D'D DDDDD)rL   rQ   rK   rI   rJ   rM   rN   N)	r   r   r   r   __doc__rU   rR   r   r   r   r   r   r5   r5   +   s    
" NU.n'r   r5   c                     U R                  [        R                  5        [        S5        [        SSR	                  [        R
                  S   5       35        g)z
Call this from main.py to add MCP routes to your FastAPI app

Usage in main.py:
    from eden_mcp_integration import setup_mcp_routes
    setup_mcp_routes(app)
u#   ✅ Eden MCP v2.0 routes registeredu   📡 Capabilities: z, rD   N)include_routereden_mcprI   r   joinrJ   )apps    r   setup_mcp_routesr     sD     x'	
/0			(*>*>~*N OP
QRr   )r   r   jsonr   typingr   r   r   fastapir   r   pydanticr	   rK   r
   eden_100_percentr   ImportErrorr   r   r    r'   r.   r5   r   r   r   r   <module>r      s       & & , ,/3I 3) 9 I 
) 
]' ]'H
S  MNs   A; ;
BB