camstack 1.2.99 → 1.2.101

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.
@@ -14522,7 +14522,7 @@ function date4(params) {
14522
14522
  // ../../node_modules/zod/v4/classic/external.js
14523
14523
  config(en_default());
14524
14524
 
14525
- // ../types/dist/sleep-BQJlnUOJ.mjs
14525
+ // ../types/dist/sleep-Db7MvrdS.mjs
14526
14526
  var WELL_KNOWN_TABS = [
14527
14527
  {
14528
14528
  id: "overview",
@@ -26669,6 +26669,27 @@ var RecentTracksQueryInput = external_exports.object({
26669
26669
  */
26670
26670
  classes: external_exports.array(external_exports.string()).optional()
26671
26671
  });
26672
+ var SummarySchema = external_exports.object({
26673
+ id: external_exports.string(),
26674
+ deviceId: external_exports.number(),
26675
+ openedAt: external_exports.number(),
26676
+ lastActiveAt: external_exports.number(),
26677
+ sealedAt: external_exports.number().nullable(),
26678
+ memberCount: external_exports.number().int().nonnegative(),
26679
+ groupShotKey: external_exports.string().nullable()
26680
+ });
26681
+ var SummariesQueryInput = external_exports.object({
26682
+ deviceIds: external_exports.array(external_exports.number()).min(1),
26683
+ since: external_exports.number().optional(),
26684
+ until: external_exports.number().optional(),
26685
+ limit: external_exports.number().int().min(1).max(200).default(50)
26686
+ });
26687
+ var SummariesPageSchema = external_exports.object({ summaries: external_exports.array(SummarySchema).readonly() });
26688
+ var SummaryDetailSchema = external_exports.object({
26689
+ summary: SummarySchema,
26690
+ /** Member track ids, in absorption order. */
26691
+ trackIds: external_exports.array(external_exports.string()).readonly()
26692
+ });
26672
26693
  var RecentTracksPageSchema = external_exports.object({
26673
26694
  /** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
26674
26695
  tracks: external_exports.array(TrackSchema).readonly(),
@@ -27005,6 +27026,10 @@ var pipelineAnalyticsCapability = {
27005
27026
  * are not included (same contract as `listTracks`).
27006
27027
  */
27007
27028
  listRecentTracks: method(RecentTracksQueryInput, RecentTracksPageSchema),
27029
+ /** Newest first by `openedAt`, for a camera set, inside an optional window. */
27030
+ listSummaries: method(SummariesQueryInput, SummariesPageSchema),
27031
+ /** One summary with its member track ids; `null` for an id nobody wrote. */
27032
+ getSummary: method(external_exports.object({ id: external_exports.string() }), SummaryDetailSchema.nullable()),
27008
27033
  clearTracks: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.void(), {
27009
27034
  kind: "mutation",
27010
27035
  auth: "admin"
@@ -42809,6 +42834,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
42809
42834
  addonId: null,
42810
42835
  access: "view"
42811
42836
  },
42837
+ "pipelineAnalytics.getSummary": {
42838
+ capName: "pipeline-analytics",
42839
+ capScope: "device",
42840
+ addonId: null,
42841
+ access: "view"
42842
+ },
42812
42843
  "pipelineAnalytics.getTrack": {
42813
42844
  capName: "pipeline-analytics",
42814
42845
  capScope: "device",
@@ -42887,6 +42918,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
42887
42918
  addonId: null,
42888
42919
  access: "view"
42889
42920
  },
42921
+ "pipelineAnalytics.listSummaries": {
42922
+ capName: "pipeline-analytics",
42923
+ capScope: "device",
42924
+ addonId: null,
42925
+ access: "view"
42926
+ },
42890
42927
  "pipelineAnalytics.listTrackMedia": {
42891
42928
  capName: "pipeline-analytics",
42892
42929
  capScope: "device",
@@ -46582,6 +46619,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
46582
46619
  form: "array",
46583
46620
  optional: true
46584
46621
  }],
46622
+ "pipelineAnalytics.listSummaries": [{
46623
+ name: "deviceIds",
46624
+ form: "array",
46625
+ optional: false
46626
+ }],
46585
46627
  "pipelineAnalytics.listTrackMedia": [{
46586
46628
  name: "deviceId",
46587
46629
  form: "single",
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runDiscover
4
- } from "./chunk-MVI45IY3.js";
4
+ } from "./chunk-7N7KEXGL.js";
5
5
  import "./chunk-LMMQX4CK.js";
6
6
 
7
7
  // src/cli.ts
@@ -38,7 +38,7 @@ async function runServe(args) {
38
38
  ...typeof values.data === "string" ? { data: values.data } : {}
39
39
  };
40
40
  Object.assign(process.env, buildServeEnv(opts));
41
- await import("./launcher-F62YE57J.js");
41
+ await import("./launcher-Q6SAJY4R.js");
42
42
  }
43
43
 
44
44
  // src/commands/agent.ts
@@ -83,7 +83,7 @@ async function runAgent(args) {
83
83
  ...typeof values.port === "string" ? { port: values.port } : {}
84
84
  };
85
85
  Object.assign(process.env, buildAgentEnv(opts));
86
- await import("./launcher-F62YE57J.js");
86
+ await import("./launcher-Q6SAJY4R.js");
87
87
  }
88
88
 
89
89
  // src/commands/setup.ts
@@ -1130,7 +1130,7 @@ function isUnknown(_value) {
1130
1130
  return true;
1131
1131
  }
1132
1132
  async function resolveServerInteractive(presetNamespace) {
1133
- const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-F3GZOIXQ.js");
1133
+ const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-3TATRQOW.js");
1134
1134
  if (presetNamespace) {
1135
1135
  const spinner4 = clack.spinner();
1136
1136
  spinner4.start(`Discovering hub on LAN (namespace "${presetNamespace}")`);
@@ -5,7 +5,7 @@ import {
5
5
  filterHubNodes,
6
6
  resolveHubFromDiscovered,
7
7
  runDiscover
8
- } from "./chunk-MVI45IY3.js";
8
+ } from "./chunk-7N7KEXGL.js";
9
9
  import "./chunk-LMMQX4CK.js";
10
10
  export {
11
11
  DEFAULT_HUB_HTTPS_PORT,
@@ -23633,9 +23633,9 @@ var require_zod = __commonJS({
23633
23633
  }
23634
23634
  });
23635
23635
 
23636
- // ../system/dist/dist-2wpm3tOu.js
23637
- var require_dist_2wpm3tOu = __commonJS({
23638
- "../system/dist/dist-2wpm3tOu.js"(exports) {
23636
+ // ../system/dist/dist-DyO7xSEt.js
23637
+ var require_dist_DyO7xSEt = __commonJS({
23638
+ "../system/dist/dist-DyO7xSEt.js"(exports) {
23639
23639
  "use strict";
23640
23640
  var zod = require_zod();
23641
23641
  var EventCategory = /* @__PURE__ */ (function(EventCategory2) {
@@ -37374,6 +37374,27 @@ var require_dist_2wpm3tOu = __commonJS({
37374
37374
  */
37375
37375
  classes: zod.z.array(zod.z.string()).optional()
37376
37376
  });
37377
+ var SummarySchema = zod.z.object({
37378
+ id: zod.z.string(),
37379
+ deviceId: zod.z.number(),
37380
+ openedAt: zod.z.number(),
37381
+ lastActiveAt: zod.z.number(),
37382
+ sealedAt: zod.z.number().nullable(),
37383
+ memberCount: zod.z.number().int().nonnegative(),
37384
+ groupShotKey: zod.z.string().nullable()
37385
+ });
37386
+ var SummariesQueryInput = zod.z.object({
37387
+ deviceIds: zod.z.array(zod.z.number()).min(1),
37388
+ since: zod.z.number().optional(),
37389
+ until: zod.z.number().optional(),
37390
+ limit: zod.z.number().int().min(1).max(200).default(50)
37391
+ });
37392
+ var SummariesPageSchema = zod.z.object({ summaries: zod.z.array(SummarySchema).readonly() });
37393
+ var SummaryDetailSchema = zod.z.object({
37394
+ summary: SummarySchema,
37395
+ /** Member track ids, in absorption order. */
37396
+ trackIds: zod.z.array(zod.z.string()).readonly()
37397
+ });
37377
37398
  var RecentTracksPageSchema = zod.z.object({
37378
37399
  /** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
37379
37400
  tracks: zod.z.array(TrackSchema).readonly(),
@@ -37710,6 +37731,10 @@ var require_dist_2wpm3tOu = __commonJS({
37710
37731
  * are not included (same contract as `listTracks`).
37711
37732
  */
37712
37733
  listRecentTracks: method(RecentTracksQueryInput, RecentTracksPageSchema),
37734
+ /** Newest first by `openedAt`, for a camera set, inside an optional window. */
37735
+ listSummaries: method(SummariesQueryInput, SummariesPageSchema),
37736
+ /** One summary with its member track ids; `null` for an id nobody wrote. */
37737
+ getSummary: method(zod.z.object({ id: zod.z.string() }), SummaryDetailSchema.nullable()),
37713
37738
  clearTracks: method(zod.z.object({ deviceId: zod.z.number() }), zod.z.void(), {
37714
37739
  kind: "mutation",
37715
37740
  auth: "admin"
@@ -54191,6 +54216,12 @@ var require_dist_2wpm3tOu = __commonJS({
54191
54216
  addonId: null,
54192
54217
  access: "view"
54193
54218
  },
54219
+ "pipelineAnalytics.getSummary": {
54220
+ capName: "pipeline-analytics",
54221
+ capScope: "device",
54222
+ addonId: null,
54223
+ access: "view"
54224
+ },
54194
54225
  "pipelineAnalytics.getTrack": {
54195
54226
  capName: "pipeline-analytics",
54196
54227
  capScope: "device",
@@ -54269,6 +54300,12 @@ var require_dist_2wpm3tOu = __commonJS({
54269
54300
  addonId: null,
54270
54301
  access: "view"
54271
54302
  },
54303
+ "pipelineAnalytics.listSummaries": {
54304
+ capName: "pipeline-analytics",
54305
+ capScope: "device",
54306
+ addonId: null,
54307
+ access: "view"
54308
+ },
54272
54309
  "pipelineAnalytics.listTrackMedia": {
54273
54310
  capName: "pipeline-analytics",
54274
54311
  capScope: "device",
@@ -57964,6 +58001,11 @@ var require_dist_2wpm3tOu = __commonJS({
57964
58001
  form: "array",
57965
58002
  optional: true
57966
58003
  }],
58004
+ "pipelineAnalytics.listSummaries": [{
58005
+ name: "deviceIds",
58006
+ form: "array",
58007
+ optional: false
58008
+ }],
57967
58009
  "pipelineAnalytics.listTrackMedia": [{
57968
58010
  name: "deviceId",
57969
58011
  form: "single",
@@ -59600,6 +59642,12 @@ var require_dist_2wpm3tOu = __commonJS({
59600
59642
  return ReadinessTimeoutError;
59601
59643
  }
59602
59644
  });
59645
+ Object.defineProperty(exports, "RecordingStatusSchema", {
59646
+ enumerable: true,
59647
+ get: function() {
59648
+ return RecordingStatusSchema;
59649
+ }
59650
+ });
59603
59651
  Object.defineProperty(exports, "SOURCE_CAPS", {
59604
59652
  enumerable: true,
59605
59653
  get: function() {
@@ -60146,7 +60194,7 @@ var require_alerts_addon = __commonJS({
60146
60194
  [Symbol.toStringTag]: { value: "Module" }
60147
60195
  });
60148
60196
  require_chunk_Cek0wNdY();
60149
- var require_dist10 = require_dist_2wpm3tOu();
60197
+ var require_dist10 = require_dist_DyO7xSEt();
60150
60198
  function selectExpired(alerts, cutoffMs) {
60151
60199
  return alerts.filter((a) => a.createdAt < cutoffMs).sort((a, b) => a.createdAt - b.createdAt).map((a) => a.id);
60152
60200
  }
@@ -60965,7 +61013,7 @@ var require_console_logging = __commonJS({
60965
61013
  [Symbol.toStringTag]: { value: "Module" }
60966
61014
  });
60967
61015
  require_chunk_Cek0wNdY();
60968
- var require_dist10 = require_dist_2wpm3tOu();
61016
+ var require_dist10 = require_dist_DyO7xSEt();
60969
61017
  var require_formatter = require_formatter_DqAKDlvN();
60970
61018
  var LEVEL_RANK = {
60971
61019
  debug: 0,
@@ -61059,7 +61107,7 @@ var require_core_blocks_addon = __commonJS({
61059
61107
  "use strict";
61060
61108
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
61061
61109
  var require_chunk = require_chunk_Cek0wNdY();
61062
- var require_dist10 = require_dist_2wpm3tOu();
61110
+ var require_dist10 = require_dist_DyO7xSEt();
61063
61111
  var node_crypto = __require("crypto");
61064
61112
  var node_fs_promises = __require("fs/promises");
61065
61113
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -61956,11 +62004,11 @@ var require_core_blocks = __commonJS({
61956
62004
  }
61957
62005
  });
61958
62006
 
61959
- // ../system/dist/retired-settings-keys-D6gkOkcN.js
61960
- var require_retired_settings_keys_D6gkOkcN = __commonJS({
61961
- "../system/dist/retired-settings-keys-D6gkOkcN.js"(exports) {
62007
+ // ../system/dist/retired-settings-keys-BD6-AoDL.js
62008
+ var require_retired_settings_keys_BD6_AoDL = __commonJS({
62009
+ "../system/dist/retired-settings-keys-BD6-AoDL.js"(exports) {
61962
62010
  "use strict";
61963
- var require_dist10 = require_dist_2wpm3tOu();
62011
+ var require_dist10 = require_dist_DyO7xSEt();
61964
62012
  function settingsStoreIsAuthoritativeHere(env) {
61965
62013
  const raw = (env["CAMSTACK_ROLE"] ?? "").trim().toLowerCase();
61966
62014
  return raw === "" || raw === "hub";
@@ -64174,8 +64222,8 @@ var require_device_manager_addon = __commonJS({
64174
64222
  [Symbol.toStringTag]: { value: "Module" }
64175
64223
  });
64176
64224
  require_chunk_Cek0wNdY();
64177
- var require_dist10 = require_dist_2wpm3tOu();
64178
- var require_retired_settings_keys = require_retired_settings_keys_D6gkOkcN();
64225
+ var require_dist10 = require_dist_DyO7xSEt();
64226
+ var require_retired_settings_keys = require_retired_settings_keys_BD6_AoDL();
64179
64227
  var node_crypto = __require("crypto");
64180
64228
  var _camstack_types_node = require_node();
64181
64229
  var JOB_HISTORY = 20;
@@ -69690,7 +69738,7 @@ var require_hub_forwarder = __commonJS({
69690
69738
  [Symbol.toStringTag]: { value: "Module" }
69691
69739
  });
69692
69740
  require_chunk_Cek0wNdY();
69693
- var require_dist10 = require_dist_2wpm3tOu();
69741
+ var require_dist10 = require_dist_DyO7xSEt();
69694
69742
  var require_formatter = require_formatter_DqAKDlvN();
69695
69743
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
69696
69744
  var HubForwarderDestination = class {
@@ -69827,7 +69875,7 @@ var require_liveness_monitor_addon = __commonJS({
69827
69875
  "use strict";
69828
69876
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
69829
69877
  require_chunk_Cek0wNdY();
69830
- var require_dist10 = require_dist_2wpm3tOu();
69878
+ var require_dist10 = require_dist_DyO7xSEt();
69831
69879
  var NO_DEVICES = "liveness:no-devices";
69832
69880
  var ALL_OFFLINE = "liveness:all-devices-offline";
69833
69881
  var NO_FOOTAGE_PREFIX = "liveness:no-footage:";
@@ -69853,6 +69901,7 @@ var require_liveness_monitor_addon = __commonJS({
69853
69901
  if (!cam.online) continue;
69854
69902
  const silentFor = facts.nowMs - cam.lastSegmentMs;
69855
69903
  if (silentFor <= facts.staleAfterMs) continue;
69904
+ if (cam.activeMode !== null && cam.activeMode !== "continuous") continue;
69856
69905
  findings.push({
69857
69906
  id: `${NO_FOOTAGE_PREFIX}${cam.deviceId}`,
69858
69907
  severity: "error",
@@ -69926,11 +69975,16 @@ var require_liveness_monitor_addon = __commonJS({
69926
69975
  };
69927
69976
  const cameraDevices = devices.filter((d) => d.isCamera === true);
69928
69977
  const cameras = [];
69929
- for (const device of cameraDevices) cameras.push({
69930
- deviceId: device.id,
69931
- online: device.online === true,
69932
- lastSegmentMs: await this.lastSegmentMs(device.id, nowMs, staleAfterMs)
69933
- });
69978
+ for (const device of cameraDevices) {
69979
+ const lastSegmentMs = await this.lastSegmentMs(device.id, nowMs, staleAfterMs);
69980
+ const activeMode = lastSegmentMs !== null && nowMs - lastSegmentMs > staleAfterMs ? require_dist10.RecordingStatusSchema.parse(await this.ctx.api.recording.getStatus.query({ deviceId: device.id })).activeMode : null;
69981
+ cameras.push({
69982
+ deviceId: device.id,
69983
+ online: device.online === true,
69984
+ lastSegmentMs,
69985
+ activeMode
69986
+ });
69987
+ }
69934
69988
  return {
69935
69989
  nowMs,
69936
69990
  deviceCount: devices.length,
@@ -70017,7 +70071,7 @@ var require_local_auth_addon = __commonJS({
70017
70071
  [Symbol.toStringTag]: { value: "Module" }
70018
70072
  });
70019
70073
  var require_chunk = require_chunk_Cek0wNdY();
70020
- var require_dist10 = require_dist_2wpm3tOu();
70074
+ var require_dist10 = require_dist_DyO7xSEt();
70021
70075
  var node_crypto = __require("crypto");
70022
70076
  node_crypto = require_chunk.__toESM(node_crypto);
70023
70077
  var crypto$1 = __require("crypto");
@@ -77830,7 +77884,7 @@ var require_loki_logging = __commonJS({
77830
77884
  [Symbol.toStringTag]: { value: "Module" }
77831
77885
  });
77832
77886
  require_chunk_Cek0wNdY();
77833
- var require_dist10 = require_dist_2wpm3tOu();
77887
+ var require_dist10 = require_dist_DyO7xSEt();
77834
77888
  function sanitizeLabelName(raw) {
77835
77889
  const replaced = raw.replaceAll(/[^a-zA-Z0-9_]/g, "_");
77836
77890
  return /^[a-zA-Z_]/.test(replaced) ? replaced : `_${replaced}`;
@@ -78395,7 +78449,7 @@ var require_native_metrics_addon = __commonJS({
78395
78449
  [Symbol.toStringTag]: { value: "Module" }
78396
78450
  });
78397
78451
  var require_chunk = require_chunk_Cek0wNdY();
78398
- var require_dist10 = require_dist_2wpm3tOu();
78452
+ var require_dist10 = require_dist_DyO7xSEt();
78399
78453
  var node_fs_promises = __require("fs/promises");
78400
78454
  var node_child_process = __require("child_process");
78401
78455
  var node_util = __require("util");
@@ -80979,7 +81033,7 @@ var require_filesystem_storage_addon = __commonJS({
80979
81033
  [Symbol.toStringTag]: { value: "Module" }
80980
81034
  });
80981
81035
  var require_chunk = require_chunk_Cek0wNdY();
80982
- var require_dist10 = require_dist_2wpm3tOu();
81036
+ var require_dist10 = require_dist_DyO7xSEt();
80983
81037
  var node_crypto = __require("crypto");
80984
81038
  var node_fs_promises = __require("fs/promises");
80985
81039
  var node_path = __require("path");
@@ -82095,8 +82149,8 @@ var require_sqlite_settings_addon = __commonJS({
82095
82149
  [Symbol.toStringTag]: { value: "Module" }
82096
82150
  });
82097
82151
  var require_chunk = require_chunk_Cek0wNdY();
82098
- var require_dist10 = require_dist_2wpm3tOu();
82099
- var require_retired_settings_keys = require_retired_settings_keys_D6gkOkcN();
82152
+ var require_dist10 = require_dist_DyO7xSEt();
82153
+ var require_retired_settings_keys = require_retired_settings_keys_BD6_AoDL();
82100
82154
  var node_crypto = __require("crypto");
82101
82155
  var node_fs = __require("fs");
82102
82156
  var node_module = __require("module");
@@ -84586,7 +84640,7 @@ var require_storage_orchestrator_addon = __commonJS({
84586
84640
  [Symbol.toStringTag]: { value: "Module" }
84587
84641
  });
84588
84642
  var require_chunk = require_chunk_Cek0wNdY();
84589
- var require_dist10 = require_dist_2wpm3tOu();
84643
+ var require_dist10 = require_dist_DyO7xSEt();
84590
84644
  var require_hub_cap_forward = require_hub_cap_forward_DmHNjbB0();
84591
84645
  var zod = require_zod();
84592
84646
  var node_crypto = __require("crypto");
@@ -87537,7 +87591,7 @@ var require_system_config_addon = __commonJS({
87537
87591
  [Symbol.toStringTag]: { value: "Module" }
87538
87592
  });
87539
87593
  require_chunk_Cek0wNdY();
87540
- var require_dist10 = require_dist_2wpm3tOu();
87594
+ var require_dist10 = require_dist_DyO7xSEt();
87541
87595
  var SECTION_TITLES = {
87542
87596
  server: "Server",
87543
87597
  auth: "Authentication"
@@ -105598,7 +105652,7 @@ var require_winston_logging = __commonJS({
105598
105652
  [Symbol.toStringTag]: { value: "Module" }
105599
105653
  });
105600
105654
  var require_chunk = require_chunk_Cek0wNdY();
105601
- var require_dist10 = require_dist_2wpm3tOu();
105655
+ var require_dist10 = require_dist_DyO7xSEt();
105602
105656
  var require_formatter = require_formatter_DqAKDlvN();
105603
105657
  var node_path = __require("path");
105604
105658
  node_path = require_chunk.__toESM(node_path);
@@ -107541,9 +107595,9 @@ var require_event_category_BaEgqJNv = __commonJS({
107541
107595
  }
107542
107596
  });
107543
107597
 
107544
- // ../types/dist/sleep-BCUreN6s.js
107545
- var require_sleep_BCUreN6s = __commonJS({
107546
- "../types/dist/sleep-BCUreN6s.js"(exports) {
107598
+ // ../types/dist/sleep-DVTaZZHP.js
107599
+ var require_sleep_DVTaZZHP = __commonJS({
107600
+ "../types/dist/sleep-DVTaZZHP.js"(exports) {
107547
107601
  "use strict";
107548
107602
  var require_event_category = require_event_category_BaEgqJNv();
107549
107603
  var zod = require_zod();
@@ -110218,6 +110272,8 @@ var require_sleep_BCUreN6s = __commonJS({
110218
110272
  getTrack: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getTrack", "query", input),
110219
110273
  listTracks: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listTracks", "query", input),
110220
110274
  listRecentTracks: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listRecentTracks", "query", input),
110275
+ listSummaries: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listSummaries", "query", input),
110276
+ getSummary: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getSummary", "query", input),
110221
110277
  clearTracks: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "clearTracks", "mutation", input),
110222
110278
  getMotionEvents: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getMotionEvents", "query", input),
110223
110279
  getObjectEvents: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getObjectEvents", "query", input),
@@ -111231,7 +111287,7 @@ var require_addon = __commonJS({
111231
111287
  "use strict";
111232
111288
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
111233
111289
  var require_event_category = require_event_category_BaEgqJNv();
111234
- var require_sleep = require_sleep_BCUreN6s();
111290
+ var require_sleep = require_sleep_DVTaZZHP();
111235
111291
  var require_err_msg = require_err_msg_COpsHMw2();
111236
111292
  var CAP_INPUT_DEFAULTS = Object.freeze({
111237
111293
  "addons": { "getLogs": { "limit": 100 } },
@@ -111346,6 +111402,7 @@ var require_addon = __commonJS({
111346
111402
  "getObjectEvents": { "limit": 1e3 },
111347
111403
  "getSensorEvents": { "limit": 1e3 },
111348
111404
  "listRecentTracks": { "limit": 200 },
111405
+ "listSummaries": { "limit": 50 },
111349
111406
  "reclaimDebugMedia": { "mode": "report" },
111350
111407
  "searchObjectEvents": {
111351
111408
  "limit": 50,
@@ -130190,7 +130247,7 @@ var require_dist3 = __commonJS({
130190
130247
  "use strict";
130191
130248
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
130192
130249
  var require_chunk = require_chunk_Cek0wNdY();
130193
- var require_dist10 = require_dist_2wpm3tOu();
130250
+ var require_dist10 = require_dist_DyO7xSEt();
130194
130251
  var require_builtins_alerts_alerts_addon = require_alerts_addon();
130195
130252
  require_alerts();
130196
130253
  var require_formatter = require_formatter_DqAKDlvN();
@@ -211307,7 +211364,7 @@ var require_dist4 = __commonJS({
211307
211364
  "use strict";
211308
211365
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
211309
211366
  var require_event_category = require_event_category_BaEgqJNv();
211310
- var require_sleep = require_sleep_BCUreN6s();
211367
+ var require_sleep = require_sleep_DVTaZZHP();
211311
211368
  var require_canonical_hash = require_canonical_hash_DNV8S5ET();
211312
211369
  var require_enums2 = require_enums();
211313
211370
  var require_err_msg = require_err_msg_COpsHMw2();
@@ -225726,6 +225783,29 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
225726
225783
  */
225727
225784
  classes: zod.z.array(zod.z.string()).optional()
225728
225785
  });
225786
+ var SummarySchema = zod.z.object({
225787
+ id: zod.z.string(),
225788
+ deviceId: zod.z.number(),
225789
+ openedAt: zod.z.number(),
225790
+ lastActiveAt: zod.z.number(),
225791
+ sealedAt: zod.z.number().nullable(),
225792
+ memberCount: zod.z.number().int().nonnegative(),
225793
+ groupShotKey: zod.z.string().nullable()
225794
+ });
225795
+ var SUMMARIES_MAX_LIMIT = 200;
225796
+ var SUMMARIES_DEFAULT_LIMIT = 50;
225797
+ var SummariesQueryInput = zod.z.object({
225798
+ deviceIds: zod.z.array(zod.z.number()).min(1),
225799
+ since: zod.z.number().optional(),
225800
+ until: zod.z.number().optional(),
225801
+ limit: zod.z.number().int().min(1).max(200).default(50)
225802
+ });
225803
+ var SummariesPageSchema = zod.z.object({ summaries: zod.z.array(SummarySchema).readonly() });
225804
+ var SummaryDetailSchema = zod.z.object({
225805
+ summary: SummarySchema,
225806
+ /** Member track ids, in absorption order. */
225807
+ trackIds: zod.z.array(zod.z.string()).readonly()
225808
+ });
225729
225809
  var RecentTracksPageSchema = zod.z.object({
225730
225810
  /** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
225731
225811
  tracks: zod.z.array(TrackSchema).readonly(),
@@ -226063,6 +226143,10 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
226063
226143
  * are not included (same contract as `listTracks`).
226064
226144
  */
226065
226145
  listRecentTracks: require_sleep.method(RecentTracksQueryInput, RecentTracksPageSchema),
226146
+ /** Newest first by `openedAt`, for a camera set, inside an optional window. */
226147
+ listSummaries: require_sleep.method(SummariesQueryInput, SummariesPageSchema),
226148
+ /** One summary with its member track ids; `null` for an id nobody wrote. */
226149
+ getSummary: require_sleep.method(zod.z.object({ id: zod.z.string() }), SummaryDetailSchema.nullable()),
226066
226150
  clearTracks: require_sleep.method(zod.z.object({ deviceId: zod.z.number() }), zod.z.void(), {
226067
226151
  kind: "mutation",
226068
226152
  auth: "admin"
@@ -246011,6 +246095,12 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
246011
246095
  addonId: null,
246012
246096
  access: "view"
246013
246097
  },
246098
+ "pipelineAnalytics.getSummary": {
246099
+ capName: "pipeline-analytics",
246100
+ capScope: "device",
246101
+ addonId: null,
246102
+ access: "view"
246103
+ },
246014
246104
  "pipelineAnalytics.getTrack": {
246015
246105
  capName: "pipeline-analytics",
246016
246106
  capScope: "device",
@@ -246089,6 +246179,12 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
246089
246179
  addonId: null,
246090
246180
  access: "view"
246091
246181
  },
246182
+ "pipelineAnalytics.listSummaries": {
246183
+ capName: "pipeline-analytics",
246184
+ capScope: "device",
246185
+ addonId: null,
246186
+ access: "view"
246187
+ },
246092
246188
  "pipelineAnalytics.listTrackMedia": {
246093
246189
  capName: "pipeline-analytics",
246094
246190
  capScope: "device",
@@ -250042,6 +250138,11 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
250042
250138
  form: "array",
250043
250139
  optional: true
250044
250140
  }],
250141
+ "pipelineAnalytics.listSummaries": [{
250142
+ name: "deviceIds",
250143
+ form: "array",
250144
+ optional: false
250145
+ }],
250045
250146
  "pipelineAnalytics.listTrackMedia": [{
250046
250147
  name: "deviceId",
250047
250148
  form: "single",
@@ -255473,6 +255574,8 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
255473
255574
  exports.STREAM_PROFILE_META = STREAM_PROFILE_META;
255474
255575
  exports.STREAM_QUALITY_LABELS = STREAM_QUALITY_LABELS;
255475
255576
  exports.SUB_DETECTION_TYPES = SUB_DETECTION_TYPES;
255577
+ exports.SUMMARIES_DEFAULT_LIMIT = SUMMARIES_DEFAULT_LIMIT;
255578
+ exports.SUMMARIES_MAX_LIMIT = SUMMARIES_MAX_LIMIT;
255476
255579
  exports.SYSTEM_CAP_NAMES = SYSTEM_CAP_NAMES;
255477
255580
  exports.SYSTEM_SCOPE_DEVICE_METHODS = SYSTEM_SCOPE_DEVICE_METHODS;
255478
255581
  exports.SceneCheckSchema = SceneCheckSchema;
@@ -255574,6 +255677,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
255574
255677
  exports.SubscribeAudioChunksResultSchema = require_sleep.SubscribeAudioChunksResultSchema;
255575
255678
  exports.SubscribeFramesInputSchema = require_sleep.SubscribeFramesInputSchema;
255576
255679
  exports.SubscribeFramesResultSchema = require_sleep.SubscribeFramesResultSchema;
255680
+ exports.SummarySchema = SummarySchema;
255577
255681
  exports.SwitchStatusSchema = SwitchStatusSchema;
255578
255682
  exports.SystemMetricsSchema = SystemMetricsSchema;
255579
255683
  exports.SystemMirror = SystemMirror;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "camstack",
3
- "version": "1.2.99",
3
+ "version": "1.2.101",
4
4
  "description": "CLI tool for managing and running CamStack server",
5
5
  "keywords": [
6
6
  "camstack",