@camstack/system 1.2.232 → 1.2.234

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 (58) 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/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  12. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  13. package/dist/builtins/console-logging/index.js +1 -1
  14. package/dist/builtins/console-logging/index.mjs +1 -1
  15. package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
  16. package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
  17. package/dist/builtins/device-manager/contribution-cache.d.ts +68 -0
  18. package/dist/builtins/device-manager/device-manager.addon.js +175 -39
  19. package/dist/builtins/device-manager/device-manager.addon.mjs +176 -40
  20. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  21. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  22. package/dist/builtins/hub-forwarder/index.js +1 -1
  23. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  24. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  25. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  26. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  27. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  28. package/dist/builtins/local-network/local-network.addon.js +1 -1
  29. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  30. package/dist/builtins/loki-logging/index.js +1 -1
  31. package/dist/builtins/loki-logging/index.mjs +1 -1
  32. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  33. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  34. package/dist/builtins/platform-probe/index.js +1 -1
  35. package/dist/builtins/platform-probe/index.mjs +1 -1
  36. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  37. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  38. package/dist/builtins/snapshot/index.js +1 -1
  39. package/dist/builtins/snapshot/index.mjs +1 -1
  40. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  41. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  42. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  43. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  44. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  45. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  46. package/dist/builtins/system-config/system-config.addon.js +1 -1
  47. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  48. package/dist/builtins/winston-logging/index.js +1 -1
  49. package/dist/builtins/winston-logging/index.mjs +1 -1
  50. package/dist/{custom-action-registry-gaO1AlT2.mjs → custom-action-registry-CVsXD56p.mjs} +1 -1
  51. package/dist/{custom-action-registry-YHpAdksL.js → custom-action-registry-DG-QIWxd.js} +1 -1
  52. package/dist/{dist-CEIkHEdy.js → dist-DaSCLJVH.js} +114 -10
  53. package/dist/{dist-BX6SpI0i.mjs → dist-at9PGh6X.mjs} +114 -10
  54. package/dist/index.js +2 -2
  55. package/dist/index.mjs +2 -2
  56. package/dist/{retired-settings-keys-FLZlwa2U.js → retired-settings-keys-CZISf623.js} +1 -1
  57. package/dist/{retired-settings-keys-DDV06eUr.mjs → retired-settings-keys-X5zRxcV9.mjs} +1 -1
  58. package/package.json +1 -1
@@ -690,7 +690,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
690
690
  return EventCategory;
691
691
  }({});
692
692
  //#endregion
693
- //#region ../types/dist/sleep-DEuj7E3j.mjs
693
+ //#region ../types/dist/sleep-BEyvfshj.mjs
694
694
  /**
695
695
  * The audio chunk plane's byte format, and the ONE expansion from a coded
696
696
  * window to float samples (D455).
@@ -21208,6 +21208,14 @@ var MotionSourceEnum = zod.z.enum([
21208
21208
  */
21209
21209
  var MotionSourcesSchema = zod.z.array(MotionSourceEnum);
21210
21210
  /**
21211
+ * Which root detectors a camera runs. Deliberately the SAME vocabulary
21212
+ * post-analysis already tags every detection with (`DetectionSource`) rather
21213
+ * than a second spelling of the same two ideas — the value an operator picks
21214
+ * here is the value that comes back on the track, the overlay and the debug
21215
+ * row.
21216
+ */
21217
+ var DetectionSourcesSchema = zod.z.array(DetectionSourceSchema);
21218
+ /**
21211
21219
  * Input shape for `pipeline-runner.reportMotion` cap method. Exported
21212
21220
  * so cap-side consumers (the orchestrator forward, the runner addon's
21213
21221
  * cap implementation, tests) can reuse the type instead of redeclaring
@@ -21358,6 +21366,35 @@ var RunnerCameraConfigSchema = zod.z.object({
21358
21366
  * events; the orchestrator forwards to `reportMotion`.
21359
21367
  */
21360
21368
  motionSources: MotionSourcesSchema.default(["analyzer"]),
21369
+ /**
21370
+ * WHICH root detector runs for this camera. The detection counterpart of
21371
+ * {@link motionSources}, same shape and same discipline: a per-camera list
21372
+ * of sources the system understands, vendor-agnostic, owned here.
21373
+ *
21374
+ * - `pipeline` — this runner's own root step on decoded pixels (`steps`).
21375
+ * - `onboard` — the CAMERA's own detector, admitted only when it is named
21376
+ * here. Its boxes reach post-analysis on the same
21377
+ * `PipelineInferenceResult` payload as the pipeline's, so an onboard-born
21378
+ * track gets the same tracker, the same overlay and the same detail
21379
+ * subtree (face / plate / embedding).
21380
+ *
21381
+ * `['onboard']` alone is the REPLACEMENT: this runner's root step does not
21382
+ * run, and that is where a camera with a usable onboard detector buys back
21383
+ * its share of the accelerator. It saves the root inference, not the decode
21384
+ * — the detail subtree still needs pixels to cut crops from.
21385
+ *
21386
+ * A camera whose onboard detections carry no geometry cannot serve as a root
21387
+ * step at all (there is nothing to track), and the cap that knows this says
21388
+ * so on `native-object-detection.getOptions().geometry`. On Reolink that is
21389
+ * every battery camera: the boxes ride a sub-stream a battery camera never
21390
+ * attaches, so such a camera stays on `['pipeline']` and its onboard AI is
21391
+ * worth exactly what it already is — a wake signal with a class.
21392
+ *
21393
+ * Defaults to `['pipeline']`, which is byte-for-byte today's behaviour: a
21394
+ * vendor never turns a detector on for the operator, and neither does a
21395
+ * default.
21396
+ */
21397
+ detectionSources: DetectionSourcesSchema.default(["pipeline"]),
21361
21398
  pipelineEnabled: zod.z.boolean().default(true),
21362
21399
  /** Ordered tree of video steps. Absent → runner skips video detection. */
21363
21400
  steps: zod.z.array(PipelineStepInputSchema).readonly().optional(),
@@ -30181,11 +30218,46 @@ var NativeObjectDetectionStatusSchema = zod.z.object({
30181
30218
  supportedClasses: zod.z.array(NativeObjectClassEnum).readonly(),
30182
30219
  /**
30183
30220
  * Whether forwarding of onboard AI detections is enabled for this device.
30184
- * Default FALSE (opt-in, cold-start) — onboard AI pushes are noisy/sparse and
30185
- * churn the tracker, so forwarding stays off until the operator enables it.
30221
+ *
30222
+ * Cold-start OFF on every camera. A vendor does not decide which detector a
30223
+ * camera runs — that is the operator's choice, and it is made where every
30224
+ * other detection choice is made. `geometry` on
30225
+ * {@link NativeObjectDetectionOptionsSchema} is how the form says what the
30226
+ * choice would buy this particular camera.
30186
30227
  */
30187
30228
  enabled: zod.z.boolean()
30188
30229
  });
30230
+ /**
30231
+ * WHEN a camera's onboard detections carry geometry.
30232
+ *
30233
+ * - `boxed` — always. The provider holds a standing channel for the boxes, so
30234
+ * a detection is a trackable subject whenever the camera sees one.
30235
+ * - `while-streaming` — only while some stream of this camera is already open.
30236
+ * The boxes ride the video's own side-channel rather than a feed of their
30237
+ * own, so they cost nothing and they exist only when something is pulling.
30238
+ * On Reolink this is every BATTERY camera: a persistent second feed is real
30239
+ * radio drain, but a camera that is awake is awake precisely because
30240
+ * something is in front of it, and its stream is already being pulled.
30241
+ * - `flag-only` — never. The firmware ships the class and nothing else; the
30242
+ * pipeline needs geometry to make a subject, so such a push reaches the
30243
+ * tracker as motion and no further.
30244
+ *
30245
+ * Reported and not inferred, because the operator's question in front of the
30246
+ * picker is "what do I get", and these are three different answers (D14: the
30247
+ * derived form is only as honest as `getOptions`).
30248
+ */
30249
+ var NativeObjectGeometryEnum = zod.z.enum([
30250
+ "boxed",
30251
+ "while-streaming",
30252
+ "flag-only"
30253
+ ]);
30254
+ var NativeObjectDetectionOptionsSchema = zod.z.object({
30255
+ /** Classes this firmware can detect — the same list the status reports. */
30256
+ supportedClasses: zod.z.array(NativeObjectClassEnum).readonly(),
30257
+ /** What a detection from this camera carries. */
30258
+ geometry: NativeObjectGeometryEnum
30259
+ });
30260
+ var NativeObjectDetectionSettingsPatchSchema = zod.z.object({ enabled: zod.z.boolean().optional() });
30189
30261
  var NativeObjectDetectionRuntimeStateSchema = NativeObjectDetectionStatusSchema.extend({
30190
30262
  /** Required by createRuntimeStateBridge — epoch ms of last refresh. */
30191
30263
  lastFetchedAt: zod.z.number() });
@@ -30195,13 +30267,23 @@ var nativeObjectDetectionCapability = {
30195
30267
  deviceNative: true,
30196
30268
  mode: "singleton",
30197
30269
  deviceTypes: [DeviceType.Camera],
30198
- methods: { setEnabled: method(zod.z.object({
30199
- deviceId: zod.z.number(),
30200
- enabled: zod.z.boolean()
30201
- }), zod.z.void(), {
30202
- kind: "mutation",
30203
- auth: "admin"
30204
- }) },
30270
+ methods: {
30271
+ getOptions: method(zod.z.object({ deviceId: zod.z.number() }), NativeObjectDetectionOptionsSchema),
30272
+ setSettings: method(zod.z.object({
30273
+ deviceId: zod.z.number(),
30274
+ settings: NativeObjectDetectionSettingsPatchSchema
30275
+ }), zod.z.void(), {
30276
+ kind: "mutation",
30277
+ auth: "admin"
30278
+ }),
30279
+ setEnabled: method(zod.z.object({
30280
+ deviceId: zod.z.number(),
30281
+ enabled: zod.z.boolean()
30282
+ }), zod.z.void(), {
30283
+ kind: "mutation",
30284
+ auth: "admin"
30285
+ })
30286
+ },
30205
30287
  events: { onDetected: { data: zod.z.object({
30206
30288
  deviceId: zod.z.number(),
30207
30289
  detection: NativeDetectionSchema
@@ -39934,12 +40016,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
39934
40016
  addonId: null,
39935
40017
  access: "create"
39936
40018
  },
40019
+ "nativeObjectDetection.getOptions": {
40020
+ capName: "native-object-detection",
40021
+ capScope: "device",
40022
+ addonId: null,
40023
+ access: "view"
40024
+ },
39937
40025
  "nativeObjectDetection.setEnabled": {
39938
40026
  capName: "native-object-detection",
39939
40027
  capScope: "device",
39940
40028
  addonId: null,
39941
40029
  access: "create"
39942
40030
  },
40031
+ "nativeObjectDetection.setSettings": {
40032
+ capName: "native-object-detection",
40033
+ capScope: "device",
40034
+ addonId: null,
40035
+ access: "create"
40036
+ },
39943
40037
  "navigation.getFeatures": {
39944
40038
  capName: "navigation",
39945
40039
  capScope: "device",
@@ -44166,11 +44260,21 @@ Object.freeze({
44166
44260
  form: "single",
44167
44261
  optional: false
44168
44262
  }],
44263
+ "nativeObjectDetection.getOptions": [{
44264
+ name: "deviceId",
44265
+ form: "single",
44266
+ optional: false
44267
+ }],
44169
44268
  "nativeObjectDetection.setEnabled": [{
44170
44269
  name: "deviceId",
44171
44270
  form: "single",
44172
44271
  optional: false
44173
44272
  }],
44273
+ "nativeObjectDetection.setSettings": [{
44274
+ name: "deviceId",
44275
+ form: "single",
44276
+ optional: false
44277
+ }],
44174
44278
  "navigation.getFeatures": [{
44175
44279
  name: "deviceId",
44176
44280
  form: "single",
@@ -690,7 +690,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
690
690
  return EventCategory;
691
691
  }({});
692
692
  //#endregion
693
- //#region ../types/dist/sleep-DEuj7E3j.mjs
693
+ //#region ../types/dist/sleep-BEyvfshj.mjs
694
694
  /**
695
695
  * The audio chunk plane's byte format, and the ONE expansion from a coded
696
696
  * window to float samples (D455).
@@ -21208,6 +21208,14 @@ var MotionSourceEnum = z.enum([
21208
21208
  */
21209
21209
  var MotionSourcesSchema = z.array(MotionSourceEnum);
21210
21210
  /**
21211
+ * Which root detectors a camera runs. Deliberately the SAME vocabulary
21212
+ * post-analysis already tags every detection with (`DetectionSource`) rather
21213
+ * than a second spelling of the same two ideas — the value an operator picks
21214
+ * here is the value that comes back on the track, the overlay and the debug
21215
+ * row.
21216
+ */
21217
+ var DetectionSourcesSchema = z.array(DetectionSourceSchema);
21218
+ /**
21211
21219
  * Input shape for `pipeline-runner.reportMotion` cap method. Exported
21212
21220
  * so cap-side consumers (the orchestrator forward, the runner addon's
21213
21221
  * cap implementation, tests) can reuse the type instead of redeclaring
@@ -21358,6 +21366,35 @@ var RunnerCameraConfigSchema = z.object({
21358
21366
  * events; the orchestrator forwards to `reportMotion`.
21359
21367
  */
21360
21368
  motionSources: MotionSourcesSchema.default(["analyzer"]),
21369
+ /**
21370
+ * WHICH root detector runs for this camera. The detection counterpart of
21371
+ * {@link motionSources}, same shape and same discipline: a per-camera list
21372
+ * of sources the system understands, vendor-agnostic, owned here.
21373
+ *
21374
+ * - `pipeline` — this runner's own root step on decoded pixels (`steps`).
21375
+ * - `onboard` — the CAMERA's own detector, admitted only when it is named
21376
+ * here. Its boxes reach post-analysis on the same
21377
+ * `PipelineInferenceResult` payload as the pipeline's, so an onboard-born
21378
+ * track gets the same tracker, the same overlay and the same detail
21379
+ * subtree (face / plate / embedding).
21380
+ *
21381
+ * `['onboard']` alone is the REPLACEMENT: this runner's root step does not
21382
+ * run, and that is where a camera with a usable onboard detector buys back
21383
+ * its share of the accelerator. It saves the root inference, not the decode
21384
+ * — the detail subtree still needs pixels to cut crops from.
21385
+ *
21386
+ * A camera whose onboard detections carry no geometry cannot serve as a root
21387
+ * step at all (there is nothing to track), and the cap that knows this says
21388
+ * so on `native-object-detection.getOptions().geometry`. On Reolink that is
21389
+ * every battery camera: the boxes ride a sub-stream a battery camera never
21390
+ * attaches, so such a camera stays on `['pipeline']` and its onboard AI is
21391
+ * worth exactly what it already is — a wake signal with a class.
21392
+ *
21393
+ * Defaults to `['pipeline']`, which is byte-for-byte today's behaviour: a
21394
+ * vendor never turns a detector on for the operator, and neither does a
21395
+ * default.
21396
+ */
21397
+ detectionSources: DetectionSourcesSchema.default(["pipeline"]),
21361
21398
  pipelineEnabled: z.boolean().default(true),
21362
21399
  /** Ordered tree of video steps. Absent → runner skips video detection. */
21363
21400
  steps: z.array(PipelineStepInputSchema).readonly().optional(),
@@ -30181,11 +30218,46 @@ var NativeObjectDetectionStatusSchema = z.object({
30181
30218
  supportedClasses: z.array(NativeObjectClassEnum).readonly(),
30182
30219
  /**
30183
30220
  * Whether forwarding of onboard AI detections is enabled for this device.
30184
- * Default FALSE (opt-in, cold-start) — onboard AI pushes are noisy/sparse and
30185
- * churn the tracker, so forwarding stays off until the operator enables it.
30221
+ *
30222
+ * Cold-start OFF on every camera. A vendor does not decide which detector a
30223
+ * camera runs — that is the operator's choice, and it is made where every
30224
+ * other detection choice is made. `geometry` on
30225
+ * {@link NativeObjectDetectionOptionsSchema} is how the form says what the
30226
+ * choice would buy this particular camera.
30186
30227
  */
30187
30228
  enabled: z.boolean()
30188
30229
  });
30230
+ /**
30231
+ * WHEN a camera's onboard detections carry geometry.
30232
+ *
30233
+ * - `boxed` — always. The provider holds a standing channel for the boxes, so
30234
+ * a detection is a trackable subject whenever the camera sees one.
30235
+ * - `while-streaming` — only while some stream of this camera is already open.
30236
+ * The boxes ride the video's own side-channel rather than a feed of their
30237
+ * own, so they cost nothing and they exist only when something is pulling.
30238
+ * On Reolink this is every BATTERY camera: a persistent second feed is real
30239
+ * radio drain, but a camera that is awake is awake precisely because
30240
+ * something is in front of it, and its stream is already being pulled.
30241
+ * - `flag-only` — never. The firmware ships the class and nothing else; the
30242
+ * pipeline needs geometry to make a subject, so such a push reaches the
30243
+ * tracker as motion and no further.
30244
+ *
30245
+ * Reported and not inferred, because the operator's question in front of the
30246
+ * picker is "what do I get", and these are three different answers (D14: the
30247
+ * derived form is only as honest as `getOptions`).
30248
+ */
30249
+ var NativeObjectGeometryEnum = z.enum([
30250
+ "boxed",
30251
+ "while-streaming",
30252
+ "flag-only"
30253
+ ]);
30254
+ var NativeObjectDetectionOptionsSchema = z.object({
30255
+ /** Classes this firmware can detect — the same list the status reports. */
30256
+ supportedClasses: z.array(NativeObjectClassEnum).readonly(),
30257
+ /** What a detection from this camera carries. */
30258
+ geometry: NativeObjectGeometryEnum
30259
+ });
30260
+ var NativeObjectDetectionSettingsPatchSchema = z.object({ enabled: z.boolean().optional() });
30189
30261
  var NativeObjectDetectionRuntimeStateSchema = NativeObjectDetectionStatusSchema.extend({
30190
30262
  /** Required by createRuntimeStateBridge — epoch ms of last refresh. */
30191
30263
  lastFetchedAt: z.number() });
@@ -30195,13 +30267,23 @@ var nativeObjectDetectionCapability = {
30195
30267
  deviceNative: true,
30196
30268
  mode: "singleton",
30197
30269
  deviceTypes: [DeviceType.Camera],
30198
- methods: { setEnabled: method(z.object({
30199
- deviceId: z.number(),
30200
- enabled: z.boolean()
30201
- }), z.void(), {
30202
- kind: "mutation",
30203
- auth: "admin"
30204
- }) },
30270
+ methods: {
30271
+ getOptions: method(z.object({ deviceId: z.number() }), NativeObjectDetectionOptionsSchema),
30272
+ setSettings: method(z.object({
30273
+ deviceId: z.number(),
30274
+ settings: NativeObjectDetectionSettingsPatchSchema
30275
+ }), z.void(), {
30276
+ kind: "mutation",
30277
+ auth: "admin"
30278
+ }),
30279
+ setEnabled: method(z.object({
30280
+ deviceId: z.number(),
30281
+ enabled: z.boolean()
30282
+ }), z.void(), {
30283
+ kind: "mutation",
30284
+ auth: "admin"
30285
+ })
30286
+ },
30205
30287
  events: { onDetected: { data: z.object({
30206
30288
  deviceId: z.number(),
30207
30289
  detection: NativeDetectionSchema
@@ -39934,12 +40016,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
39934
40016
  addonId: null,
39935
40017
  access: "create"
39936
40018
  },
40019
+ "nativeObjectDetection.getOptions": {
40020
+ capName: "native-object-detection",
40021
+ capScope: "device",
40022
+ addonId: null,
40023
+ access: "view"
40024
+ },
39937
40025
  "nativeObjectDetection.setEnabled": {
39938
40026
  capName: "native-object-detection",
39939
40027
  capScope: "device",
39940
40028
  addonId: null,
39941
40029
  access: "create"
39942
40030
  },
40031
+ "nativeObjectDetection.setSettings": {
40032
+ capName: "native-object-detection",
40033
+ capScope: "device",
40034
+ addonId: null,
40035
+ access: "create"
40036
+ },
39943
40037
  "navigation.getFeatures": {
39944
40038
  capName: "navigation",
39945
40039
  capScope: "device",
@@ -44166,11 +44260,21 @@ Object.freeze({
44166
44260
  form: "single",
44167
44261
  optional: false
44168
44262
  }],
44263
+ "nativeObjectDetection.getOptions": [{
44264
+ name: "deviceId",
44265
+ form: "single",
44266
+ optional: false
44267
+ }],
44169
44268
  "nativeObjectDetection.setEnabled": [{
44170
44269
  name: "deviceId",
44171
44270
  form: "single",
44172
44271
  optional: false
44173
44272
  }],
44273
+ "nativeObjectDetection.setSettings": [{
44274
+ name: "deviceId",
44275
+ form: "single",
44276
+ optional: false
44277
+ }],
44174
44278
  "navigation.getFeatures": [{
44175
44279
  name: "deviceId",
44176
44280
  form: "single",
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-CEIkHEdy.js");
3
+ const require_dist = require("./dist-DaSCLJVH.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_formatter = require("./formatter-DqAKDlvN.js");
@@ -29,7 +29,7 @@ const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-CAs
29
29
  const require_tls$1 = require("./tls-BFs4PzoW.js");
30
30
  const require_manifest_system_deps = require("./manifest-system-deps-CrSP0Kkp.js");
31
31
  const require_resource_monitor = require("./resource-monitor-LVE1BoLs.js");
32
- const require_custom_action_registry = require("./custom-action-registry-YHpAdksL.js");
32
+ const require_custom_action_registry = require("./custom-action-registry-DG-QIWxd.js");
33
33
  let zod = require("zod");
34
34
  let node_crypto = require("node:crypto");
35
35
  let _camstack_types_node = require("@camstack/types/node");
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 { A as addonSettingsCapability, Dt as procedureAuthKey, Ft as scopesAllowDeviceCap, Jt as errMsg$1, Mt as resolveMethodAuth, Pt as scopesAllowAddon, Qt as DEVICE_STATUS_METHOD, Xt as DATAPLANE_SECRET_HEADER$1, Zt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, _ as RUNTIME_DEFAULTS, _n as readinessKey, _t as logLevelAtMost, an as asJsonObject$1, at as isArrayOutputSchema, cn as createEvent, ct as isObjectInput, dn as expandCapMethods, dt as isVoidInput, ft as kebabToCamel, gn as parseJsonUnknown, h as METHOD_ACCESS_MAP, hn as parseJsonObject, ln as emitDownForOwnedCaps, mt as lifecycleJobSchema, nn as ReadinessRegistry, on as asNumber, ot as isCollectionArrayMethod, p as LOG_LEVEL_RANK, rn as ReadinessTimeoutError, sn as asString$1, t as ALL_CAPABILITY_DEFINITIONS, tt as extractNestedAddonId, vn as resolveCapMount, vt as looseSchema, wt as objectInputDeclaresAddonId, xn as EventCategory$1, yn as scopeKey } from "./dist-BX6SpI0i.mjs";
2
+ import { A as addonSettingsCapability, Dt as procedureAuthKey, Ft as scopesAllowDeviceCap, Jt as errMsg$1, Mt as resolveMethodAuth, Pt as scopesAllowAddon, Qt as DEVICE_STATUS_METHOD, Xt as DATAPLANE_SECRET_HEADER$1, Zt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, _ as RUNTIME_DEFAULTS, _n as readinessKey, _t as logLevelAtMost, an as asJsonObject$1, at as isArrayOutputSchema, cn as createEvent, ct as isObjectInput, dn as expandCapMethods, dt as isVoidInput, ft as kebabToCamel, gn as parseJsonUnknown, h as METHOD_ACCESS_MAP, hn as parseJsonObject, ln as emitDownForOwnedCaps, mt as lifecycleJobSchema, nn as ReadinessRegistry, on as asNumber, ot as isCollectionArrayMethod, p as LOG_LEVEL_RANK, rn as ReadinessTimeoutError, sn as asString$1, t as ALL_CAPABILITY_DEFINITIONS, tt as extractNestedAddonId, vn as resolveCapMount, vt as looseSchema, wt as objectInputDeclaresAddonId, xn as EventCategory$1, yn as scopeKey } from "./dist-at9PGh6X.mjs";
3
3
  import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
4
4
  import "./builtins/alerts/index.mjs";
5
5
  import { t as formatLogLine } from "./formatter-B7qW8bPJ.mjs";
@@ -28,7 +28,7 @@ import { _ as fetchJson, a as createFileDataPlaneHandler, c as parseRangeHeader,
28
28
  import { C as registerLanHttpHandler, S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, b as bindPendingLanHttp, c as loadTlsCert, d as collectCertIdentity, f as CA_VALIDITY_DAYS, g as evaluateExistingCert, h as SERVER_AUTH_OID, i as writeExtraSans, l as reissueTlsLeaf, m as MAX_LEAF_VALIDITY_DAYS, n as readTlsAccessStatus, o as validateUploadedTls, p as LEAF_RENEWAL_WINDOW_DAYS, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, u as CA_COMMON_NAME, v as allFamiliesListenHost, x as closeLanHttp, y as applyLanHttp } from "./tls-2xbgg78V.mjs";
29
29
  import { $ as buildUdsNativeCapProxy, $t as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, A as createUdsLoggerWithControl, An as recordSocketFrame, At as HUB_MAIN_HEAP_WATCH_LABEL, B as readMoleculerFanoutMode, Bn as diffCapActionCensus, Bt as createLoopDelayMeter, C as ipcParentLink, Cn as createSocketPlaneMeter, Ct as runNpm, D as createUdsEventBus, Dn as readSocketQueues, Dt as HEAP_RECLAIM_TRIGGER_MB, E as createUdsEventBridge, En as formatSocketPlane, Et as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, F as CapRouteError, Fn as CAP_ACTION_UNLABELLED, Ft as RUNNER_HEAP_WATCH_INTERVAL_MS, G as createLocalTransport, Gn as formatEventPlane, Gt as parseRssBudgetMb, H as PARENT_ROUTED_PROVIDER_ADDON_ID, Hn as createEventPlaneMeter, Ht as describeRss, I as classifyCapRoute, In as EMPTY_CAP_ACTION_READING, It as RUNNER_RSS_BUDGET_ENV, J as SocketChannel, Jt as startHeapWatch, K as UdsLocalTransportClient, Kt as reclaimIntervalMs, L as LocalChildClient, Ln as MAX_CAP_ACTIONS_PER_PEER, Lt as ZERO_LOOP_DELAY, M as AGENT_CAP_FWD_SERVICE, Mn as socketDirectionBytes, Mt as HUB_RSS_BUDGET_ENV, N as CapRouteResolver, Nn as socketDirectionMessages, Nt as RSS_BUDGET_REANNOUNCE_MIN_MS, O as udsChildLogToWorkerEntry, On as EMPTY_SOCKET_DIRECTION, Ot as HEAP_WATCH_INTERVAL_MS, P as callWithServiceDiscovery, Pn as CAP_ACTION_OVERFLOW_LABEL, Pt as RSS_BUDGET_RELEASE_RATIO, Q as buildNativeCapProxy, Qt as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, R as LocalChildRegistry, Rn as capActionLabel, Rt as buildHeapSample, S as buildLinkChain, Sn as SOCKET_QUEUE_TOP_N, St as resolveNpmInvocation, T as createParentUnownedCallHandler, Tn as diffSocketPlane, Tt as HEAP_RECLAIM_MIN_INTERVAL_MS, U as __resetCapUsageRegistryForTests, Un as createEventPlaneReader, Ut as hubMainRssBudget, V as CapUsageRegistry, Vn as EVENT_PLANE_TOP_N, Vt as createV8Reclaimer, W as getCapUsageRegistry, Wn as diffEventPlane, Wt as nextRssBudgetState, X as FrameDecoder, Xt as strandedMb, Y as localEndpointPath, Yt as startRunnerHeapWatch, Z as encodeFrame, Zt as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, _ as AddonDepsManager, _n as MESH_QUEUE_TOP_N, _t as CapabilityUnavailableError, a as createUdsAddonContext, an as DECISIVE_HEAP_SPACES, at as createAddonService, b as brokerCallForCap, bn as EMPTY_SOCKET_PLANE_BASELINE, bt as resolveAddonClass, c as getOrInitReadinessRegistryForClient, cn as formatHeapSpaces, ct as capActionName, d as clusterEventTopic, dn as selectReportedSpaces, dt as capServiceName, en as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, et as createBrokerDeviceManagerApi, f as getBrokerEventBus, fn as OUTBOUND_QUEUE_COOLDOWN_MS, ft as parseCapAction, g as subscribePassthrough, gn as formatOutboundQueueVerdict, gt as CapabilityHandle, h as setNodeEventInterest, hn as createOutboundQueueGate, ht as DeviceRegistry, i as createAddonContext, in as isArrayBufferCensusReport, j as AGENT_CAP_FWD_ACTION, jn as sampleSocketDirection, jt as HUB_MAIN_RSS_BUDGET_MB, k as createUdsLogger, kn as createSocketDirectionCounters, kt as HEAP_WATCH_WARN_RATIO, l as setHubConnected, ln as heapSpaceField, lt as capActionSuffix, m as registerEventBusService, mn as OUTBOUND_QUEUE_THRESHOLD_BYTES, mt as serializeTypedArrays, n as installManifestPythonDeps, nn as createInspectorArrayBufferCensus, o as getWorkerDeviceRegistry, on as HEAP_SPACE_REPORT_MIN_MB, ot as validateProviderRegistrations, p as getMoleculerEventStats, pn as OUTBOUND_QUEUE_SUSTAIN_MS, pt as deserializeTypedArrays, q as UdsLocalTransportServer, qt as shouldReclaim, r as adaptBrokerToCluster, rn as formatArrayBufferCensus, rt as mountNativeCapService, s as getOrInitReadinessRegistry, sn as emitHeapDiagnosticReport, st as NATIVE_PROVIDER_SERVICE_INFIX, t as installManifestSystemDeps, tn as createArrayBufferCensusGate, u as EVENT_TOPIC_PREFIX, un as readHeapSpaces, ut as capBareAction, v as createKernelHwAccel, vn as createMeshQueueReader, vt as copyBundledNativeModules, w as localProviderLink, wn as createSocketPlaneReader, wt as createAddonDataPlaneFacility, x as brokerTransportLink, xn as SOCKET_PLANE_TOP_N, xt as buildNpmChildEnv, y as resolveHwAccel, yn as formatMeshQueue, yt as installManifestNativeDeps, z as UDS_NO_ROUTE_PREFIX, zn as createCapActionCensus, zt as createDeferredHeapWatchSink } from "./manifest-system-deps-BEj9Dpu1.mjs";
30
30
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-Vp0bPV3U.mjs";
31
- import { t as CustomActionRegistry } from "./custom-action-registry-gaO1AlT2.mjs";
31
+ import { t as CustomActionRegistry } from "./custom-action-registry-CVsXD56p.mjs";
32
32
  import { z } from "zod";
33
33
  import { createHash, randomUUID, timingSafeEqual } from "node:crypto";
34
34
  import { PYTHON_VERSION, buildBinaryPath, downloadBinary, ensureBinary, ensureFfmpeg, ensurePython, findInPath, getFfmpegDownloadUrl, getPlatformInfo, getPythonDownloadUrl, installPythonPackages, installPythonRequirements } from "@camstack/types/node";
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-CEIkHEdy.js");
1
+ const require_dist = require("./dist-DaSCLJVH.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 { an as asJsonObject } from "./dist-BX6SpI0i.mjs";
1
+ import { an as asJsonObject } from "./dist-at9PGh6X.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.232",
3
+ "version": "1.2.234",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",