@camstack/addon-agent-ui 1.2.187 → 1.2.189
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/addon.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
|
-
//#region ../types/dist/event-category-
|
|
3
|
+
//#region ../types/dist/event-category-B_0XEcLF.mjs
|
|
4
4
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
5
5
|
EventCategory["SystemBoot"] = "system.boot";
|
|
6
6
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -501,15 +501,6 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
501
501
|
EventCategory["AgentWsDisconnected"] = "agent.ws.disconnected";
|
|
502
502
|
EventCategory["AgentBackupActivated"] = "agent.backup.activated";
|
|
503
503
|
EventCategory["OrchestrationSettingsUpdated"] = "orchestration.settings-updated";
|
|
504
|
-
/**
|
|
505
|
-
* Per-agent hwaccel preference changed (user override set, cleared, or
|
|
506
|
-
* re-probed). Observability event — decoders pull the current pref at
|
|
507
|
-
* `createSession`, so running sessions keep their current backend until
|
|
508
|
-
* they rotate naturally (camera add/remove, stream restart). Future
|
|
509
|
-
* work can wire a listener in stream-broker that force-rotates live
|
|
510
|
-
* sessions; for now this event powers logs + admin-UI toast feedback.
|
|
511
|
-
*/
|
|
512
|
-
EventCategory["PipelineAgentHwaccelChanged"] = "pipeline.agent-hwaccel-changed";
|
|
513
504
|
EventCategory["MotionAnalysis"] = "detection.motion-analysis";
|
|
514
505
|
/** All raw motion zones from CCL before minArea filter — for UI debug overlay. */
|
|
515
506
|
EventCategory["MotionZonesRaw"] = "detection.motion-zones-raw";
|
|
@@ -5380,7 +5371,7 @@ var ZodIssueCode = {
|
|
|
5380
5371
|
var ZodFirstPartyTypeKind;
|
|
5381
5372
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5382
5373
|
//#endregion
|
|
5383
|
-
//#region ../types/dist/sleep-
|
|
5374
|
+
//#region ../types/dist/sleep-BNeXenvr.mjs
|
|
5384
5375
|
/**
|
|
5385
5376
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5386
5377
|
* window to float samples (D455).
|
|
@@ -6746,32 +6737,12 @@ object({
|
|
|
6746
6737
|
audioCodec: string().optional(),
|
|
6747
6738
|
metadata: record(string(), unknown()).readonly().optional()
|
|
6748
6739
|
});
|
|
6749
|
-
var EncodedPacketSchema = object({
|
|
6750
|
-
type: _enum(["video", "audio"]),
|
|
6751
|
-
data: _instanceof(Uint8Array),
|
|
6752
|
-
pts: number(),
|
|
6753
|
-
dts: number(),
|
|
6754
|
-
keyframe: boolean(),
|
|
6755
|
-
codec: string()
|
|
6756
|
-
});
|
|
6757
|
-
var DecodedFrameSchema = object({
|
|
6758
|
-
data: _instanceof(Uint8Array),
|
|
6759
|
-
width: number(),
|
|
6760
|
-
height: number(),
|
|
6761
|
-
format: _enum([
|
|
6762
|
-
"jpeg",
|
|
6763
|
-
"rgb",
|
|
6764
|
-
"bgr",
|
|
6765
|
-
"yuv420",
|
|
6766
|
-
"gray"
|
|
6767
|
-
]),
|
|
6768
|
-
timestamp: number()
|
|
6769
|
-
});
|
|
6770
6740
|
/**
|
|
6771
6741
|
* Wire schema for `FrameHandle` — a zero-pixel, serialisable reference to a
|
|
6772
6742
|
* frame in a shared-memory ring (Phase 5 / D9). Mirrors the `FrameHandle` TS
|
|
6773
|
-
* interface in `interfaces/frame-handle.ts` field-for-field so a
|
|
6774
|
-
*
|
|
6743
|
+
* interface in `interfaces/frame-handle.ts` field-for-field so a cap method
|
|
6744
|
+
* (the runner's native-crop and pipeline-executor inputs) can carry handles
|
|
6745
|
+
* over tRPC / Moleculer.
|
|
6775
6746
|
*
|
|
6776
6747
|
* The `satisfies` assertion below pins this schema to the interface: if a
|
|
6777
6748
|
* field is added to / removed from `FrameHandle` without a matching schema
|
|
@@ -6797,50 +6768,6 @@ var FrameHandleSchema = object({
|
|
|
6797
6768
|
slotCount: number().int().positive()
|
|
6798
6769
|
});
|
|
6799
6770
|
/**
|
|
6800
|
-
* Pixel format a frame-handle subscriber can request from the broker
|
|
6801
|
-
* (Phase 5 / D9). The packed, raster subset of `FrameFormat` — the formats a
|
|
6802
|
-
* `frameSink: 'shm'` decoder session can write into a `FrameRing` slot.
|
|
6803
|
-
* `jpeg` is excluded: a variable-length stream is not a fixed-stride ring
|
|
6804
|
-
* payload, and no decoded-frame consumer requests it over the shm plane.
|
|
6805
|
-
*/
|
|
6806
|
-
var FrameHandleFormatSchema = _enum([
|
|
6807
|
-
"rgb",
|
|
6808
|
-
"bgr",
|
|
6809
|
-
"yuv420",
|
|
6810
|
-
"gray"
|
|
6811
|
-
]);
|
|
6812
|
-
/**
|
|
6813
|
-
* Input for `stream-broker.subscribeFrames` (Phase 5 / D9). A consumer asks the
|
|
6814
|
-
* broker for a `FrameHandle` stream of one `format`; the broker maintains one
|
|
6815
|
-
* shared-memory ring per `(brokerId, format)` actually requested, so a `gray`
|
|
6816
|
-
* subscriber (motion) and an `rgb` subscriber (detection) each read the format
|
|
6817
|
-
* they asked for with no broker-side conversion.
|
|
6818
|
-
*/
|
|
6819
|
-
var SubscribeFramesInputSchema = object({
|
|
6820
|
-
brokerId: string(),
|
|
6821
|
-
format: FrameHandleFormatSchema,
|
|
6822
|
-
/**
|
|
6823
|
-
* Optional reader-side cadence hint in frames per second. The broker does
|
|
6824
|
-
* NOT throttle — latest-wins ring reads drop frames implicitly for a slow
|
|
6825
|
-
* consumer. The value is echoed back in `SubscribeFramesResult.maxFps` so
|
|
6826
|
-
* the consumer can pace its own `pullFrameHandles` polling.
|
|
6827
|
-
*/
|
|
6828
|
-
maxFps: number().positive().optional(),
|
|
6829
|
-
/** Short caller-identity tag (`motion`, `detection`, …) for diagnostics. */
|
|
6830
|
-
tag: string().optional()
|
|
6831
|
-
});
|
|
6832
|
-
/**
|
|
6833
|
-
* Result of `stream-broker.subscribeFrames`. The consumer then polls
|
|
6834
|
-
* `pullFrameHandles({ subscriptionId, maxCount })` and feeds each returned
|
|
6835
|
-
* `FrameHandle` to a `FrameRingReader`.
|
|
6836
|
-
*/
|
|
6837
|
-
var SubscribeFramesResultSchema = object({
|
|
6838
|
-
/** Opaque id the consumer passes to `pullFrameHandles` / `unsubscribeFrames`. */
|
|
6839
|
-
subscriptionId: string(),
|
|
6840
|
-
/** Reader-side cadence hint (frames/s) — echoes `SubscribeFramesInput.maxFps`. */
|
|
6841
|
-
maxFps: number().nonnegative()
|
|
6842
|
-
});
|
|
6843
|
-
/**
|
|
6844
6771
|
* Wire schema for a decoded audio chunk (Phase 5 / D9). Mirrors the
|
|
6845
6772
|
* `DecodedAudioChunk` TS interface in `interfaces/stream-broker.ts`: PCM
|
|
6846
6773
|
* sample bytes plus the track parameters a consumer needs to interpret them.
|
|
@@ -6848,8 +6775,8 @@ var SubscribeFramesResultSchema = object({
|
|
|
6848
6775
|
* Audio chunks are tiny (a ~500ms AudioCodecSession window is a few KB of
|
|
6849
6776
|
* Float32 PCM), so unlike video frames they ship their bytes INLINE over
|
|
6850
6777
|
* tRPC / Moleculer — no shared-memory plane. `data` is typed `Uint8Array`
|
|
6851
|
-
* (the wire-serialisable supertype of `Buffer`)
|
|
6852
|
-
*
|
|
6778
|
+
* (the wire-serialisable supertype of `Buffer`); a `Buffer` is assignable to
|
|
6779
|
+
* it.
|
|
6853
6780
|
*/
|
|
6854
6781
|
var AudioChunkFormatSchema = _enum(AUDIO_CHUNK_FORMATS);
|
|
6855
6782
|
var DecodedAudioChunkSchema = object({
|
|
@@ -6867,11 +6794,10 @@ var DecodedAudioChunkSchema = object({
|
|
|
6867
6794
|
format: AudioChunkFormatSchema.optional()
|
|
6868
6795
|
});
|
|
6869
6796
|
/**
|
|
6870
|
-
* Input for `stream-broker.subscribeAudioChunks` (Phase 5 / D9).
|
|
6871
|
-
*
|
|
6872
|
-
*
|
|
6873
|
-
*
|
|
6874
|
-
* `pullAudioChunks`.
|
|
6797
|
+
* Input for `stream-broker.subscribeAudioChunks` (Phase 5 / D9). Audio ships
|
|
6798
|
+
* its bytes inline: a consumer asks the broker for the decoded audio-chunk
|
|
6799
|
+
* stream of one broker; the broker keeps a per-subscription bounded FIFO queue
|
|
6800
|
+
* the consumer drains via `pullAudioChunks`.
|
|
6875
6801
|
*/
|
|
6876
6802
|
var SubscribeAudioChunksInputSchema = object({
|
|
6877
6803
|
brokerId: string(),
|
|
@@ -6902,9 +6828,7 @@ var BrokerStatsSchema = object({
|
|
|
6902
6828
|
"stopped"
|
|
6903
6829
|
]),
|
|
6904
6830
|
inputFps: number(),
|
|
6905
|
-
decodeFps: number(),
|
|
6906
6831
|
encodedSubscribers: number(),
|
|
6907
|
-
decodedSubscribers: number(),
|
|
6908
6832
|
uptimeMs: number(),
|
|
6909
6833
|
bitrateKbps: number(),
|
|
6910
6834
|
idrIntervalMs: number(),
|
|
@@ -6917,14 +6841,6 @@ var BrokerStatsSchema = object({
|
|
|
6917
6841
|
preBufferMs: number(),
|
|
6918
6842
|
preBufferPackets: number(),
|
|
6919
6843
|
/**
|
|
6920
|
-
* Moleculer node id of the decoder provider currently servicing this
|
|
6921
|
-
* stream's decoded subscribers. `null` until the deferred decoder is
|
|
6922
|
-
* created (no decoded clients yet, or codec not detected). Surfaces the
|
|
6923
|
-
* runtime decoder placement so the UI can show "Decoder: <agent>" without
|
|
6924
|
-
* a separate cap call per broker.
|
|
6925
|
-
*/
|
|
6926
|
-
decoderNodeId: string().nullable(),
|
|
6927
|
-
/**
|
|
6928
6844
|
* Detected audio track parameters from the RTSP DESCRIBE / SDP. `null`
|
|
6929
6845
|
* when the stream has no audio track or the broker is in cold start.
|
|
6930
6846
|
* `supported = false` means the codec was detected but the local
|
|
@@ -10264,70 +10180,6 @@ var StorageLocationDeclarationSchema = object({
|
|
|
10264
10180
|
"backup"
|
|
10265
10181
|
]).optional()
|
|
10266
10182
|
});
|
|
10267
|
-
var DecoderStatsSchema = object({
|
|
10268
|
-
inputFps: number(),
|
|
10269
|
-
outputFps: number(),
|
|
10270
|
-
avgDecodeTimeMs: number(),
|
|
10271
|
-
droppedFrames: number(),
|
|
10272
|
-
/**
|
|
10273
|
-
* Pull-mode adaptive-fps telemetry (optional — only pull sessions run the
|
|
10274
|
-
* lag-driven controller; push sessions omit these). `lagMs` is the EWMA of
|
|
10275
|
-
* the decoder's real-time drift (rising = falling behind live); `adaptiveFps`
|
|
10276
|
-
* is the current lag-throttled emit rate (≤ `effectiveFps` ceiling).
|
|
10277
|
-
*/
|
|
10278
|
-
lagMs: number().optional(),
|
|
10279
|
-
effectiveFps: number().optional(),
|
|
10280
|
-
adaptiveFps: number().optional()
|
|
10281
|
-
});
|
|
10282
|
-
var DecoderSessionConfigSchema = object({
|
|
10283
|
-
codec: string(),
|
|
10284
|
-
maxFps: number().default(0),
|
|
10285
|
-
outputFormat: _enum([
|
|
10286
|
-
"jpeg",
|
|
10287
|
-
"rgb",
|
|
10288
|
-
"bgr",
|
|
10289
|
-
"yuv420",
|
|
10290
|
-
"gray"
|
|
10291
|
-
]).default("jpeg"),
|
|
10292
|
-
scale: number().default(1),
|
|
10293
|
-
width: number().optional(),
|
|
10294
|
-
height: number().optional(),
|
|
10295
|
-
/**
|
|
10296
|
-
* Identifier of the camera this decoder session serves. Optional
|
|
10297
|
-
* because the cap is generic (any caller could request decode), but
|
|
10298
|
-
* stream-broker passes it so decoder logs include `deviceId` for
|
|
10299
|
-
* per-camera filtering when diagnosing failures (e.g. node-av
|
|
10300
|
-
* sendPacket errors on a single hung camera).
|
|
10301
|
-
*/
|
|
10302
|
-
deviceId: number().int().nonnegative().optional(),
|
|
10303
|
-
/**
|
|
10304
|
-
* Free-form tag for log scoping. Stream-broker uses
|
|
10305
|
-
* `broker:<deviceId>/<profile>`. Decoder session logger surfaces it
|
|
10306
|
-
* on every line so `grep tag=broker:5/high` filters one camera
|
|
10307
|
-
* profile cleanly.
|
|
10308
|
-
*/
|
|
10309
|
-
tag: string().optional(),
|
|
10310
|
-
/**
|
|
10311
|
-
* Where the session delivers decoded frames (Phase 5 / D9):
|
|
10312
|
-
*
|
|
10313
|
-
* - `'callback'` (default) — the legacy pixel path: decoded frames are
|
|
10314
|
-
* buffered as `DecodedFrame`s and drained via `pullFrames`.
|
|
10315
|
-
* - `'shm'` — the shared-memory frame plane: decoded frames are written
|
|
10316
|
-
* into an OS shared-memory ring and drained as zero-pixel
|
|
10317
|
-
* `FrameHandle`s via `pullHandles`. A session is one mode or the
|
|
10318
|
-
* other — `pullFrames` returns nothing for an `'shm'` session and
|
|
10319
|
-
* `pullHandles` returns nothing for a `'callback'` session.
|
|
10320
|
-
*/
|
|
10321
|
-
frameSink: _enum(["callback", "shm"]).default("callback"),
|
|
10322
|
-
/**
|
|
10323
|
-
* Per-camera decoder DEBUG facility. When `true`, a pull-mode session emits
|
|
10324
|
-
* a throttled (~1Hz) structured `decoder debug` line (effective/adaptive fps,
|
|
10325
|
-
* real-time lag, dropped-frame delta, avg decode time, hwaccel). Mirrors the
|
|
10326
|
-
* stream-broker's `streamingDebug` gate — off by default so production logs
|
|
10327
|
-
* stay quiet and the emit path pays zero per-frame cost when disabled.
|
|
10328
|
-
*/
|
|
10329
|
-
debug: boolean().optional()
|
|
10330
|
-
});
|
|
10331
10183
|
/**
|
|
10332
10184
|
* Per-component log CHANNELS — the gate a hot path consults, and the registry
|
|
10333
10185
|
* an addon declares its channels in.
|
|
@@ -12474,13 +12326,6 @@ var BrokerRtspClientSchema = object({
|
|
|
12474
12326
|
lastRtpAt: number(),
|
|
12475
12327
|
bytesSent: number()
|
|
12476
12328
|
});
|
|
12477
|
-
var BrokerDecodedClientSchema = object({
|
|
12478
|
-
tag: string(),
|
|
12479
|
-
subscribedAt: number(),
|
|
12480
|
-
maxFps: number(),
|
|
12481
|
-
framesDelivered: number(),
|
|
12482
|
-
framesDropped: number()
|
|
12483
|
-
});
|
|
12484
12329
|
var BrokerAudioClientSchema = object({
|
|
12485
12330
|
tag: string(),
|
|
12486
12331
|
subscribedAt: number(),
|
|
@@ -12572,7 +12417,6 @@ var BrokerEncodedClientSchema = object({
|
|
|
12572
12417
|
});
|
|
12573
12418
|
var BrokerClientsSchema = object({
|
|
12574
12419
|
rtsp: array(BrokerRtspClientSchema).readonly(),
|
|
12575
|
-
decoded: array(BrokerDecodedClientSchema).readonly(),
|
|
12576
12420
|
audio: array(BrokerAudioClientSchema).readonly(),
|
|
12577
12421
|
encoded: array(BrokerEncodedClientSchema).readonly(),
|
|
12578
12422
|
pipeClients: number(),
|
|
@@ -12941,11 +12785,7 @@ method(object({
|
|
|
12941
12785
|
auth: "admin"
|
|
12942
12786
|
}), method(object({ brokerId: string() }), BrokerClientsSchema), method(object({
|
|
12943
12787
|
brokerId: string(),
|
|
12944
|
-
channel: _enum([
|
|
12945
|
-
"rtsp",
|
|
12946
|
-
"decoded",
|
|
12947
|
-
"audio"
|
|
12948
|
-
]),
|
|
12788
|
+
channel: _enum(["rtsp", "audio"]),
|
|
12949
12789
|
handle: string()
|
|
12950
12790
|
}), object({ killed: boolean() }), {
|
|
12951
12791
|
kind: "mutation",
|
|
@@ -12980,10 +12820,7 @@ method(object({
|
|
|
12980
12820
|
}), method(SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, { kind: "mutation" }), method(object({
|
|
12981
12821
|
subscriptionId: string(),
|
|
12982
12822
|
maxCount: number().int().positive().default(8)
|
|
12983
|
-
}), array(DecodedAudioChunkSchema).readonly()), method(object({ subscriptionId: string() }), object({ released: boolean() }), { kind: "mutation" }), method(
|
|
12984
|
-
subscriptionId: string(),
|
|
12985
|
-
maxCount: number().int().positive().default(4)
|
|
12986
|
-
}), array(FrameHandleSchema).readonly()), method(object({ subscriptionId: string() }), object({ released: boolean() }), { kind: "mutation" }), method(object({
|
|
12823
|
+
}), array(DecodedAudioChunkSchema).readonly()), method(object({ subscriptionId: string() }), object({ released: boolean() }), { kind: "mutation" }), method(object({
|
|
12987
12824
|
brokerId: string(),
|
|
12988
12825
|
seconds: number().min(0).max(30)
|
|
12989
12826
|
}), _void(), {
|
|
@@ -14140,54 +13977,12 @@ id: union([string(), number()]) }), {
|
|
|
14140
13977
|
kind: "mutation",
|
|
14141
13978
|
auth: "admin"
|
|
14142
13979
|
});
|
|
14143
|
-
|
|
14144
|
-
* shm ring usage stats for a `frameSink: 'shm'` decoder session —
|
|
14145
|
-
* exposed via `decoder.getShmStats` so downstream consumers can
|
|
14146
|
-
* observe ring pressure (slot count, byte budget, hit/miss ratio).
|
|
14147
|
-
*/
|
|
14148
|
-
var ShmRingStatsSchema = object({
|
|
14149
|
-
sessionId: string(),
|
|
14150
|
-
slotCount: number().int(),
|
|
14151
|
-
slotByteLength: number().int(),
|
|
14152
|
-
segmentBytes: number().int(),
|
|
14153
|
-
budgetMb: number().int(),
|
|
14154
|
-
framesWritten: number().int(),
|
|
14155
|
-
getFrameHits: number().int(),
|
|
14156
|
-
getFrameMisses: number().int()
|
|
14157
|
-
});
|
|
14158
|
-
method(object({ codec: string() }), boolean()), method(_void(), object({
|
|
13980
|
+
method(_void(), object({
|
|
14159
13981
|
id: string(),
|
|
14160
13982
|
name: string(),
|
|
14161
|
-
isPullMode: boolean().optional(),
|
|
14162
|
-
priority: number().optional(),
|
|
14163
13983
|
hwaccel: string().optional(),
|
|
14164
13984
|
probedBestHwaccel: string().optional()
|
|
14165
|
-
})), method(
|
|
14166
|
-
sessionId: string(),
|
|
14167
|
-
nodeId: string()
|
|
14168
|
-
})), method(object({ sessionId: string() }), _void()), method(object({
|
|
14169
|
-
sessionId: string(),
|
|
14170
|
-
packet: EncodedPacketSchema
|
|
14171
|
-
}), _void()), method(object({
|
|
14172
|
-
sessionId: string(),
|
|
14173
|
-
url: string()
|
|
14174
|
-
}), _void()), method(object({
|
|
14175
|
-
sessionId: string(),
|
|
14176
|
-
maxCount: number().default(1),
|
|
14177
|
-
waitMs: number().optional()
|
|
14178
|
-
}), array(DecodedFrameSchema)), method(object({
|
|
14179
|
-
sessionId: string(),
|
|
14180
|
-
maxCount: number().default(1),
|
|
14181
|
-
waitMs: number().optional()
|
|
14182
|
-
}), array(FrameHandleSchema)), method(object({ handle: FrameHandleSchema }), DecodedFrameSchema.nullable()), method(object({ sessionId: string() }), ShmRingStatsSchema.nullable()), method(object({
|
|
14183
|
-
sessionId: string(),
|
|
14184
|
-
config: DecoderSessionConfigSchema.partial()
|
|
14185
|
-
}), _void()), method(object({ sessionId: string() }), DecoderStatsSchema), method(_void(), array(object({
|
|
14186
|
-
sessionId: string(),
|
|
14187
|
-
codec: string(),
|
|
14188
|
-
outputFormat: string(),
|
|
14189
|
-
createdAtMs: number()
|
|
14190
|
-
})).readonly()), method(_void(), object({ backend: string() }), {
|
|
13985
|
+
})), method(_void(), object({ backend: string() }), {
|
|
14191
13986
|
kind: "mutation",
|
|
14192
13987
|
auth: "admin"
|
|
14193
13988
|
});
|
|
@@ -21207,8 +21002,8 @@ Object.freeze(Object.fromEntries([{
|
|
|
21207
21002
|
var CLUSTER_STEP_SETTING_FIELDS = [{
|
|
21208
21003
|
stepId: "face-embedding",
|
|
21209
21004
|
key: "minLandmarkFaceSize",
|
|
21210
|
-
label: "Min face size
|
|
21211
|
-
description: "
|
|
21005
|
+
label: "Min face size to embed (detection-frame px)",
|
|
21006
|
+
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.",
|
|
21212
21007
|
type: "slider",
|
|
21213
21008
|
min: 0,
|
|
21214
21009
|
max: 64,
|
|
@@ -23260,21 +23055,6 @@ var PipelineDefaultStepSchema = lazy(() => object({
|
|
|
23260
23055
|
group: string().optional(),
|
|
23261
23056
|
settings: record(string(), unknown()).optional()
|
|
23262
23057
|
}));
|
|
23263
|
-
var PipelineTemplateStepSchema = lazy(() => object({
|
|
23264
|
-
addonId: string(),
|
|
23265
|
-
enabled: boolean(),
|
|
23266
|
-
modelId: string(),
|
|
23267
|
-
children: array(PipelineTemplateStepSchema).readonly(),
|
|
23268
|
-
settings: record(string(), unknown()).optional()
|
|
23269
|
-
}));
|
|
23270
|
-
var PipelineTemplateSchema$1 = object({
|
|
23271
|
-
id: string(),
|
|
23272
|
-
name: string(),
|
|
23273
|
-
createdAt: string(),
|
|
23274
|
-
updatedAt: string(),
|
|
23275
|
-
engine: PipelineEngineChoiceSchema,
|
|
23276
|
-
steps: array(PipelineTemplateStepSchema).readonly()
|
|
23277
|
-
});
|
|
23278
23058
|
var PipelineModelOptionSchema = object({
|
|
23279
23059
|
id: string(),
|
|
23280
23060
|
name: string(),
|
|
@@ -23486,15 +23266,7 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
23486
23266
|
}), method(_void(), PipelineSchemaSchema), method(_void(), array(PipelineDefaultStepSchema).readonly().nullable()), method(_void(), PipelineConfigBridge), method(_void(), ConfigUISchemaBridge), method(object({
|
|
23487
23267
|
steps: array(PipelineStepInputSchema),
|
|
23488
23268
|
deviceKey: string().optional()
|
|
23489
|
-
}), PipelineValidationResultSchema), method(_void(),
|
|
23490
|
-
name: string(),
|
|
23491
|
-
steps: array(PipelineTemplateStepSchema).readonly(),
|
|
23492
|
-
engine: PipelineEngineChoiceSchema
|
|
23493
|
-
}), PipelineTemplateSchema$1, { kind: "mutation" }), method(object({
|
|
23494
|
-
id: string(),
|
|
23495
|
-
name: string().optional(),
|
|
23496
|
-
steps: array(PipelineTemplateStepSchema).readonly().optional()
|
|
23497
|
-
}), PipelineTemplateSchema$1, { kind: "mutation" }), method(object({ id: string() }), _void(), { kind: "mutation" }), method(_void(), InferenceCapabilitiesBridge), method(object({ addonId: string() }), ModelAvailabilityListBridge), method(object({
|
|
23269
|
+
}), PipelineValidationResultSchema), method(_void(), InferenceCapabilitiesBridge), method(object({ addonId: string() }), ModelAvailabilityListBridge), method(object({
|
|
23498
23270
|
addonId: string(),
|
|
23499
23271
|
modelId: string(),
|
|
23500
23272
|
format: ModelFormatSchema$2
|
|
@@ -24904,14 +24676,15 @@ var RunnerLocalLoadSchema = object({
|
|
|
24904
24676
|
* Per-inference-device live load (multi-device C4). One entry per deviceKey
|
|
24905
24677
|
* this runner currently has attached cameras on, so the orchestrator's second
|
|
24906
24678
|
* `balance()` pass (over a node's devices) weights on real per-pool session
|
|
24907
|
-
* counts. Empty on single-device / pre-multi-device runners.
|
|
24908
|
-
* per
|
|
24679
|
+
* counts. Empty on single-device / pre-multi-device runners. There is no
|
|
24680
|
+
* per-device queue depth: the inference pool's backlog has no accessor, and
|
|
24681
|
+
* a field that always read 0 was removed rather than shown as a measurement
|
|
24682
|
+
* (D762).
|
|
24909
24683
|
*/
|
|
24910
24684
|
devices: array(object({
|
|
24911
24685
|
deviceKey: string(),
|
|
24912
24686
|
backend: string(),
|
|
24913
|
-
attachedCameras: number()
|
|
24914
|
-
queueDepthTotal: number()
|
|
24687
|
+
attachedCameras: number()
|
|
24915
24688
|
})).default([]),
|
|
24916
24689
|
/** Hardware capability flags reported by this node. */
|
|
24917
24690
|
hardware: object({
|
|
@@ -25125,14 +24898,6 @@ var CameraPipelineConfigSchema = object({
|
|
|
25125
24898
|
settings: record(string(), unknown()).readonly().optional()
|
|
25126
24899
|
}).nullable().optional()
|
|
25127
24900
|
});
|
|
25128
|
-
var PipelineTemplateSchema = object({
|
|
25129
|
-
id: string(),
|
|
25130
|
-
name: string(),
|
|
25131
|
-
description: string().optional(),
|
|
25132
|
-
config: CameraPipelineConfigSchema,
|
|
25133
|
-
createdAt: string(),
|
|
25134
|
-
updatedAt: string()
|
|
25135
|
-
});
|
|
25136
24901
|
var DeviceStepConfigSchema = object({
|
|
25137
24902
|
modelId: string().optional(),
|
|
25138
24903
|
settings: record(string(), unknown()).optional(),
|
|
@@ -25242,7 +25007,10 @@ var PipelineAssignmentSchema = object({
|
|
|
25242
25007
|
});
|
|
25243
25008
|
/**
|
|
25244
25009
|
* Per-agent load summary surfaced to the load balancer + dashboards.
|
|
25245
|
-
* Aggregated from each runner's `getLocalLoad` cap call.
|
|
25010
|
+
* Aggregated from each runner's `getLocalLoad` cap call. In the
|
|
25011
|
+
* `getAgentLoad` report, a single-device node's default-pool sessions (no
|
|
25012
|
+
* `deviceKey`) are credited to its one eligible device in `load.devices` —
|
|
25013
|
+
* the default pool IS that device (D745); the balancer's census stays raw.
|
|
25246
25014
|
*/
|
|
25247
25015
|
var AgentLoadSummarySchema = object({
|
|
25248
25016
|
nodeId: string(),
|
|
@@ -25331,26 +25099,27 @@ var CameraBrokerStatusSchema = object({
|
|
|
25331
25099
|
width: number(),
|
|
25332
25100
|
height: number(),
|
|
25333
25101
|
subscribers: number(),
|
|
25334
|
-
|
|
25335
|
-
|
|
25102
|
+
/**
|
|
25103
|
+
* Encoded packets/s the broker receives from the camera. null when the
|
|
25104
|
+
* broker's stats read failed — unknown, never 0 (a 0 here reads as a stall).
|
|
25105
|
+
* There is no output rate: decoding runs in the session decode workers, not
|
|
25106
|
+
* in the broker, so the broker's own decoded-frame rate is 0 on every live
|
|
25107
|
+
* camera and is not served (D758).
|
|
25108
|
+
*/
|
|
25109
|
+
inFps: number().nullable()
|
|
25336
25110
|
})).readonly(),
|
|
25337
25111
|
webrtcSessions: number(),
|
|
25338
25112
|
rtspRestream: boolean()
|
|
25339
25113
|
});
|
|
25340
|
-
/**
|
|
25341
|
-
|
|
25342
|
-
|
|
25343
|
-
|
|
25344
|
-
|
|
25345
|
-
|
|
25346
|
-
|
|
25347
|
-
|
|
25348
|
-
var CameraDecoderStatusSchema = object({
|
|
25349
|
-
nodeId: string(),
|
|
25350
|
-
formats: array(string()).readonly(),
|
|
25351
|
-
sessionCount: number(),
|
|
25352
|
-
shm: CameraDecoderShmSchema
|
|
25353
|
-
});
|
|
25114
|
+
/**
|
|
25115
|
+
* Decoder block — WHERE decode runs (co-located with the detection node by
|
|
25116
|
+
* construction); null when the camera has no detection node. It carries no
|
|
25117
|
+
* frame counter: the shared-memory plane whose counters it used to serve is
|
|
25118
|
+
* gone, and those fields read 0 forever. Whether frames actually flow is read
|
|
25119
|
+
* from `detection.actualFps` (frames delivered to and processed by the
|
|
25120
|
+
* detector), never from a counter nothing feeds.
|
|
25121
|
+
*/
|
|
25122
|
+
var CameraDecoderStatusSchema = object({ nodeId: string() });
|
|
25354
25123
|
/** Motion block — null when motion detection is not active for this device. */
|
|
25355
25124
|
var CameraMotionStatusSchema = object({
|
|
25356
25125
|
enabled: boolean(),
|
|
@@ -25803,25 +25572,7 @@ method(object({
|
|
|
25803
25572
|
}), method(_void(), DiskReconcileJobSchema, {
|
|
25804
25573
|
kind: "mutation",
|
|
25805
25574
|
auth: "admin"
|
|
25806
|
-
}), method(_void(), DiskReconcileJobSchema, { auth: "admin" })
|
|
25807
|
-
name: string(),
|
|
25808
|
-
description: string().optional(),
|
|
25809
|
-
config: CameraPipelineConfigSchema
|
|
25810
|
-
}), PipelineTemplateSchema, {
|
|
25811
|
-
kind: "mutation",
|
|
25812
|
-
auth: "admin"
|
|
25813
|
-
}), method(object({
|
|
25814
|
-
id: string(),
|
|
25815
|
-
name: string().optional(),
|
|
25816
|
-
description: string().optional(),
|
|
25817
|
-
config: CameraPipelineConfigSchema.optional()
|
|
25818
|
-
}), PipelineTemplateSchema, {
|
|
25819
|
-
kind: "mutation",
|
|
25820
|
-
auth: "admin"
|
|
25821
|
-
}), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
25822
|
-
kind: "mutation",
|
|
25823
|
-
auth: "admin"
|
|
25824
|
-
});
|
|
25575
|
+
}), method(_void(), DiskReconcileJobSchema, { auth: "admin" });
|
|
25825
25576
|
/**
|
|
25826
25577
|
* Cap → event-kind mapping for the SENSOR / CONTROL cap families — the table
|
|
25827
25578
|
* `pipeline-analytics.listEventKinds` uses to turn a linked device's bound
|
|
@@ -28041,8 +27792,6 @@ var WebrtcStreamChoiceSchema = object({
|
|
|
28041
27792
|
]).nullable(),
|
|
28042
27793
|
/** Input FPS from the camera (null for adaptive). */
|
|
28043
27794
|
inputFps: number().nullable(),
|
|
28044
|
-
/** Decoded FPS (null for adaptive). */
|
|
28045
|
-
decodeFps: number().nullable(),
|
|
28046
27795
|
/** Bitrate in kbps (null for adaptive). */
|
|
28047
27796
|
bitrateKbps: number().nullable()
|
|
28048
27797
|
});
|
|
@@ -38177,90 +37926,18 @@ Object.freeze({
|
|
|
38177
37926
|
addonId: null,
|
|
38178
37927
|
access: "create"
|
|
38179
37928
|
},
|
|
38180
|
-
"decoder.createSession": {
|
|
38181
|
-
capName: "decoder",
|
|
38182
|
-
capScope: "system",
|
|
38183
|
-
addonId: null,
|
|
38184
|
-
access: "view"
|
|
38185
|
-
},
|
|
38186
|
-
"decoder.destroySession": {
|
|
38187
|
-
capName: "decoder",
|
|
38188
|
-
capScope: "system",
|
|
38189
|
-
addonId: null,
|
|
38190
|
-
access: "delete"
|
|
38191
|
-
},
|
|
38192
|
-
"decoder.getFrame": {
|
|
38193
|
-
capName: "decoder",
|
|
38194
|
-
capScope: "system",
|
|
38195
|
-
addonId: null,
|
|
38196
|
-
access: "view"
|
|
38197
|
-
},
|
|
38198
37929
|
"decoder.getInfo": {
|
|
38199
37930
|
capName: "decoder",
|
|
38200
37931
|
capScope: "system",
|
|
38201
37932
|
addonId: null,
|
|
38202
37933
|
access: "view"
|
|
38203
37934
|
},
|
|
38204
|
-
"decoder.getShmStats": {
|
|
38205
|
-
capName: "decoder",
|
|
38206
|
-
capScope: "system",
|
|
38207
|
-
addonId: null,
|
|
38208
|
-
access: "view"
|
|
38209
|
-
},
|
|
38210
|
-
"decoder.getStats": {
|
|
38211
|
-
capName: "decoder",
|
|
38212
|
-
capScope: "system",
|
|
38213
|
-
addonId: null,
|
|
38214
|
-
access: "view"
|
|
38215
|
-
},
|
|
38216
|
-
"decoder.listActiveSessions": {
|
|
38217
|
-
capName: "decoder",
|
|
38218
|
-
capScope: "system",
|
|
38219
|
-
addonId: null,
|
|
38220
|
-
access: "view"
|
|
38221
|
-
},
|
|
38222
|
-
"decoder.openStream": {
|
|
38223
|
-
capName: "decoder",
|
|
38224
|
-
capScope: "system",
|
|
38225
|
-
addonId: null,
|
|
38226
|
-
access: "view"
|
|
38227
|
-
},
|
|
38228
|
-
"decoder.pullFrames": {
|
|
38229
|
-
capName: "decoder",
|
|
38230
|
-
capScope: "system",
|
|
38231
|
-
addonId: null,
|
|
38232
|
-
access: "view"
|
|
38233
|
-
},
|
|
38234
|
-
"decoder.pullHandles": {
|
|
38235
|
-
capName: "decoder",
|
|
38236
|
-
capScope: "system",
|
|
38237
|
-
addonId: null,
|
|
38238
|
-
access: "view"
|
|
38239
|
-
},
|
|
38240
|
-
"decoder.pushPacket": {
|
|
38241
|
-
capName: "decoder",
|
|
38242
|
-
capScope: "system",
|
|
38243
|
-
addonId: null,
|
|
38244
|
-
access: "view"
|
|
38245
|
-
},
|
|
38246
37935
|
"decoder.reprobeHwaccel": {
|
|
38247
37936
|
capName: "decoder",
|
|
38248
37937
|
capScope: "system",
|
|
38249
37938
|
addonId: null,
|
|
38250
37939
|
access: "create"
|
|
38251
37940
|
},
|
|
38252
|
-
"decoder.supportsCodec": {
|
|
38253
|
-
capName: "decoder",
|
|
38254
|
-
capScope: "system",
|
|
38255
|
-
addonId: null,
|
|
38256
|
-
access: "view"
|
|
38257
|
-
},
|
|
38258
|
-
"decoder.updateConfig": {
|
|
38259
|
-
capName: "decoder",
|
|
38260
|
-
capScope: "system",
|
|
38261
|
-
addonId: null,
|
|
38262
|
-
access: "view"
|
|
38263
|
-
},
|
|
38264
37941
|
"detectionPipeline.applyDeviceSettingsPatch": {
|
|
38265
37942
|
capName: "detection-pipeline",
|
|
38266
37943
|
capScope: "device",
|
|
@@ -41351,12 +41028,6 @@ Object.freeze({
|
|
|
41351
41028
|
addonId: null,
|
|
41352
41029
|
access: "delete"
|
|
41353
41030
|
},
|
|
41354
|
-
"pipelineExecutor.deleteTemplate": {
|
|
41355
|
-
capName: "pipeline-executor",
|
|
41356
|
-
capScope: "system",
|
|
41357
|
-
addonId: null,
|
|
41358
|
-
access: "delete"
|
|
41359
|
-
},
|
|
41360
41031
|
"pipelineExecutor.downloadModel": {
|
|
41361
41032
|
capName: "pipeline-executor",
|
|
41362
41033
|
capScope: "system",
|
|
@@ -41495,12 +41166,6 @@ Object.freeze({
|
|
|
41495
41166
|
addonId: null,
|
|
41496
41167
|
access: "view"
|
|
41497
41168
|
},
|
|
41498
|
-
"pipelineExecutor.listTemplates": {
|
|
41499
|
-
capName: "pipeline-executor",
|
|
41500
|
-
capScope: "system",
|
|
41501
|
-
addonId: null,
|
|
41502
|
-
access: "view"
|
|
41503
|
-
},
|
|
41504
41169
|
"pipelineExecutor.rearmInferenceDevice": {
|
|
41505
41170
|
capName: "pipeline-executor",
|
|
41506
41171
|
capScope: "system",
|
|
@@ -41525,12 +41190,6 @@ Object.freeze({
|
|
|
41525
41190
|
addonId: null,
|
|
41526
41191
|
access: "create"
|
|
41527
41192
|
},
|
|
41528
|
-
"pipelineExecutor.saveTemplate": {
|
|
41529
|
-
capName: "pipeline-executor",
|
|
41530
|
-
capScope: "system",
|
|
41531
|
-
addonId: null,
|
|
41532
|
-
access: "create"
|
|
41533
|
-
},
|
|
41534
41193
|
"pipelineExecutor.setVideoPipelineSteps": {
|
|
41535
41194
|
capName: "pipeline-executor",
|
|
41536
41195
|
capScope: "system",
|
|
@@ -41549,12 +41208,6 @@ Object.freeze({
|
|
|
41549
41208
|
addonId: null,
|
|
41550
41209
|
access: "create"
|
|
41551
41210
|
},
|
|
41552
|
-
"pipelineExecutor.updateTemplate": {
|
|
41553
|
-
capName: "pipeline-executor",
|
|
41554
|
-
capScope: "system",
|
|
41555
|
-
addonId: null,
|
|
41556
|
-
access: "create"
|
|
41557
|
-
},
|
|
41558
41211
|
"pipelineExecutor.validatePipeline": {
|
|
41559
41212
|
capName: "pipeline-executor",
|
|
41560
41213
|
capScope: "system",
|
|
@@ -41585,12 +41238,6 @@ Object.freeze({
|
|
|
41585
41238
|
addonId: null,
|
|
41586
41239
|
access: "create"
|
|
41587
41240
|
},
|
|
41588
|
-
"pipelineOrchestrator.deleteTemplate": {
|
|
41589
|
-
capName: "pipeline-orchestrator",
|
|
41590
|
-
capScope: "system",
|
|
41591
|
-
addonId: null,
|
|
41592
|
-
access: "delete"
|
|
41593
|
-
},
|
|
41594
41241
|
"pipelineOrchestrator.getAgentLoad": {
|
|
41595
41242
|
capName: "pipeline-orchestrator",
|
|
41596
41243
|
capScope: "system",
|
|
@@ -41741,12 +41388,6 @@ Object.freeze({
|
|
|
41741
41388
|
addonId: null,
|
|
41742
41389
|
access: "view"
|
|
41743
41390
|
},
|
|
41744
|
-
"pipelineOrchestrator.listTemplates": {
|
|
41745
|
-
capName: "pipeline-orchestrator",
|
|
41746
|
-
capScope: "system",
|
|
41747
|
-
addonId: null,
|
|
41748
|
-
access: "view"
|
|
41749
|
-
},
|
|
41750
41391
|
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
41751
41392
|
capName: "pipeline-orchestrator",
|
|
41752
41393
|
capScope: "system",
|
|
@@ -41801,12 +41442,6 @@ Object.freeze({
|
|
|
41801
41442
|
addonId: null,
|
|
41802
41443
|
access: "create"
|
|
41803
41444
|
},
|
|
41804
|
-
"pipelineOrchestrator.saveTemplate": {
|
|
41805
|
-
capName: "pipeline-orchestrator",
|
|
41806
|
-
capScope: "system",
|
|
41807
|
-
addonId: null,
|
|
41808
|
-
access: "create"
|
|
41809
|
-
},
|
|
41810
41445
|
"pipelineOrchestrator.setAgentCapabilities": {
|
|
41811
41446
|
capName: "pipeline-orchestrator",
|
|
41812
41447
|
capScope: "system",
|
|
@@ -41915,12 +41550,6 @@ Object.freeze({
|
|
|
41915
41550
|
addonId: null,
|
|
41916
41551
|
access: "create"
|
|
41917
41552
|
},
|
|
41918
|
-
"pipelineOrchestrator.updateTemplate": {
|
|
41919
|
-
capName: "pipeline-orchestrator",
|
|
41920
|
-
capScope: "system",
|
|
41921
|
-
addonId: null,
|
|
41922
|
-
access: "create"
|
|
41923
|
-
},
|
|
41924
41553
|
"pipelineRunner.attachCamera": {
|
|
41925
41554
|
capName: "pipeline-runner",
|
|
41926
41555
|
capScope: "system",
|
|
@@ -43355,12 +42984,6 @@ Object.freeze({
|
|
|
43355
42984
|
addonId: null,
|
|
43356
42985
|
access: "view"
|
|
43357
42986
|
},
|
|
43358
|
-
"streamBroker.pullFrameHandles": {
|
|
43359
|
-
capName: "stream-broker",
|
|
43360
|
-
capScope: "system",
|
|
43361
|
-
addonId: null,
|
|
43362
|
-
access: "view"
|
|
43363
|
-
},
|
|
43364
42987
|
"streamBroker.regenerateRtspToken": {
|
|
43365
42988
|
capName: "stream-broker",
|
|
43366
42989
|
capScope: "system",
|
|
@@ -43427,12 +43050,6 @@ Object.freeze({
|
|
|
43427
43050
|
addonId: null,
|
|
43428
43051
|
access: "create"
|
|
43429
43052
|
},
|
|
43430
|
-
"streamBroker.subscribeFrames": {
|
|
43431
|
-
capName: "stream-broker",
|
|
43432
|
-
capScope: "system",
|
|
43433
|
-
addonId: null,
|
|
43434
|
-
access: "create"
|
|
43435
|
-
},
|
|
43436
43053
|
"streamBroker.unassignProfile": {
|
|
43437
43054
|
capName: "stream-broker",
|
|
43438
43055
|
capScope: "system",
|
|
@@ -43445,12 +43062,6 @@ Object.freeze({
|
|
|
43445
43062
|
addonId: null,
|
|
43446
43063
|
access: "create"
|
|
43447
43064
|
},
|
|
43448
|
-
"streamBroker.unsubscribeFrames": {
|
|
43449
|
-
capName: "stream-broker",
|
|
43450
|
-
capScope: "system",
|
|
43451
|
-
addonId: null,
|
|
43452
|
-
access: "create"
|
|
43453
|
-
},
|
|
43454
43065
|
"streamCatalog.getCatalog": {
|
|
43455
43066
|
capName: "stream-catalog",
|
|
43456
43067
|
capScope: "device",
|
|
@@ -45964,11 +45575,6 @@ Object.freeze({
|
|
|
45964
45575
|
form: "single",
|
|
45965
45576
|
optional: false
|
|
45966
45577
|
}],
|
|
45967
|
-
"decoder.createSession": [{
|
|
45968
|
-
name: "deviceId",
|
|
45969
|
-
form: "single",
|
|
45970
|
-
optional: true
|
|
45971
|
-
}],
|
|
45972
45578
|
"detectionPipeline.applyDeviceSettingsPatch": [{
|
|
45973
45579
|
name: "deviceId",
|
|
45974
45580
|
form: "single",
|
|
@@ -49250,7 +48856,7 @@ var AgentUIAddon = class extends BaseAddon {
|
|
|
49250
48856
|
capability: adminUiCapability,
|
|
49251
48857
|
provider: {
|
|
49252
48858
|
getStaticDir: async () => ({ staticDir: path.resolve(__dirname) }),
|
|
49253
|
-
getVersion: async () => ({ version: "1.2.
|
|
48859
|
+
getVersion: async () => ({ version: "1.2.189" })
|
|
49254
48860
|
}
|
|
49255
48861
|
}];
|
|
49256
48862
|
}
|