File size: 1,052 Bytes
bd67155
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from __future__ import annotations

from typing import Dict, List, Optional

from .models import StateModel, TaskSpec


def initial_tracking(task: TaskSpec) -> StateModel:
    return StateModel(
        task_id=task.task_id,
        step_count=0,
        done=False,
        discovered_keys={ticket.ticket_id: [] for ticket in task.tickets},
        priorities={ticket.ticket_id: None for ticket in task.tickets},
        routes={ticket.ticket_id: None for ticket in task.tickets},
        resolutions={ticket.ticket_id: None for ticket in task.tickets},
        escalations={ticket.ticket_id: None for ticket in task.tickets},
        queue_order=[],
        cumulative_reward=0.0,
        latest_score={},
    )


def update_mapping(
    current: Dict[str, Optional[str]],
    ticket_id: str,
    value: Optional[str],
) -> Dict[str, Optional[str]]:
    current[ticket_id] = value
    return current


def discovered_for_ticket(discovered_keys: Dict[str, List[str]], ticket_id: str) -> List[str]:
    return discovered_keys.setdefault(ticket_id, [])