@camstack/addon-model-studio 1.1.215 → 1.1.217
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/{MotionZonesSettings-DXSyjvNy.mjs → MotionZonesSettings-B4T-Lq49.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-BylU0nae.mjs → PrivacyMaskSettings-RuT2sLzN.mjs} +4 -4
- package/dist/{SceneMonitorEditor-DzSlJ6_E.mjs → SceneMonitorEditor-BnWT3tyK.mjs} +3 -3
- package/dist/_stub.js +46 -39
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-BO3dLQ3f.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-BPVoz67A.mjs} +4 -4
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DgQsf8Wc.mjs +26 -0
- package/dist/addon-model-studio.css +1 -1
- package/dist/{hostInit-Dzfl__ZV.mjs → hostInit-zqvyamS8.mjs} +3 -3
- package/dist/model-studio.addon.js +99 -328
- package/dist/model-studio.addon.mjs +99 -328
- package/dist/{player-overlays-B4n780bX.mjs → player-overlays-BU4aAx02.mjs} +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-D44B_0jH.mjs → responsive-CU7BiLwa.mjs} +1 -1
- package/dist/{scene-monitor-copy-jhFEkFsr.mjs → scene-monitor-copy-BX9UvcxQ.mjs} +1 -1
- package/dist/{square-CsSCYWAC.mjs → square-DhCedQoj.mjs} +1 -1
- package/dist/{trash-2-B7yfTgaq.mjs → trash-2-BCjCExeI.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-BMJU4Yku.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-XvoS0Enz.mjs} +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Ct7N7aeG.mjs +0 -26
|
@@ -367,7 +367,7 @@ function buildScryptedRegistryDescriptor(entry) {
|
|
|
367
367
|
};
|
|
368
368
|
}
|
|
369
369
|
//#endregion
|
|
370
|
-
//#region ../types/dist/event-category-
|
|
370
|
+
//#region ../types/dist/event-category-B_0XEcLF.mjs
|
|
371
371
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
372
372
|
EventCategory["SystemBoot"] = "system.boot";
|
|
373
373
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -868,15 +868,6 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
868
868
|
EventCategory["AgentWsDisconnected"] = "agent.ws.disconnected";
|
|
869
869
|
EventCategory["AgentBackupActivated"] = "agent.backup.activated";
|
|
870
870
|
EventCategory["OrchestrationSettingsUpdated"] = "orchestration.settings-updated";
|
|
871
|
-
/**
|
|
872
|
-
* Per-agent hwaccel preference changed (user override set, cleared, or
|
|
873
|
-
* re-probed). Observability event — decoders pull the current pref at
|
|
874
|
-
* `createSession`, so running sessions keep their current backend until
|
|
875
|
-
* they rotate naturally (camera add/remove, stream restart). Future
|
|
876
|
-
* work can wire a listener in stream-broker that force-rotates live
|
|
877
|
-
* sessions; for now this event powers logs + admin-UI toast feedback.
|
|
878
|
-
*/
|
|
879
|
-
EventCategory["PipelineAgentHwaccelChanged"] = "pipeline.agent-hwaccel-changed";
|
|
880
871
|
EventCategory["MotionAnalysis"] = "detection.motion-analysis";
|
|
881
872
|
/** All raw motion zones from CCL before minArea filter — for UI debug overlay. */
|
|
882
873
|
EventCategory["MotionZonesRaw"] = "detection.motion-zones-raw";
|
|
@@ -5747,7 +5738,7 @@ var ZodIssueCode = {
|
|
|
5747
5738
|
var ZodFirstPartyTypeKind;
|
|
5748
5739
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5749
5740
|
//#endregion
|
|
5750
|
-
//#region ../types/dist/sleep-
|
|
5741
|
+
//#region ../types/dist/sleep-BNeXenvr.mjs
|
|
5751
5742
|
/**
|
|
5752
5743
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5753
5744
|
* window to float samples (D455).
|
|
@@ -7113,32 +7104,12 @@ object({
|
|
|
7113
7104
|
audioCodec: string().optional(),
|
|
7114
7105
|
metadata: record(string(), unknown()).readonly().optional()
|
|
7115
7106
|
});
|
|
7116
|
-
var EncodedPacketSchema = object({
|
|
7117
|
-
type: _enum(["video", "audio"]),
|
|
7118
|
-
data: _instanceof(Uint8Array),
|
|
7119
|
-
pts: number(),
|
|
7120
|
-
dts: number(),
|
|
7121
|
-
keyframe: boolean(),
|
|
7122
|
-
codec: string()
|
|
7123
|
-
});
|
|
7124
|
-
var DecodedFrameSchema = object({
|
|
7125
|
-
data: _instanceof(Uint8Array),
|
|
7126
|
-
width: number(),
|
|
7127
|
-
height: number(),
|
|
7128
|
-
format: _enum([
|
|
7129
|
-
"jpeg",
|
|
7130
|
-
"rgb",
|
|
7131
|
-
"bgr",
|
|
7132
|
-
"yuv420",
|
|
7133
|
-
"gray"
|
|
7134
|
-
]),
|
|
7135
|
-
timestamp: number()
|
|
7136
|
-
});
|
|
7137
7107
|
/**
|
|
7138
7108
|
* Wire schema for `FrameHandle` — a zero-pixel, serialisable reference to a
|
|
7139
7109
|
* frame in a shared-memory ring (Phase 5 / D9). Mirrors the `FrameHandle` TS
|
|
7140
|
-
* interface in `interfaces/frame-handle.ts` field-for-field so a
|
|
7141
|
-
*
|
|
7110
|
+
* interface in `interfaces/frame-handle.ts` field-for-field so a cap method
|
|
7111
|
+
* (the runner's native-crop and pipeline-executor inputs) can carry handles
|
|
7112
|
+
* over tRPC / Moleculer.
|
|
7142
7113
|
*
|
|
7143
7114
|
* The `satisfies` assertion below pins this schema to the interface: if a
|
|
7144
7115
|
* field is added to / removed from `FrameHandle` without a matching schema
|
|
@@ -7164,50 +7135,6 @@ var FrameHandleSchema = object({
|
|
|
7164
7135
|
slotCount: number().int().positive()
|
|
7165
7136
|
});
|
|
7166
7137
|
/**
|
|
7167
|
-
* Pixel format a frame-handle subscriber can request from the broker
|
|
7168
|
-
* (Phase 5 / D9). The packed, raster subset of `FrameFormat` — the formats a
|
|
7169
|
-
* `frameSink: 'shm'` decoder session can write into a `FrameRing` slot.
|
|
7170
|
-
* `jpeg` is excluded: a variable-length stream is not a fixed-stride ring
|
|
7171
|
-
* payload, and no decoded-frame consumer requests it over the shm plane.
|
|
7172
|
-
*/
|
|
7173
|
-
var FrameHandleFormatSchema = _enum([
|
|
7174
|
-
"rgb",
|
|
7175
|
-
"bgr",
|
|
7176
|
-
"yuv420",
|
|
7177
|
-
"gray"
|
|
7178
|
-
]);
|
|
7179
|
-
/**
|
|
7180
|
-
* Input for `stream-broker.subscribeFrames` (Phase 5 / D9). A consumer asks the
|
|
7181
|
-
* broker for a `FrameHandle` stream of one `format`; the broker maintains one
|
|
7182
|
-
* shared-memory ring per `(brokerId, format)` actually requested, so a `gray`
|
|
7183
|
-
* subscriber (motion) and an `rgb` subscriber (detection) each read the format
|
|
7184
|
-
* they asked for with no broker-side conversion.
|
|
7185
|
-
*/
|
|
7186
|
-
var SubscribeFramesInputSchema = object({
|
|
7187
|
-
brokerId: string(),
|
|
7188
|
-
format: FrameHandleFormatSchema,
|
|
7189
|
-
/**
|
|
7190
|
-
* Optional reader-side cadence hint in frames per second. The broker does
|
|
7191
|
-
* NOT throttle — latest-wins ring reads drop frames implicitly for a slow
|
|
7192
|
-
* consumer. The value is echoed back in `SubscribeFramesResult.maxFps` so
|
|
7193
|
-
* the consumer can pace its own `pullFrameHandles` polling.
|
|
7194
|
-
*/
|
|
7195
|
-
maxFps: number().positive().optional(),
|
|
7196
|
-
/** Short caller-identity tag (`motion`, `detection`, …) for diagnostics. */
|
|
7197
|
-
tag: string().optional()
|
|
7198
|
-
});
|
|
7199
|
-
/**
|
|
7200
|
-
* Result of `stream-broker.subscribeFrames`. The consumer then polls
|
|
7201
|
-
* `pullFrameHandles({ subscriptionId, maxCount })` and feeds each returned
|
|
7202
|
-
* `FrameHandle` to a `FrameRingReader`.
|
|
7203
|
-
*/
|
|
7204
|
-
var SubscribeFramesResultSchema = object({
|
|
7205
|
-
/** Opaque id the consumer passes to `pullFrameHandles` / `unsubscribeFrames`. */
|
|
7206
|
-
subscriptionId: string(),
|
|
7207
|
-
/** Reader-side cadence hint (frames/s) — echoes `SubscribeFramesInput.maxFps`. */
|
|
7208
|
-
maxFps: number().nonnegative()
|
|
7209
|
-
});
|
|
7210
|
-
/**
|
|
7211
7138
|
* Wire schema for a decoded audio chunk (Phase 5 / D9). Mirrors the
|
|
7212
7139
|
* `DecodedAudioChunk` TS interface in `interfaces/stream-broker.ts`: PCM
|
|
7213
7140
|
* sample bytes plus the track parameters a consumer needs to interpret them.
|
|
@@ -7215,8 +7142,8 @@ var SubscribeFramesResultSchema = object({
|
|
|
7215
7142
|
* Audio chunks are tiny (a ~500ms AudioCodecSession window is a few KB of
|
|
7216
7143
|
* Float32 PCM), so unlike video frames they ship their bytes INLINE over
|
|
7217
7144
|
* tRPC / Moleculer — no shared-memory plane. `data` is typed `Uint8Array`
|
|
7218
|
-
* (the wire-serialisable supertype of `Buffer`)
|
|
7219
|
-
*
|
|
7145
|
+
* (the wire-serialisable supertype of `Buffer`); a `Buffer` is assignable to
|
|
7146
|
+
* it.
|
|
7220
7147
|
*/
|
|
7221
7148
|
var AudioChunkFormatSchema = _enum(AUDIO_CHUNK_FORMATS);
|
|
7222
7149
|
var DecodedAudioChunkSchema = object({
|
|
@@ -7234,11 +7161,10 @@ var DecodedAudioChunkSchema = object({
|
|
|
7234
7161
|
format: AudioChunkFormatSchema.optional()
|
|
7235
7162
|
});
|
|
7236
7163
|
/**
|
|
7237
|
-
* Input for `stream-broker.subscribeAudioChunks` (Phase 5 / D9).
|
|
7238
|
-
*
|
|
7239
|
-
*
|
|
7240
|
-
*
|
|
7241
|
-
* `pullAudioChunks`.
|
|
7164
|
+
* Input for `stream-broker.subscribeAudioChunks` (Phase 5 / D9). Audio ships
|
|
7165
|
+
* its bytes inline: a consumer asks the broker for the decoded audio-chunk
|
|
7166
|
+
* stream of one broker; the broker keeps a per-subscription bounded FIFO queue
|
|
7167
|
+
* the consumer drains via `pullAudioChunks`.
|
|
7242
7168
|
*/
|
|
7243
7169
|
var SubscribeAudioChunksInputSchema = object({
|
|
7244
7170
|
brokerId: string(),
|
|
@@ -7269,9 +7195,7 @@ var BrokerStatsSchema = object({
|
|
|
7269
7195
|
"stopped"
|
|
7270
7196
|
]),
|
|
7271
7197
|
inputFps: number(),
|
|
7272
|
-
decodeFps: number(),
|
|
7273
7198
|
encodedSubscribers: number(),
|
|
7274
|
-
decodedSubscribers: number(),
|
|
7275
7199
|
uptimeMs: number(),
|
|
7276
7200
|
bitrateKbps: number(),
|
|
7277
7201
|
idrIntervalMs: number(),
|
|
@@ -7284,14 +7208,6 @@ var BrokerStatsSchema = object({
|
|
|
7284
7208
|
preBufferMs: number(),
|
|
7285
7209
|
preBufferPackets: number(),
|
|
7286
7210
|
/**
|
|
7287
|
-
* Moleculer node id of the decoder provider currently servicing this
|
|
7288
|
-
* stream's decoded subscribers. `null` until the deferred decoder is
|
|
7289
|
-
* created (no decoded clients yet, or codec not detected). Surfaces the
|
|
7290
|
-
* runtime decoder placement so the UI can show "Decoder: <agent>" without
|
|
7291
|
-
* a separate cap call per broker.
|
|
7292
|
-
*/
|
|
7293
|
-
decoderNodeId: string().nullable(),
|
|
7294
|
-
/**
|
|
7295
7211
|
* Detected audio track parameters from the RTSP DESCRIBE / SDP. `null`
|
|
7296
7212
|
* when the stream has no audio track or the broker is in cold start.
|
|
7297
7213
|
* `supported = false` means the codec was detected but the local
|
|
@@ -10694,70 +10610,6 @@ var StorageLocationDeclarationSchema = object({
|
|
|
10694
10610
|
"backup"
|
|
10695
10611
|
]).optional()
|
|
10696
10612
|
});
|
|
10697
|
-
var DecoderStatsSchema = object({
|
|
10698
|
-
inputFps: number(),
|
|
10699
|
-
outputFps: number(),
|
|
10700
|
-
avgDecodeTimeMs: number(),
|
|
10701
|
-
droppedFrames: number(),
|
|
10702
|
-
/**
|
|
10703
|
-
* Pull-mode adaptive-fps telemetry (optional — only pull sessions run the
|
|
10704
|
-
* lag-driven controller; push sessions omit these). `lagMs` is the EWMA of
|
|
10705
|
-
* the decoder's real-time drift (rising = falling behind live); `adaptiveFps`
|
|
10706
|
-
* is the current lag-throttled emit rate (≤ `effectiveFps` ceiling).
|
|
10707
|
-
*/
|
|
10708
|
-
lagMs: number().optional(),
|
|
10709
|
-
effectiveFps: number().optional(),
|
|
10710
|
-
adaptiveFps: number().optional()
|
|
10711
|
-
});
|
|
10712
|
-
var DecoderSessionConfigSchema = object({
|
|
10713
|
-
codec: string(),
|
|
10714
|
-
maxFps: number().default(0),
|
|
10715
|
-
outputFormat: _enum([
|
|
10716
|
-
"jpeg",
|
|
10717
|
-
"rgb",
|
|
10718
|
-
"bgr",
|
|
10719
|
-
"yuv420",
|
|
10720
|
-
"gray"
|
|
10721
|
-
]).default("jpeg"),
|
|
10722
|
-
scale: number().default(1),
|
|
10723
|
-
width: number().optional(),
|
|
10724
|
-
height: number().optional(),
|
|
10725
|
-
/**
|
|
10726
|
-
* Identifier of the camera this decoder session serves. Optional
|
|
10727
|
-
* because the cap is generic (any caller could request decode), but
|
|
10728
|
-
* stream-broker passes it so decoder logs include `deviceId` for
|
|
10729
|
-
* per-camera filtering when diagnosing failures (e.g. node-av
|
|
10730
|
-
* sendPacket errors on a single hung camera).
|
|
10731
|
-
*/
|
|
10732
|
-
deviceId: number().int().nonnegative().optional(),
|
|
10733
|
-
/**
|
|
10734
|
-
* Free-form tag for log scoping. Stream-broker uses
|
|
10735
|
-
* `broker:<deviceId>/<profile>`. Decoder session logger surfaces it
|
|
10736
|
-
* on every line so `grep tag=broker:5/high` filters one camera
|
|
10737
|
-
* profile cleanly.
|
|
10738
|
-
*/
|
|
10739
|
-
tag: string().optional(),
|
|
10740
|
-
/**
|
|
10741
|
-
* Where the session delivers decoded frames (Phase 5 / D9):
|
|
10742
|
-
*
|
|
10743
|
-
* - `'callback'` (default) — the legacy pixel path: decoded frames are
|
|
10744
|
-
* buffered as `DecodedFrame`s and drained via `pullFrames`.
|
|
10745
|
-
* - `'shm'` — the shared-memory frame plane: decoded frames are written
|
|
10746
|
-
* into an OS shared-memory ring and drained as zero-pixel
|
|
10747
|
-
* `FrameHandle`s via `pullHandles`. A session is one mode or the
|
|
10748
|
-
* other — `pullFrames` returns nothing for an `'shm'` session and
|
|
10749
|
-
* `pullHandles` returns nothing for a `'callback'` session.
|
|
10750
|
-
*/
|
|
10751
|
-
frameSink: _enum(["callback", "shm"]).default("callback"),
|
|
10752
|
-
/**
|
|
10753
|
-
* Per-camera decoder DEBUG facility. When `true`, a pull-mode session emits
|
|
10754
|
-
* a throttled (~1Hz) structured `decoder debug` line (effective/adaptive fps,
|
|
10755
|
-
* real-time lag, dropped-frame delta, avg decode time, hwaccel). Mirrors the
|
|
10756
|
-
* stream-broker's `streamingDebug` gate — off by default so production logs
|
|
10757
|
-
* stay quiet and the emit path pays zero per-frame cost when disabled.
|
|
10758
|
-
*/
|
|
10759
|
-
debug: boolean().optional()
|
|
10760
|
-
});
|
|
10761
10613
|
/**
|
|
10762
10614
|
* Per-component log CHANNELS — the gate a hot path consults, and the registry
|
|
10763
10615
|
* an addon declares its channels in.
|
|
@@ -13060,13 +12912,6 @@ var BrokerRtspClientSchema = object({
|
|
|
13060
12912
|
lastRtpAt: number(),
|
|
13061
12913
|
bytesSent: number()
|
|
13062
12914
|
});
|
|
13063
|
-
var BrokerDecodedClientSchema = object({
|
|
13064
|
-
tag: string(),
|
|
13065
|
-
subscribedAt: number(),
|
|
13066
|
-
maxFps: number(),
|
|
13067
|
-
framesDelivered: number(),
|
|
13068
|
-
framesDropped: number()
|
|
13069
|
-
});
|
|
13070
12915
|
var BrokerAudioClientSchema = object({
|
|
13071
12916
|
tag: string(),
|
|
13072
12917
|
subscribedAt: number(),
|
|
@@ -13158,7 +13003,6 @@ var BrokerEncodedClientSchema = object({
|
|
|
13158
13003
|
});
|
|
13159
13004
|
var BrokerClientsSchema = object({
|
|
13160
13005
|
rtsp: array(BrokerRtspClientSchema).readonly(),
|
|
13161
|
-
decoded: array(BrokerDecodedClientSchema).readonly(),
|
|
13162
13006
|
audio: array(BrokerAudioClientSchema).readonly(),
|
|
13163
13007
|
encoded: array(BrokerEncodedClientSchema).readonly(),
|
|
13164
13008
|
pipeClients: number(),
|
|
@@ -13527,11 +13371,7 @@ method(object({
|
|
|
13527
13371
|
auth: "admin"
|
|
13528
13372
|
}), method(object({ brokerId: string() }), BrokerClientsSchema), method(object({
|
|
13529
13373
|
brokerId: string(),
|
|
13530
|
-
channel: _enum([
|
|
13531
|
-
"rtsp",
|
|
13532
|
-
"decoded",
|
|
13533
|
-
"audio"
|
|
13534
|
-
]),
|
|
13374
|
+
channel: _enum(["rtsp", "audio"]),
|
|
13535
13375
|
handle: string()
|
|
13536
13376
|
}), object({ killed: boolean() }), {
|
|
13537
13377
|
kind: "mutation",
|
|
@@ -13566,10 +13406,7 @@ method(object({
|
|
|
13566
13406
|
}), method(SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, { kind: "mutation" }), method(object({
|
|
13567
13407
|
subscriptionId: string(),
|
|
13568
13408
|
maxCount: number().int().positive().default(8)
|
|
13569
|
-
}), array(DecodedAudioChunkSchema).readonly()), method(object({ subscriptionId: string() }), object({ released: boolean() }), { kind: "mutation" }), method(
|
|
13570
|
-
subscriptionId: string(),
|
|
13571
|
-
maxCount: number().int().positive().default(4)
|
|
13572
|
-
}), array(FrameHandleSchema).readonly()), method(object({ subscriptionId: string() }), object({ released: boolean() }), { kind: "mutation" }), method(object({
|
|
13409
|
+
}), array(DecodedAudioChunkSchema).readonly()), method(object({ subscriptionId: string() }), object({ released: boolean() }), { kind: "mutation" }), method(object({
|
|
13573
13410
|
brokerId: string(),
|
|
13574
13411
|
seconds: number().min(0).max(30)
|
|
13575
13412
|
}), _void(), {
|
|
@@ -14742,54 +14579,12 @@ id: union([string(), number()]) }), {
|
|
|
14742
14579
|
kind: "mutation",
|
|
14743
14580
|
auth: "admin"
|
|
14744
14581
|
});
|
|
14745
|
-
|
|
14746
|
-
* shm ring usage stats for a `frameSink: 'shm'` decoder session —
|
|
14747
|
-
* exposed via `decoder.getShmStats` so downstream consumers can
|
|
14748
|
-
* observe ring pressure (slot count, byte budget, hit/miss ratio).
|
|
14749
|
-
*/
|
|
14750
|
-
var ShmRingStatsSchema = object({
|
|
14751
|
-
sessionId: string(),
|
|
14752
|
-
slotCount: number().int(),
|
|
14753
|
-
slotByteLength: number().int(),
|
|
14754
|
-
segmentBytes: number().int(),
|
|
14755
|
-
budgetMb: number().int(),
|
|
14756
|
-
framesWritten: number().int(),
|
|
14757
|
-
getFrameHits: number().int(),
|
|
14758
|
-
getFrameMisses: number().int()
|
|
14759
|
-
});
|
|
14760
|
-
method(object({ codec: string() }), boolean()), method(_void(), object({
|
|
14582
|
+
method(_void(), object({
|
|
14761
14583
|
id: string(),
|
|
14762
14584
|
name: string(),
|
|
14763
|
-
isPullMode: boolean().optional(),
|
|
14764
|
-
priority: number().optional(),
|
|
14765
14585
|
hwaccel: string().optional(),
|
|
14766
14586
|
probedBestHwaccel: string().optional()
|
|
14767
|
-
})), method(
|
|
14768
|
-
sessionId: string(),
|
|
14769
|
-
nodeId: string()
|
|
14770
|
-
})), method(object({ sessionId: string() }), _void()), method(object({
|
|
14771
|
-
sessionId: string(),
|
|
14772
|
-
packet: EncodedPacketSchema
|
|
14773
|
-
}), _void()), method(object({
|
|
14774
|
-
sessionId: string(),
|
|
14775
|
-
url: string()
|
|
14776
|
-
}), _void()), method(object({
|
|
14777
|
-
sessionId: string(),
|
|
14778
|
-
maxCount: number().default(1),
|
|
14779
|
-
waitMs: number().optional()
|
|
14780
|
-
}), array(DecodedFrameSchema)), method(object({
|
|
14781
|
-
sessionId: string(),
|
|
14782
|
-
maxCount: number().default(1),
|
|
14783
|
-
waitMs: number().optional()
|
|
14784
|
-
}), array(FrameHandleSchema)), method(object({ handle: FrameHandleSchema }), DecodedFrameSchema.nullable()), method(object({ sessionId: string() }), ShmRingStatsSchema.nullable()), method(object({
|
|
14785
|
-
sessionId: string(),
|
|
14786
|
-
config: DecoderSessionConfigSchema.partial()
|
|
14787
|
-
}), _void()), method(object({ sessionId: string() }), DecoderStatsSchema), method(_void(), array(object({
|
|
14788
|
-
sessionId: string(),
|
|
14789
|
-
codec: string(),
|
|
14790
|
-
outputFormat: string(),
|
|
14791
|
-
createdAtMs: number()
|
|
14792
|
-
})).readonly()), method(_void(), object({ backend: string() }), {
|
|
14587
|
+
})), method(_void(), object({ backend: string() }), {
|
|
14793
14588
|
kind: "mutation",
|
|
14794
14589
|
auth: "admin"
|
|
14795
14590
|
});
|
|
@@ -21815,8 +21610,8 @@ Object.freeze(Object.fromEntries([{
|
|
|
21815
21610
|
var CLUSTER_STEP_SETTING_FIELDS = [{
|
|
21816
21611
|
stepId: "face-embedding",
|
|
21817
21612
|
key: "minLandmarkFaceSize",
|
|
21818
|
-
label: "Min face size
|
|
21819
|
-
description: "
|
|
21613
|
+
label: "Min face size to embed (detection-frame px)",
|
|
21614
|
+
description: "Faces smaller than this in the small frame the detector sees are not embedded, so they can never be recognised. Below it the face cannot be aligned reliably and a bad embedding matches everyone. Same value on every node. 0 = no limit.",
|
|
21820
21615
|
type: "slider",
|
|
21821
21616
|
min: 0,
|
|
21822
21617
|
max: 64,
|
|
@@ -25489,14 +25284,15 @@ var RunnerLocalLoadSchema = object({
|
|
|
25489
25284
|
* Per-inference-device live load (multi-device C4). One entry per deviceKey
|
|
25490
25285
|
* this runner currently has attached cameras on, so the orchestrator's second
|
|
25491
25286
|
* `balance()` pass (over a node's devices) weights on real per-pool session
|
|
25492
|
-
* counts. Empty on single-device / pre-multi-device runners.
|
|
25493
|
-
* per
|
|
25287
|
+
* counts. Empty on single-device / pre-multi-device runners. There is no
|
|
25288
|
+
* per-device queue depth: the inference pool's backlog has no accessor, and
|
|
25289
|
+
* a field that always read 0 was removed rather than shown as a measurement
|
|
25290
|
+
* (D762).
|
|
25494
25291
|
*/
|
|
25495
25292
|
devices: array(object({
|
|
25496
25293
|
deviceKey: string(),
|
|
25497
25294
|
backend: string(),
|
|
25498
|
-
attachedCameras: number()
|
|
25499
|
-
queueDepthTotal: number()
|
|
25295
|
+
attachedCameras: number()
|
|
25500
25296
|
})).default([]),
|
|
25501
25297
|
/** Hardware capability flags reported by this node. */
|
|
25502
25298
|
hardware: object({
|
|
@@ -25819,7 +25615,10 @@ var PipelineAssignmentSchema = object({
|
|
|
25819
25615
|
});
|
|
25820
25616
|
/**
|
|
25821
25617
|
* Per-agent load summary surfaced to the load balancer + dashboards.
|
|
25822
|
-
* Aggregated from each runner's `getLocalLoad` cap call.
|
|
25618
|
+
* Aggregated from each runner's `getLocalLoad` cap call. In the
|
|
25619
|
+
* `getAgentLoad` report, a single-device node's default-pool sessions (no
|
|
25620
|
+
* `deviceKey`) are credited to its one eligible device in `load.devices` —
|
|
25621
|
+
* the default pool IS that device (D745); the balancer's census stays raw.
|
|
25823
25622
|
*/
|
|
25824
25623
|
var AgentLoadSummarySchema = object({
|
|
25825
25624
|
nodeId: string(),
|
|
@@ -25908,8 +25707,14 @@ var CameraBrokerStatusSchema = object({
|
|
|
25908
25707
|
width: number(),
|
|
25909
25708
|
height: number(),
|
|
25910
25709
|
subscribers: number(),
|
|
25911
|
-
|
|
25912
|
-
|
|
25710
|
+
/**
|
|
25711
|
+
* Encoded packets/s the broker receives from the camera. null when the
|
|
25712
|
+
* broker's stats read failed — unknown, never 0 (a 0 here reads as a stall).
|
|
25713
|
+
* There is no output rate: decoding runs in the session decode workers, not
|
|
25714
|
+
* in the broker, so the broker's own decoded-frame rate is 0 on every live
|
|
25715
|
+
* camera and is not served (D758).
|
|
25716
|
+
*/
|
|
25717
|
+
inFps: number().nullable()
|
|
25913
25718
|
})).readonly(),
|
|
25914
25719
|
webrtcSessions: number(),
|
|
25915
25720
|
rtspRestream: boolean()
|
|
@@ -28595,8 +28400,6 @@ var WebrtcStreamChoiceSchema = object({
|
|
|
28595
28400
|
]).nullable(),
|
|
28596
28401
|
/** Input FPS from the camera (null for adaptive). */
|
|
28597
28402
|
inputFps: number().nullable(),
|
|
28598
|
-
/** Decoded FPS (null for adaptive). */
|
|
28599
|
-
decodeFps: number().nullable(),
|
|
28600
28403
|
/** Bitrate in kbps (null for adaptive). */
|
|
28601
28404
|
bitrateKbps: number().nullable()
|
|
28602
28405
|
});
|
|
@@ -29175,6 +28978,59 @@ var AddonAutoUpdateSchema = ChannelWithInheritSchema;
|
|
|
29175
28978
|
var RestartAddonResultSchema = unknown();
|
|
29176
28979
|
var InstallPackageResultSchema = unknown();
|
|
29177
28980
|
var ReloadPackagesResultSchema = unknown();
|
|
28981
|
+
/**
|
|
28982
|
+
* What an uninstall did on ONE node.
|
|
28983
|
+
* - `uninstalled` — removed: runner(s) stopped, caps gone, code deleted.
|
|
28984
|
+
* - `not-installed` — the node did not have it (nothing to do).
|
|
28985
|
+
* - `refused` — protected / bootstrap package; nothing touched.
|
|
28986
|
+
* - `failed` — attempted and did not complete; `error` says why.
|
|
28987
|
+
* - `pending-reconnect` — the node is OFFLINE: its record was pruned so the
|
|
28988
|
+
* back-fill never returns the package, and the stale-addon sweep removes the
|
|
28989
|
+
* copy when the node registers again (only once the hub no longer has it).
|
|
28990
|
+
*/
|
|
28991
|
+
var UninstallNodeOutcomeSchema = _enum([
|
|
28992
|
+
"uninstalled",
|
|
28993
|
+
"not-installed",
|
|
28994
|
+
"refused",
|
|
28995
|
+
"failed",
|
|
28996
|
+
"pending-reconnect"
|
|
28997
|
+
]);
|
|
28998
|
+
var UninstallNodeResultSchema = object({
|
|
28999
|
+
nodeId: string(),
|
|
29000
|
+
outcome: UninstallNodeOutcomeSchema,
|
|
29001
|
+
error: string().optional(),
|
|
29002
|
+
addonIds: array(string()).readonly(),
|
|
29003
|
+
runnersStopped: array(string()).readonly(),
|
|
29004
|
+
warnings: array(string()).readonly()
|
|
29005
|
+
});
|
|
29006
|
+
var UninstallPackageResultSchema = object({
|
|
29007
|
+
/** Every targeted node ended `uninstalled`, `not-installed` or `pending-reconnect`. */
|
|
29008
|
+
success: boolean(),
|
|
29009
|
+
packageName: string(),
|
|
29010
|
+
results: array(UninstallNodeResultSchema).readonly()
|
|
29011
|
+
});
|
|
29012
|
+
/**
|
|
29013
|
+
* `unreachable` lists online agents whose status read FAILED — absence from
|
|
29014
|
+
* `installations` is only "not installed" for a node that answered (D315).
|
|
29015
|
+
*/
|
|
29016
|
+
var PackageInstallationsSchema = object({
|
|
29017
|
+
installations: array(object({
|
|
29018
|
+
packageName: string(),
|
|
29019
|
+
nodeId: string(),
|
|
29020
|
+
nodeName: string(),
|
|
29021
|
+
isHub: boolean(),
|
|
29022
|
+
isOnline: boolean(),
|
|
29023
|
+
version: string().nullable(),
|
|
29024
|
+
addonIds: array(string()).readonly(),
|
|
29025
|
+
source: _enum(["live", "recorded"]),
|
|
29026
|
+
/** The hub installs this package too. `false` on an agent row = an orphan. */
|
|
29027
|
+
onHub: boolean()
|
|
29028
|
+
})).readonly(),
|
|
29029
|
+
unreachable: array(object({
|
|
29030
|
+
nodeId: string(),
|
|
29031
|
+
error: string()
|
|
29032
|
+
})).readonly()
|
|
29033
|
+
});
|
|
29178
29034
|
var BulkUpdateItemStatusSchema = _enum([
|
|
29179
29035
|
"queued",
|
|
29180
29036
|
"updating",
|
|
@@ -29257,10 +29113,14 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
|
|
|
29257
29113
|
}), method(object({ packageName: string() }), InstallPackageResultSchema, {
|
|
29258
29114
|
kind: "mutation",
|
|
29259
29115
|
auth: "admin"
|
|
29260
|
-
}), method(_void(), boolean()), method(_void(), array(unknown()).readonly()), method(object({
|
|
29116
|
+
}), method(_void(), boolean()), method(_void(), array(unknown()).readonly()), method(object({
|
|
29117
|
+
packageName: string().min(1),
|
|
29118
|
+
nodeId: string().optional(),
|
|
29119
|
+
everywhere: boolean().optional()
|
|
29120
|
+
}), UninstallPackageResultSchema, {
|
|
29261
29121
|
kind: "mutation",
|
|
29262
29122
|
auth: "admin"
|
|
29263
|
-
}), method(_void(), ReloadPackagesResultSchema, {
|
|
29123
|
+
}), method(object({ packageName: string().optional() }), PackageInstallationsSchema, { auth: "admin" }), method(_void(), ReloadPackagesResultSchema, {
|
|
29264
29124
|
kind: "mutation",
|
|
29265
29125
|
auth: "admin"
|
|
29266
29126
|
}), method(object({ query: string().optional() }), array(SearchResultSchema)), method(object({ nodeId: string().optional() }), array(PackageUpdateSchema).readonly(), { auth: "admin" }), method(object({
|
|
@@ -37647,6 +37507,12 @@ Object.freeze({
|
|
|
37647
37507
|
addonId: null,
|
|
37648
37508
|
access: "view"
|
|
37649
37509
|
},
|
|
37510
|
+
"addons.listInstallations": {
|
|
37511
|
+
capName: "addons",
|
|
37512
|
+
capScope: "system",
|
|
37513
|
+
addonId: null,
|
|
37514
|
+
access: "view"
|
|
37515
|
+
},
|
|
37650
37516
|
"addons.listJobs": {
|
|
37651
37517
|
capName: "addons",
|
|
37652
37518
|
capScope: "system",
|
|
@@ -38829,90 +38695,18 @@ Object.freeze({
|
|
|
38829
38695
|
addonId: null,
|
|
38830
38696
|
access: "create"
|
|
38831
38697
|
},
|
|
38832
|
-
"decoder.createSession": {
|
|
38833
|
-
capName: "decoder",
|
|
38834
|
-
capScope: "system",
|
|
38835
|
-
addonId: null,
|
|
38836
|
-
access: "view"
|
|
38837
|
-
},
|
|
38838
|
-
"decoder.destroySession": {
|
|
38839
|
-
capName: "decoder",
|
|
38840
|
-
capScope: "system",
|
|
38841
|
-
addonId: null,
|
|
38842
|
-
access: "delete"
|
|
38843
|
-
},
|
|
38844
|
-
"decoder.getFrame": {
|
|
38845
|
-
capName: "decoder",
|
|
38846
|
-
capScope: "system",
|
|
38847
|
-
addonId: null,
|
|
38848
|
-
access: "view"
|
|
38849
|
-
},
|
|
38850
38698
|
"decoder.getInfo": {
|
|
38851
38699
|
capName: "decoder",
|
|
38852
38700
|
capScope: "system",
|
|
38853
38701
|
addonId: null,
|
|
38854
38702
|
access: "view"
|
|
38855
38703
|
},
|
|
38856
|
-
"decoder.getShmStats": {
|
|
38857
|
-
capName: "decoder",
|
|
38858
|
-
capScope: "system",
|
|
38859
|
-
addonId: null,
|
|
38860
|
-
access: "view"
|
|
38861
|
-
},
|
|
38862
|
-
"decoder.getStats": {
|
|
38863
|
-
capName: "decoder",
|
|
38864
|
-
capScope: "system",
|
|
38865
|
-
addonId: null,
|
|
38866
|
-
access: "view"
|
|
38867
|
-
},
|
|
38868
|
-
"decoder.listActiveSessions": {
|
|
38869
|
-
capName: "decoder",
|
|
38870
|
-
capScope: "system",
|
|
38871
|
-
addonId: null,
|
|
38872
|
-
access: "view"
|
|
38873
|
-
},
|
|
38874
|
-
"decoder.openStream": {
|
|
38875
|
-
capName: "decoder",
|
|
38876
|
-
capScope: "system",
|
|
38877
|
-
addonId: null,
|
|
38878
|
-
access: "view"
|
|
38879
|
-
},
|
|
38880
|
-
"decoder.pullFrames": {
|
|
38881
|
-
capName: "decoder",
|
|
38882
|
-
capScope: "system",
|
|
38883
|
-
addonId: null,
|
|
38884
|
-
access: "view"
|
|
38885
|
-
},
|
|
38886
|
-
"decoder.pullHandles": {
|
|
38887
|
-
capName: "decoder",
|
|
38888
|
-
capScope: "system",
|
|
38889
|
-
addonId: null,
|
|
38890
|
-
access: "view"
|
|
38891
|
-
},
|
|
38892
|
-
"decoder.pushPacket": {
|
|
38893
|
-
capName: "decoder",
|
|
38894
|
-
capScope: "system",
|
|
38895
|
-
addonId: null,
|
|
38896
|
-
access: "view"
|
|
38897
|
-
},
|
|
38898
38704
|
"decoder.reprobeHwaccel": {
|
|
38899
38705
|
capName: "decoder",
|
|
38900
38706
|
capScope: "system",
|
|
38901
38707
|
addonId: null,
|
|
38902
38708
|
access: "create"
|
|
38903
38709
|
},
|
|
38904
|
-
"decoder.supportsCodec": {
|
|
38905
|
-
capName: "decoder",
|
|
38906
|
-
capScope: "system",
|
|
38907
|
-
addonId: null,
|
|
38908
|
-
access: "view"
|
|
38909
|
-
},
|
|
38910
|
-
"decoder.updateConfig": {
|
|
38911
|
-
capName: "decoder",
|
|
38912
|
-
capScope: "system",
|
|
38913
|
-
addonId: null,
|
|
38914
|
-
access: "view"
|
|
38915
|
-
},
|
|
38916
38710
|
"detectionPipeline.applyDeviceSettingsPatch": {
|
|
38917
38711
|
capName: "detection-pipeline",
|
|
38918
38712
|
capScope: "device",
|
|
@@ -43959,12 +43753,6 @@ Object.freeze({
|
|
|
43959
43753
|
addonId: null,
|
|
43960
43754
|
access: "view"
|
|
43961
43755
|
},
|
|
43962
|
-
"streamBroker.pullFrameHandles": {
|
|
43963
|
-
capName: "stream-broker",
|
|
43964
|
-
capScope: "system",
|
|
43965
|
-
addonId: null,
|
|
43966
|
-
access: "view"
|
|
43967
|
-
},
|
|
43968
43756
|
"streamBroker.regenerateRtspToken": {
|
|
43969
43757
|
capName: "stream-broker",
|
|
43970
43758
|
capScope: "system",
|
|
@@ -44031,12 +43819,6 @@ Object.freeze({
|
|
|
44031
43819
|
addonId: null,
|
|
44032
43820
|
access: "create"
|
|
44033
43821
|
},
|
|
44034
|
-
"streamBroker.subscribeFrames": {
|
|
44035
|
-
capName: "stream-broker",
|
|
44036
|
-
capScope: "system",
|
|
44037
|
-
addonId: null,
|
|
44038
|
-
access: "create"
|
|
44039
|
-
},
|
|
44040
43822
|
"streamBroker.unassignProfile": {
|
|
44041
43823
|
capName: "stream-broker",
|
|
44042
43824
|
capScope: "system",
|
|
@@ -44049,12 +43831,6 @@ Object.freeze({
|
|
|
44049
43831
|
addonId: null,
|
|
44050
43832
|
access: "create"
|
|
44051
43833
|
},
|
|
44052
|
-
"streamBroker.unsubscribeFrames": {
|
|
44053
|
-
capName: "stream-broker",
|
|
44054
|
-
capScope: "system",
|
|
44055
|
-
addonId: null,
|
|
44056
|
-
access: "create"
|
|
44057
|
-
},
|
|
44058
43834
|
"streamCatalog.getCatalog": {
|
|
44059
43835
|
capName: "stream-catalog",
|
|
44060
43836
|
capScope: "device",
|
|
@@ -46568,11 +46344,6 @@ Object.freeze({
|
|
|
46568
46344
|
form: "single",
|
|
46569
46345
|
optional: false
|
|
46570
46346
|
}],
|
|
46571
|
-
"decoder.createSession": [{
|
|
46572
|
-
name: "deviceId",
|
|
46573
|
-
form: "single",
|
|
46574
|
-
optional: true
|
|
46575
|
-
}],
|
|
46576
46347
|
"detectionPipeline.applyDeviceSettingsPatch": [{
|
|
46577
46348
|
name: "deviceId",
|
|
46578
46349
|
form: "single",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { b as e, g as t, l as n, u as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-CHL8loOl.mjs";
|
|
2
|
-
import { b as i, y as a } from "./responsive-
|
|
2
|
+
import { b as i, y as a } from "./responsive-CU7BiLwa.mjs";
|
|
3
3
|
import { n as o, r as s, t as c } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
|
|
4
4
|
var l = i("chevron-down", [["path", {
|
|
5
5
|
d: "m6 9 6 6 6-6",
|
package/dist/remoteEntry.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-
|
|
1
|
+
import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-XvoS0Enz.mjs";
|
|
2
2
|
export { t as get, e as init };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _ as e, b as t, c as n, g as r, l as i, m as a, n as o, r as s, t as c, u as l } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-CHL8loOl.mjs";
|
|
2
2
|
import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
|
|
3
|
-
import { f as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-
|
|
3
|
+
import { f as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DgQsf8Wc.mjs";
|
|
4
4
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
|
|
5
5
|
t();
|
|
6
6
|
var d = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), f = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), p = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), m = (e) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { b as e, c as t, g as n, m as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-CHL8loOl.mjs";
|
|
2
|
-
import { b as i } from "./responsive-
|
|
2
|
+
import { b as i } from "./responsive-CU7BiLwa.mjs";
|
|
3
3
|
var a = i("camera", [["path", {
|
|
4
4
|
d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",
|
|
5
5
|
key: "18u6gg"
|