T-HUB/packages/core/src/messaging.ts
glass beadian aa5e262f3a Tactical Media Broadcast Hub — initial release
Self-hosted multi-platform broadcast newsroom for activist collectives:
publishing pipeline with group approval and DST-proof scheduling, TweetDeck-style
column wall with hostile-content-safe rendering, live control room with Auto
Director, bridged chat governance with polls and quorum, distributed sandboxed
transcode workers, encrypted content-addressed archive, monthly analytics.

MIT licensed. See README.md and docs/.
2026-10-10 11:56:42 +00:00

47 lines
1.1 KiB
TypeScript

/** Transport-agnostic list page — shared by every paginated surface. */
export interface Page<T, C = string> {
items: T[];
nextCursor?: C;
}
export interface RemoteMedia {
remoteId: string;
url?: string;
mimeType: string;
width?: number;
height?: number;
}
/** Result of resolving a live source for program input (WP6 go-live slice). */
export interface LiveSourceResolution {
/** Absolute HLS playback URL, or null when the source is not live. */
playbackHlsUrl: string | null;
live: boolean;
}
export interface StreamPlaybackSource {
remoteId: string;
/** Absolute playback URL (HLS manifest, embed page, etc.). */
url: string;
kind: "hls" | "dash" | "embed";
protocol: "https" | "rtmp" | "rtmps" | "srt";
}
export interface DirectMessage {
id: string;
provider: string;
conversationRemoteId: string;
fromHandle: string;
toHandle: string;
text: string;
sentAt: Date;
}
export interface NormalizedWebhookEvent {
provider: string;
eventType: string;
/** Connection or channel the event belongs to, when resolvable. */
connectionKey?: string;
payload: Record<string, unknown>;
receivedAt: Date;
}