@camstack/addon-export-ha-mqtt 1.1.4 → 1.1.5

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.
@@ -4679,7 +4679,7 @@ function number(params) {
4679
4679
  return /* @__PURE__ */ _coercedNumber(ZodNumber, params);
4680
4680
  }
4681
4681
  //#endregion
4682
- //#region ../types/dist/sleep-_J5S7OEP.mjs
4682
+ //#region ../types/dist/sleep-NOH4yRwj.mjs
4683
4683
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4684
4684
  EventCategory["SystemBoot"] = "system.boot";
4685
4685
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -12732,7 +12732,8 @@ method(object({
12732
12732
  sessionId: string().optional()
12733
12733
  }), ConvertResultSchema, {
12734
12734
  kind: "mutation",
12735
- auth: "admin"
12735
+ auth: "admin",
12736
+ timeoutMs: 6e5
12736
12737
  });
12737
12738
  var AddonHttpRouteSchema = object({
12738
12739
  method: _enum([
@@ -14268,7 +14269,14 @@ var NotificationRuleConditionsSchema = object({
14268
14269
  /** Match against `event.data.eventType` token (e.g. `'press_long'`). When non-empty, only events
14269
14270
  * carrying a matching `data.eventType` string pass this condition. Rules without this field are
14270
14271
  * unaffected (back-compat). Distinct from `rule.eventTypes` which holds EventCategory strings. */
14271
- eventTypeTokens: array(string()).readonly().optional()
14272
+ eventTypeTokens: array(string()).readonly().optional(),
14273
+ /** Match detections whose CLIP image embedding is semantically similar to this free-text
14274
+ * description. Requires the embedding-encoder cap to have pre-warmed the text vector.
14275
+ * `minSimilarity` is the cosine similarity threshold in [0, 1]. */
14276
+ clipDescription: object({
14277
+ text: string().min(1),
14278
+ minSimilarity: number$1().min(0).max(1)
14279
+ }).optional()
14272
14280
  });
14273
14281
  var NotificationRuleTemplateSchema = object({
14274
14282
  title: string(),
@@ -14510,6 +14518,16 @@ var TrackedDetectionSchema = object({
14510
14518
  zones: array(string()).readonly(),
14511
14519
  state: TrackStateSchema
14512
14520
  });
14521
+ var ScoredObjectEventSchema = ObjectEventSchema.extend({ score: number$1() });
14522
+ var SearchObjectEventsInput = object({
14523
+ text: string(),
14524
+ deviceId: number$1().optional(),
14525
+ since: number$1().optional(),
14526
+ until: number$1().optional(),
14527
+ classFilter: string().optional(),
14528
+ limit: number$1().default(50),
14529
+ minScore: number$1().min(0).max(1).default(.2)
14530
+ });
14513
14531
  DeviceType.Camera, method(object({ deviceId: number$1() }), array(TrackSchema).readonly()), method(object({
14514
14532
  deviceId: number$1(),
14515
14533
  trackId: string()
@@ -14544,7 +14562,7 @@ DeviceType.Camera, method(object({ deviceId: number$1() }), array(TrackSchema).r
14544
14562
  }), method(object({
14545
14563
  eventId: string(),
14546
14564
  kind: MediaFileKindEnum.optional()
14547
- }), array(MediaFileSchema).readonly()), method(object({ trackId: string() }), array(MediaFileSchema).readonly()), object({
14565
+ }), array(MediaFileSchema).readonly()), method(object({ trackId: string() }), array(MediaFileSchema).readonly()), method(SearchObjectEventsInput, array(ScoredObjectEventSchema).readonly()), object({
14548
14566
  deviceId: number$1(),
14549
14567
  timestamp: number$1(),
14550
14568
  frameWidth: number$1(),
@@ -19194,6 +19212,12 @@ Object.freeze({
19194
19212
  addonId: null,
19195
19213
  access: "create"
19196
19214
  },
19215
+ "pipelineAnalytics.searchObjectEvents": {
19216
+ capName: "pipeline-analytics",
19217
+ capScope: "device",
19218
+ addonId: null,
19219
+ access: "view"
19220
+ },
19197
19221
  "pipelineExecutor.cacheFrameInPool": {
19198
19222
  capName: "pipeline-executor",
19199
19223
  capScope: "system",
@@ -4677,7 +4677,7 @@ function number(params) {
4677
4677
  return /* @__PURE__ */ _coercedNumber(ZodNumber, params);
4678
4678
  }
4679
4679
  //#endregion
4680
- //#region ../types/dist/sleep-_J5S7OEP.mjs
4680
+ //#region ../types/dist/sleep-NOH4yRwj.mjs
4681
4681
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4682
4682
  EventCategory["SystemBoot"] = "system.boot";
4683
4683
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -12730,7 +12730,8 @@ method(object({
12730
12730
  sessionId: string().optional()
12731
12731
  }), ConvertResultSchema, {
12732
12732
  kind: "mutation",
12733
- auth: "admin"
12733
+ auth: "admin",
12734
+ timeoutMs: 6e5
12734
12735
  });
12735
12736
  var AddonHttpRouteSchema = object({
12736
12737
  method: _enum([
@@ -14266,7 +14267,14 @@ var NotificationRuleConditionsSchema = object({
14266
14267
  /** Match against `event.data.eventType` token (e.g. `'press_long'`). When non-empty, only events
14267
14268
  * carrying a matching `data.eventType` string pass this condition. Rules without this field are
14268
14269
  * unaffected (back-compat). Distinct from `rule.eventTypes` which holds EventCategory strings. */
14269
- eventTypeTokens: array(string()).readonly().optional()
14270
+ eventTypeTokens: array(string()).readonly().optional(),
14271
+ /** Match detections whose CLIP image embedding is semantically similar to this free-text
14272
+ * description. Requires the embedding-encoder cap to have pre-warmed the text vector.
14273
+ * `minSimilarity` is the cosine similarity threshold in [0, 1]. */
14274
+ clipDescription: object({
14275
+ text: string().min(1),
14276
+ minSimilarity: number$1().min(0).max(1)
14277
+ }).optional()
14270
14278
  });
14271
14279
  var NotificationRuleTemplateSchema = object({
14272
14280
  title: string(),
@@ -14508,6 +14516,16 @@ var TrackedDetectionSchema = object({
14508
14516
  zones: array(string()).readonly(),
14509
14517
  state: TrackStateSchema
14510
14518
  });
14519
+ var ScoredObjectEventSchema = ObjectEventSchema.extend({ score: number$1() });
14520
+ var SearchObjectEventsInput = object({
14521
+ text: string(),
14522
+ deviceId: number$1().optional(),
14523
+ since: number$1().optional(),
14524
+ until: number$1().optional(),
14525
+ classFilter: string().optional(),
14526
+ limit: number$1().default(50),
14527
+ minScore: number$1().min(0).max(1).default(.2)
14528
+ });
14511
14529
  DeviceType.Camera, method(object({ deviceId: number$1() }), array(TrackSchema).readonly()), method(object({
14512
14530
  deviceId: number$1(),
14513
14531
  trackId: string()
@@ -14542,7 +14560,7 @@ DeviceType.Camera, method(object({ deviceId: number$1() }), array(TrackSchema).r
14542
14560
  }), method(object({
14543
14561
  eventId: string(),
14544
14562
  kind: MediaFileKindEnum.optional()
14545
- }), array(MediaFileSchema).readonly()), method(object({ trackId: string() }), array(MediaFileSchema).readonly()), object({
14563
+ }), array(MediaFileSchema).readonly()), method(object({ trackId: string() }), array(MediaFileSchema).readonly()), method(SearchObjectEventsInput, array(ScoredObjectEventSchema).readonly()), object({
14546
14564
  deviceId: number$1(),
14547
14565
  timestamp: number$1(),
14548
14566
  frameWidth: number$1(),
@@ -19192,6 +19210,12 @@ Object.freeze({
19192
19210
  addonId: null,
19193
19211
  access: "create"
19194
19212
  },
19213
+ "pipelineAnalytics.searchObjectEvents": {
19214
+ capName: "pipeline-analytics",
19215
+ capScope: "device",
19216
+ addonId: null,
19217
+ access: "view"
19218
+ },
19195
19219
  "pipelineExecutor.cacheFrameInPool": {
19196
19220
  capName: "pipeline-executor",
19197
19221
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-export-ha-mqtt",
3
- "version": "1.1.4",
3
+ "version": "1.1.5",
4
4
  "description": "HomeAssistant MQTT discovery exporter for CamStack devices. Publishes discovery topics so HA auto-creates entities for exposed cameras/switches/intercoms/sensors.",
5
5
  "keywords": [
6
6
  "camstack",