@camstack/system 1.2.365 → 1.2.367

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-D39k_fJX.js} +1 -1
  56. package/dist/{child-cap-dispatch-DVawueyL.mjs → child-cap-dispatch-DxV4uO5r.mjs} +1 -1
  57. package/dist/{composition-sources-BYZglxTf.js → composition-sources-B4ZDN0eX.js} +1 -1
  58. package/dist/{composition-sources-BMsVkvaT.mjs → composition-sources-D8zoyjU2.mjs} +1 -1
  59. package/dist/{dist-B22ObVxi.js → dist-BK15O90l.js} +455 -27
  60. package/dist/{dist-BIGk6VLF.mjs → dist-CeGOZBrL.mjs} +455 -27
  61. package/dist/{event-loop-stall-monitor-DxiaIssh.mjs → event-loop-stall-monitor-BCYVajJg.mjs} +1 -1
  62. package/dist/{event-loop-stall-monitor-B687EIFo.js → event-loop-stall-monitor-CkyaRbMu.js} +1 -1
  63. package/dist/index.js +3 -3
  64. package/dist/index.mjs +3 -3
  65. package/dist/{retired-settings-keys-C149_dvi.mjs → retired-settings-keys-CKok9c60.mjs} +1 -1
  66. package/dist/{retired-settings-keys-C8F8g0Oz.js → retired-settings-keys-Qu7fGRU2.js} +1 -1
  67. package/package.json +1 -1
@@ -7930,6 +7930,40 @@ var ModelFormatEntrySchema = z.object({
7930
7930
  revision: 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 = 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 = 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 = z.object({
7961
+ downloaded: z.boolean(),
7962
+ sizeMB: 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 = z.object({
25969
26003
  timestamp: z.number(),
25970
26004
  capturedAt: z.number().optional()
25971
26005
  });
25972
- var ModelFormatSchema$1 = z.enum([
26006
+ var ModelFormatSchema$2 = z.enum([
25973
26007
  "onnx",
25974
26008
  "coreml",
25975
26009
  "openvino",
@@ -25987,7 +26021,7 @@ var PipelineSlotSchema = z.enum([
25987
26021
  var PipelineEngineChoiceSchema = z.object({
25988
26022
  runtime: z.literal("python"),
25989
26023
  backend: z.string(),
25990
- format: ModelFormatSchema$1,
26024
+ format: ModelFormatSchema$2,
25991
26025
  device: z.string().optional()
25992
26026
  });
25993
26027
  /**
@@ -26045,10 +26079,7 @@ var PipelineTemplateSchema$1 = z.object({
26045
26079
  var PipelineModelOptionSchema = z.object({
26046
26080
  id: z.string(),
26047
26081
  name: z.string(),
26048
- formats: z.record(z.string(), z.object({
26049
- downloaded: z.boolean(),
26050
- sizeMB: z.number()
26051
- })),
26082
+ formats: z.record(z.string(), PipelineModelFormatStatusSchema),
26052
26083
  group: ModelVariantGroupSchema.optional(),
26053
26084
  legacy: 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(z.object({
26306
+ nodeId: z.string(),
26307
+ deviceIds: z.array(z.number()).readonly().optional(),
26308
+ dryRun: z.boolean()
26309
+ }), z.object({
26310
+ entries: z.array(z.object({
26311
+ deviceId: z.number(),
26312
+ keys: z.array(z.string()).readonly()
26313
+ })).readonly(),
26314
+ refused: z.array(z.object({
26315
+ deviceId: z.number(),
26316
+ reason: 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(z.object({
26358
26415
  addonId: z.string(),
26359
26416
  modelId: z.string(),
26360
- format: ModelFormatSchema$1
26417
+ format: ModelFormatSchema$2
26361
26418
  }), DownloadModelResultSchema, { kind: "mutation" }),
26362
26419
  deleteModel: method(z.object({
26363
26420
  addonId: z.string(),
26364
26421
  modelId: z.string(),
26365
- format: ModelFormatSchema$1
26422
+ format: ModelFormatSchema$2
26366
26423
  }), z.object({ success: z.literal(true) }), { kind: "mutation" }),
26367
26424
  /**
26368
26425
  * Stateless single-frame execution. Callers (runner, benchmark) pass
@@ -26608,6 +26665,307 @@ var pipelineExecutorCapability = {
26608
26665
  getDetectionConfigSchema: method(z.void(), ConfigUISchemaNullableBridge)
26609
26666
  }
26610
26667
  };
26668
+ /**
26669
+ * Wire shapes of the Load balancing surface (D748): the session placement
26670
+ * policy, the atomic share write, the observed placement statistics, the
26671
+ * hardware share suggestion and the stale device pins.
26672
+ */
26673
+ /**
26674
+ * How a new detection session picks its node and device.
26675
+ * - `least-loaded` — the historical rule: lowest `attached / weight`, a
26676
+ * constant node order at a tie (D37). An idle node always ties at 0, so a
26677
+ * weight only bites once a node already holds a session.
26678
+ * - `share` — the share of PARALLEL sessions is held to the weights, and a
26679
+ * full or drowning node yields to a free one (D748).
26680
+ */
26681
+ var SessionPlacementPolicySchema = z.enum(["least-loaded", "share"]);
26682
+ var LoadBalancingSharesInputSchema = z.object({
26683
+ /** nodeId → share (> 0). A node left out keeps its weight. */
26684
+ nodes: z.record(z.string(), z.number().positive()).default({}),
26685
+ /** nodeId → deviceKey → share (> 0). A device left out keeps its weight. */
26686
+ devices: z.record(z.string(), z.record(z.string(), z.number().positive())).default({})
26687
+ });
26688
+ var PlacementStatsInputSchema = z.object({
26689
+ /** Window the observed shares are averaged over (default 1 h, max 24 h). */
26690
+ windowMs: z.number().int().min(6e4).max(1440 * 60 * 1e3).default(3600 * 1e3) });
26691
+ var PlacementDeviceStatsSchema = z.object({
26692
+ deviceKey: z.string(),
26693
+ /** Sessions running on this device now. */
26694
+ sessionsNow: z.number(),
26695
+ /** Sessions started on this device inside the window. */
26696
+ sessionsStarted: z.number(),
26697
+ /** Time-weighted share of the node's parallel sessions over the window (0–1); null = no session ran. */
26698
+ observedShare: z.number().nullable()
26699
+ });
26700
+ var PlacementNodeStatsSchema = z.object({
26701
+ nodeId: z.string(),
26702
+ sessionsNow: z.number(),
26703
+ sessionsStarted: z.number(),
26704
+ /** Time-weighted share of the cluster's parallel sessions over the window (0–1); null = none ran. */
26705
+ observedShare: z.number().nullable(),
26706
+ /** Most sessions this node ran at once inside the window. */
26707
+ peakSessions: z.number(),
26708
+ /** Sessions a share election handed elsewhere because this node was full or drowning. */
26709
+ yieldsAway: z.number(),
26710
+ devices: z.array(PlacementDeviceStatsSchema).readonly()
26711
+ });
26712
+ /** A camera's device pin that the session path cannot honour. */
26713
+ var StaleDevicePinSchema = z.object({
26714
+ deviceId: z.number(),
26715
+ deviceKey: z.string(),
26716
+ /** `disabled` — the key exists on some node but is not enabled anywhere; `absent` — no node has it. */
26717
+ reason: z.enum(["disabled", "absent"])
26718
+ });
26719
+ var PlacementStatsSchema = z.object({
26720
+ policy: SessionPlacementPolicySchema,
26721
+ windowMs: z.number(),
26722
+ /** How much of the window was actually observed (the hub keeps it in memory). */
26723
+ observedForMs: z.number(),
26724
+ sessionsNow: z.number(),
26725
+ /** Most parallel sessions across the cluster inside the window. */
26726
+ clusterPeakSessions: z.number(),
26727
+ nodes: z.array(PlacementNodeStatsSchema).readonly(),
26728
+ stalePins: z.array(StaleDevicePinSchema).readonly()
26729
+ });
26730
+ var SuggestSharesInputSchema = z.object({ headroom: z.number().min(.3).max(.5).default(.4) });
26731
+ var SuggestedDeviceShareSchema = z.object({
26732
+ deviceKey: z.string(),
26733
+ /** Share of the node (0–100, rounded). */
26734
+ share: z.number(),
26735
+ modelId: z.string().nullable(),
26736
+ /** Inferences per second at that model, from the measured table. */
26737
+ fps: z.number().nullable(),
26738
+ measured: z.boolean(),
26739
+ /** Advisory session cap: ⌊fps × (1 − headroom) / camera fps⌋. Never enforced. */
26740
+ suggestedMaxSessions: z.number().nullable()
26741
+ });
26742
+ var SuggestedNodeShareSchema = z.object({
26743
+ nodeId: z.string(),
26744
+ /** Share of the cluster (0–100, rounded); null = node skipped (offline, unknown hardware). */
26745
+ share: z.number().nullable(),
26746
+ /** Parallel sessions the node sustains at the suggested models with the headroom kept free. */
26747
+ capacitySessions: z.number(),
26748
+ devices: z.array(SuggestedDeviceShareSchema).readonly(),
26749
+ skippedReason: z.string().nullable()
26750
+ });
26751
+ var SuggestSharesResultSchema = z.object({
26752
+ headroom: z.number(),
26753
+ /** Camera detection rate the capacity is counted in (the fastest camera's fps). */
26754
+ cameraFps: z.number(),
26755
+ /** How many share → model → capacity rounds ran before the shares stopped moving (≤ 3). */
26756
+ iterations: z.number(),
26757
+ nodes: z.array(SuggestedNodeShareSchema).readonly()
26758
+ });
26759
+ /**
26760
+ * The wire shapes of the Best settings plan and apply (D745), used by the
26761
+ * `pipeline-orchestrator` cap. The recommender's own types
26762
+ * (`recommend.ts`, `demand.ts`) are the TS face of the same data; these
26763
+ * schemas are what crosses the cap boundary.
26764
+ */
26765
+ var ModelFormatSchema$1 = z.enum(MODEL_FORMATS);
26766
+ var HardwareClassIdSchema = z.enum([
26767
+ "intel-core-ultra",
26768
+ "intel-n-series",
26769
+ "apple-m-base",
26770
+ "apple-m-pro",
26771
+ "unknown"
26772
+ ]);
26773
+ var AcceleratorKindSchema = z.enum([
26774
+ "intel-npu",
26775
+ "intel-igpu",
26776
+ "x86-cpu",
26777
+ "arm-cpu",
26778
+ "apple-ane",
26779
+ "coral"
26780
+ ]);
26781
+ var RecommendationReasonSchema = z.discriminatedUnion("kind", [
26782
+ z.object({
26783
+ kind: z.literal("fits"),
26784
+ utilisation: z.number()
26785
+ }),
26786
+ z.object({
26787
+ kind: z.literal("tie-faster"),
26788
+ over: z.string(),
26789
+ recallDelta: z.number()
26790
+ }),
26791
+ z.object({
26792
+ kind: z.literal("stepped-down"),
26793
+ from: z.string(),
26794
+ to: z.string(),
26795
+ limitedBy: z.string()
26796
+ }),
26797
+ z.object({
26798
+ kind: z.literal("no-fit-lightest"),
26799
+ utilisation: z.number()
26800
+ }),
26801
+ z.object({
26802
+ kind: z.literal("derived-latency"),
26803
+ modelId: z.string()
26804
+ }),
26805
+ z.object({
26806
+ kind: z.literal("estimated-load"),
26807
+ observedForMs: z.number().nullable()
26808
+ }),
26809
+ z.object({ kind: z.literal("cpu-device") }),
26810
+ z.object({ kind: z.literal("coral-untouched") }),
26811
+ z.object({ kind: z.literal("device-disabled") }),
26812
+ z.object({ kind: z.literal("device-unavailable") }),
26813
+ z.object({ kind: z.literal("node-offline") }),
26814
+ z.object({ kind: z.literal("no-hardware-facts") }),
26815
+ z.object({
26816
+ kind: z.literal("no-measured-data"),
26817
+ hardwareClass: HardwareClassIdSchema
26818
+ }),
26819
+ z.object({
26820
+ kind: z.literal("no-family-build"),
26821
+ format: ModelFormatSchema$1
26822
+ })
26823
+ ]);
26824
+ var DeviceDemandSchema = z.object({
26825
+ nodeId: z.string(),
26826
+ deviceKey: z.string(),
26827
+ demandFps: z.number(),
26828
+ maxCameraFps: z.number(),
26829
+ alwaysOnCameras: z.number(),
26830
+ onMotionSessions: z.number(),
26831
+ onMotionSource: z.enum([
26832
+ "observed-24h",
26833
+ "estimate",
26834
+ "none"
26835
+ ]),
26836
+ observedForMs: z.number().nullable(),
26837
+ /** How on-motion sessions were charged: per-device observation, or split by share (D748). */
26838
+ placement: SessionPlacementPolicySchema
26839
+ });
26840
+ var DeviceModelChoiceSchema = z.object({
26841
+ modelId: z.string(),
26842
+ p50Ms: z.number(),
26843
+ fps: z.number(),
26844
+ measured: z.boolean(),
26845
+ utilisation: z.number(),
26846
+ personRecall: z.number()
26847
+ });
26848
+ var DeviceRecommendationSchema = z.object({
26849
+ deviceKey: z.string(),
26850
+ accelerator: AcceleratorKindSchema.nullable(),
26851
+ enabled: z.boolean(),
26852
+ available: z.boolean(),
26853
+ demand: DeviceDemandSchema.nullable(),
26854
+ chosen: DeviceModelChoiceSchema.nullable(),
26855
+ reasons: z.array(RecommendationReasonSchema).readonly()
26856
+ });
26857
+ var NodeRecommendationSchema = z.object({
26858
+ nodeId: z.string(),
26859
+ reachable: z.boolean(),
26860
+ hardwareClass: HardwareClassIdSchema.nullable(),
26861
+ cpuModel: z.string().nullable(),
26862
+ skipped: z.boolean(),
26863
+ acceleratorModelId: z.string().nullable(),
26864
+ devices: z.array(DeviceRecommendationSchema).readonly(),
26865
+ reasons: z.array(RecommendationReasonSchema).readonly()
26866
+ });
26867
+ var ModelPinChangeSchema = z.object({
26868
+ stepId: z.string(),
26869
+ before: z.string().nullable(),
26870
+ after: z.string().nullable()
26871
+ });
26872
+ var NodeDeviceChangeSchema = z.object({
26873
+ nodeId: z.string(),
26874
+ deviceKey: z.string(),
26875
+ madeExplicit: z.boolean(),
26876
+ modelPins: z.array(ModelPinChangeSchema).readonly(),
26877
+ thresholds: z.array(z.object({
26878
+ stepId: z.string(),
26879
+ keys: z.array(z.string()).readonly()
26880
+ })).readonly()
26881
+ });
26882
+ var CameraOverrideClearSchema = z.object({
26883
+ deviceId: z.number(),
26884
+ source: z.enum(["step-override", "wholesale"]),
26885
+ nodeId: z.string(),
26886
+ deviceKey: z.string().nullable(),
26887
+ stepId: z.string(),
26888
+ modelIdBefore: z.string().nullable(),
26889
+ keys: z.array(z.string()).readonly()
26890
+ });
26891
+ var DetectorStoreClearSchema = z.object({
26892
+ deviceId: z.number(),
26893
+ keys: z.array(z.string()).readonly()
26894
+ });
26895
+ var BestSettingsWarningSchema = z.discriminatedUnion("kind", [
26896
+ z.object({
26897
+ kind: z.literal("detector-store-cluster-wide"),
26898
+ skippedNodes: z.array(z.string()).readonly()
26899
+ }),
26900
+ z.object({
26901
+ kind: z.literal("detector-store-unreadable"),
26902
+ error: z.string()
26903
+ }),
26904
+ z.object({
26905
+ kind: z.literal("coral-enabled"),
26906
+ nodeId: z.string(),
26907
+ deviceKey: z.string()
26908
+ })
26909
+ ]);
26910
+ var BestSettingsOptionsSchema = z.object({
26911
+ /** Share of each accelerator's throughput kept free (0.3–0.5). */
26912
+ headroom: z.number().min(.3).max(.5).default(.4),
26913
+ /**
26914
+ * What-if shares (D748): plan as if these node/device shares were stored
26915
+ * and the policy were `share`. Absent = the stored shares under the stored
26916
+ * policy. A what-if plan is for display; apply always re-plans from what
26917
+ * is stored.
26918
+ */
26919
+ shares: LoadBalancingSharesInputSchema.optional()
26920
+ });
26921
+ var BestSettingsPlanSchema = z.object({
26922
+ /** Hash of everything the apply will write — the apply refuses a different one. */
26923
+ planHash: z.string(),
26924
+ family: z.literal("yolov9"),
26925
+ headroom: z.number(),
26926
+ /** Planned under what-if shares (D748): for display — apply refuses it as stale. */
26927
+ whatIf: z.boolean(),
26928
+ generatedAt: z.number(),
26929
+ nodes: z.array(NodeRecommendationSchema).readonly(),
26930
+ nodeChanges: z.array(NodeDeviceChangeSchema).readonly(),
26931
+ cameraClears: z.array(CameraOverrideClearSchema).readonly(),
26932
+ detectorStoreClears: z.array(DetectorStoreClearSchema).readonly(),
26933
+ warnings: z.array(BestSettingsWarningSchema).readonly()
26934
+ });
26935
+ var BestSettingsApplyInputSchema = z.object({
26936
+ planHash: z.string(),
26937
+ headroom: z.number().min(.3).max(.5).default(.4)
26938
+ });
26939
+ var BestSettingsPhaseResultSchema = z.object({
26940
+ phase: z.enum([
26941
+ "download",
26942
+ "camera-overrides",
26943
+ "detector-thresholds",
26944
+ "node-models",
26945
+ "redispatch"
26946
+ ]),
26947
+ ok: z.boolean(),
26948
+ detail: z.string()
26949
+ });
26950
+ var BestSettingsApplyResultSchema = z.discriminatedUnion("kind", [
26951
+ z.object({
26952
+ kind: z.literal("applied"),
26953
+ planHash: z.string(),
26954
+ phases: z.array(BestSettingsPhaseResultSchema).readonly()
26955
+ }),
26956
+ z.object({
26957
+ kind: z.literal("aborted"),
26958
+ phases: z.array(BestSettingsPhaseResultSchema).readonly()
26959
+ }),
26960
+ z.object({
26961
+ kind: z.literal("stale"),
26962
+ plan: BestSettingsPlanSchema
26963
+ }),
26964
+ z.object({
26965
+ kind: z.literal("refused"),
26966
+ reason: z.enum(["apply-in-progress"])
26967
+ })
26968
+ ]);
26611
26969
  z.object({
26612
26970
  activeCameras: z.number(),
26613
26971
  throttledCameras: z.number(),
@@ -28020,7 +28378,6 @@ var CameraStepOverridePatchSchema = z.object({
28020
28378
  settings: z.record(z.string(), z.unknown()).readonly().optional()
28021
28379
  });
28022
28380
  var CameraPipelineSettingsSchema = z.object({
28023
- pinnedAgentNodeId: z.string().optional(),
28024
28381
  stepToggles: z.record(z.string(), z.boolean()).optional(),
28025
28382
  stepOverridesByDevice: z.record(z.string(), z.record(z.string(), z.record(z.string(), CameraStepOverridePatchSchema))).optional(),
28026
28383
  pipelineByAgent: z.record(z.string(), CameraPipelineForAgentSchema).optional()
@@ -28698,18 +29055,6 @@ var pipelineOrchestratorCapability = {
28698
29055
  auth: "admin"
28699
29056
  }),
28700
29057
  /**
28701
- * Set a node's detection WEIGHT (relative share for the quota balancer).
28702
- * `null` clears it (back to the implicit weight 1). Unpinned cameras
28703
- * distribute proportionally to weight; `maxCameras` still clamps on top.
28704
- */
28705
- setAgentDetectWeight: method(z.object({
28706
- agentNodeId: z.string(),
28707
- detectWeight: z.number().positive().nullable()
28708
- }), z.object({ success: z.literal(true) }), {
28709
- kind: "mutation",
28710
- auth: "admin"
28711
- }),
28712
- /**
28713
29058
  * Set one node's placement CAPABILITIES — the per-node record that
28714
29059
  * replaced the four flat orchestrator lists (`enabledNodes`,
28715
29060
  * `enabledDecoderNodes`, `enabledAudioNodes`, `remoteSourcingNodes`).
@@ -28828,6 +29173,54 @@ var pipelineOrchestratorCapability = {
28828
29173
  kind: "mutation",
28829
29174
  auth: "admin"
28830
29175
  }),
29176
+ /**
29177
+ * Best settings (D745) — DRY RUN. Recommends ONE detector family (YOLOv9)
29178
+ * for the whole cluster from each node's static hardware class, the
29179
+ * measured latency table and the detection demand, and lists every write
29180
+ * the apply would make: the node model pins set, the enrichment pins and
29181
+ * model-bound thresholds removed (node level and per camera), and the
29182
+ * per-camera detector thresholds cleared. Writes nothing. Step
29183
+ * enablement, device enablement, pins, recording, notifications, zones and
29184
+ * rules are never part of it. `planHash` names exactly this diff.
29185
+ */
29186
+ planBestSettings: method(BestSettingsOptionsSchema, BestSettingsPlanSchema, { auth: "admin" }),
29187
+ /**
29188
+ * Best settings (D745) — APPLY the plan the operator confirmed. Recomputes
29189
+ * the plan and refuses (`stale`, with the fresh plan) when its hash is not
29190
+ * `planHash`, so what is written is exactly the confirmed diff. Offline
29191
+ * nodes are skipped; there is no undo.
29192
+ */
29193
+ applyBestSettings: method(BestSettingsApplyInputSchema, BestSettingsApplyResultSchema, {
29194
+ kind: "mutation",
29195
+ auth: "admin"
29196
+ }),
29197
+ /**
29198
+ * Load balancing (D748) — write node shares (`detectWeight`) and per-node
29199
+ * device shares (inference-device `weight`) in ONE atomic read-modify-write
29200
+ * of the agent settings — the only writer of node shares (the per-node
29201
+ * `setAgentDetectWeight` it replaced raced its siblings, one RMW each).
29202
+ * A node or device left out keeps its weight. Never changes the
29203
+ * `sessionPlacement` policy.
29204
+ */
29205
+ setLoadBalancingShares: method(LoadBalancingSharesInputSchema, z.object({ success: z.literal(true) }), {
29206
+ kind: "mutation",
29207
+ auth: "admin"
29208
+ }),
29209
+ /**
29210
+ * Load balancing (D748) — what placement actually did: per node and
29211
+ * device, sessions now, sessions started and the time-weighted share of
29212
+ * PARALLEL sessions over `windowMs`; the cluster's parallel peak; yields
29213
+ * a share election made; and every device pin the session path cannot
29214
+ * honour. In memory on the hub — a restart starts a new window.
29215
+ */
29216
+ getPlacementStats: method(PlacementStatsInputSchema, PlacementStatsSchema, { auth: "admin" }),
29217
+ /**
29218
+ * Load balancing (D748) — shares proportional to each node's measured
29219
+ * capacity at the models Best settings would pick, iterated (≤ 3 rounds)
29220
+ * until the shares stop moving; per device, an ADVISORY session cap.
29221
+ * Writes nothing.
29222
+ */
29223
+ suggestShares: method(SuggestSharesInputSchema, SuggestSharesResultSchema, { auth: "admin" }),
28831
29224
  /** Read one camera's settings. Null when never touched (inherits agent defaults fully). */
28832
29225
  getCameraSettings: method(z.object({ deviceId: z.number() }), CameraPipelineSettingsSchema.nullable()),
28833
29226
  /** Set or clear the 3-state toggle for one (camera, addonId). Pass `enabled: null` to clear and revert to agent default. */
@@ -51788,6 +52181,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
51788
52181
  addonId: null,
51789
52182
  access: "delete"
51790
52183
  },
52184
+ "pipelineExecutor.clearModelBoundDeviceOverrides": {
52185
+ capName: "pipeline-executor",
52186
+ capScope: "system",
52187
+ addonId: null,
52188
+ access: "delete"
52189
+ },
51791
52190
  "pipelineExecutor.deleteModel": {
51792
52191
  capName: "pipeline-executor",
51793
52192
  capScope: "system",
@@ -52004,6 +52403,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
52004
52403
  addonId: null,
52005
52404
  access: "view"
52006
52405
  },
52406
+ "pipelineOrchestrator.applyBestSettings": {
52407
+ capName: "pipeline-orchestrator",
52408
+ capScope: "system",
52409
+ addonId: null,
52410
+ access: "create"
52411
+ },
52007
52412
  "pipelineOrchestrator.applyDeviceSettingsPatch": {
52008
52413
  capName: "pipeline-orchestrator",
52009
52414
  capScope: "system",
@@ -52154,6 +52559,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
52154
52559
  addonId: null,
52155
52560
  access: "view"
52156
52561
  },
52562
+ "pipelineOrchestrator.getPlacementStats": {
52563
+ capName: "pipeline-orchestrator",
52564
+ capScope: "system",
52565
+ addonId: null,
52566
+ access: "view"
52567
+ },
52157
52568
  "pipelineOrchestrator.getReconcileFromDiskStatus": {
52158
52569
  capName: "pipeline-orchestrator",
52159
52570
  capScope: "system",
@@ -52178,6 +52589,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
52178
52589
  addonId: null,
52179
52590
  access: "create"
52180
52591
  },
52592
+ "pipelineOrchestrator.planBestSettings": {
52593
+ capName: "pipeline-orchestrator",
52594
+ capScope: "system",
52595
+ addonId: null,
52596
+ access: "view"
52597
+ },
52181
52598
  "pipelineOrchestrator.rebalance": {
52182
52599
  capName: "pipeline-orchestrator",
52183
52600
  capScope: "system",
@@ -52238,12 +52655,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
52238
52655
  addonId: null,
52239
52656
  access: "create"
52240
52657
  },
52241
- "pipelineOrchestrator.setAgentDetectWeight": {
52242
- capName: "pipeline-orchestrator",
52243
- capScope: "system",
52244
- addonId: null,
52245
- access: "create"
52246
- },
52247
52658
  "pipelineOrchestrator.setAgentInferenceDevices": {
52248
52659
  capName: "pipeline-orchestrator",
52249
52660
  capScope: "system",
@@ -52298,12 +52709,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
52298
52709
  addonId: null,
52299
52710
  access: "create"
52300
52711
  },
52712
+ "pipelineOrchestrator.setLoadBalancingShares": {
52713
+ capName: "pipeline-orchestrator",
52714
+ capScope: "system",
52715
+ addonId: null,
52716
+ access: "create"
52717
+ },
52301
52718
  "pipelineOrchestrator.setPipelineDevicePin": {
52302
52719
  capName: "pipeline-orchestrator",
52303
52720
  capScope: "system",
52304
52721
  addonId: null,
52305
52722
  access: "create"
52306
52723
  },
52724
+ "pipelineOrchestrator.suggestShares": {
52725
+ capName: "pipeline-orchestrator",
52726
+ capScope: "system",
52727
+ addonId: null,
52728
+ access: "view"
52729
+ },
52307
52730
  "pipelineOrchestrator.unassignAudio": {
52308
52731
  capName: "pipeline-orchestrator",
52309
52732
  capScope: "system",
@@ -57855,6 +58278,11 @@ Object.freeze({
57855
58278
  form: "single",
57856
58279
  optional: false
57857
58280
  }],
58281
+ "pipelineExecutor.clearModelBoundDeviceOverrides": [{
58282
+ name: "deviceIds",
58283
+ form: "array",
58284
+ optional: true
58285
+ }],
57858
58286
  "pipelineExecutor.runPipeline": [{
57859
58287
  name: "deviceId",
57860
58288
  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-CeGOZBrL.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-BK15O90l.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-BK15O90l.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-CkyaRbMu.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-D39k_fJX.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-CeGOZBrL.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-BCYVajJg.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-DxV4uO5r.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";