@camstack/addon-pipeline 1.2.202 → 1.2.204
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/{default-detection-model-nKgB-_mg.js → default-detection-model-CfIEdJop.js} +1 -1
- package/dist/{default-detection-model-fUMLQHB2.mjs → default-detection-model-ClY8fk-K.mjs} +1 -1
- package/dist/detection-pipeline/index.js +5 -5
- package/dist/detection-pipeline/index.mjs +4 -4
- package/dist/{dist-D2jcEuZD.mjs → dist-B5x2ogXC.mjs} +19 -2
- package/dist/{dist-Bd875pfj.js → dist-Czm3CW8M.js} +19 -2
- package/dist/{lazy-sharp-B4KrLp0u.js → lazy-sharp-AhHg_Hb-.js} +1 -1
- package/dist/motion-wasm/index.js +2 -2
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-CmfXSgr3.mjs → node-Bx76sJbU.mjs} +1 -1
- package/dist/{node-dwhLC9Fh.js → node-u0M7kQe-.js} +1 -1
- package/dist/pipeline-runner/index.js +5 -5
- package/dist/pipeline-runner/index.mjs +4 -4
- package/dist/{process-memory-BDRJK5Vq.js → process-memory-D5JcMSDA.js} +1 -1
- package/dist/{process-memory-CH5qO7AX.mjs → process-memory-iiE4Q2mt.mjs} +1 -1
- package/dist/recorder/index.js +61 -13
- package/dist/recorder/index.mjs +61 -13
- package/dist/{segment-demux-js-BHTuEBhC.mjs → segment-demux-js-BcbB_hcJ.mjs} +1 -1
- package/dist/{segment-demux-js-cmfLROII.js → segment-demux-js-CSt1T2Vi.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/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-DZcCQR5t.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BSWELhoJ.mjs} +3 -3
- 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-CZt5Lq_M.mjs → hostInit-BJlv_j8i.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--PcFsRrE.js → worker-protocol-B4C4seRh.js} +1 -1
- package/dist/{worker-protocol-D4GyRNnY.mjs → worker-protocol-ClwpoGoP.mjs} +1 -1
- package/package.json +1 -1
|
@@ -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-Czm3CW8M.js");
|
|
6
|
+
const require_process_memory = require("../process-memory-D5JcMSDA.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 { Dt as resolvePoolMemoryPolicy, It as errMsg, Jt as hydrateSchema, M as audioAnalyzerCapability, S as PoolMemoryWatchdog, Ut as BaseAddon, j as audioAnalysisCapability, n as AUDIO_BACKEND_CHOICES, ot as mapAudioLabelToMacro, s as DEFAULT_AUDIO_ANALYZER_CONFIG, v as HF_BASE_URL } from "../dist-
|
|
3
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
2
|
+
import { Dt as resolvePoolMemoryPolicy, It as errMsg, Jt as hydrateSchema, M as audioAnalyzerCapability, S as PoolMemoryWatchdog, Ut as BaseAddon, j as audioAnalysisCapability, n as AUDIO_BACKEND_CHOICES, ot as mapAudioLabelToMacro, s as DEFAULT_AUDIO_ANALYZER_CONFIG, v as HF_BASE_URL } from "../dist-B5x2ogXC.mjs";
|
|
3
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-iiE4Q2mt.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";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { N as audioKindId, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS, tt as hfModelUrl } from "./dist-
|
|
1
|
+
import { N as audioKindId, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS, tt as hfModelUrl } from "./dist-B5x2ogXC.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,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_default_detection_model = require("../default-detection-model-
|
|
8
|
-
const require_lazy_sharp = require("../lazy-sharp-
|
|
5
|
+
const require_dist = require("../dist-Czm3CW8M.js");
|
|
6
|
+
const require_node = require("../node-u0M7kQe-.js");
|
|
7
|
+
const require_default_detection_model = require("../default-detection-model-CfIEdJop.js");
|
|
8
|
+
const require_lazy_sharp = require("../lazy-sharp-AhHg_Hb-.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-D5JcMSDA.js");
|
|
11
11
|
let node_os = require("node:os");
|
|
12
12
|
node_os = require_dist.__toESM(node_os);
|
|
13
13
|
let node_fs = require("node:fs");
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { $t as parseJsonUnknown, B as defaultDeviceFor$1, Dt as resolvePoolMemoryPolicy, G as detectionPipelineCapability, It as errMsg, J as enumerateInferenceDevices, Jt as hydrateSchema, Pt as supportedRuntimes$1, Qt as nodePin, S as PoolMemoryWatchdog, Ut as BaseAddon, X as evaluateZoneRules, c as DEFAULT_CLUSTER_STEP_MODELS, gt as pickClusterStepSettings, hn as EventCategory, ht as pickClusterStepModels, in as array, it as loadContributionCapability, k as YAMNET_TO_MACRO, kt as runtimeDevices$1, l as DEFAULT_CLUSTER_STEP_SETTINGS, m as DEVICE_BACKEND_TO_FORMAT, mn as union, nn as sleep, nt as inferModelProvider, pn as string, pt as overlayClusterStepSettings, qt as createEvent, t as APPLE_SA_TO_MACRO, un as object, wt as resolveClusterStepModelId, yt as pipelineExecutorCapability } from "../dist-
|
|
3
|
-
import { o as readProcessCost } from "../node-
|
|
4
|
-
import { a as ALL_PIPELINE_STEPS, c as getStep, d as landmarkPrecisionVerdict, l as getStepDefinition, n as resolveDefaultDetectionModel, o as ALL_STEPS, r as localFrameRegistry, s as getDefaultModelForFormat, u as resolveModelForFormat } from "../default-detection-model-
|
|
2
|
+
import { $t as parseJsonUnknown, B as defaultDeviceFor$1, Dt as resolvePoolMemoryPolicy, G as detectionPipelineCapability, It as errMsg, J as enumerateInferenceDevices, Jt as hydrateSchema, Pt as supportedRuntimes$1, Qt as nodePin, S as PoolMemoryWatchdog, Ut as BaseAddon, X as evaluateZoneRules, c as DEFAULT_CLUSTER_STEP_MODELS, gt as pickClusterStepSettings, hn as EventCategory, ht as pickClusterStepModels, in as array, it as loadContributionCapability, k as YAMNET_TO_MACRO, kt as runtimeDevices$1, l as DEFAULT_CLUSTER_STEP_SETTINGS, m as DEVICE_BACKEND_TO_FORMAT, mn as union, nn as sleep, nt as inferModelProvider, pn as string, pt as overlayClusterStepSettings, qt as createEvent, t as APPLE_SA_TO_MACRO, un as object, wt as resolveClusterStepModelId, yt as pipelineExecutorCapability } from "../dist-B5x2ogXC.mjs";
|
|
3
|
+
import { o as readProcessCost } from "../node-Bx76sJbU.mjs";
|
|
4
|
+
import { a as ALL_PIPELINE_STEPS, c as getStep, d as landmarkPrecisionVerdict, l as getStepDefinition, n as resolveDefaultDetectionModel, o as ALL_STEPS, r as localFrameRegistry, s as getDefaultModelForFormat, u as resolveModelForFormat } from "../default-detection-model-ClY8fk-K.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-iiE4Q2mt.mjs";
|
|
8
8
|
import * as os from "node:os";
|
|
9
9
|
import * as fs from "node:fs";
|
|
10
10
|
import * as path$1 from "node:path";
|
|
@@ -22845,8 +22845,25 @@ var occupancyRecheckFramesField = {
|
|
|
22845
22845
|
* (analyzer attaches detected `regions[]`; onboard does not — the
|
|
22846
22846
|
* camera typically only reports a binary signal plus an optional
|
|
22847
22847
|
* channel/AI class which lives in dedicated event channels).
|
|
22848
|
-
|
|
22849
|
-
|
|
22848
|
+
*
|
|
22849
|
+
* - `onboard` — the camera's firmware said something moved.
|
|
22850
|
+
* - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
|
|
22851
|
+
* - `device-activity` — the DEVICE said it is doing its job: the
|
|
22852
|
+
* `recording-signal` LEVEL the same device raises for the recorder
|
|
22853
|
+
* ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
|
|
22854
|
+
* republished as a motion source. It attaches **nothing** — no regions, no
|
|
22855
|
+
* class: the only fact it carries is that the device is active, and a robot
|
|
22856
|
+
* vacuum that is itself the moving object has no region worth sending. It is
|
|
22857
|
+
* a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
|
|
22858
|
+
* `analyzer` it must not open the frame-diff side-channel — the runner's
|
|
22859
|
+
* `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
|
|
22860
|
+
* way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
|
|
22861
|
+
*/
|
|
22862
|
+
var MotionSourceEnum = _enum([
|
|
22863
|
+
"onboard",
|
|
22864
|
+
"analyzer",
|
|
22865
|
+
"device-activity"
|
|
22866
|
+
]);
|
|
22850
22867
|
/**
|
|
22851
22868
|
* List of motion sources active on a camera. Empty array is valid:
|
|
22852
22869
|
* "no source" — happens for battery cams without firmware motion when
|
|
@@ -22868,8 +22868,25 @@ var occupancyRecheckFramesField = {
|
|
|
22868
22868
|
* (analyzer attaches detected `regions[]`; onboard does not — the
|
|
22869
22869
|
* camera typically only reports a binary signal plus an optional
|
|
22870
22870
|
* channel/AI class which lives in dedicated event channels).
|
|
22871
|
-
|
|
22872
|
-
|
|
22871
|
+
*
|
|
22872
|
+
* - `onboard` — the camera's firmware said something moved.
|
|
22873
|
+
* - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
|
|
22874
|
+
* - `device-activity` — the DEVICE said it is doing its job: the
|
|
22875
|
+
* `recording-signal` LEVEL the same device raises for the recorder
|
|
22876
|
+
* ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
|
|
22877
|
+
* republished as a motion source. It attaches **nothing** — no regions, no
|
|
22878
|
+
* class: the only fact it carries is that the device is active, and a robot
|
|
22879
|
+
* vacuum that is itself the moving object has no region worth sending. It is
|
|
22880
|
+
* a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
|
|
22881
|
+
* `analyzer` it must not open the frame-diff side-channel — the runner's
|
|
22882
|
+
* `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
|
|
22883
|
+
* way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
|
|
22884
|
+
*/
|
|
22885
|
+
var MotionSourceEnum = _enum([
|
|
22886
|
+
"onboard",
|
|
22887
|
+
"analyzer",
|
|
22888
|
+
"device-activity"
|
|
22889
|
+
]);
|
|
22873
22890
|
/**
|
|
22874
22891
|
* List of motion sources active on a camera. Empty array is valid:
|
|
22875
22892
|
* "no source" — happens for battery cams without firmware motion when
|
|
@@ -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-Czm3CW8M.js");
|
|
6
|
+
const require_lazy_sharp = require("../lazy-sharp-AhHg_Hb-.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 { Jt as hydrateSchema, Kt as DeviceType, Ut as BaseAddon, X as evaluateZoneRules, ft as motionDetectionCapability } from "../dist-
|
|
1
|
+
import { Jt as hydrateSchema, Kt as DeviceType, Ut as BaseAddon, X as evaluateZoneRules, ft as motionDetectionCapability } from "../dist-B5x2ogXC.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 { It as errMsg, Rt as Fmp4BoxSplitter, Vt as isSoftwareDecode, zt as buildFfmpegArgs } from "./dist-
|
|
1
|
+
import { It as errMsg, Rt as Fmp4BoxSplitter, Vt as isSoftwareDecode, zt as buildFfmpegArgs } from "./dist-B5x2ogXC.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { realpathSync } from "node:fs";
|
|
4
4
|
import path from "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_default_detection_model = require("../default-detection-model-
|
|
8
|
-
const require_worker_protocol = require("../worker-protocol
|
|
5
|
+
const require_dist = require("../dist-Czm3CW8M.js");
|
|
6
|
+
const require_node = require("../node-u0M7kQe-.js");
|
|
7
|
+
const require_default_detection_model = require("../default-detection-model-CfIEdJop.js");
|
|
8
|
+
const require_worker_protocol = require("../worker-protocol-B4C4seRh.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-AhHg_Hb-.js");
|
|
11
11
|
const require_restream_intent = require("../restream-intent-B1Difcnq.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 { $ as failureContributionCapability, It as errMsg, Qt as nodePin, R as customAction, U as deriveDetailCropRect, Ut as BaseAddon, V as defineCustomActions, _ as FailureCounters, _t as pickDetailCropConvention, an as boolean, bt as pipelineRunnerCapability, cn as literal, hn as EventCategory, in as array, it as loadContributionCapability, ln as number, m as DEVICE_BACKEND_TO_FORMAT, p as DEFAULT_NATIVE_LEASE_SETTINGS, pn as string, qt as createEvent, rn as _enum, sn as lazy, u as DEFAULT_DETAIL_CROP_CONVENTION, un as object, vt as pickNativeLeaseOverride } from "../dist-
|
|
2
|
-
import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-
|
|
3
|
-
import { i as resolveFrameViewGeometry, l as getStepDefinition, r as localFrameRegistry } from "../default-detection-model-
|
|
4
|
-
import { a as nativeLeaseSettingEnv, t as isWorkerReply } from "../worker-protocol-
|
|
1
|
+
import { $ as failureContributionCapability, It as errMsg, Qt as nodePin, R as customAction, U as deriveDetailCropRect, Ut as BaseAddon, V as defineCustomActions, _ as FailureCounters, _t as pickDetailCropConvention, an as boolean, bt as pipelineRunnerCapability, cn as literal, hn as EventCategory, in as array, it as loadContributionCapability, ln as number, m as DEVICE_BACKEND_TO_FORMAT, p as DEFAULT_NATIVE_LEASE_SETTINGS, pn as string, qt as createEvent, rn as _enum, sn as lazy, u as DEFAULT_DETAIL_CROP_CONVENTION, un as object, vt as pickNativeLeaseOverride } from "../dist-B5x2ogXC.mjs";
|
|
2
|
+
import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-Bx76sJbU.mjs";
|
|
3
|
+
import { i as resolveFrameViewGeometry, l as getStepDefinition, r as localFrameRegistry } from "../default-detection-model-ClY8fk-K.mjs";
|
|
4
|
+
import { a as nativeLeaseSettingEnv, t as isWorkerReply } from "../worker-protocol-ClwpoGoP.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 { a as preRollRequestOf, o as withDetectionIntent, t as DETECTION_PRE_ROLL_REQUEST_MS } from "../restream-intent-DWe2kInY.mjs";
|
package/dist/recorder/index.js
CHANGED
|
@@ -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_node = require("../node-
|
|
5
|
+
const require_dist = require("../dist-Czm3CW8M.js");
|
|
6
|
+
const require_node = require("../node-u0M7kQe-.js");
|
|
7
7
|
const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
|
|
8
8
|
const require_restream_intent = require("../restream-intent-B1Difcnq.js");
|
|
9
9
|
const require_event_loop_stall_monitor = require("../event-loop-stall-monitor-DaUBcb13.js");
|
|
@@ -11498,11 +11498,13 @@ function weightOfUnmeasured(demands) {
|
|
|
11498
11498
|
return measured.length % 2 === 1 ? measured[mid] : (measured[mid - 1] + measured[mid]) / 2;
|
|
11499
11499
|
}
|
|
11500
11500
|
/** Normalised weight per location: headroom share, or an even split when no
|
|
11501
|
-
* location reports any headroom (nothing is known yet — never divide by 0).
|
|
11501
|
+
* location reports any headroom (nothing is known yet — never divide by 0).
|
|
11502
|
+
* An UNMEASURABLE location (`headroomBytes: null`) contributes nothing and
|
|
11503
|
+
* weighs nothing: it keeps what it already holds and attracts no new work. */
|
|
11502
11504
|
function weightsFor(pool) {
|
|
11503
|
-
const total = pool.reduce((sum, c) => sum + Math.max(0, c.headroomBytes), 0);
|
|
11505
|
+
const total = pool.reduce((sum, c) => sum + Math.max(0, c.headroomBytes ?? 0), 0);
|
|
11504
11506
|
const weights = /* @__PURE__ */ new Map();
|
|
11505
|
-
for (const c of pool) weights.set(c.locationId, total > 0 ? Math.max(0, c.headroomBytes) / total : 1 / pool.length);
|
|
11507
|
+
for (const c of pool) weights.set(c.locationId, total > 0 ? Math.max(0, c.headroomBytes ?? 0) / total : 1 / pool.length);
|
|
11506
11508
|
return weights;
|
|
11507
11509
|
}
|
|
11508
11510
|
/** The location with the largest unmet share of the target, ties broken by the
|
|
@@ -12036,6 +12038,9 @@ var PlacementService = class {
|
|
|
12036
12038
|
verified = /* @__PURE__ */ new Set();
|
|
12037
12039
|
/** Locations the probe declared unusable — re-probed after a change. */
|
|
12038
12040
|
unusable = /* @__PURE__ */ new Set();
|
|
12041
|
+
/** Locations whose capacity could not be read, by reason. One line per
|
|
12042
|
+
* distinct fault (this is on the 30 s tick) and one when it clears. */
|
|
12043
|
+
capacityFaults = /* @__PURE__ */ new Map();
|
|
12039
12044
|
/** Cameras that have already announced "every location is unusable". One line
|
|
12040
12045
|
* per camera per episode: the fault is asked per-camera, and repeating it per
|
|
12041
12046
|
* attach is the noise this state exists to end. */
|
|
@@ -12238,7 +12243,7 @@ var PlacementService = class {
|
|
|
12238
12243
|
const byId = new Map(candidates.map((c) => [c.locationId, c.headroomBytes]));
|
|
12239
12244
|
return pool.map((location) => {
|
|
12240
12245
|
const headroomBytes = byId.get(location.id);
|
|
12241
|
-
return headroomBytes === void 0 ? location : {
|
|
12246
|
+
return headroomBytes === void 0 || headroomBytes === null ? location : {
|
|
12242
12247
|
...location,
|
|
12243
12248
|
headroomBytes
|
|
12244
12249
|
};
|
|
@@ -12281,7 +12286,7 @@ var PlacementService = class {
|
|
|
12281
12286
|
return NO_PLAN;
|
|
12282
12287
|
}
|
|
12283
12288
|
const current = new Map(Object.entries(blob.assignments));
|
|
12284
|
-
const evacuate = new Set(candidates.filter((c) => c.headroomBytes <= 0).map((c) => c.locationId));
|
|
12289
|
+
const evacuate = new Set(candidates.filter((c) => c.headroomBytes !== null && c.headroomBytes <= 0).map((c) => c.locationId));
|
|
12285
12290
|
for (const location of pool) if (location.readOnly) evacuate.add(location.id);
|
|
12286
12291
|
const plan = planPlacement({
|
|
12287
12292
|
candidates,
|
|
@@ -12441,8 +12446,20 @@ var PlacementService = class {
|
|
|
12441
12446
|
* `min(free − minFree floor, maxUsedGb − used)`, clamped at zero: the first
|
|
12442
12447
|
* term is the per-location free-space guard the storage pressure manager also
|
|
12443
12448
|
* enforces, the second an optional operator cap on what recordings may take.
|
|
12444
|
-
*
|
|
12445
|
-
*
|
|
12449
|
+
*
|
|
12450
|
+
* **Nothing measurable is `null`, not zero.** `readLocationCapacity` models
|
|
12451
|
+
* its failure — a NAS that stops answering `statfs` returns nulls AND the
|
|
12452
|
+
* reason. This method used to discard the reason and fold the whole case into
|
|
12453
|
+
* `headroomBytes: 0`, which `recompute` reads as "at its limit" and puts in
|
|
12454
|
+
* `evacuate`: one failed `statfs` moved every camera off a healthy disk, and
|
|
12455
|
+
* not one line was written about it. (The comment that used to sit here
|
|
12456
|
+
* claimed the opposite — "no signal → the planner splits evenly" — which is
|
|
12457
|
+
* true of the PLANNER's weights and was never true of the evacuation set.)
|
|
12458
|
+
*
|
|
12459
|
+
* So an unmeasurable location gets `null`, which is not evacuated and wins no
|
|
12460
|
+
* new work, and the reason is logged against the location — once per distinct
|
|
12461
|
+
* fault, since this runs on the 30 s placement tick, plus one line when it
|
|
12462
|
+
* recovers.
|
|
12446
12463
|
*/
|
|
12447
12464
|
async candidatesFor(pool) {
|
|
12448
12465
|
const out = [];
|
|
@@ -12450,7 +12467,8 @@ var PlacementService = class {
|
|
|
12450
12467
|
if (location.readOnly) continue;
|
|
12451
12468
|
const capacity = await this.deps.capacityFor?.(location) ?? {
|
|
12452
12469
|
availableBytes: null,
|
|
12453
|
-
totalBytes: null
|
|
12470
|
+
totalBytes: null,
|
|
12471
|
+
error: "no capacity source is wired on this node"
|
|
12454
12472
|
};
|
|
12455
12473
|
const limits = [];
|
|
12456
12474
|
if (capacity.availableBytes !== null && capacity.totalBytes !== null) {
|
|
@@ -12461,15 +12479,45 @@ var PlacementService = class {
|
|
|
12461
12479
|
const used = await this.deps.usedOnLocation?.(location.id) ?? 0;
|
|
12462
12480
|
limits.push(require_dist.gbToBytes(location.maxUsedGb) - used);
|
|
12463
12481
|
}
|
|
12482
|
+
const headroomBytes = limits.length === 0 ? null : Math.max(0, Math.min(...limits));
|
|
12483
|
+
this.reportCapacitySignal(location, headroomBytes, capacity.error);
|
|
12464
12484
|
out.push({
|
|
12465
12485
|
locationId: location.id,
|
|
12466
12486
|
type: location.type,
|
|
12467
|
-
headroomBytes
|
|
12487
|
+
headroomBytes
|
|
12468
12488
|
});
|
|
12469
12489
|
}
|
|
12470
12490
|
return out;
|
|
12471
12491
|
}
|
|
12472
12492
|
/**
|
|
12493
|
+
* Say it out loud when a location's capacity cannot be read, and say it again
|
|
12494
|
+
* when it comes back. Deduplicated by reason because `candidatesFor` runs on
|
|
12495
|
+
* every placement tick — a line per tick is a line nobody reads, and no line
|
|
12496
|
+
* at all is what let a dead NAS look like a full one.
|
|
12497
|
+
*/
|
|
12498
|
+
reportCapacitySignal(location, headroomBytes, error) {
|
|
12499
|
+
const previous = this.capacityFaults.get(location.id);
|
|
12500
|
+
if (headroomBytes !== null) {
|
|
12501
|
+
if (previous !== void 0) {
|
|
12502
|
+
this.capacityFaults.delete(location.id);
|
|
12503
|
+
this.deps.logger.info("recorder placement: capacity readable again — this location is a write target once more", { meta: {
|
|
12504
|
+
locationId: location.id,
|
|
12505
|
+
root: location.root,
|
|
12506
|
+
previousError: previous
|
|
12507
|
+
} });
|
|
12508
|
+
}
|
|
12509
|
+
return;
|
|
12510
|
+
}
|
|
12511
|
+
const reason = error ?? "the capacity read returned no bytes and no reason";
|
|
12512
|
+
if (previous === reason) return;
|
|
12513
|
+
this.capacityFaults.set(location.id, reason);
|
|
12514
|
+
this.deps.logger.warn("recorder placement: capacity UNMEASURABLE — headroom is unknown, so this location is neither evacuated nor given new cameras", { meta: {
|
|
12515
|
+
locationId: location.id,
|
|
12516
|
+
root: location.root,
|
|
12517
|
+
error: reason
|
|
12518
|
+
} });
|
|
12519
|
+
}
|
|
12520
|
+
/**
|
|
12473
12521
|
* Volume-check the chosen location, failing the assignment over to a sibling
|
|
12474
12522
|
* when the bytes under its root are not the bytes we wrote. The probe runs
|
|
12475
12523
|
* ONCE per location per location-set generation — it is a claim, not a poll.
|
|
@@ -18304,10 +18352,10 @@ var RecorderV2Addon = class extends require_dist.BaseAddon {
|
|
|
18304
18352
|
const [assignments, candidates] = await Promise.all([placement.currentAssignments(), placement.candidates()]);
|
|
18305
18353
|
return {
|
|
18306
18354
|
assignments,
|
|
18307
|
-
headroom: candidates.
|
|
18355
|
+
headroom: candidates.flatMap((candidate) => candidate.headroomBytes === null ? [] : [{
|
|
18308
18356
|
locationId: candidate.locationId,
|
|
18309
18357
|
headroomBytes: candidate.headroomBytes
|
|
18310
|
-
})
|
|
18358
|
+
}])
|
|
18311
18359
|
};
|
|
18312
18360
|
}
|
|
18313
18361
|
/**
|
package/dist/recorder/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { At as storageEvictableCapability, Ct as recordingSignalCapability, D as RecordingSignalStatusSchema, E as RecordingConfigSchema, Et as resolveLocationMode, Gt as DeviceFeature, H as deriveBatteryPresence, It as errMsg, Jt as hydrateSchema, Kt as DeviceType, Nt as stripRetiredBandPreBufferSec, Ot as resolveRecordingProfiles, P as batteryCapability, Q as evictionPolicyOfLocation, Qt as nodePin, R as customAction, St as recordingExportCapability, T as RECORDING_EXPORT_MAX_READ_BYTES, Ut as BaseAddon, V as defineCustomActions, W as deriveRecordingMode, Y as evaluateSensorEdge, Z as evictionPolicyForMode, an as boolean, ct as mayReadLocation, d as DEFAULT_EVENTS_BAND_BUFFER_SEC, dn as preprocess, dt as modeMayWrite, et as gbToBytes, fn as record, g as ExportRecordSchema, hn as EventCategory, i as BatteryStatusSchema, in as array, it as loadContributionCapability, jt as storageOccupancyCapability, ln as number, lt as mayWriteToLocation, nn as sleep$1, pn as string, rn as _enum, rt as isFirstLevelMacroClass, tn as selectAssignedProfileSlots, un as object, ut as migrateLegacyDeviceSignalConfig, x as OpsLogEntrySchema, xt as recordingCapability } from "../dist-
|
|
2
|
-
import { a as physicalRootOf, i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-
|
|
1
|
+
import { At as storageEvictableCapability, Ct as recordingSignalCapability, D as RecordingSignalStatusSchema, E as RecordingConfigSchema, Et as resolveLocationMode, Gt as DeviceFeature, H as deriveBatteryPresence, It as errMsg, Jt as hydrateSchema, Kt as DeviceType, Nt as stripRetiredBandPreBufferSec, Ot as resolveRecordingProfiles, P as batteryCapability, Q as evictionPolicyOfLocation, Qt as nodePin, R as customAction, St as recordingExportCapability, T as RECORDING_EXPORT_MAX_READ_BYTES, Ut as BaseAddon, V as defineCustomActions, W as deriveRecordingMode, Y as evaluateSensorEdge, Z as evictionPolicyForMode, an as boolean, ct as mayReadLocation, d as DEFAULT_EVENTS_BAND_BUFFER_SEC, dn as preprocess, dt as modeMayWrite, et as gbToBytes, fn as record, g as ExportRecordSchema, hn as EventCategory, i as BatteryStatusSchema, in as array, it as loadContributionCapability, jt as storageOccupancyCapability, ln as number, lt as mayWriteToLocation, nn as sleep$1, pn as string, rn as _enum, rt as isFirstLevelMacroClass, tn as selectAssignedProfileSlots, un as object, ut as migrateLegacyDeviceSignalConfig, x as OpsLogEntrySchema, xt as recordingCapability } from "../dist-B5x2ogXC.mjs";
|
|
2
|
+
import { a as physicalRootOf, i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-Bx76sJbU.mjs";
|
|
3
3
|
import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
|
|
4
4
|
import { c as PREBUFFER_MAX_MS, r as RECORDING_PRE_ROLL_REQUEST_MS, s as withRecordingIntent } from "../restream-intent-DWe2kInY.mjs";
|
|
5
5
|
import { n as startEventLoopStallMonitor } from "../event-loop-stall-monitor-DXLNBMkY.mjs";
|
|
@@ -11492,11 +11492,13 @@ function weightOfUnmeasured(demands) {
|
|
|
11492
11492
|
return measured.length % 2 === 1 ? measured[mid] : (measured[mid - 1] + measured[mid]) / 2;
|
|
11493
11493
|
}
|
|
11494
11494
|
/** Normalised weight per location: headroom share, or an even split when no
|
|
11495
|
-
* location reports any headroom (nothing is known yet — never divide by 0).
|
|
11495
|
+
* location reports any headroom (nothing is known yet — never divide by 0).
|
|
11496
|
+
* An UNMEASURABLE location (`headroomBytes: null`) contributes nothing and
|
|
11497
|
+
* weighs nothing: it keeps what it already holds and attracts no new work. */
|
|
11496
11498
|
function weightsFor(pool) {
|
|
11497
|
-
const total = pool.reduce((sum, c) => sum + Math.max(0, c.headroomBytes), 0);
|
|
11499
|
+
const total = pool.reduce((sum, c) => sum + Math.max(0, c.headroomBytes ?? 0), 0);
|
|
11498
11500
|
const weights = /* @__PURE__ */ new Map();
|
|
11499
|
-
for (const c of pool) weights.set(c.locationId, total > 0 ? Math.max(0, c.headroomBytes) / total : 1 / pool.length);
|
|
11501
|
+
for (const c of pool) weights.set(c.locationId, total > 0 ? Math.max(0, c.headroomBytes ?? 0) / total : 1 / pool.length);
|
|
11500
11502
|
return weights;
|
|
11501
11503
|
}
|
|
11502
11504
|
/** The location with the largest unmet share of the target, ties broken by the
|
|
@@ -12030,6 +12032,9 @@ var PlacementService = class {
|
|
|
12030
12032
|
verified = /* @__PURE__ */ new Set();
|
|
12031
12033
|
/** Locations the probe declared unusable — re-probed after a change. */
|
|
12032
12034
|
unusable = /* @__PURE__ */ new Set();
|
|
12035
|
+
/** Locations whose capacity could not be read, by reason. One line per
|
|
12036
|
+
* distinct fault (this is on the 30 s tick) and one when it clears. */
|
|
12037
|
+
capacityFaults = /* @__PURE__ */ new Map();
|
|
12033
12038
|
/** Cameras that have already announced "every location is unusable". One line
|
|
12034
12039
|
* per camera per episode: the fault is asked per-camera, and repeating it per
|
|
12035
12040
|
* attach is the noise this state exists to end. */
|
|
@@ -12232,7 +12237,7 @@ var PlacementService = class {
|
|
|
12232
12237
|
const byId = new Map(candidates.map((c) => [c.locationId, c.headroomBytes]));
|
|
12233
12238
|
return pool.map((location) => {
|
|
12234
12239
|
const headroomBytes = byId.get(location.id);
|
|
12235
|
-
return headroomBytes === void 0 ? location : {
|
|
12240
|
+
return headroomBytes === void 0 || headroomBytes === null ? location : {
|
|
12236
12241
|
...location,
|
|
12237
12242
|
headroomBytes
|
|
12238
12243
|
};
|
|
@@ -12275,7 +12280,7 @@ var PlacementService = class {
|
|
|
12275
12280
|
return NO_PLAN;
|
|
12276
12281
|
}
|
|
12277
12282
|
const current = new Map(Object.entries(blob.assignments));
|
|
12278
|
-
const evacuate = new Set(candidates.filter((c) => c.headroomBytes <= 0).map((c) => c.locationId));
|
|
12283
|
+
const evacuate = new Set(candidates.filter((c) => c.headroomBytes !== null && c.headroomBytes <= 0).map((c) => c.locationId));
|
|
12279
12284
|
for (const location of pool) if (location.readOnly) evacuate.add(location.id);
|
|
12280
12285
|
const plan = planPlacement({
|
|
12281
12286
|
candidates,
|
|
@@ -12435,8 +12440,20 @@ var PlacementService = class {
|
|
|
12435
12440
|
* `min(free − minFree floor, maxUsedGb − used)`, clamped at zero: the first
|
|
12436
12441
|
* term is the per-location free-space guard the storage pressure manager also
|
|
12437
12442
|
* enforces, the second an optional operator cap on what recordings may take.
|
|
12438
|
-
*
|
|
12439
|
-
*
|
|
12443
|
+
*
|
|
12444
|
+
* **Nothing measurable is `null`, not zero.** `readLocationCapacity` models
|
|
12445
|
+
* its failure — a NAS that stops answering `statfs` returns nulls AND the
|
|
12446
|
+
* reason. This method used to discard the reason and fold the whole case into
|
|
12447
|
+
* `headroomBytes: 0`, which `recompute` reads as "at its limit" and puts in
|
|
12448
|
+
* `evacuate`: one failed `statfs` moved every camera off a healthy disk, and
|
|
12449
|
+
* not one line was written about it. (The comment that used to sit here
|
|
12450
|
+
* claimed the opposite — "no signal → the planner splits evenly" — which is
|
|
12451
|
+
* true of the PLANNER's weights and was never true of the evacuation set.)
|
|
12452
|
+
*
|
|
12453
|
+
* So an unmeasurable location gets `null`, which is not evacuated and wins no
|
|
12454
|
+
* new work, and the reason is logged against the location — once per distinct
|
|
12455
|
+
* fault, since this runs on the 30 s placement tick, plus one line when it
|
|
12456
|
+
* recovers.
|
|
12440
12457
|
*/
|
|
12441
12458
|
async candidatesFor(pool) {
|
|
12442
12459
|
const out = [];
|
|
@@ -12444,7 +12461,8 @@ var PlacementService = class {
|
|
|
12444
12461
|
if (location.readOnly) continue;
|
|
12445
12462
|
const capacity = await this.deps.capacityFor?.(location) ?? {
|
|
12446
12463
|
availableBytes: null,
|
|
12447
|
-
totalBytes: null
|
|
12464
|
+
totalBytes: null,
|
|
12465
|
+
error: "no capacity source is wired on this node"
|
|
12448
12466
|
};
|
|
12449
12467
|
const limits = [];
|
|
12450
12468
|
if (capacity.availableBytes !== null && capacity.totalBytes !== null) {
|
|
@@ -12455,15 +12473,45 @@ var PlacementService = class {
|
|
|
12455
12473
|
const used = await this.deps.usedOnLocation?.(location.id) ?? 0;
|
|
12456
12474
|
limits.push(gbToBytes(location.maxUsedGb) - used);
|
|
12457
12475
|
}
|
|
12476
|
+
const headroomBytes = limits.length === 0 ? null : Math.max(0, Math.min(...limits));
|
|
12477
|
+
this.reportCapacitySignal(location, headroomBytes, capacity.error);
|
|
12458
12478
|
out.push({
|
|
12459
12479
|
locationId: location.id,
|
|
12460
12480
|
type: location.type,
|
|
12461
|
-
headroomBytes
|
|
12481
|
+
headroomBytes
|
|
12462
12482
|
});
|
|
12463
12483
|
}
|
|
12464
12484
|
return out;
|
|
12465
12485
|
}
|
|
12466
12486
|
/**
|
|
12487
|
+
* Say it out loud when a location's capacity cannot be read, and say it again
|
|
12488
|
+
* when it comes back. Deduplicated by reason because `candidatesFor` runs on
|
|
12489
|
+
* every placement tick — a line per tick is a line nobody reads, and no line
|
|
12490
|
+
* at all is what let a dead NAS look like a full one.
|
|
12491
|
+
*/
|
|
12492
|
+
reportCapacitySignal(location, headroomBytes, error) {
|
|
12493
|
+
const previous = this.capacityFaults.get(location.id);
|
|
12494
|
+
if (headroomBytes !== null) {
|
|
12495
|
+
if (previous !== void 0) {
|
|
12496
|
+
this.capacityFaults.delete(location.id);
|
|
12497
|
+
this.deps.logger.info("recorder placement: capacity readable again — this location is a write target once more", { meta: {
|
|
12498
|
+
locationId: location.id,
|
|
12499
|
+
root: location.root,
|
|
12500
|
+
previousError: previous
|
|
12501
|
+
} });
|
|
12502
|
+
}
|
|
12503
|
+
return;
|
|
12504
|
+
}
|
|
12505
|
+
const reason = error ?? "the capacity read returned no bytes and no reason";
|
|
12506
|
+
if (previous === reason) return;
|
|
12507
|
+
this.capacityFaults.set(location.id, reason);
|
|
12508
|
+
this.deps.logger.warn("recorder placement: capacity UNMEASURABLE — headroom is unknown, so this location is neither evacuated nor given new cameras", { meta: {
|
|
12509
|
+
locationId: location.id,
|
|
12510
|
+
root: location.root,
|
|
12511
|
+
error: reason
|
|
12512
|
+
} });
|
|
12513
|
+
}
|
|
12514
|
+
/**
|
|
12467
12515
|
* Volume-check the chosen location, failing the assignment over to a sibling
|
|
12468
12516
|
* when the bytes under its root are not the bytes we wrote. The probe runs
|
|
12469
12517
|
* ONCE per location per location-set generation — it is a claim, not a poll.
|
|
@@ -18298,10 +18346,10 @@ var RecorderV2Addon = class extends BaseAddon {
|
|
|
18298
18346
|
const [assignments, candidates] = await Promise.all([placement.currentAssignments(), placement.candidates()]);
|
|
18299
18347
|
return {
|
|
18300
18348
|
assignments,
|
|
18301
|
-
headroom: candidates.
|
|
18349
|
+
headroom: candidates.flatMap((candidate) => candidate.headroomBytes === null ? [] : [{
|
|
18302
18350
|
locationId: candidate.locationId,
|
|
18303
18351
|
headroomBytes: candidate.headroomBytes
|
|
18304
|
-
})
|
|
18352
|
+
}])
|
|
18305
18353
|
};
|
|
18306
18354
|
}
|
|
18307
18355
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as __toESM, t as __commonJSMin } from "./chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { It as errMsg } from "./dist-
|
|
2
|
+
import { It as errMsg } from "./dist-B5x2ogXC.mjs";
|
|
3
3
|
import { spawn } from "node:child_process";
|
|
4
4
|
//#region ../../node_modules/mp4box/dist/mp4box.all.js
|
|
5
5
|
var require_mp4box_all = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_dist = require("./dist-
|
|
1
|
+
const require_dist = require("./dist-Czm3CW8M.js");
|
|
2
2
|
let node_child_process = require("node:child_process");
|
|
3
3
|
//#region ../../node_modules/mp4box/dist/mp4box.all.js
|
|
4
4
|
var require_mp4box_all = /* @__PURE__ */ require_dist.__commonJSMin(((exports) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_worker_protocol = require("../worker-protocol
|
|
3
|
-
const require_lazy_sharp = require("../lazy-sharp-
|
|
2
|
+
const require_worker_protocol = require("../worker-protocol-B4C4seRh.js");
|
|
3
|
+
const require_lazy_sharp = require("../lazy-sharp-AhHg_Hb-.js");
|
|
4
4
|
//#region src/session-decode/color-conversion.ts
|
|
5
5
|
/**
|
|
6
6
|
* Explicit YUV→RGB colorspace/range resolution for the session-decode worker.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as formatNativeLeaseKnobs, n as isWorkerRequest, o as resolveNativeLeaseKnobs, r as logLevelForLine } from "../worker-protocol-
|
|
1
|
+
import { i as formatNativeLeaseKnobs, n as isWorkerRequest, o as resolveNativeLeaseKnobs, r as logLevelForLine } from "../worker-protocol-ClwpoGoP.mjs";
|
|
2
2
|
import { n as setSharpWarnSink, r as hostExternalEntryUrls, t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
3
3
|
//#region src/session-decode/color-conversion.ts
|
|
4
4
|
/**
|
|
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
|
|
|
3
3
|
var e = {
|
|
4
4
|
"@camstack/sdk": {
|
|
5
5
|
name: "@camstack/sdk",
|
|
6
|
-
version: "1.2.
|
|
6
|
+
version: "1.2.84",
|
|
7
7
|
scope: ["default"],
|
|
8
8
|
loaded: !1,
|
|
9
9
|
from: "addon_stream_broker_widgets",
|
|
@@ -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.164",
|
|
22
22
|
scope: ["default"],
|
|
23
23
|
loaded: !1,
|
|
24
24
|
from: "addon_stream_broker_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.132",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_stream_broker_widgets",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_segment_demux_js = require("../segment-demux-js-
|
|
1
|
+
const require_segment_demux_js = require("../segment-demux-js-CSt1T2Vi.js");
|
|
2
2
|
let node_worker_threads = require("node:worker_threads");
|
|
3
3
|
//#region src/stream-broker/recorded/demux-worker-child.ts
|
|
4
4
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as demuxSegmentFullJs } from "../segment-demux-js-
|
|
1
|
+
import { t as demuxSegmentFullJs } from "../segment-demux-js-BcbB_hcJ.mjs";
|
|
2
2
|
import { parentPort } from "node:worker_threads";
|
|
3
3
|
//#region src/stream-broker/recorded/demux-worker-child.ts
|
|
4
4
|
/**
|
|
@@ -36,7 +36,7 @@ async function r() {
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"@camstack/types": {
|
|
39
|
-
version: "1.2.
|
|
39
|
+
version: "1.2.164",
|
|
40
40
|
scope: "default",
|
|
41
41
|
shareConfig: {
|
|
42
42
|
singleton: !0,
|
|
@@ -45,7 +45,7 @@ async function r() {
|
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
"@camstack/sdk": {
|
|
48
|
-
version: "1.2.
|
|
48
|
+
version: "1.2.84",
|
|
49
49
|
scope: "default",
|
|
50
50
|
shareConfig: {
|
|
51
51
|
singleton: !0,
|
|
@@ -81,7 +81,7 @@ async function r() {
|
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
83
|
"@camstack/ui-library": {
|
|
84
|
-
version: "1.2.
|
|
84
|
+
version: "1.2.132",
|
|
85
85
|
scope: "default",
|
|
86
86
|
shareConfig: {
|
|
87
87
|
singleton: !0,
|
|
@@ -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-
|
|
5
|
+
const require_dist = require("../dist-Czm3CW8M.js");
|
|
6
|
+
const require_node = require("../node-u0M7kQe-.js");
|
|
7
7
|
const require_restream_intent = require("../restream-intent-B1Difcnq.js");
|
|
8
8
|
const require_remote_restream = require("../remote-restream-CO36Sr30.js");
|
|
9
9
|
const require_retire_root_keys = require("../retire-root-keys-Csb8z2f3.js");
|
|
10
|
-
const require_segment_demux_js = require("../segment-demux-js-
|
|
10
|
+
const require_segment_demux_js = require("../segment-demux-js-CSt1T2Vi.js");
|
|
11
11
|
let node_os = require("node:os");
|
|
12
12
|
node_os = require_dist.__toESM(node_os);
|
|
13
13
|
let node_crypto = require("node:crypto");
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { r as __toESM } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { A as addonWidgetsSourceCapability, Bt as invocationFromEncodeProfile, C as RATE_CONTROL_RELAXED, F as cameraStreamsCapability, Ft as webrtcSessionCapability, Gt as DeviceFeature, H as deriveBatteryPresence, Ht as BOOT_RECOVERY_BACKOFF_MS, I as createHwAccelCache, It as errMsg, K as egressTranscodeSharingKey, Kt as DeviceType, L as createLogChannelsProvider, Lt as AUDIO_PRESETS, Mt as streamBrokerCapability, O as RingBuffer, P as batteryCapability, Qt as nodePin, Tt as resolveEgressDecodeHwAccel, Ut as BaseAddon, Vt as isSoftwareDecode, Wt as CAM_PROFILE_ORDER, Xt as makeProfileBrokerId, Yt as isEvent, Zt as makeSourceBrokerId, an as boolean, at as logChannelsCapability, cn as literal, en as parseProfileBrokerId, fn as record, h as EncodeProfileSchema, hn as EventCategory, i as BatteryStatusSchema, in as array, it as loadContributionCapability, ln as number, mn as union, on as discriminatedUnion, pn as string, q as egressTransportFromRequest, qt as createEvent, rn as _enum, st as maskUrlCredentials, un as object, w as RATE_CONTROL_TIGHT, z as declareLogChannel, zt as buildFfmpegArgs$1 } from "../dist-
|
|
3
|
-
import { i as NO_COST_CLAIM, n as Fmp4FragmentChild, r as Fmp4FragmentPlane, t as ChildCostRegistry } from "../node-
|
|
2
|
+
import { A as addonWidgetsSourceCapability, Bt as invocationFromEncodeProfile, C as RATE_CONTROL_RELAXED, F as cameraStreamsCapability, Ft as webrtcSessionCapability, Gt as DeviceFeature, H as deriveBatteryPresence, Ht as BOOT_RECOVERY_BACKOFF_MS, I as createHwAccelCache, It as errMsg, K as egressTranscodeSharingKey, Kt as DeviceType, L as createLogChannelsProvider, Lt as AUDIO_PRESETS, Mt as streamBrokerCapability, O as RingBuffer, P as batteryCapability, Qt as nodePin, Tt as resolveEgressDecodeHwAccel, Ut as BaseAddon, Vt as isSoftwareDecode, Wt as CAM_PROFILE_ORDER, Xt as makeProfileBrokerId, Yt as isEvent, Zt as makeSourceBrokerId, an as boolean, at as logChannelsCapability, cn as literal, en as parseProfileBrokerId, fn as record, h as EncodeProfileSchema, hn as EventCategory, i as BatteryStatusSchema, in as array, it as loadContributionCapability, ln as number, mn as union, on as discriminatedUnion, pn as string, q as egressTransportFromRequest, qt as createEvent, rn as _enum, st as maskUrlCredentials, un as object, w as RATE_CONTROL_TIGHT, z as declareLogChannel, zt as buildFfmpegArgs$1 } from "../dist-B5x2ogXC.mjs";
|
|
3
|
+
import { i as NO_COST_CLAIM, n as Fmp4FragmentChild, r as Fmp4FragmentPlane, t as ChildCostRegistry } from "../node-Bx76sJbU.mjs";
|
|
4
4
|
import { c as PREBUFFER_MAX_MS, d as resolvePrebuffer, i as parseRestreamPath, l as capPreRollRequestMs, n as NO_DECLARATION, u as prebufferRetentionMs } from "../restream-intent-DWe2kInY.mjs";
|
|
5
5
|
import { n as profileForStreamId } from "../remote-restream-BeHi78PZ.mjs";
|
|
6
6
|
import { n as RowMapStore, t as retireRootKeys } from "../retire-root-keys-DZvlso2l.mjs";
|
|
7
|
-
import { i as require_mp4box_all, n as demuxSegmentPreferJs, r as runFfmpegOnce, t as demuxSegmentFullJs } from "../segment-demux-js-
|
|
7
|
+
import { i as require_mp4box_all, n as demuxSegmentPreferJs, r as runFfmpegOnce, t as demuxSegmentFullJs } from "../segment-demux-js-BcbB_hcJ.mjs";
|
|
8
8
|
import { createRequire } from "node:module";
|
|
9
9
|
import * as os from "node:os";
|
|
10
10
|
import { networkInterfaces, tmpdir } from "node:os";
|
|
@@ -30,7 +30,7 @@ async function d(e) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
async function f() {
|
|
33
|
-
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-
|
|
33
|
+
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BSWELhoJ.mjs")).catch((e) => {
|
|
34
34
|
throw l = void 0, e;
|
|
35
35
|
}), l;
|
|
36
36
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b as NativeLeaseSettingsSchema, p as DEFAULT_NATIVE_LEASE_SETTINGS, y as NativeLeaseAdmissionSchema } from "./dist-
|
|
1
|
+
import { b as NativeLeaseSettingsSchema, p as DEFAULT_NATIVE_LEASE_SETTINGS, y as NativeLeaseAdmissionSchema } from "./dist-B5x2ogXC.mjs";
|
|
2
2
|
//#region src/session-decode/native-lease-config.ts
|
|
3
3
|
/**
|
|
4
4
|
* Resolution of the native-frame hold / tile knobs for one decode worker.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-pipeline",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.204",
|
|
4
4
|
"description": "Pipeline bundle — runner, detection, motion, audio + stream broker. Multi-entry npm package shipping pipeline addons under a single bundle.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|