corp-env / corp_env /models.py
Navigam's picture
feat: enhance agent functionality and memory management in corporate environment
febe155
Raw
History Blame Contribute Delete
3.11 kB
"""Pydantic action and observation types for CORP-ENV."""
from __future__ import annotations
from typing import Any, Dict, List, Literal, Optional
from openenv.core.env_server.types import Action, Observation
from pydantic import Field
class CorpAction(Action):
"""Structured corporate environment action."""
action_type: Literal[
"delegate",
"update_swd",
"query_swd",
"finalize",
"log_reasoning",
"log_conflict",
"log_resolution",
"log_decision",
"advance_phase",
] = Field(
...,
description=(
"delegate | update_swd (RFC 6902 JSON array as string) | query_swd | "
"finalize | log_reasoning | log_conflict | log_resolution | "
"log_decision | advance_phase"
),
)
agent_id: Optional[str] = Field(
default=None,
description=(
"Worker slot id for delegate (per-task; e.g. qa_engineer, dev_lead, "
"fpa_manager, cto, cfo, chro)."
),
)
payload: str = Field(
default="",
description=(
"Depending on action_type: plain task text (delegate), JSON Patch "
"string (update_swd), JSONPath (query_swd), final recommendation "
"(finalize), plain text (log_reasoning/log_decision), JSON object "
"string (log_conflict/log_resolution), or phase name "
"(advance_phase)."
),
)
class CorpObservation(Observation):
"""Observation including the Shared Workspace Document (SWD)."""
task_description: str = Field(default="", description="Scenario instructions")
role: str = Field(default="", description="Role the master agent plays (e.g. PM, CFO)")
master_tier: str = Field(
default="senior",
description="Master persona tier for this task (fresher | senior | executive)",
)
available_agents: List[str] = Field(
default_factory=list,
description="Worker slot ids available for this task",
)
available_actions: List[str] = Field(
default_factory=list,
description="One-line syntax hints for every legal action_type",
)
next_step_hint: Optional[str] = Field(
default=None,
description="Heuristic hint computed from the next pending milestone",
)
recent_actions: List[str] = Field(
default_factory=list,
description="Summaries of the last few master actions (most recent last)",
)
swd: Dict[str, Any] = Field(default_factory=dict, description="Shared Workspace Document")
agent_last_output: Optional[str] = Field(
default=None,
description="Text returned by the last delegate() call, if any",
)
query_result: Optional[Any] = Field(
default=None,
description="Result of query_swd when action_type was query_swd",
)
tokens_used: int = Field(default=0, ge=0)
token_budget: int = Field(default=4096, ge=0)
turn: int = Field(default=0, ge=0)
error: Optional[str] = Field(default=None, description="Last validation or runtime error")