MCPcopy
hub / github.com/codeaashu/claude-code / extractToolStats

Function extractToolStats

src/commands/insights.ts:467–728  ·  view source on GitHub ↗
(log: LogOption)

Source from the content-addressed store, hash-verified

465}
466
467function extractToolStats(log: LogOption): {
468 toolCounts: Record<string, number>
469 languages: Record<string, number>
470 gitCommits: number
471 gitPushes: number
472 inputTokens: number
473 outputTokens: number
474 // New stats
475 userInterruptions: number
476 userResponseTimes: number[]
477 toolErrors: number
478 toolErrorCategories: Record<string, number>
479 usesTaskAgent: boolean
480 usesMcp: boolean
481 usesWebSearch: boolean
482 usesWebFetch: boolean
483 // Additional stats
484 linesAdded: number
485 linesRemoved: number
486 filesModified: Set<string>
487 messageHours: number[]
488 userMessageTimestamps: string[] // ISO timestamps for multi-clauding detection
489} {
490 const toolCounts: Record<string, number> = {}
491 const languages: Record<string, number> = {}
492 let gitCommits = 0
493 let gitPushes = 0
494 let inputTokens = 0
495 let outputTokens = 0
496
497 // New stats
498 let userInterruptions = 0
499 const userResponseTimes: number[] = []
500 let toolErrors = 0
501 const toolErrorCategories: Record<string, number> = {}
502 let usesTaskAgent = false
503
504 // Additional stats
505 let linesAdded = 0
506 let linesRemoved = 0
507 const filesModified = new Set<string>()
508 const messageHours: number[] = []
509 const userMessageTimestamps: string[] = [] // For multi-clauding detection
510 let usesMcp = false
511 let usesWebSearch = false
512 let usesWebFetch = false
513 let lastAssistantTimestamp: string | null = null
514
515 for (const msg of log.messages) {
516 // Get message timestamp for response time calculation
517 const msgTimestamp = (msg as { timestamp?: string }).timestamp
518
519 if (msg.type === 'assistant' && msg.message) {
520 // Track timestamp for response time calculation
521 if (msgTimestamp) {
522 lastAssistantTimestamp = msgTimestamp
523 }
524

Callers 1

logToSessionMetaFunction · 0.85

Calls 4

countCharInStringFunction · 0.85
getLanguageFromPathFunction · 0.70
addMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected