scripts/_sbx_sally11.mjs
Rama main · réplica de lectura del repositorio original.
// READ-ONLY: all agents named sally + any avatar/image field we can find.
import pg from 'pg';
const c = new pg.Client({ connectionString: process.env.DATABASE_URL });
await c.connect();
const q = async (sql, p) => (await c.query(sql, p)).rows;
const agents = await q(`select agent_id, name, status, created_at, updated_at, config_json from agents where name ilike 'sally' order by created_at`);
console.log(`found ${agents.length} agents named "sally":\n`);
for (const a of agents) {
let cfg = a.config_json; try { cfg = typeof cfg==='string'?JSON.parse(cfg):cfg; } catch {}
const owner = await q(`select user_id from user_agents where agent_id=$1 and role='owner'`, [a.agent_id]);
const last = await q(`select max(ts) m from session_events where agent_id=$1`, [a.agent_id]);
// hunt for avatar-ish keys anywhere in config
const blob = JSON.stringify(cfg||{});
const avatarKeys = {};
const scan = (o, path='') => { if (o && typeof o==='object') for (const k of Object.keys(o)) { const np = path?path+'.'+k:k; if (/avatar|image|photo|picture|icon|portrait|head/i.test(k)) avatarKeys[np]=o[k]; else scan(o[k], np); } };
scan(cfg);
console.log(`agent_id: ${a.agent_id}`);
console.log(` owner: ${JSON.stringify(owner.map(o=>o.user_id))} status: ${a.status} lastEvent: ${last[0].m}`);
console.log(` created: ${a.created_at?.toISOString?.()}`);
console.log(` avatar-ish fields in config: ${JSON.stringify(avatarKeys)}`);
// also owner user avatar
if (owner[0]) {
const u = (await q(`select * from users where user_id=$1`, [owner[0].user_id]))[0];
const ub = JSON.stringify(u);
const uav = {}; for (const k of Object.keys(u)) if (/avatar|image|photo|picture|icon/i.test(k)) uav[k]=u[k];
console.log(` owner user avatar fields: ${JSON.stringify(uav)}`);
}
console.log('');
}
// what columns does users table have (to know where avatar might live)
console.log('users columns:', (await q(`select column_name from information_schema.columns where table_schema='public' and table_name='users'`)).map(r=>r.column_name).join(', '));
console.log('agents columns:', (await q(`select column_name from information_schema.columns where table_schema='public' and table_name='agents'`)).map(r=>r.column_name).join(', '));
await c.end();