@ceralive/cerastream 2026.9.8 → 2026.9.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/events.d.ts +31 -0
- package/dist/events.js +3 -0
- package/dist/messages.d.ts +18 -0
- package/dist/types.d.ts +10 -0
- package/dist/types.js +2 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @ceralive/cerastream
|
|
2
2
|
|
|
3
|
+
Prepared `2026.9.10` / schema `0.20.0` carries optional
|
|
4
|
+
`active_encode.skip_to_live` alongside encoder health counters. It counts
|
|
5
|
+
age-based RAM backlog discards in the current session, not outages or lost frames.
|
|
6
|
+
Absence is unknown; zero is not loss-free delivery. Reconnect preserves the count,
|
|
7
|
+
and session replacement resets it. Publish before consumer use.
|
|
8
|
+
|
|
9
|
+
Prepared **2026.9.9 / schema 0.19.0** adds `raw_video` and `unknown` capture
|
|
10
|
+
classifications. They do not promise a selectable capture mode. `camlink` remains
|
|
11
|
+
unchanged for identified Elgato hardware. Publish before consumer merge: older
|
|
12
|
+
closed-enum validators can reject the entire device reply. This is not a publish receipt.
|
|
13
|
+
|
|
3
14
|
Type-safe control-IPC **schema + client** for the cerastream streaming engine.
|
|
4
15
|
A zero-native-dependency package — the published contract for driving the
|
|
5
16
|
engine's JSON-RPC 2.0 / NDJSON control plane over a Unix domain socket.
|
package/dist/constants.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export declare const PROTOCOL_VERSION: 'cerastream-ipc/1';
|
|
|
8
8
|
* additive-only within protocol major `cerastream-ipc/1` (ADR-0002 §4); this value
|
|
9
9
|
* only moves when the wire schema itself does, in lockstep across both languages.
|
|
10
10
|
*/
|
|
11
|
-
export declare const SCHEMA_VERSION: '0.
|
|
11
|
+
export declare const SCHEMA_VERSION: '0.20.0';
|
|
12
12
|
/** Runtime dir holding both control + preview sockets. systemd `RuntimeDirectory=cerastream`. */
|
|
13
13
|
export declare const DEFAULT_IPC_DIR: '/run/cerastream';
|
|
14
14
|
/** Env override for the IPC dir (tests/dev). Defaults to {@link DEFAULT_IPC_DIR}. */
|
package/dist/constants.js
CHANGED
|
@@ -11,7 +11,7 @@ export const PROTOCOL_VERSION = 'cerastream-ipc/1';
|
|
|
11
11
|
* additive-only within protocol major `cerastream-ipc/1` (ADR-0002 §4); this value
|
|
12
12
|
* only moves when the wire schema itself does, in lockstep across both languages.
|
|
13
13
|
*/
|
|
14
|
-
export const SCHEMA_VERSION = '0.
|
|
14
|
+
export const SCHEMA_VERSION = '0.20.0';
|
|
15
15
|
/** Runtime dir holding both control + preview sockets. systemd `RuntimeDirectory=cerastream`. */
|
|
16
16
|
export const DEFAULT_IPC_DIR = '/run/cerastream';
|
|
17
17
|
/** Env override for the IPC dir (tests/dev). Defaults to {@link DEFAULT_IPC_DIR}. */
|
package/dist/events.d.ts
CHANGED
|
@@ -26,6 +26,9 @@ export declare const activeEncodeSchema: z.ZodObject<{
|
|
|
26
26
|
gop_probe_ms: z.ZodOptional<z.ZodNumber>;
|
|
27
27
|
frames_emitted: z.ZodOptional<z.ZodNumber>;
|
|
28
28
|
pipeline_playing: z.ZodOptional<z.ZodBoolean>;
|
|
29
|
+
encoder_restarts: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
kernel_faults: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
skip_to_live: z.ZodOptional<z.ZodNumber>;
|
|
29
32
|
}, z.core.$strip>;
|
|
30
33
|
export type ActiveEncode = z.infer<typeof activeEncodeSchema>;
|
|
31
34
|
/**
|
|
@@ -107,6 +110,9 @@ export declare const statusEventSchema: z.ZodObject<{
|
|
|
107
110
|
gop_probe_ms: z.ZodOptional<z.ZodNumber>;
|
|
108
111
|
frames_emitted: z.ZodOptional<z.ZodNumber>;
|
|
109
112
|
pipeline_playing: z.ZodOptional<z.ZodBoolean>;
|
|
113
|
+
encoder_restarts: z.ZodOptional<z.ZodNumber>;
|
|
114
|
+
kernel_faults: z.ZodOptional<z.ZodNumber>;
|
|
115
|
+
skip_to_live: z.ZodOptional<z.ZodNumber>;
|
|
110
116
|
}, z.core.$strip>>;
|
|
111
117
|
preview_encoder_realized: z.ZodOptional<z.ZodObject<{
|
|
112
118
|
selected_element: z.ZodOptional<z.ZodString>;
|
|
@@ -174,7 +180,9 @@ export declare const deviceEventSchema: z.ZodObject<{
|
|
|
174
180
|
hdmi: "hdmi";
|
|
175
181
|
mjpeg: "mjpeg";
|
|
176
182
|
network: "network";
|
|
183
|
+
raw_video: "raw_video";
|
|
177
184
|
test: "test";
|
|
185
|
+
unknown: "unknown";
|
|
178
186
|
uvc_h264: "uvc_h264";
|
|
179
187
|
uvc_h265: "uvc_h265";
|
|
180
188
|
}>>;
|
|
@@ -186,7 +194,9 @@ export declare const deviceEventSchema: z.ZodObject<{
|
|
|
186
194
|
hdmi: "hdmi";
|
|
187
195
|
mjpeg: "mjpeg";
|
|
188
196
|
network: "network";
|
|
197
|
+
raw_video: "raw_video";
|
|
189
198
|
test: "test";
|
|
199
|
+
unknown: "unknown";
|
|
190
200
|
uvc_h264: "uvc_h264";
|
|
191
201
|
uvc_h265: "uvc_h265";
|
|
192
202
|
}>;
|
|
@@ -373,6 +383,9 @@ export declare const eventParamsSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
373
383
|
gop_probe_ms: z.ZodOptional<z.ZodNumber>;
|
|
374
384
|
frames_emitted: z.ZodOptional<z.ZodNumber>;
|
|
375
385
|
pipeline_playing: z.ZodOptional<z.ZodBoolean>;
|
|
386
|
+
encoder_restarts: z.ZodOptional<z.ZodNumber>;
|
|
387
|
+
kernel_faults: z.ZodOptional<z.ZodNumber>;
|
|
388
|
+
skip_to_live: z.ZodOptional<z.ZodNumber>;
|
|
376
389
|
}, z.core.$strip>>;
|
|
377
390
|
preview_encoder_realized: z.ZodOptional<z.ZodObject<{
|
|
378
391
|
selected_element: z.ZodOptional<z.ZodString>;
|
|
@@ -428,7 +441,9 @@ export declare const eventParamsSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
428
441
|
hdmi: "hdmi";
|
|
429
442
|
mjpeg: "mjpeg";
|
|
430
443
|
network: "network";
|
|
444
|
+
raw_video: "raw_video";
|
|
431
445
|
test: "test";
|
|
446
|
+
unknown: "unknown";
|
|
432
447
|
uvc_h264: "uvc_h264";
|
|
433
448
|
uvc_h265: "uvc_h265";
|
|
434
449
|
}>>;
|
|
@@ -440,7 +455,9 @@ export declare const eventParamsSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
440
455
|
hdmi: "hdmi";
|
|
441
456
|
mjpeg: "mjpeg";
|
|
442
457
|
network: "network";
|
|
458
|
+
raw_video: "raw_video";
|
|
443
459
|
test: "test";
|
|
460
|
+
unknown: "unknown";
|
|
444
461
|
uvc_h264: "uvc_h264";
|
|
445
462
|
uvc_h265: "uvc_h265";
|
|
446
463
|
}>;
|
|
@@ -586,6 +603,9 @@ export declare const cerastreamEventSchema: z.ZodObject<{
|
|
|
586
603
|
gop_probe_ms: z.ZodOptional<z.ZodNumber>;
|
|
587
604
|
frames_emitted: z.ZodOptional<z.ZodNumber>;
|
|
588
605
|
pipeline_playing: z.ZodOptional<z.ZodBoolean>;
|
|
606
|
+
encoder_restarts: z.ZodOptional<z.ZodNumber>;
|
|
607
|
+
kernel_faults: z.ZodOptional<z.ZodNumber>;
|
|
608
|
+
skip_to_live: z.ZodOptional<z.ZodNumber>;
|
|
589
609
|
}, z.core.$strip>>;
|
|
590
610
|
preview_encoder_realized: z.ZodOptional<z.ZodObject<{
|
|
591
611
|
selected_element: z.ZodOptional<z.ZodString>;
|
|
@@ -641,7 +661,9 @@ export declare const cerastreamEventSchema: z.ZodObject<{
|
|
|
641
661
|
hdmi: "hdmi";
|
|
642
662
|
mjpeg: "mjpeg";
|
|
643
663
|
network: "network";
|
|
664
|
+
raw_video: "raw_video";
|
|
644
665
|
test: "test";
|
|
666
|
+
unknown: "unknown";
|
|
645
667
|
uvc_h264: "uvc_h264";
|
|
646
668
|
uvc_h265: "uvc_h265";
|
|
647
669
|
}>>;
|
|
@@ -653,7 +675,9 @@ export declare const cerastreamEventSchema: z.ZodObject<{
|
|
|
653
675
|
hdmi: "hdmi";
|
|
654
676
|
mjpeg: "mjpeg";
|
|
655
677
|
network: "network";
|
|
678
|
+
raw_video: "raw_video";
|
|
656
679
|
test: "test";
|
|
680
|
+
unknown: "unknown";
|
|
657
681
|
uvc_h264: "uvc_h264";
|
|
658
682
|
uvc_h265: "uvc_h265";
|
|
659
683
|
}>;
|
|
@@ -803,6 +827,9 @@ export declare const eventSchemas: {
|
|
|
803
827
|
gop_probe_ms: z.ZodOptional<z.ZodNumber>;
|
|
804
828
|
frames_emitted: z.ZodOptional<z.ZodNumber>;
|
|
805
829
|
pipeline_playing: z.ZodOptional<z.ZodBoolean>;
|
|
830
|
+
encoder_restarts: z.ZodOptional<z.ZodNumber>;
|
|
831
|
+
kernel_faults: z.ZodOptional<z.ZodNumber>;
|
|
832
|
+
skip_to_live: z.ZodOptional<z.ZodNumber>;
|
|
806
833
|
}, z.core.$strip>>;
|
|
807
834
|
preview_encoder_realized: z.ZodOptional<z.ZodObject<{
|
|
808
835
|
selected_element: z.ZodOptional<z.ZodString>;
|
|
@@ -860,7 +887,9 @@ export declare const eventSchemas: {
|
|
|
860
887
|
hdmi: "hdmi";
|
|
861
888
|
mjpeg: "mjpeg";
|
|
862
889
|
network: "network";
|
|
890
|
+
raw_video: "raw_video";
|
|
863
891
|
test: "test";
|
|
892
|
+
unknown: "unknown";
|
|
864
893
|
uvc_h264: "uvc_h264";
|
|
865
894
|
uvc_h265: "uvc_h265";
|
|
866
895
|
}>>;
|
|
@@ -872,7 +901,9 @@ export declare const eventSchemas: {
|
|
|
872
901
|
hdmi: "hdmi";
|
|
873
902
|
mjpeg: "mjpeg";
|
|
874
903
|
network: "network";
|
|
904
|
+
raw_video: "raw_video";
|
|
875
905
|
test: "test";
|
|
906
|
+
unknown: "unknown";
|
|
876
907
|
uvc_h264: "uvc_h264";
|
|
877
908
|
uvc_h265: "uvc_h265";
|
|
878
909
|
}>;
|
package/dist/events.js
CHANGED
|
@@ -26,6 +26,9 @@ export const activeEncodeSchema = z.object({
|
|
|
26
26
|
gop_probe_ms: z.number().int().nonnegative().optional(), // 0.5.0: GOP preflight duration in ms when a probe ran
|
|
27
27
|
frames_emitted: z.number().int().nonnegative().optional(), // 0.7.0: monotonic egress-buffer counter; advances across status heartbeats while frames flow
|
|
28
28
|
pipeline_playing: z.boolean().optional(), // 0.7.0: pipeline is in GStreamer PLAYING (false during an in-process reconnect)
|
|
29
|
+
encoder_restarts: z.number().int().nonnegative().optional(), // 0.20.0: bounded MPP context restarts this session (any cause); ABSENT = not asked, Some(0) = asked and clean
|
|
30
|
+
kernel_faults: z.number().int().nonnegative().optional(), // 0.20.0: the kernel-attributed subset; 0 is weak evidence — the plugin fault bridge is opt-in and ships off
|
|
31
|
+
skip_to_live: z.number().int().nonnegative().optional(),
|
|
29
32
|
});
|
|
30
33
|
/**
|
|
31
34
|
* What this session's PREVIEW branch is actually encoding with (additive),
|
package/dist/messages.d.ts
CHANGED
|
@@ -53,7 +53,9 @@ export declare const startParamsSchema: z.ZodObject<{
|
|
|
53
53
|
hdmi: "hdmi";
|
|
54
54
|
mjpeg: "mjpeg";
|
|
55
55
|
network: "network";
|
|
56
|
+
raw_video: "raw_video";
|
|
56
57
|
test: "test";
|
|
58
|
+
unknown: "unknown";
|
|
57
59
|
uvc_h264: "uvc_h264";
|
|
58
60
|
uvc_h265: "uvc_h265";
|
|
59
61
|
}>>;
|
|
@@ -232,7 +234,9 @@ export declare const setEdidProfileResultSchema: z.ZodObject<{
|
|
|
232
234
|
hdmi: "hdmi";
|
|
233
235
|
mjpeg: "mjpeg";
|
|
234
236
|
network: "network";
|
|
237
|
+
raw_video: "raw_video";
|
|
235
238
|
test: "test";
|
|
239
|
+
unknown: "unknown";
|
|
236
240
|
uvc_h264: "uvc_h264";
|
|
237
241
|
uvc_h265: "uvc_h265";
|
|
238
242
|
}>>;
|
|
@@ -244,7 +248,9 @@ export declare const setEdidProfileResultSchema: z.ZodObject<{
|
|
|
244
248
|
hdmi: "hdmi";
|
|
245
249
|
mjpeg: "mjpeg";
|
|
246
250
|
network: "network";
|
|
251
|
+
raw_video: "raw_video";
|
|
247
252
|
test: "test";
|
|
253
|
+
unknown: "unknown";
|
|
248
254
|
uvc_h264: "uvc_h264";
|
|
249
255
|
uvc_h265: "uvc_h265";
|
|
250
256
|
}>;
|
|
@@ -330,7 +336,9 @@ export declare const listDevicesResultSchema: z.ZodObject<{
|
|
|
330
336
|
hdmi: "hdmi";
|
|
331
337
|
mjpeg: "mjpeg";
|
|
332
338
|
network: "network";
|
|
339
|
+
raw_video: "raw_video";
|
|
333
340
|
test: "test";
|
|
341
|
+
unknown: "unknown";
|
|
334
342
|
uvc_h264: "uvc_h264";
|
|
335
343
|
uvc_h265: "uvc_h265";
|
|
336
344
|
}>>;
|
|
@@ -342,7 +350,9 @@ export declare const listDevicesResultSchema: z.ZodObject<{
|
|
|
342
350
|
hdmi: "hdmi";
|
|
343
351
|
mjpeg: "mjpeg";
|
|
344
352
|
network: "network";
|
|
353
|
+
raw_video: "raw_video";
|
|
345
354
|
test: "test";
|
|
355
|
+
unknown: "unknown";
|
|
346
356
|
uvc_h264: "uvc_h264";
|
|
347
357
|
uvc_h265: "uvc_h265";
|
|
348
358
|
}>;
|
|
@@ -621,7 +631,9 @@ export declare const changeConfigParamsSchema: z.ZodObject<{
|
|
|
621
631
|
hdmi: "hdmi";
|
|
622
632
|
mjpeg: "mjpeg";
|
|
623
633
|
network: "network";
|
|
634
|
+
raw_video: "raw_video";
|
|
624
635
|
test: "test";
|
|
636
|
+
unknown: "unknown";
|
|
625
637
|
uvc_h264: "uvc_h264";
|
|
626
638
|
uvc_h265: "uvc_h265";
|
|
627
639
|
}>>;
|
|
@@ -739,7 +751,9 @@ export declare const requestSchemas: {
|
|
|
739
751
|
hdmi: "hdmi";
|
|
740
752
|
mjpeg: "mjpeg";
|
|
741
753
|
network: "network";
|
|
754
|
+
raw_video: "raw_video";
|
|
742
755
|
test: "test";
|
|
756
|
+
unknown: "unknown";
|
|
743
757
|
uvc_h264: "uvc_h264";
|
|
744
758
|
uvc_h265: "uvc_h265";
|
|
745
759
|
}>>;
|
|
@@ -902,7 +916,9 @@ export declare const requestSchemas: {
|
|
|
902
916
|
hdmi: "hdmi";
|
|
903
917
|
mjpeg: "mjpeg";
|
|
904
918
|
network: "network";
|
|
919
|
+
raw_video: "raw_video";
|
|
905
920
|
test: "test";
|
|
921
|
+
unknown: "unknown";
|
|
906
922
|
uvc_h264: "uvc_h264";
|
|
907
923
|
uvc_h265: "uvc_h265";
|
|
908
924
|
}>>;
|
|
@@ -914,7 +930,9 @@ export declare const requestSchemas: {
|
|
|
914
930
|
hdmi: "hdmi";
|
|
915
931
|
mjpeg: "mjpeg";
|
|
916
932
|
network: "network";
|
|
933
|
+
raw_video: "raw_video";
|
|
917
934
|
test: "test";
|
|
935
|
+
unknown: "unknown";
|
|
918
936
|
uvc_h264: "uvc_h264";
|
|
919
937
|
uvc_h265: "uvc_h265";
|
|
920
938
|
}>;
|
package/dist/types.d.ts
CHANGED
|
@@ -86,7 +86,9 @@ export declare const captureDeviceKindSchema: z.ZodEnum<{
|
|
|
86
86
|
hdmi: "hdmi";
|
|
87
87
|
mjpeg: "mjpeg";
|
|
88
88
|
network: "network";
|
|
89
|
+
raw_video: "raw_video";
|
|
89
90
|
test: "test";
|
|
91
|
+
unknown: "unknown";
|
|
90
92
|
uvc_h264: "uvc_h264";
|
|
91
93
|
uvc_h265: "uvc_h265";
|
|
92
94
|
}>;
|
|
@@ -221,7 +223,9 @@ export declare const cerastreamConfigSchema: z.ZodObject<{
|
|
|
221
223
|
hdmi: "hdmi";
|
|
222
224
|
mjpeg: "mjpeg";
|
|
223
225
|
network: "network";
|
|
226
|
+
raw_video: "raw_video";
|
|
224
227
|
test: "test";
|
|
228
|
+
unknown: "unknown";
|
|
225
229
|
uvc_h264: "uvc_h264";
|
|
226
230
|
uvc_h265: "uvc_h265";
|
|
227
231
|
}>>;
|
|
@@ -261,7 +265,9 @@ export declare const captureModeSchema: z.ZodObject<{
|
|
|
261
265
|
hdmi: "hdmi";
|
|
262
266
|
mjpeg: "mjpeg";
|
|
263
267
|
network: "network";
|
|
268
|
+
raw_video: "raw_video";
|
|
264
269
|
test: "test";
|
|
270
|
+
unknown: "unknown";
|
|
265
271
|
uvc_h264: "uvc_h264";
|
|
266
272
|
uvc_h265: "uvc_h265";
|
|
267
273
|
}>;
|
|
@@ -293,7 +299,9 @@ export declare const captureDeviceSchema: z.ZodObject<{
|
|
|
293
299
|
hdmi: "hdmi";
|
|
294
300
|
mjpeg: "mjpeg";
|
|
295
301
|
network: "network";
|
|
302
|
+
raw_video: "raw_video";
|
|
296
303
|
test: "test";
|
|
304
|
+
unknown: "unknown";
|
|
297
305
|
uvc_h264: "uvc_h264";
|
|
298
306
|
uvc_h265: "uvc_h265";
|
|
299
307
|
}>>;
|
|
@@ -305,7 +313,9 @@ export declare const captureDeviceSchema: z.ZodObject<{
|
|
|
305
313
|
hdmi: "hdmi";
|
|
306
314
|
mjpeg: "mjpeg";
|
|
307
315
|
network: "network";
|
|
316
|
+
raw_video: "raw_video";
|
|
308
317
|
test: "test";
|
|
318
|
+
unknown: "unknown";
|
|
309
319
|
uvc_h264: "uvc_h264";
|
|
310
320
|
uvc_h265: "uvc_h265";
|
|
311
321
|
}>;
|
package/dist/types.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ceralive/cerastream",
|
|
3
|
-
"version": "2026.9.
|
|
3
|
+
"version": "2026.9.10",
|
|
4
4
|
"description": "Type-safe TypeScript schema + IPC client for the cerastream streaming engine (JSON-RPC 2.0 / NDJSON over a Unix domain socket).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|