{
  "$schema_note": "Generated by apps/web/scripts/sync-capabilities.ts from sonic-sdk. DO NOT HAND-EDIT.",
  "version": 1,
  "sdkPythonVersion": "1.1.0",
  "sdkNodeVersion": "2.1.0",
  "counts": {
    "total": 13,
    "byFamily": {
      "token": 5,
      "image": 4,
      "interactive": 4
    },
    "pythonCovered": 13,
    "nodeCovered": 13
  },
  "capabilities": [
    {
      "name": "reCAPTCHA v2 (token)",
      "slug": "recaptcha-v2-token",
      "family": "token",
      "python": {
        "method": "solve_recaptcha_v2_token",
        "returnField": "solution.token"
      },
      "node": {
        "method": "solveRecaptchaV2Token",
        "returnField": "solution.token"
      },
      "rest": {
        "taskType": "RecaptchaV2Task",
        "taskTypeProxyless": "RecaptchaV2TaskProxyless"
      },
      "notes": "Solve a reCAPTCHA v2 token challenge via browser automation (async — polls until ready)."
    },
    {
      "name": "reCAPTCHA v3 (token)",
      "slug": "recaptcha-v3-token",
      "family": "token",
      "python": {
        "method": "solve_recaptcha_v3_token",
        "returnField": "solution.token"
      },
      "node": {
        "method": "solveRecaptchaV3Token",
        "returnField": "solution.token"
      },
      "rest": {
        "taskType": "RecaptchaV3Task",
        "taskTypeProxyless": "RecaptchaV3TaskProxyless"
      },
      "notes": "Solve a reCAPTCHA v3 token challenge via browser automation (async — polls until ready)."
    },
    {
      "name": "reCAPTCHA v2 (image grid)",
      "slug": "recaptcha-v2-image-grid",
      "family": "image",
      "python": {
        "method": "solve_recaptcha_v2",
        "returnField": "typed_solution.grid.objects"
      },
      "node": {
        "method": "solveRecaptchaV2",
        "returnField": "typedSolution.grid.objects"
      },
      "rest": {
        "taskType": "RecaptchaV2Classification"
      },
      "notes": "Solve a reCAPTCHA v2 image classification challenge."
    },
    {
      "name": "Cloudflare Turnstile",
      "slug": "cloudflare-turnstile",
      "family": "token",
      "python": {
        "method": "solve_turnstile",
        "returnField": "solution.token"
      },
      "node": {
        "method": "solveTurnstile",
        "returnField": "solution.token"
      },
      "rest": {
        "taskType": "AntiTurnstileTask"
      },
      "notes": "Solve a Cloudflare Turnstile token challenge (async — polls until ready)."
    },
    {
      "name": "Cloudflare Challenge",
      "slug": "cloudflare-challenge",
      "family": "token",
      "python": {
        "method": "solve_cloudflare",
        "returnField": "solution.token",
        "requiresProxy": true
      },
      "node": {
        "method": "solveCloudflare",
        "returnField": "solution.token",
        "requiresProxy": true
      },
      "rest": {
        "taskType": "AntiCloudflareTask"
      },
      "notes": "Solve a Cloudflare challenge via browser automation (async — polls until ready)."
    },
    {
      "name": "PopularCaptcha",
      "slug": "popular-captcha-hcaptcha-style-image-challenges",
      "family": "interactive",
      "python": {
        "method": "solve_popular_captcha",
        "returnField": "typed_solution.grid.objects"
      },
      "node": {
        "method": "solvePopularCaptcha",
        "returnField": "typedSolution.grid.objects"
      },
      "rest": {
        "taskType": "PopularCaptchaImage"
      },
      "notes": "Solve a popular CAPTCHA image classification challenge (grid/bbox/drag)."
    },
    {
      "name": "PopularCaptcha (token)",
      "slug": "popular-captcha-token",
      "family": "token",
      "python": {
        "method": "solve_popular_captcha_token",
        "returnField": "solution.token"
      },
      "node": {
        "method": "solvePopularCaptchaToken",
        "returnField": "solution.token"
      },
      "rest": {
        "taskType": "PopularTask",
        "taskTypeProxyless": "PopularTaskProxyless"
      },
      "notes": "Solve a popular CAPTCHA token challenge via browser automation (async — polls until ready)."
    },
    {
      "name": "GeeTest",
      "slug": "geetest",
      "family": "interactive",
      "python": {
        "method": "solve_geetest",
        "returnField": "typed_solution"
      },
      "node": {
        "method": "solveGeetest",
        "returnField": "typedSolution"
      },
      "rest": {
        "taskType": "GeetestClassification"
      },
      "notes": "Solve a Geetest CAPTCHA challenge."
    },
    {
      "name": "AWS WAF",
      "slug": "aws-waf",
      "family": "image",
      "python": {
        "method": "solve_aws_waf",
        "returnField": "typed_solution.grid.objects"
      },
      "node": {
        "method": "solveAwsWaf",
        "returnField": "typedSolution.grid.objects"
      },
      "rest": {
        "taskType": "AwsWafClassification"
      },
      "notes": "Solve an AWS WAF image challenge."
    },
    {
      "name": "Image-to-text (OCR)",
      "slug": "image-to-text-ocr",
      "family": "image",
      "python": {
        "method": "solve_ocr",
        "returnField": "typed_solution.text.texts[0]"
      },
      "node": {
        "method": "solveOcr",
        "returnField": "typedSolution.text.texts[0]"
      },
      "rest": {
        "taskType": "ImageToTextTask"
      },
      "notes": "Solve an OCR / image-to-text task."
    },
    {
      "name": "Slide puzzle",
      "slug": "slide-puzzle",
      "family": "image",
      "python": {
        "method": "solve_slide_image",
        "returnField": "typed_solution.slide.x"
      },
      "node": {
        "method": "solveSlideImage",
        "returnField": "typedSolution.slide.x"
      },
      "rest": {
        "taskType": "SlideImage"
      },
      "notes": "Solve a slide CAPTCHA using local alpha/contour detection (no AI)."
    },
    {
      "name": "TikTok",
      "slug": "tiktok",
      "family": "interactive",
      "python": {
        "method": "solve_tiktok",
        "returnField": "typed_solution"
      },
      "node": {
        "method": "solveTikTok",
        "returnField": "typedSolution"
      },
      "rest": {
        "taskType": "TikTokClassification"
      },
      "notes": "Solve a TikTok CAPTCHA challenge."
    },
    {
      "name": "Binance",
      "slug": "binance",
      "family": "interactive",
      "python": {
        "method": "solve_binance",
        "returnField": "typed_solution"
      },
      "node": {
        "method": "solveBinance",
        "returnField": "typedSolution"
      },
      "rest": {
        "taskType": "BinanceSlideTask"
      },
      "notes": "Solve a Binance CAPTCHA challenge."
    }
  ]
}
