@camstack/addon-agent-ui 1.2.190 → 1.2.191
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 +202 -9
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -5371,7 +5371,7 @@ var ZodIssueCode = {
|
|
|
5371
5371
|
var ZodFirstPartyTypeKind;
|
|
5372
5372
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5373
5373
|
//#endregion
|
|
5374
|
-
//#region ../types/dist/sleep-
|
|
5374
|
+
//#region ../types/dist/sleep-B0JG7-_F.mjs
|
|
5375
5375
|
/**
|
|
5376
5376
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5377
5377
|
* window to float samples (D455).
|
|
@@ -14794,6 +14794,10 @@ var DeviceInfoSchema = object({
|
|
|
14794
14794
|
isCamera: boolean(),
|
|
14795
14795
|
/** Current config values — serializable snapshot */
|
|
14796
14796
|
config: record(string(), unknown()),
|
|
14797
|
+
/** Paths inside `config` the device's schema declares secret (D783) —
|
|
14798
|
+
* what the non-admin redaction withholds. Paths, never values. Absent
|
|
14799
|
+
* when the owning runner has not reported them. */
|
|
14800
|
+
secretConfigPaths: array(string()).optional(),
|
|
14797
14801
|
/** Hardware + identity blob (manufacturer / model / firmware / sn /
|
|
14798
14802
|
* uid / mac / …). Populated by drivers; editable via setMetadata. */
|
|
14799
14803
|
metadata: record(string(), unknown()).nullable().optional(),
|
|
@@ -14999,7 +15003,13 @@ var DeviceRegisterPayloadSchema = object({
|
|
|
14999
15003
|
* call (workers re-register on init), so probe-driven updates
|
|
15000
15004
|
* (e.g. PTZ flag flipping after the abilities probe) propagate. */
|
|
15001
15005
|
features: array(string()).optional(),
|
|
15002
|
-
config: record(string(), unknown())
|
|
15006
|
+
config: record(string(), unknown()),
|
|
15007
|
+
/** Config paths the device's own schema DECLARES secret
|
|
15008
|
+
* (`.meta({ secret: true })` — dotted, `[]` for array items, e.g.
|
|
15009
|
+
* `connection.password`). Re-published on every register; the non-admin
|
|
15010
|
+
* redaction withholds them at any depth (D783). Optional: an older runner
|
|
15011
|
+
* omits it and the keyword backstop applies. */
|
|
15012
|
+
secretConfigPaths: array(string()).optional()
|
|
15003
15013
|
});
|
|
15004
15014
|
var DeviceRemovePayloadSchema = object({ deviceId: number() });
|
|
15005
15015
|
var DevicePersistConfigPayloadSchema = object({
|
|
@@ -16658,7 +16668,14 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
16658
16668
|
icon: string().optional(),
|
|
16659
16669
|
/** Addon-owned HTTP route the button navigates to (GET). */
|
|
16660
16670
|
startUrl: string(),
|
|
16661
|
-
stage: LoginStageEnum
|
|
16671
|
+
stage: LoginStageEnum,
|
|
16672
|
+
/**
|
|
16673
|
+
* The provider names an external identity a signed-in user can link to
|
|
16674
|
+
* their own account (D782): `auth.listLinkableProviders` /
|
|
16675
|
+
* `beginExternalLink` offer exactly the redirect methods that set this,
|
|
16676
|
+
* whatever their id. Absent / false — a login button only (magic-link).
|
|
16677
|
+
*/
|
|
16678
|
+
linkable: boolean().optional()
|
|
16662
16679
|
}),
|
|
16663
16680
|
object({
|
|
16664
16681
|
kind: literal("widget"),
|
|
@@ -22055,7 +22072,13 @@ var RetrainFrameSchema = object({
|
|
|
22055
22072
|
sizeBytes: number().int(),
|
|
22056
22073
|
width: number().int(),
|
|
22057
22074
|
height: number().int(),
|
|
22058
|
-
copiedAt: number()
|
|
22075
|
+
copiedAt: number(),
|
|
22076
|
+
/** When the CAMERA captured the frame. Absent on a copy taken before D785. */
|
|
22077
|
+
capturedAt: number().optional(),
|
|
22078
|
+
/** The operator's "every subject in this frame is boxed". Detector
|
|
22079
|
+
* evaluation keeps only complete frames: an unboxed subject would count as
|
|
22080
|
+
* a false positive. */
|
|
22081
|
+
complete: boolean()
|
|
22059
22082
|
});
|
|
22060
22083
|
/** Why a copy-on-select could not be honoured — named, never a silent skip. */
|
|
22061
22084
|
var RetrainCopyRefusalSchema = _enum([
|
|
@@ -22076,6 +22099,51 @@ var RetrainFrameListSchema = object({
|
|
|
22076
22099
|
/** What the page pre-selects — the native key frame when one survives. */
|
|
22077
22100
|
autoPickMediaId: number().int().optional()
|
|
22078
22101
|
});
|
|
22102
|
+
/**
|
|
22103
|
+
* Which frames an annotated export carries. Every field narrows; an empty
|
|
22104
|
+
* filter is every annotated copy. A dataset VERSION is a frozen `frameIds`
|
|
22105
|
+
* list owned by whoever trains (the training orchestrator), so `frameIds` is
|
|
22106
|
+
* the primitive a version export uses; `batchId` re-selects what an earlier
|
|
22107
|
+
* export carried (`exportedInBatch`).
|
|
22108
|
+
*/
|
|
22109
|
+
var RetrainExportFilterSchema = object({
|
|
22110
|
+
deviceIds: array(number()).optional(),
|
|
22111
|
+
frameIds: array(string()).max(2e4).optional(),
|
|
22112
|
+
batchId: string().optional(),
|
|
22113
|
+
/** Only frames the operator marked complete (all subjects boxed). */
|
|
22114
|
+
completeOnly: boolean().optional()
|
|
22115
|
+
});
|
|
22116
|
+
/**
|
|
22117
|
+
* `frames`: the full frame copies, boxes in `annotations.json`.
|
|
22118
|
+
* `crops`: additionally one JPEG per subject, cut with the runtime detail-crop
|
|
22119
|
+
* convention — the classifier layout.
|
|
22120
|
+
*/
|
|
22121
|
+
var RetrainExportLayoutSchema = _enum(["frames", "crops"]);
|
|
22122
|
+
/**
|
|
22123
|
+
* Where `writeRetrainArchive` streams the tar: one HTTP request whose body is
|
|
22124
|
+
* the archive, sent chunk by chunk. Covers a presigned PUT and a provider
|
|
22125
|
+
* addon's data-plane upload route alike. Headers are sent verbatim and never
|
|
22126
|
+
* logged.
|
|
22127
|
+
*/
|
|
22128
|
+
var RetrainArchiveTargetSchema = object({
|
|
22129
|
+
kind: literal("http"),
|
|
22130
|
+
method: _enum(["PUT", "POST"]),
|
|
22131
|
+
url: string().url(),
|
|
22132
|
+
headers: record(string(), string()).optional()
|
|
22133
|
+
});
|
|
22134
|
+
var RetrainArchiveResultSchema = object({
|
|
22135
|
+
batchId: string(),
|
|
22136
|
+
frames: number().int(),
|
|
22137
|
+
crops: number().int(),
|
|
22138
|
+
annotations: number().int(),
|
|
22139
|
+
/** Frames planned but not shipped (unreadable copy, path too long). */
|
|
22140
|
+
missing: number().int(),
|
|
22141
|
+
bytes: number().int(),
|
|
22142
|
+
/** sha256 of the exact bytes sent. */
|
|
22143
|
+
sha256: string(),
|
|
22144
|
+
/** The target's HTTP status. */
|
|
22145
|
+
status: number().int()
|
|
22146
|
+
});
|
|
22079
22147
|
/** What the operator asked the assist to look for. */
|
|
22080
22148
|
var RetrainAssistSubjectSchema = discriminatedUnion("kind", [object({
|
|
22081
22149
|
kind: literal("package"),
|
|
@@ -22870,9 +22938,25 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
22870
22938
|
}), RetrainTransitionResultSchema, {
|
|
22871
22939
|
kind: "mutation",
|
|
22872
22940
|
auth: "admin"
|
|
22873
|
-
}), method(
|
|
22941
|
+
}), method(RetrainExportFilterSchema.extend({ layout: RetrainExportLayoutSchema.optional() }), object({ url: string() }), {
|
|
22874
22942
|
kind: "query",
|
|
22875
22943
|
auth: "admin"
|
|
22944
|
+
}), method(object({
|
|
22945
|
+
deviceId: number(),
|
|
22946
|
+
trackId: string(),
|
|
22947
|
+
frameId: string(),
|
|
22948
|
+
complete: boolean()
|
|
22949
|
+
}), RetrainFrameSchema, {
|
|
22950
|
+
kind: "mutation",
|
|
22951
|
+
auth: "admin"
|
|
22952
|
+
}), method(object({
|
|
22953
|
+
filter: RetrainExportFilterSchema,
|
|
22954
|
+
layout: RetrainExportLayoutSchema,
|
|
22955
|
+
target: RetrainArchiveTargetSchema
|
|
22956
|
+
}), RetrainArchiveResultSchema, {
|
|
22957
|
+
kind: "mutation",
|
|
22958
|
+
auth: "admin",
|
|
22959
|
+
timeoutMs: 60 * 6e4
|
|
22876
22960
|
}), method(object({
|
|
22877
22961
|
/** Which of the three event tables owns the row. */
|
|
22878
22962
|
ownerType: EventOwnerTypeSchema,
|
|
@@ -26162,7 +26246,19 @@ var SsoBridgeClaimsSchema = object({
|
|
|
26162
26246
|
* editing a descriptor must not retroactively extend or shorten a link the
|
|
26163
26247
|
* operator already consented to.
|
|
26164
26248
|
*/
|
|
26165
|
-
refreshTtl: union([number().int().positive(), literal("never")]).optional()
|
|
26249
|
+
refreshTtl: union([number().int().positive(), literal("never")]).optional(),
|
|
26250
|
+
/**
|
|
26251
|
+
* Opaque handle of a hub-side LINK intent (D782). Set by an OIDC callback
|
|
26252
|
+
* that was started from a signed-in user's "Link" button: the finish then
|
|
26253
|
+
* links this identity to the intent's user instead of signing anyone in.
|
|
26254
|
+
* The handle carries no user id — the hub resolves it, single-use.
|
|
26255
|
+
*/
|
|
26256
|
+
linkIntent: string().optional(),
|
|
26257
|
+
/**
|
|
26258
|
+
* Verified `iss` of the id_token behind an OIDC login bridge (D782). A
|
|
26259
|
+
* subject is unique only per issuer, so a link is bound to it.
|
|
26260
|
+
*/
|
|
26261
|
+
issuer: string().optional()
|
|
26166
26262
|
});
|
|
26167
26263
|
method(object({
|
|
26168
26264
|
claims: SsoBridgeClaimsSchema,
|
|
@@ -28068,7 +28164,22 @@ DeviceType.Camera, method(object({ deviceId: number().int().nonnegative() }), ar
|
|
|
28068
28164
|
* field their hints were silently stripped by the schema and the
|
|
28069
28165
|
* adaptive ladder started blind on the client's display size.
|
|
28070
28166
|
*/
|
|
28071
|
-
hints: webrtcClientHintsSchema.optional()
|
|
28167
|
+
hints: webrtcClientHintsSchema.optional(),
|
|
28168
|
+
/**
|
|
28169
|
+
* Talk-back (D771): relay the PEER's audio to the device's speaker
|
|
28170
|
+
* through the `intercom` cap's push-talk triple. When `true` and the
|
|
28171
|
+
* offer lets the peer send audio, the answer's audio is `sendrecv`
|
|
28172
|
+
* and every inbound frame goes to `intercom.pushTalkAudio` for this
|
|
28173
|
+
* `deviceId`; absent/false answers `sendonly`, as for every viewer.
|
|
28174
|
+
*
|
|
28175
|
+
* TRUSTED-CALLER ONLY. Set by the Alexa export for an Echo on a camera
|
|
28176
|
+
* with `intercom`, when the linked user may control that camera. The
|
|
28177
|
+
* hub STRIPS it from every request-bound call (a browser), exactly as
|
|
28178
|
+
* it overwrites `relayOnly` — a viewer's talk permission is the
|
|
28179
|
+
* intercom cap's own surface (share tokens gate it there), and this
|
|
28180
|
+
* flag must not become a second door to the camera's speaker.
|
|
28181
|
+
*/
|
|
28182
|
+
talkback: boolean().optional()
|
|
28072
28183
|
}), object({
|
|
28073
28184
|
sessionId: string(),
|
|
28074
28185
|
sdpAnswer: string()
|
|
@@ -36112,6 +36223,32 @@ var TotpStatusSchema = object({
|
|
|
36112
36223
|
/** Null when no row exists OR the row is still pending confirmation. */
|
|
36113
36224
|
confirmedAt: number().nullable()
|
|
36114
36225
|
});
|
|
36226
|
+
/**
|
|
36227
|
+
* user-management — singleton capability for user accounts, API keys,
|
|
36228
|
+
* and scoped tokens.
|
|
36229
|
+
*
|
|
36230
|
+
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
36231
|
+
* — the subset check on `setUserScopes` / `createScopedToken` is moot
|
|
36232
|
+
* because non-admins never reach these. If/when we open non-admin
|
|
36233
|
+
* delegation, structural caller-scope subset check goes inside the
|
|
36234
|
+
* provider.
|
|
36235
|
+
*/
|
|
36236
|
+
var ExternalIdentitySchema = object({
|
|
36237
|
+
/** Login-method id of the provider instance, e.g. `auth-oidc/authentik`. */
|
|
36238
|
+
provider: string(),
|
|
36239
|
+
/** The IdP's stable subject (`sub`) for this account. */
|
|
36240
|
+
subject: string(),
|
|
36241
|
+
/** The verified `iss` of the IdP the identity was linked under — `sub` is unique only per issuer. */
|
|
36242
|
+
issuer: string(),
|
|
36243
|
+
userId: string(),
|
|
36244
|
+
/** What the IdP called the account at link time (username / email) — display only. */
|
|
36245
|
+
label: string().optional(),
|
|
36246
|
+
linkedAt: number()
|
|
36247
|
+
});
|
|
36248
|
+
var ExternalIdentityKeySchema = object({
|
|
36249
|
+
provider: string().min(1),
|
|
36250
|
+
subject: string().min(1)
|
|
36251
|
+
});
|
|
36115
36252
|
method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserInputSchema, UserSummarySchema, {
|
|
36116
36253
|
kind: "mutation",
|
|
36117
36254
|
auth: "admin",
|
|
@@ -36225,7 +36362,22 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
36225
36362
|
userId: string(),
|
|
36226
36363
|
username: string(),
|
|
36227
36364
|
scopes: array(TokenScopeSchema)
|
|
36228
|
-
}).nullable(), { access: "view" }), method(
|
|
36365
|
+
}).nullable(), { access: "view" }), method(object({ userId: string() }), array(ExternalIdentitySchema), { auth: "admin" }), method(ExternalIdentityKeySchema, object({
|
|
36366
|
+
userId: string(),
|
|
36367
|
+
issuer: string()
|
|
36368
|
+
}).nullable(), { auth: "admin" }), method(ExternalIdentityKeySchema.extend({
|
|
36369
|
+
userId: string(),
|
|
36370
|
+
issuer: string().min(1),
|
|
36371
|
+
label: string().optional()
|
|
36372
|
+
}), object({ success: literal(true) }), {
|
|
36373
|
+
kind: "mutation",
|
|
36374
|
+
auth: "admin",
|
|
36375
|
+
access: "create"
|
|
36376
|
+
}), method(ExternalIdentityKeySchema.extend({ userId: string() }), object({ success: boolean() }), {
|
|
36377
|
+
kind: "mutation",
|
|
36378
|
+
auth: "admin",
|
|
36379
|
+
access: "delete"
|
|
36380
|
+
}), method(_void(), array(OauthSessionSummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: boolean() }), {
|
|
36229
36381
|
kind: "mutation",
|
|
36230
36382
|
auth: "admin",
|
|
36231
36383
|
access: "delete"
|
|
@@ -41031,6 +41183,12 @@ Object.freeze({
|
|
|
41031
41183
|
addonId: null,
|
|
41032
41184
|
access: "create"
|
|
41033
41185
|
},
|
|
41186
|
+
"pipelineAnalytics.setRetrainFrameComplete": {
|
|
41187
|
+
capName: "pipeline-analytics",
|
|
41188
|
+
capScope: "device",
|
|
41189
|
+
addonId: null,
|
|
41190
|
+
access: "create"
|
|
41191
|
+
},
|
|
41034
41192
|
"pipelineAnalytics.setTrackFlags": {
|
|
41035
41193
|
capName: "pipeline-analytics",
|
|
41036
41194
|
capScope: "device",
|
|
@@ -41067,6 +41225,12 @@ Object.freeze({
|
|
|
41067
41225
|
addonId: null,
|
|
41068
41226
|
access: "delete"
|
|
41069
41227
|
},
|
|
41228
|
+
"pipelineAnalytics.writeRetrainArchive": {
|
|
41229
|
+
capName: "pipeline-analytics",
|
|
41230
|
+
capScope: "device",
|
|
41231
|
+
addonId: null,
|
|
41232
|
+
access: "create"
|
|
41233
|
+
},
|
|
41070
41234
|
"pipelineExecutor.cacheFrameInPool": {
|
|
41071
41235
|
capName: "pipeline-executor",
|
|
41072
41236
|
capScope: "system",
|
|
@@ -43419,18 +43583,36 @@ Object.freeze({
|
|
|
43419
43583
|
addonId: null,
|
|
43420
43584
|
access: "delete"
|
|
43421
43585
|
},
|
|
43586
|
+
"userManagement.findUserByExternalIdentity": {
|
|
43587
|
+
capName: "user-management",
|
|
43588
|
+
capScope: "system",
|
|
43589
|
+
addonId: null,
|
|
43590
|
+
access: "view"
|
|
43591
|
+
},
|
|
43422
43592
|
"userManagement.getTotpStatus": {
|
|
43423
43593
|
capName: "user-management",
|
|
43424
43594
|
capScope: "system",
|
|
43425
43595
|
addonId: null,
|
|
43426
43596
|
access: "view"
|
|
43427
43597
|
},
|
|
43598
|
+
"userManagement.linkExternalIdentity": {
|
|
43599
|
+
capName: "user-management",
|
|
43600
|
+
capScope: "system",
|
|
43601
|
+
addonId: null,
|
|
43602
|
+
access: "create"
|
|
43603
|
+
},
|
|
43428
43604
|
"userManagement.listApiKeys": {
|
|
43429
43605
|
capName: "user-management",
|
|
43430
43606
|
capScope: "system",
|
|
43431
43607
|
addonId: null,
|
|
43432
43608
|
access: "view"
|
|
43433
43609
|
},
|
|
43610
|
+
"userManagement.listExternalIdentities": {
|
|
43611
|
+
capName: "user-management",
|
|
43612
|
+
capScope: "system",
|
|
43613
|
+
addonId: null,
|
|
43614
|
+
access: "view"
|
|
43615
|
+
},
|
|
43434
43616
|
"userManagement.listOauthSessions": {
|
|
43435
43617
|
capName: "user-management",
|
|
43436
43618
|
capScope: "system",
|
|
@@ -43509,6 +43691,12 @@ Object.freeze({
|
|
|
43509
43691
|
addonId: null,
|
|
43510
43692
|
access: "create"
|
|
43511
43693
|
},
|
|
43694
|
+
"userManagement.unlinkExternalIdentity": {
|
|
43695
|
+
capName: "user-management",
|
|
43696
|
+
capScope: "system",
|
|
43697
|
+
addonId: null,
|
|
43698
|
+
access: "delete"
|
|
43699
|
+
},
|
|
43512
43700
|
"userManagement.updateUser": {
|
|
43513
43701
|
capName: "user-management",
|
|
43514
43702
|
capScope: "system",
|
|
@@ -46848,6 +47036,11 @@ Object.freeze({
|
|
|
46848
47036
|
form: "single",
|
|
46849
47037
|
optional: false
|
|
46850
47038
|
}],
|
|
47039
|
+
"pipelineAnalytics.setRetrainFrameComplete": [{
|
|
47040
|
+
name: "deviceId",
|
|
47041
|
+
form: "single",
|
|
47042
|
+
optional: false
|
|
47043
|
+
}],
|
|
46851
47044
|
"pipelineAnalytics.setTrackFlags": [{
|
|
46852
47045
|
name: "deviceId",
|
|
46853
47046
|
form: "single",
|
|
@@ -48919,7 +49112,7 @@ var AgentUIAddon = class extends BaseAddon {
|
|
|
48919
49112
|
capability: adminUiCapability,
|
|
48920
49113
|
provider: {
|
|
48921
49114
|
getStaticDir: async () => ({ staticDir: path.resolve(__dirname) }),
|
|
48922
|
-
getVersion: async () => ({ version: "1.2.
|
|
49115
|
+
getVersion: async () => ({ version: "1.2.191" })
|
|
48923
49116
|
}
|
|
48924
49117
|
}];
|
|
48925
49118
|
}
|