@camstack/types 1.2.130 → 1.2.132

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-BaEgqJNv.js");
3
- const require_sleep = require("./sleep-DIg3xuEw.js");
3
+ const require_sleep = require("./sleep-CqVyhcl-.js");
4
4
  const require_err_msg = require("./err-msg-COpsHMw2.js");
5
5
  //#region src/generated/cap-input-defaults.ts
6
6
  /**
@@ -16,7 +16,7 @@ const require_err_msg = require("./err-msg-COpsHMw2.js");
16
16
  * Plain data, zero Zod: a forked runner must not import the schema barrel
17
17
  * (~144MB RSS per runner — D28).
18
18
  *
19
- * Coverage: 24 caps, 55 methods with defaults.
19
+ * Coverage: 24 caps, 56 methods with defaults.
20
20
  */
21
21
  var CAP_INPUT_DEFAULTS = Object.freeze({
22
22
  "addons": { "getLogs": { "limit": 100 } },
@@ -132,6 +132,7 @@ var CAP_INPUT_DEFAULTS = Object.freeze({
132
132
  "getSensorEvents": { "limit": 1e3 },
133
133
  "listGroups": { "limit": 40 },
134
134
  "listRecentTracks": { "limit": 200 },
135
+ "reclaimDebugMedia": { "mode": "report" },
135
136
  "searchObjectEvents": {
136
137
  "limit": 50,
137
138
  "minScore": .2
package/dist/addon.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as EventCategory } from "./event-category-BZL-fdNj.mjs";
2
- import { B as ReadinessRegistry, E as adminUiCapability, L as nodePin, R as readNodePin, St as emitReadiness, T as DeviceType, V as ReadinessTimeoutError, W as scopeKey, _t as DisposerChain, a as asJsonObject, b as deviceOpsCapability, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, gt as DATAPLANE_SECRET_HEADER, h as createEventBusSliceSource, j as expandCapMethods, m as createDeviceProxy, p as isDeviceScopedCap, s as asString, t as sleep, u as parseJsonUnknown, vt as BaseAddon, x as viewerUiCapability, yt as normalizeAddonInitResult } from "./sleep-DcA-CgqX.mjs";
2
+ import { B as ReadinessRegistry, E as adminUiCapability, L as nodePin, R as readNodePin, St as emitReadiness, T as DeviceType, V as ReadinessTimeoutError, W as scopeKey, _t as DisposerChain, a as asJsonObject, b as deviceOpsCapability, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, gt as DATAPLANE_SECRET_HEADER, h as createEventBusSliceSource, j as expandCapMethods, m as createDeviceProxy, p as isDeviceScopedCap, s as asString, t as sleep, u as parseJsonUnknown, vt as BaseAddon, x as viewerUiCapability, yt as normalizeAddonInitResult } from "./sleep-BBI0PDUc.mjs";
3
3
  import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
4
4
  //#region src/generated/cap-input-defaults.ts
5
5
  /**
@@ -15,7 +15,7 @@ import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
15
15
  * Plain data, zero Zod: a forked runner must not import the schema barrel
16
16
  * (~144MB RSS per runner — D28).
17
17
  *
18
- * Coverage: 24 caps, 55 methods with defaults.
18
+ * Coverage: 24 caps, 56 methods with defaults.
19
19
  */
20
20
  var CAP_INPUT_DEFAULTS = Object.freeze({
21
21
  "addons": { "getLogs": { "limit": 100 } },
@@ -131,6 +131,7 @@ var CAP_INPUT_DEFAULTS = Object.freeze({
131
131
  "getSensorEvents": { "limit": 1e3 },
132
132
  "listGroups": { "limit": 40 },
133
133
  "listRecentTracks": { "limit": 200 },
134
+ "reclaimDebugMedia": { "mode": "report" },
134
135
  "searchObjectEvents": {
135
136
  "limit": 50,
136
137
  "minScore": .2
@@ -2687,6 +2687,7 @@ export declare const pipelineAnalyticsCapability: {
2687
2687
  }, z.core.$strip>, "mutation">;
2688
2688
  readonly startStorageMigrationMove: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
2689
2689
  toLocationId: z.ZodString;
2690
+ fromLocationId: z.ZodOptional<z.ZodString>;
2690
2691
  throttleMbps: z.ZodOptional<z.ZodNumber>;
2691
2692
  mode: z.ZodOptional<z.ZodEnum<{
2692
2693
  move: "move";
@@ -2736,6 +2737,7 @@ export declare const pipelineAnalyticsCapability: {
2736
2737
  */
2737
2738
  readonly relocateMedia: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
2738
2739
  toLocationId: z.ZodString;
2740
+ fromLocationId: z.ZodOptional<z.ZodString>;
2739
2741
  throttleMbps: z.ZodOptional<z.ZodNumber>;
2740
2742
  mode: z.ZodOptional<z.ZodEnum<{
2741
2743
  move: "move";
@@ -2791,6 +2793,7 @@ export declare const pipelineAnalyticsCapability: {
2791
2793
  */
2792
2794
  readonly countRelocatableMedia: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
2793
2795
  toLocationId: z.ZodString;
2796
+ fromLocationId: z.ZodOptional<z.ZodString>;
2794
2797
  mode: z.ZodOptional<z.ZodEnum<{
2795
2798
  move: "move";
2796
2799
  seal: "seal";
@@ -2861,6 +2864,51 @@ export declare const pipelineAnalyticsCapability: {
2861
2864
  detail: z.ZodNullable<z.ZodString>;
2862
2865
  actor: z.ZodString;
2863
2866
  }, z.core.$strip>>>, "query">;
2867
+ /**
2868
+ * Reclaim the standing debug-media backlog (motion-visit stills + track
2869
+ * filmstrips). DETACHED: returns `{ started }` immediately. The pass is
2870
+ * tens of minutes; awaiting it is a timeout, not a verdict. Dry-run unless
2871
+ * `mode: 'reclaim'`. Poll `getMediaReclaimStatus`.
2872
+ */
2873
+ readonly reclaimDebugMedia: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
2874
+ mode: z.ZodDefault<z.ZodEnum<{
2875
+ report: "report";
2876
+ reclaim: "reclaim";
2877
+ }>>;
2878
+ scopes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2879
+ "motion-still": "motion-still";
2880
+ "track-filmstrip": "track-filmstrip";
2881
+ }>>>;
2882
+ deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
2883
+ restart: z.ZodOptional<z.ZodBoolean>;
2884
+ pageSize: z.ZodOptional<z.ZodNumber>;
2885
+ maxRowsPerDevice: z.ZodOptional<z.ZodNumber>;
2886
+ maxReclaimPerDevice: z.ZodOptional<z.ZodNumber>;
2887
+ maxBytesPerRun: z.ZodOptional<z.ZodNumber>;
2888
+ budgetMinutes: z.ZodOptional<z.ZodNumber>;
2889
+ throttleBytesPerSec: z.ZodOptional<z.ZodNumber>;
2890
+ graceMinutes: z.ZodOptional<z.ZodNumber>;
2891
+ }, z.core.$strip>, z.ZodObject<{
2892
+ started: z.ZodBoolean;
2893
+ alreadyRunning: z.ZodBoolean;
2894
+ }, z.core.$strip>, "mutation">;
2895
+ readonly getMediaReclaimStatus: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
2896
+ running: z.ZodBoolean;
2897
+ mode: z.ZodNullable<z.ZodEnum<{
2898
+ report: "report";
2899
+ reclaim: "reclaim";
2900
+ }>>;
2901
+ totalExamined: z.ZodNumber;
2902
+ totalEligible: z.ZodNumber;
2903
+ totalReclaimed: z.ZodNumber;
2904
+ totalBytesReclaimed: z.ZodNumber;
2905
+ totalRefused: z.ZodNumber;
2906
+ devicesDone: z.ZodNumber;
2907
+ complete: z.ZodNullable<z.ZodBoolean>;
2908
+ startedAtMs: z.ZodNullable<z.ZodNumber>;
2909
+ finishedAtMs: z.ZodNullable<z.ZodNumber>;
2910
+ error: z.ZodNullable<z.ZodString>;
2911
+ }, z.core.$strip>, "query">;
2864
2912
  /**
2865
2913
  * The CHEAP QUESTION, asked before any media moves: how big is the dataset
2866
2914
  * the marked (`markForTrain`) tracks would produce?
@@ -163,6 +163,42 @@ export declare const RecordingRebalanceInputSchema: z.ZodObject<{
163
163
  minMoveGb: z.ZodOptional<z.ZodNumber>;
164
164
  }, z.core.$strip>;
165
165
  export type RecordingRebalanceInput = z.infer<typeof RecordingRebalanceInputSchema>;
166
+ /**
167
+ * Operator-facing placement of one camera onto a recordings location.
168
+ *
169
+ * `pinLocationId` is the operator instruction: a location id, or `null` for
170
+ * Auto (the planner may move this camera). `locationId` is where high/mid
171
+ * currently write — the plan, which may disagree with the pin when Auto.
172
+ */
173
+ export declare const RecordingDevicePlacementSchema: z.ZodObject<{
174
+ deviceId: z.ZodNumber;
175
+ profile: z.ZodString;
176
+ locationId: z.ZodString;
177
+ }, z.core.$strip>;
178
+ export type RecordingDevicePlacement = z.infer<typeof RecordingDevicePlacementSchema>;
179
+ export declare const RecordingDevicePinSchema: z.ZodObject<{
180
+ deviceId: z.ZodNumber;
181
+ locationId: z.ZodString;
182
+ }, z.core.$strip>;
183
+ export type RecordingDevicePin = z.infer<typeof RecordingDevicePinSchema>;
184
+ export declare const RecordingPlacementViewSchema: z.ZodObject<{
185
+ assignments: z.ZodArray<z.ZodObject<{
186
+ deviceId: z.ZodNumber;
187
+ profile: z.ZodString;
188
+ locationId: z.ZodString;
189
+ }, z.core.$strip>>;
190
+ pins: z.ZodArray<z.ZodObject<{
191
+ deviceId: z.ZodNumber;
192
+ locationId: z.ZodString;
193
+ }, z.core.$strip>>;
194
+ defaultLocations: z.ZodRecord<z.ZodString, z.ZodString>;
195
+ }, z.core.$strip>;
196
+ export type RecordingPlacementView = z.infer<typeof RecordingPlacementViewSchema>;
197
+ export declare const RecordingSetDevicePlacementInputSchema: z.ZodObject<{
198
+ deviceId: z.ZodNumber;
199
+ locationId: z.ZodNullable<z.ZodString>;
200
+ }, z.core.$strip>;
201
+ export type RecordingSetDevicePlacementInput = z.infer<typeof RecordingSetDevicePlacementInputSchema>;
166
202
  /**
167
203
  * Result of locating footage at a wall-clock instant for one device/profile.
168
204
  * `segment` carries the covering segment's window; `gap` reports the forward
@@ -868,6 +904,32 @@ export declare const recordingCapability: {
868
904
  bytesToMove: z.ZodNumber;
869
905
  jobIds: z.ZodArray<z.ZodString>;
870
906
  }, z.core.$strip>, "mutation">;
907
+ /**
908
+ * The placement plan in force plus operator pins. Drives the Locations
909
+ * admin page: Auto vs a named recordings location, per camera.
910
+ */
911
+ readonly getPlacement: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
912
+ assignments: z.ZodArray<z.ZodObject<{
913
+ deviceId: z.ZodNumber;
914
+ profile: z.ZodString;
915
+ locationId: z.ZodString;
916
+ }, z.core.$strip>>;
917
+ pins: z.ZodArray<z.ZodObject<{
918
+ deviceId: z.ZodNumber;
919
+ locationId: z.ZodString;
920
+ }, z.core.$strip>>;
921
+ defaultLocations: z.ZodRecord<z.ZodString, z.ZodString>;
922
+ }, z.core.$strip>, "query">;
923
+ /**
924
+ * Pin a camera to a recordings location, or clear the pin (Auto). High and
925
+ * mid follow the pin; low stays with the recordingsLow planner.
926
+ */
927
+ readonly setDevicePlacement: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
928
+ deviceId: z.ZodNumber;
929
+ locationId: z.ZodNullable<z.ZodString>;
930
+ }, z.core.$strip>, z.ZodObject<{
931
+ ok: z.ZodLiteral<true>;
932
+ }, z.core.$strip>, "mutation">;
871
933
  };
872
934
  };
873
935
  export type IRecordingProvider = InferProvider<typeof recordingCapability>;
@@ -18,6 +18,13 @@ export declare const storageMigrationCapability: {
18
18
  backups: z.ZodOptional<z.ZodString>;
19
19
  galleryMedia: z.ZodOptional<z.ZodString>;
20
20
  }, z.core.$strip>;
21
+ sources: z.ZodOptional<z.ZodObject<{
22
+ recordings: z.ZodOptional<z.ZodString>;
23
+ recordingsLow: z.ZodOptional<z.ZodString>;
24
+ eventMedia: z.ZodOptional<z.ZodString>;
25
+ backups: z.ZodOptional<z.ZodString>;
26
+ galleryMedia: z.ZodOptional<z.ZodString>;
27
+ }, z.core.$strip>>;
21
28
  throttleMbps: z.ZodOptional<z.ZodNumber>;
22
29
  mode: z.ZodOptional<z.ZodEnum<{
23
30
  blocking: "blocking";
@@ -31,6 +38,13 @@ export declare const storageMigrationCapability: {
31
38
  backups: z.ZodOptional<z.ZodString>;
32
39
  galleryMedia: z.ZodOptional<z.ZodString>;
33
40
  }, z.core.$strip>;
41
+ sources: z.ZodOptional<z.ZodObject<{
42
+ recordings: z.ZodOptional<z.ZodString>;
43
+ recordingsLow: z.ZodOptional<z.ZodString>;
44
+ eventMedia: z.ZodOptional<z.ZodString>;
45
+ backups: z.ZodOptional<z.ZodString>;
46
+ galleryMedia: z.ZodOptional<z.ZodString>;
47
+ }, z.core.$strip>>;
34
48
  mode: z.ZodEnum<{
35
49
  blocking: "blocking";
36
50
  nonBlocking: "nonBlocking";
@@ -45,6 +59,7 @@ export declare const storageMigrationCapability: {
45
59
  }>;
46
60
  fromLocationId: z.ZodString;
47
61
  toLocationId: z.ZodString;
62
+ freezeSource: z.ZodOptional<z.ZodBoolean>;
48
63
  }, z.core.$strip>>;
49
64
  findings: z.ZodArray<z.ZodObject<{
50
65
  code: z.ZodEnum<{
@@ -72,6 +87,13 @@ export declare const storageMigrationCapability: {
72
87
  backups: z.ZodOptional<z.ZodString>;
73
88
  galleryMedia: z.ZodOptional<z.ZodString>;
74
89
  }, z.core.$strip>;
90
+ sources: z.ZodOptional<z.ZodObject<{
91
+ recordings: z.ZodOptional<z.ZodString>;
92
+ recordingsLow: z.ZodOptional<z.ZodString>;
93
+ eventMedia: z.ZodOptional<z.ZodString>;
94
+ backups: z.ZodOptional<z.ZodString>;
95
+ galleryMedia: z.ZodOptional<z.ZodString>;
96
+ }, z.core.$strip>>;
75
97
  throttleMbps: z.ZodOptional<z.ZodNumber>;
76
98
  mode: z.ZodOptional<z.ZodEnum<{
77
99
  blocking: "blocking";
@@ -109,6 +131,13 @@ export declare const storageMigrationCapability: {
109
131
  backups: z.ZodOptional<z.ZodString>;
110
132
  galleryMedia: z.ZodOptional<z.ZodString>;
111
133
  }, z.core.$strip>;
134
+ sources: z.ZodOptional<z.ZodObject<{
135
+ recordings: z.ZodOptional<z.ZodString>;
136
+ recordingsLow: z.ZodOptional<z.ZodString>;
137
+ eventMedia: z.ZodOptional<z.ZodString>;
138
+ backups: z.ZodOptional<z.ZodString>;
139
+ galleryMedia: z.ZodOptional<z.ZodString>;
140
+ }, z.core.$strip>>;
112
141
  throttleMbps: z.ZodNumber;
113
142
  moves: z.ZodArray<z.ZodObject<{
114
143
  storageClass: z.ZodEnum<{
@@ -120,6 +149,7 @@ export declare const storageMigrationCapability: {
120
149
  }>;
121
150
  fromLocationId: z.ZodString;
122
151
  toLocationId: z.ZodString;
152
+ freezeSource: z.ZodOptional<z.ZodBoolean>;
123
153
  moverJobId: z.ZodNullable<z.ZodString>;
124
154
  state: z.ZodNullable<z.ZodEnum<{
125
155
  failed: "failed";
@@ -234,6 +264,125 @@ export declare const storageMigrationCapability: {
234
264
  }, z.core.$strip>, z.ZodObject<{
235
265
  jobId: z.ZodString;
236
266
  }, z.core.$strip>, "mutation">;
267
+ /**
268
+ * One operator cleanup of leftover analytics (DB + blobs) and ghost
269
+ * ledger rows on frozen footage locations. Optional debug-media sweep.
270
+ * Returns immediately; poll {@link cleanupStatus}.
271
+ */
272
+ readonly cleanupStart: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
273
+ includeDebugMedia: z.ZodOptional<z.ZodBoolean>;
274
+ }, z.core.$strip>, z.ZodObject<{
275
+ jobId: z.ZodString;
276
+ }, z.core.$strip>, "mutation">;
277
+ readonly cleanupStatus: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
278
+ jobId: z.ZodOptional<z.ZodString>;
279
+ }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
280
+ jobId: z.ZodString;
281
+ phase: z.ZodEnum<{
282
+ failed: "failed";
283
+ done: "done";
284
+ cancelled: "cancelled";
285
+ orphans: "orphans";
286
+ "debug-media": "debug-media";
287
+ "ghost-ledger": "ghost-ledger";
288
+ }>;
289
+ includeDebugMedia: z.ZodBoolean;
290
+ orphansReclaimed: z.ZodNumber;
291
+ orphanBytesReclaimed: z.ZodNumber;
292
+ debugMediaReclaimed: z.ZodNumber;
293
+ debugMediaBytesReclaimed: z.ZodNumber;
294
+ ghostsForgotten: z.ZodNumber;
295
+ ghostBytesForgotten: z.ZodNumber;
296
+ detail: z.ZodNullable<z.ZodString>;
297
+ cancelRequested: z.ZodBoolean;
298
+ startedAt: z.ZodNumber;
299
+ updatedAt: z.ZodNumber;
300
+ finishedAt: z.ZodNullable<z.ZodNumber>;
301
+ error: z.ZodNullable<z.ZodString>;
302
+ }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
303
+ readonly cleanupCancel: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
304
+ jobId: z.ZodString;
305
+ }, z.core.$strip>, z.ZodObject<{
306
+ cancelled: z.ZodBoolean;
307
+ }, z.core.$strip>, "mutation">;
308
+ /** Recent finished migration jobs, newest first. The live job is `status`. */
309
+ readonly history: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
310
+ jobId: z.ZodString;
311
+ phase: z.ZodEnum<{
312
+ moving: "moving";
313
+ verifying: "verifying";
314
+ failed: "failed";
315
+ done: "done";
316
+ cancelled: "cancelled";
317
+ planning: "planning";
318
+ sealing: "sealing";
319
+ pausing: "pausing";
320
+ draining: "draining";
321
+ repointing: "repointing";
322
+ refreshing: "refreshing";
323
+ resuming: "resuming";
324
+ }>;
325
+ mode: z.ZodEnum<{
326
+ blocking: "blocking";
327
+ nonBlocking: "nonBlocking";
328
+ }>;
329
+ destinations: z.ZodObject<{
330
+ recordings: z.ZodOptional<z.ZodString>;
331
+ recordingsLow: z.ZodOptional<z.ZodString>;
332
+ eventMedia: z.ZodOptional<z.ZodString>;
333
+ backups: z.ZodOptional<z.ZodString>;
334
+ galleryMedia: z.ZodOptional<z.ZodString>;
335
+ }, z.core.$strip>;
336
+ sources: z.ZodOptional<z.ZodObject<{
337
+ recordings: z.ZodOptional<z.ZodString>;
338
+ recordingsLow: z.ZodOptional<z.ZodString>;
339
+ eventMedia: z.ZodOptional<z.ZodString>;
340
+ backups: z.ZodOptional<z.ZodString>;
341
+ galleryMedia: z.ZodOptional<z.ZodString>;
342
+ }, z.core.$strip>>;
343
+ throttleMbps: z.ZodNumber;
344
+ moves: z.ZodArray<z.ZodObject<{
345
+ storageClass: z.ZodEnum<{
346
+ recordings: "recordings";
347
+ recordingsLow: "recordingsLow";
348
+ eventMedia: "eventMedia";
349
+ backups: "backups";
350
+ galleryMedia: "galleryMedia";
351
+ }>;
352
+ fromLocationId: z.ZodString;
353
+ toLocationId: z.ZodString;
354
+ freezeSource: z.ZodOptional<z.ZodBoolean>;
355
+ moverJobId: z.ZodNullable<z.ZodString>;
356
+ state: z.ZodNullable<z.ZodEnum<{
357
+ failed: "failed";
358
+ running: "running";
359
+ queued: "queued";
360
+ done: "done";
361
+ cancelled: "cancelled";
362
+ }>>;
363
+ error: z.ZodNullable<z.ZodString>;
364
+ progress: z.ZodNullable<z.ZodObject<{
365
+ filesMoved: z.ZodNumber;
366
+ filesTotal: z.ZodNullable<z.ZodNumber>;
367
+ bytesMoved: z.ZodNumber;
368
+ rowsReconciled: z.ZodOptional<z.ZodNumber>;
369
+ startedAt: z.ZodNumber;
370
+ observedAt: z.ZodNumber;
371
+ }, z.core.$strip>>;
372
+ }, z.core.$strip>>;
373
+ pauseLeaseId: z.ZodNullable<z.ZodString>;
374
+ pausedParticipants: z.ZodArray<z.ZodEnum<{
375
+ pipeline: "pipeline";
376
+ recorder: "recorder";
377
+ analytics: "analytics";
378
+ }>>;
379
+ repointed: z.ZodBoolean;
380
+ cancelRequested: z.ZodBoolean;
381
+ startedAt: z.ZodNumber;
382
+ updatedAt: z.ZodNumber;
383
+ finishedAt: z.ZodNullable<z.ZodNumber>;
384
+ error: z.ZodNullable<z.ZodString>;
385
+ }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
237
386
  };
238
387
  };
239
388
  export type IStorageMigrationProvider = InferProvider<typeof storageMigrationCapability>;
@@ -5170,6 +5170,20 @@ export type AppRouter = TrpcCoreRouter<{
5170
5170
  output: z.infer<typeof pipelineAnalyticsCapability.methods.listOpsLog.output>;
5171
5171
  meta: object;
5172
5172
  }>;
5173
+ reclaimDebugMedia: TRPCMutationProcedure<{
5174
+ input: {
5175
+ [x: string]: unknown;
5176
+ } & z.input<typeof pipelineAnalyticsCapability.methods.reclaimDebugMedia.input>;
5177
+ output: z.infer<typeof pipelineAnalyticsCapability.methods.reclaimDebugMedia.output>;
5178
+ meta: object;
5179
+ }>;
5180
+ getMediaReclaimStatus: TRPCQueryProcedure<{
5181
+ input: {
5182
+ [x: string]: unknown;
5183
+ } & z.input<typeof pipelineAnalyticsCapability.methods.getMediaReclaimStatus.input>;
5184
+ output: z.infer<typeof pipelineAnalyticsCapability.methods.getMediaReclaimStatus.output>;
5185
+ meta: object;
5186
+ }>;
5173
5187
  getTrainingExportSummary: TRPCQueryProcedure<{
5174
5188
  input: {
5175
5189
  [x: string]: unknown;
@@ -6641,6 +6655,20 @@ export type AppRouter = TrpcCoreRouter<{
6641
6655
  output: z.infer<typeof recordingCapability.methods.startStorageRebalance.output>;
6642
6656
  meta: object;
6643
6657
  }>;
6658
+ getPlacement: TRPCQueryProcedure<{
6659
+ input: {
6660
+ [x: string]: unknown;
6661
+ } & z.input<typeof recordingCapability.methods.getPlacement.input>;
6662
+ output: z.infer<typeof recordingCapability.methods.getPlacement.output>;
6663
+ meta: object;
6664
+ }>;
6665
+ setDevicePlacement: TRPCMutationProcedure<{
6666
+ input: {
6667
+ [x: string]: unknown;
6668
+ } & z.input<typeof recordingCapability.methods.setDevicePlacement.input>;
6669
+ output: z.infer<typeof recordingCapability.methods.setDevicePlacement.output>;
6670
+ meta: object;
6671
+ }>;
6644
6672
  }>>;
6645
6673
  recordingExport: TRPCBuiltRouter<{
6646
6674
  ctx: TrpcContext;
@@ -7322,6 +7350,34 @@ export type AppRouter = TrpcCoreRouter<{
7322
7350
  output: z.infer<typeof storageMigrationCapability.methods.drain.output>;
7323
7351
  meta: object;
7324
7352
  }>;
7353
+ cleanupStart: TRPCMutationProcedure<{
7354
+ input: {
7355
+ [x: string]: unknown;
7356
+ } & z.input<typeof storageMigrationCapability.methods.cleanupStart.input>;
7357
+ output: z.infer<typeof storageMigrationCapability.methods.cleanupStart.output>;
7358
+ meta: object;
7359
+ }>;
7360
+ cleanupStatus: TRPCQueryProcedure<{
7361
+ input: {
7362
+ [x: string]: unknown;
7363
+ } & z.input<typeof storageMigrationCapability.methods.cleanupStatus.input>;
7364
+ output: z.infer<typeof storageMigrationCapability.methods.cleanupStatus.output>;
7365
+ meta: object;
7366
+ }>;
7367
+ cleanupCancel: TRPCMutationProcedure<{
7368
+ input: {
7369
+ [x: string]: unknown;
7370
+ } & z.input<typeof storageMigrationCapability.methods.cleanupCancel.input>;
7371
+ output: z.infer<typeof storageMigrationCapability.methods.cleanupCancel.output>;
7372
+ meta: object;
7373
+ }>;
7374
+ history: TRPCQueryProcedure<{
7375
+ input: {
7376
+ [x: string]: unknown;
7377
+ } & z.input<typeof storageMigrationCapability.methods.history.input>;
7378
+ output: z.infer<typeof storageMigrationCapability.methods.history.output>;
7379
+ meta: object;
7380
+ }>;
7325
7381
  }>>;
7326
7382
  storageProvider: TRPCBuiltRouter<{
7327
7383
  ctx: TrpcContext;
@@ -11,7 +11,7 @@
11
11
  * Plain data, zero Zod: a forked runner must not import the schema barrel
12
12
  * (~144MB RSS per runner — D28).
13
13
  *
14
- * Coverage: 24 caps, 55 methods with defaults.
14
+ * Coverage: 24 caps, 56 methods with defaults.
15
15
  */
16
16
  export declare const CAP_INPUT_DEFAULTS: Readonly<Record<string, Readonly<Record<string, Readonly<Record<string, unknown>>>>>>;
17
17
  /**
@@ -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: 992 method paths across 126 capabilities.
9
+ * Coverage: 1000 method paths across 126 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -6,8 +6,8 @@
6
6
  * system-scope cap that takes a deviceId was previously never device-filtered
7
7
  * — see the generator header).
8
8
  *
9
- * Coverage: 351 methods carry a device reference, of which
10
- * 130 are on SYSTEM-scope caps.
9
+ * Coverage: 353 methods carry a device reference, of which
10
+ * 131 are on SYSTEM-scope caps.
11
11
  *
12
12
  * Top-level fields, number arrays, and one-level arrays of objects carrying
13
13
  * a numeric device field (targets[].deviceId) are all mapped; the matcher
@@ -87,12 +87,12 @@ export interface SystemProxy {
87
87
  readonly pipelineOrchestrator: Pick<InferProvider<typeof pipelineOrchestratorCapability>, 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'rebalance' | 'getPipelineAssignments' | 'getAgentLoad' | 'getGlobalMetrics' | 'getCapabilityBindings' | 'setCapabilityBinding' | 'getIngestOwner' | 'getAudioNodeLoad' | 'getAgentSettings' | 'listAgentSettings' | 'removeAgentSettings' | 'setAgentMaxCameras' | 'setAgentDetectWeight' | 'setAgentCapabilities' | 'setAgentReachableHost' | 'setAgentInferenceDevices' | 'getNodeInferenceDevices' | 'resetNodePipelineDefaults' | 'getCameraStatuses' | 'reconcileFromDisk' | 'getReconcileFromDiskStatus' | 'listTemplates' | 'saveTemplate' | 'updateTemplate' | 'deleteTemplate'>;
88
88
  readonly pipelineRunner: Pick<InferProvider<typeof pipelineRunnerCapability>, 'attachCamera' | 'reportMotion' | 'getLocalLoad' | 'getLocalMetrics' | 'getAllCameraMetrics' | 'getLocalCameras' | 'getNativeCrop' | 'runStatelessStep'>;
89
89
  readonly plateGallery: Pick<InferProvider<typeof plateGalleryCapability>, 'getPlateMedia' | 'searchPlates' | 'suggestPlateClusters' | 'correctPlateText' | 'deletePlate' | 'listVehicles' | 'createVehicle' | 'renameVehicle' | 'deleteVehicle' | 'listVehicleSamples' | 'removeVehicleSample' | 'assignPlate' | 'unassignPlate' | 'assignPlates' | 'unassignPlates'>;
90
- readonly recording: Pick<InferProvider<typeof recordingCapability>, 'getStorageUsage' | 'listOpsLog' | 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'refreshStorageLocationsForMigration' | 'startStorageMigrationMove' | 'getStorageMigrationMoveStatus' | 'cancelStorageMigrationMove' | 'relocateFootage' | 'listRelocateJobs' | 'getRelocateResidue' | 'reconcileLedgerAgainstDisk' | 'cancelRelocateJob' | 'planStorageRebalance' | 'startStorageRebalance'>;
90
+ readonly recording: Pick<InferProvider<typeof recordingCapability>, 'getStorageUsage' | 'listOpsLog' | 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'refreshStorageLocationsForMigration' | 'startStorageMigrationMove' | 'getStorageMigrationMoveStatus' | 'cancelStorageMigrationMove' | 'relocateFootage' | 'listRelocateJobs' | 'getRelocateResidue' | 'reconcileLedgerAgainstDisk' | 'cancelRelocateJob' | 'planStorageRebalance' | 'startStorageRebalance' | 'getPlacement' | 'setDevicePlacement'>;
91
91
  readonly recordingExport: Pick<InferProvider<typeof recordingExportCapability>, 'createExport' | 'getExport' | 'cancelExport' | 'deleteExport' | 'getDownloadUrl' | 'readExportBytes'>;
92
92
  readonly serverManagement: Pick<InferProvider<typeof serverManagementCapability>, 'getServerPackageStatus' | 'checkServerUpdate' | 'applyServerUpdate' | 'rollbackServerUpdate' | 'restartServer'>;
93
93
  readonly settingsStore: Pick<InferProvider<typeof settingsStoreCapability>, 'get' | 'set' | 'query' | 'insert' | 'insertMany' | 'update' | 'delete' | 'deleteWhere' | 'updateWhere' | 'count' | 'aggregate' | 'histogram' | 'isEmpty' | 'declareCollection'>;
94
94
  readonly storage: Pick<InferProvider<typeof storageCapability>, 'resolve' | 'write' | 'read' | 'exists' | 'list' | 'delete' | 'getAvailableSpace' | 'beginUpload' | 'writeChunk' | 'finalizeUpload' | 'abortUpload' | 'beginDownload' | 'readChunk' | 'endDownload' | 'listLocations' | 'getDefaultLocation' | 'listLocationDeclarations' | 'upsertLocation' | 'deleteLocation' | 'testLocation' | 'listProviders' | 'testConfig'>;
95
- readonly storageMigration: Pick<InferProvider<typeof storageMigrationCapability>, 'plan' | 'start' | 'status' | 'cancel' | 'movers' | 'residue' | 'drain'>;
95
+ readonly storageMigration: Pick<InferProvider<typeof storageMigrationCapability>, 'plan' | 'start' | 'status' | 'cancel' | 'movers' | 'residue' | 'drain' | 'cleanupStart' | 'cleanupStatus' | 'cleanupCancel' | 'history'>;
96
96
  readonly streamBroker: Pick<InferProvider<typeof streamBrokerCapability>, 'fetchEventMedia' | 'listAllCameraStreams' | 'listAllProfileSlots' | 'getBrokerStats' | 'probeStream' | 'listClients' | 'killClient' | 'getStreamUrl' | 'getStreamWithCodec' | 'releaseStreamWithCodec' | 'acquireEgressTranscode' | 'releaseEgressTranscode' | 'subscribeAudioChunks' | 'pullAudioChunks' | 'unsubscribeAudioChunks' | 'subscribeFrames' | 'pullFrameHandles' | 'unsubscribeFrames' | 'setPreBufferDuration' | 'getPreBufferInfo' | 'getRtspPort' | 'getAllRtspEntries' | 'getRtspEntry' | 'regenerateRtspToken' | 'setRtspEnabled' | 'isRtspEnabled'>;
97
97
  readonly system: Pick<InferProvider<typeof systemCapability>, 'info' | 'health' | 'featureFlags' | 'networkAddresses' | 'getRetentionConfig' | 'setRetentionConfig' | 'forceRetentionCleanup' | 'getSiteLocation' | 'setSiteLocation' | 'detectSiteLocation' | 'getRequestCensus' | 'getLoadContributions' | 'getFailureContributions' | 'getLoggingSettings' | 'setLoggingSettings'>;
98
98
  readonly terminalSession: Pick<InferProvider<typeof terminalSessionCapability>, 'listProfiles' | 'listInstances' | 'createInstance' | 'updateInstance' | 'deleteInstance' | 'setInstanceEnabled' | 'listLegacyCameras' | 'adoptLegacyMonitor' | 'listSessions' | 'openSession' | 'resize' | 'pullOutput' | 'writeInput' | 'close'>;