@camstack/types 1.2.130 → 1.2.131

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
@@ -2861,6 +2861,51 @@ export declare const pipelineAnalyticsCapability: {
2861
2861
  detail: z.ZodNullable<z.ZodString>;
2862
2862
  actor: z.ZodString;
2863
2863
  }, z.core.$strip>>>, "query">;
2864
+ /**
2865
+ * Reclaim the standing debug-media backlog (motion-visit stills + track
2866
+ * filmstrips). DETACHED: returns `{ started }` immediately. The pass is
2867
+ * tens of minutes; awaiting it is a timeout, not a verdict. Dry-run unless
2868
+ * `mode: 'reclaim'`. Poll `getMediaReclaimStatus`.
2869
+ */
2870
+ readonly reclaimDebugMedia: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
2871
+ mode: z.ZodDefault<z.ZodEnum<{
2872
+ report: "report";
2873
+ reclaim: "reclaim";
2874
+ }>>;
2875
+ scopes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2876
+ "motion-still": "motion-still";
2877
+ "track-filmstrip": "track-filmstrip";
2878
+ }>>>;
2879
+ deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
2880
+ restart: z.ZodOptional<z.ZodBoolean>;
2881
+ pageSize: z.ZodOptional<z.ZodNumber>;
2882
+ maxRowsPerDevice: z.ZodOptional<z.ZodNumber>;
2883
+ maxReclaimPerDevice: z.ZodOptional<z.ZodNumber>;
2884
+ maxBytesPerRun: z.ZodOptional<z.ZodNumber>;
2885
+ budgetMinutes: z.ZodOptional<z.ZodNumber>;
2886
+ throttleBytesPerSec: z.ZodOptional<z.ZodNumber>;
2887
+ graceMinutes: z.ZodOptional<z.ZodNumber>;
2888
+ }, z.core.$strip>, z.ZodObject<{
2889
+ started: z.ZodBoolean;
2890
+ alreadyRunning: z.ZodBoolean;
2891
+ }, z.core.$strip>, "mutation">;
2892
+ readonly getMediaReclaimStatus: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
2893
+ running: z.ZodBoolean;
2894
+ mode: z.ZodNullable<z.ZodEnum<{
2895
+ report: "report";
2896
+ reclaim: "reclaim";
2897
+ }>>;
2898
+ totalExamined: z.ZodNumber;
2899
+ totalEligible: z.ZodNumber;
2900
+ totalReclaimed: z.ZodNumber;
2901
+ totalBytesReclaimed: z.ZodNumber;
2902
+ totalRefused: z.ZodNumber;
2903
+ devicesDone: z.ZodNumber;
2904
+ complete: z.ZodNullable<z.ZodBoolean>;
2905
+ startedAtMs: z.ZodNullable<z.ZodNumber>;
2906
+ finishedAtMs: z.ZodNullable<z.ZodNumber>;
2907
+ error: z.ZodNullable<z.ZodString>;
2908
+ }, z.core.$strip>, "query">;
2864
2909
  /**
2865
2910
  * The CHEAP QUESTION, asked before any media moves: how big is the dataset
2866
2911
  * the marked (`markForTrain`) tracks would produce?
@@ -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;
@@ -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: 994 method paths across 126 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: 351 methods carry a device reference, of which
9
+ * Coverage: 352 methods carry a device reference, of which
10
10
  * 130 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-BaEgqJNv.js");
3
- const require_sleep = require("./sleep-DIg3xuEw.js");
3
+ const require_sleep = require("./sleep-CqVyhcl-.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");
@@ -18941,6 +18941,47 @@ var RebuildStatusSchema = zod.z.object({
18941
18941
  /** Present when the pass ended by throwing. */
18942
18942
  error: zod.z.string().nullable()
18943
18943
  });
18944
+ /**
18945
+ * Acknowledgement that a debug-media reclaim STARTED.
18946
+ *
18947
+ * The pass is paced at ~2 MB/s over a standing 100 GB — tens of minutes — so
18948
+ * it runs detached and this returns immediately. Awaiting it is how the
18949
+ * `addons.custom` door hit the 60 s UDS deadline while the walk carried on
18950
+ * with no status. Poll {@link pipelineAnalyticsCapability.methods.getMediaReclaimStatus}.
18951
+ */
18952
+ var MediaReclaimStartResultSchema = zod.z.object({
18953
+ started: zod.z.boolean(),
18954
+ /** True when a pass was already running; the new request is ignored. */
18955
+ alreadyRunning: zod.z.boolean()
18956
+ });
18957
+ var MediaReclaimInputSchema = zod.z.object({
18958
+ mode: zod.z.enum(["report", "reclaim"]).default("report"),
18959
+ scopes: zod.z.array(zod.z.enum(["motion-still", "track-filmstrip"])).min(1).optional(),
18960
+ deviceIds: zod.z.array(zod.z.number().int()).min(1).optional(),
18961
+ restart: zod.z.boolean().optional(),
18962
+ pageSize: zod.z.number().int().min(50).max(5e3).optional(),
18963
+ maxRowsPerDevice: zod.z.number().int().min(1).max(5e5).optional(),
18964
+ maxReclaimPerDevice: zod.z.number().int().min(1).max(5e5).optional(),
18965
+ maxBytesPerRun: zod.z.number().int().min(1).optional(),
18966
+ budgetMinutes: zod.z.number().int().min(1).max(720).optional(),
18967
+ throttleBytesPerSec: zod.z.number().int().min(64 * 1024).optional(),
18968
+ graceMinutes: zod.z.number().int().min(1).max(10080).optional()
18969
+ });
18970
+ var MediaReclaimStatusSchema = zod.z.object({
18971
+ running: zod.z.boolean(),
18972
+ mode: zod.z.enum(["report", "reclaim"]).nullable(),
18973
+ totalExamined: zod.z.number(),
18974
+ totalEligible: zod.z.number(),
18975
+ totalReclaimed: zod.z.number(),
18976
+ totalBytesReclaimed: zod.z.number(),
18977
+ totalRefused: zod.z.number(),
18978
+ /** Device+scope windows finished in this pass. */
18979
+ devicesDone: zod.z.number(),
18980
+ complete: zod.z.boolean().nullable(),
18981
+ startedAtMs: zod.z.number().nullable(),
18982
+ finishedAtMs: zod.z.number().nullable(),
18983
+ error: zod.z.string().nullable()
18984
+ });
18944
18985
  var ReplayFrameInputSchema = zod.z.object({
18945
18986
  timestamp: zod.z.number(),
18946
18987
  frame: PipelineRunResultBridge
@@ -19364,6 +19405,20 @@ var pipelineAnalyticsCapability = {
19364
19405
  auth: "admin"
19365
19406
  }),
19366
19407
  /**
19408
+ * Reclaim the standing debug-media backlog (motion-visit stills + track
19409
+ * filmstrips). DETACHED: returns `{ started }` immediately. The pass is
19410
+ * tens of minutes; awaiting it is a timeout, not a verdict. Dry-run unless
19411
+ * `mode: 'reclaim'`. Poll `getMediaReclaimStatus`.
19412
+ */
19413
+ reclaimDebugMedia: require_sleep.method(MediaReclaimInputSchema, MediaReclaimStartResultSchema, {
19414
+ kind: "mutation",
19415
+ auth: "admin"
19416
+ }),
19417
+ getMediaReclaimStatus: require_sleep.method(zod.z.object({}), MediaReclaimStatusSchema, {
19418
+ kind: "query",
19419
+ auth: "admin"
19420
+ }),
19421
+ /**
19367
19422
  * The CHEAP QUESTION, asked before any media moves: how big is the dataset
19368
19423
  * the marked (`markForTrain`) tracks would produce?
19369
19424
  *
@@ -41855,6 +41910,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
41855
41910
  addonId: null,
41856
41911
  access: "view"
41857
41912
  },
41913
+ "pipelineAnalytics.getMediaReclaimStatus": {
41914
+ capName: "pipeline-analytics",
41915
+ capScope: "device",
41916
+ addonId: null,
41917
+ access: "view"
41918
+ },
41858
41919
  "pipelineAnalytics.getMotionEvents": {
41859
41920
  capName: "pipeline-analytics",
41860
41921
  capScope: "device",
@@ -42029,6 +42090,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
42029
42090
  addonId: null,
42030
42091
  access: "create"
42031
42092
  },
42093
+ "pipelineAnalytics.reclaimDebugMedia": {
42094
+ capName: "pipeline-analytics",
42095
+ capScope: "device",
42096
+ addonId: null,
42097
+ access: "create"
42098
+ },
42032
42099
  "pipelineAnalytics.reconcileFromDisk": {
42033
42100
  capName: "pipeline-analytics",
42034
42101
  capScope: "device",
@@ -45908,6 +45975,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
45908
45975
  form: "single",
45909
45976
  optional: true
45910
45977
  }],
45978
+ "pipelineAnalytics.reclaimDebugMedia": [{
45979
+ name: "deviceIds",
45980
+ form: "array",
45981
+ optional: true
45982
+ }],
45911
45983
  "pipelineAnalytics.reconcileFromDisk": [{
45912
45984
  name: "deviceId",
45913
45985
  form: "single",
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as EventCategory } from "./event-category-BZL-fdNj.mjs";
2
- import { $ as DecodedFrameSchema, A as event, B as ReadinessRegistry, C as DeviceFeature, Ct as isEvent, D as DEFAULT_RUNTIME_STATE_DURABILITY, Dt as collectHydratedFieldValues, E as adminUiCapability, Et as collectHydratedFieldEntries, F as systemMethod, G as BrokerStatsSchema, H as emitDownForOwnedCaps, I as CAP_NODE_PIN_CONTEXT_KEY, J as CamProfileSchema, K as BrokerStatusSchema, L as nodePin, M as isDeviceConfigCap, N as method, O as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Ot as hydrateSchema, P as resolveCapMount, Q as DecodedAudioChunkSchema, R as readNodePin, S as ChargingStatus, St as emitReadiness, T as DeviceType, Tt as WELL_KNOWN_TAB_MAP, U as readinessKey, V as ReadinessTimeoutError, W as scopeKey, X as CamStreamResolutionSchema, Y as CamStreamKindSchema, Z as CameraStreamSchema, _ as createMirrorSource, _t as DisposerChain, a as asJsonObject, at as ProfileSlotStatusSchema, b as deviceOpsCapability, bt as createDurableState, c as parseJsonArray, ct as SubscribeAudioChunksInputSchema, d as BOOT_RECOVERY_BACKOFF_MS, dt as SubscribeFramesResultSchema, et as EncodedPacketSchema, f as DEVICE_SCOPED_CAPS, ft as makeProfileBrokerId, g as createLazyTrpcSource, gt as DATAPLANE_SECRET_HEADER, h as createEventBusSliceSource, ht as selectAssignedProfileSlots, i as asJsonArray, it as ProfileSlotSchema, j as expandCapMethods, k as DEVICE_STATUS_METHOD, kt as resolveHydratedFieldValue, l as parseJsonObject, lt as SubscribeAudioChunksResultSchema, m as createDeviceProxy, mt as parseProfileBrokerId, n as sleepCancellable, nt as FrameHandleSchema, o as asNumber, ot as StreamSourceEntrySchema, p as isDeviceScopedCap, pt as makeSourceBrokerId, q as CAM_PROFILE_ORDER, r as asBoolean, rt as ProfileRtspEntrySchema, s as asString, st as StreamSourceSchema, t as sleep, tt as FrameHandleFormatSchema, u as parseJsonUnknown, ut as SubscribeFramesInputSchema, v as createSliceHandle, vt as BaseAddon, w as DeviceRole, wt as WELL_KNOWN_TABS, x as viewerUiCapability, xt as createEvent, y as RawStateResultSchema, yt as normalizeAddonInitResult, z as toNodeId } from "./sleep-DcA-CgqX.mjs";
2
+ import { $ as DecodedFrameSchema, A as event, B as ReadinessRegistry, C as DeviceFeature, Ct as isEvent, D as DEFAULT_RUNTIME_STATE_DURABILITY, Dt as collectHydratedFieldValues, E as adminUiCapability, Et as collectHydratedFieldEntries, F as systemMethod, G as BrokerStatsSchema, H as emitDownForOwnedCaps, I as CAP_NODE_PIN_CONTEXT_KEY, J as CamProfileSchema, K as BrokerStatusSchema, L as nodePin, M as isDeviceConfigCap, N as method, O as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Ot as hydrateSchema, P as resolveCapMount, Q as DecodedAudioChunkSchema, R as readNodePin, S as ChargingStatus, St as emitReadiness, T as DeviceType, Tt as WELL_KNOWN_TAB_MAP, U as readinessKey, V as ReadinessTimeoutError, W as scopeKey, X as CamStreamResolutionSchema, Y as CamStreamKindSchema, Z as CameraStreamSchema, _ as createMirrorSource, _t as DisposerChain, a as asJsonObject, at as ProfileSlotStatusSchema, b as deviceOpsCapability, bt as createDurableState, c as parseJsonArray, ct as SubscribeAudioChunksInputSchema, d as BOOT_RECOVERY_BACKOFF_MS, dt as SubscribeFramesResultSchema, et as EncodedPacketSchema, f as DEVICE_SCOPED_CAPS, ft as makeProfileBrokerId, g as createLazyTrpcSource, gt as DATAPLANE_SECRET_HEADER, h as createEventBusSliceSource, ht as selectAssignedProfileSlots, i as asJsonArray, it as ProfileSlotSchema, j as expandCapMethods, k as DEVICE_STATUS_METHOD, kt as resolveHydratedFieldValue, l as parseJsonObject, lt as SubscribeAudioChunksResultSchema, m as createDeviceProxy, mt as parseProfileBrokerId, n as sleepCancellable, nt as FrameHandleSchema, o as asNumber, ot as StreamSourceEntrySchema, p as isDeviceScopedCap, pt as makeSourceBrokerId, q as CAM_PROFILE_ORDER, r as asBoolean, rt as ProfileRtspEntrySchema, s as asString, st as StreamSourceSchema, t as sleep, tt as FrameHandleFormatSchema, u as parseJsonUnknown, ut as SubscribeFramesInputSchema, v as createSliceHandle, vt as BaseAddon, w as DeviceRole, wt as WELL_KNOWN_TABS, x as viewerUiCapability, xt as createEvent, y as RawStateResultSchema, yt as normalizeAddonInitResult, z as toNodeId } from "./sleep-BBI0PDUc.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";
@@ -18940,6 +18940,47 @@ var RebuildStatusSchema = z.object({
18940
18940
  /** Present when the pass ended by throwing. */
18941
18941
  error: z.string().nullable()
18942
18942
  });
18943
+ /**
18944
+ * Acknowledgement that a debug-media reclaim STARTED.
18945
+ *
18946
+ * The pass is paced at ~2 MB/s over a standing 100 GB — tens of minutes — so
18947
+ * it runs detached and this returns immediately. Awaiting it is how the
18948
+ * `addons.custom` door hit the 60 s UDS deadline while the walk carried on
18949
+ * with no status. Poll {@link pipelineAnalyticsCapability.methods.getMediaReclaimStatus}.
18950
+ */
18951
+ var MediaReclaimStartResultSchema = z.object({
18952
+ started: z.boolean(),
18953
+ /** True when a pass was already running; the new request is ignored. */
18954
+ alreadyRunning: z.boolean()
18955
+ });
18956
+ var MediaReclaimInputSchema = z.object({
18957
+ mode: z.enum(["report", "reclaim"]).default("report"),
18958
+ scopes: z.array(z.enum(["motion-still", "track-filmstrip"])).min(1).optional(),
18959
+ deviceIds: z.array(z.number().int()).min(1).optional(),
18960
+ restart: z.boolean().optional(),
18961
+ pageSize: z.number().int().min(50).max(5e3).optional(),
18962
+ maxRowsPerDevice: z.number().int().min(1).max(5e5).optional(),
18963
+ maxReclaimPerDevice: z.number().int().min(1).max(5e5).optional(),
18964
+ maxBytesPerRun: z.number().int().min(1).optional(),
18965
+ budgetMinutes: z.number().int().min(1).max(720).optional(),
18966
+ throttleBytesPerSec: z.number().int().min(64 * 1024).optional(),
18967
+ graceMinutes: z.number().int().min(1).max(10080).optional()
18968
+ });
18969
+ var MediaReclaimStatusSchema = z.object({
18970
+ running: z.boolean(),
18971
+ mode: z.enum(["report", "reclaim"]).nullable(),
18972
+ totalExamined: z.number(),
18973
+ totalEligible: z.number(),
18974
+ totalReclaimed: z.number(),
18975
+ totalBytesReclaimed: z.number(),
18976
+ totalRefused: z.number(),
18977
+ /** Device+scope windows finished in this pass. */
18978
+ devicesDone: z.number(),
18979
+ complete: z.boolean().nullable(),
18980
+ startedAtMs: z.number().nullable(),
18981
+ finishedAtMs: z.number().nullable(),
18982
+ error: z.string().nullable()
18983
+ });
18943
18984
  var ReplayFrameInputSchema = z.object({
18944
18985
  timestamp: z.number(),
18945
18986
  frame: PipelineRunResultBridge
@@ -19363,6 +19404,20 @@ var pipelineAnalyticsCapability = {
19363
19404
  auth: "admin"
19364
19405
  }),
19365
19406
  /**
19407
+ * Reclaim the standing debug-media backlog (motion-visit stills + track
19408
+ * filmstrips). DETACHED: returns `{ started }` immediately. The pass is
19409
+ * tens of minutes; awaiting it is a timeout, not a verdict. Dry-run unless
19410
+ * `mode: 'reclaim'`. Poll `getMediaReclaimStatus`.
19411
+ */
19412
+ reclaimDebugMedia: method(MediaReclaimInputSchema, MediaReclaimStartResultSchema, {
19413
+ kind: "mutation",
19414
+ auth: "admin"
19415
+ }),
19416
+ getMediaReclaimStatus: method(z.object({}), MediaReclaimStatusSchema, {
19417
+ kind: "query",
19418
+ auth: "admin"
19419
+ }),
19420
+ /**
19366
19421
  * The CHEAP QUESTION, asked before any media moves: how big is the dataset
19367
19422
  * the marked (`markForTrain`) tracks would produce?
19368
19423
  *
@@ -41847,6 +41902,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
41847
41902
  addonId: null,
41848
41903
  access: "view"
41849
41904
  },
41905
+ "pipelineAnalytics.getMediaReclaimStatus": {
41906
+ capName: "pipeline-analytics",
41907
+ capScope: "device",
41908
+ addonId: null,
41909
+ access: "view"
41910
+ },
41850
41911
  "pipelineAnalytics.getMotionEvents": {
41851
41912
  capName: "pipeline-analytics",
41852
41913
  capScope: "device",
@@ -42021,6 +42082,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
42021
42082
  addonId: null,
42022
42083
  access: "create"
42023
42084
  },
42085
+ "pipelineAnalytics.reclaimDebugMedia": {
42086
+ capName: "pipeline-analytics",
42087
+ capScope: "device",
42088
+ addonId: null,
42089
+ access: "create"
42090
+ },
42024
42091
  "pipelineAnalytics.reconcileFromDisk": {
42025
42092
  capName: "pipeline-analytics",
42026
42093
  capScope: "device",
@@ -45900,6 +45967,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
45900
45967
  form: "single",
45901
45968
  optional: true
45902
45969
  }],
45970
+ "pipelineAnalytics.reclaimDebugMedia": [{
45971
+ name: "deviceIds",
45972
+ form: "array",
45973
+ optional: true
45974
+ }],
45903
45975
  "pipelineAnalytics.reconcileFromDisk": [{
45904
45976
  name: "deviceId",
45905
45977
  form: "single",
@@ -3452,6 +3452,8 @@ function createDeviceProxy(api, binding, opts) {
3452
3452
  listRelocateMediaJobs: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listRelocateMediaJobs", "query", input),
3453
3453
  cancelRelocateMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "cancelRelocateMedia", "mutation", input),
3454
3454
  listOpsLog: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listOpsLog", "query", input),
3455
+ reclaimDebugMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "reclaimDebugMedia", "mutation", input),
3456
+ getMediaReclaimStatus: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getMediaReclaimStatus", "query", input),
3455
3457
  getTrainingExportSummary: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getTrainingExportSummary", "query", input),
3456
3458
  getTrainingExportUrl: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getTrainingExportUrl", "query", input),
3457
3459
  listRetrainStaging: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listRetrainStaging", "query", input),
@@ -3452,6 +3452,8 @@ function createDeviceProxy(api, binding, opts) {
3452
3452
  listRelocateMediaJobs: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listRelocateMediaJobs", "query", input),
3453
3453
  cancelRelocateMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "cancelRelocateMedia", "mutation", input),
3454
3454
  listOpsLog: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listOpsLog", "query", input),
3455
+ reclaimDebugMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "reclaimDebugMedia", "mutation", input),
3456
+ getMediaReclaimStatus: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getMediaReclaimStatus", "query", input),
3455
3457
  getTrainingExportSummary: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getTrainingExportSummary", "query", input),
3456
3458
  getTrainingExportUrl: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getTrainingExportUrl", "query", input),
3457
3459
  listRetrainStaging: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listRetrainStaging", "query", input),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.130",
3
+ "version": "1.2.131",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",