@camstack/addon-export-hap 1.1.4 → 1.1.6

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.
@@ -4664,7 +4664,7 @@ function _instanceof(cls, params = {}) {
4664
4664
  return inst;
4665
4665
  }
4666
4666
  //#endregion
4667
- //#region ../types/dist/sleep-_J5S7OEP.mjs
4667
+ //#region ../types/dist/sleep-NOH4yRwj.mjs
4668
4668
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4669
4669
  EventCategory["SystemBoot"] = "system.boot";
4670
4670
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -12771,7 +12771,8 @@ method(object({
12771
12771
  sessionId: string().optional()
12772
12772
  }), ConvertResultSchema, {
12773
12773
  kind: "mutation",
12774
- auth: "admin"
12774
+ auth: "admin",
12775
+ timeoutMs: 6e5
12775
12776
  });
12776
12777
  var AddonHttpRouteSchema = object({
12777
12778
  method: _enum([
@@ -14307,7 +14308,14 @@ var NotificationRuleConditionsSchema = object({
14307
14308
  /** Match against `event.data.eventType` token (e.g. `'press_long'`). When non-empty, only events
14308
14309
  * carrying a matching `data.eventType` string pass this condition. Rules without this field are
14309
14310
  * unaffected (back-compat). Distinct from `rule.eventTypes` which holds EventCategory strings. */
14310
- eventTypeTokens: array(string()).readonly().optional()
14311
+ eventTypeTokens: array(string()).readonly().optional(),
14312
+ /** Match detections whose CLIP image embedding is semantically similar to this free-text
14313
+ * description. Requires the embedding-encoder cap to have pre-warmed the text vector.
14314
+ * `minSimilarity` is the cosine similarity threshold in [0, 1]. */
14315
+ clipDescription: object({
14316
+ text: string().min(1),
14317
+ minSimilarity: number().min(0).max(1)
14318
+ }).optional()
14311
14319
  });
14312
14320
  var NotificationRuleTemplateSchema = object({
14313
14321
  title: string(),
@@ -14549,6 +14557,16 @@ var TrackedDetectionSchema = object({
14549
14557
  zones: array(string()).readonly(),
14550
14558
  state: TrackStateSchema
14551
14559
  });
14560
+ var ScoredObjectEventSchema = ObjectEventSchema.extend({ score: number() });
14561
+ var SearchObjectEventsInput = object({
14562
+ text: string(),
14563
+ deviceId: number().optional(),
14564
+ since: number().optional(),
14565
+ until: number().optional(),
14566
+ classFilter: string().optional(),
14567
+ limit: number().default(50),
14568
+ minScore: number().min(0).max(1).default(.2)
14569
+ });
14552
14570
  DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).readonly()), method(object({
14553
14571
  deviceId: number(),
14554
14572
  trackId: string()
@@ -14583,7 +14601,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
14583
14601
  }), method(object({
14584
14602
  eventId: string(),
14585
14603
  kind: MediaFileKindEnum.optional()
14586
- }), array(MediaFileSchema).readonly()), method(object({ trackId: string() }), array(MediaFileSchema).readonly()), object({
14604
+ }), array(MediaFileSchema).readonly()), method(object({ trackId: string() }), array(MediaFileSchema).readonly()), method(SearchObjectEventsInput, array(ScoredObjectEventSchema).readonly()), object({
14587
14605
  deviceId: number(),
14588
14606
  timestamp: number(),
14589
14607
  frameWidth: number(),
@@ -19233,6 +19251,12 @@ Object.freeze({
19233
19251
  addonId: null,
19234
19252
  access: "create"
19235
19253
  },
19254
+ "pipelineAnalytics.searchObjectEvents": {
19255
+ capName: "pipeline-analytics",
19256
+ capScope: "device",
19257
+ addonId: null,
19258
+ access: "view"
19259
+ },
19236
19260
  "pipelineExecutor.cacheFrameInPool": {
19237
19261
  capName: "pipeline-executor",
19238
19262
  capScope: "system",
@@ -4639,7 +4639,7 @@ function _instanceof(cls, params = {}) {
4639
4639
  return inst;
4640
4640
  }
4641
4641
  //#endregion
4642
- //#region ../types/dist/sleep-_J5S7OEP.mjs
4642
+ //#region ../types/dist/sleep-NOH4yRwj.mjs
4643
4643
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4644
4644
  EventCategory["SystemBoot"] = "system.boot";
4645
4645
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -12746,7 +12746,8 @@ method(object({
12746
12746
  sessionId: string().optional()
12747
12747
  }), ConvertResultSchema, {
12748
12748
  kind: "mutation",
12749
- auth: "admin"
12749
+ auth: "admin",
12750
+ timeoutMs: 6e5
12750
12751
  });
12751
12752
  var AddonHttpRouteSchema = object({
12752
12753
  method: _enum([
@@ -14282,7 +14283,14 @@ var NotificationRuleConditionsSchema = object({
14282
14283
  /** Match against `event.data.eventType` token (e.g. `'press_long'`). When non-empty, only events
14283
14284
  * carrying a matching `data.eventType` string pass this condition. Rules without this field are
14284
14285
  * unaffected (back-compat). Distinct from `rule.eventTypes` which holds EventCategory strings. */
14285
- eventTypeTokens: array(string()).readonly().optional()
14286
+ eventTypeTokens: array(string()).readonly().optional(),
14287
+ /** Match detections whose CLIP image embedding is semantically similar to this free-text
14288
+ * description. Requires the embedding-encoder cap to have pre-warmed the text vector.
14289
+ * `minSimilarity` is the cosine similarity threshold in [0, 1]. */
14290
+ clipDescription: object({
14291
+ text: string().min(1),
14292
+ minSimilarity: number().min(0).max(1)
14293
+ }).optional()
14286
14294
  });
14287
14295
  var NotificationRuleTemplateSchema = object({
14288
14296
  title: string(),
@@ -14524,6 +14532,16 @@ var TrackedDetectionSchema = object({
14524
14532
  zones: array(string()).readonly(),
14525
14533
  state: TrackStateSchema
14526
14534
  });
14535
+ var ScoredObjectEventSchema = ObjectEventSchema.extend({ score: number() });
14536
+ var SearchObjectEventsInput = object({
14537
+ text: string(),
14538
+ deviceId: number().optional(),
14539
+ since: number().optional(),
14540
+ until: number().optional(),
14541
+ classFilter: string().optional(),
14542
+ limit: number().default(50),
14543
+ minScore: number().min(0).max(1).default(.2)
14544
+ });
14527
14545
  DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).readonly()), method(object({
14528
14546
  deviceId: number(),
14529
14547
  trackId: string()
@@ -14558,7 +14576,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
14558
14576
  }), method(object({
14559
14577
  eventId: string(),
14560
14578
  kind: MediaFileKindEnum.optional()
14561
- }), array(MediaFileSchema).readonly()), method(object({ trackId: string() }), array(MediaFileSchema).readonly()), object({
14579
+ }), array(MediaFileSchema).readonly()), method(object({ trackId: string() }), array(MediaFileSchema).readonly()), method(SearchObjectEventsInput, array(ScoredObjectEventSchema).readonly()), object({
14562
14580
  deviceId: number(),
14563
14581
  timestamp: number(),
14564
14582
  frameWidth: number(),
@@ -19208,6 +19226,12 @@ Object.freeze({
19208
19226
  addonId: null,
19209
19227
  access: "create"
19210
19228
  },
19229
+ "pipelineAnalytics.searchObjectEvents": {
19230
+ capName: "pipeline-analytics",
19231
+ capScope: "device",
19232
+ addonId: null,
19233
+ access: "view"
19234
+ },
19211
19235
  "pipelineExecutor.cacheFrameInPool": {
19212
19236
  capName: "pipeline-executor",
19213
19237
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-export-hap",
3
- "version": "1.1.4",
3
+ "version": "1.1.6",
4
4
  "description": "HomeKit (HAP) bridge exporter for CamStack devices. Publishes a bridged accessory per exposed device — MotionSensor in this MVP; Camera/Doorbell/Switch/Light follow.",
5
5
  "keywords": [
6
6
  "camstack",