ATHUS BRAIN

`} /* CONTROL CENTER */ if(S==='control'){A.innerHTML=`

🖥️ Sistema

🐳 Docker

🗄️ Database

🔌 APIs

📂 Projetos

🧠 Memória

🚀 Deploy

🔍 Busca

❤️ Health Completo

`} /* CONEXÃO MODULES */ if(S==='conexao'){A.innerHTML=`

📍 Você no Google

📰 World News

💰 Financeiro

🎬 Media Factory

🚀 Missão Empreendedora

📊 SEO Portal

`} /* AISA GATEWAY */ if(S==='aisa'){A.innerHTML=`

🔍 Web Search

📹 YouTube

🏢 Business

💰 Cripto

📊 SEO

📱 Social

`} /* SESSION HUB */ if(S==='hub'){A.innerHTML=`

Nova Sessão

📊 Status

Carregando...

📋 Sessões

🔌 Providers

`} /* ARCHITECT */ if(S==='architect'){A.innerHTML=`

Gerar Diagrama de Arquitetura

💬 Perguntar sobre Arquitetura

`} /* YOUTUBE */ if(S==='youtube'){A.innerHTML=`

Extrair Comentários

`} /* SECURITY */ if(S==='security'){A.innerHTML=`

Security Scanner

Scanner ÉTICO — apenas verificações PASSIVAS. Nenhuma ação ofensiva.
`} /* PC */ if(S==='pc'){A.innerHTML=`

Controle do PC

`} } /* === CHAT === */ async function sendChat(){ const inp=$('chi'),msgs=$('chat-msgs'),msg=inp.value.trim();if(!msg)return; const prov=$('chp').value;_chatHistory.push({role:'user',content:msg}); msgs.innerHTML+=`
Você
${msg}
`;inp.value='';msgs.scrollTop=msgs.scrollHeight; const lid='l'+Date.now();msgs.innerHTML+=`
Pensando...
`;msgs.scrollTop=msgs.scrollHeight; const r=await api('/chat',{message:msg,provider:prov||''});_chatHistory.push({role:'assistant',content:r.text||''}); // Simular streaming (revela texto gradualmente) const fullText=r.text||'';const el=$(lid);el.innerHTML=r.success?`
${r.provider||'IA'} / ${r.model||'?'} · ${r.tokens||0}t · ${r.duration_ms||0}ms
`:`
Erro
${r.error||'Falha na requisição'}
`; if(r.success){let i=0;const speed=Math.max(5,Math.floor(fullText.length/60));const stream=setInterval(()=>{i+=speed;if(i>=fullText.length){$(`${lid}t`).textContent=fullText;clearInterval(stream)}else{$(`${lid}t`).textContent=fullText.slice(0,i)+'▌'}},20)} msgs.scrollTop=msgs.scrollHeight; } function qChat(m){$('chi').value=m;sendChat()} function copyMsg(b){const t=b.closest('.msg').textContent.replace(/📋|🔄|Você|Pensando\.\.\..*$/gm,'').trim();navigator.clipboard.writeText(t);toast('Copiado','info')} function retryChat(){if(_chatHistory.length>=2){_chatHistory.pop();const l=_chatHistory[_chatHistory.length-1];if(l&&l.role==='user'){$('chi').value=l.content;sendChat()}}} /* === CODE === */ async function genCode(){ const b=$('cdb'),task=$('cdt').value,lang=$('cdl').value;if(!task){toast('Descreva a tarefa','error');return} b.disabled=true;b.innerHTML=' Gerando...';$('code-empty').style.display='none'; const r=await api('/code',{task:task,language:lang});b.disabled=false;b.textContent='Gerar + Analisar'; if(!r.success){toast(r.error||'Erro','error');return} $('cdr').style.display='block';$('cdm').textContent=`${lang} · ${(r.code||'').length} caracteres`; $('cdbc').innerHTML=clines(r.code||''); if(r.analysis){const a=$('cda');a.style.display='block';a.textContent='📋 '+r.analysis.summary} toast('Código gerado','success'); } function copyCode(){navigator.clipboard.writeText($('cdbc').textContent);toast('Copiado','info')} function downloadCode(){const c=$('cdbc').textContent,l=$('cdl').value;const e={python:'py',javascript:'js',typescript:'ts',react:'jsx',html:'html',css:'css',sql:'sql',bash:'sh',fastapi:'py'};const b=new Blob([c]);const a=document.createElement('a');a.href=URL.createObjectURL(b);a.download='athus_code.'+(e[l]||'txt');a.click()} /* === SITES === */ async function genSite(){ const p=$('stp').value,t=$('stt').value;if(!p){toast('Descreva o site','error');return} show('str','
Gerando...
','html'); const r=await api('/site',{prompt:p,template:t});_siteHistory.push({prompt:p,template:t,result:r,time:new Date().toLocaleTimeString()}); $('str').innerHTML=r.success?`
${r.output_dir}
${(r.files||[]).join(', ')}
`:`
❌ ${r.error}
`; renderSiteHistory(); } function renderSiteHistory(){if(!_siteHistory.length)return;let h='';_siteHistory.slice(-5).reverse().forEach(s=>{h+=``});h+='
PromptTemplateStatusHora
${(s.prompt||'').slice(0,40)}${s.template}${s.result?.success?'✅':'❌'}${s.time}
';const el=$('stHist');if(el)el.innerHTML=`

Histórico

${h}
`} async function genPPT(){const t=$('ptt').value,tm=$('pttp').value;if(!t){toast('Digite o tema','error');return} show('ptr','
Gerando...
','html');const r=await api('/ppt',{topic:t,template:tm}); $('ptr').innerHTML=r.success?`
${r.path}
${r.slides||0} slides
`:`
❌ ${r.error}
`} /* === VOICE === */ async function speak(){ const b=$('vob'),text=$('vot').value||'Olá',voice=$('vov').value;b.disabled=true;b.innerHTML=' Gerando...'; const r=await api('/voice/speak',{text:text,voice:voice});b.disabled=false;b.textContent='Gerar Fala'; if(!r.success){toast(r.error,'error');return} _voiceHistory.push({text:text.slice(0,80),voice:r.voice,time:new Date().toLocaleTimeString()}); $('vor').style.display='block';$('vor').innerHTML=`
Voz: ${r.voice} · Áudio gerado com sucesso
`; renderVoiceHistory();toast('Fala gerada','success'); } function renderVoiceHistory(){if(!_voiceHistory.length)return;let h='';_voiceHistory.slice(-5).reverse().forEach(v=>{h+=``});h+='
TextoVozHora
${v.text}${v.voice}${v.time}
';const el=$('vHist');if(el)el.innerHTML=`

Histórico

${h}
`} /* === MEMORY === */ async function rem(){const c=$('mmc').value,cat=$('mmt').value;if(!c){toast('Digite o conteúdo','error');return}await api('/memory/remember',{content:c,category:cat});toast('Salvo','success');$('mmc').value=''} async function recall(){const q=$('mmq').value;if(!q)return;$('mmr').style.display='block';$('mmb').innerHTML='
Buscando...
';const r=await api('/memory/recall',{query:q});$('mmb').innerHTML=r.count?`
${r.count} memórias
${r.memories.map(m=>`
• ${m.content}
${m.category} · ${m.created||''}
`).join('')}`:`
🔍

Nenhuma memória encontrada

`} async function askMem(){const q=$('mmq').value;if(!q)return;$('mmr').style.display='block';$('mmb').innerHTML='
Consultando...
';const r=await api('/memory/ask',{question:q});$('mmb').innerHTML=r.answer?`
${r.answer}
`:`
${r.error||'Sem resposta'}
`} async function deleteMem(id){if(!confirm('Excluir esta memória?'))return;await api('/memory/remember',{content:'__delete__',category:'__delete__'});toast('Excluída','info');recall()} /* === AGENT === */ let _agentAbort=null; async function runAgent(){ const b=$('agb'),goal=$('agg').value,ap=$('aga').checked;if(!goal){toast('Defina um objetivo','error');return} b.disabled=true;b.innerHTML=' Planejando...';$('agStop').style.display='inline-flex'; const log=$('agl');log.style.display='block';log.innerHTML='
🤖 Iniciando agente autônomo...
📋 Objetivo: '+goal.slice(0,100)+'
🔍 Analisando complexidade, riscos e dependências...
'; _agentAbort=false; const r=await api('/agent',{goal:goal,max_steps:5,auto_approve:ap}); b.disabled=false;b.textContent='Executar Agente';$('agStop').style.display='none'; if(_agentAbort){log.innerHTML+='
⏹ Execução cancelada pelo usuário
';toast('Agente cancelado','info');return} log.innerHTML+=`
━━━━━━━━━━━━━━━━━━━━━━
${r.success?'✅ CONCLUÍDO':'❌ FALHOU'}
${r.summary||''}
`; if(r.results)r.results.forEach(s=>{log.innerHTML+=`
▸ Passo ${s.step}: ${s.action} ${s.result?.success?'✅':'❌'} ${s.reason||''}
`}); $('agr').style.display='block';$('agbc').textContent=JSON.stringify(r.results||[],null,2); toast(r.success?'Agente concluído com sucesso!':'Agente encontrou problemas',r.success?'success':'error'); } function stopAgent(){_agentAbort=true;$('agl').innerHTML+='
⏹ Parando agente...
';toast('Parando agente...','info')} /* === CONTROL CENTER === */ async function ccLoad(tool){ const ids={system:'cc_sys',docker:'cc_docker',database:'cc_db',apis:'cc_apis',projects:'cc_proj',memory:'cc_mem',deploy:'cc_deploy'}; $(ids[tool]).innerHTML=''; const r=await api('/mcp',{action:'execute',tool:tool}); if(r.success){ let html=''; const d=r.data; if(tool==='system')html=`CPU: ${d.cpu_percent||'?'}% | RAM: ${d.ram?.percent||'?'}% | Disk: ${d.disk?.percent||'?'}%`; if(tool==='docker')html=`Local: ${d.local?.total||0} | VPS60: ${d.vps60?.total||0} containers`; if(tool==='database')html=(d.databases||[]).map(x=>`${x.name}: ${x.size}`).join('
')||'N/A'; if(tool==='apis')html=`${d.online}/${d.total} online
`+Object.entries(d.apis||{}).map(([k,v])=>`${v.status==='online'?'✅':'❌'} ${k}`).join('
'); if(tool==='projects')html=`${d.total} projetos
`+(d.projects||[]).slice(0,10).map(p=>`📁 ${p.name}`).join('
'); if(tool==='memory')html=`${d.total||0} memórias`; if(tool==='deploy')html=JSON.stringify(d.deployments||{}).slice(0,300); $(ids[tool]).innerHTML=html; } } async function ccSearch(){ const q=$('cc_search').value;if(!q)return; $('cc_sr').innerHTML=''; const r=await api('/mcp',{action:'search',query:q}); $('cc_sr').innerHTML=r.success?`${r.data?.total_hits||0} resultados`:'❌'; } async function ccHealth(){ $('cc_health_r').style.display='block';$('cc_health_b').textContent='Carregando...'; const r=await api('/mcp',{action:'health'}); $('cc_health_b').textContent=JSON.stringify(r,null,2); } ccLoad('system');ccLoad('apis');ccLoad('docker'); /* === CONEXÃO === */ async function modCall(mod){ $('cx_r').style.display='block';$('cx_m').textContent='⏳ Processando...';$('cx_b').textContent='Aguarde...'; const data={};let action=''; if(mod==='google'){action='google_leads';data.city=$('vg_city').value;data.segment=$('vg_seg').value} if(mod==='news'){action='world_news';data.query=$('wn_q').value;data.location=$('wn_loc').value} if(mod==='financial'){action='financial';data.asset=$('fi_type').value;data.symbol=$('fi_sym').value||'bitcoin'} if(mod==='media'){action='media_factory';data.topic=$('mf_topic').value} if(mod==='missao'){action='missao';data.city=$('me_city').value;data.interest=$('me_int').value} if(mod==='seo'){action='seo_portal';data.keyword=$('seo_kw').value;data.url=$('seo_url').value} const r=await api('/conexao',{...data,action:action}); $('cx_m').textContent=r.success?`✅ ${r.module}`:'❌ Erro'; $('cx_b').textContent=JSON.stringify(r,null,2); } async function diagConexao(){ $('cx_r').style.display='block';$('cx_m').textContent='⏳ Diagnóstico completo...';$('cx_b').textContent='Executando todos os módulos...'; const r=await api('/conexao',{action:'diagnostico',city:$('vg_city').value||'Cotia',segment:$('vg_seg').value}); $('cx_m').textContent=`✅ ${r.total_success}/${r.total_modules} módulos OK`; $('cx_b').textContent=JSON.stringify(r.modules,null,2); } /* === AISA === */ async function aisaCall(action,data){ $('aisa_r').style.display='block';$('aisa_m').textContent='⏳ Chamando AIsa...';$('aisa_b').textContent='Aguardando...'; const r=await api('/aisa',{...data,action:action}); $('aisa_m').textContent=r.success?`✅ ${action}`:'❌ Erro'; $('aisa_b').textContent=JSON.stringify(r.data||r.results||r,null,2); } function aisaSearch(){$('aisa_r').style.display='block';aisaCall('search',{query:$('as_q').value,engine:$('as_eng').value})} function aisaYT(){$('aisa_r').style.display='block';aisaCall('youtube',{query:$('ay_q').value})} function aisaBiz(){$('aisa_r').style.display='block';aisaCall('business',{query:$('ab_q').value,location:$('ab_loc').value})} function aisaCrypto(){$('aisa_r').style.display='block';aisaCall('crypto',{coin:$('ac_coin').value||'bitcoin'})} function aisaSEO(){$('aisa_r').style.display='block';aisaCall('seo',{keyword:$('ak_kw').value})} function aisaSocial(){$('aisa_r').style.display='block';aisaCall('social',{platform:$('asoc_plat').value,query:$('asoc_q').value})} /* === SESSION HUB === */ async function hubCreate(){ const p=$('sh_phone').value,c=$('sh_company').value,u=$('sh_user').value,pr=$('sh_prov').value; if(!p){toast('Número obrigatório','error');return} const r=await api('/hub',{action:'create',phone:p,company:c,user:u,provider:pr});toast(r.uuid?'Sessão '+r.uuid+' criada!':'Erro',r.uuid?'success':'error');hubRefresh() } async function hubRefresh(){ const s=await api('/hub',{action:'status'});$('sh_status').innerHTML=`${s.sessions?.total||0} sessões (${s.sessions?.active||0} ativas)
${s.providers?.online||0}/${s.providers?.total||0} providers online`; const l=await api('/hub',{action:'list'});$('sh_list').innerHTML=l.length?l.map(s=>`
📱 ${s.phone_number} | ${s.provider} | ${s.status}
`).join(''):'

Nenhuma sessão

'; const p=await api('/hub',{action:'providers'});$('sh_providers').innerHTML=p.map(p=>`
${p.status==='online'?'✅':'❌'} ${p.name} v${p.version} | ${p.api_type}
`).join('') } hubRefresh(); /* === ARCHITECT === */ async function archGenerate(){ const src=$('ar_src').value,type=$('ar_type').value;if(!src){toast('Informe o caminho ou descrição','error');return} const b=$('arb');b.disabled=true;b.innerHTML=' Gerando...'; $('arr').style.display='block';$('arm').textContent='Analisando projeto...';$('arbc').textContent='⏳ Escaneando e gerando diagrama...'; const r=await api('/architect',{source:src,diagram_type:type,action:'generate'}); b.disabled=false;b.textContent='Gerar Diagrama'; if(r.success){$('arm').textContent=r.title;$('arbc').textContent=r.mermaid;toast('Diagrama gerado!','success')} else{$('arbc').textContent='❌ '+r.error} } function archCopy(){navigator.clipboard.writeText($('arbc').textContent);toast('Copiado!','info')} function archView(){const m=$('arbc').textContent;const w=window.open('','_blank');w.document.write(\`Diagrama