@camstack/addon-mqtt-broker 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.
@@ -7656,6 +7656,35 @@ var CameraSwitchGroupSchema = object({
7656
7656
  /** Unix ms when the group was composed server-side. */
7657
7657
  fetchedAt: number()
7658
7658
  });
7659
+ /** One archived note — the operator's words plus enough context to find what
7660
+ * they were looking at, after the track itself is gone. */
7661
+ var ArchivedDebugNoteSchema = object({
7662
+ /** Archive row id. Derived from `(sourceTrackId, note)`, so re-archiving the
7663
+ * same sentence about the same track lands on the row already there. */
7664
+ id: string(),
7665
+ /** The operator's own words, verbatim. */
7666
+ note: string(),
7667
+ /** The camera. Required — every question here is asked per-camera. */
7668
+ deviceId: number().int(),
7669
+ /** The track the note was written on. PROVENANCE, not ownership: the track
7670
+ * is expected to be gone, and this row is not a reference to it. */
7671
+ sourceTrackId: string(),
7672
+ /** Epoch ms the note was moved here, i.e. when the operator reviewed it. */
7673
+ archivedAt: number().int(),
7674
+ /** The track's `firstSeen`, when the row still knew it; `null` otherwise. */
7675
+ trackStartedAt: number().int().nullable(),
7676
+ /** The track's detector class (`person`, `car`, …); `null` when unknown. */
7677
+ trackClass: string().nullable(),
7678
+ /** The track's display label at review time; `null` when it had none. */
7679
+ trackLabel: string().nullable()
7680
+ });
7681
+ /** Query input for `listArchivedDebugNotes` — newest first, one camera or all. */
7682
+ var ArchivedDebugNoteQueryInputSchema = object({
7683
+ /** Restrict to a single camera; omit for every row. */
7684
+ deviceId: number().int().optional(),
7685
+ /** Max rows returned, newest-first. */
7686
+ limit: number().int().min(1).max(1e3).optional()
7687
+ });
7659
7688
  /**
7660
7689
  * Ops-log — the durable, append-only operations audit shared by the
7661
7690
  * recordings and events management surfaces.
@@ -19819,7 +19848,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
19819
19848
  deviceId: number(),
19820
19849
  trackId: string(),
19821
19850
  flags: TrackFlagsPatchSchema
19822
- }), TrackFlagsSchema, { kind: "mutation" }), method(object({}), EventStoreFootprintSchema, {
19851
+ }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
19823
19852
  kind: "query",
19824
19853
  auth: "admin"
19825
19854
  }), method(object({ deviceId: number().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -33217,6 +33246,12 @@ Object.freeze({
33217
33246
  addonId: null,
33218
33247
  access: "view"
33219
33248
  },
33249
+ "pipelineAnalytics.listArchivedDebugNotes": {
33250
+ capName: "pipeline-analytics",
33251
+ capScope: "device",
33252
+ addonId: null,
33253
+ access: "view"
33254
+ },
33220
33255
  "pipelineAnalytics.listEventKinds": {
33221
33256
  capName: "pipeline-analytics",
33222
33257
  capScope: "device",
@@ -37004,6 +37039,11 @@ Object.freeze({
37004
37039
  form: "array",
37005
37040
  optional: true
37006
37041
  }],
37042
+ "pipelineAnalytics.listArchivedDebugNotes": [{
37043
+ name: "deviceId",
37044
+ form: "single",
37045
+ optional: true
37046
+ }],
37007
37047
  "pipelineAnalytics.listEventKinds": [{
37008
37048
  name: "deviceId",
37009
37049
  form: "single",
@@ -7651,6 +7651,35 @@ var CameraSwitchGroupSchema = object({
7651
7651
  /** Unix ms when the group was composed server-side. */
7652
7652
  fetchedAt: number()
7653
7653
  });
7654
+ /** One archived note — the operator's words plus enough context to find what
7655
+ * they were looking at, after the track itself is gone. */
7656
+ var ArchivedDebugNoteSchema = object({
7657
+ /** Archive row id. Derived from `(sourceTrackId, note)`, so re-archiving the
7658
+ * same sentence about the same track lands on the row already there. */
7659
+ id: string(),
7660
+ /** The operator's own words, verbatim. */
7661
+ note: string(),
7662
+ /** The camera. Required — every question here is asked per-camera. */
7663
+ deviceId: number().int(),
7664
+ /** The track the note was written on. PROVENANCE, not ownership: the track
7665
+ * is expected to be gone, and this row is not a reference to it. */
7666
+ sourceTrackId: string(),
7667
+ /** Epoch ms the note was moved here, i.e. when the operator reviewed it. */
7668
+ archivedAt: number().int(),
7669
+ /** The track's `firstSeen`, when the row still knew it; `null` otherwise. */
7670
+ trackStartedAt: number().int().nullable(),
7671
+ /** The track's detector class (`person`, `car`, …); `null` when unknown. */
7672
+ trackClass: string().nullable(),
7673
+ /** The track's display label at review time; `null` when it had none. */
7674
+ trackLabel: string().nullable()
7675
+ });
7676
+ /** Query input for `listArchivedDebugNotes` — newest first, one camera or all. */
7677
+ var ArchivedDebugNoteQueryInputSchema = object({
7678
+ /** Restrict to a single camera; omit for every row. */
7679
+ deviceId: number().int().optional(),
7680
+ /** Max rows returned, newest-first. */
7681
+ limit: number().int().min(1).max(1e3).optional()
7682
+ });
7654
7683
  /**
7655
7684
  * Ops-log — the durable, append-only operations audit shared by the
7656
7685
  * recordings and events management surfaces.
@@ -19814,7 +19843,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
19814
19843
  deviceId: number(),
19815
19844
  trackId: string(),
19816
19845
  flags: TrackFlagsPatchSchema
19817
- }), TrackFlagsSchema, { kind: "mutation" }), method(object({}), EventStoreFootprintSchema, {
19846
+ }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
19818
19847
  kind: "query",
19819
19848
  auth: "admin"
19820
19849
  }), method(object({ deviceId: number().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -33212,6 +33241,12 @@ Object.freeze({
33212
33241
  addonId: null,
33213
33242
  access: "view"
33214
33243
  },
33244
+ "pipelineAnalytics.listArchivedDebugNotes": {
33245
+ capName: "pipeline-analytics",
33246
+ capScope: "device",
33247
+ addonId: null,
33248
+ access: "view"
33249
+ },
33215
33250
  "pipelineAnalytics.listEventKinds": {
33216
33251
  capName: "pipeline-analytics",
33217
33252
  capScope: "device",
@@ -36999,6 +37034,11 @@ Object.freeze({
36999
37034
  form: "array",
37000
37035
  optional: true
37001
37036
  }],
37037
+ "pipelineAnalytics.listArchivedDebugNotes": [{
37038
+ name: "deviceId",
37039
+ form: "single",
37040
+ optional: true
37041
+ }],
37002
37042
  "pipelineAnalytics.listEventKinds": [{
37003
37043
  name: "deviceId",
37004
37044
  form: "single",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-mqtt-broker",
3
- "version": "1.2.86",
3
+ "version": "1.2.87",
4
4
  "description": "MQTT broker registry addon for CamStack — manages external broker entries + an optional embedded aedes broker. Consumers spin up their own `mqtt.js` clients via the `mqtt-broker` cap.",
5
5
  "keywords": [
6
6
  "camstack",