@camstack/addon-pipeline 1.2.154 → 1.2.156
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/audio-analyzer/index.js +2 -2
- package/dist/audio-analyzer/index.mjs +2 -2
- package/dist/detection-pipeline/index.js +5 -5
- package/dist/detection-pipeline/index.mjs +4 -4
- package/dist/{dist-CNyaLgDE.js → dist-C499qEUf.js} +296 -4
- package/dist/{dist-B3LRtscY.mjs → dist-C9ohtgTQ.mjs} +296 -4
- package/dist/{lazy-sharp-BtcZ-K2I.js → lazy-sharp-D5uApbbe.js} +1 -1
- package/dist/{local-frame-registry-C5pZ5QSM.mjs → local-frame-registry-DAVug-jA.mjs} +1 -1
- package/dist/{local-frame-registry-TkoMo5_E.js → local-frame-registry-VkzIezFI.js} +1 -1
- package/dist/motion-wasm/index.js +2 -2
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-CtIkY7To.mjs → node-CwIlVFyz.mjs} +1 -1
- package/dist/{node-Ctiow9ZV.js → node-DEq8mutP.js} +1 -1
- package/dist/pipeline-runner/index.js +5 -5
- package/dist/pipeline-runner/index.mjs +4 -4
- package/dist/{process-memory-C87TCFw5.mjs → process-memory-DWw7FrV5.mjs} +1 -1
- package/dist/{process-memory-W1prDrmt.js → process-memory-DzycAIEm.js} +1 -1
- package/dist/recorder/index.js +668 -100
- package/dist/recorder/index.mjs +668 -100
- package/dist/{segment-demux-js-BXma5CQd.mjs → segment-demux-js-D2InpBpa.mjs} +1 -1
- package/dist/{segment-demux-js-CnRETfAK.js → segment-demux-js-Df1rAqNh.js} +1 -1
- package/dist/session-decode/decode-worker-child.js +2 -2
- package/dist/session-decode/decode-worker-child.mjs +1 -1
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-oS7jpj-4.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BJlcLzCs.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-lMPlG5w5.mjs +26 -0
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-yWrVN7u8.mjs +26 -0
- package/dist/stream-broker/demux-worker-child.js +1 -1
- package/dist/stream-broker/demux-worker-child.mjs +1 -1
- package/dist/stream-broker/{hostInit-BMp9L2lF.mjs → hostInit-QpJx-TgK.mjs} +3 -3
- package/dist/stream-broker/index.js +3 -3
- package/dist/stream-broker/index.mjs +3 -3
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/dist/{worker-protocol-DlDGOO8p.mjs → worker-protocol-CFHcqXoS.mjs} +1 -1
- package/dist/{worker-protocol-DOFTntiF.js → worker-protocol-ge8Ce0Bo.js} +1 -1
- package/package.json +1 -1
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CVQG3RZ2.mjs +0 -26
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Vtqzcp6N.mjs +0 -26
|
@@ -9330,6 +9330,20 @@ var RelocateJobSchema = object({
|
|
|
9330
9330
|
* in its row, not in its name, so `MediaRelocateEngine` never reconciles one.
|
|
9331
9331
|
*/
|
|
9332
9332
|
rowsReconciled: number().int().nonnegative().optional(),
|
|
9333
|
+
/**
|
|
9334
|
+
* Rows this run FORGOT because the file they name is not on disk.
|
|
9335
|
+
*
|
|
9336
|
+
* The mover derived the path from the row's own fields and `stat`ed it; an
|
|
9337
|
+
* ENOENT there is a per-path confirmation that the segment is gone (D296),
|
|
9338
|
+
* and the durable row is dropped through the same channel eviction uses. It
|
|
9339
|
+
* is reported for the same reason `rowsReconciled` is: this is a durable
|
|
9340
|
+
* mutation nobody asked for, and a migration that quietly erases hour rows is
|
|
9341
|
+
* the same failure as one that quietly skips them (D295).
|
|
9342
|
+
*
|
|
9343
|
+
* The production drain of 2026-08-30 would have reported 11 074 here — the
|
|
9344
|
+
* ledger claimed 5.65 GB of footage that no longer existed.
|
|
9345
|
+
*/
|
|
9346
|
+
rowsForgotten: number().int().nonnegative().optional(),
|
|
9333
9347
|
startedAt: number(),
|
|
9334
9348
|
finishedAt: number().nullable(),
|
|
9335
9349
|
error: string().nullable()
|
|
@@ -9693,6 +9707,91 @@ var RelocateResidueSchema = object({
|
|
|
9693
9707
|
segments: number().int().nonnegative(),
|
|
9694
9708
|
bytes: number().int().nonnegative()
|
|
9695
9709
|
}).nullable();
|
|
9710
|
+
/**
|
|
9711
|
+
* Ask one location whether its durable hour rows describe the disk — the walk
|
|
9712
|
+
* (D319).
|
|
9713
|
+
*
|
|
9714
|
+
* `apply` DEFAULTS TO FALSE and that default is the product: the operator's
|
|
9715
|
+
* missing tool is the question, and the dry run is how they sanity-check the
|
|
9716
|
+
* destructive run before authorising it.
|
|
9717
|
+
*/
|
|
9718
|
+
var LedgerWalkInputSchema = object({
|
|
9719
|
+
locationId: string().min(1),
|
|
9720
|
+
/** Forget the confirmed-absent rows, rather than only counting them. */
|
|
9721
|
+
apply: boolean().optional(),
|
|
9722
|
+
/** Narrow to one camera. */
|
|
9723
|
+
deviceId: number().int().positive().optional(),
|
|
9724
|
+
/** Narrow to these recording profiles; empty/absent = every profile. */
|
|
9725
|
+
profiles: array(string().min(1)).optional()
|
|
9726
|
+
});
|
|
9727
|
+
/** Why a whole walk did nothing. Every one leaves the ledger untouched. */
|
|
9728
|
+
var LedgerWalkRefusalSchema = _enum([
|
|
9729
|
+
"location-unknown",
|
|
9730
|
+
"source-writable",
|
|
9731
|
+
"no-ledger",
|
|
9732
|
+
"archive-unreadable",
|
|
9733
|
+
"anchor-absent",
|
|
9734
|
+
"anchor-unreadable",
|
|
9735
|
+
"anchor-moved"
|
|
9736
|
+
]);
|
|
9737
|
+
_enum([
|
|
9738
|
+
"live-tail",
|
|
9739
|
+
"listing-error",
|
|
9740
|
+
"path-mismatch",
|
|
9741
|
+
"durable-refused"
|
|
9742
|
+
]);
|
|
9743
|
+
/** Every skip reason, always present, always a number — so a reason that never
|
|
9744
|
+
* fired reports as zero rather than absent and the report shape is constant
|
|
9745
|
+
* between passes. Spelled out rather than `z.record` for exactly that. */
|
|
9746
|
+
var LedgerWalkSkipCountsSchema = object({
|
|
9747
|
+
"live-tail": number().int().nonnegative(),
|
|
9748
|
+
"listing-error": number().int().nonnegative(),
|
|
9749
|
+
"path-mismatch": number().int().nonnegative(),
|
|
9750
|
+
"durable-refused": number().int().nonnegative()
|
|
9751
|
+
});
|
|
9752
|
+
/** One camera's share of a walk, so a report names cameras and not rows. */
|
|
9753
|
+
var LedgerWalkDeviceReportSchema = object({
|
|
9754
|
+
deviceId: number().int(),
|
|
9755
|
+
hoursWalked: number().int().nonnegative(),
|
|
9756
|
+
hoursMissing: number().int().nonnegative(),
|
|
9757
|
+
ghostSegments: number().int().nonnegative(),
|
|
9758
|
+
ghostBytes: number().int().nonnegative(),
|
|
9759
|
+
forgottenSegments: number().int().nonnegative(),
|
|
9760
|
+
orphanFiles: number().int().nonnegative()
|
|
9761
|
+
});
|
|
9762
|
+
/**
|
|
9763
|
+
* What one walk claimed, listed, found and (only when armed) forgot.
|
|
9764
|
+
*
|
|
9765
|
+
* `archiveSegments` is the **M** and `segmentsClaimed` the **N** (D295), so a
|
|
9766
|
+
* walk that saw a fraction of the location is visible in its own report rather
|
|
9767
|
+
* than in the absence of one.
|
|
9768
|
+
*/
|
|
9769
|
+
var LedgerWalkReportSchema = object({
|
|
9770
|
+
locationId: string(),
|
|
9771
|
+
applied: boolean(),
|
|
9772
|
+
refused: LedgerWalkRefusalSchema.nullable(),
|
|
9773
|
+
archiveSegments: number().int().nonnegative().nullable(),
|
|
9774
|
+
archiveBytes: number().int().nonnegative().nullable(),
|
|
9775
|
+
hoursClaimed: number().int().nonnegative(),
|
|
9776
|
+
hoursWalked: number().int().nonnegative(),
|
|
9777
|
+
hoursMissing: number().int().nonnegative(),
|
|
9778
|
+
/** `readdir` calls issued — the cost, stated in the unit that is paid. */
|
|
9779
|
+
listings: number().int().nonnegative(),
|
|
9780
|
+
segmentsClaimed: number().int().nonnegative(),
|
|
9781
|
+
ghostSegments: number().int().nonnegative(),
|
|
9782
|
+
ghostBytes: number().int().nonnegative(),
|
|
9783
|
+
ghostHoursWhole: number().int().nonnegative(),
|
|
9784
|
+
forgottenSegments: number().int().nonnegative(),
|
|
9785
|
+
forgottenBytes: number().int().nonnegative(),
|
|
9786
|
+
/** Files under a claimed hour that no durable row names. Never deleted. */
|
|
9787
|
+
orphanFiles: number().int().nonnegative(),
|
|
9788
|
+
orphanSample: array(string()).readonly(),
|
|
9789
|
+
hoursSkipped: number().int().nonnegative(),
|
|
9790
|
+
skippedByReason: LedgerWalkSkipCountsSchema,
|
|
9791
|
+
/** The walk stopped at its per-pass hour bound with claims unwalked. */
|
|
9792
|
+
bounded: boolean(),
|
|
9793
|
+
byDevice: array(LedgerWalkDeviceReportSchema).readonly()
|
|
9794
|
+
});
|
|
9696
9795
|
/** How many rows a media pass would still act on against a given target — the
|
|
9697
9796
|
* media lane's denominator AND its residue, from ONE derivation so the two can
|
|
9698
9797
|
* never disagree. `null` = the count could not be taken. */
|
|
@@ -21128,13 +21227,15 @@ var ListGroupsPageSchema = object({
|
|
|
21128
21227
|
groups: array(AnalyticsGroupRecordSchema).readonly(),
|
|
21129
21228
|
nextCursor: string().nullable()
|
|
21130
21229
|
});
|
|
21230
|
+
var KEY_EVENTS_DEFAULT_LIMIT = 50;
|
|
21231
|
+
var KEY_EVENTS_MAX_LIMIT = 200;
|
|
21131
21232
|
var KeyEventQueryInput = object({
|
|
21132
21233
|
deviceId: number(),
|
|
21133
21234
|
/** Window lower bound (track firstSeen ≥ since). */
|
|
21134
21235
|
since: number(),
|
|
21135
21236
|
/** Window upper bound (track firstSeen ≤ until). */
|
|
21136
21237
|
until: number(),
|
|
21137
|
-
limit: number().int().min(1).max(
|
|
21238
|
+
limit: number().int().min(1).max(KEY_EVENTS_MAX_LIMIT).default(KEY_EVENTS_DEFAULT_LIMIT),
|
|
21138
21239
|
/** Drop tracks scoring below this importance. */
|
|
21139
21240
|
minImportance: number().min(0).max(1).optional(),
|
|
21140
21241
|
/** Restrict to a single class (e.g. 'person'). */
|
|
@@ -21156,6 +21257,32 @@ var KeyEventSchema = object({
|
|
|
21156
21257
|
...TrackFlagFields,
|
|
21157
21258
|
...TrackRetrainFields
|
|
21158
21259
|
});
|
|
21260
|
+
/** `getKeyEvents`' window and filters, asked of a SET of cameras at once. */
|
|
21261
|
+
var KeyEventBatchQueryInput = object({
|
|
21262
|
+
deviceIds: array(number()).min(1).max(200),
|
|
21263
|
+
since: number(),
|
|
21264
|
+
until: number(),
|
|
21265
|
+
/** Applied PER CAMERA, exactly as `getKeyEvents.limit` is — never a total
|
|
21266
|
+
* across the set, which would let a busy camera starve a quiet one of its
|
|
21267
|
+
* rows and change what the merged feed contains. */
|
|
21268
|
+
limit: number().int().min(1).max(KEY_EVENTS_MAX_LIMIT).default(KEY_EVENTS_DEFAULT_LIMIT),
|
|
21269
|
+
minImportance: number().min(0).max(1).optional(),
|
|
21270
|
+
classFilter: string().optional()
|
|
21271
|
+
});
|
|
21272
|
+
/**
|
|
21273
|
+
* One camera's key events in a batch answer.
|
|
21274
|
+
*
|
|
21275
|
+
* The row exists for every requested id. `getKeyEvents` degrades to `[]` on
|
|
21276
|
+
* error rather than throwing, so a camera whose store read failed and one with
|
|
21277
|
+
* no events in the window were ALREADY indistinguishable per camera — the
|
|
21278
|
+
* batch does not make that worse, and the row keeps the deviceId the single
|
|
21279
|
+
* method's output never carried (the caller used to stamp it from the fan-out
|
|
21280
|
+
* key, which only worked because there was one query per camera).
|
|
21281
|
+
*/
|
|
21282
|
+
var KeyEventsForDeviceSchema = object({
|
|
21283
|
+
deviceId: number(),
|
|
21284
|
+
events: array(KeyEventSchema).readonly()
|
|
21285
|
+
});
|
|
21159
21286
|
object({
|
|
21160
21287
|
trackId: string(),
|
|
21161
21288
|
className: string(),
|
|
@@ -21375,6 +21502,47 @@ var RebuildStatusSchema = object({
|
|
|
21375
21502
|
/** Present when the pass ended by throwing. */
|
|
21376
21503
|
error: string().nullable()
|
|
21377
21504
|
});
|
|
21505
|
+
/**
|
|
21506
|
+
* Acknowledgement that a debug-media reclaim STARTED.
|
|
21507
|
+
*
|
|
21508
|
+
* The pass is paced at ~2 MB/s over a standing 100 GB — tens of minutes — so
|
|
21509
|
+
* it runs detached and this returns immediately. Awaiting it is how the
|
|
21510
|
+
* `addons.custom` door hit the 60 s UDS deadline while the walk carried on
|
|
21511
|
+
* with no status. Poll {@link pipelineAnalyticsCapability.methods.getMediaReclaimStatus}.
|
|
21512
|
+
*/
|
|
21513
|
+
var MediaReclaimStartResultSchema = object({
|
|
21514
|
+
started: boolean(),
|
|
21515
|
+
/** True when a pass was already running; the new request is ignored. */
|
|
21516
|
+
alreadyRunning: boolean()
|
|
21517
|
+
});
|
|
21518
|
+
var MediaReclaimInputSchema = object({
|
|
21519
|
+
mode: _enum(["report", "reclaim"]).default("report"),
|
|
21520
|
+
scopes: array(_enum(["motion-still", "track-filmstrip"])).min(1).optional(),
|
|
21521
|
+
deviceIds: array(number().int()).min(1).optional(),
|
|
21522
|
+
restart: boolean().optional(),
|
|
21523
|
+
pageSize: number().int().min(50).max(5e3).optional(),
|
|
21524
|
+
maxRowsPerDevice: number().int().min(1).max(5e5).optional(),
|
|
21525
|
+
maxReclaimPerDevice: number().int().min(1).max(5e5).optional(),
|
|
21526
|
+
maxBytesPerRun: number().int().min(1).optional(),
|
|
21527
|
+
budgetMinutes: number().int().min(1).max(720).optional(),
|
|
21528
|
+
throttleBytesPerSec: number().int().min(64 * 1024).optional(),
|
|
21529
|
+
graceMinutes: number().int().min(1).max(10080).optional()
|
|
21530
|
+
});
|
|
21531
|
+
var MediaReclaimStatusSchema = object({
|
|
21532
|
+
running: boolean(),
|
|
21533
|
+
mode: _enum(["report", "reclaim"]).nullable(),
|
|
21534
|
+
totalExamined: number(),
|
|
21535
|
+
totalEligible: number(),
|
|
21536
|
+
totalReclaimed: number(),
|
|
21537
|
+
totalBytesReclaimed: number(),
|
|
21538
|
+
totalRefused: number(),
|
|
21539
|
+
/** Device+scope windows finished in this pass. */
|
|
21540
|
+
devicesDone: number(),
|
|
21541
|
+
complete: boolean().nullable(),
|
|
21542
|
+
startedAtMs: number().nullable(),
|
|
21543
|
+
finishedAtMs: number().nullable(),
|
|
21544
|
+
error: string().nullable()
|
|
21545
|
+
});
|
|
21378
21546
|
var ReplayFrameInputSchema = object({
|
|
21379
21547
|
timestamp: number(),
|
|
21380
21548
|
frame: PipelineRunResultBridge
|
|
@@ -21425,7 +21593,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
21425
21593
|
until: number().optional(),
|
|
21426
21594
|
kinds: array(string()).optional(),
|
|
21427
21595
|
limit: number().int().min(1).max(MAX_EVENT_QUERY_LIMIT).default(DEFAULT_EVENT_QUERY_LIMIT)
|
|
21428
|
-
}), array(SensorEventSchema).readonly()), method(KeyEventQueryInput, array(KeyEventSchema).readonly()), method(object({
|
|
21596
|
+
}), array(SensorEventSchema).readonly()), method(KeyEventQueryInput, array(KeyEventSchema).readonly()), method(KeyEventBatchQueryInput, array(KeyEventsForDeviceSchema).readonly()), method(object({
|
|
21429
21597
|
deviceId: number(),
|
|
21430
21598
|
since: number(),
|
|
21431
21599
|
until: number(),
|
|
@@ -21516,6 +21684,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
21516
21684
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
21517
21685
|
kind: "query",
|
|
21518
21686
|
auth: "admin"
|
|
21687
|
+
}), method(MediaReclaimInputSchema, MediaReclaimStartResultSchema, {
|
|
21688
|
+
kind: "mutation",
|
|
21689
|
+
auth: "admin"
|
|
21690
|
+
}), method(object({}), MediaReclaimStatusSchema, {
|
|
21691
|
+
kind: "query",
|
|
21692
|
+
auth: "admin"
|
|
21519
21693
|
}), method(object({ deviceIds: array(number()).optional() }), TrainingExportSummarySchema, {
|
|
21520
21694
|
kind: "query",
|
|
21521
21695
|
auth: "admin"
|
|
@@ -29496,6 +29670,23 @@ var recordingCapability = {
|
|
|
29496
29670
|
kind: "query",
|
|
29497
29671
|
auth: "admin"
|
|
29498
29672
|
}),
|
|
29673
|
+
/**
|
|
29674
|
+
* Does this location's LEDGER tell the truth about its disk? (D319)
|
|
29675
|
+
*
|
|
29676
|
+
* One `readdir` per claimed hour, diffed both ways: durable rows whose file
|
|
29677
|
+
* is not there, and files no durable row names. `apply` defaults to FALSE —
|
|
29678
|
+
* the report is the product, and the dry run is how an operator
|
|
29679
|
+
* sanity-checks the destructive run before authorising it.
|
|
29680
|
+
*
|
|
29681
|
+
* REFUSES a source that is still a write target: a listing of a live
|
|
29682
|
+
* location is a lower bound, which is not the strong evidence that lets
|
|
29683
|
+
* this pass forget without a budget. A live location is reconciled by the
|
|
29684
|
+
* mover, under D318's bound.
|
|
29685
|
+
*/
|
|
29686
|
+
reconcileLedgerAgainstDisk: method(LedgerWalkInputSchema, LedgerWalkReportSchema, {
|
|
29687
|
+
kind: "mutation",
|
|
29688
|
+
auth: "admin"
|
|
29689
|
+
}),
|
|
29499
29690
|
/** Cancel a running or queued relocate job. A queued job never runs. */
|
|
29500
29691
|
cancelRelocateJob: method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
29501
29692
|
kind: "mutation",
|
|
@@ -29949,7 +30140,26 @@ var SceneMonitorStatusSchema = object({
|
|
|
29949
30140
|
monitors: array(SceneMonitorSchema),
|
|
29950
30141
|
lastFetchedAt: number()
|
|
29951
30142
|
});
|
|
29952
|
-
|
|
30143
|
+
/**
|
|
30144
|
+
* One camera's row in a `listScenesBatch` answer.
|
|
30145
|
+
*
|
|
30146
|
+
* `status` is NULLABLE and the nullability is the whole point. `scene-monitor`
|
|
30147
|
+
* is a `defaultActive` wrapper, so every camera is asked; a camera whose
|
|
30148
|
+
* provider is absent (pipeline-analytics not deployed, the post-processing node
|
|
30149
|
+
* down) cannot answer, and that is not the same fact as a camera with no scenes
|
|
30150
|
+
* configured. Fanned out per camera the difference was visible — one query
|
|
30151
|
+
* errored while the others resolved — and a batch that returned only the rows
|
|
30152
|
+
* it managed would have destroyed it, silently, by making an unreachable camera
|
|
30153
|
+
* indistinguishable from one that answered `monitors: []`.
|
|
30154
|
+
*
|
|
30155
|
+
* So: EVERY requested deviceId gets a row. `status: null` means "this camera
|
|
30156
|
+
* could not be read"; `status.monitors: []` means "read, and it has none".
|
|
30157
|
+
*/
|
|
30158
|
+
var SceneMonitorStatusForDeviceSchema = object({
|
|
30159
|
+
deviceId: number(),
|
|
30160
|
+
status: SceneMonitorStatusSchema.nullable()
|
|
30161
|
+
});
|
|
30162
|
+
DeviceType.Camera, method(object({ deviceId: number() }), SceneMonitorStatusSchema), method(object({ deviceIds: array(number()).min(1).max(200) }), array(SceneMonitorStatusForDeviceSchema).readonly()), method(object({
|
|
29953
30163
|
deviceId: number(),
|
|
29954
30164
|
label: string(),
|
|
29955
30165
|
roi: MaskRectShapeSchema,
|
|
@@ -31273,6 +31483,27 @@ var CameraOccupancySnapshotSchema = object({
|
|
|
31273
31483
|
stationaryObjects: array(StationaryObjectSchema).readonly().optional()
|
|
31274
31484
|
});
|
|
31275
31485
|
/**
|
|
31486
|
+
* One camera's row in a `getCurrentSnapshotBatch` answer.
|
|
31487
|
+
*
|
|
31488
|
+
* THREE outcomes, and the single-camera method could only express two of them
|
|
31489
|
+
* because `snapshot: null` was already spoken for:
|
|
31490
|
+
*
|
|
31491
|
+
* - `read: 'read'`, `snapshot` present — the live occupancy reading.
|
|
31492
|
+
* - `read: 'read'`, `snapshot: null` — read, and this camera has no reading
|
|
31493
|
+
* yet: no frame since boot, and no parked-object registry to hydrate from.
|
|
31494
|
+
* - `read: 'unreadable'` — the owner could not answer for this
|
|
31495
|
+
* camera. `snapshot` is null, and it does NOT mean "nothing parked here".
|
|
31496
|
+
*
|
|
31497
|
+
* Collapsing the last two is the failure this field exists to prevent: a
|
|
31498
|
+
* hydration that threw would otherwise render as an empty Stationary section,
|
|
31499
|
+
* which is a definite claim about a camera nobody could read.
|
|
31500
|
+
*/
|
|
31501
|
+
var CameraOccupancySnapshotForDeviceSchema = object({
|
|
31502
|
+
deviceId: number(),
|
|
31503
|
+
read: _enum(["read", "unreadable"]),
|
|
31504
|
+
snapshot: CameraOccupancySnapshotSchema.nullable()
|
|
31505
|
+
});
|
|
31506
|
+
/**
|
|
31276
31507
|
* Time-series resolution. The history methods return one bucket per
|
|
31277
31508
|
* step over the requested range. Smaller resolutions cost more
|
|
31278
31509
|
* memory + bandwidth; bound to discrete steps so caller cannot ask
|
|
@@ -31296,7 +31527,7 @@ var HistoryPointSchema = object({
|
|
|
31296
31527
|
/** Object count averaged over the bucket (rounded to nearest integer). */
|
|
31297
31528
|
count: number().int().nonnegative()
|
|
31298
31529
|
});
|
|
31299
|
-
DeviceType.Camera, method(object({ deviceId: number() }), CameraOccupancySnapshotSchema.nullable()), method(object({
|
|
31530
|
+
DeviceType.Camera, method(object({ deviceId: number() }), CameraOccupancySnapshotSchema.nullable()), method(object({ deviceIds: array(number()).min(1).max(200) }), array(CameraOccupancySnapshotForDeviceSchema).readonly()), method(object({
|
|
31300
31531
|
deviceId: number(),
|
|
31301
31532
|
zoneId: string(),
|
|
31302
31533
|
className: string().optional()
|
|
@@ -34760,6 +34991,18 @@ Object.freeze({
|
|
|
34760
34991
|
addonId: null,
|
|
34761
34992
|
access: "view"
|
|
34762
34993
|
},
|
|
34994
|
+
"pipelineAnalytics.getKeyEventsBatch": {
|
|
34995
|
+
capName: "pipeline-analytics",
|
|
34996
|
+
capScope: "device",
|
|
34997
|
+
addonId: null,
|
|
34998
|
+
access: "view"
|
|
34999
|
+
},
|
|
35000
|
+
"pipelineAnalytics.getMediaReclaimStatus": {
|
|
35001
|
+
capName: "pipeline-analytics",
|
|
35002
|
+
capScope: "device",
|
|
35003
|
+
addonId: null,
|
|
35004
|
+
access: "view"
|
|
35005
|
+
},
|
|
34763
35006
|
"pipelineAnalytics.getMotionEvents": {
|
|
34764
35007
|
capName: "pipeline-analytics",
|
|
34765
35008
|
capScope: "device",
|
|
@@ -34934,6 +35177,12 @@ Object.freeze({
|
|
|
34934
35177
|
addonId: null,
|
|
34935
35178
|
access: "create"
|
|
34936
35179
|
},
|
|
35180
|
+
"pipelineAnalytics.reclaimDebugMedia": {
|
|
35181
|
+
capName: "pipeline-analytics",
|
|
35182
|
+
capScope: "device",
|
|
35183
|
+
addonId: null,
|
|
35184
|
+
access: "create"
|
|
35185
|
+
},
|
|
34937
35186
|
"pipelineAnalytics.reconcileFromDisk": {
|
|
34938
35187
|
capName: "pipeline-analytics",
|
|
34939
35188
|
capScope: "device",
|
|
@@ -35936,6 +36185,12 @@ Object.freeze({
|
|
|
35936
36185
|
addonId: null,
|
|
35937
36186
|
access: "view"
|
|
35938
36187
|
},
|
|
36188
|
+
"recording.reconcileLedgerAgainstDisk": {
|
|
36189
|
+
capName: "recording",
|
|
36190
|
+
capScope: "system",
|
|
36191
|
+
addonId: null,
|
|
36192
|
+
access: "create"
|
|
36193
|
+
},
|
|
35939
36194
|
"recording.refreshStorageLocationsForMigration": {
|
|
35940
36195
|
capName: "recording",
|
|
35941
36196
|
capScope: "system",
|
|
@@ -36062,6 +36317,12 @@ Object.freeze({
|
|
|
36062
36317
|
addonId: null,
|
|
36063
36318
|
access: "view"
|
|
36064
36319
|
},
|
|
36320
|
+
"sceneMonitor.listScenesBatch": {
|
|
36321
|
+
capName: "scene-monitor",
|
|
36322
|
+
capScope: "device",
|
|
36323
|
+
addonId: null,
|
|
36324
|
+
access: "view"
|
|
36325
|
+
},
|
|
36065
36326
|
"sceneMonitor.recheckNow": {
|
|
36066
36327
|
capName: "scene-monitor",
|
|
36067
36328
|
capScope: "device",
|
|
@@ -37418,6 +37679,12 @@ Object.freeze({
|
|
|
37418
37679
|
addonId: null,
|
|
37419
37680
|
access: "view"
|
|
37420
37681
|
},
|
|
37682
|
+
"zoneAnalytics.getCurrentSnapshotBatch": {
|
|
37683
|
+
capName: "zone-analytics",
|
|
37684
|
+
capScope: "device",
|
|
37685
|
+
addonId: null,
|
|
37686
|
+
access: "view"
|
|
37687
|
+
},
|
|
37421
37688
|
"zoneAnalytics.getUnzonedHistory": {
|
|
37422
37689
|
capName: "zone-analytics",
|
|
37423
37690
|
capScope: "device",
|
|
@@ -38422,6 +38689,11 @@ Object.freeze({
|
|
|
38422
38689
|
form: "single",
|
|
38423
38690
|
optional: false
|
|
38424
38691
|
}],
|
|
38692
|
+
"pipelineAnalytics.getKeyEventsBatch": [{
|
|
38693
|
+
name: "deviceIds",
|
|
38694
|
+
form: "array",
|
|
38695
|
+
optional: false
|
|
38696
|
+
}],
|
|
38425
38697
|
"pipelineAnalytics.getMotionEvents": [{
|
|
38426
38698
|
name: "deviceId",
|
|
38427
38699
|
form: "single",
|
|
@@ -38527,6 +38799,11 @@ Object.freeze({
|
|
|
38527
38799
|
form: "single",
|
|
38528
38800
|
optional: true
|
|
38529
38801
|
}],
|
|
38802
|
+
"pipelineAnalytics.reclaimDebugMedia": [{
|
|
38803
|
+
name: "deviceIds",
|
|
38804
|
+
form: "array",
|
|
38805
|
+
optional: true
|
|
38806
|
+
}],
|
|
38530
38807
|
"pipelineAnalytics.reconcileFromDisk": [{
|
|
38531
38808
|
name: "deviceId",
|
|
38532
38809
|
form: "single",
|
|
@@ -38862,6 +39139,11 @@ Object.freeze({
|
|
|
38862
39139
|
form: "single",
|
|
38863
39140
|
optional: false
|
|
38864
39141
|
}],
|
|
39142
|
+
"recording.reconcileLedgerAgainstDisk": [{
|
|
39143
|
+
name: "deviceId",
|
|
39144
|
+
form: "single",
|
|
39145
|
+
optional: true
|
|
39146
|
+
}],
|
|
38865
39147
|
"recording.relocateFootage": [{
|
|
38866
39148
|
name: "deviceId",
|
|
38867
39149
|
form: "single",
|
|
@@ -38927,6 +39209,11 @@ Object.freeze({
|
|
|
38927
39209
|
form: "single",
|
|
38928
39210
|
optional: false
|
|
38929
39211
|
}],
|
|
39212
|
+
"sceneMonitor.listScenesBatch": [{
|
|
39213
|
+
name: "deviceIds",
|
|
39214
|
+
form: "array",
|
|
39215
|
+
optional: false
|
|
39216
|
+
}],
|
|
38930
39217
|
"sceneMonitor.recheckNow": [{
|
|
38931
39218
|
name: "deviceId",
|
|
38932
39219
|
form: "single",
|
|
@@ -39188,6 +39475,11 @@ Object.freeze({
|
|
|
39188
39475
|
form: "single",
|
|
39189
39476
|
optional: false
|
|
39190
39477
|
}],
|
|
39478
|
+
"zoneAnalytics.getCurrentSnapshotBatch": [{
|
|
39479
|
+
name: "deviceIds",
|
|
39480
|
+
form: "array",
|
|
39481
|
+
optional: false
|
|
39482
|
+
}],
|
|
39191
39483
|
"zoneAnalytics.getUnzonedHistory": [{
|
|
39192
39484
|
name: "deviceId",
|
|
39193
39485
|
form: "single",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { M as audioKindId, Z as hfModelUrl, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS } from "./dist-
|
|
1
|
+
import { M as audioKindId, Z as hfModelUrl, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS } from "./dist-C9ohtgTQ.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
//#region src/detection-pipeline/registry/model-catalogs.ts
|
|
4
4
|
var HF_REPO = "camstack/camstack-models";
|
|
@@ -2,8 +2,8 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
6
|
-
const require_lazy_sharp = require("../lazy-sharp-
|
|
5
|
+
const require_dist = require("../dist-C499qEUf.js");
|
|
6
|
+
const require_lazy_sharp = require("../lazy-sharp-D5uApbbe.js");
|
|
7
7
|
let node_fs = require("node:fs");
|
|
8
8
|
let node_path = require("node:path");
|
|
9
9
|
//#region src/motion-wasm/wasm-motion-detector.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { It as hydrateSchema, Pt as DeviceType, Y as evaluateZoneRules, it as motionDetectionCapability, jt as BaseAddon } from "../dist-
|
|
1
|
+
import { It as hydrateSchema, Pt as DeviceType, Y as evaluateZoneRules, it as motionDetectionCapability, jt as BaseAddon } from "../dist-C9ohtgTQ.mjs";
|
|
2
2
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
3
3
|
import { readFileSync } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Dt as buildFfmpegArgs, Et as Fmp4BoxSplitter, kt as isSoftwareDecode, wt as errMsg } from "./dist-
|
|
1
|
+
import { Dt as buildFfmpegArgs, Et as Fmp4BoxSplitter, kt as isSoftwareDecode, wt as errMsg } from "./dist-C9ohtgTQ.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import "node:fs";
|
|
4
4
|
import "node:path";
|
|
@@ -2,12 +2,12 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
6
|
-
const require_node = require("../node-
|
|
7
|
-
const require_local_frame_registry = require("../local-frame-registry-
|
|
8
|
-
const require_worker_protocol = require("../worker-protocol-
|
|
5
|
+
const require_dist = require("../dist-C499qEUf.js");
|
|
6
|
+
const require_node = require("../node-DEq8mutP.js");
|
|
7
|
+
const require_local_frame_registry = require("../local-frame-registry-VkzIezFI.js");
|
|
8
|
+
const require_worker_protocol = require("../worker-protocol-ge8Ce0Bo.js");
|
|
9
9
|
const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
|
|
10
|
-
const require_lazy_sharp = require("../lazy-sharp-
|
|
10
|
+
const require_lazy_sharp = require("../lazy-sharp-D5uApbbe.js");
|
|
11
11
|
const require_restream_intent = require("../restream-intent-Cv9x3jmu.js");
|
|
12
12
|
const require_event_loop_stall_monitor = require("../event-loop-stall-monitor-DaUBcb13.js");
|
|
13
13
|
const require_remote_restream = require("../remote-restream-CO36Sr30.js");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { B as defineCustomActions, Bt as nodePin, Ft as createEvent, Gt as _enum, H as deriveDetailCropRect, Kt as array, L as customAction, Qt as object, X as failureContributionCapability, Xt as literal, Yt as lazy, Zt as number, _ as FailureCounters, en as string, et as loadContributionCapability, ft as pipelineRunnerCapability, jt as BaseAddon, lt as pickDetailCropConvention, m as DEVICE_BACKEND_TO_FORMAT, nn as EventCategory, p as DEFAULT_NATIVE_LEASE_SETTINGS, qt as boolean, u as DEFAULT_DETAIL_CROP_CONVENTION, ut as pickNativeLeaseOverride, wt as errMsg } from "../dist-
|
|
2
|
-
import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-
|
|
3
|
-
import { c as getStepDefinition, n as resolveFrameViewGeometry, t as localFrameRegistry } from "../local-frame-registry-
|
|
4
|
-
import { a as nativeLeaseSettingEnv, t as isWorkerReply } from "../worker-protocol-
|
|
1
|
+
import { B as defineCustomActions, Bt as nodePin, Ft as createEvent, Gt as _enum, H as deriveDetailCropRect, Kt as array, L as customAction, Qt as object, X as failureContributionCapability, Xt as literal, Yt as lazy, Zt as number, _ as FailureCounters, en as string, et as loadContributionCapability, ft as pipelineRunnerCapability, jt as BaseAddon, lt as pickDetailCropConvention, m as DEVICE_BACKEND_TO_FORMAT, nn as EventCategory, p as DEFAULT_NATIVE_LEASE_SETTINGS, qt as boolean, u as DEFAULT_DETAIL_CROP_CONVENTION, ut as pickNativeLeaseOverride, wt as errMsg } from "../dist-C9ohtgTQ.mjs";
|
|
2
|
+
import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-CwIlVFyz.mjs";
|
|
3
|
+
import { c as getStepDefinition, n as resolveFrameViewGeometry, t as localFrameRegistry } from "../local-frame-registry-DAVug-jA.mjs";
|
|
4
|
+
import { a as nativeLeaseSettingEnv, t as isWorkerReply } from "../worker-protocol-CFHcqXoS.mjs";
|
|
5
5
|
import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
|
|
6
6
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
7
7
|
import { n as withDetectionIntent } from "../restream-intent-B4BXZra7.mjs";
|