/ core / flight / __pycache__ / session.cpython-314.pyc
session.cpython-314.pyc
  1  +
  2  (�fi�>�	���Rt^RIHtHt^RIHtHt^RIHt^RIH	t	H
  3  t
  4  HtHt^RI
t
^RIHtHt^RIHtHtHt!RR	]4t]!R
  5  R44t]!RR
44t]!RR44t!RR4t]R8XEd�]!R4]!4t]P;RRRRR7t]!R]P>24]!R]P@PBPD24]!4]!R4RRR.3RRR .3R!R"R#.3R$RR%.3.t#]#FPwt$t%t&]PO]P>]$]%]&R&7t(]!R'](P"PDR(]$R),R*24KR	]!4]!R+4]PS]P>R,R-7t*]!R.]*PV24]PY]P>]*PZR/R07]!R14]PY]P>]*PZR2R37]!R44]PY]P>]*PZR5R67]!R74]P]]P>R8R9R:R;R<R=/R>7]!R?4]!4]P_]P>R@RA7t0]!RB]0P>24]!RC]1!]0Pe4Pg44RD24]!RE]0Pi424]!RF]0Pk424]!RG4]Pm]0P>4t7]!RH]7RI,24]!RJ]7RK,24]!RL]7RM,24]!RN]7RO,24]!RP4R#R#)Qz�
  6  Session Manager
  7  
  8  Manages individual work sessions within the flight protocol.
  9  A session is a focused work period with clear boundaries.
 10  
 11  Sessions integrate:
 12  - Flight phase awareness
 13  - Altitude tracking
 14  - OODA loop seeding
 15  - Resonance capture
 16  )�	dataclass�field)�datetime�	timedelta)�Enum)�Optional�List�Dict�AnyN)�FlightPhase�FlightProtocol)�Altitude�AltitudeDetector�OperatorAltitudeStatec�.�]tRt^tRtRtRtRtRtRt	Rt
 17  R#)	�SessionStatezPossible session states.�initializing�active�paused�closing�closed�N)�__name__�
 18  __module__�__qualname__�__firstlineno__�__doc__�INITIALIZING�ACTIVE�PAUSED�CLOSING�CLOSED�__static_attributes__r��6/Users/rcerf/repos/Sovereign_OS/core/flight/session.pyrrs��"�!�L�
�F�
�F��G�
�Fr#rc�`a�]tRt^!toRtRtRtRt]!]	R7t
 19  ]!]R7tV3Rlt
RtVtR#)�
SessionMomentz`
 20  A captured moment within a session.
 21  
 22  These are the atomic captures that feed the God Database.
 23  N��default_factoryc��<�V^8�dQh/S[;R&S[;R&S[;R&S[S[,;R&S[S[,;R&S[S[,;R&S[S[,;R&S[S[S[3,;R&#)	��	moment_id�content�	timestamp�altitude�resonance_marker�auto_resonance�tags�metadata)�strrrr
�floatrr	r
 24  )�format�
__classdict__s"�r$�__annotate__�SessionMoment.__annotate__!s������N���L������x� �'���u�o�,���U�O�*���s�)�1���3��8�n�:�r#r)rrrrrr.r/r0r�listr1�dictr2�__annotate_func__r"�__classdictcell__�r6s@r$r&r&!s7�����$(�H�(,��&*�N��D�1�D�$�T�:�H��r#r&c�Da�]tRt^2toRtRtRtRtRtRt	V3Rlt
 25  RtVtR#)�OODALoopRecordz�
 26  Records an OODA loop within a session.
 27  
 28  Each loop has:
 29  - Observe: What came in (context, question, stimulus)
 30  - Orient: How it was framed (altitude, topic, relevance)
 31  - Decide: What choice was made
 32  - Act: What action resulted
 33  Nc��<�V^8�dQh/S[;R&S[;R&S[;R&S[S[,;R&S[S[,;R&S[S[,;R&S[S[,;R&S[S[S[S[3,,;R&#)	r*�loop_id�
 34  started_at�observe�orient�decide�act�completed_at�
seeding_state)r3rrr	r
 35  )r5r6s"�r$r7�OODALoopRecord.__annotate__2s������L������L��
�S�M� ��
�S�M� �� 
 36  �#���!�"�8�$�+�#�$�D��c��N�+�2�%r#r)
rrrrrrDrErFrGrHr;r"r<r=s@r$r?r?2s,�����!�F� �F��C�'+�L�.2�M�%�r#r?c�a�]tRt^GtoRt]!]R7t]!]R7tRt	Rt
 37  RtRtV3RlRlt
V3RlRltV3RlR	ltV3R
 38  ltRtVtR#)�Sessionz
 39  A focused work session.
 40  r'Nc� <�V^8�dQhRS[/#�r*�return)r)r5r6s"�r$r7�Session.__annotate__]s���%�%�)�%r#c�x�VP;'g\P!4pWP,
 41  #)zGet session duration.)�	closed_atr�nowrB)�self�ends& r$�duration�Session.duration]s&���n�n�.�.�������_�_�$�$r#c� <�V^8�dQhRS[/#rM��int)r5r6s"�r$r7rObs���!�!�c�!r#c�,�\VP4#)zNumber of captured moments.)�len�moments�rSs&r$�moment_count�Session.moment_countbs���4�<�<� � r#c� <�V^8�dQhRS[/#rMrX)r5r6s"�r$r7rOfs���G�G��Gr#c�:�\RVP44#)zNumber of completed OODA loops.c3�L"�TFqP'gK^x�K	R#5i)�N)rG)�.0�loops& r$�	<genexpr>�*Session.completed_loops.<locals>.<genexpr>hs���F���4E�4E�1�1��s�$�
 42  $)�sum�
 43  ooda_loopsr]s&r$�completed_loops�Session.completed_loopsfs���F����F�F�Fr#c�
 44  <�V^8�dQh/S[;R&S[;R&S[;R&S[;R&S[;R&S[;R&S[S[,;R&S[S[,;R&S[S[,;R	&S[S[,;R
 45  &S[S[,;R&S[S[,;R&#)
r*�
 46  session_id�operator_idrB�state�flight_phase�
 47  blanket_idr\ri�topic�altitude_staterQ�summary)	r3rrrrr&r?rr)r5r6s"�r$r7rOGs�����
 48  �O����
�����������O���-�
 �>���^�$�B��"�C�=��#�$�2�3�:�%�&��!�(�'�(�c�]�!�)r#r)rrrrrrr9r\rirrrsrQrtrUr^rjr;r"r<r=s@r$rKrKGs]�����$)��#>�G�',�T�'B�J� �E�6:�N�$(�I�!�G�%�%�
 49  !�!�G�G�?�r#rKc��a�]tRt^ktoRtRV3RlRlltRV3RlRlltRV3RlRlltV3R	lR
 50  ltRV3RlRllt	V3R
lRlt
 51  V3RlRltV3RlRltRV3RlRllt
V3RlRltRtVtR#)�SessionManagerz�
 52  Manages work sessions.
 53  
 54  Responsibilities:
 55  - Start/pause/close sessions
 56  - Capture moments
 57  - Track OODA loops
 58  - Integrate with flight protocol
 59  - Prepare session for export to God Database
 60  Nc�F<�V^8�dQhRS[S[,RS[S[,/#)r*�flight_protocol�altitude_detector)rrr)r5r6s"�r$r7�SessionManager.__annotate__ws*���1�1�!�.�1�1�$�$4�5�1r#c�`�WnT;'g\4Vn/Vn.VnR#)z�
 61  Initialize the session manager.
 62  
 63  Args:
 64      flight_protocol: Optional flight protocol instance
 65      altitude_detector: Optional altitude detector
 66  N)rxrry�active_sessions�closed_sessions)rSrxrys&&&r$�__init__�SessionManager.__init__ws.�� /��!2�!H�!H�6F�6H���35���.0��r#c
 67  �X<�V^8�dQhRS[RS[RS[S[,RS[S[,RS[/#)r*rnrqrr�initial_contextrN�r3rrK)r5r6s"�r$r7rz�sE���/�/��/��/���}�	/�
 68  "�#��/�
 69  �
/r#c��\\P!44R,p\PpVP
 70  'd!VP
 71  PPp\VV\P!4\PVVV\V\PR7R7pV'd7VP P#V4pVP$VP&nWpP*V&V#)z�
 72  Start a new session.
 73  
 74  Args:
 75      operator_id: Who is working
 76      blanket_id: Which Markov blanket
 77      topic: Optional session topic
 78      initial_context: Optional starting context
 79  
 80  Returns:
 81      New Session instance
 82  �N�N)rn�current_altitude)rmrnrBrorprqrrrs)r3�uuid�uuid4r�FLY_HIGHrxro�
current_phaserKrrRrrrr
�TACTICALry�detect�primary_altitudersr�r|)	rSrnrqrrr�rmrp�session�	detections	&&&&&    r$�
start_session�SessionManager.start_session�s���&�����&�r�*�
 83  �#�+�+�������/�/�5�5�C�C�L��!�#��|�|�~��%�%�%�!��0�'�!)�!2�!2��
 84  ����.�.�5�5�o�F�I�6?�6P�6P�G�"�"�3�+2���Z�(��r#c�x<�V^8�dQhRS[RS[RS[S[,RS[S[S[,,RS[S[,/#)r*rmr,r/r1rN)r3rr4rr&)r5r6s"�r$r7rz�sO���0�0��0��0�#�5�/�	0�
 85  �t�C�y�!�0�
 86  �-�	 �
0r#c��VPPV4pV'd VP\P8wdR#VP
 87  P
Y$;'g.R7p\\\P!44R,T\P!4VPTT;'g.RVPRVPP!4UUu/uFwrxVP"VbK	upp/R7p	VP$P'V	4VP('dKVPVP(P*8wd&VP(P-VP4V	#uuppi)a
 88  Capture a moment within a session.
 89  
 90  Args:
 91      session_id: Session to capture in
 92      content: Content to capture
 93      resonance_marker: Optional explicit resonance (0-1)
 94      tags: Optional tags
 95  
 96  Returns:
 97      Created SessionMoment or None if session not found
 98  N)r1r��altitude_confidence�altitude_distribution)r+r,r-r.r/r1r2)r|�getrorrryr�r&r3r�r�rrRr��
 99  confidencer��items�namer\�appendrsr��
transition_to)
100  rSrmr,r/r1r�r��a�p�moments
101  &&&&&     r$�capture_moment�SessionManager.capture_moment�s4��&�&�&�*�*�:�6���'�-�-�<�+>�+>�>���*�*�1�1�'�
102103  ��1�K�	���$�*�*�,�'��+���l�l�n��/�/�-�����%�y�';�';�'�*3�*I�*I�*O�*O�*Q�*�*Q�$�!�A�F�F�A�I�*Q�*��

104  ��	�����v�&��!�!�!��)�)�W�-C�-C�-T�-T�T��&�&�4�4�Y�5O�5O�P��
��*s�*Fc�<<�V^8�dQhRS[RS[RS[S[,/#)r*rmrCrN)r3rr?)r5r6s"�r$r7rz�s.���������
105  �.�	!�	r#c�L�VPPV4pV'd VP\P8wdR#\\
\P!44R,\P!4VR7pVPPV4V#)z�
106  Start a new OODA loop.
107  
108  Args:
109      session_id: Session to add loop to
110      observe: Initial observation/stimulus
111  
112  Returns:
113      Created OODALoopRecord or None
114  Nr�)rArBrC)
r|r�rorrr?r3r�r�rrRrir�)rSrmrCr�res&&&  r$�start_ooda_loop�SessionManager.start_ooda_loop�su���&�&�*�*�:�6���'�-�-�<�+>�+>�>�����
115116  ��%�b�)��|�|�~��
117  ��	���!�!�$�'��r#c�n<�V^8�dQhRS[RS[RS[S[,RS[S[,RS[S[,RS[/#)r*rmrArDrErFrN)r3r�bool)r5r6s"�r$r7rzsS���#�#��#��#���
�	#�
118  ��
�#��c�]�
#�
119  �#r#c�&�VPPV4pV'gR#VPF[pVPV8XgKV'dW7nV'dWGnV'd!WWn\P!4Vn	R#	R#)z�
120  Update an OODA loop.
121  
122  Args:
123      session_id: Session containing loop
124      loop_id: Loop to update
125      orient, decide, act: Optional phase updates
126  
127  Returns:
128      True if updated
129  FT)
130  r|r�rirArDrErFrrRrG)rSrmrArDrErFr�res&&&&&&  r$�update_ooda_loop�SessionManager.update_ooda_loopsj��&�&�&�*�*�:�6�����&�&�D��|�|�w�&��"(�K��"(�K��"�H�(0����D�%��'�r#c�B<�V^8�dQhRS[RS[S[S[3,RS[/#)r*rmrHrN)r3r	r
131  r�)r5r6s"�r$r7rz,s1��������C��H�~��
132  �	r#c��VPPV4pV'dVP'gR#W#PR,nR#)z�
133  Seed state for the next OODA loop.
134  
135  This captures the "How Are You Feeling" before closing a loop,
136  preparing context for the next iteration.
137  
138  Args:
139      session_id: Session to seed
140      seeding_state: State to carry forward
141  
142  Returns:
143      True if seeded
144  FT�����)r|r�rirH)rSrmrHr�s&&& r$�seed_next_loop�SessionManager.seed_next_loop,sA��$�&�&�*�*�:�6���g�0�0�0��0=���2��,�r#c�&<�V^8�dQhRS[RS[/#�r*rmrN�r3r�)r5r6s"�r$r7rzFs��������r#c��VPPV4pV'd7VP\P8Xd\P
145  VnR#R#)zPause an active session.TF)r|r�rorrr�rSrmr�s&& r$�
pause_session�SessionManager.pause_sessionF�?���&�&�*�*�:�6���w�}�}��(;�(;�;�(�/�/�G�M��r#c�&<�V^8�dQhRS[RS[/#r�r�)r5r6s"�r$r7rzNs��������r#c��VPPV4pV'd7VP\P8Xd\P
146  VnR#R#)zResume a paused session.TF)r|r�rorrrr�s&& r$�resume_session�SessionManager.resume_sessionNr�r#c�L<�V^8�dQhRS[RS[S[,RS[S[,/#)r*rmrtrNr�)r5r6s"�r$r7rzVs2��������#���
147  �'�	�	r#c�
148  �VPPV4pV'gR#\PVn\
149  P!4VnW#nVPVVPPV4V#)z}
150  Close a session.
151  
152  Args:
153      session_id: Session to close
154      summary: Optional summary
155  
156  Returns:
157      Closed session or None
158  N)r|r�rr!rorrRrQrtr}r�)rSrmrtr�s&&& r$�
close_session�SessionManager.close_sessionVsi���&�&�*�*�:�6����$�+�+��
�$�L�L�N���!��
� � ��,����#�#�G�,��r#c�L<�V^8�dQhRS[RS[S[S[S[3,,/#r�)r3rr	r
159  )r5r6s"�r$r7rzss(���=
160  �=
161  �S�=
162  �X�d�3��8�n�5M�=
163  r#c,���VPPV4pV'g)VPFpVPV8XgKTpM	V'gR#RVPRVPRVP
164  RVPP4RVP'dVPP4MRR\VP4P4^<,4RVPPR	VPR
165  VPRVP!4RVP#4R
VP$Uu.uFypRVP&RVP(RVP*P4RVP,'dVP,P.MRRVP0RVP2/NK{	upRVP4Uu.uF�pRVP6RVPP4RVP8RVP:RVP<RVP>RVP@'dVP@P4MRRVPB/NK�	upRVPD'dVPDPFM.Uu.uF/pRV^,P4RV^,P./NK1	up/#uupiuupiuupi)z\
166  Export session for God Database ingestion.
167  
168  Returns:
169      Dict suitable for database import
170  NrmrnrqrBrQ�duration_minutesrprrrtr^rjr\r+r,r-r.r/r1rirArCrDrErFrGrH�altitude_history)$r|r�r}rmrnrqrB�	isoformatrQrYrU�
total_secondsrp�valuerrrtr^rjr\r+r,r-r.r�r/r1rirArCrDrErFrGrHrsr�)rSrmr��s�m�l�ts&&     r$�get_session_export�!SessionManager.get_session_exportss����&�&�*�*�:�6����)�)���<�<�:�-��G��*�
171  ��
�'�,�,��7�.�.��'�,�,��'�,�,�6�6�8��'�:K�:K�:K��*�*�4�4�6�QU���G�$4�$4�$6�$D�$D�$F��$K� L��G�0�0�6�6��W�]�]��w����G�0�0�2��w�6�6�8��!���
172  �)�A� �����q�y�y�����!6�!6�!8��1�:�:�:��
173174  ���4�&��(:�(:��A�F�F�
�)�
175  �
�!�+�+��,�A��q�y�y� �!�,�,�"8�"8�":��q�y�y��a�h�h��a�h�h��1�5�5�"�!�.�.�.�A�N�N�$<�$<�$>�VZ�#�Q�_�_�	�,��
�
176  FM�E[�E[�E[�'�0�0�A�A�ac�c�!�
177  d�A� ��1����!1���!��	�	��d�!�I+
178  �+	
179  ��
180  ����!s �
A	K 2�5K 2�A-K%6�-K%6�'5K*:)r|ryr}rx)NN)NNN)N)rrrrrr~r�r�r�r�r�r�r�r�r�r"r<r=s@r$rvrvksq����	�1�1�"/�/�b0�0�d��8#�#�J��4������:=
181  �=
182  r#rv�__main__z=== Session Manager Test ===
183  �rick�sovereign_estatezarchitecture designz+Let's think about the overall system design)rnrqrrr�zSession started: zInitial altitude: zCapturing moments:z/We need a flexible architecture that can evolvez
#architecturez<The key decision is whether to use microservices or monolithg�������?z	#decisionz7Why does modularity matter? It's about managing change.g�������?z
184  #principlez"Step 1: Set up the database schemaz#task)r/r1z  [z] :N�(Nz...z
185  OODA Loop:z'User wants to design the database layer)rCz  Observe: z0This is a strategic decision about data modeling)rDz:  Orient: This is a strategic decision about data modelingz.Use document-oriented approach for flexibility)rEz8  Decide: Use document-oriented approach for flexibilityz+Implemented God Database with SQLite + JSON)rFz2  Act: Implemented God Database with SQLite + JSON�energy_level�medium�satisfaction�high�
186  next_focuszresonance scoring)rHz(  Seeded: next_focus = resonance scoringz&Designed initial database architecture)rtzSession closed: z
187  Duration: z secondszMoments captured: zOODA loops completed: z
188  Session export (truncated):z  operator_id: rnz	  topic: rrz  moment_count: r^z  completed_loops: rjz
189  === Test Complete ===)8r�dataclassesrrrr�enumr�typingrrr	r
190  r��protocolrrr.r
rrrr&r?rKrvr�print�managerr�r�rmrsr�r��moments_datar,�	resonancer1r�r�r�rerCr�rAr�r�rrYrUr�r^rjr��exportrr#r$�<module>r�s����)�(��,�,��1�H�H��4���
;�
;��
;� �3�3��3�(� G� G�� G�FE
191  �E
192  �R
193  �z��	�
194  *�+���G��#�#��%�#�E�	$��G�
195  ��g�0�0�1�
196  2�3�	��w�5�5�F�F�K�K�L�
197  M�N�	�G�
198199  ��
200  ;�D�?�BS�T�	G��{�m�\�	B�C�,��X�	-�t�g�Y�?�	�L�%1� ���D��'�'�����&��	(�
201  ��	��F�O�O�(�(�)��G�C�L�>��=�>�%1�
202  �G�
203  �,���"�"����9�#��D�
204  �K����~�
205  &�'����������A���
206  
207  �F�H����������?���
208  
209  �D�F����������9���
210  
211  �>�@��������H��F��-�
212  ���
213  �4�6�	�G��
"�
"����8�#��F�
214  
215  ��V�.�.�/�
216  0�1�	�J�s�6�?�?�,�:�:�<�=�>�h�
217  G�H�	��v�2�2�4�5�
218  6�7�	�"�6�#9�#9�#;�"<�
219  =�>�
220221  )�*�
�
'�
'��(9�(9�
:�F�	�O�F�=�1�2�
222  3�4�	�I�f�W�o�&�
223  '�(�	��V�N�3�4�
224  5�6�	���'8� 9�:�
225  ;�<�	�
226  #�$�Ir#