simulo-interfaces 0.17.0__tar.gz → 0.19.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.
Files changed (59) hide show
  1. {simulo_interfaces-0.17.0/src/simulo_interfaces.egg-info → simulo_interfaces-0.19.0}/PKG-INFO +1 -1
  2. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/pyproject.toml +1 -1
  3. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/__init__.py +7 -18
  4. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/asset_catalog.py +1 -40
  5. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/enums.py +22 -0
  6. simulo_interfaces-0.19.0/src/simulo/interfaces/platform/systems.py +106 -0
  7. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0/src/simulo_interfaces.egg-info}/PKG-INFO +1 -1
  8. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo_interfaces.egg-info/SOURCES.txt +1 -0
  9. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/MANIFEST.in +0 -0
  10. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/PYPI.md +0 -0
  11. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/setup.cfg +0 -0
  12. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/__init__.py +0 -0
  13. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/__init__.py +0 -0
  14. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/actuator.py +0 -0
  15. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/asset.py +0 -0
  16. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/entity.py +0 -0
  17. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/light.py +0 -0
  18. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/materials.py +0 -0
  19. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/physics.py +0 -0
  20. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/pose.py +0 -0
  21. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/primitives.py +0 -0
  22. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/prop.py +0 -0
  23. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/record.py +0 -0
  24. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/robot.py +0 -0
  25. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/scene.py +0 -0
  26. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/sensor.py +0 -0
  27. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/terrain.py +0 -0
  28. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/visual.py +0 -0
  29. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/world.py +0 -0
  30. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/exceptions.py +0 -0
  31. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/ids.py +0 -0
  32. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/_payload.py +0 -0
  33. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/app.py +0 -0
  34. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/asset.py +0 -0
  35. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/callbacks.py +0 -0
  36. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/debug.py +0 -0
  37. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/domain.py +0 -0
  38. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/job_events.py +0 -0
  39. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/manifest.py +0 -0
  40. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/outputs.py +0 -0
  41. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/policy_bundle.py +0 -0
  42. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/runs.py +0 -0
  43. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/runtime.py +0 -0
  44. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/submit.py +0 -0
  45. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/volume.py +0 -0
  46. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/py.typed +0 -0
  47. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/__init__.py +0 -0
  48. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/anomaly.py +0 -0
  49. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/components.py +0 -0
  50. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/env.py +0 -0
  51. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/player.py +0 -0
  52. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/policy.py +0 -0
  53. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/scenario.py +0 -0
  54. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/task.py +0 -0
  55. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/tensors.py +0 -0
  56. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/trainer.py +0 -0
  57. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo_interfaces.egg-info/dependency_links.txt +0 -0
  58. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo_interfaces.egg-info/requires.txt +0 -0
  59. {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo_interfaces.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: simulo-interfaces
3
- Version: 0.17.0
3
+ Version: 0.19.0
4
4
  Summary: Type contracts for the Simulo SDK. Installed automatically as a dependency of the simulo package.
5
5
  Author-email: Simulo Team <team@simulo.ai>
6
6
  License: BSD-3-Clause
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "simulo-interfaces"
7
- version = "0.17.0"
7
+ version = "0.19.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"
@@ -9,14 +9,6 @@ implementation-free — concrete behaviour lives in the future
9
9
 
10
10
  from simulo.interfaces.platform.asset import AssetProtocol
11
11
  from simulo.interfaces.platform.asset_catalog import (
12
- ADMIN_ASSET_ROUTE_TEMPLATE,
13
- ADMIN_ASSET_VERSION_BY_NUMBER_ROUTE_TEMPLATE,
14
- ADMIN_ASSET_VERSION_DEPRECATE_ROUTE_TEMPLATE,
15
- ADMIN_ASSET_VERSION_ROUTE_TEMPLATE,
16
- ADMIN_ASSET_VERSION_UPLOAD_COMPLETE_ROUTE_TEMPLATE,
17
- ADMIN_ASSET_VERSION_UPLOAD_PARTS_ROUTE_TEMPLATE,
18
- ADMIN_ASSET_VERSION_VALIDATE_ROUTE_TEMPLATE,
19
- ADMIN_ASSET_VERSIONS_ROUTE_TEMPLATE,
20
12
  ASSET_BASE_MODES,
21
13
  ASSET_CORRUPT_CODE,
22
14
  ASSET_DIGEST_MISMATCH_CODE,
@@ -78,7 +70,7 @@ from simulo.interfaces.platform.asset_catalog import (
78
70
  from simulo.interfaces.platform.callbacks import JobCallbackProtocol
79
71
  from simulo.interfaces.platform.debug import DebugSessionProtocol, ReplaySessionProtocol, VisualizationSessionProtocol
80
72
  from simulo.interfaces.platform.domain import Checkpoint, Job, Package, Project, Resource, Tag, TrainedModel
81
- from simulo.interfaces.platform.enums import OutputKind
73
+ from simulo.interfaces.platform.enums import OutputKind, SystemType
82
74
  from simulo.interfaces.platform.job_events import (
83
75
  MAX_PUBLIC_ASSET_FINDING_COUNT,
84
76
  MAX_PUBLIC_JOB_EVENT_ATTEMPT,
@@ -248,11 +240,16 @@ from simulo.interfaces.platform.submit import (
248
240
  canonical_pypi_name,
249
241
  is_platform_pinned,
250
242
  )
243
+ from simulo.interfaces.platform.systems import SYSTEM_SPECS, SystemSpec
251
244
  from simulo.interfaces.platform.volume import VolumeProtocol
252
245
 
253
246
  __all__ = [
254
247
  # enums
255
248
  "OutputKind",
249
+ "SystemType",
250
+ # systems (GPU system-tier catalog, issue #1362)
251
+ "SystemSpec",
252
+ "SYSTEM_SPECS",
256
253
  # closed public job-event contract (#656)
257
254
  "PUBLIC_JOB_EVENT_SCHEMA_VERSION",
258
255
  "WORKER_JOB_EVENTS_ROUTE_TEMPLATE",
@@ -404,15 +401,7 @@ __all__ = [
404
401
  "ASSET_VERSION_VALIDATE_ROUTE_TEMPLATE",
405
402
  "ASSET_VERSION_REPORT_ROUTE_TEMPLATE",
406
403
  "ASSET_VERSION_DOWNLOAD_ROUTE_TEMPLATE",
407
- # asset catalog — admin routes
408
- "ADMIN_ASSET_VERSIONS_ROUTE_TEMPLATE",
409
- "ADMIN_ASSET_VERSION_UPLOAD_PARTS_ROUTE_TEMPLATE",
410
- "ADMIN_ASSET_VERSION_UPLOAD_COMPLETE_ROUTE_TEMPLATE",
411
- "ADMIN_ASSET_VERSION_VALIDATE_ROUTE_TEMPLATE",
412
- "ADMIN_ASSET_VERSION_DEPRECATE_ROUTE_TEMPLATE",
413
- "ADMIN_ASSET_VERSION_BY_NUMBER_ROUTE_TEMPLATE",
414
- "ADMIN_ASSET_ROUTE_TEMPLATE",
415
- "ADMIN_ASSET_VERSION_ROUTE_TEMPLATE",
404
+ # asset catalog — staff routes
416
405
  # asset catalog — worker routes
417
406
  "WORKER_JOB_ASSET_VALIDATION_PRESIGN_ROUTE_TEMPLATE",
418
407
  "WORKER_JOB_ASSET_VALIDATION_ROUTE_TEMPLATE",
@@ -4,7 +4,7 @@ This is the **canonical, single source of truth** for the reference grammar, the
4
4
  route constants, the size caps, the wire dataclasses, and the reserved-word /
5
5
  role / verdict enumerations that carry a USD *asset* (a versioned robot, world, or prop
6
6
  package) from the laptop client to the cloud catalog and back into a job. It
7
- lands **before any consumer** — the control plane (customer, ``/admin/*`` and
7
+ lands **before any consumer** — the control plane (customer, ``/staff/*`` and
8
8
  ``/internal/worker/*`` routes), the thin ``simulo`` client (``simulo asset ...``
9
9
  + the ``simulo run`` submit-time pin resolver), the ``simulo-backend`` worker
10
10
  (claim → download → validate), and the ``simulo-console`` catalog browser all
@@ -155,18 +155,6 @@ the two frozensets stay separate constants (identical value today) so a future r
155
155
  publish role can split them without an API change. A missing role answers one line
156
156
  naming the role and who can grant it.
157
157
 
158
- ## Admin endpoints (``require_admin_key`` — the ONLY producers of global rows)
159
-
160
- The ``/admin`` mirrors of initiate / parts / complete / validate / deprecate /
161
- reactivate / delete, plus reads that **include the origin block**. Admin *initiate*
162
- (:data:`ADMIN_ASSET_VERSIONS_ROUTE_TEMPLATE`) REQUIRES origin:
163
- ``{origin_type, origin_ref, origin_url?, origin_digest?}`` where ``origin_type``
164
- is one of :data:`ASSET_ORIGIN_TYPES`. Customer serializers exclude origin **by
165
- construction** — :class:`AssetRecord` / :class:`AssetVersionRecord` carry no
166
- origin field at all, so ``show --json`` and console payloads can never contain
167
- it. An org publish records ``origin_type="customer_upload"`` for schema
168
- symmetry.
169
-
170
158
  ## Worker endpoints (``require_worker`` + lease header)
171
159
 
172
160
  * The existing claim response
@@ -504,33 +492,6 @@ ASSET_VERSION_REPORT_ROUTE_TEMPLATE = "/v1/asset-versions/{version_id}/report"
504
492
  #: :data:`ASSET_NOT_EXPORTABLE_CODE`. ``.format(version_id=...)``.
505
493
  ASSET_VERSION_DOWNLOAD_ROUTE_TEMPLATE = "/v1/asset-versions/{version_id}/download"
506
494
 
507
- # --------------------------------------------------------------------------
508
- # Admin routes (require_admin_key; the ONLY producers of global rows)
509
- # --------------------------------------------------------------------------
510
- #
511
- # Mirrors of initiate/parts/complete/validate/deprecate/delete, plus reads that
512
- # INCLUDE the origin block. Same two path families under /admin.
513
-
514
- #: ``POST`` — admin initiate (REQUIRES origin). ``.format(kind=..., name=...)``.
515
- ADMIN_ASSET_VERSIONS_ROUTE_TEMPLATE = "/admin/assets/{kind}/{name}/versions"
516
- #: ``POST`` — admin batch part presigns. ``.format(version_id=...)``.
517
- ADMIN_ASSET_VERSION_UPLOAD_PARTS_ROUTE_TEMPLATE = "/admin/asset-versions/{version_id}/upload/parts"
518
- #: ``POST`` — admin complete multipart upload. ``.format(version_id=...)``.
519
- ADMIN_ASSET_VERSION_UPLOAD_COMPLETE_ROUTE_TEMPLATE = "/admin/asset-versions/{version_id}/upload/complete"
520
- #: ``POST`` — admin revalidate. ``.format(version_id=...)``.
521
- ADMIN_ASSET_VERSION_VALIDATE_ROUTE_TEMPLATE = "/admin/asset-versions/{version_id}/validate"
522
- #: ``POST`` — admin deprecate by ``vN``. ``.format(kind=..., name=..., version=<int>)``.
523
- ADMIN_ASSET_VERSION_DEPRECATE_ROUTE_TEMPLATE = "/admin/assets/{kind}/{name}/versions/v{version}/deprecate"
524
- #: ``POST`` — admin reactivate (un-deprecate) by ``vN`` (global catalog, admin-only).
525
- #: ``.format(kind=..., name=..., version=<int>)``.
526
- ADMIN_ASSET_VERSION_REACTIVATE_ROUTE_TEMPLATE = "/admin/assets/{kind}/{name}/versions/v{version}/reactivate"
527
- #: ``DELETE`` — admin delete by ``vN``. ``.format(kind=..., name=..., version=<int>)``.
528
- ADMIN_ASSET_VERSION_BY_NUMBER_ROUTE_TEMPLATE = "/admin/assets/{kind}/{name}/versions/v{version}"
529
- #: ``GET`` — admin asset read (INCLUDES origin). ``.format(kind=..., name=...)``.
530
- ADMIN_ASSET_ROUTE_TEMPLATE = "/admin/assets/{kind}/{name}"
531
- #: ``GET`` — admin version read (INCLUDES origin). ``.format(version_id=...)``.
532
- ADMIN_ASSET_VERSION_ROUTE_TEMPLATE = "/admin/asset-versions/{version_id}"
533
-
534
495
  # --------------------------------------------------------------------------
535
496
  # Worker routes (bearer = static WORKER_TOKEN; + lease header, see submit.py)
536
497
  # --------------------------------------------------------------------------
@@ -44,6 +44,28 @@ class ResumePolicy(StrEnum):
44
44
  """Resume only on explicit request. Reserved: currently behaves like ``NEVER``."""
45
45
 
46
46
 
47
+ class SystemType(StrEnum):
48
+ """An abstract GPU system tier.
49
+
50
+ Each tier's hardware profile and fleet-provisioning state lives in
51
+ :data:`simulo.interfaces.platform.systems.SYSTEM_SPECS`, keyed by these
52
+ members. The AWS instance type behind a tier is never part of this name —
53
+ see :class:`simulo.interfaces.platform.systems.SystemSpec`'s own docstring.
54
+ """
55
+
56
+ TIER_1 = "tier1"
57
+ """Entry tier — always available."""
58
+
59
+ TIER_2 = "tier2"
60
+ """Mid tier — always available."""
61
+
62
+ TIER_3 = "tier3"
63
+ """High tier — not yet available on the deployable fleet."""
64
+
65
+ TIER_4 = "tier4"
66
+ """Top tier — not yet available on the deployable fleet."""
67
+
68
+
47
69
  class ResourceKind(StrEnum):
48
70
  """Kind of a registry-resolved, read-only resource mount."""
49
71
 
@@ -0,0 +1,106 @@
1
+ """GPU system-tier catalog — the closed hardware contract behind `SystemType`.
2
+
3
+ `SYSTEM_SPECS` is the single published source of truth for what each tier
4
+ means: the marketing GPU name, its VRAM, the host's vCPU/memory, whether the
5
+ tier is provisionable on the deployable fleet today, and (internal-only) the
6
+ AWS instance type behind it. Nothing here schedules a job against real
7
+ hardware — selection stays record-only until a later milestone adds live
8
+ enforcement.
9
+
10
+ Stdlib-only (`dataclasses` plus the sibling `enums` module): this file must
11
+ import nothing else, so the package's zero-runtime-dependency guarantee
12
+ (`test_no_heavy_deps.py`) holds.
13
+ """
14
+
15
+ from dataclasses import dataclass
16
+
17
+ from simulo.interfaces.platform.enums import SystemType
18
+
19
+ # Shared dataclass options: immutable value objects (frozen), memory-lean
20
+ # (slots), and keyword-only construction (kw_only) — see `platform/domain.py`'s
21
+ # identical `_DC` for the full rationale.
22
+ _DC = {"frozen": True, "slots": True, "kw_only": True}
23
+
24
+
25
+ @dataclass(**_DC)
26
+ class SystemSpec:
27
+ """One GPU tier's hardware profile and fleet-provisioning state.
28
+
29
+ `gpu_model` (e.g. `"T4"`) is the user-facing marketing name — the only
30
+ hardware identity a CLI table, `--json` output, or documentation page may
31
+ ever show. `instance_type` is the AWS EC2 instance type behind the tier,
32
+ kept here ONLY for an offline fleet crosscheck against the deployable
33
+ CloudFormation allowlist and the control plane's own bookkeeping — it
34
+ must never reach a user-facing surface. Hiding it is deliberate: a future
35
+ author copying an AWS SKU into an example is exactly how `gpu="L4"`
36
+ (actually Tier 3, not provisionable) ended up in 40 tracked files before
37
+ this catalog existed.
38
+ """
39
+
40
+ system: SystemType
41
+ gpu_model: str
42
+ vram_gb: int
43
+ vcpu: int
44
+ memory_gb: int
45
+ max_parallel_envs: int | None
46
+ available: bool
47
+ instance_type: str
48
+
49
+
50
+ # vcpu/memory_gb: AWS's published instance-type specifications
51
+ # (https://docs.aws.amazon.com/ec2/latest/instancetypes/ac.html, confirmed at
52
+ # M20-system-catalog implementation time, 2026-09-07) for
53
+ # g4dn.xlarge/g5.xlarge/g6.xlarge/g6e.xlarge. vram_gb: each GPU model's
54
+ # published VRAM capacity (NVIDIA product specifications) — deliberately NOT
55
+ # the ~22/44 GiB AWS's own instance-type page reports as *usable* GPU memory
56
+ # on g5/g6/g6e after ECC/hypervisor reservation, since `vram_gb` documents the
57
+ # hardware users are told they are getting (`gpu_model`), not a fleet
58
+ # provisioning detail.
59
+ SYSTEM_SPECS: dict[SystemType, SystemSpec] = {
60
+ SystemType.TIER_1: SystemSpec(
61
+ system=SystemType.TIER_1,
62
+ gpu_model="T4",
63
+ vram_gb=16,
64
+ vcpu=4,
65
+ memory_gb=16,
66
+ # Measured ceiling for g4dn.xlarge's default workload (`.claude/skills/isaaclab/SKILL.md`,
67
+ # `.claude/skills/aws-infra/SKILL.md`, `cloud-infra/gpu-worker/gpu-worker.yaml`): 16
68
+ # parallel environments; a 4096-environment run exhausted GPU memory and made the
69
+ # instance unrecoverable. `aws-infra/SKILL.md` is explicit that this is
70
+ # workload/instance evidence for the template's default workload, not a universal
71
+ # constant — re-benchmark before relying on it for a different workload shape.
72
+ max_parallel_envs=16,
73
+ available=True,
74
+ instance_type="g4dn.xlarge",
75
+ ),
76
+ SystemType.TIER_2: SystemSpec(
77
+ system=SystemType.TIER_2,
78
+ gpu_model="A10G",
79
+ vram_gb=24,
80
+ vcpu=4,
81
+ memory_gb=16,
82
+ max_parallel_envs=None,
83
+ available=True,
84
+ instance_type="g5.xlarge",
85
+ ),
86
+ SystemType.TIER_3: SystemSpec(
87
+ system=SystemType.TIER_3,
88
+ gpu_model="L4",
89
+ vram_gb=24,
90
+ vcpu=4,
91
+ memory_gb=16,
92
+ max_parallel_envs=None,
93
+ available=False,
94
+ instance_type="g6.xlarge",
95
+ ),
96
+ SystemType.TIER_4: SystemSpec(
97
+ system=SystemType.TIER_4,
98
+ gpu_model="L40S",
99
+ vram_gb=48,
100
+ vcpu=4,
101
+ memory_gb=32,
102
+ max_parallel_envs=None,
103
+ available=False,
104
+ instance_type="g6e.xlarge",
105
+ ),
106
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: simulo-interfaces
3
- Version: 0.17.0
3
+ Version: 0.19.0
4
4
  Summary: Type contracts for the Simulo SDK. Installed automatically as a dependency of the simulo package.
5
5
  Author-email: Simulo Team <team@simulo.ai>
6
6
  License: BSD-3-Clause
@@ -38,6 +38,7 @@ src/simulo/interfaces/platform/policy_bundle.py
38
38
  src/simulo/interfaces/platform/runs.py
39
39
  src/simulo/interfaces/platform/runtime.py
40
40
  src/simulo/interfaces/platform/submit.py
41
+ src/simulo/interfaces/platform/systems.py
41
42
  src/simulo/interfaces/platform/volume.py
42
43
  src/simulo/interfaces/runtime/__init__.py
43
44
  src/simulo/interfaces/runtime/anomaly.py