@camstack/types 1.2.243 → 1.2.245
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/capabilities/device-admin-link-url.d.ts +87 -0
- package/dist/capabilities/device-admin-link.cap.d.ts +118 -0
- package/dist/capabilities/index.d.ts +8 -2
- package/dist/capabilities/recording-onboard-rules.d.ts +135 -0
- package/dist/capabilities/recording-onboard.cap.d.ts +705 -0
- package/dist/capabilities/videoclips.cap.d.ts +25 -0
- package/dist/generated/addon-api.d.ts +44 -0
- package/dist/generated/cap-status-types.d.ts +3 -1
- package/dist/generated/capability-router-map.d.ts +8 -2
- package/dist/generated/device-local-state.d.ts +3 -0
- package/dist/generated/device-proxy.d.ts +5 -0
- package/dist/generated/device-scoped-caps.d.ts +1 -1
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/method-device-selectors.d.ts +1 -1
- package/dist/generated/runtime-state-durability.d.ts +1 -1
- package/dist/index.js +1000 -2
- package/dist/index.mjs +968 -3
- package/dist/{sleep-mVRRyKVq.js → sleep-Da9UCU5_.js} +10 -1
- package/dist/{sleep-De1BvmWo.mjs → sleep-i3eUVc-d.mjs} +10 -1
- package/package.json +1 -1
|
@@ -91,6 +91,31 @@ export declare const ClipStillDispositionSchema: z.ZodEnum<{
|
|
|
91
91
|
export type ClipStillDisposition = z.infer<typeof ClipStillDispositionSchema>;
|
|
92
92
|
/** The camera's / provider's own words. Kept verbatim, never parsed. */
|
|
93
93
|
export declare const CLIP_STILL_REASON_HEADER = "x-camstack-reason";
|
|
94
|
+
/** Longest reason a header carries. Beyond this the sentence is cut. */
|
|
95
|
+
export declare const CLIP_REASON_HEADER_MAX = 500;
|
|
96
|
+
/**
|
|
97
|
+
* Make a refusal sentence safe to put in an HTTP header.
|
|
98
|
+
*
|
|
99
|
+
* **An HTTP header value is Latin-1.** Node throws `Invalid character in
|
|
100
|
+
* header content` on anything above U+00FF, the handler dies mid-response,
|
|
101
|
+
* and the client gets a socket hang up — no status, no reason, nothing. The
|
|
102
|
+
* mechanism that exists to EXPLAIN a refusal is then the thing that silences
|
|
103
|
+
* it, and the surface shows "nothing happened".
|
|
104
|
+
*
|
|
105
|
+
* That is not hypothetical: measured 2026-09-23 on 1436, a Hikvision replay
|
|
106
|
+
* refusal read `SETUP of the video track answered 500 — the camera refused
|
|
107
|
+
* this replay`, and the EM DASH in it threw on every clip the operator
|
|
108
|
+
* opened. This repository writes its refusals in prose, and its prose uses
|
|
109
|
+
* `—`, `’` and `…` everywhere, so every reason string is a candidate.
|
|
110
|
+
*
|
|
111
|
+
* Substitutes rather than strips: an operator reading a log or a response
|
|
112
|
+
* should get a readable sentence, not one with holes in it. The typographic
|
|
113
|
+
* characters this repo actually writes have exact ASCII equivalents; anything
|
|
114
|
+
* else non-Latin-1 becomes `?`, which is visible rather than silent. Control
|
|
115
|
+
* characters go too — a newline in a header value is a response-splitting
|
|
116
|
+
* bug, not a formatting one.
|
|
117
|
+
*/
|
|
118
|
+
export declare function clipReasonHeaderValue(reason: string): string;
|
|
94
119
|
/** One {@link ClipStillRefusalCodeSchema} token, alone. */
|
|
95
120
|
export declare const CLIP_STILL_REASON_CODE_HEADER = "x-camstack-reason-code";
|
|
96
121
|
/** One {@link ClipStillDispositionSchema} token, alone. */
|
|
@@ -36,6 +36,7 @@ import type { customModelRegistryCapability } from '../capabilities/custom-model
|
|
|
36
36
|
import type { dataStoreProviderCapability } from '../capabilities/data-store-provider.cap.js';
|
|
37
37
|
import type { dayNightCapability } from '../capabilities/day-night.cap.js';
|
|
38
38
|
import type { decoderCapability } from '../capabilities/decoder.cap.js';
|
|
39
|
+
import type { deviceAdminLinkCapability } from '../capabilities/device-admin-link.cap.js';
|
|
39
40
|
import type { deviceAdoptionCapability } from '../capabilities/device-adoption.cap.js';
|
|
40
41
|
import type { deviceDiscoveryCapability } from '../capabilities/device-discovery.cap.js';
|
|
41
42
|
import type { deviceExportCapability } from '../capabilities/device-export.cap.js';
|
|
@@ -94,6 +95,7 @@ import type { ptzAutotrackCapability } from '../capabilities/ptz-autotrack.cap.j
|
|
|
94
95
|
import type { ptzCapability } from '../capabilities/ptz.cap.js';
|
|
95
96
|
import type { rebootCapability } from '../capabilities/reboot.cap.js';
|
|
96
97
|
import type { recordingExportCapability } from '../capabilities/recording-export.cap.js';
|
|
98
|
+
import type { recordingOnboardCapability } from '../capabilities/recording-onboard.cap.js';
|
|
97
99
|
import type { recordingSignalCapability } from '../capabilities/recording-signal.cap.js';
|
|
98
100
|
import type { recordingCapability } from '../capabilities/recording.cap.js';
|
|
99
101
|
import type { sceneMonitorCapability } from '../capabilities/scene-monitor.cap.js';
|
|
@@ -1917,6 +1919,20 @@ export type AppRouter = TrpcCoreRouter<{
|
|
|
1917
1919
|
meta: object;
|
|
1918
1920
|
}>;
|
|
1919
1921
|
}>>;
|
|
1922
|
+
deviceAdminLink: TRPCBuiltRouter<{
|
|
1923
|
+
ctx: TrpcContext;
|
|
1924
|
+
meta: object;
|
|
1925
|
+
errorShape: AugmentedErrorShape;
|
|
1926
|
+
transformer: true;
|
|
1927
|
+
}, TRPCDecorateCreateRouterOptions<{
|
|
1928
|
+
getAdminLink: TRPCQueryProcedure<{
|
|
1929
|
+
input: {
|
|
1930
|
+
[x: string]: unknown;
|
|
1931
|
+
} & z.input<typeof deviceAdminLinkCapability.methods.getAdminLink.input>;
|
|
1932
|
+
output: z.infer<typeof deviceAdminLinkCapability.methods.getAdminLink.output>;
|
|
1933
|
+
meta: object;
|
|
1934
|
+
}>;
|
|
1935
|
+
}>>;
|
|
1920
1936
|
deviceAdoption: TRPCBuiltRouter<{
|
|
1921
1937
|
ctx: TrpcContext;
|
|
1922
1938
|
meta: object;
|
|
@@ -7137,6 +7153,34 @@ export type AppRouter = TrpcCoreRouter<{
|
|
|
7137
7153
|
meta: object;
|
|
7138
7154
|
}>;
|
|
7139
7155
|
}>>;
|
|
7156
|
+
recordingOnboard: TRPCBuiltRouter<{
|
|
7157
|
+
ctx: TrpcContext;
|
|
7158
|
+
meta: object;
|
|
7159
|
+
errorShape: AugmentedErrorShape;
|
|
7160
|
+
transformer: true;
|
|
7161
|
+
}, TRPCDecorateCreateRouterOptions<{
|
|
7162
|
+
getStatus: TRPCQueryProcedure<{
|
|
7163
|
+
input: {
|
|
7164
|
+
[x: string]: unknown;
|
|
7165
|
+
} & z.input<typeof DEVICE_STATUS_METHOD.getStatus.input>;
|
|
7166
|
+
output: z.infer<typeof DEVICE_STATUS_METHOD.getStatus.output>;
|
|
7167
|
+
meta: object;
|
|
7168
|
+
}>;
|
|
7169
|
+
getOptions: TRPCQueryProcedure<{
|
|
7170
|
+
input: {
|
|
7171
|
+
[x: string]: unknown;
|
|
7172
|
+
} & z.input<typeof recordingOnboardCapability.methods.getOptions.input>;
|
|
7173
|
+
output: z.infer<typeof recordingOnboardCapability.methods.getOptions.output>;
|
|
7174
|
+
meta: object;
|
|
7175
|
+
}>;
|
|
7176
|
+
setSettings: TRPCMutationProcedure<{
|
|
7177
|
+
input: {
|
|
7178
|
+
[x: string]: unknown;
|
|
7179
|
+
} & z.input<typeof recordingOnboardCapability.methods.setSettings.input>;
|
|
7180
|
+
output: z.infer<typeof recordingOnboardCapability.methods.setSettings.output>;
|
|
7181
|
+
meta: object;
|
|
7182
|
+
}>;
|
|
7183
|
+
}>>;
|
|
7140
7184
|
recordingSignal: TRPCBuiltRouter<{
|
|
7141
7185
|
ctx: TrpcContext;
|
|
7142
7186
|
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 { RecordingOnboardStatusSchema } from '../capabilities/recording-onboard.cap.js';
|
|
58
59
|
import type { RecordingSignalStatusSchema } from '../capabilities/recording-signal.cap.js';
|
|
59
60
|
import type { SceneMonitorStatusSchema } from '../capabilities/scene-monitor.cap.js';
|
|
60
61
|
import type { ScriptRunnerStatusSchema } from '../capabilities/script-runner.cap.js';
|
|
@@ -132,6 +133,7 @@ export type CapStatusTypeMap = {
|
|
|
132
133
|
readonly 'ptz': z.infer<typeof PtzStatusSchema>;
|
|
133
134
|
readonly 'ptz-autotrack': z.infer<typeof PtzAutotrackStatusSchema>;
|
|
134
135
|
readonly 'recording': z.infer<typeof RecordingStatusSchema>;
|
|
136
|
+
readonly 'recording-onboard': z.infer<typeof RecordingOnboardStatusSchema>;
|
|
135
137
|
readonly 'recording-signal': z.infer<typeof RecordingSignalStatusSchema>;
|
|
136
138
|
readonly 'scene-monitor': z.infer<typeof SceneMonitorStatusSchema>;
|
|
137
139
|
readonly 'script-runner': z.infer<typeof ScriptRunnerStatusSchema>;
|
|
@@ -155,4 +157,4 @@ export type CapNameWithStatus = keyof CapStatusTypeMap;
|
|
|
155
157
|
* aggregator to enumerate caps whose `status` should be polled +
|
|
156
158
|
* streamed via `subscribeDeviceStatusAggregate`.
|
|
157
159
|
*/
|
|
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"];
|
|
160
|
+
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-onboard", "recording-signal", "scene-monitor", "script-runner", "smoke", "snapshot", "stream-params", "switch", "tamper", "temperature-sensor", "update", "vacuum-control", "valve", "vibration", "water-heater", "weather"];
|
|
@@ -42,6 +42,7 @@ export { dataStoreProviderCapability } from '../capabilities/data-store-provider
|
|
|
42
42
|
export { dayNightCapability } from '../capabilities/day-night.cap.js';
|
|
43
43
|
export { decoderCapability } from '../capabilities/decoder.cap.js';
|
|
44
44
|
export { detectionPipelineCapability } from '../capabilities/detection-pipeline.cap.js';
|
|
45
|
+
export { deviceAdminLinkCapability } from '../capabilities/device-admin-link.cap.js';
|
|
45
46
|
export { deviceAdoptionCapability } from '../capabilities/device-adoption.cap.js';
|
|
46
47
|
export { deviceDiscoveryCapability } from '../capabilities/device-discovery.cap.js';
|
|
47
48
|
export { deviceExportCapability } from '../capabilities/device-export.cap.js';
|
|
@@ -116,6 +117,7 @@ export { ptzAutotrackCapability } from '../capabilities/ptz-autotrack.cap.js';
|
|
|
116
117
|
export { rebootCapability } from '../capabilities/reboot.cap.js';
|
|
117
118
|
export { recordingCapability } from '../capabilities/recording.cap.js';
|
|
118
119
|
export { recordingExportCapability } from '../capabilities/recording-export.cap.js';
|
|
120
|
+
export { recordingOnboardCapability } from '../capabilities/recording-onboard.cap.js';
|
|
119
121
|
export { recordingSignalCapability } from '../capabilities/recording-signal.cap.js';
|
|
120
122
|
export { sceneMonitorCapability } from '../capabilities/scene-monitor.cap.js';
|
|
121
123
|
export { scriptRunnerCapability } from '../capabilities/script-runner.cap.js';
|
|
@@ -201,6 +203,7 @@ export declare const CAPABILITY_NAMES: {
|
|
|
201
203
|
readonly dayNight: "day-night";
|
|
202
204
|
readonly decoder: "decoder";
|
|
203
205
|
readonly detectionPipeline: "detection-pipeline";
|
|
206
|
+
readonly deviceAdminLink: "device-admin-link";
|
|
204
207
|
readonly deviceAdoption: "device-adoption";
|
|
205
208
|
readonly deviceDiscovery: "device-discovery";
|
|
206
209
|
readonly deviceExport: "device-export";
|
|
@@ -275,6 +278,7 @@ export declare const CAPABILITY_NAMES: {
|
|
|
275
278
|
readonly reboot: "reboot";
|
|
276
279
|
readonly recording: "recording";
|
|
277
280
|
readonly recordingExport: "recording-export";
|
|
281
|
+
readonly recordingOnboard: "recording-onboard";
|
|
278
282
|
readonly recordingSignal: "recording-signal";
|
|
279
283
|
readonly sceneMonitor: "scene-monitor";
|
|
280
284
|
readonly scriptRunner: "script-runner";
|
|
@@ -373,6 +377,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
|
|
|
373
377
|
readonly dayNight: TRouter;
|
|
374
378
|
readonly decoder: TRouter;
|
|
375
379
|
readonly detectionPipeline: TRouter;
|
|
380
|
+
readonly deviceAdminLink: TRouter;
|
|
376
381
|
readonly deviceAdoption: TRouter;
|
|
377
382
|
readonly deviceDiscovery: TRouter;
|
|
378
383
|
readonly deviceExport: TRouter;
|
|
@@ -447,6 +452,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
|
|
|
447
452
|
readonly reboot: TRouter;
|
|
448
453
|
readonly recording: TRouter;
|
|
449
454
|
readonly recordingExport: TRouter;
|
|
455
|
+
readonly recordingOnboard: TRouter;
|
|
450
456
|
readonly recordingSignal: TRouter;
|
|
451
457
|
readonly sceneMonitor: TRouter;
|
|
452
458
|
readonly scriptRunner: TRouter;
|
|
@@ -488,8 +494,8 @@ export interface CapabilityRouterMap<TRouter = unknown> {
|
|
|
488
494
|
readonly zoneRules: TRouter;
|
|
489
495
|
readonly zones: TRouter;
|
|
490
496
|
}
|
|
491
|
-
/** Capability names whose mode is `singleton` (
|
|
492
|
-
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-grid-layout", "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", "stream-signals", "switch", "system", "tamper", "temperature-sensor", "terminal-session", "toast", "update", "user-management", "vacuum-control", "valve", "vector-store", "vibration", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
|
|
497
|
+
/** Capability names whose mode is `singleton` (131 caps). */
|
|
498
|
+
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-grid-layout", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "core-blocks", "cover", "day-night", "decoder", "detection-pipeline", "device-admin-link", "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-onboard", "recording-signal", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "storage-migration", "stream-broker", "stream-catalog", "stream-params", "stream-signals", "switch", "system", "tamper", "temperature-sensor", "terminal-session", "toast", "update", "user-management", "vacuum-control", "valve", "vector-store", "vibration", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
|
|
493
499
|
/** Union of singleton capability names (literal string union). */
|
|
494
500
|
export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
|
|
495
501
|
/** Capability names whose mode is `collection` (29 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 { recordingOnboardCapability } from '../capabilities/recording-onboard.cap.js';
|
|
51
52
|
import { recordingSignalCapability } from '../capabilities/recording-signal.cap.js';
|
|
52
53
|
import { sceneMonitorCapability } from '../capabilities/scene-monitor.cap.js';
|
|
53
54
|
import { scriptRunnerCapability } from '../capabilities/script-runner.cap.js';
|
|
@@ -128,6 +129,7 @@ export interface DeviceLocalState {
|
|
|
128
129
|
pressureSensor: InferRuntimeState<typeof pressureSensorCapability>;
|
|
129
130
|
privacyMask: InferRuntimeState<typeof privacyMaskCapability>;
|
|
130
131
|
ptzAutotrack: InferRuntimeState<typeof ptzAutotrackCapability>;
|
|
132
|
+
recordingOnboard: InferRuntimeState<typeof recordingOnboardCapability>;
|
|
131
133
|
recordingSignal: InferRuntimeState<typeof recordingSignalCapability>;
|
|
132
134
|
sceneMonitor: InferRuntimeState<typeof sceneMonitorCapability>;
|
|
133
135
|
scriptRunner: InferRuntimeState<typeof scriptRunnerCapability>;
|
|
@@ -218,6 +220,7 @@ export interface CapNameToRuntimeStateMap {
|
|
|
218
220
|
'pressure-sensor': InferRuntimeState<typeof pressureSensorCapability>;
|
|
219
221
|
'privacy-mask': InferRuntimeState<typeof privacyMaskCapability>;
|
|
220
222
|
'ptz-autotrack': InferRuntimeState<typeof ptzAutotrackCapability>;
|
|
223
|
+
'recording-onboard': InferRuntimeState<typeof recordingOnboardCapability>;
|
|
221
224
|
'recording-signal': InferRuntimeState<typeof recordingSignalCapability>;
|
|
222
225
|
'scene-monitor': InferRuntimeState<typeof sceneMonitorCapability>;
|
|
223
226
|
'script-runner': InferRuntimeState<typeof scriptRunnerCapability>;
|
|
@@ -26,6 +26,7 @@ import type { controlCapability } from '../capabilities/control.cap.js';
|
|
|
26
26
|
import type { coverCapability } from '../capabilities/cover.cap.js';
|
|
27
27
|
import type { dayNightCapability } from '../capabilities/day-night.cap.js';
|
|
28
28
|
import type { detectionPipelineCapability } from '../capabilities/detection-pipeline.cap.js';
|
|
29
|
+
import type { deviceAdminLinkCapability } from '../capabilities/device-admin-link.cap.js';
|
|
29
30
|
import type { deviceDiscoveryCapability } from '../capabilities/device-discovery.cap.js';
|
|
30
31
|
import type { deviceOpsCapability } from '../capabilities/device-ops.cap.js';
|
|
31
32
|
import type { deviceStatusCapability } from '../capabilities/device-status.cap.js';
|
|
@@ -65,6 +66,7 @@ import type { privacyMaskCapability } from '../capabilities/privacy-mask.cap.js'
|
|
|
65
66
|
import type { ptzCapability } from '../capabilities/ptz.cap.js';
|
|
66
67
|
import type { ptzAutotrackCapability } from '../capabilities/ptz-autotrack.cap.js';
|
|
67
68
|
import type { rebootCapability } from '../capabilities/reboot.cap.js';
|
|
69
|
+
import type { recordingOnboardCapability } from '../capabilities/recording-onboard.cap.js';
|
|
68
70
|
import type { recordingSignalCapability } from '../capabilities/recording-signal.cap.js';
|
|
69
71
|
import type { sceneMonitorCapability } from '../capabilities/scene-monitor.cap.js';
|
|
70
72
|
import type { scriptRunnerCapability } from '../capabilities/script-runner.cap.js';
|
|
@@ -160,6 +162,7 @@ export interface DeviceProxyState {
|
|
|
160
162
|
readonly pressureSensor: SliceHandle<InferRuntimeState<typeof pressureSensorCapability>>;
|
|
161
163
|
readonly privacyMask: SliceHandle<InferRuntimeState<typeof privacyMaskCapability>>;
|
|
162
164
|
readonly ptzAutotrack: SliceHandle<InferRuntimeState<typeof ptzAutotrackCapability>>;
|
|
165
|
+
readonly recordingOnboard: SliceHandle<InferRuntimeState<typeof recordingOnboardCapability>>;
|
|
163
166
|
readonly recordingSignal: SliceHandle<InferRuntimeState<typeof recordingSignalCapability>>;
|
|
164
167
|
readonly sceneMonitor: SliceHandle<InferRuntimeState<typeof sceneMonitorCapability>>;
|
|
165
168
|
readonly scriptRunner: SliceHandle<InferRuntimeState<typeof scriptRunnerCapability>>;
|
|
@@ -222,6 +225,7 @@ export interface DeviceProxy {
|
|
|
222
225
|
readonly cover?: InferDeviceProxyCap<typeof coverCapability>;
|
|
223
226
|
readonly dayNight?: InferDeviceProxyCap<typeof dayNightCapability>;
|
|
224
227
|
readonly detectionPipeline?: InferDeviceProxyCap<typeof detectionPipelineCapability>;
|
|
228
|
+
readonly deviceAdminLink?: InferDeviceProxyCap<typeof deviceAdminLinkCapability>;
|
|
225
229
|
readonly deviceDiscovery?: InferDeviceProxyCap<typeof deviceDiscoveryCapability>;
|
|
226
230
|
readonly deviceOps?: InferDeviceProxyCap<typeof deviceOpsCapability>;
|
|
227
231
|
readonly deviceStatus?: InferDeviceProxyCap<typeof deviceStatusCapability>;
|
|
@@ -261,6 +265,7 @@ export interface DeviceProxy {
|
|
|
261
265
|
readonly ptz?: InferDeviceProxyCap<typeof ptzCapability>;
|
|
262
266
|
readonly ptzAutotrack?: InferDeviceProxyCap<typeof ptzAutotrackCapability>;
|
|
263
267
|
readonly reboot?: InferDeviceProxyCap<typeof rebootCapability>;
|
|
268
|
+
readonly recordingOnboard?: InferDeviceProxyCap<typeof recordingOnboardCapability>;
|
|
264
269
|
readonly recordingSignal?: InferDeviceProxyCap<typeof recordingSignalCapability>;
|
|
265
270
|
readonly sceneMonitor?: InferDeviceProxyCap<typeof sceneMonitorCapability>;
|
|
266
271
|
readonly scriptRunner?: InferDeviceProxyCap<typeof scriptRunnerCapability>;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* can answer "may a rule actuate this?" without importing the schema barrel
|
|
6
6
|
* (~144MB RSS per runner, D28).
|
|
7
7
|
*
|
|
8
|
-
* Coverage:
|
|
8
|
+
* Coverage: 87 device-scoped capabilities.
|
|
9
9
|
*/
|
|
10
10
|
export declare const DEVICE_SCOPED_CAPS: ReadonlySet<string>;
|
|
11
11
|
/**
|
|
@@ -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:
|
|
9
|
+
* Coverage: 1169 method paths across 160 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:
|
|
9
|
+
* Coverage: 395 methods carry a device reference, of which
|
|
10
10
|
* 141 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`.
|
|
14
|
+
* `runtimeState`. 69 caps: 36 `restored`, 33 `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.
|