@camstack/system 1.2.263 → 1.2.265

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  2. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  3. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/alerts/alerts.addon.js +1 -1
  6. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  7. package/dist/builtins/autotrack/index.js +1 -1
  8. package/dist/builtins/autotrack/index.mjs +1 -1
  9. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  10. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  11. package/dist/builtins/camera-grid/addon.d.ts +20 -0
  12. package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +32 -0
  13. package/dist/builtins/camera-grid/grid-activity.d.ts +50 -0
  14. package/dist/builtins/camera-grid/grid-camera-device.d.ts +11 -1
  15. package/dist/builtins/camera-grid/grid-canvas.d.ts +83 -0
  16. package/dist/builtins/camera-grid/grid-compositor-child.d.ts +3 -0
  17. package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +19 -0
  18. package/dist/builtins/camera-grid/grid-compositor.d.ts +36 -0
  19. package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +31 -0
  20. package/dist/builtins/camera-grid/grid-tile-feed.d.ts +38 -0
  21. package/dist/builtins/camera-grid/grid-tile-plan.d.ts +31 -0
  22. package/dist/builtins/camera-grid/index.js +1199 -232
  23. package/dist/builtins/camera-grid/index.mjs +1199 -232
  24. package/dist/builtins/camera-grid/silence-analysis.d.ts +7 -0
  25. package/dist/builtins/console-logging/index.js +1 -1
  26. package/dist/builtins/console-logging/index.mjs +1 -1
  27. package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
  28. package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
  29. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  30. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  31. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  32. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  33. package/dist/builtins/hub-forwarder/index.js +1 -1
  34. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  35. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  36. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  37. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  38. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  39. package/dist/builtins/local-network/local-network.addon.js +1 -1
  40. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  41. package/dist/builtins/loki-logging/index.js +1 -1
  42. package/dist/builtins/loki-logging/index.mjs +1 -1
  43. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  44. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  45. package/dist/builtins/platform-probe/index.js +1 -1
  46. package/dist/builtins/platform-probe/index.mjs +1 -1
  47. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  48. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  49. package/dist/builtins/snapshot/index.js +1 -1
  50. package/dist/builtins/snapshot/index.mjs +1 -1
  51. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  52. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  53. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  54. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  55. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  56. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  57. package/dist/builtins/system-config/system-config.addon.js +1 -1
  58. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  59. package/dist/builtins/winston-logging/index.js +1 -1
  60. package/dist/builtins/winston-logging/index.mjs +1 -1
  61. package/dist/{dist-6hiXbrNY.js → dist-BbPssgI6.js} +85 -15
  62. package/dist/{dist-CQ7ItBIG.mjs → dist-Ck0rjYOQ.mjs} +72 -8
  63. package/dist/index.js +1 -1
  64. package/dist/index.mjs +1 -1
  65. package/dist/{retired-settings-keys-CCXmaFTK.mjs → retired-settings-keys-BZpDuJVh.mjs} +1 -1
  66. package/dist/{retired-settings-keys-AmmGrCp1.js → retired-settings-keys-Dg_69cOY.js} +1 -1
  67. package/package.json +4 -1
@@ -3404,7 +3404,7 @@ function sleep(ms) {
3404
3404
  return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
3405
3405
  }
3406
3406
  //#endregion
3407
- //#region ../types/dist/canonical-hash-DI7tT-zZ.mjs
3407
+ //#region ../types/dist/canonical-hash-C5pB-QV1.mjs
3408
3408
  var AUDIO_ENCODER_BY_CODEC = {
3409
3409
  opus: "libopus",
3410
3410
  aac: "aac",
@@ -3468,6 +3468,10 @@ function buildInputArgs(input, decodeHwAccel) {
3468
3468
  if (input.useWallclockTimestamps === true) args.push("-use_wallclock_as_timestamps", "1");
3469
3469
  if (input.fflags?.length) for (const flag of input.fflags) args.push("-fflags", flag);
3470
3470
  if (input.rtspTransport) args.push("-rtsp_transport", input.rtspTransport);
3471
+ if (input.rawVideo !== void 0) {
3472
+ const raw = input.rawVideo;
3473
+ args.push("-f", "rawvideo", "-pix_fmt", raw.pixelFormat, "-video_size", `${String(raw.width)}x${String(raw.height)}`, "-framerate", String(raw.framerate));
3474
+ }
3471
3475
  args.push("-i", input.url);
3472
3476
  return args;
3473
3477
  }
@@ -3530,6 +3534,17 @@ function buildRateControlArgs(video) {
3530
3534
  }
3531
3535
  /** The whole video block (`-vf` … `-c:v` … knobs), after `-i`. */
3532
3536
  function buildVideoArgs(video, outputArgs, filterGraph) {
3537
+ if (video.kind === "raw") {
3538
+ if (filterGraph && video.filter !== void 0) throw new Error("FfmpegInvocation: video.filter cannot be combined with a filter graph — fold the filter into the graph");
3539
+ return [
3540
+ ...video.filter !== void 0 ? ["-vf", video.filter] : [],
3541
+ "-c:v",
3542
+ "rawvideo",
3543
+ "-pix_fmt",
3544
+ video.pixelFormat,
3545
+ ...video.fps !== void 0 ? ["-r", String(video.fps)] : []
3546
+ ];
3547
+ }
3533
3548
  if (video.kind === "copy") {
3534
3549
  if (filterGraph) throw new Error("FfmpegInvocation: a filter graph produces a NEW picture, so video.kind must be `encode`");
3535
3550
  return [
@@ -4284,13 +4299,37 @@ var CameraSwitchGroupSchema = z.object({
4284
4299
  fetchedAt: z.number()
4285
4300
  });
4286
4301
  /**
4287
- * The wrapper capability each wrapper-backed switch controls. Named constants
4288
- * because the same strings appear in `legacy-migrations.ts`, in
4289
- * `isCapActiveForDevice` call sites and in the fake harness — a typo in any of
4290
- * them is a switch that silently writes a binding nobody reads.
4302
+ * Every analyser a camera CamStack BUILDS is created with switched off.
4303
+ *
4304
+ * A grid and a Terminal camera are `DeviceType.Camera`, so every wrapper that
4305
+ * declares `defaultActive: true` for a camera binds to them the instant they
4306
+ * exist — the whole analysis family included. There is nothing there to
4307
+ * analyse: a grid's subjects are already counted on the cameras it composes (a
4308
+ * person in the bottom-right cell is a person on THAT camera, not on the grid),
4309
+ * and a Terminal camera shows a shell.
4310
+ *
4311
+ * ONE list, in the package both already depend on, because there were two and
4312
+ * they had already drifted: the Terminal's and the grid's each named three caps
4313
+ * and neither named `pipeline-analytics` — which has no gate of its own except
4314
+ * this binding, so a grid that forwards its sources' motion (so the viewer can
4315
+ * light its tile) would open a motion EPISODE per forwarded event, duplicating
4316
+ * the rows those sources already write.
4317
+ *
4318
+ * `motion-detection` sits first deliberately: it is the one that holds the
4319
+ * decode session open, so its absence is the difference between a derived
4320
+ * camera costing a composition and costing a full decode pipeline.
4321
+ *
4322
+ * Applied ONLY at creation. An operator who deliberately turns analysis back on
4323
+ * for a grid must win, and a reconcile that re-asserted this every pass would
4324
+ * silently overrule them once a minute.
4291
4325
  */
4292
- var DETECTION_PIPELINE_CAP_NAME = "detection-pipeline";
4293
- var AUDIO_ANALYSIS_CAP_NAME = "audio-analysis";
4326
+ var DERIVED_CAMERA_SILENCED_CAP_NAMES = [
4327
+ "motion-detection",
4328
+ "detection-pipeline",
4329
+ "audio-analysis",
4330
+ "pipeline-analytics",
4331
+ "scene-monitor"
4332
+ ];
4294
4333
  /**
4295
4334
  * The value a redacted secret is replaced with on every read surface.
4296
4335
  *
@@ -30864,6 +30903,31 @@ authKey: z.string().optional() }), z.object({
30864
30903
  }), { kind: "mutation" })
30865
30904
  }
30866
30905
  };
30906
+ /**
30907
+ * Hardware / firmware motion sensor cap — binary detected state plus
30908
+ * a timestamp of the last observation. Distinct from
30909
+ * `motion-detection.cap.ts` which owns the LOCAL ML motion pipeline;
30910
+ * `motion` is the lightweight readout from on-camera motion (Reolink
30911
+ * `GetMdState`, Baichuan push `type: motion`, ONVIF analytics).
30912
+ *
30913
+ * Native-motion providers also fan out to `detection.camera-native`
30914
+ * with `source: 'onboard'` so cross-cutting system services
30915
+ * (alert-center, advanced-notifier) can subscribe once and receive
30916
+ * motion from every camera.
30917
+ */
30918
+ /**
30919
+ * How long after a camera's last rising edge `pipeline-analytics` closes the
30920
+ * motion EPISODE row it kept open for it (D475) — "il delay della cap", in
30921
+ * the operator's words. One authority for the whole system: every provider
30922
+ * that seeds `autoClearAfterMs` on a `Camera` device writes this SAME
30923
+ * constant while `detected: true` (never its own number — Hikvision used to
30924
+ * seed its internal 3 s inactivity timer here, which is a different clock for
30925
+ * a different purpose), and `MotionEpisodeTracker` imports it directly rather
30926
+ * than reading the live cap value on the hot path. A `Sensor` device (HA
30927
+ * binary sensor, Homematic) gets a genuine push both ways and has no episode
30928
+ * to close on a timer, so it writes `null`, never this constant.
30929
+ */
30930
+ var MOTION_CLOSE_AFTER_MS = 15e3;
30867
30931
  var MotionStatusSchema = z.object({
30868
30932
  detected: z.boolean(),
30869
30933
  /** Ms epoch of the last detected-true observation. Null if never detected. */
@@ -48757,4 +48821,4 @@ function enumerateInferenceDevices(hw) {
48757
48821
  return out;
48758
48822
  }
48759
48823
  //#endregion
48760
- export { deviceStateCapability as $, streamQualityLabel as $t, StorageLocationModeSchema as A, resolveCapMount as An, normalizeUnit as At, bareAddonId as B, resolveMethodAuth as Bt, RecordingStatusSchema as C, hydrateSchema as Cn, logDestinationCapability as Ct, STREAM_PROFILE_META as D, parseJsonObject as Dn, mayWriteToLocation as Dt, STORAGE_ACCESS_FALLBACK as E, nodePin as En, mayReadLocation as Et, addonSettingsCapability as F, ptzAutotrackCapability as Ft, coreBlockAddonId as G, settingsStoreCapability as Gt, buildStreamParamsConfigSchema as H, scopesAllowAddon as Ht, addonWidgetsCapability as I, reducePoints as It, dataStoreProviderCapability as J, storageCapability as Jt, coreBlockIdFromAddonId as K, siteZoneKey as Kt, alertsCapability as L, resolveBucketMs as Lt, StorageMigrationJobSchema as M, sleep as Mn, parseStreamParamsFormPatch as Mt, UserRecordSchema as N, EventCategory as Nn, platformProbeCapability as Nt, ScopedTokenSchema as O, parseJsonUnknown as On, metricsProviderCapability as Ot, addonPagesCapability as P, procedureAuthKey as Pt, deviceManagerCapability as Q, streamCatalogCapability as Qt, authProviderCapability as R, resolveContainerPrimaryChild as Rt, RUNTIME_DEFAULTS as S, expandCapMethods as Sn, locationIconKey as St, SOURCE_DEVICE_TYPES as T, isEvent as Tn, looseSchema as Tt, cameraGridLayoutCapability as U, scopesAllowDeviceCap as Ut, batteryCapability as V, runtimeStatePolicyFor as Vt, collectSecretConfigKeys as W, scoreRuntimes as Wt, decodeVectorBase64 as X, storageOccupancyCapability as Xt, declarationOwnerNodeId as Y, storageMigrationCapability as Yt, deriveBatteryPresence as Z, storageProviderCapability as Zt, LOG_LEVEL_RANK as _, asNumber as _n, isVoidInput as _t, BaseDevice as a, buildFfmpegArgs as an, evaluateSensorEdge as at, METHOD_ACCESS_MAP as b, emitDownForOwnedCaps as bn, lifecycleJobSchema as bt, CAP_NAMES_WITH_STATUS as c, DEVICE_SETTINGS_CONTRIBUTION_METHODS as cn, filesystemBrowseCapability as ct, CoreBlockSchema as d, DeviceRole as dn, isArrayOutputSchema as dt, userManagementCapability as en, deviceStatusCapability as et, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as f, DeviceType as fn, isCollectionArrayMethod as ft, FIRST_LEVEL_MACRO_CLASSES as g, asJsonObject as gn, isSourceCap as gt, DeviceStatusSchema as h, WELL_KNOWN_TAB_MAP as hn, isSameAddonId as ht, ApiKeyRecordSchema as i, errMsg as in, enumerateSchemaFields as it, StorageLocationTypeSchema as j, scopeKey as jn, objectInputDeclaresAddonId as jt, StorageCleanupJobSchema as k, readinessKey as kn, modeMayWrite as kt, CORE_BLOCKS_ADDON_ID as l, DEVICE_STATUS_METHOD as ln, foldSnapshotByFunction as lt, DeclaredDevices as m, ReadinessTimeoutError as mn, isObjectInput as mt, AUDIO_ANALYSIS_CAP_NAME as n, vectorStoreCapability as nn, enumerateInferenceDevices as nt, BatteryStatusSchema as o, BaseAddon as on, evictionPolicyOfLocation as ot, DETECTION_PIPELINE_CAP_NAME as p, ReadinessRegistry as pn, isLocationEnabled as pt, coreBlocksCapability as q, snapshotCapability as qt, AlertSchema as r, withLocationMode as rn, enumerateItemArrayFields as rt, CAMERA_SWITCH_ORDER as s, DATAPLANE_SECRET_HEADER as sn, extractNestedAddonId as st, ALL_CAPABILITY_DEFINITIONS as t, vectorDimFromBase64 as tn, doorbellCapability as tt, CORE_BLOCK_ADDON_PREFIX as u, DeviceFeature as un, gbToBytes as ut, LegacyStorageLocationDefaultSchema as v, asString as vn, kebabToCamel as vt, SOURCE_CAPS as w, isDeviceConfigCap as wn, logLevelAtMost as wt, REDACTED_SECRET as x, emitReadiness as xn, localNetworkCapability as xt, LocationIconIdSchema as y, createEvent as yn, legacyModeOf as yt, backupCapability as z, resolveLocationMode as zt };
48824
+ export { deviceStateCapability as $, streamCatalogCapability as $t, StorageLocationModeSchema as A, readinessKey as An, motionCapability as At, bareAddonId as B, resolveLocationMode as Bt, RecordingStatusSchema as C, expandCapMethods as Cn, logDestinationCapability as Ct, STREAM_PROFILE_META as D, nodePin as Dn, mayWriteToLocation as Dt, STORAGE_ACCESS_FALLBACK as E, isEvent as En, mayReadLocation as Et, addonSettingsCapability as F, procedureAuthKey as Ft, coreBlockAddonId as G, scoreRuntimes as Gt, buildStreamParamsConfigSchema as H, runtimeStatePolicyFor as Ht, addonWidgetsCapability as I, ptzAutotrackCapability as It, dataStoreProviderCapability as J, snapshotCapability as Jt, coreBlockIdFromAddonId as K, settingsStoreCapability as Kt, alertsCapability as L, reducePoints as Lt, StorageMigrationJobSchema as M, scopeKey as Mn, objectInputDeclaresAddonId as Mt, UserRecordSchema as N, sleep as Nn, parseStreamParamsFormPatch as Nt, ScopedTokenSchema as O, parseJsonObject as On, metricsProviderCapability as Ot, addonPagesCapability as P, EventCategory as Pn, platformProbeCapability as Pt, deviceManagerCapability as Q, storageProviderCapability as Qt, authProviderCapability as R, resolveBucketMs as Rt, RUNTIME_DEFAULTS as S, emitReadiness as Sn, locationIconKey as St, SOURCE_DEVICE_TYPES as T, isDeviceConfigCap as Tn, looseSchema as Tt, cameraGridLayoutCapability as U, scopesAllowAddon as Ut, batteryCapability as V, resolveMethodAuth as Vt, collectSecretConfigKeys as W, scopesAllowDeviceCap as Wt, decodeVectorBase64 as X, storageMigrationCapability as Xt, declarationOwnerNodeId as Y, storageCapability as Yt, deriveBatteryPresence as Z, storageOccupancyCapability as Zt, LegacyStorageLocationDefaultSchema as _, asJsonObject as _n, isVoidInput as _t, BatteryStatusSchema as a, errMsg as an, evaluateSensorEdge as at, MOTION_CLOSE_AFTER_MS as b, createEvent as bn, lifecycleJobSchema as bt, CORE_BLOCKS_ADDON_ID as c, DATAPLANE_SECRET_HEADER as cn, filesystemBrowseCapability as ct, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as d, DeviceFeature as dn, isArrayOutputSchema as dt, streamQualityLabel as en, deviceStatusCapability as et, DERIVED_CAMERA_SILENCED_CAP_NAMES as f, DeviceRole as fn, isCollectionArrayMethod as ft, LOG_LEVEL_RANK as g, WELL_KNOWN_TAB_MAP as gn, isSourceCap as gt, FIRST_LEVEL_MACRO_CLASSES as h, ReadinessTimeoutError as hn, isSameAddonId as ht, BaseDevice as i, withLocationMode as in, enumerateSchemaFields as it, StorageLocationTypeSchema as j, resolveCapMount as jn, normalizeUnit as jt, StorageCleanupJobSchema as k, parseJsonUnknown as kn, modeMayWrite as kt, CORE_BLOCK_ADDON_PREFIX as l, DEVICE_SETTINGS_CONTRIBUTION_METHODS as ln, foldSnapshotByFunction as lt, DeviceStatusSchema as m, ReadinessRegistry as mn, isObjectInput as mt, AlertSchema as n, vectorDimFromBase64 as nn, enumerateInferenceDevices as nt, CAMERA_SWITCH_ORDER as o, buildFfmpegArgs as on, evictionPolicyOfLocation as ot, DeclaredDevices as p, DeviceType as pn, isLocationEnabled as pt, coreBlocksCapability as q, siteZoneKey as qt, ApiKeyRecordSchema as r, vectorStoreCapability as rn, enumerateItemArrayFields as rt, CAP_NAMES_WITH_STATUS as s, BaseAddon as sn, extractNestedAddonId as st, ALL_CAPABILITY_DEFINITIONS as t, userManagementCapability as tn, doorbellCapability as tt, CoreBlockSchema as u, DEVICE_STATUS_METHOD as un, gbToBytes as ut, LocationIconIdSchema as v, asNumber as vn, kebabToCamel as vt, SOURCE_CAPS as w, hydrateSchema as wn, logLevelAtMost as wt, REDACTED_SECRET as x, emitDownForOwnedCaps as xn, localNetworkCapability as xt, METHOD_ACCESS_MAP as y, asString as yn, legacyModeOf as yt, backupCapability as z, resolveContainerPrimaryChild as zt };
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-6hiXbrNY.js");
3
+ const require_dist = require("./dist-BbPssgI6.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 { An as resolveCapMount, Bt as resolveMethodAuth, Dn as parseJsonObject, F as addonSettingsCapability, Ht as scopesAllowAddon, Nn as EventCategory$1, On as parseJsonUnknown, Pt as procedureAuthKey, S as RUNTIME_DEFAULTS, Sn as expandCapMethods, Tt as looseSchema, Ut as scopesAllowDeviceCap, _ as LOG_LEVEL_RANK, _n as asNumber, _t as isVoidInput, b as METHOD_ACCESS_MAP, bn as emitDownForOwnedCaps, bt as lifecycleJobSchema, cn as DEVICE_SETTINGS_CONTRIBUTION_METHODS, dt as isArrayOutputSchema, ft as isCollectionArrayMethod, gn as asJsonObject$1, in as errMsg$1, jn as scopeKey, jt as objectInputDeclaresAddonId, kn as readinessKey, ln as DEVICE_STATUS_METHOD, mn as ReadinessTimeoutError, mt as isObjectInput, pn as ReadinessRegistry, sn as DATAPLANE_SECRET_HEADER$1, st as extractNestedAddonId, t as ALL_CAPABILITY_DEFINITIONS, vn as asString$1, vt as kebabToCamel, wt as logLevelAtMost, yn as createEvent } from "./dist-CQ7ItBIG.mjs";
2
+ import { An as readinessKey, Cn as expandCapMethods, F as addonSettingsCapability, Ft as procedureAuthKey, Mn as scopeKey, Mt as objectInputDeclaresAddonId, On as parseJsonObject, Pn as EventCategory$1, S as RUNTIME_DEFAULTS, Tt as looseSchema, Ut as scopesAllowAddon, Vt as resolveMethodAuth, Wt as scopesAllowDeviceCap, _n as asJsonObject$1, _t as isVoidInput, an as errMsg$1, bn as createEvent, bt as lifecycleJobSchema, cn as DATAPLANE_SECRET_HEADER$1, dt as isArrayOutputSchema, ft as isCollectionArrayMethod, g as LOG_LEVEL_RANK, hn as ReadinessTimeoutError, jn as resolveCapMount, kn as parseJsonUnknown, ln as DEVICE_SETTINGS_CONTRIBUTION_METHODS, mn as ReadinessRegistry, mt as isObjectInput, st as extractNestedAddonId, t as ALL_CAPABILITY_DEFINITIONS, un as DEVICE_STATUS_METHOD, vn as asNumber, vt as kebabToCamel, wt as logLevelAtMost, xn as emitDownForOwnedCaps, y as METHOD_ACCESS_MAP, yn as asString$1 } from "./dist-Ck0rjYOQ.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";
@@ -1,4 +1,4 @@
1
- import { gn as asJsonObject } from "./dist-CQ7ItBIG.mjs";
1
+ import { _n as asJsonObject } from "./dist-Ck0rjYOQ.mjs";
2
2
  //#region src/builtins/sqlite-storage/retired-settings-keys.ts
3
3
  /**
4
4
  * Is THIS node the one whose settings store is the cluster's authority?
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-6hiXbrNY.js");
1
+ const require_dist = require("./dist-BbPssgI6.js");
2
2
  //#region src/builtins/sqlite-storage/retired-settings-keys.ts
3
3
  /**
4
4
  * Is THIS node the one whose settings store is the cluster's authority?
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/system",
3
- "version": "1.2.263",
3
+ "version": "1.2.265",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",
@@ -368,6 +368,9 @@
368
368
  "capabilities": [
369
369
  {
370
370
  "name": "camera-grid-layout"
371
+ },
372
+ {
373
+ "name": "motion"
371
374
  }
372
375
  ]
373
376
  }