@camstack/addon-pipeline 1.2.196 → 1.2.198
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-CJdc8j83.js → default-detection-model-B5v8qEI0.js} +1 -1
- package/dist/{default-detection-model-BGBAmtEp.mjs → default-detection-model-CASpAESz.mjs} +1 -1
- package/dist/detection-pipeline/index.js +5 -5
- package/dist/detection-pipeline/index.mjs +4 -4
- package/dist/{dist-HG5geL9t.js → dist-BxP0SvPz.js} +215 -58
- package/dist/{dist-mYDK58Jp.mjs → dist-oFIHnD88.mjs} +198 -59
- package/dist/{lazy-sharp-DmAwZ0s9.js → lazy-sharp-VKOG3WW4.js} +1 -1
- package/dist/motion-wasm/index.js +2 -2
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-xRsaPwBa.mjs → node-B4zETsJ9.mjs} +1 -1
- package/dist/{node--my8JTOW.js → node-BIKrNEtS.js} +1 -1
- package/dist/pipeline-runner/index.js +363 -6
- package/dist/pipeline-runner/index.mjs +362 -5
- package/dist/{retire-root-keys-KE6D6Xh_.js → prebuffer-DmBYRQWg.mjs} +83 -12
- package/dist/{retire-root-keys-DMolfhsP.mjs → prebuffer-DqdeLSsk.js} +118 -1
- package/dist/{process-memory-CoCSce63.js → process-memory-CMHOmj75.js} +1 -1
- package/dist/{process-memory-BDHR3lxe.mjs → process-memory-D9xYwm6L.mjs} +1 -1
- package/dist/recorder/index.js +152 -31
- package/dist/recorder/index.mjs +148 -27
- package/dist/{segment-demux-js-CBynn9Gh.js → segment-demux-js-DLwL1vmq.js} +1 -1
- package/dist/{segment-demux-js-CXvgKfsn.mjs → segment-demux-js-DZysrgdC.mjs} +1 -1
- package/dist/session-decode/decode-worker-child.js +2 -2
- package/dist/session-decode/decode-worker-child.mjs +1 -1
- package/dist/stream-broker/_stub.js +29 -32
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BMsB2MVD.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-C2eTdxvd.mjs} +3 -3
- package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B_NVJXAy.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BcjLrxhF.mjs} +1 -1
- package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CBxobiZW.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Dj_qoc1e.mjs} +1 -1
- package/dist/stream-broker/demux-worker-child.js +1 -1
- package/dist/stream-broker/demux-worker-child.mjs +1 -1
- package/dist/stream-broker/{hostInit-CZig_taJ.mjs → hostInit-C8tu7NS4.mjs} +3 -3
- package/dist/stream-broker/index.js +452 -541
- package/dist/stream-broker/index.mjs +448 -537
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/dist/{worker-protocol-DCsi4YS1.js → worker-protocol-D2mMjUXv.js} +1 -1
- package/dist/{worker-protocol-C0R1DDC0.mjs → worker-protocol-DFlZm_wr.mjs} +1 -1
- package/package.json +1 -1
|
@@ -9087,17 +9087,29 @@ var HHMM = /^([01]\d|2[0-3]):[0-5]\d$/;
|
|
|
9087
9087
|
/**
|
|
9088
9088
|
* DERIVED per-camera storage summary — the single field cheap consumers read
|
|
9089
9089
|
* (the viewer's status dot, the camera list) instead of walking `bands`:
|
|
9090
|
-
* - `off`
|
|
9091
|
-
* - `events`
|
|
9092
|
-
* - `continuous`
|
|
9093
|
-
*
|
|
9094
|
-
*
|
|
9095
|
-
*
|
|
9090
|
+
* - `off` — no band covers the camera (or it is disabled).
|
|
9091
|
+
* - `events` — every band records around triggers only.
|
|
9092
|
+
* - `continuous` — at least one band records continuously.
|
|
9093
|
+
* - `on-device-decision`— the DEVICE decides: recording runs for as long as the
|
|
9094
|
+
* camera raises its own `recording-signal` level (a robot that cleans). There
|
|
9095
|
+
* is no schedule to author, because there is no hour to program — see
|
|
9096
|
+
* {@link RecordingConfigSchema}`.deviceDecision`.
|
|
9097
|
+
*
|
|
9098
|
+
* NEVER authored: the recorder stamps it from the authoritative intent
|
|
9099
|
+
* (`bands` + `deviceDecision`) on every save (`activeModeForConfig`). Writing it
|
|
9100
|
+
* has no effect.
|
|
9101
|
+
*
|
|
9102
|
+
* `on-device-decision` is named for WHO decides, not for how the recording is
|
|
9103
|
+
* requested. `on-demand` was rejected: in this repo's vocabulary a "demand" is
|
|
9104
|
+
* something the operator makes (the live gate is the recorder's own "demand
|
|
9105
|
+
* window"), and a knob whose name suggests the operator starts it while the
|
|
9106
|
+
* device actually does is the D62 shape — a control nobody can predict.
|
|
9096
9107
|
*/
|
|
9097
9108
|
var RecordingStorageModeSchema = _enum([
|
|
9098
9109
|
"off",
|
|
9099
9110
|
"events",
|
|
9100
|
-
"continuous"
|
|
9111
|
+
"continuous",
|
|
9112
|
+
"on-device-decision"
|
|
9101
9113
|
]);
|
|
9102
9114
|
/**
|
|
9103
9115
|
* Le macro classi che possono aprire una finestra di registrazione — le stesse
|
|
@@ -9147,22 +9159,7 @@ var RecordingTriggersSchema = object({
|
|
|
9147
9159
|
* il livello: un contatto trovato già aperto al riavvio del runner non fa
|
|
9148
9160
|
* registrare.
|
|
9149
9161
|
*/
|
|
9150
|
-
sensorDeviceIds: array(number().int().positive()).min(1).max(16).refine(noDuplicates, { message: "sensorDeviceIds must not repeat a device" }).optional()
|
|
9151
|
-
/**
|
|
9152
|
-
* La camera registra per tutta la durata del SEGNALE che lei stessa
|
|
9153
|
-
* pubblica — la cap `recording-signal` (`active: true` mentre il device è in
|
|
9154
|
-
* funzione: un robot che pulisce). È un LIVELLO, non un fronte: la finestra
|
|
9155
|
-
* resta aperta finché il segnale è alto e si chiude `postBufferSec` dopo la
|
|
9156
|
-
* caduta, così una pulizia di quaranta minuti è UNA clip.
|
|
9157
|
-
*
|
|
9158
|
-
* Non nomina un device: il segnale è della camera stessa, tenuto fresco dal
|
|
9159
|
-
* suo provider (D224); il recorder lo ascolta su `DeviceStateChanged` e lo
|
|
9160
|
-
* riconcilia leggendo la slice via RPC, con un tetto oltre il quale un
|
|
9161
|
-
* segnale mai abbassato (un evento perso) non può tenere aperta una
|
|
9162
|
-
* registrazione (D11). Vedi `recorder/addon/band-decision.ts`
|
|
9163
|
-
* (`holdTrigger` / `releaseTrigger`).
|
|
9164
|
-
*/
|
|
9165
|
-
deviceSignal: boolean().optional()
|
|
9162
|
+
sensorDeviceIds: array(number().int().positive()).min(1).max(16).refine(noDuplicates, { message: "sensorDeviceIds must not repeat a device" }).optional()
|
|
9166
9163
|
});
|
|
9167
9164
|
/**
|
|
9168
9165
|
* Mode of a single recording band — the recorder per-band vocabulary.
|
|
@@ -9192,6 +9189,24 @@ var RecordingBandSchema = object({
|
|
|
9192
9189
|
end: string().regex(HHMM),
|
|
9193
9190
|
mode: RecordingBandModeSchema,
|
|
9194
9191
|
triggers: RecordingBandTriggersSchema.optional(),
|
|
9192
|
+
/**
|
|
9193
|
+
* RETIRED (D381). A band no longer carries a pre-buffer of its own.
|
|
9194
|
+
*
|
|
9195
|
+
* It was the retroactive KEEP bound — which already-written segments survive
|
|
9196
|
+
* a trigger — and it had to be at least as wide as the widest pre-roll the
|
|
9197
|
+
* broker could serve, or the gate would delete the seconds the ring had just
|
|
9198
|
+
* handed the writer. That "at least as wide as" is the tell: it was a second
|
|
9199
|
+
* expression of the broker's retention, in different units, in a different
|
|
9200
|
+
* addon, with an invariant the operator had to maintain by hand. The keep
|
|
9201
|
+
* bound is now derived from the one prebuffer ceiling and there is nothing
|
|
9202
|
+
* left to configure here.
|
|
9203
|
+
*
|
|
9204
|
+
* The key survives in the SHAPE so a config written before that record still
|
|
9205
|
+
* parses and can be migrated deliberately — `RecordingBandSchema` is not
|
|
9206
|
+
* strict, so simply deleting it would strip an operator's value in silence on
|
|
9207
|
+
* the next save (the failure D380 came one commit from shipping). Nothing
|
|
9208
|
+
* reads it: {@link stripRetiredBandPreBufferSec} removes it on load.
|
|
9209
|
+
*/
|
|
9195
9210
|
preBufferSec: number().min(0).optional(),
|
|
9196
9211
|
postBufferSec: number().min(0).optional()
|
|
9197
9212
|
});
|
|
@@ -9209,29 +9224,56 @@ var RecordingBandSchema = object({
|
|
|
9209
9224
|
* `postBufferSec` must therefore exceed one segment length plus the attach
|
|
9210
9225
|
* latency (ffmpeg spawn + RTSP dial), or the window closes before the first
|
|
9211
9226
|
* segment is ever finalized and the camera records nothing anyway. At the 10 s
|
|
9212
|
-
* default segment length, 30 s leaves room for two full segments.
|
|
9213
|
-
*
|
|
9214
|
-
*
|
|
9215
|
-
*
|
|
9216
|
-
*
|
|
9217
|
-
*
|
|
9218
|
-
*
|
|
9219
|
-
*
|
|
9220
|
-
*
|
|
9221
|
-
*
|
|
9222
|
-
*
|
|
9223
|
-
|
|
9224
|
-
|
|
9225
|
-
|
|
9226
|
-
* `
|
|
9227
|
-
*
|
|
9228
|
-
*
|
|
9229
|
-
*
|
|
9230
|
-
|
|
9231
|
-
|
|
9232
|
-
|
|
9233
|
-
|
|
9234
|
-
|
|
9227
|
+
* default segment length, 30 s leaves room for two full segments.
|
|
9228
|
+
*
|
|
9229
|
+
* ## There is no `preBufferSec` here any more (D381)
|
|
9230
|
+
*
|
|
9231
|
+
* There used to be, at 15 s, and its whole justification was that it had to
|
|
9232
|
+
* cover the widest pre-roll the broker could serve. A number whose only
|
|
9233
|
+
* correct value is another subsystem's ceiling is not a setting; it is that
|
|
9234
|
+
* ceiling, restated where it can drift. The keep bound is derived from the
|
|
9235
|
+
* prebuffer ceiling directly now, in `band-decision.ts`, so an operator
|
|
9236
|
+
* raising the prebuffer cannot walk past the gate at all rather than merely
|
|
9237
|
+
* being warned not to.
|
|
9238
|
+
*/
|
|
9239
|
+
var DEFAULT_EVENTS_BAND_BUFFER_SEC = { postBufferSec: 30 };
|
|
9240
|
+
/**
|
|
9241
|
+
* Drop the RETIRED band `preBufferSec` from a persisted recording config.
|
|
9242
|
+
*
|
|
9243
|
+
* Explicit, and it reports what it removed, because the alternative is a
|
|
9244
|
+
* silent strip: `RecordingBandSchema` is a plain `z.object`, so the key
|
|
9245
|
+
* survives a parse and disappears on the next save with no line anywhere. An
|
|
9246
|
+
* operator who had typed a number would find it gone and nothing would say
|
|
9247
|
+
* when or why.
|
|
9248
|
+
*
|
|
9249
|
+
* Nothing is carried forward: the value it held was always required to be at
|
|
9250
|
+
* least the broker's widest pre-roll, and the gate is now derived from exactly
|
|
9251
|
+
* that ceiling. Every configuration that was legal therefore keeps a keep-gate
|
|
9252
|
+
* at least as wide as the one it had — including an explicit `0`, which widens.
|
|
9253
|
+
* That is deliberate and it is the only behaviour change: a band that kept
|
|
9254
|
+
* nothing before its trigger now keeps up to the prebuffer ceiling of
|
|
9255
|
+
* already-written footage, which is media that exists either way.
|
|
9256
|
+
*/
|
|
9257
|
+
function stripRetiredBandPreBufferSec(config) {
|
|
9258
|
+
const strippedBands = [];
|
|
9259
|
+
const bands = config.bands.map((band, index) => {
|
|
9260
|
+
if (band.preBufferSec === void 0) return band;
|
|
9261
|
+
strippedBands.push(index);
|
|
9262
|
+
const { preBufferSec: _retired, ...rest } = band;
|
|
9263
|
+
return rest;
|
|
9264
|
+
});
|
|
9265
|
+
if (strippedBands.length === 0) return {
|
|
9266
|
+
config,
|
|
9267
|
+
strippedBands
|
|
9268
|
+
};
|
|
9269
|
+
return {
|
|
9270
|
+
config: {
|
|
9271
|
+
...config,
|
|
9272
|
+
bands
|
|
9273
|
+
},
|
|
9274
|
+
strippedBands
|
|
9275
|
+
};
|
|
9276
|
+
}
|
|
9235
9277
|
DEFAULT_EVENTS_BAND_BUFFER_SEC.postBufferSec * 1e3;
|
|
9236
9278
|
/**
|
|
9237
9279
|
* Per-device retention overrides. Every field is optional; an unset or `0`
|
|
@@ -9280,8 +9322,29 @@ var RecordingConfigSchema = object({
|
|
|
9280
9322
|
* "off" is the absence of a covering band, never a band value.
|
|
9281
9323
|
*/
|
|
9282
9324
|
bands: array(RecordingBandSchema).default([]),
|
|
9325
|
+
/**
|
|
9326
|
+
* THE device-decided intent: record for as long as the camera itself raises
|
|
9327
|
+
* `recording-signal` (`active: true` while the device is in function — a
|
|
9328
|
+
* robot that cleans). AUTHORED, unlike `mode`, and the only authored
|
|
9329
|
+
* recording intent that is not a band.
|
|
9330
|
+
*
|
|
9331
|
+
* It carries NO schedule on purpose. A band is an HOUR, and this feature has
|
|
9332
|
+
* no hour to program: the device decides. What it costs the operator is one
|
|
9333
|
+
* flag — "this camera can record on its own" — and what it buys is the same
|
|
9334
|
+
* hold/release the recorder already implements (D371, `holdTrigger` /
|
|
9335
|
+
* `releaseTrigger`): the window opens on the rise, stays open for the whole
|
|
9336
|
+
* job however long it is, and closes one pad after the fall.
|
|
9337
|
+
*
|
|
9338
|
+
* EXCLUSIVE with `bands` (below): two authorities deciding when the same
|
|
9339
|
+
* camera records is the D62 failure. `off` remains `enabled: false`, so an
|
|
9340
|
+
* operator switching this camera off is REPORTED off, never as broken.
|
|
9341
|
+
*/
|
|
9342
|
+
deviceDecision: boolean().optional(),
|
|
9283
9343
|
retention: RecordingRetentionSchema.optional()
|
|
9284
|
-
}).strict()
|
|
9344
|
+
}).strict().refine((config) => config.deviceDecision !== true || config.bands.length === 0, {
|
|
9345
|
+
message: "deviceDecision is a whole-config mode and carries no schedule: it cannot be combined with bands",
|
|
9346
|
+
path: ["bands"]
|
|
9347
|
+
});
|
|
9285
9348
|
/**
|
|
9286
9349
|
* Derive the {@link RecordingStorageModeSchema} summary from the authoritative
|
|
9287
9350
|
* bands: `continuous` when any band records continuously, `events` when a band
|
|
@@ -9294,7 +9357,9 @@ var RecordingConfigSchema = object({
|
|
|
9294
9357
|
* bug this field was added to fix.
|
|
9295
9358
|
*/
|
|
9296
9359
|
function deriveRecordingMode(config) {
|
|
9297
|
-
if (!config.enabled
|
|
9360
|
+
if (!config.enabled) return "off";
|
|
9361
|
+
if (config.deviceDecision === true) return "on-device-decision";
|
|
9362
|
+
if (config.bands.length === 0) return "off";
|
|
9298
9363
|
if (config.bands.some((band) => band.mode === "continuous")) return "continuous";
|
|
9299
9364
|
return "events";
|
|
9300
9365
|
}
|
|
@@ -9322,6 +9387,85 @@ function resolveRecordingProfiles(assigned, override) {
|
|
|
9322
9387
|
const preferred = assigned.filter((profile) => DEFAULT_RECORDING_PROFILES.includes(profile));
|
|
9323
9388
|
return preferred.length > 0 ? preferred : [...assigned];
|
|
9324
9389
|
}
|
|
9390
|
+
/** Trigger keys that survive D380 — a band carrying one of these is a real band. */
|
|
9391
|
+
var SURVIVING_TRIGGER_KEYS = [
|
|
9392
|
+
"motion",
|
|
9393
|
+
"audioThresholdDbfs",
|
|
9394
|
+
"objectClasses",
|
|
9395
|
+
"sensorDeviceIds"
|
|
9396
|
+
];
|
|
9397
|
+
function isRecord$1(value) {
|
|
9398
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
9399
|
+
}
|
|
9400
|
+
function listensToLegacySignal(band) {
|
|
9401
|
+
return isRecord$1(band) && isRecord$1(band.triggers) && band.triggers.deviceSignal === true;
|
|
9402
|
+
}
|
|
9403
|
+
function hasSurvivingTrigger(band) {
|
|
9404
|
+
const triggers = band.triggers;
|
|
9405
|
+
if (!isRecord$1(triggers)) return false;
|
|
9406
|
+
return SURVIVING_TRIGGER_KEYS.some((key) => triggers[key] !== void 0);
|
|
9407
|
+
}
|
|
9408
|
+
function withoutLegacySignal(band) {
|
|
9409
|
+
const triggers = band.triggers;
|
|
9410
|
+
if (!isRecord$1(triggers)) return band;
|
|
9411
|
+
const { deviceSignal: _retired, ...rest } = triggers;
|
|
9412
|
+
return {
|
|
9413
|
+
...band,
|
|
9414
|
+
triggers: rest
|
|
9415
|
+
};
|
|
9416
|
+
}
|
|
9417
|
+
/**
|
|
9418
|
+
* Turn a config stored under D371 (`bands[].triggers.deviceSignal: true`) into
|
|
9419
|
+
* a D380 one (`deviceDecision: true`, no bands). Pure, total and IDEMPOTENT —
|
|
9420
|
+
* a row with no legacy key comes back as the SAME reference, `migrated: false`.
|
|
9421
|
+
*
|
|
9422
|
+
* ## Why the schema cannot be left to do this
|
|
9423
|
+
*
|
|
9424
|
+
* `RecordingTriggersSchema` is a non-strict `z.object`, so the retired key is
|
|
9425
|
+
* SILENTLY STRIPPED on read. The camera whose only trigger it was would parse
|
|
9426
|
+
* cleanly into an `events` band that lists nothing — "enabled, and records
|
|
9427
|
+
* nothing, forever", the exact shape `eventsBandCanEverDemand` exists to shout
|
|
9428
|
+
* about, reached without a single line in the log. On the reference hub that is
|
|
9429
|
+
* camera 4374, the one camera an operator had configured by hand.
|
|
9430
|
+
*
|
|
9431
|
+
* `enabled` is carried through untouched: a camera the operator had switched
|
|
9432
|
+
* OFF comes out of a migration still off (D62).
|
|
9433
|
+
*/
|
|
9434
|
+
function migrateLegacyDeviceSignalConfig(raw) {
|
|
9435
|
+
const unchanged = {
|
|
9436
|
+
value: raw,
|
|
9437
|
+
migrated: false,
|
|
9438
|
+
strippedOnly: false
|
|
9439
|
+
};
|
|
9440
|
+
if (!isRecord$1(raw) || !Array.isArray(raw.bands)) return unchanged;
|
|
9441
|
+
if (!raw.bands.some(listensToLegacySignal)) return unchanged;
|
|
9442
|
+
const kept = [];
|
|
9443
|
+
for (const band of raw.bands) {
|
|
9444
|
+
if (!listensToLegacySignal(band) || !isRecord$1(band)) {
|
|
9445
|
+
kept.push(band);
|
|
9446
|
+
continue;
|
|
9447
|
+
}
|
|
9448
|
+
if (hasSurvivingTrigger(band)) kept.push(withoutLegacySignal(band));
|
|
9449
|
+
}
|
|
9450
|
+
if (kept.length > 0) return {
|
|
9451
|
+
value: {
|
|
9452
|
+
...raw,
|
|
9453
|
+
bands: kept
|
|
9454
|
+
},
|
|
9455
|
+
migrated: false,
|
|
9456
|
+
strippedOnly: true
|
|
9457
|
+
};
|
|
9458
|
+
const { mode: _derived, ...rest } = raw;
|
|
9459
|
+
return {
|
|
9460
|
+
value: {
|
|
9461
|
+
...rest,
|
|
9462
|
+
bands: [],
|
|
9463
|
+
deviceDecision: true
|
|
9464
|
+
},
|
|
9465
|
+
migrated: true,
|
|
9466
|
+
strippedOnly: false
|
|
9467
|
+
};
|
|
9468
|
+
}
|
|
9325
9469
|
/**
|
|
9326
9470
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
9327
9471
|
*
|
|
@@ -23297,11 +23441,7 @@ var CameraAudioStatusSchema = object({
|
|
|
23297
23441
|
});
|
|
23298
23442
|
/** Recording block — null when no recording cap is active for this device. */
|
|
23299
23443
|
var CameraRecordingStatusSchema = object({
|
|
23300
|
-
mode:
|
|
23301
|
-
"off",
|
|
23302
|
-
"continuous",
|
|
23303
|
-
"events"
|
|
23304
|
-
]),
|
|
23444
|
+
mode: RecordingStorageModeSchema,
|
|
23305
23445
|
active: boolean(),
|
|
23306
23446
|
storageBytes: number()
|
|
23307
23447
|
});
|
|
@@ -29876,11 +30016,10 @@ DeviceType.Camera, DeviceType.Sensor, DeviceType.Switch, method(object({ deviceI
|
|
|
29876
30016
|
var RecordingStatusSchema = object({
|
|
29877
30017
|
deviceId: number(),
|
|
29878
30018
|
enabled: boolean(),
|
|
29879
|
-
|
|
29880
|
-
|
|
29881
|
-
|
|
29882
|
-
|
|
29883
|
-
]),
|
|
30019
|
+
/** THE derived storage mode, from the one definition
|
|
30020
|
+
* (`deriveRecordingMode`) — never a second enum. A duplicated list is how
|
|
30021
|
+
* `on-device-decision` could have reached the recorder and not the status. */
|
|
30022
|
+
activeMode: RecordingStorageModeSchema,
|
|
29884
30023
|
nodeId: string(),
|
|
29885
30024
|
storageBytes: number()
|
|
29886
30025
|
});
|
|
@@ -42219,4 +42358,4 @@ function enumerateInferenceDevices(hw) {
|
|
|
42219
42358
|
return out;
|
|
42220
42359
|
}
|
|
42221
42360
|
//#endregion
|
|
42222
|
-
export { inferModelProvider as $,
|
|
42361
|
+
export { inferModelProvider as $, lazy as $t, addonWidgetsSourceCapability as A, Fmp4BoxSplitter as At, defaultDeviceFor as B, hydrateSchema as Bt, RATE_CONTROL_RELAXED as C, storageEvictableCapability as Ct, RecordingSignalStatusSchema as D, webrtcSessionCapability as Dt, RecordingConfigSchema as E, supportedRuntimes as Et, cameraStreamsCapability as F, BaseAddon as Ft, detectionPipelineCapability as G, parseJsonUnknown as Gt, deriveBatteryPresence as H, makeProfileBrokerId as Ht, createHwAccelCache as I, CAM_PROFILE_ORDER as It, enumerateInferenceDevices as J, sleep as Jt, egressTranscodeSharingKey as K, parseProfileBrokerId as Kt, createLogChannelsProvider as L, DeviceFeature as Lt, audioAnalyzerCapability as M, invocationFromEncodeProfile as Mt, audioKindId as N, isSoftwareDecode as Nt, RingBuffer as O, errMsg as Ot, batteryCapability as P, BOOT_RECOVERY_BACKOFF_MS as Pt, hfModelUrl as Q, discriminatedUnion as Qt, customAction as R, DeviceType as Rt, PoolMemoryWatchdog as S, runtimeDevices as St, RECORDING_EXPORT_MAX_READ_BYTES as T, stripRetiredBandPreBufferSec as Tt, deriveDetailCropRect as U, makeSourceBrokerId as Ut, defineCustomActions as V, isEvent as Vt, deriveRecordingMode as W, nodePin as Wt, evaluateZoneRules as X, array as Xt, evaluateSensorEdge as Y, _enum as Yt, failureContributionCapability as Z, boolean as Zt, FailureCounters as _, recordingSignalCapability as _t, COCO_80_LABELS as a, string as an, migrateLegacyDeviceSignalConfig as at, NativeLeaseSettingsSchema as b, resolvePoolMemoryPolicy as bt, DEFAULT_CLUSTER_STEP_MODELS as c, parseProcStatus as ct, DEFAULT_EVENTS_BAND_BUFFER_SEC as d, pickDetailCropConvention as dt, literal as en, isFirstLevelMacroClass as et, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as f, pickNativeLeaseOverride as ft, ExportRecordSchema as g, recordingExportCapability as gt, EncodeProfileSchema as h, recordingCapability as ht, BatteryStatusSchema as i, record as in, maskUrlCredentials as it, audioAnalysisCapability as j, buildFfmpegArgs as jt, YAMNET_TO_MACRO as k, AUDIO_PRESETS as kt, DEFAULT_CLUSTER_STEP_SETTINGS as l, pickClusterStepModels as lt, DEVICE_BACKEND_TO_FORMAT as m, pipelineRunnerCapability as mt, AUDIO_BACKEND_CHOICES as n, object as nn, logChannelsCapability as nt, COCO_TO_MACRO as o, union as on, motionDetectionCapability as ot, DEFAULT_NATIVE_LEASE_SETTINGS as p, pipelineExecutorCapability as pt, egressTransportFromRequest as q, selectAssignedProfileSlots as qt, AUDIO_MACRO_LABELS as r, preprocess as rn, mapAudioLabelToMacro as rt, DEFAULT_AUDIO_ANALYZER_CONFIG as s, EventCategory as sn, overlayClusterStepSettings as st, APPLE_SA_TO_MACRO as t, number as tn, loadContributionCapability as tt, DEFAULT_DETAIL_CROP_CONVENTION as u, pickClusterStepSettings as ut, HF_BASE_URL as v, resolveClusterStepModelId as vt, RATE_CONTROL_TIGHT as w, streamBrokerCapability as wt, OpsLogEntrySchema as x, resolveRecordingProfiles as xt, NativeLeaseAdmissionSchema as y, resolveEgressDecodeHwAccel as yt, declareLogChannel as z, createEvent as zt };
|
|
@@ -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-BxP0SvPz.js");
|
|
6
|
+
const require_lazy_sharp = require("../lazy-sharp-VKOG3WW4.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 {
|
|
1
|
+
import { Bt as hydrateSchema, Ft as BaseAddon, Rt as DeviceType, X as evaluateZoneRules, ot as motionDetectionCapability } from "../dist-oFIHnD88.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 {
|
|
1
|
+
import { At as Fmp4BoxSplitter, Nt as isSoftwareDecode, Ot as errMsg, jt as buildFfmpegArgs } from "./dist-oFIHnD88.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import "node:fs";
|
|
4
4
|
import "node:path";
|