KeyHunter parser v10 + 18 scanners + tests (synthetic fixtures only, no keys/db/tokens)

This commit is contained in:
2026-10-20 07:50:07 +00:00
commit a5008d837b
178 changed files with 36909 additions and 0 deletions

217
config.yaml Normal file
View File

@@ -0,0 +1,217 @@
# KeyHunter Configuration
# GitHub token (получить: https://github.com/settings/tokens)
github_token: "" # Вставить токен или использовать gh auth
# Интервал сканирования (секунды)
scan_interval: 300 # 5 минут между циклами
# Workers для параллельного сканирования
# GitHub search: 30/min per token, code search aggressive throttle
# SUPER PARSER: stepped up, monitor 403/429 before raising further
scan_workers: 100
validate_workers: 100
# GitHub search rate limit (запросов в минуту)
# Free: 10/min, Pro: 30/min — 2s floor per token
search_delay: 2 # секунды между запросами через один токен
# Провайдеры (true = включить)
# NOTE: этот блок НЕ читается eternal_v10.py (использует хардкод PROVIDERS).
# Он здесь как историческая документация — validator_v10.py и agent.py тоже его не читают.
# Держать в sync с src/eternal_v10.py PROVIDERS вручную при изменениях.
providers:
zai:
enabled: true
name: "Z.ai (ZhipuAI)"
vars: ["ZHIPU_API_KEY", "Z_AI_API_KEY", "BIGMODEL_API_KEY",
"ZHIPUAI_API_KEY", "ZAI_API_KEY", "GLM_API_KEY"]
pattern: '[a-f0-9]{32}\.[A-Za-z0-9]{10,30}'
test_url: "https://api.z.ai/api/coding/paas/v4/chat/completions"
test_model: "glm-5.2"
test_type: "zai_coding"
subscription_url: "https://api.z.ai/api/biz/subscription/list"
quota_url: "https://api.z.ai/api/monitor/usage/quota/limit"
github_blocks: false
moonshot:
enabled: true
name: "Moonshot (Kimi)"
vars: ["MOONSHOT_API_KEY", "KIMI_API_KEY"]
pattern: 'sk-[A-Za-z0-9]{20,100}'
test_url: "https://api.moonshot.cn/v1/chat/completions"
test_model: "kimi-k3"
test_type: "standard"
github_blocks: false
nvidia:
enabled: true
name: "NVIDIA NIM"
vars: ["NVIDIA_API_KEY", "NIM_API_KEY"]
pattern: 'nvapi-[A-Za-z0-9_-]{30,100}'
test_url: "https://integrate.api.nvidia.com/v1/chat/completions"
test_model: "meta/llama-3.3-70b-instruct"
test_type: "standard"
github_blocks: false
replicate:
enabled: true
name: "Replicate"
vars: ["REPLICATE_API_TOKEN"]
pattern: 'r8_[A-Za-z0-9]{30,100}'
test_url: "https://api.replicate.com/v1/account"
test_model: null
test_type: "replicate"
github_blocks: false
anthropic:
enabled: true
name: "Anthropic (Claude)"
vars: ["ANTHROPIC_API_KEY", "CLAUDE_API_KEY"]
pattern: 'sk-ant-api03-[a-zA-Z0-9_-]{80,100}'
test_url: "https://api.anthropic.com/v1/messages"
test_model: "claude-sonnet-5-5"
test_type: "anthropic"
github_blocks: true
headers: {"anthropic-version": "2023-06-01"}
openai:
enabled: true
name: "OpenAI"
vars: ["OPENAI_API_KEY"]
pattern: 'sk-proj-[a-zA-Z0-9_-]{40,80}|sk-[a-zA-Z0-9]{20,60}'
test_url: "https://api.openai.com/v1/chat/completions"
test_model: "gpt-4o-mini"
test_type: "standard"
github_blocks: true
openrouter:
enabled: true
name: "OpenRouter"
vars: ["OPENROUTER_API_KEY"]
pattern: 'sk-or-v1-[a-zA-Z0-9_-]{40,80}'
test_url: "https://openrouter.ai/api/v1/chat/completions"
test_model: "openrouter/auto"
test_type: "standard"
github_blocks: false
dashscope:
enabled: true
name: "DashScope (Alibaba)"
vars: ["DASHSCOPE_API_KEY", "ALIBABA_API_KEY", "QIANWEN_API_KEY"]
pattern: 'sk-[a-f0-9]{32}'
test_url: "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"
test_model: "qwen-turbo"
test_type: "standard"
github_blocks: false
deepseek:
enabled: true
name: "DeepSeek"
vars: ["DEEPSEEK_API_KEY"]
pattern: 'sk-[a-f0-9]{32}'
test_url: "https://api.deepseek.com/v1/chat/completions"
test_model: "deepseek-chat"
test_type: "standard"
github_blocks: true
gemini:
enabled: true
name: "Google Gemini"
vars: ["GEMINI_API_KEY", "GOOGLE_API_KEY"]
pattern: 'AIzaSy[a-zA-Z0-9_-]{33}'
test_url: "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent"
test_model: ""
test_type: "gemini"
github_blocks: false
together:
enabled: true
name: "Together AI"
vars: ["TOGETHER_API_KEY"]
pattern: 'tgp_v1_[a-zA-Z0-9]{20,50}|[a-f0-9]{40}|b99929949c80558184443'
test_url: "https://api.together.xyz/v1/chat/completions"
test_model: "meta-llama/Llama-3.3-70B-Instruct-Turbo"
test_type: "standard"
github_blocks: false
cohere:
enabled: true
name: "Cohere"
vars: ["COHERE_API_KEY"]
pattern: '[A-Za-z0-9]{40}'
test_url: "https://api.cohere.com/v2/chat"
test_model: "command-a"
test_type: "cohere"
github_blocks: false
mistral:
enabled: true
name: "Mistral AI"
vars: ["MISTRAL_API_KEY"]
pattern: '[A-Za-z0-9]{32}'
test_url: "https://api.mistral.ai/v1/chat/completions"
test_model: "mistral-small-latest"
test_type: "standard"
github_blocks: false
deepinfra:
enabled: true
name: "DeepInfra"
vars: ["DEEPINFRA_API_KEY"]
pattern: '[a-zA-Z0-9]{32}'
test_url: "https://api.deepinfra.com/v1/openai/chat/completions"
test_model: "mistralai/Mistral-Small-24B-Instruct-2501"
test_type: "standard"
github_blocks: false
huggingface:
enabled: true
name: "HuggingFace"
vars: ["HUGGINGFACE_API_KEY", "HF_API_KEY"]
pattern: 'hf_[A-Za-z0-9]{30,50}'
test_url: "https://router.huggingface.co/v1/chat/completions"
test_model: "meta-llama/Llama-3.1-8B-Instruct"
test_type: "standard"
github_blocks: false
groq:
enabled: true
name: "Groq"
vars: ["GROQ_API_KEY"]
pattern: 'gsk_[A-Za-z0-9]{30,60}'
test_url: "https://api.groq.com/openai/v1/chat/completions"
test_model: "llama-3.1-8b-instant"
test_type: "standard"
github_blocks: false
# Расширения файлов для поиска
extensions:
- env
- env.local
- env.production
- env.example
- env.dev
- py
- js
- ts
- ipynb
- json
- yaml
- yml
- sh
- bat
- go
- rs
- java
- rb
- md
- txt
- toml
- ini
- cfg
# Real-time мониторинг (GitHub Events API)
realtime:
enabled: true
poll_interval: 60 # секунд