@camstack/types 0.1.31 → 0.1.32
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/capabilities/admin-ui.cap.d.ts +6 -2
- package/dist/capabilities/admin-ui.cap.d.ts.map +1 -1
- package/dist/capabilities/advanced-notifier.cap.d.ts +202 -29
- package/dist/capabilities/advanced-notifier.cap.d.ts.map +1 -1
- package/dist/capabilities/audio-codec.cap.d.ts +2 -2
- package/dist/capabilities/capability-definition.d.ts +22 -0
- package/dist/capabilities/capability-definition.d.ts.map +1 -1
- package/dist/capabilities/device-export.cap.d.ts +77 -0
- package/dist/capabilities/device-export.cap.d.ts.map +1 -0
- package/dist/capabilities/embedding-encoder.cap.d.ts +14 -7
- package/dist/capabilities/embedding-encoder.cap.d.ts.map +1 -1
- package/dist/capabilities/index.d.ts +15 -11
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/intercom.cap.d.ts +34 -0
- package/dist/capabilities/intercom.cap.d.ts.map +1 -1
- package/dist/capabilities/mesh-network.cap.d.ts +18 -20
- package/dist/capabilities/mesh-network.cap.d.ts.map +1 -1
- package/dist/capabilities/mqtt-broker.cap.d.ts +153 -0
- package/dist/capabilities/mqtt-broker.cap.d.ts.map +1 -0
- package/dist/capabilities/network-access.cap.d.ts +41 -1
- package/dist/capabilities/network-access.cap.d.ts.map +1 -1
- package/dist/capabilities/platform-probe.cap.d.ts +234 -15
- package/dist/capabilities/platform-probe.cap.d.ts.map +1 -1
- package/dist/capabilities/smtp-provider.cap.d.ts +11 -10
- package/dist/capabilities/smtp-provider.cap.d.ts.map +1 -1
- package/dist/capabilities/sso-bridge.cap.d.ts +3 -0
- package/dist/capabilities/sso-bridge.cap.d.ts.map +1 -1
- package/dist/capabilities/stream-broker.cap.d.ts +90 -85
- package/dist/capabilities/stream-broker.cap.d.ts.map +1 -1
- package/dist/capabilities/webrtc-session.cap.d.ts +34 -0
- package/dist/capabilities/webrtc-session.cap.d.ts.map +1 -1
- package/dist/enums/event-category.d.ts +1 -8
- package/dist/enums/event-category.d.ts.map +1 -1
- package/dist/generated/addon-api.d.ts +12923 -10641
- package/dist/generated/addon-api.d.ts.map +1 -1
- package/dist/generated/cap-status-types.d.ts +5 -1
- package/dist/generated/cap-status-types.d.ts.map +1 -1
- package/dist/generated/capability-router-map.d.ts +7 -7
- package/dist/generated/capability-router-map.d.ts.map +1 -1
- package/dist/generated/device-proxy.d.ts +2 -0
- package/dist/generated/device-proxy.d.ts.map +1 -1
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/method-access-map.d.ts.map +1 -1
- package/dist/generated/provider-kind-map.d.ts +22 -0
- package/dist/generated/provider-kind-map.d.ts.map +1 -0
- package/dist/generated/system-proxy.d.ts +7 -3
- package/dist/generated/system-proxy.d.ts.map +1 -1
- package/dist/{index-BKnvgAep.mjs → index-BBVUwOlZ.mjs} +641 -610
- package/dist/index-BBVUwOlZ.mjs.map +1 -0
- package/dist/{index-BKifir_y.js → index-BUBhoPUu.js} +381 -350
- package/dist/index-BUBhoPUu.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +108 -39
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +365 -296
- package/dist/index.mjs.map +1 -1
- package/dist/interfaces/addon.d.ts +14 -3
- package/dist/interfaces/addon.d.ts.map +1 -1
- package/dist/interfaces/advanced-notifier.d.ts +8 -7
- package/dist/interfaces/advanced-notifier.d.ts.map +1 -1
- package/dist/interfaces/capability.d.ts +6 -6
- package/dist/interfaces/capability.d.ts.map +1 -1
- package/dist/interfaces/embedding-encoder.d.ts +16 -7
- package/dist/interfaces/embedding-encoder.d.ts.map +1 -1
- package/dist/interfaces/rtp-egress.d.ts +45 -0
- package/dist/interfaces/rtp-egress.d.ts.map +1 -0
- package/dist/node.js +1 -1
- package/dist/node.mjs +1 -1
- package/package.json +1 -1
- package/dist/capabilities/home-assistant.cap.d.ts +0 -138
- package/dist/capabilities/home-assistant.cap.d.ts.map +0 -1
- package/dist/capabilities/mqtt-provider.cap.d.ts +0 -91
- package/dist/capabilities/mqtt-provider.cap.d.ts.map +0 -1
- package/dist/index-BKifir_y.js.map +0 -1
- package/dist/index-BKnvgAep.mjs.map +0 -1
|
@@ -1069,9 +1069,9 @@ const DecodedFrameSchema = z.object({
|
|
|
1069
1069
|
format: z.enum(["jpeg", "rgb", "bgr", "yuv420", "gray"]),
|
|
1070
1070
|
timestamp: z.number()
|
|
1071
1071
|
});
|
|
1072
|
-
const BrokerStatusSchema = z.enum(["idle", "connecting", "streaming", "error", "stopped"]);
|
|
1072
|
+
const BrokerStatusSchema$1 = z.enum(["idle", "connecting", "streaming", "error", "stopped"]);
|
|
1073
1073
|
const BrokerStatsSchema = z.object({
|
|
1074
|
-
status: BrokerStatusSchema,
|
|
1074
|
+
status: BrokerStatusSchema$1,
|
|
1075
1075
|
inputFps: z.number(),
|
|
1076
1076
|
decodeFps: z.number(),
|
|
1077
1077
|
encodedSubscribers: z.number(),
|
|
@@ -1177,22 +1177,34 @@ const PlaceholderReasonSchema = z.enum([
|
|
|
1177
1177
|
"disabled",
|
|
1178
1178
|
"waking"
|
|
1179
1179
|
]);
|
|
1180
|
+
const VideoCodecTargetSchema = z.enum(["H264", "H265", "auto"]);
|
|
1181
|
+
const AudioCodecTargetSchema = z.enum(["AAC", "Opus", "PCMU", "none"]);
|
|
1182
|
+
const MaxResolutionSchema = z.object({
|
|
1183
|
+
width: z.number().int().positive(),
|
|
1184
|
+
height: z.number().int().positive()
|
|
1185
|
+
});
|
|
1186
|
+
const GetStreamWithCodecInputSchema = z.object({
|
|
1187
|
+
deviceId: z.number().int().nonnegative(),
|
|
1188
|
+
videoCodec: VideoCodecTargetSchema,
|
|
1189
|
+
audioCodec: AudioCodecTargetSchema.optional(),
|
|
1190
|
+
maxResolution: MaxResolutionSchema.optional(),
|
|
1191
|
+
tag: z.string().optional()
|
|
1192
|
+
});
|
|
1193
|
+
const RtpSourceSchema = z.object({
|
|
1194
|
+
url: z.string(),
|
|
1195
|
+
videoCodec: z.enum(["H264", "H265"]),
|
|
1196
|
+
audioCodec: z.string(),
|
|
1197
|
+
resolution: MaxResolutionSchema,
|
|
1198
|
+
transcoded: z.boolean(),
|
|
1199
|
+
encoder: z.string(),
|
|
1200
|
+
pipelineKey: z.string()
|
|
1201
|
+
});
|
|
1180
1202
|
const streamBrokerCapability = {
|
|
1181
1203
|
name: "stream-broker",
|
|
1182
1204
|
scope: "system",
|
|
1183
1205
|
mode: "singleton",
|
|
1184
1206
|
exposesDeviceSettings: true,
|
|
1185
1207
|
methods: {
|
|
1186
|
-
// ── Cam stream lifecycle (publish / retract) ─────────────────────
|
|
1187
|
-
/**
|
|
1188
|
-
* Register a physical camera stream as an input option. Idempotent
|
|
1189
|
-
* for (deviceId, camStreamId) — re-publishing updates metadata
|
|
1190
|
-
* without disturbing profile assignments. The provider calls this
|
|
1191
|
-
* in `onInitialize` for each stream it offers. Third-party addons
|
|
1192
|
-
* may also publish (e.g. an RTMP discovery layer) — camstack has
|
|
1193
|
-
* no notion of "owner" beyond the (deviceId, camStreamId) key.
|
|
1194
|
-
*/
|
|
1195
|
-
/* — see STREAM_BROKER_CAP_EVENTS below for cap-event category strings — */
|
|
1196
1208
|
publishCameraStream: method(
|
|
1197
1209
|
z.object({
|
|
1198
1210
|
deviceId: z.number().int().nonnegative(),
|
|
@@ -1203,28 +1215,8 @@ const streamBrokerCapability = {
|
|
|
1203
1215
|
resolution: CamStreamResolutionSchema.optional(),
|
|
1204
1216
|
fps: z.number().positive().optional(),
|
|
1205
1217
|
label: z.string().optional(),
|
|
1206
|
-
/**
|
|
1207
|
-
* Device-level features that the broker / manager / snapshot
|
|
1208
|
-
* orchestrator consult to derive per-stream policy (e.g.
|
|
1209
|
-
* `BatteryOperated` → relax stall watchdog, default pre-buffer
|
|
1210
|
-
* to off, raise snapshot rate-limit). Single source of truth —
|
|
1211
|
-
* publishers no longer set per-stream flags like `allowStall`.
|
|
1212
|
-
*/
|
|
1213
1218
|
deviceFeatures: z.array(z.string()).optional(),
|
|
1214
|
-
/**
|
|
1215
|
-
* Whether this stream participates in the broker's automatic
|
|
1216
|
-
* profile assignment. Defaults `true`. Publishers set `false` for
|
|
1217
|
-
* streams that should be SELECTABLE but not auto-picked — e.g.
|
|
1218
|
-
* Reolink publishes native Baichuan as eligible and RTSP/RTMP
|
|
1219
|
-
* mirrors as ineligible (still assignable manually via
|
|
1220
|
-
* `assignProfile`).
|
|
1221
|
-
*/
|
|
1222
1219
|
autoEligible: z.boolean().optional(),
|
|
1223
|
-
/**
|
|
1224
|
-
* Transport-specific opaque metadata stashed alongside the stream
|
|
1225
|
-
* record. `pull-rfc4571` publishers put the SDP here so the broker
|
|
1226
|
-
* reader can route packets without an in-band DESCRIBE phase.
|
|
1227
|
-
*/
|
|
1228
1220
|
metadata: z.record(z.string(), z.unknown()).optional()
|
|
1229
1221
|
}),
|
|
1230
1222
|
z.object({ success: z.literal(true) }),
|
|
@@ -1238,12 +1230,6 @@ const streamBrokerCapability = {
|
|
|
1238
1230
|
z.object({ success: z.literal(true) }),
|
|
1239
1231
|
{ kind: "mutation", auth: "admin" }
|
|
1240
1232
|
),
|
|
1241
|
-
// ── Profile assignment ───────────────────────────────────────────
|
|
1242
|
-
/**
|
|
1243
|
-
* Assign a cam stream to a profile slot. Tears down any existing
|
|
1244
|
-
* broker for that slot and rebuilds against the new source. Persists
|
|
1245
|
-
* the choice — survives reboots.
|
|
1246
|
-
*/
|
|
1247
1233
|
assignProfile: method(
|
|
1248
1234
|
z.object({
|
|
1249
1235
|
deviceId: z.number().int().nonnegative(),
|
|
@@ -1261,12 +1247,6 @@ const streamBrokerCapability = {
|
|
|
1261
1247
|
z.object({ success: z.literal(true) }),
|
|
1262
1248
|
{ kind: "mutation", auth: "admin" }
|
|
1263
1249
|
),
|
|
1264
|
-
// ── System-wide views ────────────────────────────────────────────
|
|
1265
|
-
/**
|
|
1266
|
-
* Full dump of every published cam stream across every device.
|
|
1267
|
-
* For dashboards and cross-device tooling; per-device reads go
|
|
1268
|
-
* through the `camera-streams` cap on the device proxy.
|
|
1269
|
-
*/
|
|
1270
1250
|
listAllCameraStreams: method(
|
|
1271
1251
|
z.void(),
|
|
1272
1252
|
z.array(CameraStreamSchema).readonly()
|
|
@@ -1275,7 +1255,6 @@ const streamBrokerCapability = {
|
|
|
1275
1255
|
z.void(),
|
|
1276
1256
|
z.array(ProfileSlotSchema).readonly()
|
|
1277
1257
|
),
|
|
1278
|
-
// ── Broker runtime (stats + client inventory) ────────────────────
|
|
1279
1258
|
getBrokerStats: method(
|
|
1280
1259
|
z.object({ brokerId: z.string() }),
|
|
1281
1260
|
BrokerStatsSchema
|
|
@@ -1293,7 +1272,6 @@ const streamBrokerCapability = {
|
|
|
1293
1272
|
z.object({ killed: z.boolean() }),
|
|
1294
1273
|
{ kind: "mutation", auth: "admin" }
|
|
1295
1274
|
),
|
|
1296
|
-
/** Rebuild the broker for a profile slot in place (re-dial source). */
|
|
1297
1275
|
restartProfile: method(
|
|
1298
1276
|
z.object({
|
|
1299
1277
|
deviceId: z.number().int().nonnegative(),
|
|
@@ -1302,24 +1280,28 @@ const streamBrokerCapability = {
|
|
|
1302
1280
|
z.object({ success: z.boolean() }),
|
|
1303
1281
|
{ kind: "mutation", auth: "admin" }
|
|
1304
1282
|
),
|
|
1305
|
-
// ── Stream URLs ──────────────────────────────────────────────────
|
|
1306
1283
|
getStreamUrl: method(
|
|
1307
1284
|
z.object({ streamId: z.string(), format: StreamFormatSchema }),
|
|
1308
1285
|
z.object({ url: z.string() })
|
|
1309
1286
|
),
|
|
1310
|
-
// ── In-process broker access ─────────────────────────────────────
|
|
1311
1287
|
/**
|
|
1312
|
-
*
|
|
1313
|
-
*
|
|
1314
|
-
* co-located. BrokerId is `${deviceId}/${camStreamId}` — profile
|
|
1315
|
-
* lookup goes through `assignments` if a caller starts from a
|
|
1316
|
-
* profile.
|
|
1288
|
+
* Shared codec-targeted stream API — see Task #184.
|
|
1289
|
+
* Resolution order: source-select → HW transcode → libx264/libx265.
|
|
1317
1290
|
*/
|
|
1291
|
+
getStreamWithCodec: method(
|
|
1292
|
+
GetStreamWithCodecInputSchema,
|
|
1293
|
+
RtpSourceSchema,
|
|
1294
|
+
{ kind: "mutation", auth: "admin" }
|
|
1295
|
+
),
|
|
1296
|
+
releaseStreamWithCodec: method(
|
|
1297
|
+
z.object({ pipelineKey: z.string() }),
|
|
1298
|
+
z.object({ released: z.boolean(), refcount: z.number().int().nonnegative() }),
|
|
1299
|
+
{ kind: "mutation", auth: "admin" }
|
|
1300
|
+
),
|
|
1318
1301
|
getBroker: method(
|
|
1319
1302
|
z.object({ brokerId: z.string() }),
|
|
1320
1303
|
z.custom()
|
|
1321
1304
|
),
|
|
1322
|
-
// ── Pre-buffer ───────────────────────────────────────────────────
|
|
1323
1305
|
setPreBufferDuration: method(
|
|
1324
1306
|
z.object({ brokerId: z.string(), seconds: z.number().min(0).max(30) }),
|
|
1325
1307
|
z.void(),
|
|
@@ -1329,7 +1311,6 @@ const streamBrokerCapability = {
|
|
|
1329
1311
|
z.object({ brokerId: z.string() }),
|
|
1330
1312
|
z.object({ configuredSec: z.number(), bufferedMs: z.number(), packetCount: z.number() })
|
|
1331
1313
|
),
|
|
1332
|
-
// ── RTSP restream ────────────────────────────────────────────────
|
|
1333
1314
|
getRtspPort: method(z.void(), z.number()),
|
|
1334
1315
|
getAllRtspEntries: method(
|
|
1335
1316
|
z.object({ hostname: z.string().optional() }),
|
|
@@ -1355,37 +1336,15 @@ const streamBrokerCapability = {
|
|
|
1355
1336
|
)
|
|
1356
1337
|
},
|
|
1357
1338
|
events: {
|
|
1358
|
-
/**
|
|
1359
|
-
* Emitted when a profile starts consuming a push-kind cam stream.
|
|
1360
|
-
* Push-kind providers (e.g. Reolink Baichuan native streams)
|
|
1361
|
-
* subscribe and begin emitting packets only on demand — battery
|
|
1362
|
-
* cams stay asleep until someone actually watches.
|
|
1363
|
-
*/
|
|
1364
1339
|
onCamStreamDemand: event(z.object({
|
|
1365
1340
|
deviceId: z.number().int().nonnegative(),
|
|
1366
1341
|
camStreamId: z.string(),
|
|
1367
1342
|
profile: CamProfileSchema
|
|
1368
1343
|
})),
|
|
1369
|
-
/**
|
|
1370
|
-
* Emitted when the last profile consuming a push-kind cam stream
|
|
1371
|
-
* releases it. Providers tear down upstream connections on this
|
|
1372
|
-
* signal.
|
|
1373
|
-
*/
|
|
1374
1344
|
onCamStreamIdle: event(z.object({
|
|
1375
1345
|
deviceId: z.number().int().nonnegative(),
|
|
1376
1346
|
camStreamId: z.string()
|
|
1377
1347
|
})),
|
|
1378
|
-
/**
|
|
1379
|
-
* Emitted by a broker that failed to dial a managed-loopback
|
|
1380
|
-
* source (today: `pull-rfc4571`). The publisher's transport (e.g.
|
|
1381
|
-
* the Reolink lib's RFC 4571 TCP server) idle-tears-down after
|
|
1382
|
-
* ~15s with no clients and may rebind to a different port on
|
|
1383
|
-
* recreate, leaving the URL the broker has cached stale. The owning
|
|
1384
|
-
* camera provider re-runs its publish pipeline on receipt — that
|
|
1385
|
-
* call self-heals the loopback server (`ensureRfc4571Server`) and
|
|
1386
|
-
* `publishCameraStream` propagates the fresh URL back into the
|
|
1387
|
-
* broker's source resolver.
|
|
1388
|
-
*/
|
|
1389
1348
|
onRequestStreamSourceRefresh: event(z.object({
|
|
1390
1349
|
deviceId: z.number().int().nonnegative(),
|
|
1391
1350
|
camStreamId: z.string(),
|
|
@@ -3659,14 +3618,16 @@ const logDestinationCapability = {
|
|
|
3659
3618
|
)
|
|
3660
3619
|
}
|
|
3661
3620
|
};
|
|
3621
|
+
const StaticDirOutputSchema = z.object({ staticDir: z.string() });
|
|
3622
|
+
const VersionOutputSchema = z.object({ version: z.string() });
|
|
3662
3623
|
const adminUiCapability = {
|
|
3663
3624
|
name: "admin-ui",
|
|
3664
3625
|
scope: "system",
|
|
3665
3626
|
mode: "singleton",
|
|
3666
3627
|
internal: true,
|
|
3667
3628
|
methods: {
|
|
3668
|
-
getStaticDir: method(z.void(),
|
|
3669
|
-
getVersion: method(z.void(),
|
|
3629
|
+
getStaticDir: method(z.void(), StaticDirOutputSchema),
|
|
3630
|
+
getVersion: method(z.void(), VersionOutputSchema)
|
|
3670
3631
|
}
|
|
3671
3632
|
};
|
|
3672
3633
|
const SsoBridgeClaimsSchema = z.object({
|
|
@@ -3675,7 +3636,16 @@ const SsoBridgeClaimsSchema = z.object({
|
|
|
3675
3636
|
isAdmin: z.boolean(),
|
|
3676
3637
|
provider: z.string(),
|
|
3677
3638
|
email: z.string().optional(),
|
|
3678
|
-
displayName: z.string().optional()
|
|
3639
|
+
displayName: z.string().optional(),
|
|
3640
|
+
/**
|
|
3641
|
+
* Public HTTPS URL of the hub that issued this token. Used by
|
|
3642
|
+
* cloud-mode OAuth proxies (Alexa Smart Home Lambda, future Google
|
|
3643
|
+
* Home Lambda) to route a request back to the originating hub
|
|
3644
|
+
* without holding routing state of their own. The Lambda decodes the
|
|
3645
|
+
* JWT WITHOUT verifying the signature — the hub re-verifies on every
|
|
3646
|
+
* inbound call so trust still rests with the signing hub.
|
|
3647
|
+
*/
|
|
3648
|
+
hubUrl: z.string().optional()
|
|
3679
3649
|
});
|
|
3680
3650
|
const ssoBridgeCapability = {
|
|
3681
3651
|
name: "sso-bridge",
|
|
@@ -3757,7 +3727,7 @@ const userPasskeysCapability = {
|
|
|
3757
3727
|
)
|
|
3758
3728
|
}
|
|
3759
3729
|
};
|
|
3760
|
-
const EmailAddressSchema = z.
|
|
3730
|
+
const EmailAddressSchema = z.email();
|
|
3761
3731
|
const SendEmailInputSchema = z.object({
|
|
3762
3732
|
to: z.union([EmailAddressSchema, z.array(EmailAddressSchema).min(1)]),
|
|
3763
3733
|
cc: z.array(EmailAddressSchema).optional(),
|
|
@@ -3795,6 +3765,7 @@ const smtpProviderCapability = {
|
|
|
3795
3765
|
scope: "system",
|
|
3796
3766
|
mode: "collection",
|
|
3797
3767
|
internal: true,
|
|
3768
|
+
providerKind: "email",
|
|
3798
3769
|
methods: {
|
|
3799
3770
|
sendEmail: method(
|
|
3800
3771
|
SendEmailInputSchema,
|
|
@@ -3815,204 +3786,125 @@ const smtpProviderCapability = {
|
|
|
3815
3786
|
)
|
|
3816
3787
|
}
|
|
3817
3788
|
};
|
|
3818
|
-
const
|
|
3819
|
-
const
|
|
3820
|
-
|
|
3821
|
-
|
|
3822
|
-
|
|
3823
|
-
|
|
3824
|
-
|
|
3825
|
-
|
|
3826
|
-
const
|
|
3827
|
-
|
|
3828
|
-
|
|
3829
|
-
|
|
3789
|
+
const BrokerKindSchema = z.enum(["external", "embedded"]);
|
|
3790
|
+
const BrokerStatusSchema = z.enum([
|
|
3791
|
+
"connected",
|
|
3792
|
+
"disconnected",
|
|
3793
|
+
"auth-failed",
|
|
3794
|
+
"unreachable",
|
|
3795
|
+
"tls-error"
|
|
3796
|
+
]);
|
|
3797
|
+
const BrokerInfoSchema = z.object({
|
|
3798
|
+
id: z.string(),
|
|
3799
|
+
name: z.string(),
|
|
3800
|
+
url: z.string(),
|
|
3801
|
+
kind: BrokerKindSchema,
|
|
3802
|
+
status: BrokerStatusSchema,
|
|
3803
|
+
latencyMs: z.number().nullable(),
|
|
3804
|
+
error: z.string().optional(),
|
|
3805
|
+
/** Embedded brokers only: number of MQTT clients currently connected. */
|
|
3806
|
+
connectedClients: z.number().int().nonnegative().optional(),
|
|
3807
|
+
/** Epoch ms of the last live probe (external) or aedes snapshot (embedded). */
|
|
3808
|
+
lastCheckedAt: z.number().optional()
|
|
3809
|
+
});
|
|
3810
|
+
const BrokerConnectionDetailsSchema = z.object({
|
|
3811
|
+
url: z.string(),
|
|
3812
|
+
username: z.string().optional(),
|
|
3813
|
+
password: z.string().optional(),
|
|
3830
3814
|
/**
|
|
3831
|
-
*
|
|
3832
|
-
*
|
|
3833
|
-
*
|
|
3815
|
+
* Suggested prefix for `clientId`. Each consumer should suffix this
|
|
3816
|
+
* with its own discriminator (addon id, instance id) so reconnects
|
|
3817
|
+
* don't kick each other off (MQTT spec: clientId must be unique per
|
|
3818
|
+
* broker).
|
|
3834
3819
|
*/
|
|
3835
|
-
|
|
3820
|
+
clientIdPrefix: z.string().optional()
|
|
3836
3821
|
});
|
|
3837
|
-
const
|
|
3838
|
-
|
|
3839
|
-
|
|
3840
|
-
|
|
3822
|
+
const AddBrokerInputSchema = z.object({
|
|
3823
|
+
name: z.string().min(1),
|
|
3824
|
+
url: z.string().regex(/^(mqtt|mqtts|ws|wss):\/\//, "URL must start with mqtt(s):// or ws(s)://"),
|
|
3825
|
+
username: z.string().optional(),
|
|
3826
|
+
password: z.string().optional(),
|
|
3827
|
+
clientIdPrefix: z.string().optional()
|
|
3841
3828
|
});
|
|
3842
|
-
const
|
|
3843
|
-
|
|
3844
|
-
subscriptionId: z.string()
|
|
3829
|
+
const AddBrokerResultSchema = z.object({
|
|
3830
|
+
id: z.string()
|
|
3845
3831
|
});
|
|
3846
|
-
const
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
|
|
3850
|
-
|
|
3851
|
-
|
|
3852
|
-
|
|
3853
|
-
/**
|
|
3854
|
-
|
|
3855
|
-
/**
|
|
3856
|
-
|
|
3857
|
-
|
|
3858
|
-
const SubscriptionInfoSchema = z.object({
|
|
3859
|
-
subscriptionId: z.string(),
|
|
3860
|
-
topic: z.string(),
|
|
3861
|
-
qos: QosSchema,
|
|
3862
|
-
owner: z.string(),
|
|
3863
|
-
/** When this individual subscription was created. */
|
|
3864
|
-
createdAt: z.number()
|
|
3832
|
+
const IdInputSchema = z.object({ id: z.string() });
|
|
3833
|
+
const TestResultSchema = z.discriminatedUnion("ok", [
|
|
3834
|
+
z.object({ ok: z.literal(true), latencyMs: z.number() }),
|
|
3835
|
+
z.object({ ok: z.literal(false), error: z.string() })
|
|
3836
|
+
]);
|
|
3837
|
+
const StartEmbeddedInputSchema = z.object({
|
|
3838
|
+
port: z.number().int().min(1).max(65535).default(1883),
|
|
3839
|
+
/** Allow anonymous connect (no username/password). Default: false. */
|
|
3840
|
+
allowAnonymous: z.boolean().default(false),
|
|
3841
|
+
/** Optional shared username/password for clients. */
|
|
3842
|
+
username: z.string().optional(),
|
|
3843
|
+
password: z.string().optional()
|
|
3865
3844
|
});
|
|
3866
|
-
const
|
|
3867
|
-
|
|
3845
|
+
const StartEmbeddedResultSchema = z.object({
|
|
3846
|
+
id: z.string(),
|
|
3847
|
+
url: z.string()
|
|
3848
|
+
});
|
|
3849
|
+
const StatusSchema = z.object({
|
|
3850
|
+
brokerCount: z.number(),
|
|
3851
|
+
embeddedRunning: z.boolean()
|
|
3852
|
+
});
|
|
3853
|
+
const mqttBrokerCapability = {
|
|
3854
|
+
name: "mqtt-broker",
|
|
3868
3855
|
scope: "system",
|
|
3869
3856
|
mode: "collection",
|
|
3870
|
-
|
|
3857
|
+
providerKind: "broker",
|
|
3858
|
+
status: { schema: StatusSchema, kind: "poll" },
|
|
3871
3859
|
methods: {
|
|
3872
|
-
|
|
3873
|
-
|
|
3874
|
-
|
|
3875
|
-
|
|
3876
|
-
|
|
3877
|
-
),
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
* `unsubscribe`. The addon refcounts broker subscriptions —
|
|
3881
|
-
* multiple consumers on the same topic share one upstream sub.
|
|
3882
|
-
* Messages arrive on `mqtt.message` events with `subscriptionIds[]`
|
|
3883
|
-
* listing which subscriptions matched.
|
|
3884
|
-
*/
|
|
3885
|
-
subscribe: method(
|
|
3886
|
-
SubscribeInputSchema,
|
|
3887
|
-
SubscribeResultSchema,
|
|
3888
|
-
{ kind: "mutation", auth: "admin", access: "create" }
|
|
3889
|
-
),
|
|
3890
|
-
/** Release a specific subscription. Tears down the broker sub
|
|
3891
|
-
* only when the last owner releases. Idempotent. */
|
|
3892
|
-
unsubscribe: method(
|
|
3893
|
-
UnsubscribeInputSchema,
|
|
3894
|
-
z.object({ success: z.literal(true) }),
|
|
3895
|
-
{ kind: "mutation", auth: "admin", access: "delete" }
|
|
3896
|
-
),
|
|
3897
|
-
/** List active per-owner subscriptions on this provider. */
|
|
3898
|
-
listSubscriptions: method(
|
|
3899
|
-
z.void(),
|
|
3900
|
-
z.array(SubscriptionInfoSchema),
|
|
3901
|
-
{ auth: "admin" }
|
|
3902
|
-
),
|
|
3903
|
-
getStatus: method(
|
|
3904
|
-
z.void(),
|
|
3905
|
-
MqttStatusSchema,
|
|
3906
|
-
{ auth: "admin" }
|
|
3907
|
-
)
|
|
3860
|
+
listBrokers: method(z.void(), z.array(BrokerInfoSchema)),
|
|
3861
|
+
getBrokerConfig: method(IdInputSchema, BrokerConnectionDetailsSchema),
|
|
3862
|
+
addBroker: method(AddBrokerInputSchema, AddBrokerResultSchema, { kind: "mutation" }),
|
|
3863
|
+
removeBroker: method(IdInputSchema, z.void(), { kind: "mutation" }),
|
|
3864
|
+
testConnection: method(IdInputSchema, TestResultSchema, { kind: "mutation" }),
|
|
3865
|
+
startEmbeddedBroker: method(StartEmbeddedInputSchema, StartEmbeddedResultSchema, { kind: "mutation" }),
|
|
3866
|
+
stopEmbeddedBroker: method(IdInputSchema, z.void(), { kind: "mutation" }),
|
|
3867
|
+
getStatus: method(z.void(), StatusSchema)
|
|
3908
3868
|
}
|
|
3909
3869
|
};
|
|
3910
|
-
const
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
/** Service-specific data payload (e.g. `{entity_id: 'light.kitchen', brightness: 200}`). */
|
|
3916
|
-
serviceData: z.record(z.string(), z.unknown()).optional(),
|
|
3917
|
-
/** Optional target spec (entity_id / device_id / area_id). */
|
|
3918
|
-
target: z.record(z.string(), z.unknown()).optional()
|
|
3919
|
-
});
|
|
3920
|
-
const HaStateSchema = z.object({
|
|
3921
|
-
entity_id: z.string(),
|
|
3922
|
-
state: z.string(),
|
|
3923
|
-
attributes: z.record(z.string(), z.unknown()).default({}),
|
|
3924
|
-
last_changed: z.string().optional(),
|
|
3925
|
-
last_updated: z.string().optional()
|
|
3870
|
+
const LinkStateSchema = z.enum(["unlinked", "linked", "error"]);
|
|
3871
|
+
const DeviceExportStatusSchema = z.object({
|
|
3872
|
+
linkState: LinkStateSchema,
|
|
3873
|
+
exposedDeviceCount: z.number(),
|
|
3874
|
+
error: z.string().optional()
|
|
3926
3875
|
});
|
|
3927
|
-
const
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
/** Last error reported by the WebSocket. */
|
|
3933
|
-
error: z.string().optional(),
|
|
3934
|
-
/** HA version reported during the auth handshake, when reachable. */
|
|
3935
|
-
haVersion: z.string().optional(),
|
|
3936
|
-
connectedAt: z.number().optional()
|
|
3876
|
+
const DeviceKindSchema = z.string();
|
|
3877
|
+
const ExposedDeviceSchema = z.object({
|
|
3878
|
+
deviceId: z.string(),
|
|
3879
|
+
exposedAs: z.string().optional(),
|
|
3880
|
+
capabilities: z.array(z.string()).optional()
|
|
3937
3881
|
});
|
|
3938
|
-
const
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
* `service_called`, etc.). Empty string = all events (firehose —
|
|
3942
|
-
* only for debugging).
|
|
3943
|
-
*/
|
|
3944
|
-
eventType: z.string().optional(),
|
|
3945
|
-
/** Caller-supplied tag for listSubscriptions debugging. */
|
|
3946
|
-
owner: z.string().optional()
|
|
3947
|
-
});
|
|
3948
|
-
const HaSubscribeResultSchema = z.object({
|
|
3949
|
-
success: z.literal(true),
|
|
3950
|
-
subscriptionId: z.string()
|
|
3951
|
-
});
|
|
3952
|
-
const HaUnsubscribeInputSchema = z.object({
|
|
3953
|
-
subscriptionId: z.string()
|
|
3954
|
-
});
|
|
3955
|
-
const HaSubscriptionInfoSchema = z.object({
|
|
3956
|
-
subscriptionId: z.string(),
|
|
3957
|
-
/** Empty string when subscribed to ALL events. */
|
|
3958
|
-
eventType: z.string(),
|
|
3959
|
-
owner: z.string(),
|
|
3960
|
-
createdAt: z.number()
|
|
3882
|
+
const ExposeInputSchema = z.object({
|
|
3883
|
+
deviceId: z.string(),
|
|
3884
|
+
capabilities: z.array(z.string()).optional()
|
|
3961
3885
|
});
|
|
3962
|
-
const
|
|
3963
|
-
|
|
3886
|
+
const UnexposeInputSchema = z.object({ deviceId: z.string() });
|
|
3887
|
+
const deviceExportCapability = {
|
|
3888
|
+
name: "device-export",
|
|
3964
3889
|
scope: "system",
|
|
3965
3890
|
mode: "collection",
|
|
3966
|
-
|
|
3891
|
+
providerKind: "device-export",
|
|
3892
|
+
status: { schema: DeviceExportStatusSchema, kind: "poll" },
|
|
3893
|
+
/**
|
|
3894
|
+
* Each export provider contributes its own per-device "Export" panel
|
|
3895
|
+
* (enabled toggle, preferred stream, addon-specific knobs like the
|
|
3896
|
+
* HA-MQTT discovery prefix). The three framework methods
|
|
3897
|
+
* `getDeviceSettingsContribution` / `getDeviceLiveContribution` /
|
|
3898
|
+
* `applyDeviceSettingsPatch` are auto-injected on the provider
|
|
3899
|
+
* interface and routed to the device-details aggregator.
|
|
3900
|
+
*/
|
|
3901
|
+
exposesDeviceSettings: true,
|
|
3967
3902
|
methods: {
|
|
3968
|
-
|
|
3969
|
-
|
|
3970
|
-
|
|
3971
|
-
|
|
3972
|
-
|
|
3973
|
-
* with `subscriptionIds[]` listing which subs matched.
|
|
3974
|
-
*/
|
|
3975
|
-
subscribeEvents: method(
|
|
3976
|
-
HaSubscribeInputSchema,
|
|
3977
|
-
HaSubscribeResultSchema,
|
|
3978
|
-
{ kind: "mutation", auth: "admin", access: "create" }
|
|
3979
|
-
),
|
|
3980
|
-
/** Release a specific subscription. Tears down the upstream sub
|
|
3981
|
-
* only when the last owner releases. Idempotent. */
|
|
3982
|
-
unsubscribeEvents: method(
|
|
3983
|
-
HaUnsubscribeInputSchema,
|
|
3984
|
-
z.object({ success: z.literal(true) }),
|
|
3985
|
-
{ kind: "mutation", auth: "admin", access: "delete" }
|
|
3986
|
-
),
|
|
3987
|
-
/**
|
|
3988
|
-
* Call an HA service (turn light on, run a script, etc.). Returns
|
|
3989
|
-
* the HA response object — usually `{context, response: ...}`.
|
|
3990
|
-
*/
|
|
3991
|
-
callService: method(
|
|
3992
|
-
HaServiceCallSchema,
|
|
3993
|
-
z.object({ result: z.unknown() }),
|
|
3994
|
-
{ kind: "mutation", auth: "admin", access: "create" }
|
|
3995
|
-
),
|
|
3996
|
-
/** Fetch all entity states. Cheap snapshot — HA returns the full
|
|
3997
|
-
* state registry on every call. */
|
|
3998
|
-
getStates: method(
|
|
3999
|
-
z.void(),
|
|
4000
|
-
z.array(HaStateSchema).readonly(),
|
|
4001
|
-
{ auth: "admin" }
|
|
4002
|
-
),
|
|
4003
|
-
/** Fetch a single entity's current state. `null` when not found. */
|
|
4004
|
-
getState: method(
|
|
4005
|
-
z.object({ entityId: z.string() }),
|
|
4006
|
-
HaStateSchema.nullable(),
|
|
4007
|
-
{ auth: "admin" }
|
|
4008
|
-
),
|
|
4009
|
-
/** List active per-owner subscriptions. */
|
|
4010
|
-
listSubscriptions: method(
|
|
4011
|
-
z.void(),
|
|
4012
|
-
z.array(HaSubscriptionInfoSchema).readonly(),
|
|
4013
|
-
{ auth: "admin" }
|
|
4014
|
-
),
|
|
4015
|
-
getStatus: method(z.void(), HaStatusSchema, { auth: "admin" })
|
|
3903
|
+
getStatus: method(z.void(), DeviceExportStatusSchema),
|
|
3904
|
+
listSupportedDeviceKinds: method(z.void(), z.array(DeviceKindSchema)),
|
|
3905
|
+
listExposedDevices: method(z.void(), z.array(ExposedDeviceSchema)),
|
|
3906
|
+
exposeDevice: method(ExposeInputSchema, z.void(), { kind: "mutation" }),
|
|
3907
|
+
unexposeDevice: method(UnexposeInputSchema, z.void(), { kind: "mutation" })
|
|
4016
3908
|
}
|
|
4017
3909
|
};
|
|
4018
3910
|
const AddonPageDeclarationSchema$1 = z.object({
|
|
@@ -4414,6 +4306,29 @@ const webrtcSessionCapability = {
|
|
|
4414
4306
|
z.object({ sessionId: z.string(), sdpOffer: z.string() }),
|
|
4415
4307
|
{ kind: "mutation" }
|
|
4416
4308
|
),
|
|
4309
|
+
/**
|
|
4310
|
+
* Accept a CLIENT-generated SDP offer and return the server's
|
|
4311
|
+
* SDP answer. Mirrors the WHEP / Alexa
|
|
4312
|
+
* `Alexa.RTCSessionController.InitiateSessionWithOffer` direction
|
|
4313
|
+
* (client offers, server answers) — the dual of `createSession`,
|
|
4314
|
+
* which has the server offer first.
|
|
4315
|
+
*
|
|
4316
|
+
* `target` defaults to the device's adaptive selection when
|
|
4317
|
+
* omitted; an optional `sessionId` lets the client provide its
|
|
4318
|
+
* own correlation id (Alexa supplies one in the directive
|
|
4319
|
+
* payload). The returned `sessionId` is whatever the server uses
|
|
4320
|
+
* to track the session and accepts via `closeSession`.
|
|
4321
|
+
*/
|
|
4322
|
+
handleOffer: method(
|
|
4323
|
+
z.object({
|
|
4324
|
+
deviceId: z.number().int().nonnegative(),
|
|
4325
|
+
target: WebrtcStreamTargetSchema.optional(),
|
|
4326
|
+
sdpOffer: z.string(),
|
|
4327
|
+
sessionId: z.string().optional()
|
|
4328
|
+
}),
|
|
4329
|
+
z.object({ sessionId: z.string(), sdpAnswer: z.string() }),
|
|
4330
|
+
{ kind: "mutation" }
|
|
4331
|
+
),
|
|
4417
4332
|
handleAnswer: method(
|
|
4418
4333
|
z.object({
|
|
4419
4334
|
deviceId: z.number().int().nonnegative(),
|
|
@@ -5053,12 +4968,12 @@ const audioCodecCapability = {
|
|
|
5053
4968
|
};
|
|
5054
4969
|
const EmbeddingResultSchema = z.object({
|
|
5055
4970
|
embedding: z.array(z.number()),
|
|
5056
|
-
|
|
4971
|
+
inferenceMs: z.number()
|
|
5057
4972
|
});
|
|
5058
4973
|
const EmbeddingInfoSchema = z.object({
|
|
5059
4974
|
modelId: z.string(),
|
|
5060
|
-
|
|
5061
|
-
|
|
4975
|
+
embeddingDim: z.number(),
|
|
4976
|
+
ready: z.boolean()
|
|
5062
4977
|
});
|
|
5063
4978
|
const embeddingEncoderCapability = {
|
|
5064
4979
|
name: "embedding-encoder",
|
|
@@ -5793,16 +5708,36 @@ const NetworkAccessStatusSchema = z.object({
|
|
|
5793
5708
|
endpoint: NetworkEndpointSchema.nullable(),
|
|
5794
5709
|
error: z.string().optional()
|
|
5795
5710
|
});
|
|
5711
|
+
const NetworkEndpointEntrySchema = NetworkEndpointSchema.extend({
|
|
5712
|
+
/**
|
|
5713
|
+
* Stable id within the provider — typically `<mode>-<sourcePort>` so
|
|
5714
|
+
* the orchestrator can dedupe across `listEndpoints` polls.
|
|
5715
|
+
*/
|
|
5716
|
+
id: z.string(),
|
|
5717
|
+
/** Operator-facing label (mirrors `MeshEndpoint.label`). */
|
|
5718
|
+
label: z.string(),
|
|
5719
|
+
/** Optional provider-specific mode tag, used for icon/colour in admin UI. */
|
|
5720
|
+
mode: z.string().optional(),
|
|
5721
|
+
/** Originating local port the ingress fronts (informational). */
|
|
5722
|
+
sourcePort: z.number().optional()
|
|
5723
|
+
});
|
|
5796
5724
|
const networkAccessCapability = {
|
|
5797
5725
|
name: "network-access",
|
|
5798
5726
|
scope: "system",
|
|
5799
5727
|
mode: "collection",
|
|
5800
5728
|
internal: true,
|
|
5729
|
+
providerKind: "ingress",
|
|
5801
5730
|
methods: {
|
|
5802
5731
|
start: method(z.void(), NetworkEndpointSchema, { kind: "mutation" }),
|
|
5803
5732
|
stop: method(z.void(), z.void(), { kind: "mutation" }),
|
|
5804
5733
|
getEndpoint: method(z.void(), NetworkEndpointSchema.nullable()),
|
|
5805
|
-
getStatus: method(z.void(), NetworkAccessStatusSchema)
|
|
5734
|
+
getStatus: method(z.void(), NetworkAccessStatusSchema),
|
|
5735
|
+
/**
|
|
5736
|
+
* Enumerate every active ingress entry. Default implementation (when
|
|
5737
|
+
* the provider omits this method) is derived from `getEndpoint()` —
|
|
5738
|
+
* see the remote-access orchestrator for the fallback path.
|
|
5739
|
+
*/
|
|
5740
|
+
listEndpoints: method(z.void(), z.array(NetworkEndpointEntrySchema).readonly())
|
|
5806
5741
|
}
|
|
5807
5742
|
};
|
|
5808
5743
|
const RemoteAccessEndpointSchema = z.object({
|
|
@@ -6006,20 +5941,59 @@ const notificationOutputCapability = {
|
|
|
6006
5941
|
)
|
|
6007
5942
|
}
|
|
6008
5943
|
};
|
|
5944
|
+
const NotificationRuleConditionsSchema = z.object({
|
|
5945
|
+
deviceIds: z.array(z.number()).readonly().optional(),
|
|
5946
|
+
classNames: z.array(z.string()).readonly().optional(),
|
|
5947
|
+
zoneIds: z.array(z.string()).readonly().optional(),
|
|
5948
|
+
minConfidence: z.number().optional(),
|
|
5949
|
+
source: z.enum(["pipeline", "onboard", "any"]).optional(),
|
|
5950
|
+
schedule: z.object({
|
|
5951
|
+
days: z.array(z.number()).readonly(),
|
|
5952
|
+
startHour: z.number(),
|
|
5953
|
+
endHour: z.number()
|
|
5954
|
+
}).optional(),
|
|
5955
|
+
cooldownSeconds: z.number().optional(),
|
|
5956
|
+
minDwellSeconds: z.number().optional()
|
|
5957
|
+
});
|
|
5958
|
+
const NotificationRuleTemplateSchema = z.object({
|
|
5959
|
+
title: z.string(),
|
|
5960
|
+
body: z.string(),
|
|
5961
|
+
imageMode: z.enum(["crop", "annotated", "full", "none"])
|
|
5962
|
+
});
|
|
6009
5963
|
const NotificationRuleSchema = z.object({
|
|
6010
5964
|
id: z.string(),
|
|
6011
5965
|
name: z.string(),
|
|
6012
5966
|
enabled: z.boolean(),
|
|
6013
|
-
|
|
6014
|
-
|
|
5967
|
+
eventTypes: z.array(z.string()).readonly(),
|
|
5968
|
+
conditions: NotificationRuleConditionsSchema,
|
|
5969
|
+
outputs: z.array(z.string()).readonly(),
|
|
5970
|
+
template: NotificationRuleTemplateSchema.optional(),
|
|
5971
|
+
priority: z.enum(["low", "normal", "high", "critical"])
|
|
5972
|
+
});
|
|
5973
|
+
const NotificationTestResultSchema = z.object({
|
|
5974
|
+
ruleId: z.string(),
|
|
5975
|
+
eventId: z.string(),
|
|
5976
|
+
timestamp: z.number(),
|
|
5977
|
+
wouldFire: z.boolean(),
|
|
5978
|
+
reason: z.string().optional()
|
|
6015
5979
|
});
|
|
6016
5980
|
const NotificationHistoryEntrySchema = z.object({
|
|
6017
5981
|
id: z.string(),
|
|
6018
5982
|
ruleId: z.string(),
|
|
5983
|
+
ruleName: z.string(),
|
|
5984
|
+
eventId: z.string(),
|
|
6019
5985
|
timestamp: z.number(),
|
|
6020
|
-
|
|
5986
|
+
outputs: z.array(z.string()).readonly(),
|
|
6021
5987
|
success: z.boolean(),
|
|
6022
|
-
error: z.string().optional()
|
|
5988
|
+
error: z.string().optional(),
|
|
5989
|
+
deviceId: z.number().optional()
|
|
5990
|
+
});
|
|
5991
|
+
const NotificationHistoryFilterSchema = z.object({
|
|
5992
|
+
ruleId: z.string().optional(),
|
|
5993
|
+
deviceId: z.number().optional(),
|
|
5994
|
+
from: z.number().optional(),
|
|
5995
|
+
to: z.number().optional(),
|
|
5996
|
+
limit: z.number().optional()
|
|
6023
5997
|
});
|
|
6024
5998
|
const advancedNotifierCapability = {
|
|
6025
5999
|
name: "advanced-notifier",
|
|
@@ -6027,17 +6001,28 @@ const advancedNotifierCapability = {
|
|
|
6027
6001
|
mode: "singleton",
|
|
6028
6002
|
internal: true,
|
|
6029
6003
|
methods: {
|
|
6030
|
-
getRules: method(
|
|
6031
|
-
|
|
6032
|
-
|
|
6004
|
+
getRules: method(
|
|
6005
|
+
z.void(),
|
|
6006
|
+
z.object({ rules: z.array(NotificationRuleSchema).readonly() })
|
|
6007
|
+
),
|
|
6008
|
+
upsertRule: method(
|
|
6009
|
+
z.object({ rule: NotificationRuleSchema }),
|
|
6010
|
+
z.object({ success: z.literal(true) }),
|
|
6011
|
+
{ kind: "mutation" }
|
|
6012
|
+
),
|
|
6013
|
+
deleteRule: method(
|
|
6014
|
+
z.object({ ruleId: z.string() }),
|
|
6015
|
+
z.object({ success: z.literal(true) }),
|
|
6016
|
+
{ kind: "mutation" }
|
|
6017
|
+
),
|
|
6033
6018
|
testRule: method(
|
|
6034
6019
|
z.object({ ruleId: z.string(), lookbackMinutes: z.number() }),
|
|
6035
|
-
z.
|
|
6020
|
+
z.object({ results: z.array(NotificationTestResultSchema).readonly() }),
|
|
6036
6021
|
{ kind: "mutation" }
|
|
6037
6022
|
),
|
|
6038
6023
|
getHistory: method(
|
|
6039
|
-
z.object({
|
|
6040
|
-
z.array(NotificationHistoryEntrySchema)
|
|
6024
|
+
z.object({ filter: NotificationHistoryFilterSchema.optional() }),
|
|
6025
|
+
z.object({ entries: z.array(NotificationHistoryEntrySchema).readonly() })
|
|
6041
6026
|
)
|
|
6042
6027
|
}
|
|
6043
6028
|
};
|
|
@@ -7059,6 +7044,47 @@ const intercomCapability = {
|
|
|
7059
7044
|
z.object({ deviceId: z.number(), sessionId: z.string() }),
|
|
7060
7045
|
z.void(),
|
|
7061
7046
|
{ kind: "mutation", auth: "admin" }
|
|
7047
|
+
),
|
|
7048
|
+
/**
|
|
7049
|
+
* Open a raw-PCM talk session (no WebRTC SDP plumbing). Used by
|
|
7050
|
+
* non-WebRTC consumers (HomeKit export, Alexa raw audio, test
|
|
7051
|
+
* harnesses) that already have decoded PCM frames and just need a
|
|
7052
|
+
* direct path onto the camera's talk channel. Mutually exclusive
|
|
7053
|
+
* with `startSession` (an active WebRTC session must be stopped
|
|
7054
|
+
* before a raw-PCM session can be opened on the same device, and
|
|
7055
|
+
* vice versa).
|
|
7056
|
+
*/
|
|
7057
|
+
startTalkSession: method(
|
|
7058
|
+
z.object({ deviceId: z.number() }),
|
|
7059
|
+
z.object({ sessionId: z.string() }),
|
|
7060
|
+
{ kind: "mutation", auth: "admin" }
|
|
7061
|
+
),
|
|
7062
|
+
/**
|
|
7063
|
+
* Push a chunk of PCM s16le mono onto the active raw-PCM talk
|
|
7064
|
+
* session. Frames are encoded to the firmware's expected codec
|
|
7065
|
+
* (Reolink: IMA ADPCM @ camera sample rate; Hikvision: G.711 @
|
|
7066
|
+
* 8 kHz) inside the provider — callers must resample upstream to
|
|
7067
|
+
* the rate the camera negotiated (typical: 16 kHz Reolink,
|
|
7068
|
+
* 8 kHz Hikvision). PCM is shipped base64-encoded so the payload
|
|
7069
|
+
* survives JSON serialization across tRPC.
|
|
7070
|
+
*/
|
|
7071
|
+
pushTalkPcm: method(
|
|
7072
|
+
z.object({
|
|
7073
|
+
deviceId: z.number(),
|
|
7074
|
+
/** PCM frames as little-endian s16, mono. Base64-encoded so
|
|
7075
|
+
* the payload survives tRPC JSON serialization. */
|
|
7076
|
+
pcmBase64: z.string(),
|
|
7077
|
+
/** Sequence number for ordering / dropping out-of-order frames. */
|
|
7078
|
+
sequenceNumber: z.number().int()
|
|
7079
|
+
}),
|
|
7080
|
+
z.object({ accepted: z.boolean() }),
|
|
7081
|
+
{ kind: "mutation", auth: "admin" }
|
|
7082
|
+
),
|
|
7083
|
+
/** Close the raw-PCM talk session. Idempotent. */
|
|
7084
|
+
endTalkSession: method(
|
|
7085
|
+
z.object({ deviceId: z.number() }),
|
|
7086
|
+
z.void(),
|
|
7087
|
+
{ kind: "mutation", auth: "admin" }
|
|
7062
7088
|
)
|
|
7063
7089
|
},
|
|
7064
7090
|
events: {
|
|
@@ -7134,6 +7160,33 @@ const HwAccelBackendInputSchema = z.enum([
|
|
|
7134
7160
|
const HwAccelResolutionSchema = z.object({
|
|
7135
7161
|
preferred: z.array(z.string()).readonly()
|
|
7136
7162
|
});
|
|
7163
|
+
const HardwareEncoderIdSchema = z.enum([
|
|
7164
|
+
"h264_videotoolbox",
|
|
7165
|
+
"hevc_videotoolbox",
|
|
7166
|
+
"h264_vaapi",
|
|
7167
|
+
"hevc_vaapi",
|
|
7168
|
+
"h264_nvenc",
|
|
7169
|
+
"hevc_nvenc",
|
|
7170
|
+
"h264_qsv",
|
|
7171
|
+
"hevc_qsv",
|
|
7172
|
+
"h264_amf",
|
|
7173
|
+
"hevc_amf",
|
|
7174
|
+
"libx264",
|
|
7175
|
+
"libx265"
|
|
7176
|
+
]);
|
|
7177
|
+
const HardwareEncoderProbeSchema = z.object({
|
|
7178
|
+
encoder: HardwareEncoderIdSchema,
|
|
7179
|
+
codec: z.enum(["H264", "H265"]),
|
|
7180
|
+
family: z.enum(["videotoolbox", "vaapi", "nvenc", "qsv", "amf", "software"]),
|
|
7181
|
+
available: z.boolean(),
|
|
7182
|
+
reason: z.string().optional()
|
|
7183
|
+
});
|
|
7184
|
+
const HardwareEncodersSchema = z.object({
|
|
7185
|
+
encoders: z.array(HardwareEncoderProbeSchema).readonly(),
|
|
7186
|
+
defaultH264: HardwareEncoderIdSchema,
|
|
7187
|
+
defaultH265: HardwareEncoderIdSchema,
|
|
7188
|
+
probedAt: z.number()
|
|
7189
|
+
});
|
|
7137
7190
|
const HardwarePlatformSchema = z.enum(["darwin", "linux", "win32"]);
|
|
7138
7191
|
const HardwareArchSchema = z.enum(["arm64", "x64"]);
|
|
7139
7192
|
const GpuInfoSchema = z.object({
|
|
@@ -7187,41 +7240,24 @@ const platformProbeCapability = {
|
|
|
7187
7240
|
scope: "system",
|
|
7188
7241
|
mode: "singleton",
|
|
7189
7242
|
methods: {
|
|
7190
|
-
|
|
7191
|
-
|
|
7192
|
-
z.void(),
|
|
7193
|
-
PlatformCapabilitiesSchema
|
|
7194
|
-
),
|
|
7195
|
-
/** Convenience getter — hardware only. */
|
|
7196
|
-
getHardware: method(
|
|
7197
|
-
z.void(),
|
|
7198
|
-
HardwareInfoSchema
|
|
7199
|
-
),
|
|
7200
|
-
/**
|
|
7201
|
-
* Resolve the best (model, runtime, backend, format) for a given list
|
|
7202
|
-
* of requirements, using this node's scored backends as the candidate
|
|
7203
|
-
* pool. Always returns a config — falls back to CPU when no preferred
|
|
7204
|
-
* backend matches.
|
|
7205
|
-
*/
|
|
7243
|
+
getCapabilities: method(z.void(), PlatformCapabilitiesSchema),
|
|
7244
|
+
getHardware: method(z.void(), HardwareInfoSchema),
|
|
7206
7245
|
resolveInferenceConfig: method(
|
|
7207
|
-
z.object({
|
|
7208
|
-
requirements: z.array(ModelRequirementSchema).readonly()
|
|
7209
|
-
}),
|
|
7246
|
+
z.object({ requirements: z.array(ModelRequirementSchema).readonly() }),
|
|
7210
7247
|
ResolvedInferenceConfigSchema
|
|
7211
7248
|
),
|
|
7212
|
-
/**
|
|
7213
|
-
* Resolve the ordered HW acceleration backend list for this node.
|
|
7214
|
-
* Pass `prefer` to hint a specific backend; pass `null` or omit
|
|
7215
|
-
* for auto-detection. Replaces the legacy `$hwaccel.resolve`
|
|
7216
|
-
* Moleculer action — cap routing handles per-node dispatch via
|
|
7217
|
-
* `nodeId`.
|
|
7218
|
-
*/
|
|
7219
7249
|
resolveHwAccel: method(
|
|
7220
|
-
z.object({
|
|
7221
|
-
prefer: HwAccelBackendInputSchema,
|
|
7222
|
-
nodeId: z.string().optional()
|
|
7223
|
-
}),
|
|
7250
|
+
z.object({ prefer: HwAccelBackendInputSchema, nodeId: z.string().optional() }),
|
|
7224
7251
|
HwAccelResolutionSchema
|
|
7252
|
+
),
|
|
7253
|
+
/**
|
|
7254
|
+
* Hardware-encoder probe — see Task #185. Cached after first call.
|
|
7255
|
+
*/
|
|
7256
|
+
getHardwareEncoders: method(z.void(), HardwareEncodersSchema),
|
|
7257
|
+
refreshHardwareEncoders: method(
|
|
7258
|
+
z.void(),
|
|
7259
|
+
HardwareEncodersSchema,
|
|
7260
|
+
{ kind: "mutation", auth: "admin" }
|
|
7225
7261
|
)
|
|
7226
7262
|
}
|
|
7227
7263
|
};
|
|
@@ -7458,25 +7494,11 @@ const MeshStatusSchema = z.object({
|
|
|
7458
7494
|
/** Last error from the daemon, when not joined. */
|
|
7459
7495
|
error: z.string().optional()
|
|
7460
7496
|
});
|
|
7461
|
-
const PublicIngressConfigSchema = z.object({
|
|
7462
|
-
/** Whether the provider should expose CamStack via its public
|
|
7463
|
-
* ingress (Tailscale Funnel, etc.). */
|
|
7464
|
-
enabled: z.boolean(),
|
|
7465
|
-
/** Local port to forward. Auto-detected from the hub HTTP port
|
|
7466
|
-
* when omitted. */
|
|
7467
|
-
port: z.number().int().min(1).max(65535).optional()
|
|
7468
|
-
});
|
|
7469
|
-
const MeshIngressConfigSchema = z.object({
|
|
7470
|
-
/** Whether the provider should expose CamStack inside the mesh
|
|
7471
|
-
* via HTTPS (Tailscale Serve, etc.) instead of just raw IP. */
|
|
7472
|
-
enabled: z.boolean(),
|
|
7473
|
-
/** Local port to forward. Auto-detected when omitted. */
|
|
7474
|
-
port: z.number().int().min(1).max(65535).optional()
|
|
7475
|
-
});
|
|
7476
7497
|
const meshNetworkCapability = {
|
|
7477
7498
|
name: "mesh-network",
|
|
7478
7499
|
scope: "system",
|
|
7479
7500
|
mode: "collection",
|
|
7501
|
+
providerKind: "mesh",
|
|
7480
7502
|
methods: {
|
|
7481
7503
|
/** Return the current join state + endpoints + peer count. Cheap
|
|
7482
7504
|
* poll-target — admin UI hits this every few seconds. */
|
|
@@ -7498,6 +7520,29 @@ const meshNetworkCapability = {
|
|
|
7498
7520
|
z.object({ joined: z.literal(true) }),
|
|
7499
7521
|
{ kind: "mutation" }
|
|
7500
7522
|
),
|
|
7523
|
+
/**
|
|
7524
|
+
* Start an interactive browser-redirect login flow.
|
|
7525
|
+
*
|
|
7526
|
+
* The provider spawns its daemon's join command without a pre-auth
|
|
7527
|
+
* key, captures the verification URL the daemon prints, and returns
|
|
7528
|
+
* it. The admin UI opens the URL in a new tab; the user completes
|
|
7529
|
+
* authentication in the provider's web console and the background
|
|
7530
|
+
* process self-terminates. The caller then polls `getStatus()` until
|
|
7531
|
+
* `joined: true`.
|
|
7532
|
+
*
|
|
7533
|
+
* Mirrors the `tailscale up` (no `--auth-key`) flow.
|
|
7534
|
+
*/
|
|
7535
|
+
startLogin: method(
|
|
7536
|
+
z.object({
|
|
7537
|
+
/** Optional hostname override the host should advertise once joined. */
|
|
7538
|
+
hostname: z.string().optional()
|
|
7539
|
+
}),
|
|
7540
|
+
z.object({
|
|
7541
|
+
/** Authentication URL the operator should open in a browser. */
|
|
7542
|
+
loginUrl: z.string()
|
|
7543
|
+
}),
|
|
7544
|
+
{ kind: "mutation" }
|
|
7545
|
+
),
|
|
7501
7546
|
/** Leave the mesh. After this the meshIp/magicDnsHostname/etc.
|
|
7502
7547
|
* vanish until the next `join`. */
|
|
7503
7548
|
leave: method(
|
|
@@ -7509,24 +7554,6 @@ const meshNetworkCapability = {
|
|
|
7509
7554
|
listPeers: method(z.void(), z.object({
|
|
7510
7555
|
peers: z.array(MeshPeerSchema).readonly()
|
|
7511
7556
|
})),
|
|
7512
|
-
/**
|
|
7513
|
-
* Toggle the public ingress (e.g. Tailscale Funnel) that maps a
|
|
7514
|
-
* local port to the open internet via the provider's edge. Idempotent.
|
|
7515
|
-
*/
|
|
7516
|
-
setPublicIngress: method(
|
|
7517
|
-
PublicIngressConfigSchema,
|
|
7518
|
-
z.object({ success: z.literal(true) }),
|
|
7519
|
-
{ kind: "mutation" }
|
|
7520
|
-
),
|
|
7521
|
-
/**
|
|
7522
|
-
* Toggle the in-mesh HTTPS ingress (e.g. Tailscale Serve) so peers
|
|
7523
|
-
* inside the mesh hit a valid TLS endpoint instead of the raw IP.
|
|
7524
|
-
*/
|
|
7525
|
-
setMeshIngress: method(
|
|
7526
|
-
MeshIngressConfigSchema,
|
|
7527
|
-
z.object({ success: z.literal(true) }),
|
|
7528
|
-
{ kind: "mutation" }
|
|
7529
|
-
),
|
|
7530
7557
|
/**
|
|
7531
7558
|
* Probe the mesh daemon / API for a sanity check WITHOUT joining.
|
|
7532
7559
|
* Operator-facing "test connection" button: validates the auth key
|
|
@@ -8467,12 +8494,12 @@ export {
|
|
|
8467
8494
|
cameraCredentialsCapability as J,
|
|
8468
8495
|
decoderCapability as K,
|
|
8469
8496
|
detectionPipelineCapability as L,
|
|
8470
|
-
|
|
8471
|
-
|
|
8472
|
-
|
|
8473
|
-
|
|
8474
|
-
|
|
8475
|
-
|
|
8497
|
+
deviceExportCapability as M,
|
|
8498
|
+
deviceManagerCapability as N,
|
|
8499
|
+
deviceOpsCapability as O,
|
|
8500
|
+
deviceStateCapability as P,
|
|
8501
|
+
embeddingEncoderCapability as Q,
|
|
8502
|
+
eventsCapability as R,
|
|
8476
8503
|
integrationsCapability as S,
|
|
8477
8504
|
intercomCapability as T,
|
|
8478
8505
|
localNetworkCapability as U,
|
|
@@ -8481,9 +8508,9 @@ export {
|
|
|
8481
8508
|
meshOrchestratorCapability as X,
|
|
8482
8509
|
metricsProviderCapability as Y,
|
|
8483
8510
|
motionDetectionCapability as Z,
|
|
8484
|
-
|
|
8511
|
+
mqttBrokerCapability as _,
|
|
8485
8512
|
zoneRulesCapability as a,
|
|
8486
|
-
|
|
8513
|
+
AudioEventSchema as a$,
|
|
8487
8514
|
networkAccessCapability as a0,
|
|
8488
8515
|
networkQualityCapability as a1,
|
|
8489
8516
|
nodesCapability as a2,
|
|
@@ -8497,30 +8524,30 @@ export {
|
|
|
8497
8524
|
AUDIO_MACRO_LABELS as aA,
|
|
8498
8525
|
AccessoriesStatusSchema as aB,
|
|
8499
8526
|
AccessoryKind as aC,
|
|
8500
|
-
|
|
8501
|
-
|
|
8502
|
-
|
|
8503
|
-
|
|
8504
|
-
|
|
8505
|
-
|
|
8506
|
-
|
|
8507
|
-
|
|
8508
|
-
|
|
8509
|
-
|
|
8510
|
-
|
|
8511
|
-
|
|
8512
|
-
|
|
8513
|
-
|
|
8514
|
-
|
|
8515
|
-
|
|
8516
|
-
|
|
8517
|
-
|
|
8518
|
-
|
|
8519
|
-
|
|
8520
|
-
|
|
8521
|
-
|
|
8522
|
-
|
|
8523
|
-
|
|
8527
|
+
AddBrokerInputSchema as aD,
|
|
8528
|
+
AddonAutoUpdateSchema as aE,
|
|
8529
|
+
AddonListItemSchema as aF,
|
|
8530
|
+
AddonPageDeclarationSchema as aG,
|
|
8531
|
+
AddonPageInfoSchema as aH,
|
|
8532
|
+
AgentLoadSummarySchema as aI,
|
|
8533
|
+
AlertSchema as aJ,
|
|
8534
|
+
AlertSeveritySchema as aK,
|
|
8535
|
+
AlertSourceSchema as aL,
|
|
8536
|
+
AlertStatusSchema as aM,
|
|
8537
|
+
ApiKeyRecordSchema as aN,
|
|
8538
|
+
ApiKeySummarySchema as aO,
|
|
8539
|
+
ArchiveEntrySchema as aP,
|
|
8540
|
+
ArchiveManifestSchema as aQ,
|
|
8541
|
+
AudioAnalysisResultSchema as aR,
|
|
8542
|
+
AudioAnalysisSettingsSchema as aS,
|
|
8543
|
+
AudioChunkInputSchema as aT,
|
|
8544
|
+
AudioClassSummarySchema as aU,
|
|
8545
|
+
AudioClassificationLabelSchema as aV,
|
|
8546
|
+
AudioClassificationResultSchema as aW,
|
|
8547
|
+
AudioCodecInfoSchema as aX,
|
|
8548
|
+
AudioDecodeSessionConfigSchema as aY,
|
|
8549
|
+
AudioEncodeSessionConfigSchema as aZ,
|
|
8550
|
+
AudioEncodedChunkSchema as a_,
|
|
8524
8551
|
ptzCapability as aa,
|
|
8525
8552
|
rebootCapability as ab,
|
|
8526
8553
|
recordingCapability as ac,
|
|
@@ -8548,247 +8575,251 @@ export {
|
|
|
8548
8575
|
APPLE_SA_TO_MACRO as ay,
|
|
8549
8576
|
AUDIO_BACKEND_CHOICES as az,
|
|
8550
8577
|
zoneAnalyticsCapability as b,
|
|
8551
|
-
|
|
8552
|
-
|
|
8553
|
-
|
|
8554
|
-
|
|
8555
|
-
|
|
8556
|
-
|
|
8557
|
-
|
|
8558
|
-
|
|
8559
|
-
|
|
8560
|
-
|
|
8561
|
-
|
|
8562
|
-
|
|
8563
|
-
|
|
8564
|
-
|
|
8565
|
-
|
|
8566
|
-
|
|
8567
|
-
|
|
8568
|
-
|
|
8569
|
-
|
|
8570
|
-
|
|
8571
|
-
|
|
8572
|
-
|
|
8573
|
-
|
|
8574
|
-
|
|
8575
|
-
|
|
8576
|
-
|
|
8577
|
-
|
|
8578
|
-
|
|
8579
|
-
|
|
8580
|
-
|
|
8581
|
-
|
|
8582
|
-
|
|
8583
|
-
|
|
8584
|
-
|
|
8585
|
-
|
|
8586
|
-
|
|
8587
|
-
|
|
8588
|
-
|
|
8589
|
-
|
|
8590
|
-
|
|
8591
|
-
|
|
8592
|
-
|
|
8593
|
-
|
|
8594
|
-
|
|
8595
|
-
|
|
8596
|
-
|
|
8597
|
-
|
|
8598
|
-
|
|
8599
|
-
|
|
8600
|
-
|
|
8601
|
-
|
|
8602
|
-
|
|
8603
|
-
|
|
8604
|
-
|
|
8605
|
-
|
|
8606
|
-
|
|
8607
|
-
|
|
8608
|
-
|
|
8609
|
-
|
|
8610
|
-
|
|
8611
|
-
|
|
8612
|
-
|
|
8613
|
-
|
|
8614
|
-
|
|
8578
|
+
DeviceExportStatusSchema as b$,
|
|
8579
|
+
AudioLevelSchema as b0,
|
|
8580
|
+
AudioMetricsHistoryPointSchema as b1,
|
|
8581
|
+
AudioMetricsHistorySchema as b2,
|
|
8582
|
+
AudioMetricsSnapshotSchema as b3,
|
|
8583
|
+
AudioPcmChunkSchema as b4,
|
|
8584
|
+
AuthProviderInfoSchema as b5,
|
|
8585
|
+
AuthResultSchema as b6,
|
|
8586
|
+
AutoUpdateSettingsSchema as b7,
|
|
8587
|
+
AvailableIntegrationTypeSchema as b8,
|
|
8588
|
+
BATTERY_DEVICE_PROFILE as b9,
|
|
8589
|
+
ClusterAddonNodeDeploymentSchema as bA,
|
|
8590
|
+
ClusterAddonStatusEntrySchema as bB,
|
|
8591
|
+
CollectionColumnSchema as bC,
|
|
8592
|
+
CollectionIndexSchema as bD,
|
|
8593
|
+
ConfigEntrySchema$1 as bE,
|
|
8594
|
+
ConfigSectionWithValuesSchema as bF,
|
|
8595
|
+
ConfigTabDeclarationSchema as bG,
|
|
8596
|
+
CreateApiKeyInputSchema as bH,
|
|
8597
|
+
CreateApiKeyResultSchema as bI,
|
|
8598
|
+
CreateIntegrationInputSchema as bJ,
|
|
8599
|
+
CreateScopedTokenInputSchema as bK,
|
|
8600
|
+
CreateScopedTokenResultSchema as bL,
|
|
8601
|
+
CreateUserInputSchema as bM,
|
|
8602
|
+
CustomActionInputSchema as bN,
|
|
8603
|
+
DEFAULT_AUDIO_ANALYZER_CONFIG as bO,
|
|
8604
|
+
DEFAULT_DECODER_HWACCEL_CONFIG as bP,
|
|
8605
|
+
DEVICE_PROFILES as bQ,
|
|
8606
|
+
DEVICE_SETTINGS_CONTRIBUTION_METHODS as bR,
|
|
8607
|
+
DEVICE_STATUS_METHOD as bS,
|
|
8608
|
+
DecodedFrameSchema as bT,
|
|
8609
|
+
DecoderAssignmentSchema as bU,
|
|
8610
|
+
DecoderSessionConfigSchema as bV,
|
|
8611
|
+
DecoderStatsSchema as bW,
|
|
8612
|
+
DeleteIntegrationResultSchema as bX,
|
|
8613
|
+
DetectorOutputSchema as bY,
|
|
8614
|
+
DeviceDiscoveryStatusSchema as bZ,
|
|
8615
|
+
ExposeInputSchema as b_,
|
|
8616
|
+
BackupDestinationInfoSchema as ba,
|
|
8617
|
+
BackupEntrySchema as bb,
|
|
8618
|
+
BatteryStatusSchema as bc,
|
|
8619
|
+
BoundingBoxSchema as bd,
|
|
8620
|
+
BrightnessStatusSchema as be,
|
|
8621
|
+
BrokerAudioClientSchema as bf,
|
|
8622
|
+
BrokerClientsSchema as bg,
|
|
8623
|
+
BrokerConnectionDetailsSchema as bh,
|
|
8624
|
+
BrokerDecodedClientSchema as bi,
|
|
8625
|
+
BrokerInfoSchema as bj,
|
|
8626
|
+
BrokerRtspClientSchema as bk,
|
|
8627
|
+
BrokerStatsSchema as bl,
|
|
8628
|
+
BrokerStatusSchema$1 as bm,
|
|
8629
|
+
CAM_PROFILE_ORDER as bn,
|
|
8630
|
+
CamProfileSchema as bo,
|
|
8631
|
+
CamStreamKindSchema as bp,
|
|
8632
|
+
CamStreamResolutionSchema as bq,
|
|
8633
|
+
CameraCredentialsSchema as br,
|
|
8634
|
+
CameraCredentialsStatusSchema as bs,
|
|
8635
|
+
CameraMetricsSchema as bt,
|
|
8636
|
+
CameraMetricsWithDeviceIdSchema as bu,
|
|
8637
|
+
CameraStreamSchema as bv,
|
|
8638
|
+
CapScopeSchema as bw,
|
|
8639
|
+
CapabilityBindingsSchema as bx,
|
|
8640
|
+
ChargingStatus as by,
|
|
8641
|
+
ClientNetworkStatsSchema as bz,
|
|
8615
8642
|
motionCapability as c,
|
|
8616
|
-
|
|
8617
|
-
|
|
8618
|
-
|
|
8619
|
-
|
|
8620
|
-
|
|
8621
|
-
|
|
8622
|
-
|
|
8623
|
-
|
|
8624
|
-
|
|
8625
|
-
|
|
8626
|
-
|
|
8627
|
-
|
|
8628
|
-
|
|
8629
|
-
|
|
8630
|
-
|
|
8631
|
-
|
|
8632
|
-
|
|
8633
|
-
|
|
8634
|
-
|
|
8635
|
-
|
|
8636
|
-
|
|
8637
|
-
|
|
8638
|
-
|
|
8639
|
-
|
|
8640
|
-
|
|
8641
|
-
|
|
8642
|
-
|
|
8643
|
-
|
|
8644
|
-
|
|
8645
|
-
|
|
8646
|
-
|
|
8647
|
-
|
|
8648
|
-
|
|
8649
|
-
|
|
8650
|
-
|
|
8651
|
-
|
|
8652
|
-
|
|
8653
|
-
|
|
8654
|
-
|
|
8655
|
-
|
|
8656
|
-
|
|
8657
|
-
|
|
8658
|
-
|
|
8659
|
-
|
|
8660
|
-
|
|
8661
|
-
|
|
8662
|
-
|
|
8663
|
-
|
|
8664
|
-
|
|
8665
|
-
|
|
8666
|
-
|
|
8667
|
-
|
|
8668
|
-
|
|
8669
|
-
|
|
8670
|
-
|
|
8671
|
-
|
|
8672
|
-
|
|
8673
|
-
|
|
8674
|
-
|
|
8675
|
-
|
|
8676
|
-
|
|
8677
|
-
|
|
8678
|
-
|
|
8679
|
-
|
|
8643
|
+
OsdOverlayPatchSchema as c$,
|
|
8644
|
+
UnexposeInputSchema as c0,
|
|
8645
|
+
DeviceFeature as c1,
|
|
8646
|
+
DeviceInfoSchema as c2,
|
|
8647
|
+
DeviceNetworkStatsSchema as c3,
|
|
8648
|
+
DeviceRole as c4,
|
|
8649
|
+
DeviceStatusSchema as c5,
|
|
8650
|
+
DeviceType as c6,
|
|
8651
|
+
DiscoveredChildDeviceSchema as c7,
|
|
8652
|
+
DiscoveredChildStatusSchema as c8,
|
|
8653
|
+
DiscoveredDeviceSchema as c9,
|
|
8654
|
+
LogLevelSchema$1 as cA,
|
|
8655
|
+
LogStreamEntrySchema as cB,
|
|
8656
|
+
MODEL_FORMATS as cC,
|
|
8657
|
+
MediaFileSchema as cD,
|
|
8658
|
+
MethodAccessSchema as cE,
|
|
8659
|
+
MotionAnalysisResultSchema as cF,
|
|
8660
|
+
MotionEventSchema as cG,
|
|
8661
|
+
MotionOnMotionChangedDataSchema as cH,
|
|
8662
|
+
MotionRegionSchema as cI,
|
|
8663
|
+
MotionSourceEnum as cJ,
|
|
8664
|
+
MotionSourcesSchema as cK,
|
|
8665
|
+
MotionStatusSchema as cL,
|
|
8666
|
+
MotionTriggerRuntimeStateSchema as cM,
|
|
8667
|
+
MotionTriggerStatusSchema as cN,
|
|
8668
|
+
StatusSchema as cO,
|
|
8669
|
+
NativeDetectionSchema as cP,
|
|
8670
|
+
NativeObjectClassEnum as cQ,
|
|
8671
|
+
NativeObjectDetectionStatusSchema as cR,
|
|
8672
|
+
NetworkAccessStatusSchema as cS,
|
|
8673
|
+
NetworkAddressSchema as cT,
|
|
8674
|
+
NetworkEndpointSchema as cU,
|
|
8675
|
+
NotificationHistoryEntrySchema as cV,
|
|
8676
|
+
NotificationRuleSchema as cW,
|
|
8677
|
+
NotificationSchema as cX,
|
|
8678
|
+
ObjectEventSchema as cY,
|
|
8679
|
+
OrchestratorMetricsSchema as cZ,
|
|
8680
|
+
OsdOverlayKindEnum as c_,
|
|
8681
|
+
DoorbellPressEventSchema as ca,
|
|
8682
|
+
DoorbellStatusSchema as cb,
|
|
8683
|
+
EmbeddingInfoSchema as cc,
|
|
8684
|
+
EmbeddingResultSchema as cd,
|
|
8685
|
+
EncodedPacketSchema as ce,
|
|
8686
|
+
EnrichedWidgetMetadataSchema as cf,
|
|
8687
|
+
EventItemSchema as cg,
|
|
8688
|
+
EventKindSchema as ch,
|
|
8689
|
+
ExposedDeviceSchema as ci,
|
|
8690
|
+
ExposedResourceSchema as cj,
|
|
8691
|
+
FeatureManifestSchema as ck,
|
|
8692
|
+
FeatureProbeStatusSchema as cl,
|
|
8693
|
+
FrameInputSchema as cm,
|
|
8694
|
+
GetStreamWithCodecInputSchema as cn,
|
|
8695
|
+
GlobalMetricsSchema as co,
|
|
8696
|
+
HWACCEL_OPTIONS as cp,
|
|
8697
|
+
HealthStatusSchema as cq,
|
|
8698
|
+
HistoryPointSchema as cr,
|
|
8699
|
+
HistoryResolutionEnum as cs,
|
|
8700
|
+
InstalledPackageSchema as ct,
|
|
8701
|
+
IntegrationLiteSchema as cu,
|
|
8702
|
+
IntegrationWithStateSchema as cv,
|
|
8703
|
+
IntercomAbilitySchema as cw,
|
|
8704
|
+
IntercomStatusSchema as cx,
|
|
8705
|
+
LocationStatSchema as cy,
|
|
8706
|
+
LogEntrySchema as cz,
|
|
8680
8707
|
doorbellCapability as d,
|
|
8681
|
-
|
|
8682
|
-
|
|
8683
|
-
|
|
8684
|
-
|
|
8685
|
-
|
|
8686
|
-
|
|
8687
|
-
|
|
8688
|
-
|
|
8689
|
-
|
|
8690
|
-
|
|
8691
|
-
|
|
8692
|
-
|
|
8693
|
-
|
|
8694
|
-
|
|
8695
|
-
|
|
8696
|
-
|
|
8697
|
-
|
|
8698
|
-
|
|
8699
|
-
|
|
8700
|
-
|
|
8701
|
-
|
|
8702
|
-
|
|
8703
|
-
|
|
8704
|
-
|
|
8705
|
-
|
|
8706
|
-
|
|
8707
|
-
|
|
8708
|
-
|
|
8709
|
-
|
|
8710
|
-
|
|
8711
|
-
|
|
8712
|
-
|
|
8713
|
-
|
|
8714
|
-
|
|
8715
|
-
|
|
8716
|
-
|
|
8717
|
-
|
|
8718
|
-
|
|
8719
|
-
|
|
8720
|
-
|
|
8721
|
-
|
|
8722
|
-
|
|
8723
|
-
|
|
8724
|
-
|
|
8725
|
-
|
|
8726
|
-
|
|
8727
|
-
|
|
8728
|
-
|
|
8729
|
-
|
|
8730
|
-
|
|
8731
|
-
|
|
8732
|
-
|
|
8733
|
-
|
|
8734
|
-
|
|
8735
|
-
|
|
8736
|
-
|
|
8737
|
-
|
|
8738
|
-
|
|
8739
|
-
|
|
8740
|
-
|
|
8741
|
-
|
|
8742
|
-
|
|
8743
|
-
|
|
8708
|
+
StorageLocationSchema as d$,
|
|
8709
|
+
OsdOverlaySchema as d0,
|
|
8710
|
+
OsdPositionEnum as d1,
|
|
8711
|
+
OsdStatusSchema as d2,
|
|
8712
|
+
PIPELINE_FLOW_CAPABILITY_NAMES as d3,
|
|
8713
|
+
PIPELINE_OWNER_CAPABILITY_NAMES as d4,
|
|
8714
|
+
PackageUpdateSchema as d5,
|
|
8715
|
+
PackageVersionInfoSchema as d6,
|
|
8716
|
+
PasskeySummarySchema as d7,
|
|
8717
|
+
PcmSampleFormatSchema as d8,
|
|
8718
|
+
PerScopeBreakdownSchema as d9,
|
|
8719
|
+
RunnerCameraDeviceUIFields as dA,
|
|
8720
|
+
RunnerLocalLoadSchema as dB,
|
|
8721
|
+
RunnerLocalMetricsSchema as dC,
|
|
8722
|
+
STORAGE_LOCATION_CARDINALITY as dD,
|
|
8723
|
+
ScopedTokenSchema as dE,
|
|
8724
|
+
ScopedTokenSummarySchema as dF,
|
|
8725
|
+
SearchResultSchema as dG,
|
|
8726
|
+
SegmentSchema as dH,
|
|
8727
|
+
SendEmailInputSchema as dI,
|
|
8728
|
+
SendEmailResultSchema as dJ,
|
|
8729
|
+
SettingsPatchSchema as dK,
|
|
8730
|
+
SettingsRecordSchema as dL,
|
|
8731
|
+
SettingsSchemaWithValuesSchema as dM,
|
|
8732
|
+
SettingsUpdateResultSchema as dN,
|
|
8733
|
+
SmtpStatusSchema as dO,
|
|
8734
|
+
SnapshotImageSchema as dP,
|
|
8735
|
+
SpatialDetectionSchema as dQ,
|
|
8736
|
+
SsoBridgeClaimsSchema as dR,
|
|
8737
|
+
StartEmbeddedInputSchema as dS,
|
|
8738
|
+
AbortUploadInputSchema as dT,
|
|
8739
|
+
BeginDownloadInputSchema as dU,
|
|
8740
|
+
BeginDownloadResultSchema as dV,
|
|
8741
|
+
BeginUploadInputSchema as dW,
|
|
8742
|
+
BeginUploadResultSchema as dX,
|
|
8743
|
+
EndDownloadInputSchema as dY,
|
|
8744
|
+
FinalizeUploadInputSchema as dZ,
|
|
8745
|
+
StorageLocationRefSchema as d_,
|
|
8746
|
+
PipelineAssignmentSchema as da,
|
|
8747
|
+
PipelineDefaultStepSchema as db,
|
|
8748
|
+
PipelineEngineChoiceSchema as dc,
|
|
8749
|
+
PipelineRunResultBridge as dd,
|
|
8750
|
+
PipelineStepInputSchema as de,
|
|
8751
|
+
PlaceholderReasonSchema as df,
|
|
8752
|
+
PolygonPointSchema as dg,
|
|
8753
|
+
ProfileSlotSchema as dh,
|
|
8754
|
+
ProfileSlotStatusSchema as di,
|
|
8755
|
+
ProviderStatusSchema as dj,
|
|
8756
|
+
PtzAutotrackRuntimeStateSchema as dk,
|
|
8757
|
+
PtzAutotrackSettingsSchema as dl,
|
|
8758
|
+
PtzAutotrackStatusSchema as dm,
|
|
8759
|
+
PtzAutotrackTargetOptionSchema as dn,
|
|
8760
|
+
PtzMoveCommandSchema as dp,
|
|
8761
|
+
PtzPositionSchema as dq,
|
|
8762
|
+
PtzPresetSchema as dr,
|
|
8763
|
+
QueryFilterSchema as ds,
|
|
8764
|
+
RegisteredStreamSchema as dt,
|
|
8765
|
+
RemoteAccessEndpointSchema as du,
|
|
8766
|
+
RemoteAccessProviderInfoSchema as dv,
|
|
8767
|
+
ReportMotionInputSchema as dw,
|
|
8768
|
+
RtpSourceSchema as dx,
|
|
8769
|
+
RtspRestreamEntrySchema as dy,
|
|
8770
|
+
RunnerCameraConfigSchema as dz,
|
|
8744
8771
|
errMsg as e,
|
|
8745
|
-
|
|
8746
|
-
|
|
8747
|
-
|
|
8748
|
-
|
|
8749
|
-
|
|
8750
|
-
|
|
8751
|
-
|
|
8752
|
-
|
|
8753
|
-
|
|
8754
|
-
|
|
8755
|
-
|
|
8756
|
-
|
|
8757
|
-
|
|
8758
|
-
|
|
8759
|
-
|
|
8760
|
-
|
|
8761
|
-
|
|
8762
|
-
|
|
8763
|
-
|
|
8764
|
-
|
|
8765
|
-
|
|
8766
|
-
|
|
8767
|
-
|
|
8768
|
-
|
|
8769
|
-
|
|
8770
|
-
|
|
8771
|
-
|
|
8772
|
-
|
|
8773
|
-
|
|
8774
|
-
|
|
8775
|
-
|
|
8776
|
-
|
|
8777
|
-
|
|
8778
|
-
|
|
8779
|
-
|
|
8780
|
-
|
|
8781
|
-
|
|
8782
|
-
|
|
8783
|
-
|
|
8784
|
-
|
|
8785
|
-
|
|
8786
|
-
|
|
8787
|
-
|
|
8788
|
-
|
|
8789
|
-
|
|
8790
|
-
|
|
8791
|
-
|
|
8772
|
+
StorageLocationTypeSchema as e0,
|
|
8773
|
+
ProviderInfoSchema as e1,
|
|
8774
|
+
ReadChunkInputSchema as e2,
|
|
8775
|
+
TestLocationResultSchema as e3,
|
|
8776
|
+
WriteChunkInputSchema as e4,
|
|
8777
|
+
StreamFormatSchema as e5,
|
|
8778
|
+
StreamInfoSchema as e6,
|
|
8779
|
+
StreamNetworkStatsSchema as e7,
|
|
8780
|
+
StreamSourceEntrySchema$1 as e8,
|
|
8781
|
+
StreamSourceSchema as e9,
|
|
8782
|
+
ZoneRuleModeEnum as eA,
|
|
8783
|
+
ZoneRuleSchema as eB,
|
|
8784
|
+
ZoneRuleStageEnum as eC,
|
|
8785
|
+
ZoneRulesArraySchema as eD,
|
|
8786
|
+
ZoneSchema as eE,
|
|
8787
|
+
ZoneScopeBreakdownSchema as eF,
|
|
8788
|
+
accessoryStableId as eG,
|
|
8789
|
+
deviceMatchesProfile as eH,
|
|
8790
|
+
event as eI,
|
|
8791
|
+
expandCapMethods as eJ,
|
|
8792
|
+
getAudioMacroClassIds as eK,
|
|
8793
|
+
mapAudioLabelToMacro as eL,
|
|
8794
|
+
method as eM,
|
|
8795
|
+
resolveDeviceProfile as eN,
|
|
8796
|
+
webrtcClientHintsSchema as eO,
|
|
8797
|
+
SwitchStatusSchema as ea,
|
|
8798
|
+
SystemMetricsSchema as eb,
|
|
8799
|
+
TestConnectionResultSchema as ec,
|
|
8800
|
+
ToastSchema as ed,
|
|
8801
|
+
TokenScopeSchema as ee,
|
|
8802
|
+
TopologyNodeSchema as ef,
|
|
8803
|
+
TopologyProcessSchema as eg,
|
|
8804
|
+
TopologyServiceSchema as eh,
|
|
8805
|
+
TrackSchema as ei,
|
|
8806
|
+
TrackStateSchema as ej,
|
|
8807
|
+
TrackedDetectionSchema as ek,
|
|
8808
|
+
TurnProviderInfoSchema as el,
|
|
8809
|
+
TurnServerSchema as em,
|
|
8810
|
+
UpdateIntegrationInputSchema as en,
|
|
8811
|
+
UpdateUserInputSchema as eo,
|
|
8812
|
+
UserRecordSchema as ep,
|
|
8813
|
+
UserSummarySchema as eq,
|
|
8814
|
+
WELL_KNOWN_TABS as er,
|
|
8815
|
+
WELL_KNOWN_TAB_MAP as es,
|
|
8816
|
+
WebrtcStreamChoiceSchema as et,
|
|
8817
|
+
WebrtcStreamTargetSchema as eu,
|
|
8818
|
+
WidgetHostEnum as ev,
|
|
8819
|
+
WidgetMetadataSchema as ew,
|
|
8820
|
+
WidgetSizeEnum as ex,
|
|
8821
|
+
YAMNET_TO_MACRO as ey,
|
|
8822
|
+
ZoneKindEnum as ez,
|
|
8792
8823
|
featureProbeCapability as f,
|
|
8793
8824
|
deviceStatusCapability as g,
|
|
8794
8825
|
hydrateSchema as h,
|
|
@@ -8811,4 +8842,4 @@ export {
|
|
|
8811
8842
|
addonsCapability as y,
|
|
8812
8843
|
zonesCapability as z
|
|
8813
8844
|
};
|
|
8814
|
-
//# sourceMappingURL=index-
|
|
8845
|
+
//# sourceMappingURL=index-BBVUwOlZ.mjs.map
|