SDK y paquetes@styx/api-contractsindexinterfaces

Interface: ISessionDescriptor

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.

Interface: ISessionDescriptor

SessionDescriptor — descriptor efímero de una sesión de playback.

Es la pieza de convergencia entre los dos workstreams de F0 (r24 §5.3): playback-svc (Bun) lo construye al resolver un PlaybackIntent y lo devuelve al cliente; el endpoint (dentro de delivery) es lo que en la convergencia sesión 2 se cablea al daemon Zig vía IPC CreateSession + evento TransportEndpoint.

El descriptor embede el IPlaybackPlan composicional ya resuelto (con mode derivado, r20 §1) para que el cliente conozca el pipeline decidido y pueda exponerlo en UI/telemetría.

Scope F0.A.2a (guardrail r24 §3): descriptor efímero en memoria, SIN persistencia sofisticada, SIN UI, SIN políticas finales de eviction. Es un contrato de paso — su riqueza crece en F0.A.2/F2 cuando entra el daemon real y el cache de sesiones.

Properties

actor

readonly actor: IActorContext

Actor OIDC-first que disparó la sesión. En F0.A.2a es dev actor (forma correcta {service, userId?, roles?} SIN auth real — guardrail r24 §3). En F-IDENTITY se reemplaza por el actor OIDC PocketID real.


assetId

readonly assetId: string

Asset que se reproduce (FK a catalog media_assets.id).


createdAt

readonly createdAt: string

Timestamp ISO 8601 de creación de la sesión.


delivery

readonly delivery: ISessionDelivery

Cómo el cliente llega a los bytes (transport + endpoint + token).


expiresAt

readonly expiresAt: string

Timestamp ISO 8601 de expiración de la sesión efímera.


plan

readonly plan: IPlaybackPlan

Plan composicional resuelto por el Planner. mode ya está derivado (r20 §1): el cliente NO lo envía, lo recibe calculado.


sessionId

readonly sessionId: string

UUID v4 de la sesión efímera (crypto.randomUUID()).