src.detection.context_detector module#
Context Detection for Marcus Hybrid Approach.
Determines which Marcus mode would be most helpful based on board state, user interactions, and explicit preferences.
- class src.detection.context_detector.MarcusMode[source]#
Bases:
EnumAvailable Marcus operating modes.
- CREATOR = 'creator'#
- ENRICHER = 'enricher'#
- ADAPTIVE = 'adaptive'#
- class src.detection.context_detector.UserIntent[source]#
Bases:
EnumDetected user intents from messages.
- CREATE = 'create'#
- ORGANIZE = 'organize'#
- COORDINATE = 'coordinate'#
- QUERY = 'query'#
- UNKNOWN = 'unknown'#
- class src.detection.context_detector.ModeRecommendation[source]#
Bases:
objectRecommendation for which mode to use.
- recommended_mode: MarcusMode#
- alternative_modes: List[MarcusMode]#
- __init__(recommended_mode, confidence, reasoning, alternative_modes)#
- Parameters:
recommended_mode (MarcusMode)
confidence (float)
reasoning (str)
alternative_modes (List[MarcusMode])
- Return type:
None
- class src.detection.context_detector.UserContext[source]#
Bases:
objectContext about the user’s recent interactions.
- mode_preferences: Dict[MarcusMode, int]#
- current_mode: MarcusMode | None#
- __init__(recent_messages, last_mode_switch, mode_preferences, current_mode)#
- Parameters:
last_mode_switch (datetime | None)
mode_preferences (Dict[MarcusMode, int])
current_mode (MarcusMode | None)
- Return type:
None
- class src.detection.context_detector.ContextDetector[source]#
Bases:
objectDetermines which Marcus mode would be most helpful.
- INTENT_PATTERNS = {UserIntent.COORDINATE: ['assign', 'next.*task', 'who.*should', 'coordinate', 'ready.*for.*work', 'what.*should.*work'], UserIntent.CREATE: ['create.*project', 'new.*project', 'start.*from.*scratch', 'generate.*tasks', 'from.*prd', 'build.*mvp', 'need.*structure', 'empty.*board'], UserIntent.ORGANIZE: ['organize', 'structure', 'clean.*up', 'add.*metadata', 'enrich', 'improve.*board', 'mess', 'chaotic']}#
- __init__(board_analyzer)[source]#
- Parameters:
board_analyzer (BoardAnalyzer)
- user_contexts: Dict[str, UserContext]#
- async detect_optimal_mode(user_id, board_id, tasks, recent_message=None)[source]#
Decision tree for mode selection.
Check board state
Check recent user interactions
Check explicit preferences
Make recommendation
- async detect_user_intent(message)[source]#
Parse user messages for intent.
- Parameters:
message (
str) – User’s message.- Returns:
Detected intent.
- Return type:
- record_mode_switch(user_id, new_mode)[source]#
Record when a user switches modes.
- Return type:
- Parameters:
user_id (str)
new_mode (MarcusMode)
- get_mode_suggestions(board_state)[source]#
Get helpful suggestions based on board state.
- Return type:
- Parameters:
board_state (BoardState)