@camstack/addon-osd-manager 0.1.265 → 0.1.267

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 (19) hide show
  1. package/dist/{MotionZonesSettings-C6ZSgaLA.mjs → MotionZonesSettings-3OswGeMl.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-CiS1e2Pg.mjs → PrivacyMaskSettings-CxN7tOH_.mjs} +4 -4
  3. package/dist/{SceneMonitorEditor-s0ud6RTg.mjs → SceneMonitorEditor-l9nWTYyI.mjs} +3 -3
  4. package/dist/_stub.js +1753 -1727
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-DaixXuTN.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-DXtR0Eje.mjs} +3 -3
  6. package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BbmRj6OR.mjs +26 -0
  7. package/dist/addon-osd-manager.css +1 -1
  8. package/dist/{hostInit-DZBDeleW.mjs → hostInit-DtrBgAfd.mjs} +2 -2
  9. package/dist/index.js +202 -107
  10. package/dist/index.mjs +202 -107
  11. package/dist/{player-overlays-DiGsMCGG.mjs → player-overlays-DeO4qjxv.mjs} +1 -1
  12. package/dist/remoteEntry.js +1 -1
  13. package/dist/{responsive-D6dYIr_q.mjs → responsive-BiymurY0.mjs} +1 -1
  14. package/dist/{scene-monitor-copy-3SZbwzRl.mjs → scene-monitor-copy-CXLDSWeP.mjs} +1 -1
  15. package/dist/{square-Cda77PD-.mjs → square-Vgi9aM6a.mjs} +1 -1
  16. package/dist/{trash-2-DMyeZCpw.mjs → trash-2-Ccc91Gq3.mjs} +1 -1
  17. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-CneSXrJN.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-BYRSI4Gv.mjs} +1 -1
  18. package/package.json +1 -1
  19. package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-aj1Biv3C.mjs +0 -26
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- //#region ../types/dist/event-category-fDPduoeC.mjs
1
+ //#region ../types/dist/event-category-Ceif8n-v.mjs
2
2
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
3
3
  EventCategory["SystemBoot"] = "system.boot";
4
4
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -470,6 +470,10 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
470
470
  * on the device detail page.
471
471
  */
472
472
  EventCategory["DoorbellOnPressed"] = "doorbell.onPressed";
473
+ /** Mirrors `runningStateCapability.events.onStarted`. */
474
+ EventCategory["RunningStarted"] = "running.started";
475
+ /** Mirrors `runningStateCapability.events.onFinished`. */
476
+ EventCategory["RunningFinished"] = "running.finished";
473
477
  /**
474
478
  * Cap event fired by every device that registers the `event-emitter`
475
479
  * capability. Mirrors `eventEmitterCapability.events.onEvent`. Carries
@@ -5429,7 +5433,7 @@ var ZodIssueCode = {
5429
5433
  var ZodFirstPartyTypeKind;
5430
5434
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5431
5435
  //#endregion
5432
- //#region ../types/dist/sleep-CHIEEJkY.mjs
5436
+ //#region ../types/dist/sleep-CYfIZzGv.mjs
5433
5437
  /**
5434
5438
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5435
5439
  * window to float samples (D455).
@@ -5768,7 +5772,7 @@ Object.fromEntries([
5768
5772
  * `hydrateSchema` to skip the `value` injection for structural-only fields.
5769
5773
  */
5770
5774
  function isValuelessField(field) {
5771
- return field.type === "separator" || field.type === "info" || field.type === "qr-code" || field.type === "button" || field.type === "object-array" || field.type === "widget" || field.type === "addon-action-button" || field.type === "device-action-button";
5775
+ return field.type === "separator" || field.type === "info" || field.type === "qr-code" || field.type === "button" || field.type === "object-array" || field.type === "widget" || field.type === "addon-action-button" || field.type === "device-action-button" || field.type === "account-sign-in" || field.type === "secret-presence";
5772
5776
  }
5773
5777
  function hydrateSchema(schema, values, options = {}) {
5774
5778
  return {
@@ -8729,7 +8733,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
8729
8733
  return DeviceRole;
8730
8734
  }({});
8731
8735
  //#endregion
8732
- //#region ../types/dist/composition-CB6PMT9p.mjs
8736
+ //#region ../types/dist/composition-xz-ud5EQ.mjs
8733
8737
  /**
8734
8738
  * The ffmpeg build every CamStack node downloads, per platform and arch.
8735
8739
  *
@@ -9030,6 +9034,20 @@ var table = {
9030
9034
  apply: () => {
9031
9035
  throw new ExpressionEvalError("count: stateful evaluation context is required");
9032
9036
  }
9037
+ },
9038
+ dwell: {
9039
+ minArgs: 3,
9040
+ maxArgs: 3,
9041
+ apply: () => {
9042
+ throw new ExpressionEvalError("dwell: stateful evaluation context is required");
9043
+ }
9044
+ },
9045
+ latchedAt: {
9046
+ minArgs: 1,
9047
+ maxArgs: 1,
9048
+ apply: () => {
9049
+ throw new ExpressionEvalError("latchedAt: stateful evaluation context is required");
9050
+ }
9033
9051
  }
9034
9052
  };
9035
9053
  Object.freeze(Object.assign(Object.create(null), table));
@@ -15890,7 +15908,15 @@ Object.freeze({
15890
15908
  kind: "fixed",
15891
15909
  result: ["number", "null"]
15892
15910
  },
15893
- count: NUMBER
15911
+ count: NUMBER,
15912
+ dwell: {
15913
+ kind: "fixed",
15914
+ result: ["boolean", "null"]
15915
+ },
15916
+ latchedAt: {
15917
+ kind: "fixed",
15918
+ result: ["number", "null"]
15919
+ }
15894
15920
  });
15895
15921
  `${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
15896
15922
  /**
@@ -42129,9 +42155,6 @@ var NcSystemEventKindSchema = _enum([
42129
42155
  "device-battery-normal",
42130
42156
  "device-consumable-low",
42131
42157
  "device-consumable-normal",
42132
- "device-tank-low",
42133
- "device-tank-full",
42134
- "device-tank-normal",
42135
42158
  "stream-online",
42136
42159
  "stream-offline",
42137
42160
  "node-online",
@@ -42178,13 +42201,14 @@ var NcSystemEventKindSchema = _enum([
42178
42201
  "camera-enabled"
42179
42202
  ]);
42180
42203
  /** The legacy tail of {@link NcSystemEventKindSchema} — see its docblock. */
42181
- var NC_LEGACY_SYSTEM_EVENT_KINDS = new Set([
42204
+ var NC_LEGACY_SYSTEM_EVENT_KINDS = [
42182
42205
  "camera-online",
42183
42206
  "camera-offline",
42184
42207
  "camera-disabled",
42185
42208
  "camera-enabled"
42186
- ]);
42187
- NcSystemEventKindSchema.options.filter((kind) => !NC_LEGACY_SYSTEM_EVENT_KINDS.has(kind));
42209
+ ];
42210
+ var NC_LEGACY_SYSTEM_EVENT_KIND_SET = new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
42211
+ NcSystemEventKindSchema.options.filter((kind) => !NC_LEGACY_SYSTEM_EVENT_KIND_SET.has(kind));
42188
42212
  /**
42189
42213
  * The panel's transitions, as ONE list.
42190
42214
  *
@@ -43303,18 +43327,11 @@ var NcRuleSchema = NcRuleInputSchema.extend({
43303
43327
  */
43304
43328
  disabledTargetIds: array(string()).default([])
43305
43329
  });
43306
- /**
43307
- * The state-summary SECTIONS (D647 / D698 / D708): the D637 kind groups that
43308
- * report a still-true state. `addons` is the crash-looped addons only and
43309
- * `addon-updates` the addons that are behind (D708 split them). `backups-exports` and `alarm` are not sections — a completed
43310
- * job is not an open state, and the alarm stays instant.
43311
- */
43312
43330
  var NcStateSummarySectionIdSchema = _enum([
43313
43331
  "device-state",
43314
43332
  "streams",
43315
43333
  "battery",
43316
43334
  "consumables",
43317
- "tanks",
43318
43335
  "detection-blind",
43319
43336
  "nodes",
43320
43337
  "addons",
@@ -43695,18 +43712,6 @@ var NC_CONDITION_CATALOG = [
43695
43712
  value: "device-consumable-normal",
43696
43713
  label: "Consumable replaced"
43697
43714
  },
43698
- {
43699
- value: "device-tank-low",
43700
- label: "Tank low (water, detergent)"
43701
- },
43702
- {
43703
- value: "device-tank-full",
43704
- label: "Tank full (dirty water, dust)"
43705
- },
43706
- {
43707
- value: "device-tank-normal",
43708
- label: "Tank back to normal"
43709
- },
43710
43715
  {
43711
43716
  value: "export-completed",
43712
43717
  label: "Export completed"
@@ -45219,6 +45224,18 @@ Object.freeze({
45219
45224
  reason: "camera sensor mappings not loaded"
45220
45225
  });
45221
45226
  /**
45227
+ * What the vision model must answer before a package event is emitted
45228
+ * when a packages rule has "Confirm with the LLM" on.
45229
+ *
45230
+ * `package` is the verdict. `confidence` is 0..1. `reason` is the model's
45231
+ * one-line explanation, stored on the event so a drop is not silent.
45232
+ */
45233
+ var PackageLlmVerdictSchema = object({
45234
+ package: boolean(),
45235
+ confidence: number().min(0).max(1),
45236
+ reason: string().min(1)
45237
+ });
45238
+ /**
45222
45239
  * A model choice has a SCOPE, and a scope change has a workflow.
45223
45240
  *
45224
45241
  * ## The two scopes
@@ -46155,6 +46172,21 @@ var ObjectEventSchema = object({
46155
46172
  * pick-up written before D684 — UNKNOWN, never 0 and never `timestamp`.
46156
46173
  */
46157
46174
  observedAt: number().optional(),
46175
+ /**
46176
+ * The delivery was emitted without a vision-model yes (D931).
46177
+ *
46178
+ * Set only when the packages rule asked for an LLM confirm and the model
46179
+ * was unreachable, timed out, or answered something that did not parse.
46180
+ * A notification reads it so it can say "possible" instead of a definite
46181
+ * delivery. Absent on every other row, and on a confirm that said yes.
46182
+ */
46183
+ packagePossible: boolean().optional(),
46184
+ /**
46185
+ * The vision model's verdict, when a packages rule asked for one and the
46186
+ * model answered the schema (D931). A "no" never becomes a row — the
46187
+ * detector drops it and logs the reason. Present on a yes.
46188
+ */
46189
+ packageLlmVerdict: PackageLlmVerdictSchema.optional(),
46158
46190
  /** The parent track's key-event importance [0,1], propagated to every object
46159
46191
  * event of the track (so an event row can be sorted by importance without a
46160
46192
  * track join). Absent on legacy rows / before the track was scored. */
@@ -48362,11 +48394,18 @@ var KeptReasonSchema = _enum(["custom-pin"]);
48362
48394
  * Where a choice's latency came from (D791): this node's own benchmark
48363
48395
  * result, or the hardware-class table. Measured on the node beats the table.
48364
48396
  */
48365
- var LatencySourceSchema = discriminatedUnion("kind", [object({ kind: literal("table") }), object({
48366
- kind: literal("node-benchmark"),
48367
- resultId: string(),
48368
- measuredAtMs: number()
48369
- })]);
48397
+ var LatencySourceSchema = discriminatedUnion("kind", [
48398
+ object({ kind: literal("table") }),
48399
+ object({
48400
+ kind: literal("node-benchmark"),
48401
+ resultId: string(),
48402
+ measuredAtMs: number()
48403
+ }),
48404
+ object({
48405
+ kind: literal("estimated"),
48406
+ estimatedFrom: HardwareClassIdSchema
48407
+ })
48408
+ ]);
48370
48409
  var DeviceModelChoiceSchema = object({
48371
48410
  modelId: string(),
48372
48411
  p50Ms: number(),
@@ -48374,6 +48413,11 @@ var DeviceModelChoiceSchema = object({
48374
48413
  measured: boolean(),
48375
48414
  /** Absent on a plan from before D791 — read as the table. */
48376
48415
  source: LatencySourceSchema.optional(),
48416
+ /**
48417
+ * The measured class this latency was scaled from (D930). Absent when the
48418
+ * cell is the table or a node benchmark.
48419
+ */
48420
+ estimatedFrom: HardwareClassIdSchema.optional(),
48377
48421
  /** Parallel sessions at the camera rate with the headroom kept free: ⌊fps × (1 − headroom) / camera fps⌋. */
48378
48422
  capacitySessions: number(),
48379
48423
  personRecall: number()
@@ -58665,6 +58709,30 @@ includeCrops: boolean().optional() }).optional(), array(VehicleSchema).readonly(
58665
58709
  kind: "mutation",
58666
58710
  auth: "admin"
58667
58711
  });
58712
+ var CORE_ULTRA_265K_IGPU_CLOCK_MHZ = 2e3;
58713
+ var positiveOrNull = number().nullable().transform((value) => value !== null && Number.isFinite(value) && value > 0 ? value : null);
58714
+ var textOrNull = string().nullable().transform((value) => value !== null && value.trim() !== "" ? value : null);
58715
+ var PrecisionGopsSchema = object({
58716
+ int8: positiveOrNull,
58717
+ fp16: positiveOrNull
58718
+ });
58719
+ /** What one accelerator device reported. Every failed query is null. */
58720
+ var AcceleratorComputeSchema = object({
58721
+ deviceKey: string(),
58722
+ fullDeviceName: textOrNull,
58723
+ executionUnits: positiveOrNull,
58724
+ clockMHz: positiveOrNull,
58725
+ gops: PrecisionGopsSchema.nullable(),
58726
+ architecture: textOrNull,
58727
+ npuName: textOrNull,
58728
+ tops: positiveOrNull,
58729
+ vendor: textOrNull,
58730
+ webgpuArchitecture: textOrNull,
58731
+ webgpuDevice: textOrNull,
58732
+ computeUnits: positiveOrNull
58733
+ });
58734
+ object({ accelerators: array(AcceleratorComputeSchema).nullable() });
58735
+ 64 * CORE_ULTRA_265K_IGPU_CLOCK_MHZ;
58668
58736
  var ModelFormatSchema = _enum(MODEL_FORMATS);
58669
58737
  var HwAccelBackendInputSchema = _enum([
58670
58738
  "videotoolbox",
@@ -58778,7 +58846,12 @@ var HardwareInfoSchema = object({
58778
58846
  availableRAM_MB: number(),
58779
58847
  gpu: GpuInfoSchema.nullable(),
58780
58848
  npu: NpuInfoSchema.nullable(),
58781
- coral: CoralInfoSchema.nullable().optional()
58849
+ coral: CoralInfoSchema.nullable().optional(),
58850
+ /**
58851
+ * Per-accelerator compute (D930). Omitted by a node that has not probed it.
58852
+ * `null` fields inside an entry are a failed query, never a zero.
58853
+ */
58854
+ accelerators: array(AcceleratorComputeSchema).readonly().optional()
58782
58855
  });
58783
58856
  var PlatformScoreSchema = object({
58784
58857
  runtime: literal("python"),
@@ -59311,6 +59384,22 @@ DeviceType.Camera, method(object({ deviceId: number() }), PtzAutotrackStatusSche
59311
59384
  deviceId: number(),
59312
59385
  status: PtzAutotrackStatusSchema
59313
59386
  });
59387
+ var RunningStateSourceSchema = _enum(["native", "assigned"]);
59388
+ object({
59389
+ /** null = unknown — never coerced to false (D393). */
59390
+ running: boolean().nullable(),
59391
+ /** Epoch ms the current boolean began; null while `running` is null. */
59392
+ since: number().nullable(),
59393
+ source: RunningStateSourceSchema,
59394
+ phase: string().nullable(),
59395
+ lastFetchedAt: number()
59396
+ });
59397
+ object({
59398
+ deviceId: number(),
59399
+ since: number().nullable(),
59400
+ phase: string().nullable()
59401
+ });
59402
+ Object.values(DeviceType);
59314
59403
  DeviceType.Camera, DeviceType.Sensor, DeviceType.Switch, method(object({ deviceId: number().int().nonnegative() }), object({ success: literal(true) }), {
59315
59404
  kind: "mutation",
59316
59405
  auth: "admin"
@@ -61150,7 +61239,20 @@ var ZoneRuleSchema = object({
61150
61239
  * Defaults to `true` so operators creating a rule via the UI
61151
61240
  * see it active immediately.
61152
61241
  */
61153
- enabled: boolean().default(true)
61242
+ enabled: boolean().default(true),
61243
+ /**
61244
+ * Package stage only. When true, a package candidate may open from a
61245
+ * scene difference in this rule's zone after a person leaves. The
61246
+ * package model, when it boxes something overlapping, is extra evidence
61247
+ * and is not the gate. Absent or false keeps today's model path.
61248
+ */
61249
+ detectBySceneDifference: boolean().optional(),
61250
+ /**
61251
+ * Package stage only. When true, a promoted package is shown to the
61252
+ * `llm` cap before the delivery event is emitted. Absent or false emits
61253
+ * as today. Usable with or without `detectBySceneDifference`.
61254
+ */
61255
+ confirmWithLlm: boolean().optional()
61154
61256
  });
61155
61257
  array(ZoneRuleSchema).readonly();
61156
61258
  object({
@@ -70908,6 +71010,13 @@ Object.freeze({
70908
71010
  access: "create",
70909
71011
  role: "admin"
70910
71012
  },
71013
+ "runningState.getStatus": {
71014
+ capName: "running-state",
71015
+ capScope: "device",
71016
+ addonId: null,
71017
+ access: "view",
71018
+ role: "viewer"
71019
+ },
70911
71020
  "sceneMonitor.captureReference": {
70912
71021
  capName: "scene-monitor",
70913
71022
  capScope: "device",
@@ -75622,6 +75731,32 @@ var APPLIANCE_CAP_VOCABULARY = {
75622
75731
  }],
75623
75732
  events: { onSent: { notOperatorFacing: "a delivery receipt of a send this system made — not a fact about the world" } }
75624
75733
  },
75734
+ "running-state": {
75735
+ scope: "device",
75736
+ noun: t("Running", "In funzione"),
75737
+ state: [{
75738
+ kind: "boolean",
75739
+ field: "running",
75740
+ label: t("Running", "In funzione"),
75741
+ whenTrue: t("When {device} starts", "Quando {device} inizia"),
75742
+ whenFalse: t("When {device} finishes", "Quando {device} finisce"),
75743
+ icon: "play"
75744
+ }],
75745
+ events: {
75746
+ onStarted: {
75747
+ category: EventCategory.RunningStarted,
75748
+ label: t("Started running", "Ha iniziato a funzionare"),
75749
+ phrase: t("When {device} starts running", "Quando {device} inizia a funzionare"),
75750
+ icon: "play"
75751
+ },
75752
+ onFinished: {
75753
+ category: EventCategory.RunningFinished,
75754
+ label: t("Finished", "Ha finito"),
75755
+ phrase: t("When {device} finishes", "Quando {device} finisce"),
75756
+ icon: "square"
75757
+ }
75758
+ }
75759
+ },
75625
75760
  update: {
75626
75761
  scope: "device",
75627
75762
  noun: t("Firmware update", "Aggiornamento firmware"),
@@ -79162,6 +79297,11 @@ Object.freeze({
79162
79297
  form: "single",
79163
79298
  optional: true
79164
79299
  }],
79300
+ "runningState.getStatus": [{
79301
+ name: "deviceId",
79302
+ form: "single",
79303
+ optional: false
79304
+ }],
79165
79305
  "sceneMonitor.captureReference": [{
79166
79306
  name: "deviceId",
79167
79307
  form: "single",
@@ -79712,40 +79852,7 @@ var NC_AUDIO_DEFAULTS = {
79712
79852
  samplingSeconds: 10
79713
79853
  };
79714
79854
  new Set(["devices", "classes"]);
79715
- /**
79716
- * WHICH narrowing filter speaks about WHICH system-event kind — one predicate,
79717
- * consumed by the rule ENGINE and by every rule EDITOR.
79718
- *
79719
- * ── The failure this file exists for ───────────────────────────────────────
79720
- * `NcSystemEventConditionSchema` carries four optional narrowing lists
79721
- * (`deviceIds`, `deviceTypes`, `nodeIds`, `packageNames`) beside a required
79722
- * `kinds` gate. They are not four filters over one vocabulary: each belongs to
79723
- * a FAMILY of kinds and is meaningless outside it. A node going away has no
79724
- * device type; a completed export has no package; `stream-offline` deliberately
79725
- * carries no device type at all (a stream belongs to a camera by construction).
79726
- *
79727
- * The engine applied all four to every kind, so a filter from one family failed
79728
- * a kind from another family CLOSED. The operator's live rule "Eventi di
79729
- * sistema" selected eleven kinds and set `deviceTypes: ['camera']` — the only
79730
- * way to say "only my cameras" about the two liveness kinds — and NINE of the
79731
- * eleven silently stopped being deliverable. Four days of history contained
79732
- * `device-online` and `device-offline` and nothing else, across a window in
79733
- * which agents were restarted and addons were updated.
79734
- *
79735
- * Both editors already computed this scoping, to decide which filter boxes to
79736
- * render; the cap's own docblock already promised it ("Narrow a `device-*` kind
79737
- * to these device TYPES"). Only the engine disagreed, and it disagreed in the
79738
- * destructive direction. So the rule is stated ONCE, here, and the engine and
79739
- * the editors are readers of it rather than three independent authors.
79740
- *
79741
- * ── The direction ─────────────────────────────────────────────────────────
79742
- * Out of family ⇒ the filter is IGNORED, never fail-closed. An editor that
79743
- * hides a box has already told the operator this filter does not speak about
79744
- * these kinds, so honouring it as an exclusion contradicts the only
79745
- * explanation the operator was ever given. Inside its family the filter still
79746
- * narrows, and still fails CLOSED on a subject that cannot produce the identity
79747
- * it tests (a device the mirror cannot name is not evidence of a camera).
79748
- */
79855
+ new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
79749
79856
  /**
79750
79857
  * Every filter, for the callers that must cover all of them (guards, tests).
79751
79858
  *
@@ -79771,9 +79878,6 @@ new Map(Object.entries({
79771
79878
  "device-battery-normal": "device-events",
79772
79879
  "device-consumable-low": "device-events",
79773
79880
  "device-consumable-normal": "device-events",
79774
- "device-tank-low": "device-events",
79775
- "device-tank-full": "device-events",
79776
- "device-tank-normal": "device-events",
79777
79881
  "stream-online": "device-events",
79778
79882
  "stream-offline": "device-events",
79779
79883
  "detection-blind": "device-events",
@@ -79850,16 +79954,6 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
79850
79954
  label: "Consumables",
79851
79955
  kinds: ["device-consumable-low", "device-consumable-normal"]
79852
79956
  },
79853
- {
79854
- id: "tanks",
79855
- family: "device-events",
79856
- label: "Tanks",
79857
- kinds: [
79858
- "device-tank-low",
79859
- "device-tank-full",
79860
- "device-tank-normal"
79861
- ]
79862
- },
79863
79957
  {
79864
79958
  id: "detection-blind",
79865
79959
  family: "device-events",
@@ -80097,11 +80191,6 @@ var RULE_BODY_ONLY = ["body"];
80097
80191
  var RULE_TEXT = ["title", "body"];
80098
80192
  var BATTERY = ["device-battery-low", "device-battery-normal"];
80099
80193
  var CONSUMABLE = ["device-consumable-low", "device-consumable-normal"];
80100
- var TANK = [
80101
- "device-tank-low",
80102
- "device-tank-full",
80103
- "device-tank-normal"
80104
- ];
80105
80194
  var ALERT_EPISODE = [
80106
80195
  "alert-critical",
80107
80196
  "alert-error",
@@ -80133,7 +80222,6 @@ var DEVICE_EVENTS = [
80133
80222
  "device-enabled",
80134
80223
  ...BATTERY,
80135
80224
  ...CONSUMABLE,
80136
- ...TANK,
80137
80225
  "stream-online",
80138
80226
  "stream-offline",
80139
80227
  "detection-blind",
@@ -80179,12 +80267,6 @@ var STATE_SUMMARY_SECTION_VARS = [
80179
80267
  example: "Robot — filter 10 %",
80180
80268
  kinds: CONSUMABLE
80181
80269
  },
80182
- {
80183
- name: "summaryTanks",
80184
- label: "Summary: tanks",
80185
- example: "Robot — clean water low",
80186
- kinds: TANK
80187
- },
80188
80270
  {
80189
80271
  name: "summaryDetection",
80190
80272
  label: "Summary: cameras detecting nothing",
@@ -80300,8 +80382,7 @@ var STATE_SUMMARY_VARS = [
80300
80382
  ([...RULE_TEXT], [...COMBINED_ALARM]),
80301
80383
  ([...RULE_TEXT], [...DEVICE_EVENTS]),
80302
80384
  ([...RULE_TEXT], [...BATTERY, ...CONSUMABLE]),
80303
- ([...RULE_TEXT], [...CONSUMABLE, ...TANK]),
80304
- ([...RULE_TEXT], [...TANK]),
80385
+ ([...RULE_TEXT], [...CONSUMABLE]),
80305
80386
  [...RULE_TEXT],
80306
80387
  ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
80307
80388
  ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
@@ -80405,15 +80486,6 @@ new Map([
80405
80486
  snapshotLabel: "Consumables low now",
80406
80487
  snapshotSection: "consumables"
80407
80488
  },
80408
- {
80409
- id: "tanks",
80410
- family: "device-events",
80411
- label: "Tanks (low or full / back to normal)",
80412
- bad: ["device-tank-low", "device-tank-full"],
80413
- recovery: ["device-tank-normal"],
80414
- snapshotLabel: "Tanks low or full now",
80415
- snapshotSection: "tanks"
80416
- },
80417
80489
  {
80418
80490
  id: "motion-noise",
80419
80491
  family: "device-events",
@@ -80815,6 +80887,10 @@ TimelapseRuleInputSchema.extend({
80815
80887
  updatedAt: number()
80816
80888
  });
80817
80889
  MotionOnMotionChangedDataSchema.omit({ triggeredBy: true });
80890
+ Object.freeze({
80891
+ person: .8,
80892
+ vehicle: .8
80893
+ });
80818
80894
  object({
80819
80895
  /**
80820
80896
  * Fraction of the box's own size added on EACH side before cutting.
@@ -83413,6 +83489,25 @@ var CAP_STATE_LEAVES = Object.freeze({
83413
83489
  "path": "reason",
83414
83490
  "valueType": "string"
83415
83491
  }],
83492
+ "running-state": [
83493
+ {
83494
+ "path": "running",
83495
+ "valueType": "boolean"
83496
+ },
83497
+ {
83498
+ "path": "since",
83499
+ "valueType": "number"
83500
+ },
83501
+ {
83502
+ "path": "source",
83503
+ "valueType": "enum",
83504
+ "enumValues": ["native", "assigned"]
83505
+ },
83506
+ {
83507
+ "path": "phase",
83508
+ "valueType": "string"
83509
+ }
83510
+ ],
83416
83511
  "script-runner": [
83417
83512
  {
83418
83513
  "path": "isRunning",
@@ -1,6 +1,6 @@
1
1
  import { S as e, d as t, u as n, v as r } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-C-pbjC7c.mjs";
2
2
  import { n as i, r as a, t as o } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DalfdIDw.mjs";
3
- import { c as s, l as c } from "./responsive-D6dYIr_q.mjs";
3
+ import { c as s, l as c } from "./responsive-BiymurY0.mjs";
4
4
  var l = c("chevron-down", [["path", {
5
5
  d: "m6 9 6 6 6-6",
6
6
  key: "qrunsl"
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-CneSXrJN.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-BYRSI4Gv.mjs";
2
2
  export { t as get, e as init };
@@ -1,6 +1,6 @@
1
1
  import { S as e, d as t, g as n, i as r, l as i, n as a, r as o, u as s, v as c, y as l } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-C-pbjC7c.mjs";
2
2
  import "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DalfdIDw.mjs";
3
- import { i as u } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-aj1Biv3C.mjs";
3
+ import { i as u } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BbmRj6OR.mjs";
4
4
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
5
5
  e();
6
6
  var d = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), f = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), p = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), m = (e) => {
@@ -1,6 +1,6 @@
1
1
  import { S as e, g as t, l as n, v as r } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-C-pbjC7c.mjs";
2
2
  import { n as i } from "./ui-text-BitwQ50T.mjs";
3
- import { l as a } from "./responsive-D6dYIr_q.mjs";
3
+ import { l as a } from "./responsive-BiymurY0.mjs";
4
4
  var o = a("camera", [["path", {
5
5
  d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",
6
6
  key: "18u6gg"
@@ -1,4 +1,4 @@
1
- import { l as e } from "./responsive-D6dYIr_q.mjs";
1
+ import { l as e } from "./responsive-BiymurY0.mjs";
2
2
  var t = e("eye-off", [
3
3
  ["path", {
4
4
  d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",
@@ -1,4 +1,4 @@
1
- import { l as e } from "./responsive-D6dYIr_q.mjs";
1
+ import { l as e } from "./responsive-BiymurY0.mjs";
2
2
  var t = e("trash-2", [
3
3
  ["path", {
4
4
  d: "M10 11v6",
@@ -2753,7 +2753,7 @@ async function rr(e) {
2753
2753
  }
2754
2754
  }
2755
2755
  async function ir() {
2756
- return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-DaixXuTN.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-DXtR0Eje.mjs")).catch((e) => {
2757
2757
  throw tr = void 0, e;
2758
2758
  }), tr;
2759
2759
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-osd-manager",
3
- "version": "0.1.265",
3
+ "version": "0.1.267",
4
4
  "description": "Binds camera on-screen-display slots to live state and recognitions",
5
5
  "keywords": [
6
6
  "camstack",