@camstack/addon-provider-tuya 0.2.67 → 0.2.69

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.
package/dist/addon.js CHANGED
@@ -20226,6 +20226,33 @@ var RecentTracksQueryInput = object({
20226
20226
  */
20227
20227
  classes: array(string()).optional()
20228
20228
  });
20229
+ /**
20230
+ * A Summary (D359): the per-camera session envelope that references tracks.
20231
+ * `groupShotKey` is the media key of its group shot (`ownerKind: 'summary'`,
20232
+ * served by the event-media plane by key), null until the first frame with a
20233
+ * member visible has been materialised.
20234
+ */
20235
+ var SummarySchema = object({
20236
+ id: string(),
20237
+ deviceId: number(),
20238
+ openedAt: number(),
20239
+ lastActiveAt: number(),
20240
+ sealedAt: number().nullable(),
20241
+ memberCount: number().int().nonnegative(),
20242
+ groupShotKey: string().nullable()
20243
+ });
20244
+ var SummariesQueryInput = object({
20245
+ deviceIds: array(number()).min(1),
20246
+ since: number().optional(),
20247
+ until: number().optional(),
20248
+ limit: number().int().min(1).max(200).default(50)
20249
+ });
20250
+ var SummariesPageSchema = object({ summaries: array(SummarySchema).readonly() });
20251
+ var SummaryDetailSchema = object({
20252
+ summary: SummarySchema,
20253
+ /** Member track ids, in absorption order. */
20254
+ trackIds: array(string()).readonly()
20255
+ });
20229
20256
  var RecentTracksPageSchema = object({
20230
20257
  /** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
20231
20258
  tracks: array(TrackSchema).readonly(),
@@ -20626,7 +20653,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
20626
20653
  * timeline would read as a camera that saw nothing.
20627
20654
  */
20628
20655
  classes: array(string()).optional()
20629
- }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(object({ deviceId: number() }), _void(), {
20656
+ }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
20630
20657
  kind: "mutation",
20631
20658
  auth: "admin"
20632
20659
  }), 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({
@@ -21561,6 +21588,14 @@ var AgentPipelineSettingsSchema = object({
21561
21588
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
21562
21589
  ingest: boolean().optional(),
21563
21590
  /**
21591
+ * This node's decode RAM budget, MB. Wins over the cluster
21592
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
21593
+ * own RAM unless the operator moved the cluster value (D365).
21594
+ */
21595
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
21596
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
21597
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
21598
+ /**
21564
21599
  * Operator override for the LAN host a cross-node decoder dials to reach
21565
21600
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
21566
21601
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -22022,6 +22057,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
22022
22057
  }), object({ success: literal(true) }), {
22023
22058
  kind: "mutation",
22024
22059
  auth: "admin"
22060
+ }), method(object({
22061
+ agentNodeId: string(),
22062
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
22063
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
22064
+ }), object({ success: literal(true) }), {
22065
+ kind: "mutation",
22066
+ auth: "admin"
22025
22067
  }), method(object({
22026
22068
  agentNodeId: string(),
22027
22069
  reachableHost: string().nullable()
@@ -37353,6 +37395,12 @@ Object.freeze({
37353
37395
  addonId: null,
37354
37396
  access: "view"
37355
37397
  },
37398
+ "pipelineAnalytics.getSummary": {
37399
+ capName: "pipeline-analytics",
37400
+ capScope: "device",
37401
+ addonId: null,
37402
+ access: "view"
37403
+ },
37356
37404
  "pipelineAnalytics.getTrack": {
37357
37405
  capName: "pipeline-analytics",
37358
37406
  capScope: "device",
@@ -37431,6 +37479,12 @@ Object.freeze({
37431
37479
  addonId: null,
37432
37480
  access: "view"
37433
37481
  },
37482
+ "pipelineAnalytics.listSummaries": {
37483
+ capName: "pipeline-analytics",
37484
+ capScope: "device",
37485
+ addonId: null,
37486
+ access: "view"
37487
+ },
37434
37488
  "pipelineAnalytics.listTrackMedia": {
37435
37489
  capName: "pipeline-analytics",
37436
37490
  capScope: "device",
@@ -37989,6 +38043,12 @@ Object.freeze({
37989
38043
  addonId: null,
37990
38044
  access: "create"
37991
38045
  },
38046
+ "pipelineOrchestrator.setAgentDecodeLimits": {
38047
+ capName: "pipeline-orchestrator",
38048
+ capScope: "system",
38049
+ addonId: null,
38050
+ access: "create"
38051
+ },
37992
38052
  "pipelineOrchestrator.setAgentDetectWeight": {
37993
38053
  capName: "pipeline-orchestrator",
37994
38054
  capScope: "system",
@@ -41120,6 +41180,11 @@ Object.freeze({
41120
41180
  form: "array",
41121
41181
  optional: true
41122
41182
  }],
41183
+ "pipelineAnalytics.listSummaries": [{
41184
+ name: "deviceIds",
41185
+ form: "array",
41186
+ optional: false
41187
+ }],
41123
41188
  "pipelineAnalytics.listTrackMedia": [{
41124
41189
  name: "deviceId",
41125
41190
  form: "single",
package/dist/addon.mjs CHANGED
@@ -20225,6 +20225,33 @@ var RecentTracksQueryInput = object({
20225
20225
  */
20226
20226
  classes: array(string()).optional()
20227
20227
  });
20228
+ /**
20229
+ * A Summary (D359): the per-camera session envelope that references tracks.
20230
+ * `groupShotKey` is the media key of its group shot (`ownerKind: 'summary'`,
20231
+ * served by the event-media plane by key), null until the first frame with a
20232
+ * member visible has been materialised.
20233
+ */
20234
+ var SummarySchema = object({
20235
+ id: string(),
20236
+ deviceId: number(),
20237
+ openedAt: number(),
20238
+ lastActiveAt: number(),
20239
+ sealedAt: number().nullable(),
20240
+ memberCount: number().int().nonnegative(),
20241
+ groupShotKey: string().nullable()
20242
+ });
20243
+ var SummariesQueryInput = object({
20244
+ deviceIds: array(number()).min(1),
20245
+ since: number().optional(),
20246
+ until: number().optional(),
20247
+ limit: number().int().min(1).max(200).default(50)
20248
+ });
20249
+ var SummariesPageSchema = object({ summaries: array(SummarySchema).readonly() });
20250
+ var SummaryDetailSchema = object({
20251
+ summary: SummarySchema,
20252
+ /** Member track ids, in absorption order. */
20253
+ trackIds: array(string()).readonly()
20254
+ });
20228
20255
  var RecentTracksPageSchema = object({
20229
20256
  /** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
20230
20257
  tracks: array(TrackSchema).readonly(),
@@ -20625,7 +20652,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
20625
20652
  * timeline would read as a camera that saw nothing.
20626
20653
  */
20627
20654
  classes: array(string()).optional()
20628
- }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(object({ deviceId: number() }), _void(), {
20655
+ }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
20629
20656
  kind: "mutation",
20630
20657
  auth: "admin"
20631
20658
  }), 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({
@@ -21560,6 +21587,14 @@ var AgentPipelineSettingsSchema = object({
21560
21587
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
21561
21588
  ingest: boolean().optional(),
21562
21589
  /**
21590
+ * This node's decode RAM budget, MB. Wins over the cluster
21591
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
21592
+ * own RAM unless the operator moved the cluster value (D365).
21593
+ */
21594
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
21595
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
21596
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
21597
+ /**
21563
21598
  * Operator override for the LAN host a cross-node decoder dials to reach
21564
21599
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
21565
21600
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -22021,6 +22056,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
22021
22056
  }), object({ success: literal(true) }), {
22022
22057
  kind: "mutation",
22023
22058
  auth: "admin"
22059
+ }), method(object({
22060
+ agentNodeId: string(),
22061
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
22062
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
22063
+ }), object({ success: literal(true) }), {
22064
+ kind: "mutation",
22065
+ auth: "admin"
22024
22066
  }), method(object({
22025
22067
  agentNodeId: string(),
22026
22068
  reachableHost: string().nullable()
@@ -37352,6 +37394,12 @@ Object.freeze({
37352
37394
  addonId: null,
37353
37395
  access: "view"
37354
37396
  },
37397
+ "pipelineAnalytics.getSummary": {
37398
+ capName: "pipeline-analytics",
37399
+ capScope: "device",
37400
+ addonId: null,
37401
+ access: "view"
37402
+ },
37355
37403
  "pipelineAnalytics.getTrack": {
37356
37404
  capName: "pipeline-analytics",
37357
37405
  capScope: "device",
@@ -37430,6 +37478,12 @@ Object.freeze({
37430
37478
  addonId: null,
37431
37479
  access: "view"
37432
37480
  },
37481
+ "pipelineAnalytics.listSummaries": {
37482
+ capName: "pipeline-analytics",
37483
+ capScope: "device",
37484
+ addonId: null,
37485
+ access: "view"
37486
+ },
37433
37487
  "pipelineAnalytics.listTrackMedia": {
37434
37488
  capName: "pipeline-analytics",
37435
37489
  capScope: "device",
@@ -37988,6 +38042,12 @@ Object.freeze({
37988
38042
  addonId: null,
37989
38043
  access: "create"
37990
38044
  },
38045
+ "pipelineOrchestrator.setAgentDecodeLimits": {
38046
+ capName: "pipeline-orchestrator",
38047
+ capScope: "system",
38048
+ addonId: null,
38049
+ access: "create"
38050
+ },
37991
38051
  "pipelineOrchestrator.setAgentDetectWeight": {
37992
38052
  capName: "pipeline-orchestrator",
37993
38053
  capScope: "system",
@@ -41119,6 +41179,11 @@ Object.freeze({
41119
41179
  form: "array",
41120
41180
  optional: true
41121
41181
  }],
41182
+ "pipelineAnalytics.listSummaries": [{
41183
+ name: "deviceIds",
41184
+ form: "array",
41185
+ optional: false
41186
+ }],
41122
41187
  "pipelineAnalytics.listTrackMedia": [{
41123
41188
  name: "deviceId",
41124
41189
  form: "single",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-tuya",
3
- "version": "0.2.67",
3
+ "version": "0.2.69",
4
4
  "description": "Tuya / Smart Life device-provider addon for CamStack — account-onboarded (Tuya IoT cloud fetch of device localKeys) + LOCAL DP control via the @apocaliss92/nodetuya encrypted-LAN client, exposing switch / water-heater-family kettle entities",
5
5
  "keywords": [
6
6
  "camstack",