@camstack/addon-matter-broker 0.2.120 → 0.2.122
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 +269 -12
- package/dist/addon.mjs +269 -12
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -5384,7 +5384,7 @@ var ZodIssueCode = {
|
|
|
5384
5384
|
var ZodFirstPartyTypeKind;
|
|
5385
5385
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5386
5386
|
//#endregion
|
|
5387
|
-
//#region ../types/dist/sleep-
|
|
5387
|
+
//#region ../types/dist/sleep-B0JG7-_F.mjs
|
|
5388
5388
|
/**
|
|
5389
5389
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5390
5390
|
* window to float samples (D455).
|
|
@@ -15159,6 +15159,10 @@ var DeviceInfoSchema = object({
|
|
|
15159
15159
|
isCamera: boolean(),
|
|
15160
15160
|
/** Current config values — serializable snapshot */
|
|
15161
15161
|
config: record(string$2(), unknown()),
|
|
15162
|
+
/** Paths inside `config` the device's schema declares secret (D783) —
|
|
15163
|
+
* what the non-admin redaction withholds. Paths, never values. Absent
|
|
15164
|
+
* when the owning runner has not reported them. */
|
|
15165
|
+
secretConfigPaths: array(string$2()).optional(),
|
|
15162
15166
|
/** Hardware + identity blob (manufacturer / model / firmware / sn /
|
|
15163
15167
|
* uid / mac / …). Populated by drivers; editable via setMetadata. */
|
|
15164
15168
|
metadata: record(string$2(), unknown()).nullable().optional(),
|
|
@@ -15364,7 +15368,13 @@ var DeviceRegisterPayloadSchema = object({
|
|
|
15364
15368
|
* call (workers re-register on init), so probe-driven updates
|
|
15365
15369
|
* (e.g. PTZ flag flipping after the abilities probe) propagate. */
|
|
15366
15370
|
features: array(string$2()).optional(),
|
|
15367
|
-
config: record(string$2(), unknown())
|
|
15371
|
+
config: record(string$2(), unknown()),
|
|
15372
|
+
/** Config paths the device's own schema DECLARES secret
|
|
15373
|
+
* (`.meta({ secret: true })` — dotted, `[]` for array items, e.g.
|
|
15374
|
+
* `connection.password`). Re-published on every register; the non-admin
|
|
15375
|
+
* redaction withholds them at any depth (D783). Optional: an older runner
|
|
15376
|
+
* omits it and the keyword backstop applies. */
|
|
15377
|
+
secretConfigPaths: array(string$2()).optional()
|
|
15368
15378
|
});
|
|
15369
15379
|
var DeviceRemovePayloadSchema = object({ deviceId: number() });
|
|
15370
15380
|
var DevicePersistConfigPayloadSchema = object({
|
|
@@ -17023,7 +17033,14 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
17023
17033
|
icon: string$2().optional(),
|
|
17024
17034
|
/** Addon-owned HTTP route the button navigates to (GET). */
|
|
17025
17035
|
startUrl: string$2(),
|
|
17026
|
-
stage: LoginStageEnum
|
|
17036
|
+
stage: LoginStageEnum,
|
|
17037
|
+
/**
|
|
17038
|
+
* The provider names an external identity a signed-in user can link to
|
|
17039
|
+
* their own account (D782): `auth.listLinkableProviders` /
|
|
17040
|
+
* `beginExternalLink` offer exactly the redirect methods that set this,
|
|
17041
|
+
* whatever their id. Absent / false — a login button only (magic-link).
|
|
17042
|
+
*/
|
|
17043
|
+
linkable: boolean().optional()
|
|
17027
17044
|
}),
|
|
17028
17045
|
object({
|
|
17029
17046
|
kind: literal("widget"),
|
|
@@ -22458,7 +22475,13 @@ var RetrainFrameSchema = object({
|
|
|
22458
22475
|
sizeBytes: number().int(),
|
|
22459
22476
|
width: number().int(),
|
|
22460
22477
|
height: number().int(),
|
|
22461
|
-
copiedAt: number()
|
|
22478
|
+
copiedAt: number(),
|
|
22479
|
+
/** When the CAMERA captured the frame. Absent on a copy taken before D785. */
|
|
22480
|
+
capturedAt: number().optional(),
|
|
22481
|
+
/** The operator's "every subject in this frame is boxed". Detector
|
|
22482
|
+
* evaluation keeps only complete frames: an unboxed subject would count as
|
|
22483
|
+
* a false positive. */
|
|
22484
|
+
complete: boolean()
|
|
22462
22485
|
});
|
|
22463
22486
|
/** Why a copy-on-select could not be honoured — named, never a silent skip. */
|
|
22464
22487
|
var RetrainCopyRefusalSchema = _enum([
|
|
@@ -22479,6 +22502,51 @@ var RetrainFrameListSchema = object({
|
|
|
22479
22502
|
/** What the page pre-selects — the native key frame when one survives. */
|
|
22480
22503
|
autoPickMediaId: number().int().optional()
|
|
22481
22504
|
});
|
|
22505
|
+
/**
|
|
22506
|
+
* Which frames an annotated export carries. Every field narrows; an empty
|
|
22507
|
+
* filter is every annotated copy. A dataset VERSION is a frozen `frameIds`
|
|
22508
|
+
* list owned by whoever trains (the training orchestrator), so `frameIds` is
|
|
22509
|
+
* the primitive a version export uses; `batchId` re-selects what an earlier
|
|
22510
|
+
* export carried (`exportedInBatch`).
|
|
22511
|
+
*/
|
|
22512
|
+
var RetrainExportFilterSchema = object({
|
|
22513
|
+
deviceIds: array(number()).optional(),
|
|
22514
|
+
frameIds: array(string$2()).max(2e4).optional(),
|
|
22515
|
+
batchId: string$2().optional(),
|
|
22516
|
+
/** Only frames the operator marked complete (all subjects boxed). */
|
|
22517
|
+
completeOnly: boolean().optional()
|
|
22518
|
+
});
|
|
22519
|
+
/**
|
|
22520
|
+
* `frames`: the full frame copies, boxes in `annotations.json`.
|
|
22521
|
+
* `crops`: additionally one JPEG per subject, cut with the runtime detail-crop
|
|
22522
|
+
* convention — the classifier layout.
|
|
22523
|
+
*/
|
|
22524
|
+
var RetrainExportLayoutSchema = _enum(["frames", "crops"]);
|
|
22525
|
+
/**
|
|
22526
|
+
* Where `writeRetrainArchive` streams the tar: one HTTP request whose body is
|
|
22527
|
+
* the archive, sent chunk by chunk. Covers a presigned PUT and a provider
|
|
22528
|
+
* addon's data-plane upload route alike. Headers are sent verbatim and never
|
|
22529
|
+
* logged.
|
|
22530
|
+
*/
|
|
22531
|
+
var RetrainArchiveTargetSchema = object({
|
|
22532
|
+
kind: literal("http"),
|
|
22533
|
+
method: _enum(["PUT", "POST"]),
|
|
22534
|
+
url: string$2().url(),
|
|
22535
|
+
headers: record(string$2(), string$2()).optional()
|
|
22536
|
+
});
|
|
22537
|
+
var RetrainArchiveResultSchema = object({
|
|
22538
|
+
batchId: string$2(),
|
|
22539
|
+
frames: number().int(),
|
|
22540
|
+
crops: number().int(),
|
|
22541
|
+
annotations: number().int(),
|
|
22542
|
+
/** Frames planned but not shipped (unreadable copy, path too long). */
|
|
22543
|
+
missing: number().int(),
|
|
22544
|
+
bytes: number().int(),
|
|
22545
|
+
/** sha256 of the exact bytes sent. */
|
|
22546
|
+
sha256: string$2(),
|
|
22547
|
+
/** The target's HTTP status. */
|
|
22548
|
+
status: number().int()
|
|
22549
|
+
});
|
|
22482
22550
|
/** What the operator asked the assist to look for. */
|
|
22483
22551
|
var RetrainAssistSubjectSchema = discriminatedUnion("kind", [object({
|
|
22484
22552
|
kind: literal("package"),
|
|
@@ -23273,9 +23341,25 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
23273
23341
|
}), RetrainTransitionResultSchema, {
|
|
23274
23342
|
kind: "mutation",
|
|
23275
23343
|
auth: "admin"
|
|
23276
|
-
}), method(
|
|
23344
|
+
}), method(RetrainExportFilterSchema.extend({ layout: RetrainExportLayoutSchema.optional() }), object({ url: string$2() }), {
|
|
23277
23345
|
kind: "query",
|
|
23278
23346
|
auth: "admin"
|
|
23347
|
+
}), method(object({
|
|
23348
|
+
deviceId: number(),
|
|
23349
|
+
trackId: string$2(),
|
|
23350
|
+
frameId: string$2(),
|
|
23351
|
+
complete: boolean()
|
|
23352
|
+
}), RetrainFrameSchema, {
|
|
23353
|
+
kind: "mutation",
|
|
23354
|
+
auth: "admin"
|
|
23355
|
+
}), method(object({
|
|
23356
|
+
filter: RetrainExportFilterSchema,
|
|
23357
|
+
layout: RetrainExportLayoutSchema,
|
|
23358
|
+
target: RetrainArchiveTargetSchema
|
|
23359
|
+
}), RetrainArchiveResultSchema, {
|
|
23360
|
+
kind: "mutation",
|
|
23361
|
+
auth: "admin",
|
|
23362
|
+
timeoutMs: 60 * 6e4
|
|
23279
23363
|
}), method(object({
|
|
23280
23364
|
/** Which of the three event tables owns the row. */
|
|
23281
23365
|
ownerType: EventOwnerTypeSchema,
|
|
@@ -26605,7 +26689,19 @@ var SsoBridgeClaimsSchema = object({
|
|
|
26605
26689
|
* editing a descriptor must not retroactively extend or shorten a link the
|
|
26606
26690
|
* operator already consented to.
|
|
26607
26691
|
*/
|
|
26608
|
-
refreshTtl: union([number().int().positive(), literal("never")]).optional()
|
|
26692
|
+
refreshTtl: union([number().int().positive(), literal("never")]).optional(),
|
|
26693
|
+
/**
|
|
26694
|
+
* Opaque handle of a hub-side LINK intent (D782). Set by an OIDC callback
|
|
26695
|
+
* that was started from a signed-in user's "Link" button: the finish then
|
|
26696
|
+
* links this identity to the intent's user instead of signing anyone in.
|
|
26697
|
+
* The handle carries no user id — the hub resolves it, single-use.
|
|
26698
|
+
*/
|
|
26699
|
+
linkIntent: string$2().optional(),
|
|
26700
|
+
/**
|
|
26701
|
+
* Verified `iss` of the id_token behind an OIDC login bridge (D782). A
|
|
26702
|
+
* subject is unique only per issuer, so a link is bound to it.
|
|
26703
|
+
*/
|
|
26704
|
+
issuer: string$2().optional()
|
|
26609
26705
|
});
|
|
26610
26706
|
method(object({
|
|
26611
26707
|
claims: SsoBridgeClaimsSchema,
|
|
@@ -28540,7 +28636,22 @@ DeviceType.Camera, method(object({ deviceId: number().int().nonnegative() }), ar
|
|
|
28540
28636
|
* field their hints were silently stripped by the schema and the
|
|
28541
28637
|
* adaptive ladder started blind on the client's display size.
|
|
28542
28638
|
*/
|
|
28543
|
-
hints: webrtcClientHintsSchema.optional()
|
|
28639
|
+
hints: webrtcClientHintsSchema.optional(),
|
|
28640
|
+
/**
|
|
28641
|
+
* Talk-back (D771): relay the PEER's audio to the device's speaker
|
|
28642
|
+
* through the `intercom` cap's push-talk triple. When `true` and the
|
|
28643
|
+
* offer lets the peer send audio, the answer's audio is `sendrecv`
|
|
28644
|
+
* and every inbound frame goes to `intercom.pushTalkAudio` for this
|
|
28645
|
+
* `deviceId`; absent/false answers `sendonly`, as for every viewer.
|
|
28646
|
+
*
|
|
28647
|
+
* TRUSTED-CALLER ONLY. Set by the Alexa export for an Echo on a camera
|
|
28648
|
+
* with `intercom`, when the linked user may control that camera. The
|
|
28649
|
+
* hub STRIPS it from every request-bound call (a browser), exactly as
|
|
28650
|
+
* it overwrites `relayOnly` — a viewer's talk permission is the
|
|
28651
|
+
* intercom cap's own surface (share tokens gate it there), and this
|
|
28652
|
+
* flag must not become a second door to the camera's speaker.
|
|
28653
|
+
*/
|
|
28654
|
+
talkback: boolean().optional()
|
|
28544
28655
|
}), object({
|
|
28545
28656
|
sessionId: string$2(),
|
|
28546
28657
|
sdpAnswer: string$2()
|
|
@@ -28842,6 +28953,59 @@ var AddonAutoUpdateSchema = ChannelWithInheritSchema;
|
|
|
28842
28953
|
var RestartAddonResultSchema = unknown();
|
|
28843
28954
|
var InstallPackageResultSchema = unknown();
|
|
28844
28955
|
var ReloadPackagesResultSchema = unknown();
|
|
28956
|
+
/**
|
|
28957
|
+
* What an uninstall did on ONE node.
|
|
28958
|
+
* - `uninstalled` — removed: runner(s) stopped, caps gone, code deleted.
|
|
28959
|
+
* - `not-installed` — the node did not have it (nothing to do).
|
|
28960
|
+
* - `refused` — protected / bootstrap package; nothing touched.
|
|
28961
|
+
* - `failed` — attempted and did not complete; `error` says why.
|
|
28962
|
+
* - `pending-reconnect` — the node is OFFLINE: its record was pruned so the
|
|
28963
|
+
* back-fill never returns the package, and the stale-addon sweep removes the
|
|
28964
|
+
* copy when the node registers again (only once the hub no longer has it).
|
|
28965
|
+
*/
|
|
28966
|
+
var UninstallNodeOutcomeSchema = _enum([
|
|
28967
|
+
"uninstalled",
|
|
28968
|
+
"not-installed",
|
|
28969
|
+
"refused",
|
|
28970
|
+
"failed",
|
|
28971
|
+
"pending-reconnect"
|
|
28972
|
+
]);
|
|
28973
|
+
var UninstallNodeResultSchema = object({
|
|
28974
|
+
nodeId: string$2(),
|
|
28975
|
+
outcome: UninstallNodeOutcomeSchema,
|
|
28976
|
+
error: string$2().optional(),
|
|
28977
|
+
addonIds: array(string$2()).readonly(),
|
|
28978
|
+
runnersStopped: array(string$2()).readonly(),
|
|
28979
|
+
warnings: array(string$2()).readonly()
|
|
28980
|
+
});
|
|
28981
|
+
var UninstallPackageResultSchema = object({
|
|
28982
|
+
/** Every targeted node ended `uninstalled`, `not-installed` or `pending-reconnect`. */
|
|
28983
|
+
success: boolean(),
|
|
28984
|
+
packageName: string$2(),
|
|
28985
|
+
results: array(UninstallNodeResultSchema).readonly()
|
|
28986
|
+
});
|
|
28987
|
+
/**
|
|
28988
|
+
* `unreachable` lists online agents whose status read FAILED — absence from
|
|
28989
|
+
* `installations` is only "not installed" for a node that answered (D315).
|
|
28990
|
+
*/
|
|
28991
|
+
var PackageInstallationsSchema = object({
|
|
28992
|
+
installations: array(object({
|
|
28993
|
+
packageName: string$2(),
|
|
28994
|
+
nodeId: string$2(),
|
|
28995
|
+
nodeName: string$2(),
|
|
28996
|
+
isHub: boolean(),
|
|
28997
|
+
isOnline: boolean(),
|
|
28998
|
+
version: string$2().nullable(),
|
|
28999
|
+
addonIds: array(string$2()).readonly(),
|
|
29000
|
+
source: _enum(["live", "recorded"]),
|
|
29001
|
+
/** The hub installs this package too. `false` on an agent row = an orphan. */
|
|
29002
|
+
onHub: boolean()
|
|
29003
|
+
})).readonly(),
|
|
29004
|
+
unreachable: array(object({
|
|
29005
|
+
nodeId: string$2(),
|
|
29006
|
+
error: string$2()
|
|
29007
|
+
})).readonly()
|
|
29008
|
+
});
|
|
28845
29009
|
var BulkUpdateItemStatusSchema = _enum([
|
|
28846
29010
|
"queued",
|
|
28847
29011
|
"updating",
|
|
@@ -28924,10 +29088,14 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
|
|
|
28924
29088
|
}), method(object({ packageName: string$2() }), InstallPackageResultSchema, {
|
|
28925
29089
|
kind: "mutation",
|
|
28926
29090
|
auth: "admin"
|
|
28927
|
-
}), method(_void(), boolean()), method(_void(), array(unknown()).readonly()), method(object({
|
|
29091
|
+
}), method(_void(), boolean()), method(_void(), array(unknown()).readonly()), method(object({
|
|
29092
|
+
packageName: string$2().min(1),
|
|
29093
|
+
nodeId: string$2().optional(),
|
|
29094
|
+
everywhere: boolean().optional()
|
|
29095
|
+
}), UninstallPackageResultSchema, {
|
|
28928
29096
|
kind: "mutation",
|
|
28929
29097
|
auth: "admin"
|
|
28930
|
-
}), method(_void(), ReloadPackagesResultSchema, {
|
|
29098
|
+
}), method(object({ packageName: string$2().optional() }), PackageInstallationsSchema, { auth: "admin" }), method(_void(), ReloadPackagesResultSchema, {
|
|
28931
29099
|
kind: "mutation",
|
|
28932
29100
|
auth: "admin"
|
|
28933
29101
|
}), method(object({ query: string$2().optional() }), array(SearchResultSchema)), method(object({ nodeId: string$2().optional() }), array(PackageUpdateSchema).readonly(), { auth: "admin" }), method(object({
|
|
@@ -38854,6 +39022,32 @@ var TotpStatusSchema = object({
|
|
|
38854
39022
|
/** Null when no row exists OR the row is still pending confirmation. */
|
|
38855
39023
|
confirmedAt: number().nullable()
|
|
38856
39024
|
});
|
|
39025
|
+
/**
|
|
39026
|
+
* user-management — singleton capability for user accounts, API keys,
|
|
39027
|
+
* and scoped tokens.
|
|
39028
|
+
*
|
|
39029
|
+
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
39030
|
+
* — the subset check on `setUserScopes` / `createScopedToken` is moot
|
|
39031
|
+
* because non-admins never reach these. If/when we open non-admin
|
|
39032
|
+
* delegation, structural caller-scope subset check goes inside the
|
|
39033
|
+
* provider.
|
|
39034
|
+
*/
|
|
39035
|
+
var ExternalIdentitySchema = object({
|
|
39036
|
+
/** Login-method id of the provider instance, e.g. `auth-oidc/authentik`. */
|
|
39037
|
+
provider: string$2(),
|
|
39038
|
+
/** The IdP's stable subject (`sub`) for this account. */
|
|
39039
|
+
subject: string$2(),
|
|
39040
|
+
/** The verified `iss` of the IdP the identity was linked under — `sub` is unique only per issuer. */
|
|
39041
|
+
issuer: string$2(),
|
|
39042
|
+
userId: string$2(),
|
|
39043
|
+
/** What the IdP called the account at link time (username / email) — display only. */
|
|
39044
|
+
label: string$2().optional(),
|
|
39045
|
+
linkedAt: number()
|
|
39046
|
+
});
|
|
39047
|
+
var ExternalIdentityKeySchema = object({
|
|
39048
|
+
provider: string$2().min(1),
|
|
39049
|
+
subject: string$2().min(1)
|
|
39050
|
+
});
|
|
38857
39051
|
method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserInputSchema, UserSummarySchema, {
|
|
38858
39052
|
kind: "mutation",
|
|
38859
39053
|
auth: "admin",
|
|
@@ -38967,7 +39161,22 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
38967
39161
|
userId: string$2(),
|
|
38968
39162
|
username: string$2(),
|
|
38969
39163
|
scopes: array(TokenScopeSchema)
|
|
38970
|
-
}).nullable(), { access: "view" }), method(
|
|
39164
|
+
}).nullable(), { access: "view" }), method(object({ userId: string$2() }), array(ExternalIdentitySchema), { auth: "admin" }), method(ExternalIdentityKeySchema, object({
|
|
39165
|
+
userId: string$2(),
|
|
39166
|
+
issuer: string$2()
|
|
39167
|
+
}).nullable(), { auth: "admin" }), method(ExternalIdentityKeySchema.extend({
|
|
39168
|
+
userId: string$2(),
|
|
39169
|
+
issuer: string$2().min(1),
|
|
39170
|
+
label: string$2().optional()
|
|
39171
|
+
}), object({ success: literal(true) }), {
|
|
39172
|
+
kind: "mutation",
|
|
39173
|
+
auth: "admin",
|
|
39174
|
+
access: "create"
|
|
39175
|
+
}), method(ExternalIdentityKeySchema.extend({ userId: string$2() }), object({ success: boolean() }), {
|
|
39176
|
+
kind: "mutation",
|
|
39177
|
+
auth: "admin",
|
|
39178
|
+
access: "delete"
|
|
39179
|
+
}), method(_void(), array(OauthSessionSummarySchema), { auth: "admin" }), method(object({ id: string$2() }), object({ success: boolean() }), {
|
|
38971
39180
|
kind: "mutation",
|
|
38972
39181
|
auth: "admin",
|
|
38973
39182
|
access: "delete"
|
|
@@ -41377,6 +41586,12 @@ Object.freeze({
|
|
|
41377
41586
|
addonId: null,
|
|
41378
41587
|
access: "view"
|
|
41379
41588
|
},
|
|
41589
|
+
"addons.listInstallations": {
|
|
41590
|
+
capName: "addons",
|
|
41591
|
+
capScope: "system",
|
|
41592
|
+
addonId: null,
|
|
41593
|
+
access: "view"
|
|
41594
|
+
},
|
|
41380
41595
|
"addons.listJobs": {
|
|
41381
41596
|
capName: "addons",
|
|
41382
41597
|
capScope: "system",
|
|
@@ -45601,6 +45816,12 @@ Object.freeze({
|
|
|
45601
45816
|
addonId: null,
|
|
45602
45817
|
access: "create"
|
|
45603
45818
|
},
|
|
45819
|
+
"pipelineAnalytics.setRetrainFrameComplete": {
|
|
45820
|
+
capName: "pipeline-analytics",
|
|
45821
|
+
capScope: "device",
|
|
45822
|
+
addonId: null,
|
|
45823
|
+
access: "create"
|
|
45824
|
+
},
|
|
45604
45825
|
"pipelineAnalytics.setTrackFlags": {
|
|
45605
45826
|
capName: "pipeline-analytics",
|
|
45606
45827
|
capScope: "device",
|
|
@@ -45637,6 +45858,12 @@ Object.freeze({
|
|
|
45637
45858
|
addonId: null,
|
|
45638
45859
|
access: "delete"
|
|
45639
45860
|
},
|
|
45861
|
+
"pipelineAnalytics.writeRetrainArchive": {
|
|
45862
|
+
capName: "pipeline-analytics",
|
|
45863
|
+
capScope: "device",
|
|
45864
|
+
addonId: null,
|
|
45865
|
+
access: "create"
|
|
45866
|
+
},
|
|
45640
45867
|
"pipelineExecutor.cacheFrameInPool": {
|
|
45641
45868
|
capName: "pipeline-executor",
|
|
45642
45869
|
capScope: "system",
|
|
@@ -47989,18 +48216,36 @@ Object.freeze({
|
|
|
47989
48216
|
addonId: null,
|
|
47990
48217
|
access: "delete"
|
|
47991
48218
|
},
|
|
48219
|
+
"userManagement.findUserByExternalIdentity": {
|
|
48220
|
+
capName: "user-management",
|
|
48221
|
+
capScope: "system",
|
|
48222
|
+
addonId: null,
|
|
48223
|
+
access: "view"
|
|
48224
|
+
},
|
|
47992
48225
|
"userManagement.getTotpStatus": {
|
|
47993
48226
|
capName: "user-management",
|
|
47994
48227
|
capScope: "system",
|
|
47995
48228
|
addonId: null,
|
|
47996
48229
|
access: "view"
|
|
47997
48230
|
},
|
|
48231
|
+
"userManagement.linkExternalIdentity": {
|
|
48232
|
+
capName: "user-management",
|
|
48233
|
+
capScope: "system",
|
|
48234
|
+
addonId: null,
|
|
48235
|
+
access: "create"
|
|
48236
|
+
},
|
|
47998
48237
|
"userManagement.listApiKeys": {
|
|
47999
48238
|
capName: "user-management",
|
|
48000
48239
|
capScope: "system",
|
|
48001
48240
|
addonId: null,
|
|
48002
48241
|
access: "view"
|
|
48003
48242
|
},
|
|
48243
|
+
"userManagement.listExternalIdentities": {
|
|
48244
|
+
capName: "user-management",
|
|
48245
|
+
capScope: "system",
|
|
48246
|
+
addonId: null,
|
|
48247
|
+
access: "view"
|
|
48248
|
+
},
|
|
48004
48249
|
"userManagement.listOauthSessions": {
|
|
48005
48250
|
capName: "user-management",
|
|
48006
48251
|
capScope: "system",
|
|
@@ -48079,6 +48324,12 @@ Object.freeze({
|
|
|
48079
48324
|
addonId: null,
|
|
48080
48325
|
access: "create"
|
|
48081
48326
|
},
|
|
48327
|
+
"userManagement.unlinkExternalIdentity": {
|
|
48328
|
+
capName: "user-management",
|
|
48329
|
+
capScope: "system",
|
|
48330
|
+
addonId: null,
|
|
48331
|
+
access: "delete"
|
|
48332
|
+
},
|
|
48082
48333
|
"userManagement.updateUser": {
|
|
48083
48334
|
capName: "user-management",
|
|
48084
48335
|
capScope: "system",
|
|
@@ -51418,6 +51669,11 @@ Object.freeze({
|
|
|
51418
51669
|
form: "single",
|
|
51419
51670
|
optional: false
|
|
51420
51671
|
}],
|
|
51672
|
+
"pipelineAnalytics.setRetrainFrameComplete": [{
|
|
51673
|
+
name: "deviceId",
|
|
51674
|
+
form: "single",
|
|
51675
|
+
optional: false
|
|
51676
|
+
}],
|
|
51421
51677
|
"pipelineAnalytics.setTrackFlags": [{
|
|
51422
51678
|
name: "deviceId",
|
|
51423
51679
|
form: "single",
|
|
@@ -163416,11 +163672,11 @@ var MatterBrokerRegistry = class {
|
|
|
163416
163672
|
*/
|
|
163417
163673
|
var matterConnectionSchema = object({
|
|
163418
163674
|
/** Optional Thread operational dataset (hex) for Thread device onboarding. */
|
|
163419
|
-
threadDataset: string$2().default("").describe("Thread operational dataset (hex) — required only for Thread devices"),
|
|
163675
|
+
threadDataset: string$2().default("").describe("Thread operational dataset (hex) — required only for Thread devices").meta({ secret: true }),
|
|
163420
163676
|
/** Optional Wi-Fi SSID for Wi-Fi device onboarding over BLE. */
|
|
163421
163677
|
wifiSsid: string$2().default("").describe("Wi-Fi SSID — required only for BLE Wi-Fi onboarding"),
|
|
163422
163678
|
/** Optional Wi-Fi password for Wi-Fi device onboarding over BLE. */
|
|
163423
|
-
wifiPassword: string$2().default("").describe("Wi-Fi password (optional)"),
|
|
163679
|
+
wifiPassword: string$2().default("").describe("Wi-Fi password (optional)").meta({ secret: true }),
|
|
163424
163680
|
/** PULL-reconcile interval for the commissioned-node inventory. */
|
|
163425
163681
|
reconcileIntervalMs: preprocess((v) => v === "" || v === null ? void 0 : v, number().int().min(1e4).max(864e5).default(3e5)).describe("Node-inventory reconcile interval (ms)")
|
|
163426
163682
|
});
|
|
@@ -163451,6 +163707,7 @@ function buildConnectionFormSchema() {
|
|
|
163451
163707
|
{
|
|
163452
163708
|
type: "text",
|
|
163453
163709
|
key: "threadDataset",
|
|
163710
|
+
secret: true,
|
|
163454
163711
|
label: "Thread operational dataset (hex, optional)",
|
|
163455
163712
|
placeholder: "0e08000000000001…"
|
|
163456
163713
|
},
|
package/dist/addon.mjs
CHANGED
|
@@ -5382,7 +5382,7 @@ var ZodIssueCode = {
|
|
|
5382
5382
|
var ZodFirstPartyTypeKind;
|
|
5383
5383
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5384
5384
|
//#endregion
|
|
5385
|
-
//#region ../types/dist/sleep-
|
|
5385
|
+
//#region ../types/dist/sleep-B0JG7-_F.mjs
|
|
5386
5386
|
/**
|
|
5387
5387
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5388
5388
|
* window to float samples (D455).
|
|
@@ -15157,6 +15157,10 @@ var DeviceInfoSchema = object({
|
|
|
15157
15157
|
isCamera: boolean(),
|
|
15158
15158
|
/** Current config values — serializable snapshot */
|
|
15159
15159
|
config: record(string$2(), unknown()),
|
|
15160
|
+
/** Paths inside `config` the device's schema declares secret (D783) —
|
|
15161
|
+
* what the non-admin redaction withholds. Paths, never values. Absent
|
|
15162
|
+
* when the owning runner has not reported them. */
|
|
15163
|
+
secretConfigPaths: array(string$2()).optional(),
|
|
15160
15164
|
/** Hardware + identity blob (manufacturer / model / firmware / sn /
|
|
15161
15165
|
* uid / mac / …). Populated by drivers; editable via setMetadata. */
|
|
15162
15166
|
metadata: record(string$2(), unknown()).nullable().optional(),
|
|
@@ -15362,7 +15366,13 @@ var DeviceRegisterPayloadSchema = object({
|
|
|
15362
15366
|
* call (workers re-register on init), so probe-driven updates
|
|
15363
15367
|
* (e.g. PTZ flag flipping after the abilities probe) propagate. */
|
|
15364
15368
|
features: array(string$2()).optional(),
|
|
15365
|
-
config: record(string$2(), unknown())
|
|
15369
|
+
config: record(string$2(), unknown()),
|
|
15370
|
+
/** Config paths the device's own schema DECLARES secret
|
|
15371
|
+
* (`.meta({ secret: true })` — dotted, `[]` for array items, e.g.
|
|
15372
|
+
* `connection.password`). Re-published on every register; the non-admin
|
|
15373
|
+
* redaction withholds them at any depth (D783). Optional: an older runner
|
|
15374
|
+
* omits it and the keyword backstop applies. */
|
|
15375
|
+
secretConfigPaths: array(string$2()).optional()
|
|
15366
15376
|
});
|
|
15367
15377
|
var DeviceRemovePayloadSchema = object({ deviceId: number() });
|
|
15368
15378
|
var DevicePersistConfigPayloadSchema = object({
|
|
@@ -17021,7 +17031,14 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
17021
17031
|
icon: string$2().optional(),
|
|
17022
17032
|
/** Addon-owned HTTP route the button navigates to (GET). */
|
|
17023
17033
|
startUrl: string$2(),
|
|
17024
|
-
stage: LoginStageEnum
|
|
17034
|
+
stage: LoginStageEnum,
|
|
17035
|
+
/**
|
|
17036
|
+
* The provider names an external identity a signed-in user can link to
|
|
17037
|
+
* their own account (D782): `auth.listLinkableProviders` /
|
|
17038
|
+
* `beginExternalLink` offer exactly the redirect methods that set this,
|
|
17039
|
+
* whatever their id. Absent / false — a login button only (magic-link).
|
|
17040
|
+
*/
|
|
17041
|
+
linkable: boolean().optional()
|
|
17025
17042
|
}),
|
|
17026
17043
|
object({
|
|
17027
17044
|
kind: literal("widget"),
|
|
@@ -22456,7 +22473,13 @@ var RetrainFrameSchema = object({
|
|
|
22456
22473
|
sizeBytes: number().int(),
|
|
22457
22474
|
width: number().int(),
|
|
22458
22475
|
height: number().int(),
|
|
22459
|
-
copiedAt: number()
|
|
22476
|
+
copiedAt: number(),
|
|
22477
|
+
/** When the CAMERA captured the frame. Absent on a copy taken before D785. */
|
|
22478
|
+
capturedAt: number().optional(),
|
|
22479
|
+
/** The operator's "every subject in this frame is boxed". Detector
|
|
22480
|
+
* evaluation keeps only complete frames: an unboxed subject would count as
|
|
22481
|
+
* a false positive. */
|
|
22482
|
+
complete: boolean()
|
|
22460
22483
|
});
|
|
22461
22484
|
/** Why a copy-on-select could not be honoured — named, never a silent skip. */
|
|
22462
22485
|
var RetrainCopyRefusalSchema = _enum([
|
|
@@ -22477,6 +22500,51 @@ var RetrainFrameListSchema = object({
|
|
|
22477
22500
|
/** What the page pre-selects — the native key frame when one survives. */
|
|
22478
22501
|
autoPickMediaId: number().int().optional()
|
|
22479
22502
|
});
|
|
22503
|
+
/**
|
|
22504
|
+
* Which frames an annotated export carries. Every field narrows; an empty
|
|
22505
|
+
* filter is every annotated copy. A dataset VERSION is a frozen `frameIds`
|
|
22506
|
+
* list owned by whoever trains (the training orchestrator), so `frameIds` is
|
|
22507
|
+
* the primitive a version export uses; `batchId` re-selects what an earlier
|
|
22508
|
+
* export carried (`exportedInBatch`).
|
|
22509
|
+
*/
|
|
22510
|
+
var RetrainExportFilterSchema = object({
|
|
22511
|
+
deviceIds: array(number()).optional(),
|
|
22512
|
+
frameIds: array(string$2()).max(2e4).optional(),
|
|
22513
|
+
batchId: string$2().optional(),
|
|
22514
|
+
/** Only frames the operator marked complete (all subjects boxed). */
|
|
22515
|
+
completeOnly: boolean().optional()
|
|
22516
|
+
});
|
|
22517
|
+
/**
|
|
22518
|
+
* `frames`: the full frame copies, boxes in `annotations.json`.
|
|
22519
|
+
* `crops`: additionally one JPEG per subject, cut with the runtime detail-crop
|
|
22520
|
+
* convention — the classifier layout.
|
|
22521
|
+
*/
|
|
22522
|
+
var RetrainExportLayoutSchema = _enum(["frames", "crops"]);
|
|
22523
|
+
/**
|
|
22524
|
+
* Where `writeRetrainArchive` streams the tar: one HTTP request whose body is
|
|
22525
|
+
* the archive, sent chunk by chunk. Covers a presigned PUT and a provider
|
|
22526
|
+
* addon's data-plane upload route alike. Headers are sent verbatim and never
|
|
22527
|
+
* logged.
|
|
22528
|
+
*/
|
|
22529
|
+
var RetrainArchiveTargetSchema = object({
|
|
22530
|
+
kind: literal("http"),
|
|
22531
|
+
method: _enum(["PUT", "POST"]),
|
|
22532
|
+
url: string$2().url(),
|
|
22533
|
+
headers: record(string$2(), string$2()).optional()
|
|
22534
|
+
});
|
|
22535
|
+
var RetrainArchiveResultSchema = object({
|
|
22536
|
+
batchId: string$2(),
|
|
22537
|
+
frames: number().int(),
|
|
22538
|
+
crops: number().int(),
|
|
22539
|
+
annotations: number().int(),
|
|
22540
|
+
/** Frames planned but not shipped (unreadable copy, path too long). */
|
|
22541
|
+
missing: number().int(),
|
|
22542
|
+
bytes: number().int(),
|
|
22543
|
+
/** sha256 of the exact bytes sent. */
|
|
22544
|
+
sha256: string$2(),
|
|
22545
|
+
/** The target's HTTP status. */
|
|
22546
|
+
status: number().int()
|
|
22547
|
+
});
|
|
22480
22548
|
/** What the operator asked the assist to look for. */
|
|
22481
22549
|
var RetrainAssistSubjectSchema = discriminatedUnion("kind", [object({
|
|
22482
22550
|
kind: literal("package"),
|
|
@@ -23271,9 +23339,25 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
23271
23339
|
}), RetrainTransitionResultSchema, {
|
|
23272
23340
|
kind: "mutation",
|
|
23273
23341
|
auth: "admin"
|
|
23274
|
-
}), method(
|
|
23342
|
+
}), method(RetrainExportFilterSchema.extend({ layout: RetrainExportLayoutSchema.optional() }), object({ url: string$2() }), {
|
|
23275
23343
|
kind: "query",
|
|
23276
23344
|
auth: "admin"
|
|
23345
|
+
}), method(object({
|
|
23346
|
+
deviceId: number(),
|
|
23347
|
+
trackId: string$2(),
|
|
23348
|
+
frameId: string$2(),
|
|
23349
|
+
complete: boolean()
|
|
23350
|
+
}), RetrainFrameSchema, {
|
|
23351
|
+
kind: "mutation",
|
|
23352
|
+
auth: "admin"
|
|
23353
|
+
}), method(object({
|
|
23354
|
+
filter: RetrainExportFilterSchema,
|
|
23355
|
+
layout: RetrainExportLayoutSchema,
|
|
23356
|
+
target: RetrainArchiveTargetSchema
|
|
23357
|
+
}), RetrainArchiveResultSchema, {
|
|
23358
|
+
kind: "mutation",
|
|
23359
|
+
auth: "admin",
|
|
23360
|
+
timeoutMs: 60 * 6e4
|
|
23277
23361
|
}), method(object({
|
|
23278
23362
|
/** Which of the three event tables owns the row. */
|
|
23279
23363
|
ownerType: EventOwnerTypeSchema,
|
|
@@ -26603,7 +26687,19 @@ var SsoBridgeClaimsSchema = object({
|
|
|
26603
26687
|
* editing a descriptor must not retroactively extend or shorten a link the
|
|
26604
26688
|
* operator already consented to.
|
|
26605
26689
|
*/
|
|
26606
|
-
refreshTtl: union([number().int().positive(), literal("never")]).optional()
|
|
26690
|
+
refreshTtl: union([number().int().positive(), literal("never")]).optional(),
|
|
26691
|
+
/**
|
|
26692
|
+
* Opaque handle of a hub-side LINK intent (D782). Set by an OIDC callback
|
|
26693
|
+
* that was started from a signed-in user's "Link" button: the finish then
|
|
26694
|
+
* links this identity to the intent's user instead of signing anyone in.
|
|
26695
|
+
* The handle carries no user id — the hub resolves it, single-use.
|
|
26696
|
+
*/
|
|
26697
|
+
linkIntent: string$2().optional(),
|
|
26698
|
+
/**
|
|
26699
|
+
* Verified `iss` of the id_token behind an OIDC login bridge (D782). A
|
|
26700
|
+
* subject is unique only per issuer, so a link is bound to it.
|
|
26701
|
+
*/
|
|
26702
|
+
issuer: string$2().optional()
|
|
26607
26703
|
});
|
|
26608
26704
|
method(object({
|
|
26609
26705
|
claims: SsoBridgeClaimsSchema,
|
|
@@ -28538,7 +28634,22 @@ DeviceType.Camera, method(object({ deviceId: number().int().nonnegative() }), ar
|
|
|
28538
28634
|
* field their hints were silently stripped by the schema and the
|
|
28539
28635
|
* adaptive ladder started blind on the client's display size.
|
|
28540
28636
|
*/
|
|
28541
|
-
hints: webrtcClientHintsSchema.optional()
|
|
28637
|
+
hints: webrtcClientHintsSchema.optional(),
|
|
28638
|
+
/**
|
|
28639
|
+
* Talk-back (D771): relay the PEER's audio to the device's speaker
|
|
28640
|
+
* through the `intercom` cap's push-talk triple. When `true` and the
|
|
28641
|
+
* offer lets the peer send audio, the answer's audio is `sendrecv`
|
|
28642
|
+
* and every inbound frame goes to `intercom.pushTalkAudio` for this
|
|
28643
|
+
* `deviceId`; absent/false answers `sendonly`, as for every viewer.
|
|
28644
|
+
*
|
|
28645
|
+
* TRUSTED-CALLER ONLY. Set by the Alexa export for an Echo on a camera
|
|
28646
|
+
* with `intercom`, when the linked user may control that camera. The
|
|
28647
|
+
* hub STRIPS it from every request-bound call (a browser), exactly as
|
|
28648
|
+
* it overwrites `relayOnly` — a viewer's talk permission is the
|
|
28649
|
+
* intercom cap's own surface (share tokens gate it there), and this
|
|
28650
|
+
* flag must not become a second door to the camera's speaker.
|
|
28651
|
+
*/
|
|
28652
|
+
talkback: boolean().optional()
|
|
28542
28653
|
}), object({
|
|
28543
28654
|
sessionId: string$2(),
|
|
28544
28655
|
sdpAnswer: string$2()
|
|
@@ -28840,6 +28951,59 @@ var AddonAutoUpdateSchema = ChannelWithInheritSchema;
|
|
|
28840
28951
|
var RestartAddonResultSchema = unknown();
|
|
28841
28952
|
var InstallPackageResultSchema = unknown();
|
|
28842
28953
|
var ReloadPackagesResultSchema = unknown();
|
|
28954
|
+
/**
|
|
28955
|
+
* What an uninstall did on ONE node.
|
|
28956
|
+
* - `uninstalled` — removed: runner(s) stopped, caps gone, code deleted.
|
|
28957
|
+
* - `not-installed` — the node did not have it (nothing to do).
|
|
28958
|
+
* - `refused` — protected / bootstrap package; nothing touched.
|
|
28959
|
+
* - `failed` — attempted and did not complete; `error` says why.
|
|
28960
|
+
* - `pending-reconnect` — the node is OFFLINE: its record was pruned so the
|
|
28961
|
+
* back-fill never returns the package, and the stale-addon sweep removes the
|
|
28962
|
+
* copy when the node registers again (only once the hub no longer has it).
|
|
28963
|
+
*/
|
|
28964
|
+
var UninstallNodeOutcomeSchema = _enum([
|
|
28965
|
+
"uninstalled",
|
|
28966
|
+
"not-installed",
|
|
28967
|
+
"refused",
|
|
28968
|
+
"failed",
|
|
28969
|
+
"pending-reconnect"
|
|
28970
|
+
]);
|
|
28971
|
+
var UninstallNodeResultSchema = object({
|
|
28972
|
+
nodeId: string$2(),
|
|
28973
|
+
outcome: UninstallNodeOutcomeSchema,
|
|
28974
|
+
error: string$2().optional(),
|
|
28975
|
+
addonIds: array(string$2()).readonly(),
|
|
28976
|
+
runnersStopped: array(string$2()).readonly(),
|
|
28977
|
+
warnings: array(string$2()).readonly()
|
|
28978
|
+
});
|
|
28979
|
+
var UninstallPackageResultSchema = object({
|
|
28980
|
+
/** Every targeted node ended `uninstalled`, `not-installed` or `pending-reconnect`. */
|
|
28981
|
+
success: boolean(),
|
|
28982
|
+
packageName: string$2(),
|
|
28983
|
+
results: array(UninstallNodeResultSchema).readonly()
|
|
28984
|
+
});
|
|
28985
|
+
/**
|
|
28986
|
+
* `unreachable` lists online agents whose status read FAILED — absence from
|
|
28987
|
+
* `installations` is only "not installed" for a node that answered (D315).
|
|
28988
|
+
*/
|
|
28989
|
+
var PackageInstallationsSchema = object({
|
|
28990
|
+
installations: array(object({
|
|
28991
|
+
packageName: string$2(),
|
|
28992
|
+
nodeId: string$2(),
|
|
28993
|
+
nodeName: string$2(),
|
|
28994
|
+
isHub: boolean(),
|
|
28995
|
+
isOnline: boolean(),
|
|
28996
|
+
version: string$2().nullable(),
|
|
28997
|
+
addonIds: array(string$2()).readonly(),
|
|
28998
|
+
source: _enum(["live", "recorded"]),
|
|
28999
|
+
/** The hub installs this package too. `false` on an agent row = an orphan. */
|
|
29000
|
+
onHub: boolean()
|
|
29001
|
+
})).readonly(),
|
|
29002
|
+
unreachable: array(object({
|
|
29003
|
+
nodeId: string$2(),
|
|
29004
|
+
error: string$2()
|
|
29005
|
+
})).readonly()
|
|
29006
|
+
});
|
|
28843
29007
|
var BulkUpdateItemStatusSchema = _enum([
|
|
28844
29008
|
"queued",
|
|
28845
29009
|
"updating",
|
|
@@ -28922,10 +29086,14 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
|
|
|
28922
29086
|
}), method(object({ packageName: string$2() }), InstallPackageResultSchema, {
|
|
28923
29087
|
kind: "mutation",
|
|
28924
29088
|
auth: "admin"
|
|
28925
|
-
}), method(_void(), boolean()), method(_void(), array(unknown()).readonly()), method(object({
|
|
29089
|
+
}), method(_void(), boolean()), method(_void(), array(unknown()).readonly()), method(object({
|
|
29090
|
+
packageName: string$2().min(1),
|
|
29091
|
+
nodeId: string$2().optional(),
|
|
29092
|
+
everywhere: boolean().optional()
|
|
29093
|
+
}), UninstallPackageResultSchema, {
|
|
28926
29094
|
kind: "mutation",
|
|
28927
29095
|
auth: "admin"
|
|
28928
|
-
}), method(_void(), ReloadPackagesResultSchema, {
|
|
29096
|
+
}), method(object({ packageName: string$2().optional() }), PackageInstallationsSchema, { auth: "admin" }), method(_void(), ReloadPackagesResultSchema, {
|
|
28929
29097
|
kind: "mutation",
|
|
28930
29098
|
auth: "admin"
|
|
28931
29099
|
}), method(object({ query: string$2().optional() }), array(SearchResultSchema)), method(object({ nodeId: string$2().optional() }), array(PackageUpdateSchema).readonly(), { auth: "admin" }), method(object({
|
|
@@ -38852,6 +39020,32 @@ var TotpStatusSchema = object({
|
|
|
38852
39020
|
/** Null when no row exists OR the row is still pending confirmation. */
|
|
38853
39021
|
confirmedAt: number().nullable()
|
|
38854
39022
|
});
|
|
39023
|
+
/**
|
|
39024
|
+
* user-management — singleton capability for user accounts, API keys,
|
|
39025
|
+
* and scoped tokens.
|
|
39026
|
+
*
|
|
39027
|
+
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
39028
|
+
* — the subset check on `setUserScopes` / `createScopedToken` is moot
|
|
39029
|
+
* because non-admins never reach these. If/when we open non-admin
|
|
39030
|
+
* delegation, structural caller-scope subset check goes inside the
|
|
39031
|
+
* provider.
|
|
39032
|
+
*/
|
|
39033
|
+
var ExternalIdentitySchema = object({
|
|
39034
|
+
/** Login-method id of the provider instance, e.g. `auth-oidc/authentik`. */
|
|
39035
|
+
provider: string$2(),
|
|
39036
|
+
/** The IdP's stable subject (`sub`) for this account. */
|
|
39037
|
+
subject: string$2(),
|
|
39038
|
+
/** The verified `iss` of the IdP the identity was linked under — `sub` is unique only per issuer. */
|
|
39039
|
+
issuer: string$2(),
|
|
39040
|
+
userId: string$2(),
|
|
39041
|
+
/** What the IdP called the account at link time (username / email) — display only. */
|
|
39042
|
+
label: string$2().optional(),
|
|
39043
|
+
linkedAt: number()
|
|
39044
|
+
});
|
|
39045
|
+
var ExternalIdentityKeySchema = object({
|
|
39046
|
+
provider: string$2().min(1),
|
|
39047
|
+
subject: string$2().min(1)
|
|
39048
|
+
});
|
|
38855
39049
|
method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserInputSchema, UserSummarySchema, {
|
|
38856
39050
|
kind: "mutation",
|
|
38857
39051
|
auth: "admin",
|
|
@@ -38965,7 +39159,22 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
38965
39159
|
userId: string$2(),
|
|
38966
39160
|
username: string$2(),
|
|
38967
39161
|
scopes: array(TokenScopeSchema)
|
|
38968
|
-
}).nullable(), { access: "view" }), method(
|
|
39162
|
+
}).nullable(), { access: "view" }), method(object({ userId: string$2() }), array(ExternalIdentitySchema), { auth: "admin" }), method(ExternalIdentityKeySchema, object({
|
|
39163
|
+
userId: string$2(),
|
|
39164
|
+
issuer: string$2()
|
|
39165
|
+
}).nullable(), { auth: "admin" }), method(ExternalIdentityKeySchema.extend({
|
|
39166
|
+
userId: string$2(),
|
|
39167
|
+
issuer: string$2().min(1),
|
|
39168
|
+
label: string$2().optional()
|
|
39169
|
+
}), object({ success: literal(true) }), {
|
|
39170
|
+
kind: "mutation",
|
|
39171
|
+
auth: "admin",
|
|
39172
|
+
access: "create"
|
|
39173
|
+
}), method(ExternalIdentityKeySchema.extend({ userId: string$2() }), object({ success: boolean() }), {
|
|
39174
|
+
kind: "mutation",
|
|
39175
|
+
auth: "admin",
|
|
39176
|
+
access: "delete"
|
|
39177
|
+
}), method(_void(), array(OauthSessionSummarySchema), { auth: "admin" }), method(object({ id: string$2() }), object({ success: boolean() }), {
|
|
38969
39178
|
kind: "mutation",
|
|
38970
39179
|
auth: "admin",
|
|
38971
39180
|
access: "delete"
|
|
@@ -41375,6 +41584,12 @@ Object.freeze({
|
|
|
41375
41584
|
addonId: null,
|
|
41376
41585
|
access: "view"
|
|
41377
41586
|
},
|
|
41587
|
+
"addons.listInstallations": {
|
|
41588
|
+
capName: "addons",
|
|
41589
|
+
capScope: "system",
|
|
41590
|
+
addonId: null,
|
|
41591
|
+
access: "view"
|
|
41592
|
+
},
|
|
41378
41593
|
"addons.listJobs": {
|
|
41379
41594
|
capName: "addons",
|
|
41380
41595
|
capScope: "system",
|
|
@@ -45599,6 +45814,12 @@ Object.freeze({
|
|
|
45599
45814
|
addonId: null,
|
|
45600
45815
|
access: "create"
|
|
45601
45816
|
},
|
|
45817
|
+
"pipelineAnalytics.setRetrainFrameComplete": {
|
|
45818
|
+
capName: "pipeline-analytics",
|
|
45819
|
+
capScope: "device",
|
|
45820
|
+
addonId: null,
|
|
45821
|
+
access: "create"
|
|
45822
|
+
},
|
|
45602
45823
|
"pipelineAnalytics.setTrackFlags": {
|
|
45603
45824
|
capName: "pipeline-analytics",
|
|
45604
45825
|
capScope: "device",
|
|
@@ -45635,6 +45856,12 @@ Object.freeze({
|
|
|
45635
45856
|
addonId: null,
|
|
45636
45857
|
access: "delete"
|
|
45637
45858
|
},
|
|
45859
|
+
"pipelineAnalytics.writeRetrainArchive": {
|
|
45860
|
+
capName: "pipeline-analytics",
|
|
45861
|
+
capScope: "device",
|
|
45862
|
+
addonId: null,
|
|
45863
|
+
access: "create"
|
|
45864
|
+
},
|
|
45638
45865
|
"pipelineExecutor.cacheFrameInPool": {
|
|
45639
45866
|
capName: "pipeline-executor",
|
|
45640
45867
|
capScope: "system",
|
|
@@ -47987,18 +48214,36 @@ Object.freeze({
|
|
|
47987
48214
|
addonId: null,
|
|
47988
48215
|
access: "delete"
|
|
47989
48216
|
},
|
|
48217
|
+
"userManagement.findUserByExternalIdentity": {
|
|
48218
|
+
capName: "user-management",
|
|
48219
|
+
capScope: "system",
|
|
48220
|
+
addonId: null,
|
|
48221
|
+
access: "view"
|
|
48222
|
+
},
|
|
47990
48223
|
"userManagement.getTotpStatus": {
|
|
47991
48224
|
capName: "user-management",
|
|
47992
48225
|
capScope: "system",
|
|
47993
48226
|
addonId: null,
|
|
47994
48227
|
access: "view"
|
|
47995
48228
|
},
|
|
48229
|
+
"userManagement.linkExternalIdentity": {
|
|
48230
|
+
capName: "user-management",
|
|
48231
|
+
capScope: "system",
|
|
48232
|
+
addonId: null,
|
|
48233
|
+
access: "create"
|
|
48234
|
+
},
|
|
47996
48235
|
"userManagement.listApiKeys": {
|
|
47997
48236
|
capName: "user-management",
|
|
47998
48237
|
capScope: "system",
|
|
47999
48238
|
addonId: null,
|
|
48000
48239
|
access: "view"
|
|
48001
48240
|
},
|
|
48241
|
+
"userManagement.listExternalIdentities": {
|
|
48242
|
+
capName: "user-management",
|
|
48243
|
+
capScope: "system",
|
|
48244
|
+
addonId: null,
|
|
48245
|
+
access: "view"
|
|
48246
|
+
},
|
|
48002
48247
|
"userManagement.listOauthSessions": {
|
|
48003
48248
|
capName: "user-management",
|
|
48004
48249
|
capScope: "system",
|
|
@@ -48077,6 +48322,12 @@ Object.freeze({
|
|
|
48077
48322
|
addonId: null,
|
|
48078
48323
|
access: "create"
|
|
48079
48324
|
},
|
|
48325
|
+
"userManagement.unlinkExternalIdentity": {
|
|
48326
|
+
capName: "user-management",
|
|
48327
|
+
capScope: "system",
|
|
48328
|
+
addonId: null,
|
|
48329
|
+
access: "delete"
|
|
48330
|
+
},
|
|
48080
48331
|
"userManagement.updateUser": {
|
|
48081
48332
|
capName: "user-management",
|
|
48082
48333
|
capScope: "system",
|
|
@@ -51416,6 +51667,11 @@ Object.freeze({
|
|
|
51416
51667
|
form: "single",
|
|
51417
51668
|
optional: false
|
|
51418
51669
|
}],
|
|
51670
|
+
"pipelineAnalytics.setRetrainFrameComplete": [{
|
|
51671
|
+
name: "deviceId",
|
|
51672
|
+
form: "single",
|
|
51673
|
+
optional: false
|
|
51674
|
+
}],
|
|
51419
51675
|
"pipelineAnalytics.setTrackFlags": [{
|
|
51420
51676
|
name: "deviceId",
|
|
51421
51677
|
form: "single",
|
|
@@ -163414,11 +163670,11 @@ var MatterBrokerRegistry = class {
|
|
|
163414
163670
|
*/
|
|
163415
163671
|
var matterConnectionSchema = object({
|
|
163416
163672
|
/** Optional Thread operational dataset (hex) for Thread device onboarding. */
|
|
163417
|
-
threadDataset: string$2().default("").describe("Thread operational dataset (hex) — required only for Thread devices"),
|
|
163673
|
+
threadDataset: string$2().default("").describe("Thread operational dataset (hex) — required only for Thread devices").meta({ secret: true }),
|
|
163418
163674
|
/** Optional Wi-Fi SSID for Wi-Fi device onboarding over BLE. */
|
|
163419
163675
|
wifiSsid: string$2().default("").describe("Wi-Fi SSID — required only for BLE Wi-Fi onboarding"),
|
|
163420
163676
|
/** Optional Wi-Fi password for Wi-Fi device onboarding over BLE. */
|
|
163421
|
-
wifiPassword: string$2().default("").describe("Wi-Fi password (optional)"),
|
|
163677
|
+
wifiPassword: string$2().default("").describe("Wi-Fi password (optional)").meta({ secret: true }),
|
|
163422
163678
|
/** PULL-reconcile interval for the commissioned-node inventory. */
|
|
163423
163679
|
reconcileIntervalMs: preprocess((v) => v === "" || v === null ? void 0 : v, number().int().min(1e4).max(864e5).default(3e5)).describe("Node-inventory reconcile interval (ms)")
|
|
163424
163680
|
});
|
|
@@ -163449,6 +163705,7 @@ function buildConnectionFormSchema() {
|
|
|
163449
163705
|
{
|
|
163450
163706
|
type: "text",
|
|
163451
163707
|
key: "threadDataset",
|
|
163708
|
+
secret: true,
|
|
163452
163709
|
label: "Thread operational dataset (hex, optional)",
|
|
163453
163710
|
placeholder: "0e08000000000001…"
|
|
163454
163711
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-matter-broker",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.122",
|
|
4
4
|
"description": "Matter broker addon for CamStack — owns a Matter fabric (commissioning + the long-lived controller) via the matter.js controller and brokers commissioned Matter nodes into CamStack",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|