feat(spf): export ./live-hls + sandbox live-engine harness

Add the ./live-hls subpath export (build entry + package export) and a
LiveHlsEngineSignals type. Add a bare sandbox template (live-hls-engine) that
wires createLiveHlsEngine to a raw <video> — no player/skin — and logs playback
state, for end-to-end live-playback verification.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Christian Pillsbury
2026-06-25 09:59:21 -07:00
co-authored by Claude Opus 4.8
parent bbaeb52ed8
commit 4a58e85015
6 changed files with 111 additions and 2 deletions
@@ -31,7 +31,12 @@ import { resolvePresentation } from '../../behaviors/resolve-presentation';
import { setupFailoverMonitor } from '../../behaviors/setup-failover-monitor';
import { syncPreload } from '../../behaviors/sync-preload';
import { switchAudioTrack, switchVideoTrack } from '../../behaviors/track-switching';
import type { SimpleHlsEngineConfig, SimpleHlsEngineContext, SimpleHlsEngineState } from '../hls/engine';
import type {
SimpleHlsEngineConfig,
SimpleHlsEngineContext,
SimpleHlsEngineSignals,
SimpleHlsEngineState,
} from '../hls/engine';
/** Config for the live HLS engine: the VoD config plus live-only options. */
export interface LiveHlsEngineConfig extends SimpleHlsEngineConfig {
@@ -44,6 +49,7 @@ export interface LiveHlsEngineConfig extends SimpleHlsEngineConfig {
export type LiveHlsEngineState = SimpleHlsEngineState;
export type LiveHlsEngineContext = SimpleHlsEngineContext;
export type LiveHlsEngineSignals = SimpleHlsEngineSignals;
const shareSignals = makeShareSignals<LiveHlsEngineState, LiveHlsEngineContext>([
'userVideoTrackSelection',
@@ -1,2 +1,7 @@
export type { LiveHlsEngineConfig, LiveHlsEngineContext, LiveHlsEngineState } from './engine';
export type {
LiveHlsEngineConfig,
LiveHlsEngineContext,
LiveHlsEngineSignals,
LiveHlsEngineState,
} from './engine';
export { createLiveHlsEngine } from './engine';