@camstack/system 1.2.194 → 1.2.196
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/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 +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
- package/dist/builtins/device-manager/device-manager.addon.js +2 -2
- package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
- package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
- package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- 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 +1 -1
- package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
- package/dist/builtins/local-network/local-network.addon.js +1 -1
- package/dist/builtins/local-network/local-network.addon.mjs +1 -1
- 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.js +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/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/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
- 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 +1 -1
- package/dist/builtins/system-config/system-config.addon.mjs +1 -1
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{dist-C7g13BfN.js → dist-BNaW68aZ.js} +130 -2
- package/dist/{dist-DwFNOn8R.mjs → dist-DWnHJI2T.mjs} +130 -2
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{retired-settings-keys-BT_YDV75.js → retired-settings-keys-FwgzdSHJ.js} +1 -1
- package/dist/{retired-settings-keys-JFxrynI0.mjs → retired-settings-keys-cjLVvYV0.mjs} +1 -1
- package/package.json +1 -1
|
@@ -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-BNaW68aZ.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 { D as addonPagesCapability, Ft as errMsg, It as BaseAddon, cn as EventCategory } from "../../dist-
|
|
1
|
+
import { D as addonPagesCapability, Ft as errMsg, It as BaseAddon, cn as EventCategory } from "../../dist-DWnHJI2T.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-BNaW68aZ.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 { Ft as errMsg, It as BaseAddon, cn as EventCategory, k as addonWidgetsCapability } from "../../dist-
|
|
1
|
+
import { Ft as errMsg, It as BaseAddon, cn as EventCategory, k as addonWidgetsCapability } from "../../dist-DWnHJI2T.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-BNaW68aZ.js");
|
|
7
7
|
//#region src/builtins/alerts/prune-policy.ts
|
|
8
8
|
/**
|
|
9
9
|
* Ids older than `cutoffMs`, oldest first.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as alertsCapability, Ft as errMsg, It as BaseAddon, Yt as createEvent, cn as EventCategory, n as AlertSchema } from "../../dist-
|
|
1
|
+
import { A as alertsCapability, Ft as errMsg, It as BaseAddon, Yt as createEvent, cn as EventCategory, n as AlertSchema } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
//#region src/builtins/alerts/prune-policy.ts
|
|
3
3
|
/**
|
|
4
4
|
* Ids older than `cutoffMs`, oldest first.
|
|
@@ -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-BNaW68aZ.js");
|
|
7
7
|
let node_crypto = require("node:crypto");
|
|
8
8
|
let buffer = require("buffer");
|
|
9
9
|
let node_fs_promises = require("node:fs/promises");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { It as BaseAddon, M as backupCapability, cn as EventCategory } from "../../dist-
|
|
1
|
+
import { It as BaseAddon, M as backupCapability, cn as EventCategory } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
import { randomBytes, randomUUID } from "node:crypto";
|
|
3
3
|
import { Buffer as Buffer$1 } from "buffer";
|
|
4
4
|
import * as fsp from "node:fs/promises";
|
|
@@ -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-BNaW68aZ.js");
|
|
7
7
|
const require_formatter = require("../../formatter-DqAKDlvN.js");
|
|
8
8
|
//#region src/builtins/console-logging/console-destination.ts
|
|
9
9
|
var LEVEL_RANK = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { It as BaseAddon, lt as logDestinationCapability } from "../../dist-
|
|
1
|
+
import { It as BaseAddon, lt as logDestinationCapability } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
|
|
3
3
|
//#region src/builtins/console-logging/console-destination.ts
|
|
4
4
|
var LEVEL_RANK = {
|
|
@@ -1,6 +1,6 @@
|
|
|
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-BNaW68aZ.js");
|
|
4
4
|
let node_crypto = require("node:crypto");
|
|
5
5
|
let node_fs_promises = require("node:fs/promises");
|
|
6
6
|
node_fs_promises = require_chunk.__toESM(node_fs_promises);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ft as errMsg, It as BaseAddon, L as coreBlockAddonId, R as coreBlockIdFromAddonId, c as CORE_BLOCK_ADDON_PREFIX, d as DeclaredDevices, l as CoreBlockSchema, s as CORE_BLOCKS_ADDON_ID, z as coreBlocksCapability } from "../../dist-
|
|
1
|
+
import { Ft as errMsg, It as BaseAddon, L as coreBlockAddonId, R as coreBlockIdFromAddonId, c as CORE_BLOCK_ADDON_PREFIX, d as DeclaredDevices, l as CoreBlockSchema, s as CORE_BLOCKS_ADDON_ID, z as coreBlocksCapability } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import * as fs from "node:fs/promises";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -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_retired_settings_keys = require("../../retired-settings-keys-
|
|
6
|
+
const require_dist = require("../../dist-BNaW68aZ.js");
|
|
7
|
+
const require_retired_settings_keys = require("../../retired-settings-keys-FwgzdSHJ.js");
|
|
8
8
|
let node_crypto = require("node:crypto");
|
|
9
9
|
let _camstack_types_node = require("@camstack/types/node");
|
|
10
10
|
//#region src/builtins/device-manager/adoption-job-engine.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Bt as DeviceFeature, F as buildStreamParamsConfigSchema, Ft as errMsg, G as deviceStatusCapability, Gt as WELL_KNOWN_TAB_MAP, Ht as DeviceType, It as BaseAddon, J as enumerateItemArrayFields, St as runtimeStatePolicyFor, U as deviceManagerCapability, Vt as DeviceRole, W as deviceStateCapability, Y as enumerateSchemaFields, a as CAMERA_SWITCH_ORDER, bt as resolveContainerPrimaryChild, cn as EventCategory, en as isDeviceConfigCap, f as DeviceStatusSchema, ht as parseStreamParamsFormPatch, o as CAP_NAMES_WITH_STATUS, pt as normalizeUnit, sn as sleep, t as ALL_CAPABILITY_DEFINITIONS, x as STREAM_PROFILE_META } from "../../dist-
|
|
2
|
-
import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-
|
|
1
|
+
import { Bt as DeviceFeature, F as buildStreamParamsConfigSchema, Ft as errMsg, G as deviceStatusCapability, Gt as WELL_KNOWN_TAB_MAP, Ht as DeviceType, It as BaseAddon, J as enumerateItemArrayFields, St as runtimeStatePolicyFor, U as deviceManagerCapability, Vt as DeviceRole, W as deviceStateCapability, Y as enumerateSchemaFields, a as CAMERA_SWITCH_ORDER, bt as resolveContainerPrimaryChild, cn as EventCategory, en as isDeviceConfigCap, f as DeviceStatusSchema, ht as parseStreamParamsFormPatch, o as CAP_NAMES_WITH_STATUS, pt as normalizeUnit, sn as sleep, t as ALL_CAPABILITY_DEFINITIONS, x as STREAM_PROFILE_META } from "../../dist-DWnHJI2T.mjs";
|
|
2
|
+
import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-cjLVvYV0.mjs";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { canonicalDeviceFingerprint } from "@camstack/types/node";
|
|
5
5
|
//#region src/builtins/device-manager/adoption-job-engine.ts
|
|
@@ -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-BNaW68aZ.js");
|
|
7
7
|
//#region src/builtins/doorbell/trigger-engine.ts
|
|
8
8
|
/**
|
|
9
9
|
* Pure trigger logic for the virtual-doorbell builtin — edge detection over
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ft as errMsg, Ht as DeviceType, It as BaseAddon, K as doorbellCapability, N as bareAddonId, X as evaluateSensorEdge, Yt as createEvent, cn as EventCategory, it as isSourceCap, rt as isSameAddonId, v as SOURCE_CAPS, y as SOURCE_DEVICE_TYPES } from "../../dist-
|
|
1
|
+
import { Ft as errMsg, Ht as DeviceType, It as BaseAddon, K as doorbellCapability, N as bareAddonId, X as evaluateSensorEdge, Yt as createEvent, cn as EventCategory, it as isSourceCap, rt as isSameAddonId, v as SOURCE_CAPS, y as SOURCE_DEVICE_TYPES } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
//#region src/builtins/doorbell/trigger-engine.ts
|
|
3
3
|
/**
|
|
4
4
|
* Pure trigger logic for the virtual-doorbell builtin — edge detection over
|
|
@@ -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-BNaW68aZ.js");
|
|
7
7
|
const require_formatter = require("../../formatter-DqAKDlvN.js");
|
|
8
8
|
//#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
|
|
9
9
|
var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { It as BaseAddon, lt as logDestinationCapability } from "../../dist-
|
|
1
|
+
import { It as BaseAddon, lt as logDestinationCapability } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
|
|
3
3
|
//#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
|
|
4
4
|
var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../chunk-Cek0wNdY.js");
|
|
3
|
-
const require_dist = require("../../dist-
|
|
3
|
+
const require_dist = require("../../dist-BNaW68aZ.js");
|
|
4
4
|
//#region src/builtins/liveness-monitor/liveness-checks.ts
|
|
5
5
|
var NO_DEVICES = "liveness:no-devices";
|
|
6
6
|
var ALL_OFFLINE = "liveness:all-devices-offline";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ft as errMsg, It as BaseAddon, Yt as createEvent, _ as RecordingStatusSchema, cn as EventCategory } from "../../dist-
|
|
1
|
+
import { Ft as errMsg, It as BaseAddon, Yt as createEvent, _ as RecordingStatusSchema, cn as EventCategory } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
//#region src/builtins/liveness-monitor/liveness-checks.ts
|
|
3
3
|
var NO_DEVICES = "liveness:no-devices";
|
|
4
4
|
var ALL_OFFLINE = "liveness:all-devices-offline";
|
|
@@ -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-BNaW68aZ.js");
|
|
7
7
|
let node_crypto = require("node:crypto");
|
|
8
8
|
node_crypto = require_chunk.__toESM(node_crypto);
|
|
9
9
|
let crypto$1 = require("crypto");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { i as __require, o as __toESM, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { E as UserRecordSchema, It as BaseAddon, Mt as userManagementCapability, S as ScopedTokenSchema, j as authProviderCapability, r as ApiKeyRecordSchema } from "../../dist-
|
|
2
|
+
import { E as UserRecordSchema, It as BaseAddon, Mt as userManagementCapability, S as ScopedTokenSchema, j as authProviderCapability, r as ApiKeyRecordSchema } from "../../dist-DWnHJI2T.mjs";
|
|
3
3
|
import * as crypto$2 from "node:crypto";
|
|
4
4
|
import { createHash, randomUUID, timingSafeEqual } from "node:crypto";
|
|
5
5
|
import nodeCrypto from "crypto";
|
|
@@ -1,6 +1,6 @@
|
|
|
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-BNaW68aZ.js");
|
|
4
4
|
const require_tls = require("../../tls-BxQlomxd.js");
|
|
5
5
|
let node_fs_promises = require("node:fs/promises");
|
|
6
6
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { It as BaseAddon, cn as EventCategory, ct as localNetworkCapability } from "../../dist-
|
|
1
|
+
import { It as BaseAddon, cn as EventCategory, ct as localNetworkCapability } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
import { S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, i as writeExtraSans, l as reissueTlsLeaf, n as readTlsAccessStatus, o as validateUploadedTls, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, y as applyLanHttp } from "../../tls-DOTmtLCW.mjs";
|
|
3
3
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
4
4
|
import { join } 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-BNaW68aZ.js");
|
|
7
7
|
//#region src/builtins/loki-logging/loki-payload.ts
|
|
8
8
|
/**
|
|
9
9
|
* Loki rejects a label name that is not a valid Prometheus label
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { It as BaseAddon, lt as logDestinationCapability } from "../../dist-
|
|
1
|
+
import { It as BaseAddon, lt as logDestinationCapability } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
//#region src/builtins/loki-logging/loki-payload.ts
|
|
3
3
|
/**
|
|
4
4
|
* Loki rejects a label name that is not a valid Prometheus label
|
|
@@ -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-BNaW68aZ.js");
|
|
7
7
|
let node_fs_promises = require("node:fs/promises");
|
|
8
8
|
let node_child_process = require("node:child_process");
|
|
9
9
|
let node_util = require("node:util");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as foldSnapshotByFunction, Ft as errMsg, It as BaseAddon, Yt as createEvent, cn as EventCategory, ft as metricsProviderCapability, vt as reducePoints, yt as resolveBucketMs } from "../../dist-
|
|
1
|
+
import { $ as foldSnapshotByFunction, Ft as errMsg, It as BaseAddon, Yt as createEvent, cn as EventCategory, ft as metricsProviderCapability, vt as reducePoints, yt as resolveBucketMs } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
import { readFile, readdir } from "node:fs/promises";
|
|
3
3
|
import { execFile, execFileSync } from "node:child_process";
|
|
4
4
|
import { promisify } from "node:util";
|
|
@@ -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-BNaW68aZ.js");
|
|
7
7
|
let node_child_process = require("node:child_process");
|
|
8
8
|
let node_util = require("node:util");
|
|
9
9
|
let node_fs = require("node:fs");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { Ft as errMsg, It as BaseAddon, Tt as scoreRuntimes, Zt as emitReadiness, cn as EventCategory, gt as platformProbeCapability, q as enumerateInferenceDevices } from "../../dist-
|
|
2
|
+
import { Ft as errMsg, It as BaseAddon, Tt as scoreRuntimes, Zt as emitReadiness, cn as EventCategory, gt as platformProbeCapability, q as enumerateInferenceDevices } from "../../dist-DWnHJI2T.mjs";
|
|
3
3
|
import { execFile } from "node:child_process";
|
|
4
4
|
import { promisify } from "node:util";
|
|
5
5
|
import * as fs from "node:fs";
|
|
@@ -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-BNaW68aZ.js");
|
|
7
7
|
//#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
|
|
8
8
|
/**
|
|
9
9
|
* Reconcile the durable `enabledProviders` set against authoritative
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { It as BaseAddon, cn as EventCategory } from "../../dist-
|
|
1
|
+
import { It as BaseAddon, cn as EventCategory } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
//#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
|
|
3
3
|
/**
|
|
4
4
|
* Reconcile the durable `enabledProviders` set against authoritative
|
|
@@ -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-BNaW68aZ.js");
|
|
7
7
|
let zod = require("zod");
|
|
8
8
|
let node_crypto = require("node:crypto");
|
|
9
9
|
let _camstack_types_node = require("@camstack/types/node");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Bt as DeviceFeature, Dt as snapshotCapability, Ft as errMsg, H as deriveBatteryPresence, Ht as DeviceType, It as BaseAddon, N as bareAddonId, P as batteryCapability, cn as EventCategory, i as BatteryStatusSchema, jt as streamQualityLabel, tn as nodePin } from "../../dist-
|
|
1
|
+
import { Bt as DeviceFeature, Dt as snapshotCapability, Ft as errMsg, H as deriveBatteryPresence, Ht as DeviceType, It as BaseAddon, N as bareAddonId, P as batteryCapability, cn as EventCategory, i as BatteryStatusSchema, jt as streamQualityLabel, tn as nodePin } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { signExpiringUrl, verifyExpiringUrl } from "@camstack/types/node";
|
|
@@ -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-BNaW68aZ.js");
|
|
7
7
|
let node_crypto = require("node:crypto");
|
|
8
8
|
let node_fs_promises = require("node:fs/promises");
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { At as storageProviderCapability, It as BaseAddon, Q as filesystemBrowseCapability } from "../../dist-
|
|
1
|
+
import { At as storageProviderCapability, It as BaseAddon, Q as filesystemBrowseCapability } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { mkdir, readdir, realpath, statfs } from "node:fs/promises";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
Binary file
|
|
Binary file
|
|
@@ -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-BNaW68aZ.js");
|
|
7
7
|
const require_hub_cap_forward = require("../../hub-cap-forward-DmHNjbB0.js");
|
|
8
8
|
let zod = require("zod");
|
|
9
9
|
let node_crypto = require("node:crypto");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as StorageCleanupJobSchema, Et as settingsStoreCapability, I as collectSecretConfigKeys, It as BaseAddon, Ot as storageCapability, T as StorageMigrationJobSchema, h as REDACTED_SECRET, kt as storageMigrationCapability, nn as parseJsonObject, w as StorageLocationTypeSchema } from "../../dist-
|
|
1
|
+
import { C as StorageCleanupJobSchema, Et as settingsStoreCapability, I as collectSecretConfigKeys, It as BaseAddon, Ot as storageCapability, T as StorageMigrationJobSchema, h as REDACTED_SECRET, kt as storageMigrationCapability, nn as parseJsonObject, w as StorageLocationTypeSchema } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
import { t as HUB_CAP_FWD_ACTION } from "../../hub-cap-forward-BdT320dq.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
@@ -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-BNaW68aZ.js");
|
|
7
7
|
//#region src/builtins/system-config/system-config.addon.ts
|
|
8
8
|
/**
|
|
9
9
|
* Built-in `system-config` addon — Phase 4 of the settings redesign.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $t as hydrateSchema, Ft as errMsg, It as BaseAddon } from "../../dist-
|
|
1
|
+
import { $t as hydrateSchema, Ft as errMsg, It as BaseAddon } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
//#region src/builtins/system-config/system-config.addon.ts
|
|
3
3
|
/**
|
|
4
4
|
* Built-in `system-config` addon — Phase 4 of the settings redesign.
|
|
@@ -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-BNaW68aZ.js");
|
|
7
7
|
const require_formatter = require("../../formatter-DqAKDlvN.js");
|
|
8
8
|
let node_path = require("node:path");
|
|
9
9
|
node_path = require_chunk.__toESM(node_path);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { It as BaseAddon, lt as logDestinationCapability } from "../../dist-
|
|
1
|
+
import { It as BaseAddon, lt as logDestinationCapability } from "../../dist-DWnHJI2T.mjs";
|
|
2
2
|
import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
|
|
3
3
|
import * as path$1 from "node:path";
|
|
4
4
|
import path from "node:path";
|
|
@@ -737,6 +737,12 @@ var WELL_KNOWN_TAB_MAP = Object.fromEntries([
|
|
|
737
737
|
icon: "move",
|
|
738
738
|
order: 40
|
|
739
739
|
},
|
|
740
|
+
{
|
|
741
|
+
id: "navigation",
|
|
742
|
+
label: "Navigation",
|
|
743
|
+
icon: "compass",
|
|
744
|
+
order: 41
|
|
745
|
+
},
|
|
740
746
|
{
|
|
741
747
|
id: "consumables",
|
|
742
748
|
label: "Consumables",
|
|
@@ -1777,6 +1783,21 @@ var CameraStreamSchema = zod.z.object({
|
|
|
1777
1783
|
*/
|
|
1778
1784
|
autoEligible: zod.z.boolean().optional(),
|
|
1779
1785
|
/**
|
|
1786
|
+
* The profile slot the PUBLISHER says this stream is: `low` for a stream
|
|
1787
|
+
* whose only sensible role is the low-bandwidth one, `high` for a main
|
|
1788
|
+
* stream. Consulted by the broker's automatic ranking
|
|
1789
|
+
* (`rankInitialAssignment`) BEFORE the pixel-count heuristic, and only there:
|
|
1790
|
+
* an operator's manual assignment still wins, and an absent hint is the
|
|
1791
|
+
* pixel-ranked default every camera had before this field existed.
|
|
1792
|
+
*
|
|
1793
|
+
* Why it exists: a camera with ONE stream ranked to `mid` — the slot no
|
|
1794
|
+
* storage class is written for on its own (`recordings` is high|mid,
|
|
1795
|
+
* `recordingsLow` is low) and the one profile scrub does not read. The robot
|
|
1796
|
+
* camera's single 720p relay is a `low` in every respect except the slot the
|
|
1797
|
+
* heuristic put it in.
|
|
1798
|
+
*/
|
|
1799
|
+
profileHint: CamProfileSchema.optional(),
|
|
1800
|
+
/**
|
|
1780
1801
|
* Transport-specific opaque metadata. The broker passes it through to
|
|
1781
1802
|
* the source reader without inspecting it. Currently used by
|
|
1782
1803
|
* `pull-rfc4571` streams to carry the upstream SDP (so the reader can
|
|
@@ -4088,7 +4109,22 @@ var RecordingTriggersSchema = zod.z.object({
|
|
|
4088
4109
|
* il livello: un contatto trovato già aperto al riavvio del runner non fa
|
|
4089
4110
|
* registrare.
|
|
4090
4111
|
*/
|
|
4091
|
-
sensorDeviceIds: zod.z.array(zod.z.number().int().positive()).min(1).max(16).refine(noDuplicates, { message: "sensorDeviceIds must not repeat a device" }).optional()
|
|
4112
|
+
sensorDeviceIds: zod.z.array(zod.z.number().int().positive()).min(1).max(16).refine(noDuplicates, { message: "sensorDeviceIds must not repeat a device" }).optional(),
|
|
4113
|
+
/**
|
|
4114
|
+
* La camera registra per tutta la durata del SEGNALE che lei stessa
|
|
4115
|
+
* pubblica — la cap `recording-signal` (`active: true` mentre il device è in
|
|
4116
|
+
* funzione: un robot che pulisce). È un LIVELLO, non un fronte: la finestra
|
|
4117
|
+
* resta aperta finché il segnale è alto e si chiude `postBufferSec` dopo la
|
|
4118
|
+
* caduta, così una pulizia di quaranta minuti è UNA clip.
|
|
4119
|
+
*
|
|
4120
|
+
* Non nomina un device: il segnale è della camera stessa, tenuto fresco dal
|
|
4121
|
+
* suo provider (D224); il recorder lo ascolta su `DeviceStateChanged` e lo
|
|
4122
|
+
* riconcilia leggendo la slice via RPC, con un tetto oltre il quale un
|
|
4123
|
+
* segnale mai abbassato (un evento perso) non può tenere aperta una
|
|
4124
|
+
* registrazione (D11). Vedi `recorder/addon/band-decision.ts`
|
|
4125
|
+
* (`holdTrigger` / `releaseTrigger`).
|
|
4126
|
+
*/
|
|
4127
|
+
deviceSignal: zod.z.boolean().optional()
|
|
4092
4128
|
});
|
|
4093
4129
|
/**
|
|
4094
4130
|
* Mode of a single recording band — the recorder per-band vocabulary.
|
|
@@ -8193,6 +8229,8 @@ var streamBrokerCapability = {
|
|
|
8193
8229
|
label: zod.z.string().optional(),
|
|
8194
8230
|
deviceFeatures: zod.z.array(zod.z.string()).optional(),
|
|
8195
8231
|
autoEligible: zod.z.boolean().optional(),
|
|
8232
|
+
/** The slot the publisher says this stream IS — see `CameraStreamSchema.profileHint`. */
|
|
8233
|
+
profileHint: CamProfileSchema.optional(),
|
|
8196
8234
|
metadata: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
|
|
8197
8235
|
/** Required when kind === 'derived' — the source camStreamId the
|
|
8198
8236
|
* derived broker reads its encoded plane from.
|
|
@@ -31514,6 +31552,77 @@ var recordingExportCapability = {
|
|
|
31514
31552
|
}
|
|
31515
31553
|
};
|
|
31516
31554
|
/**
|
|
31555
|
+
* A camera's own "record me NOW" LEVEL — a signal the device raises while
|
|
31556
|
+
* something it knows about is happening (a robot vacuum cleaning, a machine
|
|
31557
|
+
* running, a gate open) and lowers when it stops.
|
|
31558
|
+
*
|
|
31559
|
+
* It is a level, not an edge. The sensor triggers the recorder already listens
|
|
31560
|
+
* to (`SOURCE_CAP_ACTIVE_FIELD`) fire on a rising edge and record for a fixed
|
|
31561
|
+
* post-buffer; a cleaning lasts forty minutes, and forty minutes of "this is
|
|
31562
|
+
* still happening" cannot be expressed as an edge plus a post-buffer without
|
|
31563
|
+
* either re-triggering on a timer (polling — D224 forbids the consumer keeping
|
|
31564
|
+
* the fact fresh) or picking a post-buffer long enough to cover every job,
|
|
31565
|
+
* which records the dock for that long after every short one. So the recorder
|
|
31566
|
+
* reads the LEVEL: it records for as long as `active` is true, plus the band's
|
|
31567
|
+
* own post-buffer once it falls.
|
|
31568
|
+
*
|
|
31569
|
+
* Who owns the fact: the PROVIDER of the device, which already reads the state
|
|
31570
|
+
* the signal is derived from (the vacuum's lifecycle state, for Dreame). It
|
|
31571
|
+
* writes this slice on every change; consumers subscribe to the kernel's
|
|
31572
|
+
* `DeviceStateChanged` for it and read it back through
|
|
31573
|
+
* `deviceState.getCapSlice` to reconcile — never a second copy, never a poll
|
|
31574
|
+
* against the device (D224, D8/D11).
|
|
31575
|
+
*
|
|
31576
|
+
* Deliberately NOT a `binary` sensor on the camera: a binary sensor is exported
|
|
31577
|
+
* to Home Assistant, HomeKit and the sensor picker as a thing an operator can
|
|
31578
|
+
* bind, and "the camera wants to record" is not a room sensor. It is a fact
|
|
31579
|
+
* about the camera, on the camera.
|
|
31580
|
+
*/
|
|
31581
|
+
var RecordingSignalStatusSchema = zod.z.object({
|
|
31582
|
+
/** True while the device asks to be recorded. */
|
|
31583
|
+
active: zod.z.boolean(),
|
|
31584
|
+
/**
|
|
31585
|
+
* Why, in the provider's own vocabulary (a vacuum's `cleaning` / `docked`,
|
|
31586
|
+
* …). Free text for the log line and the UI badge; the recorder never
|
|
31587
|
+
* branches on it.
|
|
31588
|
+
*/
|
|
31589
|
+
reason: zod.z.string(),
|
|
31590
|
+
/** Ms epoch of the last `active` transition. 0 if never observed. */
|
|
31591
|
+
lastChangedAt: zod.z.number()
|
|
31592
|
+
});
|
|
31593
|
+
/** The runtime-state slice: the status plus the clock every slice carries. */
|
|
31594
|
+
var RecordingSignalRuntimeStateSchema = RecordingSignalStatusSchema.extend({ lastFetchedAt: zod.z.number() });
|
|
31595
|
+
var recordingSignalCapability = {
|
|
31596
|
+
name: "recording-signal",
|
|
31597
|
+
scope: "device",
|
|
31598
|
+
deviceNative: true,
|
|
31599
|
+
mode: "singleton",
|
|
31600
|
+
deviceTypes: [DeviceType.Camera],
|
|
31601
|
+
methods: {
|
|
31602
|
+
/** The current level, straight from the slice the provider keeps fresh. */
|
|
31603
|
+
getStatus: method(zod.z.object({ deviceId: zod.z.number() }), RecordingSignalStatusSchema) },
|
|
31604
|
+
status: {
|
|
31605
|
+
schema: RecordingSignalStatusSchema,
|
|
31606
|
+
kind: "push",
|
|
31607
|
+
empty: {
|
|
31608
|
+
active: false,
|
|
31609
|
+
reason: "unknown",
|
|
31610
|
+
lastChangedAt: 0
|
|
31611
|
+
}
|
|
31612
|
+
},
|
|
31613
|
+
runtimeState: RecordingSignalRuntimeStateSchema,
|
|
31614
|
+
/**
|
|
31615
|
+
* Runtime-state durability: **session** — a restored `active: true` from
|
|
31616
|
+
* before a restart is exactly the stale level the recorder's reconcile bound
|
|
31617
|
+
* exists to end, and the provider re-derives the true level on activation
|
|
31618
|
+
* anyway. Nothing is lost by forgetting it; a lie is avoided.
|
|
31619
|
+
*
|
|
31620
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
31621
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
31622
|
+
*/
|
|
31623
|
+
durability: "session"
|
|
31624
|
+
};
|
|
31625
|
+
/**
|
|
31517
31626
|
* scene-monitor — device-scoped reference-region state cap. An operator marks
|
|
31518
31627
|
* a rect ROI on a camera frame and names one or more states; the engine
|
|
31519
31628
|
* (pipeline-analytics, designated post-processing node) reports which state is
|
|
@@ -32011,6 +32120,8 @@ var CamStreamDescriptorSchema = zod.z.object({
|
|
|
32011
32120
|
deviceFeatures: zod.z.array(zod.z.string()).optional(),
|
|
32012
32121
|
/** Eligible for automatic profile assignment. Absent = `true`. */
|
|
32013
32122
|
autoEligible: zod.z.boolean().optional(),
|
|
32123
|
+
/** The slot the publisher says this stream IS — see `CameraStreamSchema.profileHint`. */
|
|
32124
|
+
profileHint: CamProfileSchema.optional(),
|
|
32014
32125
|
/** Transport-specific opaque metadata (e.g. rfc4571 SDP). */
|
|
32015
32126
|
metadata: zod.z.record(zod.z.string(), zod.z.unknown()).optional()
|
|
32016
32127
|
});
|
|
@@ -34988,6 +35099,7 @@ var CAP_NAMES_WITH_STATUS = [
|
|
|
34988
35099
|
"ptz",
|
|
34989
35100
|
"ptz-autotrack",
|
|
34990
35101
|
"recording",
|
|
35102
|
+
"recording-signal",
|
|
34991
35103
|
"scene-monitor",
|
|
34992
35104
|
"script-runner",
|
|
34993
35105
|
"smoke",
|
|
@@ -35130,6 +35242,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
|
|
|
35130
35242
|
rebootCapability,
|
|
35131
35243
|
recordingCapability,
|
|
35132
35244
|
recordingExportCapability,
|
|
35245
|
+
recordingSignalCapability,
|
|
35133
35246
|
sceneMonitorCapability,
|
|
35134
35247
|
scriptRunnerCapability,
|
|
35135
35248
|
serverManagementCapability,
|
|
@@ -39807,6 +39920,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
39807
39920
|
addonId: null,
|
|
39808
39921
|
access: "view"
|
|
39809
39922
|
},
|
|
39923
|
+
"recordingSignal.getStatus": {
|
|
39924
|
+
capName: "recording-signal",
|
|
39925
|
+
capScope: "device",
|
|
39926
|
+
addonId: null,
|
|
39927
|
+
access: "view"
|
|
39928
|
+
},
|
|
39810
39929
|
"sceneMonitor.captureReference": {
|
|
39811
39930
|
capName: "scene-monitor",
|
|
39812
39931
|
capScope: "device",
|
|
@@ -42799,6 +42918,11 @@ Object.freeze({
|
|
|
42799
42918
|
form: "single",
|
|
42800
42919
|
optional: true
|
|
42801
42920
|
}],
|
|
42921
|
+
"recordingSignal.getStatus": [{
|
|
42922
|
+
name: "deviceId",
|
|
42923
|
+
form: "single",
|
|
42924
|
+
optional: false
|
|
42925
|
+
}],
|
|
42802
42926
|
"sceneMonitor.captureReference": [{
|
|
42803
42927
|
name: "deviceId",
|
|
42804
42928
|
form: "single",
|
|
@@ -43152,7 +43276,7 @@ Object.freeze({
|
|
|
43152
43276
|
});
|
|
43153
43277
|
/**
|
|
43154
43278
|
* Per-cap runtime-state policy, projected from every `*.cap.ts` that declares
|
|
43155
|
-
* `runtimeState`.
|
|
43279
|
+
* `runtimeState`. 67 caps: 35 `restored`, 32 `session`.
|
|
43156
43280
|
*
|
|
43157
43281
|
* A cap absent from this map has no runtime-state slice at all. A cap PRESENT
|
|
43158
43282
|
* with `durability: 'session'` has one and has decided not to keep it.
|
|
@@ -43354,6 +43478,10 @@ var RUNTIME_STATE_POLICY = {
|
|
|
43354
43478
|
durability: "session",
|
|
43355
43479
|
volatileFields: []
|
|
43356
43480
|
},
|
|
43481
|
+
"recording-signal": {
|
|
43482
|
+
durability: "session",
|
|
43483
|
+
volatileFields: []
|
|
43484
|
+
},
|
|
43357
43485
|
"scene-monitor": {
|
|
43358
43486
|
durability: "session",
|
|
43359
43487
|
volatileFields: []
|
|
@@ -737,6 +737,12 @@ var WELL_KNOWN_TAB_MAP = Object.fromEntries([
|
|
|
737
737
|
icon: "move",
|
|
738
738
|
order: 40
|
|
739
739
|
},
|
|
740
|
+
{
|
|
741
|
+
id: "navigation",
|
|
742
|
+
label: "Navigation",
|
|
743
|
+
icon: "compass",
|
|
744
|
+
order: 41
|
|
745
|
+
},
|
|
740
746
|
{
|
|
741
747
|
id: "consumables",
|
|
742
748
|
label: "Consumables",
|
|
@@ -1777,6 +1783,21 @@ var CameraStreamSchema = z.object({
|
|
|
1777
1783
|
*/
|
|
1778
1784
|
autoEligible: z.boolean().optional(),
|
|
1779
1785
|
/**
|
|
1786
|
+
* The profile slot the PUBLISHER says this stream is: `low` for a stream
|
|
1787
|
+
* whose only sensible role is the low-bandwidth one, `high` for a main
|
|
1788
|
+
* stream. Consulted by the broker's automatic ranking
|
|
1789
|
+
* (`rankInitialAssignment`) BEFORE the pixel-count heuristic, and only there:
|
|
1790
|
+
* an operator's manual assignment still wins, and an absent hint is the
|
|
1791
|
+
* pixel-ranked default every camera had before this field existed.
|
|
1792
|
+
*
|
|
1793
|
+
* Why it exists: a camera with ONE stream ranked to `mid` — the slot no
|
|
1794
|
+
* storage class is written for on its own (`recordings` is high|mid,
|
|
1795
|
+
* `recordingsLow` is low) and the one profile scrub does not read. The robot
|
|
1796
|
+
* camera's single 720p relay is a `low` in every respect except the slot the
|
|
1797
|
+
* heuristic put it in.
|
|
1798
|
+
*/
|
|
1799
|
+
profileHint: CamProfileSchema.optional(),
|
|
1800
|
+
/**
|
|
1780
1801
|
* Transport-specific opaque metadata. The broker passes it through to
|
|
1781
1802
|
* the source reader without inspecting it. Currently used by
|
|
1782
1803
|
* `pull-rfc4571` streams to carry the upstream SDP (so the reader can
|
|
@@ -4088,7 +4109,22 @@ var RecordingTriggersSchema = z.object({
|
|
|
4088
4109
|
* il livello: un contatto trovato già aperto al riavvio del runner non fa
|
|
4089
4110
|
* registrare.
|
|
4090
4111
|
*/
|
|
4091
|
-
sensorDeviceIds: z.array(z.number().int().positive()).min(1).max(16).refine(noDuplicates, { message: "sensorDeviceIds must not repeat a device" }).optional()
|
|
4112
|
+
sensorDeviceIds: z.array(z.number().int().positive()).min(1).max(16).refine(noDuplicates, { message: "sensorDeviceIds must not repeat a device" }).optional(),
|
|
4113
|
+
/**
|
|
4114
|
+
* La camera registra per tutta la durata del SEGNALE che lei stessa
|
|
4115
|
+
* pubblica — la cap `recording-signal` (`active: true` mentre il device è in
|
|
4116
|
+
* funzione: un robot che pulisce). È un LIVELLO, non un fronte: la finestra
|
|
4117
|
+
* resta aperta finché il segnale è alto e si chiude `postBufferSec` dopo la
|
|
4118
|
+
* caduta, così una pulizia di quaranta minuti è UNA clip.
|
|
4119
|
+
*
|
|
4120
|
+
* Non nomina un device: il segnale è della camera stessa, tenuto fresco dal
|
|
4121
|
+
* suo provider (D224); il recorder lo ascolta su `DeviceStateChanged` e lo
|
|
4122
|
+
* riconcilia leggendo la slice via RPC, con un tetto oltre il quale un
|
|
4123
|
+
* segnale mai abbassato (un evento perso) non può tenere aperta una
|
|
4124
|
+
* registrazione (D11). Vedi `recorder/addon/band-decision.ts`
|
|
4125
|
+
* (`holdTrigger` / `releaseTrigger`).
|
|
4126
|
+
*/
|
|
4127
|
+
deviceSignal: z.boolean().optional()
|
|
4092
4128
|
});
|
|
4093
4129
|
/**
|
|
4094
4130
|
* Mode of a single recording band — the recorder per-band vocabulary.
|
|
@@ -8193,6 +8229,8 @@ var streamBrokerCapability = {
|
|
|
8193
8229
|
label: z.string().optional(),
|
|
8194
8230
|
deviceFeatures: z.array(z.string()).optional(),
|
|
8195
8231
|
autoEligible: z.boolean().optional(),
|
|
8232
|
+
/** The slot the publisher says this stream IS — see `CameraStreamSchema.profileHint`. */
|
|
8233
|
+
profileHint: CamProfileSchema.optional(),
|
|
8196
8234
|
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
8197
8235
|
/** Required when kind === 'derived' — the source camStreamId the
|
|
8198
8236
|
* derived broker reads its encoded plane from.
|
|
@@ -31514,6 +31552,77 @@ var recordingExportCapability = {
|
|
|
31514
31552
|
}
|
|
31515
31553
|
};
|
|
31516
31554
|
/**
|
|
31555
|
+
* A camera's own "record me NOW" LEVEL — a signal the device raises while
|
|
31556
|
+
* something it knows about is happening (a robot vacuum cleaning, a machine
|
|
31557
|
+
* running, a gate open) and lowers when it stops.
|
|
31558
|
+
*
|
|
31559
|
+
* It is a level, not an edge. The sensor triggers the recorder already listens
|
|
31560
|
+
* to (`SOURCE_CAP_ACTIVE_FIELD`) fire on a rising edge and record for a fixed
|
|
31561
|
+
* post-buffer; a cleaning lasts forty minutes, and forty minutes of "this is
|
|
31562
|
+
* still happening" cannot be expressed as an edge plus a post-buffer without
|
|
31563
|
+
* either re-triggering on a timer (polling — D224 forbids the consumer keeping
|
|
31564
|
+
* the fact fresh) or picking a post-buffer long enough to cover every job,
|
|
31565
|
+
* which records the dock for that long after every short one. So the recorder
|
|
31566
|
+
* reads the LEVEL: it records for as long as `active` is true, plus the band's
|
|
31567
|
+
* own post-buffer once it falls.
|
|
31568
|
+
*
|
|
31569
|
+
* Who owns the fact: the PROVIDER of the device, which already reads the state
|
|
31570
|
+
* the signal is derived from (the vacuum's lifecycle state, for Dreame). It
|
|
31571
|
+
* writes this slice on every change; consumers subscribe to the kernel's
|
|
31572
|
+
* `DeviceStateChanged` for it and read it back through
|
|
31573
|
+
* `deviceState.getCapSlice` to reconcile — never a second copy, never a poll
|
|
31574
|
+
* against the device (D224, D8/D11).
|
|
31575
|
+
*
|
|
31576
|
+
* Deliberately NOT a `binary` sensor on the camera: a binary sensor is exported
|
|
31577
|
+
* to Home Assistant, HomeKit and the sensor picker as a thing an operator can
|
|
31578
|
+
* bind, and "the camera wants to record" is not a room sensor. It is a fact
|
|
31579
|
+
* about the camera, on the camera.
|
|
31580
|
+
*/
|
|
31581
|
+
var RecordingSignalStatusSchema = z.object({
|
|
31582
|
+
/** True while the device asks to be recorded. */
|
|
31583
|
+
active: z.boolean(),
|
|
31584
|
+
/**
|
|
31585
|
+
* Why, in the provider's own vocabulary (a vacuum's `cleaning` / `docked`,
|
|
31586
|
+
* …). Free text for the log line and the UI badge; the recorder never
|
|
31587
|
+
* branches on it.
|
|
31588
|
+
*/
|
|
31589
|
+
reason: z.string(),
|
|
31590
|
+
/** Ms epoch of the last `active` transition. 0 if never observed. */
|
|
31591
|
+
lastChangedAt: z.number()
|
|
31592
|
+
});
|
|
31593
|
+
/** The runtime-state slice: the status plus the clock every slice carries. */
|
|
31594
|
+
var RecordingSignalRuntimeStateSchema = RecordingSignalStatusSchema.extend({ lastFetchedAt: z.number() });
|
|
31595
|
+
var recordingSignalCapability = {
|
|
31596
|
+
name: "recording-signal",
|
|
31597
|
+
scope: "device",
|
|
31598
|
+
deviceNative: true,
|
|
31599
|
+
mode: "singleton",
|
|
31600
|
+
deviceTypes: [DeviceType.Camera],
|
|
31601
|
+
methods: {
|
|
31602
|
+
/** The current level, straight from the slice the provider keeps fresh. */
|
|
31603
|
+
getStatus: method(z.object({ deviceId: z.number() }), RecordingSignalStatusSchema) },
|
|
31604
|
+
status: {
|
|
31605
|
+
schema: RecordingSignalStatusSchema,
|
|
31606
|
+
kind: "push",
|
|
31607
|
+
empty: {
|
|
31608
|
+
active: false,
|
|
31609
|
+
reason: "unknown",
|
|
31610
|
+
lastChangedAt: 0
|
|
31611
|
+
}
|
|
31612
|
+
},
|
|
31613
|
+
runtimeState: RecordingSignalRuntimeStateSchema,
|
|
31614
|
+
/**
|
|
31615
|
+
* Runtime-state durability: **session** — a restored `active: true` from
|
|
31616
|
+
* before a restart is exactly the stale level the recorder's reconcile bound
|
|
31617
|
+
* exists to end, and the provider re-derives the true level on activation
|
|
31618
|
+
* anyway. Nothing is lost by forgetting it; a lie is avoided.
|
|
31619
|
+
*
|
|
31620
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
31621
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
31622
|
+
*/
|
|
31623
|
+
durability: "session"
|
|
31624
|
+
};
|
|
31625
|
+
/**
|
|
31517
31626
|
* scene-monitor — device-scoped reference-region state cap. An operator marks
|
|
31518
31627
|
* a rect ROI on a camera frame and names one or more states; the engine
|
|
31519
31628
|
* (pipeline-analytics, designated post-processing node) reports which state is
|
|
@@ -32011,6 +32120,8 @@ var CamStreamDescriptorSchema = z.object({
|
|
|
32011
32120
|
deviceFeatures: z.array(z.string()).optional(),
|
|
32012
32121
|
/** Eligible for automatic profile assignment. Absent = `true`. */
|
|
32013
32122
|
autoEligible: z.boolean().optional(),
|
|
32123
|
+
/** The slot the publisher says this stream IS — see `CameraStreamSchema.profileHint`. */
|
|
32124
|
+
profileHint: CamProfileSchema.optional(),
|
|
32014
32125
|
/** Transport-specific opaque metadata (e.g. rfc4571 SDP). */
|
|
32015
32126
|
metadata: z.record(z.string(), z.unknown()).optional()
|
|
32016
32127
|
});
|
|
@@ -34988,6 +35099,7 @@ var CAP_NAMES_WITH_STATUS = [
|
|
|
34988
35099
|
"ptz",
|
|
34989
35100
|
"ptz-autotrack",
|
|
34990
35101
|
"recording",
|
|
35102
|
+
"recording-signal",
|
|
34991
35103
|
"scene-monitor",
|
|
34992
35104
|
"script-runner",
|
|
34993
35105
|
"smoke",
|
|
@@ -35130,6 +35242,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
|
|
|
35130
35242
|
rebootCapability,
|
|
35131
35243
|
recordingCapability,
|
|
35132
35244
|
recordingExportCapability,
|
|
35245
|
+
recordingSignalCapability,
|
|
35133
35246
|
sceneMonitorCapability,
|
|
35134
35247
|
scriptRunnerCapability,
|
|
35135
35248
|
serverManagementCapability,
|
|
@@ -39807,6 +39920,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
39807
39920
|
addonId: null,
|
|
39808
39921
|
access: "view"
|
|
39809
39922
|
},
|
|
39923
|
+
"recordingSignal.getStatus": {
|
|
39924
|
+
capName: "recording-signal",
|
|
39925
|
+
capScope: "device",
|
|
39926
|
+
addonId: null,
|
|
39927
|
+
access: "view"
|
|
39928
|
+
},
|
|
39810
39929
|
"sceneMonitor.captureReference": {
|
|
39811
39930
|
capName: "scene-monitor",
|
|
39812
39931
|
capScope: "device",
|
|
@@ -42799,6 +42918,11 @@ Object.freeze({
|
|
|
42799
42918
|
form: "single",
|
|
42800
42919
|
optional: true
|
|
42801
42920
|
}],
|
|
42921
|
+
"recordingSignal.getStatus": [{
|
|
42922
|
+
name: "deviceId",
|
|
42923
|
+
form: "single",
|
|
42924
|
+
optional: false
|
|
42925
|
+
}],
|
|
42802
42926
|
"sceneMonitor.captureReference": [{
|
|
42803
42927
|
name: "deviceId",
|
|
42804
42928
|
form: "single",
|
|
@@ -43152,7 +43276,7 @@ Object.freeze({
|
|
|
43152
43276
|
});
|
|
43153
43277
|
/**
|
|
43154
43278
|
* Per-cap runtime-state policy, projected from every `*.cap.ts` that declares
|
|
43155
|
-
* `runtimeState`.
|
|
43279
|
+
* `runtimeState`. 67 caps: 35 `restored`, 32 `session`.
|
|
43156
43280
|
*
|
|
43157
43281
|
* A cap absent from this map has no runtime-state slice at all. A cap PRESENT
|
|
43158
43282
|
* with `durability: 'session'` has one and has decided not to keep it.
|
|
@@ -43354,6 +43478,10 @@ var RUNTIME_STATE_POLICY = {
|
|
|
43354
43478
|
durability: "session",
|
|
43355
43479
|
volatileFields: []
|
|
43356
43480
|
},
|
|
43481
|
+
"recording-signal": {
|
|
43482
|
+
durability: "session",
|
|
43483
|
+
volatileFields: []
|
|
43484
|
+
},
|
|
43357
43485
|
"scene-monitor": {
|
|
43358
43486
|
durability: "session",
|
|
43359
43487
|
volatileFields: []
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
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-BNaW68aZ.js");
|
|
4
4
|
const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
|
|
5
5
|
require("./builtins/alerts/index.js");
|
|
6
6
|
const require_formatter = require("./formatter-DqAKDlvN.js");
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM$1, r as __exportAll, t as __commonJSMin$1 } from "./chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { Ct as scopesAllowAddon, Ft as errMsg$1, Jt as asString$1, Kt as asJsonObject$1, Lt as DATAPLANE_SECRET_HEADER$1, O as addonSettingsCapability, Qt as expandCapMethods, Rt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Ut as ReadinessRegistry, Wt as ReadinessTimeoutError, Xt as emitDownForOwnedCaps, Yt as createEvent, Z as extractNestedAddonId, _t as procedureAuthKey, an as resolveCapMount, at as isVoidInput, cn as EventCategory$1, dt as looseSchema, et as isArrayOutputSchema, g as RUNTIME_DEFAULTS, in as readinessKey, m as METHOD_ACCESS_MAP, mt as objectInputDeclaresAddonId, nn as parseJsonObject, nt as isObjectInput, on as scopeKey, ot as kebabToCamel, p as LOG_LEVEL_RANK, qt as asNumber, rn as parseJsonUnknown, st as lifecycleJobSchema, t as ALL_CAPABILITY_DEFINITIONS, tt as isCollectionArrayMethod, ut as logLevelAtMost, wt as scopesAllowDeviceCap, xt as resolveMethodAuth, zt as DEVICE_STATUS_METHOD } from "./dist-
|
|
2
|
+
import { Ct as scopesAllowAddon, Ft as errMsg$1, Jt as asString$1, Kt as asJsonObject$1, Lt as DATAPLANE_SECRET_HEADER$1, O as addonSettingsCapability, Qt as expandCapMethods, Rt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Ut as ReadinessRegistry, Wt as ReadinessTimeoutError, Xt as emitDownForOwnedCaps, Yt as createEvent, Z as extractNestedAddonId, _t as procedureAuthKey, an as resolveCapMount, at as isVoidInput, cn as EventCategory$1, dt as looseSchema, et as isArrayOutputSchema, g as RUNTIME_DEFAULTS, in as readinessKey, m as METHOD_ACCESS_MAP, mt as objectInputDeclaresAddonId, nn as parseJsonObject, nt as isObjectInput, on as scopeKey, ot as kebabToCamel, p as LOG_LEVEL_RANK, qt as asNumber, rn as parseJsonUnknown, st as lifecycleJobSchema, t as ALL_CAPABILITY_DEFINITIONS, tt as isCollectionArrayMethod, ut as logLevelAtMost, wt as scopesAllowDeviceCap, xt as resolveMethodAuth, zt as DEVICE_STATUS_METHOD } from "./dist-DWnHJI2T.mjs";
|
|
3
3
|
import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
|
|
4
4
|
import "./builtins/alerts/index.mjs";
|
|
5
5
|
import { t as formatLogLine } from "./formatter-B7qW8bPJ.mjs";
|