@rlabs-cl/arketum 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/LICENSE +0 -6
- package/dist/mcp/arketum.js +1 -1
- package/dist/mcp/ci-cli.js +1 -1
- package/dist/mcp/cli.js +1 -1
- package/dist/mcp/comun-ZEXDDERM.js +1 -1
- package/dist/mcp/comun-ZTEHRDHC.js +1 -1
- package/dist/mcp/panel-cli.js +1 -1
- package/dist/mcp/telemetria-cli.js +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
package/dist/mcp/panel-cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const ab=b;(function(p,q){const a1=b,r=p();while(!![]){try{const s=-parseInt(a1(0x12d))/0x1+parseInt(a1(0x144))/0x2+parseInt(a1(0x128))/0x3+parseInt(a1(0xf6))/0x4+parseInt(a1(0x15f))/0x5+parseInt(a1(0x112))/0x6+parseInt(a1(0x12f))/0x7*(-parseInt(a1(0x14e))/0x8);if(s===q)break;else r['push'](r['shift']());}catch(t){r['push'](r['shift']());}}}(a,0xdc027));import{asegurarPanel,claveDelPanel,consultarPanel,decidirEnElPanel,descartarTemaEnElPanel,detenerPanel,estadoCalculado,fijarPuertoDelPanel,historialDelProyecto,huellaDeArketum,leerRegistro,mapaDelProyecto,pendientesParaElPanel,prdVivo,puertoDelPanel,raizDelToken,responderTemaEnElPanel}from'./comun-ZTEHRDHC.js';import{NOMBRE_DEL_FRENTE,NOMBRE_DE_OPCION,OPCIONES_CON_COMENTARIO,OPCIONES_DE_GATE,OPCIONES_DE_TELEMETRIA,carpetaPersonal,conUnaLectura,decidirTelemetriaComoPendiente,guardarIdentidad,hasProjectManifest,identidadPropuesta,leerIdentidad,leerProyecto,openPersonalLog,pendienteDeLaTelemetria,rechazoPorFormato,textoDeIdentidad}from'./comun-ZEXDDERM.js';import{spawn}from'node:child_process';import{join,resolve}from'node:path';import{fileURLToPath}from'node:url';import{randomBytes}from'node:crypto';function b(c,d){c=c-0xf2;const e=a();let f=e[c];if(b['UODQkn']===undefined){var g=function(l){const m='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let n='',o='';for(let p=0x0,q,r,s=0x0;r=l['charAt'](s++);~r&&(q=p%0x4?q*0x40+r:r,p++%0x4)?n+=String['fromCharCode'](0xff&q>>(-0x2*p&0x6)):0x0){r=m['indexOf'](r);}for(let t=0x0,u=n['length'];t<u;t++){o+='%'+('00'+n['charCodeAt'](t)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(o);};b['BOHaPf']=g,b['CMABcH']={},b['UODQkn']=!![];}const h=e[0x0],i=c+h,j=b['CMABcH'][i];return!j?(f=b['BOHaPf'](f),b['CMABcH'][i]=f):f=j,f;}import{createServer}from'node:http';var c=0x40*0x400,d=0xfa0;function e(p){return new Promise((q,r)=>{const a3=b;let s='';p['setEncoding']('utf8'),p['on']('data',t=>{const a2=b;s+=t,s[a2(0x10c)]>c&&(p['removeAllListeners']('data'),r(new Error('demasiado\x20grande')));}),p['on'](a3(0x136),()=>q(s)),p['on']('error',r);});}var f=(p,q,r)=>{const a4=b;p[a4(0x147)](q,{'content-type':'application/json;\x20charset=utf-8','cache-control':a4(0xf3)}),p[a4(0x136)](JSON['stringify'](r));};function g(p){const a5=b;if(typeof p!==a5(0xf4)||p===null)return void 0x0;const q=p,s=z=>typeof q[z]==='string'&&q[z]['trim']()!==''?q[z]['trim']():void 0x0,t=s('unidad'),u=s(a5(0x122)),w=s(a5(0x13a));if(t===void 0x0||u===void 0x0)return void 0x0;const y=w===void 0x0?{}:{'comentario':w};if(q[a5(0x135)]===a5(0x117)){const z=s(a5(0x117)),A=q['eleccion'];if(z===void 0x0||!OPCIONES_DE_GATE[a5(0x10e)](A))return void 0x0;const B=A;if(OPCIONES_CON_COMENTARIO[a5(0x10e)](B)&&w===void 0x0)return void 0x0;return{'tipo':'gate','unidad':t,'gate':z,'huella':u,'eleccion':B,...y};}if(q[a5(0x135)]==='confirmacion'){const C=q['veredictos'];if(typeof C!=='object'||C===null)return void 0x0;const D={};for(const [E,F]of Object[a5(0x13c)](C)){if(F!=='si'&&F!=='no'&&F!=='despues')return void 0x0;D[E]=F;}if(Object['keys'](D)[a5(0x10c)]===0x0||Object[a5(0x133)](D)['includes']('no')&&w===void 0x0)return void 0x0;return{'tipo':'confirmacion','unidad':t,'huella':u,'veredictos':D,...y};}if(q[a5(0x135)]==='delegacion'){const G=s('hasta'),H=q[a5(0x159)];if(G===void 0x0||H!==a5(0x151)&&H!=='revocar')return void 0x0;return{'tipo':'delegacion','unidad':t,'huella':u,'hasta':G,'eleccion':H,...y};}if(q['tipo']===a5(0x123)){const I=s('requisito');if(I===void 0x0||typeof q[a5(0x125)]!=='boolean')return void 0x0;return{'tipo':a5(0x123),'unidad':t,'requisito':I,'huella':u,'confirma':q[a5(0x125)],...y};}return void 0x0;}async function h(p){const a6=b,q=a6(0x149)+randomBytes(0x4)['toString']('hex');let r=0x0;const s=createServer((t,u)=>{const a8=a6;void(async()=>{const a7=b,v=(t[a7(0x14f)]['host']??'')[a7(0x11c)]();if(v!=='127.0.0.1:'+r&&v!=='localhost:'+r)return f(u,0x193,{'error':'solo\x20desde\x20esta\x20máquina'});const w=new URL(t[a7(0x10f)]??'/',a7(0x163)+v);if(t['method']===a7(0x154)&&w['pathname']==='/'){u[a7(0x147)](0xc8,{'content-type':'text/html;\x20charset=utf-8','cache-control':a7(0xf3),'content-security-policy':a7(0x148)}),u[a7(0x136)](i);return;}if(t[a7(0x11d)]===a7(0x154)&&w[a7(0x126)]===a7(0x12b)){const C={'arketum':'panel','huella':p['huella']??'','pid':process['pid']};return f(u,0xc8,C);}if(t['method']===a7(0x105)&&w['pathname']==='/detener'){const D=p[a7(0x14a)]===void 0x0?void 0x0:await p['detener']['clave']();if(p['detener']===void 0x0||D===void 0x0||D===''||t[a7(0x14f)]['x-arketum-clave']!==D)return f(u,0x191,{'error':a7(0x10a)});f(u,0xc8,{'detenido':!![]}),setImmediate(p[a7(0x14a)]['alDetener']);return;}const x=typeof t[a7(0x14f)]['x-arketum-token']===a7(0x139)?t['headers'][a7(0xfb)]:void 0x0,y=x??(t['method']==='GET'?w[a7(0x15d)][a7(0x13f)]('t')??void 0x0:void 0x0),z=y===void 0x0||y===''?void 0x0:await p['raizDe'](y);if(z===void 0x0)return f(u,0x191,{'error':a7(0x108)});const A=await rechazoPorFormato(z);if(A!==void 0x0)return f(u,0x199,{'error':A});const B=await leerProyecto(z);if(B===null)return f(u,0x194,{'error':'aquí\x20no\x20hay\x20un\x20proyecto\x20de\x20Arketum\x20(`.arketum/proyecto.yaml`)'});if(a7(0x12e)in B)return f(u,0x1f4,{'error':B['negativa']});if(t['method']===a7(0x154)&&w[a7(0x126)]===a7(0x15c)){const [E,F,G,H,I]=await conUnaLectura(()=>Promise['all']([estadoCalculado(z,B[a7(0x121)],new Date()[a7(0xf2)]()),pendientesParaElPanel(z,B['manifiesto']),historialDelProyecto(z),mapaDelProyecto(z,B[a7(0x121)]),prdVivo(z,B[a7(0x121)])])),J=textoDeIdentidad(await leerIdentidad()),K=identidadPropuesta();return f(u,0xc8,{'estado':E,...F,'historial':G,'integraciones':{'cuentas':H[a7(0x153)][a7(0x124)],'lineas':H[a7(0x15e)]},'prd':I,...J===void 0x0?{}:{'identidad':J},...K===void 0x0?{}:{'propuesta':K}});}if(t['method']===a7(0x105)&&w[a7(0x126)]==='/api/identidad'){let L;try{L=JSON[a7(0xfc)](await e(t));}catch{return f(u,0x190,{'error':'no\x20es\x20JSON'});}const M=typeof L['soy']===a7(0x139)?L[a7(0x113)]['trim']()[a7(0x141)](0x0,0xc8):'';if(M==='')return f(u,0x190,{'error':a7(0xf7)});const N=M['includes']('@')&&!/\s/['test'](M)?{'correo':M}:{'nombre':M};return await guardarIdentidad(N),f(u,0xc8,{'identidad':textoDeIdentidad(N)});}if(t['method']===a7(0x105)&&w[a7(0x126)]==='/api/telemetria'){let O;try{O=JSON['parse'](await e(t));}catch{return f(u,0x190,{'error':a7(0x10b)});}if(typeof O['acepta']!==a7(0xfe))return f(u,0x190,{'error':a7(0x142)+OPCIONES_DE_TELEMETRIA['si']+a7(0x157)+OPCIONES_DE_TELEMETRIA['no']+'»'});const P=typeof O['comentario']==='string'?O[a7(0x13a)][a7(0x150)]()[a7(0x141)](0x0,0x7d0):'';if(await pendienteDeLaTelemetria()===void 0x0)return f(u,0xc8,{'linea':'\x20\x20·\x20telemetría:\x20ya\x20estaba\x20decidida\x20(o\x20está\x20apagada\x20en\x20esta\x20máquina);\x20no\x20se\x20registra.'});const Q=await decidirTelemetriaComoPendiente(O['acepta'],P===''?void 0x0:P,textoDeIdentidad(await leerIdentidad()),a7(0x102));return f(u,0xc8,{'linea':Q});}if(t['method']==='POST'&&w[a7(0x126)]===a7(0x11b)){let R;try{R=JSON['parse'](await e(t));}catch{return f(u,0x190,{'error':a7(0x10b)});}const S=typeof R['id']==='string'?R['id'][a7(0x150)]():'';if(R[a7(0x156)]!==void 0x0){const W=typeof R[a7(0x156)]===a7(0x139)?R['respuesta'][a7(0x150)]():'';if(S===''||W==='')return f(u,0x190,{'error':'escribe\x20tu\x20respuesta'});if(W[a7(0x10c)]>d)return f(u,0x190,{'error':'la\x20respuesta\x20es\x20demasiado\x20larga:\x20'+W['length']+'\x20de\x20'+d+a7(0x127)});const X=await responderTemaEnElPanel(z,q,S,W,textoDeIdentidad(await leerIdentidad()));return f(u,'error'in X?0x190:0xc8,X);}const T=typeof R['motivo']==='string'?R[a7(0x130)]['trim']()[a7(0x141)](0x0,0x7d0):'';if(S===''||T==='')return f(u,0x190,{'error':a7(0xff)});const U=textoDeIdentidad(await leerIdentidad());if(U===void 0x0)return f(u,0x190,{'error':a7(0x110)});const V=await descartarTemaEnElPanel(z,q,S,T,U);return f(u,'error'in V?0x190:0xc8,V);}if(t['method']==='POST'&&w['pathname']===a7(0x134)){let Y;try{Y=JSON[a7(0xfc)](await e(t));}catch(a0){return f(u,a0['message']==='demasiado\x20grande'?0x19d:0x190,{'error':a0[a7(0x111)]===a7(0x116)?'la\x20respuesta\x20es\x20demasiado\x20grande':a7(0x10b)});}const Z=g(Y);if(Z===void 0x0)return f(u,0x190,{'error':'la\x20respuesta\x20no\x20está\x20completa\x20(con\x20«ajustar»\x20o\x20«rechazar»,\x20y\x20con\x20un\x20«no»,\x20hace\x20falta\x20el\x20comentario)'});return f(u,0xc8,await decidirEnElPanel(z,B[a7(0x121)],q,Z));}f(u,0x194,{'error':'no\x20existe'});})()[a8(0x115)](v=>f(u,0x1f4,{'error':v instanceof Error?v[a8(0x111)]:String(v)}));});return await new Promise((t,u)=>{const a9=a6;s['once']('error',u),s[a9(0x129)](p[a9(0x100)],'127.0.0.1',()=>t());}),r=s[a6(0x137)]()[a6(0x10d)],{'puerto':r,'cerrar':()=>new Promise(t=>{const aa=a6;s['close'](()=>t()),s[aa(0xf9)]();})};}var i='<!doctype\x20html>\x0a<html\x20lang=\x22es\x22>\x0a<head>\x0a<meta\x20charset=\x22utf-8\x22>\x0a<meta\x20name=\x22viewport\x22\x20content=\x22width=device-width,\x20initial-scale=1\x22>\x0a<title>Arketum\x20·\x20panel</title>\x0a<style>\x0a:root\x20{\x20--fondo:#f7f7f5;\x20--carta:#fff;\x20--texto:#1d1d1b;\x20--suave:#6b6b66;\x20--borde:#e2e2dc;\x20--acento:#2f5d8a;\x20--ok:#2e7d4f;\x20--aviso:#a5660b;\x20--mal:#a33a3a;\x20}\x0a@media\x20(prefers-color-scheme:\x20dark)\x20{\x20:root\x20{\x20--fondo:#161615;\x20--carta:#20201e;\x20--texto:#ecece8;\x20--suave:#a3a39c;\x20--borde:#34342f;\x20--acento:#7fb0e0;\x20--ok:#6cc093;\x20--aviso:#e0a64a;\x20--mal:#e07a7a;\x20}\x20}\x0a*\x20{\x20box-sizing:\x20border-box;\x20}\x0abody\x20{\x20margin:0;\x20background:var(--fondo);\x20color:var(--texto);\x20font:15px/1.5\x20system-ui,\x20-apple-system,\x20\x22Segoe\x20UI\x22,\x20sans-serif;\x20}\x0aheader\x20{\x20padding:16px\x2020px\x200;\x20max-width:960px;\x20margin:0\x20auto;\x20}\x0ah1\x20{\x20font-size:20px;\x20margin:0\x200\x204px;\x20}\x0a.sub\x20{\x20color:var(--suave);\x20font-size:13px;\x20}\x0anav\x20{\x20display:flex;\x20gap:8px;\x20margin:14px\x200\x200;\x20border-bottom:1px\x20solid\x20var(--borde);\x20}\x0anav\x20button\x20{\x20background:none;\x20border:0;\x20border-bottom:2px\x20solid\x20transparent;\x20padding:8px\x2010px;\x20color:var(--suave);\x20font:inherit;\x20cursor:pointer;\x20}\x0anav\x20button.activa\x20{\x20color:var(--texto);\x20border-bottom-color:var(--acento);\x20}\x0amain\x20{\x20max-width:960px;\x20margin:0\x20auto;\x20padding:16px\x2020px\x2040px;\x20}\x0a.carta\x20{\x20background:var(--carta);\x20border:1px\x20solid\x20var(--borde);\x20border-radius:10px;\x20padding:14px\x2016px;\x20margin:0\x200\x2012px;\x20}\x0a.cifras\x20{\x20display:flex;\x20flex-wrap:wrap;\x20gap:12px;\x20}\x0a.cifra\x20{\x20flex:1\x201\x20140px;\x20background:var(--carta);\x20border:1px\x20solid\x20var(--borde);\x20border-radius:10px;\x20padding:12px\x2014px;\x20}\x0a.cifra\x20b\x20{\x20display:block;\x20font-size:24px;\x20}\x0a.cifra\x20span\x20{\x20color:var(--suave);\x20font-size:13px;\x20}\x0a.avance\x20b\x20{\x20font-size:40px;\x20}\x0ah2\x20{\x20font-size:15px;\x20margin:18px\x200\x208px;\x20}\x0a.quien\x20{\x20font-weight:600;\x20}\x0a.dato\x20{\x20color:var(--suave);\x20font-size:13px;\x20}\x0apre\x20{\x20white-space:pre-wrap;\x20background:var(--fondo);\x20border:1px\x20solid\x20var(--borde);\x20border-radius:8px;\x20padding:10px;\x20font:13px/1.45\x20ui-monospace,\x20Menlo,\x20monospace;\x20margin:8px\x200;\x20}\x0a.opciones\x20{\x20display:flex;\x20flex-wrap:wrap;\x20gap:8px;\x20margin:8px\x200;\x20}\x0a.opciones\x20button\x20{\x20font:inherit;\x20padding:6px\x2012px;\x20border-radius:8px;\x20border:1px\x20solid\x20var(--borde);\x20background:var(--carta);\x20color:var(--texto);\x20cursor:pointer;\x20}\x0a.opciones\x20button.aprobar\x20{\x20border-color:var(--ok);\x20color:var(--ok);\x20}\x0a.opciones\x20button.rechazar\x20{\x20border-color:var(--mal);\x20color:var(--mal);\x20}\x0atextarea\x20{\x20width:100%;\x20min-height:56px;\x20font:inherit;\x20padding:8px;\x20border-radius:8px;\x20border:1px\x20solid\x20var(--borde);\x20background:var(--carta);\x20color:var(--texto);\x20}\x0a.etiqueta\x20{\x20display:inline-block;\x20font-size:12px;\x20padding:1px\x208px;\x20border-radius:999px;\x20border:1px\x20solid\x20var(--borde);\x20color:var(--suave);\x20margin-left:6px;\x20}\x0a.resultado\x20{\x20margin-top:6px;\x20font-size:13px;\x20}\x0atable\x20{\x20width:100%;\x20border-collapse:collapse;\x20font-size:13px;\x20}\x0ath,\x20td\x20{\x20text-align:left;\x20padding:6px\x208px;\x20border-bottom:1px\x20solid\x20var(--borde);\x20vertical-align:top;\x20}\x0ath\x20{\x20color:var(--suave);\x20font-weight:500;\x20}\x0a.vacio\x20{\x20color:var(--suave);\x20}\x0a.error\x20{\x20color:var(--mal);\x20}\x0a.cambio\x20{\x20color:var(--aviso);\x20margin:0\x200\x206px;\x20}\x0a@media\x20(max-width:\x20600px)\x20{\x20header,\x20main\x20{\x20padding-left:16px;\x20padding-right:16px;\x20}\x20table\x20{\x20font-size:12px;\x20}\x20}\x0a</style>\x0a</head>\x0a<body>\x0a<header>\x0a\x20\x20<h1\x20id=\x22titulo\x22>Arketum</h1>\x0a\x20\x20<div\x20class=\x22sub\x22\x20id=\x22sub\x22>Cargando…</div>\x0a\x20\x20<nav>\x0a\x20\x20\x20\x20<button\x20data-vista=\x22estado\x22\x20class=\x22activa\x22>Estado</button>\x0a\x20\x20\x20\x20<button\x20data-vista=\x22pendientes\x22>Pendientes</button>\x0a\x20\x20\x20\x20<button\x20data-vista=\x22historial\x22>Historial</button>\x0a\x20\x20\x20\x20<button\x20data-vista=\x22integraciones\x22>Integraciones</button>\x0a\x20\x20\x20\x20<button\x20data-vista=\x22prd\x22>PRD</button>\x0a\x20\x20</nav>\x0a</header>\x0a<main\x20id=\x22main\x22></main>\x0a<script>\x0avar\x20token\x20=\x20new\x20URLSearchParams(location.search).get(\x27t\x27)\x20||\x20\x27\x27;\x0avar\x20vista\x20=\x20\x27estado\x27;\x0a//\x20Los\x20nombres\x20de\x20las\x20opciones\x20de\x20un\x20gate,\x20los\x20mismos\x20de\x20la\x20tanda\x20y\x20el\x20chat\x20(td-f02).\x0avar\x20NOMBRES\x20=\x20'+JSON[ab(0x152)](NOMBRE_DE_OPCION)+';\x0a//\x20Las\x20dos\x20respuestas\x20de\x20la\x20telemetría,\x20las\x20mismas\x20de\x20la\x20tanda\x20(tl-f01).\x0avar\x20TELEMETRIA\x20=\x20'+JSON[ab(0x152)](OPCIONES_DE_TELEMETRIA)+ab(0x114)+JSON['stringify'](NOMBRE_DEL_FRENTE)+';\x0afunction\x20pintarEstado()\x20{\x0a\x20\x20//\x20En\x20grande,\x20el\x20avance\x20(pn-f01);\x20luego\x20las\x20cuentas.\x0a\x20\x20var\x20e\x20=\x20datos.estado,\x20h\x20=\x20cajaDeIdentidad()\x20+\x20\x27<div\x20class=\x22cifras\x20avance\x22>\x27;\x0a\x20\x20h\x20+=\x20\x27<div\x20class=\x22cifra\x22><b>\x27\x20+\x20e.progreso.construidas\x20+\x20\x27\x20/\x20\x27\x20+\x20e.progreso.funcionales\x20+\x20\x27</b><span>funcionalidades\x20construidas</span></div>\x27;\x0a\x20\x20h\x20+=\x20\x27<div\x20class=\x22cifra\x22><b>\x27\x20+\x20e.progreso.confirmadas\x20+\x20\x27</b><span>confirmadas\x20por\x20ti</span></div></div><div\x20class=\x22cifras\x22>\x27;\x0a\x20\x20Object.keys(e.porEstado).forEach(function\x20(k)\x20{\x20h\x20+=\x20\x27<div\x20class=\x22cifra\x22><b>\x27\x20+\x20e.porEstado[k]\x20+\x20\x27</b><span>\x27\x20+\x20esc(k)\x20+\x20\x27</span></div>\x27;\x20});\x0a\x20\x20Object.keys(FRENTES).forEach(function\x20(k)\x20{\x20if\x20(e.frentes\x20&&\x20e.frentes[k])\x20h\x20+=\x20\x27<div\x20class=\x22cifra\x22><b>\x27\x20+\x20e.frentes[k]\x20+\x20\x27</b><span>\x27\x20+\x20esc(FRENTES[k])\x20+\x20\x27</span></div>\x27;\x20});\x0a\x20\x20h\x20+=\x20\x27</div>\x27;\x0a\x20\x20if\x20(e.integraciones)\x20h\x20+=\x20\x27<p\x20class=\x22dato\x22>\x27\x20+\x20esc(e.integraciones)\x20+\x20\x27</p>\x27;\x0a\x20\x20h\x20+=\x20\x27<h2>Esperan\x20tu\x20decisión\x20(\x27\x20+\x20e.esperandoALaPersona.length\x20+\x20\x27)</h2>\x27;\x0a\x20\x20h\x20+=\x20e.esperandoALaPersona.length\x20?\x20e.esperandoALaPersona.map(unidad).join(\x27\x27)\x20:\x20\x27<p\x20class=\x22vacio\x22>Nada.</p>\x27;\x0a\x20\x20h\x20+=\x20\x27<h2>En\x20marcha\x20(\x27\x20+\x20e.enMarcha.length\x20+\x20\x27)</h2>\x27;\x0a\x20\x20h\x20+=\x20e.enMarcha.length\x20?\x20e.enMarcha.map(unidad).join(\x27\x27)\x20:\x20\x27<p\x20class=\x22vacio\x22>Nada.</p>\x27;\x0a\x20\x20if\x20(e.confirmacionesDeCerradas\x20&&\x20e.confirmacionesDeCerradas.length)\x20h\x20+=\x20\x27<h2>Confirmaciones\x20de\x20unidades\x20cerradas\x20(\x27\x20+\x20e.confirmacionesDeCerradas.length\x20+\x20\x27)</h2>\x27\x20+\x20e.confirmacionesDeCerradas.map(function\x20(c)\x20{\x20return\x20\x27<div\x20class=\x22carta\x22><div\x20class=\x22quien\x22>\x27\x20+\x20esc(c.unidad)\x20+\x20\x27\x20·\x20¿es\x20lo\x20que\x20querías?</div>\x27\x20+\x20(c.desde\x20?\x20\x27<div\x20class=\x22dato\x22>Desde\x20\x27\x20+\x20esc(c.desde.slice(0,\x2010))\x20+\x20\x27\x20(\x27\x20+\x20dias(c.dias)\x20+\x20\x27);\x20respóndela\x20en\x20Pendientes</div>\x27\x20:\x20\x27\x27)\x20+\x20\x27</div>\x27;\x20}).join(\x27\x27);\x0a\x20\x20//\x20La\x20pregunta\x20de\x20la\x20telemetría,\x20de\x20la\x20instalación\x20(tl-f01):\x20se\x20responde\x20en\x20Pendientes.\x0a\x20\x20if\x20(e.telemetria)\x20h\x20+=\x20\x27<h2>De\x20esta\x20instalación</h2><div\x20class=\x22carta\x22><div\x20class=\x22quien\x22>¿Aceptas\x20enviar\x20un\x20resumen\x20anónimo\x20de\x20uso?</div><div\x20class=\x22dato\x22>Sin\x20decidir\x27\x20+\x20(e.telemetria.desde\x20?\x20\x27\x20desde\x20\x27\x20+\x20esc(e.telemetria.desde.slice(0,\x2010))\x20+\x20\x27\x20(\x27\x20+\x20dias(e.telemetria.dias)\x20+\x20\x27)\x27\x20:\x20\x27\x27)\x20+\x20\x27;\x20no\x20bloquea\x20nada;\x20respóndela\x20en\x20Pendientes</div></div>\x27;\x0a\x20\x20if\x20(e.gruposDeTemas\x20&&\x20e.gruposDeTemas.length)\x20h\x20+=\x20\x27<h2>Para\x20conversar\x20(\x27\x20+\x20e.temas.length\x20+\x20\x27)</h2>\x27\x20+\x20e.gruposDeTemas.map(function\x20(g)\x20{\x20return\x20\x27<div\x20class=\x22carta\x22><div\x20class=\x22quien\x22>\x27\x20+\x20esc(g.titulo)\x20+\x20\x27</div><div\x20class=\x22dato\x22>\x27\x20+\x20esc(g.resumen)\x20+\x20\x27;\x20no\x20bloquean\x20nada;\x20respóndelos\x20en\x20Pendientes</div></div>\x27;\x20}).join(\x27\x27);\x0a\x20\x20else\x20if\x20(e.temas\x20&&\x20e.temas.length)\x20h\x20+=\x20\x27<h2>Para\x20conversar\x20(\x27\x20+\x20e.temas.length\x20+\x20\x27)</h2>\x27\x20+\x20e.temas.map(function\x20(t)\x20{\x20return\x20\x27<div\x20class=\x22carta\x22><div\x20class=\x22quien\x22>\x27\x20+\x20esc(t.titulo)\x20+\x20(t.de\x20===\x20\x27agente\x27\x20?\x20\x27<span\x20class=\x22etiqueta\x22>lo\x20propone\x20el\x20agente</span>\x27\x20:\x20t.de\x20===\x20\x27arketum\x27\x20?\x20\x27<span\x20class=\x22etiqueta\x22>lo\x20calcula\x20Arketum\x27\x20+\x20(t.deDeducido\x20?\x20\x27;\x20deducido\x27\x20:\x20\x27\x27)\x20+\x20\x27</span>\x27\x20:\x20\x27\x27)\x20+\x20\x27</div><div\x20class=\x22dato\x22>Desde\x20\x27\x20+\x20esc(t.desde.slice(0,\x2010))\x20+\x20\x27\x20(\x27\x20+\x20dias(t.dias)\x20+\x20\x27);\x20no\x20bloquea\x20nada\x27\x20+\x20(t.conRespuesta\x20?\x20\x27;\x20con\x20respuesta\x27\x20:\x20\x27\x27)\x20+\x20\x27</div></div>\x27;\x20}).join(\x27\x27);\x0a\x20\x20if\x20(e.solapes\x20&&\x20e.solapes.length)\x20h\x20+=\x20\x27<h2>Tocan\x20lo\x20mismo</h2>\x27\x20+\x20e.solapes.map(function\x20(s)\x20{\x20return\x20\x27<div\x20class=\x22carta\x22>\x27\x20+\x20esc(s.artefacto)\x20+\x20\x27:\x20\x27\x20+\x20s.unidades.map(esc).join(\x27,\x20\x27)\x20+\x20\x27\x20<span\x20class=\x22dato\x22>(se\x20avisa,\x20no\x20se\x20bloquea)</span></div>\x27;\x20}).join(\x27\x27);\x0a\x20\x20if\x20(e.conflictos.length)\x20h\x20+=\x20\x27<h2>Conflictos</h2>\x27\x20+\x20e.conflictos.map(function\x20(c)\x20{\x20return\x20\x27<div\x20class=\x22carta\x20error\x22>\x27\x20+\x20esc(c)\x20+\x20\x27</div>\x27;\x20}).join(\x27\x27);\x0a\x20\x20if\x20(e.unidadesIlegibles.length\x20||\x20e.ilegibles.length)\x20h\x20+=\x20\x27<h2>No\x20se\x20pueden\x20leer</h2>\x27\x20+\x20e.unidadesIlegibles.map(function\x20(u)\x20{\x20return\x20\x27<div\x20class=\x22carta\x20error\x22>\x27\x20+\x20esc(u.id)\x20+\x20\x27:\x20\x27\x20+\x20esc(u.motivo)\x20+\x20\x27</div>\x27;\x20}).join(\x27\x27)\x20+\x20e.ilegibles.map(function\x20(x)\x20{\x20return\x20\x27<div\x20class=\x22carta\x20error\x22>\x27\x20+\x20esc(x.file)\x20+\x20\x27:\x20\x27\x20+\x20esc(x.problem)\x20+\x20\x27</div>\x27;\x20}).join(\x27\x27);\x0a\x20\x20return\x20h;\x0a}\x0afunction\x20pintarPendientes()\x20{\x0a\x20\x20var\x20h\x20=\x20cajaDeIdentidad();\x0a\x20\x20if\x20(!datos.pendientes.length)\x20h\x20+=\x20\x27<p\x20class=\x22vacio\x22>No\x20hay\x20nada\x20pendiente\x20de\x20ti.</p>\x27;\x0a\x20\x20datos.pendientes.forEach(function\x20(p,\x20i)\x20{\x0a\x20\x20\x20\x20//\x20La\x20clave,\x20estable\x20entre\x20refrescos;\x20y\x20lo\x20pendiente\x20tal\x20como\x20se\x20pintó,\x20para\x20enviar\x20lo\x20que\x20la\x20persona\x20vio.\x0a\x20\x20\x20\x20var\x20k\x20=\x20p.tipo\x20===\x20\x27bloqueo\x27\x20?\x20\x27bloqueo:\x27\x20+\x20p.unidad\x20:\x20p.tipo\x20===\x20\x27gate_en_el_chat\x27\x20?\x20\x27chat:\x27\x20+\x20p.unidad\x20+\x20\x27:\x27\x20+\x20p.gate\x20:\x20p.tipo\x20===\x20\x27pregunta\x27\x20?\x20\x27pregunta:\x27\x20+\x20p.unidad\x20:\x20p.tipo\x20===\x20\x27gate\x27\x20?\x20\x27gate:\x27\x20+\x20p.unidad\x20+\x20\x27:\x27\x20+\x20p.gate\x20:\x20p.tipo\x20===\x20\x27confirmacion\x27\x20?\x20\x27confirmacion:\x27\x20+\x20p.unidad\x20:\x20p.tipo\x20===\x20\x27delegacion\x27\x20?\x20\x27delegacion:\x27\x20+\x20p.unidad\x20:\x20p.tipo\x20===\x20\x27telemetria\x27\x20?\x20\x27telemetria\x27\x20:\x20\x27declaracion:\x27\x20+\x20p.unidad\x20+\x20\x27:\x27\x20+\x20p.requisito;\x0a\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22carta\x22\x20data-k=\x22\x27\x20+\x20esc(k)\x20+\x20\x27\x22\x20data-p=\x22\x27\x20+\x20esc(JSON.stringify(p))\x20+\x20\x27\x22>\x27;\x0a\x20\x20\x20\x20if\x20(p.tipo\x20===\x20\x27bloqueo\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20//\x20Una\x20bloqueada\x20espera\x20a\x20la\x20persona,\x20pero\x20no\x20se\x20responde\x20aquí:\x20sin\x20comentario\x20ni\x20botones,\x20se\x20desbloquea\x20con\x20el\x20agente\x20(rp-f01).\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22quien\x22>\x27\x20+\x20esc(p.unidad)\x20+\x20\x27\x20·\x20bloqueada</div>\x27;\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22dato\x22>Esperando\x20desde\x20\x27\x20+\x20esc(p.desde.slice(0,\x2010))\x20+\x20\x27</div><pre>\x27\x20+\x20esc(p.motivo)\x20+\x20\x27</pre>\x27;\x0a\x20\x20\x20\x20\x20\x20if\x20(p.enmienda)\x20h\x20+=\x20\x27<div\x20class=\x22dato\x22>La\x20bloquea\x20la\x20definición\x20nueva\x20de\x20\x27\x20+\x20esc(p.enmienda)\x20+\x20\x27,\x20que\x20la\x20enmienda.</div>\x27;\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22dato\x22>Se\x20desbloquea\x20con\x20el\x20agente:\x20cuéntale\x20cómo\x20se\x20resuelve\x20(<code>action:\x20desbloquear</code>).</div></div>\x27;\x0a\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20if\x20(p.tipo\x20===\x20\x27pregunta\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20//\x20Una\x20pregunta\x20suelta\x20sin\x20respuesta:\x20se\x20nombra,\x20sin\x20controles;\x20se\x20responde\x20en\x20el\x20chat\x20(ec-f04).\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22quien\x22>\x27\x20+\x20esc(p.unidad)\x20+\x20\x27\x20·\x20pregunta\x20sin\x20respuesta</div>\x27;\x0a\x20\x20\x20\x20\x20\x20if\x20(p.desde)\x20h\x20+=\x20\x27<div\x20class=\x22dato\x22>Esperando\x20desde\x20\x27\x20+\x20esc(p.desde.slice(0,\x2010))\x20+\x20\x27</div>\x27;\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<pre>\x27\x20+\x20esc(p.pregunta)\x20+\x20\x27</pre><div\x20class=\x22dato\x22>Se\x20responde\x20en\x20el\x20chat\x20con\x20el\x20agente.</div></div>\x27;\x0a\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20if\x20(p.tipo\x20===\x20\x27gate_en_el_chat\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20//\x20El\x20gate\x20de\x20un\x20requisito\x20o\x20de\x20una\x20contradicción:\x20se\x20nombra,\x20sin\x20controles;\x20se\x20decide\x20en\x20el\x20chat\x20(ec-f07,\x20rp-f01).\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22quien\x22>\x27\x20+\x20esc(p.unidad)\x20+\x20\x27\x20·\x20\x27\x20+\x20esc(p.gate)\x20+\x20\x27</div>\x27;\x0a\x20\x20\x20\x20\x20\x20if\x20(p.desde)\x20h\x20+=\x20\x27<div\x20class=\x22dato\x22>Esperando\x20desde\x20\x27\x20+\x20esc(p.desde.slice(0,\x2010))\x20+\x20\x27</div>\x27;\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22dato\x22>Lleva\x20opciones\x20propias:\x20se\x20decide\x20en\x20el\x20chat\x20con\x20el\x20agente\x20(o\x20en\x20el\x20formulario\x20de\x20tu\x20cliente).</div></div>\x27;\x0a\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20if\x20(p.tipo\x20===\x20\x27gate\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22quien\x22>\x27\x20+\x20esc(p.unidad)\x20+\x20\x27\x20·\x20\x27\x20+\x20esc(p.gate)\x20+\x20\x27<span\x20class=\x22etiqueta\x22>\x27\x20+\x20esc(p.clase\x20===\x20\x27tecnica\x27\x20?\x20\x27técnica\x27\x20:\x20p.clase)\x20+\x20\x27</span></div>\x27;\x0a\x20\x20\x20\x20\x20\x20if\x20(p.desde)\x20h\x20+=\x20\x27<div\x20class=\x22dato\x22>Esperando\x20desde\x20\x27\x20+\x20esc(p.desde.slice(0,\x2010))\x20+\x20\x27</div>\x27;\x0a\x20\x20\x20\x20\x20\x20if\x20(p.explicacion)\x20h\x20+=\x20\x27<div\x20class=\x22dato\x22>Pediste\x20una\x20explicación\x20el\x20\x27\x20+\x20esc(p.explicacion.momento.slice(0,\x2010))\x20+\x20\x27:\x20te\x20la\x20da\x20el\x20agente.</div>\x27;\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<pre>\x27\x20+\x20esc(p.resumen)\x20+\x20\x27</pre><textarea\x20placeholder=\x22Comentario\x20(obligatorio\x20para\x20ajustar\x20o\x20rechazar)\x22></textarea><div\x20class=\x22opciones\x22>\x27;\x0a\x20\x20\x20\x20\x20\x20p.opciones.concat([\x27no_entiendo\x27]).forEach(function\x20(o)\x20{\x20h\x20+=\x20\x27<button\x20class=\x22\x27\x20+\x20o\x20+\x20\x27\x22\x20data-eleccion=\x22\x27\x20+\x20o\x20+\x20\x27\x22>\x27\x20+\x20esc((NOMBRES[o]\x20||\x20o)\x20+\x20(o\x20===\x20\x27rechazar\x27\x20&&\x20p.alRechazar\x20?\x20\x27\x20(\x27\x20+\x20p.alRechazar\x20+\x20\x27)\x27\x20:\x20\x27\x27))\x20+\x20\x27</button>\x27;\x20});\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27</div>\x27;\x0a\x20\x20\x20\x20}\x20else\x20if\x20(p.tipo\x20===\x20\x27confirmacion\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22quien\x22>\x27\x20+\x20esc(p.unidad)\x20+\x20\x27\x20·\x20¿es\x20lo\x20que\x20querías?</div>\x27;\x0a\x20\x20\x20\x20\x20\x20if\x20(p.desde)\x20h\x20+=\x20\x27<div\x20class=\x22dato\x22>Esperando\x20desde\x20\x27\x20+\x20esc(p.desde.slice(0,\x2010))\x20+\x20\x27</div>\x27;\x0a\x20\x20\x20\x20\x20\x20p.funcionales.forEach(function\x20(f)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div>\x27\x20+\x20esc(f.titulo)\x20+\x20\x27\x20<span\x20class=\x22dato\x22>\x27\x20+\x20esc(f.id)\x20+\x20\x27</span><div\x20class=\x22opciones\x22>\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20[\x27si\x27,\x20\x27no\x27,\x20\x27despues\x27].forEach(function\x20(v)\x20{\x20h\x20+=\x20\x27<label><input\x20type=\x22radio\x22\x20name=\x22c\x27\x20+\x20i\x20+\x20\x27-\x27\x20+\x20esc(f.id)\x20+\x20\x27\x22\x20value=\x22\x27\x20+\x20v\x20+\x20\x27\x22\x20data-f=\x22\x27\x20+\x20esc(f.id)\x20+\x20\x27\x22>\x20\x27\x20+\x20(v\x20===\x20\x27si\x27\x20?\x20\x27sí\x27\x20:\x20v\x20===\x20\x27despues\x27\x20?\x20\x27después\x27\x20:\x20\x27no\x27)\x20+\x20\x27</label>\x27;\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27</div></div>\x27;\x0a\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<textarea\x20placeholder=\x22Si\x20alguno\x20es\x20«no»:\x20qué\x20falla\x22></textarea><div\x20class=\x22opciones\x22><button\x20data-confirmar=\x221\x22>Enviar</button></div>\x27;\x0a\x20\x20\x20\x20}\x20else\x20if\x20(p.tipo\x20===\x20\x27telemetria\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20//\x20De\x20la\x20instalación,\x20no\x20de\x20este\x20proyecto\x20(tl-f01):\x20lo\x20que\x20elige\x20es\x20su\x20cita,\x20con\x20su\x20comentario\x20si\x20lo\x20escribe.\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22quien\x22>¿Aceptas\x20enviar\x20un\x20resumen\x20anónimo\x20de\x20uso?<span\x20class=\x22etiqueta\x22>de\x20esta\x20instalación</span></div>\x27\x20+\x20(p.desde\x20?\x20\x27<div\x20class=\x22dato\x22>Esperando\x20desde\x20\x27\x20+\x20esc(p.desde.slice(0,\x2010))\x20+\x20\x27</div>\x27\x20:\x20\x27\x27);\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<pre>\x27\x20+\x20esc(p.pregunta)\x20+\x20\x27</pre><textarea\x20placeholder=\x22Comentario\x20(opcional)\x22></textarea>\x27;\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22opciones\x22><button\x20class=\x22aprobar\x22\x20data-telemetria=\x22si\x22>\x27\x20+\x20esc(TELEMETRIA.si)\x20+\x20\x27</button><button\x20class=\x22rechazar\x22\x20data-telemetria=\x22no\x22>\x27\x20+\x20esc(TELEMETRIA.no)\x20+\x20\x27</button></div>\x27;\x0a\x20\x20\x20\x20}\x20else\x20if\x20(p.tipo\x20===\x20\x27delegacion\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22quien\x22>Lo\x20aprobado\x20por\x20tu\x20delegación<span\x20class=\x22etiqueta\x22>proceso</span></div><div\x20class=\x22dato\x22>Sin\x20tope,\x20hasta\x20que\x20la\x20revoques;\x20llega\x20cada\x20\x27\x20+\x20esc(String(p.cada))\x20+\x20\x27\x20unidades.\x20Si\x20no\x20respondes,\x20sigue.</div>\x27;\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<pre>\x27\x20+\x20p.aprobados.map(function\x20(a)\x20{\x20return\x20esc(a.unidad)\x20+\x20\x27\x20·\x20gate\x20«\x27\x20+\x20esc(a.gate)\x20+\x20\x27»\x20·\x20\x27\x20+\x20esc(a.momento.slice(0,\x2016).replace(\x27T\x27,\x20\x27\x20\x27));\x20}).join(\x27\x5cn\x27)\x20+\x20\x27</pre><textarea\x20placeholder=\x22Comentario\x22></textarea>\x27;\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22opciones\x22><button\x20class=\x22aprobar\x22\x20data-delegacion=\x22sigue\x22>sigue</button><button\x20class=\x22rechazar\x22\x20data-delegacion=\x22revocar\x22>revocar</button></div>\x27;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22quien\x22>\x27\x20+\x20esc(p.unidad)\x20+\x20\x27\x20·\x20confirmar\x20una\x20declaración\x20de\x20«\x27\x20+\x20esc(p.requisito)\x20+\x20\x27»</div>\x27\x20+\x20(p.desde\x20?\x20\x27<div\x20class=\x22dato\x22>Esperando\x20desde\x20\x27\x20+\x20esc(p.desde.slice(0,\x2010))\x20+\x20\x27</div>\x27\x20:\x20\x27\x27)\x20+\x20\x27<pre>\x27\x20+\x20esc(p.quien)\x20+\x20\x27:\x20«\x27\x20+\x20esc(p.contenido)\x20+\x20\x27»</pre><textarea\x20placeholder=\x22Comentario\x22></textarea>\x27;\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22opciones\x22><button\x20class=\x22aprobar\x22\x20data-confirma=\x221\x22>confirmo</button><button\x20class=\x22rechazar\x22\x20data-confirma=\x220\x22>no\x20confirmo</button></div>\x27;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22resultado\x22></div></div>\x27;\x0a\x20\x20});\x0a\x20\x20if\x20(datos.temas\x20&&\x20datos.temas.length)\x20{\x0a\x20\x20\x20\x20h\x20+=\x20\x27<h2>Para\x20conversar\x20(\x27\x20+\x20datos.temas.length\x20+\x20\x27)</h2><p\x20class=\x22dato\x22>No\x20bloquean\x20nada.\x20Se\x20cierran\x20cuando\x20se\x20convierten\x20en\x20una\x20unidad\x20de\x20trabajo\x20(con\x20el\x20agente)\x20o\x20cuando\x20descartas\x20la\x20idea.</p>\x27;\x0a\x20\x20\x20\x20//\x20Agrupados\x20igual\x20que\x20en\x20la\x20tanda\x20(funcionalidad-temas-agrupados):\x20por\x20origen\x20y,\x20dentro,\x20por\x20intención\x20y\x20prioridad.\x0a\x20\x20\x20\x20var\x20porId\x20=\x20{};\x0a\x20\x20\x20\x20datos.temas.forEach(function\x20(t)\x20{\x20porId[t.id]\x20=\x20t;\x20});\x0a\x20\x20\x20\x20var\x20carta\x20=\x20function\x20(t,\x20intencion)\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20h\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<div\x20class=\x22carta\x22\x20data-k=\x22tema:\x27\x20+\x20esc(t.id)\x20+\x20\x27\x22\x20data-tema=\x22\x27\x20+\x20esc(t.id)\x20+\x20\x27\x22><div\x20class=\x22quien\x22>\x27\x20+\x20esc(t.titulo)\x20+\x20(t.de\x20===\x20\x27agente\x27\x20?\x20\x27<span\x20class=\x22etiqueta\x22>lo\x20propone\x20el\x20agente</span>\x27\x20:\x20t.de\x20===\x20\x27arketum\x27\x20?\x20\x27<span\x20class=\x22etiqueta\x22>lo\x20calcula\x20Arketum\x27\x20+\x20(t.deDeducido\x20?\x20\x27;\x20deducido\x27\x20:\x20\x27\x27)\x20+\x20\x27</span>\x27\x20:\x20\x27\x27)\x20+\x20\x27</div><div\x20class=\x22dato\x22>Desde\x20\x27\x20+\x20esc(t.desde.slice(0,\x2010))\x20+\x20\x27</div>\x27;\x0a\x20\x20\x20\x20\x20\x20(intencion\x20||\x20[]).forEach(function\x20(x)\x20{\x20h\x20+=\x20\x27<div\x20class=\x22dato\x22>\x27\x20+\x20esc(x)\x20+\x20\x27</div>\x27;\x20});\x0a\x20\x20\x20\x20\x20\x20if\x20(t.palabras)\x20h\x20+=\x20\x27<pre>\x27\x20+\x20esc(t.palabras)\x20+\x20\x27</pre>\x27;\x0a\x20\x20\x20\x20\x20\x20if\x20(t.contexto)\x20h\x20+=\x20\x27<div>\x27\x20+\x20esc(t.contexto)\x20+\x20\x27</div>\x27;\x0a\x20\x20\x20\x20\x20\x20if\x20(t.preguntas\x20&&\x20t.preguntas.length)\x20h\x20+=\x20\x27<ul>\x27\x20+\x20t.preguntas.map(function\x20(q)\x20{\x20return\x20\x27<li>\x27\x20+\x20esc(q)\x20+\x20\x27</li>\x27;\x20}).join(\x27\x27)\x20+\x20\x27</ul>\x27;\x0a\x20\x20\x20\x20\x20\x20if\x20(t.propuesta)\x20h\x20+=\x20\x27<div\x20class=\x22dato\x22>Propuesta:\x20una\x20unidad\x20del\x20carril\x20«\x27\x20+\x20esc(t.propuesta.carril)\x20+\x20\x27»\x20—\x20\x27\x20+\x20esc(t.propuesta.objetivo)\x20+\x20\x27</div>\x27\x20+\x20(t.propuesta.opciones\x20&&\x20t.propuesta.opciones.length\x20?\x20\x27<ol>\x27\x20+\x20t.propuesta.opciones.map(function\x20(o)\x20{\x20return\x20\x27<li>\x27\x20+\x20esc(o.camino)\x20+\x20(o.carril\x20?\x20\x27\x20→\x20«\x27\x20+\x20esc(o.carril)\x20+\x20\x27»\x27\x20:\x20\x27\x27)\x20+\x20\x27</li>\x27;\x20}).join(\x27\x27)\x20+\x20\x27</ol><div\x20class=\x22dato\x22>Elige\x20el\x20camino\x20con\x20el\x20agente:\x20abre\x20la\x20unidad\x20desde\x20este\x20tema.</div>\x27\x20:\x20\x27\x27);\x0a\x20\x20\x20\x20\x20\x20(t.respuestas\x20||\x20[]).forEach(function\x20(r)\x20{\x20h\x20+=\x20\x27<div\x20class=\x22dato\x22>Respondiste\x20(\x27\x20+\x20esc(r.momento.slice(0,\x2010))\x20+\x20(r.canal\x20===\x20\x27tanda\x27\x20?\x20\x27\x27\x20:\x20\x27,\x20por\x20el\x20\x27\x20+\x20esc(r.canal))\x20+\x20\x27):</div><pre>\x27\x20+\x20esc(r.palabras)\x20+\x20\x27</pre>\x27;\x20});\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<textarea\x20class=\x22respuesta\x22\x20placeholder=\x22Tu\x20respuesta\x20(no\x20cierra\x20el\x20tema)\x22></textarea><div\x20class=\x22opciones\x22><button\x20class=\x22aprobar\x22\x20data-responder=\x221\x22>responder</button></div>\x27;\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<textarea\x20class=\x22motivo\x22\x20placeholder=\x22Por\x20qué\x20lo\x20descartas\x20(obligatorio\x20para\x20descartar)\x22></textarea><div\x20class=\x22opciones\x22><button\x20class=\x22rechazar\x22\x20data-descartar=\x221\x22>descartar\x20la\x20idea</button></div><div\x20class=\x22resultado\x22></div></div>\x27;\x0a\x20\x20\x20\x20\x20\x20return\x20h;\x0a\x20\x20\x20\x20};\x0a\x20\x20\x20\x20(datos.grupos\x20||\x20[{\x20titulo:\x20\x27Temas\x27,\x20resumen:\x20\x27\x27,\x20temas:\x20datos.temas.map(function\x20(t)\x20{\x20return\x20{\x20id:\x20t.id,\x20intencion:\x20[]\x20};\x20})\x20}]).forEach(function\x20(g,\x20i)\x20{\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27<details\x20data-lista\x20data-k=\x22grupo:\x27\x20+\x20esc(g.id\x20||\x20g.titulo)\x20+\x20\x27\x22\x27\x20+\x20(i\x20===\x200\x20?\x20\x27\x20open\x27\x20:\x20\x27\x27)\x20+\x20\x27><summary><b>\x27\x20+\x20esc(g.titulo)\x20+\x20\x27</b>\x20·\x20\x27\x20+\x20esc(g.resumen)\x20+\x20\x27</summary>\x27;\x0a\x20\x20\x20\x20\x20\x20g.temas.forEach(function\x20(x)\x20{\x20if\x20(porId[x.id])\x20h\x20+=\x20carta(porId[x.id],\x20x.intencion);\x20});\x0a\x20\x20\x20\x20\x20\x20h\x20+=\x20\x27</details>\x27;\x0a\x20\x20\x20\x20});\x0a\x20\x20}\x0a\x20\x20if\x20(datos.fuera.length)\x20h\x20+=\x20\x27<h2>Se\x20deciden\x20en\x20el\x20chat</h2>\x27\x20+\x20datos.fuera.map(function\x20(f)\x20{\x20return\x20\x27<div\x20class=\x22carta\x20dato\x22>\x27\x20+\x20esc(f)\x20+\x20\x27</div>\x27;\x20}).join(\x27\x27);\x0a\x20\x20if\x20(datos.hechos.length)\x20h\x20+=\x20\x27<h2>Decidido\x20por\x20delegación</h2>\x27\x20+\x20datos.hechos.map(function\x20(f)\x20{\x20return\x20\x27<div\x20class=\x22carta\x20dato\x22>\x27\x20+\x20esc(f)\x20+\x20\x27</div>\x27;\x20}).join(\x27\x27);\x0a\x20\x20return\x20h;\x0a}\x0afunction\x20pintarHistorial()\x20{\x0a\x20\x20if\x20(!datos.historial.length)\x20return\x20\x27<p\x20class=\x22vacio\x22>Todavía\x20no\x20hay\x20decisiones.</p>\x27;\x0a\x20\x20var\x20h\x20=\x20\x27<table><thead><tr><th>Cuándo</th><th>Unidad</th><th>Tema</th><th>Resultado</th><th>Canal</th></tr></thead><tbody>\x27;\x0a\x20\x20datos.historial.forEach(function\x20(d)\x20{\x20h\x20+=\x20\x27<tr><td>\x27\x20+\x20esc(d.at\x20?\x20d.at.slice(0,\x2016).replace(\x27T\x27,\x20\x27\x20\x27)\x20:\x20\x27—\x27)\x20+\x20\x27</td><td>\x27\x20+\x20esc(d.unidad)\x20+\x20\x27</td><td>\x27\x20+\x20esc(d.tema)\x20+\x20\x27</td><td>\x27\x20+\x20esc(d.resultado)\x20+\x20(d.nota\x20?\x20\x27<div\x20class=\x22dato\x22>\x27\x20+\x20esc(d.nota)\x20+\x20\x27</div>\x27\x20:\x20\x27\x27)\x20+\x20\x27</td><td>\x27\x20+\x20esc(d.canal)\x20+\x20(d.motivo\x20?\x20\x27\x20<span\x20class=\x22dato\x22>(\x27\x20+\x20esc(d.motivo)\x20+\x20\x27)</span>\x27\x20:\x20\x27\x27)\x20+\x20(d.quien\x20?\x20\x27<div\x20class=\x22dato\x22>\x27\x20+\x20esc(d.quien)\x20+\x20\x27</div>\x27\x20:\x20\x27\x27)\x20+\x20\x27</td></tr>\x27;\x20});\x0a\x20\x20return\x20h\x20+\x20\x27</tbody></table>\x27;\x0a}\x0afunction\x20pintarIntegraciones()\x20{\x0a\x20\x20var\x20m\x20=\x20datos.integraciones;\x0a\x20\x20if\x20(!m\x20||\x20!m.cuentas.boundaries)\x20return\x20\x27<p\x20class=\x22vacio\x22>Todavía\x20no\x20hay\x20boundaries\x20declarados:\x20se\x20declaran\x20al\x20cerrar\x20cada\x20unidad.</p>\x27;\x0a\x20\x20var\x20h\x20=\x20\x27\x27;\x0a\x20\x20m.lineas.forEach(function\x20(l)\x20{\x0a\x20\x20\x20\x20if\x20(l\x20===\x20\x27\x27)\x20return;\x0a\x20\x20\x20\x20if\x20(/^\x20/.test(l)\x20||\x20!/:$/.test(l)\x20&&\x20!/^MAPA/.test(l))\x20h\x20+=\x20\x27<div\x20class=\x22dato\x22>\x27\x20+\x20esc(l.trim())\x20+\x20\x27</div>\x27;\x0a\x20\x20\x20\x20else\x20h\x20+=\x20\x27<h2>\x27\x20+\x20esc(l)\x20+\x20\x27</h2>\x27;\x0a\x20\x20});\x0a\x20\x20return\x20h;\x0a}\x0afunction\x20pintarPrd()\x20{\x0a\x20\x20var\x20p\x20=\x20datos.prd;\x0a\x20\x20if\x20(!p\x20||\x20!p.lineas.length)\x20return\x20\x27<p\x20class=\x22vacio\x22>Todavía\x20no\x20hay\x20requisitos\x20vigentes:\x20los\x20trae\x20el\x20PRD\x20de\x20una\x20unidad.</p>\x27;\x0a\x20\x20var\x20h\x20=\x20\x27<p\x20class=\x22dato\x22>\x27\x20+\x20esc(p.cabecera)\x20+\x20\x27</p>\x27;\x0a\x20\x20p.lineas.forEach(function\x20(l)\x20{\x0a\x20\x20\x20\x20if\x20(/^«/.test(l))\x20h\x20+=\x20\x27<h2>\x27\x20+\x20esc(l)\x20+\x20\x27</h2>\x27;\x0a\x20\x20\x20\x20else\x20h\x20+=\x20\x27<div\x20class=\x22dato\x22>\x27\x20+\x20esc(l.trim())\x20+\x20\x27</div>\x27;\x0a\x20\x20});\x0a\x20\x20return\x20h;\x0a}\x0afunction\x20pintar()\x20{\x0a\x20\x20if\x20(!datos)\x20return;\x0a\x20\x20document.getElementById(\x27titulo\x27).textContent\x20=\x20\x27Arketum\x20·\x20\x27\x20+\x20datos.estado.nombre;\x0a\x20\x20document.getElementById(\x27sub\x27).textContent\x20=\x20datos.estado.lineaDeProgreso\x20+\x20\x27\x20·\x20se\x20actualiza\x20solo\x27;\x0a\x20\x20var\x20m\x20=\x20document.getElementById(\x27main\x27);\x0a\x20\x20var\x20html\x20=\x20vista\x20===\x20\x27estado\x27\x20?\x20pintarEstado()\x20:\x20vista\x20===\x20\x27pendientes\x27\x20?\x20pintarPendientes()\x20:\x20vista\x20===\x20\x27integraciones\x27\x20?\x20pintarIntegraciones()\x20:\x20vista\x20===\x20\x27prd\x27\x20?\x20pintarPrd()\x20:\x20pintarHistorial();\x0a\x20\x20//\x20Otra\x20vista:\x20se\x20pinta\x20de\x20nuevo\x20y\x20vuelven\x20sus\x20borradores.\x20La\x20misma:\x20solo\x20lo\x20que\x20cambió.\x0a\x20\x20if\x20(m.getAttribute(\x27data-vista\x27)\x20!==\x20vista)\x20{\x0a\x20\x20\x20\x20m.innerHTML\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20m.setAttribute(\x27data-vista\x27,\x20vista);\x0a\x20\x20\x20\x20conciliar(m,\x20html);\x0a\x20\x20\x20\x20devolverBorradores(m,\x20borradores[vista]);\x0a\x20\x20}\x20else\x20conciliar(m,\x20html);\x0a}\x0avar\x20cargando\x20=\x20false;\x0afunction\x20cargar()\x20{\x0a\x20\x20if\x20(cargando\x20||\x20document.hidden)\x20return;\x0a\x20\x20cargando\x20=\x20true;\x0a\x20\x20fetch(\x27/api/estado\x27,\x20{\x20headers:\x20{\x20\x27x-arketum-token\x27:\x20token\x20}\x20}).then(function\x20(r)\x20{\x20return\x20r.json();\x20}).then(function\x20(d)\x20{\x0a\x20\x20\x20\x20cargando\x20=\x20false;\x0a\x20\x20\x20\x20if\x20(d.error)\x20{\x20document.getElementById(\x27sub\x27).textContent\x20=\x20d.error;\x20return;\x20}\x0a\x20\x20\x20\x20var\x20firma\x20=\x20JSON.stringify(d);\x0a\x20\x20\x20\x20//\x20Con\x20un\x20bloque\x20marcado,\x20se\x20vuelve\x20a\x20conciliar\x20aunque\x20no\x20haya\x20nada\x20nuevo:\x20quizá\x20la\x20persona\x20ya\x20vació\x20lo\x20suyo.\x0a\x20\x20\x20\x20if\x20(firma\x20!==\x20ultimo)\x20{\x20ultimo\x20=\x20firma;\x20datos\x20=\x20d;\x20pintar();\x20}\x0a\x20\x20\x20\x20else\x20if\x20(document.querySelector(\x27#main\x20[data-viejo]\x27))\x20pintar();\x0a\x20\x20}).catch(function\x20()\x20{\x20cargando\x20=\x20false;\x20document.getElementById(\x27sub\x27).textContent\x20=\x20\x27Sin\x20conexión\x20con\x20el\x20panel.\x27;\x20});\x0a}\x0afunction\x20enviar(caja,\x20cuerpo)\x20{\x0a\x20\x20var\x20res\x20=\x20caja.querySelector(\x27.resultado\x27);\x0a\x20\x20res.textContent\x20=\x20\x27Registrando…\x27;\x0a\x20\x20fetch(\x27/api/decidir\x27,\x20{\x20method:\x20\x27POST\x27,\x20headers:\x20{\x20\x27content-type\x27:\x20\x27application/json\x27,\x20\x27x-arketum-token\x27:\x20token\x20},\x20body:\x20JSON.stringify(cuerpo)\x20})\x0a\x20\x20\x20\x20.then(function\x20(r)\x20{\x20return\x20r.json();\x20})\x0a\x20\x20\x20\x20.then(function\x20(d)\x20{\x0a\x20\x20\x20\x20\x20\x20res.textContent\x20=\x20d.error\x20||\x20d.linea;\x0a\x20\x20\x20\x20\x20\x20if\x20(/DECISIÓN\x20REGISTRADA|registrada|no\x20lo\x20entendió|APROBADO/.test(d.linea\x20||\x20\x27\x27))\x20{\x20caja.querySelectorAll(\x27textarea\x27).forEach(function\x20(t)\x20{\x20t.value\x20=\x20\x27\x27;\x20});\x20caja.querySelectorAll(\x27input\x27).forEach(function\x20(x)\x20{\x20x.checked\x20=\x20false;\x20});\x20}\x0a\x20\x20\x20\x20\x20\x20setTimeout(function\x20()\x20{\x20ultimo\x20=\x20\x27\x27;\x20cargar();\x20},\x20800);\x0a\x20\x20\x20\x20})\x0a\x20\x20\x20\x20.catch(function\x20()\x20{\x20res.textContent\x20=\x20\x27No\x20se\x20pudo\x20registrar:\x20sin\x20conexión\x20con\x20el\x20panel.\x27;\x20});\x0a}\x0adocument.querySelector(\x27nav\x27).addEventListener(\x27click\x27,\x20function\x20(ev)\x20{\x0a\x20\x20var\x20b\x20=\x20ev.target.closest(\x27button\x27);\x20if\x20(!b)\x20return;\x0a\x20\x20borradores[vista]\x20=\x20guardarBorradores(document.getElementById(\x27main\x27));\x0a\x20\x20vista\x20=\x20b.dataset.vista;\x0a\x20\x20document.querySelectorAll(\x27nav\x20button\x27).forEach(function\x20(x)\x20{\x20x.classList.toggle(\x27activa\x27,\x20x\x20===\x20b);\x20});\x0a\x20\x20pintar();\x0a});\x0adocument.addEventListener(\x27visibilitychange\x27,\x20function\x20()\x20{\x20if\x20(!document.hidden)\x20cargar();\x20});\x0adocument.getElementById(\x27main\x27).addEventListener(\x27click\x27,\x20function\x20(ev)\x20{\x0a\x20\x20var\x20b\x20=\x20ev.target.closest(\x27button\x27);\x20if\x20(!b)\x20return;\x0a\x20\x20if\x20(b.id\x20===\x20\x27guardarSoy\x27)\x20{\x0a\x20\x20\x20\x20fetch(\x27/api/identidad\x27,\x20{\x20method:\x20\x27POST\x27,\x20headers:\x20{\x20\x27content-type\x27:\x20\x27application/json\x27,\x20\x27x-arketum-token\x27:\x20token\x20},\x20body:\x20JSON.stringify({\x20soy:\x20document.getElementById(\x27soy\x27).value\x20})\x20})\x0a\x20\x20\x20\x20\x20\x20.then(function\x20()\x20{\x20ultimo\x20=\x20\x27\x27;\x20cargar();\x20});\x0a\x20\x20\x20\x20return;\x0a\x20\x20}\x0a\x20\x20var\x20caja\x20=\x20b.closest(\x27.carta\x27);\x0a\x20\x20if\x20(b.dataset.responder)\x20{\x0a\x20\x20\x20\x20var\x20palabras\x20=\x20(caja.querySelector(\x27textarea.respuesta\x27)\x20||\x20{}).value\x20||\x20\x27\x27;\x0a\x20\x20\x20\x20var\x20resp\x20=\x20caja.querySelector(\x27.resultado\x27);\x0a\x20\x20\x20\x20if\x20(!palabras.trim())\x20{\x20resp.textContent\x20=\x20\x27Escribe\x20tu\x20respuesta.\x27;\x20return;\x20}\x0a\x20\x20\x20\x20resp.textContent\x20=\x20\x27Registrando…\x27;\x0a\x20\x20\x20\x20fetch(\x27/api/tema\x27,\x20{\x20method:\x20\x27POST\x27,\x20headers:\x20{\x20\x27content-type\x27:\x20\x27application/json\x27,\x20\x27x-arketum-token\x27:\x20token\x20},\x20body:\x20JSON.stringify({\x20id:\x20caja.dataset.tema,\x20respuesta:\x20palabras\x20})\x20})\x0a\x20\x20\x20\x20\x20\x20.then(function\x20(r)\x20{\x20return\x20r.json();\x20})\x0a\x20\x20\x20\x20\x20\x20.then(function\x20(d)\x20{\x20resp.textContent\x20=\x20d.error\x20||\x20d.linea;\x20if\x20(!d.error)\x20caja.querySelector(\x27textarea.respuesta\x27).value\x20=\x20\x27\x27;\x20setTimeout(function\x20()\x20{\x20ultimo\x20=\x20\x27\x27;\x20cargar();\x20},\x20800);\x20})\x0a\x20\x20\x20\x20\x20\x20.catch(function\x20()\x20{\x20resp.textContent\x20=\x20\x27No\x20se\x20pudo\x20registrar:\x20sin\x20conexión\x20con\x20el\x20panel.\x27;\x20});\x0a\x20\x20\x20\x20return;\x0a\x20\x20}\x0a\x20\x20if\x20(b.dataset.descartar)\x20{\x0a\x20\x20\x20\x20var\x20motivo\x20=\x20(caja.querySelector(\x27textarea.motivo\x27)\x20||\x20{}).value\x20||\x20\x27\x27;\x0a\x20\x20\x20\x20var\x20res\x20=\x20caja.querySelector(\x27.resultado\x27);\x0a\x20\x20\x20\x20if\x20(!motivo.trim())\x20{\x20res.textContent\x20=\x20\x27Escribe\x20por\x20qué\x20lo\x20descartas.\x27;\x20return;\x20}\x0a\x20\x20\x20\x20res.textContent\x20=\x20\x27Registrando…\x27;\x0a\x20\x20\x20\x20fetch(\x27/api/tema\x27,\x20{\x20method:\x20\x27POST\x27,\x20headers:\x20{\x20\x27content-type\x27:\x20\x27application/json\x27,\x20\x27x-arketum-token\x27:\x20token\x20},\x20body:\x20JSON.stringify({\x20id:\x20caja.dataset.tema,\x20motivo:\x20motivo\x20})\x20})\x0a\x20\x20\x20\x20\x20\x20.then(function\x20(r)\x20{\x20return\x20r.json();\x20})\x0a\x20\x20\x20\x20\x20\x20.then(function\x20(d)\x20{\x20res.textContent\x20=\x20d.error\x20||\x20d.linea;\x20if\x20(!d.error)\x20caja.querySelector(\x27textarea.motivo\x27).value\x20=\x20\x27\x27;\x20setTimeout(function\x20()\x20{\x20ultimo\x20=\x20\x27\x27;\x20cargar();\x20},\x20800);\x20})\x0a\x20\x20\x20\x20\x20\x20.catch(function\x20()\x20{\x20res.textContent\x20=\x20\x27No\x20se\x20pudo\x20registrar:\x20sin\x20conexión\x20con\x20el\x20panel.\x27;\x20});\x0a\x20\x20\x20\x20return;\x0a\x20\x20}\x0a\x20\x20var\x20p\x20=\x20JSON.parse(caja.dataset.p);\x0a\x20\x20var\x20comentario\x20=\x20(caja.querySelector(\x27textarea\x27)\x20||\x20{}).value\x20||\x20\x27\x27;\x0a\x20\x20if\x20(b.dataset.telemetria)\x20{\x0a\x20\x20\x20\x20var\x20rt\x20=\x20caja.querySelector(\x27.resultado\x27);\x0a\x20\x20\x20\x20rt.textContent\x20=\x20\x27Registrando…\x27;\x0a\x20\x20\x20\x20fetch(\x27/api/telemetria\x27,\x20{\x20method:\x20\x27POST\x27,\x20headers:\x20{\x20\x27content-type\x27:\x20\x27application/json\x27,\x20\x27x-arketum-token\x27:\x20token\x20},\x20body:\x20JSON.stringify({\x20acepta:\x20b.dataset.telemetria\x20===\x20\x27si\x27,\x20comentario:\x20comentario\x20})\x20})\x0a\x20\x20\x20\x20\x20\x20.then(function\x20(r)\x20{\x20return\x20r.json();\x20})\x0a\x20\x20\x20\x20\x20\x20.then(function\x20(d)\x20{\x20rt.textContent\x20=\x20d.error\x20||\x20d.linea;\x20if\x20(!d.error)\x20caja.querySelector(\x27textarea\x27).value\x20=\x20\x27\x27;\x20setTimeout(function\x20()\x20{\x20ultimo\x20=\x20\x27\x27;\x20cargar();\x20},\x20800);\x20})\x0a\x20\x20\x20\x20\x20\x20.catch(function\x20()\x20{\x20rt.textContent\x20=\x20\x27No\x20se\x20pudo\x20registrar:\x20sin\x20conexión\x20con\x20el\x20panel.\x27;\x20});\x0a\x20\x20\x20\x20return;\x0a\x20\x20}\x0a\x20\x20if\x20(b.dataset.eleccion)\x20return\x20enviar(caja,\x20{\x20tipo:\x20\x27gate\x27,\x20unidad:\x20p.unidad,\x20gate:\x20p.gate,\x20huella:\x20p.huella,\x20eleccion:\x20b.dataset.eleccion,\x20comentario:\x20comentario\x20});\x0a\x20\x20if\x20(b.dataset.delegacion)\x20return\x20enviar(caja,\x20{\x20tipo:\x20\x27delegacion\x27,\x20unidad:\x20p.unidad,\x20huella:\x20p.huella,\x20hasta:\x20p.hasta,\x20eleccion:\x20b.dataset.delegacion,\x20comentario:\x20comentario\x20});\x0a\x20\x20if\x20(b.dataset.confirma)\x20return\x20enviar(caja,\x20{\x20tipo:\x20\x27declaracion\x27,\x20unidad:\x20p.unidad,\x20requisito:\x20p.requisito,\x20huella:\x20p.huella,\x20confirma:\x20b.dataset.confirma\x20===\x20\x271\x27,\x20comentario:\x20comentario\x20});\x0a\x20\x20if\x20(b.dataset.confirmar)\x20{\x0a\x20\x20\x20\x20var\x20v\x20=\x20{};\x20caja.querySelectorAll(\x27input:checked\x27).forEach(function\x20(x)\x20{\x20v[x.dataset.f]\x20=\x20x.value;\x20});\x0a\x20\x20\x20\x20if\x20(Object.keys(v).length\x20<\x20p.funcionales.length)\x20{\x20caja.querySelector(\x27.resultado\x27).textContent\x20=\x20\x27Responde\x20cada\x20uno.\x27;\x20return;\x20}\x0a\x20\x20\x20\x20return\x20enviar(caja,\x20{\x20tipo:\x20\x27confirmacion\x27,\x20unidad:\x20p.unidad,\x20huella:\x20p.huella,\x20veredictos:\x20v,\x20comentario:\x20comentario\x20});\x0a\x20\x20}\x0a});\x0acargar();\x0asetInterval(cargar,\x205000);\x0a</script>\x0a</body>\x0a</html>\x0a',j='uso:\x20arketum-panel\x20[raíz]\x20[--puerto\x20N]\x20|\x20arketum-panel\x20--servidor\x20|\x20arketum-panel\x20--detener\x0a';function k(){const ac=ab,p=openPersonalLog(join(carpetaPersonal(),ac(0x103),'panel.log'));spawn(process[ac(0x162)],[fileURLToPath(new URL(ac(0x119),import.meta.url)),ac(0x155)],{'detached':!![],'windowsHide':!![],'stdio':['ignore',p,p],'env':process[ac(0x13e)]})[ac(0x101)]();}async function l(){const ad=ab,p=puertoDelPanel(await leerRegistro());await claveDelPanel();try{const q=await h({'puerto':p,'raizDe':raizDelToken,'huella':await huellaDeArketum(),'detener':{'clave':async()=>(await leerRegistro()['catch'](()=>({'proyectos':[]})))['clave'],'alDetener':()=>void q[ad(0x13b)]()[ad(0x158)](()=>process['exit'](0x0))}});}catch(r){if(r['code']===ad(0x107))return process['stderr']['write'](ad(0x11e)+p+ad(0x146)),0x1;throw r;}return process[ad(0x11a)]['write'](new Date()['toISOString']()+ad(0xf8)+p+'/\x20(pid\x20'+process[ad(0x106)]+').\x20Solo\x20responde\x20en\x20esta\x20máquina.\x0a'),await new Promise(()=>void 0x0);}var m=async()=>puertoDelPanel(await leerRegistro()[ab(0x115)](()=>({'proyectos':[]})));async function n(r){const ae=ab,s=r??await m(),t=await consultarPanel(s);if(t['estado']!==ae(0xfd))return process['stdout']['write'](t['estado']==='libre'?ae(0x13d)+s+'.\x0a':ae(0x118)+s+'\x20responde\x20otro\x20programa,\x20no\x20el\x20panel:\x20no\x20se\x20toca.\x0a'),0x0;if(!await detenerPanel(s)[ae(0x115)](()=>![]))return process[ae(0xf5)]['write'](ae(0x132)+s+'\x20(pid\x20'+t['salud'][ae(0x106)]+')\x20no\x20aceptó\x20detenerse:\x20la\x20clave\x20de\x20`~/.arketum/panel.yaml`\x20no\x20es\x20la\x20suya\x20o\x20el\x20registro\x20no\x20se\x20puede\x20leer.\x20Ciérralo\x20con\x20la\x20herramienta\x20del\x20sistema.\x0a'),0x1;return process['stdout']['write'](ae(0x11f)+t['salud']['pid']+').\x0a'),0x0;}async function o(p){const af=ab;if(p[af(0x10c)]===0x1&&p[0x0]==='--servidor')return l();if(p[af(0x10c)]===0x1&&p[0x0]==='--detener')return n();let q,s;for(let v=0x0;v<p[af(0x10c)];v++){const w=p[v];if(w===af(0x161)){const x=p[++v]??'',y=/^\d+$/[af(0x160)](x)?Number(x):NaN;if(!Number[af(0x109)](y)||y<0x1||y>0xffff)return process[af(0xf5)][af(0x145)](af(0x15a)),0x2;s=y;}else{if(w[af(0xfa)]('-')||q!==void 0x0)return process[af(0xf5)]['write'](j),0x2;else q=resolve(w);}}q??=process[af(0x15b)]();if(!hasProjectManifest(q))return process['stderr']['write'](af(0x12a)+q+'\x20no\x20hay\x20un\x20proyecto\x20de\x20Arketum\x20(`.arketum/proyecto.yaml`).\x20Lánzalo\x20desde\x20la\x20carpeta\x20del\x20proyecto.\x0a'),0x2;if(s!==void 0x0){const z=await m();if(z!==s&&(await consultarPanel(z))[af(0x138)]===af(0xfd))await n(z);await fijarPuertoDelPanel(s),process['env']['ARKETUM_PANEL_PUERTO']!==void 0x0&&Number(process[af(0x13e)][af(0x12c)])!==s&&process['stderr']['write'](af(0x11e)+s+'\x20queda\x20fijado,\x20pero\x20`ARKETUM_PANEL_PUERTO`\x20('+process[af(0x13e)]['ARKETUM_PANEL_PUERTO']+af(0x143));}const t=await asegurarPanel(q,{'lanzar':k,'huella':await huellaDeArketum()});if(af(0x164)in t)return process[af(0xf5)][af(0x145)](af(0x120)+t['problema']+'\x0a'),0x1;const u=t['como']==='ya_corria'?af(0x14b):t[af(0x14c)]==='relanzado'?af(0x131):af(0x14d);return process['stdout']['write'](af(0x140)+q+'\x20('+u+af(0x104)+t['url']+'\x0aSolo\x20responde\x20en\x20esta\x20máquina.\x20Queda\x20corriendo\x20aparte;\x20`arketum-panel\x20--detener`\x20lo\x20cierra.\x0a'),0x0;}function a(){const ah=['ktOkica','ue9tva','CgLK','ruferfjjtLvtrq','zMfSDgeGzwWGDg9Rzw4GzgvSihbHBMvSlcbVig5VigvZigvSigrLig5PBMFdUM4GChjVEwvJDg8GzguGzxn0ysbTW6fXDwLUyq','AxnjBNrLz2vY','zMfSDgeGBgeGy2XHDMuGzgvSihbHBMvS','BM8GzxmGsLnptG','BgvUz3rO','Cg9YDa','Aw5JBhvKzxm','DxjS','yw50zxmSigrPihf1ACoPBIbLCMvZicHHCNjPyMePoIbKzxnJyxj0yxiGDw5HigLKzweGDMeGysb0DsbUB21ICMu','BwvZC2fNzq','mZaXntiZneLHCuXmAq','C295','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','y2f0y2G','zgvTyxnPywrVigDYyw5Kzq','z2f0zq','rw4GzwWGChvLCNrVia','lI9Wyw5LBc1JBgKUANm','C3rKB3v0','l2fWAs90zw1H','Dg9mB3DLCKnHC2u','Bwv0Ag9K','yxjRzxr1Bs1Wyw5LBdOGzwWGChvLCNrVia','ugfUzwWGzgv0zw5Pzg8GkhbPzca','yxjRzxr1Bs1Wyw5LBdOG','BwfUAwzPzxn0BW','AhvLBgXH','zgvJBgfYywnPB24','y3vLBNrHCW','y29UzMLYBwe','Cgf0Ag5HBwu','ignHCMfJDgvYzxm','ntKYmtyXvMfkBMnu','BgLZDgvU','yxjRzxr1Bs1Wyw5LBdOGzw4G','l3nHBhvK','qvjlrvrvtv9qqu5ftf9qvuvsve8','ote4ntbVq3zWAwW','BMvNyxrPDMe','mtuXmtnuvLrvAvi','Bw90AxzV','CMvSyw56ywrVignVBIbLC3rHihzLCNnPW7nUigrLiefYA2v0Dw0','yxjRzxr1Bs1Wyw5LBdOGzwWGCgfUzwWGzgvSihb1zxj0BYa','DMfSDwvZ','l2fWAs9KzwnPzgLY','DgLWBW','zw5K','ywrKCMvZCW','zxn0ywrV','C3rYAw5N','y29Tzw50yxjPBW','y2vYCMfY','zw50CMLLCW','tM8GAgf5ihvUihbHBMvSignVCNjPzw5KBYbLBIbLBcbWDwvYDg8G','zw52','z2v0','ugfUzwWGzguGqxjRzxr1BsbWyxjHia','C2XPy2u','zwXPz2uGWQS','ksbTyw5KysbTAwvUDhjHCYbLC3tdQsbKzwzPBMLKys4k','mJmXntyYogjiwuvpCq','D3jPDgu','ihLHigvZDmoHigvUihvZBZSGzwXPz2uGB3rYBYbJB24GygfYA2v0Dw0TCgfUzwWGls1WDwvYDg8Gpg4+yc4k','D3jPDgvizwfK','zgvMyxvSDc1ZCMmGj3nLBgyNoYbZDhLSzs1ZCMmGj3vUC2fMzs1PBMXPBMuNoYbZy3jPChqTC3jJicD1BNnHzMuTAw5SAw5LjW','CgfUzwWT','zgv0zw5LCG','EweGy29YCSoTysbLBIbLC3rHig3dOxf1Aw5H','y29TBW','Bgv2yw50ywrV','mteZmtjItMDdzfe','AgvHzgvYCW','DhjPBq','C2LNDwu','C3rYAw5NAwz5','BwfWyq','r0vu','ls1Zzxj2AwrVCG','CMvZChvLC3rH','WRSGBYdcQW','DgHLBG','zwXLy2nPB24','yxjRzxr1Bs1Wyw5LBdOGyc0TChvLCNrVycbUzwnLC2L0ysb1BIbUW7PTzxjVigrLihb1zxj0BY4k','y3DK','l2fWAs9LC3rHzg8','C2vHCMnOugfYyw1Z','BgLUzwfZ','odGYmJyWnuPquwPdqW','DgvZDa','ls1WDwvYDg8','zxHLy1bHDgG','Ahr0CdOVlW','ChjVyMXLBwe','Dg9ju09tDhjPBMC','BM8TC3rVCMu','B2jQzwn0','C3rKzxjY','mty5ndi5nLHIAhPsva','zxnJCMLIzsb0DsbUB21ICMuGBYb0DsbJB3jYzw8','ifbHBMvSigrLiefYA2v0Dw0Gzw4GAhr0CdOVlZeYnY4WlJaUmtO','y2XVC2vbBgXdB25Uzwn0Aw9UCW','C3rHCNrZv2L0Aa','Ec1HCMTLDhvTlxrVA2vU','CgfYC2u','yxjRzxr1Bq','yM9VBgvHBG','CgfYysbKzxnJyxj0yxiGDw4GDgvTysWGzxnJCMLIzsbWB3iGCxxdQq','ChvLCNrV','Dw5Yzwy','CgfUzwW','lMfYA2v0Dw0'];a=function(){return ah;};return a();}o(process['argv']['slice'](0x2))['then'](p=>{process['exitCode']=p;},p=>{const ag=ab;process[ag(0xf5)][ag(0x145)](ag(0x120)+(p instanceof Error?p['message']:String(p))+'\x0a'),process['exitCode']=0x1;});
|
|
2
|
+
const a9=b;(function(p,q){const a1=b,r=p();while(!![]){try{const s=parseInt(a1(0x21b))/0x1+parseInt(a1(0x1ba))/0x2*(-parseInt(a1(0x1dc))/0x3)+-parseInt(a1(0x200))/0x4*(parseInt(a1(0x1e6))/0x5)+parseInt(a1(0x1fc))/0x6*(parseInt(a1(0x1f4))/0x7)+-parseInt(a1(0x1be))/0x8+-parseInt(a1(0x1fe))/0x9+-parseInt(a1(0x1c3))/0xa*(-parseInt(a1(0x1f3))/0xb);if(s===q)break;else r['push'](r['shift']());}catch(t){r['push'](r['shift']());}}}(a,0x8fa19));import{asegurarPanel,claveDelPanel,consultarPanel,decidirEnElPanel,descartarTemaEnElPanel,detenerPanel,estadoCalculado,fijarPuertoDelPanel,historialDelProyecto,huellaDeArketum,leerRegistro,mapaDelProyecto,pendientesParaElPanel,prdVivo,puertoDelPanel,raizDelToken,responderTemaEnElPanel}from'./comun-ZTEHRDHC.js';import{NOMBRE_DEL_FRENTE,NOMBRE_DE_OPCION,OPCIONES_CON_COMENTARIO,OPCIONES_DE_GATE,OPCIONES_DE_TELEMETRIA,carpetaPersonal,conUnaLectura,decidirTelemetriaComoPendiente,guardarIdentidad,hasProjectManifest,identidadPropuesta,leerIdentidad,leerProyecto,openPersonalLog,pendienteDeLaTelemetria,rechazoPorFormato,textoDeIdentidad}from'./comun-ZEXDDERM.js';import{spawn}from'node:child_process';import{join,resolve}from'node:path';import{fileURLToPath}from'node:url';function b(c,d){c=c-0x1b6;const e=a();let f=e[c];if(b['OWYXlU']===undefined){var g=function(l){const m='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let n='',o='';for(let p=0x0,q,r,s=0x0;r=l['charAt'](s++);~r&&(q=p%0x4?q*0x40+r:r,p++%0x4)?n+=String['fromCharCode'](0xff&q>>(-0x2*p&0x6)):0x0){r=m['indexOf'](r);}for(let t=0x0,u=n['length'];t<u;t++){o+='%'+('00'+n['charCodeAt'](t)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(o);};b['FTwpry']=g,b['RKCcTc']={},b['OWYXlU']=!![];}const h=e[0x0],i=c+h,j=b['RKCcTc'][i];return!j?(f=b['FTwpry'](f),b['RKCcTc'][i]=f):f=j,f;}import{randomBytes}from'node:crypto';import{createServer}from'node:http';var c=0x40*0x400,d=0xfa0;function e(p){return new Promise((q,r)=>{const a2=b;let s='';p['setEncoding']('utf8'),p['on'](a2(0x1ea),t=>{const a3=a2;s+=t,s[a3(0x1ce)]>c&&(p[a3(0x206)](a3(0x1ea)),r(new Error('demasiado\x20grande')));}),p['on'](a2(0x212),()=>q(s)),p['on'](a2(0x1e2),r);});}var f=(p,q,r)=>{const a4=b;p['writeHead'](q,{'content-type':'application/json;\x20charset=utf-8','cache-control':a4(0x1d2)}),p[a4(0x212)](JSON['stringify'](r));};function g(p){const a5=b;if(typeof p!=='object'||p===null)return void 0x0;const q=p,s=z=>typeof q[z]==='string'&&q[z][a5(0x21d)]()!==''?q[z]['trim']():void 0x0,t=s('unidad'),u=s(a5(0x203)),w=s('comentario');if(t===void 0x0||u===void 0x0)return void 0x0;const y=w===void 0x0?{}:{'comentario':w};if(q['tipo']==='gate'){const z=s(a5(0x220)),A=q['eleccion'];if(z===void 0x0||!OPCIONES_DE_GATE['includes'](A))return void 0x0;const B=A;if(OPCIONES_CON_COMENTARIO[a5(0x208)](B)&&w===void 0x0)return void 0x0;return{'tipo':a5(0x220),'unidad':t,'gate':z,'huella':u,'eleccion':B,...y};}if(q['tipo']===a5(0x1ed)){const C=q['veredictos'];if(typeof C!==a5(0x215)||C===null)return void 0x0;const D={};for(const [E,F]of Object[a5(0x207)](C)){if(F!=='si'&&F!=='no'&&F!=='despues')return void 0x0;D[E]=F;}if(Object[a5(0x223)](D)[a5(0x1ce)]===0x0||Object['values'](D)['includes']('no')&&w===void 0x0)return void 0x0;return{'tipo':'confirmacion','unidad':t,'huella':u,'veredictos':D,...y};}if(q[a5(0x1ef)]===a5(0x1b7)){const G=s('hasta'),H=q[a5(0x1c8)];if(G===void 0x0||H!=='sigue'&&H!==a5(0x1c1))return void 0x0;return{'tipo':a5(0x1b7),'unidad':t,'huella':u,'hasta':G,'eleccion':H,...y};}if(q['tipo']===a5(0x218)){const I=s(a5(0x1d1));if(I===void 0x0||typeof q['confirma']!==a5(0x1e5))return void 0x0;return{'tipo':a5(0x218),'unidad':t,'requisito':I,'huella':u,'confirma':q[a5(0x227)],...y};}return void 0x0;}async function h(p){const a6=b,q=a6(0x21a)+randomBytes(0x4)['toString']('hex');let r=0x0;const s=createServer((t,u)=>{void(async()=>{const a7=b,v=(t['headers']['host']??'')[a7(0x20c)]();if(v!==a7(0x1c9)+r&&v!==a7(0x222)+r)return f(u,0x193,{'error':a7(0x1e3)});const w=new URL(t['url']??'/','http://'+v);if(t[a7(0x224)]===a7(0x228)&&w['pathname']==='/'){u[a7(0x1bf)](0xc8,{'content-type':'text/html;\x20charset=utf-8','cache-control':'no-store','content-security-policy':'default-src\x20\x27self\x27;\x20style-src\x20\x27unsafe-inline\x27;\x20script-src\x20\x27unsafe-inline\x27'}),u['end'](i);return;}if(t['method']===a7(0x228)&&w['pathname']==='/salud'){const C={'arketum':'panel','huella':p['huella']??'','pid':process['pid']};return f(u,0xc8,C);}if(t[a7(0x224)]===a7(0x1c4)&&w['pathname']==='/detener'){const D=p['detener']===void 0x0?void 0x0:await p['detener']['clave']();if(p['detener']===void 0x0||D===void 0x0||D===''||t[a7(0x20e)][a7(0x216)]!==D)return f(u,0x191,{'error':a7(0x1d7)});f(u,0xc8,{'detenido':!![]}),setImmediate(p['detener'][a7(0x1f1)]);return;}const x=typeof t[a7(0x20e)][a7(0x1c5)]==='string'?t[a7(0x20e)][a7(0x1c5)]:void 0x0,y=x??(t['method']==='GET'?w[a7(0x213)]['get']('t')??void 0x0:void 0x0),z=y===void 0x0||y===''?void 0x0:await p[a7(0x1bd)](y);if(z===void 0x0)return f(u,0x191,{'error':a7(0x210)});const A=await rechazoPorFormato(z);if(A!==void 0x0)return f(u,0x199,{'error':A});const B=await leerProyecto(z);if(B===null)return f(u,0x194,{'error':'aquí\x20no\x20hay\x20un\x20proyecto\x20de\x20Arketum\x20(`.arketum/proyecto.yaml`)'});if('negativa'in B)return f(u,0x1f4,{'error':B['negativa']});if(t['method']==='GET'&&w['pathname']==='/api/estado'){const [E,F,G,H,I]=await conUnaLectura(()=>Promise['all']([estadoCalculado(z,B['manifiesto'],new Date()[a7(0x1de)]()),pendientesParaElPanel(z,B[a7(0x225)]),historialDelProyecto(z),mapaDelProyecto(z,B[a7(0x225)]),prdVivo(z,B[a7(0x225)])])),J=textoDeIdentidad(await leerIdentidad()),K=identidadPropuesta();return f(u,0xc8,{'estado':E,...F,'historial':G,'integraciones':{'cuentas':H[a7(0x1dd)][a7(0x1d5)],'lineas':H['lineas']},'prd':I,...J===void 0x0?{}:{'identidad':J},...K===void 0x0?{}:{'propuesta':K}});}if(t[a7(0x224)]==='POST'&&w['pathname']==='/api/identidad'){let L;try{L=JSON['parse'](await e(t));}catch{return f(u,0x190,{'error':a7(0x1d8)});}const M=typeof L[a7(0x1e9)]==='string'?L[a7(0x1e9)]['trim']()[a7(0x1e7)](0x0,0xc8):'';if(M==='')return f(u,0x190,{'error':a7(0x1d6)});const N=M['includes']('@')&&!/\s/['test'](M)?{'correo':M}:{'nombre':M};return await guardarIdentidad(N),f(u,0xc8,{'identidad':textoDeIdentidad(N)});}if(t[a7(0x224)]===a7(0x1c4)&&w[a7(0x1c0)]==='/api/telemetria'){let O;try{O=JSON[a7(0x20f)](await e(t));}catch{return f(u,0x190,{'error':a7(0x1d8)});}if(typeof O[a7(0x209)]!==a7(0x1e5))return f(u,0x190,{'error':a7(0x1b8)+OPCIONES_DE_TELEMETRIA['si']+a7(0x217)+OPCIONES_DE_TELEMETRIA['no']+'»'});const P=typeof O[a7(0x1d4)]==='string'?O[a7(0x1d4)]['trim']()['slice'](0x0,0x7d0):'';if(await pendienteDeLaTelemetria()===void 0x0)return f(u,0xc8,{'linea':'\x20\x20·\x20telemetría:\x20ya\x20estaba\x20decidida\x20(o\x20está\x20apagada\x20en\x20esta\x20máquina);\x20no\x20se\x20registra.'});const Q=await decidirTelemetriaComoPendiente(O[a7(0x209)],P===''?void 0x0:P,textoDeIdentidad(await leerIdentidad()),a7(0x1cc));return f(u,0xc8,{'linea':Q});}if(t[a7(0x224)]===a7(0x1c4)&&w['pathname']==='/api/tema'){let R;try{R=JSON[a7(0x20f)](await e(t));}catch{return f(u,0x190,{'error':a7(0x1d8)});}const S=typeof R['id']==='string'?R['id'][a7(0x21d)]():'';if(R['respuesta']!==void 0x0){const W=typeof R['respuesta']==='string'?R['respuesta'][a7(0x21d)]():'';if(S===''||W==='')return f(u,0x190,{'error':'escribe\x20tu\x20respuesta'});if(W[a7(0x1ce)]>d)return f(u,0x190,{'error':a7(0x202)+W[a7(0x1ce)]+'\x20de\x20'+d+a7(0x1db)});const X=await responderTemaEnElPanel(z,q,S,W,textoDeIdentidad(await leerIdentidad()));return f(u,'error'in X?0x190:0xc8,X);}const T=typeof R['motivo']==='string'?R['motivo']['trim']()[a7(0x1e7)](0x0,0x7d0):'';if(S===''||T==='')return f(u,0x190,{'error':'para\x20descartar\x20un\x20tema,\x20escribe\x20por\x20qué'});const U=textoDeIdentidad(await leerIdentidad());if(U===void 0x0)return f(u,0x190,{'error':'antes,\x20di\x20quién\x20eres\x20(arriba):\x20descartar\x20una\x20idea\x20va\x20a\x20tu\x20nombre'});const V=await descartarTemaEnElPanel(z,q,S,T,U);return f(u,a7(0x1e2)in V?0x190:0xc8,V);}if(t[a7(0x224)]==='POST'&&w['pathname']==='/api/decidir'){let Y;try{Y=JSON['parse'](await e(t));}catch(a0){return f(u,a0[a7(0x1f0)]==='demasiado\x20grande'?0x19d:0x190,{'error':a0[a7(0x1f0)]===a7(0x1cb)?'la\x20respuesta\x20es\x20demasiado\x20grande':'no\x20es\x20JSON'});}const Z=g(Y);if(Z===void 0x0)return f(u,0x190,{'error':'la\x20respuesta\x20no\x20está\x20completa\x20(con\x20«ajustar»\x20o\x20«rechazar»,\x20y\x20con\x20un\x20«no»,\x20hace\x20falta\x20el\x20comentario)'});return f(u,0xc8,await decidirEnElPanel(z,B['manifiesto'],q,Z));}f(u,0x194,{'error':a7(0x1f7)});})()['catch'](v=>f(u,0x1f4,{'error':v instanceof Error?v['message']:String(v)}));});return await new Promise((t,u)=>{const a8=a6;s[a8(0x1d3)]('error',u),s['listen'](p[a8(0x1e4)],'127.0.0.1',()=>t());}),r=s[a6(0x1c6)]()[a6(0x1e1)],{'puerto':r,'cerrar':()=>new Promise(t=>{s['close'](()=>t()),s['closeAllConnections']();})};}var i='<!doctype\x20html>\x0a<html\x20lang=\x22es\x22>\x0a<head>\x0a<meta\x20charset=\x22utf-8\x22>\x0a<meta\x20name=\x22viewport\x22\x20content=\x22width=device-width,\x20initial-scale=1\x22>\x0a<title>Arketum\x20·\x20panel</title>\x0a<style>\x0a:root\x20{\x20--fondo:#f7f7f5;\x20--carta:#fff;\x20--texto:#1d1d1b;\x20--suave:#6b6b66;\x20--borde:#e2e2dc;\x20--acento:#2f5d8a;\x20--ok:#2e7d4f;\x20--aviso:#a5660b;\x20--mal:#a33a3a;\x20}\x0a@media\x20(prefers-color-scheme:\x20dark)\x20{\x20:root\x20{\x20--fondo:#161615;\x20--carta:#20201e;\x20--texto:#ecece8;\x20--suave:#a3a39c;\x20--borde:#34342f;\x20--acento:#7fb0e0;\x20--ok:#6cc093;\x20--aviso:#e0a64a;\x20--mal:#e07a7a;\x20}\x20}\x0a*\x20{\x20box-sizing:\x20border-box;\x20}\x0abody\x20{\x20margin:0;\x20background:var(--fondo);\x20color:var(--texto);\x20font:15px/1.5\x20system-ui,\x20-apple-system,\x20\x22Segoe\x20UI\x22,\x20sans-serif;\x20}\x0aheader\x20{\x20padding:16px\x2020px\x200;\x20max-width:960px;\x20margin:0\x20auto;\x20}\x0ah1\x20{\x20font-size:20px;\x20margin:0\x200\x204px;\x20}\x0a.sub\x20{\x20color:var(--suave);\x20font-size:13px;\x20}\x0anav\x20{\x20display:flex;\x20gap:8px;\x20margin:14px\x200\x200;\x20border-bottom:1px\x20solid\x20var(--borde);\x20}\x0anav\x20button\x20{\x20background:none;\x20border:0;\x20border-bottom:2px\x20solid\x20transparent;\x20padding:8px\x2010px;\x20color:var(--suave);\x20font:inherit;\x20cursor:pointer;\x20}\x0anav\x20button.activa\x20{\x20color:var(--texto);\x20border-bottom-color:var(--acento);\x20}\x0amain\x20{\x20max-width:960px;\x20margin:0\x20auto;\x20padding:16px\x2020px\x2040px;\x20}\x0a.carta\x20{\x20background:var(--carta);\x20border:1px\x20solid\x20var(--borde);\x20border-radius:10px;\x20padding:14px\x2016px;\x20margin:0\x200\x2012px;\x20}\x0a.cifras\x20{\x20display:flex;\x20flex-wrap:wrap;\x20gap:12px;\x20}\x0a.cifra\x20{\x20flex:1\x201\x20140px;\x20background:var(--carta);\x20border:1px\x20solid\x20var(--borde);\x20border-radius:10px;\x20padding:12px\x2014px;\x20}\x0a.cifra\x20b\x20{\x20display:block;\x20font-size:24px;\x20}\x0a.cifra\x20span\x20{\x20color:var(--suave);\x20font-size:13px;\x20}\x0a.avance\x20b\x20{\x20font-size:40px;\x20}\x0ah2\x20{\x20font-size:15px;\x20margin:18px\x200\x208px;\x20}\x0a.quien\x20{\x20font-weight:600;\x20}\x0a.dato\x20{\x20color:var(--suave);\x20font-size:13px;\x20}\x0apre\x20{\x20white-space:pre-wrap;\x20background:var(--fondo);\x20border:1px\x20solid\x20var(--borde);\x20border-radius:8px;\x20padding:10px;\x20font:13px/1.45\x20ui-monospace,\x20Menlo,\x20monospace;\x20margin:8px\x200;\x20}\x0a.opciones\x20{\x20display:flex;\x20flex-wrap:wrap;\x20gap:8px;\x20margin:8px\x200;\x20}\x0a.opciones\x20button\x20{\x20font:inherit;\x20padding:6px\x2012px;\x20border-radius:8px;\x20border:1px\x20solid\x20var(--borde);\x20background:var(--carta);\x20color:var(--texto);\x20cursor:pointer;\x20}\x0a.opciones\x20button.aprobar\x20{\x20border-color:var(--ok);\x20color:var(--ok);\x20}\x0a.opciones\x20button.rechazar\x20{\x20border-color:var(--mal);\x20color:var(--mal);\x20}\x0atextarea\x20{\x20width:100%;\x20min-height:56px;\x20font:inherit;\x20padding:8px;\x20border-radius:8px;\x20border:1px\x20solid\x20var(--borde);\x20background:var(--carta);\x20color:var(--texto);\x20}\x0a.etiqueta\x20{\x20display:inline-block;\x20font-size:12px;\x20padding:1px\x208px;\x20border-radius:999px;\x20border:1px\x20solid\x20var(--borde);\x20color:var(--suave);\x20margin-left:6px;\x20}\x0a.resultado\x20{\x20margin-top:6px;\x20font-size:13px;\x20}\x0atable\x20{\x20width:100%;\x20border-collapse:collapse;\x20font-size:13px;\x20}\x0ath,\x20td\x20{\x20text-align:left;\x20padding:6px\x208px;\x20border-bottom:1px\x20solid\x20var(--borde);\x20vertical-align:top;\x20}\x0ath\x20{\x20color:var(--suave);\x20font-weight:500;\x20}\x0a.vacio\x20{\x20color:var(--suave);\x20}\x0a.error\x20{\x20color:var(--mal);\x20}\x0a.cambio\x20{\x20color:var(--aviso);\x20margin:0\x200\x206px;\x20}\x0a@media\x20(max-width:\x20600px)\x20{\x20header,\x20main\x20{\x20padding-left:16px;\x20padding-right:16px;\x20}\x20table\x20{\x20font-size:12px;\x20}\x20}\x0a</style>\x0a</head>\x0a<body>\x0a<header>\x0a\x20\x20<h1\x20id=\x22titulo\x22>Arketum</h1>\x0a\x20\x20<div\x20class=\x22sub\x22\x20id=\x22sub\x22>Cargando…</div>\x0a\x20\x20<nav>\x0a\x20\x20\x20\x20<button\x20data-vista=\x22estado\x22\x20class=\x22activa\x22>Estado</button>\x0a\x20\x20\x20\x20<button\x20data-vista=\x22pendientes\x22>Pendientes</button>\x0a\x20\x20\x20\x20<button\x20data-vista=\x22historial\x22>Historial</button>\x0a\x20\x20\x20\x20<button\x20data-vista=\x22integraciones\x22>Integraciones</button>\x0a\x20\x20\x20\x20<button\x20data-vista=\x22prd\x22>PRD</button>\x0a\x20\x20</nav>\x0a</header>\x0a<main\x20id=\x22main\x22></main>\x0a<script>\x0avar\x20token\x20=\x20new\x20URLSearchParams(location.search).get(\x27t\x27)\x20||\x20\x27\x27;\x0avar\x20vista\x20=\x20\x27estado\x27;\x0a//\x20Los\x20nombres\x20de\x20las\x20opciones\x20de\x20un\x20gate,\x20los\x20mismos\x20de\x20la\x20tanda\x20y\x20el\x20chat\x20(td-f02).\x0avar\x20NOMBRES\x20=\x20'+JSON[a9(0x1ec)](NOMBRE_DE_OPCION)+';\x0a//\x20Las\x20dos\x20respuestas\x20de\x20la\x20telemetría,\x20las\x20mismas\x20de\x20la\x20tanda\x20(tl-f01).\x0avar\x20TELEMETRIA\x20=\x20'+JSON['stringify'](OPCIONES_DE_TELEMETRIA)+';\x0avar\x20datos\x20=\x20null;\x0avar\x20ultimo\x20=\x20\x27\x27;\x0a//\x20SE\x20TOCA\x20SOLO\x20LO\x20QUE\x20CAMBIÓ\x20(pn-f06).\x20Cada\x20bloque\x20lleva\x20una\x20clave\x20estable\x20(data-k;\x20sin\x20ella,\x20su\x20posición)\x20y\x20la\x0a//\x20huella\x20de\x20su\x20HTML:\x20en\x20cada\x20refresco\x20se\x20agregan\x20los\x20nuevos,\x20se\x20quitan\x20los\x20que\x20ya\x20no\x20están\x20y\x20se\x20reemplazan\x20solo\x0a//\x20los\x20que\x20cambiaron.\x20Un\x20bloque\x20con\x20algo\x20de\x20la\x20persona\x20(texto,\x20una\x20opción\x20marcada,\x20el\x20cursor\x20dentro)\x20no\x20se\x0a//\x20reemplaza\x20ni\x20se\x20quita:\x20se\x20marca,\x20y\x20lo\x20nuevo\x20se\x20ve\x20cuando\x20envía\x20o\x20vacía\x20lo\x20suyo.\x20Un\x20bloque\x20con\x20data-lista\x0a//\x20(un\x20grupo\x20de\x20temas)\x20no\x20se\x20reemplaza\x20entero:\x20se\x20concilian\x20sus\x20hijos,\x20y\x20sigue\x20abierto\x20o\x20cerrado\x20como\x20estaba.\x0afunction\x20huella(t)\x20{\x20var\x20h\x20=\x205381;\x20for\x20(var\x20i\x20=\x200;\x20i\x20<\x20t.length;\x20i++)\x20h\x20=\x20((h\x20<<\x205)\x20+\x20h\x20+\x20t.charCodeAt(i))\x20|\x200;\x20return\x20String(h);\x20}\x0afunction\x20claveDe(el,\x20i)\x20{\x20return\x20el.getAttribute(\x27data-k\x27)\x20||\x20(\x27#\x27\x20+\x20i\x20+\x20el.tagName);\x20}\x0afunction\x20conAlgoTuyo(el)\x20{\x0a\x20\x20var\x20a\x20=\x20document.activeElement;\x0a\x20\x20if\x20(a\x20&&\x20a\x20!==\x20document.body\x20&&\x20el.contains(a)\x20&&\x20/^(TEXTAREA|INPUT)$/.test(a.tagName))\x20return\x20true;\x0a\x20\x20return\x20Array.prototype.some.call(el.querySelectorAll(\x27textarea\x27),\x20function\x20(t)\x20{\x20return\x20t.value.trim()\x20!==\x20\x27\x27;\x20})\x20||\x0a\x20\x20\x20\x20el.querySelectorAll(\x27input:checked\x27).length\x20>\x200\x20||\x0a\x20\x20\x20\x20Array.prototype.some.call(el.querySelectorAll(\x27input:not([type=radio]):not([type=checkbox])\x27),\x20function\x20(x)\x20{\x20return\x20x.value\x20!==\x20x.defaultValue;\x20});\x0a}\x0afunction\x20marcar(el,\x20texto)\x20{\x0a\x20\x20el.setAttribute(\x27data-viejo\x27,\x20\x271\x27);\x0a\x20\x20var\x20m\x20=\x20el.firstElementChild\x20&&\x20el.firstElementChild.classList.contains(\x27cambio\x27)\x20?\x20el.firstElementChild\x20:\x20null;\x0a\x20\x20if\x20(!m)\x20{\x20m\x20=\x20document.createElement(\x27div\x27);\x20m.className\x20=\x20\x27cambio\x20dato\x27;\x20el.insertBefore(m,\x20el.firstChild);\x20}\x0a\x20\x20m.textContent\x20=\x20texto;\x0a}\x0afunction\x20conciliar(viejo,\x20html)\x20{\x0a\x20\x20var\x20t\x20=\x20document.createElement(\x27template\x27);\x0a\x20\x20t.innerHTML\x20=\x20html;\x0a\x20\x20var\x20nuevos\x20=\x20Array.prototype.slice.call(t.content.children);\x0a\x20\x20var\x20antes\x20=\x20{};\x0a\x20\x20Array.prototype.forEach.call(viejo.children,\x20function\x20(el,\x20i)\x20{\x20antes[claveDe(el,\x20i)]\x20=\x20el;\x20});\x0a\x20\x20var\x20orden\x20=\x20[];\x0a\x20\x20nuevos.forEach(function\x20(n,\x20i)\x20{\x0a\x20\x20\x20\x20var\x20k\x20=\x20claveDe(n,\x20i),\x20h\x20=\x20huella(n.outerHTML),\x20v\x20=\x20antes[k];\x0a\x20\x20\x20\x20delete\x20antes[k];\x0a\x20\x20\x20\x20if\x20(v\x20&&\x20v.getAttribute(\x27data-h\x27)\x20===\x20h\x20&&\x20!v.hasAttribute(\x27data-viejo\x27))\x20{\x20orden.push(v);\x20return;\x20}\x0a\x20\x20\x20\x20if\x20(v\x20&&\x20n.hasAttribute(\x27data-lista\x27)\x20&&\x20v.tagName\x20===\x20n.tagName)\x20{\x0a\x20\x20\x20\x20\x20\x20conciliar(v,\x20n.innerHTML);\x0a\x20\x20\x20\x20\x20\x20v.setAttribute(\x27data-h\x27,\x20h);\x0a\x20\x20\x20\x20\x20\x20orden.push(v);\x0a\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20if\x20(v\x20&&\x20conAlgoTuyo(v))\x20{\x20marcar(v,\x20\x27Esto\x20cambió\x20mientras\x20lo\x20respondías:\x20lo\x20nuevo\x20se\x20ve\x20cuando\x20envías\x20o\x20vacías\x20lo\x20que\x20escribiste.\x27);\x20orden.push(v);\x20return;\x20}\x0a\x20\x20\x20\x20//\x20Cambió\x20y\x20no\x20tiene\x20nada\x20de\x20la\x20persona:\x20se\x20reemplaza\x20(el\x20viejo\x20sale;\x20el\x20nuevo\x20entra\x20en\x20su\x20sitio,\x20abajo).\x0a\x20\x20\x20\x20if\x20(v)\x20v.remove();\x0a\x20\x20\x20\x20n.setAttribute(\x27data-h\x27,\x20h);\x0a\x20\x20\x20\x20orden.push(n);\x0a\x20\x20});\x0a\x20\x20//\x20Lo\x20que\x20ya\x20no\x20está\x20se\x20quita,\x20salvo\x20que\x20tenga\x20algo\x20de\x20la\x20persona:\x20queda\x20marcado\x20donde\x20estaba.\x0a\x20\x20Object.keys(antes).forEach(function\x20(k)\x20{\x0a\x20\x20\x20\x20var\x20v\x20=\x20antes[k];\x0a\x20\x20\x20\x20if\x20(conAlgoTuyo(v))\x20marcar(v,\x20\x27Esto\x20ya\x20no\x20está\x20pendiente\x20(quizá\x20se\x20decidió\x20por\x20otro\x20canal):\x20se\x20quita\x20cuando\x20vacías\x20lo\x20que\x20escribiste.\x27);\x0a\x20\x20\x20\x20else\x20v.remove();\x0a\x20\x20});\x0a\x20\x20//\x20En\x20el\x20orden\x20nuevo,\x20moviendo\x20solo\x20lo\x20que\x20no\x20está\x20en\x20su\x20sitio:\x20lo\x20que\x20no\x20se\x20mueve\x20no\x20pierde\x20el\x20cursor.\x0a\x20\x20var\x20pos\x20=\x20viejo.firstElementChild;\x0a\x20\x20orden.forEach(function\x20(el)\x20{\x0a\x20\x20\x20\x20while\x20(pos\x20&&\x20pos\x20!==\x20el\x20&&\x20pos.hasAttribute(\x27data-viejo\x27)\x20&&\x20orden.indexOf(pos)\x20<\x200)\x20pos\x20=\x20pos.nextElementSibling;\x0a\x20\x20\x20\x20if\x20(pos\x20===\x20el)\x20{\x20pos\x20=\x20pos.nextElementSibling;\x20return;\x20}\x0a\x20\x20\x20\x20viejo.insertBefore(el,\x20pos);\x0a\x20\x20});\x0a}\x0a//\x20Los\x20borradores\x20de\x20cada\x20vista,\x20por\x20la\x20clave\x20de\x20su\x20bloque:\x20vuelven\x20al\x20cambiar\x20de\x20pestaña\x20y\x20regresar.\x0avar\x20borradores\x20=\x20{};\x0afunction\x20guardarBorradores(m)\x20{\x0a\x20\x20var\x20b\x20=\x20{};\x0a\x20\x20m.querySelectorAll(\x27[data-k]\x27).forEach(function\x20(el)\x20{\x0a\x20\x20\x20\x20var\x20campos\x20=\x20[];\x0a\x20\x20\x20\x20el.querySelectorAll(\x27textarea,\x20input\x27).forEach(function\x20(x,\x20i)\x20{\x20campos.push(x.type\x20===\x20\x27radio\x27\x20||\x20x.type\x20===\x20\x27checkbox\x27\x20?\x20x.checked\x20:\x20x.value);\x20});\x0a\x20\x20\x20\x20b[el.getAttribute(\x27data-k\x27)]\x20=\x20{\x20campos:\x20campos,\x20abierto:\x20el.tagName\x20===\x20\x27DETAILS\x27\x20?\x20el.open\x20:\x20null\x20};\x0a\x20\x20});\x0a\x20\x20return\x20b;\x0a}\x0afunction\x20devolverBorradores(m,\x20b)\x20{\x0a\x20\x20if\x20(!b)\x20return;\x0a\x20\x20m.querySelectorAll(\x27[data-k]\x27).forEach(function\x20(el)\x20{\x0a\x20\x20\x20\x20var\x20g\x20=\x20b[el.getAttribute(\x27data-k\x27)];\x0a\x20\x20\x20\x20if\x20(!g)\x20return;\x0a\x20\x20\x20\x20if\x20(g.abierto\x20!==\x20null\x20&&\x20el.tagName\x20===\x20\x27DETAILS\x27)\x20el.open\x20=\x20g.abierto;\x0a\x20\x20\x20\x20if\x20(el.hasAttribute(\x27data-lista\x27))\x20return;\x0a\x20\x20\x20\x20el.querySelectorAll(\x27textarea,\x20input\x27).forEach(function\x20(x,\x20i)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(i\x20>=\x20g.campos.length)\x20return;\x0a\x20\x20\x20\x20\x20\x20if\x20(x.type\x20===\x20\x27radio\x27\x20||\x20x.type\x20===\x20\x27checkbox\x27)\x20x.checked\x20=\x20g.campos[i];\x0a\x20\x20\x20\x20\x20\x20else\x20x.value\x20=\x20g.campos[i];\x0a\x20\x20\x20\x20});\x0a\x20\x20});\x0a}\x0afunction\x20esc(t)\x20{\x20return\x20String(t\x20==\x20null\x20?\x20\x27\x27\x20:\x20t).replace(/[&<>\x22\x27]/g,\x20function\x20(c)\x20{\x20return\x20{\x20\x27&\x27:\x20\x27&\x27,\x20\x27<\x27:\x20\x27<\x27,\x20\x27>\x27:\x20\x27>\x27,\x20\x27\x22\x27:\x20\x27"\x27,\x20\x22\x27\x22:\x20\x27'\x27\x20}[c];\x20});\x20}\x0afunction\x20dias(d)\x20{\x20return\x20d\x20==\x20null\x20?\x20\x27\x27\x20:\x20d\x20===\x200\x20?\x20\x27hoy\x27\x20:\x20d\x20===\x201\x20?\x20\x27hace\x201\x20día\x27\x20:\x20\x27hace\x20\x27\x20+\x20d\x20+\x20\x27\x20días\x27;\x20}\x0a//\x20Cómo\x20se\x20ve\x20una\x20unidad\x20viva\x20(ec-f04):\x20los\x20mismos\x20campos\x20que\x20la\x20línea\x20del\x20estado\x20—su\x20frente\x20(una\x20abandonada\x20no\x20tiene),\x20lo\x20que\x20espera\x20de\x20ti\x20con\x20su\x20fecha,\x20su\x20último\x20hecho\x20y\x20los\x20días—,\x20sin\x20juzgar\x20por\x20un\x20plazo.\x0afunction\x20unidad(u)\x20{\x0a\x20\x20var\x20h\x20=\x20\x27<div\x20class=\x22carta\x22><div\x20class=\x22quien\x22>\x27\x20+\x20esc(u.id)\x20+\x20\x27<span\x20class=\x22etiqueta\x22>\x27\x20+\x20esc(u.estado)\x20+\x20\x27</span>\x27\x20+\x20(u.frente\x20&&\x20FRENTES[u.frente]\x20?\x20\x27<span\x20class=\x22etiqueta\x22>\x27\x20+\x20esc(FRENTES[u.frente])\x20+\x20\x27</span>\x27\x20:\x20\x27\x27)\x20+\x20\x27</div>\x27;\x0a\x20\x20if\x20(u.bloqueo)\x20h\x20+=\x20\x27<div>Bloqueada:\x20\x27\x20+\x20esc(u.bloqueo.motivo)\x20+\x20\x27\x20<span\x20class=\x22dato\x22>(desde\x20\x27\x20+\x20esc(u.bloqueo.desde.slice(0,\x2010))\x20+\x20\x27,\x20\x27\x20+\x20dias(u.diasBloqueada)\x20+\x20\x27)</span></div>\x27;\x0a\x20\x20if\x20(u.esperando)\x20h\x20+=\x20\x27<div>Espera\x20tu\x20decisión:\x20\x27\x20+\x20esc(u.esperando.gate)\x20+\x20\x27\x20—\x20\x27\x20+\x20esc(u.esperando.pregunta)\x20+\x20\x27</div>\x27;\x0a\x20\x20//\x20Como\x20«lineaDeUnidad»\x20(ec-f04):\x20las\x20declaraciones\x20que\x20esperan\x20su\x20confirmación,\x20con\x20su\x20fecha.\x0a\x20\x20if\x20(u.declaraciones)\x20h\x20+=\x20\x27<div>\x27\x20+\x20esc(String(u.declaraciones))\x20+\x20\x27\x20declaración(es)\x20por\x20confirmar\x20(en\x20la\x20tanda\x20o\x20el\x20panel)\x27\x20+\x20(u.declaracionesDesde\x20?\x20\x27\x20<span\x20class=\x22dato\x22>(desde\x20\x27\x20+\x20esc(u.declaracionesDesde.slice(0,\x2010))\x20+\x20\x27)</span>\x27\x20:\x20\x27\x27)\x20+\x20\x27</div>\x27;\x0a\x20\x20if\x20(u.ultimo)\x20h\x20+=\x20\x27<div\x20class=\x22dato\x22>Último\x20hecho\x20\x27\x20+\x20esc(u.ultimo.momento.slice(0,\x2010))\x20+\x20\x27\x20(\x27\x20+\x20dias(u.dias)\x20+\x20\x27):\x20\x27\x20+\x20esc(u.ultimo.texto)\x20+\x20\x27</div>\x27;\x0a\x20\x20return\x20h\x20+\x20\x27</div>\x27;\x0a}\x0afunction\x20cajaDeIdentidad()\x20{\x0a\x20\x20if\x20(datos.identidad)\x20return\x20\x27\x27;\x0a\x20\x20return\x20\x27<div\x20class=\x22carta\x22\x20data-k=\x22identidad\x22><div\x20class=\x22quien\x22>¿Quién\x20eres?</div><div\x20class=\x22dato\x22>Tu\x20nombre\x20o\x20tu\x20correo,\x20una\x20vez\x20(sin\x20login):\x20va\x20en\x20cada\x20decisión\x20tuya,\x20para\x20saber\x20a\x20quién\x20preguntar.</div>\x27\x20+\x0a\x20\x20\x20\x20\x27<div\x20class=\x22opciones\x22><input\x20id=\x22soy\x22\x20value=\x22\x27\x20+\x20esc(datos.propuesta\x20||\x20\x27\x27)\x20+\x20\x27\x22\x20style=\x22flex:1;font:inherit;padding:6px\x208px;border-radius:8px;border:1px\x20solid\x20var(--borde);background:var(--carta);color:var(--texto)\x22><button\x20id=\x22guardarSoy\x22>Guardar</button></div></div>\x27;\x0a}\x0a//\x20Los\x20nombres\x20de\x20los\x20frentes,\x20los\x20mismos\x20del\x20estado\x20(ec-f04).\x0avar\x20FRENTES\x20=\x20'+JSON['stringify'](NOMBRE_DEL_FRENTE)+a9(0x1f9),j=a9(0x205);function a(){const af=['Cgf0Ag5HBwu','CMv2B2nHCG','yxjRzxr1Bs1Wyw5LBdOGzwWGChvLCNrVia','mtyZmteWBwLtExnU','ue9tva','Ec1HCMTLDhvTlxrVA2vU','ywrKCMvZCW','yxjRzxr1Bs1Wyw5LBdOG','zwXLy2nPB24','mti3lJaUmc4XoG','CgLK','zgvTyxnPywrVigDYyw5Kzq','CgfUzwW','yxjRzxr1Bs1Wyw5LBdOGyc0TChvLCNrVycbUzwnLC2L0ysb1BIbUW7PTzxjVigrLihb1zxj0BY4k','BgvUz3rO','lMfYA2v0Dw0','ls1WDwvYDg8','CMvXDwLZAxrV','BM8TC3rVCMu','B25Jzq','y29Tzw50yxjPBW','y3vLBNrHCW','zxnJCMLIzsb0DsbUB21ICMuGBYb0DsbJB3jYzw8','zMfSDgeGBgeGy2XHDMuGzgvSihbHBMvS','BM8GzxmGsLnptG','yxjRzxr1Bq','ktOkica','ignHCMfJDgvYzxm','mJG0nZK1mwTvCwLrva','BwfWyq','Dg9ju09tDhjPBMC','CMvSyw56ywrV','yxjNDG','Cg9YDa','zxjYB3i','C29SBYbKzxnKzsbLC3rHig3dOxf1Aw5H','ChvLCNrV','yM9VBgvHBG','mtC1BwvHwenv','C2XPy2u','y29TBW','C295','zgf0yq','BgLICMu','C3rYAw5NAwz5','y29UzMLYBwfJAw9U','ugfUzwWGzguGqxjRzxr1BsbWyxjHia','DgLWBW','BwvZC2fNzq','ywXezxrLBMvY','C2fSDwq','mtyYogXAEwjbsa','n09vqNnXyq','ls1Zzxj2AwrVCG','C3rKzxjY','BM8GzxHPC3rL','y2f0y2G','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y2XHC3m9iNf1AwvUiJ4NicSGzxnJkhaUDw5PzgfKksaRicCGWRCGjYaRigvZyYHWlMDHDguPicSGjZXZCgfUignSyxnZpsjLDgLXDwv0ysi+jYaRigvZyYHWlMnSyxnLid09psaNDgvJBMLJysCGpYaNDmoPy25Py2eNidOGCc5JBgfZzsKGkYaNpc9ZCgfUpJWVzgL2pIC7cIaGicaGigLMicHWlMrLC2rLksbOicS9icC8zgL2ignSyxnZpsjKyxrViJ5fC3bLCMfUzg8GzgvZzguGjYaRigvZyYHWlMrLC2rLlNnSAwnLkdaSideWksKGkYaNpc9KAxy+jZSkicaGicaGAwyGkhaUzxHWBgLJywnPB24PigGGkZ0GjZXKAxyGy2XHC3m9iMrHDg8IpLbLzgLZDguGDw5Higv4CgXPy2fJACoZBIbLBcaNicSGzxnJkhaUzxHWBgLJywnPB24UBw9Tzw50BY5ZBgLJzsGWlcaXmcKPicSGjZOGDguGBgeGzgeGzwWGywDLBNrLlJWVzgL2pIC7cIaGicaGigGGkZ0GjZXWCMu+jYaRigvZyYHWlNjLC3vTzw4PicSGjZWVChjLpJX0zxH0yxjLysbWBgfJzwHVBgrLCJ0Iq29Tzw50yxjPBYaOB2jSAwDHDg9YAw8GCgfYysbHANvZDgfYig8GCMvJAgf6yxiPiJ48l3rLEhrHCMvHpJXKAxyGy2XHC3m9iM9Wy2LVBMvZiJ4NoWOGicaGicbWlM9Wy2LVBMvZlMnVBMnHDcHBj25Vx2vUDgLLBMrVj10PlMzVCKvHy2GOzNvUy3rPB24Gkg8PihSGAcaRpsaNpgj1DhrVBIbJBgfZCZ0IjYaRig8GkYaNiIbKyxrHlwvSzwnJAw9UpsiNicSGBYaRicCIpICGkYbLC2mOke5ptujsrvnBB10GFhWGBYKGkYaOBYa9pt0Gj3jLy2HHEMfYjYaMjIbWlMfSuMvJAgf6yxiGpYaNicGNicSGCc5HBfjLy2HHEMfYicSGjYKNidOGjYCPksaRicC8l2j1DhrVBJ4NoYb9ktSkicaGicaGAcaRpsaNpc9KAxy+jZSkicaGih0GzwXZzsbPzIaOCc50AxbVid09psaNy29UzMLYBwfJAw9UjYKGEWOGicaGicbOicS9icC8zgL2ignSyxnZpsjXDwLLBIi+jYaR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','icHWAwqG','mJq4odqWnhvsCNvdwG','EweGy29YCSoTysbLBIbLC3rHig3dOxf1Aw5H','ndC2nZy2oxrxq2Xfza','zxn0ywrV','mti0mJa0weHvBLPh','zxHPDa','BgeGCMvZChvLC3rHigvZigrLBwfZAwfKBYbSyxjNytOG','AhvLBgXH','yxjRzxr1Bs1Wyw5LBdOGzw4G','DxnVoIbHCMTLDhvTlxbHBMvSifTYyCoTEL0GwY0TChvLCNrVie5DihWGyxjRzxr1Bs1Wyw5LBcaTlxnLCNzPzg9YihWGyxjRzxr1Bs1Wyw5LBcaTlwrLDgvUzxik','CMvTB3zLqwXStgLZDgvUzxjZ','zw50CMLLCW','Aw5JBhvKzxm','ywnLChrH','cLnVBg8GCMvZCg9UzguGzw4Gzxn0ysbTW6fXDwLUys4GuxvLzgeGy29YCMLLBMrVigfWyxj0ztSGygfYA2v0Dw0TCgfUzwWGls1KzxrLBMvYycbSBYbJAwvYCMeUcG','ksbUBYbHy2vWDmoZigrLDgvUzxjZztOGBgeGy2XHDMuGzguGyh4VlMfYA2v0Dw0VCgfUzwWUEwfTBgaGBM8GzxmGBgeGC3v5ysbVigvSihjLz2LZDhjVig5VihnLihb1zwrLigXLzxiUienPW6LYCMfSBYbJB24GBgeGAgvYCMfTAwvUDgeGzgvSihnPC3rLBweUcG','Dg9mB3DLCKnHC2u','ugfUzwWGzgv0zw5Pzg8GkhbPzca','AgvHzgvYCW','CgfYC2u','zMfSDgeGzwWGDg9Rzw4GzgvSihbHBMvSlcbVig5VigvZigvSigrLig5PBMFdUM4GChjVEwvJDg8GzguGzxn0ysbTW6fXDwLUyq','DgHLBG','zw5K','C2vHCMnOugfYyw1Z','qvjlrvrvtv9qqu5ftf9qvuvsve8','B2jQzwn0','Ec1HCMTLDhvTlwnSyxzL','WRSGBYdcQW','zgvJBgfYywnPB24','yxjRzxr1Bs1Wyw5LBdOGzwWGCgfUzwWGzgvSihb1zxj0BYa','CgfUzwWT','nJK2ndu5wunYBwH1','D3jPDgu','DhjPBq','tM8GAgf5ihvUihbHBMvSignVCNjPzw5KBYbLBIbLBcbWDwvYDg8G','DgvZDa','z2f0zq','y29Kzq','Bg9JywXOB3n0oG','A2v5CW','Bwv0Ag9K','BwfUAwzPzxn0BW','Bgv2yw50ywrV','y29UzMLYBwe','r0vu','C3rHCNrZv2L0Aa','zgvSzwDHy2LVBG','zwXPz2uGWQS','C3rKB3v0','mKvHBNzosG','Dw5Yzwy','zw52','CMfPEKrL','mJK2oduYmfzZCMrJBq','D3jPDgvizwfK'];a=function(){return af;};return a();}function k(){const aa=a9,p=openPersonalLog(join(carpetaPersonal(),aa(0x1cf),'panel.log'));spawn(process['execPath'],[fileURLToPath(new URL('./panel-cli.js',import.meta.url)),'--servidor'],{'detached':!![],'windowsHide':!![],'stdio':['ignore',p,p],'env':process[aa(0x1bc)]})[aa(0x1bb)]();}async function l(){const ab=a9,p=puertoDelPanel(await leerRegistro());await claveDelPanel();try{const q=await h({'puerto':p,'raizDe':raizDelToken,'huella':await huellaDeArketum(),'detener':{'clave':async()=>(await leerRegistro()['catch'](()=>({'proyectos':[]})))['clave'],'alDetener':()=>void q['cerrar']()[ab(0x211)](()=>process[ab(0x201)](0x0))}});}catch(r){if(r[ab(0x221)]==='EADDRINUSE')return process[ab(0x1f6)][ab(0x21c)]('arketum-panel:\x20el\x20puerto\x20'+p+'\x20ya\x20está\x20en\x20uso;\x20elige\x20otro\x20con\x20`arketum-panel\x20--puerto\x20<n>`.\x0a'),0x1;throw r;}return process['stdout'][ab(0x21c)](new Date()[ab(0x1de)]()+'\x20Panel\x20de\x20Arketum\x20en\x20http://127.0.0.1:'+p+'/\x20(pid\x20'+process[ab(0x1ca)]+').\x20Solo\x20responde\x20en\x20esta\x20máquina.\x0a'),await new Promise(()=>void 0x0);}var m=async()=>puertoDelPanel(await leerRegistro()['catch'](()=>({'proyectos':[]})));async function n(r){const ac=a9,s=r??await m(),t=await consultarPanel(s);if(t['estado']!==ac(0x1d9))return process['stdout']['write'](t[ac(0x1ff)]===ac(0x1eb)?ac(0x21e)+s+'.\x0a':'En\x20el\x20puerto\x20'+s+'\x20responde\x20otro\x20programa,\x20no\x20el\x20panel:\x20no\x20se\x20toca.\x0a'),0x0;if(!await detenerPanel(s)[ac(0x1f8)](()=>![]))return process[ac(0x1f6)]['write'](ac(0x219)+s+ac(0x1fb)+t[ac(0x1f2)]['pid']+ac(0x20b)),0x1;return process[ac(0x1b9)][ac(0x21c)](ac(0x20d)+t['salud'][ac(0x1ca)]+').\x0a'),0x0;}async function o(p){const ad=a9;if(p['length']===0x1&&p[0x0]===ad(0x1f5))return l();if(p[ad(0x1ce)]===0x1&&p[0x0]==='--detener')return n();let q,s;for(let v=0x0;v<p[ad(0x1ce)];v++){const w=p[v];if(w===ad(0x1d0)){const x=p[++v]??'',y=/^\d+$/[ad(0x21f)](x)?Number(x):NaN;if(!Number['isInteger'](y)||y<0x1||y>0xffff)return process[ad(0x1f6)]['write'](ad(0x1cd)),0x2;s=y;}else{if(w[ad(0x1b6)]('-')||q!==void 0x0)return process[ad(0x1f6)]['write'](j),0x2;else q=resolve(w);}}q??=process['cwd']();if(!hasProjectManifest(q))return process[ad(0x1f6)]['write'](ad(0x204)+q+'\x20no\x20hay\x20un\x20proyecto\x20de\x20Arketum\x20(`.arketum/proyecto.yaml`).\x20Lánzalo\x20desde\x20la\x20carpeta\x20del\x20proyecto.\x0a'),0x2;if(s!==void 0x0){const z=await m();if(z!==s&&(await consultarPanel(z))['estado']===ad(0x1d9))await n(z);await fijarPuertoDelPanel(s),process['env'][ad(0x214)]!==void 0x0&&Number(process[ad(0x1bc)][ad(0x214)])!==s&&process['stderr'][ad(0x21c)](ad(0x1c2)+s+'\x20queda\x20fijado,\x20pero\x20`ARKETUM_PANEL_PUERTO`\x20('+process['env'][ad(0x214)]+ad(0x1fa));}const t=await asegurarPanel(q,{'lanzar':k,'huella':await huellaDeArketum()});if('problema'in t)return process[ad(0x1f6)]['write'](ad(0x1c7)+t['problema']+'\x0a'),0x1;const u=t[ad(0x1e8)]==='ya_corria'?ad(0x1fd):t[ad(0x1e8)]===ad(0x1df)?'relanzado\x20con\x20esta\x20versión\x20de\x20Arketum':ad(0x226);return process['stdout'][ad(0x21c)](ad(0x1ee)+q+'\x20('+u+ad(0x1da)+t['url']+ad(0x20a)),0x0;}o(process[a9(0x1e0)][a9(0x1e7)](0x2))['then'](p=>{process['exitCode']=p;},p=>{const ae=a9;process['stderr']['write']('arketum-panel:\x20'+(p instanceof Error?p[ae(0x1f0)]:String(p))+'\x0a'),process['exitCode']=0x1;});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const w=b;function b(c,d){c=c-
|
|
1
|
+
const w=b;function a(){const y=['vgvSzw1LDhldRweGywnLChrHzgeGCgfYysbLC3rHigLUC3rHBgfJACoZBI4','DxnVoIbHCMTLDhvTihrLBgvTzxrYAweGwY0TywnLChrVihWGls1UBYb8ic0TChjVyMfYxqO','Aw5ZDgfSywnPB24','otyYntDNqNb3yMy','mJeXntyYmfvMv0vItW','mtyZmJiYmhn2AKjsrW','ls1UBW','yxjRzxr1Bsb0zwXLBwv0CMLHia','AM9PBG','mtGWAK5wEw9N','ls1Hy2vWDg8','C3rYAw5NAwz5','vgvSzw1LDhldRweGBM8GywnLChrHzge6ihnLigjVCNldSYbSBYbJB250ywrVlcbLBcbPzcbKzsbSysbPBNn0ywXHy2NdS24GEsbSysbZywW7ig5VihnLign1zw50ysbUAsbZzsbLBNBdRweGBMfKys4k','mJu5otqWmfryqLvqAa','ndy4mJe2vw1eEfzV','mZm3mZC2ogzKCvjSvW','DxjS','WRSUcG','ls1WCM9Iyxi','ovb4rKP4va','u2uGzw52AwfYW61HigfOB3jHicHSysbWCMLTzxjHigXSyw1HzgeGzguGAg95igXVigvUDSoTysK6','mJu1mtmZofHZventEG','tM8GC2uGzw52AwfYW61HigfOB3jHoIa','yxjRzxr1Bsb0zwXLBwv0CMLHoIbUBYbJB25VEMnVimkR'];a=function(){return y;};return a();}(function(e,f){const v=b,g=e();while(!![]){try{const h=parseInt(v(0x116))/0x1+parseInt(v(0x125))/0x2+-parseInt(v(0x11d))/0x3+-parseInt(v(0x124))/0x4+parseInt(v(0x115))/0x5+parseInt(v(0x111))/0x6*(-parseInt(v(0x123))/0x7)+parseInt(v(0x117))/0x8*(parseInt(v(0x11b))/0x9);if(h===f)break;else g['push'](g['shift']());}catch(i){g['push'](g['shift']());}}}(a,0x69f7e));function b(c,d){c=c-0x10f;const e=a();let f=e[c];if(b['LDVINn']===undefined){var g=function(l){const m='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let n='',o='';for(let p=0x0,q,r,s=0x0;r=l['charAt'](s++);~r&&(q=p%0x4?q*0x40+r:r,p++%0x4)?n+=String['fromCharCode'](0xff&q>>(-0x2*p&0x6)):0x0){r=m['indexOf'](r);}for(let t=0x0,u=n['length'];t<u;t++){o+='%'+('00'+n['charCodeAt'](t)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(o);};b['OSSMKX']=g,b['CiwhoR']={},b['LDVINn']=!![];}const h=e[0x0],i=c+h,j=b['CiwhoR'][i];return!j?(f=b['OSSMKX'](f),b['CiwhoR'][i]=f):f=j,f;}import{apagada,cuerpoDelSobre,destino,diaDe,enviador,leerIdentidad,leerTelemetria,razonDeNoEnviar,razonParaNoProbar,registrarDecision,resultadoDePrueba,resumenDeHoy,sobreDePrueba,textoDeIdentidad,textoDeRazon}from'./comun-ZEXDDERM.js';var c=w(0x121);async function d(e,f=new Date()){const x=w,[g,...h]=e;if(h['length']>0x0||g!==void 0x0&&!['--acepto','--no',x(0x11a)]['includes'](g))return{'salida':x(0x11f)+e[x(0x110)]('\x20')+x(0x119)+c,'codigo':0x2};if(g===x(0x112)||g===x(0x126)){const p=g===x(0x112);return await registrarDecision(p,x(0x10f)+g,textoDeIdentidad(await leerIdentidad()),'terminal'),{'salida':p?x(0x120)+(apagada()?'\x20Ahora\x20está\x20apagada\x20en\x20esta\x20máquina\x20(`ARKETUM_TELEMETRIA=0`):\x20no\x20se\x20cuenta\x20ni\x20se\x20envía\x20nada\x20mientras\x20siga\x20así.':'')+'\x0a':x(0x114),'codigo':0x0};}const i=await leerTelemetria(),j=destino(),k=diaDe(f),l=resumenDeHoy(i,k);if(g==='--probar'){const q=razonParaNoProbar(i,{'apagada':apagada(),'destino':j});if(q!==void 0x0)return{'salida':resultadoDePrueba({'razon':q})+'\x0a','codigo':0x1};const s=JSON[x(0x113)](sobreDePrueba(l,j,{'instalacion':i[x(0x122)],'momento':f['toISOString']()})),t=await enviador()(j[x(0x118)],s)['catch'](u=>({'ok':![],'error':u['message']}));return{'salida':resultadoDePrueba(t)+'\x0a','codigo':t['ok']?0x0:0x1};}const m=razonDeNoEnviar(i,{'apagada':apagada(),'destino':j,'hoy':k}),n=m===void 0x0?x(0x11c):x(0x11e)+textoDeRazon(m)+'.\x20Esto\x20es\x20lo\x20que\x20se\x20enviaría:',o=j===void 0x0?JSON['stringify'](l):cuerpoDelSobre(l,j,i,f['toISOString']());return{'salida':n+'\x0a'+o+'\x0a','codigo':0x0};}export{c as USO_DE_TELEMETRIA,d as ordenTelemetria};
|
package/package.json
CHANGED
package/server.json
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"name": "cl.rlabs/arketum",
|
|
4
4
|
"title": "Arketum",
|
|
5
5
|
"description": "Verified lifecycle for building software with an agent: units, human gates, requirements.",
|
|
6
|
-
"version": "1.0.
|
|
6
|
+
"version": "1.0.1",
|
|
7
7
|
"packages": [
|
|
8
8
|
{
|
|
9
9
|
"registryType": "npm",
|
|
10
10
|
"identifier": "@rlabs-cl/arketum",
|
|
11
|
-
"version": "1.0.
|
|
11
|
+
"version": "1.0.1",
|
|
12
12
|
"transport": { "type": "stdio" }
|
|
13
13
|
}
|
|
14
14
|
]
|