mirror of
https://github.com/lukaszraczylo/mcp-captcharesolver.git
synced 2026-10-17 01:17:39 +00:00
fix: address code review (v3/v2 detect, gemini caps, fetch timeout, audio mime, json extract, dead temp config)
- detect: recaptcha_v3 now suppresses recaptcha_v2 (hidden g-recaptcha div on v3 pages no longer mis-detected as LLM-solvable); funcaptcha drops over-broad bare "arkose" substring
- llm/gemini: stub methods return ErrUnsupported{Provider:"gemini"} so audio handler errors.As guard catches it; drop unused fmt import
- mcp/tools: remove gemini from audio capability (stub); pick audio filename (.wav/.mp3) from sniffed media type; schema notes for browser/actions no longer advertise unimplemented options
- imageutil: fetchURL uses a package client with 30s Timeout instead of http.DefaultClient
- captcha/json: extractJSON brace-counts to return the first balanced object (handles prose, markdown fences, example-before-real)
- config: remove dead CAPTCHA_LLM_TEMPERATURE / Config.Temperature; solving is fixed at temperature 0
- stealth: Action.Type doc comment drops nonexistent scroll case
This commit is contained in:
+11
-16
@@ -10,16 +10,18 @@ import (
|
||||
|
||||
// Config is the validated runtime configuration. Fields are ordered
|
||||
// largest-alignment-first to satisfy the fieldalignment linter.
|
||||
//
|
||||
// Temperature is intentionally not configurable: captcha solving is fixed at
|
||||
// temperature 0 for deterministic results (see the LLM provider request bodies).
|
||||
type Config struct {
|
||||
Provider string
|
||||
BaseURL string
|
||||
APIKey string
|
||||
Model string
|
||||
AudioModel string
|
||||
LogLevel string
|
||||
Temperature float64
|
||||
Timeout time.Duration
|
||||
MaxTokens int
|
||||
Provider string
|
||||
BaseURL string
|
||||
APIKey string
|
||||
Model string
|
||||
AudioModel string
|
||||
LogLevel string
|
||||
Timeout time.Duration
|
||||
MaxTokens int
|
||||
}
|
||||
|
||||
var validProviders = map[string]bool{
|
||||
@@ -47,13 +49,6 @@ func Load() (Config, error) {
|
||||
if c.Model == "" {
|
||||
return Config{}, fmt.Errorf("CAPTCHA_LLM_MODEL is required")
|
||||
}
|
||||
if v := os.Getenv("CAPTCHA_LLM_TEMPERATURE"); v != "" {
|
||||
f, err := strconv.ParseFloat(v, 64)
|
||||
if err != nil {
|
||||
return Config{}, fmt.Errorf("CAPTCHA_LLM_TEMPERATURE: %w", err)
|
||||
}
|
||||
c.Temperature = f
|
||||
}
|
||||
if v := os.Getenv("CAPTCHA_LLM_MAX_TOKENS"); v != "" {
|
||||
n, err := strconv.Atoi(v)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user