
    AHi5                     <    S r SSKrSSKJr  SSKJr   " S S5      rg)ug   
Guideline 管理器

统一的 CTF 题目生成 guideline 文件管理逻辑，供各 AI 服务共用
    N)Path)Optionalc            
           \ rS rSrSrSSSSS.rSr\S\S\4S j5       r	\SS	\
S\S
\S\4S jj5       r\SS	\
S\S
\S\4S jj5       r\S\4S j5       rSrg)GuidelineManager   u\   CTF 题目生成 Guideline 管理器

统一处理 guideline 文件的选择和复制逻辑
ctf-generation-guide-easy.md#ctf-generation-guide-medium-hard.md)   入门   简单u   中等u   困难
difficultyreturnc                 L    U R                   R                  XR                  5      $ )u   根据难度获取对应的 guideline 文件名

Args:
    difficulty: 难度级别（入门/简单/中等/困难）
    
Returns:
    guideline 文件名
)DIFFICULTY_MAPgetDEFAULT_GUIDELINEclsr   s     U   /Users/yu22x/Desktop/ddd_副本5/ctf/app/services/ai_driver/core/guideline_manager.pyget_guideline_file#GuidelineManager.get_guideline_file   s!     !!%%j2G2GHH    ge10_dirverbosec                    U R                  U5      nUS-  S-  U-  nUS-  S-  S-  nUR                  5       (       d$  U(       a  [        SU SU 35        [        S5        g [        R                  " [        U5      [        U5      5        U(       a"  [        SU S	U 35        U R                  U5        g
! [         a*  nU(       a  [        SU 35        [        S5         SnAgSnAff = f)u   为 Augment CLI 设置 guideline 文件

将对应难度的 guideline 复制到 Augment 读取的位置

Args:
    ge10_dir: ge10 目录路径
    difficulty: 难度级别
    verbose: 是否输出详细信息
    
Returns:
    是否成功
.augmentruleszctf-generation-guide.mdu!   ⚠️  警告: 找不到难度 'u   ' 对应的guideline文件: u6   ⚠️  将使用默认的中等/困难难度guidelineF   ✅ 已根据难度 'u   ' 选择guideline: Tu-   ⚠️  警告: 复制guideline文件失败: u)   ⚠️  将使用现有的guideline文件N)r   existsprintshutilcopy2str_print_optimization_info	Exception)r   r   r   r   guideline_filesource_filetarget_filees           r   setup_for_augment"GuidelineManager.setup_for_augment*   s     //
; +g5F +g58QQ !!##9*EabmanopNP
	LL[)3{+;<-j\9L^L\]^,,Z8 	EaSIJAC		s   "AB5 5
C)? C$$C)c                 `   US-  S-  nUS-  nUS;   a  US-  nOUS-  nUR                  5       (       a:   [        R                  " Xe5        U(       a  [        SU SUR                   35        g	U(       a  [        SU 35        g! [
         a  nU(       a  [        S
U 35         SnAgSnAff = f)u   为 Claude CLI 设置 guideline 文件

将对应难度的 guideline 复制到 CLAUDE.md

Args:
    ge10_dir: ge10 目录路径
    difficulty: 难度级别
    verbose: 是否输出详细信息
    
Returns:
    是否成功
r   r   z	CLAUDE.mdr
   r   r   r	   r   u    ' 复制guideline到 CLAUDE.md: Tu%   ⚠️  复制guideline文件失败: NFu1   ⚠️  未找到难度对应的guideline文件: )r   r    r!   r   namer$   )r   r   r   r   	rules_dir	claude_mdr&   r(   s           r   setup_for_claude!GuidelineManager.setup_for_claudeT   s     z)G3	{*	--#&DDK#&KKK[41*=]^i^n^n]opq I+WX  A!EFs   8B 
B-B((B-c                     US;   aN  US:X  a  [        S5        O[        S5        [        SU SUS:X  a  SOS S	35        [        S
5        [        S5        g[        S5        g)u>   打印 token 优化信息

Args:
    difficulty: 难度级别
r,   r
   u<   💡 入门难度优化: 预计节省约60-70%的token消耗u<   💡 简单难度优化: 预计节省约40-50%的token消耗u      - 精简学习阶段（u	   难度：z1-2z3-5u   篇writeup）u,      - 极简知识模块化（快速跳过）u      - 轻量级质量检查uK   💡 中等/困难难度: 使用完整的8阶段流程，确保题目质量N)r   r   s     r   r#   )GuidelineManager._print_optimization_infoy   sg     --X%TVTV.zl)Z[cMcEinCoo|}~@B.0_ar    N)T)__name__
__module____qualname____firstlineno____doc__r   r   classmethodr"   r   r   boolr)   r0   r#   __static_attributes__r4   r   r   r   r      s     1077	N >	IC 	IC 	I 	I ' '3 ' 'Y] ' 'R " "# " "X\ " "H b# b br   r   )r9   r    pathlibr   typingr   r   r4   r   r   <module>r?      s#      |b |br   