@camstack/addon-notifiers 1.2.36 → 1.2.37

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/dist/addon.js CHANGED
@@ -26300,17 +26300,60 @@ var SetSiteLocationInputSchema = object({
26300
26300
  longitude: number().min(-180).max(180)
26301
26301
  }).nullable();
26302
26302
  /**
26303
- * One `(procedure, user-agent, ip, principal)` tuple of the HTTP request
26303
+ * The TRANSPORT a call arrived on.
26304
+ *
26305
+ * Every counted call carries exactly one of these, and `unknown` is a PLANE
26306
+ * rather than a gap: a plane that cannot attribute a call declares it here, so
26307
+ * the call lands in a named bucket instead of vanishing. `planes` summing to
26308
+ * `procedureCalls` is what makes "the sum of the planes explains the total"
26309
+ * checkable rather than asserted.
26310
+ *
26311
+ * - `http` — the Fastify tRPC plugin (`/trpc/*`), one context per request.
26312
+ * - `ws` — `applyWSSHandler`, counted per OPERATION rather than per
26313
+ * connection; the viewer talks to the hub over `wsLink`
26314
+ * exclusively, so this is the plane the HTTP census could not see.
26315
+ * - `mesh` — the in-process `$core-caps` bridge (`createCaller`), which
26316
+ * never touches a socket and therefore never touched a census.
26317
+ * - `unknown` — counted, plane undecidable. No hook produces it today, and
26318
+ * that is exactly what its `0` asserts: every plane the hub has can name
26319
+ * itself. It is an output bucket, never a knob — a call that arrives on a
26320
+ * plane nobody instrumented lands here instead of vanishing from the total.
26321
+ */
26322
+ var TransportPlaneSchema = _enum([
26323
+ "http",
26324
+ "ws",
26325
+ "mesh",
26326
+ "unknown"
26327
+ ]);
26328
+ /**
26329
+ * Calls per plane. Every key is always present, `0` included — an absent plane
26330
+ * reads as "not instrumented", which is the one thing this census must never
26331
+ * make an operator wonder about.
26332
+ */
26333
+ var TransportPlaneCountsSchema = object({
26334
+ http: number(),
26335
+ ws: number(),
26336
+ mesh: number(),
26337
+ unknown: number()
26338
+ });
26339
+ /**
26340
+ * One `(plane, procedure, user-agent, ip, principal)` tuple of the transport
26304
26341
  * census. `principal` is the DERIVED identity (`apocaliss92 (admin)`,
26305
26342
  * `scoped:1a2b3c4d (scoped-token)`, `anonymous`) that the tRPC error log
26306
26343
  * already prints - never a token, never an `Authorization` header.
26344
+ *
26345
+ * `subscriptions` is counted APART from `calls`: a subscription is opened once
26346
+ * and lives for hours, so folding it into a call count makes one long-lived
26347
+ * stream look like a storm.
26307
26348
  */
26308
26349
  var RequestCensusGroupSchema = object({
26350
+ plane: TransportPlaneSchema,
26309
26351
  procedure: string(),
26310
26352
  userAgent: string(),
26311
26353
  ip: string(),
26312
26354
  principal: string(),
26313
26355
  calls: number(),
26356
+ subscriptions: number(),
26314
26357
  perMin: number()
26315
26358
  });
26316
26359
  /**
@@ -26323,6 +26366,14 @@ var RequestCensusGroupSchema = object({
26323
26366
  var RequestCensusProcedureSchema = object({
26324
26367
  procedure: string(),
26325
26368
  calls: number(),
26369
+ /**
26370
+ * The same total, split by transport. THIS is the row that answers the
26371
+ * question the census exists for: one look at `deviceManager.listAll` says
26372
+ * which plane carried the 4 960, without joining two log lines by eye.
26373
+ */
26374
+ planes: TransportPlaneCountsSchema,
26375
+ /** Subscription STARTS on this procedure. Never folded into `calls`. */
26376
+ subscriptions: number(),
26326
26377
  perMin: number()
26327
26378
  });
26328
26379
  /**
@@ -26350,14 +26401,45 @@ var RequestCensusStatusSchema = object({
26350
26401
  */
26351
26402
  procedureCalls: number(),
26352
26403
  /**
26404
+ * `procedureCalls` split by transport. The four keys sum to
26405
+ * `procedureCalls` by construction - {@link RequestCensusSnapshotSchema}'s
26406
+ * `planesExplainTotal` is that identity, checked rather than assumed.
26407
+ */
26408
+ planes: TransportPlaneCountsSchema,
26409
+ /**
26410
+ * True iff `planes` sums to `procedureCalls`. False means a call was counted
26411
+ * on no plane at all - which is a RESULT (a plane is missing from the
26412
+ * instrument), not a failure, and it has to be visible to be read as one.
26413
+ */
26414
+ planesExplainTotal: boolean(),
26415
+ /**
26353
26416
  * tRPC WebSocket connections opened during the window. NOT calls - the WS
26354
- * transport resolves one context per connection - but the number that says
26355
- * whether a plane this census cannot see was busy while HTTP was quiet.
26417
+ * adapter resolves one context per connection - kept because a plane's call
26418
+ * count of zero against 37 open connections says something different from a
26419
+ * plane with no connections at all.
26356
26420
  */
26357
26421
  wsConnections: number(),
26422
+ /**
26423
+ * Client frames the WS plane looked at. `wsMessages` far above
26424
+ * `planes.ws + subscriptions` means most traffic is not operations
26425
+ * (keepalives, connection params) - which is itself an answer.
26426
+ */
26427
+ wsMessages: number(),
26428
+ /**
26429
+ * Subscription STARTS across every plane, excluded from `procedureCalls` on
26430
+ * purpose: one live-events stream opened at boot and held for six hours is
26431
+ * one subscription, and counting it as a call would let a quiet plane
26432
+ * masquerade as the storm.
26433
+ */
26434
+ subscriptions: number(),
26435
+ /** `subscription.stop` frames. Starts minus stops is what is still open. */
26436
+ subscriptionStops: number(),
26358
26437
  distinctGroups: number(),
26359
- /** Calls counted in the totals whose group attribution was shed at the
26360
- * cardinality bound. */
26438
+ /**
26439
+ * Operations counted in the totals whose CALLER attribution was shed at the
26440
+ * cardinality bound. Unrelated to the `unknown` PLANE: these calls know
26441
+ * which transport they arrived on, they just lost their group row.
26442
+ */
26361
26443
  unattributedCalls: number(),
26362
26444
  procedures: array(RequestCensusProcedureSchema).readonly(),
26363
26445
  groups: array(RequestCensusGroupSchema).readonly()
package/dist/addon.mjs CHANGED
@@ -26273,17 +26273,60 @@ var SetSiteLocationInputSchema = object({
26273
26273
  longitude: number().min(-180).max(180)
26274
26274
  }).nullable();
26275
26275
  /**
26276
- * One `(procedure, user-agent, ip, principal)` tuple of the HTTP request
26276
+ * The TRANSPORT a call arrived on.
26277
+ *
26278
+ * Every counted call carries exactly one of these, and `unknown` is a PLANE
26279
+ * rather than a gap: a plane that cannot attribute a call declares it here, so
26280
+ * the call lands in a named bucket instead of vanishing. `planes` summing to
26281
+ * `procedureCalls` is what makes "the sum of the planes explains the total"
26282
+ * checkable rather than asserted.
26283
+ *
26284
+ * - `http` — the Fastify tRPC plugin (`/trpc/*`), one context per request.
26285
+ * - `ws` — `applyWSSHandler`, counted per OPERATION rather than per
26286
+ * connection; the viewer talks to the hub over `wsLink`
26287
+ * exclusively, so this is the plane the HTTP census could not see.
26288
+ * - `mesh` — the in-process `$core-caps` bridge (`createCaller`), which
26289
+ * never touches a socket and therefore never touched a census.
26290
+ * - `unknown` — counted, plane undecidable. No hook produces it today, and
26291
+ * that is exactly what its `0` asserts: every plane the hub has can name
26292
+ * itself. It is an output bucket, never a knob — a call that arrives on a
26293
+ * plane nobody instrumented lands here instead of vanishing from the total.
26294
+ */
26295
+ var TransportPlaneSchema = _enum([
26296
+ "http",
26297
+ "ws",
26298
+ "mesh",
26299
+ "unknown"
26300
+ ]);
26301
+ /**
26302
+ * Calls per plane. Every key is always present, `0` included — an absent plane
26303
+ * reads as "not instrumented", which is the one thing this census must never
26304
+ * make an operator wonder about.
26305
+ */
26306
+ var TransportPlaneCountsSchema = object({
26307
+ http: number(),
26308
+ ws: number(),
26309
+ mesh: number(),
26310
+ unknown: number()
26311
+ });
26312
+ /**
26313
+ * One `(plane, procedure, user-agent, ip, principal)` tuple of the transport
26277
26314
  * census. `principal` is the DERIVED identity (`apocaliss92 (admin)`,
26278
26315
  * `scoped:1a2b3c4d (scoped-token)`, `anonymous`) that the tRPC error log
26279
26316
  * already prints - never a token, never an `Authorization` header.
26317
+ *
26318
+ * `subscriptions` is counted APART from `calls`: a subscription is opened once
26319
+ * and lives for hours, so folding it into a call count makes one long-lived
26320
+ * stream look like a storm.
26280
26321
  */
26281
26322
  var RequestCensusGroupSchema = object({
26323
+ plane: TransportPlaneSchema,
26282
26324
  procedure: string(),
26283
26325
  userAgent: string(),
26284
26326
  ip: string(),
26285
26327
  principal: string(),
26286
26328
  calls: number(),
26329
+ subscriptions: number(),
26287
26330
  perMin: number()
26288
26331
  });
26289
26332
  /**
@@ -26296,6 +26339,14 @@ var RequestCensusGroupSchema = object({
26296
26339
  var RequestCensusProcedureSchema = object({
26297
26340
  procedure: string(),
26298
26341
  calls: number(),
26342
+ /**
26343
+ * The same total, split by transport. THIS is the row that answers the
26344
+ * question the census exists for: one look at `deviceManager.listAll` says
26345
+ * which plane carried the 4 960, without joining two log lines by eye.
26346
+ */
26347
+ planes: TransportPlaneCountsSchema,
26348
+ /** Subscription STARTS on this procedure. Never folded into `calls`. */
26349
+ subscriptions: number(),
26299
26350
  perMin: number()
26300
26351
  });
26301
26352
  /**
@@ -26323,14 +26374,45 @@ var RequestCensusStatusSchema = object({
26323
26374
  */
26324
26375
  procedureCalls: number(),
26325
26376
  /**
26377
+ * `procedureCalls` split by transport. The four keys sum to
26378
+ * `procedureCalls` by construction - {@link RequestCensusSnapshotSchema}'s
26379
+ * `planesExplainTotal` is that identity, checked rather than assumed.
26380
+ */
26381
+ planes: TransportPlaneCountsSchema,
26382
+ /**
26383
+ * True iff `planes` sums to `procedureCalls`. False means a call was counted
26384
+ * on no plane at all - which is a RESULT (a plane is missing from the
26385
+ * instrument), not a failure, and it has to be visible to be read as one.
26386
+ */
26387
+ planesExplainTotal: boolean(),
26388
+ /**
26326
26389
  * tRPC WebSocket connections opened during the window. NOT calls - the WS
26327
- * transport resolves one context per connection - but the number that says
26328
- * whether a plane this census cannot see was busy while HTTP was quiet.
26390
+ * adapter resolves one context per connection - kept because a plane's call
26391
+ * count of zero against 37 open connections says something different from a
26392
+ * plane with no connections at all.
26329
26393
  */
26330
26394
  wsConnections: number(),
26395
+ /**
26396
+ * Client frames the WS plane looked at. `wsMessages` far above
26397
+ * `planes.ws + subscriptions` means most traffic is not operations
26398
+ * (keepalives, connection params) - which is itself an answer.
26399
+ */
26400
+ wsMessages: number(),
26401
+ /**
26402
+ * Subscription STARTS across every plane, excluded from `procedureCalls` on
26403
+ * purpose: one live-events stream opened at boot and held for six hours is
26404
+ * one subscription, and counting it as a call would let a quiet plane
26405
+ * masquerade as the storm.
26406
+ */
26407
+ subscriptions: number(),
26408
+ /** `subscription.stop` frames. Starts minus stops is what is still open. */
26409
+ subscriptionStops: number(),
26331
26410
  distinctGroups: number(),
26332
- /** Calls counted in the totals whose group attribution was shed at the
26333
- * cardinality bound. */
26411
+ /**
26412
+ * Operations counted in the totals whose CALLER attribution was shed at the
26413
+ * cardinality bound. Unrelated to the `unknown` PLANE: these calls know
26414
+ * which transport they arrived on, they just lost their group row.
26415
+ */
26334
26416
  unattributedCalls: number(),
26335
26417
  procedures: array(RequestCensusProcedureSchema).readonly(),
26336
26418
  groups: array(RequestCensusGroupSchema).readonly()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-notifiers",
3
- "version": "1.2.36",
3
+ "version": "1.2.37",
4
4
  "description": "System notifiers addon for CamStack — a `notification-output` collection provider hosting per-kind notifier adapters (ntfy, pushover, gotify, telegram, discord, webhook, zentik).",
5
5
  "keywords": [
6
6
  "camstack",