export function formatToolActivity(toolName: string): string { switch (toolName) { // Built-in provider tool names case "read_file": case "Read": return "Reading file..."; case "write_file": case "Write": case "Edit": return "Writing file..."; case "list_directory": case "Glob": return "Listing files..."; case "search_files": case "Grep": return "Searching files..."; case "exec_shell": case "Bash": return "Executing command..."; // Claude Code additional tool names case "Task": return "Running task..."; case "WebFetch": return "Fetching web content..."; case "WebSearch": return "Searching the web..."; case "NotebookEdit": return "Editing notebook..."; case "TodoWrite": return "Updating tasks..."; default: return `Using ${toolName}...`; } } export const estimateTokens = (text: string): number => Math.ceil(text.length / 4); export const getContextWindowSize = ( modelName: string, claudeContextWindows?: Map, ): number => { if (modelName.startsWith("claude-")) { return claudeContextWindows?.get(modelName) ?? 200000; } if (modelName.includes("llama3")) return 8192; if (modelName.includes("qwen2.5")) return 32768; if (modelName.includes("deepseek")) return 16384; return 8192; };