File size: 1,060 Bytes
595d60e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from typing import Dict, Any
from .graph import build_graph

class DevAgent:
    def __init__(self):
        self.graph = build_graph()

    def process(self, session_id: str, user_message: str, history: list, state_init: dict = None) -> Dict[str, Any]:
        state = {
            'session_id': session_id,
            'user_message': user_message,
            'conversation_history': history,
            'extracted_requirements': (state_init or {}).get('extracted_requirements', {}) or {},
            'missing_information': (state_init or {}).get('missing_information', []) or [],
            'clarification_questions': (state_init or {}).get('clarification_questions', []) or [],
            'draft_spec': (state_init or {}).get('draft_spec', None),
            'validation_result': (state_init or {}).get('validation_result', None),
            'status': (state_init or {}).get('status', 'collecting_requirements') or 'collecting_requirements'
        }
        result = self.graph.invoke(state, config={'recursion_limit': 50})
        return result