@camstack/addon-pipeline 1.2.89 → 1.2.93
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/{addon-utils-yc-chXuC.js → addon-utils-CTRpEiSd.js} +1 -1
- package/dist/audio-analyzer/index.js +2 -2
- package/dist/audio-analyzer/index.mjs +1 -1
- package/dist/detection-pipeline/index.js +4 -4
- package/dist/detection-pipeline/index.mjs +2 -2
- package/dist/{dist-BJYwWEZ9.mjs → dist-6POVIYmC.mjs} +91 -4
- package/dist/{dist-n4Nbnxx5.js → dist-D9To_r_d.js} +96 -3
- package/dist/{event-loop-stall-monitor-BiPffk0D.mjs → event-loop-stall-monitor-C-VvWOxS.mjs} +1 -1
- package/dist/{event-loop-stall-monitor-DG7QY00k.js → event-loop-stall-monitor-CGacbzXq.js} +1 -1
- package/dist/{lazy-sharp-EoSOHgoj.js → lazy-sharp-C3zOnmiU.js} +1 -1
- package/dist/motion-wasm/index.js +2 -2
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/pipeline-runner/index.js +4 -4
- package/dist/pipeline-runner/index.mjs +3 -3
- package/dist/recorder/index.js +680 -37
- package/dist/recorder/index.mjs +679 -36
- 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-CsrMZYLB.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-C2woB6bY.mjs} +2 -2
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Dut56EeQ.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-DgivrPsH.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DsIi4G5Q.mjs} +1 -1
- package/dist/stream-broker/{hostInit-DoFovQmc.mjs → hostInit-VCURcZLt.mjs} +2 -2
- package/dist/stream-broker/index.js +194 -30
- package/dist/stream-broker/index.mjs +194 -30
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/dist/{worker-protocol-DjuxhGo3.js → worker-protocol-Bq28qobd.js} +1 -1
- package/dist/{worker-protocol-XZ1e36rM.mjs → worker-protocol-PzAKg8mC.mjs} +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-DNSELPGi.mjs +0 -26
|
@@ -2,9 +2,9 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-D9To_r_d.js");
|
|
6
6
|
const require_node_topology_platform = require("../node-topology-platform-CFZ7F4xW.js");
|
|
7
|
-
const require_addon_utils = require("../addon-utils-
|
|
7
|
+
const require_addon_utils = require("../addon-utils-CTRpEiSd.js");
|
|
8
8
|
let node_path = require("node:path");
|
|
9
9
|
node_path = require_dist.__toESM(node_path);
|
|
10
10
|
let node_fs = require("node:fs");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { D as audioAnalyzerCapability, E as audioAnalysisCapability, U as mapAudioLabelToMacro,
|
|
2
|
+
import { D as audioAnalyzerCapability, E as audioAnalysisCapability, U as mapAudioLabelToMacro, at as errMsg, dt as BaseAddon, gt as hydrateSchema, h as HF_BASE_URL, n as AUDIO_BACKEND_CHOICES, s as DEFAULT_AUDIO_ANALYZER_CONFIG } from "../dist-6POVIYmC.mjs";
|
|
3
3
|
import { t as pickNodePlatformArch } from "../node-topology-platform-BkR_k6WT.mjs";
|
|
4
4
|
import { i as downloadFile } from "../addon-utils-A2S9D7pu.mjs";
|
|
5
5
|
import * as path$1 from "node:path";
|
|
@@ -2,11 +2,11 @@ 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_event_loop_stall_monitor = require("../event-loop-stall-monitor-
|
|
7
|
-
const require_lazy_sharp = require("../lazy-sharp-
|
|
5
|
+
const require_dist = require("../dist-D9To_r_d.js");
|
|
6
|
+
const require_event_loop_stall_monitor = require("../event-loop-stall-monitor-CGacbzXq.js");
|
|
7
|
+
const require_lazy_sharp = require("../lazy-sharp-C3zOnmiU.js");
|
|
8
8
|
const require_node_topology_platform = require("../node-topology-platform-CFZ7F4xW.js");
|
|
9
|
-
const require_addon_utils = require("../addon-utils-
|
|
9
|
+
const require_addon_utils = require("../addon-utils-CTRpEiSd.js");
|
|
10
10
|
let sharp = require("sharp");
|
|
11
11
|
sharp = require_dist.__toESM(sharp);
|
|
12
12
|
let node_child_process = require("node:child_process");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import { a as getDefaultModelForFormat, c as getStepDefinition, i as ALL_STEPS, l as resolveModelForFormat, n as startEventLoopStallMonitor, o as getDefaultModelForFormatFromDef, r as ALL_PIPELINE_STEPS, s as getStep } from "../event-loop-stall-monitor-
|
|
2
|
+
import { B as enumerateInferenceDevices, Et as array, Ft as union, It as EventCategory, J as pipelineExecutorCapability, L as detectionPipelineCapability, M as defaultDeviceFor$1, Mt as object, Pt as string, V as evaluateZoneRules, at as errMsg, bt as nodePin, d as DEVICE_BACKEND_TO_FORMAT, dt as BaseAddon, et as runtimeDevices$1, gt as hydrateSchema, ht as createEvent, rt as supportedRuntimes$1, t as APPLE_SA_TO_MACRO, w as YAMNET_TO_MACRO, wt as sleep, xt as parseJsonUnknown } from "../dist-6POVIYmC.mjs";
|
|
3
|
+
import { a as getDefaultModelForFormat, c as getStepDefinition, i as ALL_STEPS, l as resolveModelForFormat, n as startEventLoopStallMonitor, o as getDefaultModelForFormatFromDef, r as ALL_PIPELINE_STEPS, s as getStep } from "../event-loop-stall-monitor-C-VvWOxS.mjs";
|
|
4
4
|
import { t as getSharp } from "../lazy-sharp-6oymT_yf.mjs";
|
|
5
5
|
import { t as pickNodePlatformArch } from "../node-topology-platform-BkR_k6WT.mjs";
|
|
6
6
|
import { a as ensureModel, o as isModelDownloaded, r as deleteModelFromDisk } from "../addon-utils-A2S9D7pu.mjs";
|
|
@@ -8585,6 +8585,12 @@ var RecordingConfigSchema = object({
|
|
|
8585
8585
|
/** DERIVED summary of `bands`, stamped by the recorder on every save.
|
|
8586
8586
|
* Authoring it has no effect — see {@link RecordingStorageModeSchema}. */
|
|
8587
8587
|
mode: RecordingStorageModeSchema.optional(),
|
|
8588
|
+
/**
|
|
8589
|
+
* Which assigned broker slots to record. Absent / empty = {@link
|
|
8590
|
+
* DEFAULT_RECORDING_PROFILES} (`high`+`low`) intersected with the
|
|
8591
|
+
* camera's currently assigned slots — never `mid` unless the operator
|
|
8592
|
+
* picks it, and never a slot the broker has not assigned.
|
|
8593
|
+
*/
|
|
8588
8594
|
profiles: array(CamProfileSchema).optional(),
|
|
8589
8595
|
segmentSeconds: number().int().positive().optional(),
|
|
8590
8596
|
/**
|
|
@@ -8609,7 +8615,7 @@ var RecordingConfigSchema = object({
|
|
|
8609
8615
|
*
|
|
8610
8616
|
* THE one definition: the recorder stamps `config.mode` with it on save and
|
|
8611
8617
|
* reports it as the cap's `activeMode`, and the settings UI reads it back to
|
|
8612
|
-
*
|
|
8618
|
+
* highlight the Off/Events/Continuous shortcut. Two copies would drift, and the
|
|
8613
8619
|
* symptom (a status dot disagreeing with what is being recorded) is exactly the
|
|
8614
8620
|
* bug this field was added to fix.
|
|
8615
8621
|
*/
|
|
@@ -8619,6 +8625,30 @@ function deriveRecordingMode(config) {
|
|
|
8619
8625
|
return "events";
|
|
8620
8626
|
}
|
|
8621
8627
|
/**
|
|
8628
|
+
* Default recorded slots when a config omits `profiles`: high + low.
|
|
8629
|
+
* `mid` is opt-in — it is usually a second native encode the operator
|
|
8630
|
+
* did not ask to store twice.
|
|
8631
|
+
*/
|
|
8632
|
+
var DEFAULT_RECORDING_PROFILES = ["high", "low"];
|
|
8633
|
+
/**
|
|
8634
|
+
* Pick which assigned broker slots to record. `assigned` is already the
|
|
8635
|
+
* broker's assigned∩deduped set (see `selectAssignedProfileSlots`).
|
|
8636
|
+
*
|
|
8637
|
+
* An operator `override` DISABLES unselected assigned slots (assigned ∩
|
|
8638
|
+
* selection). A selection matching none of the assigned sources, or an
|
|
8639
|
+
* absent/empty override, falls through: prefer {@link DEFAULT_RECORDING_PROFILES}
|
|
8640
|
+
* among assigned, else every assigned slot (a camera with only `mid`
|
|
8641
|
+
* still records something). Empty assigned → empty result.
|
|
8642
|
+
*/
|
|
8643
|
+
function resolveRecordingProfiles(assigned, override) {
|
|
8644
|
+
if (override !== void 0 && override.length > 0) {
|
|
8645
|
+
const selected = assigned.filter((profile) => override.includes(profile));
|
|
8646
|
+
return selected.length > 0 ? selected : [...assigned];
|
|
8647
|
+
}
|
|
8648
|
+
const preferred = assigned.filter((profile) => DEFAULT_RECORDING_PROFILES.includes(profile));
|
|
8649
|
+
return preferred.length > 0 ? preferred : [...assigned];
|
|
8650
|
+
}
|
|
8651
|
+
/**
|
|
8622
8652
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
8623
8653
|
*
|
|
8624
8654
|
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
@@ -8681,7 +8711,11 @@ var RelocateFootageInputSchema = object({
|
|
|
8681
8711
|
profiles: array(string()).optional(),
|
|
8682
8712
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
8683
8713
|
* never allowed to starve live writers. */
|
|
8684
|
-
throttleMbps: number().min(1).max(1e3).optional()
|
|
8714
|
+
throttleMbps: number().min(1).max(1e3).optional(),
|
|
8715
|
+
/** Move only segments whose startMs is >= this. Absent = the whole source
|
|
8716
|
+
* pile. Used when a full drain is too expensive and the operator only
|
|
8717
|
+
* wants the recent window on the new disk. */
|
|
8718
|
+
sinceMs: number().int().optional()
|
|
8685
8719
|
});
|
|
8686
8720
|
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
8687
8721
|
* from persistent recording settings: a migration never changes
|
|
@@ -18610,6 +18644,12 @@ var TrackCascadeCountsSchema = object({
|
|
|
18610
18644
|
/** Per-track CLIP search vectors removed (best-effort). */
|
|
18611
18645
|
embeddings: number().int()
|
|
18612
18646
|
});
|
|
18647
|
+
/** Disk-wins reconcile: media rows whose blobs are gone, then empty tracks. */
|
|
18648
|
+
var DiskReconcileCountsSchema = object({
|
|
18649
|
+
mediaDropped: number().int(),
|
|
18650
|
+
tracks: number().int(),
|
|
18651
|
+
events: number().int()
|
|
18652
|
+
});
|
|
18613
18653
|
/** Event-store footprint for one camera. */
|
|
18614
18654
|
var EventStoreDeviceFootprintSchema = object({
|
|
18615
18655
|
deviceId: number(),
|
|
@@ -18786,6 +18826,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
18786
18826
|
}), method(object({ deviceId: number() }), TrackCascadeCountsSchema, {
|
|
18787
18827
|
kind: "mutation",
|
|
18788
18828
|
auth: "admin"
|
|
18829
|
+
}), method(object({ deviceId: number() }), DiskReconcileCountsSchema, {
|
|
18830
|
+
kind: "mutation",
|
|
18831
|
+
auth: "admin"
|
|
18789
18832
|
}), method(object({
|
|
18790
18833
|
deviceId: number(),
|
|
18791
18834
|
trackIds: array(string()).min(1)
|
|
@@ -20590,6 +20633,24 @@ var CameraStatusDegradationSchema = object({
|
|
|
20590
20633
|
*
|
|
20591
20634
|
* See spec: `docs/superpowers/specs/2026-06-24-camera-status-aggregator-cap.md`
|
|
20592
20635
|
*/
|
|
20636
|
+
var DiskReconcileJobSchema = object({
|
|
20637
|
+
state: _enum([
|
|
20638
|
+
"idle",
|
|
20639
|
+
"running",
|
|
20640
|
+
"done",
|
|
20641
|
+
"error"
|
|
20642
|
+
]),
|
|
20643
|
+
total: number().int().nonnegative(),
|
|
20644
|
+
completed: number().int().nonnegative(),
|
|
20645
|
+
currentDeviceId: number().int().nullable(),
|
|
20646
|
+
failed: array(number().int()).readonly(),
|
|
20647
|
+
mediaDropped: number().int().nonnegative(),
|
|
20648
|
+
tracks: number().int().nonnegative(),
|
|
20649
|
+
events: number().int().nonnegative(),
|
|
20650
|
+
startedAtMs: number().int().nullable(),
|
|
20651
|
+
finishedAtMs: number().int().nullable(),
|
|
20652
|
+
error: string().nullable()
|
|
20653
|
+
});
|
|
20593
20654
|
var CameraStatusSchema = object({
|
|
20594
20655
|
deviceId: number(),
|
|
20595
20656
|
assignment: CameraAssignmentStatusSchema,
|
|
@@ -20821,7 +20882,10 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
|
20821
20882
|
}), CameraSwitchGroupSchema, {
|
|
20822
20883
|
kind: "mutation",
|
|
20823
20884
|
auth: "admin"
|
|
20824
|
-
}), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(),
|
|
20885
|
+
}), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(), DiskReconcileJobSchema, {
|
|
20886
|
+
kind: "mutation",
|
|
20887
|
+
auth: "admin"
|
|
20888
|
+
}), method(_void(), DiskReconcileJobSchema, { auth: "admin" }), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
20825
20889
|
name: string(),
|
|
20826
20890
|
description: string().optional(),
|
|
20827
20891
|
config: CameraPipelineConfigSchema
|
|
@@ -31549,6 +31613,12 @@ Object.freeze({
|
|
|
31549
31613
|
addonId: null,
|
|
31550
31614
|
access: "create"
|
|
31551
31615
|
},
|
|
31616
|
+
"pipelineAnalytics.reconcileFromDisk": {
|
|
31617
|
+
capName: "pipeline-analytics",
|
|
31618
|
+
capScope: "device",
|
|
31619
|
+
addonId: null,
|
|
31620
|
+
access: "create"
|
|
31621
|
+
},
|
|
31552
31622
|
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
31553
31623
|
capName: "pipeline-analytics",
|
|
31554
31624
|
capScope: "device",
|
|
@@ -31951,6 +32021,12 @@ Object.freeze({
|
|
|
31951
32021
|
addonId: null,
|
|
31952
32022
|
access: "view"
|
|
31953
32023
|
},
|
|
32024
|
+
"pipelineOrchestrator.getReconcileFromDiskStatus": {
|
|
32025
|
+
capName: "pipeline-orchestrator",
|
|
32026
|
+
capScope: "system",
|
|
32027
|
+
addonId: null,
|
|
32028
|
+
access: "view"
|
|
32029
|
+
},
|
|
31954
32030
|
"pipelineOrchestrator.listAgentSettings": {
|
|
31955
32031
|
capName: "pipeline-orchestrator",
|
|
31956
32032
|
capScope: "system",
|
|
@@ -31975,6 +32051,12 @@ Object.freeze({
|
|
|
31975
32051
|
addonId: null,
|
|
31976
32052
|
access: "create"
|
|
31977
32053
|
},
|
|
32054
|
+
"pipelineOrchestrator.reconcileFromDisk": {
|
|
32055
|
+
capName: "pipeline-orchestrator",
|
|
32056
|
+
capScope: "system",
|
|
32057
|
+
addonId: null,
|
|
32058
|
+
access: "create"
|
|
32059
|
+
},
|
|
31978
32060
|
"pipelineOrchestrator.removeAgentSettings": {
|
|
31979
32061
|
capName: "pipeline-orchestrator",
|
|
31980
32062
|
capScope: "system",
|
|
@@ -34966,6 +35048,11 @@ Object.freeze({
|
|
|
34966
35048
|
form: "single",
|
|
34967
35049
|
optional: true
|
|
34968
35050
|
}],
|
|
35051
|
+
"pipelineAnalytics.reconcileFromDisk": [{
|
|
35052
|
+
name: "deviceId",
|
|
35053
|
+
form: "single",
|
|
35054
|
+
optional: false
|
|
35055
|
+
}],
|
|
34969
35056
|
"pipelineAnalytics.restageRetrainTrack": [{
|
|
34970
35057
|
name: "deviceId",
|
|
34971
35058
|
form: "single",
|
|
@@ -36651,4 +36738,4 @@ function enumerateInferenceDevices(hw) {
|
|
|
36651
36738
|
return out;
|
|
36652
36739
|
}
|
|
36653
36740
|
//#endregion
|
|
36654
|
-
export {
|
|
36741
|
+
export { resolveRecordingProfiles as $, createHwAccelCache as A, literal as At, enumerateInferenceDevices as B, RingBuffer as C, selectAssignedProfileSlots as Ct, audioAnalyzerCapability as D, boolean as Dt, audioAnalysisCapability as E, array as Et, deriveDetailCropRect as F, union as Ft, motionDetectionCapability as G, hfModelUrl as H, deriveRecordingMode as I, EventCategory as It, pipelineExecutorCapability as J, pickDetailCropConvention as K, detectionPipelineCapability as L, defaultDeviceFor as M, object as Mt, defineCustomActions as N, record as Nt, batteryCapability as O, discriminatedUnion as Ot, deriveBatteryPresence as P, string as Pt, resolveEgressDecodeHwAccel as Q, egressTranscodeSharingKey as R, RecordingConfigSchema as S, parseProfileBrokerId as St, addonWidgetsSourceCapability as T, _enum as Tt, mapAudioLabelToMacro as U, evaluateZoneRules as V, maskUrlCredentials as W, recordingCapability as X, pipelineRunnerCapability as Y, recordingExportCapability as Z, NativeLeaseSettingsSchema as _, isEvent as _t, COCO_80_LABELS as a, errMsg as at, RATE_CONTROL_TIGHT as b, nodePin as bt, DEFAULT_DETAIL_CROP_CONVENTION as c, buildFfmpegArgs as ct, DEVICE_BACKEND_TO_FORMAT as d, BaseAddon as dt, runtimeDevices as et, EVENT_PAD_MS as f, CAM_PROFILE_ORDER as ft, NativeLeaseAdmissionSchema as g, hydrateSchema as gt, HF_BASE_URL as h, createEvent as ht, BatteryStatusSchema as i, webrtcSessionCapability as it, customAction as j, number as jt, cameraStreamsCapability as k, lazy as kt, DEFAULT_EVENTS_BAND_BUFFER_SEC as l, invocationFromEncodeProfile as lt, ExportRecordSchema as m, DeviceType as mt, AUDIO_BACKEND_CHOICES as n, streamBrokerCapability as nt, COCO_TO_MACRO as o, AUDIO_PRESETS as ot, EncodeProfileSchema as p, DeviceFeature as pt, pickNativeLeaseOverride as q, AUDIO_MACRO_LABELS as r, supportedRuntimes as rt, DEFAULT_AUDIO_ANALYZER_CONFIG as s, Fmp4BoxSplitter as st, APPLE_SA_TO_MACRO as t, storageEvictableCapability as tt, DEFAULT_NATIVE_LEASE_SETTINGS as u, isSoftwareDecode as ut, OpsLogEntrySchema as v, makeProfileBrokerId as vt, YAMNET_TO_MACRO as w, sleep as wt, RECORDING_EXPORT_MAX_READ_BYTES as x, parseJsonUnknown as xt, RATE_CONTROL_RELAXED as y, makeSourceBrokerId as yt, egressTransportFromRequest as z };
|
|
@@ -8608,6 +8608,12 @@ var RecordingConfigSchema = object({
|
|
|
8608
8608
|
/** DERIVED summary of `bands`, stamped by the recorder on every save.
|
|
8609
8609
|
* Authoring it has no effect — see {@link RecordingStorageModeSchema}. */
|
|
8610
8610
|
mode: RecordingStorageModeSchema.optional(),
|
|
8611
|
+
/**
|
|
8612
|
+
* Which assigned broker slots to record. Absent / empty = {@link
|
|
8613
|
+
* DEFAULT_RECORDING_PROFILES} (`high`+`low`) intersected with the
|
|
8614
|
+
* camera's currently assigned slots — never `mid` unless the operator
|
|
8615
|
+
* picks it, and never a slot the broker has not assigned.
|
|
8616
|
+
*/
|
|
8611
8617
|
profiles: array(CamProfileSchema).optional(),
|
|
8612
8618
|
segmentSeconds: number().int().positive().optional(),
|
|
8613
8619
|
/**
|
|
@@ -8632,7 +8638,7 @@ var RecordingConfigSchema = object({
|
|
|
8632
8638
|
*
|
|
8633
8639
|
* THE one definition: the recorder stamps `config.mode` with it on save and
|
|
8634
8640
|
* reports it as the cap's `activeMode`, and the settings UI reads it back to
|
|
8635
|
-
*
|
|
8641
|
+
* highlight the Off/Events/Continuous shortcut. Two copies would drift, and the
|
|
8636
8642
|
* symptom (a status dot disagreeing with what is being recorded) is exactly the
|
|
8637
8643
|
* bug this field was added to fix.
|
|
8638
8644
|
*/
|
|
@@ -8642,6 +8648,30 @@ function deriveRecordingMode(config) {
|
|
|
8642
8648
|
return "events";
|
|
8643
8649
|
}
|
|
8644
8650
|
/**
|
|
8651
|
+
* Default recorded slots when a config omits `profiles`: high + low.
|
|
8652
|
+
* `mid` is opt-in — it is usually a second native encode the operator
|
|
8653
|
+
* did not ask to store twice.
|
|
8654
|
+
*/
|
|
8655
|
+
var DEFAULT_RECORDING_PROFILES = ["high", "low"];
|
|
8656
|
+
/**
|
|
8657
|
+
* Pick which assigned broker slots to record. `assigned` is already the
|
|
8658
|
+
* broker's assigned∩deduped set (see `selectAssignedProfileSlots`).
|
|
8659
|
+
*
|
|
8660
|
+
* An operator `override` DISABLES unselected assigned slots (assigned ∩
|
|
8661
|
+
* selection). A selection matching none of the assigned sources, or an
|
|
8662
|
+
* absent/empty override, falls through: prefer {@link DEFAULT_RECORDING_PROFILES}
|
|
8663
|
+
* among assigned, else every assigned slot (a camera with only `mid`
|
|
8664
|
+
* still records something). Empty assigned → empty result.
|
|
8665
|
+
*/
|
|
8666
|
+
function resolveRecordingProfiles(assigned, override) {
|
|
8667
|
+
if (override !== void 0 && override.length > 0) {
|
|
8668
|
+
const selected = assigned.filter((profile) => override.includes(profile));
|
|
8669
|
+
return selected.length > 0 ? selected : [...assigned];
|
|
8670
|
+
}
|
|
8671
|
+
const preferred = assigned.filter((profile) => DEFAULT_RECORDING_PROFILES.includes(profile));
|
|
8672
|
+
return preferred.length > 0 ? preferred : [...assigned];
|
|
8673
|
+
}
|
|
8674
|
+
/**
|
|
8645
8675
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
8646
8676
|
*
|
|
8647
8677
|
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
@@ -8704,7 +8734,11 @@ var RelocateFootageInputSchema = object({
|
|
|
8704
8734
|
profiles: array(string()).optional(),
|
|
8705
8735
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
8706
8736
|
* never allowed to starve live writers. */
|
|
8707
|
-
throttleMbps: number().min(1).max(1e3).optional()
|
|
8737
|
+
throttleMbps: number().min(1).max(1e3).optional(),
|
|
8738
|
+
/** Move only segments whose startMs is >= this. Absent = the whole source
|
|
8739
|
+
* pile. Used when a full drain is too expensive and the operator only
|
|
8740
|
+
* wants the recent window on the new disk. */
|
|
8741
|
+
sinceMs: number().int().optional()
|
|
8708
8742
|
});
|
|
8709
8743
|
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
8710
8744
|
* from persistent recording settings: a migration never changes
|
|
@@ -18633,6 +18667,12 @@ var TrackCascadeCountsSchema = object({
|
|
|
18633
18667
|
/** Per-track CLIP search vectors removed (best-effort). */
|
|
18634
18668
|
embeddings: number().int()
|
|
18635
18669
|
});
|
|
18670
|
+
/** Disk-wins reconcile: media rows whose blobs are gone, then empty tracks. */
|
|
18671
|
+
var DiskReconcileCountsSchema = object({
|
|
18672
|
+
mediaDropped: number().int(),
|
|
18673
|
+
tracks: number().int(),
|
|
18674
|
+
events: number().int()
|
|
18675
|
+
});
|
|
18636
18676
|
/** Event-store footprint for one camera. */
|
|
18637
18677
|
var EventStoreDeviceFootprintSchema = object({
|
|
18638
18678
|
deviceId: number(),
|
|
@@ -18809,6 +18849,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
18809
18849
|
}), method(object({ deviceId: number() }), TrackCascadeCountsSchema, {
|
|
18810
18850
|
kind: "mutation",
|
|
18811
18851
|
auth: "admin"
|
|
18852
|
+
}), method(object({ deviceId: number() }), DiskReconcileCountsSchema, {
|
|
18853
|
+
kind: "mutation",
|
|
18854
|
+
auth: "admin"
|
|
18812
18855
|
}), method(object({
|
|
18813
18856
|
deviceId: number(),
|
|
18814
18857
|
trackIds: array(string()).min(1)
|
|
@@ -20613,6 +20656,24 @@ var CameraStatusDegradationSchema = object({
|
|
|
20613
20656
|
*
|
|
20614
20657
|
* See spec: `docs/superpowers/specs/2026-06-24-camera-status-aggregator-cap.md`
|
|
20615
20658
|
*/
|
|
20659
|
+
var DiskReconcileJobSchema = object({
|
|
20660
|
+
state: _enum([
|
|
20661
|
+
"idle",
|
|
20662
|
+
"running",
|
|
20663
|
+
"done",
|
|
20664
|
+
"error"
|
|
20665
|
+
]),
|
|
20666
|
+
total: number().int().nonnegative(),
|
|
20667
|
+
completed: number().int().nonnegative(),
|
|
20668
|
+
currentDeviceId: number().int().nullable(),
|
|
20669
|
+
failed: array(number().int()).readonly(),
|
|
20670
|
+
mediaDropped: number().int().nonnegative(),
|
|
20671
|
+
tracks: number().int().nonnegative(),
|
|
20672
|
+
events: number().int().nonnegative(),
|
|
20673
|
+
startedAtMs: number().int().nullable(),
|
|
20674
|
+
finishedAtMs: number().int().nullable(),
|
|
20675
|
+
error: string().nullable()
|
|
20676
|
+
});
|
|
20616
20677
|
var CameraStatusSchema = object({
|
|
20617
20678
|
deviceId: number(),
|
|
20618
20679
|
assignment: CameraAssignmentStatusSchema,
|
|
@@ -20844,7 +20905,10 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
|
20844
20905
|
}), CameraSwitchGroupSchema, {
|
|
20845
20906
|
kind: "mutation",
|
|
20846
20907
|
auth: "admin"
|
|
20847
|
-
}), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(),
|
|
20908
|
+
}), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(), DiskReconcileJobSchema, {
|
|
20909
|
+
kind: "mutation",
|
|
20910
|
+
auth: "admin"
|
|
20911
|
+
}), method(_void(), DiskReconcileJobSchema, { auth: "admin" }), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
20848
20912
|
name: string(),
|
|
20849
20913
|
description: string().optional(),
|
|
20850
20914
|
config: CameraPipelineConfigSchema
|
|
@@ -31572,6 +31636,12 @@ Object.freeze({
|
|
|
31572
31636
|
addonId: null,
|
|
31573
31637
|
access: "create"
|
|
31574
31638
|
},
|
|
31639
|
+
"pipelineAnalytics.reconcileFromDisk": {
|
|
31640
|
+
capName: "pipeline-analytics",
|
|
31641
|
+
capScope: "device",
|
|
31642
|
+
addonId: null,
|
|
31643
|
+
access: "create"
|
|
31644
|
+
},
|
|
31575
31645
|
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
31576
31646
|
capName: "pipeline-analytics",
|
|
31577
31647
|
capScope: "device",
|
|
@@ -31974,6 +32044,12 @@ Object.freeze({
|
|
|
31974
32044
|
addonId: null,
|
|
31975
32045
|
access: "view"
|
|
31976
32046
|
},
|
|
32047
|
+
"pipelineOrchestrator.getReconcileFromDiskStatus": {
|
|
32048
|
+
capName: "pipeline-orchestrator",
|
|
32049
|
+
capScope: "system",
|
|
32050
|
+
addonId: null,
|
|
32051
|
+
access: "view"
|
|
32052
|
+
},
|
|
31977
32053
|
"pipelineOrchestrator.listAgentSettings": {
|
|
31978
32054
|
capName: "pipeline-orchestrator",
|
|
31979
32055
|
capScope: "system",
|
|
@@ -31998,6 +32074,12 @@ Object.freeze({
|
|
|
31998
32074
|
addonId: null,
|
|
31999
32075
|
access: "create"
|
|
32000
32076
|
},
|
|
32077
|
+
"pipelineOrchestrator.reconcileFromDisk": {
|
|
32078
|
+
capName: "pipeline-orchestrator",
|
|
32079
|
+
capScope: "system",
|
|
32080
|
+
addonId: null,
|
|
32081
|
+
access: "create"
|
|
32082
|
+
},
|
|
32001
32083
|
"pipelineOrchestrator.removeAgentSettings": {
|
|
32002
32084
|
capName: "pipeline-orchestrator",
|
|
32003
32085
|
capScope: "system",
|
|
@@ -34989,6 +35071,11 @@ Object.freeze({
|
|
|
34989
35071
|
form: "single",
|
|
34990
35072
|
optional: true
|
|
34991
35073
|
}],
|
|
35074
|
+
"pipelineAnalytics.reconcileFromDisk": [{
|
|
35075
|
+
name: "deviceId",
|
|
35076
|
+
form: "single",
|
|
35077
|
+
optional: false
|
|
35078
|
+
}],
|
|
34992
35079
|
"pipelineAnalytics.restageRetrainTrack": [{
|
|
34993
35080
|
name: "deviceId",
|
|
34994
35081
|
form: "single",
|
|
@@ -37166,6 +37253,12 @@ Object.defineProperty(exports, "resolveEgressDecodeHwAccel", {
|
|
|
37166
37253
|
return resolveEgressDecodeHwAccel;
|
|
37167
37254
|
}
|
|
37168
37255
|
});
|
|
37256
|
+
Object.defineProperty(exports, "resolveRecordingProfiles", {
|
|
37257
|
+
enumerable: true,
|
|
37258
|
+
get: function() {
|
|
37259
|
+
return resolveRecordingProfiles;
|
|
37260
|
+
}
|
|
37261
|
+
});
|
|
37169
37262
|
Object.defineProperty(exports, "runtimeDevices", {
|
|
37170
37263
|
enumerable: true,
|
|
37171
37264
|
get: function() {
|
package/dist/{event-loop-stall-monitor-BiPffk0D.mjs → event-loop-stall-monitor-C-VvWOxS.mjs}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { H as hfModelUrl, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS } from "./dist-
|
|
1
|
+
import { H as hfModelUrl, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS } from "./dist-6POVIYmC.mjs";
|
|
2
2
|
import { PerformanceObserver } from "node:perf_hooks";
|
|
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-D9To_r_d.js");
|
|
6
|
+
const require_lazy_sharp = require("../lazy-sharp-C3zOnmiU.js");
|
|
7
7
|
let node_path = require("node:path");
|
|
8
8
|
let node_fs = require("node:fs");
|
|
9
9
|
//#region src/motion-wasm/wasm-motion-detector.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { G as motionDetectionCapability, V as evaluateZoneRules,
|
|
1
|
+
import { G as motionDetectionCapability, V as evaluateZoneRules, dt as BaseAddon, gt as hydrateSchema, mt as DeviceType } from "../dist-6POVIYmC.mjs";
|
|
2
2
|
import { t as getSharp } from "../lazy-sharp-6oymT_yf.mjs";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { readFileSync } from "node:fs";
|
|
@@ -2,11 +2,11 @@ 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_event_loop_stall_monitor = require("../event-loop-stall-monitor-
|
|
7
|
-
const require_worker_protocol = require("../worker-protocol-
|
|
5
|
+
const require_dist = require("../dist-D9To_r_d.js");
|
|
6
|
+
const require_event_loop_stall_monitor = require("../event-loop-stall-monitor-CGacbzXq.js");
|
|
7
|
+
const require_worker_protocol = require("../worker-protocol-Bq28qobd.js");
|
|
8
8
|
const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
|
|
9
|
-
const require_lazy_sharp = require("../lazy-sharp-
|
|
9
|
+
const require_lazy_sharp = require("../lazy-sharp-C3zOnmiU.js");
|
|
10
10
|
const require_remote_restream = require("../remote-restream-BYbAsgUf.js");
|
|
11
11
|
let sharp = require("sharp");
|
|
12
12
|
sharp = require_dist.__toESM(sharp);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { At as
|
|
2
|
-
import { c as getStepDefinition, t as attributeStall } from "../event-loop-stall-monitor-
|
|
3
|
-
import { a as nativeLeaseSettingEnv, t as isWorkerReply } from "../worker-protocol-
|
|
1
|
+
import { At as literal, Dt as boolean, Et as array, F as deriveDetailCropRect, It as EventCategory, K as pickDetailCropConvention, Mt as object, N as defineCustomActions, Pt as string, Tt as _enum, Y as pipelineRunnerCapability, at as errMsg, bt as nodePin, c as DEFAULT_DETAIL_CROP_CONVENTION, d as DEVICE_BACKEND_TO_FORMAT, dt as BaseAddon, ht as createEvent, j as customAction, jt as number, kt as lazy, q as pickNativeLeaseOverride } from "../dist-6POVIYmC.mjs";
|
|
2
|
+
import { c as getStepDefinition, t as attributeStall } from "../event-loop-stall-monitor-C-VvWOxS.mjs";
|
|
3
|
+
import { a as nativeLeaseSettingEnv, t as isWorkerReply } from "../worker-protocol-PzAKg8mC.mjs";
|
|
4
4
|
import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
|
|
5
5
|
import { t as getSharp } from "../lazy-sharp-6oymT_yf.mjs";
|
|
6
6
|
import { i as withDetectionIntent, n as profileForStreamId, t as isRemoteRestream } from "../remote-restream-Ci7RXNGb.mjs";
|