@camstack/addon-post-analysis 1.2.156 → 1.2.159
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/{dist-CXY233l4.js → dist-CLxPUxVN.js} +159 -7
- package/dist/{dist-DqNo8CCq.mjs → dist-D_O7oxyS.mjs} +159 -7
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/pipeline-analytics/_stub.js +1 -1
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-rrVQlXbu.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-B8GyXydu.mjs} +2 -2
- package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-C8CZ3hb-.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B0wvjNmC.mjs} +1 -1
- package/dist/pipeline-analytics/{hostInit-Bfr4wfpP.mjs → hostInit-CtAUDi3k.mjs} +2 -2
- package/dist/pipeline-analytics/index.js +19429 -18854
- package/dist/pipeline-analytics/index.mjs +19346 -18761
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
|
@@ -8366,6 +8366,13 @@ var MediaRelocateModeSchema = _enum([
|
|
|
8366
8366
|
]);
|
|
8367
8367
|
var RelocateMediaInputSchema = object({
|
|
8368
8368
|
toLocationId: string(),
|
|
8369
|
+
/**
|
|
8370
|
+
* Restrict the pass to rows currently on this location. Omitted / `'*'` =
|
|
8371
|
+
* every row that is not already on `toLocationId` (the historical
|
|
8372
|
+
* behaviour). A named source is what a from→to migration needs: without it
|
|
8373
|
+
* "move events off disk 2" also emptied disk 1.
|
|
8374
|
+
*/
|
|
8375
|
+
fromLocationId: string().optional(),
|
|
8369
8376
|
throttleMbps: number().min(1).max(1e3).optional(),
|
|
8370
8377
|
/** Omitted = `move`, the pre-existing behaviour. */
|
|
8371
8378
|
mode: MediaRelocateModeSchema.optional()
|
|
@@ -8433,6 +8440,19 @@ var StorageMigrationDestinationsSchema = object({
|
|
|
8433
8440
|
galleryMedia: string().min(1).optional()
|
|
8434
8441
|
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
8435
8442
|
/**
|
|
8443
|
+
* Optional named source per class. Omitted = the class's current default
|
|
8444
|
+
* (the historical behaviour). A named source that is NOT the default is a
|
|
8445
|
+
* drain of that disk: bytes move, the default stays, and the source is
|
|
8446
|
+
* disabled when the move finishes.
|
|
8447
|
+
*/
|
|
8448
|
+
var StorageMigrationSourcesSchema = object({
|
|
8449
|
+
recordings: string().min(1).optional(),
|
|
8450
|
+
recordingsLow: string().min(1).optional(),
|
|
8451
|
+
eventMedia: string().min(1).optional(),
|
|
8452
|
+
backups: string().min(1).optional(),
|
|
8453
|
+
galleryMedia: string().min(1).optional()
|
|
8454
|
+
}).optional();
|
|
8455
|
+
/**
|
|
8436
8456
|
* How a migration sequences the cutover against the byte move.
|
|
8437
8457
|
*
|
|
8438
8458
|
* - `blocking` — the historical order: pause, move every byte, repoint,
|
|
@@ -8454,6 +8474,8 @@ var StorageMigrationModeSchema = _enum(["blocking", "nonBlocking"]);
|
|
|
8454
8474
|
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
8455
8475
|
var StorageMigrationInputSchema = object({
|
|
8456
8476
|
destinations: StorageMigrationDestinationsSchema,
|
|
8477
|
+
/** Omitted = each class's current default. */
|
|
8478
|
+
sources: StorageMigrationSourcesSchema,
|
|
8457
8479
|
throttleMbps: number().min(1).max(1e3).optional(),
|
|
8458
8480
|
/** Omitted = `blocking`, which stays the default. */
|
|
8459
8481
|
mode: StorageMigrationModeSchema.optional()
|
|
@@ -8533,6 +8555,13 @@ var StorageMigrationMoveSchema = object({
|
|
|
8533
8555
|
storageClass: StorageMigrationClassSchema,
|
|
8534
8556
|
fromLocationId: string(),
|
|
8535
8557
|
toLocationId: string(),
|
|
8558
|
+
/**
|
|
8559
|
+
* True when `from` was NOT the class default at plan time. The move still
|
|
8560
|
+
* copies bytes, but the default is left alone and the source is disabled
|
|
8561
|
+
* once the copy verifies. Absent on jobs planned before this field existed
|
|
8562
|
+
* — those jobs always repointed, which is `false`.
|
|
8563
|
+
*/
|
|
8564
|
+
freezeSource: boolean().optional(),
|
|
8536
8565
|
moverJobId: string().nullable(),
|
|
8537
8566
|
state: RelocateJobStateSchema.nullable(),
|
|
8538
8567
|
error: string().nullable(),
|
|
@@ -8546,6 +8575,7 @@ var StorageMigrationJobSchema = object({
|
|
|
8546
8575
|
* can tell a seconds-long cutover from a thirty-hour one. */
|
|
8547
8576
|
mode: StorageMigrationModeSchema,
|
|
8548
8577
|
destinations: StorageMigrationDestinationsSchema,
|
|
8578
|
+
sources: StorageMigrationSourcesSchema,
|
|
8549
8579
|
throttleMbps: number(),
|
|
8550
8580
|
moves: array(StorageMigrationMoveSchema),
|
|
8551
8581
|
pauseLeaseId: string().nullable(),
|
|
@@ -8571,6 +8601,7 @@ var StorageMigrationFindingSchema = object({
|
|
|
8571
8601
|
});
|
|
8572
8602
|
var StorageMigrationPlanSchema = object({
|
|
8573
8603
|
destinations: StorageMigrationDestinationsSchema,
|
|
8604
|
+
sources: StorageMigrationSourcesSchema,
|
|
8574
8605
|
/** The mode this plan was built for. A plan is only valid for its mode: the
|
|
8575
8606
|
* `eventMedia` seal gate and the single-cardinality refusal both depend on
|
|
8576
8607
|
* it. */
|
|
@@ -8578,7 +8609,8 @@ var StorageMigrationPlanSchema = object({
|
|
|
8578
8609
|
moves: array(object({
|
|
8579
8610
|
storageClass: StorageMigrationClassSchema,
|
|
8580
8611
|
fromLocationId: string(),
|
|
8581
|
-
toLocationId: string()
|
|
8612
|
+
toLocationId: string(),
|
|
8613
|
+
freezeSource: boolean().optional()
|
|
8582
8614
|
})),
|
|
8583
8615
|
findings: array(StorageMigrationFindingSchema)
|
|
8584
8616
|
});
|
|
@@ -8756,10 +8788,51 @@ var LedgerWalkReportSchema = object({
|
|
|
8756
8788
|
var RelocatableMediaCountSchema = object({ rows: number().int().nonnegative() }).nullable();
|
|
8757
8789
|
var RelocatableMediaCountInputSchema = object({
|
|
8758
8790
|
toLocationId: string().min(1),
|
|
8791
|
+
/** Restrict the count to one source; omitted / `'*'` = every non-target row. */
|
|
8792
|
+
fromLocationId: string().optional(),
|
|
8759
8793
|
/** Omitted = `move`. */
|
|
8760
8794
|
mode: MediaRelocateModeSchema.optional()
|
|
8761
8795
|
});
|
|
8762
8796
|
/**
|
|
8797
|
+
* Operator cleanup of leftover analytics rows, optional debug media, and
|
|
8798
|
+
* ghost ledger entries on frozen footage locations.
|
|
8799
|
+
*
|
|
8800
|
+
* A pass is tens of minutes on a standing backlog. The hub method RETURNS
|
|
8801
|
+
* `{ jobId }` immediately; progress is `cleanupStatus`. Awaiting the work
|
|
8802
|
+
* is how `addons.custom` hit the 60 s UDS deadline while reclaim continued
|
|
8803
|
+
* with no operator-visible status.
|
|
8804
|
+
*/
|
|
8805
|
+
var StorageCleanupPhaseSchema = _enum([
|
|
8806
|
+
"orphans",
|
|
8807
|
+
"debug-media",
|
|
8808
|
+
"ghost-ledger",
|
|
8809
|
+
"done",
|
|
8810
|
+
"failed",
|
|
8811
|
+
"cancelled"
|
|
8812
|
+
]);
|
|
8813
|
+
var StorageCleanupInputSchema = object({
|
|
8814
|
+
/** Also walk motion stills / track filmstrips. Off by default. */
|
|
8815
|
+
includeDebugMedia: boolean().optional() });
|
|
8816
|
+
var StorageCleanupJobSchema = object({
|
|
8817
|
+
jobId: string(),
|
|
8818
|
+
phase: StorageCleanupPhaseSchema,
|
|
8819
|
+
includeDebugMedia: boolean(),
|
|
8820
|
+
orphansReclaimed: number().int().nonnegative(),
|
|
8821
|
+
orphanBytesReclaimed: number().int().nonnegative(),
|
|
8822
|
+
debugMediaReclaimed: number().int().nonnegative(),
|
|
8823
|
+
debugMediaBytesReclaimed: number().int().nonnegative(),
|
|
8824
|
+
ghostsForgotten: number().int().nonnegative(),
|
|
8825
|
+
ghostBytesForgotten: number().int().nonnegative(),
|
|
8826
|
+
/** Short operator-facing line: current collection, pass, or location. */
|
|
8827
|
+
detail: string().nullable(),
|
|
8828
|
+
cancelRequested: boolean(),
|
|
8829
|
+
startedAt: number(),
|
|
8830
|
+
updatedAt: number(),
|
|
8831
|
+
finishedAt: number().nullable(),
|
|
8832
|
+
error: string().nullable()
|
|
8833
|
+
});
|
|
8834
|
+
var StorageCleanupStatusInputSchema = object({ jobId: string().optional() });
|
|
8835
|
+
/**
|
|
8763
8836
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
8764
8837
|
* storage a location serves. Defined here (not in `capabilities/storage.cap.ts`)
|
|
8765
8838
|
* so the persisted record schema and the consumer-facing cap can both consume it
|
|
@@ -8787,11 +8860,10 @@ var StorageLocationTypeSchema = string().regex(/^[a-z][a-zA-Z0-9-]*$/);
|
|
|
8787
8860
|
* The default location for a type uses `id === <type>:default` by
|
|
8788
8861
|
* convention (the bare type ref like `'backups'` resolves to it).
|
|
8789
8862
|
*
|
|
8790
|
-
* `isSystem
|
|
8791
|
-
*
|
|
8792
|
-
*
|
|
8793
|
-
*
|
|
8794
|
-
* deleting it is rejected at the cap level.
|
|
8863
|
+
* `isSystem` is a legacy persisted flag. Seed still creates the initial
|
|
8864
|
+
* `<type>:default` locations; the flag is no longer a lock, a badge, or a
|
|
8865
|
+
* prune selector. New writes leave it false. Deletion is gated on uniqueness
|
|
8866
|
+
* / last-enabled, not on this bit.
|
|
8795
8867
|
*/
|
|
8796
8868
|
var StorageLocationSchema = object({
|
|
8797
8869
|
id: string().regex(/^[a-z][a-zA-Z0-9-]*:[a-zA-Z0-9-]+$/),
|
|
@@ -23113,7 +23185,13 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
23113
23185
|
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
23114
23186
|
kind: "mutation",
|
|
23115
23187
|
auth: "admin"
|
|
23116
|
-
})
|
|
23188
|
+
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
23189
|
+
kind: "mutation",
|
|
23190
|
+
auth: "admin"
|
|
23191
|
+
}), method(StorageCleanupStatusInputSchema, StorageCleanupJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23192
|
+
kind: "mutation",
|
|
23193
|
+
auth: "admin"
|
|
23194
|
+
}), method(object({}), array(StorageMigrationJobSchema).readonly(), { auth: "admin" });
|
|
23117
23195
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
23118
23196
|
providerId: string().min(1),
|
|
23119
23197
|
displayName: string().min(1),
|
|
@@ -30280,6 +30358,33 @@ var RecordingRebalanceInputSchema = object({
|
|
|
30280
30358
|
minMoveGb: number().min(0).optional()
|
|
30281
30359
|
});
|
|
30282
30360
|
/**
|
|
30361
|
+
* Operator-facing placement of one camera onto a recordings location.
|
|
30362
|
+
*
|
|
30363
|
+
* `pinLocationId` is the operator instruction: a location id, or `null` for
|
|
30364
|
+
* Auto (the planner may move this camera). `locationId` is where high/mid
|
|
30365
|
+
* currently write — the plan, which may disagree with the pin when Auto.
|
|
30366
|
+
*/
|
|
30367
|
+
var RecordingDevicePlacementSchema = object({
|
|
30368
|
+
deviceId: number().int(),
|
|
30369
|
+
profile: string(),
|
|
30370
|
+
locationId: string()
|
|
30371
|
+
});
|
|
30372
|
+
var RecordingDevicePinSchema = object({
|
|
30373
|
+
deviceId: number().int(),
|
|
30374
|
+
/** Recordings-class location this camera is pinned to. */
|
|
30375
|
+
locationId: string()
|
|
30376
|
+
});
|
|
30377
|
+
var RecordingPlacementViewSchema = object({
|
|
30378
|
+
assignments: array(RecordingDevicePlacementSchema),
|
|
30379
|
+
pins: array(RecordingDevicePinSchema),
|
|
30380
|
+
defaultLocations: record(string(), string())
|
|
30381
|
+
});
|
|
30382
|
+
var RecordingSetDevicePlacementInputSchema = object({
|
|
30383
|
+
deviceId: number().int(),
|
|
30384
|
+
/** `null` = Auto. Otherwise a `recordings:*` location id. */
|
|
30385
|
+
locationId: string().nullable()
|
|
30386
|
+
});
|
|
30387
|
+
/**
|
|
30283
30388
|
* Result of locating footage at a wall-clock instant for one device/profile.
|
|
30284
30389
|
* `segment` carries the covering segment's window; `gap` reports the forward
|
|
30285
30390
|
* nearest covered edge (`null` past the end of footage / when none exists)
|
|
@@ -30505,6 +30610,12 @@ method(object({
|
|
|
30505
30610
|
}), method(RecordingRebalanceInputSchema, RecordingRebalancePlanSchema, {
|
|
30506
30611
|
kind: "mutation",
|
|
30507
30612
|
auth: "admin"
|
|
30613
|
+
}), method(object({}), RecordingPlacementViewSchema, {
|
|
30614
|
+
kind: "query",
|
|
30615
|
+
auth: "admin"
|
|
30616
|
+
}), method(RecordingSetDevicePlacementInputSchema, object({ ok: literal(true) }), {
|
|
30617
|
+
kind: "mutation",
|
|
30618
|
+
auth: "admin"
|
|
30508
30619
|
});
|
|
30509
30620
|
/**
|
|
30510
30621
|
* `recording-export` cap — render a footage time range into a single downloadable
|
|
@@ -38611,6 +38722,12 @@ Object.freeze({
|
|
|
38611
38722
|
addonId: null,
|
|
38612
38723
|
access: "view"
|
|
38613
38724
|
},
|
|
38725
|
+
"recording.getPlacement": {
|
|
38726
|
+
capName: "recording",
|
|
38727
|
+
capScope: "system",
|
|
38728
|
+
addonId: null,
|
|
38729
|
+
access: "view"
|
|
38730
|
+
},
|
|
38614
38731
|
"recording.getPlaybackManifest": {
|
|
38615
38732
|
capName: "recording",
|
|
38616
38733
|
capScope: "system",
|
|
@@ -38737,6 +38854,12 @@ Object.freeze({
|
|
|
38737
38854
|
addonId: null,
|
|
38738
38855
|
access: "create"
|
|
38739
38856
|
},
|
|
38857
|
+
"recording.setDevicePlacement": {
|
|
38858
|
+
capName: "recording",
|
|
38859
|
+
capScope: "system",
|
|
38860
|
+
addonId: null,
|
|
38861
|
+
access: "create"
|
|
38862
|
+
},
|
|
38740
38863
|
"recording.startStorageMigrationMove": {
|
|
38741
38864
|
capName: "recording",
|
|
38742
38865
|
capScope: "system",
|
|
@@ -39181,12 +39304,36 @@ Object.freeze({
|
|
|
39181
39304
|
addonId: null,
|
|
39182
39305
|
access: "create"
|
|
39183
39306
|
},
|
|
39307
|
+
"storageMigration.cleanupCancel": {
|
|
39308
|
+
capName: "storage-migration",
|
|
39309
|
+
capScope: "system",
|
|
39310
|
+
addonId: null,
|
|
39311
|
+
access: "create"
|
|
39312
|
+
},
|
|
39313
|
+
"storageMigration.cleanupStart": {
|
|
39314
|
+
capName: "storage-migration",
|
|
39315
|
+
capScope: "system",
|
|
39316
|
+
addonId: null,
|
|
39317
|
+
access: "create"
|
|
39318
|
+
},
|
|
39319
|
+
"storageMigration.cleanupStatus": {
|
|
39320
|
+
capName: "storage-migration",
|
|
39321
|
+
capScope: "system",
|
|
39322
|
+
addonId: null,
|
|
39323
|
+
access: "view"
|
|
39324
|
+
},
|
|
39184
39325
|
"storageMigration.drain": {
|
|
39185
39326
|
capName: "storage-migration",
|
|
39186
39327
|
capScope: "system",
|
|
39187
39328
|
addonId: null,
|
|
39188
39329
|
access: "create"
|
|
39189
39330
|
},
|
|
39331
|
+
"storageMigration.history": {
|
|
39332
|
+
capName: "storage-migration",
|
|
39333
|
+
capScope: "system",
|
|
39334
|
+
addonId: null,
|
|
39335
|
+
access: "view"
|
|
39336
|
+
},
|
|
39190
39337
|
"storageMigration.movers": {
|
|
39191
39338
|
capName: "storage-migration",
|
|
39192
39339
|
capScope: "system",
|
|
@@ -41673,6 +41820,11 @@ Object.freeze({
|
|
|
41673
41820
|
form: "single",
|
|
41674
41821
|
optional: false
|
|
41675
41822
|
}],
|
|
41823
|
+
"recording.setDevicePlacement": [{
|
|
41824
|
+
name: "deviceId",
|
|
41825
|
+
form: "single",
|
|
41826
|
+
optional: false
|
|
41827
|
+
}],
|
|
41676
41828
|
"recording.startStorageMigrationMove": [{
|
|
41677
41829
|
name: "deviceId",
|
|
41678
41830
|
form: "single",
|
|
@@ -8335,6 +8335,13 @@ var MediaRelocateModeSchema = _enum([
|
|
|
8335
8335
|
]);
|
|
8336
8336
|
var RelocateMediaInputSchema = object({
|
|
8337
8337
|
toLocationId: string(),
|
|
8338
|
+
/**
|
|
8339
|
+
* Restrict the pass to rows currently on this location. Omitted / `'*'` =
|
|
8340
|
+
* every row that is not already on `toLocationId` (the historical
|
|
8341
|
+
* behaviour). A named source is what a from→to migration needs: without it
|
|
8342
|
+
* "move events off disk 2" also emptied disk 1.
|
|
8343
|
+
*/
|
|
8344
|
+
fromLocationId: string().optional(),
|
|
8338
8345
|
throttleMbps: number().min(1).max(1e3).optional(),
|
|
8339
8346
|
/** Omitted = `move`, the pre-existing behaviour. */
|
|
8340
8347
|
mode: MediaRelocateModeSchema.optional()
|
|
@@ -8402,6 +8409,19 @@ var StorageMigrationDestinationsSchema = object({
|
|
|
8402
8409
|
galleryMedia: string().min(1).optional()
|
|
8403
8410
|
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
8404
8411
|
/**
|
|
8412
|
+
* Optional named source per class. Omitted = the class's current default
|
|
8413
|
+
* (the historical behaviour). A named source that is NOT the default is a
|
|
8414
|
+
* drain of that disk: bytes move, the default stays, and the source is
|
|
8415
|
+
* disabled when the move finishes.
|
|
8416
|
+
*/
|
|
8417
|
+
var StorageMigrationSourcesSchema = object({
|
|
8418
|
+
recordings: string().min(1).optional(),
|
|
8419
|
+
recordingsLow: string().min(1).optional(),
|
|
8420
|
+
eventMedia: string().min(1).optional(),
|
|
8421
|
+
backups: string().min(1).optional(),
|
|
8422
|
+
galleryMedia: string().min(1).optional()
|
|
8423
|
+
}).optional();
|
|
8424
|
+
/**
|
|
8405
8425
|
* How a migration sequences the cutover against the byte move.
|
|
8406
8426
|
*
|
|
8407
8427
|
* - `blocking` — the historical order: pause, move every byte, repoint,
|
|
@@ -8423,6 +8443,8 @@ var StorageMigrationModeSchema = _enum(["blocking", "nonBlocking"]);
|
|
|
8423
8443
|
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
8424
8444
|
var StorageMigrationInputSchema = object({
|
|
8425
8445
|
destinations: StorageMigrationDestinationsSchema,
|
|
8446
|
+
/** Omitted = each class's current default. */
|
|
8447
|
+
sources: StorageMigrationSourcesSchema,
|
|
8426
8448
|
throttleMbps: number().min(1).max(1e3).optional(),
|
|
8427
8449
|
/** Omitted = `blocking`, which stays the default. */
|
|
8428
8450
|
mode: StorageMigrationModeSchema.optional()
|
|
@@ -8502,6 +8524,13 @@ var StorageMigrationMoveSchema = object({
|
|
|
8502
8524
|
storageClass: StorageMigrationClassSchema,
|
|
8503
8525
|
fromLocationId: string(),
|
|
8504
8526
|
toLocationId: string(),
|
|
8527
|
+
/**
|
|
8528
|
+
* True when `from` was NOT the class default at plan time. The move still
|
|
8529
|
+
* copies bytes, but the default is left alone and the source is disabled
|
|
8530
|
+
* once the copy verifies. Absent on jobs planned before this field existed
|
|
8531
|
+
* — those jobs always repointed, which is `false`.
|
|
8532
|
+
*/
|
|
8533
|
+
freezeSource: boolean().optional(),
|
|
8505
8534
|
moverJobId: string().nullable(),
|
|
8506
8535
|
state: RelocateJobStateSchema.nullable(),
|
|
8507
8536
|
error: string().nullable(),
|
|
@@ -8515,6 +8544,7 @@ var StorageMigrationJobSchema = object({
|
|
|
8515
8544
|
* can tell a seconds-long cutover from a thirty-hour one. */
|
|
8516
8545
|
mode: StorageMigrationModeSchema,
|
|
8517
8546
|
destinations: StorageMigrationDestinationsSchema,
|
|
8547
|
+
sources: StorageMigrationSourcesSchema,
|
|
8518
8548
|
throttleMbps: number(),
|
|
8519
8549
|
moves: array(StorageMigrationMoveSchema),
|
|
8520
8550
|
pauseLeaseId: string().nullable(),
|
|
@@ -8540,6 +8570,7 @@ var StorageMigrationFindingSchema = object({
|
|
|
8540
8570
|
});
|
|
8541
8571
|
var StorageMigrationPlanSchema = object({
|
|
8542
8572
|
destinations: StorageMigrationDestinationsSchema,
|
|
8573
|
+
sources: StorageMigrationSourcesSchema,
|
|
8543
8574
|
/** The mode this plan was built for. A plan is only valid for its mode: the
|
|
8544
8575
|
* `eventMedia` seal gate and the single-cardinality refusal both depend on
|
|
8545
8576
|
* it. */
|
|
@@ -8547,7 +8578,8 @@ var StorageMigrationPlanSchema = object({
|
|
|
8547
8578
|
moves: array(object({
|
|
8548
8579
|
storageClass: StorageMigrationClassSchema,
|
|
8549
8580
|
fromLocationId: string(),
|
|
8550
|
-
toLocationId: string()
|
|
8581
|
+
toLocationId: string(),
|
|
8582
|
+
freezeSource: boolean().optional()
|
|
8551
8583
|
})),
|
|
8552
8584
|
findings: array(StorageMigrationFindingSchema)
|
|
8553
8585
|
});
|
|
@@ -8725,10 +8757,51 @@ var LedgerWalkReportSchema = object({
|
|
|
8725
8757
|
var RelocatableMediaCountSchema = object({ rows: number().int().nonnegative() }).nullable();
|
|
8726
8758
|
var RelocatableMediaCountInputSchema = object({
|
|
8727
8759
|
toLocationId: string().min(1),
|
|
8760
|
+
/** Restrict the count to one source; omitted / `'*'` = every non-target row. */
|
|
8761
|
+
fromLocationId: string().optional(),
|
|
8728
8762
|
/** Omitted = `move`. */
|
|
8729
8763
|
mode: MediaRelocateModeSchema.optional()
|
|
8730
8764
|
});
|
|
8731
8765
|
/**
|
|
8766
|
+
* Operator cleanup of leftover analytics rows, optional debug media, and
|
|
8767
|
+
* ghost ledger entries on frozen footage locations.
|
|
8768
|
+
*
|
|
8769
|
+
* A pass is tens of minutes on a standing backlog. The hub method RETURNS
|
|
8770
|
+
* `{ jobId }` immediately; progress is `cleanupStatus`. Awaiting the work
|
|
8771
|
+
* is how `addons.custom` hit the 60 s UDS deadline while reclaim continued
|
|
8772
|
+
* with no operator-visible status.
|
|
8773
|
+
*/
|
|
8774
|
+
var StorageCleanupPhaseSchema = _enum([
|
|
8775
|
+
"orphans",
|
|
8776
|
+
"debug-media",
|
|
8777
|
+
"ghost-ledger",
|
|
8778
|
+
"done",
|
|
8779
|
+
"failed",
|
|
8780
|
+
"cancelled"
|
|
8781
|
+
]);
|
|
8782
|
+
var StorageCleanupInputSchema = object({
|
|
8783
|
+
/** Also walk motion stills / track filmstrips. Off by default. */
|
|
8784
|
+
includeDebugMedia: boolean().optional() });
|
|
8785
|
+
var StorageCleanupJobSchema = object({
|
|
8786
|
+
jobId: string(),
|
|
8787
|
+
phase: StorageCleanupPhaseSchema,
|
|
8788
|
+
includeDebugMedia: boolean(),
|
|
8789
|
+
orphansReclaimed: number().int().nonnegative(),
|
|
8790
|
+
orphanBytesReclaimed: number().int().nonnegative(),
|
|
8791
|
+
debugMediaReclaimed: number().int().nonnegative(),
|
|
8792
|
+
debugMediaBytesReclaimed: number().int().nonnegative(),
|
|
8793
|
+
ghostsForgotten: number().int().nonnegative(),
|
|
8794
|
+
ghostBytesForgotten: number().int().nonnegative(),
|
|
8795
|
+
/** Short operator-facing line: current collection, pass, or location. */
|
|
8796
|
+
detail: string().nullable(),
|
|
8797
|
+
cancelRequested: boolean(),
|
|
8798
|
+
startedAt: number(),
|
|
8799
|
+
updatedAt: number(),
|
|
8800
|
+
finishedAt: number().nullable(),
|
|
8801
|
+
error: string().nullable()
|
|
8802
|
+
});
|
|
8803
|
+
var StorageCleanupStatusInputSchema = object({ jobId: string().optional() });
|
|
8804
|
+
/**
|
|
8732
8805
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
8733
8806
|
* storage a location serves. Defined here (not in `capabilities/storage.cap.ts`)
|
|
8734
8807
|
* so the persisted record schema and the consumer-facing cap can both consume it
|
|
@@ -8756,11 +8829,10 @@ var StorageLocationTypeSchema = string().regex(/^[a-z][a-zA-Z0-9-]*$/);
|
|
|
8756
8829
|
* The default location for a type uses `id === <type>:default` by
|
|
8757
8830
|
* convention (the bare type ref like `'backups'` resolves to it).
|
|
8758
8831
|
*
|
|
8759
|
-
* `isSystem
|
|
8760
|
-
*
|
|
8761
|
-
*
|
|
8762
|
-
*
|
|
8763
|
-
* deleting it is rejected at the cap level.
|
|
8832
|
+
* `isSystem` is a legacy persisted flag. Seed still creates the initial
|
|
8833
|
+
* `<type>:default` locations; the flag is no longer a lock, a badge, or a
|
|
8834
|
+
* prune selector. New writes leave it false. Deletion is gated on uniqueness
|
|
8835
|
+
* / last-enabled, not on this bit.
|
|
8764
8836
|
*/
|
|
8765
8837
|
var StorageLocationSchema = object({
|
|
8766
8838
|
id: string().regex(/^[a-z][a-zA-Z0-9-]*:[a-zA-Z0-9-]+$/),
|
|
@@ -23082,7 +23154,13 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
23082
23154
|
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
23083
23155
|
kind: "mutation",
|
|
23084
23156
|
auth: "admin"
|
|
23085
|
-
})
|
|
23157
|
+
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
23158
|
+
kind: "mutation",
|
|
23159
|
+
auth: "admin"
|
|
23160
|
+
}), method(StorageCleanupStatusInputSchema, StorageCleanupJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23161
|
+
kind: "mutation",
|
|
23162
|
+
auth: "admin"
|
|
23163
|
+
}), method(object({}), array(StorageMigrationJobSchema).readonly(), { auth: "admin" });
|
|
23086
23164
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
23087
23165
|
providerId: string().min(1),
|
|
23088
23166
|
displayName: string().min(1),
|
|
@@ -30249,6 +30327,33 @@ var RecordingRebalanceInputSchema = object({
|
|
|
30249
30327
|
minMoveGb: number().min(0).optional()
|
|
30250
30328
|
});
|
|
30251
30329
|
/**
|
|
30330
|
+
* Operator-facing placement of one camera onto a recordings location.
|
|
30331
|
+
*
|
|
30332
|
+
* `pinLocationId` is the operator instruction: a location id, or `null` for
|
|
30333
|
+
* Auto (the planner may move this camera). `locationId` is where high/mid
|
|
30334
|
+
* currently write — the plan, which may disagree with the pin when Auto.
|
|
30335
|
+
*/
|
|
30336
|
+
var RecordingDevicePlacementSchema = object({
|
|
30337
|
+
deviceId: number().int(),
|
|
30338
|
+
profile: string(),
|
|
30339
|
+
locationId: string()
|
|
30340
|
+
});
|
|
30341
|
+
var RecordingDevicePinSchema = object({
|
|
30342
|
+
deviceId: number().int(),
|
|
30343
|
+
/** Recordings-class location this camera is pinned to. */
|
|
30344
|
+
locationId: string()
|
|
30345
|
+
});
|
|
30346
|
+
var RecordingPlacementViewSchema = object({
|
|
30347
|
+
assignments: array(RecordingDevicePlacementSchema),
|
|
30348
|
+
pins: array(RecordingDevicePinSchema),
|
|
30349
|
+
defaultLocations: record(string(), string())
|
|
30350
|
+
});
|
|
30351
|
+
var RecordingSetDevicePlacementInputSchema = object({
|
|
30352
|
+
deviceId: number().int(),
|
|
30353
|
+
/** `null` = Auto. Otherwise a `recordings:*` location id. */
|
|
30354
|
+
locationId: string().nullable()
|
|
30355
|
+
});
|
|
30356
|
+
/**
|
|
30252
30357
|
* Result of locating footage at a wall-clock instant for one device/profile.
|
|
30253
30358
|
* `segment` carries the covering segment's window; `gap` reports the forward
|
|
30254
30359
|
* nearest covered edge (`null` past the end of footage / when none exists)
|
|
@@ -30474,6 +30579,12 @@ method(object({
|
|
|
30474
30579
|
}), method(RecordingRebalanceInputSchema, RecordingRebalancePlanSchema, {
|
|
30475
30580
|
kind: "mutation",
|
|
30476
30581
|
auth: "admin"
|
|
30582
|
+
}), method(object({}), RecordingPlacementViewSchema, {
|
|
30583
|
+
kind: "query",
|
|
30584
|
+
auth: "admin"
|
|
30585
|
+
}), method(RecordingSetDevicePlacementInputSchema, object({ ok: literal(true) }), {
|
|
30586
|
+
kind: "mutation",
|
|
30587
|
+
auth: "admin"
|
|
30477
30588
|
});
|
|
30478
30589
|
/**
|
|
30479
30590
|
* `recording-export` cap — render a footage time range into a single downloadable
|
|
@@ -38580,6 +38691,12 @@ Object.freeze({
|
|
|
38580
38691
|
addonId: null,
|
|
38581
38692
|
access: "view"
|
|
38582
38693
|
},
|
|
38694
|
+
"recording.getPlacement": {
|
|
38695
|
+
capName: "recording",
|
|
38696
|
+
capScope: "system",
|
|
38697
|
+
addonId: null,
|
|
38698
|
+
access: "view"
|
|
38699
|
+
},
|
|
38583
38700
|
"recording.getPlaybackManifest": {
|
|
38584
38701
|
capName: "recording",
|
|
38585
38702
|
capScope: "system",
|
|
@@ -38706,6 +38823,12 @@ Object.freeze({
|
|
|
38706
38823
|
addonId: null,
|
|
38707
38824
|
access: "create"
|
|
38708
38825
|
},
|
|
38826
|
+
"recording.setDevicePlacement": {
|
|
38827
|
+
capName: "recording",
|
|
38828
|
+
capScope: "system",
|
|
38829
|
+
addonId: null,
|
|
38830
|
+
access: "create"
|
|
38831
|
+
},
|
|
38709
38832
|
"recording.startStorageMigrationMove": {
|
|
38710
38833
|
capName: "recording",
|
|
38711
38834
|
capScope: "system",
|
|
@@ -39150,12 +39273,36 @@ Object.freeze({
|
|
|
39150
39273
|
addonId: null,
|
|
39151
39274
|
access: "create"
|
|
39152
39275
|
},
|
|
39276
|
+
"storageMigration.cleanupCancel": {
|
|
39277
|
+
capName: "storage-migration",
|
|
39278
|
+
capScope: "system",
|
|
39279
|
+
addonId: null,
|
|
39280
|
+
access: "create"
|
|
39281
|
+
},
|
|
39282
|
+
"storageMigration.cleanupStart": {
|
|
39283
|
+
capName: "storage-migration",
|
|
39284
|
+
capScope: "system",
|
|
39285
|
+
addonId: null,
|
|
39286
|
+
access: "create"
|
|
39287
|
+
},
|
|
39288
|
+
"storageMigration.cleanupStatus": {
|
|
39289
|
+
capName: "storage-migration",
|
|
39290
|
+
capScope: "system",
|
|
39291
|
+
addonId: null,
|
|
39292
|
+
access: "view"
|
|
39293
|
+
},
|
|
39153
39294
|
"storageMigration.drain": {
|
|
39154
39295
|
capName: "storage-migration",
|
|
39155
39296
|
capScope: "system",
|
|
39156
39297
|
addonId: null,
|
|
39157
39298
|
access: "create"
|
|
39158
39299
|
},
|
|
39300
|
+
"storageMigration.history": {
|
|
39301
|
+
capName: "storage-migration",
|
|
39302
|
+
capScope: "system",
|
|
39303
|
+
addonId: null,
|
|
39304
|
+
access: "view"
|
|
39305
|
+
},
|
|
39159
39306
|
"storageMigration.movers": {
|
|
39160
39307
|
capName: "storage-migration",
|
|
39161
39308
|
capScope: "system",
|
|
@@ -41642,6 +41789,11 @@ Object.freeze({
|
|
|
41642
41789
|
form: "single",
|
|
41643
41790
|
optional: false
|
|
41644
41791
|
}],
|
|
41792
|
+
"recording.setDevicePlacement": [{
|
|
41793
|
+
name: "deviceId",
|
|
41794
|
+
form: "single",
|
|
41795
|
+
optional: false
|
|
41796
|
+
}],
|
|
41645
41797
|
"recording.startStorageMigrationMove": [{
|
|
41646
41798
|
name: "deviceId",
|
|
41647
41799
|
form: "single",
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-CLxPUxVN.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
node_fs = require_dist.__toESM(node_fs);
|
|
8
8
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ct as resolvePoolMemoryPolicy, I as PoolMemoryWatchdog, _t as parseProcStatus, dt as hfModelUrl, jt as BaseAddon, ot as embeddingEncoderCapability } from "../dist-
|
|
1
|
+
import { Ct as resolvePoolMemoryPolicy, I as PoolMemoryWatchdog, _t as parseProcStatus, dt as hfModelUrl, jt as BaseAddon, ot as embeddingEncoderCapability } from "../dist-D_O7oxyS.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as e, i as t, n, o as r, r as i, t as a } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react__loadShare__.js-C0AuF9av.mjs";
|
|
2
2
|
import { t as o } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B3Wx5J80.mjs";
|
|
3
|
-
import { a as s, i as c, n as l, o as u, r as d, s as f, t as p } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-
|
|
3
|
+
import { a as s, i as c, n as l, o as u, r as d, s as f, t as p } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B0wvjNmC.mjs";
|
|
4
4
|
import { n as m, r as h, t as g } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-Bm-iyjmq.mjs";
|
|
5
5
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils.js
|
|
6
6
|
var _ = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), v = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), y = (e) => {
|
|
@@ -18,7 +18,7 @@ var e = {
|
|
|
18
18
|
},
|
|
19
19
|
"@camstack/types": {
|
|
20
20
|
name: "@camstack/types",
|
|
21
|
-
version: "1.2.
|
|
21
|
+
version: "1.2.132",
|
|
22
22
|
scope: ["default"],
|
|
23
23
|
loaded: !1,
|
|
24
24
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -33,7 +33,7 @@ var e = {
|
|
|
33
33
|
},
|
|
34
34
|
"@camstack/ui-library": {
|
|
35
35
|
name: "@camstack/ui-library",
|
|
36
|
-
version: "1.2.
|
|
36
|
+
version: "1.2.97",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_pipeline_analytics_widgets",
|