
    j                     n   d dl Z d dlZd dlmZmZ d dlmZ ddlmZmZ ej	        
                    d          ej	        
                    d          gZdedz  fd	Zdd
edee         fdZdee         fdZdedefdZdededefdZdededee         dee         dedz  ddfdZdedededz  fdZdS )    N)datetimetimezone)Path   )	AgentInfo
UsageEntryz~/.claude/projectsz~/.config/claude/projectsreturnc                      t                      D ]8} t          |                                           rt          dd| d          c S 9d S )Nclaude-codezClaude CodeT)idnamedata_dir	installed)_get_claude_dirsr   is_dirr   )ds    gC:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\src/adapters/claude.pydetectr      sh      77>> 	 "	     	 4    
hours_backc           	         g }t                      }d }| dk    r1ddlm} t          j        t          j                   ||           z
  }t                      D ]a}t          |          }|                                s&|	                    d          D ]%}t          ||          }t          |||||           &b|                    d            |S )Nr   )	timedelta)hoursz*.jsonlc                     | j         S )N)	timestamp)es    r   <lambda>zload_entries.<locals>.<lambda>*   s    q{ r   )key)setr   r   nowr   utcr   r   r   rglob_extract_project_from_dir_parse_jsonlsort)	r   entriesseencutoffr   base_dirbase
jsonl_pathfallback_projects	            r   load_entriesr-      s     "GUUDFA~ J&&&&&&hl++iij.I.I.II$&& N NH~~{{}} 	**Y// 	N 	NJ8TJJ%5wfMMMM	N LL**L+++Nr   c                  8   t          t                    } t          j                            d          }|rd|                    d          D ]N}t          j                            |                                d          }|| vr| 	                    d|           O| S )NCLAUDE_CONFIG_DIR,projectsr   )
listCLAUDE_DIRSosenvirongetsplitpathjoinstripinsert)dirsenvpprojects_dirs       r   r   r   .   s    D
*..,
-
-C
 -3 	- 	-A7<<		:>>L4' -A|,,,Kr   cwdc                 |   t           j                            d          }|                     |          r5| t	          |          d                              t           j                  }n|                     t           j                  }|                    t           j                  }|r|d         r|d         n|pdS )N~unknown)r4   r8   
expanduser
startswithlenr:   sepr7   )r@   homerelpartss       r   _project_from_cwdrL   9   s    7c""D
~~d  #d))**o##BF++iiIIbfEA%)A5991A	Ar   r+   r*   c                 L   |                      |          }|j        rt          |j        d                   nd}|                    dt          j                                      t          j                  }t          j                            d                              t          j                  }|	                    |          r4|t          |          d                              t          j                  }|                    t          j                  }|r|d         ndS )Nr   rD   -rB   rC   )relative_torK   strreplacer4   rH   r:   r8   rE   rF   rG   r7   )r+   r*   rJ   project_dirdecodedrI   rK   s          r   r#   r#   C   s    

 
 
&
&C'*y?#cil###iK!!#rv..44RV<<G7c""((00D$ 4#d))**%++BF33MM"&!!E,5999,r   r8   projectr&   r'   r(   c                    	 t          | dd          5 }|D ]}|                                }|s	 t          j        |          }n# t          j        $ r Y @w xY w|                    d          dk    r^t          ||          }|q|r|j        |k     r|j        |v r|	                    |j                   |
                    |           	 d d d            d S # 1 swxY w Y   d S # t          t          f$ r Y d S w xY w)Nrzutf-8)encodingtype	assistant)openr:   jsonloadsJSONDecodeErrorr6   _parse_assistant_entryr   	dedup_keyaddappendOSErrorPermissionError)	r8   rT   r&   r'   r(   flinedataentrys	            r   r$   r$   N   s   $g... 	&! & &zz|| :d++DD+   H 88F##{2 .tW==  eo6 ?d* )))u%%%%/&	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&2 _%   sX   C+ CACACAA8CC+ C""C+ %C"&C+ +D ?D rf   c                    |                      d          }|rt          |t                    sd S |                     d          }|rt          |t                    sd S |                     d          pd}|                     d          pd}|                     d          pd}|                     d          pd}|dk    r|dk    r|dk    r|dk    rd S |                      dd	          }	 t          j        |                    d
d                    }	n# t          t          f$ r Y d S w xY w|                     dd	          }
|                      d          pd	}|                     dd          }|                      dd	          }|                      d          }|                      dd	          }|rt          |          }t          |	||
||||||||d          S )Nmessageusageinput_tokensr   output_tokenscache_creation_input_tokenscache_read_input_tokensr    Zz+00:00r   	requestIdmodelrD   	sessionIdcostUSDr@   r   )r   
session_id
message_id
request_idrr   rk   rl   cache_creation_tokenscache_read_tokenscost_usdrT   agent_id)
r6   
isinstancedictr   fromisoformatrQ   
ValueErrorAttributeErrorrL   r   )rf   rT   ri   rj   rk   rl   cache_creation
cache_readtimestamp_strtsrv   rw   rr   ru   rz   r@   s                   r   r^   r^   s   s   hhy!!G *Wd33 tKK  E 
5$// t99^,,1LIIo..3!MYY<==BN455:Jq ]a/ Na4G JZ[O tHH["--M#M$9$9#x$H$HII'   tt T2&&J+&&,"JKK++E+r**Jxx	""H
((5"

C
 )#C((!#,$   s   *(D D('D()r   )r[   r4   r   r   pathlibr   typesr   r   r8   rE   r3   r   intr2   r-   rP   r   rL   r#   r   r$   r}   r^    r   r   <module>r      s    				 ' ' ' ' ' ' ' '       ( ( ( ( ( ( ( ( G+,,G233		D  	 	 	 	 S j)9    ($s)    B3 B3 B B B B-$ -d -s - - - -"
"" *" c(	"
 tO" 
" " " "J. . .
T8I . . . . . .r   