@camstack/types 1.2.41 → 1.2.43
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/cap-call-context.d.ts +26 -0
- package/dist/capabilities/index.d.ts +5 -5
- package/dist/capabilities/notification-rules.cap.d.ts +41 -0
- package/dist/capabilities/pipeline-analytics.cap.d.ts +92 -4
- package/dist/capabilities/pipeline-orchestrator.cap.d.ts +149 -0
- package/dist/capabilities/pipeline-runner.cap.d.ts +119 -1
- package/dist/capabilities/platform-probe.cap.d.ts +3 -3
- package/dist/capabilities/privacy-mask.cap.d.ts +69 -9
- package/dist/capabilities/recording.cap.d.ts +30 -0
- package/dist/capabilities/snapshot.cap.d.ts +1 -1
- package/dist/capabilities/stream-broker.cap.d.ts +304 -0
- package/dist/capabilities/stream-params.cap.d.ts +8 -4
- package/dist/device/device-profile.d.ts +12 -4
- package/dist/device/system-mirror.d.ts +11 -0
- package/dist/encode-profile.d.ts +2 -0
- package/dist/ffmpeg/encode-defaults.d.ts +107 -0
- package/dist/ffmpeg/hwaccel.d.ts +98 -0
- package/dist/ffmpeg/invocation.d.ts +348 -0
- package/dist/ffmpeg/process.d.ts +135 -0
- package/dist/ffmpeg/sharing-key.d.ts +91 -0
- package/dist/generated/addon-api.d.ts +92 -4
- package/dist/generated/device-proxy.d.ts +2 -2
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/system-proxy.d.ts +2 -2
- package/dist/index.d.ts +7 -0
- package/dist/index.js +2069 -42
- package/dist/index.mjs +2006 -43
- package/dist/interfaces/camera-switches.d.ts +375 -0
- package/dist/interfaces/inference-engine.d.ts +24 -3
- 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/native-lease.d.ts +150 -0
- package/dist/{sleep-DTce7-ch.js → sleep-Bx9IIoT0.js} +43 -1
- package/dist/{sleep-CXimb854.mjs → sleep-DtstvzWm.mjs} +38 -2
- package/dist/utils/addon-id.d.ts +30 -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-Bx9IIoT0.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 {
|
|
2
|
+
import { C as DeviceType, F as readNodePin, L as ReadinessRegistry, O as expandCapMethods, P as nodePin, R as ReadinessTimeoutError, V as scopeKey, a as asJsonObject, d as DEVICE_SCOPED_CAPS, f as isDeviceScopedCap, gt as normalizeAddonInitResult, ht as BaseAddon, mt as DisposerChain, p as createDeviceProxy, pt as DATAPLANE_SECRET_HEADER, s as asString, t as sleep, u as parseJsonUnknown, v as deviceOpsCapability, w as adminUiCapability, y as viewerUiCapability, yt as emitReadiness } from "./sleep-DtstvzWm.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
|
+
});
|
|
@@ -28,8 +28,34 @@ export interface NodePinnedRequestOptions {
|
|
|
28
28
|
/**
|
|
29
29
|
* Build the tRPC request options that pin a single capability call to `nodeId`.
|
|
30
30
|
* Pass as the second argument to `.query(input, …)` / `.mutate(input, …)`.
|
|
31
|
+
*
|
|
32
|
+
* ## The id is normalised here, and it has to be
|
|
33
|
+
*
|
|
34
|
+
* A forked addon reads its own node from `ctx.kernel.localNodeId`, and inside a
|
|
35
|
+
* worker that value is a RUNNER id — `hub/export-hap`, not `hub`. Routing
|
|
36
|
+
* compares a pin against real node ids, so such a pin matches nothing and the
|
|
37
|
+
* call fails with `no provider registered for cap "…"`. The local-first
|
|
38
|
+
* resolver already guarded against this (`localNodeId.split('/')[0]`), which
|
|
39
|
+
* made the hazard invisible: unpinned calls worked, and only an explicit pin —
|
|
40
|
+
* the thing you reach for when you specifically need THIS node — silently
|
|
41
|
+
* addressed a node that does not exist.
|
|
42
|
+
*
|
|
43
|
+
* Cost of it being missing: `addon-export-hap` pinned `decoder.getInfo` to its
|
|
44
|
+
* own node to read the host's hardware-decode backend. It never once answered,
|
|
45
|
+
* so every HomeKit egress transcode decoded in SOFTWARE — including 4K H.265 —
|
|
46
|
+
* while D67's whole premise was that the decoder addon is the authority on
|
|
47
|
+
* hardware. The warn said `decoding in SOFTWARE` and read as "this node has no
|
|
48
|
+
* hardware", which was false.
|
|
49
|
+
*
|
|
50
|
+
* Normalising in the ONE constructor fixes every caller at once, which is why
|
|
51
|
+
* it is here and not at the call sites.
|
|
31
52
|
*/
|
|
32
53
|
export declare function nodePin(nodeId: string): NodePinnedRequestOptions;
|
|
54
|
+
/**
|
|
55
|
+
* A runner id is `<nodeId>/<addonId>`; a node id has no slash. Taking the head
|
|
56
|
+
* is idempotent, so passing an already-clean id costs nothing.
|
|
57
|
+
*/
|
|
58
|
+
export declare function toNodeId(idOrRunnerId: string): string;
|
|
33
59
|
/**
|
|
34
60
|
* Read a per-call node pin out of a tRPC `op.context` (transport side).
|
|
35
61
|
* Returns the pinned nodeId, or `undefined` when no pin is present.
|
|
@@ -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';
|
|
@@ -99,7 +99,7 @@ export { type IStorageCapProvider, StorageLocationTypeSchema, storageCapability,
|
|
|
99
99
|
export { type EvictableUsage, type EvictResult, type IStorageEvictableProvider, storageEvictableCapability, } from './storage-evictable.cap.js';
|
|
100
100
|
export { AbortUploadInputSchema as StorageAbortUploadInputSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, type IStorageProviderImpl, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, storageProviderCapability, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, } from './storage-provider.cap.js';
|
|
101
101
|
export type { AudioCodecTarget, BrokerAudioClient, BrokerClients, BrokerConsumerAttribution, BrokerConsumerKind, BrokerDecodedClient, BrokerEncodedClient, BrokerRtspClient, GetStreamWithCodecInput, PlaceholderReason, RtpSource, VideoCodecTarget, } from './stream-broker.cap.js';
|
|
102
|
-
export { BrokerAudioClientSchema, BrokerClientsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, BrokerRtspClientSchema, GetStreamWithCodecInputSchema, PlaceholderReasonSchema, RtpSourceSchema, RtspRestreamEntrySchema, type StreamBrokerClient, type StreamFormat, StreamFormatSchema, streamBrokerCapability, } from './stream-broker.cap.js';
|
|
102
|
+
export { BrokerAudioClientSchema, BrokerClientsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, BrokerRtspClientSchema, type EgressEncode, EgressEncodeSchema, type EgressRateControl, EgressRateControlSchema, type EgressTranscode, type EgressTranscodeRequest, EgressTranscodeRequestSchema, EgressTranscodeSchema, GetStreamWithCodecInputSchema, PlaceholderReasonSchema, RtpSourceSchema, RtspRestreamEntrySchema, type StreamBrokerClient, type StreamFormat, StreamFormatSchema, streamBrokerCapability, } from './stream-broker.cap.js';
|
|
103
103
|
export { type ITerminalSessionProvider, type TerminalProfileInfo, TerminalProfileInfoSchema, type TerminalSessionInfo, TerminalSessionInfoSchema, terminalSessionCapability, } from './terminal-session.cap.js';
|
|
104
104
|
export type { ITurnProvider } from './turn-provider.cap.js';
|
|
105
105
|
export { TurnServerSchema, turnProviderCapability } from './turn-provider.cap.js';
|
|
@@ -172,11 +172,11 @@ export { type HardwareDecodeAccels, type HardwareEncoderId, type HardwareEncoder
|
|
|
172
172
|
export { type IPowerMeterProvider, type PowerMeterStatus, PowerMeterStatusSchema, powerMeterCapability, } from './power-meter.cap.js';
|
|
173
173
|
export { type GpsLocation, type IPresenceProvider, type PresenceStatus, PresenceStatusSchema, presenceCapability, } from './presence.cap.js';
|
|
174
174
|
export { type IPressureSensorProvider, type PressureSensorStatus, PressureSensorStatusSchema, pressureSensorCapability, } from './pressure-sensor.cap.js';
|
|
175
|
-
export { type IPrivacyMaskProvider, type PrivacyMaskOptions, PrivacyMaskOptionsSchema, type PrivacyMaskPatch, PrivacyMaskPatchSchema, type PrivacyMaskRegion, PrivacyMaskRegionSchema, type PrivacyMaskShape, PrivacyMaskShapeSchema, type PrivacyMaskStatus, PrivacyMaskStatusSchema, privacyMaskCapability, } from './privacy-mask.cap.js';
|
|
175
|
+
export { type IPrivacyMaskProvider, type PrivacyMaskOptions, PrivacyMaskOptionsSchema, type PrivacyMaskPatch, PrivacyMaskPatchSchema, type PrivacyMaskRegion, PrivacyMaskRegionSchema, type PrivacyMaskShape, PrivacyMaskShapeSchema, type PrivacyMaskStatus, PrivacyMaskStatusSchema, privacyMaskCapability, summarisePrivacyAudio, } from './privacy-mask.cap.js';
|
|
176
176
|
export { type IPtzProvider, PtzMoveCommandSchema, type PtzOptions, PtzOptionsSchema, PtzPositionSchema, PtzPresetSchema, type PtzStatus, PtzStatusSchema, ptzCapability, } from './ptz.cap.js';
|
|
177
177
|
export { type IPtzAutotrackProvider, type PtzAutotrackRuntimeState, PtzAutotrackRuntimeStateSchema, type PtzAutotrackSettings, PtzAutotrackSettingsSchema, type PtzAutotrackStatus, PtzAutotrackStatusSchema, type PtzAutotrackTargetOption, PtzAutotrackTargetOptionSchema, ptzAutotrackCapability, } from './ptz-autotrack.cap.js';
|
|
178
178
|
export { type IRebootProvider, rebootCapability } from './reboot.cap.js';
|
|
179
|
-
export { type IRecordingProvider, type LocateSegmentResult, LocateSegmentResultSchema, type ReadSegmentBytesResult, ReadSegmentBytesResultSchema, type RecordingAvailability, RecordingAvailabilitySchema, type RecordingDays, RecordingDaysSchema, type RecordingDeviceUsage, RecordingDeviceUsageSchema, type RecordingLocationUsage, RecordingLocationUsageSchema, type RecordingManifest, RecordingManifestSchema, RecordingRangeSchema, type RecordingStatus, RecordingStatusSchema, type RecordingStorageUsage, RecordingStorageUsageSchema, recordingCapability, } from './recording.cap.js';
|
|
179
|
+
export { type IRecordingProvider, type LocateSegmentResult, LocateSegmentResultSchema, type ReadGopBytesResult, ReadGopBytesResultSchema, type ReadSegmentBytesResult, ReadSegmentBytesResultSchema, type RecordingAvailability, RecordingAvailabilitySchema, type RecordingDays, RecordingDaysSchema, type RecordingDeviceUsage, RecordingDeviceUsageSchema, type RecordingLocationUsage, RecordingLocationUsageSchema, type RecordingManifest, RecordingManifestSchema, RecordingRangeSchema, type RecordingStatus, RecordingStatusSchema, type RecordingStorageUsage, RecordingStorageUsageSchema, recordingCapability, } from './recording.cap.js';
|
|
180
180
|
export { type ExportDownload, ExportDownloadSchema, type ExportOptions, ExportOptionsSchema, type ExportRecord, ExportRecordSchema, ExportSpeedSchema, type ExportState, ExportStateSchema, ExportTimelapseSchema, type IRecordingExportProvider, recordingExportCapability, } from './recording-export.cap.js';
|
|
181
181
|
export { type ISceneMonitorProvider, type SceneCheck, SceneCheckSchema, type SceneCondition, SceneConditionSchema, type SceneMonitor, SceneMonitorSchema, type SceneMonitorState, SceneMonitorStateSchema, type SceneMonitorStatus, SceneMonitorStatusSchema, type SceneReference, SceneReferenceSchema, sceneMonitorCapability, } from './scene-monitor.cap.js';
|
|
182
182
|
export { type ZoneRule, type ZoneRuleMode, ZoneRuleModeEnum, ZoneRuleSchema, type ZoneRules, ZoneRulesArraySchema, } from './schemas/zone-rule.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;
|
|
@@ -1665,6 +1750,8 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1665
1750
|
since: z.ZodOptional<z.ZodNumber>;
|
|
1666
1751
|
until: z.ZodOptional<z.ZodNumber>;
|
|
1667
1752
|
maxTracks: z.ZodOptional<z.ZodNumber>;
|
|
1753
|
+
executeOnNodeId: z.ZodOptional<z.ZodString>;
|
|
1754
|
+
pacingMs: z.ZodOptional<z.ZodNumber>;
|
|
1668
1755
|
}, z.core.$strip>, z.ZodObject<{
|
|
1669
1756
|
started: z.ZodBoolean;
|
|
1670
1757
|
alreadyRunning: z.ZodBoolean;
|
|
@@ -1676,6 +1763,7 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1676
1763
|
missingKeyFrame: z.ZodNumber;
|
|
1677
1764
|
missingBbox: z.ZodNumber;
|
|
1678
1765
|
notRunnable: z.ZodNumber;
|
|
1766
|
+
noCapableNode: z.ZodNumber;
|
|
1679
1767
|
failed: z.ZodNumber;
|
|
1680
1768
|
complete: z.ZodNullable<z.ZodBoolean>;
|
|
1681
1769
|
startedAtMs: z.ZodNullable<z.ZodNumber>;
|