Files
2026-05-21 18:36:39 +00:00

1.8 KiB

Wiring Runtime Contract

Wiring configs remain the L0 wiring_configs contract described by protocol/schemas/wiring-config.schema.json. The L3 patch-panel runtime applies one active config and owns cross-box signal propagation.

Runtime Config

hwlab-patch-panel loads a runtime config from HWLAB_WIRING_CONFIG_PATH when the variable is set. The file contains:

  • wiringConfig: an L0 wiring config object.
  • endpointMap: an object keyed by resourceId with HTTP base URLs for writable hwlab-box-simu instances.

The service also supports:

  • GET /wiring for the applied wiring config.
  • GET /status for L0 patch-panel status plus config/evidence summary.
  • GET /diagnostics for readable config, endpoint, and sync diagnostics.
  • POST /wiring/apply to apply an inline runtime config.
  • POST /wiring/reload to reload body.path or HWLAB_WIRING_CONFIG_PATH.
  • POST /signals/route to route one source signal.
  • POST /sync/tick to route a batch of source signals.

Supported Sync Families

The minimal L3 runtime supports these directed signal families:

Source Target Value
DO* DI* boolean
AO* AI* number
FREQ_OUT* FREQ_IN* number

Typed signal wiring is directional. For example, DI1 -> DO1 is rejected with source_port_not_output, and AO1 -> DI1 is rejected with unsupported_signal_wiring.

Untyped legacy MVP fixture ports such as uart0 and gpio0 may still be routed as recorded deliveries for M1 compatibility, but they are not part of the L3 sync loop.

Evidence Boundary

This runtime records only config application and evidence summary fields in /status and /diagnostics. It does not write tick audit records. Live DEV or PROD deployment is outside this local runtime contract.