Context
CLI and Gateway consumers need typed deployment context (pi, phone, server) so diagnostics and capability decisions do not rely on string matching.
Scope
Non-Goals
- Does not parse full
ori.yaml.
- Does not change runtime config semantics.
Technical Specification
DeploymentType values are PI, PHONE, and SERVER. Phone deployments cap available physical actuation tiers; server deployments may not expose GPIO.
Acceptance Criteria
Tests Required
| Test |
Verifies |
test_deployment_type_values |
Enum values are stable. |
test_from_health_status |
Health payload maps to config. |
test_phone_caps_physical_tiers |
Phone constraints reflected. |
Additional Test Coverage / Edge Cases
Invariants — Do Not Violate
- SDK mirrors deployment contracts; runtime remains source of truth.
Dependencies
Blocked by:
Unblocks:
Contract References
- Runtime
device.deployment_type config
- SDK health models
Priority
poc-critical
Suggested Labels
ready, poc-critical
Context
CLI and Gateway consumers need typed deployment context (
pi,phone,server) so diagnostics and capability decisions do not rely on string matching.Scope
ori_sdk/device_config.py.DeploymentTypeenum andDeviceConfigdataclass.from_health_status(status) -> DeviceConfig.Non-Goals
ori.yaml.Technical Specification
DeploymentTypevalues arePI,PHONE, andSERVER. Phone deployments cap available physical actuation tiers; server deployments may not expose GPIO.Acceptance Criteria
pytest,mypy, andruffpass.Tests Required
test_deployment_type_valuestest_from_health_statustest_phone_caps_physical_tiersAdditional Test Coverage / Edge Cases
Invariants — Do Not Violate
Dependencies
Blocked by:
Unblocks:
Contract References
device.deployment_typeconfigPriority
poc-criticalSuggested Labels
ready,poc-critical