@camstack/types 1.2.154 → 1.2.156

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-b8kBSOTT.js");
3
- const require_sleep = require("./sleep-Dp0uukHR.js");
3
+ const require_sleep = require("./sleep-BGiOgxye.js");
4
4
  const require_err_msg = require("./err-msg-COpsHMw2.js");
5
5
  //#region src/generated/cap-input-defaults.ts
6
6
  /**
package/dist/addon.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as EventCategory } from "./event-category-zAv7pMUz.mjs";
2
- import { D as adminUiCapability, E as DeviceType, G as scopeKey, H as ReadinessTimeoutError, M as expandCapMethods, R as nodePin, S as DEVICE_CHILDREN_BATCH_MAX, V as ReadinessRegistry, _t as DATAPLANE_SECRET_HEADER, a as asJsonObject, b as deviceOpsCapability, bt as BaseAddon, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, h as createEventBusSliceSource, m as createDeviceProxy, p as isDeviceScopedCap, s as asString, t as sleep, u as parseJsonUnknown, wt as emitReadiness, x as viewerUiCapability, xt as normalizeAddonInitResult, yt as DisposerChain, z as readNodePin } from "./sleep-CgijQHtG.mjs";
2
+ import { D as adminUiCapability, E as DeviceType, G as scopeKey, H as ReadinessTimeoutError, M as expandCapMethods, R as nodePin, S as DEVICE_CHILDREN_BATCH_MAX, V as ReadinessRegistry, _t as DATAPLANE_SECRET_HEADER, a as asJsonObject, b as deviceOpsCapability, bt as BaseAddon, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, h as createEventBusSliceSource, m as createDeviceProxy, p as isDeviceScopedCap, s as asString, t as sleep, u as parseJsonUnknown, wt as emitReadiness, x as viewerUiCapability, xt as normalizeAddonInitResult, yt as DisposerChain, z as readNodePin } from "./sleep-IaOr7P-z.mjs";
3
3
  import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
4
4
  //#region src/generated/cap-input-defaults.ts
5
5
  /**
@@ -101,6 +101,11 @@ export declare const cameraStreamsCapability: {
101
101
  label: z.ZodOptional<z.ZodString>;
102
102
  deviceFeatures: z.ZodOptional<z.ZodArray<z.ZodString>>;
103
103
  autoEligible: z.ZodOptional<z.ZodBoolean>;
104
+ profileHint: z.ZodOptional<z.ZodEnum<{
105
+ high: "high";
106
+ mid: "mid";
107
+ low: "low";
108
+ }>>;
104
109
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
105
110
  }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
106
111
  readonly getBrokerStreams: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
@@ -263,6 +268,11 @@ export declare const cameraStreamsCapability: {
263
268
  label: z.ZodOptional<z.ZodString>;
264
269
  deviceFeatures: z.ZodOptional<z.ZodArray<z.ZodString>>;
265
270
  autoEligible: z.ZodOptional<z.ZodBoolean>;
271
+ profileHint: z.ZodOptional<z.ZodEnum<{
272
+ high: "high";
273
+ mid: "mid";
274
+ low: "low";
275
+ }>>;
266
276
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
267
277
  }, z.core.$strip>>>;
268
278
  }, z.core.$strip>>;
@@ -189,6 +189,7 @@ export { type INavigationProvider, NAVIGATION_ACTION_CATALOG, NAVIGATION_LIGHT_L
189
189
  export { type IRebootProvider, rebootCapability } from './reboot.cap.js';
190
190
  export { type IRecordingProvider, type LocateSegmentResult, LocateSegmentResultSchema, RECORDING_TIMELINE_BATCH_MAX, type ReadGopBytesResult, ReadGopBytesResultSchema, type ReadSegmentBytesResult, ReadSegmentBytesResultSchema, type ReadWindowBytesResult, ReadWindowBytesResultSchema, type RecordingAvailability, type RecordingAvailabilityForDevice, RecordingAvailabilityForDeviceSchema, RecordingAvailabilitySchema, type RecordingDays, type RecordingDaysForDevice, RecordingDaysForDeviceSchema, 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';
191
191
  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';
192
+ export { type IRecordingSignalProvider, type RecordingSignalRuntimeState, RecordingSignalRuntimeStateSchema, type RecordingSignalStatus, RecordingSignalStatusSchema, recordingSignalCapability, } from './recording-signal.cap.js';
192
193
  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';
193
194
  export { type ZoneRule, type ZoneRuleMode, ZoneRuleModeEnum, ZoneRuleSchema, type ZoneRules, ZoneRulesArraySchema, } from './schemas/zone-rule.js';
194
195
  export { type IScriptRunnerProvider, type ScriptRunnerStatus, ScriptRunnerStatusSchema, scriptRunnerCapability, } from './script-runner.cap.js';
@@ -329,6 +330,7 @@ import type { ptzAutotrackCapability } from './ptz-autotrack.cap.js';
329
330
  import type { rebootCapability } from './reboot.cap.js';
330
331
  import type { recordingCapability } from './recording.cap.js';
331
332
  import type { recordingExportCapability } from './recording-export.cap.js';
333
+ import type { recordingSignalCapability } from './recording-signal.cap.js';
332
334
  import type { sceneMonitorCapability } from './scene-monitor.cap.js';
333
335
  import type { scriptRunnerCapability } from './script-runner.cap.js';
334
336
  import type { serverManagementCapability } from './server-management.cap.js';
@@ -366,6 +368,6 @@ import type { webrtcSessionCapability } from './webrtc-session.cap.js';
366
368
  import type { zoneAnalyticsCapability } from './zone-analytics.cap.js';
367
369
  import type { zoneRulesCapability } from './zone-rules.cap.js';
368
370
  import type { zonesCapability } from './zones.cap.js';
369
- type AnyCapability = typeof addonSettingsCapability | typeof alertsCapability | typeof storageCapability | typeof storageMigrationCapability | typeof storageProviderCapability | typeof storageEvictableCapability | typeof filesystemBrowseCapability | typeof backupCapability | typeof terminalSessionCapability | typeof settingsStoreCapability | typeof dataStoreProviderCapability | typeof logChannelsCapability | typeof logDestinationCapability | typeof loadContributionCapability | typeof failureContributionCapability | typeof adminUiCapability | typeof viewerUiCapability | typeof ssoBridgeCapability | typeof userPasskeysCapability | typeof smtpProviderCapability | typeof mqttBrokerCapability | typeof brokerCapability | typeof deviceAdoptionCapability | typeof deviceExportCapability | typeof addonPagesCapability | typeof addonPagesSourceCapability | typeof addonWidgetsCapability | typeof addonWidgetsSourceCapability | typeof customModelRegistryCapability | typeof modelDistributorCapability | typeof modelConvertCapability | typeof addonRoutesCapability | typeof streamBrokerCapability | typeof decoderCapability | typeof webrtcSessionCapability | typeof cameraStreamsCapability | typeof motionDetectionCapability | typeof pipelineExecutorCapability | typeof detectionPipelineCapability | typeof cameraPipelineConfigCapability | typeof pipelineRunnerCapability | typeof pipelineOrchestratorCapability | typeof audioAnalyzerCapability | typeof audioAnalysisCapability | typeof audioCodecCapability | typeof embeddingEncoderCapability | typeof vectorStoreCapability | typeof deviceProviderCapability | typeof deviceManagerCapability | typeof deviceStateCapability | typeof authProviderCapability | typeof loginMethodCapability | typeof networkAccessCapability | typeof turnProviderCapability | typeof snapshotCapability | typeof llmCapability | typeof llmRuntimeCapability | typeof notificationOutputCapability | typeof coreBlocksCapability | typeof notificationRulesCapability | typeof pipelineAnalyticsCapability | typeof metricsProviderCapability | typeof ptzCapability | typeof ptzAutotrackCapability | typeof navigationCapability | typeof consumablesCapability | typeof connectionTestCapability | typeof rebootCapability | typeof deviceDiscoveryCapability | typeof brightnessCapability | typeof colorCapability | typeof climateControlCapability | typeof coverCapability | typeof valveCapability | typeof humidifierCapability | typeof waterHeaterCapability | typeof weatherCapability | typeof imageCapability | typeof lockControlCapability | typeof vacuumControlCapability | typeof petFeederCapability | typeof lawnMowerControlCapability | typeof fanControlCapability | typeof controlCapability | typeof notifierCapability | typeof mediaPlayerCapability | typeof alarmPanelCapability | typeof presenceCapability | typeof scriptRunnerCapability | typeof automationControlCapability | typeof motionTriggerCapability | typeof eventsCapability | typeof zonesCapability | typeof zoneRulesCapability | typeof zoneAnalyticsCapability | typeof audioMetricsCapability | typeof motionCapability | typeof contactCapability | typeof floodCapability | typeof smokeCapability | typeof carbonMonoxideCapability | typeof gasCapability | typeof tamperCapability | typeof vibrationCapability | typeof connectivityCapability | typeof binaryCapability | typeof temperatureSensorCapability | typeof humiditySensorCapability | typeof ambientLightSensorCapability | typeof pressureSensorCapability | typeof powerMeterCapability | typeof airQualitySensorCapability | typeof numericSensorCapability | typeof enumSensorCapability | typeof recordingCapability | typeof recordingExportCapability | typeof deviceOpsCapability | typeof platformProbeCapability | typeof localNetworkCapability | typeof meshNetworkCapability | typeof userManagementCapability | typeof systemCapability | typeof networkQualityCapability | typeof toastCapability | typeof nodesCapability | typeof serverManagementCapability | typeof integrationsCapability | typeof addonsCapability | typeof oauthIntegrationCapability | typeof streamParamsCapability | typeof streamCatalogCapability | typeof motionZonesCapability | typeof sceneMonitorCapability | typeof privacyMaskCapability | typeof dayNightCapability | typeof imageSettingsCapability | typeof osdCapability | typeof osdManagerCapability | typeof accessoriesCapability | typeof batteryCapability | typeof networkLinkCapability | typeof buttonCapability | typeof cameraCredentialsCapability | typeof deviceStatusCapability | typeof doorbellCapability | typeof eventEmitterCapability | typeof faceGalleryCapability | typeof featureProbeCapability | typeof intercomCapability | typeof nativeObjectDetectionCapability | typeof plateGalleryCapability | typeof switchCapability | typeof updateCapability | typeof videoclipsCapability;
371
+ type AnyCapability = typeof addonSettingsCapability | typeof alertsCapability | typeof storageCapability | typeof storageMigrationCapability | typeof storageProviderCapability | typeof storageEvictableCapability | typeof filesystemBrowseCapability | typeof backupCapability | typeof terminalSessionCapability | typeof settingsStoreCapability | typeof dataStoreProviderCapability | typeof logChannelsCapability | typeof logDestinationCapability | typeof loadContributionCapability | typeof failureContributionCapability | typeof adminUiCapability | typeof viewerUiCapability | typeof ssoBridgeCapability | typeof userPasskeysCapability | typeof smtpProviderCapability | typeof mqttBrokerCapability | typeof brokerCapability | typeof deviceAdoptionCapability | typeof deviceExportCapability | typeof addonPagesCapability | typeof addonPagesSourceCapability | typeof addonWidgetsCapability | typeof addonWidgetsSourceCapability | typeof customModelRegistryCapability | typeof modelDistributorCapability | typeof modelConvertCapability | typeof addonRoutesCapability | typeof streamBrokerCapability | typeof decoderCapability | typeof webrtcSessionCapability | typeof cameraStreamsCapability | typeof motionDetectionCapability | typeof pipelineExecutorCapability | typeof detectionPipelineCapability | typeof cameraPipelineConfigCapability | typeof pipelineRunnerCapability | typeof pipelineOrchestratorCapability | typeof audioAnalyzerCapability | typeof audioAnalysisCapability | typeof audioCodecCapability | typeof embeddingEncoderCapability | typeof vectorStoreCapability | typeof deviceProviderCapability | typeof deviceManagerCapability | typeof deviceStateCapability | typeof authProviderCapability | typeof loginMethodCapability | typeof networkAccessCapability | typeof turnProviderCapability | typeof snapshotCapability | typeof llmCapability | typeof llmRuntimeCapability | typeof notificationOutputCapability | typeof coreBlocksCapability | typeof notificationRulesCapability | typeof pipelineAnalyticsCapability | typeof metricsProviderCapability | typeof ptzCapability | typeof ptzAutotrackCapability | typeof navigationCapability | typeof consumablesCapability | typeof connectionTestCapability | typeof rebootCapability | typeof deviceDiscoveryCapability | typeof brightnessCapability | typeof colorCapability | typeof climateControlCapability | typeof coverCapability | typeof valveCapability | typeof humidifierCapability | typeof waterHeaterCapability | typeof weatherCapability | typeof imageCapability | typeof lockControlCapability | typeof vacuumControlCapability | typeof petFeederCapability | typeof lawnMowerControlCapability | typeof fanControlCapability | typeof controlCapability | typeof notifierCapability | typeof mediaPlayerCapability | typeof alarmPanelCapability | typeof presenceCapability | typeof scriptRunnerCapability | typeof automationControlCapability | typeof motionTriggerCapability | typeof eventsCapability | typeof zonesCapability | typeof zoneRulesCapability | typeof zoneAnalyticsCapability | typeof audioMetricsCapability | typeof motionCapability | typeof contactCapability | typeof floodCapability | typeof smokeCapability | typeof carbonMonoxideCapability | typeof gasCapability | typeof tamperCapability | typeof vibrationCapability | typeof connectivityCapability | typeof binaryCapability | typeof temperatureSensorCapability | typeof humiditySensorCapability | typeof ambientLightSensorCapability | typeof pressureSensorCapability | typeof powerMeterCapability | typeof airQualitySensorCapability | typeof numericSensorCapability | typeof enumSensorCapability | typeof recordingCapability | typeof recordingExportCapability | typeof recordingSignalCapability | typeof deviceOpsCapability | typeof platformProbeCapability | typeof localNetworkCapability | typeof meshNetworkCapability | typeof userManagementCapability | typeof systemCapability | typeof networkQualityCapability | typeof toastCapability | typeof nodesCapability | typeof serverManagementCapability | typeof integrationsCapability | typeof addonsCapability | typeof oauthIntegrationCapability | typeof streamParamsCapability | typeof streamCatalogCapability | typeof motionZonesCapability | typeof sceneMonitorCapability | typeof privacyMaskCapability | typeof dayNightCapability | typeof imageSettingsCapability | typeof osdCapability | typeof osdManagerCapability | typeof accessoriesCapability | typeof batteryCapability | typeof networkLinkCapability | typeof buttonCapability | typeof cameraCredentialsCapability | typeof deviceStatusCapability | typeof doorbellCapability | typeof eventEmitterCapability | typeof faceGalleryCapability | typeof featureProbeCapability | typeof intercomCapability | typeof nativeObjectDetectionCapability | typeof plateGalleryCapability | typeof switchCapability | typeof updateCapability | typeof videoclipsCapability;
370
372
  export type CapabilityName = AnyCapability['name'];
371
373
  export type ITypedReadinessRegistry = IReadinessRegistry<CapabilityName>;
@@ -0,0 +1,91 @@
1
+ import { z } from 'zod';
2
+ import { type InferProvider } from './capability-definition.js';
3
+ import { DeviceType } from '../device/device-type.js';
4
+ /**
5
+ * A camera's own "record me NOW" LEVEL — a signal the device raises while
6
+ * something it knows about is happening (a robot vacuum cleaning, a machine
7
+ * running, a gate open) and lowers when it stops.
8
+ *
9
+ * It is a level, not an edge. The sensor triggers the recorder already listens
10
+ * to (`SOURCE_CAP_ACTIVE_FIELD`) fire on a rising edge and record for a fixed
11
+ * post-buffer; a cleaning lasts forty minutes, and forty minutes of "this is
12
+ * still happening" cannot be expressed as an edge plus a post-buffer without
13
+ * either re-triggering on a timer (polling — D224 forbids the consumer keeping
14
+ * the fact fresh) or picking a post-buffer long enough to cover every job,
15
+ * which records the dock for that long after every short one. So the recorder
16
+ * reads the LEVEL: it records for as long as `active` is true, plus the band's
17
+ * own post-buffer once it falls.
18
+ *
19
+ * Who owns the fact: the PROVIDER of the device, which already reads the state
20
+ * the signal is derived from (the vacuum's lifecycle state, for Dreame). It
21
+ * writes this slice on every change; consumers subscribe to the kernel's
22
+ * `DeviceStateChanged` for it and read it back through
23
+ * `deviceState.getCapSlice` to reconcile — never a second copy, never a poll
24
+ * against the device (D224, D8/D11).
25
+ *
26
+ * Deliberately NOT a `binary` sensor on the camera: a binary sensor is exported
27
+ * to Home Assistant, HomeKit and the sensor picker as a thing an operator can
28
+ * bind, and "the camera wants to record" is not a room sensor. It is a fact
29
+ * about the camera, on the camera.
30
+ */
31
+ export declare const RecordingSignalStatusSchema: z.ZodObject<{
32
+ active: z.ZodBoolean;
33
+ reason: z.ZodString;
34
+ lastChangedAt: z.ZodNumber;
35
+ }, z.core.$strip>;
36
+ export type RecordingSignalStatus = z.infer<typeof RecordingSignalStatusSchema>;
37
+ /** The runtime-state slice: the status plus the clock every slice carries. */
38
+ export declare const RecordingSignalRuntimeStateSchema: z.ZodObject<{
39
+ active: z.ZodBoolean;
40
+ reason: z.ZodString;
41
+ lastChangedAt: z.ZodNumber;
42
+ lastFetchedAt: z.ZodNumber;
43
+ }, z.core.$strip>;
44
+ export type RecordingSignalRuntimeState = z.infer<typeof RecordingSignalRuntimeStateSchema>;
45
+ export declare const recordingSignalCapability: {
46
+ readonly name: "recording-signal";
47
+ readonly scope: "device";
48
+ readonly deviceNative: true;
49
+ readonly mode: "singleton";
50
+ readonly deviceTypes: readonly [DeviceType.Camera];
51
+ readonly methods: {
52
+ /** The current level, straight from the slice the provider keeps fresh. */
53
+ readonly getStatus: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
54
+ deviceId: z.ZodNumber;
55
+ }, z.core.$strip>, z.ZodObject<{
56
+ active: z.ZodBoolean;
57
+ reason: z.ZodString;
58
+ lastChangedAt: z.ZodNumber;
59
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
60
+ };
61
+ readonly status: {
62
+ readonly schema: z.ZodObject<{
63
+ active: z.ZodBoolean;
64
+ reason: z.ZodString;
65
+ lastChangedAt: z.ZodNumber;
66
+ }, z.core.$strip>;
67
+ readonly kind: "push";
68
+ readonly empty: {
69
+ readonly active: false;
70
+ readonly reason: "unknown";
71
+ readonly lastChangedAt: 0;
72
+ };
73
+ };
74
+ readonly runtimeState: z.ZodObject<{
75
+ active: z.ZodBoolean;
76
+ reason: z.ZodString;
77
+ lastChangedAt: z.ZodNumber;
78
+ lastFetchedAt: z.ZodNumber;
79
+ }, z.core.$strip>;
80
+ /**
81
+ * Runtime-state durability: **session** — a restored `active: true` from
82
+ * before a restart is exactly the stale level the recorder's reconcile bound
83
+ * exists to end, and the provider re-derives the true level on activation
84
+ * anyway. Nothing is lost by forgetting it; a lie is avoided.
85
+ *
86
+ * See `RuntimeStateDurability`. Enforced by
87
+ * `scripts/check-runtime-state-durability.ts`.
88
+ */
89
+ readonly durability: "session";
90
+ };
91
+ export type IRecordingSignalProvider = InferProvider<typeof recordingSignalCapability>;
@@ -486,6 +486,7 @@ export declare const recordingCapability: {
486
486
  animal: "animal";
487
487
  }>>>;
488
488
  sensorDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
489
+ deviceSignal: z.ZodOptional<z.ZodBoolean>;
489
490
  }, z.core.$strip>>;
490
491
  preBufferSec: z.ZodOptional<z.ZodNumber>;
491
492
  postBufferSec: z.ZodOptional<z.ZodNumber>;
@@ -587,6 +588,7 @@ export declare const recordingCapability: {
587
588
  animal: "animal";
588
589
  }>>>;
589
590
  sensorDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
591
+ deviceSignal: z.ZodOptional<z.ZodBoolean>;
590
592
  }, z.core.$strip>>;
591
593
  preBufferSec: z.ZodOptional<z.ZodNumber>;
592
594
  postBufferSec: z.ZodOptional<z.ZodNumber>;
@@ -626,6 +628,7 @@ export declare const recordingCapability: {
626
628
  animal: "animal";
627
629
  }>>>;
628
630
  sensorDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
631
+ deviceSignal: z.ZodOptional<z.ZodBoolean>;
629
632
  }, z.core.$strip>>;
630
633
  preBufferSec: z.ZodOptional<z.ZodNumber>;
631
634
  postBufferSec: z.ZodOptional<z.ZodNumber>;
@@ -44,6 +44,11 @@ export declare const CameraStreamSchema: z.ZodObject<{
44
44
  label: z.ZodOptional<z.ZodString>;
45
45
  deviceFeatures: z.ZodOptional<z.ZodArray<z.ZodString>>;
46
46
  autoEligible: z.ZodOptional<z.ZodBoolean>;
47
+ profileHint: z.ZodOptional<z.ZodEnum<{
48
+ high: "high";
49
+ mid: "mid";
50
+ low: "low";
51
+ }>>;
47
52
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
48
53
  }, z.core.$strip>;
49
54
  export type CameraStream = z.infer<typeof CameraStreamSchema>;
@@ -563,6 +563,11 @@ export declare const streamBrokerCapability: {
563
563
  label: z.ZodOptional<z.ZodString>;
564
564
  deviceFeatures: z.ZodOptional<z.ZodArray<z.ZodString>>;
565
565
  autoEligible: z.ZodOptional<z.ZodBoolean>;
566
+ profileHint: z.ZodOptional<z.ZodEnum<{
567
+ high: "high";
568
+ mid: "mid";
569
+ low: "low";
570
+ }>>;
566
571
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
567
572
  sourceCamStreamId: z.ZodOptional<z.ZodString>;
568
573
  encodeProfile: z.ZodOptional<z.ZodObject<{
@@ -826,6 +831,11 @@ export declare const streamBrokerCapability: {
826
831
  label: z.ZodOptional<z.ZodString>;
827
832
  deviceFeatures: z.ZodOptional<z.ZodArray<z.ZodString>>;
828
833
  autoEligible: z.ZodOptional<z.ZodBoolean>;
834
+ profileHint: z.ZodOptional<z.ZodEnum<{
835
+ high: "high";
836
+ mid: "mid";
837
+ low: "low";
838
+ }>>;
829
839
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
830
840
  }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
831
841
  readonly listAllProfileSlots: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
@@ -40,6 +40,11 @@ export declare const CamStreamDescriptorSchema: z.ZodObject<{
40
40
  label: z.ZodOptional<z.ZodString>;
41
41
  deviceFeatures: z.ZodOptional<z.ZodArray<z.ZodString>>;
42
42
  autoEligible: z.ZodOptional<z.ZodBoolean>;
43
+ profileHint: z.ZodOptional<z.ZodEnum<{
44
+ high: "high";
45
+ mid: "mid";
46
+ low: "low";
47
+ }>>;
43
48
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
44
49
  }, z.core.$strip>;
45
50
  export type CamStreamDescriptor = z.infer<typeof CamStreamDescriptorSchema>;
@@ -94,6 +99,11 @@ declare const StreamCatalogStateSchema: z.ZodObject<{
94
99
  label: z.ZodOptional<z.ZodString>;
95
100
  deviceFeatures: z.ZodOptional<z.ZodArray<z.ZodString>>;
96
101
  autoEligible: z.ZodOptional<z.ZodBoolean>;
102
+ profileHint: z.ZodOptional<z.ZodEnum<{
103
+ high: "high";
104
+ mid: "mid";
105
+ low: "low";
106
+ }>>;
97
107
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
98
108
  }, z.core.$strip>>;
99
109
  lastFetchedAt: z.ZodNumber;
@@ -129,6 +139,11 @@ export declare const streamCatalogCapability: {
129
139
  label: z.ZodOptional<z.ZodString>;
130
140
  deviceFeatures: z.ZodOptional<z.ZodArray<z.ZodString>>;
131
141
  autoEligible: z.ZodOptional<z.ZodBoolean>;
142
+ profileHint: z.ZodOptional<z.ZodEnum<{
143
+ high: "high";
144
+ mid: "mid";
145
+ low: "low";
146
+ }>>;
132
147
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
133
148
  }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
134
149
  };
@@ -154,6 +169,11 @@ export declare const streamCatalogCapability: {
154
169
  label: z.ZodOptional<z.ZodString>;
155
170
  deviceFeatures: z.ZodOptional<z.ZodArray<z.ZodString>>;
156
171
  autoEligible: z.ZodOptional<z.ZodBoolean>;
172
+ profileHint: z.ZodOptional<z.ZodEnum<{
173
+ high: "high";
174
+ mid: "mid";
175
+ low: "low";
176
+ }>>;
157
177
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
158
178
  }, z.core.$strip>>;
159
179
  lastFetchedAt: z.ZodNumber;
@@ -93,6 +93,7 @@ import type { ptzAutotrackCapability } from '../capabilities/ptz-autotrack.cap.j
93
93
  import type { ptzCapability } from '../capabilities/ptz.cap.js';
94
94
  import type { rebootCapability } from '../capabilities/reboot.cap.js';
95
95
  import type { recordingExportCapability } from '../capabilities/recording-export.cap.js';
96
+ import type { recordingSignalCapability } from '../capabilities/recording-signal.cap.js';
96
97
  import type { recordingCapability } from '../capabilities/recording.cap.js';
97
98
  import type { sceneMonitorCapability } from '../capabilities/scene-monitor.cap.js';
98
99
  import type { scriptRunnerCapability } from '../capabilities/script-runner.cap.js';
@@ -6881,6 +6882,20 @@ export type AppRouter = TrpcCoreRouter<{
6881
6882
  meta: object;
6882
6883
  }>;
6883
6884
  }>>;
6885
+ recordingSignal: TRPCBuiltRouter<{
6886
+ ctx: TrpcContext;
6887
+ meta: object;
6888
+ errorShape: AugmentedErrorShape;
6889
+ transformer: true;
6890
+ }, TRPCDecorateCreateRouterOptions<{
6891
+ getStatus: TRPCQueryProcedure<{
6892
+ input: {
6893
+ [x: string]: unknown;
6894
+ } & z.input<typeof recordingSignalCapability.methods.getStatus.input>;
6895
+ output: z.infer<typeof recordingSignalCapability.methods.getStatus.output>;
6896
+ meta: object;
6897
+ }>;
6898
+ }>>;
6884
6899
  sceneMonitor: TRPCBuiltRouter<{
6885
6900
  ctx: TrpcContext;
6886
6901
  meta: object;
@@ -55,6 +55,7 @@ import type { PrivacyMaskStatusSchema } from '../capabilities/privacy-mask.cap.j
55
55
  import type { PtzStatusSchema } from '../capabilities/ptz.cap.js';
56
56
  import type { PtzAutotrackStatusSchema } from '../capabilities/ptz-autotrack.cap.js';
57
57
  import type { RecordingStatusSchema } from '../capabilities/recording.cap.js';
58
+ import type { RecordingSignalStatusSchema } from '../capabilities/recording-signal.cap.js';
58
59
  import type { SceneMonitorStatusSchema } from '../capabilities/scene-monitor.cap.js';
59
60
  import type { ScriptRunnerStatusSchema } from '../capabilities/script-runner.cap.js';
60
61
  import type { SmokeStatusSchema } from '../capabilities/smoke.cap.js';
@@ -131,6 +132,7 @@ export type CapStatusTypeMap = {
131
132
  readonly 'ptz': z.infer<typeof PtzStatusSchema>;
132
133
  readonly 'ptz-autotrack': z.infer<typeof PtzAutotrackStatusSchema>;
133
134
  readonly 'recording': z.infer<typeof RecordingStatusSchema>;
135
+ readonly 'recording-signal': z.infer<typeof RecordingSignalStatusSchema>;
134
136
  readonly 'scene-monitor': z.infer<typeof SceneMonitorStatusSchema>;
135
137
  readonly 'script-runner': z.infer<typeof ScriptRunnerStatusSchema>;
136
138
  readonly 'smoke': z.infer<typeof SmokeStatusSchema>;
@@ -153,4 +155,4 @@ export type CapNameWithStatus = keyof CapStatusTypeMap;
153
155
  * aggregator to enumerate caps whose `status` should be polled +
154
156
  * streamed via `subscribeDeviceStatusAggregate`.
155
157
  */
156
- export declare const CAP_NAMES_WITH_STATUS: readonly ["accessories", "air-quality-sensor", "alarm-panel", "ambient-light-sensor", "automation-control", "battery", "binary", "brightness", "broker", "camera-credentials", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "day-night", "device-adoption", "device-discovery", "device-export", "device-status", "doorbell", "enum-sensor", "event-emitter", "fan-control", "feature-probe", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "intercom", "lawn-mower-control", "lock-control", "media-player", "motion", "motion-trigger", "motion-zones", "mqtt-broker", "native-object-detection", "navigation", "network-link", "notifier", "numeric-sensor", "osd", "pet-feeder", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "recording", "scene-monitor", "script-runner", "smoke", "snapshot", "stream-params", "switch", "tamper", "temperature-sensor", "update", "vacuum-control", "valve", "vibration", "water-heater", "weather"];
158
+ export declare const CAP_NAMES_WITH_STATUS: readonly ["accessories", "air-quality-sensor", "alarm-panel", "ambient-light-sensor", "automation-control", "battery", "binary", "brightness", "broker", "camera-credentials", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "day-night", "device-adoption", "device-discovery", "device-export", "device-status", "doorbell", "enum-sensor", "event-emitter", "fan-control", "feature-probe", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "intercom", "lawn-mower-control", "lock-control", "media-player", "motion", "motion-trigger", "motion-zones", "mqtt-broker", "native-object-detection", "navigation", "network-link", "notifier", "numeric-sensor", "osd", "pet-feeder", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "recording", "recording-signal", "scene-monitor", "script-runner", "smoke", "snapshot", "stream-params", "switch", "tamper", "temperature-sensor", "update", "vacuum-control", "valve", "vibration", "water-heater", "weather"];
@@ -115,6 +115,7 @@ export { ptzAutotrackCapability } from '../capabilities/ptz-autotrack.cap.js';
115
115
  export { rebootCapability } from '../capabilities/reboot.cap.js';
116
116
  export { recordingCapability } from '../capabilities/recording.cap.js';
117
117
  export { recordingExportCapability } from '../capabilities/recording-export.cap.js';
118
+ export { recordingSignalCapability } from '../capabilities/recording-signal.cap.js';
118
119
  export { sceneMonitorCapability } from '../capabilities/scene-monitor.cap.js';
119
120
  export { scriptRunnerCapability } from '../capabilities/script-runner.cap.js';
120
121
  export { serverManagementCapability } from '../capabilities/server-management.cap.js';
@@ -270,6 +271,7 @@ export declare const CAPABILITY_NAMES: {
270
271
  readonly reboot: "reboot";
271
272
  readonly recording: "recording";
272
273
  readonly recordingExport: "recording-export";
274
+ readonly recordingSignal: "recording-signal";
273
275
  readonly sceneMonitor: "scene-monitor";
274
276
  readonly scriptRunner: "script-runner";
275
277
  readonly serverManagement: "server-management";
@@ -438,6 +440,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
438
440
  readonly reboot: TRouter;
439
441
  readonly recording: TRouter;
440
442
  readonly recordingExport: TRouter;
443
+ readonly recordingSignal: TRouter;
441
444
  readonly sceneMonitor: TRouter;
442
445
  readonly scriptRunner: TRouter;
443
446
  readonly serverManagement: TRouter;
@@ -476,8 +479,8 @@ export interface CapabilityRouterMap<TRouter = unknown> {
476
479
  readonly zoneRules: TRouter;
477
480
  readonly zones: TRouter;
478
481
  }
479
- /** Capability names whose mode is `singleton` (127 caps). */
480
- export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "air-quality-sensor", "alarm-panel", "alerts", "ambient-light-sensor", "audio-analysis", "audio-analyzer", "audio-codec", "audio-metrics", "automation-control", "backup", "battery", "binary", "brightness", "button", "camera-credentials", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "core-blocks", "cover", "day-night", "decoder", "detection-pipeline", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "events", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "integrations", "intercom", "lawn-mower-control", "llm-runtime", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "navigation", "network-link", "network-quality", "nodes", "notification-rules", "notifier", "numeric-sensor", "osd", "osd-manager", "pet-feeder", "pipeline-analytics", "pipeline-executor", "pipeline-orchestrator", "pipeline-runner", "plate-gallery", "platform-probe", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "reboot", "recording", "recording-export", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "storage-migration", "stream-broker", "stream-catalog", "stream-params", "switch", "system", "tamper", "temperature-sensor", "terminal-session", "toast", "update", "user-management", "vacuum-control", "valve", "vector-store", "vibration", "videoclips", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
482
+ /** Capability names whose mode is `singleton` (128 caps). */
483
+ export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "air-quality-sensor", "alarm-panel", "alerts", "ambient-light-sensor", "audio-analysis", "audio-analyzer", "audio-codec", "audio-metrics", "automation-control", "backup", "battery", "binary", "brightness", "button", "camera-credentials", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "core-blocks", "cover", "day-night", "decoder", "detection-pipeline", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "events", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "integrations", "intercom", "lawn-mower-control", "llm-runtime", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "navigation", "network-link", "network-quality", "nodes", "notification-rules", "notifier", "numeric-sensor", "osd", "osd-manager", "pet-feeder", "pipeline-analytics", "pipeline-executor", "pipeline-orchestrator", "pipeline-runner", "plate-gallery", "platform-probe", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "reboot", "recording", "recording-export", "recording-signal", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "storage-migration", "stream-broker", "stream-catalog", "stream-params", "switch", "system", "tamper", "temperature-sensor", "terminal-session", "toast", "update", "user-management", "vacuum-control", "valve", "vector-store", "vibration", "videoclips", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
481
484
  /** Union of singleton capability names (literal string union). */
482
485
  export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
483
486
  /** Capability names whose mode is `collection` (27 caps). */
@@ -48,6 +48,7 @@ import { presenceCapability } from '../capabilities/presence.cap.js';
48
48
  import { pressureSensorCapability } from '../capabilities/pressure-sensor.cap.js';
49
49
  import { privacyMaskCapability } from '../capabilities/privacy-mask.cap.js';
50
50
  import { ptzAutotrackCapability } from '../capabilities/ptz-autotrack.cap.js';
51
+ import { recordingSignalCapability } from '../capabilities/recording-signal.cap.js';
51
52
  import { sceneMonitorCapability } from '../capabilities/scene-monitor.cap.js';
52
53
  import { scriptRunnerCapability } from '../capabilities/script-runner.cap.js';
53
54
  import { smokeCapability } from '../capabilities/smoke.cap.js';
@@ -126,6 +127,7 @@ export interface DeviceLocalState {
126
127
  pressureSensor: InferRuntimeState<typeof pressureSensorCapability>;
127
128
  privacyMask: InferRuntimeState<typeof privacyMaskCapability>;
128
129
  ptzAutotrack: InferRuntimeState<typeof ptzAutotrackCapability>;
130
+ recordingSignal: InferRuntimeState<typeof recordingSignalCapability>;
129
131
  sceneMonitor: InferRuntimeState<typeof sceneMonitorCapability>;
130
132
  scriptRunner: InferRuntimeState<typeof scriptRunnerCapability>;
131
133
  smoke: InferRuntimeState<typeof smokeCapability>;
@@ -214,6 +216,7 @@ export interface CapNameToRuntimeStateMap {
214
216
  'pressure-sensor': InferRuntimeState<typeof pressureSensorCapability>;
215
217
  'privacy-mask': InferRuntimeState<typeof privacyMaskCapability>;
216
218
  'ptz-autotrack': InferRuntimeState<typeof ptzAutotrackCapability>;
219
+ 'recording-signal': InferRuntimeState<typeof recordingSignalCapability>;
217
220
  'scene-monitor': InferRuntimeState<typeof sceneMonitorCapability>;
218
221
  'script-runner': InferRuntimeState<typeof scriptRunnerCapability>;
219
222
  'smoke': InferRuntimeState<typeof smokeCapability>;
@@ -64,6 +64,7 @@ import type { privacyMaskCapability } from '../capabilities/privacy-mask.cap.js'
64
64
  import type { ptzCapability } from '../capabilities/ptz.cap.js';
65
65
  import type { ptzAutotrackCapability } from '../capabilities/ptz-autotrack.cap.js';
66
66
  import type { rebootCapability } from '../capabilities/reboot.cap.js';
67
+ import type { recordingSignalCapability } from '../capabilities/recording-signal.cap.js';
67
68
  import type { sceneMonitorCapability } from '../capabilities/scene-monitor.cap.js';
68
69
  import type { scriptRunnerCapability } from '../capabilities/script-runner.cap.js';
69
70
  import type { smokeCapability } from '../capabilities/smoke.cap.js';
@@ -156,6 +157,7 @@ export interface DeviceProxyState {
156
157
  readonly pressureSensor: SliceHandle<InferRuntimeState<typeof pressureSensorCapability>>;
157
158
  readonly privacyMask: SliceHandle<InferRuntimeState<typeof privacyMaskCapability>>;
158
159
  readonly ptzAutotrack: SliceHandle<InferRuntimeState<typeof ptzAutotrackCapability>>;
160
+ readonly recordingSignal: SliceHandle<InferRuntimeState<typeof recordingSignalCapability>>;
159
161
  readonly sceneMonitor: SliceHandle<InferRuntimeState<typeof sceneMonitorCapability>>;
160
162
  readonly scriptRunner: SliceHandle<InferRuntimeState<typeof scriptRunnerCapability>>;
161
163
  readonly smoke: SliceHandle<InferRuntimeState<typeof smokeCapability>>;
@@ -254,6 +256,7 @@ export interface DeviceProxy {
254
256
  readonly ptz?: InferDeviceProxyCap<typeof ptzCapability>;
255
257
  readonly ptzAutotrack?: InferDeviceProxyCap<typeof ptzAutotrackCapability>;
256
258
  readonly reboot?: InferDeviceProxyCap<typeof rebootCapability>;
259
+ readonly recordingSignal?: InferDeviceProxyCap<typeof recordingSignalCapability>;
257
260
  readonly sceneMonitor?: InferDeviceProxyCap<typeof sceneMonitorCapability>;
258
261
  readonly scriptRunner?: InferDeviceProxyCap<typeof scriptRunnerCapability>;
259
262
  readonly smoke?: InferDeviceProxyCap<typeof smokeCapability>;
@@ -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: 1019 method paths across 127 capabilities.
9
+ * Coverage: 1020 method paths across 128 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: 366 methods carry a device reference, of which
9
+ * Coverage: 367 methods carry a device reference, of which
10
10
  * 134 are on SYSTEM-scope caps.
11
11
  *
12
12
  * Top-level fields, number arrays, and one-level arrays of objects carrying
@@ -11,7 +11,7 @@ export interface RuntimeStatePolicy {
11
11
  }
12
12
  /**
13
13
  * Per-cap runtime-state policy, projected from every `*.cap.ts` that declares
14
- * `runtimeState`. 66 caps: 35 `restored`, 31 `session`.
14
+ * `runtimeState`. 67 caps: 35 `restored`, 32 `session`.
15
15
  *
16
16
  * A cap absent from this map has no runtime-state slice at all. A cap PRESENT
17
17
  * with `durability: 'session'` has one and has decided not to keep it.