
    rWi&                         S r SSKrSSKrSSKJr  \R
                  R                  S\" \" \5      R                  R                  5      5        SSK
Jr  SSKJr  SSKrS rS r\S:X  a  \" 5         gg)	ue   
验证用户Token是否被正确使用

用法:
    python3 scripts/verify_token_usage.py <user_id>
    N)Path)
create_app)get_user_augment_tokenc           	         [        SS 35        [        SU  S35        [        S S35        [        S5        [        U 5      nU(       d  [        SU  S35        g[        S	5        [        S
5         [        R                  " U5      nUR	                  S5      =(       d    UR	                  S5      nUR	                  SS5      nUR	                  S/ 5      n[        S5        [        SUSS  S[        U5      S:  a  USS OS 35        [        SU 35        [        SSR                  U5       35        [        S5        [        [        5      R                  R                  nUS-  SU  3-  nUR                  5       (       Ga  [        SU 35        US -  n	U	R                  5       (       a  [        U	R                  S!5      5      n
[        S"[        U
5       35        U
(       a  [        U
S# S$9n[        S%UR                   35         [!        US&S'S(9 n[        R"                  " U5      nSSS5        [        S)WR	                  S*S+5       35        [        S,[        UR	                  S-/ 5      5       35        [        S.UR	                  S/S+5       35        OO[        S15        O[        S25        [        S35        [        S4U  S535        [        S6U  S735        [        S8USS9  S:35        [        S;U 35        [        S<U 35        [        S=5        [        S>5        [        S?U S@35        [        SA5        [        SB5        [        SS 35        [        SC5        [        S S35        gD! [        R                   a  n[        SU 35         SnAgSnAff = f! , (       d  f       GNt= f! [$         a  n[        S0U 35         SnAGNSnAff = f)Eu    验证用户Token的使用情况
z<============================================================u   验证用户 u    的Token使用情况u&   1️⃣  检查数据库中的Token...u   ❌ 用户 u    未设置TokenFu   ✅ 找到Tokenu   
2️⃣  解析Token内容...accessTokenaccess_token	tenantURLzhttps://api.augmentcode.com/scopesu   ✅ Token格式正确z   - Access Token: N   z...(   i z   - Tenant URL: z   - Scopes: z, u   ❌ Token格式错误: u%   
3️⃣  检查用户缓存目录...z.augment_cacheuser_u   ✅ 缓存目录存在: sessionsz*.jsonu      - Session数量: c                 6    U R                  5       R                  $ )N)statst_mtime)ss    D   /Users/yu22x/Desktop/ddd_副本128/ctf/scripts/verify_token_usage.py<lambda>$verify_token_usage.<locals>.<lambda>F   s    QVVX=N=N    )keyu      - 最新Session: rzutf-8)encodingz   - Session ID: 	sessionIdunknownu      - 对话数量: chatHistoryu      - 创建时间: createdu       ⚠️  无法读取Session: u"      ⚠️  Sessions目录不存在uG   ⚠️  缓存目录不存在（用户可能还没有生成过题目）u$   
4️⃣  模拟Token使用流程...u      当用户 u    生成题目时:u6      1. 从数据库获取Token: get_user_augment_token()u0      2. 设置环境变量: AUGMENT_SESSION_AUTH='2   z...'u      3. 创建缓存目录: uE      4. 执行命令: auggie -if instruction.md -p --augment-cache-dir u)      5. Auggie读取环境变量中的Tokenu"      6. 使用Token调用Augment APIu      7. 保存session到: z/sessions/<uuid>.jsonu!   
5️⃣  验证Token有效性...uD      提示: 使用 'python3 scripts/test_token.py' 进行完整测试u   ✅ 验证完成T)printr   jsonloadsgetlenjoinJSONDecodeErrorr   __file__parentexistslistglobmaxnameopenload	Exception)user_id	token_str
token_datar	   
tenant_urlr   eproject_rootuser_cache_dirsessions_dirr   latest_sessionfsession_datas                 r   verify_token_usager>      s    
Bvh-	M'"7
89	VHB- 

23&w/IG9O45	O 

+,ZZ	*
!~~m4V
~8V^^K1OP
"-%'#L"$5#6cPST`PadfPf,st:Lln9opq!*./dii/012 

23>((//L!$44wi7HHN((89: &
2  L--h78H(X89!$X3N!O,^-@-@,ABCBncGD'+yy| E -l.>.>{I.V-WXY/L4D4D]TV4W0X/YZ[/0@0@I0V/WXY  68WY 

12	M'"3
45	B7)1
MN	<Ys^<LD
QR	&~&6
78	QR`Qa
bc	57	.0	$^$44I
JK 

./	
PQ	Bvh-	
	VHB-q  's+,0 ED ! B<QC@AABsJ   0CM$ N% N&A+N% $N8NN
N"N% %
O/OOc                  L   [        [        R                  5      S:  a,  [        S5        [        S5        [        R                  " S5        [        [        R                  S   5      n [        5       nUR                  5          [        U 5        S S S 5        g ! , (       d  f       g = f)N   u7   用法: python3 scripts/verify_token_usage.py <user_id>u/   示例: python3 scripts/verify_token_usage.py 1   )	r&   sysargvr"   exitintr   app_contextr>   )r3   apps     r   mainrH   n   sh    
388}qGH?@#((1+G ,C		7# 
		s    B
B#__main__)__doc__rB   ospathlibr   pathinsertstrr)   r*   rG   r   &app.services.ai.helpers.augment_helperr   r#   r>   rH   __name__ r   r   <module>rS      sg     	  3tH~,,334 5  I Up$ zF r   