@camstack/addon-agent-ui 1.2.85 → 1.2.87

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 +37 -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"
@@ -20134,8 +20144,25 @@ var occupancyRecheckFramesField = {
20134
20144
  * (analyzer attaches detected `regions[]`; onboard does not — the
20135
20145
  * camera typically only reports a binary signal plus an optional
20136
20146
  * channel/AI class which lives in dedicated event channels).
20137
- */
20138
- var MotionSourceEnum = _enum(["onboard", "analyzer"]);
20147
+ *
20148
+ * - `onboard` — the camera's firmware said something moved.
20149
+ * - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
20150
+ * - `device-activity` — the DEVICE said it is doing its job: the
20151
+ * `recording-signal` LEVEL the same device raises for the recorder
20152
+ * ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
20153
+ * republished as a motion source. It attaches **nothing** — no regions, no
20154
+ * class: the only fact it carries is that the device is active, and a robot
20155
+ * vacuum that is itself the moving object has no region worth sending. It is
20156
+ * a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
20157
+ * `analyzer` it must not open the frame-diff side-channel — the runner's
20158
+ * `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
20159
+ * way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
20160
+ */
20161
+ var MotionSourceEnum = _enum([
20162
+ "onboard",
20163
+ "analyzer",
20164
+ "device-activity"
20165
+ ]);
20139
20166
  /**
20140
20167
  * List of motion sources active on a camera. Empty array is valid:
20141
20168
  * "no source" — happens for battery cams without firmware motion when
@@ -38099,7 +38126,7 @@ var AgentUIAddon = class extends BaseAddon {
38099
38126
  capability: adminUiCapability,
38100
38127
  provider: {
38101
38128
  getStaticDir: async () => ({ staticDir: path.resolve(__dirname) }),
38102
- getVersion: async () => ({ version: "1.2.85" })
38129
+ getVersion: async () => ({ version: "1.2.87" })
38103
38130
  }
38104
38131
  }];
38105
38132
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-agent-ui",
3
- "version": "1.2.85",
3
+ "version": "1.2.87",
4
4
  "description": "Agent UI — lightweight status dashboard served by every agent node",
5
5
  "keywords": [
6
6
  "camstack",