@camstack/addon-training 0.1.33 → 0.1.35
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/{MotionZonesSettings-DoUEe4WF.mjs → MotionZonesSettings-DXqAP5wz.mjs} +3 -3
- package/dist/{PrivacyMaskSettings-iFKfZ5c0.mjs → PrivacyMaskSettings-CoNvkvc6.mjs} +4 -4
- package/dist/{SceneMonitorEditor-LX1mAT8M.mjs → SceneMonitorEditor-CwsEEzGt.mjs} +3 -3
- package/dist/_stub.js +1775 -1686
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-jHBM2Hh7.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-DL0IzS20.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-cX_n863q.mjs +26 -0
- package/dist/addon-training.css +1 -1
- package/dist/{dist-k9SdzZBB.js → dist-B-VsYan_.js} +275 -15
- package/dist/{dist-BMkD7tAc.mjs → dist-BquQjWLf.mjs} +275 -15
- package/dist/{grid-2x2-CJ-EVenJ.mjs → grid-2x2-CpuOMtGX.mjs} +1 -1
- package/dist/{hostInit-DUCS6DMR.mjs → hostInit-D7qKQyKN.mjs} +2 -2
- package/dist/index.js +1 -1
- package/dist/orchestrator/training.addon.js +1 -1
- package/dist/orchestrator/training.addon.mjs +1 -1
- package/dist/{player-overlays-CeSu_AC4.mjs → player-overlays-HBuTHRa6.mjs} +1 -1
- package/dist/providers/modal/training-modal.addon.js +1 -1
- package/dist/providers/modal/training-modal.addon.mjs +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-CXEWggtS.mjs → responsive-D9vCqgDU.mjs} +1 -1
- package/dist/{scene-monitor-copy-BuIo6qi2.mjs → scene-monitor-copy-Cwu-a3SC.mjs} +1 -1
- package/dist/{square-DMtRWe-j.mjs → square-CuRDdJ1_.mjs} +1 -1
- package/dist/{trash-2-HBC8dnmH.mjs → trash-2-gnLrce8g.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-BU19oDd0.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-MIdiPdsF.mjs} +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CNvuVA0z.mjs +0 -26
|
@@ -5420,7 +5420,7 @@ var ZodIssueCode = {
|
|
|
5420
5420
|
var ZodFirstPartyTypeKind;
|
|
5421
5421
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5422
5422
|
//#endregion
|
|
5423
|
-
//#region ../types/dist/sleep-
|
|
5423
|
+
//#region ../types/dist/sleep-BBF1iXUi.mjs
|
|
5424
5424
|
/**
|
|
5425
5425
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5426
5426
|
* window to float samples (D455).
|
|
@@ -8021,6 +8021,21 @@ var ProfileRtspEntrySchema = object({
|
|
|
8021
8021
|
codec: string().optional(),
|
|
8022
8022
|
resolution: CamStreamResolutionSchema.optional()
|
|
8023
8023
|
});
|
|
8024
|
+
/**
|
|
8025
|
+
* The model weight formats a catalog entry can ship. Schema-free on purpose:
|
|
8026
|
+
* `types/models.ts` builds Zod schemas from it, but a runner-closure consumer
|
|
8027
|
+
* (the model downloader in `@camstack/system`) needs only the list and must
|
|
8028
|
+
* reach it through `@camstack/types/addon` without building the cap schema
|
|
8029
|
+
* graph (D28).
|
|
8030
|
+
*/
|
|
8031
|
+
var MODEL_FORMATS = [
|
|
8032
|
+
"onnx",
|
|
8033
|
+
"coreml",
|
|
8034
|
+
"openvino",
|
|
8035
|
+
"tflite",
|
|
8036
|
+
"pt",
|
|
8037
|
+
"gguf"
|
|
8038
|
+
];
|
|
8024
8039
|
object({
|
|
8025
8040
|
field: string().min(1),
|
|
8026
8041
|
on: literal("advance")
|
|
@@ -8494,7 +8509,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
8494
8509
|
return DeviceRole;
|
|
8495
8510
|
}({});
|
|
8496
8511
|
//#endregion
|
|
8497
|
-
//#region ../types/dist/composition-
|
|
8512
|
+
//#region ../types/dist/composition-C-WpVYTX.mjs
|
|
8498
8513
|
/**
|
|
8499
8514
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
8500
8515
|
*
|
|
@@ -8546,7 +8561,7 @@ var BASE = `https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v${FFM
|
|
|
8546
8561
|
function portable(target) {
|
|
8547
8562
|
return `${BASE}/jellyfin-ffmpeg_${FFMPEG_RELEASE}_portable_${target}-gpl.tar.xz`;
|
|
8548
8563
|
}
|
|
8549
|
-
portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64")
|
|
8564
|
+
portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64"), `${BASE}${FFMPEG_RELEASE}`;
|
|
8550
8565
|
/**
|
|
8551
8566
|
* THE table "which boolean of this device type counts as HIGH", and the
|
|
8552
8567
|
* pure evaluator of its EDGE.
|
|
@@ -10139,6 +10154,15 @@ function parseTrainingEventLine(line) {
|
|
|
10139
10154
|
const parsed = TrainingEventSchema.safeParse(raw);
|
|
10140
10155
|
return parsed.success ? parsed.data : null;
|
|
10141
10156
|
}
|
|
10157
|
+
/** Every status, in the order a summary lists them. */
|
|
10158
|
+
var RETRAIN_REVIEW_STATUSES = [
|
|
10159
|
+
"unchanged",
|
|
10160
|
+
"adjusted",
|
|
10161
|
+
"reclassified",
|
|
10162
|
+
"added",
|
|
10163
|
+
"removed",
|
|
10164
|
+
"model-error"
|
|
10165
|
+
];
|
|
10142
10166
|
/**
|
|
10143
10167
|
* What the gate decided about a birth, from the CALLER's point of view.
|
|
10144
10168
|
*
|
|
@@ -11756,14 +11780,6 @@ var MASK_SUPPLY_STEP_IDS = ["segmentation"];
|
|
|
11756
11780
|
...CROP_SUPPLY_STEP_IDS,
|
|
11757
11781
|
...MASK_SUPPLY_STEP_IDS
|
|
11758
11782
|
];
|
|
11759
|
-
var MODEL_FORMATS = [
|
|
11760
|
-
"onnx",
|
|
11761
|
-
"coreml",
|
|
11762
|
-
"openvino",
|
|
11763
|
-
"tflite",
|
|
11764
|
-
"pt",
|
|
11765
|
-
"gguf"
|
|
11766
|
-
];
|
|
11767
11783
|
/**
|
|
11768
11784
|
* Multi-file format payload.
|
|
11769
11785
|
*
|
|
@@ -13927,6 +13943,16 @@ var BrokerClientsSchema = object({
|
|
|
13927
13943
|
/** Total encoded + raw-RTP callback subscriber count (sum of `encoded[].length`). */
|
|
13928
13944
|
encodedSubscribers: number()
|
|
13929
13945
|
});
|
|
13946
|
+
/**
|
|
13947
|
+
* How many people are watching one camera LIVE right now — see
|
|
13948
|
+
* `getLiveViewerCounts`. A camera with nobody watching is absent from the list
|
|
13949
|
+
* (so `viewers` is always at least 1): the listing carries the cameras that
|
|
13950
|
+
* have viewers, never a row of zeros.
|
|
13951
|
+
*/
|
|
13952
|
+
var LiveViewerCountSchema = object({
|
|
13953
|
+
deviceId: number().int().nonnegative(),
|
|
13954
|
+
viewers: number().int().positive()
|
|
13955
|
+
});
|
|
13930
13956
|
_enum([
|
|
13931
13957
|
"reconnecting",
|
|
13932
13958
|
"sleeping",
|
|
@@ -14287,7 +14313,7 @@ method(object({
|
|
|
14287
14313
|
}), {
|
|
14288
14314
|
kind: "mutation",
|
|
14289
14315
|
auth: "admin"
|
|
14290
|
-
}), method(object({ brokerId: string() }), BrokerClientsSchema), method(object({
|
|
14316
|
+
}), method(object({ brokerId: string() }), BrokerClientsSchema), method(_void(), array(LiveViewerCountSchema).readonly()), method(object({
|
|
14291
14317
|
brokerId: string(),
|
|
14292
14318
|
channel: _enum(["rtsp", "audio"]),
|
|
14293
14319
|
handle: string()
|
|
@@ -15235,6 +15261,38 @@ var BulkRecordSchema = object({
|
|
|
15235
15261
|
data: record(string(), unknown())
|
|
15236
15262
|
});
|
|
15237
15263
|
/**
|
|
15264
|
+
* One write inside a {@link settingsStoreCapability.methods.transact} call.
|
|
15265
|
+
* Only the three that a "replace this set, bump that revision" write needs.
|
|
15266
|
+
*/
|
|
15267
|
+
var TransactOpSchema = discriminatedUnion("op", [
|
|
15268
|
+
object({
|
|
15269
|
+
op: literal("deleteWhere"),
|
|
15270
|
+
collection: string(),
|
|
15271
|
+
filter: MutationFilterSchema
|
|
15272
|
+
}),
|
|
15273
|
+
object({
|
|
15274
|
+
op: literal("insertMany"),
|
|
15275
|
+
collection: string(),
|
|
15276
|
+
records: array(BulkRecordSchema).readonly()
|
|
15277
|
+
}),
|
|
15278
|
+
object({
|
|
15279
|
+
op: literal("update"),
|
|
15280
|
+
collection: string(),
|
|
15281
|
+
id: string(),
|
|
15282
|
+
data: record(string(), unknown())
|
|
15283
|
+
})
|
|
15284
|
+
]);
|
|
15285
|
+
/**
|
|
15286
|
+
* The precondition of a transaction: the row `key` of `collection` must hold
|
|
15287
|
+
* `equals` in `column`, read INSIDE the transaction.
|
|
15288
|
+
*/
|
|
15289
|
+
var TransactGuardSchema = object({
|
|
15290
|
+
collection: string(),
|
|
15291
|
+
key: string(),
|
|
15292
|
+
column: string(),
|
|
15293
|
+
equals: unknown()
|
|
15294
|
+
});
|
|
15295
|
+
/**
|
|
15238
15296
|
* Column declaration for a structured (SQL-backed) collection.
|
|
15239
15297
|
*
|
|
15240
15298
|
* Logical types — the backend translates each to the matching SQLite
|
|
@@ -15325,6 +15383,16 @@ id: union([string(), number()]) }), {
|
|
|
15325
15383
|
}), object({ inserted: number().int() }), {
|
|
15326
15384
|
kind: "mutation",
|
|
15327
15385
|
auth: "admin"
|
|
15386
|
+
}), method(object({
|
|
15387
|
+
namespace: string().optional(),
|
|
15388
|
+
guard: TransactGuardSchema.optional(),
|
|
15389
|
+
ops: array(TransactOpSchema).readonly()
|
|
15390
|
+
}), object({
|
|
15391
|
+
applied: boolean(),
|
|
15392
|
+
current: unknown().optional()
|
|
15393
|
+
}), {
|
|
15394
|
+
kind: "mutation",
|
|
15395
|
+
auth: "admin"
|
|
15328
15396
|
}), method(object({
|
|
15329
15397
|
namespace: string().optional(),
|
|
15330
15398
|
collection: string(),
|
|
@@ -15473,6 +15541,16 @@ id: union([string(), number()]) }), {
|
|
|
15473
15541
|
}), object({ inserted: number().int() }), {
|
|
15474
15542
|
kind: "mutation",
|
|
15475
15543
|
auth: "admin"
|
|
15544
|
+
}), method(object({
|
|
15545
|
+
namespace: string().optional(),
|
|
15546
|
+
guard: TransactGuardSchema.optional(),
|
|
15547
|
+
ops: array(TransactOpSchema).readonly()
|
|
15548
|
+
}), object({
|
|
15549
|
+
applied: boolean(),
|
|
15550
|
+
current: unknown().optional()
|
|
15551
|
+
}), {
|
|
15552
|
+
kind: "mutation",
|
|
15553
|
+
auth: "admin"
|
|
15476
15554
|
}), method(object({
|
|
15477
15555
|
namespace: string().optional(),
|
|
15478
15556
|
collection: string(),
|
|
@@ -23885,6 +23963,55 @@ var RetrainBboxSchema = object({
|
|
|
23885
23963
|
h: number()
|
|
23886
23964
|
});
|
|
23887
23965
|
/**
|
|
23966
|
+
* What a box LOOKED LIKE when it was offered, snapshotted at the moment the
|
|
23967
|
+
* operator accepted it. The saved row keeps only the final rectangle; this is
|
|
23968
|
+
* the other half of the pair, and the pair is what says whether the operator
|
|
23969
|
+
* accepted, nudged, relabelled or replaced a proposal (`retrain-review.ts`).
|
|
23970
|
+
*
|
|
23971
|
+
* `ref` names the proposal inside its frame: `pipeline:<trackId>` for a box the
|
|
23972
|
+
* live pipeline drew, `assist:<n>` for the n-th box of a detector or LLM run,
|
|
23973
|
+
* and anything unique for an operator-drawn box (`operator:<n>`). Re-derived
|
|
23974
|
+
* pipeline boxes carry the same ref every time, which is what lets a dismissal
|
|
23975
|
+
* stay dismissed.
|
|
23976
|
+
*/
|
|
23977
|
+
var RetrainOriginSchema = object({
|
|
23978
|
+
source: RetrainAnnotationSourceSchema,
|
|
23979
|
+
ref: string().min(1),
|
|
23980
|
+
bbox: RetrainBboxSchema,
|
|
23981
|
+
macroClass: RetrainMacroClassSchema,
|
|
23982
|
+
label: string().optional(),
|
|
23983
|
+
score: number().optional(),
|
|
23984
|
+
modelId: string().optional()
|
|
23985
|
+
});
|
|
23986
|
+
/**
|
|
23987
|
+
* A proposal the operator deleted. Durable on the frame, so a deleted pipeline
|
|
23988
|
+
* box does not come back as a draft every time the frame is reopened, and so
|
|
23989
|
+
* the deletion itself is a recorded fact rather than an absence.
|
|
23990
|
+
*/
|
|
23991
|
+
var RetrainDismissedSchema = object({
|
|
23992
|
+
ref: string().min(1),
|
|
23993
|
+
snapshot: RetrainOriginSchema
|
|
23994
|
+
});
|
|
23995
|
+
/** What the operator did with a proposal (see `retrain-review.ts`). */
|
|
23996
|
+
var RetrainReviewStatusSchema = _enum(RETRAIN_REVIEW_STATUSES);
|
|
23997
|
+
var RetrainFrameReviewSchema = object({
|
|
23998
|
+
boxes: array(object({
|
|
23999
|
+
ref: string(),
|
|
24000
|
+
savedId: string().optional(),
|
|
24001
|
+
status: RetrainReviewStatusSchema,
|
|
24002
|
+
/** The baseline was re-derived, not snapshotted (a pre-origin row). */
|
|
24003
|
+
approximate: boolean(),
|
|
24004
|
+
origin: RetrainOriginSchema.optional(),
|
|
24005
|
+
iou: number().optional()
|
|
24006
|
+
})).readonly(),
|
|
24007
|
+
summary: object({
|
|
24008
|
+
counts: record(RetrainReviewStatusSchema, number().int()),
|
|
24009
|
+
total: number().int(),
|
|
24010
|
+
changed: number().int(),
|
|
24011
|
+
approximate: boolean()
|
|
24012
|
+
})
|
|
24013
|
+
});
|
|
24014
|
+
/**
|
|
23888
24015
|
* One annotated subject.
|
|
23889
24016
|
*
|
|
23890
24017
|
* `bbox` is normalised against the full frame, ALWAYS. The per-model shapes
|
|
@@ -23908,6 +24035,9 @@ var RetrainAnnotationSchema = object({
|
|
|
23908
24035
|
/** Which model proposed this box — or, on a `model_error`, drew the phantom. */
|
|
23909
24036
|
assistModelId: string().optional(),
|
|
23910
24037
|
assistScore: number().optional(),
|
|
24038
|
+
/** The proposal this box started from, snapshotted at accept time. `null` on
|
|
24039
|
+
* a row saved before origins existed; absent on a draft nobody snapshotted. */
|
|
24040
|
+
origin: RetrainOriginSchema.nullable().optional(),
|
|
23911
24041
|
exportedInBatch: string().optional(),
|
|
23912
24042
|
createdAt: number()
|
|
23913
24043
|
});
|
|
@@ -24000,7 +24130,19 @@ var RetrainFrameSchema = object({
|
|
|
24000
24130
|
* empty when nothing the track store holds can be placed on it. */
|
|
24001
24131
|
pipelineBoxes: array(RetrainPipelineBoxSchema).readonly().optional(),
|
|
24002
24132
|
/** The named collections this frame belongs to. Present on list answers. */
|
|
24003
|
-
collectionIds: array(string()).readonly().optional()
|
|
24133
|
+
collectionIds: array(string()).readonly().optional(),
|
|
24134
|
+
/** Bumped by every annotation save. A save that names a stale
|
|
24135
|
+
* `expectedRevision` is refused, so two surfaces cannot overwrite each other. */
|
|
24136
|
+
revision: number().int().optional(),
|
|
24137
|
+
/** Proposals the operator deleted — never re-seeded as drafts. */
|
|
24138
|
+
dismissed: array(RetrainDismissedSchema).readonly().optional(),
|
|
24139
|
+
/** What the operator did with the proposals, computed by the server. */
|
|
24140
|
+
review: RetrainFrameReviewSchema.optional(),
|
|
24141
|
+
/** The frame's pixels over the admin data plane (full size). Fetch with the
|
|
24142
|
+
* admin bearer token; relative to the hub root. */
|
|
24143
|
+
imageUrl: string().optional(),
|
|
24144
|
+
/** The same, as a ~480 px thumbnail for grids. */
|
|
24145
|
+
thumbnailUrl: string().optional()
|
|
24004
24146
|
});
|
|
24005
24147
|
/** Why a copy-on-select could not be honoured — named, never a silent skip. */
|
|
24006
24148
|
var RetrainCopyRefusalSchema = _enum([
|
|
@@ -25079,10 +25221,33 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
25079
25221
|
/** The frame's track, when it has one — checked against the frame. */
|
|
25080
25222
|
trackId: string().optional(),
|
|
25081
25223
|
frameId: string(),
|
|
25082
|
-
annotations: array(RetrainAnnotationDraftSchema)
|
|
25224
|
+
annotations: array(RetrainAnnotationDraftSchema),
|
|
25225
|
+
/** The frame's `revision` the caller saw. A different current revision
|
|
25226
|
+
* refuses the save with a `retrain-revision-conflict` error
|
|
25227
|
+
* (`parseRetrainRevisionConflict`). Absent ⇒ last write wins. */
|
|
25228
|
+
expectedRevision: number().int().optional(),
|
|
25229
|
+
/** The proposals the operator deleted. Absent ⇒ keep the frame's
|
|
25230
|
+
* current set; present ⇒ replace it (an empty array un-dismisses). */
|
|
25231
|
+
dismissed: array(RetrainDismissedSchema).optional()
|
|
25083
25232
|
}), array(RetrainAnnotationSchema).readonly(), {
|
|
25084
25233
|
kind: "mutation",
|
|
25085
25234
|
auth: "admin"
|
|
25235
|
+
}), method(object({
|
|
25236
|
+
deviceId: number(),
|
|
25237
|
+
trackId: string().optional(),
|
|
25238
|
+
frameId: string(),
|
|
25239
|
+
expectedRevision: number().int().optional(),
|
|
25240
|
+
origins: array(object({
|
|
25241
|
+
annotationId: string(),
|
|
25242
|
+
origin: RetrainOriginSchema
|
|
25243
|
+
})).min(1).max(500)
|
|
25244
|
+
}), object({
|
|
25245
|
+
updated: number().int(),
|
|
25246
|
+
skipped: number().int(),
|
|
25247
|
+
revision: number().int()
|
|
25248
|
+
}), {
|
|
25249
|
+
kind: "mutation",
|
|
25250
|
+
auth: "admin"
|
|
25086
25251
|
}), method(object({
|
|
25087
25252
|
deviceId: number(),
|
|
25088
25253
|
trackId: string()
|
|
@@ -27698,6 +27863,12 @@ var CameraStepOverridePatchSchema = object({
|
|
|
27698
27863
|
settings: record(string(), unknown()).readonly().optional()
|
|
27699
27864
|
});
|
|
27700
27865
|
var CameraStepSettingsSchema = record(string(), record(string(), unknown()).readonly());
|
|
27866
|
+
/** The three root-detector choices a camera has (D507: at most one root). */
|
|
27867
|
+
var CameraDetectionSourceSchema = _enum([
|
|
27868
|
+
"pipeline",
|
|
27869
|
+
"onboard",
|
|
27870
|
+
"none"
|
|
27871
|
+
]);
|
|
27701
27872
|
var CameraPipelineSettingsSchema = object({
|
|
27702
27873
|
stepToggles: record(string(), boolean()).optional(),
|
|
27703
27874
|
stepSettings: CameraStepSettingsSchema.optional(),
|
|
@@ -28275,6 +28446,26 @@ method(object({
|
|
|
28275
28446
|
}), object({ success: literal(true) }), {
|
|
28276
28447
|
kind: "mutation",
|
|
28277
28448
|
auth: "admin"
|
|
28449
|
+
}), method(object({ deviceId: number() }), object({
|
|
28450
|
+
source: CameraDetectionSourceSchema,
|
|
28451
|
+
explicit: boolean(),
|
|
28452
|
+
onboard: object({
|
|
28453
|
+
/** The camera has an onboard detector this system can read. */
|
|
28454
|
+
available: boolean(),
|
|
28455
|
+
/** What its detections carry — a camera with no box cannot be a root step. */
|
|
28456
|
+
geometry: _enum([
|
|
28457
|
+
"boxed",
|
|
28458
|
+
"while-streaming",
|
|
28459
|
+
"flag-only",
|
|
28460
|
+
"unknown"
|
|
28461
|
+
])
|
|
28462
|
+
})
|
|
28463
|
+
})), method(object({
|
|
28464
|
+
deviceId: number(),
|
|
28465
|
+
source: CameraDetectionSourceSchema
|
|
28466
|
+
}), object({ success: literal(true) }), {
|
|
28467
|
+
kind: "mutation",
|
|
28468
|
+
auth: "admin"
|
|
28278
28469
|
}), method(object({ deviceId: number() }), record(string(), record(string(), record(string(), CameraStepOverridePatchSchema))).nullable()), method(object({
|
|
28279
28470
|
deviceId: number(),
|
|
28280
28471
|
agentNodeId: string(),
|
|
@@ -31606,6 +31797,17 @@ var BatteryStatusSchema = object({
|
|
|
31606
31797
|
*/
|
|
31607
31798
|
lastContactAt: number().optional(),
|
|
31608
31799
|
/**
|
|
31800
|
+
* Ms epoch of the last COMPLETE scheduled refresh — every fact the provider
|
|
31801
|
+
* holds for the device (level, charging, link, device info, state slices) and
|
|
31802
|
+
* its cached snapshot, read together. Absent = never since this slice was
|
|
31803
|
+
* born. Unlike `lastUpdated` (any write, even a push of one field) this is
|
|
31804
|
+
* the staleness an operator can trust: the provider owns the device fact and
|
|
31805
|
+
* so owns the window on its age (D224, D847). Not a clock in the
|
|
31806
|
+
* runtime-state-durability sense: it moves once per window and must survive
|
|
31807
|
+
* a restart, or every restart would owe the camera a wake.
|
|
31808
|
+
*/
|
|
31809
|
+
lastFullRefreshAt: number().optional(),
|
|
31810
|
+
/**
|
|
31609
31811
|
* True when the source is a BINARY low-battery indicator (HA
|
|
31610
31812
|
* `binary_sensor` device_class=battery / `LOW_BAT`) that has no real
|
|
31611
31813
|
* charge level — `percentage` is then a coarse stand-in (100 = normal,
|
|
@@ -34821,7 +35023,14 @@ var TopologyNodeSchema = object({
|
|
|
34821
35023
|
* completed a mutual-TLS handshake, `clear` otherwise. Absent for the hub,
|
|
34822
35024
|
* for offline rows and when the hub cannot tell.
|
|
34823
35025
|
*/
|
|
34824
|
-
meshTransport: _enum(["tls", "clear"]).optional()
|
|
35026
|
+
meshTransport: _enum(["tls", "clear"]).optional(),
|
|
35027
|
+
/**
|
|
35028
|
+
* Whether the hub holds this online AGENT's capability registration (its
|
|
35029
|
+
* `registerNode` manifest). `false` = online in the mesh but not ready: the
|
|
35030
|
+
* hub dropped the registration on a disconnect only it saw and the agent has
|
|
35031
|
+
* not re-sent it. Absent for the hub and offline rows.
|
|
35032
|
+
*/
|
|
35033
|
+
capabilitiesRegistered: boolean().optional()
|
|
34825
35034
|
});
|
|
34826
35035
|
var CapUsageEdgeSchema = object({
|
|
34827
35036
|
callerAddonId: string(),
|
|
@@ -41459,6 +41668,12 @@ Object.freeze({
|
|
|
41459
41668
|
addonId: null,
|
|
41460
41669
|
access: "create"
|
|
41461
41670
|
},
|
|
41671
|
+
"dataStoreProvider.transact": {
|
|
41672
|
+
capName: "data-store-provider",
|
|
41673
|
+
capScope: "system",
|
|
41674
|
+
addonId: null,
|
|
41675
|
+
access: "create"
|
|
41676
|
+
},
|
|
41462
41677
|
"dataStoreProvider.update": {
|
|
41463
41678
|
capName: "data-store-provider",
|
|
41464
41679
|
capScope: "system",
|
|
@@ -44303,6 +44518,12 @@ Object.freeze({
|
|
|
44303
44518
|
addonId: null,
|
|
44304
44519
|
access: "create"
|
|
44305
44520
|
},
|
|
44521
|
+
"pipelineAnalytics.backfillRetrainOrigins": {
|
|
44522
|
+
capName: "pipeline-analytics",
|
|
44523
|
+
capScope: "device",
|
|
44524
|
+
addonId: null,
|
|
44525
|
+
access: "create"
|
|
44526
|
+
},
|
|
44306
44527
|
"pipelineAnalytics.cancelRelocateMedia": {
|
|
44307
44528
|
capName: "pipeline-analytics",
|
|
44308
44529
|
capScope: "device",
|
|
@@ -45083,6 +45304,12 @@ Object.freeze({
|
|
|
45083
45304
|
addonId: null,
|
|
45084
45305
|
access: "view"
|
|
45085
45306
|
},
|
|
45307
|
+
"pipelineOrchestrator.getCameraDetectionSource": {
|
|
45308
|
+
capName: "pipeline-orchestrator",
|
|
45309
|
+
capScope: "system",
|
|
45310
|
+
addonId: null,
|
|
45311
|
+
access: "view"
|
|
45312
|
+
},
|
|
45086
45313
|
"pipelineOrchestrator.getCameraMetrics": {
|
|
45087
45314
|
capName: "pipeline-orchestrator",
|
|
45088
45315
|
capScope: "system",
|
|
@@ -45311,6 +45538,12 @@ Object.freeze({
|
|
|
45311
45538
|
addonId: null,
|
|
45312
45539
|
access: "create"
|
|
45313
45540
|
},
|
|
45541
|
+
"pipelineOrchestrator.setCameraDetectionSource": {
|
|
45542
|
+
capName: "pipeline-orchestrator",
|
|
45543
|
+
capScope: "system",
|
|
45544
|
+
addonId: null,
|
|
45545
|
+
access: "create"
|
|
45546
|
+
},
|
|
45314
45547
|
"pipelineOrchestrator.setCameraPipelineForAgent": {
|
|
45315
45548
|
capName: "pipeline-orchestrator",
|
|
45316
45549
|
capScope: "system",
|
|
@@ -46283,6 +46516,12 @@ Object.freeze({
|
|
|
46283
46516
|
addonId: null,
|
|
46284
46517
|
access: "create"
|
|
46285
46518
|
},
|
|
46519
|
+
"settingsStore.transact": {
|
|
46520
|
+
capName: "settings-store",
|
|
46521
|
+
capScope: "system",
|
|
46522
|
+
addonId: null,
|
|
46523
|
+
access: "create"
|
|
46524
|
+
},
|
|
46286
46525
|
"settingsStore.update": {
|
|
46287
46526
|
capName: "settings-store",
|
|
46288
46527
|
capScope: "system",
|
|
@@ -46763,6 +47002,12 @@ Object.freeze({
|
|
|
46763
47002
|
addonId: null,
|
|
46764
47003
|
access: "view"
|
|
46765
47004
|
},
|
|
47005
|
+
"streamBroker.getLiveViewerCounts": {
|
|
47006
|
+
capName: "stream-broker",
|
|
47007
|
+
capScope: "system",
|
|
47008
|
+
addonId: null,
|
|
47009
|
+
access: "view"
|
|
47010
|
+
},
|
|
46766
47011
|
"streamBroker.getPreBufferInfo": {
|
|
46767
47012
|
capName: "stream-broker",
|
|
46768
47013
|
capScope: "system",
|
|
@@ -50603,6 +50848,11 @@ Object.freeze({
|
|
|
50603
50848
|
form: "single",
|
|
50604
50849
|
optional: false
|
|
50605
50850
|
}],
|
|
50851
|
+
"pipelineAnalytics.backfillRetrainOrigins": [{
|
|
50852
|
+
name: "deviceId",
|
|
50853
|
+
form: "single",
|
|
50854
|
+
optional: false
|
|
50855
|
+
}],
|
|
50606
50856
|
"pipelineAnalytics.clearTrackRelation": [{
|
|
50607
50857
|
name: "deviceId",
|
|
50608
50858
|
form: "single",
|
|
@@ -50908,6 +51158,11 @@ Object.freeze({
|
|
|
50908
51158
|
form: "single",
|
|
50909
51159
|
optional: false
|
|
50910
51160
|
}],
|
|
51161
|
+
"pipelineOrchestrator.getCameraDetectionSource": [{
|
|
51162
|
+
name: "deviceId",
|
|
51163
|
+
form: "single",
|
|
51164
|
+
optional: false
|
|
51165
|
+
}],
|
|
50911
51166
|
"pipelineOrchestrator.getCameraMetrics": [{
|
|
50912
51167
|
name: "deviceId",
|
|
50913
51168
|
form: "single",
|
|
@@ -50968,6 +51223,11 @@ Object.freeze({
|
|
|
50968
51223
|
form: "single",
|
|
50969
51224
|
optional: false
|
|
50970
51225
|
}],
|
|
51226
|
+
"pipelineOrchestrator.setCameraDetectionSource": [{
|
|
51227
|
+
name: "deviceId",
|
|
51228
|
+
form: "single",
|
|
51229
|
+
optional: false
|
|
51230
|
+
}],
|
|
50971
51231
|
"pipelineOrchestrator.setCameraPipelineForAgent": [{
|
|
50972
51232
|
name: "deviceId",
|
|
50973
51233
|
form: "single",
|