@camstack/addon-tailscale 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.
@@ -24,7 +24,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  enumerable: true
25
25
  }) : target, mod));
26
26
  //#endregion
27
- const require_dist = require("../dist-CaxA18E2.js");
27
+ const require_dist = require("../dist-BYrw97eJ.js");
28
28
  let node_child_process = require("node:child_process");
29
29
  let node_util = require("node:util");
30
30
  let node_fs = require("node:fs");
@@ -1,4 +1,4 @@
1
- import { i as EventCategory, n as networkAccessCapability, r as BaseAddon, t as meshNetworkCapability } from "../dist-LzWxzaDF.mjs";
1
+ import { i as EventCategory, n as networkAccessCapability, r as BaseAddon, t as meshNetworkCapability } from "../dist-B6t_56LI.mjs";
2
2
  import { execFile, spawn } from "node:child_process";
3
3
  import { promisify } from "node:util";
4
4
  import * as fs from "node:fs";
@@ -4627,7 +4627,7 @@ function _instanceof(cls, params = {}) {
4627
4627
  return inst;
4628
4628
  }
4629
4629
  //#endregion
4630
- //#region ../types/dist/sleep-_J5S7OEP.mjs
4630
+ //#region ../types/dist/sleep-NOH4yRwj.mjs
4631
4631
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4632
4632
  EventCategory["SystemBoot"] = "system.boot";
4633
4633
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -12655,7 +12655,8 @@ method(object({
12655
12655
  sessionId: string().optional()
12656
12656
  }), ConvertResultSchema, {
12657
12657
  kind: "mutation",
12658
- auth: "admin"
12658
+ auth: "admin",
12659
+ timeoutMs: 6e5
12659
12660
  });
12660
12661
  var AddonHttpRouteSchema = object({
12661
12662
  method: _enum([
@@ -14208,7 +14209,14 @@ var NotificationRuleConditionsSchema = object({
14208
14209
  /** Match against `event.data.eventType` token (e.g. `'press_long'`). When non-empty, only events
14209
14210
  * carrying a matching `data.eventType` string pass this condition. Rules without this field are
14210
14211
  * unaffected (back-compat). Distinct from `rule.eventTypes` which holds EventCategory strings. */
14211
- eventTypeTokens: array(string()).readonly().optional()
14212
+ eventTypeTokens: array(string()).readonly().optional(),
14213
+ /** Match detections whose CLIP image embedding is semantically similar to this free-text
14214
+ * description. Requires the embedding-encoder cap to have pre-warmed the text vector.
14215
+ * `minSimilarity` is the cosine similarity threshold in [0, 1]. */
14216
+ clipDescription: object({
14217
+ text: string().min(1),
14218
+ minSimilarity: number().min(0).max(1)
14219
+ }).optional()
14212
14220
  });
14213
14221
  var NotificationRuleTemplateSchema = object({
14214
14222
  title: string(),
@@ -14450,6 +14458,16 @@ var TrackedDetectionSchema = object({
14450
14458
  zones: array(string()).readonly(),
14451
14459
  state: TrackStateSchema
14452
14460
  });
14461
+ var ScoredObjectEventSchema = ObjectEventSchema.extend({ score: number() });
14462
+ var SearchObjectEventsInput = object({
14463
+ text: string(),
14464
+ deviceId: number().optional(),
14465
+ since: number().optional(),
14466
+ until: number().optional(),
14467
+ classFilter: string().optional(),
14468
+ limit: number().default(50),
14469
+ minScore: number().min(0).max(1).default(.2)
14470
+ });
14453
14471
  DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).readonly()), method(object({
14454
14472
  deviceId: number(),
14455
14473
  trackId: string()
@@ -14484,7 +14502,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
14484
14502
  }), method(object({
14485
14503
  eventId: string(),
14486
14504
  kind: MediaFileKindEnum.optional()
14487
- }), array(MediaFileSchema).readonly()), method(object({ trackId: string() }), array(MediaFileSchema).readonly()), object({
14505
+ }), array(MediaFileSchema).readonly()), method(object({ trackId: string() }), array(MediaFileSchema).readonly()), method(SearchObjectEventsInput, array(ScoredObjectEventSchema).readonly()), object({
14488
14506
  deviceId: number(),
14489
14507
  timestamp: number(),
14490
14508
  frameWidth: number(),
@@ -19195,6 +19213,12 @@ Object.freeze({
19195
19213
  addonId: null,
19196
19214
  access: "create"
19197
19215
  },
19216
+ "pipelineAnalytics.searchObjectEvents": {
19217
+ capName: "pipeline-analytics",
19218
+ capScope: "device",
19219
+ addonId: null,
19220
+ access: "view"
19221
+ },
19198
19222
  "pipelineExecutor.cacheFrameInPool": {
19199
19223
  capName: "pipeline-executor",
19200
19224
  capScope: "system",
@@ -4627,7 +4627,7 @@ function _instanceof(cls, params = {}) {
4627
4627
  return inst;
4628
4628
  }
4629
4629
  //#endregion
4630
- //#region ../types/dist/sleep-_J5S7OEP.mjs
4630
+ //#region ../types/dist/sleep-NOH4yRwj.mjs
4631
4631
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4632
4632
  EventCategory["SystemBoot"] = "system.boot";
4633
4633
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -12655,7 +12655,8 @@ method(object({
12655
12655
  sessionId: string().optional()
12656
12656
  }), ConvertResultSchema, {
12657
12657
  kind: "mutation",
12658
- auth: "admin"
12658
+ auth: "admin",
12659
+ timeoutMs: 6e5
12659
12660
  });
12660
12661
  var AddonHttpRouteSchema = object({
12661
12662
  method: _enum([
@@ -14208,7 +14209,14 @@ var NotificationRuleConditionsSchema = object({
14208
14209
  /** Match against `event.data.eventType` token (e.g. `'press_long'`). When non-empty, only events
14209
14210
  * carrying a matching `data.eventType` string pass this condition. Rules without this field are
14210
14211
  * unaffected (back-compat). Distinct from `rule.eventTypes` which holds EventCategory strings. */
14211
- eventTypeTokens: array(string()).readonly().optional()
14212
+ eventTypeTokens: array(string()).readonly().optional(),
14213
+ /** Match detections whose CLIP image embedding is semantically similar to this free-text
14214
+ * description. Requires the embedding-encoder cap to have pre-warmed the text vector.
14215
+ * `minSimilarity` is the cosine similarity threshold in [0, 1]. */
14216
+ clipDescription: object({
14217
+ text: string().min(1),
14218
+ minSimilarity: number().min(0).max(1)
14219
+ }).optional()
14212
14220
  });
14213
14221
  var NotificationRuleTemplateSchema = object({
14214
14222
  title: string(),
@@ -14450,6 +14458,16 @@ var TrackedDetectionSchema = object({
14450
14458
  zones: array(string()).readonly(),
14451
14459
  state: TrackStateSchema
14452
14460
  });
14461
+ var ScoredObjectEventSchema = ObjectEventSchema.extend({ score: number() });
14462
+ var SearchObjectEventsInput = object({
14463
+ text: string(),
14464
+ deviceId: number().optional(),
14465
+ since: number().optional(),
14466
+ until: number().optional(),
14467
+ classFilter: string().optional(),
14468
+ limit: number().default(50),
14469
+ minScore: number().min(0).max(1).default(.2)
14470
+ });
14453
14471
  DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).readonly()), method(object({
14454
14472
  deviceId: number(),
14455
14473
  trackId: string()
@@ -14484,7 +14502,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
14484
14502
  }), method(object({
14485
14503
  eventId: string(),
14486
14504
  kind: MediaFileKindEnum.optional()
14487
- }), array(MediaFileSchema).readonly()), method(object({ trackId: string() }), array(MediaFileSchema).readonly()), object({
14505
+ }), array(MediaFileSchema).readonly()), method(object({ trackId: string() }), array(MediaFileSchema).readonly()), method(SearchObjectEventsInput, array(ScoredObjectEventSchema).readonly()), object({
14488
14506
  deviceId: number(),
14489
14507
  timestamp: number(),
14490
14508
  frameWidth: number(),
@@ -19195,6 +19213,12 @@ Object.freeze({
19195
19213
  addonId: null,
19196
19214
  access: "create"
19197
19215
  },
19216
+ "pipelineAnalytics.searchObjectEvents": {
19217
+ capName: "pipeline-analytics",
19218
+ capScope: "device",
19219
+ addonId: null,
19220
+ access: "view"
19221
+ },
19198
19222
  "pipelineExecutor.cacheFrameInPool": {
19199
19223
  capName: "pipeline-executor",
19200
19224
  capScope: "system",
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_dist = require("../dist-CaxA18E2.js");
5
+ const require_dist = require("../dist-BYrw97eJ.js");
6
6
  let node_child_process = require("node:child_process");
7
7
  let node_util = require("node:util");
8
8
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { i as EventCategory, n as networkAccessCapability, r as BaseAddon } from "../dist-LzWxzaDF.mjs";
1
+ import { i as EventCategory, n as networkAccessCapability, r as BaseAddon } from "../dist-B6t_56LI.mjs";
2
2
  import { execFile } from "node:child_process";
3
3
  import { promisify } from "node:util";
4
4
  import { randomUUID } from "node:crypto";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-tailscale",
3
- "version": "1.1.4",
3
+ "version": "1.1.5",
4
4
  "description": "Tailscale bundle for CamStack — joins the host to a tailnet (client) and exposes the hub via Serve/Funnel (ingress). Multi-entry npm package shipping 2 addons under a single bundle.",
5
5
  "keywords": [
6
6
  "camstack",