Ctrl K
ComunidadGuías…

scripts/_sbx_lf.mjs

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
// READ-ONLY: query Langfuse for sally's failing turn at 2026-10-13T07:23 UTC.
const PUB=process.env.LANGFUSE_PUBLIC_KEY, SEC=process.env.LANGFUSE_SECRET_KEY;
const HOSTS=[process.env.LANGFUSE_HOST, process.env.LANGFUSE_BASEURL, 'https://us.cloud.langfuse.com','https://cloud.langfuse.com'].filter(Boolean);
const auth='Basic '+Buffer.from(`${PUB}:${SEC}`).toString('base64');
const SESSION='amiko:cmmkiu6cq0000lb04cupxbn3y';
let HOST=null;
for (const h of HOSTS) {
  try { const r=await fetch(`${h}/api/public/traces?limit=1`,{headers:{Authorization:auth}}); if(r.ok){HOST=h;break;} console.log('try',h,r.status);}catch(e){console.log('try',h,'ERR',e.message);}
}
if(!HOST){console.log('no working host');process.exit(1);}
console.log('HOST:',HOST,'\n');

// traces in the window for this session
const from='2026-10-13T07:20:00Z', to='2026-10-13T07:26:00Z';
const tr=await (await fetch(`${HOST}/api/public/traces?sessionId=${encodeURIComponent(SESSION)}&fromTimestamp=${from}&toTimestamp=${to}&limit=20`,{headers:{Authorization:auth}})).json();
console.log('traces found:', tr.data?.length ?? 0);
for (const t of (tr.data||[])) {
  console.log(`\n--- trace ${t.id} | ${t.timestamp} | name=${t.name} | level=${t.level} ---`);
  if(t.statusMessage) console.log('  statusMessage:', String(t.statusMessage).slice(0,300));
  // observations for this trace
  const ob=await (await fetch(`${HOST}/api/public/observations?traceId=${t.id}&limit=50`,{headers:{Authorization:auth}})).json();
  for (const o of (ob.data||[])) {
    if(o.level==='ERROR' || o.type==='GENERATION'){
      console.log(`  [${o.type}] ${o.name} level=${o.level} model=${o.model}`);
      if(o.statusMessage) console.log('     statusMessage:', String(o.statusMessage).slice(0,500));
      if(o.level==='ERROR' && o.output) console.log('     output:', JSON.stringify(o.output).slice(0,800));
    }
  }
}