import os

# Configuration
PROJECT_DIR = '.'
OUTPUT_FILE = 'intaleq_v1_secure_latest.md'
EXCLUDED_DIRS = {'.git', 'vendor', 'node_modules', '.gemini'}
EXCLUDED_FILES = {OUTPUT_FILE, 'aggregate_files.py'}

def aggregate_files():
    with open(OUTPUT_FILE, 'w', encoding='utf-8') as outfile:
        outfile.write(f'# Intaleq V1 - Secure Latest Version\n\n')
        
        for root, dirs, files in os.walk(PROJECT_DIR):
            # Prune excluded directories
            dirs[:] = [d for d in dirs if d not in EXCLUDED_DIRS]
            
            for file in files:
                if file in EXCLUDED_FILES:
                    continue
                
                filepath = os.path.join(root, file)
                rel_path = os.path.relpath(filepath, PROJECT_DIR)
                
                # We mainly want to include code files
                if any(file.endswith(ext) for ext in ['.php', '.sql', '.ini', '.json', '.md', '.txt', '.py', '.sh']):
                    try:
                        with open(filepath, 'r', encoding='utf-8', errors='ignore') as infile:
                            content = infile.read()
                            
                        outfile.write(f'## File: {rel_path}\n')
                        outfile.write(f'```\n')
                        outfile.write(content)
                        outfile.write(f'\n```\n\n')
                        print(f"Added: {rel_path}")
                    except Exception as e:
                        print(f"Could not read {rel_path}: {e}")

if __name__ == "__main__":
    aggregate_files()
    print(f"\nDone! File created: {OUTPUT_FILE}")
