@camstack/addon-agent-ui 1.2.86 → 1.2.88

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 (2) hide show
  1. package/dist/addon.js +39 -10
  2. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -11952,6 +11952,9 @@ var QueryFilterSchema = object({
11952
11952
  whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
11953
11953
  /** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
11954
11954
  whereNot: record(string(), unknown()).optional(),
11955
+ /** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
11956
+ * empty list excludes nothing. See `QueryFilter.whereNotIn`. */
11957
+ whereNotIn: record(string(), array(unknown())).optional(),
11955
11958
  orderBy: object({
11956
11959
  field: string(),
11957
11960
  direction: _enum(["asc", "desc"])
@@ -11972,7 +11975,8 @@ var MutationFilterSchema = object({
11972
11975
  where: record(string(), unknown()).optional(),
11973
11976
  whereIn: record(string(), array(unknown())).optional(),
11974
11977
  whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
11975
- whereNot: record(string(), unknown()).optional()
11978
+ whereNot: record(string(), unknown()).optional(),
11979
+ whereNotIn: record(string(), array(unknown())).optional()
11976
11980
  });
11977
11981
  /**
11978
11982
  * One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
@@ -18462,10 +18466,12 @@ var TrackSourceSchema = _enum([
18462
18466
  * Terminal for the plain `markForTrain` toggle: returning it to `staging` is
18463
18467
  * a deliberate action of the retrain page, not a side effect of a checkbox.
18464
18468
  *
18465
- * There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` because
18466
- * the store's filter language has only positive equality and `whereIn` no
18467
- * negation, no IS NULL so a NULL would be unselectable by ANY predicate and
18468
- * would make the entire pre-column history immortal in one deploy.
18469
+ * There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
18470
+ * every row is selectable by a positive predicate. (The filter language has
18471
+ * since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
18472
+ * of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
18473
+ * filtered on a NULLABLE column — see `excludeSources`. It did not when this
18474
+ * column was designed, and a NOT NULL column is still the better shape.)
18469
18475
  */
18470
18476
  var RetrainStatusSchema = _enum([
18471
18477
  "none",
@@ -19201,7 +19207,9 @@ var RecentTracksQueryInput = object({
19201
19207
  * whose class list is unreadable are kept, and the client's rule stays the
19202
19208
  * exact one.
19203
19209
  */
19204
- classes: array(string()).optional()
19210
+ classes: array(string()).optional(),
19211
+ /** See {@link ExcludeSourcesDoc}. */
19212
+ excludeSources: array(TrackSourceSchema).optional()
19205
19213
  });
19206
19214
  /**
19207
19215
  * A Summary (D359): the per-camera session envelope that references tracks.
@@ -19629,7 +19637,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
19629
19637
  * selected is an operator who has not narrowed anything, and an empty
19630
19638
  * timeline would read as a camera that saw nothing.
19631
19639
  */
19632
- classes: array(string()).optional()
19640
+ classes: array(string()).optional(),
19641
+ /** See {@link ExcludeSourcesDoc}. */
19642
+ excludeSources: array(TrackSourceSchema).optional()
19633
19643
  }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
19634
19644
  kind: "mutation",
19635
19645
  auth: "admin"
@@ -27090,8 +27100,27 @@ var PrivacyMaskRegionSchema = object({
27090
27100
  });
27091
27101
  object({
27092
27102
  enabled: boolean(),
27093
- /** Active zones (normalized 0..1). Length ≤ maxRegions. */
27094
- regions: array(PrivacyMaskRegionSchema),
27103
+ /**
27104
+ * Active zones (normalized 0..1). Length ≤ maxRegions.
27105
+ *
27106
+ * `null` means "no answer" — the provider has never reached this camera
27107
+ * (a cold `runtimeState` slice, a battery camera asleep) or the read
27108
+ * failed. A consumer must render it as UNKNOWN and never as "this camera
27109
+ * has no zones": those two look identical to an operator right up to the
27110
+ * moment one of them is acted on, and acting on them differs completely.
27111
+ * The switch group turned an unanswered read into *"nothing is set up for
27112
+ * it to act on"* — an instruction to go and draw a zone that already
27113
+ * exists — and this editor seeded an EMPTY canvas from it, one Save away
27114
+ * from deleting the mask it could not read.
27115
+ *
27116
+ * Empty-and-answered is `[]` and stays a real answer: this camera genuinely
27117
+ * has no zones. The distinction is the same one {@link
27118
+ * PrivacyMaskStatusSchema.shape.audioEnabled} already draws for the
27119
+ * microphone, on the very same payload — both planes come from ONE refresh,
27120
+ * so it was never coherent for one of them to be able to say "unknown"
27121
+ * while the other could not.
27122
+ */
27123
+ regions: array(PrivacyMaskRegionSchema).nullable(),
27095
27124
  /**
27096
27125
  * Is the camera capturing sound right now? Read from the camera, never from
27097
27126
  * a server-side mirror.
@@ -38116,7 +38145,7 @@ var AgentUIAddon = class extends BaseAddon {
38116
38145
  capability: adminUiCapability,
38117
38146
  provider: {
38118
38147
  getStaticDir: async () => ({ staticDir: path.resolve(__dirname) }),
38119
- getVersion: async () => ({ version: "1.2.86" })
38148
+ getVersion: async () => ({ version: "1.2.88" })
38120
38149
  }
38121
38150
  }];
38122
38151
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-agent-ui",
3
- "version": "1.2.86",
3
+ "version": "1.2.88",
4
4
  "description": "Agent UI — lightweight status dashboard served by every agent node",
5
5
  "keywords": [
6
6
  "camstack",