@camstack/addon-provider-dreame 0.2.127 → 0.2.129
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 +268 -12
- package/dist/addon.mjs +268 -12
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -58273,7 +58273,7 @@ var ZodIssueCode = {
|
|
|
58273
58273
|
var ZodFirstPartyTypeKind;
|
|
58274
58274
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
58275
58275
|
//#endregion
|
|
58276
|
-
//#region ../types/dist/sleep-
|
|
58276
|
+
//#region ../types/dist/sleep-B0JG7-_F.mjs
|
|
58277
58277
|
/**
|
|
58278
58278
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
58279
58279
|
* window to float samples (D455).
|
|
@@ -67999,6 +67999,10 @@ var DeviceInfoSchema = object({
|
|
|
67999
67999
|
isCamera: boolean(),
|
|
68000
68000
|
/** Current config values — serializable snapshot */
|
|
68001
68001
|
config: record(string(), unknown()),
|
|
68002
|
+
/** Paths inside `config` the device's schema declares secret (D783) —
|
|
68003
|
+
* what the non-admin redaction withholds. Paths, never values. Absent
|
|
68004
|
+
* when the owning runner has not reported them. */
|
|
68005
|
+
secretConfigPaths: array(string()).optional(),
|
|
68002
68006
|
/** Hardware + identity blob (manufacturer / model / firmware / sn /
|
|
68003
68007
|
* uid / mac / …). Populated by drivers; editable via setMetadata. */
|
|
68004
68008
|
metadata: record(string(), unknown()).nullable().optional(),
|
|
@@ -68204,7 +68208,13 @@ var DeviceRegisterPayloadSchema = object({
|
|
|
68204
68208
|
* call (workers re-register on init), so probe-driven updates
|
|
68205
68209
|
* (e.g. PTZ flag flipping after the abilities probe) propagate. */
|
|
68206
68210
|
features: array(string()).optional(),
|
|
68207
|
-
config: record(string(), unknown())
|
|
68211
|
+
config: record(string(), unknown()),
|
|
68212
|
+
/** Config paths the device's own schema DECLARES secret
|
|
68213
|
+
* (`.meta({ secret: true })` — dotted, `[]` for array items, e.g.
|
|
68214
|
+
* `connection.password`). Re-published on every register; the non-admin
|
|
68215
|
+
* redaction withholds them at any depth (D783). Optional: an older runner
|
|
68216
|
+
* omits it and the keyword backstop applies. */
|
|
68217
|
+
secretConfigPaths: array(string()).optional()
|
|
68208
68218
|
});
|
|
68209
68219
|
var DeviceRemovePayloadSchema = object({ deviceId: number() });
|
|
68210
68220
|
var DevicePersistConfigPayloadSchema = object({
|
|
@@ -69875,7 +69885,14 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
69875
69885
|
icon: string().optional(),
|
|
69876
69886
|
/** Addon-owned HTTP route the button navigates to (GET). */
|
|
69877
69887
|
startUrl: string(),
|
|
69878
|
-
stage: LoginStageEnum
|
|
69888
|
+
stage: LoginStageEnum,
|
|
69889
|
+
/**
|
|
69890
|
+
* The provider names an external identity a signed-in user can link to
|
|
69891
|
+
* their own account (D782): `auth.listLinkableProviders` /
|
|
69892
|
+
* `beginExternalLink` offer exactly the redirect methods that set this,
|
|
69893
|
+
* whatever their id. Absent / false — a login button only (magic-link).
|
|
69894
|
+
*/
|
|
69895
|
+
linkable: boolean().optional()
|
|
69879
69896
|
}),
|
|
69880
69897
|
object({
|
|
69881
69898
|
kind: literal("widget"),
|
|
@@ -75310,7 +75327,13 @@ var RetrainFrameSchema = object({
|
|
|
75310
75327
|
sizeBytes: number().int(),
|
|
75311
75328
|
width: number().int(),
|
|
75312
75329
|
height: number().int(),
|
|
75313
|
-
copiedAt: number()
|
|
75330
|
+
copiedAt: number(),
|
|
75331
|
+
/** When the CAMERA captured the frame. Absent on a copy taken before D785. */
|
|
75332
|
+
capturedAt: number().optional(),
|
|
75333
|
+
/** The operator's "every subject in this frame is boxed". Detector
|
|
75334
|
+
* evaluation keeps only complete frames: an unboxed subject would count as
|
|
75335
|
+
* a false positive. */
|
|
75336
|
+
complete: boolean()
|
|
75314
75337
|
});
|
|
75315
75338
|
/** Why a copy-on-select could not be honoured — named, never a silent skip. */
|
|
75316
75339
|
var RetrainCopyRefusalSchema = _enum([
|
|
@@ -75331,6 +75354,51 @@ var RetrainFrameListSchema = object({
|
|
|
75331
75354
|
/** What the page pre-selects — the native key frame when one survives. */
|
|
75332
75355
|
autoPickMediaId: number().int().optional()
|
|
75333
75356
|
});
|
|
75357
|
+
/**
|
|
75358
|
+
* Which frames an annotated export carries. Every field narrows; an empty
|
|
75359
|
+
* filter is every annotated copy. A dataset VERSION is a frozen `frameIds`
|
|
75360
|
+
* list owned by whoever trains (the training orchestrator), so `frameIds` is
|
|
75361
|
+
* the primitive a version export uses; `batchId` re-selects what an earlier
|
|
75362
|
+
* export carried (`exportedInBatch`).
|
|
75363
|
+
*/
|
|
75364
|
+
var RetrainExportFilterSchema = object({
|
|
75365
|
+
deviceIds: array(number()).optional(),
|
|
75366
|
+
frameIds: array(string()).max(2e4).optional(),
|
|
75367
|
+
batchId: string().optional(),
|
|
75368
|
+
/** Only frames the operator marked complete (all subjects boxed). */
|
|
75369
|
+
completeOnly: boolean().optional()
|
|
75370
|
+
});
|
|
75371
|
+
/**
|
|
75372
|
+
* `frames`: the full frame copies, boxes in `annotations.json`.
|
|
75373
|
+
* `crops`: additionally one JPEG per subject, cut with the runtime detail-crop
|
|
75374
|
+
* convention — the classifier layout.
|
|
75375
|
+
*/
|
|
75376
|
+
var RetrainExportLayoutSchema = _enum(["frames", "crops"]);
|
|
75377
|
+
/**
|
|
75378
|
+
* Where `writeRetrainArchive` streams the tar: one HTTP request whose body is
|
|
75379
|
+
* the archive, sent chunk by chunk. Covers a presigned PUT and a provider
|
|
75380
|
+
* addon's data-plane upload route alike. Headers are sent verbatim and never
|
|
75381
|
+
* logged.
|
|
75382
|
+
*/
|
|
75383
|
+
var RetrainArchiveTargetSchema = object({
|
|
75384
|
+
kind: literal("http"),
|
|
75385
|
+
method: _enum(["PUT", "POST"]),
|
|
75386
|
+
url: string().url(),
|
|
75387
|
+
headers: record(string(), string()).optional()
|
|
75388
|
+
});
|
|
75389
|
+
var RetrainArchiveResultSchema = object({
|
|
75390
|
+
batchId: string(),
|
|
75391
|
+
frames: number().int(),
|
|
75392
|
+
crops: number().int(),
|
|
75393
|
+
annotations: number().int(),
|
|
75394
|
+
/** Frames planned but not shipped (unreadable copy, path too long). */
|
|
75395
|
+
missing: number().int(),
|
|
75396
|
+
bytes: number().int(),
|
|
75397
|
+
/** sha256 of the exact bytes sent. */
|
|
75398
|
+
sha256: string(),
|
|
75399
|
+
/** The target's HTTP status. */
|
|
75400
|
+
status: number().int()
|
|
75401
|
+
});
|
|
75334
75402
|
/** What the operator asked the assist to look for. */
|
|
75335
75403
|
var RetrainAssistSubjectSchema = discriminatedUnion("kind", [object({
|
|
75336
75404
|
kind: literal("package"),
|
|
@@ -76125,9 +76193,25 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
76125
76193
|
}), RetrainTransitionResultSchema, {
|
|
76126
76194
|
kind: "mutation",
|
|
76127
76195
|
auth: "admin"
|
|
76128
|
-
}), method(
|
|
76196
|
+
}), method(RetrainExportFilterSchema.extend({ layout: RetrainExportLayoutSchema.optional() }), object({ url: string() }), {
|
|
76129
76197
|
kind: "query",
|
|
76130
76198
|
auth: "admin"
|
|
76199
|
+
}), method(object({
|
|
76200
|
+
deviceId: number(),
|
|
76201
|
+
trackId: string(),
|
|
76202
|
+
frameId: string(),
|
|
76203
|
+
complete: boolean()
|
|
76204
|
+
}), RetrainFrameSchema, {
|
|
76205
|
+
kind: "mutation",
|
|
76206
|
+
auth: "admin"
|
|
76207
|
+
}), method(object({
|
|
76208
|
+
filter: RetrainExportFilterSchema,
|
|
76209
|
+
layout: RetrainExportLayoutSchema,
|
|
76210
|
+
target: RetrainArchiveTargetSchema
|
|
76211
|
+
}), RetrainArchiveResultSchema, {
|
|
76212
|
+
kind: "mutation",
|
|
76213
|
+
auth: "admin",
|
|
76214
|
+
timeoutMs: 60 * 6e4
|
|
76131
76215
|
}), method(object({
|
|
76132
76216
|
/** Which of the three event tables owns the row. */
|
|
76133
76217
|
ownerType: EventOwnerTypeSchema,
|
|
@@ -79457,7 +79541,19 @@ var SsoBridgeClaimsSchema = object({
|
|
|
79457
79541
|
* editing a descriptor must not retroactively extend or shorten a link the
|
|
79458
79542
|
* operator already consented to.
|
|
79459
79543
|
*/
|
|
79460
|
-
refreshTtl: union([number().int().positive(), literal("never")]).optional()
|
|
79544
|
+
refreshTtl: union([number().int().positive(), literal("never")]).optional(),
|
|
79545
|
+
/**
|
|
79546
|
+
* Opaque handle of a hub-side LINK intent (D782). Set by an OIDC callback
|
|
79547
|
+
* that was started from a signed-in user's "Link" button: the finish then
|
|
79548
|
+
* links this identity to the intent's user instead of signing anyone in.
|
|
79549
|
+
* The handle carries no user id — the hub resolves it, single-use.
|
|
79550
|
+
*/
|
|
79551
|
+
linkIntent: string().optional(),
|
|
79552
|
+
/**
|
|
79553
|
+
* Verified `iss` of the id_token behind an OIDC login bridge (D782). A
|
|
79554
|
+
* subject is unique only per issuer, so a link is bound to it.
|
|
79555
|
+
*/
|
|
79556
|
+
issuer: string().optional()
|
|
79461
79557
|
});
|
|
79462
79558
|
method(object({
|
|
79463
79559
|
claims: SsoBridgeClaimsSchema,
|
|
@@ -81392,7 +81488,22 @@ DeviceType.Camera, method(object({ deviceId: number().int().nonnegative() }), ar
|
|
|
81392
81488
|
* field their hints were silently stripped by the schema and the
|
|
81393
81489
|
* adaptive ladder started blind on the client's display size.
|
|
81394
81490
|
*/
|
|
81395
|
-
hints: webrtcClientHintsSchema.optional()
|
|
81491
|
+
hints: webrtcClientHintsSchema.optional(),
|
|
81492
|
+
/**
|
|
81493
|
+
* Talk-back (D771): relay the PEER's audio to the device's speaker
|
|
81494
|
+
* through the `intercom` cap's push-talk triple. When `true` and the
|
|
81495
|
+
* offer lets the peer send audio, the answer's audio is `sendrecv`
|
|
81496
|
+
* and every inbound frame goes to `intercom.pushTalkAudio` for this
|
|
81497
|
+
* `deviceId`; absent/false answers `sendonly`, as for every viewer.
|
|
81498
|
+
*
|
|
81499
|
+
* TRUSTED-CALLER ONLY. Set by the Alexa export for an Echo on a camera
|
|
81500
|
+
* with `intercom`, when the linked user may control that camera. The
|
|
81501
|
+
* hub STRIPS it from every request-bound call (a browser), exactly as
|
|
81502
|
+
* it overwrites `relayOnly` — a viewer's talk permission is the
|
|
81503
|
+
* intercom cap's own surface (share tokens gate it there), and this
|
|
81504
|
+
* flag must not become a second door to the camera's speaker.
|
|
81505
|
+
*/
|
|
81506
|
+
talkback: boolean().optional()
|
|
81396
81507
|
}), object({
|
|
81397
81508
|
sessionId: string(),
|
|
81398
81509
|
sdpAnswer: string()
|
|
@@ -81694,6 +81805,59 @@ var AddonAutoUpdateSchema = ChannelWithInheritSchema;
|
|
|
81694
81805
|
var RestartAddonResultSchema = unknown();
|
|
81695
81806
|
var InstallPackageResultSchema = unknown();
|
|
81696
81807
|
var ReloadPackagesResultSchema = unknown();
|
|
81808
|
+
/**
|
|
81809
|
+
* What an uninstall did on ONE node.
|
|
81810
|
+
* - `uninstalled` — removed: runner(s) stopped, caps gone, code deleted.
|
|
81811
|
+
* - `not-installed` — the node did not have it (nothing to do).
|
|
81812
|
+
* - `refused` — protected / bootstrap package; nothing touched.
|
|
81813
|
+
* - `failed` — attempted and did not complete; `error` says why.
|
|
81814
|
+
* - `pending-reconnect` — the node is OFFLINE: its record was pruned so the
|
|
81815
|
+
* back-fill never returns the package, and the stale-addon sweep removes the
|
|
81816
|
+
* copy when the node registers again (only once the hub no longer has it).
|
|
81817
|
+
*/
|
|
81818
|
+
var UninstallNodeOutcomeSchema = _enum([
|
|
81819
|
+
"uninstalled",
|
|
81820
|
+
"not-installed",
|
|
81821
|
+
"refused",
|
|
81822
|
+
"failed",
|
|
81823
|
+
"pending-reconnect"
|
|
81824
|
+
]);
|
|
81825
|
+
var UninstallNodeResultSchema = object({
|
|
81826
|
+
nodeId: string(),
|
|
81827
|
+
outcome: UninstallNodeOutcomeSchema,
|
|
81828
|
+
error: string().optional(),
|
|
81829
|
+
addonIds: array(string()).readonly(),
|
|
81830
|
+
runnersStopped: array(string()).readonly(),
|
|
81831
|
+
warnings: array(string()).readonly()
|
|
81832
|
+
});
|
|
81833
|
+
var UninstallPackageResultSchema = object({
|
|
81834
|
+
/** Every targeted node ended `uninstalled`, `not-installed` or `pending-reconnect`. */
|
|
81835
|
+
success: boolean(),
|
|
81836
|
+
packageName: string(),
|
|
81837
|
+
results: array(UninstallNodeResultSchema).readonly()
|
|
81838
|
+
});
|
|
81839
|
+
/**
|
|
81840
|
+
* `unreachable` lists online agents whose status read FAILED — absence from
|
|
81841
|
+
* `installations` is only "not installed" for a node that answered (D315).
|
|
81842
|
+
*/
|
|
81843
|
+
var PackageInstallationsSchema = object({
|
|
81844
|
+
installations: array(object({
|
|
81845
|
+
packageName: string(),
|
|
81846
|
+
nodeId: string(),
|
|
81847
|
+
nodeName: string(),
|
|
81848
|
+
isHub: boolean(),
|
|
81849
|
+
isOnline: boolean(),
|
|
81850
|
+
version: string().nullable(),
|
|
81851
|
+
addonIds: array(string()).readonly(),
|
|
81852
|
+
source: _enum(["live", "recorded"]),
|
|
81853
|
+
/** The hub installs this package too. `false` on an agent row = an orphan. */
|
|
81854
|
+
onHub: boolean()
|
|
81855
|
+
})).readonly(),
|
|
81856
|
+
unreachable: array(object({
|
|
81857
|
+
nodeId: string(),
|
|
81858
|
+
error: string()
|
|
81859
|
+
})).readonly()
|
|
81860
|
+
});
|
|
81697
81861
|
var BulkUpdateItemStatusSchema = _enum([
|
|
81698
81862
|
"queued",
|
|
81699
81863
|
"updating",
|
|
@@ -81776,10 +81940,14 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
|
|
|
81776
81940
|
}), method(object({ packageName: string() }), InstallPackageResultSchema, {
|
|
81777
81941
|
kind: "mutation",
|
|
81778
81942
|
auth: "admin"
|
|
81779
|
-
}), method(_void(), boolean()), method(_void(), array(unknown()).readonly()), method(object({
|
|
81943
|
+
}), method(_void(), boolean()), method(_void(), array(unknown()).readonly()), method(object({
|
|
81944
|
+
packageName: string().min(1),
|
|
81945
|
+
nodeId: string().optional(),
|
|
81946
|
+
everywhere: boolean().optional()
|
|
81947
|
+
}), UninstallPackageResultSchema, {
|
|
81780
81948
|
kind: "mutation",
|
|
81781
81949
|
auth: "admin"
|
|
81782
|
-
}), method(_void(), ReloadPackagesResultSchema, {
|
|
81950
|
+
}), method(object({ packageName: string().optional() }), PackageInstallationsSchema, { auth: "admin" }), method(_void(), ReloadPackagesResultSchema, {
|
|
81783
81951
|
kind: "mutation",
|
|
81784
81952
|
auth: "admin"
|
|
81785
81953
|
}), method(object({ query: string().optional() }), array(SearchResultSchema)), method(object({ nodeId: string().optional() }), array(PackageUpdateSchema).readonly(), { auth: "admin" }), method(object({
|
|
@@ -91862,6 +92030,32 @@ var TotpStatusSchema = object({
|
|
|
91862
92030
|
/** Null when no row exists OR the row is still pending confirmation. */
|
|
91863
92031
|
confirmedAt: number().nullable()
|
|
91864
92032
|
});
|
|
92033
|
+
/**
|
|
92034
|
+
* user-management — singleton capability for user accounts, API keys,
|
|
92035
|
+
* and scoped tokens.
|
|
92036
|
+
*
|
|
92037
|
+
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
92038
|
+
* — the subset check on `setUserScopes` / `createScopedToken` is moot
|
|
92039
|
+
* because non-admins never reach these. If/when we open non-admin
|
|
92040
|
+
* delegation, structural caller-scope subset check goes inside the
|
|
92041
|
+
* provider.
|
|
92042
|
+
*/
|
|
92043
|
+
var ExternalIdentitySchema = object({
|
|
92044
|
+
/** Login-method id of the provider instance, e.g. `auth-oidc/authentik`. */
|
|
92045
|
+
provider: string(),
|
|
92046
|
+
/** The IdP's stable subject (`sub`) for this account. */
|
|
92047
|
+
subject: string(),
|
|
92048
|
+
/** The verified `iss` of the IdP the identity was linked under — `sub` is unique only per issuer. */
|
|
92049
|
+
issuer: string(),
|
|
92050
|
+
userId: string(),
|
|
92051
|
+
/** What the IdP called the account at link time (username / email) — display only. */
|
|
92052
|
+
label: string().optional(),
|
|
92053
|
+
linkedAt: number()
|
|
92054
|
+
});
|
|
92055
|
+
var ExternalIdentityKeySchema = object({
|
|
92056
|
+
provider: string().min(1),
|
|
92057
|
+
subject: string().min(1)
|
|
92058
|
+
});
|
|
91865
92059
|
method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserInputSchema, UserSummarySchema, {
|
|
91866
92060
|
kind: "mutation",
|
|
91867
92061
|
auth: "admin",
|
|
@@ -91975,7 +92169,22 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
91975
92169
|
userId: string(),
|
|
91976
92170
|
username: string(),
|
|
91977
92171
|
scopes: array(TokenScopeSchema)
|
|
91978
|
-
}).nullable(), { access: "view" }), method(
|
|
92172
|
+
}).nullable(), { access: "view" }), method(object({ userId: string() }), array(ExternalIdentitySchema), { auth: "admin" }), method(ExternalIdentityKeySchema, object({
|
|
92173
|
+
userId: string(),
|
|
92174
|
+
issuer: string()
|
|
92175
|
+
}).nullable(), { auth: "admin" }), method(ExternalIdentityKeySchema.extend({
|
|
92176
|
+
userId: string(),
|
|
92177
|
+
issuer: string().min(1),
|
|
92178
|
+
label: string().optional()
|
|
92179
|
+
}), object({ success: literal(true) }), {
|
|
92180
|
+
kind: "mutation",
|
|
92181
|
+
auth: "admin",
|
|
92182
|
+
access: "create"
|
|
92183
|
+
}), method(ExternalIdentityKeySchema.extend({ userId: string() }), object({ success: boolean() }), {
|
|
92184
|
+
kind: "mutation",
|
|
92185
|
+
auth: "admin",
|
|
92186
|
+
access: "delete"
|
|
92187
|
+
}), method(_void(), array(OauthSessionSummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: boolean() }), {
|
|
91979
92188
|
kind: "mutation",
|
|
91980
92189
|
auth: "admin",
|
|
91981
92190
|
access: "delete"
|
|
@@ -94385,6 +94594,12 @@ Object.freeze({
|
|
|
94385
94594
|
addonId: null,
|
|
94386
94595
|
access: "view"
|
|
94387
94596
|
},
|
|
94597
|
+
"addons.listInstallations": {
|
|
94598
|
+
capName: "addons",
|
|
94599
|
+
capScope: "system",
|
|
94600
|
+
addonId: null,
|
|
94601
|
+
access: "view"
|
|
94602
|
+
},
|
|
94388
94603
|
"addons.listJobs": {
|
|
94389
94604
|
capName: "addons",
|
|
94390
94605
|
capScope: "system",
|
|
@@ -98609,6 +98824,12 @@ Object.freeze({
|
|
|
98609
98824
|
addonId: null,
|
|
98610
98825
|
access: "create"
|
|
98611
98826
|
},
|
|
98827
|
+
"pipelineAnalytics.setRetrainFrameComplete": {
|
|
98828
|
+
capName: "pipeline-analytics",
|
|
98829
|
+
capScope: "device",
|
|
98830
|
+
addonId: null,
|
|
98831
|
+
access: "create"
|
|
98832
|
+
},
|
|
98612
98833
|
"pipelineAnalytics.setTrackFlags": {
|
|
98613
98834
|
capName: "pipeline-analytics",
|
|
98614
98835
|
capScope: "device",
|
|
@@ -98645,6 +98866,12 @@ Object.freeze({
|
|
|
98645
98866
|
addonId: null,
|
|
98646
98867
|
access: "delete"
|
|
98647
98868
|
},
|
|
98869
|
+
"pipelineAnalytics.writeRetrainArchive": {
|
|
98870
|
+
capName: "pipeline-analytics",
|
|
98871
|
+
capScope: "device",
|
|
98872
|
+
addonId: null,
|
|
98873
|
+
access: "create"
|
|
98874
|
+
},
|
|
98648
98875
|
"pipelineExecutor.cacheFrameInPool": {
|
|
98649
98876
|
capName: "pipeline-executor",
|
|
98650
98877
|
capScope: "system",
|
|
@@ -100997,18 +101224,36 @@ Object.freeze({
|
|
|
100997
101224
|
addonId: null,
|
|
100998
101225
|
access: "delete"
|
|
100999
101226
|
},
|
|
101227
|
+
"userManagement.findUserByExternalIdentity": {
|
|
101228
|
+
capName: "user-management",
|
|
101229
|
+
capScope: "system",
|
|
101230
|
+
addonId: null,
|
|
101231
|
+
access: "view"
|
|
101232
|
+
},
|
|
101000
101233
|
"userManagement.getTotpStatus": {
|
|
101001
101234
|
capName: "user-management",
|
|
101002
101235
|
capScope: "system",
|
|
101003
101236
|
addonId: null,
|
|
101004
101237
|
access: "view"
|
|
101005
101238
|
},
|
|
101239
|
+
"userManagement.linkExternalIdentity": {
|
|
101240
|
+
capName: "user-management",
|
|
101241
|
+
capScope: "system",
|
|
101242
|
+
addonId: null,
|
|
101243
|
+
access: "create"
|
|
101244
|
+
},
|
|
101006
101245
|
"userManagement.listApiKeys": {
|
|
101007
101246
|
capName: "user-management",
|
|
101008
101247
|
capScope: "system",
|
|
101009
101248
|
addonId: null,
|
|
101010
101249
|
access: "view"
|
|
101011
101250
|
},
|
|
101251
|
+
"userManagement.listExternalIdentities": {
|
|
101252
|
+
capName: "user-management",
|
|
101253
|
+
capScope: "system",
|
|
101254
|
+
addonId: null,
|
|
101255
|
+
access: "view"
|
|
101256
|
+
},
|
|
101012
101257
|
"userManagement.listOauthSessions": {
|
|
101013
101258
|
capName: "user-management",
|
|
101014
101259
|
capScope: "system",
|
|
@@ -101087,6 +101332,12 @@ Object.freeze({
|
|
|
101087
101332
|
addonId: null,
|
|
101088
101333
|
access: "create"
|
|
101089
101334
|
},
|
|
101335
|
+
"userManagement.unlinkExternalIdentity": {
|
|
101336
|
+
capName: "user-management",
|
|
101337
|
+
capScope: "system",
|
|
101338
|
+
addonId: null,
|
|
101339
|
+
access: "delete"
|
|
101340
|
+
},
|
|
101090
101341
|
"userManagement.updateUser": {
|
|
101091
101342
|
capName: "user-management",
|
|
101092
101343
|
capScope: "system",
|
|
@@ -104426,6 +104677,11 @@ Object.freeze({
|
|
|
104426
104677
|
form: "single",
|
|
104427
104678
|
optional: false
|
|
104428
104679
|
}],
|
|
104680
|
+
"pipelineAnalytics.setRetrainFrameComplete": [{
|
|
104681
|
+
name: "deviceId",
|
|
104682
|
+
form: "single",
|
|
104683
|
+
optional: false
|
|
104684
|
+
}],
|
|
104429
104685
|
"pipelineAnalytics.setTrackFlags": [{
|
|
104430
104686
|
name: "deviceId",
|
|
104431
104687
|
form: "single",
|
|
@@ -106511,7 +106767,7 @@ var DreameRegionSchema = _enum(DREAME_REGIONS);
|
|
|
106511
106767
|
*/
|
|
106512
106768
|
var dreameConfigSchema = object({
|
|
106513
106769
|
username: string().min(1).describe("Dreamehome account email / username"),
|
|
106514
|
-
password: string().min(1).describe("Dreamehome account password"),
|
|
106770
|
+
password: string().min(1).describe("Dreamehome account password").meta({ secret: true }),
|
|
106515
106771
|
region: DreameRegionSchema.default("eu").describe("Dreame cloud region"),
|
|
106516
106772
|
pollIntervalMs: preprocess((v) => v === "" || v === null ? void 0 : v, number().int().min(0).max(36e5).default(3e4)).describe("Poll fallback interval (ms) while MQTT push is down — 0 disables")
|
|
106517
106773
|
});
|
|
@@ -108152,7 +108408,7 @@ var dreameChildSchema = object({
|
|
|
108152
108408
|
}).optional(),
|
|
108153
108409
|
navigationDisabledEntryIds: array(string()).optional(),
|
|
108154
108410
|
/** Privacy PIN set at pairing — required to wake a coded camera (camera child only). */
|
|
108155
|
-
navigationAccessCode: string().optional(),
|
|
108411
|
+
navigationAccessCode: string().optional().meta({ secret: true }),
|
|
108156
108412
|
/**
|
|
108157
108413
|
* The video backend the robot should sit on (camera child only).
|
|
108158
108414
|
*
|
package/dist/addon.mjs
CHANGED
|
@@ -58270,7 +58270,7 @@ var ZodIssueCode = {
|
|
|
58270
58270
|
var ZodFirstPartyTypeKind;
|
|
58271
58271
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
58272
58272
|
//#endregion
|
|
58273
|
-
//#region ../types/dist/sleep-
|
|
58273
|
+
//#region ../types/dist/sleep-B0JG7-_F.mjs
|
|
58274
58274
|
/**
|
|
58275
58275
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
58276
58276
|
* window to float samples (D455).
|
|
@@ -67996,6 +67996,10 @@ var DeviceInfoSchema = object({
|
|
|
67996
67996
|
isCamera: boolean(),
|
|
67997
67997
|
/** Current config values — serializable snapshot */
|
|
67998
67998
|
config: record(string(), unknown()),
|
|
67999
|
+
/** Paths inside `config` the device's schema declares secret (D783) —
|
|
68000
|
+
* what the non-admin redaction withholds. Paths, never values. Absent
|
|
68001
|
+
* when the owning runner has not reported them. */
|
|
68002
|
+
secretConfigPaths: array(string()).optional(),
|
|
67999
68003
|
/** Hardware + identity blob (manufacturer / model / firmware / sn /
|
|
68000
68004
|
* uid / mac / …). Populated by drivers; editable via setMetadata. */
|
|
68001
68005
|
metadata: record(string(), unknown()).nullable().optional(),
|
|
@@ -68201,7 +68205,13 @@ var DeviceRegisterPayloadSchema = object({
|
|
|
68201
68205
|
* call (workers re-register on init), so probe-driven updates
|
|
68202
68206
|
* (e.g. PTZ flag flipping after the abilities probe) propagate. */
|
|
68203
68207
|
features: array(string()).optional(),
|
|
68204
|
-
config: record(string(), unknown())
|
|
68208
|
+
config: record(string(), unknown()),
|
|
68209
|
+
/** Config paths the device's own schema DECLARES secret
|
|
68210
|
+
* (`.meta({ secret: true })` — dotted, `[]` for array items, e.g.
|
|
68211
|
+
* `connection.password`). Re-published on every register; the non-admin
|
|
68212
|
+
* redaction withholds them at any depth (D783). Optional: an older runner
|
|
68213
|
+
* omits it and the keyword backstop applies. */
|
|
68214
|
+
secretConfigPaths: array(string()).optional()
|
|
68205
68215
|
});
|
|
68206
68216
|
var DeviceRemovePayloadSchema = object({ deviceId: number() });
|
|
68207
68217
|
var DevicePersistConfigPayloadSchema = object({
|
|
@@ -69872,7 +69882,14 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
69872
69882
|
icon: string().optional(),
|
|
69873
69883
|
/** Addon-owned HTTP route the button navigates to (GET). */
|
|
69874
69884
|
startUrl: string(),
|
|
69875
|
-
stage: LoginStageEnum
|
|
69885
|
+
stage: LoginStageEnum,
|
|
69886
|
+
/**
|
|
69887
|
+
* The provider names an external identity a signed-in user can link to
|
|
69888
|
+
* their own account (D782): `auth.listLinkableProviders` /
|
|
69889
|
+
* `beginExternalLink` offer exactly the redirect methods that set this,
|
|
69890
|
+
* whatever their id. Absent / false — a login button only (magic-link).
|
|
69891
|
+
*/
|
|
69892
|
+
linkable: boolean().optional()
|
|
69876
69893
|
}),
|
|
69877
69894
|
object({
|
|
69878
69895
|
kind: literal("widget"),
|
|
@@ -75307,7 +75324,13 @@ var RetrainFrameSchema = object({
|
|
|
75307
75324
|
sizeBytes: number().int(),
|
|
75308
75325
|
width: number().int(),
|
|
75309
75326
|
height: number().int(),
|
|
75310
|
-
copiedAt: number()
|
|
75327
|
+
copiedAt: number(),
|
|
75328
|
+
/** When the CAMERA captured the frame. Absent on a copy taken before D785. */
|
|
75329
|
+
capturedAt: number().optional(),
|
|
75330
|
+
/** The operator's "every subject in this frame is boxed". Detector
|
|
75331
|
+
* evaluation keeps only complete frames: an unboxed subject would count as
|
|
75332
|
+
* a false positive. */
|
|
75333
|
+
complete: boolean()
|
|
75311
75334
|
});
|
|
75312
75335
|
/** Why a copy-on-select could not be honoured — named, never a silent skip. */
|
|
75313
75336
|
var RetrainCopyRefusalSchema = _enum([
|
|
@@ -75328,6 +75351,51 @@ var RetrainFrameListSchema = object({
|
|
|
75328
75351
|
/** What the page pre-selects — the native key frame when one survives. */
|
|
75329
75352
|
autoPickMediaId: number().int().optional()
|
|
75330
75353
|
});
|
|
75354
|
+
/**
|
|
75355
|
+
* Which frames an annotated export carries. Every field narrows; an empty
|
|
75356
|
+
* filter is every annotated copy. A dataset VERSION is a frozen `frameIds`
|
|
75357
|
+
* list owned by whoever trains (the training orchestrator), so `frameIds` is
|
|
75358
|
+
* the primitive a version export uses; `batchId` re-selects what an earlier
|
|
75359
|
+
* export carried (`exportedInBatch`).
|
|
75360
|
+
*/
|
|
75361
|
+
var RetrainExportFilterSchema = object({
|
|
75362
|
+
deviceIds: array(number()).optional(),
|
|
75363
|
+
frameIds: array(string()).max(2e4).optional(),
|
|
75364
|
+
batchId: string().optional(),
|
|
75365
|
+
/** Only frames the operator marked complete (all subjects boxed). */
|
|
75366
|
+
completeOnly: boolean().optional()
|
|
75367
|
+
});
|
|
75368
|
+
/**
|
|
75369
|
+
* `frames`: the full frame copies, boxes in `annotations.json`.
|
|
75370
|
+
* `crops`: additionally one JPEG per subject, cut with the runtime detail-crop
|
|
75371
|
+
* convention — the classifier layout.
|
|
75372
|
+
*/
|
|
75373
|
+
var RetrainExportLayoutSchema = _enum(["frames", "crops"]);
|
|
75374
|
+
/**
|
|
75375
|
+
* Where `writeRetrainArchive` streams the tar: one HTTP request whose body is
|
|
75376
|
+
* the archive, sent chunk by chunk. Covers a presigned PUT and a provider
|
|
75377
|
+
* addon's data-plane upload route alike. Headers are sent verbatim and never
|
|
75378
|
+
* logged.
|
|
75379
|
+
*/
|
|
75380
|
+
var RetrainArchiveTargetSchema = object({
|
|
75381
|
+
kind: literal("http"),
|
|
75382
|
+
method: _enum(["PUT", "POST"]),
|
|
75383
|
+
url: string().url(),
|
|
75384
|
+
headers: record(string(), string()).optional()
|
|
75385
|
+
});
|
|
75386
|
+
var RetrainArchiveResultSchema = object({
|
|
75387
|
+
batchId: string(),
|
|
75388
|
+
frames: number().int(),
|
|
75389
|
+
crops: number().int(),
|
|
75390
|
+
annotations: number().int(),
|
|
75391
|
+
/** Frames planned but not shipped (unreadable copy, path too long). */
|
|
75392
|
+
missing: number().int(),
|
|
75393
|
+
bytes: number().int(),
|
|
75394
|
+
/** sha256 of the exact bytes sent. */
|
|
75395
|
+
sha256: string(),
|
|
75396
|
+
/** The target's HTTP status. */
|
|
75397
|
+
status: number().int()
|
|
75398
|
+
});
|
|
75331
75399
|
/** What the operator asked the assist to look for. */
|
|
75332
75400
|
var RetrainAssistSubjectSchema = discriminatedUnion("kind", [object({
|
|
75333
75401
|
kind: literal("package"),
|
|
@@ -76122,9 +76190,25 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
76122
76190
|
}), RetrainTransitionResultSchema, {
|
|
76123
76191
|
kind: "mutation",
|
|
76124
76192
|
auth: "admin"
|
|
76125
|
-
}), method(
|
|
76193
|
+
}), method(RetrainExportFilterSchema.extend({ layout: RetrainExportLayoutSchema.optional() }), object({ url: string() }), {
|
|
76126
76194
|
kind: "query",
|
|
76127
76195
|
auth: "admin"
|
|
76196
|
+
}), method(object({
|
|
76197
|
+
deviceId: number(),
|
|
76198
|
+
trackId: string(),
|
|
76199
|
+
frameId: string(),
|
|
76200
|
+
complete: boolean()
|
|
76201
|
+
}), RetrainFrameSchema, {
|
|
76202
|
+
kind: "mutation",
|
|
76203
|
+
auth: "admin"
|
|
76204
|
+
}), method(object({
|
|
76205
|
+
filter: RetrainExportFilterSchema,
|
|
76206
|
+
layout: RetrainExportLayoutSchema,
|
|
76207
|
+
target: RetrainArchiveTargetSchema
|
|
76208
|
+
}), RetrainArchiveResultSchema, {
|
|
76209
|
+
kind: "mutation",
|
|
76210
|
+
auth: "admin",
|
|
76211
|
+
timeoutMs: 60 * 6e4
|
|
76128
76212
|
}), method(object({
|
|
76129
76213
|
/** Which of the three event tables owns the row. */
|
|
76130
76214
|
ownerType: EventOwnerTypeSchema,
|
|
@@ -79454,7 +79538,19 @@ var SsoBridgeClaimsSchema = object({
|
|
|
79454
79538
|
* editing a descriptor must not retroactively extend or shorten a link the
|
|
79455
79539
|
* operator already consented to.
|
|
79456
79540
|
*/
|
|
79457
|
-
refreshTtl: union([number().int().positive(), literal("never")]).optional()
|
|
79541
|
+
refreshTtl: union([number().int().positive(), literal("never")]).optional(),
|
|
79542
|
+
/**
|
|
79543
|
+
* Opaque handle of a hub-side LINK intent (D782). Set by an OIDC callback
|
|
79544
|
+
* that was started from a signed-in user's "Link" button: the finish then
|
|
79545
|
+
* links this identity to the intent's user instead of signing anyone in.
|
|
79546
|
+
* The handle carries no user id — the hub resolves it, single-use.
|
|
79547
|
+
*/
|
|
79548
|
+
linkIntent: string().optional(),
|
|
79549
|
+
/**
|
|
79550
|
+
* Verified `iss` of the id_token behind an OIDC login bridge (D782). A
|
|
79551
|
+
* subject is unique only per issuer, so a link is bound to it.
|
|
79552
|
+
*/
|
|
79553
|
+
issuer: string().optional()
|
|
79458
79554
|
});
|
|
79459
79555
|
method(object({
|
|
79460
79556
|
claims: SsoBridgeClaimsSchema,
|
|
@@ -81389,7 +81485,22 @@ DeviceType.Camera, method(object({ deviceId: number().int().nonnegative() }), ar
|
|
|
81389
81485
|
* field their hints were silently stripped by the schema and the
|
|
81390
81486
|
* adaptive ladder started blind on the client's display size.
|
|
81391
81487
|
*/
|
|
81392
|
-
hints: webrtcClientHintsSchema.optional()
|
|
81488
|
+
hints: webrtcClientHintsSchema.optional(),
|
|
81489
|
+
/**
|
|
81490
|
+
* Talk-back (D771): relay the PEER's audio to the device's speaker
|
|
81491
|
+
* through the `intercom` cap's push-talk triple. When `true` and the
|
|
81492
|
+
* offer lets the peer send audio, the answer's audio is `sendrecv`
|
|
81493
|
+
* and every inbound frame goes to `intercom.pushTalkAudio` for this
|
|
81494
|
+
* `deviceId`; absent/false answers `sendonly`, as for every viewer.
|
|
81495
|
+
*
|
|
81496
|
+
* TRUSTED-CALLER ONLY. Set by the Alexa export for an Echo on a camera
|
|
81497
|
+
* with `intercom`, when the linked user may control that camera. The
|
|
81498
|
+
* hub STRIPS it from every request-bound call (a browser), exactly as
|
|
81499
|
+
* it overwrites `relayOnly` — a viewer's talk permission is the
|
|
81500
|
+
* intercom cap's own surface (share tokens gate it there), and this
|
|
81501
|
+
* flag must not become a second door to the camera's speaker.
|
|
81502
|
+
*/
|
|
81503
|
+
talkback: boolean().optional()
|
|
81393
81504
|
}), object({
|
|
81394
81505
|
sessionId: string(),
|
|
81395
81506
|
sdpAnswer: string()
|
|
@@ -81691,6 +81802,59 @@ var AddonAutoUpdateSchema = ChannelWithInheritSchema;
|
|
|
81691
81802
|
var RestartAddonResultSchema = unknown();
|
|
81692
81803
|
var InstallPackageResultSchema = unknown();
|
|
81693
81804
|
var ReloadPackagesResultSchema = unknown();
|
|
81805
|
+
/**
|
|
81806
|
+
* What an uninstall did on ONE node.
|
|
81807
|
+
* - `uninstalled` — removed: runner(s) stopped, caps gone, code deleted.
|
|
81808
|
+
* - `not-installed` — the node did not have it (nothing to do).
|
|
81809
|
+
* - `refused` — protected / bootstrap package; nothing touched.
|
|
81810
|
+
* - `failed` — attempted and did not complete; `error` says why.
|
|
81811
|
+
* - `pending-reconnect` — the node is OFFLINE: its record was pruned so the
|
|
81812
|
+
* back-fill never returns the package, and the stale-addon sweep removes the
|
|
81813
|
+
* copy when the node registers again (only once the hub no longer has it).
|
|
81814
|
+
*/
|
|
81815
|
+
var UninstallNodeOutcomeSchema = _enum([
|
|
81816
|
+
"uninstalled",
|
|
81817
|
+
"not-installed",
|
|
81818
|
+
"refused",
|
|
81819
|
+
"failed",
|
|
81820
|
+
"pending-reconnect"
|
|
81821
|
+
]);
|
|
81822
|
+
var UninstallNodeResultSchema = object({
|
|
81823
|
+
nodeId: string(),
|
|
81824
|
+
outcome: UninstallNodeOutcomeSchema,
|
|
81825
|
+
error: string().optional(),
|
|
81826
|
+
addonIds: array(string()).readonly(),
|
|
81827
|
+
runnersStopped: array(string()).readonly(),
|
|
81828
|
+
warnings: array(string()).readonly()
|
|
81829
|
+
});
|
|
81830
|
+
var UninstallPackageResultSchema = object({
|
|
81831
|
+
/** Every targeted node ended `uninstalled`, `not-installed` or `pending-reconnect`. */
|
|
81832
|
+
success: boolean(),
|
|
81833
|
+
packageName: string(),
|
|
81834
|
+
results: array(UninstallNodeResultSchema).readonly()
|
|
81835
|
+
});
|
|
81836
|
+
/**
|
|
81837
|
+
* `unreachable` lists online agents whose status read FAILED — absence from
|
|
81838
|
+
* `installations` is only "not installed" for a node that answered (D315).
|
|
81839
|
+
*/
|
|
81840
|
+
var PackageInstallationsSchema = object({
|
|
81841
|
+
installations: array(object({
|
|
81842
|
+
packageName: string(),
|
|
81843
|
+
nodeId: string(),
|
|
81844
|
+
nodeName: string(),
|
|
81845
|
+
isHub: boolean(),
|
|
81846
|
+
isOnline: boolean(),
|
|
81847
|
+
version: string().nullable(),
|
|
81848
|
+
addonIds: array(string()).readonly(),
|
|
81849
|
+
source: _enum(["live", "recorded"]),
|
|
81850
|
+
/** The hub installs this package too. `false` on an agent row = an orphan. */
|
|
81851
|
+
onHub: boolean()
|
|
81852
|
+
})).readonly(),
|
|
81853
|
+
unreachable: array(object({
|
|
81854
|
+
nodeId: string(),
|
|
81855
|
+
error: string()
|
|
81856
|
+
})).readonly()
|
|
81857
|
+
});
|
|
81694
81858
|
var BulkUpdateItemStatusSchema = _enum([
|
|
81695
81859
|
"queued",
|
|
81696
81860
|
"updating",
|
|
@@ -81773,10 +81937,14 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
|
|
|
81773
81937
|
}), method(object({ packageName: string() }), InstallPackageResultSchema, {
|
|
81774
81938
|
kind: "mutation",
|
|
81775
81939
|
auth: "admin"
|
|
81776
|
-
}), method(_void(), boolean()), method(_void(), array(unknown()).readonly()), method(object({
|
|
81940
|
+
}), method(_void(), boolean()), method(_void(), array(unknown()).readonly()), method(object({
|
|
81941
|
+
packageName: string().min(1),
|
|
81942
|
+
nodeId: string().optional(),
|
|
81943
|
+
everywhere: boolean().optional()
|
|
81944
|
+
}), UninstallPackageResultSchema, {
|
|
81777
81945
|
kind: "mutation",
|
|
81778
81946
|
auth: "admin"
|
|
81779
|
-
}), method(_void(), ReloadPackagesResultSchema, {
|
|
81947
|
+
}), method(object({ packageName: string().optional() }), PackageInstallationsSchema, { auth: "admin" }), method(_void(), ReloadPackagesResultSchema, {
|
|
81780
81948
|
kind: "mutation",
|
|
81781
81949
|
auth: "admin"
|
|
81782
81950
|
}), method(object({ query: string().optional() }), array(SearchResultSchema)), method(object({ nodeId: string().optional() }), array(PackageUpdateSchema).readonly(), { auth: "admin" }), method(object({
|
|
@@ -91859,6 +92027,32 @@ var TotpStatusSchema = object({
|
|
|
91859
92027
|
/** Null when no row exists OR the row is still pending confirmation. */
|
|
91860
92028
|
confirmedAt: number().nullable()
|
|
91861
92029
|
});
|
|
92030
|
+
/**
|
|
92031
|
+
* user-management — singleton capability for user accounts, API keys,
|
|
92032
|
+
* and scoped tokens.
|
|
92033
|
+
*
|
|
92034
|
+
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
92035
|
+
* — the subset check on `setUserScopes` / `createScopedToken` is moot
|
|
92036
|
+
* because non-admins never reach these. If/when we open non-admin
|
|
92037
|
+
* delegation, structural caller-scope subset check goes inside the
|
|
92038
|
+
* provider.
|
|
92039
|
+
*/
|
|
92040
|
+
var ExternalIdentitySchema = object({
|
|
92041
|
+
/** Login-method id of the provider instance, e.g. `auth-oidc/authentik`. */
|
|
92042
|
+
provider: string(),
|
|
92043
|
+
/** The IdP's stable subject (`sub`) for this account. */
|
|
92044
|
+
subject: string(),
|
|
92045
|
+
/** The verified `iss` of the IdP the identity was linked under — `sub` is unique only per issuer. */
|
|
92046
|
+
issuer: string(),
|
|
92047
|
+
userId: string(),
|
|
92048
|
+
/** What the IdP called the account at link time (username / email) — display only. */
|
|
92049
|
+
label: string().optional(),
|
|
92050
|
+
linkedAt: number()
|
|
92051
|
+
});
|
|
92052
|
+
var ExternalIdentityKeySchema = object({
|
|
92053
|
+
provider: string().min(1),
|
|
92054
|
+
subject: string().min(1)
|
|
92055
|
+
});
|
|
91862
92056
|
method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserInputSchema, UserSummarySchema, {
|
|
91863
92057
|
kind: "mutation",
|
|
91864
92058
|
auth: "admin",
|
|
@@ -91972,7 +92166,22 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
91972
92166
|
userId: string(),
|
|
91973
92167
|
username: string(),
|
|
91974
92168
|
scopes: array(TokenScopeSchema)
|
|
91975
|
-
}).nullable(), { access: "view" }), method(
|
|
92169
|
+
}).nullable(), { access: "view" }), method(object({ userId: string() }), array(ExternalIdentitySchema), { auth: "admin" }), method(ExternalIdentityKeySchema, object({
|
|
92170
|
+
userId: string(),
|
|
92171
|
+
issuer: string()
|
|
92172
|
+
}).nullable(), { auth: "admin" }), method(ExternalIdentityKeySchema.extend({
|
|
92173
|
+
userId: string(),
|
|
92174
|
+
issuer: string().min(1),
|
|
92175
|
+
label: string().optional()
|
|
92176
|
+
}), object({ success: literal(true) }), {
|
|
92177
|
+
kind: "mutation",
|
|
92178
|
+
auth: "admin",
|
|
92179
|
+
access: "create"
|
|
92180
|
+
}), method(ExternalIdentityKeySchema.extend({ userId: string() }), object({ success: boolean() }), {
|
|
92181
|
+
kind: "mutation",
|
|
92182
|
+
auth: "admin",
|
|
92183
|
+
access: "delete"
|
|
92184
|
+
}), method(_void(), array(OauthSessionSummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: boolean() }), {
|
|
91976
92185
|
kind: "mutation",
|
|
91977
92186
|
auth: "admin",
|
|
91978
92187
|
access: "delete"
|
|
@@ -94382,6 +94591,12 @@ Object.freeze({
|
|
|
94382
94591
|
addonId: null,
|
|
94383
94592
|
access: "view"
|
|
94384
94593
|
},
|
|
94594
|
+
"addons.listInstallations": {
|
|
94595
|
+
capName: "addons",
|
|
94596
|
+
capScope: "system",
|
|
94597
|
+
addonId: null,
|
|
94598
|
+
access: "view"
|
|
94599
|
+
},
|
|
94385
94600
|
"addons.listJobs": {
|
|
94386
94601
|
capName: "addons",
|
|
94387
94602
|
capScope: "system",
|
|
@@ -98606,6 +98821,12 @@ Object.freeze({
|
|
|
98606
98821
|
addonId: null,
|
|
98607
98822
|
access: "create"
|
|
98608
98823
|
},
|
|
98824
|
+
"pipelineAnalytics.setRetrainFrameComplete": {
|
|
98825
|
+
capName: "pipeline-analytics",
|
|
98826
|
+
capScope: "device",
|
|
98827
|
+
addonId: null,
|
|
98828
|
+
access: "create"
|
|
98829
|
+
},
|
|
98609
98830
|
"pipelineAnalytics.setTrackFlags": {
|
|
98610
98831
|
capName: "pipeline-analytics",
|
|
98611
98832
|
capScope: "device",
|
|
@@ -98642,6 +98863,12 @@ Object.freeze({
|
|
|
98642
98863
|
addonId: null,
|
|
98643
98864
|
access: "delete"
|
|
98644
98865
|
},
|
|
98866
|
+
"pipelineAnalytics.writeRetrainArchive": {
|
|
98867
|
+
capName: "pipeline-analytics",
|
|
98868
|
+
capScope: "device",
|
|
98869
|
+
addonId: null,
|
|
98870
|
+
access: "create"
|
|
98871
|
+
},
|
|
98645
98872
|
"pipelineExecutor.cacheFrameInPool": {
|
|
98646
98873
|
capName: "pipeline-executor",
|
|
98647
98874
|
capScope: "system",
|
|
@@ -100994,18 +101221,36 @@ Object.freeze({
|
|
|
100994
101221
|
addonId: null,
|
|
100995
101222
|
access: "delete"
|
|
100996
101223
|
},
|
|
101224
|
+
"userManagement.findUserByExternalIdentity": {
|
|
101225
|
+
capName: "user-management",
|
|
101226
|
+
capScope: "system",
|
|
101227
|
+
addonId: null,
|
|
101228
|
+
access: "view"
|
|
101229
|
+
},
|
|
100997
101230
|
"userManagement.getTotpStatus": {
|
|
100998
101231
|
capName: "user-management",
|
|
100999
101232
|
capScope: "system",
|
|
101000
101233
|
addonId: null,
|
|
101001
101234
|
access: "view"
|
|
101002
101235
|
},
|
|
101236
|
+
"userManagement.linkExternalIdentity": {
|
|
101237
|
+
capName: "user-management",
|
|
101238
|
+
capScope: "system",
|
|
101239
|
+
addonId: null,
|
|
101240
|
+
access: "create"
|
|
101241
|
+
},
|
|
101003
101242
|
"userManagement.listApiKeys": {
|
|
101004
101243
|
capName: "user-management",
|
|
101005
101244
|
capScope: "system",
|
|
101006
101245
|
addonId: null,
|
|
101007
101246
|
access: "view"
|
|
101008
101247
|
},
|
|
101248
|
+
"userManagement.listExternalIdentities": {
|
|
101249
|
+
capName: "user-management",
|
|
101250
|
+
capScope: "system",
|
|
101251
|
+
addonId: null,
|
|
101252
|
+
access: "view"
|
|
101253
|
+
},
|
|
101009
101254
|
"userManagement.listOauthSessions": {
|
|
101010
101255
|
capName: "user-management",
|
|
101011
101256
|
capScope: "system",
|
|
@@ -101084,6 +101329,12 @@ Object.freeze({
|
|
|
101084
101329
|
addonId: null,
|
|
101085
101330
|
access: "create"
|
|
101086
101331
|
},
|
|
101332
|
+
"userManagement.unlinkExternalIdentity": {
|
|
101333
|
+
capName: "user-management",
|
|
101334
|
+
capScope: "system",
|
|
101335
|
+
addonId: null,
|
|
101336
|
+
access: "delete"
|
|
101337
|
+
},
|
|
101087
101338
|
"userManagement.updateUser": {
|
|
101088
101339
|
capName: "user-management",
|
|
101089
101340
|
capScope: "system",
|
|
@@ -104423,6 +104674,11 @@ Object.freeze({
|
|
|
104423
104674
|
form: "single",
|
|
104424
104675
|
optional: false
|
|
104425
104676
|
}],
|
|
104677
|
+
"pipelineAnalytics.setRetrainFrameComplete": [{
|
|
104678
|
+
name: "deviceId",
|
|
104679
|
+
form: "single",
|
|
104680
|
+
optional: false
|
|
104681
|
+
}],
|
|
104426
104682
|
"pipelineAnalytics.setTrackFlags": [{
|
|
104427
104683
|
name: "deviceId",
|
|
104428
104684
|
form: "single",
|
|
@@ -106508,7 +106764,7 @@ var DreameRegionSchema = _enum(DREAME_REGIONS);
|
|
|
106508
106764
|
*/
|
|
106509
106765
|
var dreameConfigSchema = object({
|
|
106510
106766
|
username: string().min(1).describe("Dreamehome account email / username"),
|
|
106511
|
-
password: string().min(1).describe("Dreamehome account password"),
|
|
106767
|
+
password: string().min(1).describe("Dreamehome account password").meta({ secret: true }),
|
|
106512
106768
|
region: DreameRegionSchema.default("eu").describe("Dreame cloud region"),
|
|
106513
106769
|
pollIntervalMs: preprocess((v) => v === "" || v === null ? void 0 : v, number().int().min(0).max(36e5).default(3e4)).describe("Poll fallback interval (ms) while MQTT push is down — 0 disables")
|
|
106514
106770
|
});
|
|
@@ -108149,7 +108405,7 @@ var dreameChildSchema = object({
|
|
|
108149
108405
|
}).optional(),
|
|
108150
108406
|
navigationDisabledEntryIds: array(string()).optional(),
|
|
108151
108407
|
/** Privacy PIN set at pairing — required to wake a coded camera (camera child only). */
|
|
108152
|
-
navigationAccessCode: string().optional(),
|
|
108408
|
+
navigationAccessCode: string().optional().meta({ secret: true }),
|
|
108153
108409
|
/**
|
|
108154
108410
|
* The video backend the robot should sit on (camera child only).
|
|
108155
108411
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-dreame",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.129",
|
|
4
4
|
"description": "Dreame robot-vacuum / lawn-mower device-provider addon for CamStack — wraps the @apocaliss92/nodedreame Dreamehome cloud client",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|