sequence-base 0.3.21__tar.gz → 0.3.23__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sequence_base-0.3.21 → sequence_base-0.3.23}/PKG-INFO +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/pyproject.toml +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/constants/version.py +3 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/contract/benchmarks.py +21 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/contract/eval.py +35 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ActRequest.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ActResponse.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ActionChunk.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ActionContract.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ActionStep.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/AdapterTransform.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/AddLocal.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/Autoscaler.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/BenchmarkConditionSpec.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/BenchmarkRegisterRequest.json +77 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/BenchmarkSpec.json +20 -2
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/BenchmarkStatusResponse.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/BootstrapResponse.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/Camera.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ClampInfo.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/CodeBundle.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/Concurrency.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/Conditions.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ConnectRequest.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ConnectResponse.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/DeploymentAccepted.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/DeploymentPolicy.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/DeploymentRequest.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/DeploymentStatusResponse.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/Embodiment.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ErrorBody.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ErrorCodes.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/Estimate.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/EvalDryRunResponse.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/EvalReport.json +126 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/EvalRequest.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/EvalResponse.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ImageFrame.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ImageSpec.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ImageStepAddLocal.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ImageStepApt.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ImageStepEnv.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ImageStepRun.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ImageStepUvPip.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/InferParam.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/Lease.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/LossyTransform.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/MetricAgg.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/Observation.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/ObservationContract.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/PolicyRegistration.json +2 -2
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/PolicySpec.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/Proprioception.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/RenderSpec.json +19 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/Resources.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/RolloutResult.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/SecretCreateRequest.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/SecretInfo.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/SecretRef.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/SeqFlags.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/Step.json +19 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/SuiteAgg.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/TaskAgg.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/Timeouts.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/UploadTarget.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/UsageReport.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/Variant.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/VolumeAttach.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/VolumeFile.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/VolumeInfo.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/VolumeMount.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/VolumeRef.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/VolumeUploadRequest.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/VolumeUploadResponse.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/WarmingError.json +1 -1
- {sequence_base-0.3.21 → sequence_base-0.3.23}/.gitignore +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/README.md +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/__init__.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/auth.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/codec/__init__.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/codec/image.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/constants/__init__.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/constants/env.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/constants/headers.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/contract/__init__.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/contract/accounts.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/contract/act.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/contract/connect.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/contract/deployments.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/contract/errors.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/contract/flags.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/contract/io.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/contract/policy.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/contract/templates.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/contract/volumes.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/contract/wire.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/errors/__init__.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/errors/transport.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/obs/__init__.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/obs/log.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/obs/rid.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/presets/__init__.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/presets/robot_arm.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schema_export.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/telemetry/__init__.py +0 -0
- {sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/telemetry/events.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: sequence-base
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.23
|
|
4
4
|
Summary: Shared foundation for the Sequences platform — wire contract, correlation, error taxonomy, constants. Used by the robot SDK, gateway, and container harness.
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Requires-Dist: pydantic>=2.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "sequence-base"
|
|
3
|
-
version = "0.3.
|
|
3
|
+
version = "0.3.23"
|
|
4
4
|
description = "Shared foundation for the Sequences platform — wire contract, correlation, error taxonomy, constants. Used by the robot SDK, gateway, and container harness."
|
|
5
5
|
# 3.10, not 3.11: `seq` (which imports this) must run on ROS 2 Humble's Python 3.10, and nothing here needs 3.11.
|
|
6
6
|
# {2026-10-03 the full suite on CPython 3.10.20: "147 PASSED"; vermin --eval-annotations: "MINIMUM REQUIRED VERSIONS: 3.9"}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
# across deployments / repos can tell which version of a shape it is validating against. MUST change
|
|
5
5
|
# whenever any shared wire shape changes (a field added / removed / retyped) — that is what makes
|
|
6
6
|
# contract evolution mechanically detectable instead of eyeballed. Bump on any shape change.
|
|
7
|
-
CONTRACT_VERSION = "0.4.
|
|
7
|
+
CONTRACT_VERSION = "0.4.20" # 0.4.19 -> 0.4.20: BenchmarkRegisterRequest.params — the parameters a benchmark's @seq.setup declares (InferParam: type and default), which an eval may set; EvalReport.arm_params — per arm each parameter's value and source, and the steps that asked the policy of all it took (gs-plans eval-adapters/36)
|
|
8
|
+
# previous: 0.4.19 # 0.4.18 -> 0.4.19: RenderSpec.flip — how the platform turns a recorded camera's frames before encoding ("vertical" / "horizontal" / "both"; None, left off the wire, as drawn), declared once by the benchmark's author (seq.Record(flip=...)); gs-plans benchmarks
|
|
9
|
+
# previous: 0.4.18 # 0.4.17 -> 0.4.18: DeploymentPolicy.models — the platform models a policy calls while it runs (catalogue ids), which the act key driving it may call on /v1/chat and /v1/decide (gs-plans models-api/11)
|
|
8
10
|
# previous: 0.4.17 # 0.4.16 -> 0.4.17: weights optional — PolicySpec.weights, DeploymentRequest.weights and BootstrapResponse.weights_uri may be None, for a policy without a checkpoint (nothing copied or mounted; gs-plans storage T13)
|
|
9
11
|
# previous: 0.4.16 # 0.4.15 -> 0.4.16: batched benchmarks — SeqFlags.OBSERVE / STEP, BenchmarkSpec / BenchmarkRegisterRequest.envs and .batched; per-arm eval reports — EvalReport.arms / paired / timing / stop_reason, EvalStatus.CANCELED, Estimate.breakdown / default_timing, EvalResponse.arms, EvalDryRunResponse.layout / notes
|
|
10
12
|
# previous: 0.4.15 # 0.4.14 -> 0.4.15: limits count GPUs and CPU/memory are billed like Modal — Resources.cpu / memory_gb optional floats + cpu_limit / memory_limit_gb; Autoscaler.max_gpus / on_full / queue_timeout_s replace max_containers; Concurrency fields optional + replicas_per_gpu / gpus_per_replica; DeploymentStatusResponse.reason; EvalRequest.policy_instances / policy_gpu / benchmark_instances / benchmark_gpu / envs replace gpus / envs_per_gpu; EvalStatus.QUEUED; EvalCards / EvalQueue
|
|
@@ -12,10 +12,12 @@ benchmark per-step result — a different type from ImageSpec's build `ImageStep
|
|
|
12
12
|
"""
|
|
13
13
|
from __future__ import annotations
|
|
14
14
|
|
|
15
|
+
from typing import Literal
|
|
16
|
+
|
|
15
17
|
from pydantic import BaseModel, ConfigDict, Field, model_validator
|
|
16
18
|
|
|
17
19
|
from sequence_base.contract.accounts import SecretRef
|
|
18
|
-
from sequence_base.contract.deployments import CodeBundle, DeploymentState
|
|
20
|
+
from sequence_base.contract.deployments import CodeBundle, DeploymentState, InferParam
|
|
19
21
|
from sequence_base.contract.flags import BENCHMARK_BATCHED, BENCHMARK_BINDABLE, SeqFlags
|
|
20
22
|
from sequence_base.contract.policy import ActionContract, ImageSpec, VolumeRef
|
|
21
23
|
|
|
@@ -58,6 +60,13 @@ class RenderSpec(BaseModel):
|
|
|
58
60
|
|
|
59
61
|
camera: str = Field(..., description="Which camera to pull frames from, e.g. 'wrist' / 'agentview'")
|
|
60
62
|
fps: int = 30
|
|
63
|
+
# How the platform turns each frame before encoding it. Whether a camera's picture is upside down is a property of
|
|
64
|
+
# the renderer (OpenGL's glReadPixels returns the bottom row first: LIBERO / robosuite), so its author says it once
|
|
65
|
+
# here instead of everyone who runs an eval passing it. {gs-plans inbox "LIBERO 风格的相机录出来是倒的"}
|
|
66
|
+
# None (as drawn) is left off the wire, so a recording that is not turned registers on any platform version.
|
|
67
|
+
flip: Literal["vertical", "horizontal", "both"] | None = Field(
|
|
68
|
+
None, description="'vertical': rows reversed (upside down); 'horizontal': mirrored; 'both': turned 180°; "
|
|
69
|
+
"None: as drawn")
|
|
61
70
|
|
|
62
71
|
|
|
63
72
|
class Step(BaseModel):
|
|
@@ -176,11 +185,22 @@ class BenchmarkRegisterRequest(BaseModel):
|
|
|
176
185
|
gpu: str | None = Field(default=None, max_length=32)
|
|
177
186
|
# How many environments one instance runs at once when an eval does not say; None takes 1.
|
|
178
187
|
envs: int | None = Field(default=None, ge=1, le=65536)
|
|
188
|
+
# The parameters its @seq.setup declares — `def setup(self, envs, *, noise_std: float = 0.02)` — each with its type
|
|
189
|
+
# and default, which an eval may set (--param benchmark.noise_std=0); None: it declares none, or an SDK from before
|
|
190
|
+
# them. {gs-plans/eval-adapters/36}
|
|
191
|
+
params: dict[str, InferParam] | None = Field(default=None, max_length=32)
|
|
179
192
|
# Whether the benchmark is batched (binds OBSERVE and STEP and steps many environments in one call).
|
|
180
193
|
batched: bool = False
|
|
181
194
|
# The Dockerfile's build context, as for a deployment.
|
|
182
195
|
image_context: CodeBundle | None = None
|
|
183
196
|
|
|
197
|
+
@model_validator(mode="after")
|
|
198
|
+
def _param_names(self) -> "BenchmarkRegisterRequest":
|
|
199
|
+
for name in self.params or {}:
|
|
200
|
+
if not name.isidentifier() or name.startswith("_"):
|
|
201
|
+
raise ValueError(f"setup parameter {name!r} is not a public Python identifier")
|
|
202
|
+
return self
|
|
203
|
+
|
|
184
204
|
|
|
185
205
|
class BenchmarkStatusResponse(BaseModel):
|
|
186
206
|
"""GET /v1/benchmarks/{name} — the build state of a registered benchmark (same lifecycle as a deployment:
|
|
@@ -71,7 +71,9 @@ class EvalRequest(BaseModel):
|
|
|
71
71
|
max_usd: float | None = Field(default=None, gt=0)
|
|
72
72
|
# Run again only the episodes of that earlier eval that errored; the report covers both runs.
|
|
73
73
|
rerun_of: str | None = None
|
|
74
|
-
#
|
|
74
|
+
# Parameters set for every arm of this eval: by `side.name` — the policy's @seq.infer, the adapter's __init__, the
|
|
75
|
+
# benchmark's @seq.setup, or the eval loop's own (`eval.steps_per_query`) — or by the bare name when only one side
|
|
76
|
+
# declares it. `sweep` names them the same way. {gs-plans/eval-adapters/36}
|
|
75
77
|
params: dict[str, int | float | bool | str] | None = Field(default=None, max_length=32)
|
|
76
78
|
# Only the conditions whose variant takes one of these values on each named axis.
|
|
77
79
|
variants: dict[str, list[str]] | None = Field(default=None, max_length=32)
|
|
@@ -261,6 +263,8 @@ class ArmReport(BaseModel):
|
|
|
261
263
|
|
|
262
264
|
arm: int
|
|
263
265
|
model: str
|
|
266
|
+
# What this arm's eval set (the eval's params and this arm's sweep values): a policy's inference parameter by its
|
|
267
|
+
# name, any other side's as side.name (`eval.steps_per_query`). Every value it ran with is in EvalReport.arm_params.
|
|
264
268
|
params: dict[str, int | float | bool | str] = Field(default_factory=dict)
|
|
265
269
|
metrics: dict[str, MetricAgg] = Field(default_factory=dict)
|
|
266
270
|
# Each metric's 95% confidence interval as [low, high].
|
|
@@ -271,6 +275,33 @@ class ArmReport(BaseModel):
|
|
|
271
275
|
budget_stopped: bool = False
|
|
272
276
|
|
|
273
277
|
|
|
278
|
+
class ParamUsed(BaseModel):
|
|
279
|
+
"""One parameter's value in an arm, and who gave it: the eval (`cli`), the default its declaring side wrote
|
|
280
|
+
(`policy` / `adapter` / `benchmark`), or the platform's own (`platform`). {gs-plans/eval-adapters/36}"""
|
|
281
|
+
|
|
282
|
+
model_config = ConfigDict(extra="forbid")
|
|
283
|
+
|
|
284
|
+
value: int | float | bool | str | None = None
|
|
285
|
+
source: Literal["cli", "policy", "adapter", "benchmark", "platform"]
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
class ArmParams(BaseModel):
|
|
289
|
+
"""An arm's parameters, side by side: every one the policy's @seq.infer, the adapter's __init__, the benchmark's
|
|
290
|
+
@seq.setup and the eval loop declare, with the value the arm ran with and where it came from; and how many of its
|
|
291
|
+
steps asked the policy (their observation read, so rendered, once each) of all the steps it took — what
|
|
292
|
+
`eval.steps_per_query` saves. {gs-plans/eval-adapters/36}"""
|
|
293
|
+
|
|
294
|
+
model_config = ConfigDict(extra="forbid")
|
|
295
|
+
|
|
296
|
+
arm: int
|
|
297
|
+
policy: dict[str, ParamUsed] = Field(default_factory=dict)
|
|
298
|
+
adapter: dict[str, ParamUsed] = Field(default_factory=dict)
|
|
299
|
+
benchmark: dict[str, ParamUsed] = Field(default_factory=dict)
|
|
300
|
+
eval: dict[str, ParamUsed] = Field(default_factory=dict)
|
|
301
|
+
queries: int | None = None
|
|
302
|
+
steps: int | None = None
|
|
303
|
+
|
|
304
|
+
|
|
274
305
|
class PairedDiff(BaseModel):
|
|
275
306
|
"""`compare`: one metric's difference between two arms over the seeds both ran (b - a), with its interval."""
|
|
276
307
|
|
|
@@ -323,6 +354,9 @@ class EvalReport(BaseModel):
|
|
|
323
354
|
paired: list[PairedDiff] | None = None
|
|
324
355
|
timing: EvalTiming | None = None
|
|
325
356
|
stop_reason: str | None = None
|
|
357
|
+
# Per arm, every parameter's value and where it came from (gs-plans eval-adapters/36). Here and not in ArmReport:
|
|
358
|
+
# an SDK from before it drops a report key its contract does not define, but would refuse one inside an arm.
|
|
359
|
+
arm_params: list[ArmParams] | None = None
|
|
326
360
|
|
|
327
361
|
|
|
328
362
|
class AdapterKind(str, Enum):
|
{sequence_base-0.3.21 → sequence_base-0.3.23}/sequence_base/schemas/BenchmarkRegisterRequest.json
RENAMED
|
@@ -415,6 +415,48 @@
|
|
|
415
415
|
"title": "ImageStepUvPip",
|
|
416
416
|
"type": "object"
|
|
417
417
|
},
|
|
418
|
+
"InferParam": {
|
|
419
|
+
"additionalProperties": false,
|
|
420
|
+
"description": "One inference parameter the policy's `@seq.infer` declares — `def infer(self, obs, *, num_steps: int = 10)`\n— with its type and default. An /act or an eval may set it; the worker passes only declared names, cast to\nthis type, and refuses any other. {gs-plans/customization/policy.md \"四、推理行为\"}",
|
|
421
|
+
"properties": {
|
|
422
|
+
"default": {
|
|
423
|
+
"anyOf": [
|
|
424
|
+
{
|
|
425
|
+
"type": "integer"
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
"type": "number"
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"type": "boolean"
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
"type": "string"
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
"type": "null"
|
|
438
|
+
}
|
|
439
|
+
],
|
|
440
|
+
"default": null,
|
|
441
|
+
"title": "Default"
|
|
442
|
+
},
|
|
443
|
+
"type": {
|
|
444
|
+
"enum": [
|
|
445
|
+
"int",
|
|
446
|
+
"float",
|
|
447
|
+
"bool",
|
|
448
|
+
"str"
|
|
449
|
+
],
|
|
450
|
+
"title": "Type",
|
|
451
|
+
"type": "string"
|
|
452
|
+
}
|
|
453
|
+
},
|
|
454
|
+
"required": [
|
|
455
|
+
"type"
|
|
456
|
+
],
|
|
457
|
+
"title": "InferParam",
|
|
458
|
+
"type": "object"
|
|
459
|
+
},
|
|
418
460
|
"RenderSpec": {
|
|
419
461
|
"additionalProperties": false,
|
|
420
462
|
"description": "a.k.a. `seq.Record` — declares the mp4 the platform records (money-shot is a platform tool, not user\nglue). `camera` picks which camera stream to pull frames from; `fps` is the output frame rate. Used two\nways: as `BenchmarkSpec.render` (record the whole eval) and as `Step.record` (a per-frame hint).",
|
|
@@ -424,6 +466,24 @@
|
|
|
424
466
|
"title": "Camera",
|
|
425
467
|
"type": "string"
|
|
426
468
|
},
|
|
469
|
+
"flip": {
|
|
470
|
+
"anyOf": [
|
|
471
|
+
{
|
|
472
|
+
"enum": [
|
|
473
|
+
"vertical",
|
|
474
|
+
"horizontal",
|
|
475
|
+
"both"
|
|
476
|
+
],
|
|
477
|
+
"type": "string"
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"type": "null"
|
|
481
|
+
}
|
|
482
|
+
],
|
|
483
|
+
"default": null,
|
|
484
|
+
"description": "'vertical': rows reversed (upside down); 'horizontal': mirrored; 'both': turned 180°; None: as drawn",
|
|
485
|
+
"title": "Flip"
|
|
486
|
+
},
|
|
427
487
|
"fps": {
|
|
428
488
|
"default": 30,
|
|
429
489
|
"title": "Fps",
|
|
@@ -647,6 +707,22 @@
|
|
|
647
707
|
"title": "Name",
|
|
648
708
|
"type": "string"
|
|
649
709
|
},
|
|
710
|
+
"params": {
|
|
711
|
+
"anyOf": [
|
|
712
|
+
{
|
|
713
|
+
"additionalProperties": {
|
|
714
|
+
"$ref": "#/$defs/InferParam"
|
|
715
|
+
},
|
|
716
|
+
"maxProperties": 32,
|
|
717
|
+
"type": "object"
|
|
718
|
+
},
|
|
719
|
+
{
|
|
720
|
+
"type": "null"
|
|
721
|
+
}
|
|
722
|
+
],
|
|
723
|
+
"default": null,
|
|
724
|
+
"title": "Params"
|
|
725
|
+
},
|
|
650
726
|
"render": {
|
|
651
727
|
"anyOf": [
|
|
652
728
|
{
|
|
@@ -700,5 +776,5 @@
|
|
|
700
776
|
],
|
|
701
777
|
"title": "BenchmarkRegisterRequest",
|
|
702
778
|
"type": "object",
|
|
703
|
-
"x-contract-version": "0.4.
|
|
779
|
+
"x-contract-version": "0.4.20"
|
|
704
780
|
}
|
|
@@ -232,6 +232,24 @@
|
|
|
232
232
|
"title": "Camera",
|
|
233
233
|
"type": "string"
|
|
234
234
|
},
|
|
235
|
+
"flip": {
|
|
236
|
+
"anyOf": [
|
|
237
|
+
{
|
|
238
|
+
"enum": [
|
|
239
|
+
"vertical",
|
|
240
|
+
"horizontal",
|
|
241
|
+
"both"
|
|
242
|
+
],
|
|
243
|
+
"type": "string"
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"type": "null"
|
|
247
|
+
}
|
|
248
|
+
],
|
|
249
|
+
"default": null,
|
|
250
|
+
"description": "'vertical': rows reversed (upside down); 'horizontal': mirrored; 'both': turned 180°; None: as drawn",
|
|
251
|
+
"title": "Flip"
|
|
252
|
+
},
|
|
235
253
|
"fps": {
|
|
236
254
|
"default": 30,
|
|
237
255
|
"title": "Fps",
|
|
@@ -279,7 +297,7 @@
|
|
|
279
297
|
],
|
|
280
298
|
"title": "SeqFlags",
|
|
281
299
|
"type": "integer",
|
|
282
|
-
"x-contract-version": "0.4.
|
|
300
|
+
"x-contract-version": "0.4.20",
|
|
283
301
|
"x-flag-names": {
|
|
284
302
|
"CHECK": 65536,
|
|
285
303
|
"INFER": 16,
|
|
@@ -487,5 +505,5 @@
|
|
|
487
505
|
],
|
|
488
506
|
"title": "BenchmarkSpec",
|
|
489
507
|
"type": "object",
|
|
490
|
-
"x-contract-version": "0.4.
|
|
508
|
+
"x-contract-version": "0.4.20"
|
|
491
509
|
}
|