sequence-base 0.3.19__tar.gz → 0.3.20__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 (106) hide show
  1. {sequence_base-0.3.19 → sequence_base-0.3.20}/PKG-INFO +1 -1
  2. {sequence_base-0.3.19 → sequence_base-0.3.20}/pyproject.toml +1 -1
  3. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/constants/version.py +2 -1
  4. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/contract/accounts.py +2 -1
  5. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/contract/deployments.py +8 -3
  6. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/contract/policy.py +7 -4
  7. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ActRequest.json +1 -1
  8. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ActResponse.json +1 -1
  9. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ActionChunk.json +1 -1
  10. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ActionContract.json +1 -1
  11. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ActionStep.json +1 -1
  12. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/AdapterTransform.json +1 -1
  13. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/AddLocal.json +1 -1
  14. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/Autoscaler.json +1 -1
  15. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/BenchmarkConditionSpec.json +1 -1
  16. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/BenchmarkRegisterRequest.json +1 -1
  17. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/BenchmarkSpec.json +2 -2
  18. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/BenchmarkStatusResponse.json +1 -1
  19. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/BootstrapResponse.json +11 -4
  20. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/Camera.json +1 -1
  21. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ClampInfo.json +1 -1
  22. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/CodeBundle.json +1 -1
  23. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/Concurrency.json +1 -1
  24. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/Conditions.json +1 -1
  25. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ConnectRequest.json +1 -1
  26. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ConnectResponse.json +1 -1
  27. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/DeploymentAccepted.json +1 -1
  28. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/DeploymentPolicy.json +1 -1
  29. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/DeploymentRequest.json +11 -4
  30. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/DeploymentStatusResponse.json +1 -1
  31. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/Embodiment.json +1 -1
  32. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ErrorBody.json +1 -1
  33. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ErrorCodes.json +1 -1
  34. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/Estimate.json +1 -1
  35. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/EvalDryRunResponse.json +1 -1
  36. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/EvalReport.json +1 -1
  37. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/EvalRequest.json +1 -1
  38. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/EvalResponse.json +1 -1
  39. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ImageFrame.json +1 -1
  40. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ImageSpec.json +1 -1
  41. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ImageStepAddLocal.json +1 -1
  42. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ImageStepApt.json +1 -1
  43. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ImageStepEnv.json +1 -1
  44. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ImageStepRun.json +1 -1
  45. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ImageStepUvPip.json +1 -1
  46. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/InferParam.json +1 -1
  47. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/Lease.json +1 -1
  48. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/LossyTransform.json +1 -1
  49. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/MetricAgg.json +1 -1
  50. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/Observation.json +1 -1
  51. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/ObservationContract.json +1 -1
  52. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/PolicyRegistration.json +14 -7
  53. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/PolicySpec.json +13 -6
  54. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/Proprioception.json +1 -1
  55. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/RenderSpec.json +1 -1
  56. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/Resources.json +1 -1
  57. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/RolloutResult.json +1 -1
  58. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/SecretCreateRequest.json +1 -1
  59. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/SecretInfo.json +1 -1
  60. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/SecretRef.json +1 -1
  61. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/SeqFlags.json +1 -1
  62. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/Step.json +1 -1
  63. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/SuiteAgg.json +1 -1
  64. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/TaskAgg.json +1 -1
  65. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/Timeouts.json +1 -1
  66. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/UploadTarget.json +1 -1
  67. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/UsageReport.json +1 -1
  68. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/Variant.json +1 -1
  69. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/VolumeAttach.json +1 -1
  70. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/VolumeFile.json +1 -1
  71. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/VolumeInfo.json +1 -1
  72. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/VolumeMount.json +1 -1
  73. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/VolumeRef.json +1 -1
  74. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/VolumeUploadRequest.json +1 -1
  75. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/VolumeUploadResponse.json +1 -1
  76. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schemas/WarmingError.json +1 -1
  77. {sequence_base-0.3.19 → sequence_base-0.3.20}/.gitignore +0 -0
  78. {sequence_base-0.3.19 → sequence_base-0.3.20}/README.md +0 -0
  79. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/__init__.py +0 -0
  80. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/auth.py +0 -0
  81. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/codec/__init__.py +0 -0
  82. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/codec/image.py +0 -0
  83. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/constants/__init__.py +0 -0
  84. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/constants/env.py +0 -0
  85. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/constants/headers.py +0 -0
  86. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/contract/__init__.py +0 -0
  87. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/contract/act.py +0 -0
  88. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/contract/benchmarks.py +0 -0
  89. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/contract/connect.py +0 -0
  90. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/contract/errors.py +0 -0
  91. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/contract/eval.py +0 -0
  92. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/contract/flags.py +0 -0
  93. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/contract/io.py +0 -0
  94. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/contract/templates.py +0 -0
  95. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/contract/volumes.py +0 -0
  96. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/contract/wire.py +0 -0
  97. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/errors/__init__.py +0 -0
  98. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/errors/transport.py +0 -0
  99. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/obs/__init__.py +0 -0
  100. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/obs/log.py +0 -0
  101. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/obs/rid.py +0 -0
  102. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/presets/__init__.py +0 -0
  103. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/presets/robot_arm.py +0 -0
  104. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/schema_export.py +0 -0
  105. {sequence_base-0.3.19 → sequence_base-0.3.20}/sequence_base/telemetry/__init__.py +0 -0
  106. {sequence_base-0.3.19 → sequence_base-0.3.20}/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.19
3
+ Version: 0.3.20
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.19"
3
+ version = "0.3.20"
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,8 @@
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.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
7
+ CONTRACT_VERSION = "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)
8
+ # 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
8
9
  # 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
9
10
  # previous: 0.4.14 # 0.4.13 -> 0.4.14: the /act wire is opaque (ActRequest.inputs / ActResponse.outputs); action / observation contracts optional + DeploymentPolicy/PolicySpec/ConnectResponse .io; the robot-arm types live in sequence_base.presets.robot_arm (contract.act / contract.io re-export them); ImageStepAddLocal (seq.Image.add_local_*); ActionSpace.JOINT_VELOCITY (pi0.5 DROID's joint velocities + gripper position)
10
11
  # previous: 0.4.13 # 0.4.12 -> 0.4.13: template://<name>[@v<n>] — official template weights (parse_template); gs:// / s3:// / https:// still accepted until their removal
@@ -76,7 +76,8 @@ class BootstrapResponse(BaseModel):
76
76
  tls_key: str = Field(..., description="Self-signed TLS private key (down-direction platform secret)")
77
77
  tls_cert: str = Field(..., description="Self-signed TLS certificate (public)")
78
78
  env: dict[str, str] = Field(..., description="Policy's user secrets, expanded ENV_KEY → value")
79
- weights_uri: str
79
+ # None: a policy without a checkpoint — nothing was copied or mounted. {gs-plans/storage T13}
80
+ weights_uri: str | None = None
80
81
  lease: Lease
81
82
 
82
83
 
@@ -206,14 +206,15 @@ class CodeBundle(BaseModel):
206
206
 
207
207
 
208
208
  class DeploymentRequest(BaseModel):
209
- """The full `POST /v1/deployments` body. Required: name, image, weights, resources, policy (goal 18).
210
- autoscaler / concurrency / timeouts are typed optional knobs with sane defaults."""
209
+ """The full `POST /v1/deployments` body. Required: name, image, resources, policy (goal 18); weights unless the
210
+ policy has no checkpoint. autoscaler / concurrency / timeouts are typed optional knobs with sane defaults."""
211
211
 
212
212
  model_config = ConfigDict(extra="forbid")
213
213
 
214
214
  name: str
215
215
  image: ImageSpec
216
- weights: VolumeMount
216
+ # None: a policy without a checkpoint — no weights volume is made, copied or mounted. {gs-plans/storage T13}
217
+ weights: VolumeMount | None = None
217
218
  resources: Resources
218
219
  policy: DeploymentPolicy
219
220
  # The handler's source. None only when `handler_ref` is importable from the image itself (a package the
@@ -252,6 +253,10 @@ class DeploymentRequest(BaseModel):
252
253
  and, until they are removed, a gs:// or s3:// prefix or an https:// file — never empty. PolicySpec already enforces this for SDK-authored deploys; this holds it for any POSTed body."""
253
254
  from sequence_base.contract.policy import check_weights_parts
254
255
 
256
+ if self.weights is None:
257
+ if self.weights_name or self.extra_weights:
258
+ raise ValueError("weights parts need weights: name the first part's origin too")
259
+ return self
255
260
  check_weights_parts(self.weights_name, dict(self.extra_weights or {}))
256
261
  for what, ref in [("weights.uri", self.weights)] + [(f"extra_weights[{n!r}].uri", r)
257
262
  for n, r in (self.extra_weights or {}).items()]:
@@ -185,8 +185,9 @@ class PolicySpec(BaseModel):
185
185
  name: str
186
186
  gpu: str | list[str] = Field(..., description="A GPU type, or a list = cross-provider fallback")
187
187
  image: ImageSpec
188
- weights: str = Field(..., description="Weights URI: template:// (an official template), hf:// or vol:// (an "
189
- "uploaded volume)")
188
+ # None: the policy has no checkpoint (a closed-form controller); nothing is copied or mounted for it.
189
+ weights: str | None = Field(None, description="Weights URI: template:// (an official template), hf:// or vol:// "
190
+ "(an uploaded volume); none for a policy without a checkpoint")
190
191
  volumes: dict[str, VolumeRef] = Field(default_factory=dict)
191
192
  secrets: list[SecretRef] = Field(default_factory=list)
192
193
  min_containers: int = 0
@@ -217,11 +218,13 @@ class PolicySpec(BaseModel):
217
218
 
218
219
  @field_validator("weights")
219
220
  @classmethod
220
- def _weights_scheme(cls, v: str) -> str:
221
- return check_weights_uri(v, "weights")
221
+ def _weights_scheme(cls, v: str | None) -> str | None:
222
+ return None if v is None else check_weights_uri(v, "weights")
222
223
 
223
224
  @model_validator(mode="after")
224
225
  def _weights_parts(self) -> "PolicySpec":
226
+ if self.weights is None and (self.weights_name or self.extra_weights):
227
+ raise ValueError("weights parts need weights: name the first part's origin too")
225
228
  check_weights_parts(self.weights_name, {k: v for k, v in (self.extra_weights or {}).items()})
226
229
  for name, uri in (self.extra_weights or {}).items():
227
230
  check_weights_uri(uri, f"weights[{name!r}]")
@@ -65,5 +65,5 @@
65
65
  ],
66
66
  "title": "ActRequest",
67
67
  "type": "object",
68
- "x-contract-version": "0.4.16"
68
+ "x-contract-version": "0.4.17"
69
69
  }
@@ -75,5 +75,5 @@
75
75
  ],
76
76
  "title": "ActResponse",
77
77
  "type": "object",
78
- "x-contract-version": "0.4.16"
78
+ "x-contract-version": "0.4.17"
79
79
  }
@@ -99,5 +99,5 @@
99
99
  ],
100
100
  "title": "ActionChunk",
101
101
  "type": "object",
102
- "x-contract-version": "0.4.16"
102
+ "x-contract-version": "0.4.17"
103
103
  }
@@ -100,5 +100,5 @@
100
100
  ],
101
101
  "title": "ActionContract",
102
102
  "type": "object",
103
- "x-contract-version": "0.4.16"
103
+ "x-contract-version": "0.4.17"
104
104
  }
@@ -19,5 +19,5 @@
19
19
  ],
20
20
  "title": "ActionStep",
21
21
  "type": "object",
22
- "x-contract-version": "0.4.16"
22
+ "x-contract-version": "0.4.17"
23
23
  }
@@ -38,5 +38,5 @@
38
38
  ],
39
39
  "title": "AdapterTransform",
40
40
  "type": "object",
41
- "x-contract-version": "0.4.16"
41
+ "x-contract-version": "0.4.17"
42
42
  }
@@ -23,5 +23,5 @@
23
23
  ],
24
24
  "title": "AddLocal",
25
25
  "type": "object",
26
- "x-contract-version": "0.4.16"
26
+ "x-contract-version": "0.4.17"
27
27
  }
@@ -69,5 +69,5 @@
69
69
  },
70
70
  "title": "Autoscaler",
71
71
  "type": "object",
72
- "x-contract-version": "0.4.16"
72
+ "x-contract-version": "0.4.17"
73
73
  }
@@ -62,5 +62,5 @@
62
62
  ],
63
63
  "title": "BenchmarkConditionSpec",
64
64
  "type": "object",
65
- "x-contract-version": "0.4.16"
65
+ "x-contract-version": "0.4.17"
66
66
  }
@@ -700,5 +700,5 @@
700
700
  ],
701
701
  "title": "BenchmarkRegisterRequest",
702
702
  "type": "object",
703
- "x-contract-version": "0.4.16"
703
+ "x-contract-version": "0.4.17"
704
704
  }
@@ -279,7 +279,7 @@
279
279
  ],
280
280
  "title": "SeqFlags",
281
281
  "type": "integer",
282
- "x-contract-version": "0.4.16",
282
+ "x-contract-version": "0.4.17",
283
283
  "x-flag-names": {
284
284
  "CHECK": 65536,
285
285
  "INFER": 16,
@@ -487,5 +487,5 @@
487
487
  ],
488
488
  "title": "BenchmarkSpec",
489
489
  "type": "object",
490
- "x-contract-version": "0.4.16"
490
+ "x-contract-version": "0.4.17"
491
491
  }
@@ -40,5 +40,5 @@
40
40
  ],
41
41
  "title": "BenchmarkStatusResponse",
42
42
  "type": "object",
43
- "x-contract-version": "0.4.16"
43
+ "x-contract-version": "0.4.17"
44
44
  }
@@ -58,8 +58,16 @@
58
58
  "type": "string"
59
59
  },
60
60
  "weights_uri": {
61
- "title": "Weights Uri",
62
- "type": "string"
61
+ "anyOf": [
62
+ {
63
+ "type": "string"
64
+ },
65
+ {
66
+ "type": "null"
67
+ }
68
+ ],
69
+ "default": null,
70
+ "title": "Weights Uri"
63
71
  }
64
72
  },
65
73
  "required": [
@@ -67,10 +75,9 @@
67
75
  "tls_key",
68
76
  "tls_cert",
69
77
  "env",
70
- "weights_uri",
71
78
  "lease"
72
79
  ],
73
80
  "title": "BootstrapResponse",
74
81
  "type": "object",
75
- "x-contract-version": "0.4.16"
82
+ "x-contract-version": "0.4.17"
76
83
  }
@@ -34,5 +34,5 @@
34
34
  ],
35
35
  "title": "Camera",
36
36
  "type": "object",
37
- "x-contract-version": "0.4.16"
37
+ "x-contract-version": "0.4.17"
38
38
  }
@@ -23,5 +23,5 @@
23
23
  ],
24
24
  "title": "ClampInfo",
25
25
  "type": "object",
26
- "x-contract-version": "0.4.16"
26
+ "x-contract-version": "0.4.17"
27
27
  }
@@ -23,5 +23,5 @@
23
23
  ],
24
24
  "title": "CodeBundle",
25
25
  "type": "object",
26
- "x-contract-version": "0.4.16"
26
+ "x-contract-version": "0.4.17"
27
27
  }
@@ -61,5 +61,5 @@
61
61
  },
62
62
  "title": "Concurrency",
63
63
  "type": "object",
64
- "x-contract-version": "0.4.16"
64
+ "x-contract-version": "0.4.17"
65
65
  }
@@ -55,5 +55,5 @@
55
55
  ],
56
56
  "title": "Conditions",
57
57
  "type": "object",
58
- "x-contract-version": "0.4.16"
58
+ "x-contract-version": "0.4.17"
59
59
  }
@@ -25,5 +25,5 @@
25
25
  ],
26
26
  "title": "ConnectRequest",
27
27
  "type": "object",
28
- "x-contract-version": "0.4.16"
28
+ "x-contract-version": "0.4.17"
29
29
  }
@@ -307,5 +307,5 @@
307
307
  ],
308
308
  "title": "ConnectResponse",
309
309
  "type": "object",
310
- "x-contract-version": "0.4.16"
310
+ "x-contract-version": "0.4.17"
311
311
  }
@@ -18,5 +18,5 @@
18
18
  ],
19
19
  "title": "DeploymentAccepted",
20
20
  "type": "object",
21
- "x-contract-version": "0.4.16"
21
+ "x-contract-version": "0.4.17"
22
22
  }
@@ -387,5 +387,5 @@
387
387
  ],
388
388
  "title": "DeploymentPolicy",
389
389
  "type": "object",
390
- "x-contract-version": "0.4.16"
390
+ "x-contract-version": "0.4.17"
391
391
  }
@@ -893,7 +893,7 @@
893
893
  }
894
894
  },
895
895
  "additionalProperties": false,
896
- "description": "The full `POST /v1/deployments` body. Required: name, image, weights, resources, policy (goal 18).\nautoscaler / concurrency / timeouts are typed optional knobs with sane defaults.",
896
+ "description": "The full `POST /v1/deployments` body. Required: name, image, resources, policy (goal 18); weights unless the\npolicy has no checkpoint. autoscaler / concurrency / timeouts are typed optional knobs with sane defaults.",
897
897
  "properties": {
898
898
  "autoscaler": {
899
899
  "$ref": "#/$defs/Autoscaler"
@@ -970,7 +970,15 @@
970
970
  "type": "array"
971
971
  },
972
972
  "weights": {
973
- "$ref": "#/$defs/VolumeMount"
973
+ "anyOf": [
974
+ {
975
+ "$ref": "#/$defs/VolumeMount"
976
+ },
977
+ {
978
+ "type": "null"
979
+ }
980
+ ],
981
+ "default": null
974
982
  },
975
983
  "weights_name": {
976
984
  "anyOf": [
@@ -988,11 +996,10 @@
988
996
  "required": [
989
997
  "name",
990
998
  "image",
991
- "weights",
992
999
  "resources",
993
1000
  "policy"
994
1001
  ],
995
1002
  "title": "DeploymentRequest",
996
1003
  "type": "object",
997
- "x-contract-version": "0.4.16"
1004
+ "x-contract-version": "0.4.17"
998
1005
  }
@@ -58,5 +58,5 @@
58
58
  ],
59
59
  "title": "DeploymentStatusResponse",
60
60
  "type": "object",
61
- "x-contract-version": "0.4.16"
61
+ "x-contract-version": "0.4.17"
62
62
  }
@@ -213,5 +213,5 @@
213
213
  ],
214
214
  "title": "Embodiment",
215
215
  "type": "object",
216
- "x-contract-version": "0.4.16"
216
+ "x-contract-version": "0.4.17"
217
217
  }
@@ -94,5 +94,5 @@
94
94
  ],
95
95
  "title": "ErrorBody",
96
96
  "type": "object",
97
- "x-contract-version": "0.4.16"
97
+ "x-contract-version": "0.4.17"
98
98
  }
@@ -22,7 +22,7 @@
22
22
  ],
23
23
  "title": "ErrorCode",
24
24
  "type": "string",
25
- "x-contract-version": "0.4.16",
25
+ "x-contract-version": "0.4.17",
26
26
  "x-errors": {
27
27
  "budget_exhausted": {
28
28
  "exit_code": 6,
@@ -48,5 +48,5 @@
48
48
  ],
49
49
  "title": "Estimate",
50
50
  "type": "object",
51
- "x-contract-version": "0.4.16"
51
+ "x-contract-version": "0.4.17"
52
52
  }
@@ -228,5 +228,5 @@
228
228
  ],
229
229
  "title": "EvalDryRunResponse",
230
230
  "type": "object",
231
- "x-contract-version": "0.4.16"
231
+ "x-contract-version": "0.4.17"
232
232
  }
@@ -397,5 +397,5 @@
397
397
  ],
398
398
  "title": "EvalReport",
399
399
  "type": "object",
400
- "x-contract-version": "0.4.16"
400
+ "x-contract-version": "0.4.17"
401
401
  }
@@ -281,5 +281,5 @@
281
281
  ],
282
282
  "title": "EvalRequest",
283
283
  "type": "object",
284
- "x-contract-version": "0.4.16"
284
+ "x-contract-version": "0.4.17"
285
285
  }
@@ -178,5 +178,5 @@
178
178
  ],
179
179
  "title": "EvalResponse",
180
180
  "type": "object",
181
- "x-contract-version": "0.4.16"
181
+ "x-contract-version": "0.4.17"
182
182
  }
@@ -49,5 +49,5 @@
49
49
  ],
50
50
  "title": "ImageFrame",
51
51
  "type": "object",
52
- "x-contract-version": "0.4.16"
52
+ "x-contract-version": "0.4.17"
53
53
  }
@@ -204,5 +204,5 @@
204
204
  },
205
205
  "title": "ImageSpec",
206
206
  "type": "object",
207
- "x-contract-version": "0.4.16"
207
+ "x-contract-version": "0.4.17"
208
208
  }
@@ -38,5 +38,5 @@
38
38
  ],
39
39
  "title": "ImageStepAddLocal",
40
40
  "type": "object",
41
- "x-contract-version": "0.4.16"
41
+ "x-contract-version": "0.4.17"
42
42
  }
@@ -14,5 +14,5 @@
14
14
  ],
15
15
  "title": "ImageStepApt",
16
16
  "type": "object",
17
- "x-contract-version": "0.4.16"
17
+ "x-contract-version": "0.4.17"
18
18
  }
@@ -14,5 +14,5 @@
14
14
  ],
15
15
  "title": "ImageStepEnv",
16
16
  "type": "object",
17
- "x-contract-version": "0.4.16"
17
+ "x-contract-version": "0.4.17"
18
18
  }
@@ -46,5 +46,5 @@
46
46
  ],
47
47
  "title": "ImageStepRun",
48
48
  "type": "object",
49
- "x-contract-version": "0.4.16"
49
+ "x-contract-version": "0.4.17"
50
50
  }
@@ -14,5 +14,5 @@
14
14
  ],
15
15
  "title": "ImageStepUvPip",
16
16
  "type": "object",
17
- "x-contract-version": "0.4.16"
17
+ "x-contract-version": "0.4.17"
18
18
  }
@@ -39,5 +39,5 @@
39
39
  ],
40
40
  "title": "InferParam",
41
41
  "type": "object",
42
- "x-contract-version": "0.4.16"
42
+ "x-contract-version": "0.4.17"
43
43
  }
@@ -24,5 +24,5 @@
24
24
  ],
25
25
  "title": "Lease",
26
26
  "type": "object",
27
- "x-contract-version": "0.4.16"
27
+ "x-contract-version": "0.4.17"
28
28
  }
@@ -17,5 +17,5 @@
17
17
  ],
18
18
  "title": "LossyTransform",
19
19
  "type": "object",
20
- "x-contract-version": "0.4.16"
20
+ "x-contract-version": "0.4.17"
21
21
  }
@@ -83,5 +83,5 @@
83
83
  ],
84
84
  "title": "MetricAgg",
85
85
  "type": "object",
86
- "x-contract-version": "0.4.16"
86
+ "x-contract-version": "0.4.17"
87
87
  }
@@ -164,5 +164,5 @@
164
164
  ],
165
165
  "title": "Observation",
166
166
  "type": "object",
167
- "x-contract-version": "0.4.16"
167
+ "x-contract-version": "0.4.17"
168
168
  }
@@ -82,5 +82,5 @@
82
82
  },
83
83
  "title": "ObservationContract",
84
84
  "type": "object",
85
- "x-contract-version": "0.4.16"
85
+ "x-contract-version": "0.4.17"
86
86
  }
@@ -666,9 +666,17 @@
666
666
  "type": "object"
667
667
  },
668
668
  "weights": {
669
- "description": "Weights URI: template:// (an official template), hf:// or vol:// (an uploaded volume)",
670
- "title": "Weights",
671
- "type": "string"
669
+ "anyOf": [
670
+ {
671
+ "type": "string"
672
+ },
673
+ {
674
+ "type": "null"
675
+ }
676
+ ],
677
+ "default": null,
678
+ "description": "Weights URI: template:// (an official template), hf:// or vol:// (an uploaded volume); none for a policy without a checkpoint",
679
+ "title": "Weights"
672
680
  },
673
681
  "weights_name": {
674
682
  "anyOf": [
@@ -686,8 +694,7 @@
686
694
  "required": [
687
695
  "name",
688
696
  "gpu",
689
- "image",
690
- "weights"
697
+ "image"
691
698
  ],
692
699
  "title": "PolicySpec",
693
700
  "type": "object"
@@ -727,7 +734,7 @@
727
734
  ],
728
735
  "title": "SeqFlags",
729
736
  "type": "integer",
730
- "x-contract-version": "0.4.16",
737
+ "x-contract-version": "0.4.17",
731
738
  "x-flag-names": {
732
739
  "CHECK": 65536,
733
740
  "INFER": 16,
@@ -831,5 +838,5 @@
831
838
  ],
832
839
  "title": "PolicyRegistration",
833
840
  "type": "object",
834
- "x-contract-version": "0.4.16"
841
+ "x-contract-version": "0.4.17"
835
842
  }
@@ -708,9 +708,17 @@
708
708
  "type": "object"
709
709
  },
710
710
  "weights": {
711
- "description": "Weights URI: template:// (an official template), hf:// or vol:// (an uploaded volume)",
712
- "title": "Weights",
713
- "type": "string"
711
+ "anyOf": [
712
+ {
713
+ "type": "string"
714
+ },
715
+ {
716
+ "type": "null"
717
+ }
718
+ ],
719
+ "default": null,
720
+ "description": "Weights URI: template:// (an official template), hf:// or vol:// (an uploaded volume); none for a policy without a checkpoint",
721
+ "title": "Weights"
714
722
  },
715
723
  "weights_name": {
716
724
  "anyOf": [
@@ -728,10 +736,9 @@
728
736
  "required": [
729
737
  "name",
730
738
  "gpu",
731
- "image",
732
- "weights"
739
+ "image"
733
740
  ],
734
741
  "title": "PolicySpec",
735
742
  "type": "object",
736
- "x-contract-version": "0.4.16"
743
+ "x-contract-version": "0.4.17"
737
744
  }
@@ -63,5 +63,5 @@
63
63
  ],
64
64
  "title": "Proprioception",
65
65
  "type": "object",
66
- "x-contract-version": "0.4.16"
66
+ "x-contract-version": "0.4.17"
67
67
  }
@@ -18,5 +18,5 @@
18
18
  ],
19
19
  "title": "RenderSpec",
20
20
  "type": "object",
21
- "x-contract-version": "0.4.16"
21
+ "x-contract-version": "0.4.17"
22
22
  }
@@ -84,5 +84,5 @@
84
84
  ],
85
85
  "title": "Resources",
86
86
  "type": "object",
87
- "x-contract-version": "0.4.16"
87
+ "x-contract-version": "0.4.17"
88
88
  }
@@ -55,5 +55,5 @@
55
55
  ],
56
56
  "title": "RolloutResult",
57
57
  "type": "object",
58
- "x-contract-version": "0.4.16"
58
+ "x-contract-version": "0.4.17"
59
59
  }
@@ -21,5 +21,5 @@
21
21
  ],
22
22
  "title": "SecretCreateRequest",
23
23
  "type": "object",
24
- "x-contract-version": "0.4.16"
24
+ "x-contract-version": "0.4.17"
25
25
  }
@@ -40,5 +40,5 @@
40
40
  ],
41
41
  "title": "SecretInfo",
42
42
  "type": "object",
43
- "x-contract-version": "0.4.16"
43
+ "x-contract-version": "0.4.17"
44
44
  }
@@ -12,5 +12,5 @@
12
12
  ],
13
13
  "title": "SecretRef",
14
14
  "type": "object",
15
- "x-contract-version": "0.4.16"
15
+ "x-contract-version": "0.4.17"
16
16
  }
@@ -18,7 +18,7 @@
18
18
  ],
19
19
  "title": "SeqFlags",
20
20
  "type": "integer",
21
- "x-contract-version": "0.4.16",
21
+ "x-contract-version": "0.4.17",
22
22
  "x-flag-names": {
23
23
  "CHECK": 65536,
24
24
  "INFER": 16,
@@ -64,5 +64,5 @@
64
64
  ],
65
65
  "title": "Step",
66
66
  "type": "object",
67
- "x-contract-version": "0.4.16"
67
+ "x-contract-version": "0.4.17"
68
68
  }
@@ -22,5 +22,5 @@
22
22
  ],
23
23
  "title": "SuiteAgg",
24
24
  "type": "object",
25
- "x-contract-version": "0.4.16"
25
+ "x-contract-version": "0.4.17"
26
26
  }
@@ -22,5 +22,5 @@
22
22
  ],
23
23
  "title": "TaskAgg",
24
24
  "type": "object",
25
- "x-contract-version": "0.4.16"
25
+ "x-contract-version": "0.4.17"
26
26
  }
@@ -16,5 +16,5 @@
16
16
  ],
17
17
  "title": "Timeouts",
18
18
  "type": "object",
19
- "x-contract-version": "0.4.16"
19
+ "x-contract-version": "0.4.17"
20
20
  }
@@ -24,5 +24,5 @@
24
24
  ],
25
25
  "title": "UploadTarget",
26
26
  "type": "object",
27
- "x-contract-version": "0.4.16"
27
+ "x-contract-version": "0.4.17"
28
28
  }
@@ -34,5 +34,5 @@
34
34
  ],
35
35
  "title": "UsageReport",
36
36
  "type": "object",
37
- "x-contract-version": "0.4.16"
37
+ "x-contract-version": "0.4.17"
38
38
  }
@@ -20,5 +20,5 @@
20
20
  ],
21
21
  "title": "Variant",
22
22
  "type": "object",
23
- "x-contract-version": "0.4.16"
23
+ "x-contract-version": "0.4.17"
24
24
  }
@@ -22,5 +22,5 @@
22
22
  ],
23
23
  "title": "VolumeAttach",
24
24
  "type": "object",
25
- "x-contract-version": "0.4.16"
25
+ "x-contract-version": "0.4.17"
26
26
  }
@@ -25,5 +25,5 @@
25
25
  ],
26
26
  "title": "VolumeFile",
27
27
  "type": "object",
28
- "x-contract-version": "0.4.16"
28
+ "x-contract-version": "0.4.17"
29
29
  }
@@ -68,5 +68,5 @@
68
68
  ],
69
69
  "title": "VolumeInfo",
70
70
  "type": "object",
71
- "x-contract-version": "0.4.16"
71
+ "x-contract-version": "0.4.17"
72
72
  }
@@ -17,5 +17,5 @@
17
17
  ],
18
18
  "title": "VolumeMount",
19
19
  "type": "object",
20
- "x-contract-version": "0.4.16"
20
+ "x-contract-version": "0.4.17"
21
21
  }
@@ -24,5 +24,5 @@
24
24
  ],
25
25
  "title": "VolumeRef",
26
26
  "type": "object",
27
- "x-contract-version": "0.4.16"
27
+ "x-contract-version": "0.4.17"
28
28
  }
@@ -56,5 +56,5 @@
56
56
  ],
57
57
  "title": "VolumeUploadRequest",
58
58
  "type": "object",
59
- "x-contract-version": "0.4.16"
59
+ "x-contract-version": "0.4.17"
60
60
  }
@@ -65,5 +65,5 @@
65
65
  ],
66
66
  "title": "VolumeUploadResponse",
67
67
  "type": "object",
68
- "x-contract-version": "0.4.16"
68
+ "x-contract-version": "0.4.17"
69
69
  }
@@ -86,5 +86,5 @@
86
86
  ],
87
87
  "title": "WarmingError",
88
88
  "type": "object",
89
- "x-contract-version": "0.4.16"
89
+ "x-contract-version": "0.4.17"
90
90
  }
File without changes