@camstack/types 1.2.413 → 1.2.415

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.
Files changed (62) hide show
  1. package/dist/addon.js +4 -1798
  2. package/dist/addon.mjs +2 -1796
  3. package/dist/capabilities/camera-grid-layout.cap.d.ts +1 -1
  4. package/dist/capabilities/device-history.cap.d.ts +1 -1
  5. package/dist/capabilities/device-manager.cap.d.ts +2 -2
  6. package/dist/capabilities/notification-rules.cap.d.ts +2 -2
  7. package/dist/capabilities/osd-manager.cap.d.ts +1 -1
  8. package/dist/capabilities/pipeline-analytics.cap.d.ts +1 -1
  9. package/dist/capabilities/pipeline-runner.cap.d.ts +1 -1
  10. package/dist/capabilities/ptz.cap.d.ts +3 -3
  11. package/dist/capabilities/recording-export.cap.d.ts +1 -1
  12. package/dist/capabilities/scene-monitor.cap.d.ts +1 -1
  13. package/dist/capabilities/stream-signals.cap.d.ts +1 -1
  14. package/dist/capabilities/videoclips.cap.d.ts +2 -2
  15. package/dist/capabilities/viewer-ui.cap.d.ts +1 -1
  16. package/dist/catalogs/index.d.ts +1 -1
  17. package/dist/catalogs/{frigate-plus-classmap.d.ts → plus-catalog-classmap.d.ts} +25 -25
  18. package/dist/catalogs/root-model-supply.d.ts +3 -3
  19. package/dist/client.js +22 -22
  20. package/dist/client.mjs +22 -22
  21. package/dist/composition/cards/__fixtures__/stored-compositions.d.ts +2 -2
  22. package/dist/composition/customize/__fixtures__/refs.d.ts +1 -1
  23. package/dist/{composition-CSLSFGTO.js → composition-DsmkwP9-.js} +1 -1
  24. package/dist/{composition-BJ8iAZb3.mjs → composition-kEl9mevu.mjs} +1 -1
  25. package/dist/device/base-device-provider.d.ts +1 -1
  26. package/dist/device/device-state-handle.d.ts +1 -1
  27. package/dist/device/location-icon.d.ts +1 -1
  28. package/dist/device/site-zone.d.ts +2 -2
  29. package/dist/enums/event-category.d.ts +1 -1
  30. package/dist/enums.js +1 -1
  31. package/dist/enums.mjs +1 -1
  32. package/dist/{event-category-Ceif8n-v.mjs → event-category-DHXxB8t9.mjs} +1 -1
  33. package/dist/{event-category-DG6Vir8Z.js → event-category-DXZ3f9Q5.js} +1 -1
  34. package/dist/ffmpeg/fmp4-fragment-plane.d.ts +1 -1
  35. package/dist/ffmpeg/gif-derive.d.ts +1 -1
  36. package/dist/ffmpeg/process.d.ts +1 -1
  37. package/dist/generated/addon-cap-facts.d.ts +2 -0
  38. package/dist/geometry/subject-path.d.ts +1 -1
  39. package/dist/index.d.ts +1 -1
  40. package/dist/index.js +1516 -1516
  41. package/dist/index.mjs +1510 -1510
  42. package/dist/interfaces/addon-peer-bytes.d.ts +1 -1
  43. package/dist/interfaces/agent.d.ts +1 -1
  44. package/dist/interfaces/birth-decision-ledger.d.ts +1 -1
  45. package/dist/interfaces/debug-note-archive.d.ts +1 -1
  46. package/dist/interfaces/inference-engine.d.ts +1 -1
  47. package/dist/interfaces/logging.d.ts +1 -1
  48. package/dist/metrics/failure-counters.d.ts +2 -2
  49. package/dist/node.js +2 -2
  50. package/dist/node.mjs +2 -2
  51. package/dist/notification/timelapse-rule.d.ts +1 -1
  52. package/dist/pipeline/root-face-crop.d.ts +1 -1
  53. package/dist/pipeline/second-pass/motion-crop-plan.d.ts +1 -1
  54. package/dist/pipeline/second-pass/small-subject-recovery.d.ts +4 -4
  55. package/dist/process/child-cost-registry.d.ts +1 -1
  56. package/dist/{sleep-CYfIZzGv.mjs → sleep-BErAxhul.mjs} +1982 -4
  57. package/dist/{sleep-UP964hNP.js → sleep-BPQ2ZyaI.js} +1999 -3
  58. package/dist/types/detection.d.ts +2 -2
  59. package/dist/types/models.d.ts +3 -3
  60. package/dist/types/overlay-layer.d.ts +1 -1
  61. package/dist/utils/addon-id.d.ts +1 -1
  62. package/package.json +1 -1
@@ -46,7 +46,7 @@
46
46
  * is preserved by leaving it alone rather than by widening it.
47
47
  *
48
48
  * **Same host only, refused by name across a node boundary.** The listener
49
- * binds loopback, so a ticket minted on `little-unraid` names a URL that means
49
+ * binds loopback, so a ticket minted on `agent-a` names a URL that means
50
50
  * something else entirely on the hub. Every ticket therefore carries the
51
51
  * {@link PeerBytesTicket.hostNodeId} it was minted on, and
52
52
  * {@link AddonPeerBytes.open} refuses `cross-node` when that is not this
@@ -114,7 +114,7 @@ export interface HubHealthAgentCounts {
114
114
  /**
115
115
  * Node ids of the offline agents. Optional (added later) — consumers
116
116
  * must tolerate absence on older hubs. Lets health surfaces name the
117
- * degraded node ("node little-unraid not responding") instead of
117
+ * degraded node ("node agent-a not responding") instead of
118
118
  * only counting it.
119
119
  */
120
120
  readonly offlineIds?: readonly string[];
@@ -26,7 +26,7 @@
26
26
  * ── Why a TABLE and not a log line ─────────────────────────────────────────
27
27
  * `logs.query` is an in-memory ring. Measured on the live hub on 2026-09-08 it
28
28
  * held 40 000 entries covering 38 minutes — the whole ring is under an hour of
29
- * fleet traffic. Every question this data is for ("how often, on camera 617,
29
+ * fleet traffic. Every question this data is for ("how often, on camera 102,
30
30
  * over the week the operator complained about") outlives that ring by two
31
31
  * orders of magnitude, and a previous investigation in this repo was blocked
32
32
  * for precisely this reason. The gate ALREADY writes a log line per decision
@@ -35,7 +35,7 @@ import { z } from 'zod';
35
35
  * - A per-device bound multiplies by the fleet — 30 cameras at 500 each is
36
36
  * 15 000 rows to protect a corpus that only ever gets read fleet-wide (the
37
37
  * thing being mined is "what keeps going wrong", not "what goes wrong on
38
- * 617"). One global ceiling is one number to reason about.
38
+ * 102"). One global ceiling is one number to reason about.
39
39
  * - An AGE bound would delete the corpus for being old, which is the failure
40
40
  * being fixed: a note from six months ago is the most valuable row in the
41
41
  * table precisely because the pattern it describes has had time to repeat.
@@ -28,7 +28,7 @@ interface InferenceInputCommon {
28
28
  * A `SharedInferencePool` serves every camera on its
29
29
  * `(node, runtime, device)`, so its `inference request timed out` and
30
30
  * `worker saturated` lines could describe the pool and nothing else — and
31
- * "why is 617 worse than 615?" is the question those lines always get asked.
31
+ * "why is 102 worse than 101?" is the question those lines always get asked.
32
32
  *
33
33
  * Omitted by callers with no camera (commands, model loads, the benchmark);
34
34
  * the failure line then carries no `deviceId` tag rather than a fabricated
@@ -39,7 +39,7 @@ export interface LogTags {
39
39
  * device-manager.
40
40
  */
41
41
  readonly deviceId?: number;
42
- /** Human-readable device name (e.g., 'Salone') */
42
+ /** Human-readable device name (e.g., 'Hall') */
43
43
  readonly deviceName?: string;
44
44
  /** Integration ID (e.g., 'int_0001') */
45
45
  readonly integrationId?: string;
@@ -22,8 +22,8 @@
22
22
  *
23
23
  * The key is the numeric `deviceId` — the same value every log line in this
24
24
  * repo carries as `tags.deviceId`. There is no fleet-total mode and no
25
- * device-less bucket, because the question is always "why is 617 worse than
26
- * 615?" and a fleet total cannot answer it. A caller that cannot name the
25
+ * device-less bucket, because the question is always "why is 102 worse than
26
+ * 101?" and a fleet total cannot answer it. A caller that cannot name the
27
27
  * camera must not note anything: an unnamed per-camera count is
28
28
  * indistinguishable from a shared one, which is how one camera's failures
29
29
  * quietly become everybody's.
package/dist/node.js CHANGED
@@ -21,7 +21,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
21
21
  enumerable: true
22
22
  }) : target, mod));
23
23
  //#endregion
24
- const require_composition = require("./composition-CSLSFGTO.js");
24
+ const require_composition = require("./composition-DsmkwP9-.js");
25
25
  const require_err_msg = require("./err-msg-BhVbr0NX.js");
26
26
  let node_crypto = require("node:crypto");
27
27
  let node_fs = require("node:fs");
@@ -2049,7 +2049,7 @@ function pinnedFfmpegSpawner(seam, ffmpegBinaryPath, options) {
2049
2049
  * ## Where a claim is made, and where it is released
2050
2050
  *
2051
2051
  * At the spawn site, and nowhere else. It is the only place that knows both
2052
- * halves: the recorder's controller knows it is starting ffmpeg for camera 615
2052
+ * halves: the recorder's controller knows it is starting ffmpeg for camera 101
2053
2053
  * profile `high`; the decode coordinator knows the session it is forking a
2054
2054
  * worker for. Nothing has to deduce it afterwards, and no entity needs a
2055
2055
  * global list of which pid belongs to which camera.
package/dist/node.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { At as Fmp4BoxSplitter, Ct as FFMPEG_PATH_ENV, Dt as getFfmpegArtifact, Et as FFMPEG_RELEASE, Ot as getFfmpegDownloadUrl, P as compositionSourceKey, Pt as buildFfmpegArgs, Rt as isSoftwareDecode, Tt as ffmpegBinaryName, a as CUSTOMIZATION_BLOCK_NAME_PREFIX, kt as canonicalHash, wt as chooseFfmpegBinary } from "./composition-BJ8iAZb3.mjs";
1
+ import { At as Fmp4BoxSplitter, Ct as FFMPEG_PATH_ENV, Dt as getFfmpegArtifact, Et as FFMPEG_RELEASE, Ot as getFfmpegDownloadUrl, P as compositionSourceKey, Pt as buildFfmpegArgs, Rt as isSoftwareDecode, Tt as ffmpegBinaryName, a as CUSTOMIZATION_BLOCK_NAME_PREFIX, kt as canonicalHash, wt as chooseFfmpegBinary } from "./composition-kEl9mevu.mjs";
2
2
  import { t as errMsg } from "./err-msg-BXKzRBwg.mjs";
3
3
  import { createHash, createHmac, randomUUID, timingSafeEqual } from "node:crypto";
4
4
  import * as fs from "node:fs";
@@ -2026,7 +2026,7 @@ function pinnedFfmpegSpawner(seam, ffmpegBinaryPath, options) {
2026
2026
  * ## Where a claim is made, and where it is released
2027
2027
  *
2028
2028
  * At the spawn site, and nowhere else. It is the only place that knows both
2029
- * halves: the recorder's controller knows it is starting ffmpeg for camera 615
2029
+ * halves: the recorder's controller knows it is starting ffmpeg for camera 101
2030
2030
  * profile `high`; the decode coordinator knows the session it is forking a
2031
2031
  * worker for. Nothing has to deduce it afterwards, and no entity needs a
2032
2032
  * global list of which pid belongs to which camera.
@@ -100,7 +100,7 @@ export type TimelapseRuleInput = z.infer<typeof TimelapseRuleInputSchema>;
100
100
  * The caption a rule that never set one gets.
101
101
  *
102
102
  * Rendered through the ordinary `{{var}}` pass at delivery, so a rule created
103
- * before this field existed still reads "Timelapse Videocamera ingresso" and
103
+ * before this field existed still reads "Timelapse Camera front door" and
104
104
  * not the literal braces.
105
105
  */
106
106
  export declare const DEFAULT_TIMELAPSE_PREVIEW_TEXT = "Timelapse {{camera}}";
@@ -2,7 +2,7 @@
2
2
  * The ONE face-scoped crop of a root-supplied face (D731): the rectangle a
3
3
  * root model's `face` box is refined in before it can be recognised.
4
4
  *
5
- * A root face box (a Frigate+ `face`) carries no landmarks, and an unaligned
5
+ * A root face box (a plus catalog `face`) carries no landmarks, and an unaligned
6
6
  * crop must never reach the face embedder (D52: one vector index, one crop
7
7
  * derivation — and the face gallery's derivation is the landmark alignment).
8
8
  * So the box is only a LOCATION: a square around it is cut from the frame's
@@ -8,7 +8,7 @@
8
8
  * mostly NOT accounted for by a full-frame box. That rule was built to find a
9
9
  * subject standing NEXT TO one the detector already sees, and it works.
10
10
  *
11
- * The measurement says the cheaper question is the better one. On camera 615,
11
+ * The measurement says the cheaper question is the better one. On camera 101,
12
12
  * against the production detector (`yolov9m-320-int8`, python+openvino) on the
13
13
  * node that runs that camera, over 38 visually confirmed positive frames from
14
14
  * six real animal pass-bys: full-frame recall at our animal floor **24%**,
@@ -6,13 +6,13 @@
6
6
  *
7
7
  * The first-level detector sees the frame at its input size (320 px on every
8
8
  * hardware-aware default). A 4K frame is reduced 12×: a dog measured at
9
- * 89–277 px in the source is 7–38 px for the model and is not emitted. Camera 615, six
9
+ * 89–277 px in the source is 7–38 px for the model and is not emitted. Camera 101, six
10
10
  * instants with a dog in the scene, five with no `animal` detection at all —
11
11
  * nothing downstream (tracker, gate, notifications) ever saw a subject. The
12
12
  * confirmation gate, which re-runs the same detector on a 320 px native crop
13
13
  * of the PERSON, found the dog at 0.74–0.91 as `bestIncompatibleClass`. The
14
14
  * measurement that decided the constants below is
15
- * `docs/benchmarks/pipeline-frame-model-eval.md`, case `miss-dog-615`: a
15
+ * `docs/benchmarks/pipeline-frame-model-eval.md`, case `miss-dog-101`: a
16
16
  * 640–800 px native square around the moving region brings the dog to
17
17
  * 0.82–0.91 with the SAME 320 model; a 1280 px square loses it again.
18
18
  *
@@ -28,7 +28,7 @@
28
28
  * ## When it runs — NOT only when the frame is empty
29
29
  *
30
30
  * The trigger is an UNCOVERED MOTION REGION, deliberately broader than "the
31
- * full-frame pass found nothing". Camera 615, 2026-09-06 19:54:33 local: the
31
+ * full-frame pass found nothing". Camera 101, 2026-09-06 19:54:33 local: the
32
32
  * gate DID confirm an `animal` birth (bestScore 0.8983) — and the track held
33
33
  * 9 positions over 1 666 ms, then coasted out its `maxMissedMs` (4 000 ms) and
34
34
  * died at 19:54:39, before the dog reached the Aiuola zone. Both of its object
@@ -183,7 +183,7 @@ export interface RecoverySkipCounts {
183
183
  * The pass report counts the passes that RAN, so "the second pass stops running
184
184
  * when a person is beside the dog" — a plausible reading of
185
185
  * {@link RECOVERY_MAX_REGION_FRAME_FRACTION} and
186
- * {@link RECOVERY_MIN_UNCOVERED_FRACTION}, and a live hypothesis on camera 615
186
+ * {@link RECOVERY_MIN_UNCOVERED_FRACTION}, and a live hypothesis on camera 101
187
187
  * — could not be confirmed or killed from the logs at all. This classifies the
188
188
  * regions a frame offered, against the same predicate the planner filters on.
189
189
  */
@@ -9,7 +9,7 @@ export interface ChildCostClaimInput {
9
9
  * and would turn one camera's cost into everybody's.
10
10
  */
11
11
  readonly deviceId: number | null;
12
- /** What this one child is, in the contributor's own words: `615/high`. */
12
+ /** What this one child is, in the contributor's own words: `101/high`. */
13
13
  readonly unit: string;
14
14
  /**
15
15
  * Defaults to `measured` — the ordinary case for a child that serves exactly