@camstack/addon-pipeline 1.2.161 → 1.2.162
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-De1p9-ha.js → dist-15qysRyR.js} +146 -6
- package/dist/{dist-DJuym0uY.mjs → dist-Bz00AHCy.mjs} +146 -6
- package/dist/{lazy-sharp-BNjzhQI_.js → lazy-sharp-CusvUEdy.js} +1 -1
- package/dist/{local-frame-registry-fV6AMeXw.mjs → local-frame-registry-B7cPLEW-.mjs} +1 -1
- package/dist/{local-frame-registry-8Ph7u04x.js → local-frame-registry-BnimNHwT.js} +1 -1
- package/dist/motion-wasm/index.js +2 -2
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-BCv87MWN.js → node-BdjJPTLk.js} +1 -1
- package/dist/{node-CoP2EuNP.mjs → node-CpW6WY9n.mjs} +1 -1
- package/dist/pipeline-runner/index.js +5 -5
- package/dist/pipeline-runner/index.mjs +4 -4
- package/dist/{process-memory-F9dxEjGr.mjs → process-memory-BosDzc_U.mjs} +1 -1
- package/dist/{process-memory-DT9anN3q.js → process-memory-CJHwbMAy.js} +1 -1
- package/dist/recorder/index.js +126 -39
- package/dist/recorder/index.mjs +126 -39
- package/dist/{segment-demux-js-DJUr6Jsi.mjs → segment-demux-js-CmaBsM0K.mjs} +1 -1
- package/dist/{segment-demux-js-BF9CwpQh.js → segment-demux-js-DoH8TCnt.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-C5Uex5Kp.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-sfos9TiN.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CqO3zOjL.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-CWtPG7OH.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B6HSEhpx.mjs} +1 -1
- 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-BlI9lWFs.mjs → hostInit-hk0XBAnv.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-BCrnGbX_.mjs → worker-protocol-B2RCeDwS.mjs} +1 -1
- package/dist/{worker-protocol-D4sajaZG.js → worker-protocol-DczDySjo.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-Blnh70uP.mjs +0 -26
|
@@ -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_process_memory = require("../process-memory-
|
|
5
|
+
const require_dist = require("../dist-15qysRyR.js");
|
|
6
|
+
const require_process_memory = require("../process-memory-CJHwbMAy.js");
|
|
7
7
|
let node_fs = require("node:fs");
|
|
8
8
|
node_fs = require_dist.__toESM(node_fs);
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { A as audioAnalysisCapability, It as hydrateSchema, S as PoolMemoryWatchdog, _t as resolvePoolMemoryPolicy, j as audioAnalyzerCapability, jt as BaseAddon, n as AUDIO_BACKEND_CHOICES, nt as mapAudioLabelToMacro, s as DEFAULT_AUDIO_ANALYZER_CONFIG, v as HF_BASE_URL, wt as errMsg } from "../dist-
|
|
3
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
2
|
+
import { A as audioAnalysisCapability, It as hydrateSchema, S as PoolMemoryWatchdog, _t as resolvePoolMemoryPolicy, j as audioAnalyzerCapability, jt as BaseAddon, n as AUDIO_BACKEND_CHOICES, nt as mapAudioLabelToMacro, s as DEFAULT_AUDIO_ANALYZER_CONFIG, v as HF_BASE_URL, wt as errMsg } from "../dist-Bz00AHCy.mjs";
|
|
3
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-BosDzc_U.mjs";
|
|
4
4
|
import * as fs from "node:fs";
|
|
5
5
|
import * as path$1 from "node:path";
|
|
6
6
|
import { downloadFile } from "@camstack/system/addon-utils";
|
|
@@ -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_lazy_sharp = require("../lazy-sharp-
|
|
5
|
+
const require_dist = require("../dist-15qysRyR.js");
|
|
6
|
+
const require_node = require("../node-BdjJPTLk.js");
|
|
7
|
+
const require_local_frame_registry = require("../local-frame-registry-BnimNHwT.js");
|
|
8
|
+
const require_lazy_sharp = require("../lazy-sharp-CusvUEdy.js");
|
|
9
9
|
const require_event_loop_stall_monitor = require("../event-loop-stall-monitor-DaUBcb13.js");
|
|
10
|
-
const require_process_memory = require("../process-memory-
|
|
10
|
+
const require_process_memory = require("../process-memory-CJHwbMAy.js");
|
|
11
11
|
let node_fs = require("node:fs");
|
|
12
12
|
node_fs = require_dist.__toESM(node_fs);
|
|
13
13
|
let node_path = require("node:path");
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { Bt as nodePin, Ft as createEvent, It as hydrateSchema, Kt as array, O as YAMNET_TO_MACRO, Q as inferModelProvider, Qt as object, S as PoolMemoryWatchdog, St as supportedRuntimes$1, Vt as parseJsonUnknown, W as detectionPipelineCapability, Wt as sleep, Y as evaluateZoneRules, _t as resolvePoolMemoryPolicy, at as overlayClusterStepSettings, c as DEFAULT_CLUSTER_STEP_MODELS, ct as pickClusterStepSettings, dt as pipelineExecutorCapability, en as string, et as loadContributionCapability, ht as resolveClusterStepModelId, jt as BaseAddon, l as DEFAULT_CLUSTER_STEP_SETTINGS, m as DEVICE_BACKEND_TO_FORMAT, nn as EventCategory, q as enumerateInferenceDevices, st as pickClusterStepModels, t as APPLE_SA_TO_MACRO, tn as union, wt as errMsg, yt as runtimeDevices$1, z as defaultDeviceFor$1 } from "../dist-
|
|
3
|
-
import { a as readProcessCost } from "../node-
|
|
4
|
-
import { a as getDefaultModelForFormat, c as getStepDefinition, i as ALL_STEPS, l as resolveModelForFormat, o as getDefaultModelForFormatFromDef, r as ALL_PIPELINE_STEPS, s as getStep, t as localFrameRegistry, u as landmarkPrecisionVerdict } from "../local-frame-registry-
|
|
2
|
+
import { Bt as nodePin, Ft as createEvent, It as hydrateSchema, Kt as array, O as YAMNET_TO_MACRO, Q as inferModelProvider, Qt as object, S as PoolMemoryWatchdog, St as supportedRuntimes$1, Vt as parseJsonUnknown, W as detectionPipelineCapability, Wt as sleep, Y as evaluateZoneRules, _t as resolvePoolMemoryPolicy, at as overlayClusterStepSettings, c as DEFAULT_CLUSTER_STEP_MODELS, ct as pickClusterStepSettings, dt as pipelineExecutorCapability, en as string, et as loadContributionCapability, ht as resolveClusterStepModelId, jt as BaseAddon, l as DEFAULT_CLUSTER_STEP_SETTINGS, m as DEVICE_BACKEND_TO_FORMAT, nn as EventCategory, q as enumerateInferenceDevices, st as pickClusterStepModels, t as APPLE_SA_TO_MACRO, tn as union, wt as errMsg, yt as runtimeDevices$1, z as defaultDeviceFor$1 } from "../dist-Bz00AHCy.mjs";
|
|
3
|
+
import { a as readProcessCost } from "../node-CpW6WY9n.mjs";
|
|
4
|
+
import { a as getDefaultModelForFormat, c as getStepDefinition, i as ALL_STEPS, l as resolveModelForFormat, o as getDefaultModelForFormatFromDef, r as ALL_PIPELINE_STEPS, s as getStep, t as localFrameRegistry, u as landmarkPrecisionVerdict } from "../local-frame-registry-B7cPLEW-.mjs";
|
|
5
5
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
6
6
|
import { n as startEventLoopStallMonitor } from "../event-loop-stall-monitor-DXLNBMkY.mjs";
|
|
7
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
7
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-BosDzc_U.mjs";
|
|
8
8
|
import * as fs from "node:fs";
|
|
9
9
|
import * as path$1 from "node:path";
|
|
10
10
|
import { spawn } from "node:child_process";
|
|
@@ -21346,6 +21346,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
21346
21346
|
deviceId: number(),
|
|
21347
21347
|
events: array(KeyEventSchema).readonly()
|
|
21348
21348
|
});
|
|
21349
|
+
/** One non-empty bucket of the timeline histogram. */
|
|
21350
|
+
var EventDensityBucketSchema = object({
|
|
21351
|
+
bucketStart: number(),
|
|
21352
|
+
motion: number().int(),
|
|
21353
|
+
object: number().int(),
|
|
21354
|
+
audio: number().int()
|
|
21355
|
+
});
|
|
21356
|
+
/**
|
|
21357
|
+
* One camera's row in a `getEventDensityBatch` answer.
|
|
21358
|
+
*
|
|
21359
|
+
* TWO facts, and the timeline draws them differently:
|
|
21360
|
+
*
|
|
21361
|
+
* - `read: 'read'` — the histogram for this camera. `buckets: []` is a real
|
|
21362
|
+
* claim: read, and nothing happened in the window.
|
|
21363
|
+
* - `read: 'unreadable'` — nobody could answer for this camera. `buckets` is
|
|
21364
|
+
* empty and that emptiness means NOTHING; the timeline must render unknown,
|
|
21365
|
+
* not quiet.
|
|
21366
|
+
*
|
|
21367
|
+
* Fanned out per camera the difference was free — one query rejected while the
|
|
21368
|
+
* others resolved — and collapsing to a batch is the exact moment it is lost
|
|
21369
|
+
* silently. Every requested id gets a row: a caller that asked for twelve and
|
|
21370
|
+
* got eleven cannot tell which one is missing, or that any is.
|
|
21371
|
+
*/
|
|
21372
|
+
var EventDensityForDeviceSchema = object({
|
|
21373
|
+
deviceId: number(),
|
|
21374
|
+
read: _enum(["read", "unreadable"]),
|
|
21375
|
+
buckets: array(EventDensityBucketSchema).readonly()
|
|
21376
|
+
});
|
|
21349
21377
|
object({
|
|
21350
21378
|
trackId: string(),
|
|
21351
21379
|
className: string(),
|
|
@@ -21656,12 +21684,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
21656
21684
|
since: number(),
|
|
21657
21685
|
until: number(),
|
|
21658
21686
|
bucketMs: number().int().positive()
|
|
21659
|
-
}), array(object({
|
|
21660
|
-
|
|
21661
|
-
|
|
21662
|
-
|
|
21663
|
-
|
|
21664
|
-
})).readonly()), method(object({
|
|
21687
|
+
}), array(EventDensityBucketSchema).readonly()), method(object({
|
|
21688
|
+
deviceIds: array(number()).min(1).max(200),
|
|
21689
|
+
since: number(),
|
|
21690
|
+
until: number(),
|
|
21691
|
+
bucketMs: number().int().positive()
|
|
21692
|
+
}), array(EventDensityForDeviceSchema).readonly()), method(object({
|
|
21665
21693
|
deviceId: number(),
|
|
21666
21694
|
cutoffMs: number()
|
|
21667
21695
|
}), object({
|
|
@@ -29282,6 +29310,39 @@ var RecordingDaysSchema = object({
|
|
|
29282
29310
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
29283
29311
|
days: array(number())
|
|
29284
29312
|
});
|
|
29313
|
+
/**
|
|
29314
|
+
* One camera's row in a `getAvailabilityBatch` answer.
|
|
29315
|
+
*
|
|
29316
|
+
* `ranges` is EXACTLY what `getAvailability` returns for that camera — the
|
|
29317
|
+
* batch collapses the transport, not the work — plus the one thing the singular
|
|
29318
|
+
* method never had to say:
|
|
29319
|
+
*
|
|
29320
|
+
* - `read: 'read'` — answered. `ranges: []` means "read, and this camera has
|
|
29321
|
+
* no footage in the window", which is a real claim.
|
|
29322
|
+
* - `read: 'unreadable'` — the recorder could not answer for this camera (its
|
|
29323
|
+
* calendar rung threw, its location is unmounted). `ranges` is empty and
|
|
29324
|
+
* that emptiness means NOTHING.
|
|
29325
|
+
*
|
|
29326
|
+
* A timeline that renders the second as the first tells an operator there is no
|
|
29327
|
+
* footage when the truth is that nobody looked.
|
|
29328
|
+
*/
|
|
29329
|
+
var RecordingAvailabilityForDeviceSchema = object({
|
|
29330
|
+
deviceId: number(),
|
|
29331
|
+
read: _enum(["read", "unreadable"]),
|
|
29332
|
+
ranges: array(RecordingRangeSchema).readonly()
|
|
29333
|
+
});
|
|
29334
|
+
/**
|
|
29335
|
+
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
29336
|
+
* {@link RecordingAvailabilityForDeviceSchema}: `days: []` on a `'read'` row is
|
|
29337
|
+
* "no footage in this month", `read: 'unreadable'` is "nobody could look", and
|
|
29338
|
+
* the date-picker's day dots must not spell them the same.
|
|
29339
|
+
*/
|
|
29340
|
+
var RecordingDaysForDeviceSchema = object({
|
|
29341
|
+
deviceId: number(),
|
|
29342
|
+
read: _enum(["read", "unreadable"]),
|
|
29343
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
29344
|
+
days: array(number()).readonly()
|
|
29345
|
+
});
|
|
29285
29346
|
var RecordingManifestSchema = object({
|
|
29286
29347
|
deviceId: number(),
|
|
29287
29348
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -29527,6 +29588,32 @@ var recordingCapability = {
|
|
|
29527
29588
|
kind: "query",
|
|
29528
29589
|
auth: "protected"
|
|
29529
29590
|
}),
|
|
29591
|
+
/**
|
|
29592
|
+
* `getAvailability` for a SET of cameras, in one round trip.
|
|
29593
|
+
*
|
|
29594
|
+
* A multi-camera timeline re-asks availability for every camera in the grid
|
|
29595
|
+
* on every day change; fanned out that is one request per camera for N
|
|
29596
|
+
* independent calendar walks. The per-camera work is IDENTICAL (the same
|
|
29597
|
+
* `availabilityProfileFor` + `rangesIn`, run concurrently inside the
|
|
29598
|
+
* recorder) — only the transport collapses.
|
|
29599
|
+
*
|
|
29600
|
+
* `protected` for the same reason the singular method is: every id in
|
|
29601
|
+
* `deviceIds` is a device reference, so the F1 #3 gate refuses any camera
|
|
29602
|
+
* outside the caller's scope — one id out of scope refuses the CALL, it
|
|
29603
|
+
* does not quietly drop a row.
|
|
29604
|
+
*
|
|
29605
|
+
* Every requested id gets a row, marked — see
|
|
29606
|
+
* {@link RecordingAvailabilityForDeviceSchema}. `deviceIds` is capped at
|
|
29607
|
+
* {@link RECORDING_TIMELINE_BATCH_MAX} and an over-cap ask is refused.
|
|
29608
|
+
*/
|
|
29609
|
+
getAvailabilityBatch: method(object({
|
|
29610
|
+
deviceIds: array(number()).min(1).max(200),
|
|
29611
|
+
fromMs: number(),
|
|
29612
|
+
toMs: number()
|
|
29613
|
+
}), array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
29614
|
+
kind: "query",
|
|
29615
|
+
auth: "protected"
|
|
29616
|
+
}),
|
|
29530
29617
|
/** Which calendar days in [fromMs,toMs) have ≥1 recorded segment, bucketed by
|
|
29531
29618
|
* the client's local day (`tzOffsetMinutes` = minutes to add to UTC). Drives
|
|
29532
29619
|
* the theater date-picker's day dots. */
|
|
@@ -29539,6 +29626,26 @@ var recordingCapability = {
|
|
|
29539
29626
|
kind: "query",
|
|
29540
29627
|
auth: "protected"
|
|
29541
29628
|
}),
|
|
29629
|
+
/**
|
|
29630
|
+
* `getDaysWithRecordings` for a SET of cameras, in one round trip.
|
|
29631
|
+
*
|
|
29632
|
+
* The cheapest question in the product, asked once per camera per month
|
|
29633
|
+
* change. One directory read per day per camera at the owner, unchanged;
|
|
29634
|
+
* what collapses is the N requests it took to ask.
|
|
29635
|
+
*
|
|
29636
|
+
* Every requested id gets a row, marked — see
|
|
29637
|
+
* {@link RecordingDaysForDeviceSchema}. `deviceIds` is capped at
|
|
29638
|
+
* {@link RECORDING_TIMELINE_BATCH_MAX} and an over-cap ask is refused.
|
|
29639
|
+
*/
|
|
29640
|
+
getDaysWithRecordingsBatch: method(object({
|
|
29641
|
+
deviceIds: array(number()).min(1).max(200),
|
|
29642
|
+
fromMs: number(),
|
|
29643
|
+
toMs: number(),
|
|
29644
|
+
tzOffsetMinutes: number()
|
|
29645
|
+
}), array(RecordingDaysForDeviceSchema).readonly(), {
|
|
29646
|
+
kind: "query",
|
|
29647
|
+
auth: "protected"
|
|
29648
|
+
}),
|
|
29542
29649
|
getPlaybackManifest: method(object({
|
|
29543
29650
|
deviceId: number(),
|
|
29544
29651
|
fromMs: number(),
|
|
@@ -35074,6 +35181,12 @@ Object.freeze({
|
|
|
35074
35181
|
addonId: null,
|
|
35075
35182
|
access: "view"
|
|
35076
35183
|
},
|
|
35184
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
35185
|
+
capName: "pipeline-analytics",
|
|
35186
|
+
capScope: "device",
|
|
35187
|
+
addonId: null,
|
|
35188
|
+
access: "view"
|
|
35189
|
+
},
|
|
35077
35190
|
"pipelineAnalytics.getEventMedia": {
|
|
35078
35191
|
capName: "pipeline-analytics",
|
|
35079
35192
|
capScope: "device",
|
|
@@ -36196,12 +36309,24 @@ Object.freeze({
|
|
|
36196
36309
|
addonId: null,
|
|
36197
36310
|
access: "view"
|
|
36198
36311
|
},
|
|
36312
|
+
"recording.getAvailabilityBatch": {
|
|
36313
|
+
capName: "recording",
|
|
36314
|
+
capScope: "system",
|
|
36315
|
+
addonId: null,
|
|
36316
|
+
access: "view"
|
|
36317
|
+
},
|
|
36199
36318
|
"recording.getDaysWithRecordings": {
|
|
36200
36319
|
capName: "recording",
|
|
36201
36320
|
capScope: "system",
|
|
36202
36321
|
addonId: null,
|
|
36203
36322
|
access: "view"
|
|
36204
36323
|
},
|
|
36324
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
36325
|
+
capName: "recording",
|
|
36326
|
+
capScope: "system",
|
|
36327
|
+
addonId: null,
|
|
36328
|
+
access: "view"
|
|
36329
|
+
},
|
|
36205
36330
|
"recording.getDeviceConfig": {
|
|
36206
36331
|
capName: "recording",
|
|
36207
36332
|
capScope: "system",
|
|
@@ -38806,6 +38931,11 @@ Object.freeze({
|
|
|
38806
38931
|
form: "single",
|
|
38807
38932
|
optional: false
|
|
38808
38933
|
}],
|
|
38934
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
38935
|
+
name: "deviceIds",
|
|
38936
|
+
form: "array",
|
|
38937
|
+
optional: false
|
|
38938
|
+
}],
|
|
38809
38939
|
"pipelineAnalytics.getEventMedia": [{
|
|
38810
38940
|
name: "deviceId",
|
|
38811
38941
|
form: "single",
|
|
@@ -39221,11 +39351,21 @@ Object.freeze({
|
|
|
39221
39351
|
form: "single",
|
|
39222
39352
|
optional: false
|
|
39223
39353
|
}],
|
|
39354
|
+
"recording.getAvailabilityBatch": [{
|
|
39355
|
+
name: "deviceIds",
|
|
39356
|
+
form: "array",
|
|
39357
|
+
optional: false
|
|
39358
|
+
}],
|
|
39224
39359
|
"recording.getDaysWithRecordings": [{
|
|
39225
39360
|
name: "deviceId",
|
|
39226
39361
|
form: "single",
|
|
39227
39362
|
optional: false
|
|
39228
39363
|
}],
|
|
39364
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
39365
|
+
name: "deviceIds",
|
|
39366
|
+
form: "array",
|
|
39367
|
+
optional: false
|
|
39368
|
+
}],
|
|
39229
39369
|
"recording.getDeviceConfig": [{
|
|
39230
39370
|
name: "deviceId",
|
|
39231
39371
|
form: "single",
|
|
@@ -21323,6 +21323,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
21323
21323
|
deviceId: number(),
|
|
21324
21324
|
events: array(KeyEventSchema).readonly()
|
|
21325
21325
|
});
|
|
21326
|
+
/** One non-empty bucket of the timeline histogram. */
|
|
21327
|
+
var EventDensityBucketSchema = object({
|
|
21328
|
+
bucketStart: number(),
|
|
21329
|
+
motion: number().int(),
|
|
21330
|
+
object: number().int(),
|
|
21331
|
+
audio: number().int()
|
|
21332
|
+
});
|
|
21333
|
+
/**
|
|
21334
|
+
* One camera's row in a `getEventDensityBatch` answer.
|
|
21335
|
+
*
|
|
21336
|
+
* TWO facts, and the timeline draws them differently:
|
|
21337
|
+
*
|
|
21338
|
+
* - `read: 'read'` — the histogram for this camera. `buckets: []` is a real
|
|
21339
|
+
* claim: read, and nothing happened in the window.
|
|
21340
|
+
* - `read: 'unreadable'` — nobody could answer for this camera. `buckets` is
|
|
21341
|
+
* empty and that emptiness means NOTHING; the timeline must render unknown,
|
|
21342
|
+
* not quiet.
|
|
21343
|
+
*
|
|
21344
|
+
* Fanned out per camera the difference was free — one query rejected while the
|
|
21345
|
+
* others resolved — and collapsing to a batch is the exact moment it is lost
|
|
21346
|
+
* silently. Every requested id gets a row: a caller that asked for twelve and
|
|
21347
|
+
* got eleven cannot tell which one is missing, or that any is.
|
|
21348
|
+
*/
|
|
21349
|
+
var EventDensityForDeviceSchema = object({
|
|
21350
|
+
deviceId: number(),
|
|
21351
|
+
read: _enum(["read", "unreadable"]),
|
|
21352
|
+
buckets: array(EventDensityBucketSchema).readonly()
|
|
21353
|
+
});
|
|
21326
21354
|
object({
|
|
21327
21355
|
trackId: string(),
|
|
21328
21356
|
className: string(),
|
|
@@ -21633,12 +21661,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
21633
21661
|
since: number(),
|
|
21634
21662
|
until: number(),
|
|
21635
21663
|
bucketMs: number().int().positive()
|
|
21636
|
-
}), array(object({
|
|
21637
|
-
|
|
21638
|
-
|
|
21639
|
-
|
|
21640
|
-
|
|
21641
|
-
})).readonly()), method(object({
|
|
21664
|
+
}), array(EventDensityBucketSchema).readonly()), method(object({
|
|
21665
|
+
deviceIds: array(number()).min(1).max(200),
|
|
21666
|
+
since: number(),
|
|
21667
|
+
until: number(),
|
|
21668
|
+
bucketMs: number().int().positive()
|
|
21669
|
+
}), array(EventDensityForDeviceSchema).readonly()), method(object({
|
|
21642
21670
|
deviceId: number(),
|
|
21643
21671
|
cutoffMs: number()
|
|
21644
21672
|
}), object({
|
|
@@ -29259,6 +29287,39 @@ var RecordingDaysSchema = object({
|
|
|
29259
29287
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
29260
29288
|
days: array(number())
|
|
29261
29289
|
});
|
|
29290
|
+
/**
|
|
29291
|
+
* One camera's row in a `getAvailabilityBatch` answer.
|
|
29292
|
+
*
|
|
29293
|
+
* `ranges` is EXACTLY what `getAvailability` returns for that camera — the
|
|
29294
|
+
* batch collapses the transport, not the work — plus the one thing the singular
|
|
29295
|
+
* method never had to say:
|
|
29296
|
+
*
|
|
29297
|
+
* - `read: 'read'` — answered. `ranges: []` means "read, and this camera has
|
|
29298
|
+
* no footage in the window", which is a real claim.
|
|
29299
|
+
* - `read: 'unreadable'` — the recorder could not answer for this camera (its
|
|
29300
|
+
* calendar rung threw, its location is unmounted). `ranges` is empty and
|
|
29301
|
+
* that emptiness means NOTHING.
|
|
29302
|
+
*
|
|
29303
|
+
* A timeline that renders the second as the first tells an operator there is no
|
|
29304
|
+
* footage when the truth is that nobody looked.
|
|
29305
|
+
*/
|
|
29306
|
+
var RecordingAvailabilityForDeviceSchema = object({
|
|
29307
|
+
deviceId: number(),
|
|
29308
|
+
read: _enum(["read", "unreadable"]),
|
|
29309
|
+
ranges: array(RecordingRangeSchema).readonly()
|
|
29310
|
+
});
|
|
29311
|
+
/**
|
|
29312
|
+
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
29313
|
+
* {@link RecordingAvailabilityForDeviceSchema}: `days: []` on a `'read'` row is
|
|
29314
|
+
* "no footage in this month", `read: 'unreadable'` is "nobody could look", and
|
|
29315
|
+
* the date-picker's day dots must not spell them the same.
|
|
29316
|
+
*/
|
|
29317
|
+
var RecordingDaysForDeviceSchema = object({
|
|
29318
|
+
deviceId: number(),
|
|
29319
|
+
read: _enum(["read", "unreadable"]),
|
|
29320
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
29321
|
+
days: array(number()).readonly()
|
|
29322
|
+
});
|
|
29262
29323
|
var RecordingManifestSchema = object({
|
|
29263
29324
|
deviceId: number(),
|
|
29264
29325
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -29504,6 +29565,32 @@ var recordingCapability = {
|
|
|
29504
29565
|
kind: "query",
|
|
29505
29566
|
auth: "protected"
|
|
29506
29567
|
}),
|
|
29568
|
+
/**
|
|
29569
|
+
* `getAvailability` for a SET of cameras, in one round trip.
|
|
29570
|
+
*
|
|
29571
|
+
* A multi-camera timeline re-asks availability for every camera in the grid
|
|
29572
|
+
* on every day change; fanned out that is one request per camera for N
|
|
29573
|
+
* independent calendar walks. The per-camera work is IDENTICAL (the same
|
|
29574
|
+
* `availabilityProfileFor` + `rangesIn`, run concurrently inside the
|
|
29575
|
+
* recorder) — only the transport collapses.
|
|
29576
|
+
*
|
|
29577
|
+
* `protected` for the same reason the singular method is: every id in
|
|
29578
|
+
* `deviceIds` is a device reference, so the F1 #3 gate refuses any camera
|
|
29579
|
+
* outside the caller's scope — one id out of scope refuses the CALL, it
|
|
29580
|
+
* does not quietly drop a row.
|
|
29581
|
+
*
|
|
29582
|
+
* Every requested id gets a row, marked — see
|
|
29583
|
+
* {@link RecordingAvailabilityForDeviceSchema}. `deviceIds` is capped at
|
|
29584
|
+
* {@link RECORDING_TIMELINE_BATCH_MAX} and an over-cap ask is refused.
|
|
29585
|
+
*/
|
|
29586
|
+
getAvailabilityBatch: method(object({
|
|
29587
|
+
deviceIds: array(number()).min(1).max(200),
|
|
29588
|
+
fromMs: number(),
|
|
29589
|
+
toMs: number()
|
|
29590
|
+
}), array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
29591
|
+
kind: "query",
|
|
29592
|
+
auth: "protected"
|
|
29593
|
+
}),
|
|
29507
29594
|
/** Which calendar days in [fromMs,toMs) have ≥1 recorded segment, bucketed by
|
|
29508
29595
|
* the client's local day (`tzOffsetMinutes` = minutes to add to UTC). Drives
|
|
29509
29596
|
* the theater date-picker's day dots. */
|
|
@@ -29516,6 +29603,26 @@ var recordingCapability = {
|
|
|
29516
29603
|
kind: "query",
|
|
29517
29604
|
auth: "protected"
|
|
29518
29605
|
}),
|
|
29606
|
+
/**
|
|
29607
|
+
* `getDaysWithRecordings` for a SET of cameras, in one round trip.
|
|
29608
|
+
*
|
|
29609
|
+
* The cheapest question in the product, asked once per camera per month
|
|
29610
|
+
* change. One directory read per day per camera at the owner, unchanged;
|
|
29611
|
+
* what collapses is the N requests it took to ask.
|
|
29612
|
+
*
|
|
29613
|
+
* Every requested id gets a row, marked — see
|
|
29614
|
+
* {@link RecordingDaysForDeviceSchema}. `deviceIds` is capped at
|
|
29615
|
+
* {@link RECORDING_TIMELINE_BATCH_MAX} and an over-cap ask is refused.
|
|
29616
|
+
*/
|
|
29617
|
+
getDaysWithRecordingsBatch: method(object({
|
|
29618
|
+
deviceIds: array(number()).min(1).max(200),
|
|
29619
|
+
fromMs: number(),
|
|
29620
|
+
toMs: number(),
|
|
29621
|
+
tzOffsetMinutes: number()
|
|
29622
|
+
}), array(RecordingDaysForDeviceSchema).readonly(), {
|
|
29623
|
+
kind: "query",
|
|
29624
|
+
auth: "protected"
|
|
29625
|
+
}),
|
|
29519
29626
|
getPlaybackManifest: method(object({
|
|
29520
29627
|
deviceId: number(),
|
|
29521
29628
|
fromMs: number(),
|
|
@@ -35051,6 +35158,12 @@ Object.freeze({
|
|
|
35051
35158
|
addonId: null,
|
|
35052
35159
|
access: "view"
|
|
35053
35160
|
},
|
|
35161
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
35162
|
+
capName: "pipeline-analytics",
|
|
35163
|
+
capScope: "device",
|
|
35164
|
+
addonId: null,
|
|
35165
|
+
access: "view"
|
|
35166
|
+
},
|
|
35054
35167
|
"pipelineAnalytics.getEventMedia": {
|
|
35055
35168
|
capName: "pipeline-analytics",
|
|
35056
35169
|
capScope: "device",
|
|
@@ -36173,12 +36286,24 @@ Object.freeze({
|
|
|
36173
36286
|
addonId: null,
|
|
36174
36287
|
access: "view"
|
|
36175
36288
|
},
|
|
36289
|
+
"recording.getAvailabilityBatch": {
|
|
36290
|
+
capName: "recording",
|
|
36291
|
+
capScope: "system",
|
|
36292
|
+
addonId: null,
|
|
36293
|
+
access: "view"
|
|
36294
|
+
},
|
|
36176
36295
|
"recording.getDaysWithRecordings": {
|
|
36177
36296
|
capName: "recording",
|
|
36178
36297
|
capScope: "system",
|
|
36179
36298
|
addonId: null,
|
|
36180
36299
|
access: "view"
|
|
36181
36300
|
},
|
|
36301
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
36302
|
+
capName: "recording",
|
|
36303
|
+
capScope: "system",
|
|
36304
|
+
addonId: null,
|
|
36305
|
+
access: "view"
|
|
36306
|
+
},
|
|
36182
36307
|
"recording.getDeviceConfig": {
|
|
36183
36308
|
capName: "recording",
|
|
36184
36309
|
capScope: "system",
|
|
@@ -38783,6 +38908,11 @@ Object.freeze({
|
|
|
38783
38908
|
form: "single",
|
|
38784
38909
|
optional: false
|
|
38785
38910
|
}],
|
|
38911
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
38912
|
+
name: "deviceIds",
|
|
38913
|
+
form: "array",
|
|
38914
|
+
optional: false
|
|
38915
|
+
}],
|
|
38786
38916
|
"pipelineAnalytics.getEventMedia": [{
|
|
38787
38917
|
name: "deviceId",
|
|
38788
38918
|
form: "single",
|
|
@@ -39198,11 +39328,21 @@ Object.freeze({
|
|
|
39198
39328
|
form: "single",
|
|
39199
39329
|
optional: false
|
|
39200
39330
|
}],
|
|
39331
|
+
"recording.getAvailabilityBatch": [{
|
|
39332
|
+
name: "deviceIds",
|
|
39333
|
+
form: "array",
|
|
39334
|
+
optional: false
|
|
39335
|
+
}],
|
|
39201
39336
|
"recording.getDaysWithRecordings": [{
|
|
39202
39337
|
name: "deviceId",
|
|
39203
39338
|
form: "single",
|
|
39204
39339
|
optional: false
|
|
39205
39340
|
}],
|
|
39341
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
39342
|
+
name: "deviceIds",
|
|
39343
|
+
form: "array",
|
|
39344
|
+
optional: false
|
|
39345
|
+
}],
|
|
39206
39346
|
"recording.getDeviceConfig": [{
|
|
39207
39347
|
name: "deviceId",
|
|
39208
39348
|
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-Bz00AHCy.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-15qysRyR.js");
|
|
6
|
+
const require_lazy_sharp = require("../lazy-sharp-CusvUEdy.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-Bz00AHCy.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-Bz00AHCy.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-15qysRyR.js");
|
|
6
|
+
const require_node = require("../node-BdjJPTLk.js");
|
|
7
|
+
const require_local_frame_registry = require("../local-frame-registry-BnimNHwT.js");
|
|
8
|
+
const require_worker_protocol = require("../worker-protocol-DczDySjo.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-CusvUEdy.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-Bz00AHCy.mjs";
|
|
2
|
+
import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-CpW6WY9n.mjs";
|
|
3
|
+
import { c as getStepDefinition, n as resolveFrameViewGeometry, t as localFrameRegistry } from "../local-frame-registry-B7cPLEW-.mjs";
|
|
4
|
+
import { a as nativeLeaseSettingEnv, t as isWorkerReply } from "../worker-protocol-B2RCeDwS.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";
|