@camstack/addon-pipeline 1.2.341 → 1.2.343

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.
Files changed (35) hide show
  1. package/dist/audio-analyzer/index.js +5 -4
  2. package/dist/audio-analyzer/index.mjs +5 -4
  3. package/dist/{custom-model-catalog-CoJEC8nz.js → custom-model-catalog-CC8vgYZ8.js} +3 -3
  4. package/dist/{custom-model-catalog-DNSmyZTT.mjs → custom-model-catalog-m7EBV9wu.mjs} +3 -3
  5. package/dist/detection-pipeline/index.js +4 -118
  6. package/dist/detection-pipeline/index.mjs +4 -118
  7. package/dist/{dist-B8oPeJDI.mjs → dist-BAHBDujp.mjs} +257 -654
  8. package/dist/{dist-PiNPe8uQ.js → dist-BwipY6K1.js} +256 -659
  9. package/dist/{model-catalogs-RM3pkuZm.mjs → model-catalogs-CUU_L1ec.mjs} +1 -1
  10. package/dist/{model-catalogs-CEphd9Va.js → model-catalogs-Dotb1OFs.js} +1 -1
  11. package/dist/motion-wasm/index.js +1 -1
  12. package/dist/motion-wasm/index.mjs +1 -1
  13. package/dist/{node-CMTBIa3-.js → node-BHYEkNaS.js} +1 -1
  14. package/dist/{node-DFUmMJ_f.mjs → node-BPwelwyj.mjs} +1 -1
  15. package/dist/pipeline-runner/index.js +11 -13
  16. package/dist/pipeline-runner/index.mjs +11 -13
  17. package/dist/{process-memory-CzAfDP9P.js → process-memory-BRCKXa-P.js} +1 -1
  18. package/dist/{process-memory-C4v8DBKn.mjs → process-memory-_8o1iZnL.mjs} +1 -1
  19. package/dist/recorder/index.js +14 -16
  20. package/dist/recorder/index.mjs +14 -16
  21. package/dist/{segment-demux-js-CIpCdbx4.mjs → segment-demux-js-DK8jbZy6.mjs} +1 -1
  22. package/dist/{segment-demux-js-C-n_ZsMK.js → segment-demux-js-DveVPFl9.js} +1 -1
  23. package/dist/stream-broker/_stub.js +48 -130
  24. package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-CIDS0Tr9.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-CF-T-9YU.mjs} +3 -3
  25. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BUfCTcDV.mjs +26 -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-uAQqU5lv.mjs +26 -0
  27. package/dist/stream-broker/demux-worker-child.js +1 -1
  28. package/dist/stream-broker/demux-worker-child.mjs +1 -1
  29. package/dist/stream-broker/{hostInit-CW_cmeNQ.mjs → hostInit-C6jr8fSt.mjs} +3 -3
  30. package/dist/stream-broker/index.js +49 -1693
  31. package/dist/stream-broker/index.mjs +54 -1696
  32. package/dist/stream-broker/remoteEntry.js +1 -1
  33. package/package.json +1 -6
  34. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BvfT5BVP.mjs +0 -26
  35. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-LU_e-xJm.mjs +0 -26
@@ -1,4 +1,4 @@
1
- import { Et as hfModelUrl } from "./dist-B8oPeJDI.mjs";
1
+ import { Et as hfModelUrl } from "./dist-BAHBDujp.mjs";
2
2
  //#region src/detection-pipeline/registry/model-licenses.ts
3
3
  var COCO_DATA = {
4
4
  name: "COCO 2017",
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-PiNPe8uQ.js");
1
+ const require_dist = require("./dist-BwipY6K1.js");
2
2
  //#region src/detection-pipeline/registry/model-licenses.ts
3
3
  var COCO_DATA = {
4
4
  name: "COCO 2017",
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_dist = require("../dist-PiNPe8uQ.js");
5
+ const require_dist = require("../dist-BwipY6K1.js");
6
6
  const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
7
7
  let node_fs = require("node:fs");
8
8
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { En as DeviceType, Ln as hydrateSchema, Vt as motionDetectionCapability, _t as evaluateZoneRules, kn as BaseAddon } from "../dist-B8oPeJDI.mjs";
1
+ import { En as DeviceType, Ln as hydrateSchema, Vt as motionDetectionCapability, _t as evaluateZoneRules, kn as BaseAddon } from "../dist-BAHBDujp.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,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-emK7D4bc.js");
2
- const require_dist = require("./dist-PiNPe8uQ.js");
2
+ const require_dist = require("./dist-BwipY6K1.js");
3
3
  let node_crypto = require("node:crypto");
4
4
  let node_fs = require("node:fs");
5
5
  node_fs = require_chunk.__toESM(node_fs, 1);
@@ -1,4 +1,4 @@
1
- import { Dn as errMsg, bn as Fmp4BoxSplitter, wn as isSoftwareDecode, xn as buildFfmpegArgs } from "./dist-B8oPeJDI.mjs";
1
+ import { Dn as errMsg, bn as Fmp4BoxSplitter, wn as isSoftwareDecode, xn as buildFfmpegArgs } from "./dist-BAHBDujp.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { realpathSync } from "node:fs";
4
4
  import path from "node:path";
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../chunk-emK7D4bc.js");
6
- const require_dist = require("../dist-PiNPe8uQ.js");
7
- const require_node = require("../node-CMTBIa3-.js");
8
- const require_custom_model_catalog = require("../custom-model-catalog-CoJEC8nz.js");
6
+ const require_dist = require("../dist-BwipY6K1.js");
7
+ const require_node = require("../node-BHYEkNaS.js");
8
+ const require_custom_model_catalog = require("../custom-model-catalog-CC8vgYZ8.js");
9
9
  const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
10
10
  const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
11
11
  const require_restream_intent = require("../restream-intent-7uDNqMKs.js");
@@ -4116,8 +4116,7 @@ function summarizeDeviceLoad(attachedDeviceKeys) {
4116
4116
  return Array.from(counts.entries()).map(([deviceKey, attachedCameras]) => ({
4117
4117
  deviceKey,
4118
4118
  backend: backendOf(deviceKey),
4119
- attachedCameras,
4120
- queueDepthTotal: 0
4119
+ attachedCameras
4121
4120
  })).toSorted((a, b) => a.deviceKey.localeCompare(b.deviceKey));
4122
4121
  }
4123
4122
  //#endregion
@@ -7852,7 +7851,7 @@ function rgbFrameToGrayFrame(frame) {
7852
7851
  * - `sharedWithDetection` (onboard/sensor-triggered) AND detection actually
7853
7852
  * runs (`detectionMode !== 'disabled'`) → ride the detection decode:
7854
7853
  * `rgb` on the MAIN (`detectionStreamId`) stream, converted to gray. No
7855
- * second decoder — the `FrameHandlePlane` coalesces it onto detection's session.
7854
+ * second decoder — it rides detection's session-decode worker.
7856
7855
  * - Otherwise (persistent analyzer, or detection disabled) → a dedicated
7857
7856
  * `gray` decode on the SUB (`motionStreamId`) stream, exactly as before.
7858
7857
  *
@@ -11172,8 +11171,7 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends require_dist.BaseAdd
11172
11171
  * analyzer is the motion source (`motionSources` includes `'analyzer'`).
11173
11172
  * - **Shared with detection** (`opts.sharedWithDetection`) — subscribes
11174
11173
  * `rgb` on `detectionStreamId` (the MAIN stream) so it rides the SAME
11175
- * decoder session detection already uses (the `FrameHandlePlane` coalesces
11176
- * same-format subscribers on a stream into ONE decode), then derives the
11174
+ * session-decode worker detection already uses, then derives the
11177
11175
  * analyzer's `gray` from that rgb frame's luma. No second decoder. Used for
11178
11176
  * onboard/sensor-triggered motion, where a decode is already active.
11179
11177
  */
@@ -12146,14 +12144,14 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends require_dist.BaseAdd
12146
12144
  id: "pipeline-runner-tuning",
12147
12145
  title: "Pipeline Runner",
12148
12146
  tab: "scheduler",
12149
- description: "Per-node detection scheduler tuning. Change only if you understand the pipeline internals.",
12147
+ description: "Values every node's detection runner uses. A node's own decode limits (Roles & nodes) take precedence over the two decode values.",
12150
12148
  columns: 2,
12151
12149
  fields: [
12152
12150
  {
12153
12151
  type: "slider",
12154
12152
  key: "maxConcurrentInferences",
12155
12153
  label: "Scheduler concurrency",
12156
- description: "Max parallel inferences the runner scheduler allows across all cameras on this node. Distinct from the detection-pipeline inference-pool worker count (Pipeline tab → \"Worker concurrency\"), which controls Python-side thread pool sizing inside a single inference job.",
12154
+ description: "Most inferences a node runs at once, across all its cameras. Not the same as the pool threads on the node Scheduler tab.",
12157
12155
  min: 1,
12158
12156
  max: 16,
12159
12157
  step: 1,
@@ -12198,7 +12196,7 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends require_dist.BaseAdd
12198
12196
  type: "slider",
12199
12197
  key: "maxConcurrentDecodeSpawns",
12200
12198
  label: "Max concurrent decode-worker spawns",
12201
- description: "Min floor of per-session decode-worker forks allowed to spin up CONCURRENTLY on this node. A synchronized multi-camera motion burst forks at most this many decode workers at once; the rest queue (FIFO) until an in-flight worker delivers its first frame or tears down. Keeps a burst from stampeding the shared GPU. Set >= your camera count to effectively disable the gate. Only applies when per-session decode workers are enabled.",
12199
+ description: "How many camera decoders a node may START at the same moment; the rest wait their turn. Stops a burst of motion on many cameras from overloading the GPU.",
12202
12200
  min: 1,
12203
12201
  max: 16,
12204
12202
  step: 1,
@@ -12209,7 +12207,7 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends require_dist.BaseAdd
12209
12207
  type: "slider",
12210
12208
  key: "maxLiveDecodeWorkers",
12211
12209
  label: "Max live decode workers",
12212
- description: "Upper CLAMP on decode workers ALIVE at once on this node. The bound that normally decides is the RAM budget below — the ceiling in force is whichever of the two is smaller. Unlike the spawn gate above, which only limits how fast workers START, this limits how many EXIST. A camera that does not fit is REFUSED and logged, then retried automatically as soon as a slot frees — it is never queued, because a queued live session would decode a moment that has already passed.",
12210
+ description: "Most camera decoders running at once on a node (the RAM budget below usually decides first). A camera that does not fit is retried as soon as one frees up.",
12213
12211
  min: 1,
12214
12212
  max: 32,
12215
12213
  step: 1,
@@ -12220,7 +12218,7 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends require_dist.BaseAdd
12220
12218
  type: "slider",
12221
12219
  key: "nodeDecodeBudgetMb",
12222
12220
  label: "Decode worker RAM budget (MB)",
12223
- description: "Cluster-wide fallback for the RAM a node lets live decode workers commit. Each node resolves its own number: its agent setting (decodeBudgetMb) wins; otherwise this value when moved off the default; otherwise half the node's RAM (2-16 GB). The number of workers admitted is derived from it: budget divided by one worker's worst case — what the lease store can hold (the smaller of the lease budget and held frames × 25 MB, one 4K frame), plus the tile and scene budgets, plus ~350 MB of baseline, ~660 MB at the shipped knobs. Raising held frames or the lease budget per worker therefore LOWERS how many run at once, instead of silently authorising more memory.",
12221
+ description: "RAM a node lets its camera decoders use, unless the node sets its own (Roles & nodes). Left at the default, each node uses half its RAM (2–16 GB). Each decoder counts ~660 MB with the default full-resolution crop settings, so raising those lowers how many decoders run at once.",
12224
12222
  min: 1024,
12225
12223
  max: 32768,
12226
12224
  step: 512,
@@ -1,6 +1,6 @@
1
- import { $ as cameraOwnsMotionViaSensor, $n as object, A as NativeLeaseAdmissionSchema, At as linkedStepOf, Dn as errMsg, Fn as defineCustomActions, Gt as pickDetailCropConvention, Jn as boolean, Jt as pipelineRunnerCapability, Kn as _enum, Kt as pickNativeLeaseOverride, Nn as createEvent, Pn as customAction, Qn as number, T as FailureCounters, Vn as nodePin, Xn as lazy, Zn as literal, _ as DEFAULT_DETAIL_CROP_CONVENTION, a as BackgroundRunRegistry, cn as rootSuppliesOf, ft as deriveRootFaceRefineRect, in as resolveModelBoundSetting, ir as EventCategory, j as NativeLeaseSettingsSchema, jt as loadContributionCapability, kn as BaseAddon, m as CROP_SUPPLY_SOURCES, nr as string, q as allowedSuppliedEffect, qn as array, sn as resolveRootSupply, ut as deriveDetailCropRect, xt as failureContributionCapability, y as DEFAULT_NATIVE_LEASE_SETTINGS, z as ROOT_SUPPLIABLE_STEP_IDS } from "../dist-B8oPeJDI.mjs";
2
- import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-DFUmMJ_f.mjs";
3
- import { a as stepsForElectedPool, b as getStepDefinition, d as rootObjectGate, f as localFrameRegistry, h as resolveFrameViewGeometry, i as placeDetailStep, l as resolveDefaultDetectionModel, m as createSessionDecodeCoordinator, p as isSessionDecodeReadGone, s as resolveDeviceEngine, t as CustomModelCatalog, u as macroGateVerdict, y as getStep } from "../custom-model-catalog-DNSmyZTT.mjs";
1
+ import { $ as cameraOwnsMotionViaSensor, A as NativeLeaseAdmissionSchema, At as linkedStepOf, Dn as errMsg, Fn as defineCustomActions, Gn as _enum, Gt as pickDetailCropConvention, Jt as pipelineRunnerCapability, Kn as array, Kt as pickNativeLeaseOverride, Nn as createEvent, Pn as customAction, Qn as object, T as FailureCounters, Vn as nodePin, Xn as literal, Yn as lazy, Zn as number, _ as DEFAULT_DETAIL_CROP_CONVENTION, a as BackgroundRunRegistry, cn as rootSuppliesOf, ft as deriveRootFaceRefineRect, in as resolveModelBoundSetting, j as NativeLeaseSettingsSchema, jt as loadContributionCapability, kn as BaseAddon, m as CROP_SUPPLY_SOURCES, q as allowedSuppliedEffect, qn as boolean, rr as EventCategory, sn as resolveRootSupply, tr as string, ut as deriveDetailCropRect, xt as failureContributionCapability, y as DEFAULT_NATIVE_LEASE_SETTINGS, z as ROOT_SUPPLIABLE_STEP_IDS } from "../dist-BAHBDujp.mjs";
2
+ import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-BPwelwyj.mjs";
3
+ import { a as stepsForElectedPool, b as getStepDefinition, d as rootObjectGate, f as localFrameRegistry, h as resolveFrameViewGeometry, i as placeDetailStep, l as resolveDefaultDetectionModel, m as createSessionDecodeCoordinator, p as isSessionDecodeReadGone, s as resolveDeviceEngine, t as CustomModelCatalog, u as macroGateVerdict, y as getStep } from "../custom-model-catalog-m7EBV9wu.mjs";
4
4
  import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
5
5
  import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
6
6
  import { c as withDetectionIntent, o as preRollRequestOf, t as DETECTION_PRE_ROLL_REQUEST_MS } from "../restream-intent-DyGmLAU9.mjs";
@@ -4108,8 +4108,7 @@ function summarizeDeviceLoad(attachedDeviceKeys) {
4108
4108
  return Array.from(counts.entries()).map(([deviceKey, attachedCameras]) => ({
4109
4109
  deviceKey,
4110
4110
  backend: backendOf(deviceKey),
4111
- attachedCameras,
4112
- queueDepthTotal: 0
4111
+ attachedCameras
4113
4112
  })).toSorted((a, b) => a.deviceKey.localeCompare(b.deviceKey));
4114
4113
  }
4115
4114
  //#endregion
@@ -7844,7 +7843,7 @@ function rgbFrameToGrayFrame(frame) {
7844
7843
  * - `sharedWithDetection` (onboard/sensor-triggered) AND detection actually
7845
7844
  * runs (`detectionMode !== 'disabled'`) → ride the detection decode:
7846
7845
  * `rgb` on the MAIN (`detectionStreamId`) stream, converted to gray. No
7847
- * second decoder — the `FrameHandlePlane` coalesces it onto detection's session.
7846
+ * second decoder — it rides detection's session-decode worker.
7848
7847
  * - Otherwise (persistent analyzer, or detection disabled) → a dedicated
7849
7848
  * `gray` decode on the SUB (`motionStreamId`) stream, exactly as before.
7850
7849
  *
@@ -11164,8 +11163,7 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends BaseAddon {
11164
11163
  * analyzer is the motion source (`motionSources` includes `'analyzer'`).
11165
11164
  * - **Shared with detection** (`opts.sharedWithDetection`) — subscribes
11166
11165
  * `rgb` on `detectionStreamId` (the MAIN stream) so it rides the SAME
11167
- * decoder session detection already uses (the `FrameHandlePlane` coalesces
11168
- * same-format subscribers on a stream into ONE decode), then derives the
11166
+ * session-decode worker detection already uses, then derives the
11169
11167
  * analyzer's `gray` from that rgb frame's luma. No second decoder. Used for
11170
11168
  * onboard/sensor-triggered motion, where a decode is already active.
11171
11169
  */
@@ -12138,14 +12136,14 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends BaseAddon {
12138
12136
  id: "pipeline-runner-tuning",
12139
12137
  title: "Pipeline Runner",
12140
12138
  tab: "scheduler",
12141
- description: "Per-node detection scheduler tuning. Change only if you understand the pipeline internals.",
12139
+ description: "Values every node's detection runner uses. A node's own decode limits (Roles & nodes) take precedence over the two decode values.",
12142
12140
  columns: 2,
12143
12141
  fields: [
12144
12142
  {
12145
12143
  type: "slider",
12146
12144
  key: "maxConcurrentInferences",
12147
12145
  label: "Scheduler concurrency",
12148
- description: "Max parallel inferences the runner scheduler allows across all cameras on this node. Distinct from the detection-pipeline inference-pool worker count (Pipeline tab → \"Worker concurrency\"), which controls Python-side thread pool sizing inside a single inference job.",
12146
+ description: "Most inferences a node runs at once, across all its cameras. Not the same as the pool threads on the node Scheduler tab.",
12149
12147
  min: 1,
12150
12148
  max: 16,
12151
12149
  step: 1,
@@ -12190,7 +12188,7 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends BaseAddon {
12190
12188
  type: "slider",
12191
12189
  key: "maxConcurrentDecodeSpawns",
12192
12190
  label: "Max concurrent decode-worker spawns",
12193
- description: "Min floor of per-session decode-worker forks allowed to spin up CONCURRENTLY on this node. A synchronized multi-camera motion burst forks at most this many decode workers at once; the rest queue (FIFO) until an in-flight worker delivers its first frame or tears down. Keeps a burst from stampeding the shared GPU. Set >= your camera count to effectively disable the gate. Only applies when per-session decode workers are enabled.",
12191
+ description: "How many camera decoders a node may START at the same moment; the rest wait their turn. Stops a burst of motion on many cameras from overloading the GPU.",
12194
12192
  min: 1,
12195
12193
  max: 16,
12196
12194
  step: 1,
@@ -12201,7 +12199,7 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends BaseAddon {
12201
12199
  type: "slider",
12202
12200
  key: "maxLiveDecodeWorkers",
12203
12201
  label: "Max live decode workers",
12204
- description: "Upper CLAMP on decode workers ALIVE at once on this node. The bound that normally decides is the RAM budget below — the ceiling in force is whichever of the two is smaller. Unlike the spawn gate above, which only limits how fast workers START, this limits how many EXIST. A camera that does not fit is REFUSED and logged, then retried automatically as soon as a slot frees — it is never queued, because a queued live session would decode a moment that has already passed.",
12202
+ description: "Most camera decoders running at once on a node (the RAM budget below usually decides first). A camera that does not fit is retried as soon as one frees up.",
12205
12203
  min: 1,
12206
12204
  max: 32,
12207
12205
  step: 1,
@@ -12212,7 +12210,7 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends BaseAddon {
12212
12210
  type: "slider",
12213
12211
  key: "nodeDecodeBudgetMb",
12214
12212
  label: "Decode worker RAM budget (MB)",
12215
- description: "Cluster-wide fallback for the RAM a node lets live decode workers commit. Each node resolves its own number: its agent setting (decodeBudgetMb) wins; otherwise this value when moved off the default; otherwise half the node's RAM (2-16 GB). The number of workers admitted is derived from it: budget divided by one worker's worst case — what the lease store can hold (the smaller of the lease budget and held frames × 25 MB, one 4K frame), plus the tile and scene budgets, plus ~350 MB of baseline, ~660 MB at the shipped knobs. Raising held frames or the lease budget per worker therefore LOWERS how many run at once, instead of silently authorising more memory.",
12213
+ description: "RAM a node lets its camera decoders use, unless the node sets its own (Roles & nodes). Left at the default, each node uses half its RAM (2–16 GB). Each decoder counts ~660 MB with the default full-resolution crop settings, so raising those lowers how many decoders run at once.",
12216
12214
  min: 1024,
12217
12215
  max: 32768,
12218
12216
  step: 512,
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-emK7D4bc.js");
2
- const require_dist = require("./dist-PiNPe8uQ.js");
2
+ const require_dist = require("./dist-BwipY6K1.js");
3
3
  let node_fs = require("node:fs");
4
4
  node_fs = require_chunk.__toESM(node_fs);
5
5
  let node_child_process = require("node:child_process");
@@ -1,4 +1,4 @@
1
- import { Ut as parseProcStatus } from "./dist-B8oPeJDI.mjs";
1
+ import { Ut as parseProcStatus } from "./dist-BAHBDujp.mjs";
2
2
  import * as fs from "node:fs";
3
3
  import { execFile } from "node:child_process";
4
4
  //#region src/shared/node-topology-platform.ts
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../chunk-emK7D4bc.js");
6
- const require_dist = require("../dist-PiNPe8uQ.js");
7
- const require_node = require("../node-CMTBIa3-.js");
6
+ const require_dist = require("../dist-BwipY6K1.js");
7
+ const require_node = require("../node-BHYEkNaS.js");
8
8
  const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
9
9
  const require_restream_intent = require("../restream-intent-7uDNqMKs.js");
10
10
  const require_retire_root_keys = require("../retire-root-keys-Csb8z2f3.js");
@@ -5927,16 +5927,6 @@ Object.freeze({
5927
5927
  "pullPcm": { "maxCount": 8 }
5928
5928
  },
5929
5929
  "battery": { "wakeForStream": { "timeoutMs": 8e3 } },
5930
- "decoder": {
5931
- "createSession": {
5932
- "maxFps": 0,
5933
- "outputFormat": "jpeg",
5934
- "scale": 1,
5935
- "frameSink": "callback"
5936
- },
5937
- "pullFrames": { "maxCount": 1 },
5938
- "pullHandles": { "maxCount": 1 }
5939
- },
5940
5930
  "device-adoption": { "listCandidates": {
5941
5931
  "page": 1,
5942
5932
  "pageSize": 50
@@ -6048,14 +6038,23 @@ Object.freeze({
6048
6038
  "searchObjectEvents": { "limit": 50 }
6049
6039
  },
6050
6040
  "pipeline-orchestrator": {
6051
- "applyAutoTune": { "headroom": .4 },
6041
+ "applyAutoTune": {
6042
+ "headroom": .4,
6043
+ "minSessionsPerDevice": 2
6044
+ },
6052
6045
  "getPlacementStats": { "windowMs": 36e5 },
6053
- "planAutoTune": { "headroom": .4 },
6046
+ "planAutoTune": {
6047
+ "headroom": .4,
6048
+ "minSessionsPerDevice": 2
6049
+ },
6054
6050
  "setLoadBalancingShares": {
6055
6051
  "nodes": {},
6056
6052
  "devices": {}
6057
6053
  },
6058
- "suggestShares": { "headroom": .4 }
6054
+ "suggestShares": {
6055
+ "headroom": .4,
6056
+ "source": "hardware"
6057
+ }
6059
6058
  },
6060
6059
  "pipeline-runner": {
6061
6060
  "attachCamera": {
@@ -6115,7 +6114,6 @@ Object.freeze({
6115
6114
  "speed": 4
6116
6115
  },
6117
6116
  "pullAudioChunks": { "maxCount": 8 },
6118
- "pullFrameHandles": { "maxCount": 4 },
6119
6117
  "renderPreBufferClip": {
6120
6118
  "preRollSec": 3,
6121
6119
  "postRollSec": 5,
@@ -1,5 +1,5 @@
1
- import { $n as object, $t as recordingSignalCapability, B as RecordingConfigSchema, Ct as gbToBytes, Dn as errMsg$1, En as DeviceType, Fn as defineCustomActions, Ft as mayReadLocation, Gn as sleep$1, I as RECORDING_EXPORT_MAX_READ_BYTES, It as mayWriteToLocation, Jn as boolean, Kn as _enum, L as RECORDING_SOURCE_CAMSTACK, Ln as hydrateSchema, Lt as memoizePinnedFfmpeg, M as OpsLogEntrySchema, Ot as isFirstLevelMacroClass, Pn as customAction, Q as batteryCapability, Qn as number, Qt as recordingExportCapability, R as RECORDING_SOURCE_CAMSTACK_ADDON, Rt as migrateLegacyDeviceSignalConfig, S as EVENT_PAD_MS, Sn as evaluateSensorEdge, Tn as DeviceFeature, U as VIDEOCLIPS_MAX_OFFER_BYTES, V as RecordingSignalStatusSchema, Vn as nodePin, W as VISIT_MERGE_GAP_MS, Wn as selectAssignedProfileSlots, Xt as recordingArchiveCapability, Zt as recordingCapability, bt as exportSubjectOf, dn as storageEvictableCapability, dt as deriveRecordingMode, er as preprocess, fn as storageOccupancyCapability, gn as videoclipsCapability, ir as EventCategory, jt as loadContributionCapability, kn as BaseAddon, lt as deriveBatteryPresence, mn as stripRetiredBandPreBufferSec, nr as string, nt as clipExportFailureOf, o as BatteryStatusSchema, on as resolveRecordingProfiles, qn as array, rn as resolveLocationMode, s as CLIP_BROKER_PACED_RATES, tn as resolveCreateExportSubject, tr as record, tt as clipExportFailure, v as DEFAULT_EVENTS_BAND_BUFFER_SEC, vt as evictionPolicyForMode, w as ExportRecordSchema, x as EVENT_OWNER_TYPES, yt as evictionPolicyOfLocation, zt as modeMayWrite } from "../dist-B8oPeJDI.mjs";
2
- import { a as physicalRootOf, i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-DFUmMJ_f.mjs";
1
+ import { $n as preprocess, $t as recordingSignalCapability, B as RecordingConfigSchema, Ct as gbToBytes, Dn as errMsg$1, En as DeviceType, Fn as defineCustomActions, Ft as mayReadLocation, Gn as _enum, I as RECORDING_EXPORT_MAX_READ_BYTES, It as mayWriteToLocation, Kn as array, L as RECORDING_SOURCE_CAMSTACK, Ln as hydrateSchema, Lt as memoizePinnedFfmpeg, M as OpsLogEntrySchema, Ot as isFirstLevelMacroClass, Pn as customAction, Q as batteryCapability, Qn as object, Qt as recordingExportCapability, R as RECORDING_SOURCE_CAMSTACK_ADDON, Rt as migrateLegacyDeviceSignalConfig, S as EVENT_PAD_MS, Sn as evaluateSensorEdge, Tn as DeviceFeature, U as VIDEOCLIPS_MAX_OFFER_BYTES, Un as selectAssignedProfileSlots, V as RecordingSignalStatusSchema, Vn as nodePin, W as VISIT_MERGE_GAP_MS, Wn as sleep$1, Xt as recordingArchiveCapability, Zn as number, Zt as recordingCapability, bt as exportSubjectOf, dn as storageEvictableCapability, dt as deriveRecordingMode, er as record, fn as storageOccupancyCapability, gn as videoclipsCapability, jt as loadContributionCapability, kn as BaseAddon, lt as deriveBatteryPresence, mn as stripRetiredBandPreBufferSec, nt as clipExportFailureOf, o as BatteryStatusSchema, on as resolveRecordingProfiles, qn as boolean, rn as resolveLocationMode, rr as EventCategory, s as CLIP_BROKER_PACED_RATES, tn as resolveCreateExportSubject, tr as string, tt as clipExportFailure, v as DEFAULT_EVENTS_BAND_BUFFER_SEC, vt as evictionPolicyForMode, w as ExportRecordSchema, x as EVENT_OWNER_TYPES, yt as evictionPolicyOfLocation, zt as modeMayWrite } from "../dist-BAHBDujp.mjs";
2
+ import { a as physicalRootOf, i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-BPwelwyj.mjs";
3
3
  import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
4
4
  import { d as PREBUFFER_MAX_MS, l as withRecordingIntent, r as RECORDING_PRE_ROLL_REQUEST_MS } from "../restream-intent-DyGmLAU9.mjs";
5
5
  import { n as RowMapStore, t as retireRootKeys } from "../retire-root-keys-DZvlso2l.mjs";
@@ -5919,16 +5919,6 @@ Object.freeze({
5919
5919
  "pullPcm": { "maxCount": 8 }
5920
5920
  },
5921
5921
  "battery": { "wakeForStream": { "timeoutMs": 8e3 } },
5922
- "decoder": {
5923
- "createSession": {
5924
- "maxFps": 0,
5925
- "outputFormat": "jpeg",
5926
- "scale": 1,
5927
- "frameSink": "callback"
5928
- },
5929
- "pullFrames": { "maxCount": 1 },
5930
- "pullHandles": { "maxCount": 1 }
5931
- },
5932
5922
  "device-adoption": { "listCandidates": {
5933
5923
  "page": 1,
5934
5924
  "pageSize": 50
@@ -6040,14 +6030,23 @@ Object.freeze({
6040
6030
  "searchObjectEvents": { "limit": 50 }
6041
6031
  },
6042
6032
  "pipeline-orchestrator": {
6043
- "applyAutoTune": { "headroom": .4 },
6033
+ "applyAutoTune": {
6034
+ "headroom": .4,
6035
+ "minSessionsPerDevice": 2
6036
+ },
6044
6037
  "getPlacementStats": { "windowMs": 36e5 },
6045
- "planAutoTune": { "headroom": .4 },
6038
+ "planAutoTune": {
6039
+ "headroom": .4,
6040
+ "minSessionsPerDevice": 2
6041
+ },
6046
6042
  "setLoadBalancingShares": {
6047
6043
  "nodes": {},
6048
6044
  "devices": {}
6049
6045
  },
6050
- "suggestShares": { "headroom": .4 }
6046
+ "suggestShares": {
6047
+ "headroom": .4,
6048
+ "source": "hardware"
6049
+ }
6051
6050
  },
6052
6051
  "pipeline-runner": {
6053
6052
  "attachCamera": {
@@ -6107,7 +6106,6 @@ Object.freeze({
6107
6106
  "speed": 4
6108
6107
  },
6109
6108
  "pullAudioChunks": { "maxCount": 8 },
6110
- "pullFrameHandles": { "maxCount": 4 },
6111
6109
  "renderPreBufferClip": {
6112
6110
  "preRollSec": 3,
6113
6111
  "postRollSec": 5,
@@ -1,5 +1,5 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "./chunk-DnnnRqeS.mjs";
2
- import { Dn as errMsg } from "./dist-B8oPeJDI.mjs";
2
+ import { Dn as errMsg } from "./dist-BAHBDujp.mjs";
3
3
  import { spawn } from "node:child_process";
4
4
  //#region src/stream-broker/recorded/avcc-annexb.ts
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-emK7D4bc.js");
2
- const require_dist = require("./dist-PiNPe8uQ.js");
2
+ const require_dist = require("./dist-BwipY6K1.js");
3
3
  let node_child_process = require("node:child_process");
4
4
  //#region src/stream-broker/recorded/avcc-annexb.ts
5
5
  /**