@camstack/addon-export-hap 1.2.97 → 1.2.98

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.
@@ -8293,6 +8293,35 @@ var CameraSwitchGroupSchema = object({
8293
8293
  /** Unix ms when the group was composed server-side. */
8294
8294
  fetchedAt: number()
8295
8295
  });
8296
+ /** One archived note — the operator's words plus enough context to find what
8297
+ * they were looking at, after the track itself is gone. */
8298
+ var ArchivedDebugNoteSchema = object({
8299
+ /** Archive row id. Derived from `(sourceTrackId, note)`, so re-archiving the
8300
+ * same sentence about the same track lands on the row already there. */
8301
+ id: string(),
8302
+ /** The operator's own words, verbatim. */
8303
+ note: string(),
8304
+ /** The camera. Required — every question here is asked per-camera. */
8305
+ deviceId: number().int(),
8306
+ /** The track the note was written on. PROVENANCE, not ownership: the track
8307
+ * is expected to be gone, and this row is not a reference to it. */
8308
+ sourceTrackId: string(),
8309
+ /** Epoch ms the note was moved here, i.e. when the operator reviewed it. */
8310
+ archivedAt: number().int(),
8311
+ /** The track's `firstSeen`, when the row still knew it; `null` otherwise. */
8312
+ trackStartedAt: number().int().nullable(),
8313
+ /** The track's detector class (`person`, `car`, …); `null` when unknown. */
8314
+ trackClass: string().nullable(),
8315
+ /** The track's display label at review time; `null` when it had none. */
8316
+ trackLabel: string().nullable()
8317
+ });
8318
+ /** Query input for `listArchivedDebugNotes` — newest first, one camera or all. */
8319
+ var ArchivedDebugNoteQueryInputSchema = object({
8320
+ /** Restrict to a single camera; omit for every row. */
8321
+ deviceId: number().int().optional(),
8322
+ /** Max rows returned, newest-first. */
8323
+ limit: number().int().min(1).max(1e3).optional()
8324
+ });
8296
8325
  /**
8297
8326
  * Ops-log — the durable, append-only operations audit shared by the
8298
8327
  * recordings and events management surfaces.
@@ -20523,7 +20552,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
20523
20552
  deviceId: number(),
20524
20553
  trackId: string(),
20525
20554
  flags: TrackFlagsPatchSchema
20526
- }), TrackFlagsSchema, { kind: "mutation" }), method(object({}), EventStoreFootprintSchema, {
20555
+ }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
20527
20556
  kind: "query",
20528
20557
  auth: "admin"
20529
20558
  }), method(object({ deviceId: number().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -33994,6 +34023,12 @@ Object.freeze({
33994
34023
  addonId: null,
33995
34024
  access: "view"
33996
34025
  },
34026
+ "pipelineAnalytics.listArchivedDebugNotes": {
34027
+ capName: "pipeline-analytics",
34028
+ capScope: "device",
34029
+ addonId: null,
34030
+ access: "view"
34031
+ },
33997
34032
  "pipelineAnalytics.listEventKinds": {
33998
34033
  capName: "pipeline-analytics",
33999
34034
  capScope: "device",
@@ -37781,6 +37816,11 @@ Object.freeze({
37781
37816
  form: "array",
37782
37817
  optional: true
37783
37818
  }],
37819
+ "pipelineAnalytics.listArchivedDebugNotes": [{
37820
+ name: "deviceId",
37821
+ form: "single",
37822
+ optional: true
37823
+ }],
37784
37824
  "pipelineAnalytics.listEventKinds": [{
37785
37825
  name: "deviceId",
37786
37826
  form: "single",
@@ -8281,6 +8281,35 @@ var CameraSwitchGroupSchema = object({
8281
8281
  /** Unix ms when the group was composed server-side. */
8282
8282
  fetchedAt: number()
8283
8283
  });
8284
+ /** One archived note — the operator's words plus enough context to find what
8285
+ * they were looking at, after the track itself is gone. */
8286
+ var ArchivedDebugNoteSchema = object({
8287
+ /** Archive row id. Derived from `(sourceTrackId, note)`, so re-archiving the
8288
+ * same sentence about the same track lands on the row already there. */
8289
+ id: string(),
8290
+ /** The operator's own words, verbatim. */
8291
+ note: string(),
8292
+ /** The camera. Required — every question here is asked per-camera. */
8293
+ deviceId: number().int(),
8294
+ /** The track the note was written on. PROVENANCE, not ownership: the track
8295
+ * is expected to be gone, and this row is not a reference to it. */
8296
+ sourceTrackId: string(),
8297
+ /** Epoch ms the note was moved here, i.e. when the operator reviewed it. */
8298
+ archivedAt: number().int(),
8299
+ /** The track's `firstSeen`, when the row still knew it; `null` otherwise. */
8300
+ trackStartedAt: number().int().nullable(),
8301
+ /** The track's detector class (`person`, `car`, …); `null` when unknown. */
8302
+ trackClass: string().nullable(),
8303
+ /** The track's display label at review time; `null` when it had none. */
8304
+ trackLabel: string().nullable()
8305
+ });
8306
+ /** Query input for `listArchivedDebugNotes` — newest first, one camera or all. */
8307
+ var ArchivedDebugNoteQueryInputSchema = object({
8308
+ /** Restrict to a single camera; omit for every row. */
8309
+ deviceId: number().int().optional(),
8310
+ /** Max rows returned, newest-first. */
8311
+ limit: number().int().min(1).max(1e3).optional()
8312
+ });
8284
8313
  /**
8285
8314
  * Ops-log — the durable, append-only operations audit shared by the
8286
8315
  * recordings and events management surfaces.
@@ -20511,7 +20540,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
20511
20540
  deviceId: number(),
20512
20541
  trackId: string(),
20513
20542
  flags: TrackFlagsPatchSchema
20514
- }), TrackFlagsSchema, { kind: "mutation" }), method(object({}), EventStoreFootprintSchema, {
20543
+ }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
20515
20544
  kind: "query",
20516
20545
  auth: "admin"
20517
20546
  }), method(object({ deviceId: number().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -33982,6 +34011,12 @@ Object.freeze({
33982
34011
  addonId: null,
33983
34012
  access: "view"
33984
34013
  },
34014
+ "pipelineAnalytics.listArchivedDebugNotes": {
34015
+ capName: "pipeline-analytics",
34016
+ capScope: "device",
34017
+ addonId: null,
34018
+ access: "view"
34019
+ },
33985
34020
  "pipelineAnalytics.listEventKinds": {
33986
34021
  capName: "pipeline-analytics",
33987
34022
  capScope: "device",
@@ -37769,6 +37804,11 @@ Object.freeze({
37769
37804
  form: "array",
37770
37805
  optional: true
37771
37806
  }],
37807
+ "pipelineAnalytics.listArchivedDebugNotes": [{
37808
+ name: "deviceId",
37809
+ form: "single",
37810
+ optional: true
37811
+ }],
37772
37812
  "pipelineAnalytics.listEventKinds": [{
37773
37813
  name: "deviceId",
37774
37814
  form: "single",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-export-hap",
3
- "version": "1.2.97",
3
+ "version": "1.2.98",
4
4
  "description": "HomeKit (HAP) exporter for CamStack devices. Publishes each exposed device as its own HomeKit accessory: cameras and doorbells with SRTP streaming, HomeKit Secure Video, motion, two-way audio, PTZ and battery; switches, lights, locks and sensors through a capability→service table.",
5
5
  "keywords": [
6
6
  "camstack",