@camstack/types 1.2.40 → 1.2.42
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 +1 -1
- package/dist/addon.mjs +1 -1
- package/dist/canonical-hash-7nfBbEqR.mjs +35 -0
- package/dist/canonical-hash-BcZHRHIx.js +40 -0
- package/dist/capabilities/index.d.ts +2 -2
- package/dist/capabilities/notification-rules.cap.d.ts +41 -0
- package/dist/capabilities/pipeline-analytics.cap.d.ts +93 -6
- package/dist/capabilities/pipeline-orchestrator.cap.d.ts +123 -0
- package/dist/capabilities/pipeline-runner.cap.d.ts +143 -7
- package/dist/capabilities/platform-probe.cap.d.ts +3 -3
- package/dist/capabilities/recording.cap.d.ts +3 -0
- package/dist/capabilities/stream-broker.cap.d.ts +300 -0
- package/dist/encode-profile.d.ts +2 -0
- package/dist/ffmpeg/encode-defaults.d.ts +89 -0
- package/dist/ffmpeg/hwaccel.d.ts +98 -0
- package/dist/ffmpeg/invocation.d.ts +250 -0
- package/dist/ffmpeg/process.d.ts +135 -0
- package/dist/ffmpeg/sharing-key.d.ts +39 -0
- package/dist/generated/addon-api.d.ts +56 -0
- package/dist/generated/device-proxy.d.ts +1 -1
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/system-proxy.d.ts +2 -2
- package/dist/index.d.ts +6 -0
- package/dist/index.js +1595 -28
- package/dist/index.mjs +1548 -29
- package/dist/interfaces/camera-switches.d.ts +217 -0
- package/dist/interfaces/ops-log.d.ts +4 -0
- package/dist/interfaces/pipeline-runner-capability.d.ts +9 -1
- package/dist/node.d.ts +2 -0
- package/dist/node.js +270 -36
- package/dist/node.mjs +269 -36
- package/dist/pipeline/detail-crop.d.ts +122 -0
- package/dist/{sleep-CXimb854.mjs → sleep-BmNKsY7v.mjs} +5 -0
- package/dist/{sleep-DTce7-ch.js → sleep-Cvi1JxZp.js} +5 -0
- package/package.json +1 -1
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-BE4PDZ_3.js");
|
|
3
|
-
const require_sleep = require("./sleep-
|
|
3
|
+
const require_sleep = require("./sleep-Cvi1JxZp.js");
|
|
4
4
|
const require_err_msg = require("./err-msg-COpsHMw2.js");
|
|
5
5
|
//#region src/generated/collection-array-methods.ts
|
|
6
6
|
/**
|
package/dist/addon.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as EventCategory } from "./event-category-41fKf-q9.mjs";
|
|
2
|
-
import { B as scopeKey, C as DeviceType, F as readNodePin, I as ReadinessRegistry, L as ReadinessTimeoutError, O as expandCapMethods, P as nodePin, a as asJsonObject, d as DEVICE_SCOPED_CAPS, f as isDeviceScopedCap, ft as DATAPLANE_SECRET_HEADER, ht as normalizeAddonInitResult, mt as BaseAddon, p as createDeviceProxy, pt as DisposerChain, s as asString, t as sleep, u as parseJsonUnknown, v as deviceOpsCapability, vt as emitReadiness, w as adminUiCapability, y as viewerUiCapability } from "./sleep-
|
|
2
|
+
import { B as scopeKey, C as DeviceType, F as readNodePin, I as ReadinessRegistry, L as ReadinessTimeoutError, O as expandCapMethods, P as nodePin, a as asJsonObject, d as DEVICE_SCOPED_CAPS, f as isDeviceScopedCap, ft as DATAPLANE_SECRET_HEADER, ht as normalizeAddonInitResult, mt as BaseAddon, p as createDeviceProxy, pt as DisposerChain, s as asString, t as sleep, u as parseJsonUnknown, v as deviceOpsCapability, vt as emitReadiness, w as adminUiCapability, y as viewerUiCapability } from "./sleep-BmNKsY7v.mjs";
|
|
3
3
|
import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
|
|
4
4
|
//#region src/generated/collection-array-methods.ts
|
|
5
5
|
/**
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
//#region src/utils/canonical-hash.ts
|
|
3
|
+
/**
|
|
4
|
+
* Deterministic SHA-256 hash of an arbitrary serialisable value. The
|
|
5
|
+
* canonical form sorts object keys alphabetically at every depth so two
|
|
6
|
+
* structurally-equal inputs with different key insertion orders produce
|
|
7
|
+
* the same hash. Returns a 64-char lowercase hex digest.
|
|
8
|
+
*
|
|
9
|
+
* Used by export adapters (Alexa, HAP) to short-circuit re-discovery /
|
|
10
|
+
* accessory-rebuild work when the upstream shape is byte-identical to
|
|
11
|
+
* the last applied state — preventing user-visible "re-discovery"
|
|
12
|
+
* notifications on every addon-runner respawn. Each respawn re-fires
|
|
13
|
+
* `DeviceBindingsChanged` for every cap registration, which without
|
|
14
|
+
* this guard would propagate redundant pushes.
|
|
15
|
+
*
|
|
16
|
+
* Note: this is a SYMPTOMATIC fix layered on top of the binding-change
|
|
17
|
+
* subscription. The proper fix is a single "device ready" lifecycle
|
|
18
|
+
* barrier so exports react only when the full cap set has landed —
|
|
19
|
+
* tracked separately for post-HA-integration work.
|
|
20
|
+
*/
|
|
21
|
+
function canonicalHash(value) {
|
|
22
|
+
const canonical = JSON.stringify(value, replaceWithSortedKeys);
|
|
23
|
+
return createHash("sha256").update(canonical ?? "").digest("hex");
|
|
24
|
+
}
|
|
25
|
+
function replaceWithSortedKeys(_key, value) {
|
|
26
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
27
|
+
const obj = value;
|
|
28
|
+
const out = {};
|
|
29
|
+
for (const k of Object.keys(obj).toSorted()) out[k] = obj[k];
|
|
30
|
+
return out;
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
export { canonicalHash as t };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
let node_crypto = require("node:crypto");
|
|
2
|
+
//#region src/utils/canonical-hash.ts
|
|
3
|
+
/**
|
|
4
|
+
* Deterministic SHA-256 hash of an arbitrary serialisable value. The
|
|
5
|
+
* canonical form sorts object keys alphabetically at every depth so two
|
|
6
|
+
* structurally-equal inputs with different key insertion orders produce
|
|
7
|
+
* the same hash. Returns a 64-char lowercase hex digest.
|
|
8
|
+
*
|
|
9
|
+
* Used by export adapters (Alexa, HAP) to short-circuit re-discovery /
|
|
10
|
+
* accessory-rebuild work when the upstream shape is byte-identical to
|
|
11
|
+
* the last applied state — preventing user-visible "re-discovery"
|
|
12
|
+
* notifications on every addon-runner respawn. Each respawn re-fires
|
|
13
|
+
* `DeviceBindingsChanged` for every cap registration, which without
|
|
14
|
+
* this guard would propagate redundant pushes.
|
|
15
|
+
*
|
|
16
|
+
* Note: this is a SYMPTOMATIC fix layered on top of the binding-change
|
|
17
|
+
* subscription. The proper fix is a single "device ready" lifecycle
|
|
18
|
+
* barrier so exports react only when the full cap set has landed —
|
|
19
|
+
* tracked separately for post-HA-integration work.
|
|
20
|
+
*/
|
|
21
|
+
function canonicalHash(value) {
|
|
22
|
+
const canonical = JSON.stringify(value, replaceWithSortedKeys);
|
|
23
|
+
return (0, node_crypto.createHash)("sha256").update(canonical ?? "").digest("hex");
|
|
24
|
+
}
|
|
25
|
+
function replaceWithSortedKeys(_key, value) {
|
|
26
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
27
|
+
const obj = value;
|
|
28
|
+
const out = {};
|
|
29
|
+
for (const k of Object.keys(obj).toSorted()) out[k] = obj[k];
|
|
30
|
+
return out;
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
Object.defineProperty(exports, "canonicalHash", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
get: function() {
|
|
38
|
+
return canonicalHash;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
@@ -76,12 +76,12 @@ export { NetworkAccessStatusSchema, NetworkEndpointSchema, networkAccessCapabili
|
|
|
76
76
|
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';
|
|
77
77
|
export { type INotificationRulesProvider, NC_CONDITION_CATALOG, 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 NcConditionDescriptor, NcConditionDescriptorSchema, type NcConditions, NcConditionsSchema, 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 NcSchedule, NcScheduleSchema, type NcScheduleWindow, NcScheduleWindowSchema, type NcSnooze, type NcSnoozeInput, NcSnoozeInputSchema, NcSnoozeSchema, type NcSnoozeScope, NcSnoozeScopeSchema, type NcSnoozeSuppressed, NcSnoozeSuppressedSchema, type NcTestResult, NcTestResultSchema, type NcThrottle, type NcThrottleGranularity, NcThrottleGranularitySchema, NcThrottleSchema, type NcZoneCondition, NcZoneConditionSchema, notificationRulesCapability, } from './notification-rules.cap.js';
|
|
78
78
|
export { type IOauthIntegrationProvider, type OauthIntegrationDescriptor, OauthIntegrationDescriptorSchema, oauthIntegrationCapability, } from './oauth-integration.cap.js';
|
|
79
|
-
export { type AudioEvent, AudioEventSchema, type DetectionSource, DetectionSourceSchema, type EventKind, type EventKindCategory, EventKindCategorySchema, type EventKindDescriptor, EventKindDescriptorSchema, type EventKindIcon, EventKindIconSchema, EventKindSchema, type EventKindsForDevice, EventKindsForDeviceSchema, type EventPruneCounts, type EventStoreDeviceFootprint, type EventStoreFootprint, type IPipelineAnalyticsProvider, type KeyEvent, KeyEventSchema, type MediaFile, type MediaFileInfo, MediaFileInfoSchema, type MediaFileKind, MediaFileSchema, type MotionEvent, MotionEventSchema, type ObjectEvent, ObjectEventSchema, pipelineAnalyticsCapability, type RecentTracksPage, RecentTracksPageSchema, type RecentTracksQuery, RecentTracksQueryInput, type ScoredObjectEvent, ScoredObjectEventSchema, type SensorEvent, SensorEventSchema, type Track, type TrackCascadeCounts, TrackCascadeCountsSchema, type TrackEnvelope, TrackEnvelopeSchema, TrackedDetectionSchema, type TrackProjection, TrackProjectionSchema, TrackSchema, type TrackState, TrackStateSchema, type TrackZoneFilter, TrackZoneFilterSchema, type ZoneCrossing, type ZoneCrossingDirection, ZoneCrossingDirectionSchema, ZoneCrossingSchema, } from './pipeline-analytics.cap.js';
|
|
79
|
+
export { type AudioEvent, AudioEventSchema, type DetectionSource, DetectionSourceSchema, type EventKind, type EventKindCategory, EventKindCategorySchema, type EventKindDescriptor, EventKindDescriptorSchema, type EventKindIcon, EventKindIconSchema, EventKindSchema, type EventKindsForDevice, EventKindsForDeviceSchema, type EventPruneCounts, type EventStoreDeviceFootprint, type EventStoreFootprint, type IPipelineAnalyticsProvider, type KeyEvent, KeyEventSchema, type MediaFile, type MediaFileInfo, MediaFileInfoSchema, type MediaFileKind, MediaFileSchema, type MotionEvent, MotionEventSchema, type ObjectEvent, ObjectEventSchema, pipelineAnalyticsCapability, type RecentTracksPage, RecentTracksPageSchema, type RecentTracksQuery, RecentTracksQueryInput, 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 ZoneCrossing, type ZoneCrossingDirection, ZoneCrossingDirectionSchema, ZoneCrossingSchema, } from './pipeline-analytics.cap.js';
|
|
80
80
|
export type { NativeCropRef, PipelineStepInputOutput, PipelineValidationIssue, PipelineValidationResult, } from './pipeline-executor.cap.js';
|
|
81
81
|
export { ModelSubstitutionSchema, NativeCropRefSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, pipelineExecutorCapability, } from './pipeline-executor.cap.js';
|
|
82
82
|
export type { CameraAssignmentStatus, CameraAudioStatus, CameraBrokerProfile, CameraBrokerStatus, CameraDecoderShm, CameraDecoderStatus, CameraDetectionPhase, CameraDetectionProvisioning, CameraDetectionProvisioningState, CameraDetectionStatus, CameraMotionStatus, CameraRecordingMode, CameraRecordingStatus, CameraSourceStatus, CameraSourceStream, CameraStatus, IngestOwner, NodeInferenceDevice, NodeInferenceDevices, } from './pipeline-orchestrator.cap.js';
|
|
83
83
|
export { AgentLoadSummarySchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusSchema, CapabilityBindingsSchema, GlobalMetricsSchema, IngestOwnerSchema, PipelineAssignmentSchema, pipelineOrchestratorCapability, } from './pipeline-orchestrator.cap.js';
|
|
84
|
-
export type { DetailParent, DetailResult, MotionSource, MotionSources, ReportMotionInput, RunDetailSubtreeInput, RunDetailSubtreeResult, RunnerFrameSource, RunnerInferenceDevice, } from './pipeline-runner.cap.js';
|
|
84
|
+
export type { DetailParent, DetailResult, MotionSource, MotionSources, ReportMotionInput, RunDetailSubtreeInput, RunDetailSubtreeResult, RunnerFrameSource, RunnerInferenceDevice, RunStatelessStepInput, RunStatelessStepResult, StatelessStepRefusal, } from './pipeline-runner.cap.js';
|
|
85
85
|
export { MotionSourceEnum, MotionSourcesSchema, NativeCropBboxSchema, NativeCropResultSchema, pipelineRunnerCapability, ReportMotionInputSchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, } from './pipeline-runner.cap.js';
|
|
86
86
|
export { AudioChunkInputSchema, AudioClassificationLabelSchema, AudioLevelSchema, BoundingBoxSchema, FrameInputSchema, SpatialDetectionSchema, } from './schemas/detection-shared.js';
|
|
87
87
|
export { CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, OrchestratorMetricsSchema, } from './schemas/orchestrator-metrics.js';
|
|
@@ -334,6 +334,7 @@ export declare const NcConditionsSchema: z.ZodObject<{
|
|
|
334
334
|
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
335
335
|
source: z.ZodOptional<z.ZodEnum<{
|
|
336
336
|
sensor: "sensor";
|
|
337
|
+
audio: "audio";
|
|
337
338
|
any: "any";
|
|
338
339
|
pipeline: "pipeline";
|
|
339
340
|
onboard: "onboard";
|
|
@@ -500,6 +501,7 @@ export declare const NcRuleInputSchema: z.ZodObject<{
|
|
|
500
501
|
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
501
502
|
source: z.ZodOptional<z.ZodEnum<{
|
|
502
503
|
sensor: "sensor";
|
|
504
|
+
audio: "audio";
|
|
503
505
|
any: "any";
|
|
504
506
|
pipeline: "pipeline";
|
|
505
507
|
onboard: "onboard";
|
|
@@ -679,6 +681,7 @@ export declare const NcRulePatchSchema: z.ZodObject<{
|
|
|
679
681
|
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
680
682
|
source: z.ZodOptional<z.ZodEnum<{
|
|
681
683
|
sensor: "sensor";
|
|
684
|
+
audio: "audio";
|
|
682
685
|
any: "any";
|
|
683
686
|
pipeline: "pipeline";
|
|
684
687
|
onboard: "onboard";
|
|
@@ -851,6 +854,7 @@ export declare const NcRuleSchema: z.ZodObject<{
|
|
|
851
854
|
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
852
855
|
source: z.ZodOptional<z.ZodEnum<{
|
|
853
856
|
sensor: "sensor";
|
|
857
|
+
audio: "audio";
|
|
854
858
|
any: "any";
|
|
855
859
|
pipeline: "pipeline";
|
|
856
860
|
onboard: "onboard";
|
|
@@ -1343,6 +1347,7 @@ export declare const notificationRulesCapability: {
|
|
|
1343
1347
|
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
1344
1348
|
source: z.ZodOptional<z.ZodEnum<{
|
|
1345
1349
|
sensor: "sensor";
|
|
1350
|
+
audio: "audio";
|
|
1346
1351
|
any: "any";
|
|
1347
1352
|
pipeline: "pipeline";
|
|
1348
1353
|
onboard: "onboard";
|
|
@@ -1521,6 +1526,7 @@ export declare const notificationRulesCapability: {
|
|
|
1521
1526
|
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
1522
1527
|
source: z.ZodOptional<z.ZodEnum<{
|
|
1523
1528
|
sensor: "sensor";
|
|
1529
|
+
audio: "audio";
|
|
1524
1530
|
any: "any";
|
|
1525
1531
|
pipeline: "pipeline";
|
|
1526
1532
|
onboard: "onboard";
|
|
@@ -1697,6 +1703,7 @@ export declare const notificationRulesCapability: {
|
|
|
1697
1703
|
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
1698
1704
|
source: z.ZodOptional<z.ZodEnum<{
|
|
1699
1705
|
sensor: "sensor";
|
|
1706
|
+
audio: "audio";
|
|
1700
1707
|
any: "any";
|
|
1701
1708
|
pipeline: "pipeline";
|
|
1702
1709
|
onboard: "onboard";
|
|
@@ -1867,6 +1874,7 @@ export declare const notificationRulesCapability: {
|
|
|
1867
1874
|
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
1868
1875
|
source: z.ZodOptional<z.ZodEnum<{
|
|
1869
1876
|
sensor: "sensor";
|
|
1877
|
+
audio: "audio";
|
|
1870
1878
|
any: "any";
|
|
1871
1879
|
pipeline: "pipeline";
|
|
1872
1880
|
onboard: "onboard";
|
|
@@ -2046,6 +2054,7 @@ export declare const notificationRulesCapability: {
|
|
|
2046
2054
|
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
2047
2055
|
source: z.ZodOptional<z.ZodEnum<{
|
|
2048
2056
|
sensor: "sensor";
|
|
2057
|
+
audio: "audio";
|
|
2049
2058
|
any: "any";
|
|
2050
2059
|
pipeline: "pipeline";
|
|
2051
2060
|
onboard: "onboard";
|
|
@@ -2217,6 +2226,7 @@ export declare const notificationRulesCapability: {
|
|
|
2217
2226
|
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
2218
2227
|
source: z.ZodOptional<z.ZodEnum<{
|
|
2219
2228
|
sensor: "sensor";
|
|
2229
|
+
audio: "audio";
|
|
2220
2230
|
any: "any";
|
|
2221
2231
|
pipeline: "pipeline";
|
|
2222
2232
|
onboard: "onboard";
|
|
@@ -2363,6 +2373,36 @@ export declare const notificationRulesCapability: {
|
|
|
2363
2373
|
}, z.core.$strip>, z.ZodObject<{
|
|
2364
2374
|
success: z.ZodLiteral<true>;
|
|
2365
2375
|
}, z.core.$strip>, "mutation">;
|
|
2376
|
+
/**
|
|
2377
|
+
* PERMANENT per-camera mute — the notifications half of the per-camera
|
|
2378
|
+
* function switch group ([D61](../../../../docs/decisions/adr-0067.md)).
|
|
2379
|
+
*
|
|
2380
|
+
* Deliberately NOT a snooze. A snooze is bounded at
|
|
2381
|
+
* {@link NC_SNOOZE_MAX_MINUTES} on purpose — "a snooze that could not
|
|
2382
|
+
* expire would be an outage the operator asked for once and forgot" — and
|
|
2383
|
+
* widening it to express "this camera never notifies" would destroy that
|
|
2384
|
+
* property for every snooze. A mute is the other thing: an explicit,
|
|
2385
|
+
* indefinite, admin-only decision, visible in the switch group next to the
|
|
2386
|
+
* other four, and reported on `CameraStatus.switchedOff` so a silent
|
|
2387
|
+
* camera never reads as a working one.
|
|
2388
|
+
*
|
|
2389
|
+
* Returned as ONE list rather than a per-camera query: the group's reader
|
|
2390
|
+
* needs every camera's state, and a per-camera fan-out over the viewer's
|
|
2391
|
+
* single WebSocket is N frames serialised on one socket.
|
|
2392
|
+
*/
|
|
2393
|
+
readonly listDeviceMutes: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
|
|
2394
|
+
mutedDeviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
|
|
2395
|
+
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
2396
|
+
/**
|
|
2397
|
+
* Mute or unmute one camera. Idempotent; an unmute of a camera that was
|
|
2398
|
+
* never muted succeeds.
|
|
2399
|
+
*/
|
|
2400
|
+
readonly setDeviceMuted: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2401
|
+
deviceId: z.ZodNumber;
|
|
2402
|
+
muted: z.ZodBoolean;
|
|
2403
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2404
|
+
success: z.ZodLiteral<true>;
|
|
2405
|
+
}, z.core.$strip>, "mutation">;
|
|
2366
2406
|
/**
|
|
2367
2407
|
* Dry-run a rule against recently persisted records (object events for
|
|
2368
2408
|
* `immediate`, closed tracks for `track-end`). Mutation kind only to
|
|
@@ -2411,6 +2451,7 @@ export declare const notificationRulesCapability: {
|
|
|
2411
2451
|
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
2412
2452
|
source: z.ZodOptional<z.ZodEnum<{
|
|
2413
2453
|
sensor: "sensor";
|
|
2454
|
+
audio: "audio";
|
|
2414
2455
|
any: "any";
|
|
2415
2456
|
pipeline: "pipeline";
|
|
2416
2457
|
onboard: "onboard";
|
|
@@ -229,17 +229,48 @@ declare const TrackAudioLabelSchema: z.ZodObject<{
|
|
|
229
229
|
export type TrackAudioLabel = z.infer<typeof TrackAudioLabelSchema>;
|
|
230
230
|
/**
|
|
231
231
|
* How a track was produced. `pipeline` (default / absent) = the spatial
|
|
232
|
-
* detection+tracking pipeline.
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
232
|
+
* detection+tracking pipeline. Every OTHER value is a SYNTHETIC projection —
|
|
233
|
+
* no positions, a single snapshot, and no bbox trajectory at all:
|
|
234
|
+
*
|
|
235
|
+
* - `sensor` — a linked sensor/control device state change.
|
|
236
|
+
* - `audio` — an audio event on the camera itself that was anomalous for
|
|
237
|
+
* THAT camera, loud, and heard while nothing visual was happening (D62).
|
|
238
|
+
*
|
|
239
|
+
* The spatial subsystems (tracker association, occupancy count, re-id /
|
|
240
|
+
* embedding, resurrection) MUST skip every synthetic source. Test for that
|
|
241
|
+
* with `isSpatialTrack`, which allow-lists `pipeline` — a `!== 'sensor'`
|
|
242
|
+
* check silently readmits every source added after it was written.
|
|
236
243
|
*/
|
|
237
244
|
export declare const TrackSourceSchema: z.ZodEnum<{
|
|
238
245
|
sensor: "sensor";
|
|
246
|
+
audio: "audio";
|
|
239
247
|
pipeline: "pipeline";
|
|
240
248
|
}>;
|
|
241
249
|
export type TrackSource = z.infer<typeof TrackSourceSchema>;
|
|
250
|
+
/**
|
|
251
|
+
* The write half: a PARTIAL patch. An omitted key is left untouched, so setting
|
|
252
|
+
* one flag can never clear the other — the toggles are independent and are
|
|
253
|
+
* driven from three surfaces that do not know about each other.
|
|
254
|
+
*/
|
|
255
|
+
export declare const TrackFlagsPatchSchema: z.ZodObject<{
|
|
256
|
+
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
257
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
258
|
+
}, z.core.$strip>;
|
|
259
|
+
export type TrackFlagsPatch = z.infer<typeof TrackFlagsPatchSchema>;
|
|
260
|
+
/**
|
|
261
|
+
* The resolved flag state after a write. Both fields are REQUIRED here (absent
|
|
262
|
+
* collapses to `false`) so a caller can drive a toggle's checked state off the
|
|
263
|
+
* mutation result without a re-fetch.
|
|
264
|
+
*/
|
|
265
|
+
export declare const TrackFlagsSchema: z.ZodObject<{
|
|
266
|
+
trackId: z.ZodString;
|
|
267
|
+
markForTrain: z.ZodBoolean;
|
|
268
|
+
debug: z.ZodBoolean;
|
|
269
|
+
}, z.core.$strip>;
|
|
270
|
+
export type TrackFlags = z.infer<typeof TrackFlagsSchema>;
|
|
242
271
|
declare const TrackSchema: z.ZodObject<{
|
|
272
|
+
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
273
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
243
274
|
trackId: z.ZodString;
|
|
244
275
|
deviceId: z.ZodNumber;
|
|
245
276
|
className: z.ZodString;
|
|
@@ -247,6 +278,7 @@ declare const TrackSchema: z.ZodObject<{
|
|
|
247
278
|
producingDeviceName: z.ZodOptional<z.ZodString>;
|
|
248
279
|
source: z.ZodOptional<z.ZodEnum<{
|
|
249
280
|
sensor: "sensor";
|
|
281
|
+
audio: "audio";
|
|
250
282
|
pipeline: "pipeline";
|
|
251
283
|
}>>;
|
|
252
284
|
firstSeen: z.ZodNumber;
|
|
@@ -518,6 +550,8 @@ declare const RecentTracksQueryInput: z.ZodObject<{
|
|
|
518
550
|
export type RecentTracksQuery = z.infer<typeof RecentTracksQueryInput>;
|
|
519
551
|
declare const RecentTracksPageSchema: z.ZodObject<{
|
|
520
552
|
tracks: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
553
|
+
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
554
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
521
555
|
trackId: z.ZodString;
|
|
522
556
|
deviceId: z.ZodNumber;
|
|
523
557
|
className: z.ZodString;
|
|
@@ -525,6 +559,7 @@ declare const RecentTracksPageSchema: z.ZodObject<{
|
|
|
525
559
|
producingDeviceName: z.ZodOptional<z.ZodString>;
|
|
526
560
|
source: z.ZodOptional<z.ZodEnum<{
|
|
527
561
|
sensor: "sensor";
|
|
562
|
+
audio: "audio";
|
|
528
563
|
pipeline: "pipeline";
|
|
529
564
|
}>>;
|
|
530
565
|
firstSeen: z.ZodNumber;
|
|
@@ -587,6 +622,8 @@ declare const RecentTracksPageSchema: z.ZodObject<{
|
|
|
587
622
|
}, z.core.$strip>;
|
|
588
623
|
export type RecentTracksPage = z.infer<typeof RecentTracksPageSchema>;
|
|
589
624
|
declare const KeyEventSchema: z.ZodObject<{
|
|
625
|
+
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
626
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
590
627
|
id: z.ZodString;
|
|
591
628
|
trackId: z.ZodString;
|
|
592
629
|
timestamp: z.ZodNumber;
|
|
@@ -707,6 +744,8 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
707
744
|
readonly getActiveTracks: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
708
745
|
deviceId: z.ZodNumber;
|
|
709
746
|
}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
747
|
+
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
748
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
710
749
|
trackId: z.ZodString;
|
|
711
750
|
deviceId: z.ZodNumber;
|
|
712
751
|
className: z.ZodString;
|
|
@@ -714,6 +753,7 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
714
753
|
producingDeviceName: z.ZodOptional<z.ZodString>;
|
|
715
754
|
source: z.ZodOptional<z.ZodEnum<{
|
|
716
755
|
sensor: "sensor";
|
|
756
|
+
audio: "audio";
|
|
717
757
|
pipeline: "pipeline";
|
|
718
758
|
}>>;
|
|
719
759
|
firstSeen: z.ZodNumber;
|
|
@@ -776,6 +816,8 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
776
816
|
deviceId: z.ZodNumber;
|
|
777
817
|
trackId: z.ZodString;
|
|
778
818
|
}, z.core.$strip>, z.ZodNullable<z.ZodObject<{
|
|
819
|
+
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
820
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
779
821
|
trackId: z.ZodString;
|
|
780
822
|
deviceId: z.ZodNumber;
|
|
781
823
|
className: z.ZodString;
|
|
@@ -783,6 +825,7 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
783
825
|
producingDeviceName: z.ZodOptional<z.ZodString>;
|
|
784
826
|
source: z.ZodOptional<z.ZodEnum<{
|
|
785
827
|
sensor: "sensor";
|
|
828
|
+
audio: "audio";
|
|
786
829
|
pipeline: "pipeline";
|
|
787
830
|
}>>;
|
|
788
831
|
firstSeen: z.ZodNumber;
|
|
@@ -867,6 +910,8 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
867
910
|
slim: "slim";
|
|
868
911
|
}>>;
|
|
869
912
|
}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
913
|
+
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
914
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
870
915
|
trackId: z.ZodString;
|
|
871
916
|
deviceId: z.ZodNumber;
|
|
872
917
|
className: z.ZodString;
|
|
@@ -874,6 +919,7 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
874
919
|
producingDeviceName: z.ZodOptional<z.ZodString>;
|
|
875
920
|
source: z.ZodOptional<z.ZodEnum<{
|
|
876
921
|
sensor: "sensor";
|
|
922
|
+
audio: "audio";
|
|
877
923
|
pipeline: "pipeline";
|
|
878
924
|
}>>;
|
|
879
925
|
firstSeen: z.ZodNumber;
|
|
@@ -954,6 +1000,8 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
954
1000
|
}>>;
|
|
955
1001
|
}, z.core.$strip>, z.ZodObject<{
|
|
956
1002
|
tracks: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
1003
|
+
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
1004
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
957
1005
|
trackId: z.ZodString;
|
|
958
1006
|
deviceId: z.ZodNumber;
|
|
959
1007
|
className: z.ZodString;
|
|
@@ -961,6 +1009,7 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
961
1009
|
producingDeviceName: z.ZodOptional<z.ZodString>;
|
|
962
1010
|
source: z.ZodOptional<z.ZodEnum<{
|
|
963
1011
|
sensor: "sensor";
|
|
1012
|
+
audio: "audio";
|
|
964
1013
|
pipeline: "pipeline";
|
|
965
1014
|
}>>;
|
|
966
1015
|
firstSeen: z.ZodNumber;
|
|
@@ -1274,6 +1323,8 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1274
1323
|
minImportance: z.ZodOptional<z.ZodNumber>;
|
|
1275
1324
|
classFilter: z.ZodOptional<z.ZodString>;
|
|
1276
1325
|
}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
1326
|
+
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
1327
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
1277
1328
|
id: z.ZodString;
|
|
1278
1329
|
trackId: z.ZodString;
|
|
1279
1330
|
timestamp: z.ZodNumber;
|
|
@@ -1370,6 +1421,37 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1370
1421
|
deleted: z.ZodNumber;
|
|
1371
1422
|
failed: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
1372
1423
|
}, z.core.$strip>, "mutation">;
|
|
1424
|
+
/**
|
|
1425
|
+
* Set the per-track operator flags (`markForTrain`, `debug`) on ONE track.
|
|
1426
|
+
* The patch is PARTIAL — an omitted key is left untouched — because the
|
|
1427
|
+
* three surfaces that write it (admin Events grid, viewer track detail,
|
|
1428
|
+
* viewer cluster detail) each own one toggle and must not clobber the other.
|
|
1429
|
+
*
|
|
1430
|
+
* Writes the track ROW: `markForTrain`/`debug` are per-TRACK state, so they
|
|
1431
|
+
* live where `label` and `importance` live, not in any per-device settings
|
|
1432
|
+
* store. Updates the in-RAM active track too, so a flag set on a live track
|
|
1433
|
+
* survives its expiry-time persist.
|
|
1434
|
+
*
|
|
1435
|
+
* `auth: 'protected'` (the default), NOT `admin`: the viewer is an
|
|
1436
|
+
* authenticated non-admin surface and two of the three call sites are
|
|
1437
|
+
* there. Revisit if a flag ever gains an effect that costs storage —
|
|
1438
|
+
* `deleteTracks` next door is admin for exactly that reason.
|
|
1439
|
+
*
|
|
1440
|
+
* Returns the RESOLVED state of both flags (absent → `false`) so a caller
|
|
1441
|
+
* can drive its toggle without a re-fetch. Rejects an unknown track.
|
|
1442
|
+
*/
|
|
1443
|
+
readonly setTrackFlags: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
1444
|
+
deviceId: z.ZodNumber;
|
|
1445
|
+
trackId: z.ZodString;
|
|
1446
|
+
flags: z.ZodObject<{
|
|
1447
|
+
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
1448
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
1449
|
+
}, z.core.$strip>;
|
|
1450
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1451
|
+
trackId: z.ZodString;
|
|
1452
|
+
markForTrain: z.ZodBoolean;
|
|
1453
|
+
debug: z.ZodBoolean;
|
|
1454
|
+
}, z.core.$strip>, "mutation">;
|
|
1373
1455
|
/**
|
|
1374
1456
|
* Durable event-store footprint for the management UI: event rows
|
|
1375
1457
|
* (motion + object + audio) counted per camera + total, plus the
|
|
@@ -1398,6 +1480,7 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1398
1480
|
operator: "operator";
|
|
1399
1481
|
retention: "retention";
|
|
1400
1482
|
quota: "quota";
|
|
1483
|
+
maintenance: "maintenance";
|
|
1401
1484
|
}>>;
|
|
1402
1485
|
}, z.core.$strip>, z.ZodObject<{
|
|
1403
1486
|
motion: z.ZodNumber;
|
|
@@ -1471,12 +1554,14 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1471
1554
|
rescan: "rescan";
|
|
1472
1555
|
"retention-run": "retention-run";
|
|
1473
1556
|
relocate: "relocate";
|
|
1557
|
+
"orphan-audit": "orphan-audit";
|
|
1474
1558
|
}>;
|
|
1475
1559
|
reason: z.ZodEnum<{
|
|
1476
1560
|
manual: "manual";
|
|
1477
1561
|
operator: "operator";
|
|
1478
1562
|
retention: "retention";
|
|
1479
1563
|
quota: "quota";
|
|
1564
|
+
maintenance: "maintenance";
|
|
1480
1565
|
}>;
|
|
1481
1566
|
deviceId: z.ZodNullable<z.ZodNumber>;
|
|
1482
1567
|
nodeId: z.ZodString;
|
|
@@ -1664,9 +1749,9 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1664
1749
|
deviceId: z.ZodOptional<z.ZodNumber>;
|
|
1665
1750
|
since: z.ZodOptional<z.ZodNumber>;
|
|
1666
1751
|
until: z.ZodOptional<z.ZodNumber>;
|
|
1667
|
-
cropMargin: z.ZodOptional<z.ZodNumber>;
|
|
1668
|
-
square: z.ZodOptional<z.ZodBoolean>;
|
|
1669
1752
|
maxTracks: z.ZodOptional<z.ZodNumber>;
|
|
1753
|
+
executeOnNodeId: z.ZodOptional<z.ZodString>;
|
|
1754
|
+
pacingMs: z.ZodOptional<z.ZodNumber>;
|
|
1670
1755
|
}, z.core.$strip>, z.ZodObject<{
|
|
1671
1756
|
started: z.ZodBoolean;
|
|
1672
1757
|
alreadyRunning: z.ZodBoolean;
|
|
@@ -1677,6 +1762,8 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1677
1762
|
rebuilt: z.ZodNumber;
|
|
1678
1763
|
missingKeyFrame: z.ZodNumber;
|
|
1679
1764
|
missingBbox: z.ZodNumber;
|
|
1765
|
+
notRunnable: z.ZodNumber;
|
|
1766
|
+
noCapableNode: z.ZodNumber;
|
|
1680
1767
|
failed: z.ZodNumber;
|
|
1681
1768
|
complete: z.ZodNullable<z.ZodBoolean>;
|
|
1682
1769
|
startedAtMs: z.ZodNullable<z.ZodNumber>;
|
|
@@ -441,6 +441,13 @@ declare const CameraStatusSchema: z.ZodObject<{
|
|
|
441
441
|
active: z.ZodBoolean;
|
|
442
442
|
storageBytes: z.ZodNumber;
|
|
443
443
|
}, z.core.$strip>>;
|
|
444
|
+
switchedOff: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
|
|
445
|
+
"audio-analysis": "audio-analysis";
|
|
446
|
+
recording: "recording";
|
|
447
|
+
"stream-broker": "stream-broker";
|
|
448
|
+
notifications: "notifications";
|
|
449
|
+
"object-detection": "object-detection";
|
|
450
|
+
}>>>;
|
|
444
451
|
fetchedAt: z.ZodNumber;
|
|
445
452
|
}, z.core.$strip>;
|
|
446
453
|
declare const NodeInferenceDeviceSchema: z.ZodObject<{
|
|
@@ -1062,6 +1069,108 @@ export declare const pipelineOrchestratorCapability: {
|
|
|
1062
1069
|
settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1063
1070
|
}, z.core.$strip>>>;
|
|
1064
1071
|
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
1072
|
+
/**
|
|
1073
|
+
* The whole per-camera function switch group, DERIVED — never a stored
|
|
1074
|
+
* list ([D61](../../../../docs/decisions/adr-0067.md)).
|
|
1075
|
+
*
|
|
1076
|
+
* The group adds no state. Each switch is a view onto the authority that
|
|
1077
|
+
* already owned it (`deviceManager.setDisabled`,
|
|
1078
|
+
* `deviceManager.setWrapperActive`, `RecordingConfig.enabled`,
|
|
1079
|
+
* `notificationRules.setDeviceMuted`), and `switch.authority` says which.
|
|
1080
|
+
* Availability comes from `deviceManager.listBindableCapsForDeviceType`,
|
|
1081
|
+
* so a deployment with no audio analyzer renders no audio switch.
|
|
1082
|
+
*
|
|
1083
|
+
* `auth: 'view'` deliberately — a NON-admin must be able to see that a
|
|
1084
|
+
* camera is quiet because somebody switched it off. Only the mutation is
|
|
1085
|
+
* admin-gated.
|
|
1086
|
+
*/
|
|
1087
|
+
readonly getCameraSwitches: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
1088
|
+
deviceId: z.ZodNumber;
|
|
1089
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1090
|
+
deviceId: z.ZodNumber;
|
|
1091
|
+
switches: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
1092
|
+
id: z.ZodEnum<{
|
|
1093
|
+
"audio-analysis": "audio-analysis";
|
|
1094
|
+
recording: "recording";
|
|
1095
|
+
"stream-broker": "stream-broker";
|
|
1096
|
+
notifications: "notifications";
|
|
1097
|
+
"object-detection": "object-detection";
|
|
1098
|
+
}>;
|
|
1099
|
+
label: z.ZodString;
|
|
1100
|
+
costWhenOff: z.ZodString;
|
|
1101
|
+
available: z.ZodBoolean;
|
|
1102
|
+
unavailableReason: z.ZodOptional<z.ZodEnum<{
|
|
1103
|
+
"no-provider": "no-provider";
|
|
1104
|
+
"source-unreachable": "source-unreachable";
|
|
1105
|
+
}>>;
|
|
1106
|
+
enabled: z.ZodBoolean;
|
|
1107
|
+
authority: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
1108
|
+
kind: z.ZodLiteral<"device-disabled">;
|
|
1109
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1110
|
+
kind: z.ZodLiteral<"wrapper-binding">;
|
|
1111
|
+
capName: z.ZodString;
|
|
1112
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1113
|
+
kind: z.ZodLiteral<"recording-config">;
|
|
1114
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1115
|
+
kind: z.ZodLiteral<"notification-mute">;
|
|
1116
|
+
}, z.core.$strip>], "kind">;
|
|
1117
|
+
}, z.core.$strip>>>;
|
|
1118
|
+
fetchedAt: z.ZodNumber;
|
|
1119
|
+
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
1120
|
+
/**
|
|
1121
|
+
* Flip ONE switch, routed to its existing authority.
|
|
1122
|
+
*
|
|
1123
|
+
* Never writes a parallel map: `recording` patches `RecordingConfig.enabled`
|
|
1124
|
+
* and leaves `bands` byte-identical (clearing bands to express "off"
|
|
1125
|
+
* destroys the operator's authored schedule and turning the camera back on
|
|
1126
|
+
* would silently record nothing), and the two pipeline switches write the
|
|
1127
|
+
* SAME wrapper binding the legacy `pipelineEnabled` / `audioEnabled`
|
|
1128
|
+
* booleans were migrated onto.
|
|
1129
|
+
*
|
|
1130
|
+
* Rejects a switch this camera does not offer rather than persisting a
|
|
1131
|
+
* write nothing reads.
|
|
1132
|
+
*/
|
|
1133
|
+
readonly setCameraSwitch: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
1134
|
+
deviceId: z.ZodNumber;
|
|
1135
|
+
switchId: z.ZodEnum<{
|
|
1136
|
+
"audio-analysis": "audio-analysis";
|
|
1137
|
+
recording: "recording";
|
|
1138
|
+
"stream-broker": "stream-broker";
|
|
1139
|
+
notifications: "notifications";
|
|
1140
|
+
"object-detection": "object-detection";
|
|
1141
|
+
}>;
|
|
1142
|
+
enabled: z.ZodBoolean;
|
|
1143
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1144
|
+
deviceId: z.ZodNumber;
|
|
1145
|
+
switches: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
1146
|
+
id: z.ZodEnum<{
|
|
1147
|
+
"audio-analysis": "audio-analysis";
|
|
1148
|
+
recording: "recording";
|
|
1149
|
+
"stream-broker": "stream-broker";
|
|
1150
|
+
notifications: "notifications";
|
|
1151
|
+
"object-detection": "object-detection";
|
|
1152
|
+
}>;
|
|
1153
|
+
label: z.ZodString;
|
|
1154
|
+
costWhenOff: z.ZodString;
|
|
1155
|
+
available: z.ZodBoolean;
|
|
1156
|
+
unavailableReason: z.ZodOptional<z.ZodEnum<{
|
|
1157
|
+
"no-provider": "no-provider";
|
|
1158
|
+
"source-unreachable": "source-unreachable";
|
|
1159
|
+
}>>;
|
|
1160
|
+
enabled: z.ZodBoolean;
|
|
1161
|
+
authority: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
1162
|
+
kind: z.ZodLiteral<"device-disabled">;
|
|
1163
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1164
|
+
kind: z.ZodLiteral<"wrapper-binding">;
|
|
1165
|
+
capName: z.ZodString;
|
|
1166
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1167
|
+
kind: z.ZodLiteral<"recording-config">;
|
|
1168
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1169
|
+
kind: z.ZodLiteral<"notification-mute">;
|
|
1170
|
+
}, z.core.$strip>], "kind">;
|
|
1171
|
+
}, z.core.$strip>>>;
|
|
1172
|
+
fetchedAt: z.ZodNumber;
|
|
1173
|
+
}, z.core.$strip>, "mutation">;
|
|
1065
1174
|
/**
|
|
1066
1175
|
* Server-composed aggregated status for a single camera.
|
|
1067
1176
|
*
|
|
@@ -1171,6 +1280,13 @@ export declare const pipelineOrchestratorCapability: {
|
|
|
1171
1280
|
active: z.ZodBoolean;
|
|
1172
1281
|
storageBytes: z.ZodNumber;
|
|
1173
1282
|
}, z.core.$strip>>;
|
|
1283
|
+
switchedOff: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
|
|
1284
|
+
"audio-analysis": "audio-analysis";
|
|
1285
|
+
recording: "recording";
|
|
1286
|
+
"stream-broker": "stream-broker";
|
|
1287
|
+
notifications: "notifications";
|
|
1288
|
+
"object-detection": "object-detection";
|
|
1289
|
+
}>>>;
|
|
1174
1290
|
fetchedAt: z.ZodNumber;
|
|
1175
1291
|
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
1176
1292
|
/**
|
|
@@ -1281,6 +1397,13 @@ export declare const pipelineOrchestratorCapability: {
|
|
|
1281
1397
|
active: z.ZodBoolean;
|
|
1282
1398
|
storageBytes: z.ZodNumber;
|
|
1283
1399
|
}, z.core.$strip>>;
|
|
1400
|
+
switchedOff: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
|
|
1401
|
+
"audio-analysis": "audio-analysis";
|
|
1402
|
+
recording: "recording";
|
|
1403
|
+
"stream-broker": "stream-broker";
|
|
1404
|
+
notifications: "notifications";
|
|
1405
|
+
"object-detection": "object-detection";
|
|
1406
|
+
}>>>;
|
|
1284
1407
|
fetchedAt: z.ZodNumber;
|
|
1285
1408
|
}, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
1286
1409
|
/** List every template the operator has saved. */
|