UNPKG

claude-monitor

Version:

Real-time terminal monitoring tool for Claude AI token usage

42 lines 1.82 kB
#!/usr/bin/env node 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