@camstack/system 1.2.482 → 1.2.483
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-runner.js +2 -2
- package/dist/addon-runner.mjs +2 -2
- package/dist/{agent-https-o3X-jkS7.js → agent-https-CHZpVx3I.js} +1 -1
- package/dist/{agent-https-doVPSeiy.mjs → agent-https-NP141VCW.mjs} +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- package/dist/builtins/alerts/alerts.addon.js +3 -3
- package/dist/builtins/alerts/alerts.addon.mjs +3 -3
- package/dist/builtins/alerts/device-label.d.ts +2 -2
- package/dist/builtins/autotrack/index.js +1 -1
- package/dist/builtins/autotrack/index.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
- package/dist/builtins/calendars/calendars.addon.js +1 -1
- package/dist/builtins/calendars/calendars.addon.mjs +1 -1
- package/dist/builtins/camera-grid/acquire-retry.d.ts +1 -1
- package/dist/builtins/camera-grid/addon.d.ts +2 -2
- package/dist/builtins/camera-grid/grid-profiles.d.ts +1 -1
- package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +1 -1
- package/dist/builtins/camera-grid/index.js +3 -3
- package/dist/builtins/camera-grid/index.mjs +3 -3
- package/dist/builtins/composer/composer.addon.js +4 -4
- package/dist/builtins/composer/composer.addon.mjs +4 -4
- package/dist/builtins/composer/existing-target.d.ts +1 -1
- package/dist/builtins/composer/own-field-reads.d.ts +1 -1
- package/dist/builtins/console-logging/index.js +2 -2
- package/dist/builtins/console-logging/index.mjs +2 -2
- package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
- package/dist/builtins/device-history/device-history.addon.js +2 -2
- package/dist/builtins/device-history/device-history.addon.mjs +2 -2
- package/dist/builtins/device-manager/device-aggregation.d.ts +1 -1
- package/dist/builtins/device-manager/device-bindings-store.d.ts +3 -3
- package/dist/builtins/device-manager/device-manager.addon.js +9 -9
- package/dist/builtins/device-manager/device-manager.addon.mjs +9 -9
- package/dist/builtins/device-manager/device-meta-types.d.ts +2 -2
- package/dist/builtins/device-manager/device-online-fallback.d.ts +1 -1
- package/dist/builtins/hub-forwarder/index.js +2 -2
- package/dist/builtins/hub-forwarder/index.mjs +2 -2
- package/dist/builtins/keychain/index.js +3 -3
- package/dist/builtins/keychain/index.mjs +3 -3
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/local-auth.addon.js +2 -2
- package/dist/builtins/local-auth/local-auth.addon.mjs +2 -2
- package/dist/builtins/local-network/local-network.addon.js +2 -2
- package/dist/builtins/local-network/local-network.addon.mjs +2 -2
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.d.ts +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +3 -3
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +3 -3
- package/dist/builtins/native-metrics/thread-cpu-sampler.d.ts +1 -1
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/index.mjs +1 -1
- package/dist/builtins/record-entries/index.js +1 -1
- package/dist/builtins/record-entries/index.mjs +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/snapshot/snapshot-fatigue.d.ts +1 -1
- package/dist/builtins/snapshot/snapshot-link-url.d.ts +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/filter-compiler.d.ts +1 -1
- package/dist/builtins/sqlite-storage/index.js +1 -1
- package/dist/builtins/sqlite-storage/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/prefix-range.d.ts +2 -2
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +2 -2
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +2 -2
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- package/dist/builtins/system-config/system-config.addon.js +3 -3
- package/dist/builtins/system-config/system-config.addon.mjs +280 -280
- package/dist/builtins/winston-logging/index.js +2 -2
- package/dist/builtins/winston-logging/index.mjs +2 -2
- package/dist/{composition-sources-BrDtOpfE.mjs → composition-sources-CC13wGKL.mjs} +1 -1
- package/dist/{composition-sources-BmhhDWIc.js → composition-sources-CQxrCexr.js} +1 -1
- package/dist/{constants-BVJrLycr.js → constants-Bt0NFXDm.js} +1 -1
- package/dist/{constants-xuLNi4a2.mjs → constants-DMB-ex5z.mjs} +1 -1
- package/dist/{device-ca-DgLZPn5R.js → device-ca-CSLMfr4Q.js} +1 -1
- package/dist/{device-ca-DKOZSFED.mjs → device-ca-HQKcvofS.mjs} +1 -1
- package/dist/{dist--v3KMKa1.js → dist-2gZWO597.js} +2215 -241
- package/dist/{dist-BIJXQo_j.mjs → dist-DvKEKSap.mjs} +2215 -241
- package/dist/file-host-worker.js +1 -1
- package/dist/file-host-worker.mjs +1 -1
- package/dist/{formatter-B7qW8bPJ.mjs → formatter-DkYZ4LXp.mjs} +1 -1
- package/dist/{formatter-DqAKDlvN.js → formatter-xbxeV4GD.js} +1 -1
- package/dist/{hub-mdns-ciao-C3NJsOvK.js → hub-mdns-ciao-Bs3cn9C1.js} +2 -2
- package/dist/{hub-mdns-ciao-DMFXIlMY.mjs → hub-mdns-ciao-CVf6mxIZ.mjs} +2 -2
- package/dist/index.js +12 -12
- package/dist/index.mjs +12 -12
- package/dist/kernel/addon-installer.d.ts +1 -1
- package/dist/kernel/heap-watch.d.ts +1 -1
- package/dist/kernel/moleculer/trpc-links.d.ts +1 -1
- package/dist/kernel/transport/socket-channel.d.ts +1 -1
- package/dist/logging/formatter.d.ts +1 -1
- package/dist/{restore-archive-DAEsvFY6.mjs → restore-archive-EFYeCdrG.mjs} +78 -78
- package/dist/{restore-archive-DpkdAuFf.js → restore-archive-_mgadWlk.js} +1 -1
- package/dist/{retention-DbunrLR4.mjs → retention-FFJW3-3P.mjs} +1 -1
- package/dist/{retention-C71dNCIh.js → retention-qugQGYuY.js} +1 -1
- package/dist/{wal-maintenance-CsGk4kYn.js → wal-maintenance-DbUC_wdC.js} +0 -0
- package/dist/{wal-maintenance-DYAJwPWu.mjs → wal-maintenance-TCW_esAc.mjs} +0 -0
- package/package.json +1 -1
package/dist/addon-runner.js
CHANGED
|
@@ -4448,7 +4448,7 @@ var SocketChannel = class {
|
|
|
4448
4448
|
* `res` frame, or the socket's `close` (which drains `pending`) — so a peer
|
|
4449
4449
|
* that receives the request and then neither answers nor closes leaves the
|
|
4450
4450
|
* caller pending forever. That is a wedged handler, or a half-open socket
|
|
4451
|
-
* after a child died without a clean teardown, and it is how camera
|
|
4451
|
+
* after a child died without a clean teardown, and it is how camera 101 spent
|
|
4452
4452
|
* 30+ minutes with every inference permit held by a call that was never
|
|
4453
4453
|
* coming back.
|
|
4454
4454
|
*/
|
|
@@ -8098,7 +8098,7 @@ var nodeCoralFs = {
|
|
|
8098
8098
|
/**
|
|
8099
8099
|
* Can libva initialise the VA driver on this node's render node? (D926)
|
|
8100
8100
|
*
|
|
8101
|
-
* Measured 2026-10-23 (intel-1.2.509, hub +
|
|
8101
|
+
* Measured 2026-10-23 (intel-1.2.509, hub + agent-a): Intel's iHD 25.2.4
|
|
8102
8102
|
* exports only `__vaDriverInit_1_22`, the container's Ubuntu libva 2.20 looks
|
|
8103
8103
|
* for `_1_20`, and `vaInitialize` failed — while the resolver kept offering
|
|
8104
8104
|
* `qsv, vaapi`. Every session tried, failed and fell back to software: 722
|
package/dist/addon-runner.mjs
CHANGED
|
@@ -4424,7 +4424,7 @@ var SocketChannel = class {
|
|
|
4424
4424
|
* `res` frame, or the socket's `close` (which drains `pending`) — so a peer
|
|
4425
4425
|
* that receives the request and then neither answers nor closes leaves the
|
|
4426
4426
|
* caller pending forever. That is a wedged handler, or a half-open socket
|
|
4427
|
-
* after a child died without a clean teardown, and it is how camera
|
|
4427
|
+
* after a child died without a clean teardown, and it is how camera 101 spent
|
|
4428
4428
|
* 30+ minutes with every inference permit held by a call that was never
|
|
4429
4429
|
* coming back.
|
|
4430
4430
|
*/
|
|
@@ -8074,7 +8074,7 @@ var nodeCoralFs = {
|
|
|
8074
8074
|
/**
|
|
8075
8075
|
* Can libva initialise the VA driver on this node's render node? (D926)
|
|
8076
8076
|
*
|
|
8077
|
-
* Measured 2026-10-23 (intel-1.2.509, hub +
|
|
8077
|
+
* Measured 2026-10-23 (intel-1.2.509, hub + agent-a): Intel's iHD 25.2.4
|
|
8078
8078
|
* exports only `__vaDriverInit_1_22`, the container's Ubuntu libva 2.20 looks
|
|
8079
8079
|
* for `_1_20`, and `vaInitialize` failed — while the resolver kept offering
|
|
8080
8080
|
* `qsv, vaapi`. Every session tried, failed and fell back to software: 722
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
2
|
-
const require_dist = require("./dist
|
|
2
|
+
const require_dist = require("./dist-2gZWO597.js");
|
|
3
3
|
const require_x509_es = require("./x509.es-WtnRNyYS.js");
|
|
4
4
|
let zod = require("zod");
|
|
5
5
|
let node_crypto = require("node:crypto");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ji as defineRecordKinds } from "./dist-
|
|
1
|
+
import { Ji as defineRecordKinds } from "./dist-DvKEKSap.mjs";
|
|
2
2
|
import { C as backdatedNotBefore, S as withUtcTimeEncoding, _ as NameConstraints, a as KeyUsageFlags, c as Pkcs10CertificateRequest, d as SubjectKeyIdentifierExtension, f as X509Certificate$1, g as GeneralSubtrees, h as GeneralSubtree, i as Extension, l as Pkcs10CertificateRequestGenerator, m as cryptoProvider, n as BasicConstraintsExtension, o as KeyUsagesExtension, p as X509CertificateGenerator, r as ExtendedKeyUsageExtension, s as PemConverter, t as AuthorityKeyIdentifierExtension, u as SubjectAlternativeNameExtension, v as GeneralName, x as AsnConvert } from "./x509.es-BRiJgOvu.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { X509Certificate, createHash, createPrivateKey, randomBytes, webcrypto } from "node:crypto";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist
|
|
6
|
+
const require_dist = require("../../dist-2gZWO597.js");
|
|
7
7
|
const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
|
|
8
8
|
let node_crypto = require("node:crypto");
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _t as addonPagesCapability, ka as EventCategory, ni as BaseAddon, ti as errMsg } from "../../dist-
|
|
1
|
+
import { _t as addonPagesCapability, ka as EventCategory, ni as BaseAddon, ti as errMsg } from "../../dist-DvKEKSap.mjs";
|
|
2
2
|
import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
|
|
3
3
|
import { createHash, randomUUID } from "node:crypto";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist
|
|
6
|
+
const require_dist = require("../../dist-2gZWO597.js");
|
|
7
7
|
const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
|
|
8
8
|
let node_crypto = require("node:crypto");
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ka as EventCategory, ni as BaseAddon, ti as errMsg, yt as addonWidgetsCapability } from "../../dist-
|
|
1
|
+
import { ka as EventCategory, ni as BaseAddon, ti as errMsg, yt as addonWidgetsCapability } from "../../dist-DvKEKSap.mjs";
|
|
2
2
|
import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
|
|
3
3
|
import { createHash, randomUUID } from "node:crypto";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist
|
|
6
|
+
const require_dist = require("../../dist-2gZWO597.js");
|
|
7
7
|
const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
|
|
8
8
|
//#region src/builtins/alerts/alert-episode-policy.ts
|
|
9
9
|
/**
|
|
@@ -76,8 +76,8 @@ function mergeEmitAlert(input) {
|
|
|
76
76
|
* Operator-facing device label for alert messages.
|
|
77
77
|
*
|
|
78
78
|
* Prefer a real name; fall back to `Camera <id>` only when nothing else is
|
|
79
|
-
* known. Never prefer the bare id when a name is present — "Camera
|
|
80
|
-
* next to a named "
|
|
79
|
+
* known. Never prefer the bare id when a name is present — "Camera 108"
|
|
80
|
+
* next to a named "Kitchen" is how the Recording-stopped alerts used to read.
|
|
81
81
|
*/
|
|
82
82
|
function deviceLabelFromEventData(data) {
|
|
83
83
|
const name = stringNonEmpty(data["name"]) ?? stringNonEmpty(data["deviceName"]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Gi as createEvent, Ji as defineRecordKinds, St as alertsCapability, bn as isAlertEpisodeSeverity, bt as alertEpisodeId, i as AlertSchema, ka as EventCategory, ni as BaseAddon, ti as errMsg, xt as alertEpisodePayload, yn as isAlertEpisodeOpen } from "../../dist-
|
|
1
|
+
import { Gi as createEvent, Ji as defineRecordKinds, St as alertsCapability, bn as isAlertEpisodeSeverity, bt as alertEpisodeId, i as AlertSchema, ka as EventCategory, ni as BaseAddon, ti as errMsg, xt as alertEpisodePayload, yn as isAlertEpisodeOpen } from "../../dist-DvKEKSap.mjs";
|
|
2
2
|
import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
|
|
3
3
|
//#region src/builtins/alerts/alert-episode-policy.ts
|
|
4
4
|
/**
|
|
@@ -71,8 +71,8 @@ function mergeEmitAlert(input) {
|
|
|
71
71
|
* Operator-facing device label for alert messages.
|
|
72
72
|
*
|
|
73
73
|
* Prefer a real name; fall back to `Camera <id>` only when nothing else is
|
|
74
|
-
* known. Never prefer the bare id when a name is present — "Camera
|
|
75
|
-
* next to a named "
|
|
74
|
+
* known. Never prefer the bare id when a name is present — "Camera 108"
|
|
75
|
+
* next to a named "Kitchen" is how the Recording-stopped alerts used to read.
|
|
76
76
|
*/
|
|
77
77
|
function deviceLabelFromEventData(data) {
|
|
78
78
|
const name = stringNonEmpty(data["name"]) ?? stringNonEmpty(data["deviceName"]);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Operator-facing device label for alert messages.
|
|
3
3
|
*
|
|
4
4
|
* Prefer a real name; fall back to `Camera <id>` only when nothing else is
|
|
5
|
-
* known. Never prefer the bare id when a name is present — "Camera
|
|
6
|
-
* next to a named "
|
|
5
|
+
* known. Never prefer the bare id when a name is present — "Camera 108"
|
|
6
|
+
* next to a named "Kitchen" is how the Recording-stopped alerts used to read.
|
|
7
7
|
*/
|
|
8
8
|
export declare function deviceLabelFromEventData(data: Readonly<Record<string, unknown>>): string;
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist
|
|
6
|
+
const require_dist = require("../../dist-2gZWO597.js");
|
|
7
7
|
//#region src/builtins/autotrack/autotrack-config.ts
|
|
8
8
|
var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
|
|
9
9
|
deadZoneFraction: .5,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Et as bareAddonId, I as FIRST_LEVEL_MACRO_CLASSES, ka as EventCategory, na as isEvent, ni as BaseAddon, rr as ptzAutotrackCapability, ti as errMsg } from "../../dist-
|
|
1
|
+
import { Et as bareAddonId, I as FIRST_LEVEL_MACRO_CLASSES, ka as EventCategory, na as isEvent, ni as BaseAddon, rr as ptzAutotrackCapability, ti as errMsg } from "../../dist-DvKEKSap.mjs";
|
|
2
2
|
//#region src/builtins/autotrack/autotrack-config.ts
|
|
3
3
|
var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
|
|
4
4
|
deadZoneFraction: .5,
|
|
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist
|
|
6
|
+
const require_dist = require("../../dist-2gZWO597.js");
|
|
7
7
|
const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
|
|
8
|
-
const require_restore_archive = require("../../restore-archive-
|
|
8
|
+
const require_restore_archive = require("../../restore-archive-_mgadWlk.js");
|
|
9
9
|
let node_crypto = require("node:crypto");
|
|
10
10
|
let node_fs_promises = require("node:fs/promises");
|
|
11
11
|
node_fs_promises = require_chunk.__toESM(node_fs_promises);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Or as storageOccupancyCapability, Tt as backupCapability, Vn as mayWriteToLocation, ka as EventCategory, ni as BaseAddon, ua as nodePin, wa as toNodeId } from "../../dist-
|
|
1
|
+
import { Or as storageOccupancyCapability, Tt as backupCapability, Vn as mayWriteToLocation, ka as EventCategory, ni as BaseAddon, ua as nodePin, wa as toNodeId } from "../../dist-DvKEKSap.mjs";
|
|
2
2
|
import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
|
|
3
|
-
import { _ as backupRecordStoresOf, a as BackupSnapshotRefusedError, d as ENCRYPTED_BACKUP_SUFFIX, f as generateBackupKeyPair, g as backupOrchestratorRecordKinds, i as BackupCancelledError, l as BackupKeyFormatError, m as parseBackupSecretKey, n as precheckRestoreKey, o as DEFAULT_BACKUP_DATABASES, p as parseBackupPublicKey, r as prepareRestoreArchive, s as SystemBackupService } from "../../restore-archive-
|
|
3
|
+
import { _ as backupRecordStoresOf, a as BackupSnapshotRefusedError, d as ENCRYPTED_BACKUP_SUFFIX, f as generateBackupKeyPair, g as backupOrchestratorRecordKinds, i as BackupCancelledError, l as BackupKeyFormatError, m as parseBackupSecretKey, n as precheckRestoreKey, o as DEFAULT_BACKUP_DATABASES, p as parseBackupPublicKey, r as prepareRestoreArchive, s as SystemBackupService } from "../../restore-archive-EFYeCdrG.mjs";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
5
5
|
import * as fsp from "node:fs/promises";
|
|
6
6
|
import * as path$1 from "node:path";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist
|
|
6
|
+
const require_dist = require("../../dist-2gZWO597.js");
|
|
7
7
|
const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
|
|
8
8
|
let zod = require("zod");
|
|
9
9
|
//#region src/builtins/calendars/calendar-color.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ji as defineRecordKinds, Mt as calendarsCapability, g as CalendarPreferencesSchema, ni as BaseAddon } from "../../dist-
|
|
1
|
+
import { Ji as defineRecordKinds, Mt as calendarsCapability, g as CalendarPreferencesSchema, ni as BaseAddon } from "../../dist-DvKEKSap.mjs";
|
|
2
2
|
import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
//#region src/builtins/calendars/calendar-color.ts
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* ```
|
|
8
8
|
* camera grid: could not acquire every source — releasing the ones already taken
|
|
9
9
|
* {acquired=0 error="getStreamWithCodec: profile \"low\" source \"native:sub\"
|
|
10
|
-
* not published for device
|
|
10
|
+
* not published for device 107"}
|
|
11
11
|
* ```
|
|
12
12
|
*
|
|
13
13
|
* Observed twice on the hub at 12:02 on 2026-09-18 and gone by the next attempt.
|
|
@@ -45,7 +45,7 @@ export declare class CameraGridAddon extends BaseAddon<CameraGridAddonConfig> {
|
|
|
45
45
|
* throws rather than answering an empty catalog, because an empty catalog
|
|
46
46
|
* retracts every stream the broker holds for the grid. It is refreshed on
|
|
47
47
|
* every reconcile and on every layout save; the window belongs to the READER
|
|
48
|
-
* (D224), and 60 s is the window for a fact — "does
|
|
48
|
+
* (D224), and 60 s is the window for a fact — "does 101 have a low assigned"
|
|
49
49
|
* — that only changes when an operator changes it.
|
|
50
50
|
*/
|
|
51
51
|
private readonly plansByInstanceId;
|
|
@@ -98,7 +98,7 @@ export declare class CameraGridAddon extends BaseAddon<CameraGridAddonConfig> {
|
|
|
98
98
|
/**
|
|
99
99
|
* Which stream each grid reads each of its sources at, asked of the BROKER.
|
|
100
100
|
*
|
|
101
|
-
* `listAllProfileSlots` is the one authority on "does
|
|
101
|
+
* `listAllProfileSlots` is the one authority on "does 101 have a low
|
|
102
102
|
* assigned", and `sourceCamStreamId === null` is its way of saying no. A read
|
|
103
103
|
* that FAILS leaves the previous answer in place and says so — it is not an
|
|
104
104
|
* empty catalog, and turning it into one would retract the streams of every
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
* hole reads to an operator as a broken camera, not as an unassigned profile
|
|
37
37
|
* three cameras away. An UNKNOWN answer is a refusal, never an offer (D315).
|
|
38
38
|
* The refusal names the sources, because "the grid has no low" is not a finding
|
|
39
|
-
* — "
|
|
39
|
+
* — "101 has no low" is.
|
|
40
40
|
*/
|
|
41
41
|
import type { CamProfile } from "@camstack/types";
|
|
42
42
|
import type { PixelSize } from "./grid-canvas.js";
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
* as long as it sleeps — visible, legible, and obviously not moving. The two
|
|
42
42
|
* alternatives are the ones D519 and the sentry both exist to refuse: dropping
|
|
43
43
|
* the cell (a hole an operator files as a broken grid) and dialling the camera
|
|
44
|
-
* (eleven seconds of battery for five seconds of video, measured on device
|
|
44
|
+
* (eleven seconds of battery for five seconds of video, measured on device 106).
|
|
45
45
|
*/
|
|
46
46
|
/** What `streamBroker.getStreamWithCodec` handed back for one source. */
|
|
47
47
|
export interface GridSourceAcquisition {
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist
|
|
6
|
+
const require_dist = require("../../dist-2gZWO597.js");
|
|
7
7
|
let zod = require("zod");
|
|
8
8
|
let _camstack_types_node = require("@camstack/types/node");
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -2989,7 +2989,7 @@ var CameraGridAddon = class extends require_dist.BaseAddon {
|
|
|
2989
2989
|
* throws rather than answering an empty catalog, because an empty catalog
|
|
2990
2990
|
* retracts every stream the broker holds for the grid. It is refreshed on
|
|
2991
2991
|
* every reconcile and on every layout save; the window belongs to the READER
|
|
2992
|
-
* (D224), and 60 s is the window for a fact — "does
|
|
2992
|
+
* (D224), and 60 s is the window for a fact — "does 101 have a low assigned"
|
|
2993
2993
|
* — that only changes when an operator changes it.
|
|
2994
2994
|
*/
|
|
2995
2995
|
plansByInstanceId = /* @__PURE__ */ new Map();
|
|
@@ -3246,7 +3246,7 @@ var CameraGridAddon = class extends require_dist.BaseAddon {
|
|
|
3246
3246
|
/**
|
|
3247
3247
|
* Which stream each grid reads each of its sources at, asked of the BROKER.
|
|
3248
3248
|
*
|
|
3249
|
-
* `listAllProfileSlots` is the one authority on "does
|
|
3249
|
+
* `listAllProfileSlots` is the one authority on "does 101 have a low
|
|
3250
3250
|
* assigned", and `sourceCamStreamId === null` is its way of saying no. A read
|
|
3251
3251
|
* that FAILS leaves the previous answer in place and says so — it is not an
|
|
3252
3252
|
* empty catalog, and turning it into one would retract the streams of every
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ar as streamCatalogCapability, Cr as snapshotCapability, Gi as createEvent, Gn as motionCapability, Hn as memoizePinnedFfmpeg, N as DeclaredDevices, Nt as cameraGridLayoutCapability, Qr as DeviceFeature, T as DERIVED_CAMERA_SILENCED_CAP_NAMES, Vr as buildFfmpegArgs, X as MOTION_CLOSE_AFTER_MS, a as BaseDevice, ea as hydrateSchema, ei as DeviceType, ka as EventCategory, ni as BaseAddon, qt as declarationOwnerNodeId, ti as errMsg } from "../../dist-
|
|
1
|
+
import { Ar as streamCatalogCapability, Cr as snapshotCapability, Gi as createEvent, Gn as motionCapability, Hn as memoizePinnedFfmpeg, N as DeclaredDevices, Nt as cameraGridLayoutCapability, Qr as DeviceFeature, T as DERIVED_CAMERA_SILENCED_CAP_NAMES, Vr as buildFfmpegArgs, X as MOTION_CLOSE_AFTER_MS, a as BaseDevice, ea as hydrateSchema, ei as DeviceType, ka as EventCategory, ni as BaseAddon, qt as declarationOwnerNodeId, ti as errMsg } from "../../dist-DvKEKSap.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { FfmpegProcess } from "@camstack/types/node";
|
|
4
4
|
import { join } from "node:path";
|
|
@@ -2984,7 +2984,7 @@ var CameraGridAddon = class extends BaseAddon {
|
|
|
2984
2984
|
* throws rather than answering an empty catalog, because an empty catalog
|
|
2985
2985
|
* retracts every stream the broker holds for the grid. It is refreshed on
|
|
2986
2986
|
* every reconcile and on every layout save; the window belongs to the READER
|
|
2987
|
-
* (D224), and 60 s is the window for a fact — "does
|
|
2987
|
+
* (D224), and 60 s is the window for a fact — "does 101 have a low assigned"
|
|
2988
2988
|
* — that only changes when an operator changes it.
|
|
2989
2989
|
*/
|
|
2990
2990
|
plansByInstanceId = /* @__PURE__ */ new Map();
|
|
@@ -3241,7 +3241,7 @@ var CameraGridAddon = class extends BaseAddon {
|
|
|
3241
3241
|
/**
|
|
3242
3242
|
* Which stream each grid reads each of its sources at, asked of the BROKER.
|
|
3243
3243
|
*
|
|
3244
|
-
* `listAllProfileSlots` is the one authority on "does
|
|
3244
|
+
* `listAllProfileSlots` is the one authority on "does 101 have a low
|
|
3245
3245
|
* assigned", and `sourceCamStreamId === null` is its way of saying no. A read
|
|
3246
3246
|
* that FAILS leaves the previous answer in place and says so — it is not an
|
|
3247
3247
|
* empty catalog, and turning it into one would retract the streams of every
|
|
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist
|
|
7
|
-
const require_composition_sources = require("../../composition-sources-
|
|
8
|
-
const require_retention = require("../../retention-
|
|
6
|
+
const require_dist = require("../../dist-2gZWO597.js");
|
|
7
|
+
const require_composition_sources = require("../../composition-sources-CQxrCexr.js");
|
|
8
|
+
const require_retention = require("../../retention-qugQGYuY.js");
|
|
9
9
|
let zod = require("zod");
|
|
10
10
|
//#region src/builtins/shared/device-state-changed.ts
|
|
11
11
|
/** Structural narrowing helper for untrusted bus payloads. */
|
|
@@ -396,7 +396,7 @@ function waitingResult(blockIds, reason) {
|
|
|
396
396
|
/**
|
|
397
397
|
* Review M3: an ADDED `restored` cap seeded from NOTHING says so, once per
|
|
398
398
|
* runtime build, on its device. After a restart its state comes from the
|
|
399
|
-
* target's runtime-state row; a row that lost the slice (D677:
|
|
399
|
+
* target's runtime-state row; a row that lost the slice (D677: 101's doorbell,
|
|
400
400
|
* dropped at a hub boot) used to surface as "not seeded yet" and now seeds a
|
|
401
401
|
* clean `{ null, 0 }` — a lifetime count silently reset unless this line
|
|
402
402
|
* names it. A first composition of a device that never had the slice logs it
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { $n as planComposition, Br as COMPOSER_ADDON_ID, Gi as createEvent, Gr as compositionFeatureEnabled, Hr as cloneStatefulExpressionMemory, It as composerCapability, Jr as compositionSourceKey, Kr as compositionItemFieldPath, Lt as compositionFieldKey, N as DeclaredDevices, Ot as buildCapabilityLookup, Ur as composedDeviceRef, Wr as composedDeviceStableId, Xr as disarmRoseMemory, Yr as createStatefulExpressionMemory, Zr as toExpressionValue, a as BaseDevice, cn as evaluateCompositionField, d as COMPOSED_ITEM_FIXED_FIELDS, dn as expressionContainsBuiltinCall, ei as DeviceType, ka as EventCategory, ni as BaseAddon, qr as compositionSliceKey, r as ALL_CAPABILITY_DEFINITIONS, ti as errMsg } from "../../dist-
|
|
2
|
-
import { n as normalizedNativeOwner } from "../../composition-sources-
|
|
3
|
-
import { i as DAY_MS, m as capSeriesKey, t as DEFAULT_RETENTION } from "../../retention-
|
|
1
|
+
import { $n as planComposition, Br as COMPOSER_ADDON_ID, Gi as createEvent, Gr as compositionFeatureEnabled, Hr as cloneStatefulExpressionMemory, It as composerCapability, Jr as compositionSourceKey, Kr as compositionItemFieldPath, Lt as compositionFieldKey, N as DeclaredDevices, Ot as buildCapabilityLookup, Ur as composedDeviceRef, Wr as composedDeviceStableId, Xr as disarmRoseMemory, Yr as createStatefulExpressionMemory, Zr as toExpressionValue, a as BaseDevice, cn as evaluateCompositionField, d as COMPOSED_ITEM_FIXED_FIELDS, dn as expressionContainsBuiltinCall, ei as DeviceType, ka as EventCategory, ni as BaseAddon, qr as compositionSliceKey, r as ALL_CAPABILITY_DEFINITIONS, ti as errMsg } from "../../dist-DvKEKSap.mjs";
|
|
2
|
+
import { n as normalizedNativeOwner } from "../../composition-sources-CC13wGKL.mjs";
|
|
3
|
+
import { i as DAY_MS, m as capSeriesKey, t as DEFAULT_RETENTION } from "../../retention-FFJW3-3P.mjs";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
//#region src/builtins/shared/device-state-changed.ts
|
|
6
6
|
/** Structural narrowing helper for untrusted bus payloads. */
|
|
@@ -391,7 +391,7 @@ function waitingResult(blockIds, reason) {
|
|
|
391
391
|
/**
|
|
392
392
|
* Review M3: an ADDED `restored` cap seeded from NOTHING says so, once per
|
|
393
393
|
* runtime build, on its device. After a restart its state comes from the
|
|
394
|
-
* target's runtime-state row; a row that lost the slice (D677:
|
|
394
|
+
* target's runtime-state row; a row that lost the slice (D677: 101's doorbell,
|
|
395
395
|
* dropped at a hub boot) used to surface as "not seeded yet" and now seeds a
|
|
396
396
|
* clean `{ null, 0 }` — a lifetime count silently reset unless this line
|
|
397
397
|
* names it. A first composition of a device that never had the slice logs it
|
|
@@ -40,7 +40,7 @@ export interface SeedlessRestoredCapsInput {
|
|
|
40
40
|
/**
|
|
41
41
|
* Review M3: an ADDED `restored` cap seeded from NOTHING says so, once per
|
|
42
42
|
* runtime build, on its device. After a restart its state comes from the
|
|
43
|
-
* target's runtime-state row; a row that lost the slice (D677:
|
|
43
|
+
* target's runtime-state row; a row that lost the slice (D677: 101's doorbell,
|
|
44
44
|
* dropped at a hub boot) used to surface as "not seeded yet" and now seeds a
|
|
45
45
|
* clean `{ null, 0 }` — a lifetime count silently reset unless this line
|
|
46
46
|
* names it. A first composition of a device that never had the slice logs it
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Through the hub such a read was circular: the effective slice of an ADDED cap
|
|
7
7
|
* exists only once the composer's claim lands, and the claim lands only once
|
|
8
|
-
* every required field has a value — camera
|
|
8
|
+
* every required field has a value — camera 101's `pressCountSinceStart =
|
|
9
9
|
* count(lastPressedAt)` was one of them, and nothing served its doorbell for
|
|
10
10
|
* 12 h.
|
|
11
11
|
*/
|
|
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist
|
|
7
|
-
const require_formatter = require("../../formatter-
|
|
6
|
+
const require_dist = require("../../dist-2gZWO597.js");
|
|
7
|
+
const require_formatter = require("../../formatter-xbxeV4GD.js");
|
|
8
8
|
//#region src/builtins/console-logging/console-destination.ts
|
|
9
9
|
var LEVEL_RANK = {
|
|
10
10
|
debug: 0,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Ln as logDestinationCapability, ni as BaseAddon } from "../../dist-
|
|
2
|
-
import { t as formatLogLine } from "../../formatter-
|
|
1
|
+
import { Ln as logDestinationCapability, ni as BaseAddon } from "../../dist-DvKEKSap.mjs";
|
|
2
|
+
import { t as formatLogLine } from "../../formatter-DkYZ4LXp.mjs";
|
|
3
3
|
//#region src/builtins/console-logging/console-destination.ts
|
|
4
4
|
var LEVEL_RANK = {
|
|
5
5
|
debug: 0,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
3
|
-
const require_dist = require("../../dist
|
|
3
|
+
const require_dist = require("../../dist-2gZWO597.js");
|
|
4
4
|
const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
|
|
5
|
-
const require_composition_sources = require("../../composition-sources-
|
|
5
|
+
const require_composition_sources = require("../../composition-sources-CQxrCexr.js");
|
|
6
6
|
const require_prefix_range = require("../../prefix-range-D_KueXbQ.js");
|
|
7
7
|
const require_prefix_walk = require("../../prefix-walk-Dv6MLZlM.js");
|
|
8
8
|
let zod = require("zod");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { $n as planComposition, Bt as coreBlockComposition, Ea as transformSecretWrite, Ht as coreBlockSourceKind, Ji as defineRecordKinds, Jr as compositionSourceKey, Kn as normalizeCoreBlockWrite, N as DeclaredDevices, Ot as buildCapabilityLookup, Pr as validateComposition, Rt as compositionSourceRefs, Sa as secretTreeFromSchema, Ui as collectSecretMarkerRefs, Ur as composedDeviceRef, Ut as coreBlocksCapability, Vt as coreBlockIdFromAddonId, Zt as describeComposableCaps, aa as isSecretMarker, dr as resolveCoreBlockFiles, ea as hydrateSchema, f as COMPOSER_RUNNER_ID, m as CORE_BLOCK_ADDON_PREFIX, ni as BaseAddon, p as CORE_BLOCKS_ADDON_ID, r as ALL_CAPABILITY_DEFINITIONS, sa as isSecretRefOwnedBy, sr as replacedFieldKeys, ti as errMsg, tr as problemsBlockSave, ur as resolveCoreBlockEntry, v as CoreBlockSchema, ya as resolveSecretMarkers, zt as coreBlockAddonId } from "../../dist-
|
|
1
|
+
import { $n as planComposition, Bt as coreBlockComposition, Ea as transformSecretWrite, Ht as coreBlockSourceKind, Ji as defineRecordKinds, Jr as compositionSourceKey, Kn as normalizeCoreBlockWrite, N as DeclaredDevices, Ot as buildCapabilityLookup, Pr as validateComposition, Rt as compositionSourceRefs, Sa as secretTreeFromSchema, Ui as collectSecretMarkerRefs, Ur as composedDeviceRef, Ut as coreBlocksCapability, Vt as coreBlockIdFromAddonId, Zt as describeComposableCaps, aa as isSecretMarker, dr as resolveCoreBlockFiles, ea as hydrateSchema, f as COMPOSER_RUNNER_ID, m as CORE_BLOCK_ADDON_PREFIX, ni as BaseAddon, p as CORE_BLOCKS_ADDON_ID, r as ALL_CAPABILITY_DEFINITIONS, sa as isSecretRefOwnedBy, sr as replacedFieldKeys, ti as errMsg, tr as problemsBlockSave, ur as resolveCoreBlockEntry, v as CoreBlockSchema, ya as resolveSecretMarkers, zt as coreBlockAddonId } from "../../dist-DvKEKSap.mjs";
|
|
2
2
|
import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
|
|
3
|
-
import { t as describeCompositionSources } from "../../composition-sources-
|
|
3
|
+
import { t as describeCompositionSources } from "../../composition-sources-CC13wGKL.mjs";
|
|
4
4
|
import { t as prefixRange } from "../../prefix-range-Dl0znowN.mjs";
|
|
5
5
|
import { n as unwrapStoredValue, t as loadPrefixed } from "../../prefix-walk-DAOBSyH1.mjs";
|
|
6
6
|
import { createRequire } from "node:module";
|
|
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist
|
|
7
|
-
const require_retention = require("../../retention-
|
|
6
|
+
const require_dist = require("../../dist-2gZWO597.js");
|
|
7
|
+
const require_retention = require("../../retention-qugQGYuY.js");
|
|
8
8
|
//#region src/builtins/device-history/capture/point-writer.ts
|
|
9
9
|
var FLUSH_INTERVAL_MS = 1e4;
|
|
10
10
|
var MAX_BUFFER_AGE_MS = 6e4;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { B as HISTORY_ITEM_CATALOG, Ct as armRemovalReconcile, D as DEVICE_HISTORY_ENERGY_KEY, Xi as emitReadiness, en as deviceHistoryCapability, ka as EventCategory, ni as BaseAddon, nn as deviceRemovalHookCapability, z as HISTORY_CATALOG } from "../../dist-
|
|
2
|
-
import { S as subjectIdOf, _ as readUnit, a as FIVE_MINUTES_MS, b as SeriesRegistry, c as bucketEndOf, d as CAP_KEY_PREFIX, f as CaptureEngine, g as readPath, h as catalogMetrics, i as DAY_MS, l as bucketStartOf, m as capSeriesKey, n as RetentionJob, o as HOUR_MS, p as capItemSeriesKey, r as DepartureTracker, s as ROLLUP_GRACE_MS, t as DEFAULT_RETENTION, u as floorTo, v as DeviceDirectory, x as identityOf, y as isRealDeviceType } from "../../retention-
|
|
1
|
+
import { B as HISTORY_ITEM_CATALOG, Ct as armRemovalReconcile, D as DEVICE_HISTORY_ENERGY_KEY, Xi as emitReadiness, en as deviceHistoryCapability, ka as EventCategory, ni as BaseAddon, nn as deviceRemovalHookCapability, z as HISTORY_CATALOG } from "../../dist-DvKEKSap.mjs";
|
|
2
|
+
import { S as subjectIdOf, _ as readUnit, a as FIVE_MINUTES_MS, b as SeriesRegistry, c as bucketEndOf, d as CAP_KEY_PREFIX, f as CaptureEngine, g as readPath, h as catalogMetrics, i as DAY_MS, l as bucketStartOf, m as capSeriesKey, n as RetentionJob, o as HOUR_MS, p as capItemSeriesKey, r as DepartureTracker, s as ROLLUP_GRACE_MS, t as DEFAULT_RETENTION, u as floorTo, v as DeviceDirectory, x as identityOf, y as isRealDeviceType } from "../../retention-FFJW3-3P.mjs";
|
|
3
3
|
//#region src/builtins/device-history/capture/point-writer.ts
|
|
4
4
|
var FLUSH_INTERVAL_MS = 1e4;
|
|
5
5
|
var MAX_BUFFER_AGE_MS = 6e4;
|
|
@@ -138,7 +138,7 @@ export declare function resolveNativeDeviceOwner(deps: AggregationDeps, deviceId
|
|
|
138
138
|
* into `null` in microseconds. It is a node that is FLAPPING: a crash-looping
|
|
139
139
|
* agent re-registers every few seconds, so the registry believes it is online,
|
|
140
140
|
* the call is routed, and the peer dies mid-flight. Then nothing throws and
|
|
141
|
-
* nothing resolves. On 2026-08-08
|
|
141
|
+
* nothing resolves. On 2026-08-08 agent-a did exactly that for 22
|
|
142
142
|
* minutes and the viewer showed a loading skeleton the whole time.
|
|
143
143
|
*
|
|
144
144
|
* 3s is chosen against what a HEALTHY remote cap costs (a same-LAN cap call is
|
|
@@ -38,7 +38,7 @@ export interface BindingsDeps {
|
|
|
38
38
|
* and `roleDisplayDefaults`.
|
|
39
39
|
*
|
|
40
40
|
* `deviceBindings` is ONE fleet-wide blob keyed by device, so a writer that
|
|
41
|
-
* only means to touch camera
|
|
41
|
+
* only means to touch camera 101 rewrites every camera's row. Nothing
|
|
42
42
|
* ordered those writers, and the window between the read and the write is a
|
|
43
43
|
* settings-door round trip — an RPC to the isolated `sqlite-settings` child,
|
|
44
44
|
* measured at 2.9 s on the live hub mid-drain (D181). Two toggles on
|
|
@@ -184,9 +184,9 @@ export declare function capAppliesToDeviceType(def: CapabilityDefinition | undef
|
|
|
184
184
|
* An addon's identity, with the node it happens to run on stripped.
|
|
185
185
|
*
|
|
186
186
|
* A capability registered on an agent arrives under `<addonId>@<nodeId>` —
|
|
187
|
-
* `pipeline-analytics@
|
|
187
|
+
* `pipeline-analytics@agent-a`. That is the same ADDON as the hub-local
|
|
188
188
|
* `pipeline-analytics`, and treating the two as different providers is what
|
|
189
|
-
* put `analytics` in device
|
|
189
|
+
* put `analytics` in device 107's clip picker three times (D554 amended).
|
|
190
190
|
* Where a provider RUNS is a routing fact; it is not part of who it is.
|
|
191
191
|
*/
|
|
192
192
|
export declare function addonIdentityOf(addonId: string): string;
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist
|
|
6
|
+
const require_dist = require("../../dist-2gZWO597.js");
|
|
7
7
|
const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
|
|
8
8
|
const require_prefix_range = require("../../prefix-range-D_KueXbQ.js");
|
|
9
9
|
const require_prefix_walk = require("../../prefix-walk-Dv6MLZlM.js");
|
|
@@ -1495,9 +1495,9 @@ function capAppliesToDeviceType(def, deviceType) {
|
|
|
1495
1495
|
* An addon's identity, with the node it happens to run on stripped.
|
|
1496
1496
|
*
|
|
1497
1497
|
* A capability registered on an agent arrives under `<addonId>@<nodeId>` —
|
|
1498
|
-
* `pipeline-analytics@
|
|
1498
|
+
* `pipeline-analytics@agent-a`. That is the same ADDON as the hub-local
|
|
1499
1499
|
* `pipeline-analytics`, and treating the two as different providers is what
|
|
1500
|
-
* put `analytics` in device
|
|
1500
|
+
* put `analytics` in device 107's clip picker three times (D554 amended).
|
|
1501
1501
|
* Where a provider RUNS is a routing fact; it is not part of who it is.
|
|
1502
1502
|
*/
|
|
1503
1503
|
function addonIdentityOf(addonId) {
|
|
@@ -5288,7 +5288,7 @@ async function reloadMigratedDevices(pctx, targets) {
|
|
|
5288
5288
|
* the hardware — but the per-device CONFIG blob and the runtime-state blob are
|
|
5289
5289
|
* keyed by the number in a separate store, and until 2026-09-01 they simply
|
|
5290
5290
|
* stayed put. Measured on the live hub after replacing a Hikvision (id 618)
|
|
5291
|
-
* with a Reolink: device
|
|
5291
|
+
* with a Reolink: device 108 — Reolink hardware — was dialled at
|
|
5292
5292
|
* `192.168.10.245:80` with `deviceCache.model="DS-2DE2A404IW-DE3/W"`, the
|
|
5293
5293
|
* Hikvision's address, credentials and cached model, and never came online.
|
|
5294
5294
|
* Device 4362 wore the Reolink's config on Hikvision hardware. The two devices
|
|
@@ -5539,7 +5539,7 @@ async function loadDeviceConfigWithSecrets(ctx, input) {
|
|
|
5539
5539
|
* cascade carried 373 children at `location: null` — every one of those
|
|
5540
5540
|
* containers invisible to auto-mode linking-by-location (the container itself
|
|
5541
5541
|
* is deliberately never a link; its children never matched), and not one log
|
|
5542
|
-
* line said so. Camera
|
|
5542
|
+
* line said so. Camera 101 showed one siren where four appliances belonged.
|
|
5543
5543
|
*
|
|
5544
5544
|
* Two mechanisms close it, both WRITE-time — read-time inheritance stays
|
|
5545
5545
|
* rejected (D252's context: a live-resolved location is invisible everywhere
|
|
@@ -7423,8 +7423,8 @@ function renameLocationZone(membership, fromKey, toKey) {
|
|
|
7423
7423
|
* Move a location's description from one key to another, for `renameLocation`.
|
|
7424
7424
|
*
|
|
7425
7425
|
* Identical rule to {@link renameLocationIcon}, deliberately: a merge keeps the
|
|
7426
|
-
* TARGET's description, because renaming "Sala" into "
|
|
7427
|
-
* into
|
|
7426
|
+
* TARGET's description, because renaming "Sala" into "Hall" moves devices
|
|
7427
|
+
* into Hall and does not re-describe it. Split from the icon mover only
|
|
7428
7428
|
* because the value types differ; if one ever changes, the other must.
|
|
7429
7429
|
*/
|
|
7430
7430
|
function renameLocationDescription(descriptions, fromKey, toKey) {
|
|
@@ -7444,8 +7444,8 @@ function renameLocationDescription(descriptions, fromKey, toKey) {
|
|
|
7444
7444
|
* its `writeAddonStore` patch instead of re-writing an identical map.
|
|
7445
7445
|
*
|
|
7446
7446
|
* A rename onto a room that already has an icon is a MERGE, and the surviving
|
|
7447
|
-
* room keeps its own: the operator renaming "Sala" into "
|
|
7448
|
-
* devices into
|
|
7447
|
+
* room keeps its own: the operator renaming "Sala" into "Hall" is moving
|
|
7448
|
+
* devices into Hall, not restyling it. The source key is dropped either way.
|
|
7449
7449
|
* Pure — builds a new record, mutates nothing.
|
|
7450
7450
|
*/
|
|
7451
7451
|
function renameLocationIcon(icons, fromKey, toKey) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $r as DeviceRole, $t as deviceExtensionCapability, Ca as sleep$1, Da as userError, Ea as transformSecretWrite, F as DeviceTombstoneSchema, In as locationIconKey, Ji as defineRecordKinds, L as FieldClaimModeSchema, Mn as legacyAutoLinkIds, P as DeviceStatusSchema, Pi as WELL_KNOWN_TAB_MAP, Pt as canonicalIconKey, Qr as DeviceFeature, R as FieldClaimSchema, Sr as siteZoneKey, Ta as toSecretFieldView, Wi as collectZodSecretPaths, Wt as createDeviceExtensionProvider, Y as MINUTES_PER_DAY, Yt as defineExtensionSlotProvider, Zn as parseStreamParamsFormPatch, aa as isSecretMarker, ei as DeviceType, gn as formatMinutes, gr as runtimeStatePolicyFor, ia as isSecretClear, in as deviceStatusCapability, jt as buildStreamParamsConfigSchema, ka as EventCategory, ki as SECRET_CLEAR, l as CAP_NAMES_WITH_STATUS, ni as BaseAddon, oa as isSecretMarkerLike, on as enumerateItemArrayFields, ot as STREAM_PROFILE_META, qn as normalizeUnit, r as ALL_CAPABILITY_DEFINITIONS, ra as isKeychainStoredField, rn as deviceStateCapability, s as CAMERA_SWITCH_ORDER, sn as enumerateSchemaFields, ta as isDeviceConfigCap, ti as errMsg, tn as deviceManagerCapability, un as expandContainer, w as DAY_NAMES, xa as secretTreeFromPaths, ya as resolveSecretMarkers } from "../../dist-
|
|
1
|
+
import { $r as DeviceRole, $t as deviceExtensionCapability, Ca as sleep$1, Da as userError, Ea as transformSecretWrite, F as DeviceTombstoneSchema, In as locationIconKey, Ji as defineRecordKinds, L as FieldClaimModeSchema, Mn as legacyAutoLinkIds, P as DeviceStatusSchema, Pi as WELL_KNOWN_TAB_MAP, Pt as canonicalIconKey, Qr as DeviceFeature, R as FieldClaimSchema, Sr as siteZoneKey, Ta as toSecretFieldView, Wi as collectZodSecretPaths, Wt as createDeviceExtensionProvider, Y as MINUTES_PER_DAY, Yt as defineExtensionSlotProvider, Zn as parseStreamParamsFormPatch, aa as isSecretMarker, ei as DeviceType, gn as formatMinutes, gr as runtimeStatePolicyFor, ia as isSecretClear, in as deviceStatusCapability, jt as buildStreamParamsConfigSchema, ka as EventCategory, ki as SECRET_CLEAR, l as CAP_NAMES_WITH_STATUS, ni as BaseAddon, oa as isSecretMarkerLike, on as enumerateItemArrayFields, ot as STREAM_PROFILE_META, qn as normalizeUnit, r as ALL_CAPABILITY_DEFINITIONS, ra as isKeychainStoredField, rn as deviceStateCapability, s as CAMERA_SWITCH_ORDER, sn as enumerateSchemaFields, ta as isDeviceConfigCap, ti as errMsg, tn as deviceManagerCapability, un as expandContainer, w as DAY_NAMES, xa as secretTreeFromPaths, ya as resolveSecretMarkers } from "../../dist-DvKEKSap.mjs";
|
|
2
2
|
import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
|
|
3
3
|
import { t as prefixRange } from "../../prefix-range-Dl0znowN.mjs";
|
|
4
4
|
import { t as loadPrefixed } from "../../prefix-walk-DAOBSyH1.mjs";
|
|
@@ -1490,9 +1490,9 @@ function capAppliesToDeviceType(def, deviceType) {
|
|
|
1490
1490
|
* An addon's identity, with the node it happens to run on stripped.
|
|
1491
1491
|
*
|
|
1492
1492
|
* A capability registered on an agent arrives under `<addonId>@<nodeId>` —
|
|
1493
|
-
* `pipeline-analytics@
|
|
1493
|
+
* `pipeline-analytics@agent-a`. That is the same ADDON as the hub-local
|
|
1494
1494
|
* `pipeline-analytics`, and treating the two as different providers is what
|
|
1495
|
-
* put `analytics` in device
|
|
1495
|
+
* put `analytics` in device 107's clip picker three times (D554 amended).
|
|
1496
1496
|
* Where a provider RUNS is a routing fact; it is not part of who it is.
|
|
1497
1497
|
*/
|
|
1498
1498
|
function addonIdentityOf(addonId) {
|
|
@@ -5283,7 +5283,7 @@ async function reloadMigratedDevices(pctx, targets) {
|
|
|
5283
5283
|
* the hardware — but the per-device CONFIG blob and the runtime-state blob are
|
|
5284
5284
|
* keyed by the number in a separate store, and until 2026-09-01 they simply
|
|
5285
5285
|
* stayed put. Measured on the live hub after replacing a Hikvision (id 618)
|
|
5286
|
-
* with a Reolink: device
|
|
5286
|
+
* with a Reolink: device 108 — Reolink hardware — was dialled at
|
|
5287
5287
|
* `192.168.10.245:80` with `deviceCache.model="DS-2DE2A404IW-DE3/W"`, the
|
|
5288
5288
|
* Hikvision's address, credentials and cached model, and never came online.
|
|
5289
5289
|
* Device 4362 wore the Reolink's config on Hikvision hardware. The two devices
|
|
@@ -5534,7 +5534,7 @@ async function loadDeviceConfigWithSecrets(ctx, input) {
|
|
|
5534
5534
|
* cascade carried 373 children at `location: null` — every one of those
|
|
5535
5535
|
* containers invisible to auto-mode linking-by-location (the container itself
|
|
5536
5536
|
* is deliberately never a link; its children never matched), and not one log
|
|
5537
|
-
* line said so. Camera
|
|
5537
|
+
* line said so. Camera 101 showed one siren where four appliances belonged.
|
|
5538
5538
|
*
|
|
5539
5539
|
* Two mechanisms close it, both WRITE-time — read-time inheritance stays
|
|
5540
5540
|
* rejected (D252's context: a live-resolved location is invisible everywhere
|
|
@@ -7418,8 +7418,8 @@ function renameLocationZone(membership, fromKey, toKey) {
|
|
|
7418
7418
|
* Move a location's description from one key to another, for `renameLocation`.
|
|
7419
7419
|
*
|
|
7420
7420
|
* Identical rule to {@link renameLocationIcon}, deliberately: a merge keeps the
|
|
7421
|
-
* TARGET's description, because renaming "Sala" into "
|
|
7422
|
-
* into
|
|
7421
|
+
* TARGET's description, because renaming "Sala" into "Hall" moves devices
|
|
7422
|
+
* into Hall and does not re-describe it. Split from the icon mover only
|
|
7423
7423
|
* because the value types differ; if one ever changes, the other must.
|
|
7424
7424
|
*/
|
|
7425
7425
|
function renameLocationDescription(descriptions, fromKey, toKey) {
|
|
@@ -7439,8 +7439,8 @@ function renameLocationDescription(descriptions, fromKey, toKey) {
|
|
|
7439
7439
|
* its `writeAddonStore` patch instead of re-writing an identical map.
|
|
7440
7440
|
*
|
|
7441
7441
|
* A rename onto a room that already has an icon is a MERGE, and the surviving
|
|
7442
|
-
* room keeps its own: the operator renaming "Sala" into "
|
|
7443
|
-
* devices into
|
|
7442
|
+
* room keeps its own: the operator renaming "Sala" into "Hall" is moving
|
|
7443
|
+
* devices into Hall, not restyling it. The source key is dropped either way.
|
|
7444
7444
|
* Pure — builds a new record, mutates nothing.
|
|
7445
7445
|
*/
|
|
7446
7446
|
function renameLocationIcon(icons, fromKey, toKey) {
|