@camstack/addon-training 0.1.78 → 0.1.80
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/{MotionZonesSettings-jORey4uC.mjs → MotionZonesSettings-BliuxpCH.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-P24unULW.mjs → PrivacyMaskSettings-CKL9xV-S.mjs} +2 -2
- package/dist/{SceneMonitorEditor-CkLN8Kee.mjs → SceneMonitorEditor-BE7rVggL.mjs} +1 -1
- package/dist/_stub.js +5354 -5218
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-BbQzUVOo.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-DyaQwk4k.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DKoALssM.mjs +26 -0
- package/dist/addon-training.css +1 -1
- package/dist/{dist-DeD2tKQ2.mjs → dist-BCUHufOe.mjs} +590 -75
- package/dist/{dist-CKiSDi2Y.js → dist-FpC7GFu_.js} +590 -75
- package/dist/{hostInit-ndHJ_k8s.mjs → hostInit-DxnxYPQ_.mjs} +2 -2
- package/dist/index.js +1 -1
- package/dist/orchestrator/training.addon.js +1 -1
- package/dist/orchestrator/training.addon.mjs +1 -1
- package/dist/{player-overlays-CD0eup2L.mjs → player-overlays-1cASdLh_.mjs} +1 -1
- package/dist/providers/modal/training-modal.addon.js +1 -1
- package/dist/providers/modal/training-modal.addon.mjs +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-CBG3O0ME.mjs → responsive-Ctl0WYwk.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-X4iAyyQb.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-C_798y4H.mjs} +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DiRkx0UL.mjs +0 -26
|
@@ -9115,7 +9115,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
9115
9115
|
return DeviceRole;
|
|
9116
9116
|
}({});
|
|
9117
9117
|
//#endregion
|
|
9118
|
-
//#region ../types/dist/composition-
|
|
9118
|
+
//#region ../types/dist/composition-BJ8iAZb3.mjs
|
|
9119
9119
|
/**
|
|
9120
9120
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
9121
9121
|
*
|
|
@@ -9175,7 +9175,7 @@ portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac
|
|
|
9175
9175
|
* ONE table for everyone who asks "is this device HIGH?": the
|
|
9176
9176
|
* recorder's `RecordingTriggers.sensorDeviceIds` trigger, the post-analysis
|
|
9177
9177
|
* sensor markers, the orchestrator's camera-sensors bridge and
|
|
9178
|
-
* the sources of a
|
|
9178
|
+
* the sources of a pulse (`compilePulseOverride`, D936).
|
|
9179
9179
|
* A second copy would diverge at the first cap added, and the symptom — "the
|
|
9180
9180
|
* sensor rings the doorbell but does not record" — is exactly D62.
|
|
9181
9181
|
*
|
|
@@ -16244,6 +16244,13 @@ var ComposerUnreadableBlockSchema = object({
|
|
|
16244
16244
|
/** The parse error, in the operator's words. */
|
|
16245
16245
|
error: string()
|
|
16246
16246
|
});
|
|
16247
|
+
/** A confirmed release the hub did not accept. `deviceId` is the claim's device. */
|
|
16248
|
+
var UnreleasedClaimSchema = object({
|
|
16249
|
+
deviceId: number().int(),
|
|
16250
|
+
capName: string(),
|
|
16251
|
+
owner: string(),
|
|
16252
|
+
error: string()
|
|
16253
|
+
});
|
|
16247
16254
|
method(object({
|
|
16248
16255
|
/** The shared Blocks integration; null until `core-blocks` has reconciled it. */
|
|
16249
16256
|
integrationId: string().nullable(),
|
|
@@ -16253,7 +16260,13 @@ method(object({
|
|
|
16253
16260
|
/** Operator restarts: rebuild these runtimes and re-resolve their sources. Stores nothing (D62). */
|
|
16254
16261
|
restartBlockIds: array(string()),
|
|
16255
16262
|
/** Composition rows that exist but do not parse: held, never withdrawn, reported failed. */
|
|
16256
|
-
unreadableBlocks: array(ComposerUnreadableBlockSchema)
|
|
16263
|
+
unreadableBlocks: array(ComposerUnreadableBlockSchema),
|
|
16264
|
+
/**
|
|
16265
|
+
* Operator-confirmed deletions. Their claims are released on this apply,
|
|
16266
|
+
* before any replacement block claims. A block that merely vanished from the
|
|
16267
|
+
* snapshot is not listed here and still waits for two applies (D49).
|
|
16268
|
+
*/
|
|
16269
|
+
retiredBlockIds: array(string()).optional()
|
|
16257
16270
|
}), object({
|
|
16258
16271
|
blocks: array(object({
|
|
16259
16272
|
blockId: string(),
|
|
@@ -16265,7 +16278,13 @@ method(object({
|
|
|
16265
16278
|
* integration unknown, its own rows unread or read empty once). An empty
|
|
16266
16279
|
* apply the caller owes is paid off only by one the composer acted on (D49).
|
|
16267
16280
|
*/
|
|
16268
|
-
acted: boolean()
|
|
16281
|
+
acted: boolean(),
|
|
16282
|
+
/**
|
|
16283
|
+
* Confirmed releases this apply tried and the hub did not accept. Empty when
|
|
16284
|
+
* every one landed (or there was nothing to hand back). Absent on a result
|
|
16285
|
+
* that never got that far.
|
|
16286
|
+
*/
|
|
16287
|
+
unreleasedClaims: array(UnreleasedClaimSchema).optional()
|
|
16269
16288
|
}), {
|
|
16270
16289
|
kind: "mutation",
|
|
16271
16290
|
auth: "admin"
|
|
@@ -42128,6 +42147,381 @@ var _macroLookup = /* @__PURE__ */ new Map();
|
|
|
42128
42147
|
for (const [k, v] of Object.entries(YAMNET_TO_MACRO.mapping)) _macroLookup.set(k.toLowerCase(), v);
|
|
42129
42148
|
for (const [k, v] of Object.entries(APPLE_SA_TO_MACRO.mapping)) _macroLookup.set(k.toLowerCase(), v);
|
|
42130
42149
|
/**
|
|
42150
|
+
* Palette entry ids (D939). Audio is the one gradient; `audio-*` leaves are
|
|
42151
|
+
* not entries. `heatmapScrub` is a mark, not an event kind.
|
|
42152
|
+
*/
|
|
42153
|
+
var PALETTE_ENTRY_IDS = [
|
|
42154
|
+
"motion",
|
|
42155
|
+
"audio",
|
|
42156
|
+
"recording",
|
|
42157
|
+
"live",
|
|
42158
|
+
"heatmapScrub",
|
|
42159
|
+
"person",
|
|
42160
|
+
"vehicle",
|
|
42161
|
+
"animal",
|
|
42162
|
+
"package",
|
|
42163
|
+
"sensor",
|
|
42164
|
+
"control",
|
|
42165
|
+
"face",
|
|
42166
|
+
"plate",
|
|
42167
|
+
"car",
|
|
42168
|
+
"truck",
|
|
42169
|
+
"bus",
|
|
42170
|
+
"motorcycle",
|
|
42171
|
+
"bicycle",
|
|
42172
|
+
"airplane",
|
|
42173
|
+
"boat",
|
|
42174
|
+
"train",
|
|
42175
|
+
"bird",
|
|
42176
|
+
"dog",
|
|
42177
|
+
"cat",
|
|
42178
|
+
"horse",
|
|
42179
|
+
"sheep",
|
|
42180
|
+
"cow",
|
|
42181
|
+
"elephant",
|
|
42182
|
+
"bear",
|
|
42183
|
+
"zebra",
|
|
42184
|
+
"giraffe",
|
|
42185
|
+
"package-delivered",
|
|
42186
|
+
"package-picked-up",
|
|
42187
|
+
"suitcase",
|
|
42188
|
+
"backpack",
|
|
42189
|
+
"handbag",
|
|
42190
|
+
"contact",
|
|
42191
|
+
"motion-sensor",
|
|
42192
|
+
"smoke",
|
|
42193
|
+
"flood",
|
|
42194
|
+
"gas",
|
|
42195
|
+
"carbon-monoxide",
|
|
42196
|
+
"vibration",
|
|
42197
|
+
"tamper",
|
|
42198
|
+
"presence",
|
|
42199
|
+
"enum-sensor",
|
|
42200
|
+
"device-event",
|
|
42201
|
+
"lock",
|
|
42202
|
+
"cover",
|
|
42203
|
+
"switch",
|
|
42204
|
+
"siren",
|
|
42205
|
+
"button",
|
|
42206
|
+
"doorbell"
|
|
42207
|
+
];
|
|
42208
|
+
var AUDIO_ENTRY_ID = "audio";
|
|
42209
|
+
/** Six rungs, quiet → loud. The opaque end is the entry's hex. */
|
|
42210
|
+
var AUDIO_GRADIENT_ALPHAS = [
|
|
42211
|
+
.3,
|
|
42212
|
+
.42,
|
|
42213
|
+
.55,
|
|
42214
|
+
.7,
|
|
42215
|
+
.85,
|
|
42216
|
+
1
|
|
42217
|
+
];
|
|
42218
|
+
var PALETTE_PRESET_IDS = [
|
|
42219
|
+
"camstack",
|
|
42220
|
+
"high-contrast",
|
|
42221
|
+
"okabe-ito"
|
|
42222
|
+
];
|
|
42223
|
+
/** Frozen palette tables (D939). The spec refuses a table that breaks the rule. */
|
|
42224
|
+
var CAMSTACK_HEX = {
|
|
42225
|
+
motion: "#d946ef",
|
|
42226
|
+
audio: "#059eb8",
|
|
42227
|
+
recording: "#ef4444",
|
|
42228
|
+
live: "#8d7a00",
|
|
42229
|
+
heatmapScrub: "#4b32ff",
|
|
42230
|
+
person: "#11a64c",
|
|
42231
|
+
vehicle: "#3b82f6",
|
|
42232
|
+
animal: "#ea6a09",
|
|
42233
|
+
package: "#924667",
|
|
42234
|
+
sensor: "#624bbc",
|
|
42235
|
+
control: "#944d24",
|
|
42236
|
+
face: "#ed4f8d",
|
|
42237
|
+
plate: "#4b7027",
|
|
42238
|
+
car: "#9684cf",
|
|
42239
|
+
truck: "#0f9b89",
|
|
42240
|
+
bus: "#a734a9",
|
|
42241
|
+
motorcycle: "#c1133a",
|
|
42242
|
+
bicycle: "#0e6a9b",
|
|
42243
|
+
airplane: "#7c9928",
|
|
42244
|
+
boat: "#b17933",
|
|
42245
|
+
train: "#ad6ca3",
|
|
42246
|
+
bird: "#0f7c55",
|
|
42247
|
+
dog: "#c82700",
|
|
42248
|
+
cat: "#7268f2",
|
|
42249
|
+
horse: "#cb795e",
|
|
42250
|
+
sheep: "#b8636b",
|
|
42251
|
+
cow: "#cb2969",
|
|
42252
|
+
elephant: "#1158d2",
|
|
42253
|
+
bear: "#8d5e00",
|
|
42254
|
+
zebra: "#0097d6",
|
|
42255
|
+
giraffe: "#8f61bb",
|
|
42256
|
+
"package-delivered": "#cd3f9b",
|
|
42257
|
+
"package-picked-up": "#388a08",
|
|
42258
|
+
suitcase: "#666800",
|
|
42259
|
+
backpack: "#ec5022",
|
|
42260
|
+
handbag: "#a76ef8",
|
|
42261
|
+
contact: "#ab5a49",
|
|
42262
|
+
"motion-sensor": "#b95d1a",
|
|
42263
|
+
smoke: "#dd3858",
|
|
42264
|
+
flood: "#b31e7d",
|
|
42265
|
+
gas: "#5b70b5",
|
|
42266
|
+
"carbon-monoxide": "#7b4e8e",
|
|
42267
|
+
vibration: "#e65bba",
|
|
42268
|
+
tamper: "#98464b",
|
|
42269
|
+
presence: "#3a9468",
|
|
42270
|
+
"enum-sensor": "#7885f8",
|
|
42271
|
+
"device-event": "#8c43c8",
|
|
42272
|
+
lock: "#649653",
|
|
42273
|
+
cover: "#c67597",
|
|
42274
|
+
switch: "#7a812a",
|
|
42275
|
+
siren: "#ac5d7f",
|
|
42276
|
+
button: "#b276cd",
|
|
42277
|
+
doorbell: "#0087ab"
|
|
42278
|
+
};
|
|
42279
|
+
var CAMSTACK_FALLBACK = [
|
|
42280
|
+
"#b34dc7",
|
|
42281
|
+
"#1d7d34",
|
|
42282
|
+
"#db6b6c",
|
|
42283
|
+
"#a43d29",
|
|
42284
|
+
"#0e6ee6",
|
|
42285
|
+
"#29a10b",
|
|
42286
|
+
"#a98731",
|
|
42287
|
+
"#0181c6"
|
|
42288
|
+
];
|
|
42289
|
+
var HIGH_CONTRAST_HEX = {
|
|
42290
|
+
motion: "#964360",
|
|
42291
|
+
audio: "#23a132",
|
|
42292
|
+
recording: "#2494ca",
|
|
42293
|
+
live: "#bd7e2b",
|
|
42294
|
+
heatmapScrub: "#ad6eea",
|
|
42295
|
+
person: "#62611e",
|
|
42296
|
+
vehicle: "#f4534c",
|
|
42297
|
+
animal: "#1556cd",
|
|
42298
|
+
package: "#9c4415",
|
|
42299
|
+
sensor: "#066c48",
|
|
42300
|
+
control: "#f2479f",
|
|
42301
|
+
face: "#139d8a",
|
|
42302
|
+
plate: "#909024",
|
|
42303
|
+
car: "#8e35ab",
|
|
42304
|
+
truck: "#bd0b2b",
|
|
42305
|
+
bus: "#7a88ca",
|
|
42306
|
+
motorcycle: "#e26725",
|
|
42307
|
+
bicycle: "#a6679b",
|
|
42308
|
+
airplane: "#7c5720",
|
|
42309
|
+
boat: "#467a1b",
|
|
42310
|
+
train: "#6f65a4",
|
|
42311
|
+
bird: "#cb717f",
|
|
42312
|
+
dog: "#c62490",
|
|
42313
|
+
cat: "#b36850",
|
|
42314
|
+
horse: "#1872ac",
|
|
42315
|
+
sheep: "#927939",
|
|
42316
|
+
cow: "#428a5c",
|
|
42317
|
+
elephant: "#d41160",
|
|
42318
|
+
bear: "#799453",
|
|
42319
|
+
zebra: "#a85455",
|
|
42320
|
+
giraffe: "#746be8",
|
|
42321
|
+
"package-delivered": "#824a80",
|
|
42322
|
+
"package-picked-up": "#614ac1",
|
|
42323
|
+
suitcase: "#2f77f3",
|
|
42324
|
+
backpack: "#fa476d",
|
|
42325
|
+
handbag: "#c14cbe",
|
|
42326
|
+
contact: "#c83921",
|
|
42327
|
+
"motion-sensor": "#a07ebd",
|
|
42328
|
+
smoke: "#a25b13",
|
|
42329
|
+
flood: "#526bab",
|
|
42330
|
+
gas: "#924938",
|
|
42331
|
+
"carbon-monoxide": "#bb7e53",
|
|
42332
|
+
vibration: "#b66182",
|
|
42333
|
+
tamper: "#3c6931",
|
|
42334
|
+
presence: "#6c851d",
|
|
42335
|
+
"enum-sensor": "#ad2d48",
|
|
42336
|
+
"device-event": "#5e9b04",
|
|
42337
|
+
lock: "#00a062",
|
|
42338
|
+
cover: "#ad8624",
|
|
42339
|
+
switch: "#d05259",
|
|
42340
|
+
siren: "#cd67b3",
|
|
42341
|
+
button: "#c9746a",
|
|
42342
|
+
doorbell: "#338eeb"
|
|
42343
|
+
};
|
|
42344
|
+
var HIGH_CONTRAST_FALLBACK = [
|
|
42345
|
+
"#817f3b",
|
|
42346
|
+
"#a0733e",
|
|
42347
|
+
"#8658b2",
|
|
42348
|
+
"#956301",
|
|
42349
|
+
"#bc652d",
|
|
42350
|
+
"#647331",
|
|
42351
|
+
"#a14c9e",
|
|
42352
|
+
"#d14e71"
|
|
42353
|
+
];
|
|
42354
|
+
var OKABE_ITO_HEX = {
|
|
42355
|
+
motion: "#b88128",
|
|
42356
|
+
audio: "#1096c8",
|
|
42357
|
+
recording: "#009e73",
|
|
42358
|
+
live: "#9c8c22",
|
|
42359
|
+
heatmapScrub: "#0072b2",
|
|
42360
|
+
person: "#d55e00",
|
|
42361
|
+
vehicle: "#c0739f",
|
|
42362
|
+
animal: "#226d18",
|
|
42363
|
+
package: "#91446c",
|
|
42364
|
+
sensor: "#217b56",
|
|
42365
|
+
control: "#648647",
|
|
42366
|
+
face: "#c22998",
|
|
42367
|
+
plate: "#fa4575",
|
|
42368
|
+
car: "#956301",
|
|
42369
|
+
truck: "#2f77f3",
|
|
42370
|
+
bus: "#7a4e86",
|
|
42371
|
+
motorcycle: "#f54597",
|
|
42372
|
+
bicycle: "#bb3e75",
|
|
42373
|
+
airplane: "#e054c0",
|
|
42374
|
+
boat: "#457942",
|
|
42375
|
+
train: "#867afa",
|
|
42376
|
+
bird: "#88914c",
|
|
42377
|
+
dog: "#1556cd",
|
|
42378
|
+
cat: "#71702c",
|
|
42379
|
+
horse: "#9b4fa4",
|
|
42380
|
+
sheep: "#c0559d",
|
|
42381
|
+
cow: "#d14f65",
|
|
42382
|
+
elephant: "#98470f",
|
|
42383
|
+
bear: "#595896",
|
|
42384
|
+
zebra: "#96790e",
|
|
42385
|
+
giraffe: "#cb717b",
|
|
42386
|
+
"package-delivered": "#139d8a",
|
|
42387
|
+
"package-picked-up": "#906ead",
|
|
42388
|
+
suitcase: "#d02939",
|
|
42389
|
+
backpack: "#d41160",
|
|
42390
|
+
handbag: "#f64f54",
|
|
42391
|
+
contact: "#7258d2",
|
|
42392
|
+
"motion-sensor": "#b66182",
|
|
42393
|
+
smoke: "#627abb",
|
|
42394
|
+
flood: "#b86ae4",
|
|
42395
|
+
gas: "#a95261",
|
|
42396
|
+
"carbon-monoxide": "#c65d3c",
|
|
42397
|
+
vibration: "#7a40b7",
|
|
42398
|
+
tamper: "#914b34",
|
|
42399
|
+
presence: "#9481c3",
|
|
42400
|
+
"enum-sensor": "#ac6d47",
|
|
42401
|
+
"device-event": "#7b6fce",
|
|
42402
|
+
lock: "#c67662",
|
|
42403
|
+
cover: "#a6564d",
|
|
42404
|
+
switch: "#ad2c4e",
|
|
42405
|
+
siren: "#348e08",
|
|
42406
|
+
button: "#d27303",
|
|
42407
|
+
doorbell: "#55770f"
|
|
42408
|
+
};
|
|
42409
|
+
var OKABE_ITO_FALLBACK = [
|
|
42410
|
+
"#9a3784",
|
|
42411
|
+
"#a7392c",
|
|
42412
|
+
"#409d50",
|
|
42413
|
+
"#6987e7",
|
|
42414
|
+
"#ee5b3d",
|
|
42415
|
+
"#c0430d",
|
|
42416
|
+
"#af79b3",
|
|
42417
|
+
"#4b6628"
|
|
42418
|
+
];
|
|
42419
|
+
/**
|
|
42420
|
+
* The display palette (D939). One table of colours, three presets, one
|
|
42421
|
+
* validator. Taxonomy colours and every consumer read this — there is no
|
|
42422
|
+
* second hex table.
|
|
42423
|
+
*/
|
|
42424
|
+
var paletteHexSchema = string().regex(/^#[0-9a-f]{6}$/);
|
|
42425
|
+
var paletteSwatchSchema = discriminatedUnion("form", [object({
|
|
42426
|
+
form: literal("solid"),
|
|
42427
|
+
hex: paletteHexSchema
|
|
42428
|
+
}), object({
|
|
42429
|
+
form: literal("gradient"),
|
|
42430
|
+
hex: paletteHexSchema,
|
|
42431
|
+
alphas: array(number().gt(0).lte(1)).length(AUDIO_GRADIENT_ALPHAS.length)
|
|
42432
|
+
})]);
|
|
42433
|
+
var paletteReadySchema = object({
|
|
42434
|
+
status: literal("ready"),
|
|
42435
|
+
presetId: _enum(PALETTE_PRESET_IDS),
|
|
42436
|
+
customized: boolean(),
|
|
42437
|
+
source: _enum(["stored", "unconfigured"]),
|
|
42438
|
+
swatches: record(string(), paletteSwatchSchema),
|
|
42439
|
+
fallbacks: array(paletteHexSchema).length(8)
|
|
42440
|
+
});
|
|
42441
|
+
var paletteResultSchema = discriminatedUnion("status", [paletteReadySchema, object({
|
|
42442
|
+
status: literal("unknown"),
|
|
42443
|
+
reason: string()
|
|
42444
|
+
})]);
|
|
42445
|
+
var setPaletteInputSchema = union([object({ presetId: string() }), object({
|
|
42446
|
+
presetId: string(),
|
|
42447
|
+
overrides: record(string(), paletteSwatchSchema)
|
|
42448
|
+
})]);
|
|
42449
|
+
object({
|
|
42450
|
+
presetId: string(),
|
|
42451
|
+
overrides: record(string(), paletteSwatchSchema)
|
|
42452
|
+
});
|
|
42453
|
+
function solid(hex) {
|
|
42454
|
+
return {
|
|
42455
|
+
form: "solid",
|
|
42456
|
+
hex
|
|
42457
|
+
};
|
|
42458
|
+
}
|
|
42459
|
+
function audioGradient(hex) {
|
|
42460
|
+
return {
|
|
42461
|
+
form: "gradient",
|
|
42462
|
+
hex,
|
|
42463
|
+
alphas: [...AUDIO_GRADIENT_ALPHAS]
|
|
42464
|
+
};
|
|
42465
|
+
}
|
|
42466
|
+
function swatchesFrom(hexes) {
|
|
42467
|
+
const out = {};
|
|
42468
|
+
for (const id of PALETTE_ENTRY_IDS) {
|
|
42469
|
+
const hex = hexes[id];
|
|
42470
|
+
if (hex === void 0) throw new Error(`palette table missing ${id}`);
|
|
42471
|
+
out[id] = id === "audio" ? audioGradient(hex) : solid(hex);
|
|
42472
|
+
}
|
|
42473
|
+
return out;
|
|
42474
|
+
}
|
|
42475
|
+
function preset(id, name, hexes, fallbacks) {
|
|
42476
|
+
return {
|
|
42477
|
+
id,
|
|
42478
|
+
name,
|
|
42479
|
+
swatches: swatchesFrom(hexes),
|
|
42480
|
+
fallbacks
|
|
42481
|
+
};
|
|
42482
|
+
}
|
|
42483
|
+
var DISPLAY_PRESETS = [
|
|
42484
|
+
preset("camstack", "CamStack", CAMSTACK_HEX, CAMSTACK_FALLBACK),
|
|
42485
|
+
preset("high-contrast", "High contrast", HIGH_CONTRAST_HEX, HIGH_CONTRAST_FALLBACK),
|
|
42486
|
+
preset("okabe-ito", "Colour-blind safe", OKABE_ITO_HEX, OKABE_ITO_FALLBACK)
|
|
42487
|
+
];
|
|
42488
|
+
function presetById(id) {
|
|
42489
|
+
return DISPLAY_PRESETS.find((item) => item.id === id);
|
|
42490
|
+
}
|
|
42491
|
+
function bundledCamstack() {
|
|
42492
|
+
const presetRow = presetById("camstack");
|
|
42493
|
+
if (presetRow === void 0) throw new Error("CamStack preset missing");
|
|
42494
|
+
return readyOf(presetRow, "unconfigured", false);
|
|
42495
|
+
}
|
|
42496
|
+
function readyOf(row, source, customized) {
|
|
42497
|
+
return {
|
|
42498
|
+
status: "ready",
|
|
42499
|
+
presetId: row.id,
|
|
42500
|
+
customized,
|
|
42501
|
+
source,
|
|
42502
|
+
swatches: row.swatches,
|
|
42503
|
+
fallbacks: [...row.fallbacks]
|
|
42504
|
+
};
|
|
42505
|
+
}
|
|
42506
|
+
function hashFallback(kind, fallbacks) {
|
|
42507
|
+
let hash = 0;
|
|
42508
|
+
for (let i = 0; i < kind.length; i++) hash = hash * 31 + (kind.codePointAt(i) ?? 0) >>> 0;
|
|
42509
|
+
const hex = fallbacks[hash % fallbacks.length];
|
|
42510
|
+
if (hex === void 0) throw new Error("display palette has no fallback colour");
|
|
42511
|
+
return hex;
|
|
42512
|
+
}
|
|
42513
|
+
/** Colour a kind paints with. Audio leaves share the audio gradient's hex. */
|
|
42514
|
+
function paintHex(swatches, fallbacks, kind) {
|
|
42515
|
+
const key = kind.trim().toLowerCase();
|
|
42516
|
+
if (key.startsWith("audio-")) {
|
|
42517
|
+
const audio = swatches[AUDIO_ENTRY_ID];
|
|
42518
|
+
return audio !== void 0 ? audio.hex : hashFallback(key, fallbacks);
|
|
42519
|
+
}
|
|
42520
|
+
const direct = swatches[key];
|
|
42521
|
+
if (direct !== void 0) return direct.hex;
|
|
42522
|
+
return hashFallback(key, fallbacks);
|
|
42523
|
+
}
|
|
42524
|
+
/**
|
|
42131
42525
|
* Unified event-kind taxonomy — THE single source of truth for
|
|
42132
42526
|
* `kind → { parentKind, category, level, color, iconId, labelKey, label,
|
|
42133
42527
|
* icon }`.
|
|
@@ -42141,109 +42535,88 @@ for (const [k, v] of Object.entries(APPLE_SA_TO_MACRO.mapping)) _macroLookup.set
|
|
|
42141
42535
|
* - `addon-post-analysis/shared/frame/box-drawer.ts` (DEFAULT_COLOR)
|
|
42142
42536
|
* - the COCO / audio class maps (macro ↔ sub relationships)
|
|
42143
42537
|
*
|
|
42144
|
-
* The DATA (serializable —
|
|
42145
|
-
* `@camstack/types`.
|
|
42146
|
-
*
|
|
42147
|
-
*
|
|
42148
|
-
*
|
|
42538
|
+
* The DATA (serializable — parentKind / iconId / labelKey) lives here in
|
|
42539
|
+
* `@camstack/types`. Colour is NOT a second table: each entry's `color` is
|
|
42540
|
+
* the bundled CamStack display palette (D939). The effective cluster palette
|
|
42541
|
+
* is the `display-palette` capability. The UI-side mapping `iconId → lucide
|
|
42542
|
+
* component` and `labelKey → t()` lives in `@camstack/ui-library`.
|
|
42149
42543
|
*
|
|
42150
42544
|
* Two levels only (v1 YAGNI): macro → sub. `person` is a leaf macro.
|
|
42151
42545
|
*/
|
|
42152
|
-
var
|
|
42153
|
-
|
|
42154
|
-
|
|
42155
|
-
|
|
42156
|
-
|
|
42157
|
-
|
|
42158
|
-
|
|
42159
|
-
|
|
42160
|
-
|
|
42161
|
-
|
|
42162
|
-
};
|
|
42163
|
-
var DETECTION_SUB_COLORS = {
|
|
42164
|
-
car: "#f59e0b",
|
|
42165
|
-
truck: "#d97706",
|
|
42166
|
-
bus: "#b45309",
|
|
42167
|
-
motorcycle: "#eab308",
|
|
42168
|
-
bicycle: "#ca8a04",
|
|
42169
|
-
airplane: "#60a5fa",
|
|
42170
|
-
boat: "#2563eb",
|
|
42171
|
-
train: "#1d4ed8",
|
|
42172
|
-
bird: "#14b8a6",
|
|
42173
|
-
dog: "#84cc16",
|
|
42174
|
-
cat: "#f97316",
|
|
42175
|
-
horse: "#a16207",
|
|
42176
|
-
sheep: "#a3a3a3",
|
|
42177
|
-
cow: "#78716c",
|
|
42178
|
-
elephant: "#6b7280",
|
|
42179
|
-
bear: "#7c2d12",
|
|
42180
|
-
zebra: "#404040",
|
|
42181
|
-
giraffe: "#d4a373"
|
|
42182
|
-
};
|
|
42546
|
+
var BUNDLED_PALETTE = bundledCamstack();
|
|
42547
|
+
function kindColor(kind) {
|
|
42548
|
+
return paintHex(BUNDLED_PALETTE.swatches, BUNDLED_PALETTE.fallbacks, kind);
|
|
42549
|
+
}
|
|
42550
|
+
function firstFallback(fallbacks) {
|
|
42551
|
+
const hex = fallbacks[0];
|
|
42552
|
+
if (hex === void 0) throw new Error("display palette has no fallback colour");
|
|
42553
|
+
return hex;
|
|
42554
|
+
}
|
|
42555
|
+
firstFallback(BUNDLED_PALETTE.fallbacks);
|
|
42183
42556
|
function titleCase(id) {
|
|
42184
42557
|
return id.split(/[-_ ]/).filter((p) => p.length > 0).map((p) => p.charAt(0).toUpperCase() + p.slice(1)).join(" ");
|
|
42185
42558
|
}
|
|
42186
42559
|
var entries = /* @__PURE__ */ new Map();
|
|
42187
|
-
function macro(kind, category,
|
|
42560
|
+
function macro(kind, category, iconId, label) {
|
|
42188
42561
|
entries.set(kind, {
|
|
42189
42562
|
kind,
|
|
42190
42563
|
parentKind: null,
|
|
42191
42564
|
level: "macro",
|
|
42192
42565
|
category,
|
|
42193
|
-
color,
|
|
42566
|
+
color: kindColor(kind),
|
|
42194
42567
|
iconId,
|
|
42195
42568
|
labelKey: `eventKind.${kind}`,
|
|
42196
42569
|
label
|
|
42197
42570
|
});
|
|
42198
42571
|
}
|
|
42199
|
-
function sub(kind, parentKind, category,
|
|
42572
|
+
function sub(kind, parentKind, category, iconId, label) {
|
|
42200
42573
|
entries.set(kind, {
|
|
42201
42574
|
kind,
|
|
42202
42575
|
parentKind,
|
|
42203
42576
|
level: "sub",
|
|
42204
42577
|
category,
|
|
42205
|
-
color,
|
|
42578
|
+
color: kindColor(kind),
|
|
42206
42579
|
iconId,
|
|
42207
42580
|
labelKey: `eventKind.${kind}`,
|
|
42208
42581
|
label
|
|
42209
42582
|
});
|
|
42210
42583
|
}
|
|
42211
|
-
macro("motion", "motion",
|
|
42212
|
-
macro("audio", "audio",
|
|
42213
|
-
macro("person", "detection",
|
|
42214
|
-
macro("vehicle", "detection",
|
|
42215
|
-
macro("animal", "detection",
|
|
42216
|
-
macro("package", "package",
|
|
42217
|
-
macro("sensor", "sensor",
|
|
42218
|
-
macro("control", "control",
|
|
42584
|
+
macro("motion", "motion", "motion", "Motion");
|
|
42585
|
+
macro("audio", "audio", "audio", "Audio");
|
|
42586
|
+
macro("person", "detection", "person", "Person");
|
|
42587
|
+
macro("vehicle", "detection", "vehicle", "Vehicle");
|
|
42588
|
+
macro("animal", "detection", "animal", "Animal");
|
|
42589
|
+
macro("package", "package", "package", "Package");
|
|
42590
|
+
macro("sensor", "sensor", "sensor", "Sensor");
|
|
42591
|
+
macro("control", "control", "control", "Control");
|
|
42219
42592
|
for (const [cocoClass, macroClass] of Object.entries(COCO_TO_MACRO.mapping)) {
|
|
42220
42593
|
if (macroClass !== "vehicle" && macroClass !== "animal") continue;
|
|
42221
42594
|
if (entries.has(cocoClass)) continue;
|
|
42222
|
-
sub(cocoClass, macroClass, "detection",
|
|
42595
|
+
sub(cocoClass, macroClass, "detection", cocoClass, titleCase(cocoClass));
|
|
42223
42596
|
}
|
|
42224
|
-
sub("package-delivered", "package", "package",
|
|
42225
|
-
sub("package-picked-up", "package", "package",
|
|
42226
|
-
sub("contact", "sensor", "sensor", "
|
|
42227
|
-
sub("motion-sensor", "sensor", "sensor",
|
|
42228
|
-
sub("smoke", "sensor", "sensor", "
|
|
42229
|
-
sub("flood", "sensor", "sensor", "
|
|
42230
|
-
sub("gas", "sensor", "sensor", "
|
|
42231
|
-
sub("carbon-monoxide", "sensor", "sensor", "
|
|
42232
|
-
sub("vibration", "sensor", "sensor", "
|
|
42233
|
-
sub("tamper", "sensor", "sensor", "
|
|
42234
|
-
sub("presence", "sensor", "sensor", "
|
|
42235
|
-
sub("enum-sensor", "sensor", "sensor",
|
|
42236
|
-
sub("device-event", "sensor", "sensor", "
|
|
42237
|
-
sub("lock", "control", "control", "
|
|
42238
|
-
sub("cover", "control", "control", "
|
|
42239
|
-
sub("switch", "control", "control",
|
|
42240
|
-
sub("siren", "control", "control", "
|
|
42241
|
-
sub("button", "control", "control", "
|
|
42242
|
-
sub("doorbell", "control", "control", "
|
|
42597
|
+
sub("package-delivered", "package", "package", "package", "Package delivered");
|
|
42598
|
+
sub("package-picked-up", "package", "package", "package", "Package picked up");
|
|
42599
|
+
sub("contact", "sensor", "sensor", "door", "Contact");
|
|
42600
|
+
sub("motion-sensor", "sensor", "sensor", "pir", "Motion sensor");
|
|
42601
|
+
sub("smoke", "sensor", "sensor", "smoke", "Smoke");
|
|
42602
|
+
sub("flood", "sensor", "sensor", "water", "Water leak");
|
|
42603
|
+
sub("gas", "sensor", "sensor", "gas", "Gas");
|
|
42604
|
+
sub("carbon-monoxide", "sensor", "sensor", "smoke", "Carbon monoxide");
|
|
42605
|
+
sub("vibration", "sensor", "sensor", "vibration", "Vibration");
|
|
42606
|
+
sub("tamper", "sensor", "sensor", "tamper", "Tamper");
|
|
42607
|
+
sub("presence", "sensor", "sensor", "presence", "Presence");
|
|
42608
|
+
sub("enum-sensor", "sensor", "sensor", "generic", "Sensor state");
|
|
42609
|
+
sub("device-event", "sensor", "sensor", "button", "Device event");
|
|
42610
|
+
sub("lock", "control", "control", "lock", "Lock");
|
|
42611
|
+
sub("cover", "control", "control", "door", "Cover");
|
|
42612
|
+
sub("switch", "control", "control", "switch", "Switch");
|
|
42613
|
+
sub("siren", "control", "control", "siren", "Siren");
|
|
42614
|
+
sub("button", "control", "control", "button", "Button");
|
|
42615
|
+
sub("doorbell", "control", "control", "doorbell", "Doorbell");
|
|
42243
42616
|
for (const l of AUDIO_MACRO_LABELS) {
|
|
42244
42617
|
const kind = `audio-${l.id}`;
|
|
42245
42618
|
if (entries.has(kind)) continue;
|
|
42246
|
-
sub(kind, "audio", "audio",
|
|
42619
|
+
sub(kind, "audio", "audio", kind, l.name);
|
|
42247
42620
|
}
|
|
42248
42621
|
/** The complete taxonomy dictionary, keyed by kind. */
|
|
42249
42622
|
var EVENT_TAXONOMY = Object.freeze(Object.fromEntries(entries));
|
|
@@ -54050,7 +54423,8 @@ var BatteryStatusSchema = object({
|
|
|
54050
54423
|
*/
|
|
54051
54424
|
binary: boolean().optional()
|
|
54052
54425
|
});
|
|
54053
|
-
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat
|
|
54426
|
+
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat;
|
|
54427
|
+
method(object({
|
|
54054
54428
|
deviceId: number(),
|
|
54055
54429
|
/** Bound on the wait. Sensible range 3000–10000ms. */
|
|
54056
54430
|
timeoutMs: number().int().min(500).max(3e4).default(8e3)
|
|
@@ -54759,6 +55133,7 @@ var ConsumablesStatusSchema = object({
|
|
|
54759
55133
|
})),
|
|
54760
55134
|
lastChangedAt: number()
|
|
54761
55135
|
});
|
|
55136
|
+
Object.values(DeviceType), [...ConsumableRemainingUnitSchema.options], [...ConsumableStatusSchema.options], [...ConsumableKindSchema.options], [...ConsumableFormSchema.options];
|
|
54762
55137
|
Object.values(DeviceType), method(object({
|
|
54763
55138
|
deviceId: number().int().nonnegative(),
|
|
54764
55139
|
key: string().min(1)
|
|
@@ -54951,6 +55326,30 @@ DeviceType.Camera, method(object({ deviceId: number() }), DayNightOptionsSchema)
|
|
|
54951
55326
|
auth: "admin"
|
|
54952
55327
|
});
|
|
54953
55328
|
/**
|
|
55329
|
+
* display-palette — the cluster's one colour table (D939).
|
|
55330
|
+
*
|
|
55331
|
+
* Hub singleton. `getPalette` reports `unknown` when the settings store
|
|
55332
|
+
* cannot be read; it does not pretend the bundled preset was stored.
|
|
55333
|
+
* `setPalette` refuses a palette that fails the ΔE / contrast rule and names
|
|
55334
|
+
* the pairs.
|
|
55335
|
+
*/
|
|
55336
|
+
var presetSummarySchema = object({
|
|
55337
|
+
id: string(),
|
|
55338
|
+
name: string(),
|
|
55339
|
+
swatches: record(string(), paletteSwatchSchema),
|
|
55340
|
+
fallbacks: array(string())
|
|
55341
|
+
});
|
|
55342
|
+
method(_void(), paletteResultSchema, {
|
|
55343
|
+
auth: "protected",
|
|
55344
|
+
role: "viewer"
|
|
55345
|
+
}), method(_void(), array(presetSummarySchema).readonly(), {
|
|
55346
|
+
auth: "protected",
|
|
55347
|
+
role: "viewer"
|
|
55348
|
+
}), method(setPaletteInputSchema, paletteReadySchema, {
|
|
55349
|
+
kind: "mutation",
|
|
55350
|
+
auth: "admin"
|
|
55351
|
+
});
|
|
55352
|
+
/**
|
|
54954
55353
|
* Generic device-level status snapshot. Auto-registered by `BaseDevice`
|
|
54955
55354
|
* for every device, regardless of provider — the kernel needs a uniform
|
|
54956
55355
|
* cap-keyed slice for the basic device flags every consumer expects to
|
|
@@ -55230,6 +55629,7 @@ DeviceType.Dishwasher, method(object({
|
|
|
55230
55629
|
kind: "mutation",
|
|
55231
55630
|
auth: "protected"
|
|
55232
55631
|
}), method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" });
|
|
55632
|
+
DeviceType.Camera;
|
|
55233
55633
|
object({
|
|
55234
55634
|
/** Ms epoch of the last press. null = never observed since this provider started. */
|
|
55235
55635
|
lastPressedAt: number().nullable(),
|
|
@@ -57022,6 +57422,7 @@ authKey: string().optional() }), object({
|
|
|
57022
57422
|
/** Human-readable error when `ok: false`. */
|
|
57023
57423
|
error: string().optional()
|
|
57024
57424
|
}), { kind: "mutation" });
|
|
57425
|
+
DeviceType.Camera;
|
|
57025
57426
|
object({
|
|
57026
57427
|
detected: boolean(),
|
|
57027
57428
|
/** Ms epoch of the last detected-true observation. Null if never detected. */
|
|
@@ -59093,7 +59494,8 @@ object({
|
|
|
59093
59494
|
since: number().nullable(),
|
|
59094
59495
|
source: RunningStateSourceSchema,
|
|
59095
59496
|
phase: string().nullable(),
|
|
59096
|
-
|
|
59497
|
+
/** null until a reading has been published (D393). */
|
|
59498
|
+
lastFetchedAt: number().nullable()
|
|
59097
59499
|
});
|
|
59098
59500
|
object({
|
|
59099
59501
|
deviceId: number(),
|
|
@@ -59101,6 +59503,7 @@ object({
|
|
|
59101
59503
|
phase: string().nullable()
|
|
59102
59504
|
});
|
|
59103
59505
|
Object.values(DeviceType);
|
|
59506
|
+
DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
|
|
59104
59507
|
DeviceType.Camera, DeviceType.Sensor, DeviceType.Switch, method(object({ deviceId: number().int().nonnegative() }), object({ success: literal(true) }), {
|
|
59105
59508
|
kind: "mutation",
|
|
59106
59509
|
auth: "admin"
|
|
@@ -65947,6 +66350,27 @@ Object.freeze({
|
|
|
65947
66350
|
access: "create",
|
|
65948
66351
|
role: "viewer"
|
|
65949
66352
|
},
|
|
66353
|
+
"displayPalette.getPalette": {
|
|
66354
|
+
capName: "display-palette",
|
|
66355
|
+
capScope: "system",
|
|
66356
|
+
addonId: null,
|
|
66357
|
+
access: "view",
|
|
66358
|
+
role: "viewer"
|
|
66359
|
+
},
|
|
66360
|
+
"displayPalette.listPresets": {
|
|
66361
|
+
capName: "display-palette",
|
|
66362
|
+
capScope: "system",
|
|
66363
|
+
addonId: null,
|
|
66364
|
+
access: "view",
|
|
66365
|
+
role: "viewer"
|
|
66366
|
+
},
|
|
66367
|
+
"displayPalette.setPalette": {
|
|
66368
|
+
capName: "display-palette",
|
|
66369
|
+
capScope: "system",
|
|
66370
|
+
addonId: null,
|
|
66371
|
+
access: "create",
|
|
66372
|
+
role: "admin"
|
|
66373
|
+
},
|
|
65950
66374
|
"doorbell.getStatus": {
|
|
65951
66375
|
capName: "doorbell",
|
|
65952
66376
|
capScope: "device",
|
|
@@ -76403,6 +76827,7 @@ var SYSTEM_CAP_VOCABULARY = {
|
|
|
76403
76827
|
"device-provider": system(INTERNAL),
|
|
76404
76828
|
"device-removal-hook": system(INTERNAL),
|
|
76405
76829
|
"device-state": system("the runtime-state mirror every trigger already reads through"),
|
|
76830
|
+
"display-palette": system("the cluster display palette — one colour table for every client, not a device action"),
|
|
76406
76831
|
"embedding-encoder": system(ML),
|
|
76407
76832
|
"face-gallery": system("the face gallery — curated on its own page"),
|
|
76408
76833
|
"failure-contribution": system(INTERNAL),
|
|
@@ -79287,6 +79712,96 @@ Object.freeze({
|
|
|
79287
79712
|
"smtp-provider": "email"
|
|
79288
79713
|
});
|
|
79289
79714
|
DeviceType.Camera;
|
|
79715
|
+
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher, DeviceType.Camera, DeviceType.Camera, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
|
|
79716
|
+
/**
|
|
79717
|
+
* A saved Customize assignment (D936). The schema is the type: callers use
|
|
79718
|
+
* `z.infer`, they do not restate the shape.
|
|
79719
|
+
*/
|
|
79720
|
+
var OverrideSourceSchema = object({
|
|
79721
|
+
addonId: string().min(1),
|
|
79722
|
+
stableId: string().min(1),
|
|
79723
|
+
cap: string().min(1),
|
|
79724
|
+
fieldPath: string().min(1)
|
|
79725
|
+
});
|
|
79726
|
+
var CustomizeTransformDraftSchema = discriminatedUnion("kind", [
|
|
79727
|
+
object({ kind: literal("identity") }),
|
|
79728
|
+
object({ kind: literal("invert") }),
|
|
79729
|
+
object({
|
|
79730
|
+
kind: literal("threshold"),
|
|
79731
|
+
comparison: _enum(["gte", "lte"]),
|
|
79732
|
+
threshold: number(),
|
|
79733
|
+
startDwellMs: number().nonnegative(),
|
|
79734
|
+
stopDwellMs: number().nonnegative()
|
|
79735
|
+
}),
|
|
79736
|
+
object({
|
|
79737
|
+
kind: literal("linear"),
|
|
79738
|
+
scale: number(),
|
|
79739
|
+
offset: number(),
|
|
79740
|
+
clampMin: number().optional(),
|
|
79741
|
+
clampMax: number().optional()
|
|
79742
|
+
}),
|
|
79743
|
+
object({
|
|
79744
|
+
kind: literal("enum-map"),
|
|
79745
|
+
mapping: record(string(), string().nullable())
|
|
79746
|
+
}),
|
|
79747
|
+
object({ kind: literal("number") })
|
|
79748
|
+
]);
|
|
79749
|
+
var ScalarOverrideDraftSchema = object({
|
|
79750
|
+
kind: literal("scalar"),
|
|
79751
|
+
cap: string().min(1),
|
|
79752
|
+
targetId: string().min(1),
|
|
79753
|
+
source: OverrideSourceSchema,
|
|
79754
|
+
transform: CustomizeTransformDraftSchema
|
|
79755
|
+
});
|
|
79756
|
+
var KeyedArrayOverrideDraftSchema = object({
|
|
79757
|
+
kind: literal("keyedArray"),
|
|
79758
|
+
cap: string().min(1),
|
|
79759
|
+
targetId: string().min(1),
|
|
79760
|
+
key: string().min(1),
|
|
79761
|
+
label: string().min(1),
|
|
79762
|
+
fieldPath: string().min(1),
|
|
79763
|
+
source: OverrideSourceSchema,
|
|
79764
|
+
transform: CustomizeTransformDraftSchema
|
|
79765
|
+
});
|
|
79766
|
+
var PulseOverrideDraftSchema = object({
|
|
79767
|
+
kind: literal("pulse"),
|
|
79768
|
+
cap: string().min(1),
|
|
79769
|
+
targetId: string().min(1),
|
|
79770
|
+
enabled: boolean(),
|
|
79771
|
+
debounceMs: number().nonnegative(),
|
|
79772
|
+
sources: array(OverrideSourceSchema).min(1)
|
|
79773
|
+
});
|
|
79774
|
+
var SpanSourceDraftSchema = OverrideSourceSchema.extend({ mode: _enum([
|
|
79775
|
+
"in-addition",
|
|
79776
|
+
"confirm",
|
|
79777
|
+
"replace"
|
|
79778
|
+
]).optional() });
|
|
79779
|
+
discriminatedUnion("kind", [
|
|
79780
|
+
ScalarOverrideDraftSchema,
|
|
79781
|
+
KeyedArrayOverrideDraftSchema,
|
|
79782
|
+
PulseOverrideDraftSchema,
|
|
79783
|
+
object({
|
|
79784
|
+
kind: literal("span"),
|
|
79785
|
+
cap: string().min(1),
|
|
79786
|
+
targetId: string().min(1),
|
|
79787
|
+
timeoutMs: number().nonnegative(),
|
|
79788
|
+
cooldownMs: number().nonnegative().optional(),
|
|
79789
|
+
sources: array(SpanSourceDraftSchema)
|
|
79790
|
+
})
|
|
79791
|
+
]);
|
|
79792
|
+
object({
|
|
79793
|
+
targetId: string().min(1),
|
|
79794
|
+
configured: boolean(),
|
|
79795
|
+
source: _enum(["native", "assigned"]),
|
|
79796
|
+
state: _enum([
|
|
79797
|
+
"active",
|
|
79798
|
+
"stale",
|
|
79799
|
+
"released",
|
|
79800
|
+
"unavailable"
|
|
79801
|
+
]),
|
|
79802
|
+
reason: string().nullable()
|
|
79803
|
+
});
|
|
79804
|
+
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
79290
79805
|
var G711_SCALE_CORRECTION_DB = {
|
|
79291
79806
|
PCMU: 20 * Math.log10(4),
|
|
79292
79807
|
PCMA: 20 * Math.log10(8)
|