JAEGIS Orchestrator Integration

Help System Integration with Main JAEGIS Orchestrator

Integration Overview

This document defines how the help system integrates with the main JAEGIS orchestrator to ensure seamless operation and consistent command availability across all interactions.


πŸ”— ORCHESTRATOR INTEGRATION SYSTEM

Integration Architecture

class JAEGISOrchestratorIntegration:
    """
    Integration system connecting help system with main JAEGIS orchestrator
    """
    
    def __init__(self):
        """
        Initialize orchestrator integration with help system
        """
        print("πŸ”— JAEGIS ORCHESTRATOR INTEGRATION: INITIALIZING")
        
        # Load integration components
        self.help_system = self.load_help_system()
        self.orchestrator_hooks = self.establish_orchestrator_hooks()
        self.input_interceptor = self.initialize_input_interceptor()
        self.command_router = self.initialize_command_router()
        
        print("   βœ… Help system: LOADED")
        print("   βœ… Orchestrator hooks: ESTABLISHED")
        print("   βœ… Input interceptor: ACTIVE")
        print("   βœ… Command router: OPERATIONAL")
        print("   βœ… Integration: COMPLETE")
    
    def establish_orchestrator_hooks(self):
        """
        Establish hooks with main JAEGIS orchestrator system
        """
        orchestrator_hooks = {
            'initialization_hook': {
                'trigger': 'orchestrator_startup',
                'priority': 'CRITICAL',
                'action': 'load_help_system_immediately',
                'validation': 'verify_help_system_operational'
            },
            'input_processing_hook': {
                'trigger': 'before_user_input_processing',
                'priority': 'HIGHEST',
                'action': 'intercept_help_requests',
                'method': 'check_for_help_patterns_first'
            },
            'mode_selection_hook': {
                'trigger': 'mode_selection_display',
                'priority': 'HIGH',
                'action': 'include_help_information',
                'method': 'add_help_context_to_mode_menu'
            },
            'agent_activation_hook': {
                'trigger': 'agent_activation_sequence',
                'priority': 'MEDIUM',
                'action': 'preserve_help_availability',
                'method': 'maintain_help_during_agent_switch'
            }
        }
        
        return orchestrator_hooks
    
    def initialize_input_interceptor(self):
        """
        Initialize input interceptor for help request detection
        """
        interceptor_config = {
            'interception_patterns': [
                # Exact command patterns
                r'^/help$', r'^/HELP$', r'^help$', r'^HELP$',
                
                # Natural language patterns
                r'.*what commands.*available.*',
                r'.*show.*all commands.*',
                r'.*how.*commands work.*',
                r'.*list.*commands.*',
                r'.*help.*commands.*',
                r'.*what can.*do.*',
                r'.*available commands.*',
                r'.*command list.*',
                r'.*show commands.*',
                r'.*help menu.*'
            ],
            'interception_priority': 'HIGHEST',
            'processing_method': 'immediate_help_response',
            'fallback_behavior': 'pass_to_normal_processing'
        }
        
        return interceptor_config
    
    def initialize_command_router(self):
        """
        Initialize command router for help system integration
        """
        router_config = {
            'routing_logic': {
                'help_requests': 'route_to_help_system',
                'agent_commands': 'route_to_agent_activation',
                'workflow_commands': 'route_to_workflow_system',
                'unknown_commands': 'route_to_help_suggestion'
            },
            'integration_points': {
                'help_system': 'direct_integration',
                'agent_system': 'coordinated_integration',
                'workflow_system': 'collaborative_integration'
            },
            'error_handling': {
                'help_system_failure': 'fallback_to_basic_help',
                'routing_failure': 'display_available_commands',
                'integration_failure': 'emergency_help_mode'
            }
        }
        
        return router_config
    
    def process_user_input(self, user_input):
        """
        Process user input with help system integration
        """
        # Step 1: Check for help requests first (highest priority)
        if self.is_help_request(user_input):
            return self.handle_help_request(user_input)
        
        # Step 2: Check for agent commands
        if self.is_agent_command(user_input):
            return self.handle_agent_command(user_input)
        
        # Step 3: Check for workflow commands
        if self.is_workflow_command(user_input):
            return self.handle_workflow_command(user_input)
        
        # Step 4: Pass to normal orchestrator processing
        return self.pass_to_orchestrator(user_input)
    
    def is_help_request(self, user_input):
        """
        Check if user input is a help request
        """
        import re
        
        normalized_input = user_input.strip().lower()
        
        # Check exact patterns
        exact_patterns = ['/help', '/HELP', 'help', 'HELP']
        if normalized_input in [p.lower() for p in exact_patterns]:
            return True
        
        # Check natural language patterns
        natural_patterns = [
            'what commands are available',
            'show me all commands',
            'how do the commands work',
            'list all commands',
            'help me with commands',
            'what can i do',
            'available commands',
            'command list',
            'show commands',
            'help menu'
        ]
        
        for pattern in natural_patterns:
            if pattern in normalized_input:
                return True
        
        # Check partial patterns
        help_keywords = ['command', 'commands', 'help', 'menu', 'available', 'list', 'show']
        question_words = ['what', 'how', 'where', 'which']
        
        words = normalized_input.split()
        has_help_keyword = any(word in help_keywords for word in words)
        has_question_word = any(word in question_words for word in words)
        
        if has_help_keyword and has_question_word:
            return True
        
        return False
    
    def handle_help_request(self, user_input):
        """
        Handle help request by routing to help system
        """
        help_response = self.help_system.generate_complete_help_menu()
        return {
            'response_type': 'help_menu',
            'content': help_response,
            'source': 'integrated_help_system',
            'processed_by': 'orchestrator_integration'
        }
    
    def integrate_with_mode_selection(self):
        """
        Integrate help information with mode selection menu
        """
        mode_selection_integration = {
            'help_context_addition': {
                'location': 'after_mode_options',
                'content': 'πŸ’‘ **Need Help?** Type `/help` or "what commands are available?" at any time for complete command list.',
                'formatting': 'highlighted_tip'
            },
            'command_preview': {
                'location': 'before_mode_selection',
                'content': 'πŸ“‹ **Quick Commands**: `/help` (full help), `/agent-list` (see agents), `/{agent}` (activate agent)',
                'formatting': 'quick_reference'
            }
        }
        
        return mode_selection_integration
    
    def maintain_help_during_agent_switch(self):
        """
        Maintain help system availability during agent switching
        """
        agent_switch_maintenance = {
            'pre_switch_actions': [
                'preserve_help_system_state',
                'maintain_help_command_registration',
                'ensure_help_router_availability'
            ],
            'during_switch_actions': [
                'keep_help_system_active',
                'update_agent_specific_commands',
                'maintain_universal_help_recognition'
            ],
            'post_switch_actions': [
                'verify_help_system_functionality',
                'test_help_command_response',
                'confirm_agent_command_integration'
            ]
        }
        
        return agent_switch_maintenance

Integration Testing Framework

Error Handling and Fallbacks

This integration ensures the help system works seamlessly with the main JAEGIS orchestrator, providing consistent and reliable access to help functionality across all interactions.

Last updated