import { createPostgresPool } from './src/lib/postgres.mjs'; import { deriveQuoteOutcomeRecords } from './src/core/quote-outcomes.mjs'; async function main() { const pool = createPostgresPool({ connectionString: process.env.POSTGRES_URL }); const submissionsResult = await pool.query(` SELECT event_id, observed_at, ingested_at, quote_id, payload FROM trade_execution_results WHERE payload->>'status' = 'submitted' `); const submissions = submissionsResult.rows; const [commandsResult, decisionsResult, inventoryResult] = await Promise.all([ pool.query(`SELECT event_id, observed_at, ingested_at, quote_id, payload FROM execute_trade_commands`), pool.query(`SELECT event_id, observed_at, ingested_at, quote_id, payload FROM trade_decisions`), pool.query(` SELECT event_id, observed_at, ingested_at, payload FROM intent_inventory_snapshots ORDER BY COALESCE(observed_at, ingested_at) DESC LIMIT 5000 `), ]); console.log("Memory before derive:", process.memoryUsage().heapUsed / 1024 / 1024, "MB"); const btcAsset = { assetId: 'nep141:nbtc.bridge.near' }; const eureAsset = { assetId: 'nep141:eure.omft.near' }; console.log("Running derive..."); const records = deriveQuoteOutcomeRecords({ submissions, commands: commandsResult.rows, decisions: decisionsResult.rows, inventorySnapshots: inventoryResult.rows, btcAsset, eureAsset, now: new Date().toISOString() }); const completed = records.filter(r => r.outcome_status === 'completed'); console.log("Found completed:", completed.length); process.exit(0); } main().catch(console.error);