"""Simple verification script for Conversation Gateway implementation. This script verifies that the gateway can be imported and basic functionality works. Run with: python3 verify_gateway.py """ import sys def verify_imports(): """Verify all required imports work.""" print("✓ Verifying imports...") try: from loyal_companion.models.platform import ( ConversationContext, ConversationRequest, ConversationResponse, IntimacyLevel, MoodInfo, Platform, RelationshipInfo, ) print(" ✓ Platform models imported successfully") except ImportError as e: print(f" ✗ Failed to import platform models: {e}") return False try: from loyal_companion.services import ConversationGateway print(" ✓ ConversationGateway imported successfully") except ImportError as e: print(f" ✗ Failed to import ConversationGateway: {e}") return False return True def verify_enums(): """Verify enum values are correct.""" print("\n✓ Verifying enums...") from loyal_companion.models.platform import IntimacyLevel, Platform # Verify Platform enum assert Platform.DISCORD == "discord" assert Platform.WEB == "web" assert Platform.CLI == "cli" print(" ✓ Platform enum values correct") # Verify IntimacyLevel enum assert IntimacyLevel.LOW == "low" assert IntimacyLevel.MEDIUM == "medium" assert IntimacyLevel.HIGH == "high" print(" ✓ IntimacyLevel enum values correct") return True def verify_request_creation(): """Verify ConversationRequest can be created.""" print("\n✓ Verifying ConversationRequest creation...") from loyal_companion.models.platform import ( ConversationContext, ConversationRequest, IntimacyLevel, Platform, ) context = ConversationContext( is_public=False, intimacy_level=IntimacyLevel.MEDIUM, guild_id="12345", channel_id="channel-1", user_display_name="TestUser", ) request = ConversationRequest( user_id="user123", platform=Platform.DISCORD, session_id="session-1", message="Hello there!", context=context, ) assert request.user_id == "user123" assert request.platform == Platform.DISCORD assert request.message == "Hello there!" assert request.context.intimacy_level == IntimacyLevel.MEDIUM print(" ✓ ConversationRequest created successfully") print(f" - Platform: {request.platform.value}") print(f" - Intimacy: {request.context.intimacy_level.value}") print(f" - Message: {request.message}") return True def verify_gateway_initialization(): """Verify ConversationGateway can be initialized.""" print("\n✓ Verifying ConversationGateway initialization...") from loyal_companion.services import ConversationGateway gateway = ConversationGateway() assert gateway is not None assert gateway.ai_service is not None print(" ✓ ConversationGateway initialized successfully") return True def verify_intimacy_modifiers(): """Verify intimacy level modifiers work.""" print("\n✓ Verifying intimacy modifiers...") from loyal_companion.models.platform import IntimacyLevel, Platform from loyal_companion.services import ConversationGateway gateway = ConversationGateway() # Test LOW intimacy low_modifier = gateway._get_intimacy_modifier(Platform.DISCORD, IntimacyLevel.LOW) assert "PUBLIC, SOCIAL" in low_modifier assert "brief and light" in low_modifier print(" ✓ LOW intimacy modifier correct") # Test MEDIUM intimacy medium_modifier = gateway._get_intimacy_modifier(Platform.DISCORD, IntimacyLevel.MEDIUM) assert "SEMI-PRIVATE" in medium_modifier assert "Balanced warmth" in medium_modifier print(" ✓ MEDIUM intimacy modifier correct") # Test HIGH intimacy high_modifier = gateway._get_intimacy_modifier(Platform.WEB, IntimacyLevel.HIGH) assert "PRIVATE, INTENTIONAL" in high_modifier assert "Deeper reflection" in high_modifier assert "CRITICAL SAFETY BOUNDARIES" in high_modifier print(" ✓ HIGH intimacy modifier correct") return True def verify_sentiment_estimation(): """Verify sentiment estimation works.""" print("\n✓ Verifying sentiment estimation...") from loyal_companion.services import ConversationGateway gateway = ConversationGateway() # Positive sentiment positive = gateway._estimate_sentiment("Thanks! This is awesome and amazing!") assert positive > 0.3, f"Expected positive sentiment, got {positive}" print(f" ✓ Positive sentiment: {positive:.2f}") # Negative sentiment negative = gateway._estimate_sentiment("This is terrible and awful") assert negative < 0, f"Expected negative sentiment, got {negative}" print(f" ✓ Negative sentiment: {negative:.2f}") # Neutral sentiment neutral = gateway._estimate_sentiment("The weather is cloudy") assert -0.3 < neutral < 0.3, f"Expected neutral sentiment, got {neutral}" print(f" ✓ Neutral sentiment: {neutral:.2f}") return True def main(): """Run all verification checks.""" print("=" * 60) print("Conversation Gateway Verification") print("=" * 60) checks = [ verify_imports, verify_enums, verify_request_creation, verify_gateway_initialization, verify_intimacy_modifiers, verify_sentiment_estimation, ] all_passed = True for check in checks: try: if not check(): all_passed = False except Exception as e: print(f"\n✗ Check failed with error: {e}") import traceback traceback.print_exc() all_passed = False print("\n" + "=" * 60) if all_passed: print("✓ All verification checks passed!") print("=" * 60) print("\nConversation Gateway is ready for use.") print("\nNext steps:") print(" 1. Refactor Discord cog to use gateway (Phase 2)") print(" 2. Add Web platform (Phase 3)") print(" 3. Add CLI client (Phase 4)") return 0 else: print("✗ Some verification checks failed!") print("=" * 60) return 1 if __name__ == "__main__": sys.exit(main())