@camstack/addon-tailscale 1.2.86 → 1.2.87

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-BHHoYHmH.js");
27
+ const require_dist = require("../dist-DcVWmpNd.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 { a as EventCategory, i as BaseAddon, n as networkAccessCapability, r as BOOT_RECOVERY_BACKOFF_MS, t as meshNetworkCapability } from "../dist-DQnICiSH.mjs";
1
+ import { a as EventCategory, i as BaseAddon, n as networkAccessCapability, r as BOOT_RECOVERY_BACKOFF_MS, t as meshNetworkCapability } from "../dist-DwQzwZEk.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";
@@ -7644,6 +7644,35 @@ var CameraSwitchGroupSchema = object({
7644
7644
  /** Unix ms when the group was composed server-side. */
7645
7645
  fetchedAt: number()
7646
7646
  });
7647
+ /** One archived note — the operator's words plus enough context to find what
7648
+ * they were looking at, after the track itself is gone. */
7649
+ var ArchivedDebugNoteSchema = object({
7650
+ /** Archive row id. Derived from `(sourceTrackId, note)`, so re-archiving the
7651
+ * same sentence about the same track lands on the row already there. */
7652
+ id: string(),
7653
+ /** The operator's own words, verbatim. */
7654
+ note: string(),
7655
+ /** The camera. Required — every question here is asked per-camera. */
7656
+ deviceId: number().int(),
7657
+ /** The track the note was written on. PROVENANCE, not ownership: the track
7658
+ * is expected to be gone, and this row is not a reference to it. */
7659
+ sourceTrackId: string(),
7660
+ /** Epoch ms the note was moved here, i.e. when the operator reviewed it. */
7661
+ archivedAt: number().int(),
7662
+ /** The track's `firstSeen`, when the row still knew it; `null` otherwise. */
7663
+ trackStartedAt: number().int().nullable(),
7664
+ /** The track's detector class (`person`, `car`, …); `null` when unknown. */
7665
+ trackClass: string().nullable(),
7666
+ /** The track's display label at review time; `null` when it had none. */
7667
+ trackLabel: string().nullable()
7668
+ });
7669
+ /** Query input for `listArchivedDebugNotes` — newest first, one camera or all. */
7670
+ var ArchivedDebugNoteQueryInputSchema = object({
7671
+ /** Restrict to a single camera; omit for every row. */
7672
+ deviceId: number().int().optional(),
7673
+ /** Max rows returned, newest-first. */
7674
+ limit: number().int().min(1).max(1e3).optional()
7675
+ });
7647
7676
  /**
7648
7677
  * Ops-log — the durable, append-only operations audit shared by the
7649
7678
  * recordings and events management surfaces.
@@ -19756,7 +19785,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
19756
19785
  deviceId: number(),
19757
19786
  trackId: string(),
19758
19787
  flags: TrackFlagsPatchSchema
19759
- }), TrackFlagsSchema, { kind: "mutation" }), method(object({}), EventStoreFootprintSchema, {
19788
+ }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
19760
19789
  kind: "query",
19761
19790
  auth: "admin"
19762
19791
  }), method(object({ deviceId: number().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -33215,6 +33244,12 @@ Object.freeze({
33215
33244
  addonId: null,
33216
33245
  access: "view"
33217
33246
  },
33247
+ "pipelineAnalytics.listArchivedDebugNotes": {
33248
+ capName: "pipeline-analytics",
33249
+ capScope: "device",
33250
+ addonId: null,
33251
+ access: "view"
33252
+ },
33218
33253
  "pipelineAnalytics.listEventKinds": {
33219
33254
  capName: "pipeline-analytics",
33220
33255
  capScope: "device",
@@ -37002,6 +37037,11 @@ Object.freeze({
37002
37037
  form: "array",
37003
37038
  optional: true
37004
37039
  }],
37040
+ "pipelineAnalytics.listArchivedDebugNotes": [{
37041
+ name: "deviceId",
37042
+ form: "single",
37043
+ optional: true
37044
+ }],
37005
37045
  "pipelineAnalytics.listEventKinds": [{
37006
37046
  name: "deviceId",
37007
37047
  form: "single",
@@ -7644,6 +7644,35 @@ var CameraSwitchGroupSchema = object({
7644
7644
  /** Unix ms when the group was composed server-side. */
7645
7645
  fetchedAt: number()
7646
7646
  });
7647
+ /** One archived note — the operator's words plus enough context to find what
7648
+ * they were looking at, after the track itself is gone. */
7649
+ var ArchivedDebugNoteSchema = object({
7650
+ /** Archive row id. Derived from `(sourceTrackId, note)`, so re-archiving the
7651
+ * same sentence about the same track lands on the row already there. */
7652
+ id: string(),
7653
+ /** The operator's own words, verbatim. */
7654
+ note: string(),
7655
+ /** The camera. Required — every question here is asked per-camera. */
7656
+ deviceId: number().int(),
7657
+ /** The track the note was written on. PROVENANCE, not ownership: the track
7658
+ * is expected to be gone, and this row is not a reference to it. */
7659
+ sourceTrackId: string(),
7660
+ /** Epoch ms the note was moved here, i.e. when the operator reviewed it. */
7661
+ archivedAt: number().int(),
7662
+ /** The track's `firstSeen`, when the row still knew it; `null` otherwise. */
7663
+ trackStartedAt: number().int().nullable(),
7664
+ /** The track's detector class (`person`, `car`, …); `null` when unknown. */
7665
+ trackClass: string().nullable(),
7666
+ /** The track's display label at review time; `null` when it had none. */
7667
+ trackLabel: string().nullable()
7668
+ });
7669
+ /** Query input for `listArchivedDebugNotes` — newest first, one camera or all. */
7670
+ var ArchivedDebugNoteQueryInputSchema = object({
7671
+ /** Restrict to a single camera; omit for every row. */
7672
+ deviceId: number().int().optional(),
7673
+ /** Max rows returned, newest-first. */
7674
+ limit: number().int().min(1).max(1e3).optional()
7675
+ });
7647
7676
  /**
7648
7677
  * Ops-log — the durable, append-only operations audit shared by the
7649
7678
  * recordings and events management surfaces.
@@ -19756,7 +19785,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
19756
19785
  deviceId: number(),
19757
19786
  trackId: string(),
19758
19787
  flags: TrackFlagsPatchSchema
19759
- }), TrackFlagsSchema, { kind: "mutation" }), method(object({}), EventStoreFootprintSchema, {
19788
+ }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
19760
19789
  kind: "query",
19761
19790
  auth: "admin"
19762
19791
  }), method(object({ deviceId: number().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -33215,6 +33244,12 @@ Object.freeze({
33215
33244
  addonId: null,
33216
33245
  access: "view"
33217
33246
  },
33247
+ "pipelineAnalytics.listArchivedDebugNotes": {
33248
+ capName: "pipeline-analytics",
33249
+ capScope: "device",
33250
+ addonId: null,
33251
+ access: "view"
33252
+ },
33218
33253
  "pipelineAnalytics.listEventKinds": {
33219
33254
  capName: "pipeline-analytics",
33220
33255
  capScope: "device",
@@ -37002,6 +37037,11 @@ Object.freeze({
37002
37037
  form: "array",
37003
37038
  optional: true
37004
37039
  }],
37040
+ "pipelineAnalytics.listArchivedDebugNotes": [{
37041
+ name: "deviceId",
37042
+ form: "single",
37043
+ optional: true
37044
+ }],
37005
37045
  "pipelineAnalytics.listEventKinds": [{
37006
37046
  name: "deviceId",
37007
37047
  form: "single",
@@ -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-BHHoYHmH.js");
5
+ const require_dist = require("../dist-DcVWmpNd.js");
6
6
  let node_crypto = require("node:crypto");
7
7
  let node_child_process = require("node:child_process");
8
8
  //#region src/ingress/tailscale-cli.ts
@@ -1,4 +1,4 @@
1
- import { a as EventCategory, i as BaseAddon, n as networkAccessCapability } from "../dist-DQnICiSH.mjs";
1
+ import { a as EventCategory, i as BaseAddon, n as networkAccessCapability } from "../dist-DwQzwZEk.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { execFile } from "node:child_process";
4
4
  import { promisify } from "node:util";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-tailscale",
3
- "version": "1.2.86",
3
+ "version": "1.2.87",
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",