SDK y paquetes@styx/api-contractsindexvariables

Variable: ITransportSignalsSnapshotSchema

Referencia de @styx/api-contracts generada de su TSDoc.

ImplementadoSin versión del tren todavía· generada desde packages/api-contracts/package.json

Página generada desde el TSDoc de @styx/api-contracts. No se edita a mano: bun run docs:gen la regenera y bun run docs:check falla si difiere.

Variable: ITransportSignalsSnapshotSchema

const ITransportSignalsSnapshotSchema: TObject<{ available_bps: TInteger; congestion_events: TInteger; loss_rate: TNumber; rtt_ns: TInteger; ts_ms: TInteger; version: TInteger; }>

Payload del event evt.media.transportSignals — un snapshot del estado de transporte observado por el daemon Zig (RTT, loss, bandwidth disponible, eventos de congestión, timestamp).

El daemon lo construye con el struct generado de este schema (signals_publisher.zig: descarta versión 0 y pérdidas no finitas, acota loss_rate a [0, 1]) y spire lo valida al sellar y al abrir. Pierde precisión f32→f64 inofensiva (loss_rate ∈ [0,1]; el delta es despreciable).

Invariantes del schema:

  • version > 0 — el channel Zig arranca en 1; un 0 indica frame corrupto o pre-init.
  • loss_rate ∈ [0, 1] — clamping previene que valores fuera de rango entren al bus (lane A buggy no debe contaminar observability).
  • rtt_ns / available_bps / congestion_events — enteros no negativos (precision JS number 2^53 ≈ 9 PB/s, suficiente).
  • ts_ms — entero (signed via clamp en cliente; epoch ms).

Enteros: Type.Integer (rango nativo JS ±2^53). Si en el futuro se necesita precisión >2^53 (poco probable — son ms epoch y bandwidth), migrar a bigint; hoy Integer cubre el rango real observado en el wire format.