@camstack/addon-export-google 0.1.50 → 0.1.51

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.
@@ -7820,6 +7820,35 @@ var CameraSwitchGroupSchema = object({
7820
7820
  /** Unix ms when the group was composed server-side. */
7821
7821
  fetchedAt: number()
7822
7822
  });
7823
+ /** One archived note — the operator's words plus enough context to find what
7824
+ * they were looking at, after the track itself is gone. */
7825
+ var ArchivedDebugNoteSchema = object({
7826
+ /** Archive row id. Derived from `(sourceTrackId, note)`, so re-archiving the
7827
+ * same sentence about the same track lands on the row already there. */
7828
+ id: string(),
7829
+ /** The operator's own words, verbatim. */
7830
+ note: string(),
7831
+ /** The camera. Required — every question here is asked per-camera. */
7832
+ deviceId: number().int(),
7833
+ /** The track the note was written on. PROVENANCE, not ownership: the track
7834
+ * is expected to be gone, and this row is not a reference to it. */
7835
+ sourceTrackId: string(),
7836
+ /** Epoch ms the note was moved here, i.e. when the operator reviewed it. */
7837
+ archivedAt: number().int(),
7838
+ /** The track's `firstSeen`, when the row still knew it; `null` otherwise. */
7839
+ trackStartedAt: number().int().nullable(),
7840
+ /** The track's detector class (`person`, `car`, …); `null` when unknown. */
7841
+ trackClass: string().nullable(),
7842
+ /** The track's display label at review time; `null` when it had none. */
7843
+ trackLabel: string().nullable()
7844
+ });
7845
+ /** Query input for `listArchivedDebugNotes` — newest first, one camera or all. */
7846
+ var ArchivedDebugNoteQueryInputSchema = object({
7847
+ /** Restrict to a single camera; omit for every row. */
7848
+ deviceId: number().int().optional(),
7849
+ /** Max rows returned, newest-first. */
7850
+ limit: number().int().min(1).max(1e3).optional()
7851
+ });
7823
7852
  /**
7824
7853
  * Ops-log — the durable, append-only operations audit shared by the
7825
7854
  * recordings and events management surfaces.
@@ -20004,7 +20033,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
20004
20033
  deviceId: number(),
20005
20034
  trackId: string(),
20006
20035
  flags: TrackFlagsPatchSchema
20007
- }), TrackFlagsSchema, { kind: "mutation" }), method(object({}), EventStoreFootprintSchema, {
20036
+ }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
20008
20037
  kind: "query",
20009
20038
  auth: "admin"
20010
20039
  }), method(object({ deviceId: number().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -33421,6 +33450,12 @@ Object.freeze({
33421
33450
  addonId: null,
33422
33451
  access: "view"
33423
33452
  },
33453
+ "pipelineAnalytics.listArchivedDebugNotes": {
33454
+ capName: "pipeline-analytics",
33455
+ capScope: "device",
33456
+ addonId: null,
33457
+ access: "view"
33458
+ },
33424
33459
  "pipelineAnalytics.listEventKinds": {
33425
33460
  capName: "pipeline-analytics",
33426
33461
  capScope: "device",
@@ -37208,6 +37243,11 @@ Object.freeze({
37208
37243
  form: "array",
37209
37244
  optional: true
37210
37245
  }],
37246
+ "pipelineAnalytics.listArchivedDebugNotes": [{
37247
+ name: "deviceId",
37248
+ form: "single",
37249
+ optional: true
37250
+ }],
37211
37251
  "pipelineAnalytics.listEventKinds": [{
37212
37252
  name: "deviceId",
37213
37253
  form: "single",
@@ -7816,6 +7816,35 @@ var CameraSwitchGroupSchema = object({
7816
7816
  /** Unix ms when the group was composed server-side. */
7817
7817
  fetchedAt: number()
7818
7818
  });
7819
+ /** One archived note — the operator's words plus enough context to find what
7820
+ * they were looking at, after the track itself is gone. */
7821
+ var ArchivedDebugNoteSchema = object({
7822
+ /** Archive row id. Derived from `(sourceTrackId, note)`, so re-archiving the
7823
+ * same sentence about the same track lands on the row already there. */
7824
+ id: string(),
7825
+ /** The operator's own words, verbatim. */
7826
+ note: string(),
7827
+ /** The camera. Required — every question here is asked per-camera. */
7828
+ deviceId: number().int(),
7829
+ /** The track the note was written on. PROVENANCE, not ownership: the track
7830
+ * is expected to be gone, and this row is not a reference to it. */
7831
+ sourceTrackId: string(),
7832
+ /** Epoch ms the note was moved here, i.e. when the operator reviewed it. */
7833
+ archivedAt: number().int(),
7834
+ /** The track's `firstSeen`, when the row still knew it; `null` otherwise. */
7835
+ trackStartedAt: number().int().nullable(),
7836
+ /** The track's detector class (`person`, `car`, …); `null` when unknown. */
7837
+ trackClass: string().nullable(),
7838
+ /** The track's display label at review time; `null` when it had none. */
7839
+ trackLabel: string().nullable()
7840
+ });
7841
+ /** Query input for `listArchivedDebugNotes` — newest first, one camera or all. */
7842
+ var ArchivedDebugNoteQueryInputSchema = object({
7843
+ /** Restrict to a single camera; omit for every row. */
7844
+ deviceId: number().int().optional(),
7845
+ /** Max rows returned, newest-first. */
7846
+ limit: number().int().min(1).max(1e3).optional()
7847
+ });
7819
7848
  /**
7820
7849
  * Ops-log — the durable, append-only operations audit shared by the
7821
7850
  * recordings and events management surfaces.
@@ -20000,7 +20029,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
20000
20029
  deviceId: number(),
20001
20030
  trackId: string(),
20002
20031
  flags: TrackFlagsPatchSchema
20003
- }), TrackFlagsSchema, { kind: "mutation" }), method(object({}), EventStoreFootprintSchema, {
20032
+ }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
20004
20033
  kind: "query",
20005
20034
  auth: "admin"
20006
20035
  }), method(object({ deviceId: number().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -33417,6 +33446,12 @@ Object.freeze({
33417
33446
  addonId: null,
33418
33447
  access: "view"
33419
33448
  },
33449
+ "pipelineAnalytics.listArchivedDebugNotes": {
33450
+ capName: "pipeline-analytics",
33451
+ capScope: "device",
33452
+ addonId: null,
33453
+ access: "view"
33454
+ },
33420
33455
  "pipelineAnalytics.listEventKinds": {
33421
33456
  capName: "pipeline-analytics",
33422
33457
  capScope: "device",
@@ -37204,6 +37239,11 @@ Object.freeze({
37204
37239
  form: "array",
37205
37240
  optional: true
37206
37241
  }],
37242
+ "pipelineAnalytics.listArchivedDebugNotes": [{
37243
+ name: "deviceId",
37244
+ form: "single",
37245
+ optional: true
37246
+ }],
37207
37247
  "pipelineAnalytics.listEventKinds": [{
37208
37248
  name: "deviceId",
37209
37249
  form: "single",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-export-google",
3
- "version": "0.1.50",
3
+ "version": "0.1.51",
4
4
  "description": "Google Home export — hub-side smart-home fulfillment (SYNC / QUERY / EXECUTE / DISCONNECT) for the non-camera fleet, served over the hub's own OAuth account link. No Google credential is stored, sent or required.",
5
5
  "keywords": [
6
6
  "camstack",