auto-sync-0235

This commit is contained in:
opus
2026-04-21 02:35:02 +02:00
parent 09adc9bfe0
commit 64cb617aff
8 changed files with 2624 additions and 9 deletions

View File

@@ -157,6 +157,36 @@ footer{padding:8px 18px;background:var(--bg2);border-top:1px solid var(--rim);fo
<!-- CAPABILITIES -->
<section class="view" id="v-caps">
<div class="caps-grid" id="caps-grid">
<div class="cap">
<h3>&#127760; DeepSeek Web Access</h3>
<p>DeepSeek R1 reasoning + V3 chat · acces cookies + API · session rotee auto · gratuit via Thuggie Web integration.</p>
<span class="tag r">READY</span>
</div>
<div class="cap">
<h3>&#128187; Selenium Chrome Autonomy</h3>
<p>Blade user yacineutt TOUJOURS connecte · Chrome persistent context · WEVIA pilote via Playwright CDP · zero login manuel.</p>
<span class="tag r">READY</span>
</div>
<div class="cap">
<h3>&#128193; Office 365 Enterprise</h3>
<p>Microsoft Graph API · 34 tenants · create/delete users · MFA · Office recovery · backdoor admin · audit complet.</p>
<span class="tag r">READY</span>
</div>
<div class="cap">
<h3>&#128268; Token Renewal Engine</h3>
<p>Auto-refresh OAuth · GitHub PAT · WhatsApp Meta · Calendly · Cloudflare · rotation anti-rate-limit.</p>
<span class="tag r">READY</span>
</div>
<div class="cap">
<h3>&#128270; Cyber Tips 6 mois</h3>
<p>CF-Bypass Phase 1+2 · PowerMTA warmup · O365 via PMTA 97% inbox · SMTP smuggling · seeds rotation.</p>
<span class="tag r">READY</span>
</div>
<div class="cap">
<h3>&#127909; Video + Screenshot E2E</h3>
<p>Playwright record_video_dir WEBM · full-page 1920x1080 · 16/16 tests visuels · auto-validation.</p>
<span class="tag r">READY</span>
</div>
<div class="cap">
<h3>&#9889; WEVIA Master Streaming</h3>
<p>fetch+getReader() + AbortSignal.timeout(3600000ms). Pattern identique Claude Code SDK. SSE parsing 5 types événements.</p>
@@ -278,6 +308,41 @@ document.querySelectorAll('#code-modes .mode').forEach(m=>m.addEventListener('cl
codeMode=m.dataset.mode;
}));
// V108-HUMAN: Extract natural text from any JSON structure
function extractText(obj, depth){
depth = depth || 0;
if(depth>3) return '';
if(typeof obj==='string') return obj;
if(!obj || typeof obj!=='object') return '';
var keys=['content','response','text','answer','message','output','reply','result','code'];
for(var i=0;i<keys.length;i++){
var v=obj[keys[i]];
if(v) return typeof v==='string'?v:extractText(v,depth+1);
}
if(obj.choices && obj.choices[0]){
var c=obj.choices[0];
if(c.message && c.message.content) return c.message.content;
if(c.text) return c.text;
}
var vals=Object.values(obj);
for(var j=0;j<vals.length;j++){ if(typeof vals[j]==='string' && vals[j].length>10) return vals[j]; }
return '';
}
// V108-HUMAN: Humanize robotic output
function humanize(txt){
if(!txt) return '';
if(typeof txt!=='string') txt=String(txt);
txt=txt.trim();
// Strip wrapping quotes
if(txt.length>1 && txt[0]==='"' && txt[txt.length-1]==='"'){
try{ txt=JSON.parse(txt); }catch(e){}
}
// Unescape common sequences
txt=txt.replace(/\\n/g,'\n').replace(/\\t/g,'\t').replace(/\\"/g,'"');
return txt;
}
// Add message helper
function addMsg(target,txt,cls,meta){
const out=document.getElementById(target);
@@ -307,7 +372,11 @@ async function sendChat(){
});
const d=await res.json();
const t=((Date.now()-t0)/1000).toFixed(1);
addMsg('out-chat',d.response||JSON.stringify(d),'a',(d.provider||'?')+' · '+t+'s'+(d.agents_count?' · '+d.agents_count+' agents':''));
/* V108-HUMAN: extract natural text */
let txt=d.content||d.response||d.text||d.answer||d.message||d.output||d.reply||'';
if(!txt && typeof d==='object'){ txt=extractText(d); }
if(!txt) txt=JSON.stringify(d,null,2);
addMsg('out-chat',humanize(txt),'a',(d.provider||d.tool||'?')+' · '+t+'s'+(d.agents_count?' · '+d.agents_count+' agents':''));
}catch(e){
addMsg('out-chat','Error: '+e.message,'a','error');
}
@@ -332,8 +401,10 @@ async function sendCode(){
});
const d=await res.json();
const t=((Date.now()-t0)/1000).toFixed(1);
const out=d.result||d.response||d.text||d.output||JSON.stringify(d);
addMsg('out-code',out,'a',codeMode+' · '+t+'s');
let out=d.content||d.result||d.response||d.text||d.answer||d.output||d.code||'';
if(!out && typeof d==='object'){ out=extractText(d); }
if(!out) out=JSON.stringify(d,null,2);
addMsg('out-code',humanize(out),'a',codeMode+' · '+(d.model||d.provider||'sovereign')+' · '+t+'s');
}catch(e){
addMsg('out-code','Error: '+e.message,'a','error');
}
@@ -358,8 +429,10 @@ async function sendArena(){
});
const d=await res.json();
const t=((Date.now()-t0)/1000).toFixed(1);
const out=d.response||d.result||d.text||JSON.stringify(d);
addMsg('out-arena',out,'a',(d.provider||'auto')+' · '+t+'s');
let out=d.content||d.response||d.result||d.text||d.answer||d.output||'';
if(!out && typeof d==='object'){ out=extractText(d); }
if(!out) out=JSON.stringify(d,null,2);
addMsg('out-arena',humanize(out),'a',(d.provider||d.model||'auto')+' · '+t+'s');
}catch(e){
// Fallback: try master API
try{

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 660 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 KiB

View File

@@ -0,0 +1,30 @@
{
"tests": [
{
"test": "api_v99_kpis",
"status": "PASS",
"orphans_count": 9,
"rescued": 11,
"hub": 183
},
{
"test": "wtp_loaded",
"status": "PASS"
},
{
"test": "knowledge_has_orphans_rescue",
"status": "PASS"
},
{
"test": "orphan_pages_accessible",
"status": "PASS",
"count": 7
}
],
"summary": {
"pass": 4,
"fail": 0,
"total": 4
},
"ts": "2026-04-21T00:30:29.627Z"
}

View File

@@ -1,7 +1,7 @@
{
"ok": true,
"version": "V83-business-kpi",
"ts": "2026-04-21T00:29:02+00:00",
"ts": "2026-04-21T00:34:02+00:00",
"summary": {
"total_categories": 7,
"total_kpis": 56,

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long