@camstack/addon-export-hap 1.2.78 → 1.2.80

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.
@@ -19822,6 +19822,33 @@ var RecentTracksQueryInput = object({
19822
19822
  */
19823
19823
  classes: array(string()).optional()
19824
19824
  });
19825
+ /**
19826
+ * A Summary (D359): the per-camera session envelope that references tracks.
19827
+ * `groupShotKey` is the media key of its group shot (`ownerKind: 'summary'`,
19828
+ * served by the event-media plane by key), null until the first frame with a
19829
+ * member visible has been materialised.
19830
+ */
19831
+ var SummarySchema = object({
19832
+ id: string(),
19833
+ deviceId: number(),
19834
+ openedAt: number(),
19835
+ lastActiveAt: number(),
19836
+ sealedAt: number().nullable(),
19837
+ memberCount: number().int().nonnegative(),
19838
+ groupShotKey: string().nullable()
19839
+ });
19840
+ var SummariesQueryInput = object({
19841
+ deviceIds: array(number()).min(1),
19842
+ since: number().optional(),
19843
+ until: number().optional(),
19844
+ limit: number().int().min(1).max(200).default(50)
19845
+ });
19846
+ var SummariesPageSchema = object({ summaries: array(SummarySchema).readonly() });
19847
+ var SummaryDetailSchema = object({
19848
+ summary: SummarySchema,
19849
+ /** Member track ids, in absorption order. */
19850
+ trackIds: array(string()).readonly()
19851
+ });
19825
19852
  var RecentTracksPageSchema = object({
19826
19853
  /** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
19827
19854
  tracks: array(TrackSchema).readonly(),
@@ -20222,7 +20249,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
20222
20249
  * timeline would read as a camera that saw nothing.
20223
20250
  */
20224
20251
  classes: array(string()).optional()
20225
- }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(object({ deviceId: number() }), _void(), {
20252
+ }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
20226
20253
  kind: "mutation",
20227
20254
  auth: "admin"
20228
20255
  }), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(object({ deviceId: number() }), array(EventKindDescriptorSchema).readonly()), method(object({ deviceIds: array(number()).min(1).max(200) }), array(EventKindsForDeviceSchema).readonly()), method(object({
@@ -21157,6 +21184,14 @@ var AgentPipelineSettingsSchema = object({
21157
21184
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
21158
21185
  ingest: boolean().optional(),
21159
21186
  /**
21187
+ * This node's decode RAM budget, MB. Wins over the cluster
21188
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
21189
+ * own RAM unless the operator moved the cluster value (D365).
21190
+ */
21191
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
21192
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
21193
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
21194
+ /**
21160
21195
  * Operator override for the LAN host a cross-node decoder dials to reach
21161
21196
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
21162
21197
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21618,6 +21653,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
21618
21653
  }), object({ success: literal(true) }), {
21619
21654
  kind: "mutation",
21620
21655
  auth: "admin"
21656
+ }), method(object({
21657
+ agentNodeId: string(),
21658
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
21659
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
21660
+ }), object({ success: literal(true) }), {
21661
+ kind: "mutation",
21662
+ auth: "admin"
21621
21663
  }), method(object({
21622
21664
  agentNodeId: string(),
21623
21665
  reachableHost: string().nullable()
@@ -33235,6 +33277,12 @@ Object.freeze({
33235
33277
  addonId: null,
33236
33278
  access: "view"
33237
33279
  },
33280
+ "pipelineAnalytics.getSummary": {
33281
+ capName: "pipeline-analytics",
33282
+ capScope: "device",
33283
+ addonId: null,
33284
+ access: "view"
33285
+ },
33238
33286
  "pipelineAnalytics.getTrack": {
33239
33287
  capName: "pipeline-analytics",
33240
33288
  capScope: "device",
@@ -33313,6 +33361,12 @@ Object.freeze({
33313
33361
  addonId: null,
33314
33362
  access: "view"
33315
33363
  },
33364
+ "pipelineAnalytics.listSummaries": {
33365
+ capName: "pipeline-analytics",
33366
+ capScope: "device",
33367
+ addonId: null,
33368
+ access: "view"
33369
+ },
33316
33370
  "pipelineAnalytics.listTrackMedia": {
33317
33371
  capName: "pipeline-analytics",
33318
33372
  capScope: "device",
@@ -33871,6 +33925,12 @@ Object.freeze({
33871
33925
  addonId: null,
33872
33926
  access: "create"
33873
33927
  },
33928
+ "pipelineOrchestrator.setAgentDecodeLimits": {
33929
+ capName: "pipeline-orchestrator",
33930
+ capScope: "system",
33931
+ addonId: null,
33932
+ access: "create"
33933
+ },
33874
33934
  "pipelineOrchestrator.setAgentDetectWeight": {
33875
33935
  capName: "pipeline-orchestrator",
33876
33936
  capScope: "system",
@@ -37002,6 +37062,11 @@ Object.freeze({
37002
37062
  form: "array",
37003
37063
  optional: true
37004
37064
  }],
37065
+ "pipelineAnalytics.listSummaries": [{
37066
+ name: "deviceIds",
37067
+ form: "array",
37068
+ optional: false
37069
+ }],
37005
37070
  "pipelineAnalytics.listTrackMedia": [{
37006
37071
  name: "deviceId",
37007
37072
  form: "single",
@@ -19810,6 +19810,33 @@ var RecentTracksQueryInput = object({
19810
19810
  */
19811
19811
  classes: array(string()).optional()
19812
19812
  });
19813
+ /**
19814
+ * A Summary (D359): the per-camera session envelope that references tracks.
19815
+ * `groupShotKey` is the media key of its group shot (`ownerKind: 'summary'`,
19816
+ * served by the event-media plane by key), null until the first frame with a
19817
+ * member visible has been materialised.
19818
+ */
19819
+ var SummarySchema = object({
19820
+ id: string(),
19821
+ deviceId: number(),
19822
+ openedAt: number(),
19823
+ lastActiveAt: number(),
19824
+ sealedAt: number().nullable(),
19825
+ memberCount: number().int().nonnegative(),
19826
+ groupShotKey: string().nullable()
19827
+ });
19828
+ var SummariesQueryInput = object({
19829
+ deviceIds: array(number()).min(1),
19830
+ since: number().optional(),
19831
+ until: number().optional(),
19832
+ limit: number().int().min(1).max(200).default(50)
19833
+ });
19834
+ var SummariesPageSchema = object({ summaries: array(SummarySchema).readonly() });
19835
+ var SummaryDetailSchema = object({
19836
+ summary: SummarySchema,
19837
+ /** Member track ids, in absorption order. */
19838
+ trackIds: array(string()).readonly()
19839
+ });
19813
19840
  var RecentTracksPageSchema = object({
19814
19841
  /** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
19815
19842
  tracks: array(TrackSchema).readonly(),
@@ -20210,7 +20237,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
20210
20237
  * timeline would read as a camera that saw nothing.
20211
20238
  */
20212
20239
  classes: array(string()).optional()
20213
- }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(object({ deviceId: number() }), _void(), {
20240
+ }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
20214
20241
  kind: "mutation",
20215
20242
  auth: "admin"
20216
20243
  }), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(object({ deviceId: number() }), array(EventKindDescriptorSchema).readonly()), method(object({ deviceIds: array(number()).min(1).max(200) }), array(EventKindsForDeviceSchema).readonly()), method(object({
@@ -21145,6 +21172,14 @@ var AgentPipelineSettingsSchema = object({
21145
21172
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
21146
21173
  ingest: boolean().optional(),
21147
21174
  /**
21175
+ * This node's decode RAM budget, MB. Wins over the cluster
21176
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
21177
+ * own RAM unless the operator moved the cluster value (D365).
21178
+ */
21179
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
21180
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
21181
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
21182
+ /**
21148
21183
  * Operator override for the LAN host a cross-node decoder dials to reach
21149
21184
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
21150
21185
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21606,6 +21641,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
21606
21641
  }), object({ success: literal(true) }), {
21607
21642
  kind: "mutation",
21608
21643
  auth: "admin"
21644
+ }), method(object({
21645
+ agentNodeId: string(),
21646
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
21647
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
21648
+ }), object({ success: literal(true) }), {
21649
+ kind: "mutation",
21650
+ auth: "admin"
21609
21651
  }), method(object({
21610
21652
  agentNodeId: string(),
21611
21653
  reachableHost: string().nullable()
@@ -33223,6 +33265,12 @@ Object.freeze({
33223
33265
  addonId: null,
33224
33266
  access: "view"
33225
33267
  },
33268
+ "pipelineAnalytics.getSummary": {
33269
+ capName: "pipeline-analytics",
33270
+ capScope: "device",
33271
+ addonId: null,
33272
+ access: "view"
33273
+ },
33226
33274
  "pipelineAnalytics.getTrack": {
33227
33275
  capName: "pipeline-analytics",
33228
33276
  capScope: "device",
@@ -33301,6 +33349,12 @@ Object.freeze({
33301
33349
  addonId: null,
33302
33350
  access: "view"
33303
33351
  },
33352
+ "pipelineAnalytics.listSummaries": {
33353
+ capName: "pipeline-analytics",
33354
+ capScope: "device",
33355
+ addonId: null,
33356
+ access: "view"
33357
+ },
33304
33358
  "pipelineAnalytics.listTrackMedia": {
33305
33359
  capName: "pipeline-analytics",
33306
33360
  capScope: "device",
@@ -33859,6 +33913,12 @@ Object.freeze({
33859
33913
  addonId: null,
33860
33914
  access: "create"
33861
33915
  },
33916
+ "pipelineOrchestrator.setAgentDecodeLimits": {
33917
+ capName: "pipeline-orchestrator",
33918
+ capScope: "system",
33919
+ addonId: null,
33920
+ access: "create"
33921
+ },
33862
33922
  "pipelineOrchestrator.setAgentDetectWeight": {
33863
33923
  capName: "pipeline-orchestrator",
33864
33924
  capScope: "system",
@@ -36990,6 +37050,11 @@ Object.freeze({
36990
37050
  form: "array",
36991
37051
  optional: true
36992
37052
  }],
37053
+ "pipelineAnalytics.listSummaries": [{
37054
+ name: "deviceIds",
37055
+ form: "array",
37056
+ optional: false
37057
+ }],
36993
37058
  "pipelineAnalytics.listTrackMedia": [{
36994
37059
  name: "deviceId",
36995
37060
  form: "single",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-export-hap",
3
- "version": "1.2.78",
3
+ "version": "1.2.80",
4
4
  "description": "HomeKit (HAP) exporter for CamStack devices. Publishes each exposed device as its own HomeKit accessory: cameras and doorbells with SRTP streaming, HomeKit Secure Video, motion, two-way audio, PTZ and battery; switches, lights, locks and sensors through a capability→service table.",
5
5
  "keywords": [
6
6
  "camstack",