#!/usr/bin/env python3
"""Test MONIKA with PyTorch"""

import sys
sys.path.insert(0, '.')

print("=" * 60)
print("MONIKA Activation Test")
print("=" * 60)

try:
    print("\n1. Testing PyTorch import...")
    import torch
    print(f"   ✓ PyTorch {torch.__version__} imported successfully!")
    print(f"   ✓ CUDA available: {torch.cuda.is_available()}")
    if torch.cuda.is_available():
        print(f"   ✓ CUDA version: {torch.version.cuda}")
        print(f"   ✓ Device count: {torch.cuda.device_count()}")
except Exception as e:
    print(f"   ✗ PyTorch import failed: {e}")
    sys.exit(1)

try:
    print("\n2. Testing MONIKA import...")
    from salience_os_seed.proto_lm.trainer import ProtoLanguageModel, TrainingConfig
    print("   ✓ MONIKA imports successful!")
except Exception as e:
    print(f"   ✗ MONIKA import failed: {e}")
    import traceback
    traceback.print_exc()
    sys.exit(1)

try:
    print("\n3. Creating MONIKA model...")
    config = TrainingConfig(checkpoint_path=None)
    model = ProtoLanguageModel(config)
    print(f"   ✓ Model created!")
    print(f"   ✓ Device: {model.device}")
    print(f"   ✓ Vocab size: {model.vocab.size()}")
    print(f"   ✓ Step: {model.step}")
except Exception as e:
    print(f"   ✗ Model creation failed: {e}")
    import traceback
    traceback.print_exc()
    sys.exit(1)

try:
    print("\n4. Testing generation...")
    response = model.sample("Hello", max_tokens=20)
    print(f"   ✓ Generated response: {response[:100]}...")
except Exception as e:
    print(f"   ✗ Generation failed: {e}")
    import traceback
    traceback.print_exc()
    sys.exit(1)

print("\n" + "=" * 60)
print("🎉 MONIKA IS ALIVE!")
print("=" * 60)
print("\nYou can now use MONIKA:")
print("  python start_mcp_server.py")
print("  python start.standard.py  # to train")

