@camstack/addon-ai 0.4.87 → 0.4.89
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addon.js +129 -70
- package/dist/addon.mjs +129 -70
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -16108,16 +16108,16 @@ DeviceType.AlarmPanel, method(object({
|
|
|
16108
16108
|
code: string().min(1).optional()
|
|
16109
16109
|
}), _void(), {
|
|
16110
16110
|
kind: "mutation",
|
|
16111
|
-
auth: "
|
|
16111
|
+
auth: "protected"
|
|
16112
16112
|
}), method(object({
|
|
16113
16113
|
deviceId: number$1().int().nonnegative(),
|
|
16114
16114
|
code: string().min(1).optional()
|
|
16115
16115
|
}), _void(), {
|
|
16116
16116
|
kind: "mutation",
|
|
16117
|
-
auth: "
|
|
16117
|
+
auth: "protected"
|
|
16118
16118
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
16119
16119
|
kind: "mutation",
|
|
16120
|
-
auth: "
|
|
16120
|
+
auth: "protected"
|
|
16121
16121
|
});
|
|
16122
16122
|
/**
|
|
16123
16123
|
* Shared geometry vocabulary for on-frame shape caps — privacy-mask,
|
|
@@ -23772,7 +23772,7 @@ DeviceType.Light, method(object({
|
|
|
23772
23772
|
percentage: number$1().min(0).max(100)
|
|
23773
23773
|
}), _void(), {
|
|
23774
23774
|
kind: "mutation",
|
|
23775
|
-
auth: "
|
|
23775
|
+
auth: "protected"
|
|
23776
23776
|
}), object({
|
|
23777
23777
|
deviceId: number$1(),
|
|
23778
23778
|
percentage: number$1().min(0).max(100),
|
|
@@ -23780,7 +23780,7 @@ DeviceType.Light, method(object({
|
|
|
23780
23780
|
});
|
|
23781
23781
|
DeviceType.Button, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
23782
23782
|
kind: "mutation",
|
|
23783
|
-
auth: "
|
|
23783
|
+
auth: "protected"
|
|
23784
23784
|
});
|
|
23785
23785
|
/**
|
|
23786
23786
|
* camera-credentials — device-scoped cap exposing the camera's network
|
|
@@ -23939,50 +23939,50 @@ DeviceType.Thermostat, DeviceType.Climate, method(object({
|
|
|
23939
23939
|
mode: HvacModeSchema
|
|
23940
23940
|
}), _void(), {
|
|
23941
23941
|
kind: "mutation",
|
|
23942
|
-
auth: "
|
|
23942
|
+
auth: "protected"
|
|
23943
23943
|
}), method(object({
|
|
23944
23944
|
deviceId: number$1().int().nonnegative(),
|
|
23945
23945
|
fanMode: string().min(1)
|
|
23946
23946
|
}), _void(), {
|
|
23947
23947
|
kind: "mutation",
|
|
23948
|
-
auth: "
|
|
23948
|
+
auth: "protected"
|
|
23949
23949
|
}), method(object({
|
|
23950
23950
|
deviceId: number$1().int().nonnegative(),
|
|
23951
23951
|
preset: string().min(1)
|
|
23952
23952
|
}), _void(), {
|
|
23953
23953
|
kind: "mutation",
|
|
23954
|
-
auth: "
|
|
23954
|
+
auth: "protected"
|
|
23955
23955
|
}), method(object({
|
|
23956
23956
|
deviceId: number$1().int().nonnegative(),
|
|
23957
23957
|
target: number$1()
|
|
23958
23958
|
}), _void(), {
|
|
23959
23959
|
kind: "mutation",
|
|
23960
|
-
auth: "
|
|
23960
|
+
auth: "protected"
|
|
23961
23961
|
}), method(object({
|
|
23962
23962
|
deviceId: number$1().int().nonnegative(),
|
|
23963
23963
|
targetLow: number$1(),
|
|
23964
23964
|
targetHigh: number$1()
|
|
23965
23965
|
}), _void(), {
|
|
23966
23966
|
kind: "mutation",
|
|
23967
|
-
auth: "
|
|
23967
|
+
auth: "protected"
|
|
23968
23968
|
}), method(object({
|
|
23969
23969
|
deviceId: number$1().int().nonnegative(),
|
|
23970
23970
|
targetHumidity: number$1().min(0).max(100)
|
|
23971
23971
|
}), _void(), {
|
|
23972
23972
|
kind: "mutation",
|
|
23973
|
-
auth: "
|
|
23973
|
+
auth: "protected"
|
|
23974
23974
|
}), method(object({
|
|
23975
23975
|
deviceId: number$1().int().nonnegative(),
|
|
23976
23976
|
on: boolean()
|
|
23977
23977
|
}), _void(), {
|
|
23978
23978
|
kind: "mutation",
|
|
23979
|
-
auth: "
|
|
23979
|
+
auth: "protected"
|
|
23980
23980
|
}), method(object({
|
|
23981
23981
|
deviceId: number$1().int().nonnegative(),
|
|
23982
23982
|
on: boolean()
|
|
23983
23983
|
}), _void(), {
|
|
23984
23984
|
kind: "mutation",
|
|
23985
|
-
auth: "
|
|
23985
|
+
auth: "protected"
|
|
23986
23986
|
});
|
|
23987
23987
|
/**
|
|
23988
23988
|
* Color-light cap. Coexists with `switch` (on/off) and `brightness`
|
|
@@ -24057,7 +24057,7 @@ DeviceType.Light, method(object({
|
|
|
24057
24057
|
color: ColorInputSchema
|
|
24058
24058
|
}), _void(), {
|
|
24059
24059
|
kind: "mutation",
|
|
24060
|
-
auth: "
|
|
24060
|
+
auth: "protected"
|
|
24061
24061
|
}), object({
|
|
24062
24062
|
deviceId: number$1(),
|
|
24063
24063
|
mode: _enum([
|
|
@@ -24206,7 +24206,7 @@ DeviceType.Control, method(object({
|
|
|
24206
24206
|
control: ControlSetValueInputSchema
|
|
24207
24207
|
}), _void(), {
|
|
24208
24208
|
kind: "mutation",
|
|
24209
|
-
auth: "
|
|
24209
|
+
auth: "protected"
|
|
24210
24210
|
});
|
|
24211
24211
|
object({
|
|
24212
24212
|
/** Lifecycle state of the cover. */
|
|
@@ -24227,25 +24227,25 @@ object({
|
|
|
24227
24227
|
});
|
|
24228
24228
|
DeviceType.Cover, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
24229
24229
|
kind: "mutation",
|
|
24230
|
-
auth: "
|
|
24230
|
+
auth: "protected"
|
|
24231
24231
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
24232
24232
|
kind: "mutation",
|
|
24233
|
-
auth: "
|
|
24233
|
+
auth: "protected"
|
|
24234
24234
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
24235
24235
|
kind: "mutation",
|
|
24236
|
-
auth: "
|
|
24236
|
+
auth: "protected"
|
|
24237
24237
|
}), method(object({
|
|
24238
24238
|
deviceId: number$1().int().nonnegative(),
|
|
24239
24239
|
position: number$1().min(0).max(100)
|
|
24240
24240
|
}), _void(), {
|
|
24241
24241
|
kind: "mutation",
|
|
24242
|
-
auth: "
|
|
24242
|
+
auth: "protected"
|
|
24243
24243
|
}), method(object({
|
|
24244
24244
|
deviceId: number$1().int().nonnegative(),
|
|
24245
24245
|
tiltPosition: number$1().min(0).max(100)
|
|
24246
24246
|
}), _void(), {
|
|
24247
24247
|
kind: "mutation",
|
|
24248
|
-
auth: "
|
|
24248
|
+
auth: "protected"
|
|
24249
24249
|
});
|
|
24250
24250
|
/**
|
|
24251
24251
|
* Vendor-neutral day/night (IR-cut) control — the per-camera config cap
|
|
@@ -24450,6 +24450,59 @@ var IdentitySampleInfoSchema = object({
|
|
|
24450
24450
|
deviceId: number$1().int().optional(),
|
|
24451
24451
|
base64: string().optional()
|
|
24452
24452
|
});
|
|
24453
|
+
/**
|
|
24454
|
+
* One enrolled sample, judged against the gallery it lives in.
|
|
24455
|
+
*
|
|
24456
|
+
* The gallery is the one input to recognition nobody re-reads: a sample
|
|
24457
|
+
* enrolled from the wrong face keeps voting forever, and because the matches it
|
|
24458
|
+
* pulls then look confident, nobody goes back. The 2026-09-08 audit found
|
|
24459
|
+
* exactly one such pair on this cluster — a sample scoring 0.61 against three
|
|
24460
|
+
* samples of ANOTHER person, enrolled from the same camera in the same minute,
|
|
24461
|
+
* where every other cross-identity pair sits under 0.50.
|
|
24462
|
+
*/
|
|
24463
|
+
var IdentitySampleAuditRowSchema = object({
|
|
24464
|
+
sampleId: string(),
|
|
24465
|
+
enrolledAt: number$1().int(),
|
|
24466
|
+
deviceId: number$1().int().optional(),
|
|
24467
|
+
source: _enum(["detected", "photo"]),
|
|
24468
|
+
/** The enrolled crop's media key, so the panel can show the evidence. */
|
|
24469
|
+
mediaKey: string().optional(),
|
|
24470
|
+
/**
|
|
24471
|
+
* False = the sample is stamped with a DIFFERENT face model, and a cosine
|
|
24472
|
+
* across feature spaces is a well-formed float with no meaning. Every number
|
|
24473
|
+
* below then says nothing — it must read as "cannot say", never as an
|
|
24474
|
+
* accusation and never as a clean bill: this list ends in a Remove button.
|
|
24475
|
+
*/
|
|
24476
|
+
comparable: boolean(),
|
|
24477
|
+
/** Mean cosine against this person's other samples. Null when there are none
|
|
24478
|
+
* to compare with — never 0, which would read as "opposite". */
|
|
24479
|
+
selfMean: number$1().nullable(),
|
|
24480
|
+
/** The other person this sample looks most like, when it looks like one.
|
|
24481
|
+
* This is the half that convicts: not looking like yourself can be a hard
|
|
24482
|
+
* angle; looking like someone the gallery can NAME is a mis-enrolment. */
|
|
24483
|
+
bestForeign: object({
|
|
24484
|
+
identityId: string(),
|
|
24485
|
+
name: string(),
|
|
24486
|
+
score: number$1()
|
|
24487
|
+
}).optional(),
|
|
24488
|
+
/** 0 = nothing to say. Higher = look at this one sooner. */
|
|
24489
|
+
suspicion: number$1()
|
|
24490
|
+
});
|
|
24491
|
+
var IdentitySampleAuditSchema = object({
|
|
24492
|
+
identityId: string(),
|
|
24493
|
+
name: string(),
|
|
24494
|
+
/** The cluster face model every comparison was made in. */
|
|
24495
|
+
modelId: string(),
|
|
24496
|
+
totalSamples: number$1().int(),
|
|
24497
|
+
comparableSamples: number$1().int(),
|
|
24498
|
+
flagged: number$1().int(),
|
|
24499
|
+
/** The bar `flagged` counts against, so the panel states the RULE and not
|
|
24500
|
+
* only its current result. */
|
|
24501
|
+
flagThreshold: number$1(),
|
|
24502
|
+
/** Worst first. A row with nothing to say still appears, at the bottom: the
|
|
24503
|
+
* operator asked to see the gallery, not only its accusations. */
|
|
24504
|
+
rows: array(IdentitySampleAuditRowSchema).readonly()
|
|
24505
|
+
});
|
|
24453
24506
|
var FaceInfoSchema = object({
|
|
24454
24507
|
faceId: string(),
|
|
24455
24508
|
deviceId: number$1().int(),
|
|
@@ -24601,7 +24654,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
|
|
|
24601
24654
|
}), method(object({ id: string() }), _void(), {
|
|
24602
24655
|
kind: "mutation",
|
|
24603
24656
|
auth: "admin"
|
|
24604
|
-
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
|
|
24657
|
+
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
|
|
24605
24658
|
identityId: string(),
|
|
24606
24659
|
sampleId: string()
|
|
24607
24660
|
}), _void(), {
|
|
@@ -24787,25 +24840,25 @@ DeviceType.Fan, method(object({
|
|
|
24787
24840
|
percentage: number$1().min(0).max(100)
|
|
24788
24841
|
}), _void(), {
|
|
24789
24842
|
kind: "mutation",
|
|
24790
|
-
auth: "
|
|
24843
|
+
auth: "protected"
|
|
24791
24844
|
}), method(object({
|
|
24792
24845
|
deviceId: number$1().int().nonnegative(),
|
|
24793
24846
|
preset: string().min(1)
|
|
24794
24847
|
}), _void(), {
|
|
24795
24848
|
kind: "mutation",
|
|
24796
|
-
auth: "
|
|
24849
|
+
auth: "protected"
|
|
24797
24850
|
}), method(object({
|
|
24798
24851
|
deviceId: number$1().int().nonnegative(),
|
|
24799
24852
|
direction: FanDirectionSchema
|
|
24800
24853
|
}), _void(), {
|
|
24801
24854
|
kind: "mutation",
|
|
24802
|
-
auth: "
|
|
24855
|
+
auth: "protected"
|
|
24803
24856
|
}), method(object({
|
|
24804
24857
|
deviceId: number$1().int().nonnegative(),
|
|
24805
24858
|
oscillating: boolean()
|
|
24806
24859
|
}), _void(), {
|
|
24807
24860
|
kind: "mutation",
|
|
24808
|
-
auth: "
|
|
24861
|
+
auth: "protected"
|
|
24809
24862
|
});
|
|
24810
24863
|
/**
|
|
24811
24864
|
* Per-device feature/identity probe slice. Holds the runtime-resolved
|
|
@@ -24908,19 +24961,19 @@ DeviceType.Humidifier, method(object({
|
|
|
24908
24961
|
on: boolean()
|
|
24909
24962
|
}), _void(), {
|
|
24910
24963
|
kind: "mutation",
|
|
24911
|
-
auth: "
|
|
24964
|
+
auth: "protected"
|
|
24912
24965
|
}), method(object({
|
|
24913
24966
|
deviceId: number$1().int().nonnegative(),
|
|
24914
24967
|
humidity: number$1().min(0).max(100)
|
|
24915
24968
|
}), _void(), {
|
|
24916
24969
|
kind: "mutation",
|
|
24917
|
-
auth: "
|
|
24970
|
+
auth: "protected"
|
|
24918
24971
|
}), method(object({
|
|
24919
24972
|
deviceId: number$1().int().nonnegative(),
|
|
24920
24973
|
mode: string().min(1)
|
|
24921
24974
|
}), _void(), {
|
|
24922
24975
|
kind: "mutation",
|
|
24923
|
-
auth: "
|
|
24976
|
+
auth: "protected"
|
|
24924
24977
|
});
|
|
24925
24978
|
object({
|
|
24926
24979
|
/** Current relative humidity, 0..100. */
|
|
@@ -25382,13 +25435,13 @@ object({
|
|
|
25382
25435
|
});
|
|
25383
25436
|
DeviceType.LawnMower, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25384
25437
|
kind: "mutation",
|
|
25385
|
-
auth: "
|
|
25438
|
+
auth: "protected"
|
|
25386
25439
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25387
25440
|
kind: "mutation",
|
|
25388
|
-
auth: "
|
|
25441
|
+
auth: "protected"
|
|
25389
25442
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25390
25443
|
kind: "mutation",
|
|
25391
|
-
auth: "
|
|
25444
|
+
auth: "protected"
|
|
25392
25445
|
});
|
|
25393
25446
|
/**
|
|
25394
25447
|
* local-network — hub-only singleton.
|
|
@@ -25648,16 +25701,16 @@ DeviceType.Lock, method(object({
|
|
|
25648
25701
|
code: string().min(1).optional()
|
|
25649
25702
|
}), _void(), {
|
|
25650
25703
|
kind: "mutation",
|
|
25651
|
-
auth: "
|
|
25704
|
+
auth: "protected"
|
|
25652
25705
|
}), method(object({
|
|
25653
25706
|
deviceId: number$1().int().nonnegative(),
|
|
25654
25707
|
code: string().min(1).optional()
|
|
25655
25708
|
}), _void(), {
|
|
25656
25709
|
kind: "mutation",
|
|
25657
|
-
auth: "
|
|
25710
|
+
auth: "protected"
|
|
25658
25711
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25659
25712
|
kind: "mutation",
|
|
25660
|
-
auth: "
|
|
25713
|
+
auth: "protected"
|
|
25661
25714
|
});
|
|
25662
25715
|
/**
|
|
25663
25716
|
* Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
|
|
@@ -25731,55 +25784,55 @@ object({
|
|
|
25731
25784
|
});
|
|
25732
25785
|
DeviceType.MediaPlayer, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25733
25786
|
kind: "mutation",
|
|
25734
|
-
auth: "
|
|
25787
|
+
auth: "protected"
|
|
25735
25788
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25736
25789
|
kind: "mutation",
|
|
25737
|
-
auth: "
|
|
25790
|
+
auth: "protected"
|
|
25738
25791
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25739
25792
|
kind: "mutation",
|
|
25740
|
-
auth: "
|
|
25793
|
+
auth: "protected"
|
|
25741
25794
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25742
25795
|
kind: "mutation",
|
|
25743
|
-
auth: "
|
|
25796
|
+
auth: "protected"
|
|
25744
25797
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25745
25798
|
kind: "mutation",
|
|
25746
|
-
auth: "
|
|
25799
|
+
auth: "protected"
|
|
25747
25800
|
}), method(object({
|
|
25748
25801
|
deviceId: number$1().int().nonnegative(),
|
|
25749
25802
|
positionMs: number$1().int().nonnegative()
|
|
25750
25803
|
}), _void(), {
|
|
25751
25804
|
kind: "mutation",
|
|
25752
|
-
auth: "
|
|
25805
|
+
auth: "protected"
|
|
25753
25806
|
}), method(object({
|
|
25754
25807
|
deviceId: number$1().int().nonnegative(),
|
|
25755
25808
|
volumeLevel: number$1().min(0).max(100)
|
|
25756
25809
|
}), _void(), {
|
|
25757
25810
|
kind: "mutation",
|
|
25758
|
-
auth: "
|
|
25811
|
+
auth: "protected"
|
|
25759
25812
|
}), method(object({
|
|
25760
25813
|
deviceId: number$1().int().nonnegative(),
|
|
25761
25814
|
muted: boolean()
|
|
25762
25815
|
}), _void(), {
|
|
25763
25816
|
kind: "mutation",
|
|
25764
|
-
auth: "
|
|
25817
|
+
auth: "protected"
|
|
25765
25818
|
}), method(object({
|
|
25766
25819
|
deviceId: number$1().int().nonnegative(),
|
|
25767
25820
|
shuffle: boolean()
|
|
25768
25821
|
}), _void(), {
|
|
25769
25822
|
kind: "mutation",
|
|
25770
|
-
auth: "
|
|
25823
|
+
auth: "protected"
|
|
25771
25824
|
}), method(object({
|
|
25772
25825
|
deviceId: number$1().int().nonnegative(),
|
|
25773
25826
|
repeat: MediaPlayerRepeatSchema
|
|
25774
25827
|
}), _void(), {
|
|
25775
25828
|
kind: "mutation",
|
|
25776
|
-
auth: "
|
|
25829
|
+
auth: "protected"
|
|
25777
25830
|
}), method(object({
|
|
25778
25831
|
deviceId: number$1().int().nonnegative(),
|
|
25779
25832
|
source: string().min(1)
|
|
25780
25833
|
}), _void(), {
|
|
25781
25834
|
kind: "mutation",
|
|
25782
|
-
auth: "
|
|
25835
|
+
auth: "protected"
|
|
25783
25836
|
}), method(object({
|
|
25784
25837
|
deviceId: number$1().int().nonnegative(),
|
|
25785
25838
|
/** Media identifier / URL. */
|
|
@@ -25789,7 +25842,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number$1().int().nonnegative()
|
|
|
25789
25842
|
mediaType: string().min(1)
|
|
25790
25843
|
}), _void(), {
|
|
25791
25844
|
kind: "mutation",
|
|
25792
|
-
auth: "
|
|
25845
|
+
auth: "protected"
|
|
25793
25846
|
});
|
|
25794
25847
|
/**
|
|
25795
25848
|
* mesh-network — collection cap for mesh-VPN providers.
|
|
@@ -26955,49 +27008,49 @@ DeviceType.PetFeeder, method(object({
|
|
|
26955
27008
|
hopper2: gramsPortion.optional()
|
|
26956
27009
|
}), _void(), {
|
|
26957
27010
|
kind: "mutation",
|
|
26958
|
-
auth: "
|
|
27011
|
+
auth: "protected"
|
|
26959
27012
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
26960
27013
|
kind: "mutation",
|
|
26961
|
-
auth: "
|
|
27014
|
+
auth: "protected"
|
|
26962
27015
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
26963
27016
|
kind: "mutation",
|
|
26964
|
-
auth: "
|
|
27017
|
+
auth: "protected"
|
|
26965
27018
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
26966
27019
|
kind: "mutation",
|
|
26967
|
-
auth: "
|
|
27020
|
+
auth: "protected"
|
|
26968
27021
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
26969
27022
|
kind: "mutation",
|
|
26970
|
-
auth: "
|
|
27023
|
+
auth: "protected"
|
|
26971
27024
|
}), method(object({
|
|
26972
27025
|
deviceId: number$1().int().nonnegative(),
|
|
26973
27026
|
soundId: number$1().int().nonnegative()
|
|
26974
27027
|
}), _void(), {
|
|
26975
27028
|
kind: "mutation",
|
|
26976
|
-
auth: "
|
|
27029
|
+
auth: "protected"
|
|
26977
27030
|
}), method(object({
|
|
26978
27031
|
deviceId: number$1().int().nonnegative(),
|
|
26979
27032
|
on: boolean()
|
|
26980
27033
|
}), _void(), {
|
|
26981
27034
|
kind: "mutation",
|
|
26982
|
-
auth: "
|
|
27035
|
+
auth: "protected"
|
|
26983
27036
|
}), method(object({
|
|
26984
27037
|
deviceId: number$1().int().nonnegative(),
|
|
26985
27038
|
on: boolean()
|
|
26986
27039
|
}), _void(), {
|
|
26987
27040
|
kind: "mutation",
|
|
26988
|
-
auth: "
|
|
27041
|
+
auth: "protected"
|
|
26989
27042
|
}), method(object({
|
|
26990
27043
|
deviceId: number$1().int().nonnegative(),
|
|
26991
27044
|
on: boolean()
|
|
26992
27045
|
}), _void(), {
|
|
26993
27046
|
kind: "mutation",
|
|
26994
|
-
auth: "
|
|
27047
|
+
auth: "protected"
|
|
26995
27048
|
}), method(object({
|
|
26996
27049
|
deviceId: number$1().int().nonnegative(),
|
|
26997
27050
|
level: number$1().int().nonnegative()
|
|
26998
27051
|
}), _void(), {
|
|
26999
27052
|
kind: "mutation",
|
|
27000
|
-
auth: "
|
|
27053
|
+
auth: "protected"
|
|
27001
27054
|
});
|
|
27002
27055
|
var VehicleSchema = object({
|
|
27003
27056
|
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$1(),
|
|
28790
28843
|
on: boolean(),
|
|
@@ -29641,25 +29694,25 @@ object({
|
|
|
29641
29694
|
});
|
|
29642
29695
|
DeviceType.Vacuum, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
29643
29696
|
kind: "mutation",
|
|
29644
|
-
auth: "
|
|
29697
|
+
auth: "protected"
|
|
29645
29698
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
29646
29699
|
kind: "mutation",
|
|
29647
|
-
auth: "
|
|
29700
|
+
auth: "protected"
|
|
29648
29701
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
29649
29702
|
kind: "mutation",
|
|
29650
|
-
auth: "
|
|
29703
|
+
auth: "protected"
|
|
29651
29704
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
29652
29705
|
kind: "mutation",
|
|
29653
|
-
auth: "
|
|
29706
|
+
auth: "protected"
|
|
29654
29707
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
29655
29708
|
kind: "mutation",
|
|
29656
|
-
auth: "
|
|
29709
|
+
auth: "protected"
|
|
29657
29710
|
}), method(object({
|
|
29658
29711
|
deviceId: number$1().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$1().int().nonnegative() }), _void(), {
|
|
29680
29733
|
kind: "mutation",
|
|
29681
|
-
auth: "
|
|
29734
|
+
auth: "protected"
|
|
29682
29735
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
29683
29736
|
kind: "mutation",
|
|
29684
|
-
auth: "
|
|
29737
|
+
auth: "protected"
|
|
29685
29738
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
29686
29739
|
kind: "mutation",
|
|
29687
|
-
auth: "
|
|
29740
|
+
auth: "protected"
|
|
29688
29741
|
}), method(object({
|
|
29689
29742
|
deviceId: number$1().int().nonnegative(),
|
|
29690
29743
|
position: number$1().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$1().finite()
|
|
29725
29778
|
}), _void(), {
|
|
29726
29779
|
kind: "mutation",
|
|
29727
|
-
auth: "
|
|
29780
|
+
auth: "protected"
|
|
29728
29781
|
}), method(object({
|
|
29729
29782
|
deviceId: number$1().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$1().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/dist/addon.mjs
CHANGED
|
@@ -16135,16 +16135,16 @@ DeviceType.AlarmPanel, method(object({
|
|
|
16135
16135
|
code: string().min(1).optional()
|
|
16136
16136
|
}), _void(), {
|
|
16137
16137
|
kind: "mutation",
|
|
16138
|
-
auth: "
|
|
16138
|
+
auth: "protected"
|
|
16139
16139
|
}), method(object({
|
|
16140
16140
|
deviceId: number$1().int().nonnegative(),
|
|
16141
16141
|
code: string().min(1).optional()
|
|
16142
16142
|
}), _void(), {
|
|
16143
16143
|
kind: "mutation",
|
|
16144
|
-
auth: "
|
|
16144
|
+
auth: "protected"
|
|
16145
16145
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
16146
16146
|
kind: "mutation",
|
|
16147
|
-
auth: "
|
|
16147
|
+
auth: "protected"
|
|
16148
16148
|
});
|
|
16149
16149
|
/**
|
|
16150
16150
|
* Shared geometry vocabulary for on-frame shape caps — privacy-mask,
|
|
@@ -23799,7 +23799,7 @@ DeviceType.Light, method(object({
|
|
|
23799
23799
|
percentage: number$1().min(0).max(100)
|
|
23800
23800
|
}), _void(), {
|
|
23801
23801
|
kind: "mutation",
|
|
23802
|
-
auth: "
|
|
23802
|
+
auth: "protected"
|
|
23803
23803
|
}), object({
|
|
23804
23804
|
deviceId: number$1(),
|
|
23805
23805
|
percentage: number$1().min(0).max(100),
|
|
@@ -23807,7 +23807,7 @@ DeviceType.Light, method(object({
|
|
|
23807
23807
|
});
|
|
23808
23808
|
DeviceType.Button, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
23809
23809
|
kind: "mutation",
|
|
23810
|
-
auth: "
|
|
23810
|
+
auth: "protected"
|
|
23811
23811
|
});
|
|
23812
23812
|
/**
|
|
23813
23813
|
* camera-credentials — device-scoped cap exposing the camera's network
|
|
@@ -23966,50 +23966,50 @@ DeviceType.Thermostat, DeviceType.Climate, method(object({
|
|
|
23966
23966
|
mode: HvacModeSchema
|
|
23967
23967
|
}), _void(), {
|
|
23968
23968
|
kind: "mutation",
|
|
23969
|
-
auth: "
|
|
23969
|
+
auth: "protected"
|
|
23970
23970
|
}), method(object({
|
|
23971
23971
|
deviceId: number$1().int().nonnegative(),
|
|
23972
23972
|
fanMode: string().min(1)
|
|
23973
23973
|
}), _void(), {
|
|
23974
23974
|
kind: "mutation",
|
|
23975
|
-
auth: "
|
|
23975
|
+
auth: "protected"
|
|
23976
23976
|
}), method(object({
|
|
23977
23977
|
deviceId: number$1().int().nonnegative(),
|
|
23978
23978
|
preset: string().min(1)
|
|
23979
23979
|
}), _void(), {
|
|
23980
23980
|
kind: "mutation",
|
|
23981
|
-
auth: "
|
|
23981
|
+
auth: "protected"
|
|
23982
23982
|
}), method(object({
|
|
23983
23983
|
deviceId: number$1().int().nonnegative(),
|
|
23984
23984
|
target: number$1()
|
|
23985
23985
|
}), _void(), {
|
|
23986
23986
|
kind: "mutation",
|
|
23987
|
-
auth: "
|
|
23987
|
+
auth: "protected"
|
|
23988
23988
|
}), method(object({
|
|
23989
23989
|
deviceId: number$1().int().nonnegative(),
|
|
23990
23990
|
targetLow: number$1(),
|
|
23991
23991
|
targetHigh: number$1()
|
|
23992
23992
|
}), _void(), {
|
|
23993
23993
|
kind: "mutation",
|
|
23994
|
-
auth: "
|
|
23994
|
+
auth: "protected"
|
|
23995
23995
|
}), method(object({
|
|
23996
23996
|
deviceId: number$1().int().nonnegative(),
|
|
23997
23997
|
targetHumidity: number$1().min(0).max(100)
|
|
23998
23998
|
}), _void(), {
|
|
23999
23999
|
kind: "mutation",
|
|
24000
|
-
auth: "
|
|
24000
|
+
auth: "protected"
|
|
24001
24001
|
}), method(object({
|
|
24002
24002
|
deviceId: number$1().int().nonnegative(),
|
|
24003
24003
|
on: boolean()
|
|
24004
24004
|
}), _void(), {
|
|
24005
24005
|
kind: "mutation",
|
|
24006
|
-
auth: "
|
|
24006
|
+
auth: "protected"
|
|
24007
24007
|
}), method(object({
|
|
24008
24008
|
deviceId: number$1().int().nonnegative(),
|
|
24009
24009
|
on: boolean()
|
|
24010
24010
|
}), _void(), {
|
|
24011
24011
|
kind: "mutation",
|
|
24012
|
-
auth: "
|
|
24012
|
+
auth: "protected"
|
|
24013
24013
|
});
|
|
24014
24014
|
/**
|
|
24015
24015
|
* Color-light cap. Coexists with `switch` (on/off) and `brightness`
|
|
@@ -24084,7 +24084,7 @@ DeviceType.Light, method(object({
|
|
|
24084
24084
|
color: ColorInputSchema
|
|
24085
24085
|
}), _void(), {
|
|
24086
24086
|
kind: "mutation",
|
|
24087
|
-
auth: "
|
|
24087
|
+
auth: "protected"
|
|
24088
24088
|
}), object({
|
|
24089
24089
|
deviceId: number$1(),
|
|
24090
24090
|
mode: _enum([
|
|
@@ -24233,7 +24233,7 @@ DeviceType.Control, method(object({
|
|
|
24233
24233
|
control: ControlSetValueInputSchema
|
|
24234
24234
|
}), _void(), {
|
|
24235
24235
|
kind: "mutation",
|
|
24236
|
-
auth: "
|
|
24236
|
+
auth: "protected"
|
|
24237
24237
|
});
|
|
24238
24238
|
object({
|
|
24239
24239
|
/** Lifecycle state of the cover. */
|
|
@@ -24254,25 +24254,25 @@ object({
|
|
|
24254
24254
|
});
|
|
24255
24255
|
DeviceType.Cover, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
24256
24256
|
kind: "mutation",
|
|
24257
|
-
auth: "
|
|
24257
|
+
auth: "protected"
|
|
24258
24258
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
24259
24259
|
kind: "mutation",
|
|
24260
|
-
auth: "
|
|
24260
|
+
auth: "protected"
|
|
24261
24261
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
24262
24262
|
kind: "mutation",
|
|
24263
|
-
auth: "
|
|
24263
|
+
auth: "protected"
|
|
24264
24264
|
}), method(object({
|
|
24265
24265
|
deviceId: number$1().int().nonnegative(),
|
|
24266
24266
|
position: number$1().min(0).max(100)
|
|
24267
24267
|
}), _void(), {
|
|
24268
24268
|
kind: "mutation",
|
|
24269
|
-
auth: "
|
|
24269
|
+
auth: "protected"
|
|
24270
24270
|
}), method(object({
|
|
24271
24271
|
deviceId: number$1().int().nonnegative(),
|
|
24272
24272
|
tiltPosition: number$1().min(0).max(100)
|
|
24273
24273
|
}), _void(), {
|
|
24274
24274
|
kind: "mutation",
|
|
24275
|
-
auth: "
|
|
24275
|
+
auth: "protected"
|
|
24276
24276
|
});
|
|
24277
24277
|
/**
|
|
24278
24278
|
* Vendor-neutral day/night (IR-cut) control — the per-camera config cap
|
|
@@ -24477,6 +24477,59 @@ var IdentitySampleInfoSchema = object({
|
|
|
24477
24477
|
deviceId: number$1().int().optional(),
|
|
24478
24478
|
base64: string().optional()
|
|
24479
24479
|
});
|
|
24480
|
+
/**
|
|
24481
|
+
* One enrolled sample, judged against the gallery it lives in.
|
|
24482
|
+
*
|
|
24483
|
+
* The gallery is the one input to recognition nobody re-reads: a sample
|
|
24484
|
+
* enrolled from the wrong face keeps voting forever, and because the matches it
|
|
24485
|
+
* pulls then look confident, nobody goes back. The 2026-09-08 audit found
|
|
24486
|
+
* exactly one such pair on this cluster — a sample scoring 0.61 against three
|
|
24487
|
+
* samples of ANOTHER person, enrolled from the same camera in the same minute,
|
|
24488
|
+
* where every other cross-identity pair sits under 0.50.
|
|
24489
|
+
*/
|
|
24490
|
+
var IdentitySampleAuditRowSchema = object({
|
|
24491
|
+
sampleId: string(),
|
|
24492
|
+
enrolledAt: number$1().int(),
|
|
24493
|
+
deviceId: number$1().int().optional(),
|
|
24494
|
+
source: _enum(["detected", "photo"]),
|
|
24495
|
+
/** The enrolled crop's media key, so the panel can show the evidence. */
|
|
24496
|
+
mediaKey: string().optional(),
|
|
24497
|
+
/**
|
|
24498
|
+
* False = the sample is stamped with a DIFFERENT face model, and a cosine
|
|
24499
|
+
* across feature spaces is a well-formed float with no meaning. Every number
|
|
24500
|
+
* below then says nothing — it must read as "cannot say", never as an
|
|
24501
|
+
* accusation and never as a clean bill: this list ends in a Remove button.
|
|
24502
|
+
*/
|
|
24503
|
+
comparable: boolean(),
|
|
24504
|
+
/** Mean cosine against this person's other samples. Null when there are none
|
|
24505
|
+
* to compare with — never 0, which would read as "opposite". */
|
|
24506
|
+
selfMean: number$1().nullable(),
|
|
24507
|
+
/** The other person this sample looks most like, when it looks like one.
|
|
24508
|
+
* This is the half that convicts: not looking like yourself can be a hard
|
|
24509
|
+
* angle; looking like someone the gallery can NAME is a mis-enrolment. */
|
|
24510
|
+
bestForeign: object({
|
|
24511
|
+
identityId: string(),
|
|
24512
|
+
name: string(),
|
|
24513
|
+
score: number$1()
|
|
24514
|
+
}).optional(),
|
|
24515
|
+
/** 0 = nothing to say. Higher = look at this one sooner. */
|
|
24516
|
+
suspicion: number$1()
|
|
24517
|
+
});
|
|
24518
|
+
var IdentitySampleAuditSchema = object({
|
|
24519
|
+
identityId: string(),
|
|
24520
|
+
name: string(),
|
|
24521
|
+
/** The cluster face model every comparison was made in. */
|
|
24522
|
+
modelId: string(),
|
|
24523
|
+
totalSamples: number$1().int(),
|
|
24524
|
+
comparableSamples: number$1().int(),
|
|
24525
|
+
flagged: number$1().int(),
|
|
24526
|
+
/** The bar `flagged` counts against, so the panel states the RULE and not
|
|
24527
|
+
* only its current result. */
|
|
24528
|
+
flagThreshold: number$1(),
|
|
24529
|
+
/** Worst first. A row with nothing to say still appears, at the bottom: the
|
|
24530
|
+
* operator asked to see the gallery, not only its accusations. */
|
|
24531
|
+
rows: array(IdentitySampleAuditRowSchema).readonly()
|
|
24532
|
+
});
|
|
24480
24533
|
var FaceInfoSchema = object({
|
|
24481
24534
|
faceId: string(),
|
|
24482
24535
|
deviceId: number$1().int(),
|
|
@@ -24628,7 +24681,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
|
|
|
24628
24681
|
}), method(object({ id: string() }), _void(), {
|
|
24629
24682
|
kind: "mutation",
|
|
24630
24683
|
auth: "admin"
|
|
24631
|
-
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
|
|
24684
|
+
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
|
|
24632
24685
|
identityId: string(),
|
|
24633
24686
|
sampleId: string()
|
|
24634
24687
|
}), _void(), {
|
|
@@ -24814,25 +24867,25 @@ DeviceType.Fan, method(object({
|
|
|
24814
24867
|
percentage: number$1().min(0).max(100)
|
|
24815
24868
|
}), _void(), {
|
|
24816
24869
|
kind: "mutation",
|
|
24817
|
-
auth: "
|
|
24870
|
+
auth: "protected"
|
|
24818
24871
|
}), method(object({
|
|
24819
24872
|
deviceId: number$1().int().nonnegative(),
|
|
24820
24873
|
preset: string().min(1)
|
|
24821
24874
|
}), _void(), {
|
|
24822
24875
|
kind: "mutation",
|
|
24823
|
-
auth: "
|
|
24876
|
+
auth: "protected"
|
|
24824
24877
|
}), method(object({
|
|
24825
24878
|
deviceId: number$1().int().nonnegative(),
|
|
24826
24879
|
direction: FanDirectionSchema
|
|
24827
24880
|
}), _void(), {
|
|
24828
24881
|
kind: "mutation",
|
|
24829
|
-
auth: "
|
|
24882
|
+
auth: "protected"
|
|
24830
24883
|
}), method(object({
|
|
24831
24884
|
deviceId: number$1().int().nonnegative(),
|
|
24832
24885
|
oscillating: boolean()
|
|
24833
24886
|
}), _void(), {
|
|
24834
24887
|
kind: "mutation",
|
|
24835
|
-
auth: "
|
|
24888
|
+
auth: "protected"
|
|
24836
24889
|
});
|
|
24837
24890
|
/**
|
|
24838
24891
|
* Per-device feature/identity probe slice. Holds the runtime-resolved
|
|
@@ -24935,19 +24988,19 @@ DeviceType.Humidifier, method(object({
|
|
|
24935
24988
|
on: boolean()
|
|
24936
24989
|
}), _void(), {
|
|
24937
24990
|
kind: "mutation",
|
|
24938
|
-
auth: "
|
|
24991
|
+
auth: "protected"
|
|
24939
24992
|
}), method(object({
|
|
24940
24993
|
deviceId: number$1().int().nonnegative(),
|
|
24941
24994
|
humidity: number$1().min(0).max(100)
|
|
24942
24995
|
}), _void(), {
|
|
24943
24996
|
kind: "mutation",
|
|
24944
|
-
auth: "
|
|
24997
|
+
auth: "protected"
|
|
24945
24998
|
}), method(object({
|
|
24946
24999
|
deviceId: number$1().int().nonnegative(),
|
|
24947
25000
|
mode: string().min(1)
|
|
24948
25001
|
}), _void(), {
|
|
24949
25002
|
kind: "mutation",
|
|
24950
|
-
auth: "
|
|
25003
|
+
auth: "protected"
|
|
24951
25004
|
});
|
|
24952
25005
|
object({
|
|
24953
25006
|
/** Current relative humidity, 0..100. */
|
|
@@ -25409,13 +25462,13 @@ object({
|
|
|
25409
25462
|
});
|
|
25410
25463
|
DeviceType.LawnMower, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25411
25464
|
kind: "mutation",
|
|
25412
|
-
auth: "
|
|
25465
|
+
auth: "protected"
|
|
25413
25466
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25414
25467
|
kind: "mutation",
|
|
25415
|
-
auth: "
|
|
25468
|
+
auth: "protected"
|
|
25416
25469
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25417
25470
|
kind: "mutation",
|
|
25418
|
-
auth: "
|
|
25471
|
+
auth: "protected"
|
|
25419
25472
|
});
|
|
25420
25473
|
/**
|
|
25421
25474
|
* local-network — hub-only singleton.
|
|
@@ -25675,16 +25728,16 @@ DeviceType.Lock, method(object({
|
|
|
25675
25728
|
code: string().min(1).optional()
|
|
25676
25729
|
}), _void(), {
|
|
25677
25730
|
kind: "mutation",
|
|
25678
|
-
auth: "
|
|
25731
|
+
auth: "protected"
|
|
25679
25732
|
}), method(object({
|
|
25680
25733
|
deviceId: number$1().int().nonnegative(),
|
|
25681
25734
|
code: string().min(1).optional()
|
|
25682
25735
|
}), _void(), {
|
|
25683
25736
|
kind: "mutation",
|
|
25684
|
-
auth: "
|
|
25737
|
+
auth: "protected"
|
|
25685
25738
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25686
25739
|
kind: "mutation",
|
|
25687
|
-
auth: "
|
|
25740
|
+
auth: "protected"
|
|
25688
25741
|
});
|
|
25689
25742
|
/**
|
|
25690
25743
|
* Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
|
|
@@ -25758,55 +25811,55 @@ object({
|
|
|
25758
25811
|
});
|
|
25759
25812
|
DeviceType.MediaPlayer, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25760
25813
|
kind: "mutation",
|
|
25761
|
-
auth: "
|
|
25814
|
+
auth: "protected"
|
|
25762
25815
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25763
25816
|
kind: "mutation",
|
|
25764
|
-
auth: "
|
|
25817
|
+
auth: "protected"
|
|
25765
25818
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25766
25819
|
kind: "mutation",
|
|
25767
|
-
auth: "
|
|
25820
|
+
auth: "protected"
|
|
25768
25821
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25769
25822
|
kind: "mutation",
|
|
25770
|
-
auth: "
|
|
25823
|
+
auth: "protected"
|
|
25771
25824
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
25772
25825
|
kind: "mutation",
|
|
25773
|
-
auth: "
|
|
25826
|
+
auth: "protected"
|
|
25774
25827
|
}), method(object({
|
|
25775
25828
|
deviceId: number$1().int().nonnegative(),
|
|
25776
25829
|
positionMs: number$1().int().nonnegative()
|
|
25777
25830
|
}), _void(), {
|
|
25778
25831
|
kind: "mutation",
|
|
25779
|
-
auth: "
|
|
25832
|
+
auth: "protected"
|
|
25780
25833
|
}), method(object({
|
|
25781
25834
|
deviceId: number$1().int().nonnegative(),
|
|
25782
25835
|
volumeLevel: number$1().min(0).max(100)
|
|
25783
25836
|
}), _void(), {
|
|
25784
25837
|
kind: "mutation",
|
|
25785
|
-
auth: "
|
|
25838
|
+
auth: "protected"
|
|
25786
25839
|
}), method(object({
|
|
25787
25840
|
deviceId: number$1().int().nonnegative(),
|
|
25788
25841
|
muted: boolean()
|
|
25789
25842
|
}), _void(), {
|
|
25790
25843
|
kind: "mutation",
|
|
25791
|
-
auth: "
|
|
25844
|
+
auth: "protected"
|
|
25792
25845
|
}), method(object({
|
|
25793
25846
|
deviceId: number$1().int().nonnegative(),
|
|
25794
25847
|
shuffle: boolean()
|
|
25795
25848
|
}), _void(), {
|
|
25796
25849
|
kind: "mutation",
|
|
25797
|
-
auth: "
|
|
25850
|
+
auth: "protected"
|
|
25798
25851
|
}), method(object({
|
|
25799
25852
|
deviceId: number$1().int().nonnegative(),
|
|
25800
25853
|
repeat: MediaPlayerRepeatSchema
|
|
25801
25854
|
}), _void(), {
|
|
25802
25855
|
kind: "mutation",
|
|
25803
|
-
auth: "
|
|
25856
|
+
auth: "protected"
|
|
25804
25857
|
}), method(object({
|
|
25805
25858
|
deviceId: number$1().int().nonnegative(),
|
|
25806
25859
|
source: string().min(1)
|
|
25807
25860
|
}), _void(), {
|
|
25808
25861
|
kind: "mutation",
|
|
25809
|
-
auth: "
|
|
25862
|
+
auth: "protected"
|
|
25810
25863
|
}), method(object({
|
|
25811
25864
|
deviceId: number$1().int().nonnegative(),
|
|
25812
25865
|
/** Media identifier / URL. */
|
|
@@ -25816,7 +25869,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number$1().int().nonnegative()
|
|
|
25816
25869
|
mediaType: string().min(1)
|
|
25817
25870
|
}), _void(), {
|
|
25818
25871
|
kind: "mutation",
|
|
25819
|
-
auth: "
|
|
25872
|
+
auth: "protected"
|
|
25820
25873
|
});
|
|
25821
25874
|
/**
|
|
25822
25875
|
* mesh-network — collection cap for mesh-VPN providers.
|
|
@@ -26982,49 +27035,49 @@ DeviceType.PetFeeder, method(object({
|
|
|
26982
27035
|
hopper2: gramsPortion.optional()
|
|
26983
27036
|
}), _void(), {
|
|
26984
27037
|
kind: "mutation",
|
|
26985
|
-
auth: "
|
|
27038
|
+
auth: "protected"
|
|
26986
27039
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
26987
27040
|
kind: "mutation",
|
|
26988
|
-
auth: "
|
|
27041
|
+
auth: "protected"
|
|
26989
27042
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
26990
27043
|
kind: "mutation",
|
|
26991
|
-
auth: "
|
|
27044
|
+
auth: "protected"
|
|
26992
27045
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
26993
27046
|
kind: "mutation",
|
|
26994
|
-
auth: "
|
|
27047
|
+
auth: "protected"
|
|
26995
27048
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
26996
27049
|
kind: "mutation",
|
|
26997
|
-
auth: "
|
|
27050
|
+
auth: "protected"
|
|
26998
27051
|
}), method(object({
|
|
26999
27052
|
deviceId: number$1().int().nonnegative(),
|
|
27000
27053
|
soundId: number$1().int().nonnegative()
|
|
27001
27054
|
}), _void(), {
|
|
27002
27055
|
kind: "mutation",
|
|
27003
|
-
auth: "
|
|
27056
|
+
auth: "protected"
|
|
27004
27057
|
}), method(object({
|
|
27005
27058
|
deviceId: number$1().int().nonnegative(),
|
|
27006
27059
|
on: boolean()
|
|
27007
27060
|
}), _void(), {
|
|
27008
27061
|
kind: "mutation",
|
|
27009
|
-
auth: "
|
|
27062
|
+
auth: "protected"
|
|
27010
27063
|
}), method(object({
|
|
27011
27064
|
deviceId: number$1().int().nonnegative(),
|
|
27012
27065
|
on: boolean()
|
|
27013
27066
|
}), _void(), {
|
|
27014
27067
|
kind: "mutation",
|
|
27015
|
-
auth: "
|
|
27068
|
+
auth: "protected"
|
|
27016
27069
|
}), method(object({
|
|
27017
27070
|
deviceId: number$1().int().nonnegative(),
|
|
27018
27071
|
on: boolean()
|
|
27019
27072
|
}), _void(), {
|
|
27020
27073
|
kind: "mutation",
|
|
27021
|
-
auth: "
|
|
27074
|
+
auth: "protected"
|
|
27022
27075
|
}), method(object({
|
|
27023
27076
|
deviceId: number$1().int().nonnegative(),
|
|
27024
27077
|
level: number$1().int().nonnegative()
|
|
27025
27078
|
}), _void(), {
|
|
27026
27079
|
kind: "mutation",
|
|
27027
|
-
auth: "
|
|
27080
|
+
auth: "protected"
|
|
27028
27081
|
});
|
|
27029
27082
|
var VehicleSchema = object({
|
|
27030
27083
|
id: string(),
|
|
@@ -28811,7 +28864,7 @@ DeviceType.Switch, DeviceType.Siren, DeviceType.Light, method(object({
|
|
|
28811
28864
|
on: boolean()
|
|
28812
28865
|
}), _void(), {
|
|
28813
28866
|
kind: "mutation",
|
|
28814
|
-
auth: "
|
|
28867
|
+
auth: "protected"
|
|
28815
28868
|
}), object({
|
|
28816
28869
|
deviceId: number$1(),
|
|
28817
28870
|
on: boolean(),
|
|
@@ -29668,25 +29721,25 @@ object({
|
|
|
29668
29721
|
});
|
|
29669
29722
|
DeviceType.Vacuum, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
29670
29723
|
kind: "mutation",
|
|
29671
|
-
auth: "
|
|
29724
|
+
auth: "protected"
|
|
29672
29725
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
29673
29726
|
kind: "mutation",
|
|
29674
|
-
auth: "
|
|
29727
|
+
auth: "protected"
|
|
29675
29728
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
29676
29729
|
kind: "mutation",
|
|
29677
|
-
auth: "
|
|
29730
|
+
auth: "protected"
|
|
29678
29731
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
29679
29732
|
kind: "mutation",
|
|
29680
|
-
auth: "
|
|
29733
|
+
auth: "protected"
|
|
29681
29734
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
29682
29735
|
kind: "mutation",
|
|
29683
|
-
auth: "
|
|
29736
|
+
auth: "protected"
|
|
29684
29737
|
}), method(object({
|
|
29685
29738
|
deviceId: number$1().int().nonnegative(),
|
|
29686
29739
|
speed: string().min(1)
|
|
29687
29740
|
}), _void(), {
|
|
29688
29741
|
kind: "mutation",
|
|
29689
|
-
auth: "
|
|
29742
|
+
auth: "protected"
|
|
29690
29743
|
});
|
|
29691
29744
|
object({
|
|
29692
29745
|
/** Lifecycle state of the valve. */
|
|
@@ -29705,19 +29758,19 @@ object({
|
|
|
29705
29758
|
});
|
|
29706
29759
|
DeviceType.Valve, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
29707
29760
|
kind: "mutation",
|
|
29708
|
-
auth: "
|
|
29761
|
+
auth: "protected"
|
|
29709
29762
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
29710
29763
|
kind: "mutation",
|
|
29711
|
-
auth: "
|
|
29764
|
+
auth: "protected"
|
|
29712
29765
|
}), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
|
|
29713
29766
|
kind: "mutation",
|
|
29714
|
-
auth: "
|
|
29767
|
+
auth: "protected"
|
|
29715
29768
|
}), method(object({
|
|
29716
29769
|
deviceId: number$1().int().nonnegative(),
|
|
29717
29770
|
position: number$1().min(0).max(100)
|
|
29718
29771
|
}), _void(), {
|
|
29719
29772
|
kind: "mutation",
|
|
29720
|
-
auth: "
|
|
29773
|
+
auth: "protected"
|
|
29721
29774
|
});
|
|
29722
29775
|
object({
|
|
29723
29776
|
detected: boolean(),
|
|
@@ -29751,19 +29804,19 @@ DeviceType.WaterHeater, method(object({
|
|
|
29751
29804
|
temp: number$1().finite()
|
|
29752
29805
|
}), _void(), {
|
|
29753
29806
|
kind: "mutation",
|
|
29754
|
-
auth: "
|
|
29807
|
+
auth: "protected"
|
|
29755
29808
|
}), method(object({
|
|
29756
29809
|
deviceId: number$1().int().nonnegative(),
|
|
29757
29810
|
mode: string().min(1)
|
|
29758
29811
|
}), _void(), {
|
|
29759
29812
|
kind: "mutation",
|
|
29760
|
-
auth: "
|
|
29813
|
+
auth: "protected"
|
|
29761
29814
|
}), method(object({
|
|
29762
29815
|
deviceId: number$1().int().nonnegative(),
|
|
29763
29816
|
on: boolean()
|
|
29764
29817
|
}), _void(), {
|
|
29765
29818
|
kind: "mutation",
|
|
29766
|
-
auth: "
|
|
29819
|
+
auth: "protected"
|
|
29767
29820
|
});
|
|
29768
29821
|
object({
|
|
29769
29822
|
/** Verbatim HA condition state (`sunny`, `cloudy`, `rainy`, …). Null
|
|
@@ -31855,6 +31908,12 @@ Object.freeze({
|
|
|
31855
31908
|
addonId: null,
|
|
31856
31909
|
access: "create"
|
|
31857
31910
|
},
|
|
31911
|
+
"faceGallery.auditIdentitySamples": {
|
|
31912
|
+
capName: "face-gallery",
|
|
31913
|
+
capScope: "system",
|
|
31914
|
+
addonId: null,
|
|
31915
|
+
access: "view"
|
|
31916
|
+
},
|
|
31858
31917
|
"faceGallery.createIdentity": {
|
|
31859
31918
|
capName: "face-gallery",
|
|
31860
31919
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-ai",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.89",
|
|
4
4
|
"description": "AI addon for CamStack — the `llm` collection provider (cloud, LAN, and camstack-managed local llama.cpp profiles) plus the per-node `llm-runtime` managed executor.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|