Files
html/api/cf-bypass.php
Opus 926c511833 phase26 doctrine 164 playwright ux overlap audit + gemini vision 18 zooms
Script Playwright S204 (pas local) audit 9 pages:
- 8 hubs doctrine 60 (paperclip-dashboard, deerflow-hub, ai-hub, wevia-multiagent-dashboard, brain-council, agents-hub, wevia-meeting-rooms) + wevia-meeting.php + WTP
- Viewport 1440x900
- Screenshots top-right (1040-1440, 0-400) + bot-right (1040-1440, 500-900)
- 18 zooms + 9 videos enregistrees

Resultat Playwright: 0 overlaps detectes (max 1 elt par zone)
Resultat Gemini Vision 2.5 Flash: 18/18 OK confirme

Preuves publiques:
- https://weval-consulting.com/proofs/wevia-ux-overlap-d60-2026-04-24T00-40-10/index.html
- gemini-vision-review.json attache
- videos webm captures

Intent wevia_playwright_ux_overlap_gemini_audit wired:
- Triggers: playwright ux overlap audit, gemini vision review chevauchement
- Execution via WEVIA chat NL
- Pipeline automatise: playwright + gemini vision + publication

Zero regression. 0 chevauchements confirmes UX premium doctrine 60.
2026-04-24 02:45:01 +02:00

68 lines
1.9 KiB
PHP

<?php
/**
* WEVIA CF-Bypass wrapper (doctrine 168)
* POST ?url=https://target.com OR ?action=test
* Delegate to FlareSolverr on 127.0.0.1:8191
*/
header('Content-Type: application/json');
$action = $_GET['action'] ?? 'fetch';
$url = $_GET['url'] ?? ($_POST['url'] ?? '');
if ($action === 'test') {
$ctx = stream_context_create(['http'=>['timeout'=>5]]);
$ping = @file_get_contents('http://127.0.0.1:8191/', false, $ctx);
echo json_encode(['ok'=>(bool)$ping, 'flaresolverr'=>json_decode($ping, true)]);
exit;
}
if (empty($url) || !filter_var($url, FILTER_VALIDATE_URL)) {
echo json_encode(['ok'=>false, 'err'=>'url_required']);
exit;
}
$payload = json_encode([
'cmd'=>'request.get',
'url'=>$url,
'maxTimeout'=>60000,
'returnOnlyCookies'=>true
]);
$ch = curl_init('http://127.0.0.1:8191/v1');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_POST=>true,
CURLOPT_POSTFIELDS=>$payload,
CURLOPT_HTTPHEADER=>['Content-Type: application/json'],
CURLOPT_TIMEOUT=>75,
]);
$resp = curl_exec($ch);
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($http !== 200) {
echo json_encode(['ok'=>false, 'err'=>'flaresolverr_http_'.$http]);
exit;
}
$d = json_decode($resp, true);
$sol = $d['solution'] ?? [];
$cookies = $sol['cookies'] ?? [];
// Summarize
$cookie_str = implode('; ', array_map(fn($c)=>$c['name'].'='.$c['value'], $cookies));
$cf_clearance = '';
foreach($cookies as $c) if($c['name']==='cf_clearance') $cf_clearance=substr($c['value'],0,40).'...';
echo json_encode([
'ok'=>true,
'status'=>$d['status'] ?? 'unknown',
'message'=>$d['message'] ?? '',
'url_final'=>$sol['url'] ?? '',
'http'=>$sol['status'] ?? 0,
'cookie_count'=>count($cookies),
'cf_clearance_preview'=>$cf_clearance,
'user_agent'=>$d['solution']['userAgent'] ?? ($d['userAgent'] ?? ''),
'cookies'=>$cookies,
]);