@camstack/addon-pipeline 1.2.171 → 1.2.173
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audio-analyzer/index.js +2 -2
- package/dist/audio-analyzer/index.mjs +2 -2
- package/dist/detection-pipeline/index.js +5 -5
- package/dist/detection-pipeline/index.mjs +4 -4
- package/dist/{dist-D0liXHO7.mjs → dist-D35w3ngN.mjs} +154 -3
- package/dist/{dist-M39Js6iu.js → dist-DSJDq5hY.js} +154 -3
- package/dist/{lazy-sharp-CO-c2L9_.js → lazy-sharp-Fre6HHg6.js} +1 -1
- package/dist/{local-frame-registry--_WjAPa2.mjs → local-frame-registry-AtRvlifj.mjs} +1 -1
- package/dist/{local-frame-registry-CHUbcz6r.js → local-frame-registry-Y4TreSiT.js} +1 -1
- package/dist/motion-wasm/index.js +2 -2
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-CQ6VBSrE.mjs → node-B2NS7cyi.mjs} +1 -1
- package/dist/{node-Byy6tlFm.js → node-DVcGI_Kr.js} +1 -1
- package/dist/pipeline-runner/index.js +63 -6
- package/dist/pipeline-runner/index.mjs +62 -5
- package/dist/{process-memory-DjLHImhM.mjs → process-memory-BFuXzmyZ.mjs} +1 -1
- package/dist/{process-memory-CH3OIHHe.js → process-memory-DR2vCoO6.js} +1 -1
- package/dist/recorder/index.js +97 -13
- package/dist/recorder/index.mjs +97 -13
- package/dist/{segment-demux-js-B0KzROD9.js → segment-demux-js-CeJfEP5v.js} +1 -1
- package/dist/{segment-demux-js-Bmy3u2VM.mjs → segment-demux-js-wtPM5v2H.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 +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-CN6ybZtQ.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-eyqVqXTI.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_HZNoVq.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-BC-nahrU.mjs +26 -0
- 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-Dq40Ieaf.mjs → hostInit-eKLgfpTH.mjs} +3 -3
- package/dist/stream-broker/index.js +87 -4
- package/dist/stream-broker/index.mjs +87 -4
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/dist/{worker-protocol-CAWMqnxs.mjs → worker-protocol-B7PzysnJ.mjs} +1 -1
- package/dist/{worker-protocol-NB-CjUQf.js → worker-protocol-wr4XEhUh.js} +1 -1
- package/package.json +8 -1
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BjYSKqCM.mjs +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-E0nHxt6U.mjs +0 -26
|
@@ -2,8 +2,8 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
6
|
-
const require_process_memory = require("../process-memory-
|
|
5
|
+
const require_dist = require("../dist-DSJDq5hY.js");
|
|
6
|
+
const require_process_memory = require("../process-memory-DR2vCoO6.js");
|
|
7
7
|
let node_fs = require("node:fs");
|
|
8
8
|
node_fs = require_dist.__toESM(node_fs);
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { A as audioAnalysisCapability, It as hydrateSchema, S as PoolMemoryWatchdog, _t as resolvePoolMemoryPolicy, j as audioAnalyzerCapability, jt as BaseAddon, n as AUDIO_BACKEND_CHOICES, nt as mapAudioLabelToMacro, s as DEFAULT_AUDIO_ANALYZER_CONFIG, v as HF_BASE_URL, wt as errMsg } from "../dist-
|
|
3
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
2
|
+
import { A as audioAnalysisCapability, It as hydrateSchema, S as PoolMemoryWatchdog, _t as resolvePoolMemoryPolicy, j as audioAnalyzerCapability, jt as BaseAddon, n as AUDIO_BACKEND_CHOICES, nt as mapAudioLabelToMacro, s as DEFAULT_AUDIO_ANALYZER_CONFIG, v as HF_BASE_URL, wt as errMsg } from "../dist-D35w3ngN.mjs";
|
|
3
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-BFuXzmyZ.mjs";
|
|
4
4
|
import * as fs from "node:fs";
|
|
5
5
|
import * as path$1 from "node:path";
|
|
6
6
|
import { downloadFile } from "@camstack/system/addon-utils";
|
|
@@ -2,12 +2,12 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
6
|
-
const require_node = require("../node-
|
|
7
|
-
const require_local_frame_registry = require("../local-frame-registry-
|
|
8
|
-
const require_lazy_sharp = require("../lazy-sharp-
|
|
5
|
+
const require_dist = require("../dist-DSJDq5hY.js");
|
|
6
|
+
const require_node = require("../node-DVcGI_Kr.js");
|
|
7
|
+
const require_local_frame_registry = require("../local-frame-registry-Y4TreSiT.js");
|
|
8
|
+
const require_lazy_sharp = require("../lazy-sharp-Fre6HHg6.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-DR2vCoO6.js");
|
|
11
11
|
let node_fs = require("node:fs");
|
|
12
12
|
node_fs = require_dist.__toESM(node_fs);
|
|
13
13
|
let node_path = require("node:path");
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { Bt as nodePin, Ft as createEvent, It as hydrateSchema, Kt as array, O as YAMNET_TO_MACRO, Q as inferModelProvider, Qt as object, S as PoolMemoryWatchdog, St as supportedRuntimes$1, Vt as parseJsonUnknown, W as detectionPipelineCapability, Wt as sleep, Y as evaluateZoneRules, _t as resolvePoolMemoryPolicy, at as overlayClusterStepSettings, c as DEFAULT_CLUSTER_STEP_MODELS, ct as pickClusterStepSettings, dt as pipelineExecutorCapability, en as string, et as loadContributionCapability, ht as resolveClusterStepModelId, jt as BaseAddon, l as DEFAULT_CLUSTER_STEP_SETTINGS, m as DEVICE_BACKEND_TO_FORMAT, nn as EventCategory, q as enumerateInferenceDevices, st as pickClusterStepModels, t as APPLE_SA_TO_MACRO, tn as union, wt as errMsg, yt as runtimeDevices$1, z as defaultDeviceFor$1 } from "../dist-
|
|
3
|
-
import { a as readProcessCost } from "../node-
|
|
4
|
-
import { a as getDefaultModelForFormat, c as getStepDefinition, i as ALL_STEPS, l as resolveModelForFormat, o as getDefaultModelForFormatFromDef, r as ALL_PIPELINE_STEPS, s as getStep, t as localFrameRegistry, u as landmarkPrecisionVerdict } from "../local-frame-registry
|
|
2
|
+
import { Bt as nodePin, Ft as createEvent, It as hydrateSchema, Kt as array, O as YAMNET_TO_MACRO, Q as inferModelProvider, Qt as object, S as PoolMemoryWatchdog, St as supportedRuntimes$1, Vt as parseJsonUnknown, W as detectionPipelineCapability, Wt as sleep, Y as evaluateZoneRules, _t as resolvePoolMemoryPolicy, at as overlayClusterStepSettings, c as DEFAULT_CLUSTER_STEP_MODELS, ct as pickClusterStepSettings, dt as pipelineExecutorCapability, en as string, et as loadContributionCapability, ht as resolveClusterStepModelId, jt as BaseAddon, l as DEFAULT_CLUSTER_STEP_SETTINGS, m as DEVICE_BACKEND_TO_FORMAT, nn as EventCategory, q as enumerateInferenceDevices, st as pickClusterStepModels, t as APPLE_SA_TO_MACRO, tn as union, wt as errMsg, yt as runtimeDevices$1, z as defaultDeviceFor$1 } from "../dist-D35w3ngN.mjs";
|
|
3
|
+
import { a as readProcessCost } from "../node-B2NS7cyi.mjs";
|
|
4
|
+
import { a as getDefaultModelForFormat, c as getStepDefinition, i as ALL_STEPS, l as resolveModelForFormat, o as getDefaultModelForFormatFromDef, r as ALL_PIPELINE_STEPS, s as getStep, t as localFrameRegistry, u as landmarkPrecisionVerdict } from "../local-frame-registry-AtRvlifj.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-BFuXzmyZ.mjs";
|
|
8
8
|
import * as fs from "node:fs";
|
|
9
9
|
import * as path$1 from "node:path";
|
|
10
10
|
import { spawn } from "node:child_process";
|
|
@@ -12061,6 +12061,89 @@ var LocationStatSchema = object({
|
|
|
12061
12061
|
fileCount: number(),
|
|
12062
12062
|
present: boolean()
|
|
12063
12063
|
});
|
|
12064
|
+
/** Lifecycle of a backup run. Terminal states: succeeded / failed / cancelled. */
|
|
12065
|
+
var BackupRunStateSchema = _enum([
|
|
12066
|
+
"queued",
|
|
12067
|
+
"running",
|
|
12068
|
+
"succeeded",
|
|
12069
|
+
"failed",
|
|
12070
|
+
"cancelled"
|
|
12071
|
+
]);
|
|
12072
|
+
/**
|
|
12073
|
+
* Where a running backup currently is. `queued` before it starts,
|
|
12074
|
+
* `building` while the tar.gz is being staged, `uploading` during the
|
|
12075
|
+
* per-destination fan-out, `done` once terminal.
|
|
12076
|
+
*/
|
|
12077
|
+
var BackupRunPhaseSchema = _enum([
|
|
12078
|
+
"queued",
|
|
12079
|
+
"building",
|
|
12080
|
+
"uploading",
|
|
12081
|
+
"done"
|
|
12082
|
+
]);
|
|
12083
|
+
/**
|
|
12084
|
+
* Observable state of one backup run — readable WHILE it runs via
|
|
12085
|
+
* `backup.listRuns`. This is what makes the execution queue and
|
|
12086
|
+
* `backup.cancel` usable: the 2026-09-04 incident (two concurrent
|
|
12087
|
+
* multi-GB builds, staging 5.1 GB → 18 GB, load 62) was only
|
|
12088
|
+
* diagnosable with `du` because nothing reported that runs existed or
|
|
12089
|
+
* how large the staged archive had grown.
|
|
12090
|
+
*/
|
|
12091
|
+
var BackupRunSchema = object({
|
|
12092
|
+
/** Stable run id — the handle `backup.cancel` takes. */
|
|
12093
|
+
id: string(),
|
|
12094
|
+
state: BackupRunStateSchema,
|
|
12095
|
+
phase: BackupRunPhaseSchema,
|
|
12096
|
+
/**
|
|
12097
|
+
* Resolved destination location ids. Empty while queued (targets are
|
|
12098
|
+
* resolved when the run starts, against the then-current policies).
|
|
12099
|
+
*/
|
|
12100
|
+
destinationIds: array(string()).readonly(),
|
|
12101
|
+
label: string().optional(),
|
|
12102
|
+
/** ms-epoch when the run was submitted (trigger call / schedule fire). */
|
|
12103
|
+
requestedAt: number(),
|
|
12104
|
+
/** ms-epoch when the run left the queue and started building. */
|
|
12105
|
+
startedAt: number().optional(),
|
|
12106
|
+
/** ms-epoch when the run reached a terminal state. */
|
|
12107
|
+
finishedAt: number().optional(),
|
|
12108
|
+
/** Compressed bytes of the staging archive written so far. */
|
|
12109
|
+
stagedBytes: number(),
|
|
12110
|
+
/** Final staged archive size, once the build phase completes. */
|
|
12111
|
+
archiveSizeBytes: number().optional(),
|
|
12112
|
+
/** Bytes pushed to the destination currently uploading. */
|
|
12113
|
+
uploadedBytes: number(),
|
|
12114
|
+
/** Destinations where the archive fully landed (uploaded + indexed). */
|
|
12115
|
+
completedDestinationIds: array(string()).readonly(),
|
|
12116
|
+
/** Destinations that failed during the fan-out. */
|
|
12117
|
+
failedDestinationIds: array(string()).readonly(),
|
|
12118
|
+
/** Failure message when `state === 'failed'`. */
|
|
12119
|
+
error: string().optional(),
|
|
12120
|
+
/**
|
|
12121
|
+
* 1-based place in the execution queue — 1 = runs next. Present only
|
|
12122
|
+
* while `state === 'queued'`. Stamped by the orchestrator from the
|
|
12123
|
+
* queue's OWN pending order, never derived from timestamps, so the
|
|
12124
|
+
* UI cannot show an order the executor will not honour.
|
|
12125
|
+
*/
|
|
12126
|
+
queuePosition: number().int().min(1).optional()
|
|
12127
|
+
});
|
|
12128
|
+
/**
|
|
12129
|
+
* Result of `backup.trigger`. The call still resolves when the run
|
|
12130
|
+
* terminates (compat with schedule-driven runs and the admin UI), but
|
|
12131
|
+
* it now names the run and says whether it had to WAIT: a trigger that
|
|
12132
|
+
* arrives while another run is in flight is enqueued (or joined onto
|
|
12133
|
+
* an identical already-queued run), never started concurrently.
|
|
12134
|
+
*/
|
|
12135
|
+
var BackupTriggerResultSchema = object({
|
|
12136
|
+
/** The run this trigger mapped to — poll it via `listRuns`, stop it via `cancel`. */
|
|
12137
|
+
runId: string(),
|
|
12138
|
+
/** True when the run waited behind an in-flight run instead of starting immediately. */
|
|
12139
|
+
queued: boolean(),
|
|
12140
|
+
/** True when this trigger was coalesced onto an identical already-queued run. */
|
|
12141
|
+
joined: boolean(),
|
|
12142
|
+
/** True when the run was cancelled before completing every destination. */
|
|
12143
|
+
cancelled: boolean(),
|
|
12144
|
+
/** One entry per destination the archive landed at (partial on cancel). */
|
|
12145
|
+
entries: array(BackupEntrySchema).readonly()
|
|
12146
|
+
});
|
|
12064
12147
|
/**
|
|
12065
12148
|
* A backup schedule — the N:M "entry" that binds one cron cadence to a
|
|
12066
12149
|
* SET of destination locations. Supersedes the per-location cron on
|
|
@@ -12108,7 +12191,10 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
|
|
|
12108
12191
|
* retention (manual runs).
|
|
12109
12192
|
*/
|
|
12110
12193
|
retentionCount: number().int().min(1).max(1e3).optional()
|
|
12111
|
-
}).optional(),
|
|
12194
|
+
}).optional(), BackupTriggerResultSchema, {
|
|
12195
|
+
kind: "mutation",
|
|
12196
|
+
auth: "admin"
|
|
12197
|
+
}), method(_void(), array(BackupRunSchema).readonly(), { auth: "admin" }), method(object({ runId: string() }), object({ cancelled: boolean() }), {
|
|
12112
12198
|
kind: "mutation",
|
|
12113
12199
|
auth: "admin"
|
|
12114
12200
|
}), method(_void(), array(BackupEntrySchema).readonly(), { auth: "admin" }), method(_void(), array(LocationStatSchema).readonly(), { auth: "admin" }), method(object({
|
|
@@ -12836,6 +12922,38 @@ var streamBrokerCapability = {
|
|
|
12836
12922
|
auth: "admin"
|
|
12837
12923
|
}),
|
|
12838
12924
|
/**
|
|
12925
|
+
* The HARDWARE behind a device number was replaced
|
|
12926
|
+
* (`deviceManager.migrateDevice`). Forget every piece of broker state that
|
|
12927
|
+
* described the old box, so the next catalog pull derives everything from
|
|
12928
|
+
* the camera that is actually there:
|
|
12929
|
+
*
|
|
12930
|
+
* - every `derived:*` stream definition — a derived is authored against a
|
|
12931
|
+
* specific profile layout, and against the wrong hardware its feeder
|
|
12932
|
+
* respawns forever (observed at attempt 2732 on the live hub,
|
|
12933
|
+
* 2026-09-01);
|
|
12934
|
+
* - the profile-slot assignment entry, PURGED (not unassigned — unassign
|
|
12935
|
+
* marks the slot manual, which would pin the stale choice instead of
|
|
12936
|
+
* letting `computeInitialAssignment` re-derive it);
|
|
12937
|
+
* - the probe snapshots (`<deviceId>/…` — probed codec/resolution of the
|
|
12938
|
+
* old hardware);
|
|
12939
|
+
* - the persisted RTSP token rows for the device's brokers (keyed
|
|
12940
|
+
* `<deviceId>/<camStreamId>`; the stream ids change with the hardware,
|
|
12941
|
+
* so the rows are dead URLs).
|
|
12942
|
+
*
|
|
12943
|
+
* An RPC, deliberately — an event is telemetry and may be dropped (D8),
|
|
12944
|
+
* and a dropped forget leaves a feeder respawning against a stream that
|
|
12945
|
+
* does not exist.
|
|
12946
|
+
*/
|
|
12947
|
+
forgetDeviceHardware: method(object({ deviceId: number().int().nonnegative() }), object({
|
|
12948
|
+
derivedStreamsDeleted: array(string()).readonly(),
|
|
12949
|
+
assignmentsPurged: boolean(),
|
|
12950
|
+
probeSnapshotsDropped: number().int().nonnegative(),
|
|
12951
|
+
rtspTokenRowsDeleted: number().int().nonnegative()
|
|
12952
|
+
}), {
|
|
12953
|
+
kind: "mutation",
|
|
12954
|
+
auth: "admin"
|
|
12955
|
+
}),
|
|
12956
|
+
/**
|
|
12839
12957
|
* Render a short GIF or MP4 from the broker's PRE-BUFFER around an instant.
|
|
12840
12958
|
*
|
|
12841
12959
|
* The pre-buffer is the only source that already holds the seconds BEFORE
|
|
@@ -14393,7 +14511,10 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
|
|
|
14393
14511
|
id: string(),
|
|
14394
14512
|
name: string(),
|
|
14395
14513
|
type: string()
|
|
14396
|
-
}))), method(object({
|
|
14514
|
+
}))), method(object({ stableId: string() }), object({ deviceId: number() }), {
|
|
14515
|
+
kind: "mutation",
|
|
14516
|
+
timeoutMs: 3 * 6e4
|
|
14517
|
+
}), method(object({}), boolean()), method(object({ params: record(string(), unknown()).optional() }), array(DiscoveryCandidateSchema), {
|
|
14397
14518
|
kind: "mutation",
|
|
14398
14519
|
auth: "admin"
|
|
14399
14520
|
}), method(object({}), CreationSchemaOutputSchema), method(object({}), object({ deviceType: _enum(DeviceType).nullable() })), method(object({ candidate: DiscoveryCandidateSchema }), DeviceSummarySchema, {
|
|
@@ -14674,7 +14795,8 @@ method(object({
|
|
|
14674
14795
|
targetId: number()
|
|
14675
14796
|
}), MigrateDeviceResultSchema, {
|
|
14676
14797
|
kind: "mutation",
|
|
14677
|
-
auth: "admin"
|
|
14798
|
+
auth: "admin",
|
|
14799
|
+
timeoutMs: 12 * 6e4
|
|
14678
14800
|
}), method(DeviceRegisterPayloadSchema, _void(), { kind: "mutation" }), method(DeviceRemovePayloadSchema, _void(), { kind: "mutation" }), method(DevicePersistConfigPayloadSchema, _void(), { kind: "mutation" }), method(object({ deviceId: number() }), record(string(), unknown())), method(object({ deviceId: number() }), record(string(), unknown())), method(object({ deviceId: number() }), DeviceMetaSchema.nullable()), method(object({
|
|
14679
14801
|
deviceId: number(),
|
|
14680
14802
|
name: string()
|
|
@@ -32555,6 +32677,12 @@ Object.freeze({
|
|
|
32555
32677
|
addonId: null,
|
|
32556
32678
|
access: "create"
|
|
32557
32679
|
},
|
|
32680
|
+
"backup.cancel": {
|
|
32681
|
+
capName: "backup",
|
|
32682
|
+
capScope: "system",
|
|
32683
|
+
addonId: null,
|
|
32684
|
+
access: "create"
|
|
32685
|
+
},
|
|
32558
32686
|
"backup.delete": {
|
|
32559
32687
|
capName: "backup",
|
|
32560
32688
|
capScope: "system",
|
|
@@ -32597,6 +32725,12 @@ Object.freeze({
|
|
|
32597
32725
|
addonId: null,
|
|
32598
32726
|
access: "view"
|
|
32599
32727
|
},
|
|
32728
|
+
"backup.listRuns": {
|
|
32729
|
+
capName: "backup",
|
|
32730
|
+
capScope: "system",
|
|
32731
|
+
addonId: null,
|
|
32732
|
+
access: "view"
|
|
32733
|
+
},
|
|
32600
32734
|
"backup.listSchedules": {
|
|
32601
32735
|
capName: "backup",
|
|
32602
32736
|
capScope: "system",
|
|
@@ -33797,6 +33931,12 @@ Object.freeze({
|
|
|
33797
33931
|
addonId: null,
|
|
33798
33932
|
access: "view"
|
|
33799
33933
|
},
|
|
33934
|
+
"deviceProvider.reloadDevice": {
|
|
33935
|
+
capName: "device-provider",
|
|
33936
|
+
capScope: "system",
|
|
33937
|
+
addonId: null,
|
|
33938
|
+
access: "create"
|
|
33939
|
+
},
|
|
33800
33940
|
"deviceProvider.start": {
|
|
33801
33941
|
capName: "device-provider",
|
|
33802
33942
|
capScope: "system",
|
|
@@ -37163,6 +37303,12 @@ Object.freeze({
|
|
|
37163
37303
|
addonId: null,
|
|
37164
37304
|
access: "create"
|
|
37165
37305
|
},
|
|
37306
|
+
"streamBroker.forgetDeviceHardware": {
|
|
37307
|
+
capName: "stream-broker",
|
|
37308
|
+
capScope: "system",
|
|
37309
|
+
addonId: null,
|
|
37310
|
+
access: "delete"
|
|
37311
|
+
},
|
|
37166
37312
|
"streamBroker.getAllRtspEntries": {
|
|
37167
37313
|
capName: "stream-broker",
|
|
37168
37314
|
capScope: "system",
|
|
@@ -39621,6 +39767,11 @@ Object.freeze({
|
|
|
39621
39767
|
form: "single",
|
|
39622
39768
|
optional: false
|
|
39623
39769
|
}],
|
|
39770
|
+
"streamBroker.forgetDeviceHardware": [{
|
|
39771
|
+
name: "deviceId",
|
|
39772
|
+
form: "single",
|
|
39773
|
+
optional: false
|
|
39774
|
+
}],
|
|
39624
39775
|
"streamBroker.getDeviceAudioMute": [{
|
|
39625
39776
|
name: "deviceId",
|
|
39626
39777
|
form: "single",
|
|
@@ -12084,6 +12084,89 @@ var LocationStatSchema = object({
|
|
|
12084
12084
|
fileCount: number(),
|
|
12085
12085
|
present: boolean()
|
|
12086
12086
|
});
|
|
12087
|
+
/** Lifecycle of a backup run. Terminal states: succeeded / failed / cancelled. */
|
|
12088
|
+
var BackupRunStateSchema = _enum([
|
|
12089
|
+
"queued",
|
|
12090
|
+
"running",
|
|
12091
|
+
"succeeded",
|
|
12092
|
+
"failed",
|
|
12093
|
+
"cancelled"
|
|
12094
|
+
]);
|
|
12095
|
+
/**
|
|
12096
|
+
* Where a running backup currently is. `queued` before it starts,
|
|
12097
|
+
* `building` while the tar.gz is being staged, `uploading` during the
|
|
12098
|
+
* per-destination fan-out, `done` once terminal.
|
|
12099
|
+
*/
|
|
12100
|
+
var BackupRunPhaseSchema = _enum([
|
|
12101
|
+
"queued",
|
|
12102
|
+
"building",
|
|
12103
|
+
"uploading",
|
|
12104
|
+
"done"
|
|
12105
|
+
]);
|
|
12106
|
+
/**
|
|
12107
|
+
* Observable state of one backup run — readable WHILE it runs via
|
|
12108
|
+
* `backup.listRuns`. This is what makes the execution queue and
|
|
12109
|
+
* `backup.cancel` usable: the 2026-09-04 incident (two concurrent
|
|
12110
|
+
* multi-GB builds, staging 5.1 GB → 18 GB, load 62) was only
|
|
12111
|
+
* diagnosable with `du` because nothing reported that runs existed or
|
|
12112
|
+
* how large the staged archive had grown.
|
|
12113
|
+
*/
|
|
12114
|
+
var BackupRunSchema = object({
|
|
12115
|
+
/** Stable run id — the handle `backup.cancel` takes. */
|
|
12116
|
+
id: string(),
|
|
12117
|
+
state: BackupRunStateSchema,
|
|
12118
|
+
phase: BackupRunPhaseSchema,
|
|
12119
|
+
/**
|
|
12120
|
+
* Resolved destination location ids. Empty while queued (targets are
|
|
12121
|
+
* resolved when the run starts, against the then-current policies).
|
|
12122
|
+
*/
|
|
12123
|
+
destinationIds: array(string()).readonly(),
|
|
12124
|
+
label: string().optional(),
|
|
12125
|
+
/** ms-epoch when the run was submitted (trigger call / schedule fire). */
|
|
12126
|
+
requestedAt: number(),
|
|
12127
|
+
/** ms-epoch when the run left the queue and started building. */
|
|
12128
|
+
startedAt: number().optional(),
|
|
12129
|
+
/** ms-epoch when the run reached a terminal state. */
|
|
12130
|
+
finishedAt: number().optional(),
|
|
12131
|
+
/** Compressed bytes of the staging archive written so far. */
|
|
12132
|
+
stagedBytes: number(),
|
|
12133
|
+
/** Final staged archive size, once the build phase completes. */
|
|
12134
|
+
archiveSizeBytes: number().optional(),
|
|
12135
|
+
/** Bytes pushed to the destination currently uploading. */
|
|
12136
|
+
uploadedBytes: number(),
|
|
12137
|
+
/** Destinations where the archive fully landed (uploaded + indexed). */
|
|
12138
|
+
completedDestinationIds: array(string()).readonly(),
|
|
12139
|
+
/** Destinations that failed during the fan-out. */
|
|
12140
|
+
failedDestinationIds: array(string()).readonly(),
|
|
12141
|
+
/** Failure message when `state === 'failed'`. */
|
|
12142
|
+
error: string().optional(),
|
|
12143
|
+
/**
|
|
12144
|
+
* 1-based place in the execution queue — 1 = runs next. Present only
|
|
12145
|
+
* while `state === 'queued'`. Stamped by the orchestrator from the
|
|
12146
|
+
* queue's OWN pending order, never derived from timestamps, so the
|
|
12147
|
+
* UI cannot show an order the executor will not honour.
|
|
12148
|
+
*/
|
|
12149
|
+
queuePosition: number().int().min(1).optional()
|
|
12150
|
+
});
|
|
12151
|
+
/**
|
|
12152
|
+
* Result of `backup.trigger`. The call still resolves when the run
|
|
12153
|
+
* terminates (compat with schedule-driven runs and the admin UI), but
|
|
12154
|
+
* it now names the run and says whether it had to WAIT: a trigger that
|
|
12155
|
+
* arrives while another run is in flight is enqueued (or joined onto
|
|
12156
|
+
* an identical already-queued run), never started concurrently.
|
|
12157
|
+
*/
|
|
12158
|
+
var BackupTriggerResultSchema = object({
|
|
12159
|
+
/** The run this trigger mapped to — poll it via `listRuns`, stop it via `cancel`. */
|
|
12160
|
+
runId: string(),
|
|
12161
|
+
/** True when the run waited behind an in-flight run instead of starting immediately. */
|
|
12162
|
+
queued: boolean(),
|
|
12163
|
+
/** True when this trigger was coalesced onto an identical already-queued run. */
|
|
12164
|
+
joined: boolean(),
|
|
12165
|
+
/** True when the run was cancelled before completing every destination. */
|
|
12166
|
+
cancelled: boolean(),
|
|
12167
|
+
/** One entry per destination the archive landed at (partial on cancel). */
|
|
12168
|
+
entries: array(BackupEntrySchema).readonly()
|
|
12169
|
+
});
|
|
12087
12170
|
/**
|
|
12088
12171
|
* A backup schedule — the N:M "entry" that binds one cron cadence to a
|
|
12089
12172
|
* SET of destination locations. Supersedes the per-location cron on
|
|
@@ -12131,7 +12214,10 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
|
|
|
12131
12214
|
* retention (manual runs).
|
|
12132
12215
|
*/
|
|
12133
12216
|
retentionCount: number().int().min(1).max(1e3).optional()
|
|
12134
|
-
}).optional(),
|
|
12217
|
+
}).optional(), BackupTriggerResultSchema, {
|
|
12218
|
+
kind: "mutation",
|
|
12219
|
+
auth: "admin"
|
|
12220
|
+
}), method(_void(), array(BackupRunSchema).readonly(), { auth: "admin" }), method(object({ runId: string() }), object({ cancelled: boolean() }), {
|
|
12135
12221
|
kind: "mutation",
|
|
12136
12222
|
auth: "admin"
|
|
12137
12223
|
}), method(_void(), array(BackupEntrySchema).readonly(), { auth: "admin" }), method(_void(), array(LocationStatSchema).readonly(), { auth: "admin" }), method(object({
|
|
@@ -12859,6 +12945,38 @@ var streamBrokerCapability = {
|
|
|
12859
12945
|
auth: "admin"
|
|
12860
12946
|
}),
|
|
12861
12947
|
/**
|
|
12948
|
+
* The HARDWARE behind a device number was replaced
|
|
12949
|
+
* (`deviceManager.migrateDevice`). Forget every piece of broker state that
|
|
12950
|
+
* described the old box, so the next catalog pull derives everything from
|
|
12951
|
+
* the camera that is actually there:
|
|
12952
|
+
*
|
|
12953
|
+
* - every `derived:*` stream definition — a derived is authored against a
|
|
12954
|
+
* specific profile layout, and against the wrong hardware its feeder
|
|
12955
|
+
* respawns forever (observed at attempt 2732 on the live hub,
|
|
12956
|
+
* 2026-09-01);
|
|
12957
|
+
* - the profile-slot assignment entry, PURGED (not unassigned — unassign
|
|
12958
|
+
* marks the slot manual, which would pin the stale choice instead of
|
|
12959
|
+
* letting `computeInitialAssignment` re-derive it);
|
|
12960
|
+
* - the probe snapshots (`<deviceId>/…` — probed codec/resolution of the
|
|
12961
|
+
* old hardware);
|
|
12962
|
+
* - the persisted RTSP token rows for the device's brokers (keyed
|
|
12963
|
+
* `<deviceId>/<camStreamId>`; the stream ids change with the hardware,
|
|
12964
|
+
* so the rows are dead URLs).
|
|
12965
|
+
*
|
|
12966
|
+
* An RPC, deliberately — an event is telemetry and may be dropped (D8),
|
|
12967
|
+
* and a dropped forget leaves a feeder respawning against a stream that
|
|
12968
|
+
* does not exist.
|
|
12969
|
+
*/
|
|
12970
|
+
forgetDeviceHardware: method(object({ deviceId: number().int().nonnegative() }), object({
|
|
12971
|
+
derivedStreamsDeleted: array(string()).readonly(),
|
|
12972
|
+
assignmentsPurged: boolean(),
|
|
12973
|
+
probeSnapshotsDropped: number().int().nonnegative(),
|
|
12974
|
+
rtspTokenRowsDeleted: number().int().nonnegative()
|
|
12975
|
+
}), {
|
|
12976
|
+
kind: "mutation",
|
|
12977
|
+
auth: "admin"
|
|
12978
|
+
}),
|
|
12979
|
+
/**
|
|
12862
12980
|
* Render a short GIF or MP4 from the broker's PRE-BUFFER around an instant.
|
|
12863
12981
|
*
|
|
12864
12982
|
* The pre-buffer is the only source that already holds the seconds BEFORE
|
|
@@ -14416,7 +14534,10 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
|
|
|
14416
14534
|
id: string(),
|
|
14417
14535
|
name: string(),
|
|
14418
14536
|
type: string()
|
|
14419
|
-
}))), method(object({
|
|
14537
|
+
}))), method(object({ stableId: string() }), object({ deviceId: number() }), {
|
|
14538
|
+
kind: "mutation",
|
|
14539
|
+
timeoutMs: 3 * 6e4
|
|
14540
|
+
}), method(object({}), boolean()), method(object({ params: record(string(), unknown()).optional() }), array(DiscoveryCandidateSchema), {
|
|
14420
14541
|
kind: "mutation",
|
|
14421
14542
|
auth: "admin"
|
|
14422
14543
|
}), method(object({}), CreationSchemaOutputSchema), method(object({}), object({ deviceType: _enum(DeviceType).nullable() })), method(object({ candidate: DiscoveryCandidateSchema }), DeviceSummarySchema, {
|
|
@@ -14697,7 +14818,8 @@ method(object({
|
|
|
14697
14818
|
targetId: number()
|
|
14698
14819
|
}), MigrateDeviceResultSchema, {
|
|
14699
14820
|
kind: "mutation",
|
|
14700
|
-
auth: "admin"
|
|
14821
|
+
auth: "admin",
|
|
14822
|
+
timeoutMs: 12 * 6e4
|
|
14701
14823
|
}), method(DeviceRegisterPayloadSchema, _void(), { kind: "mutation" }), method(DeviceRemovePayloadSchema, _void(), { kind: "mutation" }), method(DevicePersistConfigPayloadSchema, _void(), { kind: "mutation" }), method(object({ deviceId: number() }), record(string(), unknown())), method(object({ deviceId: number() }), record(string(), unknown())), method(object({ deviceId: number() }), DeviceMetaSchema.nullable()), method(object({
|
|
14702
14824
|
deviceId: number(),
|
|
14703
14825
|
name: string()
|
|
@@ -32578,6 +32700,12 @@ Object.freeze({
|
|
|
32578
32700
|
addonId: null,
|
|
32579
32701
|
access: "create"
|
|
32580
32702
|
},
|
|
32703
|
+
"backup.cancel": {
|
|
32704
|
+
capName: "backup",
|
|
32705
|
+
capScope: "system",
|
|
32706
|
+
addonId: null,
|
|
32707
|
+
access: "create"
|
|
32708
|
+
},
|
|
32581
32709
|
"backup.delete": {
|
|
32582
32710
|
capName: "backup",
|
|
32583
32711
|
capScope: "system",
|
|
@@ -32620,6 +32748,12 @@ Object.freeze({
|
|
|
32620
32748
|
addonId: null,
|
|
32621
32749
|
access: "view"
|
|
32622
32750
|
},
|
|
32751
|
+
"backup.listRuns": {
|
|
32752
|
+
capName: "backup",
|
|
32753
|
+
capScope: "system",
|
|
32754
|
+
addonId: null,
|
|
32755
|
+
access: "view"
|
|
32756
|
+
},
|
|
32623
32757
|
"backup.listSchedules": {
|
|
32624
32758
|
capName: "backup",
|
|
32625
32759
|
capScope: "system",
|
|
@@ -33820,6 +33954,12 @@ Object.freeze({
|
|
|
33820
33954
|
addonId: null,
|
|
33821
33955
|
access: "view"
|
|
33822
33956
|
},
|
|
33957
|
+
"deviceProvider.reloadDevice": {
|
|
33958
|
+
capName: "device-provider",
|
|
33959
|
+
capScope: "system",
|
|
33960
|
+
addonId: null,
|
|
33961
|
+
access: "create"
|
|
33962
|
+
},
|
|
33823
33963
|
"deviceProvider.start": {
|
|
33824
33964
|
capName: "device-provider",
|
|
33825
33965
|
capScope: "system",
|
|
@@ -37186,6 +37326,12 @@ Object.freeze({
|
|
|
37186
37326
|
addonId: null,
|
|
37187
37327
|
access: "create"
|
|
37188
37328
|
},
|
|
37329
|
+
"streamBroker.forgetDeviceHardware": {
|
|
37330
|
+
capName: "stream-broker",
|
|
37331
|
+
capScope: "system",
|
|
37332
|
+
addonId: null,
|
|
37333
|
+
access: "delete"
|
|
37334
|
+
},
|
|
37189
37335
|
"streamBroker.getAllRtspEntries": {
|
|
37190
37336
|
capName: "stream-broker",
|
|
37191
37337
|
capScope: "system",
|
|
@@ -39644,6 +39790,11 @@ Object.freeze({
|
|
|
39644
39790
|
form: "single",
|
|
39645
39791
|
optional: false
|
|
39646
39792
|
}],
|
|
39793
|
+
"streamBroker.forgetDeviceHardware": [{
|
|
39794
|
+
name: "deviceId",
|
|
39795
|
+
form: "single",
|
|
39796
|
+
optional: false
|
|
39797
|
+
}],
|
|
39647
39798
|
"streamBroker.getDeviceAudioMute": [{
|
|
39648
39799
|
name: "deviceId",
|
|
39649
39800
|
form: "single",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { M as audioKindId, Z as hfModelUrl, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS } from "./dist-
|
|
1
|
+
import { M as audioKindId, Z as hfModelUrl, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS } from "./dist-D35w3ngN.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
//#region src/detection-pipeline/registry/model-catalogs.ts
|
|
4
4
|
var HF_REPO = "camstack/camstack-models";
|
|
@@ -2,8 +2,8 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
6
|
-
const require_lazy_sharp = require("../lazy-sharp-
|
|
5
|
+
const require_dist = require("../dist-DSJDq5hY.js");
|
|
6
|
+
const require_lazy_sharp = require("../lazy-sharp-Fre6HHg6.js");
|
|
7
7
|
let node_fs = require("node:fs");
|
|
8
8
|
let node_path = require("node:path");
|
|
9
9
|
//#region src/motion-wasm/wasm-motion-detector.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { It as hydrateSchema, Pt as DeviceType, Y as evaluateZoneRules, it as motionDetectionCapability, jt as BaseAddon } from "../dist-
|
|
1
|
+
import { It as hydrateSchema, Pt as DeviceType, Y as evaluateZoneRules, it as motionDetectionCapability, jt as BaseAddon } from "../dist-D35w3ngN.mjs";
|
|
2
2
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
3
3
|
import { readFileSync } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Dt as buildFfmpegArgs, Et as Fmp4BoxSplitter, kt as isSoftwareDecode, wt as errMsg } from "./dist-
|
|
1
|
+
import { Dt as buildFfmpegArgs, Et as Fmp4BoxSplitter, kt as isSoftwareDecode, wt as errMsg } from "./dist-D35w3ngN.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import "node:fs";
|
|
4
4
|
import "node:path";
|