
    :j                         U d Z ddlZddlmZmZ g dZdZeD  cg c]  }  ej                  |        c} Zeee	      e
d<    ej                  e      Zee	   e
d<   de	d	e	fd
Zde	d	e	fdZde	d	e	fdZyc c} w )zG
Shared Regex Patterns - Centralized regex compilation for performance
    N)ListPattern)z\bAIza[0-9A-Za-z_-]{35}z\bsk-[0-9A-Za-z_-]{20,}z\bsk-proj-[0-9A-Za-z_-]{20,}z\banthrop[0-9A-Za-z_-]{20,}z\bgsk_[0-9A-Za-z_-]{20,}z\bstab_[0-9A-Za-z_-]{20,}z	/([^/]+)/COMPILED_API_KEY_PATTERNSCOMPILED_GITHUB_QUERY_PATTERNkeyreturnc                 T    t        |       dk  rdt        |       z  S | dd  d| dd  S )zDRedact API key for safe logging (show first 6 and last 6 characters)   *N   z...i)len)r   s    5/root/.openclaw/workspace/harvester/tools/patterns.pyredact_api_keyr      s8    
3x2~SX~"1gYc#bc($$    textc                 F    | }t         D ]  }|j                  d |      } |S )z!Redact all API keys found in textc                 6    t        | j                  d            S )Nr   )r   group)ms    r   <lambda>z)redact_api_keys_in_text.<locals>.<lambda>*   s    ~aggaj'A r   )r   sub)r   resultpatterns      r   redact_api_keys_in_textr   &   s.    F, KA6JKMr   queryc                 V    t         j                  |       }|r|j                  d      S dS )z5Extract regex pattern from GitHub search query format    )r   searchr   )r   matchs     r   extract_github_query_patternr!   .   s'    )007E"5;;q>**r   )__doc__retypingr   r   API_KEY_PATTERNSGITHUB_QUERY_PATTERNcompiler   str__annotations__r   r   r   r!   )r   s   0r   <module>r*      s    
    $  (81#JBJJw1 4-  /9bjj9M.N ws| N% % %# # + + +-1s   A4