@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.
Files changed (31) hide show
  1. package/dist/audio-analyzer/index.js +1 -1
  2. package/dist/audio-analyzer/index.mjs +1 -1
  3. package/dist/audio-codec-nodeav/index.js +1 -1
  4. package/dist/audio-codec-nodeav/index.mjs +1 -1
  5. package/dist/decoder-nodeav/index.js +1 -1
  6. package/dist/decoder-nodeav/index.mjs +1 -1
  7. package/dist/detection-pipeline/index.js +704 -398
  8. package/dist/detection-pipeline/index.mjs +705 -398
  9. package/dist/{dist-v0PZCoV-.js → dist-BiUtYscO.js} +201 -2
  10. package/dist/{dist-CP2uP-D8.mjs → dist-DsDFrG0I.mjs} +201 -2
  11. package/dist/motion-wasm/index.js +1 -1
  12. package/dist/motion-wasm/index.mjs +1 -1
  13. package/dist/pipeline-runner/index.js +1 -1
  14. package/dist/pipeline-runner/index.mjs +1 -1
  15. package/dist/recorder/index.js +1 -1
  16. package/dist/recorder/index.mjs +1 -1
  17. package/dist/stream-broker/_stub.js +2 -2
  18. 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
  19. 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
  20. 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
  21. package/dist/stream-broker/{hostInit-BXhCtKAA.mjs → hostInit-BJ3QDdFs.mjs} +3 -3
  22. package/dist/stream-broker/index.js +1 -1
  23. package/dist/stream-broker/index.mjs +1 -1
  24. package/dist/stream-broker/remoteEntry.js +1 -1
  25. package/embed-dist/assets/{MaskShapeCanvas-DI4BY7W2-CQxn6ukH.js → MaskShapeCanvas-DI4BY7W2-B4oJIlgF.js} +1 -1
  26. package/embed-dist/assets/{MotionZonesSettings-C1EEbk2V-BziDLK12.js → MotionZonesSettings-C1EEbk2V-CUopGB1R.js} +1 -1
  27. package/embed-dist/assets/{PrivacyMaskSettings-APgPLF7p-D3KDk03_.js → PrivacyMaskSettings-APgPLF7p-CyTsHaor.js} +1 -1
  28. package/embed-dist/assets/{index-CvgJINQE.js → index-hwJEVIPM.js} +9 -9
  29. package/embed-dist/index.html +1 -1
  30. package/package.json +1 -1
  31. 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({ addonDefaults: record(string(), AgentAddonConfigSchema).readonly() });
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({ addonDefaults: record(string(), AgentAddonConfigSchema).readonly() });
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-v0PZCoV-.js");
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-CP2uP-D8.mjs";
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-v0PZCoV-.js");
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-CP2uP-D8.mjs";
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
  /**
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("../chunk-D6vf50IK.js");
2
- const require_dist = require("../dist-v0PZCoV-.js");
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);
@@ -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-CP2uP-D8.mjs";
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-SlpG44Ip.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-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-c9YxHYlI.mjs";
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.4",
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.4",
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.4",
36
+ version: "1.0.5",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_stream_broker_widgets",