@camstack/system 1.2.365 → 1.2.366

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 (67) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/addon-utils.js +1 -1
  4. package/dist/addon-utils.mjs +1 -1
  5. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  8. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  9. package/dist/builtins/alerts/alerts.addon.js +1 -1
  10. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  11. package/dist/builtins/autotrack/index.js +1 -1
  12. package/dist/builtins/autotrack/index.mjs +1 -1
  13. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  14. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  15. package/dist/builtins/calendars/calendars.addon.js +1 -1
  16. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  17. package/dist/builtins/camera-grid/index.js +1 -1
  18. package/dist/builtins/camera-grid/index.mjs +1 -1
  19. package/dist/builtins/composer/composer.addon.js +2 -2
  20. package/dist/builtins/composer/composer.addon.mjs +2 -2
  21. package/dist/builtins/console-logging/index.js +1 -1
  22. package/dist/builtins/console-logging/index.mjs +1 -1
  23. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  24. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  25. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  26. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  27. package/dist/builtins/hub-forwarder/index.js +1 -1
  28. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  29. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  30. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  31. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  32. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  33. package/dist/builtins/local-network/local-network.addon.js +1 -1
  34. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  35. package/dist/builtins/loki-logging/index.js +1 -1
  36. package/dist/builtins/loki-logging/index.mjs +1 -1
  37. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  38. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  39. package/dist/builtins/platform-probe/index.js +1 -1
  40. package/dist/builtins/platform-probe/index.mjs +1 -1
  41. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  42. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  43. package/dist/builtins/snapshot/index.js +1 -1
  44. package/dist/builtins/snapshot/index.mjs +1 -1
  45. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  46. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  47. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  48. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  49. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  50. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  51. package/dist/builtins/system-config/system-config.addon.js +1 -1
  52. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  53. package/dist/builtins/winston-logging/index.js +1 -1
  54. package/dist/builtins/winston-logging/index.mjs +1 -1
  55. package/dist/{child-cap-dispatch-C0m_Q3S1.js → child-cap-dispatch-D9uoEW2A.js} +1 -1
  56. package/dist/{child-cap-dispatch-DVawueyL.mjs → child-cap-dispatch-tHbRfy_7.mjs} +1 -1
  57. package/dist/{composition-sources-BYZglxTf.js → composition-sources-AHfMboGi.js} +1 -1
  58. package/dist/{composition-sources-BMsVkvaT.mjs → composition-sources-GjJ1QxMC.mjs} +1 -1
  59. package/dist/{dist-BIGk6VLF.mjs → dist-BUfYKaXx.mjs} +307 -8
  60. package/dist/{dist-B22ObVxi.js → dist-ub3muPSW.js} +307 -8
  61. package/dist/{event-loop-stall-monitor-DxiaIssh.mjs → event-loop-stall-monitor-CPI1xIcd.mjs} +1 -1
  62. package/dist/{event-loop-stall-monitor-B687EIFo.js → event-loop-stall-monitor-j0DRBkuI.js} +1 -1
  63. package/dist/index.js +3 -3
  64. package/dist/index.mjs +3 -3
  65. package/dist/{retired-settings-keys-C8F8g0Oz.js → retired-settings-keys-DNCxYHe1.js} +1 -1
  66. package/dist/{retired-settings-keys-C149_dvi.mjs → retired-settings-keys-Du41eTrH.mjs} +1 -1
  67. package/package.json +1 -1
@@ -7930,6 +7930,40 @@ var ModelFormatEntrySchema = zod.z.object({
7930
7930
  revision: zod.z.string().min(1).optional()
7931
7931
  });
7932
7932
  /**
7933
+ * What a node holds for one (model, format) (D746). `current` is a complete
7934
+ * copy at its catalog revision — exactly what `downloaded: true` means.
7935
+ * `stale` is bytes on disk that are not (yet) proven current under D743/D744:
7936
+ * no or a different revision record, or a missing sibling. `missing` is no
7937
+ * copy. `downloaded` alone folds `stale` into "not downloaded", which hid
7938
+ * reclaimable bytes and a copy about to be replaced.
7939
+ */
7940
+ var ModelOnDiskStateSchema = zod.z.enum([
7941
+ "current",
7942
+ "stale",
7943
+ "missing"
7944
+ ]);
7945
+ /**
7946
+ * The numeric precision of one format's BUILD (D746) — reported only when the
7947
+ * build states it (file-name token, an INT8 variant, an EdgeTPU compile, a
7948
+ * CamStack Core ML export). Absent means "not stated", never "fp32".
7949
+ */
7950
+ var ModelFormatPrecisionSchema = zod.z.enum([
7951
+ "fp32",
7952
+ "fp16",
7953
+ "int8"
7954
+ ]);
7955
+ /**
7956
+ * One format of one model as a node's `pipelineExecutor.getSchema` reports it.
7957
+ * `onDisk` / `precision` are optional for version skew: a runner that predates
7958
+ * them omits them, and a reader falls back to `downloaded`.
7959
+ */
7960
+ var PipelineModelFormatStatusSchema = zod.z.object({
7961
+ downloaded: zod.z.boolean(),
7962
+ sizeMB: zod.z.number(),
7963
+ onDisk: ModelOnDiskStateSchema.optional(),
7964
+ precision: ModelFormatPrecisionSchema.optional()
7965
+ });
7966
+ /**
7933
7967
  * Extra file that must be downloaded alongside the model (e.g., labels JSON, dict.txt).
7934
7968
  * The downloader fetches from `url` and saves to `{modelsDir}/{filename}`.
7935
7969
  */
@@ -25969,7 +26003,7 @@ var FrameRefSchema = zod.z.object({
25969
26003
  timestamp: zod.z.number(),
25970
26004
  capturedAt: zod.z.number().optional()
25971
26005
  });
25972
- var ModelFormatSchema$1 = zod.z.enum([
26006
+ var ModelFormatSchema$2 = zod.z.enum([
25973
26007
  "onnx",
25974
26008
  "coreml",
25975
26009
  "openvino",
@@ -25987,7 +26021,7 @@ var PipelineSlotSchema = zod.z.enum([
25987
26021
  var PipelineEngineChoiceSchema = zod.z.object({
25988
26022
  runtime: zod.z.literal("python"),
25989
26023
  backend: zod.z.string(),
25990
- format: ModelFormatSchema$1,
26024
+ format: ModelFormatSchema$2,
25991
26025
  device: zod.z.string().optional()
25992
26026
  });
25993
26027
  /**
@@ -26045,10 +26079,7 @@ var PipelineTemplateSchema$1 = zod.z.object({
26045
26079
  var PipelineModelOptionSchema = zod.z.object({
26046
26080
  id: zod.z.string(),
26047
26081
  name: zod.z.string(),
26048
- formats: zod.z.record(zod.z.string(), zod.z.object({
26049
- downloaded: zod.z.boolean(),
26050
- sizeMB: zod.z.number()
26051
- })),
26082
+ formats: zod.z.record(zod.z.string(), PipelineModelFormatStatusSchema),
26052
26083
  group: ModelVariantGroupSchema.optional(),
26053
26084
  legacy: zod.z.boolean().optional(),
26054
26085
  provider: ModelProviderIdSchema.optional(),
@@ -26263,6 +26294,32 @@ var pipelineExecutorCapability = {
26263
26294
  auth: "admin"
26264
26295
  }),
26265
26296
  /**
26297
+ * Best settings (D745): the MODEL-BOUND thresholds (`bindsToModel` keys of
26298
+ * the object-detection root, and their binding keys) stored in THIS node's
26299
+ * per-camera detector settings — and, unless `dryRun`, remove them so the
26300
+ * running model's own defaults apply. Every other key of a camera's store
26301
+ * is kept. `nodeId` is the ROUTING key. `deviceIds` absent ⇒ every camera
26302
+ * with a store. A camera whose store could not be read is `refused`, never
26303
+ * reported as clean.
26304
+ */
26305
+ clearModelBoundDeviceOverrides: method(zod.z.object({
26306
+ nodeId: zod.z.string(),
26307
+ deviceIds: zod.z.array(zod.z.number()).readonly().optional(),
26308
+ dryRun: zod.z.boolean()
26309
+ }), zod.z.object({
26310
+ entries: zod.z.array(zod.z.object({
26311
+ deviceId: zod.z.number(),
26312
+ keys: zod.z.array(zod.z.string()).readonly()
26313
+ })).readonly(),
26314
+ refused: zod.z.array(zod.z.object({
26315
+ deviceId: zod.z.number(),
26316
+ reason: zod.z.string()
26317
+ })).readonly()
26318
+ }), {
26319
+ kind: "mutation",
26320
+ auth: "admin"
26321
+ }),
26322
+ /**
26266
26323
  * Which of THIS node's inference devices the executor currently refuses,
26267
26324
  * and why. `nodeId` is the ROUTING key (stripped by the generated router).
26268
26325
  *
@@ -26357,12 +26414,12 @@ var pipelineExecutorCapability = {
26357
26414
  downloadModel: method(zod.z.object({
26358
26415
  addonId: zod.z.string(),
26359
26416
  modelId: zod.z.string(),
26360
- format: ModelFormatSchema$1
26417
+ format: ModelFormatSchema$2
26361
26418
  }), DownloadModelResultSchema, { kind: "mutation" }),
26362
26419
  deleteModel: method(zod.z.object({
26363
26420
  addonId: zod.z.string(),
26364
26421
  modelId: zod.z.string(),
26365
- format: ModelFormatSchema$1
26422
+ format: ModelFormatSchema$2
26366
26423
  }), zod.z.object({ success: zod.z.literal(true) }), { kind: "mutation" }),
26367
26424
  /**
26368
26425
  * Stateless single-frame execution. Callers (runner, benchmark) pass
@@ -26608,6 +26665,204 @@ var pipelineExecutorCapability = {
26608
26665
  getDetectionConfigSchema: method(zod.z.void(), ConfigUISchemaNullableBridge)
26609
26666
  }
26610
26667
  };
26668
+ /**
26669
+ * The wire shapes of the Best settings plan and apply (D745), used by the
26670
+ * `pipeline-orchestrator` cap. The recommender's own types
26671
+ * (`recommend.ts`, `demand.ts`) are the TS face of the same data; these
26672
+ * schemas are what crosses the cap boundary.
26673
+ */
26674
+ var ModelFormatSchema$1 = zod.z.enum(MODEL_FORMATS);
26675
+ var HardwareClassIdSchema = zod.z.enum([
26676
+ "intel-core-ultra",
26677
+ "intel-n-series",
26678
+ "apple-m-base",
26679
+ "apple-m-pro",
26680
+ "unknown"
26681
+ ]);
26682
+ var AcceleratorKindSchema = zod.z.enum([
26683
+ "intel-npu",
26684
+ "intel-igpu",
26685
+ "x86-cpu",
26686
+ "arm-cpu",
26687
+ "apple-ane",
26688
+ "coral"
26689
+ ]);
26690
+ var RecommendationReasonSchema = zod.z.discriminatedUnion("kind", [
26691
+ zod.z.object({
26692
+ kind: zod.z.literal("fits"),
26693
+ utilisation: zod.z.number()
26694
+ }),
26695
+ zod.z.object({
26696
+ kind: zod.z.literal("tie-faster"),
26697
+ over: zod.z.string(),
26698
+ recallDelta: zod.z.number()
26699
+ }),
26700
+ zod.z.object({
26701
+ kind: zod.z.literal("stepped-down"),
26702
+ from: zod.z.string(),
26703
+ to: zod.z.string(),
26704
+ limitedBy: zod.z.string()
26705
+ }),
26706
+ zod.z.object({
26707
+ kind: zod.z.literal("no-fit-lightest"),
26708
+ utilisation: zod.z.number()
26709
+ }),
26710
+ zod.z.object({
26711
+ kind: zod.z.literal("derived-latency"),
26712
+ modelId: zod.z.string()
26713
+ }),
26714
+ zod.z.object({
26715
+ kind: zod.z.literal("estimated-load"),
26716
+ observedForMs: zod.z.number().nullable()
26717
+ }),
26718
+ zod.z.object({ kind: zod.z.literal("cpu-device") }),
26719
+ zod.z.object({ kind: zod.z.literal("coral-untouched") }),
26720
+ zod.z.object({ kind: zod.z.literal("device-disabled") }),
26721
+ zod.z.object({ kind: zod.z.literal("device-unavailable") }),
26722
+ zod.z.object({ kind: zod.z.literal("node-offline") }),
26723
+ zod.z.object({ kind: zod.z.literal("no-hardware-facts") }),
26724
+ zod.z.object({
26725
+ kind: zod.z.literal("no-measured-data"),
26726
+ hardwareClass: HardwareClassIdSchema
26727
+ }),
26728
+ zod.z.object({
26729
+ kind: zod.z.literal("no-family-build"),
26730
+ format: ModelFormatSchema$1
26731
+ })
26732
+ ]);
26733
+ var DeviceDemandSchema = zod.z.object({
26734
+ nodeId: zod.z.string(),
26735
+ deviceKey: zod.z.string(),
26736
+ demandFps: zod.z.number(),
26737
+ maxCameraFps: zod.z.number(),
26738
+ alwaysOnCameras: zod.z.number(),
26739
+ onMotionSessions: zod.z.number(),
26740
+ onMotionSource: zod.z.enum([
26741
+ "observed-24h",
26742
+ "estimate",
26743
+ "none"
26744
+ ]),
26745
+ observedForMs: zod.z.number().nullable()
26746
+ });
26747
+ var DeviceModelChoiceSchema = zod.z.object({
26748
+ modelId: zod.z.string(),
26749
+ p50Ms: zod.z.number(),
26750
+ fps: zod.z.number(),
26751
+ measured: zod.z.boolean(),
26752
+ utilisation: zod.z.number(),
26753
+ personRecall: zod.z.number()
26754
+ });
26755
+ var DeviceRecommendationSchema = zod.z.object({
26756
+ deviceKey: zod.z.string(),
26757
+ accelerator: AcceleratorKindSchema.nullable(),
26758
+ enabled: zod.z.boolean(),
26759
+ available: zod.z.boolean(),
26760
+ demand: DeviceDemandSchema.nullable(),
26761
+ chosen: DeviceModelChoiceSchema.nullable(),
26762
+ reasons: zod.z.array(RecommendationReasonSchema).readonly()
26763
+ });
26764
+ var NodeRecommendationSchema = zod.z.object({
26765
+ nodeId: zod.z.string(),
26766
+ reachable: zod.z.boolean(),
26767
+ hardwareClass: HardwareClassIdSchema.nullable(),
26768
+ cpuModel: zod.z.string().nullable(),
26769
+ skipped: zod.z.boolean(),
26770
+ acceleratorModelId: zod.z.string().nullable(),
26771
+ devices: zod.z.array(DeviceRecommendationSchema).readonly(),
26772
+ reasons: zod.z.array(RecommendationReasonSchema).readonly()
26773
+ });
26774
+ var ModelPinChangeSchema = zod.z.object({
26775
+ stepId: zod.z.string(),
26776
+ before: zod.z.string().nullable(),
26777
+ after: zod.z.string().nullable()
26778
+ });
26779
+ var NodeDeviceChangeSchema = zod.z.object({
26780
+ nodeId: zod.z.string(),
26781
+ deviceKey: zod.z.string(),
26782
+ madeExplicit: zod.z.boolean(),
26783
+ modelPins: zod.z.array(ModelPinChangeSchema).readonly(),
26784
+ thresholds: zod.z.array(zod.z.object({
26785
+ stepId: zod.z.string(),
26786
+ keys: zod.z.array(zod.z.string()).readonly()
26787
+ })).readonly()
26788
+ });
26789
+ var CameraOverrideClearSchema = zod.z.object({
26790
+ deviceId: zod.z.number(),
26791
+ source: zod.z.enum(["step-override", "wholesale"]),
26792
+ nodeId: zod.z.string(),
26793
+ deviceKey: zod.z.string().nullable(),
26794
+ stepId: zod.z.string(),
26795
+ modelIdBefore: zod.z.string().nullable(),
26796
+ keys: zod.z.array(zod.z.string()).readonly()
26797
+ });
26798
+ var DetectorStoreClearSchema = zod.z.object({
26799
+ deviceId: zod.z.number(),
26800
+ keys: zod.z.array(zod.z.string()).readonly()
26801
+ });
26802
+ var BestSettingsWarningSchema = zod.z.discriminatedUnion("kind", [
26803
+ zod.z.object({
26804
+ kind: zod.z.literal("detector-store-cluster-wide"),
26805
+ skippedNodes: zod.z.array(zod.z.string()).readonly()
26806
+ }),
26807
+ zod.z.object({
26808
+ kind: zod.z.literal("detector-store-unreadable"),
26809
+ error: zod.z.string()
26810
+ }),
26811
+ zod.z.object({
26812
+ kind: zod.z.literal("coral-enabled"),
26813
+ nodeId: zod.z.string(),
26814
+ deviceKey: zod.z.string()
26815
+ })
26816
+ ]);
26817
+ var BestSettingsOptionsSchema = zod.z.object({
26818
+ /** Share of each accelerator's throughput kept free (0.3–0.5). */
26819
+ headroom: zod.z.number().min(.3).max(.5).default(.4) });
26820
+ var BestSettingsPlanSchema = zod.z.object({
26821
+ /** Hash of everything the apply will write — the apply refuses a different one. */
26822
+ planHash: zod.z.string(),
26823
+ family: zod.z.literal("yolov9"),
26824
+ headroom: zod.z.number(),
26825
+ generatedAt: zod.z.number(),
26826
+ nodes: zod.z.array(NodeRecommendationSchema).readonly(),
26827
+ nodeChanges: zod.z.array(NodeDeviceChangeSchema).readonly(),
26828
+ cameraClears: zod.z.array(CameraOverrideClearSchema).readonly(),
26829
+ detectorStoreClears: zod.z.array(DetectorStoreClearSchema).readonly(),
26830
+ warnings: zod.z.array(BestSettingsWarningSchema).readonly()
26831
+ });
26832
+ var BestSettingsApplyInputSchema = zod.z.object({
26833
+ planHash: zod.z.string(),
26834
+ headroom: zod.z.number().min(.3).max(.5).default(.4)
26835
+ });
26836
+ var BestSettingsPhaseResultSchema = zod.z.object({
26837
+ phase: zod.z.enum([
26838
+ "download",
26839
+ "camera-overrides",
26840
+ "detector-thresholds",
26841
+ "node-models",
26842
+ "redispatch"
26843
+ ]),
26844
+ ok: zod.z.boolean(),
26845
+ detail: zod.z.string()
26846
+ });
26847
+ var BestSettingsApplyResultSchema = zod.z.discriminatedUnion("kind", [
26848
+ zod.z.object({
26849
+ kind: zod.z.literal("applied"),
26850
+ planHash: zod.z.string(),
26851
+ phases: zod.z.array(BestSettingsPhaseResultSchema).readonly()
26852
+ }),
26853
+ zod.z.object({
26854
+ kind: zod.z.literal("aborted"),
26855
+ phases: zod.z.array(BestSettingsPhaseResultSchema).readonly()
26856
+ }),
26857
+ zod.z.object({
26858
+ kind: zod.z.literal("stale"),
26859
+ plan: BestSettingsPlanSchema
26860
+ }),
26861
+ zod.z.object({
26862
+ kind: zod.z.literal("refused"),
26863
+ reason: zod.z.enum(["apply-in-progress"])
26864
+ })
26865
+ ]);
26611
26866
  zod.z.object({
26612
26867
  activeCameras: zod.z.number(),
26613
26868
  throttledCameras: zod.z.number(),
@@ -28828,6 +29083,27 @@ var pipelineOrchestratorCapability = {
28828
29083
  kind: "mutation",
28829
29084
  auth: "admin"
28830
29085
  }),
29086
+ /**
29087
+ * Best settings (D745) — DRY RUN. Recommends ONE detector family (YOLOv9)
29088
+ * for the whole cluster from each node's static hardware class, the
29089
+ * measured latency table and the detection demand, and lists every write
29090
+ * the apply would make: the node model pins set, the enrichment pins and
29091
+ * model-bound thresholds removed (node level and per camera), and the
29092
+ * per-camera detector thresholds cleared. Writes nothing. Step
29093
+ * enablement, device enablement, pins, recording, notifications, zones and
29094
+ * rules are never part of it. `planHash` names exactly this diff.
29095
+ */
29096
+ planBestSettings: method(BestSettingsOptionsSchema, BestSettingsPlanSchema, { auth: "admin" }),
29097
+ /**
29098
+ * Best settings (D745) — APPLY the plan the operator confirmed. Recomputes
29099
+ * the plan and refuses (`stale`, with the fresh plan) when its hash is not
29100
+ * `planHash`, so what is written is exactly the confirmed diff. Offline
29101
+ * nodes are skipped; there is no undo.
29102
+ */
29103
+ applyBestSettings: method(BestSettingsApplyInputSchema, BestSettingsApplyResultSchema, {
29104
+ kind: "mutation",
29105
+ auth: "admin"
29106
+ }),
28831
29107
  /** Read one camera's settings. Null when never touched (inherits agent defaults fully). */
28832
29108
  getCameraSettings: method(zod.z.object({ deviceId: zod.z.number() }), CameraPipelineSettingsSchema.nullable()),
28833
29109
  /** Set or clear the 3-state toggle for one (camera, addonId). Pass `enabled: null` to clear and revert to agent default. */
@@ -51788,6 +52064,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
51788
52064
  addonId: null,
51789
52065
  access: "delete"
51790
52066
  },
52067
+ "pipelineExecutor.clearModelBoundDeviceOverrides": {
52068
+ capName: "pipeline-executor",
52069
+ capScope: "system",
52070
+ addonId: null,
52071
+ access: "delete"
52072
+ },
51791
52073
  "pipelineExecutor.deleteModel": {
51792
52074
  capName: "pipeline-executor",
51793
52075
  capScope: "system",
@@ -52004,6 +52286,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
52004
52286
  addonId: null,
52005
52287
  access: "view"
52006
52288
  },
52289
+ "pipelineOrchestrator.applyBestSettings": {
52290
+ capName: "pipeline-orchestrator",
52291
+ capScope: "system",
52292
+ addonId: null,
52293
+ access: "create"
52294
+ },
52007
52295
  "pipelineOrchestrator.applyDeviceSettingsPatch": {
52008
52296
  capName: "pipeline-orchestrator",
52009
52297
  capScope: "system",
@@ -52178,6 +52466,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
52178
52466
  addonId: null,
52179
52467
  access: "create"
52180
52468
  },
52469
+ "pipelineOrchestrator.planBestSettings": {
52470
+ capName: "pipeline-orchestrator",
52471
+ capScope: "system",
52472
+ addonId: null,
52473
+ access: "view"
52474
+ },
52181
52475
  "pipelineOrchestrator.rebalance": {
52182
52476
  capName: "pipeline-orchestrator",
52183
52477
  capScope: "system",
@@ -57855,6 +58149,11 @@ Object.freeze({
57855
58149
  form: "single",
57856
58150
  optional: false
57857
58151
  }],
58152
+ "pipelineExecutor.clearModelBoundDeviceOverrides": [{
58153
+ name: "deviceIds",
58154
+ form: "array",
58155
+ optional: true
58156
+ }],
57858
58157
  "pipelineExecutor.runPipeline": [{
57859
58158
  name: "deviceId",
57860
58159
  form: "single",
@@ -1,4 +1,4 @@
1
- import { Lt as hfModelUrl, T as HF_REPO, j as MODEL_FORMATS } from "./dist-BIGk6VLF.mjs";
1
+ import { Lt as hfModelUrl, T as HF_REPO, j as MODEL_FORMATS } from "./dist-BUfYKaXx.mjs";
2
2
  import { createHash } from "node:crypto";
3
3
  import * as path$1 from "node:path";
4
4
  import path from "node:path";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-B22ObVxi.js");
2
+ const require_dist = require("./dist-ub3muPSW.js");
3
3
  let node_crypto = require("node:crypto");
4
4
  let node_path = require("node:path");
5
5
  node_path = require_chunk.__toESM(node_path);
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("./chunk-Cek0wNdY.js");
3
- const require_dist = require("./dist-B22ObVxi.js");
3
+ const require_dist = require("./dist-ub3muPSW.js");
4
4
  const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
5
5
  require("./builtins/alerts/index.js");
6
6
  const require_builtins_calendars_calendars_addon = require("./builtins/calendars/calendars.addon.js");
@@ -29,9 +29,9 @@ require("./builtins/storage-orchestrator/index.js");
29
29
  const require_builtins_system_config_system_config_addon = require("./builtins/system-config/system-config.addon.js");
30
30
  require("./builtins/system-config/index.js");
31
31
  const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
32
- const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-B687EIFo.js");
32
+ const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-j0DRBkuI.js");
33
33
  const require_tls$1 = require("./tls-CCMX7MjX.js");
34
- const require_child_cap_dispatch = require("./child-cap-dispatch-C0m_Q3S1.js");
34
+ const require_child_cap_dispatch = require("./child-cap-dispatch-D9uoEW2A.js");
35
35
  const require_resource_monitor = require("./resource-monitor-BgWGRxN5.js");
36
36
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
37
37
  let zod = require("zod");
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM$1, r as __exportAll, t as __commonJSMin$1 } from "./chunk-CNf5ZN-e.mjs";
2
- import { $t as looseSchema, Ar as scopeKey, Bt as isCollectionArrayMethod, Dn as scopesAllowAddon, Dr as parseJsonUnknown, E as LOG_LEVEL_RANK, Er as parseJsonObject, F as RUNTIME_DEFAULTS, Gt as kebabToCamel, Jt as lifecycleJobSchema, K as addonSettingsCapability, Mt as extractNestedAddonId, Nr as EventCategory$1, On as scopesAllowDeviceCap, Or as readinessKey, Qt as logLevelAtMost, Ut as isObjectInput, Wt as isVoidInput, _r as asString$1, cn as objectInputDeclaresAddonId, dr as DEVICE_STATUS_METHOD, fr as ReadinessRegistry, gr as asNumber, hr as asJsonObject$1, k as METHOD_ACCESS_MAP, kr as resolveCapMount, ln as objectInputDeclaresRequiredDeviceId, lr as DATAPLANE_SECRET_HEADER$1, mn as procedureAuthKey, pr as ReadinessTimeoutError, sr as errMsg$1, t as ALL_CAPABILITY_DEFINITIONS, ur as DEVICE_SETTINGS_CONTRIBUTION_METHODS, vr as createEvent, wn as resolveMethodAuth, xr as expandCapMethods, yr as emitDownForOwnedCaps, zt as isArrayOutputSchema } from "./dist-BIGk6VLF.mjs";
2
+ import { $t as looseSchema, Ar as scopeKey, Bt as isCollectionArrayMethod, Dn as scopesAllowAddon, Dr as parseJsonUnknown, E as LOG_LEVEL_RANK, Er as parseJsonObject, F as RUNTIME_DEFAULTS, Gt as kebabToCamel, Jt as lifecycleJobSchema, K as addonSettingsCapability, Mt as extractNestedAddonId, Nr as EventCategory$1, On as scopesAllowDeviceCap, Or as readinessKey, Qt as logLevelAtMost, Ut as isObjectInput, Wt as isVoidInput, _r as asString$1, cn as objectInputDeclaresAddonId, dr as DEVICE_STATUS_METHOD, fr as ReadinessRegistry, gr as asNumber, hr as asJsonObject$1, k as METHOD_ACCESS_MAP, kr as resolveCapMount, ln as objectInputDeclaresRequiredDeviceId, lr as DATAPLANE_SECRET_HEADER$1, mn as procedureAuthKey, pr as ReadinessTimeoutError, sr as errMsg$1, t as ALL_CAPABILITY_DEFINITIONS, ur as DEVICE_SETTINGS_CONTRIBUTION_METHODS, vr as createEvent, wn as resolveMethodAuth, xr as expandCapMethods, yr as emitDownForOwnedCaps, zt as isArrayOutputSchema } from "./dist-BUfYKaXx.mjs";
3
3
  import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
4
4
  import "./builtins/alerts/index.mjs";
5
5
  import { CalendarsAddon } from "./builtins/calendars/calendars.addon.mjs";
@@ -28,9 +28,9 @@ import "./builtins/storage-orchestrator/index.mjs";
28
28
  import { SystemConfigAddon } from "./builtins/system-config/system-config.addon.mjs";
29
29
  import "./builtins/system-config/index.mjs";
30
30
  import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
31
- import { C as resolveFormatRevision, S as isModelDownloaded, _ as downloadModel, a as createFileDataPlaneHandler, b as getModelFilePath, c as parseRangeHeader, d as ModelDownloadService, g as downloadFile, h as deleteModelFromDisk, i as startEventLoopStallMonitor, l as parseTokenizedUrl, m as collectModelFiles, n as STALL_TICK_MS, o as contentTypeFor, p as adoptModelRevisions, r as attributeStall, s as createAuthenticatedFileServer, t as STALL_REPORT_MS, u as resolveFilePath, v as ensureModel, w as revisionWeightUrl, y as fetchJson } from "./event-loop-stall-monitor-DxiaIssh.mjs";
31
+ import { C as resolveFormatRevision, S as isModelDownloaded, _ as downloadModel, a as createFileDataPlaneHandler, b as getModelFilePath, c as parseRangeHeader, d as ModelDownloadService, g as downloadFile, h as deleteModelFromDisk, i as startEventLoopStallMonitor, l as parseTokenizedUrl, m as collectModelFiles, n as STALL_TICK_MS, o as contentTypeFor, p as adoptModelRevisions, r as attributeStall, s as createAuthenticatedFileServer, t as STALL_REPORT_MS, u as resolveFilePath, v as ensureModel, w as revisionWeightUrl, y as fetchJson } from "./event-loop-stall-monitor-CPI1xIcd.mjs";
32
32
  import { A as allFamiliesListenHost, C as collectCertIdentity, D as SERVER_AUTH_OID, E as MAX_LEAF_VALIDITY_DAYS, F as registerLanHttpHandler, M as bindPendingLanHttp, N as closeLanHttp, O as evaluateExistingCert, P as readLanHttpState, S as CA_COMMON_NAME, T as LEAF_RENEWAL_WINDOW_DAYS, _ as writeExtraSans, a as validateUploadedTls, b as loadTlsCert, c as registerHttpsListener, d as prepareBootTls, f as UPLOADED_CA_FILE, g as splitPemCertificates, h as readTlsMode, i as storeUploadedCertificate, j as applyLanHttp, k as DEFAULT_LAN_HTTP_PORT, l as reloadHttpsListener, m as readTlsAccessStatus, n as regenerateCertificate, o as clearHttpsListener, p as readExtraSans, r as revertToGeneratedCertificate, s as leafFingerprintOf, t as applyCertificateToListener, u as servedHttpsLeafFingerprint, v as writeTlsMode, w as CA_VALIDITY_DAYS, x as reissueTlsLeaf, y as ensureTlsCert } from "./tls-CJHogwTl.mjs";
33
- import { $ as CapRouteError, $n as EMPTY_CAP_ACTION_READING, $t as RUNNER_RSS_BUDGET_ENV, A as resolveHwAccel, An as OUTBOUND_QUEUE_SUSTAIN_MS, At as DeviceRegistry, B as udsChildLogToWorkerEntry, Bn as createSocketPlaneMeter, Bt as hostNodeIdOf, C as getBrokerEventBus, Cn as HEAP_SPACE_REPORT_MIN_MB, Ct as capActionName, D as subscribePassthrough, Dn as readHeapSpaces, Dt as parseCapAction, E as setNodeEventInterest, En as heapSpaceField, Et as capServiceName, F as ipcParentLink, Fn as createMeshQueueReader, Ft as resolveAddonClass, G as UDS_NO_ROUTE_PREFIX, Gn as EMPTY_SOCKET_DIRECTION, Gt as HEAP_WATCH_INTERVAL_MS, H as createUdsLoggerWithControl, Hn as diffSocketPlane, Ht as HEAP_RECLAIM_MIN_INTERVAL_MS, I as localProviderLink, In as formatMeshQueue, It as buildNpmChildEnv, J as answerClaimedGetStatus, Jn as sampleSocketDirection, Jt as HUB_MAIN_RSS_BUDGET_MB, K as afterWorkerOnlineAnnounce, Kn as createSocketDirectionCounters, Kt as HEAP_WATCH_WARN_RATIO, L as createParentUnownedCallHandler, Ln as EMPTY_SOCKET_PLANE_BASELINE, Lt as resolveNpmInvocation, M as brokerTransportLink, Mn as createOutboundQueueGate, Mt as CapabilityUnavailableError, N as buildLinkChain, Nn as formatOutboundQueueVerdict, Nt as copyBundledNativeModules, O as AddonDepsManager, On as selectReportedSpaces, Ot as deserializeTypedArrays, P as deviceCapResolverLink, Pn as MESH_QUEUE_TOP_N, Pt as installManifestNativeDeps, Q as CapRouteResolver, Qn as CAP_ACTION_UNLABELLED, Qt as RUNNER_HEAP_WATCH_INTERVAL_MS, R as createUdsEventBridge, Rn as SOCKET_PLANE_TOP_N, Rt as runNpm, S as clusterEventTopic, Sn as DECISIVE_HEAP_SPACES, St as NATIVE_PROVIDER_SERVICE_INFIX, T as registerEventBusService, Tn as formatHeapSpaces, Tt as capBareAction, U as LocalChildClient, Un as formatSocketPlane, Ut as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, V as createUdsLogger, Vn as createSocketPlaneReader, Vt as createAddonDataPlaneFacility, W as LocalChildRegistry, Wn as readSocketQueues, Wt as HEAP_RECLAIM_TRIGGER_MB, X as AGENT_CAP_FWD_ACTION, Xn as socketDirectionMessages, Xt as RSS_BUDGET_REANNOUNCE_MIN_MS, Y as deviceOfGetStatus, Yn as socketDirectionBytes, Yt as HUB_RSS_BUDGET_ENV, Z as AGENT_CAP_FWD_SERVICE, Zn as CAP_ACTION_OVERFLOW_LABEL, Zt as RSS_BUDGET_RELEASE_RATIO, _ as getWorkerDeviceRegistry, _n as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, a as reapProcessGroup, an as describeRss, ar as createEventPlaneMeter, at as getCapUsageRegistry, b as setHubConnected, bn as formatArrayBufferCensus, bt as createAddonService, c as runnerOwnsProcessGroup, cn as parseRssBudgetMb, cr as formatEventPlane, ct as UdsLocalTransportServer, d as summarizeMembers, dn as startHeapWatch, dt as localEndpointPath, en as ZERO_LOOP_DELAY, er as MAX_CAP_ACTIONS_PER_PEER, et as classifyCapRoute, f as installManifestSystemDeps, fn as startRunnerHeapWatch, ft as FrameDecoder, g as createUdsAddonContext, gn as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, h as createAddonContext, hn as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, ht as createBrokerDeviceManagerApi, in as createV8Reclaimer, ir as EVENT_PLANE_TOP_N, it as __resetCapUsageRegistryForTests, j as brokerCallForCap, jn as OUTBOUND_QUEUE_THRESHOLD_BYTES, jt as CapabilityHandle, k as createKernelHwAccel, kn as OUTBOUND_QUEUE_COOLDOWN_MS, kt as serializeTypedArrays, l as signalAllRunnerGroups, ln as reclaimIntervalMs, lt as SocketChannel, m as adaptBrokerToCluster, mn as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, mt as buildNativeCapProxy, nn as createDeferredHeapWatchSink, nr as createCapActionCensus, nt as CapUsageRegistry, o as registerRunnerGroup, on as hubMainRssBudget, or as createEventPlaneReader, ot as createLocalTransport, p as installManifestPythonDeps, pn as strandedMb, pt as encodeFrame, q as GET_STATUS_METHOD, qn as recordSocketFrame, qt as HUB_MAIN_HEAP_WATCH_LABEL, r as defaultProcessGroupOps, rn as createLoopDelayMeter, rr as diffCapActionCensus, rt as PARENT_ROUTED_PROVIDER_ADDON_ID, s as releaseRunnerGroup, sn as nextRssBudgetState, sr as diffEventPlane, st as UdsLocalTransportClient, t as CAP_METHOD_NOT_IMPLEMENTED, tn as buildHeapSample, tr as capActionLabel, tt as callWithServiceDiscovery, un as shouldReclaim, ut as PeerAnsweredError, v as getOrInitReadinessRegistry, vn as createArrayBufferCensusGate, vt as mountNativeCapService, w as getMoleculerEventStats, wn as emitHeapDiagnosticReport, wt as capActionSuffix, x as EVENT_TOPIC_PREFIX, xn as isArrayBufferCensusReport, xt as validateProviderRegistrations, y as getOrInitReadinessRegistryForClient, yn as createInspectorArrayBufferCensus, z as createUdsEventBus, zn as SOCKET_QUEUE_TOP_N, zt as createAddonPeerBytesFacility } from "./child-cap-dispatch-DVawueyL.mjs";
33
+ import { $ as CapRouteError, $n as EMPTY_CAP_ACTION_READING, $t as RUNNER_RSS_BUDGET_ENV, A as resolveHwAccel, An as OUTBOUND_QUEUE_SUSTAIN_MS, At as DeviceRegistry, B as udsChildLogToWorkerEntry, Bn as createSocketPlaneMeter, Bt as hostNodeIdOf, C as getBrokerEventBus, Cn as HEAP_SPACE_REPORT_MIN_MB, Ct as capActionName, D as subscribePassthrough, Dn as readHeapSpaces, Dt as parseCapAction, E as setNodeEventInterest, En as heapSpaceField, Et as capServiceName, F as ipcParentLink, Fn as createMeshQueueReader, Ft as resolveAddonClass, G as UDS_NO_ROUTE_PREFIX, Gn as EMPTY_SOCKET_DIRECTION, Gt as HEAP_WATCH_INTERVAL_MS, H as createUdsLoggerWithControl, Hn as diffSocketPlane, Ht as HEAP_RECLAIM_MIN_INTERVAL_MS, I as localProviderLink, In as formatMeshQueue, It as buildNpmChildEnv, J as answerClaimedGetStatus, Jn as sampleSocketDirection, Jt as HUB_MAIN_RSS_BUDGET_MB, K as afterWorkerOnlineAnnounce, Kn as createSocketDirectionCounters, Kt as HEAP_WATCH_WARN_RATIO, L as createParentUnownedCallHandler, Ln as EMPTY_SOCKET_PLANE_BASELINE, Lt as resolveNpmInvocation, M as brokerTransportLink, Mn as createOutboundQueueGate, Mt as CapabilityUnavailableError, N as buildLinkChain, Nn as formatOutboundQueueVerdict, Nt as copyBundledNativeModules, O as AddonDepsManager, On as selectReportedSpaces, Ot as deserializeTypedArrays, P as deviceCapResolverLink, Pn as MESH_QUEUE_TOP_N, Pt as installManifestNativeDeps, Q as CapRouteResolver, Qn as CAP_ACTION_UNLABELLED, Qt as RUNNER_HEAP_WATCH_INTERVAL_MS, R as createUdsEventBridge, Rn as SOCKET_PLANE_TOP_N, Rt as runNpm, S as clusterEventTopic, Sn as DECISIVE_HEAP_SPACES, St as NATIVE_PROVIDER_SERVICE_INFIX, T as registerEventBusService, Tn as formatHeapSpaces, Tt as capBareAction, U as LocalChildClient, Un as formatSocketPlane, Ut as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, V as createUdsLogger, Vn as createSocketPlaneReader, Vt as createAddonDataPlaneFacility, W as LocalChildRegistry, Wn as readSocketQueues, Wt as HEAP_RECLAIM_TRIGGER_MB, X as AGENT_CAP_FWD_ACTION, Xn as socketDirectionMessages, Xt as RSS_BUDGET_REANNOUNCE_MIN_MS, Y as deviceOfGetStatus, Yn as socketDirectionBytes, Yt as HUB_RSS_BUDGET_ENV, Z as AGENT_CAP_FWD_SERVICE, Zn as CAP_ACTION_OVERFLOW_LABEL, Zt as RSS_BUDGET_RELEASE_RATIO, _ as getWorkerDeviceRegistry, _n as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, a as reapProcessGroup, an as describeRss, ar as createEventPlaneMeter, at as getCapUsageRegistry, b as setHubConnected, bn as formatArrayBufferCensus, bt as createAddonService, c as runnerOwnsProcessGroup, cn as parseRssBudgetMb, cr as formatEventPlane, ct as UdsLocalTransportServer, d as summarizeMembers, dn as startHeapWatch, dt as localEndpointPath, en as ZERO_LOOP_DELAY, er as MAX_CAP_ACTIONS_PER_PEER, et as classifyCapRoute, f as installManifestSystemDeps, fn as startRunnerHeapWatch, ft as FrameDecoder, g as createUdsAddonContext, gn as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, h as createAddonContext, hn as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, ht as createBrokerDeviceManagerApi, in as createV8Reclaimer, ir as EVENT_PLANE_TOP_N, it as __resetCapUsageRegistryForTests, j as brokerCallForCap, jn as OUTBOUND_QUEUE_THRESHOLD_BYTES, jt as CapabilityHandle, k as createKernelHwAccel, kn as OUTBOUND_QUEUE_COOLDOWN_MS, kt as serializeTypedArrays, l as signalAllRunnerGroups, ln as reclaimIntervalMs, lt as SocketChannel, m as adaptBrokerToCluster, mn as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, mt as buildNativeCapProxy, nn as createDeferredHeapWatchSink, nr as createCapActionCensus, nt as CapUsageRegistry, o as registerRunnerGroup, on as hubMainRssBudget, or as createEventPlaneReader, ot as createLocalTransport, p as installManifestPythonDeps, pn as strandedMb, pt as encodeFrame, q as GET_STATUS_METHOD, qn as recordSocketFrame, qt as HUB_MAIN_HEAP_WATCH_LABEL, r as defaultProcessGroupOps, rn as createLoopDelayMeter, rr as diffCapActionCensus, rt as PARENT_ROUTED_PROVIDER_ADDON_ID, s as releaseRunnerGroup, sn as nextRssBudgetState, sr as diffEventPlane, st as UdsLocalTransportClient, t as CAP_METHOD_NOT_IMPLEMENTED, tn as buildHeapSample, tr as capActionLabel, tt as callWithServiceDiscovery, un as shouldReclaim, ut as PeerAnsweredError, v as getOrInitReadinessRegistry, vn as createArrayBufferCensusGate, vt as mountNativeCapService, w as getMoleculerEventStats, wn as emitHeapDiagnosticReport, wt as capActionSuffix, x as EVENT_TOPIC_PREFIX, xn as isArrayBufferCensusReport, xt as validateProviderRegistrations, y as getOrInitReadinessRegistryForClient, yn as createInspectorArrayBufferCensus, z as createUdsEventBus, zn as SOCKET_QUEUE_TOP_N, zt as createAddonPeerBytesFacility } from "./child-cap-dispatch-tHbRfy_7.mjs";
34
34
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-B2WZ8_q9.mjs";
35
35
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
36
36
  import { z } from "zod";
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-B22ObVxi.js");
1
+ const require_dist = require("./dist-ub3muPSW.js");
2
2
  //#region src/builtins/sqlite-storage/retired-settings-keys.ts
3
3
  /**
4
4
  * Is THIS node the one whose settings store is the cluster's authority?
@@ -1,4 +1,4 @@
1
- import { hr as asJsonObject } from "./dist-BIGk6VLF.mjs";
1
+ import { hr as asJsonObject } from "./dist-BUfYKaXx.mjs";
2
2
  //#region src/builtins/sqlite-storage/retired-settings-keys.ts
3
3
  /**
4
4
  * Is THIS node the one whose settings store is the cluster's authority?
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/system",
3
- "version": "1.2.365",
3
+ "version": "1.2.366",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",