@camstack/addon-export-google 0.1.48 → 0.1.50
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/export-google.addon.js +129 -70
- package/dist/export-google.addon.mjs +129 -70
- package/package.json +1 -1
|
@@ -16077,16 +16077,16 @@ DeviceType.AlarmPanel, method(object({
|
|
|
16077
16077
|
code: string().min(1).optional()
|
|
16078
16078
|
}), _void(), {
|
|
16079
16079
|
kind: "mutation",
|
|
16080
|
-
auth: "
|
|
16080
|
+
auth: "protected"
|
|
16081
16081
|
}), method(object({
|
|
16082
16082
|
deviceId: number().int().nonnegative(),
|
|
16083
16083
|
code: string().min(1).optional()
|
|
16084
16084
|
}), _void(), {
|
|
16085
16085
|
kind: "mutation",
|
|
16086
|
-
auth: "
|
|
16086
|
+
auth: "protected"
|
|
16087
16087
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
16088
16088
|
kind: "mutation",
|
|
16089
|
-
auth: "
|
|
16089
|
+
auth: "protected"
|
|
16090
16090
|
});
|
|
16091
16091
|
/**
|
|
16092
16092
|
* Shared geometry vocabulary for on-frame shape caps — privacy-mask,
|
|
@@ -23769,7 +23769,7 @@ DeviceType.Light, method(object({
|
|
|
23769
23769
|
percentage: number().min(0).max(100)
|
|
23770
23770
|
}), _void(), {
|
|
23771
23771
|
kind: "mutation",
|
|
23772
|
-
auth: "
|
|
23772
|
+
auth: "protected"
|
|
23773
23773
|
}), object({
|
|
23774
23774
|
deviceId: number(),
|
|
23775
23775
|
percentage: number().min(0).max(100),
|
|
@@ -23777,7 +23777,7 @@ DeviceType.Light, method(object({
|
|
|
23777
23777
|
});
|
|
23778
23778
|
DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
23779
23779
|
kind: "mutation",
|
|
23780
|
-
auth: "
|
|
23780
|
+
auth: "protected"
|
|
23781
23781
|
});
|
|
23782
23782
|
/**
|
|
23783
23783
|
* camera-credentials — device-scoped cap exposing the camera's network
|
|
@@ -23936,50 +23936,50 @@ DeviceType.Thermostat, DeviceType.Climate, method(object({
|
|
|
23936
23936
|
mode: HvacModeSchema
|
|
23937
23937
|
}), _void(), {
|
|
23938
23938
|
kind: "mutation",
|
|
23939
|
-
auth: "
|
|
23939
|
+
auth: "protected"
|
|
23940
23940
|
}), method(object({
|
|
23941
23941
|
deviceId: number().int().nonnegative(),
|
|
23942
23942
|
fanMode: string().min(1)
|
|
23943
23943
|
}), _void(), {
|
|
23944
23944
|
kind: "mutation",
|
|
23945
|
-
auth: "
|
|
23945
|
+
auth: "protected"
|
|
23946
23946
|
}), method(object({
|
|
23947
23947
|
deviceId: number().int().nonnegative(),
|
|
23948
23948
|
preset: string().min(1)
|
|
23949
23949
|
}), _void(), {
|
|
23950
23950
|
kind: "mutation",
|
|
23951
|
-
auth: "
|
|
23951
|
+
auth: "protected"
|
|
23952
23952
|
}), method(object({
|
|
23953
23953
|
deviceId: number().int().nonnegative(),
|
|
23954
23954
|
target: number()
|
|
23955
23955
|
}), _void(), {
|
|
23956
23956
|
kind: "mutation",
|
|
23957
|
-
auth: "
|
|
23957
|
+
auth: "protected"
|
|
23958
23958
|
}), method(object({
|
|
23959
23959
|
deviceId: number().int().nonnegative(),
|
|
23960
23960
|
targetLow: number(),
|
|
23961
23961
|
targetHigh: number()
|
|
23962
23962
|
}), _void(), {
|
|
23963
23963
|
kind: "mutation",
|
|
23964
|
-
auth: "
|
|
23964
|
+
auth: "protected"
|
|
23965
23965
|
}), method(object({
|
|
23966
23966
|
deviceId: number().int().nonnegative(),
|
|
23967
23967
|
targetHumidity: number().min(0).max(100)
|
|
23968
23968
|
}), _void(), {
|
|
23969
23969
|
kind: "mutation",
|
|
23970
|
-
auth: "
|
|
23970
|
+
auth: "protected"
|
|
23971
23971
|
}), method(object({
|
|
23972
23972
|
deviceId: number().int().nonnegative(),
|
|
23973
23973
|
on: boolean()
|
|
23974
23974
|
}), _void(), {
|
|
23975
23975
|
kind: "mutation",
|
|
23976
|
-
auth: "
|
|
23976
|
+
auth: "protected"
|
|
23977
23977
|
}), method(object({
|
|
23978
23978
|
deviceId: number().int().nonnegative(),
|
|
23979
23979
|
on: boolean()
|
|
23980
23980
|
}), _void(), {
|
|
23981
23981
|
kind: "mutation",
|
|
23982
|
-
auth: "
|
|
23982
|
+
auth: "protected"
|
|
23983
23983
|
});
|
|
23984
23984
|
/**
|
|
23985
23985
|
* Color-light cap. Coexists with `switch` (on/off) and `brightness`
|
|
@@ -24054,7 +24054,7 @@ DeviceType.Light, method(object({
|
|
|
24054
24054
|
color: ColorInputSchema
|
|
24055
24055
|
}), _void(), {
|
|
24056
24056
|
kind: "mutation",
|
|
24057
|
-
auth: "
|
|
24057
|
+
auth: "protected"
|
|
24058
24058
|
}), object({
|
|
24059
24059
|
deviceId: number(),
|
|
24060
24060
|
mode: _enum([
|
|
@@ -24203,7 +24203,7 @@ DeviceType.Control, method(object({
|
|
|
24203
24203
|
control: ControlSetValueInputSchema
|
|
24204
24204
|
}), _void(), {
|
|
24205
24205
|
kind: "mutation",
|
|
24206
|
-
auth: "
|
|
24206
|
+
auth: "protected"
|
|
24207
24207
|
});
|
|
24208
24208
|
var CoverStatusSchema = object({
|
|
24209
24209
|
/** Lifecycle state of the cover. */
|
|
@@ -24224,25 +24224,25 @@ var CoverStatusSchema = object({
|
|
|
24224
24224
|
});
|
|
24225
24225
|
DeviceType.Cover, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24226
24226
|
kind: "mutation",
|
|
24227
|
-
auth: "
|
|
24227
|
+
auth: "protected"
|
|
24228
24228
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24229
24229
|
kind: "mutation",
|
|
24230
|
-
auth: "
|
|
24230
|
+
auth: "protected"
|
|
24231
24231
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24232
24232
|
kind: "mutation",
|
|
24233
|
-
auth: "
|
|
24233
|
+
auth: "protected"
|
|
24234
24234
|
}), method(object({
|
|
24235
24235
|
deviceId: number().int().nonnegative(),
|
|
24236
24236
|
position: number().min(0).max(100)
|
|
24237
24237
|
}), _void(), {
|
|
24238
24238
|
kind: "mutation",
|
|
24239
|
-
auth: "
|
|
24239
|
+
auth: "protected"
|
|
24240
24240
|
}), method(object({
|
|
24241
24241
|
deviceId: number().int().nonnegative(),
|
|
24242
24242
|
tiltPosition: number().min(0).max(100)
|
|
24243
24243
|
}), _void(), {
|
|
24244
24244
|
kind: "mutation",
|
|
24245
|
-
auth: "
|
|
24245
|
+
auth: "protected"
|
|
24246
24246
|
});
|
|
24247
24247
|
/**
|
|
24248
24248
|
* Vendor-neutral day/night (IR-cut) control — the per-camera config cap
|
|
@@ -24447,6 +24447,59 @@ var IdentitySampleInfoSchema = object({
|
|
|
24447
24447
|
deviceId: number().int().optional(),
|
|
24448
24448
|
base64: string().optional()
|
|
24449
24449
|
});
|
|
24450
|
+
/**
|
|
24451
|
+
* One enrolled sample, judged against the gallery it lives in.
|
|
24452
|
+
*
|
|
24453
|
+
* The gallery is the one input to recognition nobody re-reads: a sample
|
|
24454
|
+
* enrolled from the wrong face keeps voting forever, and because the matches it
|
|
24455
|
+
* pulls then look confident, nobody goes back. The 2026-09-08 audit found
|
|
24456
|
+
* exactly one such pair on this cluster — a sample scoring 0.61 against three
|
|
24457
|
+
* samples of ANOTHER person, enrolled from the same camera in the same minute,
|
|
24458
|
+
* where every other cross-identity pair sits under 0.50.
|
|
24459
|
+
*/
|
|
24460
|
+
var IdentitySampleAuditRowSchema = object({
|
|
24461
|
+
sampleId: string(),
|
|
24462
|
+
enrolledAt: number().int(),
|
|
24463
|
+
deviceId: number().int().optional(),
|
|
24464
|
+
source: _enum(["detected", "photo"]),
|
|
24465
|
+
/** The enrolled crop's media key, so the panel can show the evidence. */
|
|
24466
|
+
mediaKey: string().optional(),
|
|
24467
|
+
/**
|
|
24468
|
+
* False = the sample is stamped with a DIFFERENT face model, and a cosine
|
|
24469
|
+
* across feature spaces is a well-formed float with no meaning. Every number
|
|
24470
|
+
* below then says nothing — it must read as "cannot say", never as an
|
|
24471
|
+
* accusation and never as a clean bill: this list ends in a Remove button.
|
|
24472
|
+
*/
|
|
24473
|
+
comparable: boolean(),
|
|
24474
|
+
/** Mean cosine against this person's other samples. Null when there are none
|
|
24475
|
+
* to compare with — never 0, which would read as "opposite". */
|
|
24476
|
+
selfMean: number().nullable(),
|
|
24477
|
+
/** The other person this sample looks most like, when it looks like one.
|
|
24478
|
+
* This is the half that convicts: not looking like yourself can be a hard
|
|
24479
|
+
* angle; looking like someone the gallery can NAME is a mis-enrolment. */
|
|
24480
|
+
bestForeign: object({
|
|
24481
|
+
identityId: string(),
|
|
24482
|
+
name: string(),
|
|
24483
|
+
score: number()
|
|
24484
|
+
}).optional(),
|
|
24485
|
+
/** 0 = nothing to say. Higher = look at this one sooner. */
|
|
24486
|
+
suspicion: number()
|
|
24487
|
+
});
|
|
24488
|
+
var IdentitySampleAuditSchema = object({
|
|
24489
|
+
identityId: string(),
|
|
24490
|
+
name: string(),
|
|
24491
|
+
/** The cluster face model every comparison was made in. */
|
|
24492
|
+
modelId: string(),
|
|
24493
|
+
totalSamples: number().int(),
|
|
24494
|
+
comparableSamples: number().int(),
|
|
24495
|
+
flagged: number().int(),
|
|
24496
|
+
/** The bar `flagged` counts against, so the panel states the RULE and not
|
|
24497
|
+
* only its current result. */
|
|
24498
|
+
flagThreshold: number(),
|
|
24499
|
+
/** Worst first. A row with nothing to say still appears, at the bottom: the
|
|
24500
|
+
* operator asked to see the gallery, not only its accusations. */
|
|
24501
|
+
rows: array(IdentitySampleAuditRowSchema).readonly()
|
|
24502
|
+
});
|
|
24450
24503
|
var FaceInfoSchema = object({
|
|
24451
24504
|
faceId: string(),
|
|
24452
24505
|
deviceId: number().int(),
|
|
@@ -24598,7 +24651,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
|
|
|
24598
24651
|
}), method(object({ id: string() }), _void(), {
|
|
24599
24652
|
kind: "mutation",
|
|
24600
24653
|
auth: "admin"
|
|
24601
|
-
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
|
|
24654
|
+
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
|
|
24602
24655
|
identityId: string(),
|
|
24603
24656
|
sampleId: string()
|
|
24604
24657
|
}), _void(), {
|
|
@@ -24784,25 +24837,25 @@ DeviceType.Fan, method(object({
|
|
|
24784
24837
|
percentage: number().min(0).max(100)
|
|
24785
24838
|
}), _void(), {
|
|
24786
24839
|
kind: "mutation",
|
|
24787
|
-
auth: "
|
|
24840
|
+
auth: "protected"
|
|
24788
24841
|
}), method(object({
|
|
24789
24842
|
deviceId: number().int().nonnegative(),
|
|
24790
24843
|
preset: string().min(1)
|
|
24791
24844
|
}), _void(), {
|
|
24792
24845
|
kind: "mutation",
|
|
24793
|
-
auth: "
|
|
24846
|
+
auth: "protected"
|
|
24794
24847
|
}), method(object({
|
|
24795
24848
|
deviceId: number().int().nonnegative(),
|
|
24796
24849
|
direction: FanDirectionSchema
|
|
24797
24850
|
}), _void(), {
|
|
24798
24851
|
kind: "mutation",
|
|
24799
|
-
auth: "
|
|
24852
|
+
auth: "protected"
|
|
24800
24853
|
}), method(object({
|
|
24801
24854
|
deviceId: number().int().nonnegative(),
|
|
24802
24855
|
oscillating: boolean()
|
|
24803
24856
|
}), _void(), {
|
|
24804
24857
|
kind: "mutation",
|
|
24805
|
-
auth: "
|
|
24858
|
+
auth: "protected"
|
|
24806
24859
|
});
|
|
24807
24860
|
/**
|
|
24808
24861
|
* Per-device feature/identity probe slice. Holds the runtime-resolved
|
|
@@ -24905,19 +24958,19 @@ DeviceType.Humidifier, method(object({
|
|
|
24905
24958
|
on: boolean()
|
|
24906
24959
|
}), _void(), {
|
|
24907
24960
|
kind: "mutation",
|
|
24908
|
-
auth: "
|
|
24961
|
+
auth: "protected"
|
|
24909
24962
|
}), method(object({
|
|
24910
24963
|
deviceId: number().int().nonnegative(),
|
|
24911
24964
|
humidity: number().min(0).max(100)
|
|
24912
24965
|
}), _void(), {
|
|
24913
24966
|
kind: "mutation",
|
|
24914
|
-
auth: "
|
|
24967
|
+
auth: "protected"
|
|
24915
24968
|
}), method(object({
|
|
24916
24969
|
deviceId: number().int().nonnegative(),
|
|
24917
24970
|
mode: string().min(1)
|
|
24918
24971
|
}), _void(), {
|
|
24919
24972
|
kind: "mutation",
|
|
24920
|
-
auth: "
|
|
24973
|
+
auth: "protected"
|
|
24921
24974
|
});
|
|
24922
24975
|
object({
|
|
24923
24976
|
/** Current relative humidity, 0..100. */
|
|
@@ -25379,13 +25432,13 @@ object({
|
|
|
25379
25432
|
});
|
|
25380
25433
|
DeviceType.LawnMower, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25381
25434
|
kind: "mutation",
|
|
25382
|
-
auth: "
|
|
25435
|
+
auth: "protected"
|
|
25383
25436
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25384
25437
|
kind: "mutation",
|
|
25385
|
-
auth: "
|
|
25438
|
+
auth: "protected"
|
|
25386
25439
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25387
25440
|
kind: "mutation",
|
|
25388
|
-
auth: "
|
|
25441
|
+
auth: "protected"
|
|
25389
25442
|
});
|
|
25390
25443
|
/**
|
|
25391
25444
|
* local-network — hub-only singleton.
|
|
@@ -25645,16 +25698,16 @@ DeviceType.Lock, method(object({
|
|
|
25645
25698
|
code: string().min(1).optional()
|
|
25646
25699
|
}), _void(), {
|
|
25647
25700
|
kind: "mutation",
|
|
25648
|
-
auth: "
|
|
25701
|
+
auth: "protected"
|
|
25649
25702
|
}), method(object({
|
|
25650
25703
|
deviceId: number().int().nonnegative(),
|
|
25651
25704
|
code: string().min(1).optional()
|
|
25652
25705
|
}), _void(), {
|
|
25653
25706
|
kind: "mutation",
|
|
25654
|
-
auth: "
|
|
25707
|
+
auth: "protected"
|
|
25655
25708
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25656
25709
|
kind: "mutation",
|
|
25657
|
-
auth: "
|
|
25710
|
+
auth: "protected"
|
|
25658
25711
|
});
|
|
25659
25712
|
/**
|
|
25660
25713
|
* Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
|
|
@@ -25728,55 +25781,55 @@ object({
|
|
|
25728
25781
|
});
|
|
25729
25782
|
DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25730
25783
|
kind: "mutation",
|
|
25731
|
-
auth: "
|
|
25784
|
+
auth: "protected"
|
|
25732
25785
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25733
25786
|
kind: "mutation",
|
|
25734
|
-
auth: "
|
|
25787
|
+
auth: "protected"
|
|
25735
25788
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25736
25789
|
kind: "mutation",
|
|
25737
|
-
auth: "
|
|
25790
|
+
auth: "protected"
|
|
25738
25791
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25739
25792
|
kind: "mutation",
|
|
25740
|
-
auth: "
|
|
25793
|
+
auth: "protected"
|
|
25741
25794
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25742
25795
|
kind: "mutation",
|
|
25743
|
-
auth: "
|
|
25796
|
+
auth: "protected"
|
|
25744
25797
|
}), method(object({
|
|
25745
25798
|
deviceId: number().int().nonnegative(),
|
|
25746
25799
|
positionMs: number().int().nonnegative()
|
|
25747
25800
|
}), _void(), {
|
|
25748
25801
|
kind: "mutation",
|
|
25749
|
-
auth: "
|
|
25802
|
+
auth: "protected"
|
|
25750
25803
|
}), method(object({
|
|
25751
25804
|
deviceId: number().int().nonnegative(),
|
|
25752
25805
|
volumeLevel: number().min(0).max(100)
|
|
25753
25806
|
}), _void(), {
|
|
25754
25807
|
kind: "mutation",
|
|
25755
|
-
auth: "
|
|
25808
|
+
auth: "protected"
|
|
25756
25809
|
}), method(object({
|
|
25757
25810
|
deviceId: number().int().nonnegative(),
|
|
25758
25811
|
muted: boolean()
|
|
25759
25812
|
}), _void(), {
|
|
25760
25813
|
kind: "mutation",
|
|
25761
|
-
auth: "
|
|
25814
|
+
auth: "protected"
|
|
25762
25815
|
}), method(object({
|
|
25763
25816
|
deviceId: number().int().nonnegative(),
|
|
25764
25817
|
shuffle: boolean()
|
|
25765
25818
|
}), _void(), {
|
|
25766
25819
|
kind: "mutation",
|
|
25767
|
-
auth: "
|
|
25820
|
+
auth: "protected"
|
|
25768
25821
|
}), method(object({
|
|
25769
25822
|
deviceId: number().int().nonnegative(),
|
|
25770
25823
|
repeat: MediaPlayerRepeatSchema
|
|
25771
25824
|
}), _void(), {
|
|
25772
25825
|
kind: "mutation",
|
|
25773
|
-
auth: "
|
|
25826
|
+
auth: "protected"
|
|
25774
25827
|
}), method(object({
|
|
25775
25828
|
deviceId: number().int().nonnegative(),
|
|
25776
25829
|
source: string().min(1)
|
|
25777
25830
|
}), _void(), {
|
|
25778
25831
|
kind: "mutation",
|
|
25779
|
-
auth: "
|
|
25832
|
+
auth: "protected"
|
|
25780
25833
|
}), method(object({
|
|
25781
25834
|
deviceId: number().int().nonnegative(),
|
|
25782
25835
|
/** Media identifier / URL. */
|
|
@@ -25786,7 +25839,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }
|
|
|
25786
25839
|
mediaType: string().min(1)
|
|
25787
25840
|
}), _void(), {
|
|
25788
25841
|
kind: "mutation",
|
|
25789
|
-
auth: "
|
|
25842
|
+
auth: "protected"
|
|
25790
25843
|
});
|
|
25791
25844
|
/**
|
|
25792
25845
|
* mesh-network — collection cap for mesh-VPN providers.
|
|
@@ -26952,49 +27005,49 @@ DeviceType.PetFeeder, method(object({
|
|
|
26952
27005
|
hopper2: gramsPortion.optional()
|
|
26953
27006
|
}), _void(), {
|
|
26954
27007
|
kind: "mutation",
|
|
26955
|
-
auth: "
|
|
27008
|
+
auth: "protected"
|
|
26956
27009
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26957
27010
|
kind: "mutation",
|
|
26958
|
-
auth: "
|
|
27011
|
+
auth: "protected"
|
|
26959
27012
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26960
27013
|
kind: "mutation",
|
|
26961
|
-
auth: "
|
|
27014
|
+
auth: "protected"
|
|
26962
27015
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26963
27016
|
kind: "mutation",
|
|
26964
|
-
auth: "
|
|
27017
|
+
auth: "protected"
|
|
26965
27018
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26966
27019
|
kind: "mutation",
|
|
26967
|
-
auth: "
|
|
27020
|
+
auth: "protected"
|
|
26968
27021
|
}), method(object({
|
|
26969
27022
|
deviceId: number().int().nonnegative(),
|
|
26970
27023
|
soundId: number().int().nonnegative()
|
|
26971
27024
|
}), _void(), {
|
|
26972
27025
|
kind: "mutation",
|
|
26973
|
-
auth: "
|
|
27026
|
+
auth: "protected"
|
|
26974
27027
|
}), method(object({
|
|
26975
27028
|
deviceId: number().int().nonnegative(),
|
|
26976
27029
|
on: boolean()
|
|
26977
27030
|
}), _void(), {
|
|
26978
27031
|
kind: "mutation",
|
|
26979
|
-
auth: "
|
|
27032
|
+
auth: "protected"
|
|
26980
27033
|
}), method(object({
|
|
26981
27034
|
deviceId: number().int().nonnegative(),
|
|
26982
27035
|
on: boolean()
|
|
26983
27036
|
}), _void(), {
|
|
26984
27037
|
kind: "mutation",
|
|
26985
|
-
auth: "
|
|
27038
|
+
auth: "protected"
|
|
26986
27039
|
}), method(object({
|
|
26987
27040
|
deviceId: number().int().nonnegative(),
|
|
26988
27041
|
on: boolean()
|
|
26989
27042
|
}), _void(), {
|
|
26990
27043
|
kind: "mutation",
|
|
26991
|
-
auth: "
|
|
27044
|
+
auth: "protected"
|
|
26992
27045
|
}), method(object({
|
|
26993
27046
|
deviceId: number().int().nonnegative(),
|
|
26994
27047
|
level: number().int().nonnegative()
|
|
26995
27048
|
}), _void(), {
|
|
26996
27049
|
kind: "mutation",
|
|
26997
|
-
auth: "
|
|
27050
|
+
auth: "protected"
|
|
26998
27051
|
});
|
|
26999
27052
|
var VehicleSchema = object({
|
|
27000
27053
|
id: string(),
|
|
@@ -28788,7 +28841,7 @@ DeviceType.Switch, DeviceType.Siren, DeviceType.Light, method(object({
|
|
|
28788
28841
|
on: boolean()
|
|
28789
28842
|
}), _void(), {
|
|
28790
28843
|
kind: "mutation",
|
|
28791
|
-
auth: "
|
|
28844
|
+
auth: "protected"
|
|
28792
28845
|
}), object({
|
|
28793
28846
|
deviceId: number(),
|
|
28794
28847
|
on: boolean(),
|
|
@@ -29645,25 +29698,25 @@ object({
|
|
|
29645
29698
|
});
|
|
29646
29699
|
DeviceType.Vacuum, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29647
29700
|
kind: "mutation",
|
|
29648
|
-
auth: "
|
|
29701
|
+
auth: "protected"
|
|
29649
29702
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29650
29703
|
kind: "mutation",
|
|
29651
|
-
auth: "
|
|
29704
|
+
auth: "protected"
|
|
29652
29705
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29653
29706
|
kind: "mutation",
|
|
29654
|
-
auth: "
|
|
29707
|
+
auth: "protected"
|
|
29655
29708
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29656
29709
|
kind: "mutation",
|
|
29657
|
-
auth: "
|
|
29710
|
+
auth: "protected"
|
|
29658
29711
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29659
29712
|
kind: "mutation",
|
|
29660
|
-
auth: "
|
|
29713
|
+
auth: "protected"
|
|
29661
29714
|
}), method(object({
|
|
29662
29715
|
deviceId: number().int().nonnegative(),
|
|
29663
29716
|
speed: string().min(1)
|
|
29664
29717
|
}), _void(), {
|
|
29665
29718
|
kind: "mutation",
|
|
29666
|
-
auth: "
|
|
29719
|
+
auth: "protected"
|
|
29667
29720
|
});
|
|
29668
29721
|
object({
|
|
29669
29722
|
/** Lifecycle state of the valve. */
|
|
@@ -29682,19 +29735,19 @@ object({
|
|
|
29682
29735
|
});
|
|
29683
29736
|
DeviceType.Valve, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29684
29737
|
kind: "mutation",
|
|
29685
|
-
auth: "
|
|
29738
|
+
auth: "protected"
|
|
29686
29739
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29687
29740
|
kind: "mutation",
|
|
29688
|
-
auth: "
|
|
29741
|
+
auth: "protected"
|
|
29689
29742
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29690
29743
|
kind: "mutation",
|
|
29691
|
-
auth: "
|
|
29744
|
+
auth: "protected"
|
|
29692
29745
|
}), method(object({
|
|
29693
29746
|
deviceId: number().int().nonnegative(),
|
|
29694
29747
|
position: number().min(0).max(100)
|
|
29695
29748
|
}), _void(), {
|
|
29696
29749
|
kind: "mutation",
|
|
29697
|
-
auth: "
|
|
29750
|
+
auth: "protected"
|
|
29698
29751
|
});
|
|
29699
29752
|
object({
|
|
29700
29753
|
detected: boolean(),
|
|
@@ -29728,19 +29781,19 @@ DeviceType.WaterHeater, method(object({
|
|
|
29728
29781
|
temp: number().finite()
|
|
29729
29782
|
}), _void(), {
|
|
29730
29783
|
kind: "mutation",
|
|
29731
|
-
auth: "
|
|
29784
|
+
auth: "protected"
|
|
29732
29785
|
}), method(object({
|
|
29733
29786
|
deviceId: number().int().nonnegative(),
|
|
29734
29787
|
mode: string().min(1)
|
|
29735
29788
|
}), _void(), {
|
|
29736
29789
|
kind: "mutation",
|
|
29737
|
-
auth: "
|
|
29790
|
+
auth: "protected"
|
|
29738
29791
|
}), method(object({
|
|
29739
29792
|
deviceId: number().int().nonnegative(),
|
|
29740
29793
|
on: boolean()
|
|
29741
29794
|
}), _void(), {
|
|
29742
29795
|
kind: "mutation",
|
|
29743
|
-
auth: "
|
|
29796
|
+
auth: "protected"
|
|
29744
29797
|
});
|
|
29745
29798
|
object({
|
|
29746
29799
|
/** Verbatim HA condition state (`sunny`, `cloudy`, `rainy`, …). Null
|
|
@@ -31832,6 +31885,12 @@ Object.freeze({
|
|
|
31832
31885
|
addonId: null,
|
|
31833
31886
|
access: "create"
|
|
31834
31887
|
},
|
|
31888
|
+
"faceGallery.auditIdentitySamples": {
|
|
31889
|
+
capName: "face-gallery",
|
|
31890
|
+
capScope: "system",
|
|
31891
|
+
addonId: null,
|
|
31892
|
+
access: "view"
|
|
31893
|
+
},
|
|
31835
31894
|
"faceGallery.createIdentity": {
|
|
31836
31895
|
capName: "face-gallery",
|
|
31837
31896
|
capScope: "system",
|
|
@@ -16073,16 +16073,16 @@ DeviceType.AlarmPanel, method(object({
|
|
|
16073
16073
|
code: string().min(1).optional()
|
|
16074
16074
|
}), _void(), {
|
|
16075
16075
|
kind: "mutation",
|
|
16076
|
-
auth: "
|
|
16076
|
+
auth: "protected"
|
|
16077
16077
|
}), method(object({
|
|
16078
16078
|
deviceId: number().int().nonnegative(),
|
|
16079
16079
|
code: string().min(1).optional()
|
|
16080
16080
|
}), _void(), {
|
|
16081
16081
|
kind: "mutation",
|
|
16082
|
-
auth: "
|
|
16082
|
+
auth: "protected"
|
|
16083
16083
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
16084
16084
|
kind: "mutation",
|
|
16085
|
-
auth: "
|
|
16085
|
+
auth: "protected"
|
|
16086
16086
|
});
|
|
16087
16087
|
/**
|
|
16088
16088
|
* Shared geometry vocabulary for on-frame shape caps — privacy-mask,
|
|
@@ -23765,7 +23765,7 @@ DeviceType.Light, method(object({
|
|
|
23765
23765
|
percentage: number().min(0).max(100)
|
|
23766
23766
|
}), _void(), {
|
|
23767
23767
|
kind: "mutation",
|
|
23768
|
-
auth: "
|
|
23768
|
+
auth: "protected"
|
|
23769
23769
|
}), object({
|
|
23770
23770
|
deviceId: number(),
|
|
23771
23771
|
percentage: number().min(0).max(100),
|
|
@@ -23773,7 +23773,7 @@ DeviceType.Light, method(object({
|
|
|
23773
23773
|
});
|
|
23774
23774
|
DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
23775
23775
|
kind: "mutation",
|
|
23776
|
-
auth: "
|
|
23776
|
+
auth: "protected"
|
|
23777
23777
|
});
|
|
23778
23778
|
/**
|
|
23779
23779
|
* camera-credentials — device-scoped cap exposing the camera's network
|
|
@@ -23932,50 +23932,50 @@ DeviceType.Thermostat, DeviceType.Climate, method(object({
|
|
|
23932
23932
|
mode: HvacModeSchema
|
|
23933
23933
|
}), _void(), {
|
|
23934
23934
|
kind: "mutation",
|
|
23935
|
-
auth: "
|
|
23935
|
+
auth: "protected"
|
|
23936
23936
|
}), method(object({
|
|
23937
23937
|
deviceId: number().int().nonnegative(),
|
|
23938
23938
|
fanMode: string().min(1)
|
|
23939
23939
|
}), _void(), {
|
|
23940
23940
|
kind: "mutation",
|
|
23941
|
-
auth: "
|
|
23941
|
+
auth: "protected"
|
|
23942
23942
|
}), method(object({
|
|
23943
23943
|
deviceId: number().int().nonnegative(),
|
|
23944
23944
|
preset: string().min(1)
|
|
23945
23945
|
}), _void(), {
|
|
23946
23946
|
kind: "mutation",
|
|
23947
|
-
auth: "
|
|
23947
|
+
auth: "protected"
|
|
23948
23948
|
}), method(object({
|
|
23949
23949
|
deviceId: number().int().nonnegative(),
|
|
23950
23950
|
target: number()
|
|
23951
23951
|
}), _void(), {
|
|
23952
23952
|
kind: "mutation",
|
|
23953
|
-
auth: "
|
|
23953
|
+
auth: "protected"
|
|
23954
23954
|
}), method(object({
|
|
23955
23955
|
deviceId: number().int().nonnegative(),
|
|
23956
23956
|
targetLow: number(),
|
|
23957
23957
|
targetHigh: number()
|
|
23958
23958
|
}), _void(), {
|
|
23959
23959
|
kind: "mutation",
|
|
23960
|
-
auth: "
|
|
23960
|
+
auth: "protected"
|
|
23961
23961
|
}), method(object({
|
|
23962
23962
|
deviceId: number().int().nonnegative(),
|
|
23963
23963
|
targetHumidity: number().min(0).max(100)
|
|
23964
23964
|
}), _void(), {
|
|
23965
23965
|
kind: "mutation",
|
|
23966
|
-
auth: "
|
|
23966
|
+
auth: "protected"
|
|
23967
23967
|
}), method(object({
|
|
23968
23968
|
deviceId: number().int().nonnegative(),
|
|
23969
23969
|
on: boolean()
|
|
23970
23970
|
}), _void(), {
|
|
23971
23971
|
kind: "mutation",
|
|
23972
|
-
auth: "
|
|
23972
|
+
auth: "protected"
|
|
23973
23973
|
}), method(object({
|
|
23974
23974
|
deviceId: number().int().nonnegative(),
|
|
23975
23975
|
on: boolean()
|
|
23976
23976
|
}), _void(), {
|
|
23977
23977
|
kind: "mutation",
|
|
23978
|
-
auth: "
|
|
23978
|
+
auth: "protected"
|
|
23979
23979
|
});
|
|
23980
23980
|
/**
|
|
23981
23981
|
* Color-light cap. Coexists with `switch` (on/off) and `brightness`
|
|
@@ -24050,7 +24050,7 @@ DeviceType.Light, method(object({
|
|
|
24050
24050
|
color: ColorInputSchema
|
|
24051
24051
|
}), _void(), {
|
|
24052
24052
|
kind: "mutation",
|
|
24053
|
-
auth: "
|
|
24053
|
+
auth: "protected"
|
|
24054
24054
|
}), object({
|
|
24055
24055
|
deviceId: number(),
|
|
24056
24056
|
mode: _enum([
|
|
@@ -24199,7 +24199,7 @@ DeviceType.Control, method(object({
|
|
|
24199
24199
|
control: ControlSetValueInputSchema
|
|
24200
24200
|
}), _void(), {
|
|
24201
24201
|
kind: "mutation",
|
|
24202
|
-
auth: "
|
|
24202
|
+
auth: "protected"
|
|
24203
24203
|
});
|
|
24204
24204
|
var CoverStatusSchema = object({
|
|
24205
24205
|
/** Lifecycle state of the cover. */
|
|
@@ -24220,25 +24220,25 @@ var CoverStatusSchema = object({
|
|
|
24220
24220
|
});
|
|
24221
24221
|
DeviceType.Cover, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24222
24222
|
kind: "mutation",
|
|
24223
|
-
auth: "
|
|
24223
|
+
auth: "protected"
|
|
24224
24224
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24225
24225
|
kind: "mutation",
|
|
24226
|
-
auth: "
|
|
24226
|
+
auth: "protected"
|
|
24227
24227
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24228
24228
|
kind: "mutation",
|
|
24229
|
-
auth: "
|
|
24229
|
+
auth: "protected"
|
|
24230
24230
|
}), method(object({
|
|
24231
24231
|
deviceId: number().int().nonnegative(),
|
|
24232
24232
|
position: number().min(0).max(100)
|
|
24233
24233
|
}), _void(), {
|
|
24234
24234
|
kind: "mutation",
|
|
24235
|
-
auth: "
|
|
24235
|
+
auth: "protected"
|
|
24236
24236
|
}), method(object({
|
|
24237
24237
|
deviceId: number().int().nonnegative(),
|
|
24238
24238
|
tiltPosition: number().min(0).max(100)
|
|
24239
24239
|
}), _void(), {
|
|
24240
24240
|
kind: "mutation",
|
|
24241
|
-
auth: "
|
|
24241
|
+
auth: "protected"
|
|
24242
24242
|
});
|
|
24243
24243
|
/**
|
|
24244
24244
|
* Vendor-neutral day/night (IR-cut) control — the per-camera config cap
|
|
@@ -24443,6 +24443,59 @@ var IdentitySampleInfoSchema = object({
|
|
|
24443
24443
|
deviceId: number().int().optional(),
|
|
24444
24444
|
base64: string().optional()
|
|
24445
24445
|
});
|
|
24446
|
+
/**
|
|
24447
|
+
* One enrolled sample, judged against the gallery it lives in.
|
|
24448
|
+
*
|
|
24449
|
+
* The gallery is the one input to recognition nobody re-reads: a sample
|
|
24450
|
+
* enrolled from the wrong face keeps voting forever, and because the matches it
|
|
24451
|
+
* pulls then look confident, nobody goes back. The 2026-09-08 audit found
|
|
24452
|
+
* exactly one such pair on this cluster — a sample scoring 0.61 against three
|
|
24453
|
+
* samples of ANOTHER person, enrolled from the same camera in the same minute,
|
|
24454
|
+
* where every other cross-identity pair sits under 0.50.
|
|
24455
|
+
*/
|
|
24456
|
+
var IdentitySampleAuditRowSchema = object({
|
|
24457
|
+
sampleId: string(),
|
|
24458
|
+
enrolledAt: number().int(),
|
|
24459
|
+
deviceId: number().int().optional(),
|
|
24460
|
+
source: _enum(["detected", "photo"]),
|
|
24461
|
+
/** The enrolled crop's media key, so the panel can show the evidence. */
|
|
24462
|
+
mediaKey: string().optional(),
|
|
24463
|
+
/**
|
|
24464
|
+
* False = the sample is stamped with a DIFFERENT face model, and a cosine
|
|
24465
|
+
* across feature spaces is a well-formed float with no meaning. Every number
|
|
24466
|
+
* below then says nothing — it must read as "cannot say", never as an
|
|
24467
|
+
* accusation and never as a clean bill: this list ends in a Remove button.
|
|
24468
|
+
*/
|
|
24469
|
+
comparable: boolean(),
|
|
24470
|
+
/** Mean cosine against this person's other samples. Null when there are none
|
|
24471
|
+
* to compare with — never 0, which would read as "opposite". */
|
|
24472
|
+
selfMean: number().nullable(),
|
|
24473
|
+
/** The other person this sample looks most like, when it looks like one.
|
|
24474
|
+
* This is the half that convicts: not looking like yourself can be a hard
|
|
24475
|
+
* angle; looking like someone the gallery can NAME is a mis-enrolment. */
|
|
24476
|
+
bestForeign: object({
|
|
24477
|
+
identityId: string(),
|
|
24478
|
+
name: string(),
|
|
24479
|
+
score: number()
|
|
24480
|
+
}).optional(),
|
|
24481
|
+
/** 0 = nothing to say. Higher = look at this one sooner. */
|
|
24482
|
+
suspicion: number()
|
|
24483
|
+
});
|
|
24484
|
+
var IdentitySampleAuditSchema = object({
|
|
24485
|
+
identityId: string(),
|
|
24486
|
+
name: string(),
|
|
24487
|
+
/** The cluster face model every comparison was made in. */
|
|
24488
|
+
modelId: string(),
|
|
24489
|
+
totalSamples: number().int(),
|
|
24490
|
+
comparableSamples: number().int(),
|
|
24491
|
+
flagged: number().int(),
|
|
24492
|
+
/** The bar `flagged` counts against, so the panel states the RULE and not
|
|
24493
|
+
* only its current result. */
|
|
24494
|
+
flagThreshold: number(),
|
|
24495
|
+
/** Worst first. A row with nothing to say still appears, at the bottom: the
|
|
24496
|
+
* operator asked to see the gallery, not only its accusations. */
|
|
24497
|
+
rows: array(IdentitySampleAuditRowSchema).readonly()
|
|
24498
|
+
});
|
|
24446
24499
|
var FaceInfoSchema = object({
|
|
24447
24500
|
faceId: string(),
|
|
24448
24501
|
deviceId: number().int(),
|
|
@@ -24594,7 +24647,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
|
|
|
24594
24647
|
}), method(object({ id: string() }), _void(), {
|
|
24595
24648
|
kind: "mutation",
|
|
24596
24649
|
auth: "admin"
|
|
24597
|
-
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
|
|
24650
|
+
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
|
|
24598
24651
|
identityId: string(),
|
|
24599
24652
|
sampleId: string()
|
|
24600
24653
|
}), _void(), {
|
|
@@ -24780,25 +24833,25 @@ DeviceType.Fan, method(object({
|
|
|
24780
24833
|
percentage: number().min(0).max(100)
|
|
24781
24834
|
}), _void(), {
|
|
24782
24835
|
kind: "mutation",
|
|
24783
|
-
auth: "
|
|
24836
|
+
auth: "protected"
|
|
24784
24837
|
}), method(object({
|
|
24785
24838
|
deviceId: number().int().nonnegative(),
|
|
24786
24839
|
preset: string().min(1)
|
|
24787
24840
|
}), _void(), {
|
|
24788
24841
|
kind: "mutation",
|
|
24789
|
-
auth: "
|
|
24842
|
+
auth: "protected"
|
|
24790
24843
|
}), method(object({
|
|
24791
24844
|
deviceId: number().int().nonnegative(),
|
|
24792
24845
|
direction: FanDirectionSchema
|
|
24793
24846
|
}), _void(), {
|
|
24794
24847
|
kind: "mutation",
|
|
24795
|
-
auth: "
|
|
24848
|
+
auth: "protected"
|
|
24796
24849
|
}), method(object({
|
|
24797
24850
|
deviceId: number().int().nonnegative(),
|
|
24798
24851
|
oscillating: boolean()
|
|
24799
24852
|
}), _void(), {
|
|
24800
24853
|
kind: "mutation",
|
|
24801
|
-
auth: "
|
|
24854
|
+
auth: "protected"
|
|
24802
24855
|
});
|
|
24803
24856
|
/**
|
|
24804
24857
|
* Per-device feature/identity probe slice. Holds the runtime-resolved
|
|
@@ -24901,19 +24954,19 @@ DeviceType.Humidifier, method(object({
|
|
|
24901
24954
|
on: boolean()
|
|
24902
24955
|
}), _void(), {
|
|
24903
24956
|
kind: "mutation",
|
|
24904
|
-
auth: "
|
|
24957
|
+
auth: "protected"
|
|
24905
24958
|
}), method(object({
|
|
24906
24959
|
deviceId: number().int().nonnegative(),
|
|
24907
24960
|
humidity: number().min(0).max(100)
|
|
24908
24961
|
}), _void(), {
|
|
24909
24962
|
kind: "mutation",
|
|
24910
|
-
auth: "
|
|
24963
|
+
auth: "protected"
|
|
24911
24964
|
}), method(object({
|
|
24912
24965
|
deviceId: number().int().nonnegative(),
|
|
24913
24966
|
mode: string().min(1)
|
|
24914
24967
|
}), _void(), {
|
|
24915
24968
|
kind: "mutation",
|
|
24916
|
-
auth: "
|
|
24969
|
+
auth: "protected"
|
|
24917
24970
|
});
|
|
24918
24971
|
object({
|
|
24919
24972
|
/** Current relative humidity, 0..100. */
|
|
@@ -25375,13 +25428,13 @@ object({
|
|
|
25375
25428
|
});
|
|
25376
25429
|
DeviceType.LawnMower, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25377
25430
|
kind: "mutation",
|
|
25378
|
-
auth: "
|
|
25431
|
+
auth: "protected"
|
|
25379
25432
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25380
25433
|
kind: "mutation",
|
|
25381
|
-
auth: "
|
|
25434
|
+
auth: "protected"
|
|
25382
25435
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25383
25436
|
kind: "mutation",
|
|
25384
|
-
auth: "
|
|
25437
|
+
auth: "protected"
|
|
25385
25438
|
});
|
|
25386
25439
|
/**
|
|
25387
25440
|
* local-network — hub-only singleton.
|
|
@@ -25641,16 +25694,16 @@ DeviceType.Lock, method(object({
|
|
|
25641
25694
|
code: string().min(1).optional()
|
|
25642
25695
|
}), _void(), {
|
|
25643
25696
|
kind: "mutation",
|
|
25644
|
-
auth: "
|
|
25697
|
+
auth: "protected"
|
|
25645
25698
|
}), method(object({
|
|
25646
25699
|
deviceId: number().int().nonnegative(),
|
|
25647
25700
|
code: string().min(1).optional()
|
|
25648
25701
|
}), _void(), {
|
|
25649
25702
|
kind: "mutation",
|
|
25650
|
-
auth: "
|
|
25703
|
+
auth: "protected"
|
|
25651
25704
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25652
25705
|
kind: "mutation",
|
|
25653
|
-
auth: "
|
|
25706
|
+
auth: "protected"
|
|
25654
25707
|
});
|
|
25655
25708
|
/**
|
|
25656
25709
|
* Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
|
|
@@ -25724,55 +25777,55 @@ object({
|
|
|
25724
25777
|
});
|
|
25725
25778
|
DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25726
25779
|
kind: "mutation",
|
|
25727
|
-
auth: "
|
|
25780
|
+
auth: "protected"
|
|
25728
25781
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25729
25782
|
kind: "mutation",
|
|
25730
|
-
auth: "
|
|
25783
|
+
auth: "protected"
|
|
25731
25784
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25732
25785
|
kind: "mutation",
|
|
25733
|
-
auth: "
|
|
25786
|
+
auth: "protected"
|
|
25734
25787
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25735
25788
|
kind: "mutation",
|
|
25736
|
-
auth: "
|
|
25789
|
+
auth: "protected"
|
|
25737
25790
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25738
25791
|
kind: "mutation",
|
|
25739
|
-
auth: "
|
|
25792
|
+
auth: "protected"
|
|
25740
25793
|
}), method(object({
|
|
25741
25794
|
deviceId: number().int().nonnegative(),
|
|
25742
25795
|
positionMs: number().int().nonnegative()
|
|
25743
25796
|
}), _void(), {
|
|
25744
25797
|
kind: "mutation",
|
|
25745
|
-
auth: "
|
|
25798
|
+
auth: "protected"
|
|
25746
25799
|
}), method(object({
|
|
25747
25800
|
deviceId: number().int().nonnegative(),
|
|
25748
25801
|
volumeLevel: number().min(0).max(100)
|
|
25749
25802
|
}), _void(), {
|
|
25750
25803
|
kind: "mutation",
|
|
25751
|
-
auth: "
|
|
25804
|
+
auth: "protected"
|
|
25752
25805
|
}), method(object({
|
|
25753
25806
|
deviceId: number().int().nonnegative(),
|
|
25754
25807
|
muted: boolean()
|
|
25755
25808
|
}), _void(), {
|
|
25756
25809
|
kind: "mutation",
|
|
25757
|
-
auth: "
|
|
25810
|
+
auth: "protected"
|
|
25758
25811
|
}), method(object({
|
|
25759
25812
|
deviceId: number().int().nonnegative(),
|
|
25760
25813
|
shuffle: boolean()
|
|
25761
25814
|
}), _void(), {
|
|
25762
25815
|
kind: "mutation",
|
|
25763
|
-
auth: "
|
|
25816
|
+
auth: "protected"
|
|
25764
25817
|
}), method(object({
|
|
25765
25818
|
deviceId: number().int().nonnegative(),
|
|
25766
25819
|
repeat: MediaPlayerRepeatSchema
|
|
25767
25820
|
}), _void(), {
|
|
25768
25821
|
kind: "mutation",
|
|
25769
|
-
auth: "
|
|
25822
|
+
auth: "protected"
|
|
25770
25823
|
}), method(object({
|
|
25771
25824
|
deviceId: number().int().nonnegative(),
|
|
25772
25825
|
source: string().min(1)
|
|
25773
25826
|
}), _void(), {
|
|
25774
25827
|
kind: "mutation",
|
|
25775
|
-
auth: "
|
|
25828
|
+
auth: "protected"
|
|
25776
25829
|
}), method(object({
|
|
25777
25830
|
deviceId: number().int().nonnegative(),
|
|
25778
25831
|
/** Media identifier / URL. */
|
|
@@ -25782,7 +25835,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }
|
|
|
25782
25835
|
mediaType: string().min(1)
|
|
25783
25836
|
}), _void(), {
|
|
25784
25837
|
kind: "mutation",
|
|
25785
|
-
auth: "
|
|
25838
|
+
auth: "protected"
|
|
25786
25839
|
});
|
|
25787
25840
|
/**
|
|
25788
25841
|
* mesh-network — collection cap for mesh-VPN providers.
|
|
@@ -26948,49 +27001,49 @@ DeviceType.PetFeeder, method(object({
|
|
|
26948
27001
|
hopper2: gramsPortion.optional()
|
|
26949
27002
|
}), _void(), {
|
|
26950
27003
|
kind: "mutation",
|
|
26951
|
-
auth: "
|
|
27004
|
+
auth: "protected"
|
|
26952
27005
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26953
27006
|
kind: "mutation",
|
|
26954
|
-
auth: "
|
|
27007
|
+
auth: "protected"
|
|
26955
27008
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26956
27009
|
kind: "mutation",
|
|
26957
|
-
auth: "
|
|
27010
|
+
auth: "protected"
|
|
26958
27011
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26959
27012
|
kind: "mutation",
|
|
26960
|
-
auth: "
|
|
27013
|
+
auth: "protected"
|
|
26961
27014
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26962
27015
|
kind: "mutation",
|
|
26963
|
-
auth: "
|
|
27016
|
+
auth: "protected"
|
|
26964
27017
|
}), method(object({
|
|
26965
27018
|
deviceId: number().int().nonnegative(),
|
|
26966
27019
|
soundId: number().int().nonnegative()
|
|
26967
27020
|
}), _void(), {
|
|
26968
27021
|
kind: "mutation",
|
|
26969
|
-
auth: "
|
|
27022
|
+
auth: "protected"
|
|
26970
27023
|
}), method(object({
|
|
26971
27024
|
deviceId: number().int().nonnegative(),
|
|
26972
27025
|
on: boolean()
|
|
26973
27026
|
}), _void(), {
|
|
26974
27027
|
kind: "mutation",
|
|
26975
|
-
auth: "
|
|
27028
|
+
auth: "protected"
|
|
26976
27029
|
}), method(object({
|
|
26977
27030
|
deviceId: number().int().nonnegative(),
|
|
26978
27031
|
on: boolean()
|
|
26979
27032
|
}), _void(), {
|
|
26980
27033
|
kind: "mutation",
|
|
26981
|
-
auth: "
|
|
27034
|
+
auth: "protected"
|
|
26982
27035
|
}), method(object({
|
|
26983
27036
|
deviceId: number().int().nonnegative(),
|
|
26984
27037
|
on: boolean()
|
|
26985
27038
|
}), _void(), {
|
|
26986
27039
|
kind: "mutation",
|
|
26987
|
-
auth: "
|
|
27040
|
+
auth: "protected"
|
|
26988
27041
|
}), method(object({
|
|
26989
27042
|
deviceId: number().int().nonnegative(),
|
|
26990
27043
|
level: number().int().nonnegative()
|
|
26991
27044
|
}), _void(), {
|
|
26992
27045
|
kind: "mutation",
|
|
26993
|
-
auth: "
|
|
27046
|
+
auth: "protected"
|
|
26994
27047
|
});
|
|
26995
27048
|
var VehicleSchema = object({
|
|
26996
27049
|
id: string(),
|
|
@@ -28784,7 +28837,7 @@ DeviceType.Switch, DeviceType.Siren, DeviceType.Light, method(object({
|
|
|
28784
28837
|
on: boolean()
|
|
28785
28838
|
}), _void(), {
|
|
28786
28839
|
kind: "mutation",
|
|
28787
|
-
auth: "
|
|
28840
|
+
auth: "protected"
|
|
28788
28841
|
}), object({
|
|
28789
28842
|
deviceId: number(),
|
|
28790
28843
|
on: boolean(),
|
|
@@ -29641,25 +29694,25 @@ object({
|
|
|
29641
29694
|
});
|
|
29642
29695
|
DeviceType.Vacuum, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29643
29696
|
kind: "mutation",
|
|
29644
|
-
auth: "
|
|
29697
|
+
auth: "protected"
|
|
29645
29698
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29646
29699
|
kind: "mutation",
|
|
29647
|
-
auth: "
|
|
29700
|
+
auth: "protected"
|
|
29648
29701
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29649
29702
|
kind: "mutation",
|
|
29650
|
-
auth: "
|
|
29703
|
+
auth: "protected"
|
|
29651
29704
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29652
29705
|
kind: "mutation",
|
|
29653
|
-
auth: "
|
|
29706
|
+
auth: "protected"
|
|
29654
29707
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29655
29708
|
kind: "mutation",
|
|
29656
|
-
auth: "
|
|
29709
|
+
auth: "protected"
|
|
29657
29710
|
}), method(object({
|
|
29658
29711
|
deviceId: number().int().nonnegative(),
|
|
29659
29712
|
speed: string().min(1)
|
|
29660
29713
|
}), _void(), {
|
|
29661
29714
|
kind: "mutation",
|
|
29662
|
-
auth: "
|
|
29715
|
+
auth: "protected"
|
|
29663
29716
|
});
|
|
29664
29717
|
object({
|
|
29665
29718
|
/** Lifecycle state of the valve. */
|
|
@@ -29678,19 +29731,19 @@ object({
|
|
|
29678
29731
|
});
|
|
29679
29732
|
DeviceType.Valve, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29680
29733
|
kind: "mutation",
|
|
29681
|
-
auth: "
|
|
29734
|
+
auth: "protected"
|
|
29682
29735
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29683
29736
|
kind: "mutation",
|
|
29684
|
-
auth: "
|
|
29737
|
+
auth: "protected"
|
|
29685
29738
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29686
29739
|
kind: "mutation",
|
|
29687
|
-
auth: "
|
|
29740
|
+
auth: "protected"
|
|
29688
29741
|
}), method(object({
|
|
29689
29742
|
deviceId: number().int().nonnegative(),
|
|
29690
29743
|
position: number().min(0).max(100)
|
|
29691
29744
|
}), _void(), {
|
|
29692
29745
|
kind: "mutation",
|
|
29693
|
-
auth: "
|
|
29746
|
+
auth: "protected"
|
|
29694
29747
|
});
|
|
29695
29748
|
object({
|
|
29696
29749
|
detected: boolean(),
|
|
@@ -29724,19 +29777,19 @@ DeviceType.WaterHeater, method(object({
|
|
|
29724
29777
|
temp: number().finite()
|
|
29725
29778
|
}), _void(), {
|
|
29726
29779
|
kind: "mutation",
|
|
29727
|
-
auth: "
|
|
29780
|
+
auth: "protected"
|
|
29728
29781
|
}), method(object({
|
|
29729
29782
|
deviceId: number().int().nonnegative(),
|
|
29730
29783
|
mode: string().min(1)
|
|
29731
29784
|
}), _void(), {
|
|
29732
29785
|
kind: "mutation",
|
|
29733
|
-
auth: "
|
|
29786
|
+
auth: "protected"
|
|
29734
29787
|
}), method(object({
|
|
29735
29788
|
deviceId: number().int().nonnegative(),
|
|
29736
29789
|
on: boolean()
|
|
29737
29790
|
}), _void(), {
|
|
29738
29791
|
kind: "mutation",
|
|
29739
|
-
auth: "
|
|
29792
|
+
auth: "protected"
|
|
29740
29793
|
});
|
|
29741
29794
|
object({
|
|
29742
29795
|
/** Verbatim HA condition state (`sunny`, `cloudy`, `rainy`, …). Null
|
|
@@ -31828,6 +31881,12 @@ Object.freeze({
|
|
|
31828
31881
|
addonId: null,
|
|
31829
31882
|
access: "create"
|
|
31830
31883
|
},
|
|
31884
|
+
"faceGallery.auditIdentitySamples": {
|
|
31885
|
+
capName: "face-gallery",
|
|
31886
|
+
capScope: "system",
|
|
31887
|
+
addonId: null,
|
|
31888
|
+
access: "view"
|
|
31889
|
+
},
|
|
31831
31890
|
"faceGallery.createIdentity": {
|
|
31832
31891
|
capName: "face-gallery",
|
|
31833
31892
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-export-google",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.50",
|
|
4
4
|
"description": "Google Home export — hub-side smart-home fulfillment (SYNC / QUERY / EXECUTE / DISCONNECT) for the non-camera fleet, served over the hub's own OAuth account link. No Google credential is stored, sent or required.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|