phase76 doctrine 217 WEVIA AUTONOMY 100PCT LIVE PROOF - setsid async + researchflow applied via chat NL
This commit is contained in:
@@ -185,17 +185,20 @@ if (!empty($msg)) {
|
||||
if (!$__sd_safe) continue;
|
||||
// DOCTRINE-215 opus-phase74 - inject MSG env for cmd extraction
|
||||
$__sd_env = 'MSG=' . escapeshellarg($__sd_msg) . ' ';
|
||||
// DOCTRINE-216 opus-phase75 - async long intents to bypass CF 504
|
||||
// DOCTRINE-216 opus-phase75 + DOCTRINE-217 opus-phase76 - async long intents via temp script + setsid
|
||||
$__sd_long_intents = ['wevia_gemini_ux_apply', 'wevia_gemini_ux_fix', 'wevia_playwright_ux_overlap_gemini_audit'];
|
||||
if (in_array($__sd_info['name'] ?? '', $__sd_long_intents)) {
|
||||
// Background exec + return task_id immediate
|
||||
$__sd_task_id = 'task_' . bin2hex(random_bytes(5));
|
||||
@mkdir('/tmp/wevia-tasks', 0777, true);
|
||||
$__sd_task_out = "/tmp/wevia-tasks/{$__sd_task_id}.out";
|
||||
$__sd_task_flag = "/tmp/wevia-tasks/{$__sd_task_id}.flag";
|
||||
@mkdir('/tmp/wevia-tasks', 0777, true);
|
||||
$__sd_full_cmd = $__sd_env . 'timeout 180 bash -c ' . escapeshellarg($__sd_cmd);
|
||||
@exec("nohup bash -c " . escapeshellarg("$__sd_full_cmd > $__sd_task_out 2>&1; touch $__sd_task_flag") . " > /dev/null 2>&1 &");
|
||||
$__sd_out = "ASYNC_LAUNCHED task_id=$__sd_task_id\nPoll: /api/wevia-async-exec.php?poll=$__sd_task_id\nIntent {$__sd_info['name']} running in background (90-180s).";
|
||||
$__sd_task_script = "/tmp/wevia-tasks/{$__sd_task_id}.sh";
|
||||
// DOCTRINE-217: write exec to temp script, then setsid detach - avoid double escaping
|
||||
$__sd_script_body = "#!/bin/bash\nexport MSG=" . escapeshellarg($__sd_msg) . "\ntimeout 180 bash -c " . escapeshellarg($__sd_cmd) . " > $__sd_task_out 2>&1\ntouch $__sd_task_flag\n";
|
||||
@file_put_contents($__sd_task_script, $__sd_script_body);
|
||||
@chmod($__sd_task_script, 0755);
|
||||
@exec("setsid bash $__sd_task_script > /dev/null 2>&1 < /dev/null &");
|
||||
$__sd_out = "ASYNC_LAUNCHED task_id=$__sd_task_id\nPoll: /api/wevia-async-exec.php?poll=$__sd_task_id\nIntent {$__sd_info['name']} running in background (90-180s).\nScript: $__sd_task_script";
|
||||
} else {
|
||||
$__sd_out = @shell_exec($__sd_env . 'timeout 90 bash -c ' . escapeshellarg($__sd_cmd) . ' 2>&1');
|
||||
}
|
||||
|
||||
@@ -112,6 +112,387 @@ footer{padding:2.5rem 4% 1.5rem;max-width:1180px;margin:2rem auto 0;border-top:1
|
||||
@media (max-width:768px){#weval-bot-widget{bottom:100px !important;right:16px !important;z-index:10001 !important}#weval-bot-btn{width:48px !important;height:48px !important}#weval-bot-btn svg{width:22px !important;height:22px !important}#footer_banner,.footer-banner,[class*="footer-bandeau"]{z-index:9990 !important}}
|
||||
</style>
|
||||
|
||||
|
||||
<!-- DOCTRINE-201-GEMINI-APPLY-20260424-203835 -->
|
||||
<style>
|
||||
:root {
|
||||
--wtp-bg: #141418; /* Deep charcoal background */
|
||||
--wtp-card: #1F1F24; /* Slightly lighter dark grey for cards */
|
||||
--wtp-primary: #664CEA; /* Original purple from the button */
|
||||
--wtp-accent: #00B395; /* Original teal from "automatisée" */
|
||||
--wtp-text-light: #E0E0E0; /* Light text for dark background */
|
||||
--wtp-text-muted: #A0A0A0; /* Muted text for secondary info */
|
||||
--wtp-border: #33333A; /* Subtle border color */
|
||||
--wtp-gradient-start: #664CEA;
|
||||
--wtp-gradient-end: #8A6FFC;
|
||||
--wtp-accent-gradient-start: #00B395;
|
||||
--wtp-accent-gradient-end: #00E6C3;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Inter', sans-serif; /* Assuming Inter or similar modern sans-serif */
|
||||
background-color: var(--wtp-bg);
|
||||
color: var(--wtp-text-light);
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: var(--wtp-text-light);
|
||||
font-weight: 700;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
/* Specific styling for the existing page elements to fit the dark theme */
|
||||
/* Assuming the main title is an h1 or similar */
|
||||
.main-title {
|
||||
font-size: 3.5rem;
|
||||
color: var(--wtp-text-light);
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.main-title .highlight {
|
||||
color: var(--wtp-accent);
|
||||
}
|
||||
|
||||
.description-text {
|
||||
color: var(--wtp-text-muted);
|
||||
font-size: 1.1rem;
|
||||
max-width: 700px;
|
||||
margin: 0 auto 2rem auto;
|
||||
}
|
||||
|
||||
/* Navbar adjustments */
|
||||
.navbar {
|
||||
background-color: var(--wtp-bg);
|
||||
border-bottom: 1px solid var(--wtp-border);
|
||||
padding: 1rem 2rem;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
.navbar a {
|
||||
color: var(--wtp-text-muted);
|
||||
text-decoration: none;
|
||||
margin-left: 1.5rem;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
.navbar a:hover {
|
||||
color: var(--wtp-text-light);
|
||||
}
|
||||
.navbar .logo {
|
||||
color: var(--wtp-text-light);
|
||||
font-weight: 700;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
.navbar .logo span {
|
||||
color: var(--wtp-accent);
|
||||
}
|
||||
.navbar .demo-btn {
|
||||
background: linear-gradient(90deg, var(--wtp-gradient-start), var(--wtp-gradient-end));
|
||||
color: white;
|
||||
padding: 0.75rem 1.5rem;
|
||||
border-radius: 8px;
|
||||
text-decoration: none;
|
||||
font-weight: 600;
|
||||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||
box-shadow: 0 4px 15px rgba(102, 76, 234, 0.4);
|
||||
}
|
||||
.navbar .demo-btn:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 6px 20px rgba(102, 76, 234, 0.6);
|
||||
}
|
||||
|
||||
/* -- WEVAL Specific Components -- */
|
||||
|
||||
/* .wtp-hero-premium */
|
||||
.wtp-hero-premium {
|
||||
position: relative;
|
||||
padding: 8rem 2rem;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
background: radial-gradient(circle at top left, rgba(102, 76, 234, 0.15) 0%, transparent 40%),
|
||||
radial-gradient(circle at bottom right, rgba(0, 179, 149, 0.15) 0%, transparent 40%),
|
||||
var(--wtp-bg);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.wtp-hero-premium::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
backdrop-filter: blur(5px); /* Subtle blur effect */
|
||||
-webkit-backdrop-filter: blur(5px);
|
||||
z-index: -1; /* Place behind content */
|
||||
opacity: 0.3; /* Make it subtle */
|
||||
}
|
||||
|
||||
.wtp-hero-premium h1 {
|
||||
font-size: 4.5rem;
|
||||
font-weight: 800;
|
||||
margin-bottom: 1rem;
|
||||
background: linear-gradient(to right, var(--wtp-text-light), var(--wtp-primary));
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
text-shadow: 0 4px 10px rgba(0,0,0,0.3);
|
||||
}
|
||||
|
||||
.wtp-hero-premium h1 span {
|
||||
background: linear-gradient(to right, var(--wtp-accent-gradient-start), var(--wtp-accent-gradient-end));
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
|
||||
.wtp-hero-premium p {
|
||||
font-size: 1.3rem;
|
||||
color: var(--wtp-text-muted);
|
||||
max-width: 800px;
|
||||
margin: 0 auto 3rem auto;
|
||||
}
|
||||
|
||||
/* .wtp-kpi-card */
|
||||
.wtp-kpi-card {
|
||||
background-color: var(--wtp-card);
|
||||
border: 1px solid var(--wtp-border);
|
||||
border-radius: 12px;
|
||||
padding: 1.5rem;
|
||||
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1rem;
|
||||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||
}
|
||||
.wtp-kpi-card:hover {
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0 12px 35px rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
.wtp-kpi-card .kpi-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
.wtp-kpi-card .kpi-title {
|
||||
font-size: 1.1rem;
|
||||
color: var(--wtp-text-light);
|
||||
font-weight: 600;
|
||||
}
|
||||
.wtp-kpi-card .kpi-value {
|
||||
font-size: 2.2rem;
|
||||
font-weight: 700;
|
||||
color: var(--wtp-primary);
|
||||
}
|
||||
.wtp-kpi-card .kpi-change {
|
||||
font-size: 0.9rem;
|
||||
color: var(--wtp-accent); /* Green for positive change */
|
||||
}
|
||||
.wtp-kpi-card .kpi-change.negative {
|
||||
color: #FF6B6B; /* Red for negative change */
|
||||
}
|
||||
.wtp-kpi-card .sparkline-svg {
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
/* Placeholder for SVG content */
|
||||
background: repeating-linear-gradient(
|
||||
45deg,
|
||||
var(--wtp-border),
|
||||
var(--wtp-border) 10px,
|
||||
transparent 10px,
|
||||
transparent 20px
|
||||
);
|
||||
border-radius: 4px;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
/* .wtp-status-led */
|
||||
@keyframes pulse {
|
||||
0% {
|
||||
transform: scale(0.8);
|
||||
opacity: 0.7;
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.1);
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
transform: scale(0.8);
|
||||
opacity: 0.7;
|
||||
}
|
||||
}
|
||||
|
||||
.wtp-status-led {
|
||||
display: inline-block;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--wtp-accent); /* Default to live/green */
|
||||
box-shadow: 0 0 0 0 rgba(0, 179, 149, 0.7);
|
||||
animation: pulse 1.5s infinite cubic-bezier(0.66, 0, 0, 1);
|
||||
margin-right: 8px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.wtp-status-led.offline {
|
||||
background-color: #FF6B6B; /* Red for offline */
|
||||
box-shadow: 0 0 0 0 rgba(255, 107, 107, 0.7);
|
||||
}
|
||||
.wtp-status-led.warning {
|
||||
background-color: #FFD166; /* Yellow for warning */
|
||||
box-shadow: 0 0 0 0 rgba(255, 209, 102, 0.7);
|
||||
}
|
||||
|
||||
/* .wtp-action-btn */
|
||||
.wtp-action-btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 1rem 2.5rem;
|
||||
border-radius: 8px;
|
||||
font-size: 1.1rem;
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: linear-gradient(90deg, var(--wtp-gradient-start), var(--wtp-gradient-end));
|
||||
box-shadow: 0 6px 20px rgba(102, 76, 234, 0.4);
|
||||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.wtp-action-btn::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, var(--wtp-gradient-end), var(--wtp-gradient-start)); /* Reverse gradient for hover */
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.wtp-action-btn:hover {
|
||||
transform: translateY(-3px);
|
||||
box-shadow: 0 10px 30px rgba(102, 76, 234, 0.6);
|
||||
}
|
||||
|
||||
.wtp-action-btn:hover::before {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* Secondary button style */
|
||||
.wtp-action-btn.secondary {
|
||||
background: var(--wtp-card);
|
||||
color: var(--wtp-primary);
|
||||
border: 1px solid var(--wtp-border);
|
||||
box-shadow: none;
|
||||
transition: background-color 0.3s ease, color 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
|
||||
}
|
||||
.wtp-action-btn.secondary:hover {
|
||||
background-color: var(--wtp-border);
|
||||
color: var(--wtp-accent);
|
||||
transform: translateY(-2px);
|
||||
border-color: var(--wtp-accent);
|
||||
box-shadow: 0 4px 15px rgba(0, 179, 149, 0.2);
|
||||
}
|
||||
.wtp-action-btn.secondary::before {
|
||||
display: none; /* No gradient overlay for secondary */
|
||||
}
|
||||
|
||||
|
||||
/* Media Query for mobile 768px */
|
||||
@media (max-width: 768px) {
|
||||
.wtp-hero-premium {
|
||||
padding: 6rem 1rem;
|
||||
}
|
||||
.wtp-hero-premium h1 {
|
||||
font-size: 2.8rem;
|
||||
}
|
||||
.wtp-hero-premium p {
|
||||
font-size: 1rem;
|
||||
}
|
||||
.wtp-action-btn {
|
||||
padding: 0.8rem 2rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
.wtp-kpi-card {
|
||||
padding: 1rem;
|
||||
}
|
||||
.wtp-kpi-card .kpi-value {
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
|
||||
/* Anti-overlap for hypothetical bot-widget */
|
||||
.bot-widget {
|
||||
position: fixed;
|
||||
bottom: 100px; /* Pushes it up to prevent overlap with mobile navigation/keyboard */
|
||||
right: 20px;
|
||||
left: auto;
|
||||
z-index: 1000;
|
||||
}
|
||||
}
|
||||
|
||||
/* General layout for the page to center content */
|
||||
.container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 0 2rem;
|
||||
}
|
||||
|
||||
/* Example usage of the tags from the image */
|
||||
.tag-container {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 10px;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
.tag {
|
||||
background-color: rgba(0, 179, 149, 0.15); /* Light green background */
|
||||
color: var(--wtp-accent);
|
||||
padding: 0.4rem 0.8rem;
|
||||
border-radius: 20px;
|
||||
font-size: 0.85rem;
|
||||
font-weight: 500;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
}
|
||||
.tag::before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
background-color: var(--wtp-accent);
|
||||
border-radius: 50%;
|
||||
}
|
||||
.tag.live::before {
|
||||
animation: pulse 1.5s infinite cubic-bezier(0.66, 0, 0, 1);
|
||||
}
|
||||
|
||||
/* Small text below buttons */
|
||||
.sub-text-link {
|
||||
color: var(--wtp-text-muted);
|
||||
font-size: 0.9rem;
|
||||
margin-top: 1.5rem;
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
.sub-text-link a {
|
||||
color: var(--wtp-primary);
|
||||
text-decoration: none;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
.sub-text-link a:hover {
|
||||
color: var(--wtp-accent);
|
||||
}
|
||||
|
||||
</style>
|
||||
<!-- END-DOCTRINE-201 -->
|
||||
</head><body>
|
||||
|
||||
<nav>
|
||||
|
||||
Reference in New Issue
Block a user