import { connectMongo, disconnectMongo } from '../src/data/mongo.js'; import { leadTools } from '../src/tools/crm/leads.tools.js'; import { analyticsTools } from '../src/tools/crm/analytics.tools.js'; await connectMongo(); const ctx = { configurable: { user: { id: '000000000000000000000000', name: 'Smoke Admin', role: 'admin' }, sessionId: 'smoke', traceId: 'smoke', channel: 'crm_chat', runtime: {}, }, }; const cases = [ ['search_leads', { lead_tag: 'hot', limit: 3 }], ['lead_funnel_breakdown', { group_by: 'current_stage', date_range: 'all_time' }], ['lead_trend', { date_range: 'last_30_days', bucket: 'week' }], ['find_stale_leads', { inactive_days: 30, limit: 3 }], ['business_snapshot', { date_range: 'last_30_days' }], ['conversion_funnel', { date_range: 'last_90_days' }], ['team_performance', { date_range: 'last_90_days' }], ['source_effectiveness', { date_range: 'last_90_days' }], ['activity_analytics', { date_range: 'last_7_days' }], ['enrollment_report', { date_range: 'last_90_days' }], ]; const all = [...leadTools, ...analyticsTools]; for (const [name, args] of cases) { const t = all.find((x) => x.name === name); if (!t) { console.log(`?? ${name} NOT FOUND`); continue; } const started = Date.now(); try { const out = await t.invoke(args, ctx); const parsed = JSON.parse(out); const ok = parsed.ok !== false; const preview = JSON.stringify(parsed.data ?? parsed).slice(0, 220); console.log(`${ok ? 'PASS' : 'FAIL'} ${name} (${Date.now() - started}ms) ${preview}`); } catch (e) { console.log(`ERR ${name}: ${e.message}`); } } await disconnectMongo(); process.exit(0);