File size: 1,546 Bytes
e650f0f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved.

from openenv.core.env_server.types import Action, Observation
from pydantic import Field
from typing import Dict, List, Any


class ContractValidationAction(Action):
    clause_id: int = Field(
        default=0, description="The ID of the clause being reviewed (0 if submitting final)")
    risk_type: str = Field(
        default="none", description="The type of risk identified (e.g., liability, payment, termination, confidentiality, none)")
    submit_final: bool = Field(
        default=False, description="Set to True to finish the review and receive the final grade")
    explanation: str = Field(
        default="", description="Explanation of the decision")


class ContractValidationObservation(Observation):
    task_level: str = Field(
        default="easy", description="Difficulty level of the current task")
    contract_clauses: List[Dict[str, Any]] = Field(
        default_factory=list, description="List of clauses in the contract")
    flagged_risks: Dict[int, str] = Field(
        default_factory=dict, description="Risks currently flagged by the agent")
    step_count: int = Field(default=0, description="Number of steps taken")
    reward: float = Field(
        default=0.0, description="Reward delta for the current step")
    done: bool = Field(
        default=False, description="Whether the episode has ended")
    info: Dict[str, Any] = Field(
        default_factory=dict, description="Additional info, including the grader score")