coding-tools-env / models.py
AdithyaSK's picture
AdithyaSK HF Staff
Upload folder using huggingface_hub
32df48d verified
# Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved.
#
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree.
"""Models for coding_tools_env."""
from __future__ import annotations
from typing import Any
from openenv.core.env_server.types import State
from pydantic import BaseModel, Field
class CommandResult(BaseModel):
"""Normalized result for one tool execution."""
tool: str
ok: bool
output: str = ""
error: str | None = None
metadata: dict[str, Any] = Field(default_factory=dict)
class TodoItem(BaseModel):
"""Todo item tracked by todo_write."""
id: str
content: str
status: str
priority: str
class CodingToolsState(State):
"""Per-session state for coding_tools_env."""
sandbox_id: str | None = None
setup_results: list[CommandResult] = Field(default_factory=list)
verify_commands: list[str] = Field(default_factory=list)
verify_results: list[CommandResult] = Field(default_factory=list)
todos: list[TodoItem] = Field(default_factory=list)
tool_history: list[CommandResult] = Field(default_factory=list)
submitted: bool = False
last_reward: float | None = None
last_error: str | None = None
class EditSpec(BaseModel):
"""One edit operation for multi_edit."""
old_string: str
new_string: str
replace_all: bool = False