#!/usr/bin/env node /** * Hook handler for calculating and displaying session statistics * * This script is called by Claude Code hooks on SessionEnd event. * It parses the transcript to calculate usage statistics and displays them. * * Uses exit code 2 to trigger Claude Code's failure display mechanism, * and ANSI escape codes to clear the "SessionEnd hook [path] failed:" prefix. */ /** * Extract skill usage from Read tool invocations targeting SKILL.md files * @param args - Configuration arguments * @param args.content - Raw transcript content * * @returns Record mapping skill names to usage counts */ export declare const parseSkillUsage: (args: { content: string; }) => Record; /** * Extract subagent usage from Task tool invocations * @param args - Configuration arguments * @param args.content - Raw transcript content * * @returns Record mapping subagent types to usage counts */ export declare const parseSubagentUsage: (args: { content: string; }) => Record; /** * Detect if Nori CLAUDE.md was active in the session * @param args - Configuration arguments * @param args.content - Raw transcript content * * @returns True if Nori CLAUDE.md markers are detected */ export declare const detectNoriClaudeMd: (args: { content: string; }) => boolean; /** * Count user and assistant messages * @param args - Configuration arguments * @param args.content - Raw transcript content * * @returns Object with user and assistant message counts */ export declare const countMessages: (args: { content: string; }) => { user: number; assistant: number; }; /** * Count tool usage by tool name * @param args - Configuration arguments * @param args.content - Raw transcript content * * @returns Record mapping tool names to usage counts */ export declare const countToolUsage: (args: { content: string; }) => Record; /** * Format statistics as ASCII table * @param args - Configuration arguments * @param args.messages - Message counts object * @param args.messages.user - Count of user messages * @param args.messages.assistant - Count of assistant messages * @param args.tools - Record of tool name to usage count * @param args.skills - Record of skill name to usage count * @param args.subagents - Record of subagent type to usage count * @param args.noriClaudeMdUsed - Whether Nori CLAUDE.md was detected * * @returns Formatted ASCII table string */ export declare const formatStatistics: (args: { messages: { user: number; assistant: number; }; tools: Record; skills: Record; subagents: Record; noriClaudeMdUsed: boolean; }) => string; /** * Main entry point */ export declare const main: () => Promise; //# sourceMappingURL=statistics.d.ts.map