simulo-interfaces 0.15.2__tar.gz → 0.16.0__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.
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/MANIFEST.in +1 -1
- {simulo_interfaces-0.15.2/src/simulo_interfaces.egg-info → simulo_interfaces-0.16.0}/PKG-INFO +1 -1
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/pyproject.toml +1 -1
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/ids.py +6 -5
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/__init__.py +32 -32
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/asset_catalog.py +2 -2
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/domain.py +3 -3
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/enums.py +11 -8
- simulo_interfaces-0.15.2/src/simulo/interfaces/platform/artifacts.py → simulo_interfaces-0.16.0/src/simulo/interfaces/platform/outputs.py +144 -135
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/policy_bundle.py +16 -16
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/runs.py +8 -8
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/submit.py +20 -11
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/runtime/anomaly.py +3 -3
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/runtime/player.py +2 -2
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/runtime/trainer.py +1 -1
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0/src/simulo_interfaces.egg-info}/PKG-INFO +1 -1
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo_interfaces.egg-info/SOURCES.txt +1 -1
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/PYPI.md +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/setup.cfg +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/__init__.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/__init__.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/actuator.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/asset.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/entity.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/light.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/materials.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/physics.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/pose.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/primitives.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/prop.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/record.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/robot.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/scene.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/sensor.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/terrain.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/visual.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/authoring/world.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/exceptions.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/_payload.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/app.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/asset.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/callbacks.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/debug.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/job_events.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/manifest.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/runtime.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/volume.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/py.typed +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/runtime/__init__.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/runtime/components.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/runtime/env.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/runtime/policy.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/runtime/scenario.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/runtime/task.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/runtime/tensors.py +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo_interfaces.egg-info/dependency_links.txt +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo_interfaces.egg-info/requires.txt +0 -0
- {simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo_interfaces.egg-info/top_level.txt +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Public-metadata discretion boundary (see release.yml Guard 5): the sdist is
|
|
1
|
+
# Public-metadata discretion boundary (see release-pypi.yml Guard 5): the sdist is
|
|
2
2
|
# PUBLIC on PyPI's "Download files" page just like the wheel, but setuptools'
|
|
3
3
|
# sdist command auto-includes README.md and any top-level tests/ directory
|
|
4
4
|
# regardless of the `readme = "PYPI.md"` pyproject setting. Exclude the
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "simulo-interfaces"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.16.0"
|
|
8
8
|
description = "Type contracts for the Simulo SDK. Installed automatically as a dependency of the simulo package."
|
|
9
9
|
readme = "PYPI.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
runtime) but distinct to the type checker, so a ``ProjectId`` can never be
|
|
5
5
|
passed where a ``JobId`` is expected.
|
|
6
6
|
|
|
7
|
-
The ``*PublicId`` aliases identify
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
deliberately
|
|
7
|
+
The ``*PublicId`` aliases identify the human-facing, grammar-validated
|
|
8
|
+
references carried in response ``public_id`` fields. Their parsers normalize
|
|
9
|
+
only outer ASCII whitespace and ASCII letter case; Unicode whitespace, Unicode
|
|
10
|
+
case folding, wildcard syntax, and partial identifiers are deliberately not
|
|
11
|
+
accepted.
|
|
11
12
|
"""
|
|
12
13
|
|
|
13
14
|
import re
|
|
@@ -27,7 +28,7 @@ RecordingId = NewType("RecordingId", str) # a job-produced MCAP recording (PR-0
|
|
|
27
28
|
WorkerId = NewType("WorkerId", str) # a claiming worker process (PR-0 wire contract)
|
|
28
29
|
AssetId = NewType("AssetId", str) # a catalog asset (USD Asset Catalogs wire contract, PR-1)
|
|
29
30
|
AssetVersionId = NewType("AssetVersionId", str) # one immutable asset version (PR-1)
|
|
30
|
-
|
|
31
|
+
OutputId = NewType("OutputId", str) # a job-produced output in the /outputs projection (Plan B)
|
|
31
32
|
|
|
32
33
|
JobPublicId = NewType("JobPublicId", str)
|
|
33
34
|
ModelPublicId = NewType("ModelPublicId", str)
|
{simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/__init__.py
RENAMED
|
@@ -7,27 +7,6 @@ implementation-free — concrete behaviour lives in the future
|
|
|
7
7
|
``simulo`` client and the ``simulo-backend`` SDK.
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
|
-
from simulo.interfaces.platform.artifacts import (
|
|
11
|
-
DECLARED_OUTPUT_MISSING_CODE,
|
|
12
|
-
JOB_ARTIFACT_DOWNLOAD_ROUTE_TEMPLATE,
|
|
13
|
-
JOB_ARTIFACTS_ROUTE_TEMPLATE,
|
|
14
|
-
MAX_ARTIFACT_NAME_BYTES,
|
|
15
|
-
MAX_ARTIFACT_PATH_BYTES,
|
|
16
|
-
MAX_OUTPUT_FLAG_CODE_CHARS,
|
|
17
|
-
MAX_OUTPUT_FLAG_DETAIL_CHARS,
|
|
18
|
-
MAX_OUTPUTS_BYTES,
|
|
19
|
-
OUTPUT_DROPPED_DETAILS,
|
|
20
|
-
OUTPUT_FLAG_ANOMALY,
|
|
21
|
-
OUTPUT_FLAG_OUTPUT_DROPPED,
|
|
22
|
-
OUTPUTS_UNDELIVERED_CODE,
|
|
23
|
-
WORKER_JOB_ARTIFACTS_PRESIGN_ROUTE_TEMPLATE,
|
|
24
|
-
WORKER_JOB_ARTIFACTS_ROUTE_TEMPLATE,
|
|
25
|
-
Artifact,
|
|
26
|
-
ArtifactDeclaration,
|
|
27
|
-
ArtifactRecord,
|
|
28
|
-
JobOutputsSummary,
|
|
29
|
-
OutputFlag,
|
|
30
|
-
)
|
|
31
10
|
from simulo.interfaces.platform.asset import AssetProtocol
|
|
32
11
|
from simulo.interfaces.platform.asset_catalog import (
|
|
33
12
|
ADMIN_ASSET_ROUTE_TEMPLATE,
|
|
@@ -99,7 +78,7 @@ from simulo.interfaces.platform.asset_catalog import (
|
|
|
99
78
|
from simulo.interfaces.platform.callbacks import JobCallbackProtocol
|
|
100
79
|
from simulo.interfaces.platform.debug import DebugSessionProtocol, ReplaySessionProtocol, VisualizationSessionProtocol
|
|
101
80
|
from simulo.interfaces.platform.domain import Checkpoint, Job, Package, Project, Resource, Tag, TrainedModel
|
|
102
|
-
from simulo.interfaces.platform.enums import
|
|
81
|
+
from simulo.interfaces.platform.enums import OutputKind
|
|
103
82
|
from simulo.interfaces.platform.job_events import (
|
|
104
83
|
MAX_PUBLIC_ASSET_FINDING_COUNT,
|
|
105
84
|
MAX_PUBLIC_JOB_EVENT_ATTEMPT,
|
|
@@ -140,6 +119,27 @@ from simulo.interfaces.platform.manifest import (
|
|
|
140
119
|
PreflightResponse,
|
|
141
120
|
RuntimeManifest,
|
|
142
121
|
)
|
|
122
|
+
from simulo.interfaces.platform.outputs import (
|
|
123
|
+
DECLARED_OUTPUT_MISSING_CODE,
|
|
124
|
+
JOB_OUTPUT_DOWNLOAD_ROUTE_TEMPLATE,
|
|
125
|
+
JOB_OUTPUTS_ROUTE_TEMPLATE,
|
|
126
|
+
MAX_OUTPUT_FLAG_CODE_CHARS,
|
|
127
|
+
MAX_OUTPUT_FLAG_DETAIL_CHARS,
|
|
128
|
+
MAX_OUTPUT_NAME_BYTES,
|
|
129
|
+
MAX_OUTPUT_PATH_BYTES,
|
|
130
|
+
MAX_OUTPUTS_BYTES,
|
|
131
|
+
OUTPUT_DROPPED_DETAILS,
|
|
132
|
+
OUTPUT_FLAG_ANOMALY,
|
|
133
|
+
OUTPUT_FLAG_OUTPUT_DROPPED,
|
|
134
|
+
OUTPUTS_UNDELIVERED_CODE,
|
|
135
|
+
WORKER_JOB_ARTIFACTS_PRESIGN_ROUTE_TEMPLATE,
|
|
136
|
+
WORKER_JOB_ARTIFACTS_ROUTE_TEMPLATE,
|
|
137
|
+
JobOutputsSummary,
|
|
138
|
+
Output,
|
|
139
|
+
OutputDeclaration,
|
|
140
|
+
OutputFlag,
|
|
141
|
+
OutputRecord,
|
|
142
|
+
)
|
|
143
143
|
from simulo.interfaces.platform.policy_bundle import (
|
|
144
144
|
EXPORT_VALIDATION_JOB_TYPE,
|
|
145
145
|
JOB_EXPORTS_ROUTE_TEMPLATE,
|
|
@@ -147,7 +147,6 @@ from simulo.interfaces.platform.policy_bundle import (
|
|
|
147
147
|
MAX_POLICY_NAME_TOKEN_CHARS,
|
|
148
148
|
POLICY_BUNDLE_ACTION_SCHEMA_FILE,
|
|
149
149
|
POLICY_BUNDLE_ARCHIVE_NAME_TEMPLATE,
|
|
150
|
-
POLICY_BUNDLE_ARTIFACT_KIND,
|
|
151
150
|
POLICY_BUNDLE_FILES,
|
|
152
151
|
POLICY_BUNDLE_MANIFEST_FILE,
|
|
153
152
|
POLICY_BUNDLE_MODEL_ONNX_FILE,
|
|
@@ -155,6 +154,7 @@ from simulo.interfaces.platform.policy_bundle import (
|
|
|
155
154
|
POLICY_BUNDLE_NORMALIZATION_FILE,
|
|
156
155
|
POLICY_BUNDLE_OBSERVATION_SCHEMA_FILE,
|
|
157
156
|
POLICY_BUNDLE_OPTIONAL_FILES,
|
|
157
|
+
POLICY_BUNDLE_OUTPUT_KIND,
|
|
158
158
|
POLICY_BUNDLE_README_FILE,
|
|
159
159
|
POLICY_BUNDLE_REQUIRED_FILES,
|
|
160
160
|
POLICY_BUNDLE_REQUIREMENTS_FILE,
|
|
@@ -248,7 +248,7 @@ from simulo.interfaces.platform.volume import VolumeProtocol
|
|
|
248
248
|
|
|
249
249
|
__all__ = [
|
|
250
250
|
# enums
|
|
251
|
-
"
|
|
251
|
+
"OutputKind",
|
|
252
252
|
# closed public job-event contract (#656)
|
|
253
253
|
"PUBLIC_JOB_EVENT_SCHEMA_VERSION",
|
|
254
254
|
"WORKER_JOB_EVENTS_ROUTE_TEMPLATE",
|
|
@@ -298,18 +298,18 @@ __all__ = [
|
|
|
298
298
|
# typed job outputs (Plan B, #531) — pre-run declaration, execution-time
|
|
299
299
|
# registration, projection row, completion announcement, routes, caps,
|
|
300
300
|
# pinned wire codes
|
|
301
|
-
"
|
|
302
|
-
"
|
|
303
|
-
"
|
|
301
|
+
"OutputDeclaration",
|
|
302
|
+
"Output",
|
|
303
|
+
"OutputRecord",
|
|
304
304
|
"OutputFlag",
|
|
305
305
|
"JobOutputsSummary",
|
|
306
|
-
"
|
|
307
|
-
"
|
|
306
|
+
"JOB_OUTPUTS_ROUTE_TEMPLATE",
|
|
307
|
+
"JOB_OUTPUT_DOWNLOAD_ROUTE_TEMPLATE",
|
|
308
308
|
"WORKER_JOB_ARTIFACTS_PRESIGN_ROUTE_TEMPLATE",
|
|
309
309
|
"WORKER_JOB_ARTIFACTS_ROUTE_TEMPLATE",
|
|
310
310
|
"MAX_OUTPUTS_BYTES",
|
|
311
|
-
"
|
|
312
|
-
"
|
|
311
|
+
"MAX_OUTPUT_NAME_BYTES",
|
|
312
|
+
"MAX_OUTPUT_PATH_BYTES",
|
|
313
313
|
"MAX_OUTPUT_FLAG_CODE_CHARS",
|
|
314
314
|
"MAX_OUTPUT_FLAG_DETAIL_CHARS",
|
|
315
315
|
"OUTPUT_FLAG_ANOMALY",
|
|
@@ -461,7 +461,7 @@ __all__ = [
|
|
|
461
461
|
"MAX_POLICY_BUNDLE_UNCOMPRESSED_BYTES",
|
|
462
462
|
"POLICY_TEST_VECTOR_INPUTS_KEY",
|
|
463
463
|
"POLICY_TEST_VECTOR_EXPECTED_OUTPUTS_KEY",
|
|
464
|
-
"
|
|
464
|
+
"POLICY_BUNDLE_OUTPUT_KIND",
|
|
465
465
|
"POLICY_BUNDLE_ROOT_DIR_TEMPLATE",
|
|
466
466
|
"POLICY_BUNDLE_ARCHIVE_NAME_TEMPLATE",
|
|
467
467
|
"MAX_POLICY_NAME_TOKEN_CHARS",
|
|
@@ -248,7 +248,7 @@ GLOBAL_ASSET_PUBLISHER = "simulo"
|
|
|
248
248
|
#: (``^[a-z0-9](?:[a-z0-9-]{1,61}[a-z0-9])?$``, 3–63 chars): this pattern accepts
|
|
249
249
|
#: **1–63** chars of lowercase letters/digits/hyphens, starting and ending with a
|
|
250
250
|
#: letter or digit. The CP org-slug pattern's *effective* 3-char floor is an
|
|
251
|
-
#:
|
|
251
|
+
#: output of ``derive_slug()`` padding a short org NAME at derivation time
|
|
252
252
|
#: (``users/slug.py``: ``if len(s) < 3: s = s + "org"``), not a validation rule —
|
|
253
253
|
#: short names like ``h1`` or ``go2`` are legitimate robot/world asset names and
|
|
254
254
|
#: must validate. (An earlier draft of this pattern used the CP's own ``{1,61}``
|
|
@@ -689,7 +689,7 @@ ASSET_MISSING_CODE = "asset_missing"
|
|
|
689
689
|
#: The ``jobs.job_type`` value of a platform-internal asset-validation job
|
|
690
690
|
#: (PR-11 amendment, 2026-07-17). The claim response's job record carries a
|
|
691
691
|
#: ``job_type`` field (additive; absent against a pre-PR-11 control plane) and
|
|
692
|
-
#: the worker keys its
|
|
692
|
+
#: the worker keys its output-pickup branch on THIS exact string: a claimed
|
|
693
693
|
#: job of this type has its run-dir validation outputs picked up and finalized
|
|
694
694
|
#: against :data:`WORKER_JOB_ASSET_VALIDATION_ROUTE_TEMPLATE` after execution.
|
|
695
695
|
#: Mirrors the control plane's ``assets/constants.py::ASSET_VALIDATION_JOB_TYPE``
|
{simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/domain.py
RENAMED
|
@@ -12,7 +12,7 @@ Domain invariants encoded here:
|
|
|
12
12
|
* ``Resource`` is a read-only, versioned, registry-resolved mount
|
|
13
13
|
(robot / environment / dataset / …); it is NOT a package.
|
|
14
14
|
* ``Project`` is the workspace anchor every other object hangs off.
|
|
15
|
-
* ``Checkpoint`` (intermediate training
|
|
15
|
+
* ``Checkpoint`` (intermediate training output) and
|
|
16
16
|
``TrainedModel`` (final, deployable model) are separate types — never collapse.
|
|
17
17
|
"""
|
|
18
18
|
|
|
@@ -97,7 +97,7 @@ class Job:
|
|
|
97
97
|
|
|
98
98
|
@dataclass(**_DC)
|
|
99
99
|
class Checkpoint:
|
|
100
|
-
"""Intermediate training
|
|
100
|
+
"""Intermediate training output (Rule #8) — distinct from a TrainedModel."""
|
|
101
101
|
|
|
102
102
|
id: CheckpointId
|
|
103
103
|
job_id: JobId
|
|
@@ -108,7 +108,7 @@ class Checkpoint:
|
|
|
108
108
|
|
|
109
109
|
@dataclass(**_DC)
|
|
110
110
|
class TrainedModel:
|
|
111
|
-
"""Final, deployable model
|
|
111
|
+
"""Final, deployable model output (Rule #8) — distinct from a Checkpoint."""
|
|
112
112
|
|
|
113
113
|
id: TrainedModelId
|
|
114
114
|
project_id: ProjectId
|
{simulo_interfaces-0.15.2 → simulo_interfaces-0.16.0}/src/simulo/interfaces/platform/enums.py
RENAMED
|
@@ -22,7 +22,7 @@ class JobStatus(StrEnum):
|
|
|
22
22
|
"""Claimed by a worker and executing."""
|
|
23
23
|
|
|
24
24
|
COMPLETED = "completed"
|
|
25
|
-
"""Finished successfully — the result and
|
|
25
|
+
"""Finished successfully — the result and outputs are available."""
|
|
26
26
|
|
|
27
27
|
FAILED = "failed"
|
|
28
28
|
"""Finished unsuccessfully — see the job's logs for the failure."""
|
|
@@ -80,14 +80,14 @@ class ResourceKind(StrEnum):
|
|
|
80
80
|
"""
|
|
81
81
|
|
|
82
82
|
|
|
83
|
-
class
|
|
84
|
-
"""Kind of a job-produced
|
|
83
|
+
class OutputKind(StrEnum):
|
|
84
|
+
"""Kind of a job-produced output — a checkpoint is NOT a trained model.
|
|
85
85
|
|
|
86
86
|
Checkpoints are resumable training state; trained models are standalone,
|
|
87
|
-
deployable policy
|
|
87
|
+
deployable policy outputs. The platform never conflates the two.
|
|
88
88
|
|
|
89
89
|
Values are a stable wire ABI persisted in database rows (``job_recordings
|
|
90
|
-
.kind``, ``job_artifacts.kind``) and served by the ``/
|
|
90
|
+
.kind``, ``job_artifacts.kind``) and served by the ``/outputs`` union
|
|
91
91
|
projection: **append-only, never renumber, rename, or reorder** — the six
|
|
92
92
|
members up to ``EVALUATION_OUTPUT`` predate the typed-outputs contract
|
|
93
93
|
and every member added for the typed-outputs contract is appended after them.
|
|
@@ -100,7 +100,7 @@ class ArtifactKind(StrEnum):
|
|
|
100
100
|
callback."""
|
|
101
101
|
|
|
102
102
|
TRAINED_MODEL = "trained_model"
|
|
103
|
-
"""A standalone, deployable policy
|
|
103
|
+
"""A standalone, deployable policy output — for inference/playback."""
|
|
104
104
|
|
|
105
105
|
LOG = "log"
|
|
106
106
|
"""The job's captured log stream."""
|
|
@@ -173,5 +173,8 @@ class ArtifactKind(StrEnum):
|
|
|
173
173
|
|
|
174
174
|
FILE = "file"
|
|
175
175
|
"""A general produced file. This is the default kind used by
|
|
176
|
-
``simulo.
|
|
177
|
-
|
|
176
|
+
``simulo.save_output``. After a successful job completes, the worker
|
|
177
|
+
uploads eligible registrations to ``job_artifacts``; persisted files are
|
|
178
|
+
listed by the external ``/outputs`` projection and can be downloaded.
|
|
179
|
+
Registration alone does not guarantee delivery on a failed run or when an
|
|
180
|
+
upload is refused."""
|