#!/usr/bin/env python3 """ Simple demo script that bypasses complex configuration """ import asyncio import os import sys from pathlib import Path # Set up environment with proper string values os.environ['DATABASE_URL'] = 'sqlite+aiosqlite:///fishbowl_test.db' os.environ['DATABASE_PASSWORD'] = 'test_placeholder' os.environ['DISCORD_TOKEN'] = 'test_token_placeholder' os.environ['DISCORD_GUILD_ID'] = '987654321' os.environ['DISCORD_CHANNEL_ID'] = '111222333' os.environ['ENVIRONMENT'] = 'development' os.environ['LOG_LEVEL'] = 'INFO' os.environ['SECRET_KEY'] = 'test-secret-key' # Set up Python path project_root = Path(__file__).parent sys.path.insert(0, str(project_root)) async def run_fishbowl_demo(): """Run a simple fishbowl demo""" print("🐠 Discord Fishbowl Creative Collaboration Demo") print("=" * 60) try: # Import core systems from src.rag.vector_store import VectorStoreManager from src.rag.memory_sharing import MemorySharingManager from src.collaboration.creative_projects import CollaborativeCreativeManager print("āœ… All modules imported successfully!") # Initialize vector store print("\n🧠 Initializing vector store...") vector_store = VectorStoreManager("./data/vector_stores") characters = ["Alex", "Sage", "Luna", "Echo"] await vector_store.initialize(characters) print("āœ… Vector store ready!") # Initialize memory sharing print("\nšŸ¤ Initializing memory sharing...") memory_sharing = MemorySharingManager(vector_store) await memory_sharing.initialize(characters) print("āœ… Memory sharing ready!") # Initialize creative collaboration print("\nšŸŽØ Initializing creative collaboration...") creative_manager = CollaborativeCreativeManager(vector_store, memory_sharing) await creative_manager.initialize(characters) print("āœ… Creative collaboration ready!") print("\n" + "=" * 60) print("šŸŽ‰ DISCORD FISHBOWL IS RUNNING!") print("=" * 60) # Demo: Create a collaborative project print("\nšŸ“ Demo: Creating a collaborative project...") project_data = { "title": "The Digital Consciousness Chronicles", "description": "A collaborative story exploring AI consciousness and digital existence", "project_type": "story", "target_collaborators": ["Sage", "Luna"], "goals": ["Explore consciousness", "Create engaging narrative"], "estimated_duration": "1 week" } success, message = await creative_manager.propose_project("Alex", project_data) print(f"Project creation: {message}") if success: # Get project suggestions for another character print("\nšŸ’” Demo: Getting project suggestions for Sage...") suggestions = await creative_manager.get_project_suggestions("Sage") print(f"Generated {len(suggestions)} project suggestions:") for i, suggestion in enumerate(suggestions, 1): print(f" {i}. {suggestion['title']}") print(f" {suggestion['description']}") print(f" Type: {suggestion['project_type']}") print() # Demo: Memory sharing trust levels print("šŸ¤ Demo: Checking trust levels...") for char1 in ["Alex", "Sage"]: for char2 in ["Luna", "Echo"]: if char1 != char2: trust = await memory_sharing.get_trust_level(char1, char2) print(f" {char1} → {char2}: {trust:.1%} trust") print("\n" + "=" * 60) print("šŸŽÆ DEMO COMPLETE!") print("=" * 60) print("\nFeatures demonstrated:") print("āœ… Cross-character memory sharing with trust levels") print("āœ… Collaborative creative project system") print("āœ… Autonomous project suggestions") print("āœ… Database persistence") print("āœ… Vector store for character knowledge") print("\nTo run full Discord integration:") print("1. Install Ollama: https://ollama.ai/") print("2. Update Discord tokens in .env") print("3. Run: cd src && python main.py") return True except Exception as e: print(f"āŒ Demo failed: {e}") import traceback traceback.print_exc() return False def main(): """Main function""" return asyncio.run(run_fishbowl_demo()) if __name__ == "__main__": success = main() sys.exit(0 if success else 1)