Implement comprehensive collaborative creative system with cross-character memory sharing

Major Features Added:
• Cross-character memory sharing with trust-based permissions (Basic 30%, Personal 50%, Intimate 70%, Full 90%)
• Complete collaborative creative projects system with MCP integration
• Database persistence for all creative project data with proper migrations
• Trust evolution system based on interaction quality and relationship development
• Memory sharing MCP server with 6 autonomous tools for character decision-making
• Creative projects MCP server with 8 tools for autonomous project management
• Enhanced character integration with all RAG and MCP capabilities
• Demo scripts showcasing memory sharing and creative collaboration workflows

System Integration:
• Main application now initializes memory sharing and creative managers
• Conversation engine upgraded to use EnhancedCharacter objects with full RAG access
• Database models added for creative projects, collaborators, contributions, and invitations
• Complete prompt construction pipeline enriched with RAG insights and trust data
• Characters can now autonomously propose projects, share memories, and collaborate creatively
This commit is contained in:
2025-07-04 23:07:08 -07:00
parent d6ec5ad29c
commit 1b586582d4
25 changed files with 6857 additions and 254 deletions

View File

@@ -23,9 +23,13 @@ from conversation.scheduler import ConversationScheduler
from llm.client import llm_client
from rag.vector_store import vector_store_manager
from rag.community_knowledge import initialize_community_knowledge_rag
from rag.memory_sharing import MemorySharingManager
from collaboration.creative_projects import CollaborativeCreativeManager
from mcp.self_modification_server import mcp_server
from mcp.file_system_server import filesystem_server
from mcp.calendar_server import calendar_server
from mcp.memory_sharing_server import initialize_memory_sharing_mcp_server
from mcp.creative_projects_server import initialize_creative_projects_mcp_server
import logging
# Setup logging first
@@ -47,6 +51,8 @@ class FishbowlApplication:
# RAG and MCP systems
self.vector_store = None
self.community_knowledge = None
self.memory_sharing_manager = None
self.creative_manager = None
self.mcp_servers = []
async def initialize(self):
@@ -88,6 +94,16 @@ class FishbowlApplication:
await self.community_knowledge.initialize(character_names)
logger.info("Community knowledge RAG initialized")
# Initialize memory sharing manager
self.memory_sharing_manager = MemorySharingManager(self.vector_store)
await self.memory_sharing_manager.initialize(character_names)
logger.info("Memory sharing manager initialized")
# Initialize collaborative creative manager
self.creative_manager = CollaborativeCreativeManager(self.vector_store, self.memory_sharing_manager)
await self.creative_manager.initialize(character_names)
logger.info("Collaborative creative manager initialized")
# Initialize MCP servers
logger.info("Initializing MCP servers...")
@@ -101,9 +117,24 @@ class FishbowlApplication:
self.mcp_servers.append(calendar_server)
logger.info("Calendar/time awareness MCP server initialized")
# Initialize conversation engine
self.conversation_engine = ConversationEngine()
logger.info("Conversation engine created")
# Initialize memory sharing MCP server
memory_sharing_mcp = initialize_memory_sharing_mcp_server(self.memory_sharing_manager)
self.mcp_servers.append(memory_sharing_mcp)
logger.info("Memory sharing MCP server initialized")
# Initialize creative projects MCP server
creative_projects_mcp = initialize_creative_projects_mcp_server(self.creative_manager)
self.mcp_servers.append(creative_projects_mcp)
logger.info("Creative projects MCP server initialized")
# Initialize conversation engine with RAG and MCP systems
self.conversation_engine = ConversationEngine(
vector_store=self.vector_store,
memory_sharing_manager=self.memory_sharing_manager,
creative_manager=self.creative_manager,
mcp_servers=self.mcp_servers
)
logger.info("Conversation engine created with enhanced capabilities")
# Initialize scheduler
self.scheduler = ConversationScheduler(self.conversation_engine)