@camstack/types 1.2.79 → 1.2.81

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.
package/dist/addon.js CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_event_category = require("./event-category-D3gG7oil.js");
3
- const require_sleep = require("./sleep-CoL-9qhR.js");
3
+ const require_sleep = require("./sleep-EYtyUX0L.js");
4
4
  const require_err_msg = require("./err-msg-COpsHMw2.js");
5
5
  //#region src/generated/cap-input-defaults.ts
6
6
  /**
package/dist/addon.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as EventCategory } from "./event-category-Bxo5yJjt.mjs";
2
- import { A as expandCapMethods, B as ReadinessTimeoutError, I as nodePin, L as readNodePin, T as adminUiCapability, U as scopeKey, _t as BaseAddon, a as asJsonObject, b as viewerUiCapability, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, gt as DisposerChain, ht as DATAPLANE_SECRET_HEADER, m as createDeviceProxy, p as isDeviceScopedCap, s as asString, t as sleep, u as parseJsonUnknown, vt as normalizeAddonInitResult, w as DeviceType, xt as emitReadiness, y as deviceOpsCapability, z as ReadinessRegistry } from "./sleep-DlC2kJYf.mjs";
2
+ import { A as expandCapMethods, B as ReadinessTimeoutError, I as nodePin, L as readNodePin, T as adminUiCapability, U as scopeKey, _t as BaseAddon, a as asJsonObject, b as viewerUiCapability, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, gt as DisposerChain, ht as DATAPLANE_SECRET_HEADER, m as createDeviceProxy, p as isDeviceScopedCap, s as asString, t as sleep, u as parseJsonUnknown, vt as normalizeAddonInitResult, w as DeviceType, xt as emitReadiness, y as deviceOpsCapability, z as ReadinessRegistry } from "./sleep-BxO5xNe6.mjs";
3
3
  import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
4
4
  //#region src/generated/cap-input-defaults.ts
5
5
  /**
@@ -75,6 +75,7 @@ export declare const dataStoreProviderCapability: {
75
75
  where: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
76
76
  whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
77
77
  whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
78
+ whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
78
79
  orderBy: z.ZodOptional<z.ZodObject<{
79
80
  field: z.ZodString;
80
81
  direction: z.ZodEnum<{
@@ -119,6 +120,7 @@ export declare const dataStoreProviderCapability: {
119
120
  where: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
120
121
  whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
121
122
  whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
123
+ whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
122
124
  }, z.core.$strip>;
123
125
  }, z.core.$strip>, z.ZodObject<{
124
126
  deleted: z.ZodNumber;
@@ -131,6 +133,7 @@ export declare const dataStoreProviderCapability: {
131
133
  where: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
132
134
  whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
133
135
  whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
136
+ whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
134
137
  }, z.core.$strip>;
135
138
  data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
136
139
  }, z.core.$strip>, z.ZodObject<{
@@ -144,6 +147,7 @@ export declare const dataStoreProviderCapability: {
144
147
  where: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
145
148
  whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
146
149
  whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
150
+ whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
147
151
  orderBy: z.ZodOptional<z.ZodObject<{
148
152
  field: z.ZodString;
149
153
  direction: z.ZodEnum<{
@@ -166,6 +170,7 @@ export declare const dataStoreProviderCapability: {
166
170
  where: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
167
171
  whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
168
172
  whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
173
+ whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
169
174
  orderBy: z.ZodOptional<z.ZodObject<{
170
175
  field: z.ZodString;
171
176
  direction: z.ZodEnum<{
@@ -116,7 +116,7 @@ declare const OauthIntegrationDescriptorSchema: z.ZodObject<{
116
116
  ids: z.ZodArray<z.ZodNumber>;
117
117
  }, z.core.$strip>, z.ZodObject<{
118
118
  kind: z.ZodLiteral<"types">;
119
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
119
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
120
120
  }, z.core.$strip>, z.ZodObject<{
121
121
  kind: z.ZodLiteral<"locations">;
122
122
  locations: z.ZodArray<z.ZodString>;
@@ -179,7 +179,7 @@ export declare const oauthIntegrationCapability: {
179
179
  ids: z.ZodArray<z.ZodNumber>;
180
180
  }, z.core.$strip>, z.ZodObject<{
181
181
  kind: z.ZodLiteral<"types">;
182
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
182
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
183
183
  }, z.core.$strip>, z.ZodObject<{
184
184
  kind: z.ZodLiteral<"locations">;
185
185
  locations: z.ZodArray<z.ZodString>;
@@ -1008,6 +1008,7 @@ declare const RecentTracksQueryInput: z.ZodObject<{
1008
1008
  full: "full";
1009
1009
  slim: "slim";
1010
1010
  }>>;
1011
+ includeStationary: z.ZodOptional<z.ZodBoolean>;
1011
1012
  }, z.core.$strip>;
1012
1013
  export type RecentTracksQuery = z.infer<typeof RecentTracksQueryInput>;
1013
1014
  declare const RecentTracksPageSchema: z.ZodObject<{
@@ -1475,6 +1476,7 @@ export declare const pipelineAnalyticsCapability: {
1475
1476
  full: "full";
1476
1477
  slim: "slim";
1477
1478
  }>>;
1479
+ includeStationary: z.ZodOptional<z.ZodBoolean>;
1478
1480
  }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
1479
1481
  retrainStatus: z.ZodOptional<z.ZodEnum<{
1480
1482
  none: "none";
@@ -1587,6 +1589,7 @@ export declare const pipelineAnalyticsCapability: {
1587
1589
  full: "full";
1588
1590
  slim: "slim";
1589
1591
  }>>;
1592
+ includeStationary: z.ZodOptional<z.ZodBoolean>;
1590
1593
  }, z.core.$strip>, z.ZodObject<{
1591
1594
  tracks: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1592
1595
  retrainStatus: z.ZodOptional<z.ZodEnum<{
@@ -2749,6 +2752,7 @@ export declare const pipelineAnalyticsCapability: {
2749
2752
  keyFrameSmall: "keyFrameSmall";
2750
2753
  thumbnailSmall: "thumbnailSmall";
2751
2754
  }>>;
2755
+ deviceId: z.ZodNumber;
2752
2756
  }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
2753
2757
  key: z.ZodString;
2754
2758
  kind: z.ZodEnum<{
@@ -2789,6 +2793,7 @@ export declare const pipelineAnalyticsCapability: {
2789
2793
  keyFrameSmall: "keyFrameSmall";
2790
2794
  thumbnailSmall: "thumbnailSmall";
2791
2795
  }>>>;
2796
+ deviceId: z.ZodNumber;
2792
2797
  }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
2793
2798
  key: z.ZodString;
2794
2799
  kind: z.ZodEnum<{
@@ -2826,6 +2831,7 @@ export declare const pipelineAnalyticsCapability: {
2826
2831
  */
2827
2832
  readonly listTrackMedia: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
2828
2833
  trackId: z.ZodString;
2834
+ deviceId: z.ZodNumber;
2829
2835
  }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
2830
2836
  timestamp: z.ZodNumber;
2831
2837
  key: z.ZodString;
@@ -7,6 +7,7 @@ declare const QueryFilterSchema: z.ZodObject<{
7
7
  where: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
8
8
  whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
9
9
  whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
10
+ whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
10
11
  orderBy: z.ZodOptional<z.ZodObject<{
11
12
  field: z.ZodString;
12
13
  direction: z.ZodEnum<{
@@ -30,6 +31,7 @@ declare const MutationFilterSchema: z.ZodObject<{
30
31
  where: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
31
32
  whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
32
33
  whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
34
+ whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
33
35
  }, z.core.$strip>;
34
36
  /** A single stored record: `{ id, data }`. */
35
37
  declare const SettingsRecordSchema: z.ZodObject<{
@@ -120,6 +122,7 @@ export declare const settingsStoreCapability: {
120
122
  where: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
121
123
  whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
122
124
  whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
125
+ whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
123
126
  orderBy: z.ZodOptional<z.ZodObject<{
124
127
  field: z.ZodString;
125
128
  direction: z.ZodEnum<{
@@ -177,6 +180,7 @@ export declare const settingsStoreCapability: {
177
180
  where: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
178
181
  whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
179
182
  whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
183
+ whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
180
184
  }, z.core.$strip>;
181
185
  }, z.core.$strip>, z.ZodObject<{
182
186
  deleted: z.ZodNumber;
@@ -193,6 +197,7 @@ export declare const settingsStoreCapability: {
193
197
  where: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
194
198
  whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
195
199
  whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
200
+ whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
196
201
  }, z.core.$strip>;
197
202
  data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
198
203
  }, z.core.$strip>, z.ZodObject<{
@@ -206,6 +211,7 @@ export declare const settingsStoreCapability: {
206
211
  where: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
207
212
  whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
208
213
  whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
214
+ whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
209
215
  orderBy: z.ZodOptional<z.ZodObject<{
210
216
  field: z.ZodString;
211
217
  direction: z.ZodEnum<{
@@ -228,6 +234,7 @@ export declare const settingsStoreCapability: {
228
234
  where: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
229
235
  whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
230
236
  whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
237
+ whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
231
238
  orderBy: z.ZodOptional<z.ZodObject<{
232
239
  field: z.ZodString;
233
240
  direction: z.ZodEnum<{
@@ -82,6 +82,39 @@ export declare const snapshotCapability: {
82
82
  }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind> & {
83
83
  readonly systemOnly: true;
84
84
  };
85
+ /**
86
+ * The full decision chain for ONE device, for the viewer's debug readout —
87
+ * the answer to "why does this tile show what it shows" in a single poll:
88
+ * the battery slice the state was derived from, the resolved state + its
89
+ * reason, the cached frame's identity/age, whether a wake window is open,
90
+ * and whether a fresh capture is in flight. Cache-only and capture-free:
91
+ * a debug read must never wake a battery camera.
92
+ */
93
+ readonly getDebugState: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
94
+ deviceId: z.ZodNumber;
95
+ }, z.core.$strip>, z.ZodObject<{
96
+ battery: z.ZodNullable<z.ZodObject<{
97
+ sleeping: z.ZodBoolean;
98
+ lastUpdated: z.ZodNumber;
99
+ lastContactAt: z.ZodOptional<z.ZodNumber>;
100
+ }, z.core.$strip>>;
101
+ state: z.ZodObject<{
102
+ isBattery: z.ZodBoolean;
103
+ reason: z.ZodNullable<z.ZodEnum<{
104
+ sleeping: "sleeping";
105
+ unreachable: "unreachable";
106
+ disabled: "disabled";
107
+ waking: "waking";
108
+ }>>;
109
+ }, z.core.$strip>;
110
+ frame: z.ZodObject<{
111
+ capturedAt: z.ZodNullable<z.ZodNumber>;
112
+ ageMs: z.ZodNullable<z.ZodNumber>;
113
+ }, z.core.$strip>;
114
+ waking: z.ZodBoolean;
115
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind> & {
116
+ readonly systemOnly: true;
117
+ };
85
118
  /**
86
119
  * Signed, expiring links to a CLIENT-SIZED frame — and the demand signal
87
120
  * that makes those frames current.
@@ -58,7 +58,7 @@ declare const SsoBridgeClaimsSchema: z.ZodObject<{
58
58
  ids: z.ZodArray<z.ZodNumber>;
59
59
  }, z.core.$strip>, z.ZodObject<{
60
60
  kind: z.ZodLiteral<"types">;
61
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
61
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
62
62
  }, z.core.$strip>, z.ZodObject<{
63
63
  kind: z.ZodLiteral<"locations">;
64
64
  locations: z.ZodArray<z.ZodString>;
@@ -128,7 +128,7 @@ export declare const ssoBridgeCapability: {
128
128
  ids: z.ZodArray<z.ZodNumber>;
129
129
  }, z.core.$strip>, z.ZodObject<{
130
130
  kind: z.ZodLiteral<"types">;
131
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
131
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
132
132
  }, z.core.$strip>, z.ZodObject<{
133
133
  kind: z.ZodLiteral<"locations">;
134
134
  locations: z.ZodArray<z.ZodString>;
@@ -197,7 +197,7 @@ export declare const ssoBridgeCapability: {
197
197
  ids: z.ZodArray<z.ZodNumber>;
198
198
  }, z.core.$strip>, z.ZodObject<{
199
199
  kind: z.ZodLiteral<"types">;
200
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
200
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
201
201
  }, z.core.$strip>, z.ZodObject<{
202
202
  kind: z.ZodLiteral<"locations">;
203
203
  locations: z.ZodArray<z.ZodString>;
@@ -42,7 +42,7 @@ declare const UserSummarySchema: z.ZodObject<{
42
42
  ids: z.ZodArray<z.ZodNumber>;
43
43
  }, z.core.$strip>, z.ZodObject<{
44
44
  kind: z.ZodLiteral<"types">;
45
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
45
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
46
46
  }, z.core.$strip>, z.ZodObject<{
47
47
  kind: z.ZodLiteral<"locations">;
48
48
  locations: z.ZodArray<z.ZodString>;
@@ -100,7 +100,7 @@ declare const CreateUserInputSchema: z.ZodObject<{
100
100
  ids: z.ZodArray<z.ZodNumber>;
101
101
  }, z.core.$strip>, z.ZodObject<{
102
102
  kind: z.ZodLiteral<"types">;
103
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
103
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
104
104
  }, z.core.$strip>, z.ZodObject<{
105
105
  kind: z.ZodLiteral<"locations">;
106
106
  locations: z.ZodArray<z.ZodString>;
@@ -154,7 +154,7 @@ declare const UpdateUserInputSchema: z.ZodObject<{
154
154
  ids: z.ZodArray<z.ZodNumber>;
155
155
  }, z.core.$strip>, z.ZodObject<{
156
156
  kind: z.ZodLiteral<"types">;
157
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
157
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
158
158
  }, z.core.$strip>, z.ZodObject<{
159
159
  kind: z.ZodLiteral<"locations">;
160
160
  locations: z.ZodArray<z.ZodString>;
@@ -237,7 +237,7 @@ declare const ScopedTokenSummarySchema: z.ZodObject<{
237
237
  ids: z.ZodArray<z.ZodNumber>;
238
238
  }, z.core.$strip>, z.ZodObject<{
239
239
  kind: z.ZodLiteral<"types">;
240
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
240
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
241
241
  }, z.core.$strip>, z.ZodObject<{
242
242
  kind: z.ZodLiteral<"locations">;
243
243
  locations: z.ZodArray<z.ZodString>;
@@ -292,7 +292,7 @@ declare const CreateScopedTokenInputSchema: z.ZodObject<{
292
292
  ids: z.ZodArray<z.ZodNumber>;
293
293
  }, z.core.$strip>, z.ZodObject<{
294
294
  kind: z.ZodLiteral<"types">;
295
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
295
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
296
296
  }, z.core.$strip>, z.ZodObject<{
297
297
  kind: z.ZodLiteral<"locations">;
298
298
  locations: z.ZodArray<z.ZodString>;
@@ -349,7 +349,7 @@ declare const CreateScopedTokenResultSchema: z.ZodObject<{
349
349
  ids: z.ZodArray<z.ZodNumber>;
350
350
  }, z.core.$strip>, z.ZodObject<{
351
351
  kind: z.ZodLiteral<"types">;
352
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
352
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
353
353
  }, z.core.$strip>, z.ZodObject<{
354
354
  kind: z.ZodLiteral<"locations">;
355
355
  locations: z.ZodArray<z.ZodString>;
@@ -407,7 +407,7 @@ declare const OauthSessionSummarySchema: z.ZodObject<{
407
407
  ids: z.ZodArray<z.ZodNumber>;
408
408
  }, z.core.$strip>, z.ZodObject<{
409
409
  kind: z.ZodLiteral<"types">;
410
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
410
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
411
411
  }, z.core.$strip>, z.ZodObject<{
412
412
  kind: z.ZodLiteral<"locations">;
413
413
  locations: z.ZodArray<z.ZodString>;
@@ -480,7 +480,7 @@ export declare const userManagementCapability: {
480
480
  ids: z.ZodArray<z.ZodNumber>;
481
481
  }, z.core.$strip>, z.ZodObject<{
482
482
  kind: z.ZodLiteral<"types">;
483
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
483
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
484
484
  }, z.core.$strip>, z.ZodObject<{
485
485
  kind: z.ZodLiteral<"locations">;
486
486
  locations: z.ZodArray<z.ZodString>;
@@ -538,7 +538,7 @@ export declare const userManagementCapability: {
538
538
  ids: z.ZodArray<z.ZodNumber>;
539
539
  }, z.core.$strip>, z.ZodObject<{
540
540
  kind: z.ZodLiteral<"types">;
541
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
541
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
542
542
  }, z.core.$strip>, z.ZodObject<{
543
543
  kind: z.ZodLiteral<"locations">;
544
544
  locations: z.ZodArray<z.ZodString>;
@@ -592,7 +592,7 @@ export declare const userManagementCapability: {
592
592
  ids: z.ZodArray<z.ZodNumber>;
593
593
  }, z.core.$strip>, z.ZodObject<{
594
594
  kind: z.ZodLiteral<"types">;
595
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
595
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
596
596
  }, z.core.$strip>, z.ZodObject<{
597
597
  kind: z.ZodLiteral<"locations">;
598
598
  locations: z.ZodArray<z.ZodString>;
@@ -649,7 +649,7 @@ export declare const userManagementCapability: {
649
649
  ids: z.ZodArray<z.ZodNumber>;
650
650
  }, z.core.$strip>, z.ZodObject<{
651
651
  kind: z.ZodLiteral<"types">;
652
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
652
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
653
653
  }, z.core.$strip>, z.ZodObject<{
654
654
  kind: z.ZodLiteral<"locations">;
655
655
  locations: z.ZodArray<z.ZodString>;
@@ -713,7 +713,7 @@ export declare const userManagementCapability: {
713
713
  ids: z.ZodArray<z.ZodNumber>;
714
714
  }, z.core.$strip>, z.ZodObject<{
715
715
  kind: z.ZodLiteral<"types">;
716
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
716
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
717
717
  }, z.core.$strip>, z.ZodObject<{
718
718
  kind: z.ZodLiteral<"locations">;
719
719
  locations: z.ZodArray<z.ZodString>;
@@ -773,7 +773,7 @@ export declare const userManagementCapability: {
773
773
  ids: z.ZodArray<z.ZodNumber>;
774
774
  }, z.core.$strip>, z.ZodObject<{
775
775
  kind: z.ZodLiteral<"types">;
776
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
776
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
777
777
  }, z.core.$strip>, z.ZodObject<{
778
778
  kind: z.ZodLiteral<"locations">;
779
779
  locations: z.ZodArray<z.ZodString>;
@@ -874,7 +874,7 @@ export declare const userManagementCapability: {
874
874
  ids: z.ZodArray<z.ZodNumber>;
875
875
  }, z.core.$strip>, z.ZodObject<{
876
876
  kind: z.ZodLiteral<"types">;
877
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
877
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
878
878
  }, z.core.$strip>, z.ZodObject<{
879
879
  kind: z.ZodLiteral<"locations">;
880
880
  locations: z.ZodArray<z.ZodString>;
@@ -930,7 +930,7 @@ export declare const userManagementCapability: {
930
930
  ids: z.ZodArray<z.ZodNumber>;
931
931
  }, z.core.$strip>, z.ZodObject<{
932
932
  kind: z.ZodLiteral<"types">;
933
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
933
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
934
934
  }, z.core.$strip>, z.ZodObject<{
935
935
  kind: z.ZodLiteral<"locations">;
936
936
  locations: z.ZodArray<z.ZodString>;
@@ -995,7 +995,7 @@ export declare const userManagementCapability: {
995
995
  ids: z.ZodArray<z.ZodNumber>;
996
996
  }, z.core.$strip>, z.ZodObject<{
997
997
  kind: z.ZodLiteral<"types">;
998
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
998
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
999
999
  }, z.core.$strip>, z.ZodObject<{
1000
1000
  kind: z.ZodLiteral<"locations">;
1001
1001
  locations: z.ZodArray<z.ZodString>;
@@ -1054,7 +1054,7 @@ export declare const userManagementCapability: {
1054
1054
  ids: z.ZodArray<z.ZodNumber>;
1055
1055
  }, z.core.$strip>, z.ZodObject<{
1056
1056
  kind: z.ZodLiteral<"types">;
1057
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
1057
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
1058
1058
  }, z.core.$strip>, z.ZodObject<{
1059
1059
  kind: z.ZodLiteral<"locations">;
1060
1060
  locations: z.ZodArray<z.ZodString>;
@@ -1139,7 +1139,7 @@ export declare const userManagementCapability: {
1139
1139
  ids: z.ZodArray<z.ZodNumber>;
1140
1140
  }, z.core.$strip>, z.ZodObject<{
1141
1141
  kind: z.ZodLiteral<"types">;
1142
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
1142
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
1143
1143
  }, z.core.$strip>, z.ZodObject<{
1144
1144
  kind: z.ZodLiteral<"locations">;
1145
1145
  locations: z.ZodArray<z.ZodString>;
@@ -1215,7 +1215,7 @@ export declare const userManagementCapability: {
1215
1215
  ids: z.ZodArray<z.ZodNumber>;
1216
1216
  }, z.core.$strip>, z.ZodObject<{
1217
1217
  kind: z.ZodLiteral<"types">;
1218
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
1218
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
1219
1219
  }, z.core.$strip>, z.ZodObject<{
1220
1220
  kind: z.ZodLiteral<"locations">;
1221
1221
  locations: z.ZodArray<z.ZodString>;
@@ -1269,7 +1269,7 @@ export declare const userManagementCapability: {
1269
1269
  ids: z.ZodArray<z.ZodNumber>;
1270
1270
  }, z.core.$strip>, z.ZodObject<{
1271
1271
  kind: z.ZodLiteral<"types">;
1272
- types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
1272
+ types: z.ZodArray<z.ZodEnum<typeof import("../addon.js").DeviceType>>;
1273
1273
  }, z.core.$strip>, z.ZodObject<{
1274
1274
  kind: z.ZodLiteral<"locations">;
1275
1275
  locations: z.ZodArray<z.ZodString>;
@@ -6746,6 +6746,13 @@ export type AppRouter = TrpcCoreRouter<{
6746
6746
  output: z.infer<typeof snapshotCapability.methods.getSnapshotOverview.output>;
6747
6747
  meta: object;
6748
6748
  }>;
6749
+ getDebugState: TRPCQueryProcedure<{
6750
+ input: {
6751
+ [x: string]: unknown;
6752
+ } & z.input<typeof snapshotCapability.methods.getDebugState.input>;
6753
+ output: z.infer<typeof snapshotCapability.methods.getDebugState.output>;
6754
+ meta: object;
6755
+ }>;
6749
6756
  getSnapshotLinks: TRPCQueryProcedure<{
6750
6757
  input: {
6751
6758
  [x: string]: unknown;
@@ -8808,14 +8815,14 @@ export type AppRouter = TrpcCoreRouter<{
8808
8815
  }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
8809
8816
  listCapabilities: import("@trpc/server").TRPCQueryProcedure<{
8810
8817
  input: void;
8811
- output: import("@camstack/types").CapabilityInfo[];
8818
+ output: import("packages/types/dist").CapabilityInfo[];
8812
8819
  meta: object;
8813
8820
  }>;
8814
8821
  getCapability: import("@trpc/server").TRPCQueryProcedure<{
8815
8822
  input: {
8816
8823
  name: string;
8817
8824
  };
8818
- output: import("@camstack/types").CapabilityInfo | null;
8825
+ output: import("packages/types/dist").CapabilityInfo | null;
8819
8826
  meta: object;
8820
8827
  }>;
8821
8828
  setActiveSingleton: import("@trpc/server").TRPCMutationProcedure<{
@@ -8887,14 +8894,14 @@ export type AppRouter = TrpcCoreRouter<{
8887
8894
  }>> & import("@trpc/server").TRPCDecorateCreateRouterOptions<{
8888
8895
  listCapabilities: import("@trpc/server").TRPCQueryProcedure<{
8889
8896
  input: void;
8890
- output: import("@camstack/types").CapabilityInfo[];
8897
+ output: import("packages/types/dist").CapabilityInfo[];
8891
8898
  meta: object;
8892
8899
  }>;
8893
8900
  getCapability: import("@trpc/server").TRPCQueryProcedure<{
8894
8901
  input: {
8895
8902
  name: string;
8896
8903
  };
8897
- output: import("@camstack/types").CapabilityInfo | null;
8904
+ output: import("packages/types/dist").CapabilityInfo | null;
8898
8905
  meta: object;
8899
8906
  }>;
8900
8907
  setActiveSingleton: import("@trpc/server").TRPCMutationProcedure<{
@@ -9131,14 +9138,14 @@ export type AppRouter = TrpcCoreRouter<{
9131
9138
  category?: string | undefined;
9132
9139
  limit?: number | undefined;
9133
9140
  } | undefined;
9134
- output: readonly import("@camstack/types").SystemEvent[];
9141
+ output: readonly import("packages/types/dist").SystemEvent[];
9135
9142
  meta: object;
9136
9143
  }>;
9137
9144
  onEvent: import("@trpc/server").TRPCSubscriptionProcedure<{
9138
9145
  input: {
9139
9146
  category?: string | undefined;
9140
9147
  };
9141
- output: AsyncIterable<import("@camstack/types").SystemEvent, any, any>;
9148
+ output: AsyncIterable<import("packages/types/dist").SystemEvent, any, any>;
9142
9149
  meta: object;
9143
9150
  }>;
9144
9151
  onDeviceEvent: import("@trpc/server").TRPCSubscriptionProcedure<{
@@ -9154,14 +9161,14 @@ export type AppRouter = TrpcCoreRouter<{
9154
9161
  category?: string | undefined;
9155
9162
  limit?: number | undefined;
9156
9163
  } | undefined;
9157
- output: readonly import("@camstack/types").SystemEvent[];
9164
+ output: readonly import("packages/types/dist").SystemEvent[];
9158
9165
  meta: object;
9159
9166
  }>;
9160
9167
  onEvent: import("@trpc/server").TRPCSubscriptionProcedure<{
9161
9168
  input: {
9162
9169
  category?: string | undefined;
9163
9170
  };
9164
- output: AsyncIterable<import("@camstack/types").SystemEvent, any, any>;
9171
+ output: AsyncIterable<import("packages/types/dist").SystemEvent, any, any>;
9165
9172
  meta: object;
9166
9173
  }>;
9167
9174
  onDeviceEvent: import("@trpc/server").TRPCSubscriptionProcedure<{
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 939 method paths across 123 capabilities.
9
+ * Coverage: 940 method paths across 123 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -6,7 +6,7 @@
6
6
  * system-scope cap that takes a deviceId was previously never device-filtered
7
7
  * — see the generator header).
8
8
  *
9
- * Coverage: 332 methods carry a device reference, of which
9
+ * Coverage: 336 methods carry a device reference, of which
10
10
  * 124 are on SYSTEM-scope caps.
11
11
  *
12
12
  * Top-level fields, number arrays, and one-level arrays of objects carrying
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_event_category = require("./event-category-D3gG7oil.js");
3
- const require_sleep = require("./sleep-CoL-9qhR.js");
3
+ const require_sleep = require("./sleep-EYtyUX0L.js");
4
4
  const require_canonical_hash = require("./canonical-hash-DNV8S5ET.js");
5
5
  const require_enums = require("./enums.js");
6
6
  const require_err_msg = require("./err-msg-COpsHMw2.js");
@@ -7060,6 +7060,8 @@ var QueryFilterSchema = zod.z.object({
7060
7060
  where: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
7061
7061
  whereIn: zod.z.record(zod.z.string(), zod.z.array(zod.z.unknown())).optional(),
7062
7062
  whereBetween: zod.z.record(zod.z.string(), zod.z.tuple([zod.z.unknown(), zod.z.unknown()])).optional(),
7063
+ /** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
7064
+ whereNot: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
7063
7065
  orderBy: zod.z.object({
7064
7066
  field: zod.z.string(),
7065
7067
  direction: zod.z.enum(["asc", "desc"])
@@ -7079,7 +7081,8 @@ var QueryFilterSchema = zod.z.object({
7079
7081
  var MutationFilterSchema = zod.z.object({
7080
7082
  where: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
7081
7083
  whereIn: zod.z.record(zod.z.string(), zod.z.array(zod.z.unknown())).optional(),
7082
- whereBetween: zod.z.record(zod.z.string(), zod.z.tuple([zod.z.unknown(), zod.z.unknown()])).optional()
7084
+ whereBetween: zod.z.record(zod.z.string(), zod.z.tuple([zod.z.unknown(), zod.z.unknown()])).optional(),
7085
+ whereNot: zod.z.record(zod.z.string(), zod.z.unknown()).optional()
7083
7086
  });
7084
7087
  /** A single stored record: `{ id, data }`. */
7085
7088
  var SettingsRecordSchema = zod.z.object({
@@ -15307,7 +15310,10 @@ var RecentTracksQueryInput = zod.z.object({
15307
15310
  * Encodes the (lastSeen, trackId) sort position — treat as opaque. */
15308
15311
  cursor: zod.z.string().optional(),
15309
15312
  /** See {@link TrackProjectionSchema}. Default `full`. */
15310
- projection: TrackProjectionSchema.optional()
15313
+ projection: TrackProjectionSchema.optional(),
15314
+ /** Include stationary-promoted rows (parked objects). Default false: the
15315
+ * feed lists passages; parking records live on the stationary registry. */
15316
+ includeStationary: zod.z.boolean().optional()
15311
15317
  });
15312
15318
  var RecentTracksPageSchema = zod.z.object({
15313
15319
  /** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
@@ -15539,7 +15545,11 @@ var pipelineAnalyticsCapability = {
15539
15545
  zone: TrackZoneFilterSchema.optional(),
15540
15546
  /** See {@link TrackProjectionSchema}. Default `full` (backward
15541
15547
  * compatible — omitting the field keeps today's exact behaviour). */
15542
- projection: TrackProjectionSchema.optional()
15548
+ projection: TrackProjectionSchema.optional(),
15549
+ /** Include stationary-promoted rows (parked objects handed to the
15550
+ * stationary registry). Default false: the timeline lists passages,
15551
+ * not parking records (operator decision, 2026-08-15). */
15552
+ includeStationary: zod.z.boolean().optional()
15543
15553
  }), zod.z.array(TrackSchema).readonly()),
15544
15554
  /**
15545
15555
  * Batched cluster-wide track listing — ONE call for the events page /
@@ -16030,7 +16040,8 @@ var pipelineAnalyticsCapability = {
16030
16040
  }),
16031
16041
  getEventMedia: require_sleep.method(zod.z.object({
16032
16042
  eventId: zod.z.string(),
16033
- kind: MediaFileKindEnum.optional()
16043
+ kind: MediaFileKindEnum.optional(),
16044
+ deviceId: zod.z.number()
16034
16045
  }), zod.z.array(MediaFileSchema).readonly()),
16035
16046
  /** All media rows owned by a track. `kinds` narrows to a kind subset so a
16036
16047
  * client can fetch the SMALL display variants on open and pull the
@@ -16038,7 +16049,8 @@ var pipelineAnalyticsCapability = {
16038
16049
  * Absent ⇒ every kind (back-compat). */
16039
16050
  getTrackMedia: require_sleep.method(zod.z.object({
16040
16051
  trackId: zod.z.string(),
16041
- kinds: zod.z.array(MediaFileKindEnum).optional()
16052
+ kinds: zod.z.array(MediaFileKindEnum).optional(),
16053
+ deviceId: zod.z.number()
16042
16054
  }), zod.z.array(MediaFileSchema).readonly()),
16043
16055
  /**
16044
16056
  * What media a track HAS, without any of it.
@@ -16055,7 +16067,10 @@ var pipelineAnalyticsCapability = {
16055
16067
  * tell a full-resolution variant existed — and the affordance that opens it
16056
16068
  * would silently disappear.
16057
16069
  */
16058
- listTrackMedia: require_sleep.method(zod.z.object({ trackId: zod.z.string() }), zod.z.array(MediaFileInfoSchema).readonly()),
16070
+ listTrackMedia: require_sleep.method(zod.z.object({
16071
+ trackId: zod.z.string(),
16072
+ deviceId: zod.z.number()
16073
+ }), zod.z.array(MediaFileInfoSchema).readonly()),
16059
16074
  /**
16060
16075
  * Search object events by text query using CLIP cosine similarity.
16061
16076
  * Encodes `text` via the `embedding-encoder` cap, queries the
@@ -19025,6 +19040,39 @@ var snapshotCapability = {
19025
19040
  etag: zod.z.string().nullable()
19026
19041
  }))),
19027
19042
  /**
19043
+ * The full decision chain for ONE device, for the viewer's debug readout —
19044
+ * the answer to "why does this tile show what it shows" in a single poll:
19045
+ * the battery slice the state was derived from, the resolved state + its
19046
+ * reason, the cached frame's identity/age, whether a wake window is open,
19047
+ * and whether a fresh capture is in flight. Cache-only and capture-free:
19048
+ * a debug read must never wake a battery camera.
19049
+ */
19050
+ getDebugState: require_sleep.systemMethod(zod.z.object({ deviceId: zod.z.number() }), zod.z.object({
19051
+ /** The battery slice as read, or null when the device has none. */
19052
+ battery: zod.z.object({
19053
+ sleeping: zod.z.boolean(),
19054
+ lastUpdated: zod.z.number(),
19055
+ lastContactAt: zod.z.number().optional()
19056
+ }).nullable(),
19057
+ /** The resolved snapshot state (what the overlay decision used). */
19058
+ state: zod.z.object({
19059
+ isBattery: zod.z.boolean(),
19060
+ reason: zod.z.enum([
19061
+ "disabled",
19062
+ "sleeping",
19063
+ "unreachable",
19064
+ "waking"
19065
+ ]).nullable()
19066
+ }),
19067
+ /** The cached frame behind the next paint. */
19068
+ frame: zod.z.object({
19069
+ capturedAt: zod.z.number().nullable(),
19070
+ ageMs: zod.z.number().nullable()
19071
+ }),
19072
+ /** A wake window is currently open (the Waking overlay's source). */
19073
+ waking: zod.z.boolean()
19074
+ })),
19075
+ /**
19028
19076
  * Signed, expiring links to a CLIENT-SIZED frame — and the demand signal
19029
19077
  * that makes those frames current.
19030
19078
  *
@@ -38415,6 +38463,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
38415
38463
  addonId: null,
38416
38464
  access: "view"
38417
38465
  },
38466
+ "snapshot.getDebugState": {
38467
+ capName: "snapshot",
38468
+ capScope: "device",
38469
+ addonId: null,
38470
+ access: "view"
38471
+ },
38418
38472
  "snapshot.getSnapshot": {
38419
38473
  capName: "snapshot",
38420
38474
  capScope: "device",
@@ -40754,6 +40808,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
40754
40808
  form: "single",
40755
40809
  optional: false
40756
40810
  }],
40811
+ "pipelineAnalytics.getEventMedia": [{
40812
+ name: "deviceId",
40813
+ form: "single",
40814
+ optional: false
40815
+ }],
40757
40816
  "pipelineAnalytics.getKeyEvents": [{
40758
40817
  name: "deviceId",
40759
40818
  form: "single",
@@ -40784,6 +40843,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
40784
40843
  form: "single",
40785
40844
  optional: false
40786
40845
  }],
40846
+ "pipelineAnalytics.getTrackMedia": [{
40847
+ name: "deviceId",
40848
+ form: "single",
40849
+ optional: false
40850
+ }],
40787
40851
  "pipelineAnalytics.getTrainingExportSummary": [{
40788
40852
  name: "deviceIds",
40789
40853
  form: "array",
@@ -40819,6 +40883,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
40819
40883
  form: "array",
40820
40884
  optional: true
40821
40885
  }],
40886
+ "pipelineAnalytics.listTrackMedia": [{
40887
+ name: "deviceId",
40888
+ form: "single",
40889
+ optional: false
40890
+ }],
40822
40891
  "pipelineAnalytics.listTracks": [{
40823
40892
  name: "deviceId",
40824
40893
  form: "single",
@@ -41254,6 +41323,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
41254
41323
  form: "single",
41255
41324
  optional: false
41256
41325
  }],
41326
+ "snapshot.getDebugState": [{
41327
+ name: "deviceId",
41328
+ form: "single",
41329
+ optional: false
41330
+ }],
41257
41331
  "snapshot.getSnapshot": [{
41258
41332
  name: "deviceId",
41259
41333
  form: "single",
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as EventCategory } from "./event-category-Bxo5yJjt.mjs";
2
- import { $ as EncodedPacketSchema, A as expandCapMethods, B as ReadinessTimeoutError, C as DeviceRole, Ct as WELL_KNOWN_TABS, D as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Dt as hydrateSchema, E as DEFAULT_RUNTIME_STATE_DURABILITY, Et as collectHydratedFieldValues, F as CAP_NODE_PIN_CONTEXT_KEY, G as BrokerStatusSchema, H as readinessKey, I as nodePin, J as CamStreamKindSchema, K as CAM_PROFILE_ORDER, L as readNodePin, M as method, N as resolveCapMount, O as DEVICE_STATUS_METHOD, Ot as resolveHydratedFieldValue, P as systemMethod, Q as DecodedFrameSchema, R as toNodeId, S as DeviceFeature, St as isEvent, T as adminUiCapability, Tt as collectHydratedFieldEntries, U as scopeKey, V as emitDownForOwnedCaps, W as BrokerStatsSchema, X as CameraStreamSchema, Y as CamStreamResolutionSchema, Z as DecodedAudioChunkSchema, _ as createSliceHandle, _t as BaseAddon, a as asJsonObject, at as StreamSourceEntrySchema, b as viewerUiCapability, bt as createEvent, c as parseJsonArray, ct as SubscribeAudioChunksResultSchema, d as BOOT_RECOVERY_BACKOFF_MS, dt as makeProfileBrokerId, et as FrameHandleFormatSchema, f as DEVICE_SCOPED_CAPS, ft as makeSourceBrokerId, g as createMirrorSource, gt as DisposerChain, h as createLazyTrpcSource, ht as DATAPLANE_SECRET_HEADER, i as asJsonArray, it as ProfileSlotStatusSchema, j as isDeviceConfigCap, k as event, l as parseJsonObject, lt as SubscribeFramesInputSchema, m as createDeviceProxy, mt as selectAssignedProfileSlots, n as sleepCancellable, nt as ProfileRtspEntrySchema, o as asNumber, ot as StreamSourceSchema, p as isDeviceScopedCap, pt as parseProfileBrokerId, q as CamProfileSchema, r as asBoolean, rt as ProfileSlotSchema, s as asString, st as SubscribeAudioChunksInputSchema, t as sleep, tt as FrameHandleSchema, u as parseJsonUnknown, ut as SubscribeFramesResultSchema, v as RawStateResultSchema, vt as normalizeAddonInitResult, w as DeviceType, wt as WELL_KNOWN_TAB_MAP, x as ChargingStatus, xt as emitReadiness, y as deviceOpsCapability, yt as createDurableState, z as ReadinessRegistry } from "./sleep-DlC2kJYf.mjs";
2
+ import { $ as EncodedPacketSchema, A as expandCapMethods, B as ReadinessTimeoutError, C as DeviceRole, Ct as WELL_KNOWN_TABS, D as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Dt as hydrateSchema, E as DEFAULT_RUNTIME_STATE_DURABILITY, Et as collectHydratedFieldValues, F as CAP_NODE_PIN_CONTEXT_KEY, G as BrokerStatusSchema, H as readinessKey, I as nodePin, J as CamStreamKindSchema, K as CAM_PROFILE_ORDER, L as readNodePin, M as method, N as resolveCapMount, O as DEVICE_STATUS_METHOD, Ot as resolveHydratedFieldValue, P as systemMethod, Q as DecodedFrameSchema, R as toNodeId, S as DeviceFeature, St as isEvent, T as adminUiCapability, Tt as collectHydratedFieldEntries, U as scopeKey, V as emitDownForOwnedCaps, W as BrokerStatsSchema, X as CameraStreamSchema, Y as CamStreamResolutionSchema, Z as DecodedAudioChunkSchema, _ as createSliceHandle, _t as BaseAddon, a as asJsonObject, at as StreamSourceEntrySchema, b as viewerUiCapability, bt as createEvent, c as parseJsonArray, ct as SubscribeAudioChunksResultSchema, d as BOOT_RECOVERY_BACKOFF_MS, dt as makeProfileBrokerId, et as FrameHandleFormatSchema, f as DEVICE_SCOPED_CAPS, ft as makeSourceBrokerId, g as createMirrorSource, gt as DisposerChain, h as createLazyTrpcSource, ht as DATAPLANE_SECRET_HEADER, i as asJsonArray, it as ProfileSlotStatusSchema, j as isDeviceConfigCap, k as event, l as parseJsonObject, lt as SubscribeFramesInputSchema, m as createDeviceProxy, mt as selectAssignedProfileSlots, n as sleepCancellable, nt as ProfileRtspEntrySchema, o as asNumber, ot as StreamSourceSchema, p as isDeviceScopedCap, pt as parseProfileBrokerId, q as CamProfileSchema, r as asBoolean, rt as ProfileSlotSchema, s as asString, st as SubscribeAudioChunksInputSchema, t as sleep, tt as FrameHandleSchema, u as parseJsonUnknown, ut as SubscribeFramesResultSchema, v as RawStateResultSchema, vt as normalizeAddonInitResult, w as DeviceType, wt as WELL_KNOWN_TAB_MAP, x as ChargingStatus, xt as emitReadiness, y as deviceOpsCapability, yt as createDurableState, z as ReadinessRegistry } from "./sleep-BxO5xNe6.mjs";
3
3
  import { a as buildAudioArgs, c as buildVideoArgs, d as logBannerArgs, f as pickVideoEncoder, i as audioPlanFromEncodeProfile, l as invocationFromEncodeProfile, n as Fmp4BoxSplitter, o as buildFfmpegArgs, r as AUDIO_PRESETS, s as buildInputArgs, t as canonicalHash, u as isSoftwareDecode } from "./canonical-hash-rO1sRmEK.mjs";
4
4
  import { EventSourceType } from "./enums.mjs";
5
5
  import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
@@ -7059,6 +7059,8 @@ var QueryFilterSchema = z.object({
7059
7059
  where: z.record(z.string(), z.unknown()).optional(),
7060
7060
  whereIn: z.record(z.string(), z.array(z.unknown())).optional(),
7061
7061
  whereBetween: z.record(z.string(), z.tuple([z.unknown(), z.unknown()])).optional(),
7062
+ /** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
7063
+ whereNot: z.record(z.string(), z.unknown()).optional(),
7062
7064
  orderBy: z.object({
7063
7065
  field: z.string(),
7064
7066
  direction: z.enum(["asc", "desc"])
@@ -7078,7 +7080,8 @@ var QueryFilterSchema = z.object({
7078
7080
  var MutationFilterSchema = z.object({
7079
7081
  where: z.record(z.string(), z.unknown()).optional(),
7080
7082
  whereIn: z.record(z.string(), z.array(z.unknown())).optional(),
7081
- whereBetween: z.record(z.string(), z.tuple([z.unknown(), z.unknown()])).optional()
7083
+ whereBetween: z.record(z.string(), z.tuple([z.unknown(), z.unknown()])).optional(),
7084
+ whereNot: z.record(z.string(), z.unknown()).optional()
7082
7085
  });
7083
7086
  /** A single stored record: `{ id, data }`. */
7084
7087
  var SettingsRecordSchema = z.object({
@@ -15306,7 +15309,10 @@ var RecentTracksQueryInput = z.object({
15306
15309
  * Encodes the (lastSeen, trackId) sort position — treat as opaque. */
15307
15310
  cursor: z.string().optional(),
15308
15311
  /** See {@link TrackProjectionSchema}. Default `full`. */
15309
- projection: TrackProjectionSchema.optional()
15312
+ projection: TrackProjectionSchema.optional(),
15313
+ /** Include stationary-promoted rows (parked objects). Default false: the
15314
+ * feed lists passages; parking records live on the stationary registry. */
15315
+ includeStationary: z.boolean().optional()
15310
15316
  });
15311
15317
  var RecentTracksPageSchema = z.object({
15312
15318
  /** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
@@ -15538,7 +15544,11 @@ var pipelineAnalyticsCapability = {
15538
15544
  zone: TrackZoneFilterSchema.optional(),
15539
15545
  /** See {@link TrackProjectionSchema}. Default `full` (backward
15540
15546
  * compatible — omitting the field keeps today's exact behaviour). */
15541
- projection: TrackProjectionSchema.optional()
15547
+ projection: TrackProjectionSchema.optional(),
15548
+ /** Include stationary-promoted rows (parked objects handed to the
15549
+ * stationary registry). Default false: the timeline lists passages,
15550
+ * not parking records (operator decision, 2026-08-15). */
15551
+ includeStationary: z.boolean().optional()
15542
15552
  }), z.array(TrackSchema).readonly()),
15543
15553
  /**
15544
15554
  * Batched cluster-wide track listing — ONE call for the events page /
@@ -16029,7 +16039,8 @@ var pipelineAnalyticsCapability = {
16029
16039
  }),
16030
16040
  getEventMedia: method(z.object({
16031
16041
  eventId: z.string(),
16032
- kind: MediaFileKindEnum.optional()
16042
+ kind: MediaFileKindEnum.optional(),
16043
+ deviceId: z.number()
16033
16044
  }), z.array(MediaFileSchema).readonly()),
16034
16045
  /** All media rows owned by a track. `kinds` narrows to a kind subset so a
16035
16046
  * client can fetch the SMALL display variants on open and pull the
@@ -16037,7 +16048,8 @@ var pipelineAnalyticsCapability = {
16037
16048
  * Absent ⇒ every kind (back-compat). */
16038
16049
  getTrackMedia: method(z.object({
16039
16050
  trackId: z.string(),
16040
- kinds: z.array(MediaFileKindEnum).optional()
16051
+ kinds: z.array(MediaFileKindEnum).optional(),
16052
+ deviceId: z.number()
16041
16053
  }), z.array(MediaFileSchema).readonly()),
16042
16054
  /**
16043
16055
  * What media a track HAS, without any of it.
@@ -16054,7 +16066,10 @@ var pipelineAnalyticsCapability = {
16054
16066
  * tell a full-resolution variant existed — and the affordance that opens it
16055
16067
  * would silently disappear.
16056
16068
  */
16057
- listTrackMedia: method(z.object({ trackId: z.string() }), z.array(MediaFileInfoSchema).readonly()),
16069
+ listTrackMedia: method(z.object({
16070
+ trackId: z.string(),
16071
+ deviceId: z.number()
16072
+ }), z.array(MediaFileInfoSchema).readonly()),
16058
16073
  /**
16059
16074
  * Search object events by text query using CLIP cosine similarity.
16060
16075
  * Encodes `text` via the `embedding-encoder` cap, queries the
@@ -19024,6 +19039,39 @@ var snapshotCapability = {
19024
19039
  etag: z.string().nullable()
19025
19040
  }))),
19026
19041
  /**
19042
+ * The full decision chain for ONE device, for the viewer's debug readout —
19043
+ * the answer to "why does this tile show what it shows" in a single poll:
19044
+ * the battery slice the state was derived from, the resolved state + its
19045
+ * reason, the cached frame's identity/age, whether a wake window is open,
19046
+ * and whether a fresh capture is in flight. Cache-only and capture-free:
19047
+ * a debug read must never wake a battery camera.
19048
+ */
19049
+ getDebugState: systemMethod(z.object({ deviceId: z.number() }), z.object({
19050
+ /** The battery slice as read, or null when the device has none. */
19051
+ battery: z.object({
19052
+ sleeping: z.boolean(),
19053
+ lastUpdated: z.number(),
19054
+ lastContactAt: z.number().optional()
19055
+ }).nullable(),
19056
+ /** The resolved snapshot state (what the overlay decision used). */
19057
+ state: z.object({
19058
+ isBattery: z.boolean(),
19059
+ reason: z.enum([
19060
+ "disabled",
19061
+ "sleeping",
19062
+ "unreachable",
19063
+ "waking"
19064
+ ]).nullable()
19065
+ }),
19066
+ /** The cached frame behind the next paint. */
19067
+ frame: z.object({
19068
+ capturedAt: z.number().nullable(),
19069
+ ageMs: z.number().nullable()
19070
+ }),
19071
+ /** A wake window is currently open (the Waking overlay's source). */
19072
+ waking: z.boolean()
19073
+ })),
19074
+ /**
19027
19075
  * Signed, expiring links to a CLIENT-SIZED frame — and the demand signal
19028
19076
  * that makes those frames current.
19029
19077
  *
@@ -38414,6 +38462,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
38414
38462
  addonId: null,
38415
38463
  access: "view"
38416
38464
  },
38465
+ "snapshot.getDebugState": {
38466
+ capName: "snapshot",
38467
+ capScope: "device",
38468
+ addonId: null,
38469
+ access: "view"
38470
+ },
38417
38471
  "snapshot.getSnapshot": {
38418
38472
  capName: "snapshot",
38419
38473
  capScope: "device",
@@ -40753,6 +40807,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
40753
40807
  form: "single",
40754
40808
  optional: false
40755
40809
  }],
40810
+ "pipelineAnalytics.getEventMedia": [{
40811
+ name: "deviceId",
40812
+ form: "single",
40813
+ optional: false
40814
+ }],
40756
40815
  "pipelineAnalytics.getKeyEvents": [{
40757
40816
  name: "deviceId",
40758
40817
  form: "single",
@@ -40783,6 +40842,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
40783
40842
  form: "single",
40784
40843
  optional: false
40785
40844
  }],
40845
+ "pipelineAnalytics.getTrackMedia": [{
40846
+ name: "deviceId",
40847
+ form: "single",
40848
+ optional: false
40849
+ }],
40786
40850
  "pipelineAnalytics.getTrainingExportSummary": [{
40787
40851
  name: "deviceIds",
40788
40852
  form: "array",
@@ -40818,6 +40882,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
40818
40882
  form: "array",
40819
40883
  optional: true
40820
40884
  }],
40885
+ "pipelineAnalytics.listTrackMedia": [{
40886
+ name: "deviceId",
40887
+ form: "single",
40888
+ optional: false
40889
+ }],
40821
40890
  "pipelineAnalytics.listTracks": [{
40822
40891
  name: "deviceId",
40823
40892
  form: "single",
@@ -41253,6 +41322,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
41253
41322
  form: "single",
41254
41323
  optional: false
41255
41324
  }],
41325
+ "snapshot.getDebugState": [{
41326
+ name: "deviceId",
41327
+ form: "single",
41328
+ optional: false
41329
+ }],
41256
41330
  "snapshot.getSnapshot": [{
41257
41331
  name: "deviceId",
41258
41332
  form: "single",
@@ -151,6 +151,14 @@ export interface QueryFilter {
151
151
  where?: Record<string, unknown>;
152
152
  whereIn?: Record<string, unknown[]>;
153
153
  whereBetween?: Record<string, [unknown, unknown]>;
154
+ /**
155
+ * NULL-safe inequality: a row matches when its field is NULL OR different
156
+ * from the excluded value — the only honest shape for "not this kind of
157
+ * row" over nullable columns, because SQL `!=` silently drops NULLs (and
158
+ * rows written before the column existed are exactly the ones a
159
+ * kind-exclusion must KEEP).
160
+ */
161
+ whereNot?: Record<string, unknown>;
154
162
  orderBy?: {
155
163
  field: string;
156
164
  direction: 'asc' | 'desc';
@@ -3287,6 +3287,7 @@ function createDeviceProxy(api, binding, opts) {
3287
3287
  getSnapshot: (input) => dispatch("snapshot", "snapshot", "getSnapshot", "query", input),
3288
3288
  invalidateCache: (input) => dispatch("snapshot", "snapshot", "invalidateCache", "mutation", input),
3289
3289
  getSnapshotOverview: (input) => dispatch("snapshot", "snapshot", "getSnapshotOverview", "query", input),
3290
+ getDebugState: (input) => dispatch("snapshot", "snapshot", "getDebugState", "query", input),
3290
3291
  getSnapshotLinks: (input) => dispatch("snapshot", "snapshot", "getSnapshotLinks", "query", input),
3291
3292
  getStatus: (input) => dispatch("snapshot", "snapshot", "getStatus", "query", input),
3292
3293
  getDeviceSettingsContribution: (input) => dispatch("snapshot", "snapshot", "getDeviceSettingsContribution", "query", input),
@@ -3287,6 +3287,7 @@ function createDeviceProxy(api, binding, opts) {
3287
3287
  getSnapshot: (input) => dispatch("snapshot", "snapshot", "getSnapshot", "query", input),
3288
3288
  invalidateCache: (input) => dispatch("snapshot", "snapshot", "invalidateCache", "mutation", input),
3289
3289
  getSnapshotOverview: (input) => dispatch("snapshot", "snapshot", "getSnapshotOverview", "query", input),
3290
+ getDebugState: (input) => dispatch("snapshot", "snapshot", "getDebugState", "query", input),
3290
3291
  getSnapshotLinks: (input) => dispatch("snapshot", "snapshot", "getSnapshotLinks", "query", input),
3291
3292
  getStatus: (input) => dispatch("snapshot", "snapshot", "getStatus", "query", input),
3292
3293
  getDeviceSettingsContribution: (input) => dispatch("snapshot", "snapshot", "getDeviceSettingsContribution", "query", input),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.79",
3
+ "version": "1.2.81",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",