@camstack/types 1.2.129 → 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-D5821NGq.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, 54 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 } },
@@ -126,11 +126,13 @@ var CAP_INPUT_DEFAULTS = Object.freeze({
126
126
  "pipeline-analytics": {
127
127
  "getAudioEvents": { "limit": 1e3 },
128
128
  "getKeyEvents": { "limit": 50 },
129
+ "getKeyEventsBatch": { "limit": 50 },
129
130
  "getMotionEvents": { "limit": 1e3 },
130
131
  "getObjectEvents": { "limit": 1e3 },
131
132
  "getSensorEvents": { "limit": 1e3 },
132
133
  "listGroups": { "limit": 40 },
133
134
  "listRecentTracks": { "limit": 200 },
135
+ "reclaimDebugMedia": { "mode": "report" },
134
136
  "searchObjectEvents": {
135
137
  "limit": 50,
136
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-BS40IUZZ.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, 54 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 } },
@@ -125,11 +125,13 @@ var CAP_INPUT_DEFAULTS = Object.freeze({
125
125
  "pipeline-analytics": {
126
126
  "getAudioEvents": { "limit": 1e3 },
127
127
  "getKeyEvents": { "limit": 50 },
128
+ "getKeyEventsBatch": { "limit": 50 },
128
129
  "getMotionEvents": { "limit": 1e3 },
129
130
  "getObjectEvents": { "limit": 1e3 },
130
131
  "getSensorEvents": { "limit": 1e3 },
131
132
  "listGroups": { "limit": 40 },
132
133
  "listRecentTracks": { "limit": 200 },
134
+ "reclaimDebugMedia": { "mode": "report" },
133
135
  "searchObjectEvents": {
134
136
  "limit": 50,
135
137
  "minScore": .2
@@ -82,7 +82,7 @@ export { NetworkAccessStatusSchema, NetworkEndpointSchema, networkAccessCapabili
82
82
  export { type Attachment, type AttachmentMediaType, AttachmentMediaTypeSchema, AttachmentSchema, type DiscoveredTarget, DiscoveredTargetSchema, type INotificationOutputProvider, type NotificationAction, type NotificationActionIcon, NotificationActionIconSchema, NotificationActionSchema, type NotificationFormat, NotificationFormatSchema, NotificationSchema, notificationOutputCapability, type RenderedAs, RenderedAsSchema, type SendResult, SendResultSchema, type Target, type TargetKind, type TargetKindCaps, TargetKindCapsSchema, type TargetKindLevel, TargetKindLevelSchema, TargetKindSchema, TargetSchema, type TestResult, TestResultSchema, } from './notification-output.cap.js';
83
83
  export { type INotificationRulesProvider, NC_ALARM_SYSTEM_EVENT_KINDS, NC_AUDIO_DBFS_FLOOR, NC_AUTHORABLE_SYSTEM_EVENT_KINDS, NC_CONDITION_CATALOG, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, NC_CONFIRM_DEFAULT_TIMEOUT_MS, NC_CONFIRM_MAX_TIMEOUT_MS, NC_CONFIRM_MIN_TIMEOUT_MS, NC_DEFAULT_SNOOZE_MINUTES, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_SNOOZE_MAX_MINUTES, type NcAlarmConfig, NcAlarmConfigSchema, type NcAlarmModeCoverage, NcAlarmModeCoverageSchema, type NcAlarmSettings, type NcAlarmSettingsPatch, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, type NcAlarmSkippedDevice, NcAlarmSkippedDeviceSchema, type NcAlarmSkipReason, NcAlarmSkipReasonSchema, type NcAudioCondition, NcAudioConditionSchema, type NcConditionDescriptor, NcConditionDescriptorSchema, type NcConditions, NcConditionsSchema, type NcConfirm, type NcConfirmExpect, NcConfirmExpectSchema, NcConfirmSchema, type NcCrossing, NcCrossingSchema, type NcDelivery, NcDeliverySchema, type NcDeviceStateCondition, NcDeviceStateConditionSchema, type NcHistoryEntry, NcHistoryEntrySchema, type NcHistoryFilter, NcHistoryFilterSchema, type NcHistoryRecordKind, NcHistoryRecordKindSchema, type NcHistoryStatus, NcHistoryStatusSchema, type NcHistorySubject, NcHistorySubjectSchema, type NcMediaFrame, NcMediaFrameSchema, type NcMediaPolicy, NcMediaPolicySchema, type NcOccupancyCondition, NcOccupancyConditionSchema, type NcPlateMatcher, NcPlateMatcherSchema, type NcRule, type NcRuleAction, NcRuleActionSchema, type NcRuleActionSequence, NcRuleActionSequenceSchema, type NcRuleActions, NcRuleActionsSchema, type NcRuleInput, NcRuleInputSchema, type NcRuleNotificationButton, NcRuleNotificationButtonSchema, type NcRulePatch, NcRulePatchSchema, NcRuleSchema, type NcRuleTarget, NcRuleTargetSchema, type NcSceneCondition, NcSceneConditionSchema, type NcSchedule, NcScheduleSchema, type NcScheduleWindow, NcScheduleWindowSchema, type NcSnooze, type NcSnoozeInput, NcSnoozeInputSchema, NcSnoozeSchema, type NcSnoozeScope, NcSnoozeScopeSchema, type NcSnoozeSuppressed, NcSnoozeSuppressedSchema, type NcSystemEventCondition, NcSystemEventConditionSchema, type NcSystemEventKind, NcSystemEventKindSchema, type NcTestResult, NcTestResultSchema, type NcThrottle, type NcThrottleGranularity, NcThrottleGranularitySchema, NcThrottleSchema, type NcZoneCondition, NcZoneConditionSchema, notificationRulesCapability, } from './notification-rules.cap.js';
84
84
  export { type IOauthIntegrationProvider, type OauthIntegrationDescriptor, OauthIntegrationDescriptorSchema, oauthIntegrationCapability, } from './oauth-integration.cap.js';
85
- export { type AnalyticsGroupDetail, AnalyticsGroupDetailSchema, type AnalyticsGroupMember, AnalyticsGroupMemberSchema, type AnalyticsGroupRecord, AnalyticsGroupRecordSchema, type AudioEvent, AudioEventSchema, type DetectionSource, DetectionSourceSchema, type EventKind, type EventKindCategory, EventKindCategorySchema, type EventKindDescriptor, EventKindDescriptorSchema, type EventKindIcon, EventKindIconSchema, EventKindSchema, type EventKindsForDevice, EventKindsForDeviceSchema, type EventMediaKindBreakdown, type EventMediaKindFootprint, type EventPruneCounts, type EventStoreDeviceFootprint, type EventStoreFootprint, type IPipelineAnalyticsProvider, type KeyEvent, KeyEventSchema, type LabelAttribution, LabelAttributionSchema, type LabelTier, LabelTierSchema, type ListGroupsPage, ListGroupsPageSchema, type ListGroupsQuery, ListGroupsQueryInput, type MediaFile, type MediaFileBytes, type MediaFileInfo, MediaFileInfoSchema, type MediaFileKind, MediaFileKindEnum, type MediaFileRef, MediaFileRefSchema, MediaFileSchema, type MotionEvent, MotionEventSchema, type ObjectEvent, ObjectEventSchema, pipelineAnalyticsCapability, type RecentTracksPage, RecentTracksPageSchema, type RecentTracksQuery, RecentTracksQueryInput, type RetrainAnnotation, type RetrainAnnotationDraft, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, type RetrainAssistResult, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, type RetrainFrame, type RetrainFrameCandidate, RetrainFrameCandidateSchema, type RetrainFrameList, RetrainFrameListSchema, RetrainFrameSchema, type RetrainFrameSelection, RetrainFrameSelectionSchema, type RetrainMacroClass, RetrainMacroClassSchema, type RetrainStatus, RetrainStatusSchema, type RetrainTrack, RetrainTrackSchema, type RetrainTransitionResult, RetrainTransitionResultSchema, type ScoredObjectEvent, ScoredObjectEventSchema, type SensorEvent, SensorEventSchema, type Track, type TrackCascadeCounts, TrackCascadeCountsSchema, type TrackEnvelope, TrackEnvelopeSchema, TrackedDetectionSchema, type TrackFlags, type TrackFlagsPatch, TrackFlagsPatchSchema, TrackFlagsSchema, type TrackProjection, TrackProjectionSchema, TrackSchema, type TrackSource, TrackSourceSchema, type TrackState, TrackStateSchema, type TrackZoneFilter, TrackZoneFilterSchema, type TrainingExportDeviceTotals, TrainingExportDeviceTotalsSchema, type TrainingExportSummary, TrainingExportSummarySchema, type ZoneCrossing, type ZoneCrossingDirection, ZoneCrossingDirectionSchema, ZoneCrossingSchema, } from './pipeline-analytics.cap.js';
85
+ export { type AnalyticsGroupDetail, AnalyticsGroupDetailSchema, type AnalyticsGroupMember, AnalyticsGroupMemberSchema, type AnalyticsGroupRecord, AnalyticsGroupRecordSchema, type AudioEvent, AudioEventSchema, type DetectionSource, DetectionSourceSchema, type EventKind, type EventKindCategory, EventKindCategorySchema, type EventKindDescriptor, EventKindDescriptorSchema, type EventKindIcon, EventKindIconSchema, EventKindSchema, type EventKindsForDevice, EventKindsForDeviceSchema, type EventMediaKindBreakdown, type EventMediaKindFootprint, type EventPruneCounts, type EventStoreDeviceFootprint, type EventStoreFootprint, type IPipelineAnalyticsProvider, type KeyEvent, KeyEventSchema, type KeyEventsForDevice, type LabelAttribution, LabelAttributionSchema, type LabelTier, LabelTierSchema, type ListGroupsPage, ListGroupsPageSchema, type ListGroupsQuery, ListGroupsQueryInput, type MediaFile, type MediaFileBytes, type MediaFileInfo, MediaFileInfoSchema, type MediaFileKind, MediaFileKindEnum, type MediaFileRef, MediaFileRefSchema, MediaFileSchema, type MotionEvent, MotionEventSchema, type ObjectEvent, ObjectEventSchema, pipelineAnalyticsCapability, type RecentTracksPage, RecentTracksPageSchema, type RecentTracksQuery, RecentTracksQueryInput, type RetrainAnnotation, type RetrainAnnotationDraft, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, type RetrainAssistResult, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, type RetrainFrame, type RetrainFrameCandidate, RetrainFrameCandidateSchema, type RetrainFrameList, RetrainFrameListSchema, RetrainFrameSchema, type RetrainFrameSelection, RetrainFrameSelectionSchema, type RetrainMacroClass, RetrainMacroClassSchema, type RetrainStatus, RetrainStatusSchema, type RetrainTrack, RetrainTrackSchema, type RetrainTransitionResult, RetrainTransitionResultSchema, type ScoredObjectEvent, ScoredObjectEventSchema, type SensorEvent, SensorEventSchema, type Track, type TrackCascadeCounts, TrackCascadeCountsSchema, type TrackEnvelope, TrackEnvelopeSchema, TrackedDetectionSchema, type TrackFlags, type TrackFlagsPatch, TrackFlagsPatchSchema, TrackFlagsSchema, type TrackProjection, TrackProjectionSchema, TrackSchema, type TrackSource, TrackSourceSchema, type TrackState, TrackStateSchema, type TrackZoneFilter, TrackZoneFilterSchema, type TrainingExportDeviceTotals, TrainingExportDeviceTotalsSchema, type TrainingExportSummary, TrainingExportSummarySchema, type ZoneCrossing, type ZoneCrossingDirection, ZoneCrossingDirectionSchema, ZoneCrossingSchema, } from './pipeline-analytics.cap.js';
86
86
  export type { NativeCropRef, PipelineStepInputOutput, PipelineValidationIssue, PipelineValidationResult, } from './pipeline-executor.cap.js';
87
87
  export { ModelSubstitutionSchema, NativeCropRefSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, pipelineExecutorCapability, } from './pipeline-executor.cap.js';
88
88
  export type { CameraAssignmentStatus, CameraAudioStatus, CameraBrokerProfile, CameraBrokerStatus, CameraDecoderShm, CameraDecoderStatus, CameraDetectionPhase, CameraDetectionProvisioning, CameraDetectionProvisioningState, CameraDetectionStatus, CameraMotionStatus, CameraRecordingMode, CameraRecordingStatus, CameraSourceStatus, CameraSourceStream, CameraStatus, CameraStatusDegradation, CameraStatusDegradationReason, CameraStatusStage, DiskReconcileJob, InferenceDeviceExclusionReason, IngestOwner, NodeInferenceDevice, NodeInferenceDevices, } from './pipeline-orchestrator.cap.js';
@@ -187,7 +187,7 @@ export { type IPtzAutotrackProvider, type PtzAutotrackRuntimeState, PtzAutotrack
187
187
  export { type IRebootProvider, rebootCapability } from './reboot.cap.js';
188
188
  export { type IRecordingProvider, type LocateSegmentResult, LocateSegmentResultSchema, type ReadGopBytesResult, ReadGopBytesResultSchema, type ReadSegmentBytesResult, ReadSegmentBytesResultSchema, type ReadWindowBytesResult, ReadWindowBytesResultSchema, type RecordingAvailability, RecordingAvailabilitySchema, type RecordingDays, RecordingDaysSchema, type RecordingDeviceUsage, RecordingDeviceUsageSchema, type RecordingLocationUsage, RecordingLocationUsageSchema, type RecordingManifest, RecordingManifestSchema, RecordingRangeSchema, type RecordingRebalanceInput, RecordingRebalanceInputSchema, type RecordingRebalanceMove, RecordingRebalanceMoveSchema, type RecordingRebalancePlan, RecordingRebalancePlanSchema, type RecordingRebalanceSkip, type RecordingRebalanceSkipReason, RecordingRebalanceSkipReasonSchema, RecordingRebalanceSkipSchema, type RecordingStatus, RecordingStatusSchema, type RecordingStorageUsage, RecordingStorageUsageSchema, recordingCapability, } from './recording.cap.js';
189
189
  export { EXPORT_DENSE_MAX_RANGES, type ExportBytes, ExportBytesSchema, type ExportDense, type ExportDenseRange, ExportDenseRangeSchema, ExportDenseSchema, type ExportDownload, ExportDownloadSchema, type ExportOptions, ExportOptionsSchema, type ExportRecord, ExportRecordSchema, ExportSpeedSchema, type ExportState, ExportStateSchema, ExportTimelapseSchema, type IRecordingExportProvider, RECORDING_EXPORT_MAX_READ_BYTES, recordingExportCapability, } from './recording-export.cap.js';
190
- export { type ISceneMonitorProvider, SCENE_CONDITIONS, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, SCENE_DEFAULT_ANCHOR_THRESHOLD, SCENE_DEFAULT_CHECK_INTERVAL_SEC, SCENE_DEFAULT_OBSERVATION_SPACING_SEC, SCENE_DEFAULT_QUIET_SECONDS, SCENE_DEFAULT_UNCOVERED_POLICY, SCENE_DIVERGED, SCENE_RESET_RECAPTURES, type SceneCheck, SceneCheckSchema, type SceneCondition, SceneConditionSchema, type SceneConfirm, SceneConfirmSchema, type SceneMonitor, SceneMonitorSchema, type SceneMonitorState, SceneMonitorStateSchema, type SceneMonitorStatus, SceneMonitorStatusSchema, type SceneReference, SceneReferenceSchema, type SceneUnavailable, SceneUnavailableSchema, type SceneUncoveredPolicy, SceneUncoveredPolicySchema, type SceneVerdict, SceneVerdictSchema, sceneMonitorCapability, } from './scene-monitor.cap.js';
190
+ export { type ISceneMonitorProvider, SCENE_CONDITIONS, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, SCENE_DEFAULT_ANCHOR_THRESHOLD, SCENE_DEFAULT_CHECK_INTERVAL_SEC, SCENE_DEFAULT_OBSERVATION_SPACING_SEC, SCENE_DEFAULT_QUIET_SECONDS, SCENE_DEFAULT_UNCOVERED_POLICY, SCENE_DIVERGED, SCENE_RESET_RECAPTURES, type SceneCheck, SceneCheckSchema, type SceneCondition, SceneConditionSchema, type SceneConfirm, SceneConfirmSchema, type SceneMonitor, SceneMonitorSchema, type SceneMonitorState, SceneMonitorStateSchema, type SceneMonitorStatus, type SceneMonitorStatusForDevice, SceneMonitorStatusForDeviceSchema, SceneMonitorStatusSchema, type SceneReference, SceneReferenceSchema, type SceneUnavailable, SceneUnavailableSchema, type SceneUncoveredPolicy, SceneUncoveredPolicySchema, type SceneVerdict, SceneVerdictSchema, sceneMonitorCapability, } from './scene-monitor.cap.js';
191
191
  export { type ZoneRule, type ZoneRuleMode, ZoneRuleModeEnum, ZoneRuleSchema, type ZoneRules, ZoneRulesArraySchema, } from './schemas/zone-rule.js';
192
192
  export { type IScriptRunnerProvider, type ScriptRunnerStatus, ScriptRunnerStatusSchema, scriptRunnerCapability, } from './script-runner.cap.js';
193
193
  export { type ISmokeProvider, type SmokeStatus, SmokeStatusSchema, smokeCapability, } from './smoke.cap.js';
@@ -206,7 +206,7 @@ export { type IValveProvider, type ValveState, ValveStateSchema, type ValveStatu
206
206
  export { type IVibrationProvider, type VibrationStatus, VibrationStatusSchema, vibrationCapability, } from './vibration.cap.js';
207
207
  export { type IWaterHeaterProvider, type WaterHeaterStatus, WaterHeaterStatusSchema, waterHeaterCapability, } from './water-heater.cap.js';
208
208
  export { type IWeatherProvider, type WeatherStatus, WeatherStatusSchema, weatherCapability, } from './weather.cap.js';
209
- export { type CameraOccupancySnapshot, type HistoryPoint, HistoryPointSchema, type HistoryResolution, HistoryResolutionEnum, type IZoneAnalyticsProvider, type PerScopeBreakdown, PerScopeBreakdownSchema, type StationaryObject, StationaryObjectSchema, type ZoneScopeBreakdown, ZoneScopeBreakdownSchema, zoneAnalyticsCapability, } from './zone-analytics.cap.js';
209
+ export { type CameraOccupancySnapshot, type CameraOccupancySnapshotForDevice, CameraOccupancySnapshotForDeviceSchema, type HistoryPoint, HistoryPointSchema, type HistoryResolution, HistoryResolutionEnum, type IZoneAnalyticsProvider, type PerScopeBreakdown, PerScopeBreakdownSchema, type StationaryObject, StationaryObjectSchema, type ZoneScopeBreakdown, ZoneScopeBreakdownSchema, zoneAnalyticsCapability, } from './zone-analytics.cap.js';
210
210
  export { type IZoneRulesProvider, type ZoneRuleStage, ZoneRuleStageEnum, zoneRulesCapability, } from './zone-rules.cap.js';
211
211
  export { type IZonesProvider, type PolygonPoint, PolygonPointSchema, type Zone, type ZoneKind, ZoneKindEnum, ZoneSchema, zonesCapability, } from './zones.cap.js';
212
212
  import type { IReadinessRegistry } from '../interfaces/readiness.js';
@@ -1302,6 +1302,53 @@ declare const KeyEventSchema: z.ZodObject<{
1302
1302
  className: z.ZodString;
1303
1303
  }, z.core.$strip>;
1304
1304
  export type KeyEvent = z.infer<typeof KeyEventSchema>;
1305
+ /**
1306
+ * One camera's key events in a batch answer.
1307
+ *
1308
+ * The row exists for every requested id. `getKeyEvents` degrades to `[]` on
1309
+ * error rather than throwing, so a camera whose store read failed and one with
1310
+ * no events in the window were ALREADY indistinguishable per camera — the
1311
+ * batch does not make that worse, and the row keeps the deviceId the single
1312
+ * method's output never carried (the caller used to stamp it from the fan-out
1313
+ * key, which only worked because there was one query per camera).
1314
+ */
1315
+ declare const KeyEventsForDeviceSchema: z.ZodObject<{
1316
+ deviceId: z.ZodNumber;
1317
+ events: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1318
+ retrainStatus: z.ZodOptional<z.ZodEnum<{
1319
+ none: "none";
1320
+ staging: "staging";
1321
+ trained: "trained";
1322
+ }>>;
1323
+ markForTrain: z.ZodOptional<z.ZodBoolean>;
1324
+ debug: z.ZodOptional<z.ZodBoolean>;
1325
+ favourited: z.ZodOptional<z.ZodBoolean>;
1326
+ importance: z.ZodNumber;
1327
+ bestEventId: z.ZodString;
1328
+ windowMs: z.ZodOptional<z.ZodNumber>;
1329
+ label: z.ZodOptional<z.ZodString>;
1330
+ labelScore: z.ZodOptional<z.ZodNumber>;
1331
+ labelMeta: z.ZodOptional<z.ZodObject<{
1332
+ stepId: z.ZodString;
1333
+ modelId: z.ZodOptional<z.ZodString>;
1334
+ decidedAt: z.ZodNumber;
1335
+ identityId: z.ZodOptional<z.ZodString>;
1336
+ }, z.core.$strip>>;
1337
+ subLabel: z.ZodOptional<z.ZodString>;
1338
+ subLabelScore: z.ZodOptional<z.ZodNumber>;
1339
+ subLabelMeta: z.ZodOptional<z.ZodObject<{
1340
+ stepId: z.ZodString;
1341
+ modelId: z.ZodOptional<z.ZodString>;
1342
+ decidedAt: z.ZodNumber;
1343
+ identityId: z.ZodOptional<z.ZodString>;
1344
+ }, z.core.$strip>>;
1345
+ id: z.ZodString;
1346
+ trackId: z.ZodString;
1347
+ timestamp: z.ZodNumber;
1348
+ className: z.ZodString;
1349
+ }, z.core.$strip>>>;
1350
+ }, z.core.$strip>;
1351
+ export type KeyEventsForDevice = z.infer<typeof KeyEventsForDeviceSchema>;
1305
1352
  declare const TrackedDetectionSchema: z.ZodObject<{
1306
1353
  trackId: z.ZodString;
1307
1354
  className: z.ZodString;
@@ -2315,6 +2362,63 @@ export declare const pipelineAnalyticsCapability: {
2315
2362
  timestamp: z.ZodNumber;
2316
2363
  className: z.ZodString;
2317
2364
  }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
2365
+ /**
2366
+ * The same ranking, for a SET of cameras, in one round trip.
2367
+ *
2368
+ * The Detection Intelligence events feed asks this of every selected
2369
+ * camera and re-asks on a 30s timer. Fanned out client-side that is N
2370
+ * round trips — browser → hub → post-analysis — for N independent,
2371
+ * already-indexed store queries. Batched, the queries are unchanged and
2372
+ * run concurrently INSIDE the owner; only the transport collapses.
2373
+ *
2374
+ * Deliberately per-device rather than pre-merged: `limit` stays per
2375
+ * camera (a total would let a busy camera starve a quiet one), and a
2376
+ * caller that renders one camera's lane needs to know which camera a row
2377
+ * came from. `getKeyEvents` stays for single-device callers.
2378
+ */
2379
+ readonly getKeyEventsBatch: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
2380
+ deviceIds: z.ZodArray<z.ZodNumber>;
2381
+ since: z.ZodNumber;
2382
+ until: z.ZodNumber;
2383
+ limit: z.ZodDefault<z.ZodNumber>;
2384
+ minImportance: z.ZodOptional<z.ZodNumber>;
2385
+ classFilter: z.ZodOptional<z.ZodString>;
2386
+ }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
2387
+ deviceId: z.ZodNumber;
2388
+ events: z.ZodReadonly<z.ZodArray<z.ZodObject<{
2389
+ retrainStatus: z.ZodOptional<z.ZodEnum<{
2390
+ none: "none";
2391
+ staging: "staging";
2392
+ trained: "trained";
2393
+ }>>;
2394
+ markForTrain: z.ZodOptional<z.ZodBoolean>;
2395
+ debug: z.ZodOptional<z.ZodBoolean>;
2396
+ favourited: z.ZodOptional<z.ZodBoolean>;
2397
+ importance: z.ZodNumber;
2398
+ bestEventId: z.ZodString;
2399
+ windowMs: z.ZodOptional<z.ZodNumber>;
2400
+ label: z.ZodOptional<z.ZodString>;
2401
+ labelScore: z.ZodOptional<z.ZodNumber>;
2402
+ labelMeta: z.ZodOptional<z.ZodObject<{
2403
+ stepId: z.ZodString;
2404
+ modelId: z.ZodOptional<z.ZodString>;
2405
+ decidedAt: z.ZodNumber;
2406
+ identityId: z.ZodOptional<z.ZodString>;
2407
+ }, z.core.$strip>>;
2408
+ subLabel: z.ZodOptional<z.ZodString>;
2409
+ subLabelScore: z.ZodOptional<z.ZodNumber>;
2410
+ subLabelMeta: z.ZodOptional<z.ZodObject<{
2411
+ stepId: z.ZodString;
2412
+ modelId: z.ZodOptional<z.ZodString>;
2413
+ decidedAt: z.ZodNumber;
2414
+ identityId: z.ZodOptional<z.ZodString>;
2415
+ }, z.core.$strip>>;
2416
+ id: z.ZodString;
2417
+ trackId: z.ZodString;
2418
+ timestamp: z.ZodNumber;
2419
+ className: z.ZodString;
2420
+ }, z.core.$strip>>>;
2421
+ }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
2318
2422
  /** Server-side bucketed event counts for the 24-hour timeline.
2319
2423
  * Returns one entry per non-empty bucket; empty buckets are omitted. */
2320
2424
  readonly getEventDensity: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
@@ -2612,6 +2716,7 @@ export declare const pipelineAnalyticsCapability: {
2612
2716
  bytesMoved: z.ZodNumber;
2613
2717
  filesTotal: z.ZodNullable<z.ZodNumber>;
2614
2718
  rowsReconciled: z.ZodOptional<z.ZodNumber>;
2719
+ rowsForgotten: z.ZodOptional<z.ZodNumber>;
2615
2720
  startedAt: z.ZodNumber;
2616
2721
  finishedAt: z.ZodNullable<z.ZodNumber>;
2617
2722
  error: z.ZodNullable<z.ZodString>;
@@ -2713,6 +2818,7 @@ export declare const pipelineAnalyticsCapability: {
2713
2818
  bytesMoved: z.ZodNumber;
2714
2819
  filesTotal: z.ZodNullable<z.ZodNumber>;
2715
2820
  rowsReconciled: z.ZodOptional<z.ZodNumber>;
2821
+ rowsForgotten: z.ZodOptional<z.ZodNumber>;
2716
2822
  startedAt: z.ZodNumber;
2717
2823
  finishedAt: z.ZodNullable<z.ZodNumber>;
2718
2824
  error: z.ZodNullable<z.ZodString>;
@@ -2755,6 +2861,51 @@ export declare const pipelineAnalyticsCapability: {
2755
2861
  detail: z.ZodNullable<z.ZodString>;
2756
2862
  actor: z.ZodString;
2757
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">;
2758
2909
  /**
2759
2910
  * The CHEAP QUESTION, asked before any media moves: how big is the dataset
2760
2911
  * the marked (`markForTrain`) tracks would produce?
@@ -666,6 +666,7 @@ export declare const recordingCapability: {
666
666
  bytesMoved: z.ZodNumber;
667
667
  filesTotal: z.ZodNullable<z.ZodNumber>;
668
668
  rowsReconciled: z.ZodOptional<z.ZodNumber>;
669
+ rowsForgotten: z.ZodOptional<z.ZodNumber>;
669
670
  startedAt: z.ZodNumber;
670
671
  finishedAt: z.ZodNullable<z.ZodNumber>;
671
672
  error: z.ZodNullable<z.ZodString>;
@@ -716,6 +717,7 @@ export declare const recordingCapability: {
716
717
  bytesMoved: z.ZodNumber;
717
718
  filesTotal: z.ZodNullable<z.ZodNumber>;
718
719
  rowsReconciled: z.ZodOptional<z.ZodNumber>;
720
+ rowsForgotten: z.ZodOptional<z.ZodNumber>;
719
721
  startedAt: z.ZodNumber;
720
722
  finishedAt: z.ZodNullable<z.ZodNumber>;
721
723
  error: z.ZodNullable<z.ZodString>;
@@ -740,6 +742,68 @@ export declare const recordingCapability: {
740
742
  segments: z.ZodNumber;
741
743
  bytes: z.ZodNumber;
742
744
  }, z.core.$strip>>, "query">;
745
+ /**
746
+ * Does this location's LEDGER tell the truth about its disk? (D319)
747
+ *
748
+ * One `readdir` per claimed hour, diffed both ways: durable rows whose file
749
+ * is not there, and files no durable row names. `apply` defaults to FALSE —
750
+ * the report is the product, and the dry run is how an operator
751
+ * sanity-checks the destructive run before authorising it.
752
+ *
753
+ * REFUSES a source that is still a write target: a listing of a live
754
+ * location is a lower bound, which is not the strong evidence that lets
755
+ * this pass forget without a budget. A live location is reconciled by the
756
+ * mover, under D318's bound.
757
+ */
758
+ readonly reconcileLedgerAgainstDisk: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
759
+ locationId: z.ZodString;
760
+ apply: z.ZodOptional<z.ZodBoolean>;
761
+ deviceId: z.ZodOptional<z.ZodNumber>;
762
+ profiles: z.ZodOptional<z.ZodArray<z.ZodString>>;
763
+ }, z.core.$strip>, z.ZodObject<{
764
+ locationId: z.ZodString;
765
+ applied: z.ZodBoolean;
766
+ refused: z.ZodNullable<z.ZodEnum<{
767
+ "location-unknown": "location-unknown";
768
+ "source-writable": "source-writable";
769
+ "no-ledger": "no-ledger";
770
+ "archive-unreadable": "archive-unreadable";
771
+ "anchor-absent": "anchor-absent";
772
+ "anchor-unreadable": "anchor-unreadable";
773
+ "anchor-moved": "anchor-moved";
774
+ }>>;
775
+ archiveSegments: z.ZodNullable<z.ZodNumber>;
776
+ archiveBytes: z.ZodNullable<z.ZodNumber>;
777
+ hoursClaimed: z.ZodNumber;
778
+ hoursWalked: z.ZodNumber;
779
+ hoursMissing: z.ZodNumber;
780
+ listings: z.ZodNumber;
781
+ segmentsClaimed: z.ZodNumber;
782
+ ghostSegments: z.ZodNumber;
783
+ ghostBytes: z.ZodNumber;
784
+ ghostHoursWhole: z.ZodNumber;
785
+ forgottenSegments: z.ZodNumber;
786
+ forgottenBytes: z.ZodNumber;
787
+ orphanFiles: z.ZodNumber;
788
+ orphanSample: z.ZodReadonly<z.ZodArray<z.ZodString>>;
789
+ hoursSkipped: z.ZodNumber;
790
+ skippedByReason: z.ZodObject<{
791
+ 'live-tail': z.ZodNumber;
792
+ 'listing-error': z.ZodNumber;
793
+ 'path-mismatch': z.ZodNumber;
794
+ 'durable-refused': z.ZodNumber;
795
+ }, z.core.$strip>;
796
+ bounded: z.ZodBoolean;
797
+ byDevice: z.ZodReadonly<z.ZodArray<z.ZodObject<{
798
+ deviceId: z.ZodNumber;
799
+ hoursWalked: z.ZodNumber;
800
+ hoursMissing: z.ZodNumber;
801
+ ghostSegments: z.ZodNumber;
802
+ ghostBytes: z.ZodNumber;
803
+ forgottenSegments: z.ZodNumber;
804
+ orphanFiles: z.ZodNumber;
805
+ }, z.core.$strip>>>;
806
+ }, z.core.$strip>, "mutation">;
743
807
  /** Cancel a running or queued relocate job. A queued job never runs. */
744
808
  readonly cancelRelocateJob: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
745
809
  jobId: z.ZodString;
@@ -366,6 +366,122 @@ export type SceneMonitorState = z.infer<typeof SceneMonitorStateSchema>;
366
366
  export type SceneCheck = z.infer<typeof SceneCheckSchema>;
367
367
  export type SceneMonitor = z.infer<typeof SceneMonitorSchema>;
368
368
  export type SceneMonitorStatus = z.infer<typeof SceneMonitorStatusSchema>;
369
+ /**
370
+ * One camera's row in a `listScenesBatch` answer.
371
+ *
372
+ * `status` is NULLABLE and the nullability is the whole point. `scene-monitor`
373
+ * is a `defaultActive` wrapper, so every camera is asked; a camera whose
374
+ * provider is absent (pipeline-analytics not deployed, the post-processing node
375
+ * down) cannot answer, and that is not the same fact as a camera with no scenes
376
+ * configured. Fanned out per camera the difference was visible — one query
377
+ * errored while the others resolved — and a batch that returned only the rows
378
+ * it managed would have destroyed it, silently, by making an unreachable camera
379
+ * indistinguishable from one that answered `monitors: []`.
380
+ *
381
+ * So: EVERY requested deviceId gets a row. `status: null` means "this camera
382
+ * could not be read"; `status.monitors: []` means "read, and it has none".
383
+ */
384
+ export declare const SceneMonitorStatusForDeviceSchema: z.ZodObject<{
385
+ deviceId: z.ZodNumber;
386
+ status: z.ZodNullable<z.ZodObject<{
387
+ monitors: z.ZodArray<z.ZodObject<{
388
+ id: z.ZodString;
389
+ label: z.ZodString;
390
+ roi: z.ZodObject<{
391
+ kind: z.ZodLiteral<"rect">;
392
+ x: z.ZodNumber;
393
+ y: z.ZodNumber;
394
+ width: z.ZodNumber;
395
+ height: z.ZodNumber;
396
+ }, z.core.$strip>;
397
+ enabled: z.ZodBoolean;
398
+ triggerMode: z.ZodEnum<{
399
+ periodic: "periodic";
400
+ both: "both";
401
+ "on-motion": "on-motion";
402
+ }>;
403
+ checkIntervalSec: z.ZodOptional<z.ZodNumber>;
404
+ check: z.ZodDiscriminatedUnion<[z.ZodObject<{
405
+ mode: z.ZodLiteral<"similarity">;
406
+ threshold: z.ZodNumber;
407
+ hysteresisCount: z.ZodNumber;
408
+ }, z.core.$strip>, z.ZodObject<{
409
+ mode: z.ZodLiteral<"llm">;
410
+ prompt: z.ZodString;
411
+ profileId: z.ZodOptional<z.ZodString>;
412
+ hysteresisCount: z.ZodNumber;
413
+ }, z.core.$strip>], "mode">;
414
+ states: z.ZodArray<z.ZodObject<{
415
+ id: z.ZodString;
416
+ label: z.ZodString;
417
+ references: z.ZodArray<z.ZodObject<{
418
+ embedding: z.ZodArray<z.ZodNumber>;
419
+ modelId: z.ZodString;
420
+ condition: z.ZodString;
421
+ capturedAt: z.ZodNumber;
422
+ thumbnailMediaId: z.ZodOptional<z.ZodString>;
423
+ anchorEmbedding: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
424
+ }, z.core.$strip>>;
425
+ textPrompts: z.ZodOptional<z.ZodArray<z.ZodString>>;
426
+ referenceCount: z.ZodNumber;
427
+ currentlyMatched: z.ZodBoolean;
428
+ }, z.core.$strip>>;
429
+ currentStateId: z.ZodNullable<z.ZodString>;
430
+ lastCheckedAt: z.ZodNullable<z.ZodNumber>;
431
+ lastConfidence: z.ZodNullable<z.ZodNumber>;
432
+ currentCondition: z.ZodNullable<z.ZodString>;
433
+ availability: z.ZodEnum<{
434
+ ok: "ok";
435
+ unavailable: "unavailable";
436
+ }>;
437
+ unavailableReason: z.ZodNullable<z.ZodString>;
438
+ baselineStateId: z.ZodNullable<z.ZodString>;
439
+ emit: z.ZodDefault<z.ZodEnum<{
440
+ live: "live";
441
+ latched: "latched";
442
+ }>>;
443
+ verdict: z.ZodEnum<{
444
+ unknown: "unknown";
445
+ matched: "matched";
446
+ diverged: "diverged";
447
+ }>;
448
+ latched: z.ZodBoolean;
449
+ armedAt: z.ZodNumber;
450
+ divergedAt: z.ZodNullable<z.ZodNumber>;
451
+ restoredAt: z.ZodNullable<z.ZodNumber>;
452
+ quietSeconds: z.ZodDefault<z.ZodNumber>;
453
+ minObservationSpacingSec: z.ZodDefault<z.ZodNumber>;
454
+ confirm: z.ZodOptional<z.ZodObject<{
455
+ enabled: z.ZodDefault<z.ZodBoolean>;
456
+ prompt: z.ZodString;
457
+ profileId: z.ZodOptional<z.ZodString>;
458
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
459
+ maxImagePx: z.ZodDefault<z.ZodNumber>;
460
+ onTimeout: z.ZodDefault<z.ZodEnum<{
461
+ flip: "flip";
462
+ hold: "hold";
463
+ }>>;
464
+ }, z.core.$strip>>;
465
+ anchorThreshold: z.ZodDefault<z.ZodNumber>;
466
+ autoRestore: z.ZodDefault<z.ZodBoolean>;
467
+ onUncoveredCondition: z.ZodDefault<z.ZodEnum<{
468
+ skip: "skip";
469
+ "judge-anyway": "judge-anyway";
470
+ }>>;
471
+ suspendedCondition: z.ZodDefault<z.ZodNullable<z.ZodString>>;
472
+ unavailable: z.ZodNullable<z.ZodEnum<{
473
+ "no-reference-for-condition": "no-reference-for-condition";
474
+ "view-shifted": "view-shifted";
475
+ "no-vision-profile": "no-vision-profile";
476
+ "encoder-model-changed": "encoder-model-changed";
477
+ "no-snapshot": "no-snapshot";
478
+ }>>;
479
+ coveredConditions: z.ZodArray<z.ZodString>;
480
+ }, z.core.$strip>>;
481
+ lastFetchedAt: z.ZodNumber;
482
+ }, z.core.$strip>>;
483
+ }, z.core.$strip>;
484
+ export type SceneMonitorStatusForDevice = z.infer<typeof SceneMonitorStatusForDeviceSchema>;
369
485
  export declare const sceneMonitorCapability: {
370
486
  readonly name: "scene-monitor";
371
487
  readonly scope: "device";
@@ -473,6 +589,123 @@ export declare const sceneMonitorCapability: {
473
589
  }, z.core.$strip>>;
474
590
  lastFetchedAt: z.ZodNumber;
475
591
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
592
+ /**
593
+ * The same answer, for a SET of cameras, in one round trip.
594
+ *
595
+ * `/scenes` renders every camera and re-reads them on a 30s safety-net
596
+ * poll behind the push slice. Fanned out client-side that was one query
597
+ * per camera — 29 round trips through the browser, the hub and the
598
+ * post-analysis runner every 30 seconds to read an in-memory map the
599
+ * owner had already merged. The work is unchanged (`statusFor` per
600
+ * device, all in-process at the owner); what collapses is the transport.
601
+ *
602
+ * A camera that cannot answer still gets a row, with `status: null` —
603
+ * see {@link SceneMonitorStatusForDeviceSchema}. Never fewer rows than
604
+ * ids: a caller that asked for twenty-nine and got twenty-seven cannot
605
+ * tell which two are missing, or that any are.
606
+ */
607
+ readonly listScenesBatch: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
608
+ deviceIds: z.ZodArray<z.ZodNumber>;
609
+ }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
610
+ deviceId: z.ZodNumber;
611
+ status: z.ZodNullable<z.ZodObject<{
612
+ monitors: z.ZodArray<z.ZodObject<{
613
+ id: z.ZodString;
614
+ label: z.ZodString;
615
+ roi: z.ZodObject<{
616
+ kind: z.ZodLiteral<"rect">;
617
+ x: z.ZodNumber;
618
+ y: z.ZodNumber;
619
+ width: z.ZodNumber;
620
+ height: z.ZodNumber;
621
+ }, z.core.$strip>;
622
+ enabled: z.ZodBoolean;
623
+ triggerMode: z.ZodEnum<{
624
+ periodic: "periodic";
625
+ both: "both";
626
+ "on-motion": "on-motion";
627
+ }>;
628
+ checkIntervalSec: z.ZodOptional<z.ZodNumber>;
629
+ check: z.ZodDiscriminatedUnion<[z.ZodObject<{
630
+ mode: z.ZodLiteral<"similarity">;
631
+ threshold: z.ZodNumber;
632
+ hysteresisCount: z.ZodNumber;
633
+ }, z.core.$strip>, z.ZodObject<{
634
+ mode: z.ZodLiteral<"llm">;
635
+ prompt: z.ZodString;
636
+ profileId: z.ZodOptional<z.ZodString>;
637
+ hysteresisCount: z.ZodNumber;
638
+ }, z.core.$strip>], "mode">;
639
+ states: z.ZodArray<z.ZodObject<{
640
+ id: z.ZodString;
641
+ label: z.ZodString;
642
+ references: z.ZodArray<z.ZodObject<{
643
+ embedding: z.ZodArray<z.ZodNumber>;
644
+ modelId: z.ZodString;
645
+ condition: z.ZodString;
646
+ capturedAt: z.ZodNumber;
647
+ thumbnailMediaId: z.ZodOptional<z.ZodString>;
648
+ anchorEmbedding: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
649
+ }, z.core.$strip>>;
650
+ textPrompts: z.ZodOptional<z.ZodArray<z.ZodString>>;
651
+ referenceCount: z.ZodNumber;
652
+ currentlyMatched: z.ZodBoolean;
653
+ }, z.core.$strip>>;
654
+ currentStateId: z.ZodNullable<z.ZodString>;
655
+ lastCheckedAt: z.ZodNullable<z.ZodNumber>;
656
+ lastConfidence: z.ZodNullable<z.ZodNumber>;
657
+ currentCondition: z.ZodNullable<z.ZodString>;
658
+ availability: z.ZodEnum<{
659
+ ok: "ok";
660
+ unavailable: "unavailable";
661
+ }>;
662
+ unavailableReason: z.ZodNullable<z.ZodString>;
663
+ baselineStateId: z.ZodNullable<z.ZodString>;
664
+ emit: z.ZodDefault<z.ZodEnum<{
665
+ live: "live";
666
+ latched: "latched";
667
+ }>>;
668
+ verdict: z.ZodEnum<{
669
+ unknown: "unknown";
670
+ matched: "matched";
671
+ diverged: "diverged";
672
+ }>;
673
+ latched: z.ZodBoolean;
674
+ armedAt: z.ZodNumber;
675
+ divergedAt: z.ZodNullable<z.ZodNumber>;
676
+ restoredAt: z.ZodNullable<z.ZodNumber>;
677
+ quietSeconds: z.ZodDefault<z.ZodNumber>;
678
+ minObservationSpacingSec: z.ZodDefault<z.ZodNumber>;
679
+ confirm: z.ZodOptional<z.ZodObject<{
680
+ enabled: z.ZodDefault<z.ZodBoolean>;
681
+ prompt: z.ZodString;
682
+ profileId: z.ZodOptional<z.ZodString>;
683
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
684
+ maxImagePx: z.ZodDefault<z.ZodNumber>;
685
+ onTimeout: z.ZodDefault<z.ZodEnum<{
686
+ flip: "flip";
687
+ hold: "hold";
688
+ }>>;
689
+ }, z.core.$strip>>;
690
+ anchorThreshold: z.ZodDefault<z.ZodNumber>;
691
+ autoRestore: z.ZodDefault<z.ZodBoolean>;
692
+ onUncoveredCondition: z.ZodDefault<z.ZodEnum<{
693
+ skip: "skip";
694
+ "judge-anyway": "judge-anyway";
695
+ }>>;
696
+ suspendedCondition: z.ZodDefault<z.ZodNullable<z.ZodString>>;
697
+ unavailable: z.ZodNullable<z.ZodEnum<{
698
+ "no-reference-for-condition": "no-reference-for-condition";
699
+ "view-shifted": "view-shifted";
700
+ "no-vision-profile": "no-vision-profile";
701
+ "encoder-model-changed": "encoder-model-changed";
702
+ "no-snapshot": "no-snapshot";
703
+ }>>;
704
+ coveredConditions: z.ZodArray<z.ZodString>;
705
+ }, z.core.$strip>>;
706
+ lastFetchedAt: z.ZodNumber;
707
+ }, z.core.$strip>>;
708
+ }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
476
709
  readonly createScene: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
477
710
  deviceId: z.ZodNumber;
478
711
  label: z.ZodString;
@@ -187,6 +187,7 @@ export declare const storageMigrationCapability: {
187
187
  bytesMoved: z.ZodNumber;
188
188
  filesTotal: z.ZodNullable<z.ZodNumber>;
189
189
  rowsReconciled: z.ZodOptional<z.ZodNumber>;
190
+ rowsForgotten: z.ZodOptional<z.ZodNumber>;
190
191
  startedAt: z.ZodNumber;
191
192
  finishedAt: z.ZodNullable<z.ZodNumber>;
192
193
  error: z.ZodNullable<z.ZodString>;