claude-monitor
Version:
Real-time terminal monitoring tool for Claude AI token usage
42 lines • 1.82 kB
JavaScript
import { UsageDataReader } from './data/reader.js';
import { SessionAnalyzer } from './data/analyzer.js';
import { CostMode } from './types/index.js';
import { getTotalTokens } from './types/index.js';
async function debug() {
const reader = new UsageDataReader();
const analyzer = new SessionAnalyzer();
console.log('Loading usage entries...');
const result = await reader.loadUsageEntries({
hoursBack: 5,
costMode: CostMode.AUTO,
});
console.log(`Found ${result.entries.length} entries`);
if (result.entries.length > 0) {
const firstEntry = result.entries[0];
const lastEntry = result.entries[result.entries.length - 1];
console.log(`Date range: ${firstEntry.timestamp} to ${lastEntry.timestamp}`);
}
console.log('\nTransforming to session blocks...');
const blocks = analyzer.transformToBlocks(result.entries);
console.log(`Created ${blocks.length} blocks`);
for (const block of blocks) {
const totalTokens = getTotalTokens(block.tokenCounts);
console.log(`\nBlock ${block.id}:`);
console.log(` Start: ${block.startTime}`);
console.log(` End: ${block.endTime}`);
console.log(` Active: ${block.isActive}`);
console.log(` Gap: ${block.isGap}`);
console.log(` Entries: ${block.entries.length}`);
console.log(` Total tokens: ${totalTokens}`);
console.log(` Cost: $${block.costUsd.toFixed(2)}`);
}
const activeBlock = blocks.find(b => b.isActive);
if (activeBlock) {
console.log('\nActive block details:');
console.log(` Tokens: ${getTotalTokens(activeBlock.tokenCounts)}`);
console.log(` Should be under 44K for custom plan`);
}
}
debug().catch(console.error);
//# sourceMappingURL=debug.js.map