Reference
Detect, solve, verify, and record the challenge.
Weles treats CAPTCHA as an explicit trajectory state. It detects supported challenges across frames, chooses an available scoped solver, preserves proxy and browser coherence, verifies that the page advanced, and records the outcome.
Supported challenge families#
| Family | Handling |
|---|---|
reCAPTCHA v2 and Enterprise | Detect site key and enterprise state, solve with the matching page URL and proxy where required, inject the response, invoke registered callbacks, and confirm progress. |
reCAPTCHA v3 | Request an action-bound score token through the unified solver surface. |
hCaptcha and hCaptcha Enterprise | Detect across frames, preserve enterprise request data and proxy coherence, inject the response, and invoke callbacks. |
Cloudflare Turnstile | Solve the site-key challenge and bind the token to the active page. |
Cloudflare managed/IUAM | Use the anti-Cloudflare task with the exact proxy and user agent, then apply the returned cookies and identity. |
FunCaptcha / Arkose Labs | Carry public key, blob, and service subdomain into the solver and apply the returned token. |
PerimeterX / HUMAN | Solve against the active user agent, cookies, and proxy, returning the coherent cookie set. |
Brave proof of work | Detect the Register proof state, perform the local proof path, submit once, and wait for the registration response. |
Provider order and secrets#
CaptchaSolver presents one interface over AntiCaptcha, 2Captcha, CapSolver, CapMonster, NoCaptcha, and NopeCHA. Provider credentials are resolved from exact scoped Skarbiec items at execution time; they never enter trajectory input, prompts, public errors, or documentation examples.
The solver records provider attempts and cost attribution. Exhausting every configured provider produces an explicit solver failure rather than a fabricated success.
Trajectory behavior#
- Detect the challenge in the main document and available frames, waiting briefly for delayed widgets.
- Capture challenge family, site key, URL, enterprise data, and the session proxy/persona needed by the solver.
- Invoke solve_captcha or the narrower keeper solverecaptcha command once the form is otherwise valid.
- Apply the returned proof through the challenge-specific path and invoke callbacks only where that path requires them.
- Confirm that the challenge disappeared or the expected page/request state advanced; a token alone is not success.
- Write CAPTCHA events and challenge outcome into run evidence. If no supported path succeeds, close or pause with the exact challenge state.
Mutation policy#
Some reviewed trajectories require interactive_only challenge handling and forbid token assignment, synthetic postMessage completion, forced DOM clicks, or page-visible helper state. That policy is trajectory-specific and fail-closed: a generic fallback must not silently weaken it.