sequence-base 0.4.5__tar.gz → 0.4.6__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.
Files changed (107) hide show
  1. {sequence_base-0.4.5 → sequence_base-0.4.6}/PKG-INFO +1 -1
  2. {sequence_base-0.4.5 → sequence_base-0.4.6}/pyproject.toml +1 -1
  3. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/__init__.py +2 -1
  4. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/constants/version.py +2 -1
  5. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/contract/__init__.py +2 -1
  6. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/contract/benchmarks.py +25 -0
  7. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/contract/eval.py +3 -0
  8. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schema_export.py +2 -0
  9. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ActRequest.json +1 -1
  10. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ActResponse.json +1 -1
  11. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ActionChunk.json +1 -1
  12. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ActionContract.json +1 -1
  13. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ActionStep.json +1 -1
  14. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/AdapterTransform.json +1 -1
  15. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/AddLocal.json +1 -1
  16. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/Autoscaler.json +1 -1
  17. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/BenchmarkConditionSpec.json +1 -1
  18. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/BenchmarkRegisterRequest.json +67 -1
  19. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/BenchmarkSpec.json +68 -2
  20. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/BenchmarkStatusResponse.json +1 -1
  21. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/BootstrapResponse.json +1 -1
  22. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/Camera.json +1 -1
  23. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ClampInfo.json +1 -1
  24. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/CodeBundle.json +1 -1
  25. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/Concurrency.json +1 -1
  26. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/Conditions.json +1 -1
  27. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ConnectRequest.json +1 -1
  28. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ConnectResponse.json +1 -1
  29. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/DeploymentAccepted.json +1 -1
  30. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/DeploymentPolicy.json +1 -1
  31. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/DeploymentRequest.json +1 -1
  32. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/DeploymentStatusResponse.json +1 -1
  33. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/Embodiment.json +1 -1
  34. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ErrorBody.json +1 -1
  35. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ErrorCodes.json +1 -1
  36. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/Estimate.json +1 -1
  37. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/EvalDryRunResponse.json +1 -1
  38. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/EvalReport.json +1 -1
  39. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/EvalRequest.json +17 -1
  40. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/EvalResponse.json +1 -1
  41. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ImageFrame.json +1 -1
  42. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ImageSpec.json +1 -1
  43. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ImageStepAddLocal.json +1 -1
  44. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ImageStepApt.json +1 -1
  45. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ImageStepEnv.json +1 -1
  46. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ImageStepRun.json +1 -1
  47. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ImageStepTemplateFiles.json +1 -1
  48. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ImageStepUvPip.json +1 -1
  49. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/InferParam.json +1 -1
  50. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/Lease.json +1 -1
  51. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/LossyTransform.json +1 -1
  52. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/MetricAgg.json +1 -1
  53. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/Observation.json +1 -1
  54. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/ObservationContract.json +1 -1
  55. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/PolicyRegistration.json +2 -2
  56. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/PolicySpec.json +1 -1
  57. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/Proprioception.json +1 -1
  58. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/RenderSpec.json +1 -1
  59. sequence_base-0.4.6/sequence_base/schemas/ReplaySpec.json +56 -0
  60. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/Resources.json +1 -1
  61. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/RolloutResult.json +1 -1
  62. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/SecretCreateRequest.json +1 -1
  63. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/SecretInfo.json +1 -1
  64. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/SecretRef.json +1 -1
  65. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/SeqFlags.json +1 -1
  66. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/Step.json +1 -1
  67. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/SuiteAgg.json +1 -1
  68. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/TaskAgg.json +1 -1
  69. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/TemplateFiles.json +1 -1
  70. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/Timeouts.json +1 -1
  71. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/UploadTarget.json +1 -1
  72. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/Variant.json +1 -1
  73. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/VolumeAttach.json +1 -1
  74. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/VolumeFile.json +1 -1
  75. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/VolumeInfo.json +1 -1
  76. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/VolumeMount.json +1 -1
  77. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/VolumeRef.json +1 -1
  78. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/VolumeUploadRequest.json +1 -1
  79. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/VolumeUploadResponse.json +1 -1
  80. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/schemas/WarmingError.json +1 -1
  81. {sequence_base-0.4.5 → sequence_base-0.4.6}/.gitignore +0 -0
  82. {sequence_base-0.4.5 → sequence_base-0.4.6}/README.md +0 -0
  83. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/auth.py +0 -0
  84. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/codec/__init__.py +0 -0
  85. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/codec/image.py +0 -0
  86. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/constants/__init__.py +0 -0
  87. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/constants/headers.py +0 -0
  88. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/contract/accounts.py +0 -0
  89. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/contract/act.py +0 -0
  90. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/contract/connect.py +0 -0
  91. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/contract/deployments.py +0 -0
  92. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/contract/errors.py +0 -0
  93. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/contract/flags.py +0 -0
  94. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/contract/io.py +0 -0
  95. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/contract/policy.py +0 -0
  96. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/contract/templates.py +0 -0
  97. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/contract/volumes.py +0 -0
  98. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/contract/wire.py +0 -0
  99. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/errors/__init__.py +0 -0
  100. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/errors/transport.py +0 -0
  101. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/obs/__init__.py +0 -0
  102. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/obs/log.py +0 -0
  103. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/obs/rid.py +0 -0
  104. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/presets/__init__.py +0 -0
  105. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/presets/robot_arm.py +0 -0
  106. {sequence_base-0.4.5 → sequence_base-0.4.6}/sequence_base/telemetry/__init__.py +0 -0
  107. {sequence_base-0.4.5 → sequence_base-0.4.6}/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.4.5
3
+ Version: 0.4.6
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
  Project-URL: Changelog, https://generalsequences.com/docs/changelog/
6
6
  Requires-Python: >=3.10
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sequence-base"
3
- version = "0.4.5"
3
+ version = "0.4.6"
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
  requires-python = ">=3.10"
6
6
  dependencies = ["pydantic>=2.0"]
@@ -82,6 +82,7 @@ from sequence_base.contract import (
82
82
  PolicySpec,
83
83
  Proprioception,
84
84
  RenderSpec,
85
+ ReplaySpec,
85
86
  Resources,
86
87
  RolloutResult,
87
88
  SecretCreateRequest,
@@ -139,7 +140,7 @@ __all__ = [
139
140
 
140
141
  "Lease", "ConnectRequest", "ConnectResponse",
141
142
 
142
- "Variant", "Conditions", "RenderSpec", "Step", "BenchmarkSpec", "BenchmarkConditionSpec", "BenchmarkRegisterRequest", "BenchmarkStatusResponse",
143
+ "Variant", "Conditions", "RenderSpec", "ReplaySpec", "Step", "BenchmarkSpec", "BenchmarkConditionSpec", "BenchmarkRegisterRequest", "BenchmarkStatusResponse",
143
144
  "EvalRequest", "ClampInfo", "Estimate", "EvalResponse", "EvalDryRunResponse", "RolloutResult",
144
145
  "EvalStatus", "SuiteAgg", "TaskAgg", "MetricAgg", "LossyTransform", "EvalReport",
145
146
  "AdapterKind", "AdapterTransform",
@@ -4,7 +4,8 @@
4
4
 
5
5
 
6
6
 
7
- CONTRACT_VERSION = "0.5.5"
7
+ CONTRACT_VERSION = "0.5.6"
8
+
8
9
 
9
10
 
10
11
 
@@ -67,6 +67,7 @@ from sequence_base.contract.benchmarks import (
67
67
  BenchmarkSpec,
68
68
  Conditions,
69
69
  RenderSpec,
70
+ ReplaySpec,
70
71
  Step,
71
72
  Variant,
72
73
  )
@@ -131,7 +132,7 @@ __all__ = [
131
132
 
132
133
  "Lease", "ConnectRequest", "ConnectResponse",
133
134
 
134
- "Variant", "Conditions", "RenderSpec", "Step", "BenchmarkSpec", "BenchmarkConditionSpec", "BenchmarkRegisterRequest", "BenchmarkStatusResponse",
135
+ "Variant", "Conditions", "RenderSpec", "ReplaySpec", "Step", "BenchmarkSpec", "BenchmarkConditionSpec", "BenchmarkRegisterRequest", "BenchmarkStatusResponse",
135
136
  "EvalRequest", "ClampInfo", "Estimate", "EvalResponse", "EvalDryRunResponse", "RolloutResult",
136
137
  "EvalStatus", "SuiteAgg", "TaskAgg", "MetricAgg", "LossyTransform", "EvalReport",
137
138
  "AdapterKind", "AdapterTransform",
@@ -25,6 +25,7 @@ __all__ = [
25
25
  "Variant",
26
26
  "Conditions",
27
27
  "RenderSpec",
28
+ "ReplaySpec",
28
29
  "Step",
29
30
  "BenchmarkSpec",
30
31
  "BenchmarkRegisterRequest",
@@ -69,6 +70,26 @@ class RenderSpec(BaseModel):
69
70
  "None: as drawn")
70
71
 
71
72
 
73
+ class ReplaySpec(BaseModel):
74
+ """a.k.a. `seq.Replay` — declares that the platform records the eval's 3D replay: each step every node's world
75
+ transform, drawn in the owner's browser after the eval. `engine` picks the platform's
76
+ adapter that reads the simulation's state ("mujoco", "sapien", "isaac"); "own" means the benchmark hands the frames itself
77
+ (`seq.replay.scene` / `seq.replay.frame`); None takes the benchmark's own `engine`. `state` names the benchmark
78
+ method an adapter calls for the engine's state of an env (or of a batched benchmark's slots), `looks` the one that
79
+ says what the adapter cannot read - a colour or a visibility each episode sets. Whether an eval records it is the
80
+ eval's `replay` ("3d" by default, "none")."""
81
+
82
+ model_config = ConfigDict(extra="forbid")
83
+
84
+ engine: Literal["mujoco", "sapien", "isaac", "own"] | None = Field(
85
+ None, description="The adapter that reads the simulation: 'mujoco' (incl. MuJoCo Warp), 'sapien', 'isaac', or "
86
+ "'own' (the benchmark hands frames itself); None: the benchmark's engine")
87
+ state: str | None = Field(None, pattern=r"^[A-Za-z_][A-Za-z0-9_]*$",
88
+ description="The benchmark method an adapter calls for an env's (or slots') engine state")
89
+ looks: str | None = Field(None, pattern=r"^[A-Za-z_][A-Za-z0-9_]*$",
90
+ description="The benchmark method that says each episode's colours or visibility")
91
+
92
+
72
93
  class Step(BaseModel):
73
94
  """What `@seq.check` returns each step. The platform settles each env per-step from this and NEVER
74
95
  invents a success metric — `done` is the user's call, and `metrics` keys are user-named (the platform
@@ -107,6 +128,8 @@ class BenchmarkSpec(BaseModel):
107
128
  envs: int | None = Field(default=None, ge=1, le=65536)
108
129
  assets: list[VolumeRef] = Field(default_factory=list)
109
130
  render: RenderSpec | None = None
131
+
132
+ replay: ReplaySpec | None = None
110
133
  cpu: int | None = None
111
134
  memory_gb: int | None = None
112
135
  secrets: list[SecretRef] = Field(default_factory=list)
@@ -158,6 +181,8 @@ class BenchmarkRegisterRequest(BaseModel):
158
181
  handler_ref: str
159
182
  assets: list[VolumeRef] = Field(default_factory=list)
160
183
  render: RenderSpec | None = None
184
+
185
+ replay: ReplaySpec | None = None
161
186
  cpu: int | None = None
162
187
  memory_gb: int | None = None
163
188
 
@@ -82,6 +82,9 @@ class EvalRequest(BaseModel):
82
82
  record: Literal["per-task", "all", "none"] | None = None
83
83
 
84
84
 
85
+ replay: Literal["3d", "none"] | None = None
86
+
87
+
85
88
  class ClampInfo(BaseModel):
86
89
  """Why the granted GPU count was clamped below the request — structured, not a bare value."""
87
90
 
@@ -40,6 +40,7 @@ from sequence_base.contract.benchmarks import (
40
40
  BenchmarkSpec,
41
41
  Conditions,
42
42
  RenderSpec,
43
+ ReplaySpec,
43
44
  Step,
44
45
  Variant,
45
46
  )
@@ -153,6 +154,7 @@ WIRE_MODELS: dict[str, type[BaseModel]] = {
153
154
  "Variant": Variant,
154
155
  "Conditions": Conditions,
155
156
  "RenderSpec": RenderSpec,
157
+ "ReplaySpec": ReplaySpec,
156
158
  "Step": Step,
157
159
  "BenchmarkSpec": BenchmarkSpec,
158
160
  "BenchmarkConditionSpec": BenchmarkConditionSpec,
@@ -79,5 +79,5 @@
79
79
  ],
80
80
  "title": "ActRequest",
81
81
  "type": "object",
82
- "x-contract-version": "0.5.5"
82
+ "x-contract-version": "0.5.6"
83
83
  }
@@ -89,5 +89,5 @@
89
89
  ],
90
90
  "title": "ActResponse",
91
91
  "type": "object",
92
- "x-contract-version": "0.5.5"
92
+ "x-contract-version": "0.5.6"
93
93
  }
@@ -99,5 +99,5 @@
99
99
  ],
100
100
  "title": "ActionChunk",
101
101
  "type": "object",
102
- "x-contract-version": "0.5.5"
102
+ "x-contract-version": "0.5.6"
103
103
  }
@@ -116,5 +116,5 @@
116
116
  ],
117
117
  "title": "ActionContract",
118
118
  "type": "object",
119
- "x-contract-version": "0.5.5"
119
+ "x-contract-version": "0.5.6"
120
120
  }
@@ -19,5 +19,5 @@
19
19
  ],
20
20
  "title": "ActionStep",
21
21
  "type": "object",
22
- "x-contract-version": "0.5.5"
22
+ "x-contract-version": "0.5.6"
23
23
  }
@@ -38,5 +38,5 @@
38
38
  ],
39
39
  "title": "AdapterTransform",
40
40
  "type": "object",
41
- "x-contract-version": "0.5.5"
41
+ "x-contract-version": "0.5.6"
42
42
  }
@@ -23,5 +23,5 @@
23
23
  ],
24
24
  "title": "AddLocal",
25
25
  "type": "object",
26
- "x-contract-version": "0.5.5"
26
+ "x-contract-version": "0.5.6"
27
27
  }
@@ -69,5 +69,5 @@
69
69
  },
70
70
  "title": "Autoscaler",
71
71
  "type": "object",
72
- "x-contract-version": "0.5.5"
72
+ "x-contract-version": "0.5.6"
73
73
  }
@@ -62,5 +62,5 @@
62
62
  ],
63
63
  "title": "BenchmarkConditionSpec",
64
64
  "type": "object",
65
- "x-contract-version": "0.5.5"
65
+ "x-contract-version": "0.5.6"
66
66
  }
@@ -588,6 +588,61 @@
588
588
  "title": "RenderSpec",
589
589
  "type": "object"
590
590
  },
591
+ "ReplaySpec": {
592
+ "additionalProperties": false,
593
+ "description": "a.k.a. `seq.Replay` — declares that the platform records the eval's 3D replay: each step every node's world\ntransform, drawn in the owner's browser after the eval. `engine` picks the platform's\nadapter that reads the simulation's state (\"mujoco\", \"sapien\", \"isaac\"); \"own\" means the benchmark hands the frames itself\n(`seq.replay.scene` / `seq.replay.frame`); None takes the benchmark's own `engine`. `state` names the benchmark\nmethod an adapter calls for the engine's state of an env (or of a batched benchmark's slots), `looks` the one that\nsays what the adapter cannot read - a colour or a visibility each episode sets. Whether an eval records it is the\neval's `replay` (\"3d\" by default, \"none\").",
594
+ "properties": {
595
+ "engine": {
596
+ "anyOf": [
597
+ {
598
+ "enum": [
599
+ "mujoco",
600
+ "sapien",
601
+ "isaac",
602
+ "own"
603
+ ],
604
+ "type": "string"
605
+ },
606
+ {
607
+ "type": "null"
608
+ }
609
+ ],
610
+ "default": null,
611
+ "description": "The adapter that reads the simulation: 'mujoco' (incl. MuJoCo Warp), 'sapien', 'isaac', or 'own' (the benchmark hands frames itself); None: the benchmark's engine",
612
+ "title": "Engine"
613
+ },
614
+ "looks": {
615
+ "anyOf": [
616
+ {
617
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
618
+ "type": "string"
619
+ },
620
+ {
621
+ "type": "null"
622
+ }
623
+ ],
624
+ "default": null,
625
+ "description": "The benchmark method that says each episode's colours or visibility",
626
+ "title": "Looks"
627
+ },
628
+ "state": {
629
+ "anyOf": [
630
+ {
631
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
632
+ "type": "string"
633
+ },
634
+ {
635
+ "type": "null"
636
+ }
637
+ ],
638
+ "default": null,
639
+ "description": "The benchmark method an adapter calls for an env's (or slots') engine state",
640
+ "title": "State"
641
+ }
642
+ },
643
+ "title": "ReplaySpec",
644
+ "type": "object"
645
+ },
591
646
  "SecretRef": {
592
647
  "additionalProperties": false,
593
648
  "description": "A by-name reference to a secret (PolicySpec.secrets / BenchmarkSpec.secrets). Name only — the\nplatform keeps the value and injects it when a worker starts. Never carries a value.",
@@ -864,6 +919,17 @@
864
919
  ],
865
920
  "default": null
866
921
  },
922
+ "replay": {
923
+ "anyOf": [
924
+ {
925
+ "$ref": "#/$defs/ReplaySpec"
926
+ },
927
+ {
928
+ "type": "null"
929
+ }
930
+ ],
931
+ "default": null
932
+ },
867
933
  "score": {
868
934
  "default": false,
869
935
  "title": "Score",
@@ -906,5 +972,5 @@
906
972
  ],
907
973
  "title": "BenchmarkRegisterRequest",
908
974
  "type": "object",
909
- "x-contract-version": "0.5.5"
975
+ "x-contract-version": "0.5.6"
910
976
  }
@@ -278,6 +278,61 @@
278
278
  "title": "RenderSpec",
279
279
  "type": "object"
280
280
  },
281
+ "ReplaySpec": {
282
+ "additionalProperties": false,
283
+ "description": "a.k.a. `seq.Replay` — declares that the platform records the eval's 3D replay: each step every node's world\ntransform, drawn in the owner's browser after the eval. `engine` picks the platform's\nadapter that reads the simulation's state (\"mujoco\", \"sapien\", \"isaac\"); \"own\" means the benchmark hands the frames itself\n(`seq.replay.scene` / `seq.replay.frame`); None takes the benchmark's own `engine`. `state` names the benchmark\nmethod an adapter calls for the engine's state of an env (or of a batched benchmark's slots), `looks` the one that\nsays what the adapter cannot read - a colour or a visibility each episode sets. Whether an eval records it is the\neval's `replay` (\"3d\" by default, \"none\").",
284
+ "properties": {
285
+ "engine": {
286
+ "anyOf": [
287
+ {
288
+ "enum": [
289
+ "mujoco",
290
+ "sapien",
291
+ "isaac",
292
+ "own"
293
+ ],
294
+ "type": "string"
295
+ },
296
+ {
297
+ "type": "null"
298
+ }
299
+ ],
300
+ "default": null,
301
+ "description": "The adapter that reads the simulation: 'mujoco' (incl. MuJoCo Warp), 'sapien', 'isaac', or 'own' (the benchmark hands frames itself); None: the benchmark's engine",
302
+ "title": "Engine"
303
+ },
304
+ "looks": {
305
+ "anyOf": [
306
+ {
307
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
308
+ "type": "string"
309
+ },
310
+ {
311
+ "type": "null"
312
+ }
313
+ ],
314
+ "default": null,
315
+ "description": "The benchmark method that says each episode's colours or visibility",
316
+ "title": "Looks"
317
+ },
318
+ "state": {
319
+ "anyOf": [
320
+ {
321
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
322
+ "type": "string"
323
+ },
324
+ {
325
+ "type": "null"
326
+ }
327
+ ],
328
+ "default": null,
329
+ "description": "The benchmark method an adapter calls for an env's (or slots') engine state",
330
+ "title": "State"
331
+ }
332
+ },
333
+ "title": "ReplaySpec",
334
+ "type": "object"
335
+ },
281
336
  "SecretRef": {
282
337
  "additionalProperties": false,
283
338
  "description": "A by-name reference to a secret (PolicySpec.secrets / BenchmarkSpec.secrets). Name only — the\nplatform keeps the value and injects it when a worker starts. Never carries a value.",
@@ -313,7 +368,7 @@
313
368
  ],
314
369
  "title": "SeqFlags",
315
370
  "type": "integer",
316
- "x-contract-version": "0.5.5",
371
+ "x-contract-version": "0.5.6",
317
372
  "x-flag-names": {
318
373
  "CHECK": 65536,
319
374
  "INFER": 16,
@@ -541,6 +596,17 @@
541
596
  ],
542
597
  "default": null
543
598
  },
599
+ "replay": {
600
+ "anyOf": [
601
+ {
602
+ "$ref": "#/$defs/ReplaySpec"
603
+ },
604
+ {
605
+ "type": "null"
606
+ }
607
+ ],
608
+ "default": null
609
+ },
544
610
  "secrets": {
545
611
  "items": {
546
612
  "$ref": "#/$defs/SecretRef"
@@ -559,5 +625,5 @@
559
625
  ],
560
626
  "title": "BenchmarkSpec",
561
627
  "type": "object",
562
- "x-contract-version": "0.5.5"
628
+ "x-contract-version": "0.5.6"
563
629
  }
@@ -40,5 +40,5 @@
40
40
  ],
41
41
  "title": "BenchmarkStatusResponse",
42
42
  "type": "object",
43
- "x-contract-version": "0.5.5"
43
+ "x-contract-version": "0.5.6"
44
44
  }
@@ -79,5 +79,5 @@
79
79
  ],
80
80
  "title": "BootstrapResponse",
81
81
  "type": "object",
82
- "x-contract-version": "0.5.5"
82
+ "x-contract-version": "0.5.6"
83
83
  }
@@ -72,5 +72,5 @@
72
72
  ],
73
73
  "title": "Camera",
74
74
  "type": "object",
75
- "x-contract-version": "0.5.5"
75
+ "x-contract-version": "0.5.6"
76
76
  }
@@ -23,5 +23,5 @@
23
23
  ],
24
24
  "title": "ClampInfo",
25
25
  "type": "object",
26
- "x-contract-version": "0.5.5"
26
+ "x-contract-version": "0.5.6"
27
27
  }
@@ -23,5 +23,5 @@
23
23
  ],
24
24
  "title": "CodeBundle",
25
25
  "type": "object",
26
- "x-contract-version": "0.5.5"
26
+ "x-contract-version": "0.5.6"
27
27
  }
@@ -96,5 +96,5 @@
96
96
  },
97
97
  "title": "Concurrency",
98
98
  "type": "object",
99
- "x-contract-version": "0.5.5"
99
+ "x-contract-version": "0.5.6"
100
100
  }
@@ -55,5 +55,5 @@
55
55
  ],
56
56
  "title": "Conditions",
57
57
  "type": "object",
58
- "x-contract-version": "0.5.5"
58
+ "x-contract-version": "0.5.6"
59
59
  }
@@ -25,5 +25,5 @@
25
25
  ],
26
26
  "title": "ConnectRequest",
27
27
  "type": "object",
28
- "x-contract-version": "0.5.5"
28
+ "x-contract-version": "0.5.6"
29
29
  }
@@ -342,5 +342,5 @@
342
342
  ],
343
343
  "title": "ConnectResponse",
344
344
  "type": "object",
345
- "x-contract-version": "0.5.5"
345
+ "x-contract-version": "0.5.6"
346
346
  }
@@ -18,5 +18,5 @@
18
18
  ],
19
19
  "title": "DeploymentAccepted",
20
20
  "type": "object",
21
- "x-contract-version": "0.5.5"
21
+ "x-contract-version": "0.5.6"
22
22
  }
@@ -530,5 +530,5 @@
530
530
  ],
531
531
  "title": "DeploymentPolicy",
532
532
  "type": "object",
533
- "x-contract-version": "0.5.5"
533
+ "x-contract-version": "0.5.6"
534
534
  }
@@ -1224,5 +1224,5 @@
1224
1224
  ],
1225
1225
  "title": "DeploymentRequest",
1226
1226
  "type": "object",
1227
- "x-contract-version": "0.5.5"
1227
+ "x-contract-version": "0.5.6"
1228
1228
  }
@@ -58,5 +58,5 @@
58
58
  ],
59
59
  "title": "DeploymentStatusResponse",
60
60
  "type": "object",
61
- "x-contract-version": "0.5.5"
61
+ "x-contract-version": "0.5.6"
62
62
  }
@@ -267,5 +267,5 @@
267
267
  ],
268
268
  "title": "Embodiment",
269
269
  "type": "object",
270
- "x-contract-version": "0.5.5"
270
+ "x-contract-version": "0.5.6"
271
271
  }
@@ -94,5 +94,5 @@
94
94
  ],
95
95
  "title": "ErrorBody",
96
96
  "type": "object",
97
- "x-contract-version": "0.5.5"
97
+ "x-contract-version": "0.5.6"
98
98
  }
@@ -22,7 +22,7 @@
22
22
  ],
23
23
  "title": "ErrorCode",
24
24
  "type": "string",
25
- "x-contract-version": "0.5.5",
25
+ "x-contract-version": "0.5.6",
26
26
  "x-errors": {
27
27
  "budget_exhausted": {
28
28
  "exit_code": 6,
@@ -60,5 +60,5 @@
60
60
  ],
61
61
  "title": "Estimate",
62
62
  "type": "object",
63
- "x-contract-version": "0.5.5"
63
+ "x-contract-version": "0.5.6"
64
64
  }
@@ -240,5 +240,5 @@
240
240
  ],
241
241
  "title": "EvalDryRunResponse",
242
242
  "type": "object",
243
- "x-contract-version": "0.5.5"
243
+ "x-contract-version": "0.5.6"
244
244
  }
@@ -523,5 +523,5 @@
523
523
  ],
524
524
  "title": "EvalReport",
525
525
  "type": "object",
526
- "x-contract-version": "0.5.5"
526
+ "x-contract-version": "0.5.6"
527
527
  }
@@ -159,6 +159,22 @@
159
159
  "default": null,
160
160
  "title": "Record"
161
161
  },
162
+ "replay": {
163
+ "anyOf": [
164
+ {
165
+ "enum": [
166
+ "3d",
167
+ "none"
168
+ ],
169
+ "type": "string"
170
+ },
171
+ {
172
+ "type": "null"
173
+ }
174
+ ],
175
+ "default": null,
176
+ "title": "Replay"
177
+ },
162
178
  "rerun_of": {
163
179
  "anyOf": [
164
180
  {
@@ -281,5 +297,5 @@
281
297
  ],
282
298
  "title": "EvalRequest",
283
299
  "type": "object",
284
- "x-contract-version": "0.5.5"
300
+ "x-contract-version": "0.5.6"
285
301
  }
@@ -190,5 +190,5 @@
190
190
  ],
191
191
  "title": "EvalResponse",
192
192
  "type": "object",
193
- "x-contract-version": "0.5.5"
193
+ "x-contract-version": "0.5.6"
194
194
  }
@@ -49,5 +49,5 @@
49
49
  ],
50
50
  "title": "ImageFrame",
51
51
  "type": "object",
52
- "x-contract-version": "0.5.5"
52
+ "x-contract-version": "0.5.6"
53
53
  }
@@ -245,5 +245,5 @@
245
245
  },
246
246
  "title": "ImageSpec",
247
247
  "type": "object",
248
- "x-contract-version": "0.5.5"
248
+ "x-contract-version": "0.5.6"
249
249
  }
@@ -38,5 +38,5 @@
38
38
  ],
39
39
  "title": "ImageStepAddLocal",
40
40
  "type": "object",
41
- "x-contract-version": "0.5.5"
41
+ "x-contract-version": "0.5.6"
42
42
  }
@@ -14,5 +14,5 @@
14
14
  ],
15
15
  "title": "ImageStepApt",
16
16
  "type": "object",
17
- "x-contract-version": "0.5.5"
17
+ "x-contract-version": "0.5.6"
18
18
  }
@@ -14,5 +14,5 @@
14
14
  ],
15
15
  "title": "ImageStepEnv",
16
16
  "type": "object",
17
- "x-contract-version": "0.5.5"
17
+ "x-contract-version": "0.5.6"
18
18
  }
@@ -46,5 +46,5 @@
46
46
  ],
47
47
  "title": "ImageStepRun",
48
48
  "type": "object",
49
- "x-contract-version": "0.5.5"
49
+ "x-contract-version": "0.5.6"
50
50
  }
@@ -37,5 +37,5 @@
37
37
  ],
38
38
  "title": "ImageStepTemplateFiles",
39
39
  "type": "object",
40
- "x-contract-version": "0.5.5"
40
+ "x-contract-version": "0.5.6"
41
41
  }
@@ -14,5 +14,5 @@
14
14
  ],
15
15
  "title": "ImageStepUvPip",
16
16
  "type": "object",
17
- "x-contract-version": "0.5.5"
17
+ "x-contract-version": "0.5.6"
18
18
  }
@@ -99,5 +99,5 @@
99
99
  ],
100
100
  "title": "InferParam",
101
101
  "type": "object",
102
- "x-contract-version": "0.5.5"
102
+ "x-contract-version": "0.5.6"
103
103
  }
@@ -24,5 +24,5 @@
24
24
  ],
25
25
  "title": "Lease",
26
26
  "type": "object",
27
- "x-contract-version": "0.5.5"
27
+ "x-contract-version": "0.5.6"
28
28
  }
@@ -17,5 +17,5 @@
17
17
  ],
18
18
  "title": "LossyTransform",
19
19
  "type": "object",
20
- "x-contract-version": "0.5.5"
20
+ "x-contract-version": "0.5.6"
21
21
  }
@@ -83,5 +83,5 @@
83
83
  ],
84
84
  "title": "MetricAgg",
85
85
  "type": "object",
86
- "x-contract-version": "0.5.5"
86
+ "x-contract-version": "0.5.6"
87
87
  }
@@ -164,5 +164,5 @@
164
164
  ],
165
165
  "title": "Observation",
166
166
  "type": "object",
167
- "x-contract-version": "0.5.5"
167
+ "x-contract-version": "0.5.6"
168
168
  }
@@ -120,5 +120,5 @@
120
120
  },
121
121
  "title": "ObservationContract",
122
122
  "type": "object",
123
- "x-contract-version": "0.5.5"
123
+ "x-contract-version": "0.5.6"
124
124
  }
@@ -852,7 +852,7 @@
852
852
  ],
853
853
  "title": "SeqFlags",
854
854
  "type": "integer",
855
- "x-contract-version": "0.5.5",
855
+ "x-contract-version": "0.5.6",
856
856
  "x-flag-names": {
857
857
  "CHECK": 65536,
858
858
  "INFER": 16,
@@ -981,5 +981,5 @@
981
981
  ],
982
982
  "title": "PolicyRegistration",
983
983
  "type": "object",
984
- "x-contract-version": "0.5.5"
984
+ "x-contract-version": "0.5.6"
985
985
  }
@@ -883,5 +883,5 @@
883
883
  ],
884
884
  "title": "PolicySpec",
885
885
  "type": "object",
886
- "x-contract-version": "0.5.5"
886
+ "x-contract-version": "0.5.6"
887
887
  }
@@ -63,5 +63,5 @@
63
63
  ],
64
64
  "title": "Proprioception",
65
65
  "type": "object",
66
- "x-contract-version": "0.5.5"
66
+ "x-contract-version": "0.5.6"
67
67
  }
@@ -36,5 +36,5 @@
36
36
  ],
37
37
  "title": "RenderSpec",
38
38
  "type": "object",
39
- "x-contract-version": "0.5.5"
39
+ "x-contract-version": "0.5.6"
40
40
  }
@@ -0,0 +1,56 @@
1
+ {
2
+ "additionalProperties": false,
3
+ "description": "a.k.a. `seq.Replay` — declares that the platform records the eval's 3D replay: each step every node's world\ntransform, drawn in the owner's browser after the eval. `engine` picks the platform's\nadapter that reads the simulation's state (\"mujoco\", \"sapien\", \"isaac\"); \"own\" means the benchmark hands the frames itself\n(`seq.replay.scene` / `seq.replay.frame`); None takes the benchmark's own `engine`. `state` names the benchmark\nmethod an adapter calls for the engine's state of an env (or of a batched benchmark's slots), `looks` the one that\nsays what the adapter cannot read - a colour or a visibility each episode sets. Whether an eval records it is the\neval's `replay` (\"3d\" by default, \"none\").",
4
+ "properties": {
5
+ "engine": {
6
+ "anyOf": [
7
+ {
8
+ "enum": [
9
+ "mujoco",
10
+ "sapien",
11
+ "isaac",
12
+ "own"
13
+ ],
14
+ "type": "string"
15
+ },
16
+ {
17
+ "type": "null"
18
+ }
19
+ ],
20
+ "default": null,
21
+ "description": "The adapter that reads the simulation: 'mujoco' (incl. MuJoCo Warp), 'sapien', 'isaac', or 'own' (the benchmark hands frames itself); None: the benchmark's engine",
22
+ "title": "Engine"
23
+ },
24
+ "looks": {
25
+ "anyOf": [
26
+ {
27
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
28
+ "type": "string"
29
+ },
30
+ {
31
+ "type": "null"
32
+ }
33
+ ],
34
+ "default": null,
35
+ "description": "The benchmark method that says each episode's colours or visibility",
36
+ "title": "Looks"
37
+ },
38
+ "state": {
39
+ "anyOf": [
40
+ {
41
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
42
+ "type": "string"
43
+ },
44
+ {
45
+ "type": "null"
46
+ }
47
+ ],
48
+ "default": null,
49
+ "description": "The benchmark method an adapter calls for an env's (or slots') engine state",
50
+ "title": "State"
51
+ }
52
+ },
53
+ "title": "ReplaySpec",
54
+ "type": "object",
55
+ "x-contract-version": "0.5.6"
56
+ }
@@ -84,5 +84,5 @@
84
84
  ],
85
85
  "title": "Resources",
86
86
  "type": "object",
87
- "x-contract-version": "0.5.5"
87
+ "x-contract-version": "0.5.6"
88
88
  }
@@ -55,5 +55,5 @@
55
55
  ],
56
56
  "title": "RolloutResult",
57
57
  "type": "object",
58
- "x-contract-version": "0.5.5"
58
+ "x-contract-version": "0.5.6"
59
59
  }
@@ -21,5 +21,5 @@
21
21
  ],
22
22
  "title": "SecretCreateRequest",
23
23
  "type": "object",
24
- "x-contract-version": "0.5.5"
24
+ "x-contract-version": "0.5.6"
25
25
  }
@@ -40,5 +40,5 @@
40
40
  ],
41
41
  "title": "SecretInfo",
42
42
  "type": "object",
43
- "x-contract-version": "0.5.5"
43
+ "x-contract-version": "0.5.6"
44
44
  }
@@ -12,5 +12,5 @@
12
12
  ],
13
13
  "title": "SecretRef",
14
14
  "type": "object",
15
- "x-contract-version": "0.5.5"
15
+ "x-contract-version": "0.5.6"
16
16
  }
@@ -18,7 +18,7 @@
18
18
  ],
19
19
  "title": "SeqFlags",
20
20
  "type": "integer",
21
- "x-contract-version": "0.5.5",
21
+ "x-contract-version": "0.5.6",
22
22
  "x-flag-names": {
23
23
  "CHECK": 65536,
24
24
  "INFER": 16,
@@ -82,5 +82,5 @@
82
82
  ],
83
83
  "title": "Step",
84
84
  "type": "object",
85
- "x-contract-version": "0.5.5"
85
+ "x-contract-version": "0.5.6"
86
86
  }
@@ -22,5 +22,5 @@
22
22
  ],
23
23
  "title": "SuiteAgg",
24
24
  "type": "object",
25
- "x-contract-version": "0.5.5"
25
+ "x-contract-version": "0.5.6"
26
26
  }
@@ -22,5 +22,5 @@
22
22
  ],
23
23
  "title": "TaskAgg",
24
24
  "type": "object",
25
- "x-contract-version": "0.5.5"
25
+ "x-contract-version": "0.5.6"
26
26
  }
@@ -22,5 +22,5 @@
22
22
  ],
23
23
  "title": "TemplateFiles",
24
24
  "type": "object",
25
- "x-contract-version": "0.5.5"
25
+ "x-contract-version": "0.5.6"
26
26
  }
@@ -20,5 +20,5 @@
20
20
  ],
21
21
  "title": "Timeouts",
22
22
  "type": "object",
23
- "x-contract-version": "0.5.5"
23
+ "x-contract-version": "0.5.6"
24
24
  }
@@ -24,5 +24,5 @@
24
24
  ],
25
25
  "title": "UploadTarget",
26
26
  "type": "object",
27
- "x-contract-version": "0.5.5"
27
+ "x-contract-version": "0.5.6"
28
28
  }
@@ -20,5 +20,5 @@
20
20
  ],
21
21
  "title": "Variant",
22
22
  "type": "object",
23
- "x-contract-version": "0.5.5"
23
+ "x-contract-version": "0.5.6"
24
24
  }
@@ -22,5 +22,5 @@
22
22
  ],
23
23
  "title": "VolumeAttach",
24
24
  "type": "object",
25
- "x-contract-version": "0.5.5"
25
+ "x-contract-version": "0.5.6"
26
26
  }
@@ -25,5 +25,5 @@
25
25
  ],
26
26
  "title": "VolumeFile",
27
27
  "type": "object",
28
- "x-contract-version": "0.5.5"
28
+ "x-contract-version": "0.5.6"
29
29
  }
@@ -68,5 +68,5 @@
68
68
  ],
69
69
  "title": "VolumeInfo",
70
70
  "type": "object",
71
- "x-contract-version": "0.5.5"
71
+ "x-contract-version": "0.5.6"
72
72
  }
@@ -17,5 +17,5 @@
17
17
  ],
18
18
  "title": "VolumeMount",
19
19
  "type": "object",
20
- "x-contract-version": "0.5.5"
20
+ "x-contract-version": "0.5.6"
21
21
  }
@@ -24,5 +24,5 @@
24
24
  ],
25
25
  "title": "VolumeRef",
26
26
  "type": "object",
27
- "x-contract-version": "0.5.5"
27
+ "x-contract-version": "0.5.6"
28
28
  }
@@ -56,5 +56,5 @@
56
56
  ],
57
57
  "title": "VolumeUploadRequest",
58
58
  "type": "object",
59
- "x-contract-version": "0.5.5"
59
+ "x-contract-version": "0.5.6"
60
60
  }
@@ -65,5 +65,5 @@
65
65
  ],
66
66
  "title": "VolumeUploadResponse",
67
67
  "type": "object",
68
- "x-contract-version": "0.5.5"
68
+ "x-contract-version": "0.5.6"
69
69
  }
@@ -86,5 +86,5 @@
86
86
  ],
87
87
  "title": "WarmingError",
88
88
  "type": "object",
89
- "x-contract-version": "0.5.5"
89
+ "x-contract-version": "0.5.6"
90
90
  }
File without changes
File without changes