@camstack/types 1.2.113 → 1.2.115

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.
@@ -103,17 +103,65 @@ declare const SetSiteLocationInputSchema: z.ZodNullable<z.ZodObject<{
103
103
  longitude: z.ZodNumber;
104
104
  }, z.core.$strip>>;
105
105
  /**
106
- * One `(procedure, user-agent, ip, principal)` tuple of the HTTP request
106
+ * The TRANSPORT a call arrived on.
107
+ *
108
+ * Every counted call carries exactly one of these, and `unknown` is a PLANE
109
+ * rather than a gap: a plane that cannot attribute a call declares it here, so
110
+ * the call lands in a named bucket instead of vanishing. `planes` summing to
111
+ * `procedureCalls` is what makes "the sum of the planes explains the total"
112
+ * checkable rather than asserted.
113
+ *
114
+ * - `http` — the Fastify tRPC plugin (`/trpc/*`), one context per request.
115
+ * - `ws` — `applyWSSHandler`, counted per OPERATION rather than per
116
+ * connection; the viewer talks to the hub over `wsLink`
117
+ * exclusively, so this is the plane the HTTP census could not see.
118
+ * - `mesh` — the in-process `$core-caps` bridge (`createCaller`), which
119
+ * never touches a socket and therefore never touched a census.
120
+ * - `unknown` — counted, plane undecidable. No hook produces it today, and
121
+ * that is exactly what its `0` asserts: every plane the hub has can name
122
+ * itself. It is an output bucket, never a knob — a call that arrives on a
123
+ * plane nobody instrumented lands here instead of vanishing from the total.
124
+ */
125
+ declare const TransportPlaneSchema: z.ZodEnum<{
126
+ unknown: "unknown";
127
+ mesh: "mesh";
128
+ http: "http";
129
+ ws: "ws";
130
+ }>;
131
+ /**
132
+ * Calls per plane. Every key is always present, `0` included — an absent plane
133
+ * reads as "not instrumented", which is the one thing this census must never
134
+ * make an operator wonder about.
135
+ */
136
+ declare const TransportPlaneCountsSchema: z.ZodObject<{
137
+ http: z.ZodNumber;
138
+ ws: z.ZodNumber;
139
+ mesh: z.ZodNumber;
140
+ unknown: z.ZodNumber;
141
+ }, z.core.$strip>;
142
+ /**
143
+ * One `(plane, procedure, user-agent, ip, principal)` tuple of the transport
107
144
  * census. `principal` is the DERIVED identity (`apocaliss92 (admin)`,
108
145
  * `scoped:1a2b3c4d (scoped-token)`, `anonymous`) that the tRPC error log
109
146
  * already prints - never a token, never an `Authorization` header.
147
+ *
148
+ * `subscriptions` is counted APART from `calls`: a subscription is opened once
149
+ * and lives for hours, so folding it into a call count makes one long-lived
150
+ * stream look like a storm.
110
151
  */
111
152
  declare const RequestCensusGroupSchema: z.ZodObject<{
153
+ plane: z.ZodEnum<{
154
+ unknown: "unknown";
155
+ mesh: "mesh";
156
+ http: "http";
157
+ ws: "ws";
158
+ }>;
112
159
  procedure: z.ZodString;
113
160
  userAgent: z.ZodString;
114
161
  ip: z.ZodString;
115
162
  principal: z.ZodString;
116
163
  calls: z.ZodNumber;
164
+ subscriptions: z.ZodNumber;
117
165
  perMin: z.ZodNumber;
118
166
  }, z.core.$strip>;
119
167
  /**
@@ -126,9 +174,16 @@ declare const RequestCensusGroupSchema: z.ZodObject<{
126
174
  declare const RequestCensusProcedureSchema: z.ZodObject<{
127
175
  procedure: z.ZodString;
128
176
  calls: z.ZodNumber;
177
+ planes: z.ZodObject<{
178
+ http: z.ZodNumber;
179
+ ws: z.ZodNumber;
180
+ mesh: z.ZodNumber;
181
+ unknown: z.ZodNumber;
182
+ }, z.core.$strip>;
183
+ subscriptions: z.ZodNumber;
129
184
  perMin: z.ZodNumber;
130
185
  }, z.core.$strip>;
131
- /** What one armed window measured. Mirrors `HttpRequestCensus.snapshot()`. */
186
+ /** What one armed window measured. Mirrors `TransportCensus.snapshot()`. */
132
187
  declare const RequestCensusSnapshotSchema: z.ZodObject<{
133
188
  armed: z.ZodBoolean;
134
189
  elapsedMs: z.ZodNumber;
@@ -137,20 +192,44 @@ declare const RequestCensusSnapshotSchema: z.ZodObject<{
137
192
  httpRequests: z.ZodNumber;
138
193
  batchedRequests: z.ZodNumber;
139
194
  procedureCalls: z.ZodNumber;
195
+ planes: z.ZodObject<{
196
+ http: z.ZodNumber;
197
+ ws: z.ZodNumber;
198
+ mesh: z.ZodNumber;
199
+ unknown: z.ZodNumber;
200
+ }, z.core.$strip>;
201
+ planesExplainTotal: z.ZodBoolean;
140
202
  wsConnections: z.ZodNumber;
203
+ wsMessages: z.ZodNumber;
204
+ subscriptions: z.ZodNumber;
205
+ subscriptionStops: z.ZodNumber;
141
206
  distinctGroups: z.ZodNumber;
142
207
  unattributedCalls: z.ZodNumber;
143
208
  procedures: z.ZodReadonly<z.ZodArray<z.ZodObject<{
144
209
  procedure: z.ZodString;
145
210
  calls: z.ZodNumber;
211
+ planes: z.ZodObject<{
212
+ http: z.ZodNumber;
213
+ ws: z.ZodNumber;
214
+ mesh: z.ZodNumber;
215
+ unknown: z.ZodNumber;
216
+ }, z.core.$strip>;
217
+ subscriptions: z.ZodNumber;
146
218
  perMin: z.ZodNumber;
147
219
  }, z.core.$strip>>>;
148
220
  groups: z.ZodReadonly<z.ZodArray<z.ZodObject<{
221
+ plane: z.ZodEnum<{
222
+ unknown: "unknown";
223
+ mesh: "mesh";
224
+ http: "http";
225
+ ws: "ws";
226
+ }>;
149
227
  procedure: z.ZodString;
150
228
  userAgent: z.ZodString;
151
229
  ip: z.ZodString;
152
230
  principal: z.ZodString;
153
231
  calls: z.ZodNumber;
232
+ subscriptions: z.ZodNumber;
154
233
  perMin: z.ZodNumber;
155
234
  }, z.core.$strip>>>;
156
235
  }, z.core.$strip>;
@@ -170,20 +249,44 @@ declare const RequestCensusStatusSchema: z.ZodObject<{
170
249
  httpRequests: z.ZodNumber;
171
250
  batchedRequests: z.ZodNumber;
172
251
  procedureCalls: z.ZodNumber;
252
+ planes: z.ZodObject<{
253
+ http: z.ZodNumber;
254
+ ws: z.ZodNumber;
255
+ mesh: z.ZodNumber;
256
+ unknown: z.ZodNumber;
257
+ }, z.core.$strip>;
258
+ planesExplainTotal: z.ZodBoolean;
173
259
  wsConnections: z.ZodNumber;
260
+ wsMessages: z.ZodNumber;
261
+ subscriptions: z.ZodNumber;
262
+ subscriptionStops: z.ZodNumber;
174
263
  distinctGroups: z.ZodNumber;
175
264
  unattributedCalls: z.ZodNumber;
176
265
  procedures: z.ZodReadonly<z.ZodArray<z.ZodObject<{
177
266
  procedure: z.ZodString;
178
267
  calls: z.ZodNumber;
268
+ planes: z.ZodObject<{
269
+ http: z.ZodNumber;
270
+ ws: z.ZodNumber;
271
+ mesh: z.ZodNumber;
272
+ unknown: z.ZodNumber;
273
+ }, z.core.$strip>;
274
+ subscriptions: z.ZodNumber;
179
275
  perMin: z.ZodNumber;
180
276
  }, z.core.$strip>>>;
181
277
  groups: z.ZodReadonly<z.ZodArray<z.ZodObject<{
278
+ plane: z.ZodEnum<{
279
+ unknown: "unknown";
280
+ mesh: "mesh";
281
+ http: "http";
282
+ ws: "ws";
283
+ }>;
182
284
  procedure: z.ZodString;
183
285
  userAgent: z.ZodString;
184
286
  ip: z.ZodString;
185
287
  principal: z.ZodString;
186
288
  calls: z.ZodNumber;
289
+ subscriptions: z.ZodNumber;
187
290
  perMin: z.ZodNumber;
188
291
  }, z.core.$strip>>>;
189
292
  persisted: z.ZodBoolean;
@@ -208,10 +311,11 @@ declare const DiagnosticIdSchema: z.ZodEnum<{
208
311
  * The layers of the level hierarchy, general → specific. The most specific
209
312
  * layer that carries an explicit value wins.
210
313
  *
211
- * `component` is DECLARED and not yet resolvable: the per-component channels
212
- * are a later slice of the same plan, and a `levelSource` enum that has to
213
- * grow later would force every consumer of this document to change with it.
214
- * Nothing returns `component` today.
314
+ * `component` became RESOLVABLE on 2026-08-27: a component is a declared log
315
+ * CHANNEL (`stream-broker.webrtc`, `provider-reolink.baichuan`), named by
316
+ * `scopeComponent`. It was declared-but-dark in the first slice precisely so
317
+ * that turning it on would not force every consumer of this document to widen
318
+ * a `levelSource` enum — which is what has now not happened.
215
319
  */
216
320
  declare const LoggingScopeKindSchema: z.ZodEnum<{
217
321
  node: "node";
@@ -241,6 +345,7 @@ declare const LoggingLevelLayerSchema: z.ZodObject<{
241
345
  component: "component";
242
346
  }>;
243
347
  nodeId: z.ZodNullable<z.ZodString>;
348
+ component: z.ZodNullable<z.ZodString>;
244
349
  level: z.ZodNullable<z.ZodEnum<{
245
350
  error: "error";
246
351
  debug: "debug";
@@ -272,6 +377,7 @@ declare const LoggingExplicitSchema: z.ZodObject<{
272
377
  component: "component";
273
378
  }>;
274
379
  nodeId: z.ZodNullable<z.ZodString>;
380
+ component: z.ZodNullable<z.ZodString>;
275
381
  level: z.ZodNullable<z.ZodEnum<{
276
382
  error: "error";
277
383
  debug: "debug";
@@ -309,6 +415,29 @@ declare const DiagnosticWindowPatchSchema: z.ZodObject<{
309
415
  armMs: z.ZodNumber;
310
416
  reportEveryMs: z.ZodOptional<z.ZodNumber>;
311
417
  }, z.core.$strip>;
418
+ /**
419
+ * A channel ARMED, as the document reports it.
420
+ *
421
+ * `armMs` is not echoed back: what an operator needs to see is the deadline
422
+ * and the time left, because a diagnostic left running is itself an incident
423
+ * and "armed for 10 minutes" said an hour ago is not an answer.
424
+ */
425
+ declare const LogChannelWindowStateSchema: z.ZodObject<{
426
+ channel: z.ZodString;
427
+ armed: z.ZodBoolean;
428
+ armedUntilMs: z.ZodNumber;
429
+ remainingMs: z.ZodNumber;
430
+ deviceIds: z.ZodNullable<z.ZodReadonly<z.ZodArray<z.ZodNumber>>>;
431
+ }, z.core.$strip>;
432
+ /**
433
+ * `armMs: 0` DISARMS. Same grammar as {@link DiagnosticWindowPatchSchema}, and
434
+ * for the same reason: a channel is a window with a deadline, never a switch.
435
+ */
436
+ declare const LogChannelWindowPatchSchema: z.ZodObject<{
437
+ channel: z.ZodString;
438
+ armMs: z.ZodNumber;
439
+ deviceIds: z.ZodOptional<z.ZodNullable<z.ZodReadonly<z.ZodArray<z.ZodNumber>>>>;
440
+ }, z.core.$strip>;
312
441
  /**
313
442
  * A PATCH, and patches MERGE.
314
443
  *
@@ -332,6 +461,11 @@ declare const LoggingSettingsPatchSchema: z.ZodObject<{
332
461
  armMs: z.ZodNumber;
333
462
  reportEveryMs: z.ZodOptional<z.ZodNumber>;
334
463
  }, z.core.$strip>>>>;
464
+ channels: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
465
+ channel: z.ZodString;
466
+ armMs: z.ZodNumber;
467
+ deviceIds: z.ZodOptional<z.ZodNullable<z.ZodReadonly<z.ZodArray<z.ZodNumber>>>>;
468
+ }, z.core.$strip>>>>;
335
469
  }, z.core.$strip>;
336
470
  /**
337
471
  * Which LAYER of the hierarchy is addressed. Absent = the cluster layer.
@@ -346,9 +480,11 @@ declare const LoggingSettingsPatchSchema: z.ZodObject<{
346
480
  */
347
481
  declare const GetLoggingSettingsInputSchema: z.ZodObject<{
348
482
  scopeNodeId: z.ZodOptional<z.ZodString>;
483
+ scopeComponent: z.ZodOptional<z.ZodString>;
349
484
  }, z.core.$strip>;
350
485
  declare const SetLoggingSettingsInputSchema: z.ZodObject<{
351
486
  scopeNodeId: z.ZodOptional<z.ZodString>;
487
+ scopeComponent: z.ZodOptional<z.ZodString>;
352
488
  patch: z.ZodObject<{
353
489
  level: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
354
490
  error: "error";
@@ -363,6 +499,11 @@ declare const SetLoggingSettingsInputSchema: z.ZodObject<{
363
499
  armMs: z.ZodNumber;
364
500
  reportEveryMs: z.ZodOptional<z.ZodNumber>;
365
501
  }, z.core.$strip>>>>;
502
+ channels: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
503
+ channel: z.ZodString;
504
+ armMs: z.ZodNumber;
505
+ deviceIds: z.ZodOptional<z.ZodNullable<z.ZodReadonly<z.ZodArray<z.ZodNumber>>>>;
506
+ }, z.core.$strip>>>>;
366
507
  }, z.core.$strip>;
367
508
  }, z.core.$strip>;
368
509
  /**
@@ -376,6 +517,7 @@ declare const SetLoggingSettingsInputSchema: z.ZodObject<{
376
517
  */
377
518
  declare const LoggingSettingsStateSchema: z.ZodObject<{
378
519
  scopeNodeId: z.ZodNullable<z.ZodString>;
520
+ scopeComponent: z.ZodNullable<z.ZodString>;
379
521
  effective: z.ZodObject<{
380
522
  level: z.ZodEnum<{
381
523
  error: "error";
@@ -398,6 +540,7 @@ declare const LoggingSettingsStateSchema: z.ZodObject<{
398
540
  component: "component";
399
541
  }>;
400
542
  nodeId: z.ZodNullable<z.ZodString>;
543
+ component: z.ZodNullable<z.ZodString>;
401
544
  level: z.ZodNullable<z.ZodEnum<{
402
545
  error: "error";
403
546
  debug: "debug";
@@ -415,6 +558,23 @@ declare const LoggingSettingsStateSchema: z.ZodObject<{
415
558
  remainingMs: z.ZodNumber;
416
559
  persisted: z.ZodBoolean;
417
560
  }, z.core.$strip>>>;
561
+ channels: z.ZodReadonly<z.ZodArray<z.ZodObject<{
562
+ name: z.ZodString;
563
+ description: z.ZodString;
564
+ defaultLevel: z.ZodEnum<{
565
+ error: "error";
566
+ info: "info";
567
+ warn: "warn";
568
+ }>;
569
+ perDevice: z.ZodBoolean;
570
+ }, z.core.$strip>>>;
571
+ activeChannels: z.ZodReadonly<z.ZodArray<z.ZodObject<{
572
+ channel: z.ZodString;
573
+ armed: z.ZodBoolean;
574
+ armedUntilMs: z.ZodNumber;
575
+ remainingMs: z.ZodNumber;
576
+ deviceIds: z.ZodNullable<z.ZodReadonly<z.ZodArray<z.ZodNumber>>>;
577
+ }, z.core.$strip>>>;
418
578
  persisted: z.ZodBoolean;
419
579
  }, z.core.$strip>;
420
580
  export declare const systemCapability: {
@@ -537,20 +697,44 @@ export declare const systemCapability: {
537
697
  httpRequests: z.ZodNumber;
538
698
  batchedRequests: z.ZodNumber;
539
699
  procedureCalls: z.ZodNumber;
700
+ planes: z.ZodObject<{
701
+ http: z.ZodNumber;
702
+ ws: z.ZodNumber;
703
+ mesh: z.ZodNumber;
704
+ unknown: z.ZodNumber;
705
+ }, z.core.$strip>;
706
+ planesExplainTotal: z.ZodBoolean;
540
707
  wsConnections: z.ZodNumber;
708
+ wsMessages: z.ZodNumber;
709
+ subscriptions: z.ZodNumber;
710
+ subscriptionStops: z.ZodNumber;
541
711
  distinctGroups: z.ZodNumber;
542
712
  unattributedCalls: z.ZodNumber;
543
713
  procedures: z.ZodReadonly<z.ZodArray<z.ZodObject<{
544
714
  procedure: z.ZodString;
545
715
  calls: z.ZodNumber;
716
+ planes: z.ZodObject<{
717
+ http: z.ZodNumber;
718
+ ws: z.ZodNumber;
719
+ mesh: z.ZodNumber;
720
+ unknown: z.ZodNumber;
721
+ }, z.core.$strip>;
722
+ subscriptions: z.ZodNumber;
546
723
  perMin: z.ZodNumber;
547
724
  }, z.core.$strip>>>;
548
725
  groups: z.ZodReadonly<z.ZodArray<z.ZodObject<{
726
+ plane: z.ZodEnum<{
727
+ unknown: "unknown";
728
+ mesh: "mesh";
729
+ http: "http";
730
+ ws: "ws";
731
+ }>;
549
732
  procedure: z.ZodString;
550
733
  userAgent: z.ZodString;
551
734
  ip: z.ZodString;
552
735
  principal: z.ZodString;
553
736
  calls: z.ZodNumber;
737
+ subscriptions: z.ZodNumber;
554
738
  perMin: z.ZodNumber;
555
739
  }, z.core.$strip>>>;
556
740
  persisted: z.ZodBoolean;
@@ -564,8 +748,10 @@ export declare const systemCapability: {
564
748
  */
565
749
  readonly getLoggingSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
566
750
  scopeNodeId: z.ZodOptional<z.ZodString>;
751
+ scopeComponent: z.ZodOptional<z.ZodString>;
567
752
  }, z.core.$strip>, z.ZodObject<{
568
753
  scopeNodeId: z.ZodNullable<z.ZodString>;
754
+ scopeComponent: z.ZodNullable<z.ZodString>;
569
755
  effective: z.ZodObject<{
570
756
  level: z.ZodEnum<{
571
757
  error: "error";
@@ -588,6 +774,7 @@ export declare const systemCapability: {
588
774
  component: "component";
589
775
  }>;
590
776
  nodeId: z.ZodNullable<z.ZodString>;
777
+ component: z.ZodNullable<z.ZodString>;
591
778
  level: z.ZodNullable<z.ZodEnum<{
592
779
  error: "error";
593
780
  debug: "debug";
@@ -605,6 +792,23 @@ export declare const systemCapability: {
605
792
  remainingMs: z.ZodNumber;
606
793
  persisted: z.ZodBoolean;
607
794
  }, z.core.$strip>>>;
795
+ channels: z.ZodReadonly<z.ZodArray<z.ZodObject<{
796
+ name: z.ZodString;
797
+ description: z.ZodString;
798
+ defaultLevel: z.ZodEnum<{
799
+ error: "error";
800
+ info: "info";
801
+ warn: "warn";
802
+ }>;
803
+ perDevice: z.ZodBoolean;
804
+ }, z.core.$strip>>>;
805
+ activeChannels: z.ZodReadonly<z.ZodArray<z.ZodObject<{
806
+ channel: z.ZodString;
807
+ armed: z.ZodBoolean;
808
+ armedUntilMs: z.ZodNumber;
809
+ remainingMs: z.ZodNumber;
810
+ deviceIds: z.ZodNullable<z.ZodReadonly<z.ZodArray<z.ZodNumber>>>;
811
+ }, z.core.$strip>>>;
608
812
  persisted: z.ZodBoolean;
609
813
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
610
814
  /**
@@ -618,6 +822,7 @@ export declare const systemCapability: {
618
822
  */
619
823
  readonly setLoggingSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
620
824
  scopeNodeId: z.ZodOptional<z.ZodString>;
825
+ scopeComponent: z.ZodOptional<z.ZodString>;
621
826
  patch: z.ZodObject<{
622
827
  level: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
623
828
  error: "error";
@@ -632,9 +837,15 @@ export declare const systemCapability: {
632
837
  armMs: z.ZodNumber;
633
838
  reportEveryMs: z.ZodOptional<z.ZodNumber>;
634
839
  }, z.core.$strip>>>>;
840
+ channels: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
841
+ channel: z.ZodString;
842
+ armMs: z.ZodNumber;
843
+ deviceIds: z.ZodOptional<z.ZodNullable<z.ZodReadonly<z.ZodArray<z.ZodNumber>>>>;
844
+ }, z.core.$strip>>>>;
635
845
  }, z.core.$strip>;
636
846
  }, z.core.$strip>, z.ZodObject<{
637
847
  scopeNodeId: z.ZodNullable<z.ZodString>;
848
+ scopeComponent: z.ZodNullable<z.ZodString>;
638
849
  effective: z.ZodObject<{
639
850
  level: z.ZodEnum<{
640
851
  error: "error";
@@ -657,6 +868,7 @@ export declare const systemCapability: {
657
868
  component: "component";
658
869
  }>;
659
870
  nodeId: z.ZodNullable<z.ZodString>;
871
+ component: z.ZodNullable<z.ZodString>;
660
872
  level: z.ZodNullable<z.ZodEnum<{
661
873
  error: "error";
662
874
  debug: "debug";
@@ -674,6 +886,23 @@ export declare const systemCapability: {
674
886
  remainingMs: z.ZodNumber;
675
887
  persisted: z.ZodBoolean;
676
888
  }, z.core.$strip>>>;
889
+ channels: z.ZodReadonly<z.ZodArray<z.ZodObject<{
890
+ name: z.ZodString;
891
+ description: z.ZodString;
892
+ defaultLevel: z.ZodEnum<{
893
+ error: "error";
894
+ info: "info";
895
+ warn: "warn";
896
+ }>;
897
+ perDevice: z.ZodBoolean;
898
+ }, z.core.$strip>>>;
899
+ activeChannels: z.ZodReadonly<z.ZodArray<z.ZodObject<{
900
+ channel: z.ZodString;
901
+ armed: z.ZodBoolean;
902
+ armedUntilMs: z.ZodNumber;
903
+ remainingMs: z.ZodNumber;
904
+ deviceIds: z.ZodNullable<z.ZodReadonly<z.ZodArray<z.ZodNumber>>>;
905
+ }, z.core.$strip>>>;
677
906
  persisted: z.ZodBoolean;
678
907
  }, z.core.$strip>, "mutation">;
679
908
  };
@@ -687,6 +916,8 @@ export type RequestCensusGroup = z.infer<typeof RequestCensusGroupSchema>;
687
916
  export type RequestCensusProcedure = z.infer<typeof RequestCensusProcedureSchema>;
688
917
  export type RequestCensusSnapshot = z.infer<typeof RequestCensusSnapshotSchema>;
689
918
  export type RequestCensusStatus = z.infer<typeof RequestCensusStatusSchema>;
919
+ export type TransportPlane = z.infer<typeof TransportPlaneSchema>;
920
+ export type TransportPlaneCounts = z.infer<typeof TransportPlaneCountsSchema>;
690
921
  export type DiagnosticId = z.infer<typeof DiagnosticIdSchema>;
691
922
  export type DiagnosticWindow = z.infer<typeof DiagnosticWindowSchema>;
692
923
  export type DiagnosticWindowPatch = z.infer<typeof DiagnosticWindowPatchSchema>;
@@ -696,6 +927,8 @@ export type LoggingExplicit = z.infer<typeof LoggingExplicitSchema>;
696
927
  export type LoggingLevelLayer = z.infer<typeof LoggingLevelLayerSchema>;
697
928
  export type LoggingLevelSource = z.infer<typeof LoggingLevelSourceSchema>;
698
929
  export type LoggingScopeKind = z.infer<typeof LoggingScopeKindSchema>;
930
+ export type LogChannelWindowPatch = z.infer<typeof LogChannelWindowPatchSchema>;
931
+ export type LogChannelWindowState = z.infer<typeof LogChannelWindowStateSchema>;
699
932
  export type LoggingSettingsPatch = z.infer<typeof LoggingSettingsPatchSchema>;
700
933
  export type LoggingSettingsState = z.infer<typeof LoggingSettingsStateSchema>;
701
934
  export type SetLoggingSettingsInput = z.infer<typeof SetLoggingSettingsInputSchema>;
@@ -703,4 +936,4 @@ export type SiteLocation = z.infer<typeof SiteLocationSchema>;
703
936
  export type SiteLocationSource = z.infer<typeof SiteLocationSourceSchema>;
704
937
  export type SiteLocationStatus = z.infer<typeof SiteLocationStatusSchema>;
705
938
  export type SetSiteLocationInput = z.infer<typeof SetSiteLocationInputSchema>;
706
- export { DiagnosticIdSchema, DiagnosticWindowPatchSchema, DiagnosticWindowSchema, FeatureManifestSchema, GetLoggingSettingsInputSchema, HealthStatusSchema, LogLevelSchema, LoggingEffectiveSchema, LoggingExplicitSchema, LoggingLevelLayerSchema, LoggingLevelSourceSchema, LoggingScopeKindSchema, LoggingSettingsPatchSchema, LoggingSettingsStateSchema, NetworkAddressSchema, RequestCensusGroupSchema, RequestCensusProcedureSchema, RequestCensusSnapshotSchema, RequestCensusStatusSchema, SetLoggingSettingsInputSchema, SetSiteLocationInputSchema, SiteLocationSchema, SiteLocationSourceSchema, SiteLocationStatusSchema, };
939
+ export { DiagnosticIdSchema, DiagnosticWindowPatchSchema, DiagnosticWindowSchema, FeatureManifestSchema, GetLoggingSettingsInputSchema, HealthStatusSchema, LoggingEffectiveSchema, LoggingExplicitSchema, LoggingLevelLayerSchema, LoggingLevelSourceSchema, LoggingScopeKindSchema, LoggingSettingsPatchSchema, LoggingSettingsStateSchema, LogChannelWindowPatchSchema, LogChannelWindowStateSchema, LogLevelSchema, NetworkAddressSchema, RequestCensusGroupSchema, RequestCensusProcedureSchema, RequestCensusSnapshotSchema, RequestCensusStatusSchema, SetLoggingSettingsInputSchema, SetSiteLocationInputSchema, SiteLocationSchema, SiteLocationSourceSchema, SiteLocationStatusSchema, TransportPlaneCountsSchema, TransportPlaneSchema, };
@@ -56,6 +56,7 @@ import type { llmRuntimeCapability } from '../capabilities/llm-runtime.cap.js';
56
56
  import type { llmCapability } from '../capabilities/llm.cap.js';
57
57
  import type { localNetworkCapability } from '../capabilities/local-network.cap.js';
58
58
  import type { lockControlCapability } from '../capabilities/lock-control.cap.js';
59
+ import type { logChannelsCapability } from '../capabilities/log-channels.cap.js';
59
60
  import type { loginMethodCapability } from '../capabilities/login-method.cap.js';
60
61
  import type { mediaPlayerCapability } from '../capabilities/media-player.cap.js';
61
62
  import type { meshNetworkCapability } from '../capabilities/mesh-network.cap.js';
@@ -1628,6 +1629,13 @@ export type AppRouter = TrpcCoreRouter<{
1628
1629
  output: z.infer<typeof dataStoreProviderCapability.methods.count.output>;
1629
1630
  meta: object;
1630
1631
  }>;
1632
+ aggregate: TRPCQueryProcedure<{
1633
+ input: {
1634
+ [x: string]: unknown;
1635
+ } & z.input<typeof dataStoreProviderCapability.methods.aggregate.input>;
1636
+ output: z.infer<typeof dataStoreProviderCapability.methods.aggregate.output>;
1637
+ meta: object;
1638
+ }>;
1631
1639
  histogram: TRPCQueryProcedure<{
1632
1640
  input: {
1633
1641
  [x: string]: unknown;
@@ -2212,6 +2220,13 @@ export type AppRouter = TrpcCoreRouter<{
2212
2220
  output: z.infer<typeof deviceManagerCapability.methods.getChildren.output>;
2213
2221
  meta: object;
2214
2222
  }>;
2223
+ getChildrenBatch: TRPCQueryProcedure<{
2224
+ input: {
2225
+ [x: string]: unknown;
2226
+ } & z.input<typeof deviceManagerCapability.methods.getChildrenBatch.input>;
2227
+ output: z.infer<typeof deviceManagerCapability.methods.getChildrenBatch.output>;
2228
+ meta: object;
2229
+ }>;
2215
2230
  getLinkedDevices: TRPCQueryProcedure<{
2216
2231
  input: {
2217
2232
  [x: string]: unknown;
@@ -3710,6 +3725,28 @@ export type AppRouter = TrpcCoreRouter<{
3710
3725
  meta: object;
3711
3726
  }>;
3712
3727
  }>>;
3728
+ logChannels: TRPCBuiltRouter<{
3729
+ ctx: TrpcContext;
3730
+ meta: object;
3731
+ errorShape: AugmentedErrorShape;
3732
+ transformer: true;
3733
+ }, TRPCDecorateCreateRouterOptions<{
3734
+ list: TRPCQueryProcedure<{
3735
+ input: {
3736
+ nodeId?: string | undefined;
3737
+ addonId?: string | undefined;
3738
+ } | undefined;
3739
+ output: z.infer<typeof logChannelsCapability.methods.list.output>;
3740
+ meta: object;
3741
+ }>;
3742
+ apply: TRPCMutationProcedure<{
3743
+ input: {
3744
+ [x: string]: unknown;
3745
+ } & z.input<typeof logChannelsCapability.methods.apply.input>;
3746
+ output: z.infer<typeof logChannelsCapability.methods.apply.output>;
3747
+ meta: object;
3748
+ }>;
3749
+ }>>;
3713
3750
  loginMethod: TRPCBuiltRouter<{
3714
3751
  ctx: TrpcContext;
3715
3752
  meta: object;
@@ -6775,6 +6812,13 @@ export type AppRouter = TrpcCoreRouter<{
6775
6812
  output: z.infer<typeof settingsStoreCapability.methods.count.output>;
6776
6813
  meta: object;
6777
6814
  }>;
6815
+ aggregate: TRPCQueryProcedure<{
6816
+ input: {
6817
+ [x: string]: unknown;
6818
+ } & z.input<typeof settingsStoreCapability.methods.aggregate.input>;
6819
+ output: z.infer<typeof settingsStoreCapability.methods.aggregate.output>;
6820
+ meta: object;
6821
+ }>;
6778
6822
  histogram: TRPCQueryProcedure<{
6779
6823
  input: {
6780
6824
  [x: string]: unknown;
@@ -71,6 +71,7 @@ export { llmCapability } from '../capabilities/llm.cap.js';
71
71
  export { llmRuntimeCapability } from '../capabilities/llm-runtime.cap.js';
72
72
  export { localNetworkCapability } from '../capabilities/local-network.cap.js';
73
73
  export { lockControlCapability } from '../capabilities/lock-control.cap.js';
74
+ export { logChannelsCapability } from '../capabilities/log-channels.cap.js';
74
75
  export { logDestinationCapability } from '../capabilities/log-destination.cap.js';
75
76
  export { loginMethodCapability } from '../capabilities/login-method.cap.js';
76
77
  export { mediaPlayerCapability } from '../capabilities/media-player.cap.js';
@@ -221,6 +222,7 @@ export declare const CAPABILITY_NAMES: {
221
222
  readonly llmRuntime: "llm-runtime";
222
223
  readonly localNetwork: "local-network";
223
224
  readonly lockControl: "lock-control";
225
+ readonly logChannels: "log-channels";
224
226
  readonly logDestination: "log-destination";
225
227
  readonly loginMethod: "login-method";
226
228
  readonly mediaPlayer: "media-player";
@@ -384,6 +386,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
384
386
  readonly llmRuntime: TRouter;
385
387
  readonly localNetwork: TRouter;
386
388
  readonly lockControl: TRouter;
389
+ readonly logChannels: TRouter;
387
390
  readonly logDestination: TRouter;
388
391
  readonly loginMethod: TRouter;
389
392
  readonly mediaPlayer: TRouter;
@@ -465,8 +468,8 @@ export interface CapabilityRouterMap<TRouter = unknown> {
465
468
  export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "air-quality-sensor", "alarm-panel", "alerts", "ambient-light-sensor", "audio-analysis", "audio-analyzer", "audio-codec", "audio-metrics", "automation-control", "backup", "battery", "binary", "brightness", "button", "camera-credentials", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "core-blocks", "cover", "day-night", "decoder", "detection-pipeline", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "events", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "integrations", "intercom", "lawn-mower-control", "llm-runtime", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "network-quality", "nodes", "notification-rules", "notifier", "numeric-sensor", "osd", "osd-manager", "pet-feeder", "pipeline-analytics", "pipeline-executor", "pipeline-orchestrator", "pipeline-runner", "plate-gallery", "platform-probe", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "reboot", "recording", "recording-export", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "storage-migration", "stream-broker", "stream-catalog", "stream-params", "switch", "system", "tamper", "temperature-sensor", "terminal-session", "toast", "update", "user-management", "vacuum-control", "valve", "vector-store", "vibration", "videoclips", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
466
469
  /** Union of singleton capability names (literal string union). */
467
470
  export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
468
- /** Capability names whose mode is `collection` (24 caps). */
469
- export declare const COLLECTION_CAPABILITY_NAMES: readonly ["addon-pages-source", "addon-routes", "addon-widgets-source", "auth-provider", "broker", "connection-test", "custom-model-registry", "data-store-provider", "device-export", "device-provider", "embedding-encoder", "llm", "log-destination", "login-method", "mesh-network", "mqtt-broker", "network-access", "notification-output", "oauth-integration", "smtp-provider", "storage-evictable", "storage-provider", "turn-provider", "user-passkeys"];
471
+ /** Capability names whose mode is `collection` (25 caps). */
472
+ export declare const COLLECTION_CAPABILITY_NAMES: readonly ["addon-pages-source", "addon-routes", "addon-widgets-source", "auth-provider", "broker", "connection-test", "custom-model-registry", "data-store-provider", "device-export", "device-provider", "embedding-encoder", "llm", "log-channels", "log-destination", "login-method", "mesh-network", "mqtt-broker", "network-access", "notification-output", "oauth-integration", "smtp-provider", "storage-evictable", "storage-provider", "turn-provider", "user-passkeys"];
470
473
  /** Union of collection capability names (literal string union). */
471
474
  export type CollectionCapabilityName = typeof COLLECTION_CAPABILITY_NAMES[number];
472
475
  /** Capability mode lookup at runtime — mirrors the `.cap.ts` definitions. */
@@ -8,7 +8,7 @@
8
8
  * barrel (`ALL_CAPABILITY_DEFINITIONS`), which would cost ~144MB RSS per
9
9
  * forked runner. See docs/decisions/adr-0028.md.
10
10
  *
11
- * Coverage: 17 collection caps, 30 array methods.
11
+ * Coverage: 18 collection caps, 31 array methods.
12
12
  */
13
13
  export declare const COLLECTION_ARRAY_METHODS: Readonly<Record<string, readonly string[]>>;
14
14
  /**
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 966 method paths across 123 capabilities.
9
+ * Coverage: 971 method paths across 124 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -6,8 +6,8 @@
6
6
  * system-scope cap that takes a deviceId was previously never device-filtered
7
7
  * — see the generator header).
8
8
  *
9
- * Coverage: 344 methods carry a device reference, of which
10
- * 128 are on SYSTEM-scope caps.
9
+ * Coverage: 345 methods carry a device reference, of which
10
+ * 129 are on SYSTEM-scope caps.
11
11
  *
12
12
  * Top-level fields, number arrays, and one-level arrays of objects carrying
13
13
  * a numeric device field (targets[].deviceId) are all mapped; the matcher
@@ -68,7 +68,7 @@ export interface SystemProxy {
68
68
  readonly decoder: Pick<InferProvider<typeof decoderCapability>, 'supportsCodec' | 'getInfo' | 'createSession' | 'destroySession' | 'pushPacket' | 'openStream' | 'pullFrames' | 'pullHandles' | 'getFrame' | 'getShmStats' | 'updateConfig' | 'getStats' | 'listActiveSessions' | 'reprobeHwaccel'>;
69
69
  readonly deviceAdoption: Pick<InferProvider<typeof deviceAdoptionCapability>, 'listCandidateFilters' | 'listCandidates' | 'getCandidate' | 'refresh' | 'adopt' | 'release' | 'resync'>;
70
70
  readonly deviceExport: Pick<InferProvider<typeof deviceExportCapability>, 'getStatus' | 'listSupportedDeviceKinds' | 'listExposedDevices' | 'exposeDevice' | 'unexposeDevice'>;
71
- readonly deviceManager: Pick<InferProvider<typeof deviceManagerCapability>, 'allocateDeviceId' | 'registerDevice' | 'removeDevice' | 'persistConfig' | 'getRoleDisplayDefaults' | 'setRoleDisplayDefaults' | 'listLocations' | 'addLocation' | 'removeLocation' | 'listPersistedByAddon' | 'listAll' | 'getChildren' | 'getLinkedDevicesBatch' | 'removeByIntegration' | 'getBindingsBatch' | 'getAllBindings' | 'listWrappersForCap' | 'listBindableCapsForDeviceType' | 'discoverDevices' | 'adoptDevice' | 'getCreationSchema' | 'createDevice' | 'testCreationField' | 'adoptionListCandidateFilters' | 'adoptionListCandidates' | 'adoptionRefresh' | 'adoptionAdopt' | 'adoptionRelease' | 'adoptionStartJob' | 'adoptionListJobs' | 'adoptionCancelJob' | 'adoptionResync' | 'discoveryProviders' | 'discoverAllProviders' | 'discoverProvider' | 'providerCreationType' | 'providerDiscoveryParamsSchema' | 'getDeviceStatusAggregateBatch'>;
71
+ readonly deviceManager: Pick<InferProvider<typeof deviceManagerCapability>, 'allocateDeviceId' | 'registerDevice' | 'removeDevice' | 'persistConfig' | 'getRoleDisplayDefaults' | 'setRoleDisplayDefaults' | 'listLocations' | 'addLocation' | 'removeLocation' | 'listPersistedByAddon' | 'listAll' | 'getChildren' | 'getChildrenBatch' | 'getLinkedDevicesBatch' | 'removeByIntegration' | 'getBindingsBatch' | 'getAllBindings' | 'listWrappersForCap' | 'listBindableCapsForDeviceType' | 'discoverDevices' | 'adoptDevice' | 'getCreationSchema' | 'createDevice' | 'testCreationField' | 'adoptionListCandidateFilters' | 'adoptionListCandidates' | 'adoptionRefresh' | 'adoptionAdopt' | 'adoptionRelease' | 'adoptionStartJob' | 'adoptionListJobs' | 'adoptionCancelJob' | 'adoptionResync' | 'discoveryProviders' | 'discoverAllProviders' | 'discoverProvider' | 'providerCreationType' | 'providerDiscoveryParamsSchema' | 'getDeviceStatusAggregateBatch'>;
72
72
  readonly deviceProvider: Pick<InferProvider<typeof deviceProviderCapability>, 'start' | 'stop' | 'getStatus' | 'getDevices' | 'supportsDiscovery' | 'discoverDevices' | 'getDiscoveryParamsSchema' | 'getManualCreationType' | 'adoptDiscoveredDevice' | 'supportsManualCreation' | 'getChildCreationSchema' | 'createDevice' | 'testCreationField'>;
73
73
  readonly deviceState: Pick<InferProvider<typeof deviceStateCapability>, 'getAllSnapshots'>;
74
74
  readonly faceGallery: Pick<InferProvider<typeof faceGalleryCapability>, 'listIdentities' | 'createIdentity' | 'renameIdentity' | 'deleteIdentity' | 'listIdentitySamples' | 'removeSample' | 'getFaceMedia' | 'assignFace' | 'unassignFace' | 'deleteFace' | 'assignFaces' | 'unassignFaces' | 'suggestFaceClusters'>;
@@ -90,7 +90,7 @@ export interface SystemProxy {
90
90
  readonly recording: Pick<InferProvider<typeof recordingCapability>, 'getStorageUsage' | 'listOpsLog' | 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'refreshStorageLocationsForMigration' | 'startStorageMigrationMove' | 'getStorageMigrationMoveStatus' | 'cancelStorageMigrationMove' | 'relocateFootage' | 'listRelocateJobs' | 'cancelRelocateJob' | 'planStorageRebalance' | 'startStorageRebalance'>;
91
91
  readonly recordingExport: Pick<InferProvider<typeof recordingExportCapability>, 'createExport' | 'getExport' | 'cancelExport' | 'deleteExport' | 'getDownloadUrl' | 'readExportBytes'>;
92
92
  readonly serverManagement: Pick<InferProvider<typeof serverManagementCapability>, 'getServerPackageStatus' | 'checkServerUpdate' | 'applyServerUpdate' | 'rollbackServerUpdate' | 'restartServer'>;
93
- readonly settingsStore: Pick<InferProvider<typeof settingsStoreCapability>, 'get' | 'set' | 'query' | 'insert' | 'update' | 'delete' | 'deleteWhere' | 'updateWhere' | 'count' | 'histogram' | 'isEmpty' | 'declareCollection'>;
93
+ readonly settingsStore: Pick<InferProvider<typeof settingsStoreCapability>, 'get' | 'set' | 'query' | 'insert' | 'update' | 'delete' | 'deleteWhere' | 'updateWhere' | 'count' | 'aggregate' | 'histogram' | 'isEmpty' | 'declareCollection'>;
94
94
  readonly storage: Pick<InferProvider<typeof storageCapability>, 'resolve' | 'write' | 'read' | 'exists' | 'list' | 'delete' | 'getAvailableSpace' | 'beginUpload' | 'writeChunk' | 'finalizeUpload' | 'abortUpload' | 'beginDownload' | 'readChunk' | 'endDownload' | 'listLocations' | 'getDefaultLocation' | 'listLocationDeclarations' | 'upsertLocation' | 'deleteLocation' | 'testLocation' | 'listProviders' | 'testConfig'>;
95
95
  readonly storageMigration: Pick<InferProvider<typeof storageMigrationCapability>, 'plan' | 'start' | 'status' | 'cancel'>;
96
96
  readonly streamBroker: Pick<InferProvider<typeof streamBrokerCapability>, 'fetchEventMedia' | 'listAllCameraStreams' | 'listAllProfileSlots' | 'getBrokerStats' | 'probeStream' | 'listClients' | 'killClient' | 'getStreamUrl' | 'getStreamWithCodec' | 'releaseStreamWithCodec' | 'acquireEgressTranscode' | 'releaseEgressTranscode' | 'subscribeAudioChunks' | 'pullAudioChunks' | 'unsubscribeAudioChunks' | 'subscribeFrames' | 'pullFrameHandles' | 'unsubscribeFrames' | 'setPreBufferDuration' | 'getPreBufferInfo' | 'getRtspPort' | 'getAllRtspEntries' | 'getRtspEntry' | 'regenerateRtspToken' | 'setRtspEnabled' | 'isRtspEnabled'>;