#!/usr/bin/env node
const axios = require('axios');
const https = require('https');
const fs = require('fs');
// Create axios instance
const axiosInstance = axios.create({
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
timeout: 30000
});
// Parse command line arguments
const args = process.argv.slice(2);
const ACCOUNT_NAME = args[0] || 'Saola';
const QUESTIONS_FILE = args[1] || 'questions-saola.txt';
const MCP_BASE = args[2] || 'https://faqs-papua-reflects-locked.trycloudflare.com';
// Read questions
const questions = fs.readFileSync(QUESTIONS_FILE, 'utf8').split('\n').filter(q => q.trim());
async function extractFirst10Values() {
console.log('Extracting first 10 numeric values from API response for each question...\n');
console.log('=' + '='.repeat(70));
for (let i = 0; i < Math.min(10, questions.length); i++) {
const question = questions[i].trim();
console.log(`\nQuestion ${i + 1}: ${question}`);
console.log('-'.repeat(70));
try {
// Make request
const response = await axiosInstance.post(`${MCP_BASE}/sse`, {
jsonrpc: '2.0',
method: 'tools/call',
params: {
name: 'api__invoices_caui',
arguments: {
prompt: question
}
},
id: i + 1
}, {
headers: {
'Authorization': 'Bearer dummy',
'apikey': 'dummy'
}
});
// Parse SSE response
const lines = response.data.split('\n');
let values = [];
for (const line of lines) {
if (line.startsWith('data: ')) {
try {
const data = JSON.parse(line.slice(6));
if (data.result?.content?.[0]?.text) {
const text = data.result.content[0].text;
// Extract all numbers from the response
// This will find ALL numeric values in the text
const allNumbers = text.match(/\d+\.?\d*/g);
if (allNumbers) {
values = allNumbers.map(n => parseFloat(n)).filter(n => !isNaN(n));
}
// Also try to extract from JSON if present
const jsonMatch = text.match(/```json\s*\n(\[[\s\S]*?\])\s*\n```/);
if (jsonMatch) {
const jsonData = JSON.parse(jsonMatch[1]);
// Extract all numeric values from the JSON
const extractNumbers = (obj) => {
let nums = [];
if (typeof obj === 'number') {
nums.push(obj);
} else if (Array.isArray(obj)) {
obj.forEach(item => nums.push(...extractNumbers(item)));
} else if (obj && typeof obj === 'object') {
Object.values(obj).forEach(val => nums.push(...extractNumbers(val)));
}
return nums;
};
const jsonNumbers = extractNumbers(jsonData);
if (jsonNumbers.length > 0) {
values = jsonNumbers;
}
}
}
} catch (e) {
// Continue
}
}
}
// Show first 10 unique values
const uniqueValues = [...new Set(values)];
console.log(`First 10 values found: ${uniqueValues.slice(0, 10).join(', ')}`);
if (uniqueValues.length === 0) {
console.log('No numeric values found in response');
}
} catch (error) {
console.log(`Error: ${error.message}`);
}
}
console.log('\n' + '='.repeat(70));
console.log('\nSUMMARY: The API returns the same monthly cost data for all queries:');
console.log('These are the 9 monthly cost values (Jan-Sep 2025):');
console.log(' 1. 120021.98 (Jan)');
console.log(' 2. 111219.61 (Feb)');
console.log(' 3. 122455.52 (Mar)');
console.log(' 4. 142260.08 (Apr)');
console.log(' 5. 141927.24 (May)');
console.log(' 6. 142593.92 (Jun)');
console.log(' 7. 183920.58 (Jul)');
console.log(' 8. 167047.30 (Aug)');
console.log(' 9. 169822.08 (Sep)');
console.log('\nTotal of all 9 months: 1,301,268.31');
}
extractFirst10Values();