@camstack/addon-pipeline 1.0.5 → 1.0.6
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 +1 -1
- package/dist/audio-analyzer/index.mjs +1 -1
- package/dist/audio-codec-nodeav/index.js +1 -1
- package/dist/audio-codec-nodeav/index.mjs +1 -1
- package/dist/decoder-nodeav/index.js +1 -1
- package/dist/decoder-nodeav/index.mjs +1 -1
- package/dist/detection-pipeline/index.js +704 -398
- package/dist/detection-pipeline/index.mjs +705 -398
- package/dist/{dist-v0PZCoV-.js → dist-BiUtYscO.js} +201 -2
- package/dist/{dist-CP2uP-D8.mjs → dist-DsDFrG0I.mjs} +201 -2
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/pipeline-runner/index.js +1 -1
- package/dist/pipeline-runner/index.mjs +1 -1
- package/dist/recorder/index.js +1 -1
- package/dist/recorder/index.mjs +1 -1
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-Hzarxdhd.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-CbTGCEnd.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-3STWM0yI.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-SlpG44Ip.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Dsz9DmNr.mjs} +1 -1
- package/dist/stream-broker/{hostInit-BXhCtKAA.mjs → hostInit-BJ3QDdFs.mjs} +3 -3
- package/dist/stream-broker/index.js +1 -1
- package/dist/stream-broker/index.mjs +1 -1
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/embed-dist/assets/{MaskShapeCanvas-DI4BY7W2-CQxn6ukH.js → MaskShapeCanvas-DI4BY7W2-B4oJIlgF.js} +1 -1
- package/embed-dist/assets/{MotionZonesSettings-C1EEbk2V-BziDLK12.js → MotionZonesSettings-C1EEbk2V-CUopGB1R.js} +1 -1
- package/embed-dist/assets/{PrivacyMaskSettings-APgPLF7p-D3KDk03_.js → PrivacyMaskSettings-APgPLF7p-CyTsHaor.js} +1 -1
- package/embed-dist/assets/{index-CvgJINQE.js → index-hwJEVIPM.js} +9 -9
- package/embed-dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-c9YxHYlI.mjs +0 -26
|
@@ -4981,6 +4981,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
4981
4981
|
*/
|
|
4982
4982
|
EventCategory["PipelineEngineMetricsSnapshot"] = "pipeline.engine-metrics-snapshot";
|
|
4983
4983
|
/**
|
|
4984
|
+
* Per-node detection-engine runtime-provisioning transition. Emitted by
|
|
4985
|
+
* the detection-pipeline provider on every state change of its lazy
|
|
4986
|
+
* engine-provisioning machine (idle → installing → verifying → ready,
|
|
4987
|
+
* or → failed with a `nextRetryAt`). Payload is the
|
|
4988
|
+
* `EngineProvisioningState` snapshot; `event.source.nodeId` carries the
|
|
4989
|
+
* node. The Pipeline page subscribes to drive a live "installing
|
|
4990
|
+
* OpenVINO… / ready" indicator per node without polling
|
|
4991
|
+
* `pipelineExecutor.getEngineProvisioning`. Telemetry-grade (D8): the UI
|
|
4992
|
+
* also reads the cap snapshot on mount / reconnect. Phase 2.
|
|
4993
|
+
*/
|
|
4994
|
+
EventCategory["PipelineEngineProvisioning"] = "pipeline.engine-provisioning";
|
|
4995
|
+
/**
|
|
4984
4996
|
* Cluster topology snapshot. Carries the same payload returned by
|
|
4985
4997
|
* `nodes.topology` (every reachable node + addons + processes).
|
|
4986
4998
|
* Emitted by the hub on any agent / addon lifecycle change
|
|
@@ -9998,6 +10010,24 @@ var DetectorOutputSchema = object({
|
|
|
9998
10010
|
inferenceMs: number(),
|
|
9999
10011
|
modelId: string()
|
|
10000
10012
|
});
|
|
10013
|
+
var EngineProvisioningSchema = object({
|
|
10014
|
+
runtimeId: _enum([
|
|
10015
|
+
"onnx",
|
|
10016
|
+
"openvino",
|
|
10017
|
+
"coreml"
|
|
10018
|
+
]).nullable(),
|
|
10019
|
+
device: string().nullable(),
|
|
10020
|
+
state: _enum([
|
|
10021
|
+
"idle",
|
|
10022
|
+
"installing",
|
|
10023
|
+
"verifying",
|
|
10024
|
+
"ready",
|
|
10025
|
+
"failed"
|
|
10026
|
+
]),
|
|
10027
|
+
progress: number().optional(),
|
|
10028
|
+
error: string().optional(),
|
|
10029
|
+
nextRetryAt: number().optional()
|
|
10030
|
+
});
|
|
10001
10031
|
var PipelineStepInputSchema = lazy(() => object({
|
|
10002
10032
|
addonId: string(),
|
|
10003
10033
|
modelId: string(),
|
|
@@ -10097,6 +10127,15 @@ var pipelineExecutorCapability = {
|
|
|
10097
10127
|
kind: "mutation",
|
|
10098
10128
|
auth: "admin"
|
|
10099
10129
|
}),
|
|
10130
|
+
/**
|
|
10131
|
+
* Per-node detection-engine provisioning snapshot. Returns the live
|
|
10132
|
+
* state of the lazy runtime-provisioning machine on `nodeId`
|
|
10133
|
+
* (idle / installing / verifying / ready / failed). The UI pairs this
|
|
10134
|
+
* one-shot query with the `pipeline.engine-provisioning` live event
|
|
10135
|
+
* (emitted on every transition) to drive a per-node "engine ready?"
|
|
10136
|
+
* indicator without polling. Phase 2.
|
|
10137
|
+
*/
|
|
10138
|
+
getEngineProvisioning: method(object({ nodeId: string() }), EngineProvisioningSchema),
|
|
10100
10139
|
getVideoPipelineSteps: method(_void(), record(string(), object({
|
|
10101
10140
|
modelId: string(),
|
|
10102
10141
|
settings: record(string(), unknown()).readonly()
|
|
@@ -14099,7 +14138,10 @@ var AgentAddonConfigSchema = object({
|
|
|
14099
14138
|
modelId: string(),
|
|
14100
14139
|
settings: record(string(), unknown()).readonly()
|
|
14101
14140
|
});
|
|
14102
|
-
var AgentPipelineSettingsSchema = object({
|
|
14141
|
+
var AgentPipelineSettingsSchema = object({
|
|
14142
|
+
addonDefaults: record(string(), AgentAddonConfigSchema).readonly(),
|
|
14143
|
+
maxCameras: number().int().nonnegative().nullable().default(null)
|
|
14144
|
+
});
|
|
14103
14145
|
var CameraPipelineForAgentSchema = object({
|
|
14104
14146
|
steps: array(PipelineStepInputSchema).readonly(),
|
|
14105
14147
|
audio: object({
|
|
@@ -14201,6 +14243,133 @@ var GlobalMetricsSchema = object({
|
|
|
14201
14243
|
* capability providers.
|
|
14202
14244
|
*/
|
|
14203
14245
|
var CapabilityBindingsSchema = record(string(), string());
|
|
14246
|
+
/** Source block — always present; derives from the stream catalog. */
|
|
14247
|
+
var CameraSourceStatusSchema = object({ streams: array(object({
|
|
14248
|
+
camStreamId: string(),
|
|
14249
|
+
codec: string(),
|
|
14250
|
+
width: number(),
|
|
14251
|
+
height: number(),
|
|
14252
|
+
fps: number(),
|
|
14253
|
+
kind: string()
|
|
14254
|
+
})).readonly() });
|
|
14255
|
+
/** Assignment block — always present (orchestrator-local, no remote call). */
|
|
14256
|
+
var CameraAssignmentStatusSchema = object({
|
|
14257
|
+
detectionNodeId: string().nullable(),
|
|
14258
|
+
decoderNodeId: string().nullable(),
|
|
14259
|
+
audioNodeId: string().nullable(),
|
|
14260
|
+
pinned: object({
|
|
14261
|
+
detection: boolean(),
|
|
14262
|
+
decoder: boolean(),
|
|
14263
|
+
audio: boolean()
|
|
14264
|
+
}),
|
|
14265
|
+
reasons: object({
|
|
14266
|
+
detection: string().optional(),
|
|
14267
|
+
decoder: string().optional(),
|
|
14268
|
+
audio: string().optional()
|
|
14269
|
+
})
|
|
14270
|
+
});
|
|
14271
|
+
/** Broker block — null when the broker stage is unreachable or inactive. */
|
|
14272
|
+
var CameraBrokerStatusSchema = object({
|
|
14273
|
+
profiles: array(object({
|
|
14274
|
+
profile: string(),
|
|
14275
|
+
status: string(),
|
|
14276
|
+
codec: string(),
|
|
14277
|
+
width: number(),
|
|
14278
|
+
height: number(),
|
|
14279
|
+
subscribers: number(),
|
|
14280
|
+
inFps: number(),
|
|
14281
|
+
outFps: number()
|
|
14282
|
+
})).readonly(),
|
|
14283
|
+
webrtcSessions: number(),
|
|
14284
|
+
rtspRestream: boolean()
|
|
14285
|
+
});
|
|
14286
|
+
/** Shared-memory ring statistics within the decoder block. */
|
|
14287
|
+
var CameraDecoderShmSchema = object({
|
|
14288
|
+
framesWritten: number(),
|
|
14289
|
+
getFrameHits: number(),
|
|
14290
|
+
getFrameMisses: number(),
|
|
14291
|
+
budgetMb: number()
|
|
14292
|
+
});
|
|
14293
|
+
/** Decoder block — null when the decoder stage is unreachable or inactive. */
|
|
14294
|
+
var CameraDecoderStatusSchema = object({
|
|
14295
|
+
nodeId: string(),
|
|
14296
|
+
formats: array(string()).readonly(),
|
|
14297
|
+
sessionCount: number(),
|
|
14298
|
+
shm: CameraDecoderShmSchema
|
|
14299
|
+
});
|
|
14300
|
+
/** Motion block — null when motion detection is not active for this device. */
|
|
14301
|
+
var CameraMotionStatusSchema = object({
|
|
14302
|
+
enabled: boolean(),
|
|
14303
|
+
fps: number()
|
|
14304
|
+
});
|
|
14305
|
+
/** Detection provisioning sub-block. */
|
|
14306
|
+
var CameraDetectionProvisioningSchema = object({
|
|
14307
|
+
state: _enum([
|
|
14308
|
+
"idle",
|
|
14309
|
+
"installing",
|
|
14310
|
+
"verifying",
|
|
14311
|
+
"ready",
|
|
14312
|
+
"failed"
|
|
14313
|
+
]),
|
|
14314
|
+
error: string().optional()
|
|
14315
|
+
});
|
|
14316
|
+
/** Detection phase — derived from the runner's engine phase. */
|
|
14317
|
+
var CameraDetectionPhaseSchema = _enum([
|
|
14318
|
+
"idle",
|
|
14319
|
+
"watching",
|
|
14320
|
+
"active"
|
|
14321
|
+
]);
|
|
14322
|
+
/** Detection block — null when no detection node is assigned or reachable. */
|
|
14323
|
+
var CameraDetectionStatusSchema = object({
|
|
14324
|
+
nodeId: string(),
|
|
14325
|
+
engine: object({
|
|
14326
|
+
backend: string(),
|
|
14327
|
+
device: string()
|
|
14328
|
+
}),
|
|
14329
|
+
phase: CameraDetectionPhaseSchema,
|
|
14330
|
+
configuredFps: number(),
|
|
14331
|
+
actualFps: number(),
|
|
14332
|
+
queueDepth: number(),
|
|
14333
|
+
avgInferenceMs: number(),
|
|
14334
|
+
provisioning: CameraDetectionProvisioningSchema
|
|
14335
|
+
});
|
|
14336
|
+
/** Audio block — null when no audio node is assigned or reachable. */
|
|
14337
|
+
var CameraAudioStatusSchema = object({
|
|
14338
|
+
nodeId: string(),
|
|
14339
|
+
enabled: boolean()
|
|
14340
|
+
});
|
|
14341
|
+
/** Recording block — null when no recording cap is active for this device. */
|
|
14342
|
+
var CameraRecordingStatusSchema = object({
|
|
14343
|
+
mode: _enum([
|
|
14344
|
+
"off",
|
|
14345
|
+
"continuous",
|
|
14346
|
+
"events"
|
|
14347
|
+
]),
|
|
14348
|
+
active: boolean(),
|
|
14349
|
+
storageBytes: number()
|
|
14350
|
+
});
|
|
14351
|
+
/**
|
|
14352
|
+
* Aggregated per-camera pipeline status — server-composed, single call.
|
|
14353
|
+
*
|
|
14354
|
+
* The `assignment` and `source` blocks are always present.
|
|
14355
|
+
* Every other block is `null` when the stage is inactive or unreachable
|
|
14356
|
+
* during the bounded parallel fan-out in the orchestrator implementation.
|
|
14357
|
+
*
|
|
14358
|
+
* See spec: `docs/superpowers/specs/2026-06-24-camera-status-aggregator-cap.md`
|
|
14359
|
+
*/
|
|
14360
|
+
var CameraStatusSchema = object({
|
|
14361
|
+
deviceId: number(),
|
|
14362
|
+
assignment: CameraAssignmentStatusSchema,
|
|
14363
|
+
source: CameraSourceStatusSchema,
|
|
14364
|
+
broker: CameraBrokerStatusSchema.nullable(),
|
|
14365
|
+
decoder: CameraDecoderStatusSchema.nullable(),
|
|
14366
|
+
motion: CameraMotionStatusSchema.nullable(),
|
|
14367
|
+
detection: CameraDetectionStatusSchema.nullable(),
|
|
14368
|
+
audio: CameraAudioStatusSchema.nullable(),
|
|
14369
|
+
recording: CameraRecordingStatusSchema.nullable(),
|
|
14370
|
+
/** Unix timestamp (ms) when this snapshot was composed server-side. */
|
|
14371
|
+
fetchedAt: number()
|
|
14372
|
+
});
|
|
14204
14373
|
method(object({
|
|
14205
14374
|
deviceId: number(),
|
|
14206
14375
|
agentNodeId: string()
|
|
@@ -14268,6 +14437,12 @@ method(object({
|
|
|
14268
14437
|
}), {
|
|
14269
14438
|
kind: "mutation",
|
|
14270
14439
|
auth: "admin"
|
|
14440
|
+
}), method(object({
|
|
14441
|
+
agentNodeId: string(),
|
|
14442
|
+
maxCameras: number().int().nonnegative().nullable()
|
|
14443
|
+
}), object({ success: literal(true) }), {
|
|
14444
|
+
kind: "mutation",
|
|
14445
|
+
auth: "admin"
|
|
14271
14446
|
}), method(object({ deviceId: number() }), CameraPipelineSettingsSchema.nullable()), method(object({
|
|
14272
14447
|
deviceId: number(),
|
|
14273
14448
|
addonId: string(),
|
|
@@ -14293,7 +14468,7 @@ method(object({
|
|
|
14293
14468
|
}), method(object({
|
|
14294
14469
|
deviceId: number(),
|
|
14295
14470
|
agentNodeId: string().optional()
|
|
14296
|
-
}), CameraPipelineConfigSchema), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
14471
|
+
}), CameraPipelineConfigSchema), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
14297
14472
|
name: string(),
|
|
14298
14473
|
description: string().optional(),
|
|
14299
14474
|
config: CameraPipelineConfigSchema
|
|
@@ -20270,6 +20445,12 @@ Object.freeze({
|
|
|
20270
20445
|
addonId: null,
|
|
20271
20446
|
access: "view"
|
|
20272
20447
|
},
|
|
20448
|
+
"pipelineExecutor.getEngineProvisioning": {
|
|
20449
|
+
capName: "pipeline-executor",
|
|
20450
|
+
capScope: "system",
|
|
20451
|
+
addonId: null,
|
|
20452
|
+
access: "view"
|
|
20453
|
+
},
|
|
20273
20454
|
"pipelineExecutor.getGlobalPipelineConfig": {
|
|
20274
20455
|
capName: "pipeline-executor",
|
|
20275
20456
|
capScope: "system",
|
|
@@ -20474,6 +20655,18 @@ Object.freeze({
|
|
|
20474
20655
|
addonId: null,
|
|
20475
20656
|
access: "view"
|
|
20476
20657
|
},
|
|
20658
|
+
"pipelineOrchestrator.getCameraStatus": {
|
|
20659
|
+
capName: "pipeline-orchestrator",
|
|
20660
|
+
capScope: "system",
|
|
20661
|
+
addonId: null,
|
|
20662
|
+
access: "view"
|
|
20663
|
+
},
|
|
20664
|
+
"pipelineOrchestrator.getCameraStatuses": {
|
|
20665
|
+
capName: "pipeline-orchestrator",
|
|
20666
|
+
capScope: "system",
|
|
20667
|
+
addonId: null,
|
|
20668
|
+
access: "view"
|
|
20669
|
+
},
|
|
20477
20670
|
"pipelineOrchestrator.getCameraStepOverrides": {
|
|
20478
20671
|
capName: "pipeline-orchestrator",
|
|
20479
20672
|
capScope: "system",
|
|
@@ -20558,6 +20751,12 @@ Object.freeze({
|
|
|
20558
20751
|
addonId: null,
|
|
20559
20752
|
access: "create"
|
|
20560
20753
|
},
|
|
20754
|
+
"pipelineOrchestrator.setAgentMaxCameras": {
|
|
20755
|
+
capName: "pipeline-orchestrator",
|
|
20756
|
+
capScope: "system",
|
|
20757
|
+
addonId: null,
|
|
20758
|
+
access: "create"
|
|
20759
|
+
},
|
|
20561
20760
|
"pipelineOrchestrator.setCameraPipelineForAgent": {
|
|
20562
20761
|
capName: "pipeline-orchestrator",
|
|
20563
20762
|
capScope: "system",
|
|
@@ -4981,6 +4981,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
4981
4981
|
*/
|
|
4982
4982
|
EventCategory["PipelineEngineMetricsSnapshot"] = "pipeline.engine-metrics-snapshot";
|
|
4983
4983
|
/**
|
|
4984
|
+
* Per-node detection-engine runtime-provisioning transition. Emitted by
|
|
4985
|
+
* the detection-pipeline provider on every state change of its lazy
|
|
4986
|
+
* engine-provisioning machine (idle → installing → verifying → ready,
|
|
4987
|
+
* or → failed with a `nextRetryAt`). Payload is the
|
|
4988
|
+
* `EngineProvisioningState` snapshot; `event.source.nodeId` carries the
|
|
4989
|
+
* node. The Pipeline page subscribes to drive a live "installing
|
|
4990
|
+
* OpenVINO… / ready" indicator per node without polling
|
|
4991
|
+
* `pipelineExecutor.getEngineProvisioning`. Telemetry-grade (D8): the UI
|
|
4992
|
+
* also reads the cap snapshot on mount / reconnect. Phase 2.
|
|
4993
|
+
*/
|
|
4994
|
+
EventCategory["PipelineEngineProvisioning"] = "pipeline.engine-provisioning";
|
|
4995
|
+
/**
|
|
4984
4996
|
* Cluster topology snapshot. Carries the same payload returned by
|
|
4985
4997
|
* `nodes.topology` (every reachable node + addons + processes).
|
|
4986
4998
|
* Emitted by the hub on any agent / addon lifecycle change
|
|
@@ -9998,6 +10010,24 @@ var DetectorOutputSchema = object({
|
|
|
9998
10010
|
inferenceMs: number(),
|
|
9999
10011
|
modelId: string()
|
|
10000
10012
|
});
|
|
10013
|
+
var EngineProvisioningSchema = object({
|
|
10014
|
+
runtimeId: _enum([
|
|
10015
|
+
"onnx",
|
|
10016
|
+
"openvino",
|
|
10017
|
+
"coreml"
|
|
10018
|
+
]).nullable(),
|
|
10019
|
+
device: string().nullable(),
|
|
10020
|
+
state: _enum([
|
|
10021
|
+
"idle",
|
|
10022
|
+
"installing",
|
|
10023
|
+
"verifying",
|
|
10024
|
+
"ready",
|
|
10025
|
+
"failed"
|
|
10026
|
+
]),
|
|
10027
|
+
progress: number().optional(),
|
|
10028
|
+
error: string().optional(),
|
|
10029
|
+
nextRetryAt: number().optional()
|
|
10030
|
+
});
|
|
10001
10031
|
var PipelineStepInputSchema = lazy(() => object({
|
|
10002
10032
|
addonId: string(),
|
|
10003
10033
|
modelId: string(),
|
|
@@ -10097,6 +10127,15 @@ var pipelineExecutorCapability = {
|
|
|
10097
10127
|
kind: "mutation",
|
|
10098
10128
|
auth: "admin"
|
|
10099
10129
|
}),
|
|
10130
|
+
/**
|
|
10131
|
+
* Per-node detection-engine provisioning snapshot. Returns the live
|
|
10132
|
+
* state of the lazy runtime-provisioning machine on `nodeId`
|
|
10133
|
+
* (idle / installing / verifying / ready / failed). The UI pairs this
|
|
10134
|
+
* one-shot query with the `pipeline.engine-provisioning` live event
|
|
10135
|
+
* (emitted on every transition) to drive a per-node "engine ready?"
|
|
10136
|
+
* indicator without polling. Phase 2.
|
|
10137
|
+
*/
|
|
10138
|
+
getEngineProvisioning: method(object({ nodeId: string() }), EngineProvisioningSchema),
|
|
10100
10139
|
getVideoPipelineSteps: method(_void(), record(string(), object({
|
|
10101
10140
|
modelId: string(),
|
|
10102
10141
|
settings: record(string(), unknown()).readonly()
|
|
@@ -14099,7 +14138,10 @@ var AgentAddonConfigSchema = object({
|
|
|
14099
14138
|
modelId: string(),
|
|
14100
14139
|
settings: record(string(), unknown()).readonly()
|
|
14101
14140
|
});
|
|
14102
|
-
var AgentPipelineSettingsSchema = object({
|
|
14141
|
+
var AgentPipelineSettingsSchema = object({
|
|
14142
|
+
addonDefaults: record(string(), AgentAddonConfigSchema).readonly(),
|
|
14143
|
+
maxCameras: number().int().nonnegative().nullable().default(null)
|
|
14144
|
+
});
|
|
14103
14145
|
var CameraPipelineForAgentSchema = object({
|
|
14104
14146
|
steps: array(PipelineStepInputSchema).readonly(),
|
|
14105
14147
|
audio: object({
|
|
@@ -14201,6 +14243,133 @@ var GlobalMetricsSchema = object({
|
|
|
14201
14243
|
* capability providers.
|
|
14202
14244
|
*/
|
|
14203
14245
|
var CapabilityBindingsSchema = record(string(), string());
|
|
14246
|
+
/** Source block — always present; derives from the stream catalog. */
|
|
14247
|
+
var CameraSourceStatusSchema = object({ streams: array(object({
|
|
14248
|
+
camStreamId: string(),
|
|
14249
|
+
codec: string(),
|
|
14250
|
+
width: number(),
|
|
14251
|
+
height: number(),
|
|
14252
|
+
fps: number(),
|
|
14253
|
+
kind: string()
|
|
14254
|
+
})).readonly() });
|
|
14255
|
+
/** Assignment block — always present (orchestrator-local, no remote call). */
|
|
14256
|
+
var CameraAssignmentStatusSchema = object({
|
|
14257
|
+
detectionNodeId: string().nullable(),
|
|
14258
|
+
decoderNodeId: string().nullable(),
|
|
14259
|
+
audioNodeId: string().nullable(),
|
|
14260
|
+
pinned: object({
|
|
14261
|
+
detection: boolean(),
|
|
14262
|
+
decoder: boolean(),
|
|
14263
|
+
audio: boolean()
|
|
14264
|
+
}),
|
|
14265
|
+
reasons: object({
|
|
14266
|
+
detection: string().optional(),
|
|
14267
|
+
decoder: string().optional(),
|
|
14268
|
+
audio: string().optional()
|
|
14269
|
+
})
|
|
14270
|
+
});
|
|
14271
|
+
/** Broker block — null when the broker stage is unreachable or inactive. */
|
|
14272
|
+
var CameraBrokerStatusSchema = object({
|
|
14273
|
+
profiles: array(object({
|
|
14274
|
+
profile: string(),
|
|
14275
|
+
status: string(),
|
|
14276
|
+
codec: string(),
|
|
14277
|
+
width: number(),
|
|
14278
|
+
height: number(),
|
|
14279
|
+
subscribers: number(),
|
|
14280
|
+
inFps: number(),
|
|
14281
|
+
outFps: number()
|
|
14282
|
+
})).readonly(),
|
|
14283
|
+
webrtcSessions: number(),
|
|
14284
|
+
rtspRestream: boolean()
|
|
14285
|
+
});
|
|
14286
|
+
/** Shared-memory ring statistics within the decoder block. */
|
|
14287
|
+
var CameraDecoderShmSchema = object({
|
|
14288
|
+
framesWritten: number(),
|
|
14289
|
+
getFrameHits: number(),
|
|
14290
|
+
getFrameMisses: number(),
|
|
14291
|
+
budgetMb: number()
|
|
14292
|
+
});
|
|
14293
|
+
/** Decoder block — null when the decoder stage is unreachable or inactive. */
|
|
14294
|
+
var CameraDecoderStatusSchema = object({
|
|
14295
|
+
nodeId: string(),
|
|
14296
|
+
formats: array(string()).readonly(),
|
|
14297
|
+
sessionCount: number(),
|
|
14298
|
+
shm: CameraDecoderShmSchema
|
|
14299
|
+
});
|
|
14300
|
+
/** Motion block — null when motion detection is not active for this device. */
|
|
14301
|
+
var CameraMotionStatusSchema = object({
|
|
14302
|
+
enabled: boolean(),
|
|
14303
|
+
fps: number()
|
|
14304
|
+
});
|
|
14305
|
+
/** Detection provisioning sub-block. */
|
|
14306
|
+
var CameraDetectionProvisioningSchema = object({
|
|
14307
|
+
state: _enum([
|
|
14308
|
+
"idle",
|
|
14309
|
+
"installing",
|
|
14310
|
+
"verifying",
|
|
14311
|
+
"ready",
|
|
14312
|
+
"failed"
|
|
14313
|
+
]),
|
|
14314
|
+
error: string().optional()
|
|
14315
|
+
});
|
|
14316
|
+
/** Detection phase — derived from the runner's engine phase. */
|
|
14317
|
+
var CameraDetectionPhaseSchema = _enum([
|
|
14318
|
+
"idle",
|
|
14319
|
+
"watching",
|
|
14320
|
+
"active"
|
|
14321
|
+
]);
|
|
14322
|
+
/** Detection block — null when no detection node is assigned or reachable. */
|
|
14323
|
+
var CameraDetectionStatusSchema = object({
|
|
14324
|
+
nodeId: string(),
|
|
14325
|
+
engine: object({
|
|
14326
|
+
backend: string(),
|
|
14327
|
+
device: string()
|
|
14328
|
+
}),
|
|
14329
|
+
phase: CameraDetectionPhaseSchema,
|
|
14330
|
+
configuredFps: number(),
|
|
14331
|
+
actualFps: number(),
|
|
14332
|
+
queueDepth: number(),
|
|
14333
|
+
avgInferenceMs: number(),
|
|
14334
|
+
provisioning: CameraDetectionProvisioningSchema
|
|
14335
|
+
});
|
|
14336
|
+
/** Audio block — null when no audio node is assigned or reachable. */
|
|
14337
|
+
var CameraAudioStatusSchema = object({
|
|
14338
|
+
nodeId: string(),
|
|
14339
|
+
enabled: boolean()
|
|
14340
|
+
});
|
|
14341
|
+
/** Recording block — null when no recording cap is active for this device. */
|
|
14342
|
+
var CameraRecordingStatusSchema = object({
|
|
14343
|
+
mode: _enum([
|
|
14344
|
+
"off",
|
|
14345
|
+
"continuous",
|
|
14346
|
+
"events"
|
|
14347
|
+
]),
|
|
14348
|
+
active: boolean(),
|
|
14349
|
+
storageBytes: number()
|
|
14350
|
+
});
|
|
14351
|
+
/**
|
|
14352
|
+
* Aggregated per-camera pipeline status — server-composed, single call.
|
|
14353
|
+
*
|
|
14354
|
+
* The `assignment` and `source` blocks are always present.
|
|
14355
|
+
* Every other block is `null` when the stage is inactive or unreachable
|
|
14356
|
+
* during the bounded parallel fan-out in the orchestrator implementation.
|
|
14357
|
+
*
|
|
14358
|
+
* See spec: `docs/superpowers/specs/2026-06-24-camera-status-aggregator-cap.md`
|
|
14359
|
+
*/
|
|
14360
|
+
var CameraStatusSchema = object({
|
|
14361
|
+
deviceId: number(),
|
|
14362
|
+
assignment: CameraAssignmentStatusSchema,
|
|
14363
|
+
source: CameraSourceStatusSchema,
|
|
14364
|
+
broker: CameraBrokerStatusSchema.nullable(),
|
|
14365
|
+
decoder: CameraDecoderStatusSchema.nullable(),
|
|
14366
|
+
motion: CameraMotionStatusSchema.nullable(),
|
|
14367
|
+
detection: CameraDetectionStatusSchema.nullable(),
|
|
14368
|
+
audio: CameraAudioStatusSchema.nullable(),
|
|
14369
|
+
recording: CameraRecordingStatusSchema.nullable(),
|
|
14370
|
+
/** Unix timestamp (ms) when this snapshot was composed server-side. */
|
|
14371
|
+
fetchedAt: number()
|
|
14372
|
+
});
|
|
14204
14373
|
method(object({
|
|
14205
14374
|
deviceId: number(),
|
|
14206
14375
|
agentNodeId: string()
|
|
@@ -14268,6 +14437,12 @@ method(object({
|
|
|
14268
14437
|
}), {
|
|
14269
14438
|
kind: "mutation",
|
|
14270
14439
|
auth: "admin"
|
|
14440
|
+
}), method(object({
|
|
14441
|
+
agentNodeId: string(),
|
|
14442
|
+
maxCameras: number().int().nonnegative().nullable()
|
|
14443
|
+
}), object({ success: literal(true) }), {
|
|
14444
|
+
kind: "mutation",
|
|
14445
|
+
auth: "admin"
|
|
14271
14446
|
}), method(object({ deviceId: number() }), CameraPipelineSettingsSchema.nullable()), method(object({
|
|
14272
14447
|
deviceId: number(),
|
|
14273
14448
|
addonId: string(),
|
|
@@ -14293,7 +14468,7 @@ method(object({
|
|
|
14293
14468
|
}), method(object({
|
|
14294
14469
|
deviceId: number(),
|
|
14295
14470
|
agentNodeId: string().optional()
|
|
14296
|
-
}), CameraPipelineConfigSchema), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
14471
|
+
}), CameraPipelineConfigSchema), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
14297
14472
|
name: string(),
|
|
14298
14473
|
description: string().optional(),
|
|
14299
14474
|
config: CameraPipelineConfigSchema
|
|
@@ -20270,6 +20445,12 @@ Object.freeze({
|
|
|
20270
20445
|
addonId: null,
|
|
20271
20446
|
access: "view"
|
|
20272
20447
|
},
|
|
20448
|
+
"pipelineExecutor.getEngineProvisioning": {
|
|
20449
|
+
capName: "pipeline-executor",
|
|
20450
|
+
capScope: "system",
|
|
20451
|
+
addonId: null,
|
|
20452
|
+
access: "view"
|
|
20453
|
+
},
|
|
20273
20454
|
"pipelineExecutor.getGlobalPipelineConfig": {
|
|
20274
20455
|
capName: "pipeline-executor",
|
|
20275
20456
|
capScope: "system",
|
|
@@ -20474,6 +20655,18 @@ Object.freeze({
|
|
|
20474
20655
|
addonId: null,
|
|
20475
20656
|
access: "view"
|
|
20476
20657
|
},
|
|
20658
|
+
"pipelineOrchestrator.getCameraStatus": {
|
|
20659
|
+
capName: "pipeline-orchestrator",
|
|
20660
|
+
capScope: "system",
|
|
20661
|
+
addonId: null,
|
|
20662
|
+
access: "view"
|
|
20663
|
+
},
|
|
20664
|
+
"pipelineOrchestrator.getCameraStatuses": {
|
|
20665
|
+
capName: "pipeline-orchestrator",
|
|
20666
|
+
capScope: "system",
|
|
20667
|
+
addonId: null,
|
|
20668
|
+
access: "view"
|
|
20669
|
+
},
|
|
20477
20670
|
"pipelineOrchestrator.getCameraStepOverrides": {
|
|
20478
20671
|
capName: "pipeline-orchestrator",
|
|
20479
20672
|
capScope: "system",
|
|
@@ -20558,6 +20751,12 @@ Object.freeze({
|
|
|
20558
20751
|
addonId: null,
|
|
20559
20752
|
access: "create"
|
|
20560
20753
|
},
|
|
20754
|
+
"pipelineOrchestrator.setAgentMaxCameras": {
|
|
20755
|
+
capName: "pipeline-orchestrator",
|
|
20756
|
+
capScope: "system",
|
|
20757
|
+
addonId: null,
|
|
20758
|
+
access: "create"
|
|
20759
|
+
},
|
|
20561
20760
|
"pipelineOrchestrator.setCameraPipelineForAgent": {
|
|
20562
20761
|
capName: "pipeline-orchestrator",
|
|
20563
20762
|
capScope: "system",
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-BiUtYscO.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
let node_path = require("node:path");
|
|
8
8
|
//#region src/motion-wasm/wasm-motion-detector.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as motionDetectionCapability, M as evaluateZoneRules, P as hydrateSchema, d as DeviceType, i as BaseAddon } from "../dist-
|
|
1
|
+
import { B as motionDetectionCapability, M as evaluateZoneRules, P as hydrateSchema, d as DeviceType, i as BaseAddon } from "../dist-DsDFrG0I.mjs";
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
//#region src/motion-wasm/wasm-motion-detector.ts
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-BiUtYscO.js");
|
|
6
6
|
let _camstack_shm_ring = require("@camstack/shm-ring");
|
|
7
7
|
//#region src/pipeline-runner/frame-queue.ts
|
|
8
8
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as boolean, D as customAction, E as createEvent, I as makeSourceBrokerId, Q as array, W as pipelineRunnerCapability, Z as _enum, i as BaseAddon, it as object, j as errMsg, k as defineCustomActions, ot as string, p as EventCategory, rt as number, tt as lazy } from "../dist-
|
|
1
|
+
import { $ as boolean, D as customAction, E as createEvent, I as makeSourceBrokerId, Q as array, W as pipelineRunnerCapability, Z as _enum, i as BaseAddon, it as object, j as errMsg, k as defineCustomActions, ot as string, p as EventCategory, rt as number, tt as lazy } from "../dist-DsDFrG0I.mjs";
|
|
2
2
|
import { FrameRingReaderCache } from "@camstack/shm-ring";
|
|
3
3
|
//#region src/pipeline-runner/frame-queue.ts
|
|
4
4
|
/**
|
package/dist/recorder/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("../chunk-D6vf50IK.js");
|
|
2
|
-
const require_dist = require("../dist-
|
|
2
|
+
const require_dist = require("../dist-BiUtYscO.js");
|
|
3
3
|
let node_fs = require("node:fs");
|
|
4
4
|
let node_path = require("node:path");
|
|
5
5
|
node_path = require_chunk.__toESM(node_path);
|
package/dist/recorder/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { G as recordingCapability, J as storageEvictableCapability, K as selectAssignedProfileSlots, P as hydrateSchema, T as createDurableState, at as record, g as RecordingConfigSchema, i as BaseAddon, j as errMsg, ot as string, p as EventCategory, z as migrateConfigToBands } from "../dist-
|
|
1
|
+
import { G as recordingCapability, J as storageEvictableCapability, K as selectAssignedProfileSlots, P as hydrateSchema, T as createDurableState, at as record, g as RecordingConfigSchema, i as BaseAddon, j as errMsg, ot as string, p as EventCategory, z as migrateConfigToBands } from "../dist-DsDFrG0I.mjs";
|
|
2
2
|
import { promises } from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { createFileDataPlaneHandler } from "@camstack/system";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { a as e, i as t, n, o as r, r as i, t as a } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare__react__loadShare__.js-C9j-2lBe.mjs";
|
|
2
|
-
import { a as o, c as s, i as c, l, n as u, o as d, r as f, s as p, t as m, u as h } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-
|
|
2
|
+
import { a as o, c as s, i as c, l, n as u, o as d, r as f, s as p, t as m, u as h } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Dsz9DmNr.mjs";
|
|
3
3
|
import { n as g, r as _, t as v } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-XO0-Pyu6.mjs";
|
|
4
4
|
import { n as y, t as b } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-BO7TIbJV.mjs";
|
|
5
|
-
import { t as x } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-
|
|
5
|
+
import { t as x } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-3STWM0yI.mjs";
|
|
6
6
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils.js
|
|
7
7
|
var S = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), C = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), w = (e) => {
|
|
8
8
|
let t = C(e);
|
|
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
|
|
|
3
3
|
var e = {
|
|
4
4
|
"@camstack/sdk": {
|
|
5
5
|
name: "@camstack/sdk",
|
|
6
|
-
version: "1.0.
|
|
6
|
+
version: "1.0.5",
|
|
7
7
|
scope: ["default"],
|
|
8
8
|
loaded: !1,
|
|
9
9
|
from: "addon_stream_broker_widgets",
|
|
@@ -18,7 +18,7 @@ var e = {
|
|
|
18
18
|
},
|
|
19
19
|
"@camstack/types": {
|
|
20
20
|
name: "@camstack/types",
|
|
21
|
-
version: "1.0.
|
|
21
|
+
version: "1.0.5",
|
|
22
22
|
scope: ["default"],
|
|
23
23
|
loaded: !1,
|
|
24
24
|
from: "addon_stream_broker_widgets",
|
|
@@ -33,7 +33,7 @@ var e = {
|
|
|
33
33
|
},
|
|
34
34
|
"@camstack/ui-library": {
|
|
35
35
|
name: "@camstack/ui-library",
|
|
36
|
-
version: "1.0.
|
|
36
|
+
version: "1.0.5",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_stream_broker_widgets",
|