Skip to navigation

nemo_gym.tasks.harbor.models

View as Markdown

Pydantic mirror of Harbor’s task.toml (schema 1.4).

Field names are Harbor’s. Deprecated spellings (version, memory, storage, allow_internet) are read and normalized but never written back. Keys this mirror does not know are ignored, as Harbor ignores them; HarborSettings.unknown_keys lists them so the loader can say so.

Module Contents

Classes

Functions

API

class nemo_gym.tasks.harbor.models.HarborAgent()

Bases: HarborPhaseSettings

timeout_sec
float = Field(default=28800, gt=0)
user
str | int | None = None
class nemo_gym.tasks.harbor.models.HarborEnvironment()

Bases: HarborPhaseSettings

[environment]: the sandbox the agent works in.

docker_image is optional. A task without one builds from environment/Dockerfile or, when that file only names a base image, runs the base image directly.

build_timeout_sec
float = Field(default=600, gt=0)
cpus
int | None = None
deprecated_keys
frozenset[str] = frozenset({'allow_internet', 'memory', 'storage'})
docker_image
str | None = None
env
dict[str, str] = Field(default_factory=dict)
gpu_types
list[str] | None = None
gpus
int | None = None
healthcheck
HarborHealthcheck | None = None
mcp_servers
list[HarborMCPServer] = Field(default_factory=list)
memory_mb
int | None = None
network_mode
Literal['public', 'no-network', 'allowlist'] = 'public'
os
Literal['linux', 'windows'] = 'linux'
skills_dir
str | None = None
storage_mb
int | None = None
workdir
str | None = None
nemo_gym.tasks.harbor.models.HarborEnvironment.read_deprecated_fields(
data: typing.Any
) -> typing.Any
classmethod
class nemo_gym.tasks.harbor.models.HarborHealthcheck()

Bases: HarborSettings

command
str
interval_sec
float = Field(default=5, ge=0)
retries
int = Field(default=3, gt=0)
start_interval_sec
float = Field(default=5, ge=0)
start_period_sec
float = Field(default=0, ge=0)
timeout_sec
float = Field(default=30, gt=0)
class nemo_gym.tasks.harbor.models.HarborMCPServer()

Bases: HarborSettings

args
list[str] = Field(default_factory=list)
command
str | None = None
name
str
transport
Literal['stdio', 'sse', 'streamable-http'] = 'sse'
url
str | None = None
nemo_gym.tasks.harbor.models.HarborMCPServer.normalize_transport(
data: typing.Any
) -> typing.Any
classmethod
class nemo_gym.tasks.harbor.models.HarborPhaseSettings()

Bases: HarborSettings

allowed_hosts
list[str] | None = None
network_mode
Literal['public', 'no-network', 'allowlist'] | None = None
class nemo_gym.tasks.harbor.models.HarborSettings()

Bases: BaseModel

deprecated_keys
frozenset[str] = frozenset()
model_config
= ConfigDict(extra='ignore', allow_inf_nan=False)
nemo_gym.tasks.harbor.models.HarborSettings.unknown_keys(
data: typing.Any,
prefix: str = ''
) -> list[str]
classmethod

Dotted paths of the keys in data that no field of this model tree declares.

class nemo_gym.tasks.harbor.models.HarborSolution()

Bases: HarborSettings

env
dict[str, str] = Field(default_factory=dict)
class nemo_gym.tasks.harbor.HarborTaskConfig()

Bases: HarborSettings

One task.toml.

agent
HarborAgent = Field(default_factory=HarborAgent)
artifacts
list[Any] = Field(default_factory=list)
deprecated_keys
frozenset[str]
environment
HarborEnvironment = Field(default_factory=HarborEnvironment)
is_shared_verifier
bool

Harbor runs the verifier in the agent’s container unless a separate one is declared.

metadata
dict[str, Any] = Field(default_factory=dict)
schema_version
str = '1.4'
solution
HarborSolution = Field(default_factory=HarborSolution)
source
str | None = None
task
dict[str, Any] = Field(default_factory=dict)
verifier
HarborVerifier = Field(default_factory=HarborVerifier)
nemo_gym.tasks.harbor.HarborTaskConfig.read_deprecated_fields(
data: typing.Any
) -> typing.Any
classmethod
class nemo_gym.tasks.harbor.models.HarborVerifier()

Bases: HarborPhaseSettings

env
dict[str, str] = Field(default_factory=dict)
environment
HarborEnvironment | None = None
environment_mode
Literal['separate', 'shared'] | None = None
timeout_sec
float = Field(default=600, gt=0)
user
str | int | None = None
nemo_gym.tasks.harbor.models._nested_settings(
annotation: typing.Any
nemo_gym.tasks.harbor.models._size_to_mb(
raw: str
) -> int