@camstack/system 1.2.233 → 1.2.235
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 +1 -1
- package/dist/addon-runner.mjs +1 -1
- package/dist/addon-utils.js +1 -1
- package/dist/addon-utils.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 +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/contribution-cache.d.ts +68 -0
- package/dist/builtins/device-manager/device-config-contribution.d.ts +0 -1
- package/dist/builtins/device-manager/device-manager.addon.js +176 -83
- package/dist/builtins/device-manager/device-manager.addon.mjs +177 -84
- 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/{custom-action-registry-CFHYDHAu.mjs → custom-action-registry-B4Cf4O_X.mjs} +1 -1
- package/dist/{custom-action-registry-CWFK5UDj.js → custom-action-registry-acBY3mHA.js} +2 -2
- package/dist/{dist-BIvXRexm.mjs → dist-CGG0rSEx.mjs} +78 -35
- package/dist/{dist-D3lJV9M7.js → dist-Ctn_E3-0.js} +77 -40
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{retired-settings-keys-YPsd2Exa.js → retired-settings-keys-B209Nykf.js} +1 -1
- package/dist/{retired-settings-keys-CV3ZLGnJ.mjs → retired-settings-keys-oo4mt1CU.mjs} +1 -1
- package/package.json +1 -1
- package/dist/builtins/device-manager/native-object-detection-config-schema.d.ts +0 -3
|
@@ -690,7 +690,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
690
690
|
return EventCategory;
|
|
691
691
|
}({});
|
|
692
692
|
//#endregion
|
|
693
|
-
//#region ../types/dist/sleep-
|
|
693
|
+
//#region ../types/dist/sleep-B9qx0cEV.mjs
|
|
694
694
|
/**
|
|
695
695
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
696
696
|
* window to float samples (D455).
|
|
@@ -8558,6 +8558,21 @@ var streamSignalsCapability = {
|
|
|
8558
8558
|
mode: "singleton",
|
|
8559
8559
|
deviceTypes: Object.values(DeviceType),
|
|
8560
8560
|
runtimeState: StreamSignalsStatusSchema,
|
|
8561
|
+
/**
|
|
8562
|
+
* Runtime-state durability: **session** — mirrored in RAM, never written.
|
|
8563
|
+
*
|
|
8564
|
+
* The slice holds what the DEVICE says it can emit. That is a probed fact,
|
|
8565
|
+
* not an operator choice: the provider re-declares it on every registration,
|
|
8566
|
+
* so losing it loses nothing and persisting it would freeze an answer the
|
|
8567
|
+
* camera is entitled to change. Measured the same day on the sibling case —
|
|
8568
|
+
* `native-object-detection.supportedClasses` was persisted, and a firmware
|
|
8569
|
+
* class the camera really detected stayed missing for the life of the row
|
|
8570
|
+
* because the fix could not reach it.
|
|
8571
|
+
*
|
|
8572
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
8573
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
8574
|
+
*/
|
|
8575
|
+
durability: "session",
|
|
8561
8576
|
methods: {
|
|
8562
8577
|
/**
|
|
8563
8578
|
* What this device can emit. Empty is a valid and common answer — most
|
|
@@ -10056,17 +10071,6 @@ var coreBlocksCapability = {
|
|
|
10056
10071
|
})) }), { auth: "admin" })
|
|
10057
10072
|
}
|
|
10058
10073
|
};
|
|
10059
|
-
/** Strip a catalog to what crosses the wire. Pure; the schemas are not touched. */
|
|
10060
|
-
function describeCustomActions(catalog) {
|
|
10061
|
-
const out = {};
|
|
10062
|
-
for (const [name, spec] of Object.entries(catalog)) out[name] = {
|
|
10063
|
-
kind: spec.kind,
|
|
10064
|
-
auth: spec.auth,
|
|
10065
|
-
scope: spec.scope,
|
|
10066
|
-
...spec.caller === "required" ? { caller: "required" } : {}
|
|
10067
|
-
};
|
|
10068
|
-
return out;
|
|
10069
|
-
}
|
|
10070
10074
|
/**
|
|
10071
10075
|
* `custom-model-registry` — collection cap exposing operator-registered
|
|
10072
10076
|
* custom detection models. Each provider (today: `addon-model-studio`)
|
|
@@ -21208,6 +21212,14 @@ var MotionSourceEnum = z.enum([
|
|
|
21208
21212
|
*/
|
|
21209
21213
|
var MotionSourcesSchema = z.array(MotionSourceEnum);
|
|
21210
21214
|
/**
|
|
21215
|
+
* Which root detectors a camera runs. Deliberately the SAME vocabulary
|
|
21216
|
+
* post-analysis already tags every detection with (`DetectionSource`) rather
|
|
21217
|
+
* than a second spelling of the same two ideas — the value an operator picks
|
|
21218
|
+
* here is the value that comes back on the track, the overlay and the debug
|
|
21219
|
+
* row.
|
|
21220
|
+
*/
|
|
21221
|
+
var DetectionSourcesSchema = z.array(DetectionSourceSchema);
|
|
21222
|
+
/**
|
|
21211
21223
|
* Input shape for `pipeline-runner.reportMotion` cap method. Exported
|
|
21212
21224
|
* so cap-side consumers (the orchestrator forward, the runner addon's
|
|
21213
21225
|
* cap implementation, tests) can reuse the type instead of redeclaring
|
|
@@ -21358,6 +21370,35 @@ var RunnerCameraConfigSchema = z.object({
|
|
|
21358
21370
|
* events; the orchestrator forwards to `reportMotion`.
|
|
21359
21371
|
*/
|
|
21360
21372
|
motionSources: MotionSourcesSchema.default(["analyzer"]),
|
|
21373
|
+
/**
|
|
21374
|
+
* WHICH root detector runs for this camera. The detection counterpart of
|
|
21375
|
+
* {@link motionSources}, same shape and same discipline: a per-camera list
|
|
21376
|
+
* of sources the system understands, vendor-agnostic, owned here.
|
|
21377
|
+
*
|
|
21378
|
+
* - `pipeline` — this runner's own root step on decoded pixels (`steps`).
|
|
21379
|
+
* - `onboard` — the CAMERA's own detector, admitted only when it is named
|
|
21380
|
+
* here. Its boxes reach post-analysis on the same
|
|
21381
|
+
* `PipelineInferenceResult` payload as the pipeline's, so an onboard-born
|
|
21382
|
+
* track gets the same tracker, the same overlay and the same detail
|
|
21383
|
+
* subtree (face / plate / embedding).
|
|
21384
|
+
*
|
|
21385
|
+
* `['onboard']` alone is the REPLACEMENT: this runner's root step does not
|
|
21386
|
+
* run, and that is where a camera with a usable onboard detector buys back
|
|
21387
|
+
* its share of the accelerator. It saves the root inference, not the decode
|
|
21388
|
+
* — the detail subtree still needs pixels to cut crops from.
|
|
21389
|
+
*
|
|
21390
|
+
* A camera whose onboard detections carry no geometry cannot serve as a root
|
|
21391
|
+
* step at all (there is nothing to track), and the cap that knows this says
|
|
21392
|
+
* so on `native-object-detection.getOptions().geometry`. On Reolink that is
|
|
21393
|
+
* every battery camera: the boxes ride a sub-stream a battery camera never
|
|
21394
|
+
* attaches, so such a camera stays on `['pipeline']` and its onboard AI is
|
|
21395
|
+
* worth exactly what it already is — a wake signal with a class.
|
|
21396
|
+
*
|
|
21397
|
+
* Defaults to `['pipeline']`, which is byte-for-byte today's behaviour: a
|
|
21398
|
+
* vendor never turns a detector on for the operator, and neither does a
|
|
21399
|
+
* default.
|
|
21400
|
+
*/
|
|
21401
|
+
detectionSources: DetectionSourcesSchema.default(["pipeline"]),
|
|
21361
21402
|
pipelineEnabled: z.boolean().default(true),
|
|
21362
21403
|
/** Ordered tree of video steps. Absent → runner skips video detection. */
|
|
21363
21404
|
steps: z.array(PipelineStepInputSchema).readonly().optional(),
|
|
@@ -30182,31 +30223,38 @@ var NativeObjectDetectionStatusSchema = z.object({
|
|
|
30182
30223
|
/**
|
|
30183
30224
|
* Whether forwarding of onboard AI detections is enabled for this device.
|
|
30184
30225
|
*
|
|
30185
|
-
*
|
|
30186
|
-
*
|
|
30187
|
-
*
|
|
30188
|
-
*
|
|
30189
|
-
*
|
|
30190
|
-
* costs. {@link NativeObjectDetectionOptionsSchema.geometry} is how the UI
|
|
30191
|
-
* says which of the two a camera is.
|
|
30226
|
+
* Cold-start OFF on every camera. A vendor does not decide which detector a
|
|
30227
|
+
* camera runs — that is the operator's choice, and it is made where every
|
|
30228
|
+
* other detection choice is made. `geometry` on
|
|
30229
|
+
* {@link NativeObjectDetectionOptionsSchema} is how the form says what the
|
|
30230
|
+
* choice would buy this particular camera.
|
|
30192
30231
|
*/
|
|
30193
30232
|
enabled: z.boolean()
|
|
30194
30233
|
});
|
|
30195
30234
|
/**
|
|
30196
|
-
*
|
|
30235
|
+
* WHEN a camera's onboard detections carry geometry.
|
|
30197
30236
|
*
|
|
30198
|
-
* `boxed` —
|
|
30199
|
-
* a subject the
|
|
30200
|
-
* `
|
|
30201
|
-
*
|
|
30202
|
-
*
|
|
30203
|
-
*
|
|
30237
|
+
* - `boxed` — always. The provider holds a standing channel for the boxes, so
|
|
30238
|
+
* a detection is a trackable subject whenever the camera sees one.
|
|
30239
|
+
* - `while-streaming` — only while some stream of this camera is already open.
|
|
30240
|
+
* The boxes ride the video's own side-channel rather than a feed of their
|
|
30241
|
+
* own, so they cost nothing and they exist only when something is pulling.
|
|
30242
|
+
* On Reolink this is every BATTERY camera: a persistent second feed is real
|
|
30243
|
+
* radio drain, but a camera that is awake is awake precisely because
|
|
30244
|
+
* something is in front of it, and its stream is already being pulled.
|
|
30245
|
+
* - `flag-only` — never. The firmware ships the class and nothing else; the
|
|
30246
|
+
* pipeline needs geometry to make a subject, so such a push reaches the
|
|
30247
|
+
* tracker as motion and no further.
|
|
30204
30248
|
*
|
|
30205
30249
|
* Reported and not inferred, because the operator's question in front of the
|
|
30206
|
-
*
|
|
30207
|
-
*
|
|
30250
|
+
* picker is "what do I get", and these are three different answers (D14: the
|
|
30251
|
+
* derived form is only as honest as `getOptions`).
|
|
30208
30252
|
*/
|
|
30209
|
-
var NativeObjectGeometryEnum = z.enum([
|
|
30253
|
+
var NativeObjectGeometryEnum = z.enum([
|
|
30254
|
+
"boxed",
|
|
30255
|
+
"while-streaming",
|
|
30256
|
+
"flag-only"
|
|
30257
|
+
]);
|
|
30210
30258
|
var NativeObjectDetectionOptionsSchema = z.object({
|
|
30211
30259
|
/** Classes this firmware can detect — the same list the status reports. */
|
|
30212
30260
|
supportedClasses: z.array(NativeObjectClassEnum).readonly(),
|
|
@@ -30223,11 +30271,6 @@ var nativeObjectDetectionCapability = {
|
|
|
30223
30271
|
deviceNative: true,
|
|
30224
30272
|
mode: "singleton",
|
|
30225
30273
|
deviceTypes: [DeviceType.Camera],
|
|
30226
|
-
deviceConfig: { ui: {
|
|
30227
|
-
kind: "derived-form",
|
|
30228
|
-
builderId: "native-object-detection",
|
|
30229
|
-
tab: "motion"
|
|
30230
|
-
} },
|
|
30231
30274
|
methods: {
|
|
30232
30275
|
getOptions: method(z.object({ deviceId: z.number() }), NativeObjectDetectionOptionsSchema),
|
|
30233
30276
|
setSettings: method(z.object({
|
|
@@ -46358,4 +46401,4 @@ function enumerateInferenceDevices(hw) {
|
|
|
46358
46401
|
return out;
|
|
46359
46402
|
}
|
|
46360
46403
|
//#endregion
|
|
46361
|
-
export {
|
|
46404
|
+
export { evictionPolicyOfLocation as $, DeviceRole as $t, addonSettingsCapability as A, resolveLocationMode as At, coreBlockIdFromAddonId as B, storageOccupancyCapability as Bt, ScopedTokenSchema as C, objectInputDeclaresAddonId as Ct, StorageMigrationJobSchema as D, reducePoints as Dt, StorageLocationTypeSchema as E, procedureAuthKey as Et, bareAddonId as F, scoreRuntimes as Ft, deviceManagerCapability as G, vectorStoreCapability as Gt, dataStoreProviderCapability as H, streamQualityLabel as Ht, batteryCapability as I, settingsStoreCapability as It, doorbellCapability as J, BaseAddon as Jt, deviceStateCapability as K, withLocationMode as Kt, buildStreamParamsConfigSchema as L, snapshotCapability as Lt, alertsCapability as M, runtimeStatePolicyFor as Mt, authProviderCapability as N, scopesAllowAddon as Nt, UserRecordSchema as O, resolveBucketMs as Ot, backupCapability as P, scopesAllowDeviceCap as Pt, evaluateSensorEdge as Q, DeviceFeature as Qt, collectSecretConfigKeys as R, storageCapability as Rt, STREAM_PROFILE_META as S, normalizeUnit as St, StorageLocationModeSchema as T, platformProbeCapability as Tt, decodeVectorBase64 as U, userManagementCapability as Ut, coreBlocksCapability as V, storageProviderCapability as Vt, deriveBatteryPresence as W, vectorDimFromBase64 as Wt, enumerateItemArrayFields as X, DEVICE_SETTINGS_CONTRIBUTION_METHODS as Xt, enumerateInferenceDevices as Y, DATAPLANE_SECRET_HEADER as Yt, enumerateSchemaFields as Z, DEVICE_STATUS_METHOD as Zt, RUNTIME_DEFAULTS as _, resolveCapMount as _n, looseSchema as _t, CAMERA_SWITCH_ORDER as a, asNumber as an, isCollectionArrayMethod as at, SOURCE_DEVICE_TYPES as b, EventCategory as bn, metricsProviderCapability as bt, CORE_BLOCK_ADDON_PREFIX as c, emitDownForOwnedCaps as cn, isSameAddonId as ct, DeclaredDevices as d, hydrateSchema as dn, kebabToCamel as dt, DeviceType as en, extractNestedAddonId as et, DeviceStatusSchema as f, isDeviceConfigCap as fn, legacyModeOf as ft, REDACTED_SECRET as g, readinessKey as gn, logLevelAtMost as gt, METHOD_ACCESS_MAP as h, parseJsonUnknown as hn, logDestinationCapability as ht, BatteryStatusSchema as i, asJsonObject as in, isArrayOutputSchema as it, addonWidgetsCapability as j, resolveMethodAuth as jt, addonPagesCapability as k, resolveContainerPrimaryChild as kt, CoreBlockSchema as l, emitReadiness as ln, isSourceCap as lt, LegacyStorageLocationDefaultSchema as m, parseJsonObject as mn, localNetworkCapability as mt, AlertSchema as n, ReadinessTimeoutError as nn, foldSnapshotByFunction as nt, CAP_NAMES_WITH_STATUS as o, asString as on, isLocationEnabled as ot, LOG_LEVEL_RANK as p, nodePin as pn, lifecycleJobSchema as pt, deviceStatusCapability as q, errMsg as qt, ApiKeyRecordSchema as r, WELL_KNOWN_TAB_MAP as rn, gbToBytes as rt, CORE_BLOCKS_ADDON_ID as s, createEvent as sn, isObjectInput as st, ALL_CAPABILITY_DEFINITIONS as t, ReadinessRegistry as tn, filesystemBrowseCapability as tt, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as u, expandCapMethods as un, isVoidInput as ut, RecordingStatusSchema as v, scopeKey as vn, mayReadLocation as vt, StorageCleanupJobSchema as w, parseStreamParamsFormPatch as wt, STORAGE_ACCESS_FALLBACK as x, modeMayWrite as xt, SOURCE_CAPS as y, sleep as yn, mayWriteToLocation as yt, coreBlockAddonId as z, storageMigrationCapability as zt };
|
|
@@ -690,7 +690,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
690
690
|
return EventCategory;
|
|
691
691
|
}({});
|
|
692
692
|
//#endregion
|
|
693
|
-
//#region ../types/dist/sleep-
|
|
693
|
+
//#region ../types/dist/sleep-B9qx0cEV.mjs
|
|
694
694
|
/**
|
|
695
695
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
696
696
|
* window to float samples (D455).
|
|
@@ -8558,6 +8558,21 @@ var streamSignalsCapability = {
|
|
|
8558
8558
|
mode: "singleton",
|
|
8559
8559
|
deviceTypes: Object.values(DeviceType),
|
|
8560
8560
|
runtimeState: StreamSignalsStatusSchema,
|
|
8561
|
+
/**
|
|
8562
|
+
* Runtime-state durability: **session** — mirrored in RAM, never written.
|
|
8563
|
+
*
|
|
8564
|
+
* The slice holds what the DEVICE says it can emit. That is a probed fact,
|
|
8565
|
+
* not an operator choice: the provider re-declares it on every registration,
|
|
8566
|
+
* so losing it loses nothing and persisting it would freeze an answer the
|
|
8567
|
+
* camera is entitled to change. Measured the same day on the sibling case —
|
|
8568
|
+
* `native-object-detection.supportedClasses` was persisted, and a firmware
|
|
8569
|
+
* class the camera really detected stayed missing for the life of the row
|
|
8570
|
+
* because the fix could not reach it.
|
|
8571
|
+
*
|
|
8572
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
8573
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
8574
|
+
*/
|
|
8575
|
+
durability: "session",
|
|
8561
8576
|
methods: {
|
|
8562
8577
|
/**
|
|
8563
8578
|
* What this device can emit. Empty is a valid and common answer — most
|
|
@@ -10056,17 +10071,6 @@ var coreBlocksCapability = {
|
|
|
10056
10071
|
})) }), { auth: "admin" })
|
|
10057
10072
|
}
|
|
10058
10073
|
};
|
|
10059
|
-
/** Strip a catalog to what crosses the wire. Pure; the schemas are not touched. */
|
|
10060
|
-
function describeCustomActions(catalog) {
|
|
10061
|
-
const out = {};
|
|
10062
|
-
for (const [name, spec] of Object.entries(catalog)) out[name] = {
|
|
10063
|
-
kind: spec.kind,
|
|
10064
|
-
auth: spec.auth,
|
|
10065
|
-
scope: spec.scope,
|
|
10066
|
-
...spec.caller === "required" ? { caller: "required" } : {}
|
|
10067
|
-
};
|
|
10068
|
-
return out;
|
|
10069
|
-
}
|
|
10070
10074
|
/**
|
|
10071
10075
|
* `custom-model-registry` — collection cap exposing operator-registered
|
|
10072
10076
|
* custom detection models. Each provider (today: `addon-model-studio`)
|
|
@@ -21208,6 +21212,14 @@ var MotionSourceEnum = zod.z.enum([
|
|
|
21208
21212
|
*/
|
|
21209
21213
|
var MotionSourcesSchema = zod.z.array(MotionSourceEnum);
|
|
21210
21214
|
/**
|
|
21215
|
+
* Which root detectors a camera runs. Deliberately the SAME vocabulary
|
|
21216
|
+
* post-analysis already tags every detection with (`DetectionSource`) rather
|
|
21217
|
+
* than a second spelling of the same two ideas — the value an operator picks
|
|
21218
|
+
* here is the value that comes back on the track, the overlay and the debug
|
|
21219
|
+
* row.
|
|
21220
|
+
*/
|
|
21221
|
+
var DetectionSourcesSchema = zod.z.array(DetectionSourceSchema);
|
|
21222
|
+
/**
|
|
21211
21223
|
* Input shape for `pipeline-runner.reportMotion` cap method. Exported
|
|
21212
21224
|
* so cap-side consumers (the orchestrator forward, the runner addon's
|
|
21213
21225
|
* cap implementation, tests) can reuse the type instead of redeclaring
|
|
@@ -21358,6 +21370,35 @@ var RunnerCameraConfigSchema = zod.z.object({
|
|
|
21358
21370
|
* events; the orchestrator forwards to `reportMotion`.
|
|
21359
21371
|
*/
|
|
21360
21372
|
motionSources: MotionSourcesSchema.default(["analyzer"]),
|
|
21373
|
+
/**
|
|
21374
|
+
* WHICH root detector runs for this camera. The detection counterpart of
|
|
21375
|
+
* {@link motionSources}, same shape and same discipline: a per-camera list
|
|
21376
|
+
* of sources the system understands, vendor-agnostic, owned here.
|
|
21377
|
+
*
|
|
21378
|
+
* - `pipeline` — this runner's own root step on decoded pixels (`steps`).
|
|
21379
|
+
* - `onboard` — the CAMERA's own detector, admitted only when it is named
|
|
21380
|
+
* here. Its boxes reach post-analysis on the same
|
|
21381
|
+
* `PipelineInferenceResult` payload as the pipeline's, so an onboard-born
|
|
21382
|
+
* track gets the same tracker, the same overlay and the same detail
|
|
21383
|
+
* subtree (face / plate / embedding).
|
|
21384
|
+
*
|
|
21385
|
+
* `['onboard']` alone is the REPLACEMENT: this runner's root step does not
|
|
21386
|
+
* run, and that is where a camera with a usable onboard detector buys back
|
|
21387
|
+
* its share of the accelerator. It saves the root inference, not the decode
|
|
21388
|
+
* — the detail subtree still needs pixels to cut crops from.
|
|
21389
|
+
*
|
|
21390
|
+
* A camera whose onboard detections carry no geometry cannot serve as a root
|
|
21391
|
+
* step at all (there is nothing to track), and the cap that knows this says
|
|
21392
|
+
* so on `native-object-detection.getOptions().geometry`. On Reolink that is
|
|
21393
|
+
* every battery camera: the boxes ride a sub-stream a battery camera never
|
|
21394
|
+
* attaches, so such a camera stays on `['pipeline']` and its onboard AI is
|
|
21395
|
+
* worth exactly what it already is — a wake signal with a class.
|
|
21396
|
+
*
|
|
21397
|
+
* Defaults to `['pipeline']`, which is byte-for-byte today's behaviour: a
|
|
21398
|
+
* vendor never turns a detector on for the operator, and neither does a
|
|
21399
|
+
* default.
|
|
21400
|
+
*/
|
|
21401
|
+
detectionSources: DetectionSourcesSchema.default(["pipeline"]),
|
|
21361
21402
|
pipelineEnabled: zod.z.boolean().default(true),
|
|
21362
21403
|
/** Ordered tree of video steps. Absent → runner skips video detection. */
|
|
21363
21404
|
steps: zod.z.array(PipelineStepInputSchema).readonly().optional(),
|
|
@@ -30182,31 +30223,38 @@ var NativeObjectDetectionStatusSchema = zod.z.object({
|
|
|
30182
30223
|
/**
|
|
30183
30224
|
* Whether forwarding of onboard AI detections is enabled for this device.
|
|
30184
30225
|
*
|
|
30185
|
-
*
|
|
30186
|
-
*
|
|
30187
|
-
*
|
|
30188
|
-
*
|
|
30189
|
-
*
|
|
30190
|
-
* costs. {@link NativeObjectDetectionOptionsSchema.geometry} is how the UI
|
|
30191
|
-
* says which of the two a camera is.
|
|
30226
|
+
* Cold-start OFF on every camera. A vendor does not decide which detector a
|
|
30227
|
+
* camera runs — that is the operator's choice, and it is made where every
|
|
30228
|
+
* other detection choice is made. `geometry` on
|
|
30229
|
+
* {@link NativeObjectDetectionOptionsSchema} is how the form says what the
|
|
30230
|
+
* choice would buy this particular camera.
|
|
30192
30231
|
*/
|
|
30193
30232
|
enabled: zod.z.boolean()
|
|
30194
30233
|
});
|
|
30195
30234
|
/**
|
|
30196
|
-
*
|
|
30235
|
+
* WHEN a camera's onboard detections carry geometry.
|
|
30197
30236
|
*
|
|
30198
|
-
* `boxed` —
|
|
30199
|
-
* a subject the
|
|
30200
|
-
* `
|
|
30201
|
-
*
|
|
30202
|
-
*
|
|
30203
|
-
*
|
|
30237
|
+
* - `boxed` — always. The provider holds a standing channel for the boxes, so
|
|
30238
|
+
* a detection is a trackable subject whenever the camera sees one.
|
|
30239
|
+
* - `while-streaming` — only while some stream of this camera is already open.
|
|
30240
|
+
* The boxes ride the video's own side-channel rather than a feed of their
|
|
30241
|
+
* own, so they cost nothing and they exist only when something is pulling.
|
|
30242
|
+
* On Reolink this is every BATTERY camera: a persistent second feed is real
|
|
30243
|
+
* radio drain, but a camera that is awake is awake precisely because
|
|
30244
|
+
* something is in front of it, and its stream is already being pulled.
|
|
30245
|
+
* - `flag-only` — never. The firmware ships the class and nothing else; the
|
|
30246
|
+
* pipeline needs geometry to make a subject, so such a push reaches the
|
|
30247
|
+
* tracker as motion and no further.
|
|
30204
30248
|
*
|
|
30205
30249
|
* Reported and not inferred, because the operator's question in front of the
|
|
30206
|
-
*
|
|
30207
|
-
*
|
|
30250
|
+
* picker is "what do I get", and these are three different answers (D14: the
|
|
30251
|
+
* derived form is only as honest as `getOptions`).
|
|
30208
30252
|
*/
|
|
30209
|
-
var NativeObjectGeometryEnum = zod.z.enum([
|
|
30253
|
+
var NativeObjectGeometryEnum = zod.z.enum([
|
|
30254
|
+
"boxed",
|
|
30255
|
+
"while-streaming",
|
|
30256
|
+
"flag-only"
|
|
30257
|
+
]);
|
|
30210
30258
|
var NativeObjectDetectionOptionsSchema = zod.z.object({
|
|
30211
30259
|
/** Classes this firmware can detect — the same list the status reports. */
|
|
30212
30260
|
supportedClasses: zod.z.array(NativeObjectClassEnum).readonly(),
|
|
@@ -30223,11 +30271,6 @@ var nativeObjectDetectionCapability = {
|
|
|
30223
30271
|
deviceNative: true,
|
|
30224
30272
|
mode: "singleton",
|
|
30225
30273
|
deviceTypes: [DeviceType.Camera],
|
|
30226
|
-
deviceConfig: { ui: {
|
|
30227
|
-
kind: "derived-form",
|
|
30228
|
-
builderId: "native-object-detection",
|
|
30229
|
-
tab: "motion"
|
|
30230
|
-
} },
|
|
30231
30274
|
methods: {
|
|
30232
30275
|
getOptions: method(zod.z.object({ deviceId: zod.z.number() }), NativeObjectDetectionOptionsSchema),
|
|
30233
30276
|
setSettings: method(zod.z.object({
|
|
@@ -46712,12 +46755,6 @@ Object.defineProperty(exports, "deriveBatteryPresence", {
|
|
|
46712
46755
|
return deriveBatteryPresence;
|
|
46713
46756
|
}
|
|
46714
46757
|
});
|
|
46715
|
-
Object.defineProperty(exports, "describeCustomActions", {
|
|
46716
|
-
enumerable: true,
|
|
46717
|
-
get: function() {
|
|
46718
|
-
return describeCustomActions;
|
|
46719
|
-
}
|
|
46720
|
-
});
|
|
46721
46758
|
Object.defineProperty(exports, "deviceManagerCapability", {
|
|
46722
46759
|
enumerable: true,
|
|
46723
46760
|
get: function() {
|
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-Ctn_E3-0.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");
|
|
@@ -29,7 +29,7 @@ const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-CAs
|
|
|
29
29
|
const require_tls$1 = require("./tls-BFs4PzoW.js");
|
|
30
30
|
const require_manifest_system_deps = require("./manifest-system-deps-CrSP0Kkp.js");
|
|
31
31
|
const require_resource_monitor = require("./resource-monitor-LVE1BoLs.js");
|
|
32
|
-
const require_custom_action_registry = require("./custom-action-registry-
|
|
32
|
+
const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
|
|
33
33
|
let zod = require("zod");
|
|
34
34
|
let node_crypto = require("node:crypto");
|
|
35
35
|
let _camstack_types_node = require("@camstack/types/node");
|
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 { A as addonSettingsCapability,
|
|
2
|
+
import { A as addonSettingsCapability, Ct as objectInputDeclaresAddonId, Et as procedureAuthKey, Nt as scopesAllowAddon, Pt as scopesAllowDeviceCap, Xt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Yt as DATAPLANE_SECRET_HEADER$1, Zt as DEVICE_STATUS_METHOD, _ as RUNTIME_DEFAULTS, _n as resolveCapMount, _t as looseSchema, an as asNumber, at as isCollectionArrayMethod, bn as EventCategory$1, cn as emitDownForOwnedCaps, dt as kebabToCamel, et as extractNestedAddonId, gn as readinessKey, gt as logLevelAtMost, h as METHOD_ACCESS_MAP, hn as parseJsonUnknown, in as asJsonObject$1, it as isArrayOutputSchema, jt as resolveMethodAuth, mn as parseJsonObject, nn as ReadinessTimeoutError, on as asString$1, p as LOG_LEVEL_RANK, pt as lifecycleJobSchema, qt as errMsg$1, sn as createEvent, st as isObjectInput, t as ALL_CAPABILITY_DEFINITIONS, tn as ReadinessRegistry, un as expandCapMethods, ut as isVoidInput, vn as scopeKey } from "./dist-CGG0rSEx.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";
|
|
@@ -28,7 +28,7 @@ import { _ as fetchJson, a as createFileDataPlaneHandler, c as parseRangeHeader,
|
|
|
28
28
|
import { C as registerLanHttpHandler, S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, b as bindPendingLanHttp, c as loadTlsCert, d as collectCertIdentity, f as CA_VALIDITY_DAYS, g as evaluateExistingCert, h as SERVER_AUTH_OID, i as writeExtraSans, l as reissueTlsLeaf, m as MAX_LEAF_VALIDITY_DAYS, n as readTlsAccessStatus, o as validateUploadedTls, p as LEAF_RENEWAL_WINDOW_DAYS, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, u as CA_COMMON_NAME, v as allFamiliesListenHost, x as closeLanHttp, y as applyLanHttp } from "./tls-2xbgg78V.mjs";
|
|
29
29
|
import { $ as buildUdsNativeCapProxy, $t as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, A as createUdsLoggerWithControl, An as recordSocketFrame, At as HUB_MAIN_HEAP_WATCH_LABEL, B as readMoleculerFanoutMode, Bn as diffCapActionCensus, Bt as createLoopDelayMeter, C as ipcParentLink, Cn as createSocketPlaneMeter, Ct as runNpm, D as createUdsEventBus, Dn as readSocketQueues, Dt as HEAP_RECLAIM_TRIGGER_MB, E as createUdsEventBridge, En as formatSocketPlane, Et as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, F as CapRouteError, Fn as CAP_ACTION_UNLABELLED, Ft as RUNNER_HEAP_WATCH_INTERVAL_MS, G as createLocalTransport, Gn as formatEventPlane, Gt as parseRssBudgetMb, H as PARENT_ROUTED_PROVIDER_ADDON_ID, Hn as createEventPlaneMeter, Ht as describeRss, I as classifyCapRoute, In as EMPTY_CAP_ACTION_READING, It as RUNNER_RSS_BUDGET_ENV, J as SocketChannel, Jt as startHeapWatch, K as UdsLocalTransportClient, Kt as reclaimIntervalMs, L as LocalChildClient, Ln as MAX_CAP_ACTIONS_PER_PEER, Lt as ZERO_LOOP_DELAY, M as AGENT_CAP_FWD_SERVICE, Mn as socketDirectionBytes, Mt as HUB_RSS_BUDGET_ENV, N as CapRouteResolver, Nn as socketDirectionMessages, Nt as RSS_BUDGET_REANNOUNCE_MIN_MS, O as udsChildLogToWorkerEntry, On as EMPTY_SOCKET_DIRECTION, Ot as HEAP_WATCH_INTERVAL_MS, P as callWithServiceDiscovery, Pn as CAP_ACTION_OVERFLOW_LABEL, Pt as RSS_BUDGET_RELEASE_RATIO, Q as buildNativeCapProxy, Qt as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, R as LocalChildRegistry, Rn as capActionLabel, Rt as buildHeapSample, S as buildLinkChain, Sn as SOCKET_QUEUE_TOP_N, St as resolveNpmInvocation, T as createParentUnownedCallHandler, Tn as diffSocketPlane, Tt as HEAP_RECLAIM_MIN_INTERVAL_MS, U as __resetCapUsageRegistryForTests, Un as createEventPlaneReader, Ut as hubMainRssBudget, V as CapUsageRegistry, Vn as EVENT_PLANE_TOP_N, Vt as createV8Reclaimer, W as getCapUsageRegistry, Wn as diffEventPlane, Wt as nextRssBudgetState, X as FrameDecoder, Xt as strandedMb, Y as localEndpointPath, Yt as startRunnerHeapWatch, Z as encodeFrame, Zt as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, _ as AddonDepsManager, _n as MESH_QUEUE_TOP_N, _t as CapabilityUnavailableError, a as createUdsAddonContext, an as DECISIVE_HEAP_SPACES, at as createAddonService, b as brokerCallForCap, bn as EMPTY_SOCKET_PLANE_BASELINE, bt as resolveAddonClass, c as getOrInitReadinessRegistryForClient, cn as formatHeapSpaces, ct as capActionName, d as clusterEventTopic, dn as selectReportedSpaces, dt as capServiceName, en as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, et as createBrokerDeviceManagerApi, f as getBrokerEventBus, fn as OUTBOUND_QUEUE_COOLDOWN_MS, ft as parseCapAction, g as subscribePassthrough, gn as formatOutboundQueueVerdict, gt as CapabilityHandle, h as setNodeEventInterest, hn as createOutboundQueueGate, ht as DeviceRegistry, i as createAddonContext, in as isArrayBufferCensusReport, j as AGENT_CAP_FWD_ACTION, jn as sampleSocketDirection, jt as HUB_MAIN_RSS_BUDGET_MB, k as createUdsLogger, kn as createSocketDirectionCounters, kt as HEAP_WATCH_WARN_RATIO, l as setHubConnected, ln as heapSpaceField, lt as capActionSuffix, m as registerEventBusService, mn as OUTBOUND_QUEUE_THRESHOLD_BYTES, mt as serializeTypedArrays, n as installManifestPythonDeps, nn as createInspectorArrayBufferCensus, o as getWorkerDeviceRegistry, on as HEAP_SPACE_REPORT_MIN_MB, ot as validateProviderRegistrations, p as getMoleculerEventStats, pn as OUTBOUND_QUEUE_SUSTAIN_MS, pt as deserializeTypedArrays, q as UdsLocalTransportServer, qt as shouldReclaim, r as adaptBrokerToCluster, rn as formatArrayBufferCensus, rt as mountNativeCapService, s as getOrInitReadinessRegistry, sn as emitHeapDiagnosticReport, st as NATIVE_PROVIDER_SERVICE_INFIX, t as installManifestSystemDeps, tn as createArrayBufferCensusGate, u as EVENT_TOPIC_PREFIX, un as readHeapSpaces, ut as capBareAction, v as createKernelHwAccel, vn as createMeshQueueReader, vt as copyBundledNativeModules, w as localProviderLink, wn as createSocketPlaneReader, wt as createAddonDataPlaneFacility, x as brokerTransportLink, xn as SOCKET_PLANE_TOP_N, xt as buildNpmChildEnv, y as resolveHwAccel, yn as formatMeshQueue, yt as installManifestNativeDeps, z as UDS_NO_ROUTE_PREFIX, zn as createCapActionCensus, zt as createDeferredHeapWatchSink } from "./manifest-system-deps-BEj9Dpu1.mjs";
|
|
30
30
|
import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-Vp0bPV3U.mjs";
|
|
31
|
-
import { t as CustomActionRegistry } from "./custom-action-registry-
|
|
31
|
+
import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
|
|
32
32
|
import { z } from "zod";
|
|
33
33
|
import { createHash, randomUUID, timingSafeEqual } from "node:crypto";
|
|
34
34
|
import { PYTHON_VERSION, buildBinaryPath, downloadBinary, ensureBinary, ensureFfmpeg, ensurePython, findInPath, getFfmpegDownloadUrl, getPlatformInfo, getPythonDownloadUrl, installPythonPackages, installPythonRequirements } from "@camstack/types/node";
|
package/package.json
CHANGED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { ConfigUISchema, NativeObjectDetectionOptions, NativeObjectDetectionSettingsPatch, NativeObjectDetectionStatus } from '@camstack/types';
|
|
2
|
-
export declare function buildNativeObjectDetectionConfigSchema(options: NativeObjectDetectionOptions, status: NativeObjectDetectionStatus | null): ConfigUISchema | null;
|
|
3
|
-
export declare function parseNativeObjectDetectionFormPatch(patch: Record<string, unknown>): NativeObjectDetectionSettingsPatch;
|