"""
Extended Tools - Git, Analysis, etc.
"""

import subprocess
from pathlib import Path
from core.tools import SafeToolkit

class ExtendedToolkit(SafeToolkit):
    def git_status(self, description=""):
        """Check git status"""
        return self.bash("git status --short", description)
    
    def git_commit(self, message, description=""):
        """Commit changes"""
        self.bash("git add .", "Stage all changes")
        return self.bash(f'git commit -m "{message}"', description)
    
    def git_log(self, n=5, description=""):
        """Show recent commits"""
        return self.bash(f"git log --oneline -n {n}", description)
    
    def analyze_project(self, description=""):
        """Analyze project structure"""
        result = {
            "success": True,
            "files": {},
            "stats": {}
        }
        
        # Count file types
        py_files = self.bash("find . -name '*.py' | wc -l", "Count Python files")
        json_files = self.bash("find . -name '*.json' | wc -l", "Count JSON files")
        
        result["stats"]["python_files"] = py_files.get("stdout", "").strip()
        result["stats"]["json_files"] = json_files.get("stdout", "").strip()
        
        return result

if __name__ == "__main__":
    print("EXTENDED TOOLS TEST")
    print("=" * 70)
    
    tools = ExtendedToolkit()
    
    print("\n1. Git status:")
    result = tools.git_status("Check project state")
    print(f"   {result['stdout'][:100] if result['success'] else result}")
    
    print("\n2. Git log:")
    result = tools.git_log(3, "Recent history")
    print(f"   {result['stdout'][:150]}")
    
    print("\n3. Project analysis:")
    result = tools.analyze_project("Analyze structure")
    print(f"   Python files: {result['stats']['python_files']}")
    print(f"   JSON files: {result['stats']['json_files']}")
    
    print("\n✅ EXTENDED TOOLS WORKING")
