@camstack/system 1.2.367 → 1.2.368

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-DxV4uO5r.mjs → child-cap-dispatch-By0P9X06.mjs} +1 -1
  56. package/dist/{child-cap-dispatch-D39k_fJX.js → child-cap-dispatch-DkcTndAr.js} +1 -1
  57. package/dist/{composition-sources-D8zoyjU2.mjs → composition-sources-BVYblwYM.mjs} +1 -1
  58. package/dist/{composition-sources-B4ZDN0eX.js → composition-sources-DN0mqx1x.js} +1 -1
  59. package/dist/{dist-CeGOZBrL.mjs → dist-CuTBQnSA.mjs} +92 -19
  60. package/dist/{dist-BK15O90l.js → dist-DyUq7law.js} +92 -19
  61. package/dist/{event-loop-stall-monitor-BCYVajJg.mjs → event-loop-stall-monitor-Byx9cQSz.mjs} +1 -1
  62. package/dist/{event-loop-stall-monitor-CkyaRbMu.js → event-loop-stall-monitor-CBRY-GRZ.js} +1 -1
  63. package/dist/index.js +3 -3
  64. package/dist/index.mjs +3 -3
  65. package/dist/{retired-settings-keys-Qu7fGRU2.js → retired-settings-keys-B8VN8tp5.js} +1 -1
  66. package/dist/{retired-settings-keys-CKok9c60.mjs → retired-settings-keys-S9AKHO4X.mjs} +1 -1
  67. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_child_cap_dispatch = require("./child-cap-dispatch-D39k_fJX.js");
2
+ const require_child_cap_dispatch = require("./child-cap-dispatch-DkcTndAr.js");
3
3
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
4
4
  let node_path = require("node:path");
5
5
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { $t as RUNNER_RSS_BUDGET_ENV, Ft as resolveAddonClass, H as createUdsLoggerWithControl, Pt as installManifestNativeDeps, U as LocalChildClient, _t as getWorkerNativeCapSnapshot, f as installManifestSystemDeps, fn as startRunnerHeapWatch, g as createUdsAddonContext, gt as getWorkerNativeCapProvider, i as killOwnRunnerGroupAfterParentLoss, n as createChildCapDispatch, p as installManifestPythonDeps, u as startRunnerParentDeathWatchdog, wn as emitHeapDiagnosticReport, xt as validateProviderRegistrations, yt as setWorkerNativeCapsChangeListener } from "./child-cap-dispatch-DxV4uO5r.mjs";
1
+ import { $t as RUNNER_RSS_BUDGET_ENV, Ft as resolveAddonClass, H as createUdsLoggerWithControl, Pt as installManifestNativeDeps, U as LocalChildClient, _t as getWorkerNativeCapSnapshot, f as installManifestSystemDeps, fn as startRunnerHeapWatch, g as createUdsAddonContext, gt as getWorkerNativeCapProvider, i as killOwnRunnerGroupAfterParentLoss, n as createChildCapDispatch, p as installManifestPythonDeps, u as startRunnerParentDeathWatchdog, wn as emitHeapDiagnosticReport, xt as validateProviderRegistrations, yt as setWorkerNativeCapsChangeListener } from "./child-cap-dispatch-By0P9X06.mjs";
2
2
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
3
3
  import { register } from "node:module";
4
4
  import * as path$1 from "node:path";
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("./chunk-Cek0wNdY.js");
3
- const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-CkyaRbMu.js");
3
+ const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-CBRY-GRZ.js");
4
4
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
5
5
  const require_snapshot_courtesy = require("./snapshot-courtesy-D_C5-nC0.js");
6
6
  exports.COURTESY_DEFAULT_WIDTH = require_snapshot_courtesy.COURTESY_DEFAULT_WIDTH;
@@ -1,4 +1,4 @@
1
- import { C as resolveFormatRevision, S as isModelDownloaded, a as createFileDataPlaneHandler, b as getModelFilePath, c as parseRangeHeader, d as ModelDownloadService, f as ModelDownloadHttpError, g as downloadFile, h as deleteModelFromDisk, i as startEventLoopStallMonitor, m as collectModelFiles, n as STALL_TICK_MS, o as contentTypeFor, p as adoptModelRevisions, r as attributeStall, t as STALL_REPORT_MS, v as ensureModel, x as isModelDownloadHttpError } from "./event-loop-stall-monitor-BCYVajJg.mjs";
1
+ import { C as resolveFormatRevision, S as isModelDownloaded, a as createFileDataPlaneHandler, b as getModelFilePath, c as parseRangeHeader, d as ModelDownloadService, f as ModelDownloadHttpError, g as downloadFile, h as deleteModelFromDisk, i as startEventLoopStallMonitor, m as collectModelFiles, n as STALL_TICK_MS, o as contentTypeFor, p as adoptModelRevisions, r as attributeStall, t as STALL_REPORT_MS, v as ensureModel, x as isModelDownloadHttpError } from "./event-loop-stall-monitor-Byx9cQSz.mjs";
2
2
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
3
3
  import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg, t as COURTESY_DEFAULT_WIDTH } from "./snapshot-courtesy-CyFs1M3I.mjs";
4
4
  export { COURTESY_DEFAULT_WIDTH, CustomActionRegistry, ModelDownloadHttpError, ModelDownloadService, STALL_REPORT_MS, STALL_TICK_MS, adoptModelRevisions, attributeStall, collectModelFiles, contentTypeFor, courtesyCacheKey, createFileDataPlaneHandler, deleteModelFromDisk, downloadFile, ensureModel, getModelFilePath, isModelDownloadHttpError, isModelDownloaded, parseRangeHeader, renderCourtesyJpeg, renderCourtesyOverlayJpeg, resolveFormatRevision, startEventLoopStallMonitor };
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { G as addonPagesCapability, Nr as EventCategory, cr as BaseAddon, sr as errMsg } from "../../dist-CeGOZBrL.mjs";
1
+ import { G as addonPagesCapability, Nr as EventCategory, cr as BaseAddon, sr as errMsg } from "../../dist-CuTBQnSA.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Nr as EventCategory, cr as BaseAddon, q as addonWidgetsCapability, sr as errMsg } from "../../dist-CeGOZBrL.mjs";
1
+ import { Nr as EventCategory, cr as BaseAddon, q as addonWidgetsCapability, sr as errMsg } from "../../dist-CuTBQnSA.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  //#region src/builtins/alerts/device-label.ts
8
8
  /**
9
9
  * Operator-facing device label for alert messages.
@@ -1,4 +1,4 @@
1
- import { J as alertsCapability, Nr as EventCategory, cr as BaseAddon, n as AlertSchema, sr as errMsg, vr as createEvent } from "../../dist-CeGOZBrL.mjs";
1
+ import { J as alertsCapability, Nr as EventCategory, cr as BaseAddon, n as AlertSchema, sr as errMsg, vr as createEvent } from "../../dist-CuTBQnSA.mjs";
2
2
  //#region src/builtins/alerts/device-label.ts
3
3
  /**
4
4
  * Operator-facing device label for alert messages.
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  //#region src/builtins/autotrack/autotrack-config.ts
8
8
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
9
9
  deadZoneFraction: .5,
@@ -1,4 +1,4 @@
1
- import { Nr as EventCategory, S as FIRST_LEVEL_MACRO_CLASSES, Z as bareAddonId, cr as BaseAddon, hn as ptzAutotrackCapability, sr as errMsg, wr as isEvent } from "../../dist-CeGOZBrL.mjs";
1
+ import { Nr as EventCategory, S as FIRST_LEVEL_MACRO_CLASSES, Z as bareAddonId, cr as BaseAddon, hn as ptzAutotrackCapability, sr as errMsg, wr as isEvent } from "../../dist-CuTBQnSA.mjs";
2
2
  //#region src/builtins/autotrack/autotrack-config.ts
3
3
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
4
4
  deadZoneFraction: .5,
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let buffer = require("buffer");
9
9
  let node_fs_promises = require("node:fs/promises");
@@ -1,4 +1,4 @@
1
- import { Fn as storageOccupancyCapability, Mr as toNodeId, Nr as EventCategory, Tr as nodePin, X as backupCapability, cr as BaseAddon, g as DATABASE_SNAPSHOT_SUFFIX, tn as mayWriteToLocation } from "../../dist-CeGOZBrL.mjs";
1
+ import { Fn as storageOccupancyCapability, Mr as toNodeId, Nr as EventCategory, Tr as nodePin, X as backupCapability, cr as BaseAddon, g as DATABASE_SNAPSHOT_SUFFIX, tn as mayWriteToLocation } from "../../dist-CuTBQnSA.mjs";
2
2
  import { randomBytes, randomUUID } from "node:crypto";
3
3
  import { Buffer as Buffer$1 } from "buffer";
4
4
  import * as fsp from "node:fs/promises";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let zod = require("zod");
9
9
  //#region src/builtins/calendars/calendar-color.ts
@@ -1,4 +1,4 @@
1
- import { cr as BaseAddon, p as CalendarPreferencesSchema, tt as calendarsCapability } from "../../dist-CeGOZBrL.mjs";
1
+ import { cr as BaseAddon, p as CalendarPreferencesSchema, tt as calendarsCapability } from "../../dist-CuTBQnSA.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/builtins/calendars/calendar-color.ts
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  let zod = require("zod");
8
8
  let _camstack_types_node = require("@camstack/types/node");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Ln as streamCatalogCapability, M as MOTION_CLOSE_AFTER_MS, Mn as snapshotCapability, Nr as EventCategory, Sr as hydrateSchema, an as motionCapability, b as DeclaredDevices, cr as BaseAddon, gt as declarationOwnerNodeId, i as BaseDevice, ir as DeviceFeature, nn as memoizePinnedFfmpeg, nt as cameraGridLayoutCapability, or as DeviceType, qn as buildFfmpegArgs, sr as errMsg, vr as createEvent, y as DERIVED_CAMERA_SILENCED_CAP_NAMES } from "../../dist-CeGOZBrL.mjs";
1
+ import { Ln as streamCatalogCapability, M as MOTION_CLOSE_AFTER_MS, Mn as snapshotCapability, Nr as EventCategory, Sr as hydrateSchema, an as motionCapability, b as DeclaredDevices, cr as BaseAddon, gt as declarationOwnerNodeId, i as BaseDevice, ir as DeviceFeature, nn as memoizePinnedFfmpeg, nt as cameraGridLayoutCapability, or as DeviceType, qn as buildFfmpegArgs, sr as errMsg, vr as createEvent, y as DERIVED_CAMERA_SILENCED_CAP_NAMES } from "../../dist-CuTBQnSA.mjs";
2
2
  import { z } from "zod";
3
3
  import { FfmpegProcess } from "@camstack/types/node";
4
4
  import { join } from "node:path";
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
7
- const require_composition_sources = require("../../composition-sources-B4ZDN0eX.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
+ const require_composition_sources = require("../../composition-sources-DN0mqx1x.js");
8
8
  let zod = require("zod");
9
9
  //#region src/builtins/shared/device-state-changed.ts
10
10
  /** Structural narrowing helper for untrusted bus payloads. */
@@ -1,5 +1,5 @@
1
- import { $ as buildCapabilityLookup, $n as compositionSliceKey, Jn as cloneStatefulExpressionMemory, Kn as COMPOSER_ADDON_ID, Nr as EventCategory, Ot as evaluateCompositionField, Qn as compositionItemFieldPath, Xn as composedDeviceStableId, Yn as composedDeviceRef, Zn as compositionFeatureEnabled, at as composerCapability, b as DeclaredDevices, cr as BaseAddon, er as compositionSourceKey, fn as planComposition, i as BaseDevice, jt as expressionContainsBuiltinCall, l as COMPOSED_ITEM_FIXED_FIELDS, nr as disarmRoseMemory, or as DeviceType, ot as compositionFieldKey, rr as toExpressionValue, sr as errMsg, t as ALL_CAPABILITY_DEFINITIONS, tr as createStatefulExpressionMemory, vr as createEvent } from "../../dist-CeGOZBrL.mjs";
2
- import { n as normalizedNativeOwner } from "../../composition-sources-D8zoyjU2.mjs";
1
+ import { $ as buildCapabilityLookup, $n as compositionSliceKey, Jn as cloneStatefulExpressionMemory, Kn as COMPOSER_ADDON_ID, Nr as EventCategory, Ot as evaluateCompositionField, Qn as compositionItemFieldPath, Xn as composedDeviceStableId, Yn as composedDeviceRef, Zn as compositionFeatureEnabled, at as composerCapability, b as DeclaredDevices, cr as BaseAddon, er as compositionSourceKey, fn as planComposition, i as BaseDevice, jt as expressionContainsBuiltinCall, l as COMPOSED_ITEM_FIXED_FIELDS, nr as disarmRoseMemory, or as DeviceType, ot as compositionFieldKey, rr as toExpressionValue, sr as errMsg, t as ALL_CAPABILITY_DEFINITIONS, tr as createStatefulExpressionMemory, vr as createEvent } from "../../dist-CuTBQnSA.mjs";
2
+ import { n as normalizedNativeOwner } from "../../composition-sources-BVYblwYM.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/builtins/shared/device-state-changed.ts
5
5
  /** Structural narrowing helper for untrusted bus payloads. */
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/console-logging/console-destination.ts
9
9
  var LEVEL_RANK = {
@@ -1,4 +1,4 @@
1
- import { Zt as logDestinationCapability, cr as BaseAddon } from "../../dist-CeGOZBrL.mjs";
1
+ import { Zt as logDestinationCapability, cr as BaseAddon } from "../../dist-CuTBQnSA.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  //#region src/builtins/console-logging/console-destination.ts
4
4
  var LEVEL_RANK = {
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-BK15O90l.js");
4
- const require_composition_sources = require("../../composition-sources-B4ZDN0eX.js");
3
+ const require_dist = require("../../dist-DyUq7law.js");
4
+ const require_composition_sources = require("../../composition-sources-DN0mqx1x.js");
5
5
  let node_crypto = require("node:crypto");
6
6
  let _camstack_types_node = require("@camstack/types/node");
7
7
  let node_fs_promises = require("node:fs/promises");
@@ -1,5 +1,5 @@
1
- import { $ as buildCapabilityLookup, Bn as validateComposition, Sr as hydrateSchema, Yn as composedDeviceRef, _n as replacedFieldKeys, b as DeclaredDevices, bn as resolveCoreBlockEntry, bt as describeComposableCaps, cr as BaseAddon, ct as coreBlockAddonId, d as CORE_BLOCKS_ADDON_ID, dt as coreBlockSourceKind, er as compositionSourceKey, f as CORE_BLOCK_ADDON_PREFIX, fn as planComposition, ft as coreBlocksCapability, lt as coreBlockComposition, m as CoreBlockSchema, on as normalizeCoreBlockWrite, sr as errMsg, st as compositionSourceRefs, t as ALL_CAPABILITY_DEFINITIONS, u as COMPOSER_RUNNER_ID, ut as coreBlockIdFromAddonId, xn as resolveCoreBlockFiles } from "../../dist-CeGOZBrL.mjs";
2
- import { t as describeCompositionSources } from "../../composition-sources-D8zoyjU2.mjs";
1
+ import { $ as buildCapabilityLookup, Bn as validateComposition, Sr as hydrateSchema, Yn as composedDeviceRef, _n as replacedFieldKeys, b as DeclaredDevices, bn as resolveCoreBlockEntry, bt as describeComposableCaps, cr as BaseAddon, ct as coreBlockAddonId, d as CORE_BLOCKS_ADDON_ID, dt as coreBlockSourceKind, er as compositionSourceKey, f as CORE_BLOCK_ADDON_PREFIX, fn as planComposition, ft as coreBlocksCapability, lt as coreBlockComposition, m as CoreBlockSchema, on as normalizeCoreBlockWrite, sr as errMsg, st as compositionSourceRefs, t as ALL_CAPABILITY_DEFINITIONS, u as COMPOSER_RUNNER_ID, ut as coreBlockIdFromAddonId, xn as resolveCoreBlockFiles } from "../../dist-CuTBQnSA.mjs";
2
+ import { t as describeCompositionSources } from "../../composition-sources-BVYblwYM.mjs";
3
3
  import { createRequire } from "node:module";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { customizationBlockName } from "@camstack/types/node";
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-Qu7fGRU2.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-B8VN8tp5.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
10
10
  let _camstack_types_node = require("@camstack/types/node");
@@ -1,5 +1,5 @@
1
- import { A as MINUTES_PER_DAY, At as expandContainer, C as FieldClaimModeSchema, Cr as isDeviceConfigCap, Ct as deviceStateCapability, Dt as enumerateSchemaFields, En as runtimeStatePolicyFor, Et as enumerateItemArrayFields, Ft as formatMinutes, Kt as legacyAutoLinkIds, Nr as EventCategory, O as LocationIconIdSchema, R as STREAM_PROFILE_META, St as deviceManagerCapability, Xt as locationIconKey, ar as DeviceRole, c as CAP_NAMES_WITH_STATUS, cr as BaseAddon, et as buildStreamParamsConfigSchema, ir as DeviceFeature, jn as siteZoneKey, jr as sleep$1, mr as WELL_KNOWN_TAB_MAP, o as CAMERA_SWITCH_ORDER, or as DeviceType, pt as createDeviceExtensionProvider, sn as normalizeUnit, sr as errMsg, t as ALL_CAPABILITY_DEFINITIONS, un as parseStreamParamsFormPatch, v as DAY_NAMES, vt as defineExtensionSlotProvider, w as FieldClaimSchema, wt as deviceStatusCapability, x as DeviceStatusSchema, xt as deviceExtensionCapability } from "../../dist-CeGOZBrL.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-CKok9c60.mjs";
1
+ import { A as MINUTES_PER_DAY, At as expandContainer, C as FieldClaimModeSchema, Cr as isDeviceConfigCap, Ct as deviceStateCapability, Dt as enumerateSchemaFields, En as runtimeStatePolicyFor, Et as enumerateItemArrayFields, Ft as formatMinutes, Kt as legacyAutoLinkIds, Nr as EventCategory, O as LocationIconIdSchema, R as STREAM_PROFILE_META, St as deviceManagerCapability, Xt as locationIconKey, ar as DeviceRole, c as CAP_NAMES_WITH_STATUS, cr as BaseAddon, et as buildStreamParamsConfigSchema, ir as DeviceFeature, jn as siteZoneKey, jr as sleep$1, mr as WELL_KNOWN_TAB_MAP, o as CAMERA_SWITCH_ORDER, or as DeviceType, pt as createDeviceExtensionProvider, sn as normalizeUnit, sr as errMsg, t as ALL_CAPABILITY_DEFINITIONS, un as parseStreamParamsFormPatch, v as DAY_NAMES, vt as defineExtensionSlotProvider, w as FieldClaimSchema, wt as deviceStatusCapability, x as DeviceStatusSchema, xt as deviceExtensionCapability } from "../../dist-CuTBQnSA.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-S9AKHO4X.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { canonicalDeviceFingerprint } from "@camstack/types/node";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
9
9
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -1,4 +1,4 @@
1
- import { Zt as logDestinationCapability, cr as BaseAddon } from "../../dist-CeGOZBrL.mjs";
1
+ import { Zt as logDestinationCapability, cr as BaseAddon } from "../../dist-CuTBQnSA.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
4
4
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-BK15O90l.js");
3
+ const require_dist = require("../../dist-DyUq7law.js");
4
4
  //#region src/builtins/liveness-monitor/liveness-checks.ts
5
5
  var NO_DEVICES = "liveness:no-devices";
6
6
  var ALL_OFFLINE = "liveness:all-devices-offline";
@@ -1,4 +1,4 @@
1
- import { I as RecordingStatusSchema, N as RECORDING_SOURCE_CAMSTACK_ADDON, Nr as EventCategory, cr as BaseAddon, sr as errMsg, vr as createEvent } from "../../dist-CeGOZBrL.mjs";
1
+ import { I as RecordingStatusSchema, N as RECORDING_SOURCE_CAMSTACK_ADDON, Nr as EventCategory, cr as BaseAddon, sr as errMsg, vr as createEvent } from "../../dist-CuTBQnSA.mjs";
2
2
  //#region src/builtins/liveness-monitor/liveness-checks.ts
3
3
  var NO_DEVICES = "liveness:no-devices";
4
4
  var ALL_OFFLINE = "liveness:all-devices-offline";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  let zod = require("zod");
8
8
  let node_crypto = require("node:crypto");
9
9
  node_crypto = require_chunk.__toESM(node_crypto);
@@ -1,5 +1,5 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
2
- import { W as UserRecordSchema, Y as authProviderCapability, cr as BaseAddon, r as ApiKeyRecordSchema, z as ScopedTokenSchema, zn as userManagementCapability } from "../../dist-CeGOZBrL.mjs";
2
+ import { W as UserRecordSchema, Y as authProviderCapability, cr as BaseAddon, r as ApiKeyRecordSchema, z as ScopedTokenSchema, zn as userManagementCapability } from "../../dist-CuTBQnSA.mjs";
3
3
  import { z } from "zod";
4
4
  import * as crypto$2 from "node:crypto";
5
5
  import { createHash, randomUUID, timingSafeEqual } from "node:crypto";
@@ -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-BK15O90l.js");
3
+ const require_dist = require("../../dist-DyUq7law.js");
4
4
  const require_tls = require("../../tls-CCMX7MjX.js");
5
5
  let zod = require("zod");
6
6
  let node_os = require("node:os");
@@ -1,4 +1,4 @@
1
- import { Nr as EventCategory, Rt as isAppLinkBase, Sn as resolveHubAddressRoles, Tn as resolveNotificationTapAddress, Vn as validateCustomAddress, Vt as isDefaultAppConnectionEndpoint, Yt as localNetworkCapability, cr as BaseAddon, dn as pickAppLinkHub, rt as checkRoleAddress, s as CAMSTACK_APP_LINK_ORIGIN, vn as resolveAppConnections } from "../../dist-CeGOZBrL.mjs";
1
+ import { Nr as EventCategory, Rt as isAppLinkBase, Sn as resolveHubAddressRoles, Tn as resolveNotificationTapAddress, Vn as validateCustomAddress, Vt as isDefaultAppConnectionEndpoint, Yt as localNetworkCapability, cr as BaseAddon, dn as pickAppLinkHub, rt as checkRoleAddress, s as CAMSTACK_APP_LINK_ORIGIN, vn as resolveAppConnections } from "../../dist-CuTBQnSA.mjs";
2
2
  import { P as readLanHttpState, _ as writeExtraSans, h as readTlsMode, i as storeUploadedCertificate, j as applyLanHttp, k as DEFAULT_LAN_HTTP_PORT, m as readTlsAccessStatus, n as regenerateCertificate, p as readExtraSans, r as revertToGeneratedCertificate, t as applyCertificateToListener, u as servedHttpsLeafFingerprint, y as ensureTlsCert } from "../../tls-CJHogwTl.mjs";
3
3
  import { z } from "zod";
4
4
  import * as os from "node:os";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  //#region src/builtins/loki-logging/loki-payload.ts
8
8
  /**
9
9
  * Loki rejects a label name that is not a valid Prometheus label
@@ -1,4 +1,4 @@
1
- import { Zt as logDestinationCapability, cr as BaseAddon } from "../../dist-CeGOZBrL.mjs";
1
+ import { Zt as logDestinationCapability, cr as BaseAddon } from "../../dist-CuTBQnSA.mjs";
2
2
  //#region src/builtins/loki-logging/loki-payload.ts
3
3
  /**
4
4
  * Loki rejects a label name that is not a valid Prometheus label
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  const require_proc_stat = require("../../proc-stat-DL-WUOhl.js");
8
8
  let node_fs_promises = require("node:fs/promises");
9
9
  let node_os = require("node:os");
@@ -1,4 +1,4 @@
1
- import { Nr as EventCategory, Pt as foldSnapshotByFunction, cr as BaseAddon, gn as reducePoints, rn as metricsProviderCapability, sr as errMsg, vr as createEvent, yn as resolveBucketMs } from "../../dist-CeGOZBrL.mjs";
1
+ import { Nr as EventCategory, Pt as foldSnapshotByFunction, cr as BaseAddon, gn as reducePoints, rn as metricsProviderCapability, sr as errMsg, vr as createEvent, yn as resolveBucketMs } from "../../dist-CuTBQnSA.mjs";
2
2
  import { a as parseProcStat, i as nodeProcReader, n as elapsedSecSince, o as parseProcStatusRss, r as lifetimeCpuPercent, t as commandFromCmdline } from "../../proc-stat-CbC55Kqi.mjs";
3
3
  import { access, readFile, readdir } from "node:fs/promises";
4
4
  import * as os from "node:os";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  let node_os = require("node:os");
8
8
  node_os = require_chunk.__toESM(node_os);
9
9
  let node_fs = require("node:fs");
@@ -1,5 +1,5 @@
1
1
  import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
2
- import { Nr as EventCategory, Tt as enumerateInferenceDevices, br as emitReadiness, cr as BaseAddon, kn as scoreRuntimes, pn as platformProbeCapability, sr as errMsg } from "../../dist-CeGOZBrL.mjs";
2
+ import { Nr as EventCategory, Tt as enumerateInferenceDevices, br as emitReadiness, cr as BaseAddon, kn as scoreRuntimes, pn as platformProbeCapability, sr as errMsg } from "../../dist-CuTBQnSA.mjs";
3
3
  import * as os from "node:os";
4
4
  import * as fs from "node:fs";
5
5
  import { execFile } from "node:child_process";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  //#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
8
8
  /**
9
9
  * Reconcile the durable `enabledProviders` set against authoritative
@@ -1,4 +1,4 @@
1
- import { Nr as EventCategory, cr as BaseAddon } from "../../dist-CeGOZBrL.mjs";
1
+ import { Nr as EventCategory, cr as BaseAddon } from "../../dist-CuTBQnSA.mjs";
2
2
  //#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
3
3
  /**
4
4
  * Reconcile the durable `enabledProviders` set against authoritative
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  const require_snapshot_courtesy = require("../../snapshot-courtesy-D_C5-nC0.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { Mn as snapshotCapability, Nr as EventCategory, Q as batteryCapability, Rn as streamQualityLabel, Tr as nodePin, Z as bareAddonId, a as BatteryStatusSchema, cr as BaseAddon, ir as DeviceFeature, nn as memoizePinnedFfmpeg, or as DeviceType, sr as errMsg, yt as deriveBatteryPresence } from "../../dist-CeGOZBrL.mjs";
1
+ import { Mn as snapshotCapability, Nr as EventCategory, Q as batteryCapability, Rn as streamQualityLabel, Tr as nodePin, Z as bareAddonId, a as BatteryStatusSchema, cr as BaseAddon, ir as DeviceFeature, nn as memoizePinnedFfmpeg, or as DeviceType, sr as errMsg, yt as deriveBatteryPresence } from "../../dist-CuTBQnSA.mjs";
2
2
  import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-CyFs1M3I.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let node_fs_promises = require("node:fs/promises");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { In as storageProviderCapability, Nt as filesystemBrowseCapability, cr as BaseAddon } from "../../dist-CeGOZBrL.mjs";
1
+ import { In as storageProviderCapability, Nt as filesystemBrowseCapability, cr as BaseAddon } from "../../dist-CuTBQnSA.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { mkdir, readdir, realpath, statfs } from "node:fs/promises";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  const require_hub_cap_forward = require("../../hub-cap-forward-DmHNjbB0.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { An as settingsStoreCapability, B as StorageCleanupJobSchema, Cn as resolveLocationMode, D as LegacyStorageLocationDefaultSchema, Er as parseJsonObject, Gn as withLocationMode, H as StorageLocationTypeSchema, Ht as isLocationEnabled, It as gbToBytes, Nn as storageCapability, Nr as EventCategory, P as REDACTED_SECRET, Pn as storageMigrationCapability, U as StorageMigrationJobSchema, V as StorageLocationModeSchema, cr as BaseAddon, en as mayReadLocation, in as modeMayWrite, it as collectSecretConfigKeys, kt as evictionPolicyOfLocation, qt as legacyModeOf, tn as mayWriteToLocation } from "../../dist-CeGOZBrL.mjs";
1
+ import { An as settingsStoreCapability, B as StorageCleanupJobSchema, Cn as resolveLocationMode, D as LegacyStorageLocationDefaultSchema, Er as parseJsonObject, Gn as withLocationMode, H as StorageLocationTypeSchema, Ht as isLocationEnabled, It as gbToBytes, Nn as storageCapability, Nr as EventCategory, P as REDACTED_SECRET, Pn as storageMigrationCapability, U as StorageMigrationJobSchema, V as StorageLocationModeSchema, cr as BaseAddon, en as mayReadLocation, in as modeMayWrite, it as collectSecretConfigKeys, kt as evictionPolicyOfLocation, qt as legacyModeOf, tn as mayWriteToLocation } from "../../dist-CuTBQnSA.mjs";
2
2
  import { t as HUB_CAP_FWD_ACTION } from "../../hub-cap-forward-BdT320dq.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  //#region src/builtins/system-config/system-config.addon.ts
8
8
  /**
9
9
  * Built-in `system-config` addon — Phase 4 of the settings redesign.
@@ -1,4 +1,4 @@
1
- import { Sr as hydrateSchema, cr as BaseAddon, sr as errMsg } from "../../dist-CeGOZBrL.mjs";
1
+ import { Sr as hydrateSchema, cr as BaseAddon, sr as errMsg } from "../../dist-CuTBQnSA.mjs";
2
2
  //#region src/builtins/system-config/system-config.addon.ts
3
3
  /**
4
4
  * Built-in `system-config` addon — Phase 4 of the settings redesign.
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BK15O90l.js");
6
+ const require_dist = require("../../dist-DyUq7law.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  let node_path = require("node:path");
9
9
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { Zt as logDestinationCapability, cr as BaseAddon } from "../../dist-CeGOZBrL.mjs";
1
+ import { Zt as logDestinationCapability, cr as BaseAddon } from "../../dist-CuTBQnSA.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  import * as path$1 from "node:path";
4
4
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- import { Nr as EventCategory$1, vr as createEvent } from "./dist-CeGOZBrL.mjs";
1
+ import { Nr as EventCategory$1, vr as createEvent } from "./dist-CuTBQnSA.mjs";
2
2
  import { a as parseProcStat, i as nodeProcReader } from "./proc-stat-CbC55Kqi.mjs";
3
3
  import "./hub-cap-forward-BdT320dq.mjs";
4
4
  import * as crypto$1 from "node:crypto";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-BK15O90l.js");
2
+ const require_dist = require("./dist-DyUq7law.js");
3
3
  const require_proc_stat = require("./proc-stat-DL-WUOhl.js");
4
4
  require("./hub-cap-forward-DmHNjbB0.js");
5
5
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { er as compositionSourceKey, sr as errMsg } from "./dist-CeGOZBrL.mjs";
1
+ import { er as compositionSourceKey, sr as errMsg } from "./dist-CuTBQnSA.mjs";
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-BK15O90l.js");
1
+ const require_dist = require("./dist-DyUq7law.js");
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation
@@ -26294,7 +26294,7 @@ var pipelineExecutorCapability = {
26294
26294
  auth: "admin"
26295
26295
  }),
26296
26296
  /**
26297
- * Best settings (D745): the MODEL-BOUND thresholds (`bindsToModel` keys of
26297
+ * Auto tune (D745): the MODEL-BOUND thresholds (`bindsToModel` keys of
26298
26298
  * the object-detection root, and their binding keys) stored in THIS node's
26299
26299
  * per-camera detector settings — and, unless `dryRun`, remove them so the
26300
26300
  * running model's own defaults apply. Every other key of a camera's store
@@ -26757,7 +26757,52 @@ var SuggestSharesResultSchema = z.object({
26757
26757
  nodes: z.array(SuggestedNodeShareSchema).readonly()
26758
26758
  });
26759
26759
  /**
26760
- * The wire shapes of the Best settings plan and apply (D745), used by the
26760
+ * Where the node and device shares come from (D750).
26761
+ * - `auto` — computed by the system from the cluster's measured capacity at
26762
+ * the Auto tune models, and recomputed whenever a node or device joins,
26763
+ * leaves, is switched on or off, or changes model.
26764
+ * - `manual` — the operator's stored sliders. A node or device that cannot
26765
+ * take sessions gives its share to the others in proportion; the stored
26766
+ * values are never rewritten for that.
26767
+ */
26768
+ var ShareSourceSchema = z.enum(["auto", "manual"]);
26769
+ var SetShareSourceInputSchema = z.object({ source: ShareSourceSchema });
26770
+ z.object({
26771
+ nodes: z.record(z.string(), z.number()),
26772
+ devices: z.record(z.string(), z.record(z.string(), z.number()))
26773
+ });
26774
+ var EffectiveDeviceShareSchema = z.object({
26775
+ deviceKey: z.string(),
26776
+ /** Can take sessions now (enabled, available, can run the root). */
26777
+ eligible: z.boolean(),
26778
+ /** The share the source assigns, as a percentage of the node's devices. */
26779
+ configuredPct: z.number(),
26780
+ /** The share actually used, after an ineligible device's share went to the others. */
26781
+ effectivePct: z.number()
26782
+ });
26783
+ var EffectiveNodeShareSchema = z.object({
26784
+ nodeId: z.string(),
26785
+ eligible: z.boolean(),
26786
+ configuredPct: z.number(),
26787
+ effectivePct: z.number(),
26788
+ devices: z.array(EffectiveDeviceShareSchema).readonly()
26789
+ });
26790
+ var EffectiveSharesSchema = z.object({
26791
+ source: ShareSourceSchema,
26792
+ policy: SessionPlacementPolicySchema,
26793
+ /** `auto` with no computed answer yet: the stored sliders are used meanwhile. */
26794
+ autoPending: z.boolean(),
26795
+ /** When the automatic shares were last computed (ms epoch); null = never. */
26796
+ computedAt: z.number().nullable(),
26797
+ /** What made the system recompute them last. */
26798
+ trigger: z.string().nullable(),
26799
+ nodes: z.array(EffectiveNodeShareSchema).readonly(),
26800
+ /** The relative weights the election reads (before eligibility). */
26801
+ nodeWeights: z.record(z.string(), z.number()),
26802
+ deviceWeights: z.record(z.string(), z.record(z.string(), z.number()))
26803
+ });
26804
+ /**
26805
+ * The wire shapes of the Auto tune plan and apply (D745), used by the
26761
26806
  * `pipeline-orchestrator` cap. The recommender's own types
26762
26807
  * (`recommend.ts`, `demand.ts`) are the TS face of the same data; these
26763
26808
  * schemas are what crosses the cap boundary.
@@ -26892,7 +26937,7 @@ var DetectorStoreClearSchema = z.object({
26892
26937
  deviceId: z.number(),
26893
26938
  keys: z.array(z.string()).readonly()
26894
26939
  });
26895
- var BestSettingsWarningSchema = z.discriminatedUnion("kind", [
26940
+ var AutoTuneWarningSchema = z.discriminatedUnion("kind", [
26896
26941
  z.object({
26897
26942
  kind: z.literal("detector-store-cluster-wide"),
26898
26943
  skippedNodes: z.array(z.string()).readonly()
@@ -26907,7 +26952,7 @@ var BestSettingsWarningSchema = z.discriminatedUnion("kind", [
26907
26952
  deviceKey: z.string()
26908
26953
  })
26909
26954
  ]);
26910
- var BestSettingsOptionsSchema = z.object({
26955
+ var AutoTuneOptionsSchema = z.object({
26911
26956
  /** Share of each accelerator's throughput kept free (0.3–0.5). */
26912
26957
  headroom: z.number().min(.3).max(.5).default(.4),
26913
26958
  /**
@@ -26918,7 +26963,7 @@ var BestSettingsOptionsSchema = z.object({
26918
26963
  */
26919
26964
  shares: LoadBalancingSharesInputSchema.optional()
26920
26965
  });
26921
- var BestSettingsPlanSchema = z.object({
26966
+ var AutoTunePlanSchema = z.object({
26922
26967
  /** Hash of everything the apply will write — the apply refuses a different one. */
26923
26968
  planHash: z.string(),
26924
26969
  family: z.literal("yolov9"),
@@ -26930,13 +26975,13 @@ var BestSettingsPlanSchema = z.object({
26930
26975
  nodeChanges: z.array(NodeDeviceChangeSchema).readonly(),
26931
26976
  cameraClears: z.array(CameraOverrideClearSchema).readonly(),
26932
26977
  detectorStoreClears: z.array(DetectorStoreClearSchema).readonly(),
26933
- warnings: z.array(BestSettingsWarningSchema).readonly()
26978
+ warnings: z.array(AutoTuneWarningSchema).readonly()
26934
26979
  });
26935
- var BestSettingsApplyInputSchema = z.object({
26980
+ var AutoTuneApplyInputSchema = z.object({
26936
26981
  planHash: z.string(),
26937
26982
  headroom: z.number().min(.3).max(.5).default(.4)
26938
26983
  });
26939
- var BestSettingsPhaseResultSchema = z.object({
26984
+ var AutoTunePhaseResultSchema = z.object({
26940
26985
  phase: z.enum([
26941
26986
  "download",
26942
26987
  "camera-overrides",
@@ -26947,19 +26992,19 @@ var BestSettingsPhaseResultSchema = z.object({
26947
26992
  ok: z.boolean(),
26948
26993
  detail: z.string()
26949
26994
  });
26950
- var BestSettingsApplyResultSchema = z.discriminatedUnion("kind", [
26995
+ var AutoTuneApplyResultSchema = z.discriminatedUnion("kind", [
26951
26996
  z.object({
26952
26997
  kind: z.literal("applied"),
26953
26998
  planHash: z.string(),
26954
- phases: z.array(BestSettingsPhaseResultSchema).readonly()
26999
+ phases: z.array(AutoTunePhaseResultSchema).readonly()
26955
27000
  }),
26956
27001
  z.object({
26957
27002
  kind: z.literal("aborted"),
26958
- phases: z.array(BestSettingsPhaseResultSchema).readonly()
27003
+ phases: z.array(AutoTunePhaseResultSchema).readonly()
26959
27004
  }),
26960
27005
  z.object({
26961
27006
  kind: z.literal("stale"),
26962
- plan: BestSettingsPlanSchema
27007
+ plan: AutoTunePlanSchema
26963
27008
  }),
26964
27009
  z.object({
26965
27010
  kind: z.literal("refused"),
@@ -29174,7 +29219,7 @@ var pipelineOrchestratorCapability = {
29174
29219
  auth: "admin"
29175
29220
  }),
29176
29221
  /**
29177
- * Best settings (D745) — DRY RUN. Recommends ONE detector family (YOLOv9)
29222
+ * Auto tune (D745) — DRY RUN. Recommends ONE detector family (YOLOv9)
29178
29223
  * for the whole cluster from each node's static hardware class, the
29179
29224
  * measured latency table and the detection demand, and lists every write
29180
29225
  * the apply would make: the node model pins set, the enrichment pins and
@@ -29183,14 +29228,14 @@ var pipelineOrchestratorCapability = {
29183
29228
  * enablement, device enablement, pins, recording, notifications, zones and
29184
29229
  * rules are never part of it. `planHash` names exactly this diff.
29185
29230
  */
29186
- planBestSettings: method(BestSettingsOptionsSchema, BestSettingsPlanSchema, { auth: "admin" }),
29231
+ planAutoTune: method(AutoTuneOptionsSchema, AutoTunePlanSchema, { auth: "admin" }),
29187
29232
  /**
29188
- * Best settings (D745) — APPLY the plan the operator confirmed. Recomputes
29233
+ * Auto tune (D745) — APPLY the plan the operator confirmed. Recomputes
29189
29234
  * the plan and refuses (`stale`, with the fresh plan) when its hash is not
29190
29235
  * `planHash`, so what is written is exactly the confirmed diff. Offline
29191
29236
  * nodes are skipped; there is no undo.
29192
29237
  */
29193
- applyBestSettings: method(BestSettingsApplyInputSchema, BestSettingsApplyResultSchema, {
29238
+ applyAutoTune: method(AutoTuneApplyInputSchema, AutoTuneApplyResultSchema, {
29194
29239
  kind: "mutation",
29195
29240
  auth: "admin"
29196
29241
  }),
@@ -29216,11 +29261,27 @@ var pipelineOrchestratorCapability = {
29216
29261
  getPlacementStats: method(PlacementStatsInputSchema, PlacementStatsSchema, { auth: "admin" }),
29217
29262
  /**
29218
29263
  * Load balancing (D748) — shares proportional to each node's measured
29219
- * capacity at the models Best settings would pick, iterated (≤ 3 rounds)
29264
+ * capacity at the models Auto tune would pick, iterated (≤ 3 rounds)
29220
29265
  * until the shares stop moving; per device, an ADVISORY session cap.
29221
29266
  * Writes nothing.
29222
29267
  */
29223
29268
  suggestShares: method(SuggestSharesInputSchema, SuggestSharesResultSchema, { auth: "admin" }),
29269
+ /**
29270
+ * Load balancing (D750) — the shares placement reads now: the source
29271
+ * (automatic capacity shares or the operator's sliders), each node's and
29272
+ * device's configured share, and the effective share after a node or
29273
+ * device that cannot take sessions gave its share to the others.
29274
+ */
29275
+ getEffectiveShares: method(z.void(), EffectiveSharesSchema, { auth: "admin" }),
29276
+ /**
29277
+ * Load balancing (D750) — switch between automatic and manual shares.
29278
+ * Going manual seeds the sliders with the current automatic shares (one
29279
+ * atomic write), so nothing jumps; going automatic recomputes at once.
29280
+ */
29281
+ setShareSource: method(SetShareSourceInputSchema, z.object({ success: z.literal(true) }), {
29282
+ kind: "mutation",
29283
+ auth: "admin"
29284
+ }),
29224
29285
  /** Read one camera's settings. Null when never touched (inherits agent defaults fully). */
29225
29286
  getCameraSettings: method(z.object({ deviceId: z.number() }), CameraPipelineSettingsSchema.nullable()),
29226
29287
  /** Set or clear the 3-state toggle for one (camera, addonId). Pass `enabled: null` to clear and revert to agent default. */
@@ -52403,7 +52464,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
52403
52464
  addonId: null,
52404
52465
  access: "view"
52405
52466
  },
52406
- "pipelineOrchestrator.applyBestSettings": {
52467
+ "pipelineOrchestrator.applyAutoTune": {
52407
52468
  capName: "pipeline-orchestrator",
52408
52469
  capScope: "system",
52409
52470
  addonId: null,
@@ -52523,6 +52584,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
52523
52584
  addonId: null,
52524
52585
  access: "view"
52525
52586
  },
52587
+ "pipelineOrchestrator.getEffectiveShares": {
52588
+ capName: "pipeline-orchestrator",
52589
+ capScope: "system",
52590
+ addonId: null,
52591
+ access: "view"
52592
+ },
52526
52593
  "pipelineOrchestrator.getGlobalMetrics": {
52527
52594
  capName: "pipeline-orchestrator",
52528
52595
  capScope: "system",
@@ -52589,7 +52656,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
52589
52656
  addonId: null,
52590
52657
  access: "create"
52591
52658
  },
52592
- "pipelineOrchestrator.planBestSettings": {
52659
+ "pipelineOrchestrator.planAutoTune": {
52593
52660
  capName: "pipeline-orchestrator",
52594
52661
  capScope: "system",
52595
52662
  addonId: null,
@@ -52721,6 +52788,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
52721
52788
  addonId: null,
52722
52789
  access: "create"
52723
52790
  },
52791
+ "pipelineOrchestrator.setShareSource": {
52792
+ capName: "pipeline-orchestrator",
52793
+ capScope: "system",
52794
+ addonId: null,
52795
+ access: "create"
52796
+ },
52724
52797
  "pipelineOrchestrator.suggestShares": {
52725
52798
  capName: "pipeline-orchestrator",
52726
52799
  capScope: "system",
@@ -26294,7 +26294,7 @@ var pipelineExecutorCapability = {
26294
26294
  auth: "admin"
26295
26295
  }),
26296
26296
  /**
26297
- * Best settings (D745): the MODEL-BOUND thresholds (`bindsToModel` keys of
26297
+ * Auto tune (D745): the MODEL-BOUND thresholds (`bindsToModel` keys of
26298
26298
  * the object-detection root, and their binding keys) stored in THIS node's
26299
26299
  * per-camera detector settings — and, unless `dryRun`, remove them so the
26300
26300
  * running model's own defaults apply. Every other key of a camera's store
@@ -26757,7 +26757,52 @@ var SuggestSharesResultSchema = zod.z.object({
26757
26757
  nodes: zod.z.array(SuggestedNodeShareSchema).readonly()
26758
26758
  });
26759
26759
  /**
26760
- * The wire shapes of the Best settings plan and apply (D745), used by the
26760
+ * Where the node and device shares come from (D750).
26761
+ * - `auto` — computed by the system from the cluster's measured capacity at
26762
+ * the Auto tune models, and recomputed whenever a node or device joins,
26763
+ * leaves, is switched on or off, or changes model.
26764
+ * - `manual` — the operator's stored sliders. A node or device that cannot
26765
+ * take sessions gives its share to the others in proportion; the stored
26766
+ * values are never rewritten for that.
26767
+ */
26768
+ var ShareSourceSchema = zod.z.enum(["auto", "manual"]);
26769
+ var SetShareSourceInputSchema = zod.z.object({ source: ShareSourceSchema });
26770
+ zod.z.object({
26771
+ nodes: zod.z.record(zod.z.string(), zod.z.number()),
26772
+ devices: zod.z.record(zod.z.string(), zod.z.record(zod.z.string(), zod.z.number()))
26773
+ });
26774
+ var EffectiveDeviceShareSchema = zod.z.object({
26775
+ deviceKey: zod.z.string(),
26776
+ /** Can take sessions now (enabled, available, can run the root). */
26777
+ eligible: zod.z.boolean(),
26778
+ /** The share the source assigns, as a percentage of the node's devices. */
26779
+ configuredPct: zod.z.number(),
26780
+ /** The share actually used, after an ineligible device's share went to the others. */
26781
+ effectivePct: zod.z.number()
26782
+ });
26783
+ var EffectiveNodeShareSchema = zod.z.object({
26784
+ nodeId: zod.z.string(),
26785
+ eligible: zod.z.boolean(),
26786
+ configuredPct: zod.z.number(),
26787
+ effectivePct: zod.z.number(),
26788
+ devices: zod.z.array(EffectiveDeviceShareSchema).readonly()
26789
+ });
26790
+ var EffectiveSharesSchema = zod.z.object({
26791
+ source: ShareSourceSchema,
26792
+ policy: SessionPlacementPolicySchema,
26793
+ /** `auto` with no computed answer yet: the stored sliders are used meanwhile. */
26794
+ autoPending: zod.z.boolean(),
26795
+ /** When the automatic shares were last computed (ms epoch); null = never. */
26796
+ computedAt: zod.z.number().nullable(),
26797
+ /** What made the system recompute them last. */
26798
+ trigger: zod.z.string().nullable(),
26799
+ nodes: zod.z.array(EffectiveNodeShareSchema).readonly(),
26800
+ /** The relative weights the election reads (before eligibility). */
26801
+ nodeWeights: zod.z.record(zod.z.string(), zod.z.number()),
26802
+ deviceWeights: zod.z.record(zod.z.string(), zod.z.record(zod.z.string(), zod.z.number()))
26803
+ });
26804
+ /**
26805
+ * The wire shapes of the Auto tune plan and apply (D745), used by the
26761
26806
  * `pipeline-orchestrator` cap. The recommender's own types
26762
26807
  * (`recommend.ts`, `demand.ts`) are the TS face of the same data; these
26763
26808
  * schemas are what crosses the cap boundary.
@@ -26892,7 +26937,7 @@ var DetectorStoreClearSchema = zod.z.object({
26892
26937
  deviceId: zod.z.number(),
26893
26938
  keys: zod.z.array(zod.z.string()).readonly()
26894
26939
  });
26895
- var BestSettingsWarningSchema = zod.z.discriminatedUnion("kind", [
26940
+ var AutoTuneWarningSchema = zod.z.discriminatedUnion("kind", [
26896
26941
  zod.z.object({
26897
26942
  kind: zod.z.literal("detector-store-cluster-wide"),
26898
26943
  skippedNodes: zod.z.array(zod.z.string()).readonly()
@@ -26907,7 +26952,7 @@ var BestSettingsWarningSchema = zod.z.discriminatedUnion("kind", [
26907
26952
  deviceKey: zod.z.string()
26908
26953
  })
26909
26954
  ]);
26910
- var BestSettingsOptionsSchema = zod.z.object({
26955
+ var AutoTuneOptionsSchema = zod.z.object({
26911
26956
  /** Share of each accelerator's throughput kept free (0.3–0.5). */
26912
26957
  headroom: zod.z.number().min(.3).max(.5).default(.4),
26913
26958
  /**
@@ -26918,7 +26963,7 @@ var BestSettingsOptionsSchema = zod.z.object({
26918
26963
  */
26919
26964
  shares: LoadBalancingSharesInputSchema.optional()
26920
26965
  });
26921
- var BestSettingsPlanSchema = zod.z.object({
26966
+ var AutoTunePlanSchema = zod.z.object({
26922
26967
  /** Hash of everything the apply will write — the apply refuses a different one. */
26923
26968
  planHash: zod.z.string(),
26924
26969
  family: zod.z.literal("yolov9"),
@@ -26930,13 +26975,13 @@ var BestSettingsPlanSchema = zod.z.object({
26930
26975
  nodeChanges: zod.z.array(NodeDeviceChangeSchema).readonly(),
26931
26976
  cameraClears: zod.z.array(CameraOverrideClearSchema).readonly(),
26932
26977
  detectorStoreClears: zod.z.array(DetectorStoreClearSchema).readonly(),
26933
- warnings: zod.z.array(BestSettingsWarningSchema).readonly()
26978
+ warnings: zod.z.array(AutoTuneWarningSchema).readonly()
26934
26979
  });
26935
- var BestSettingsApplyInputSchema = zod.z.object({
26980
+ var AutoTuneApplyInputSchema = zod.z.object({
26936
26981
  planHash: zod.z.string(),
26937
26982
  headroom: zod.z.number().min(.3).max(.5).default(.4)
26938
26983
  });
26939
- var BestSettingsPhaseResultSchema = zod.z.object({
26984
+ var AutoTunePhaseResultSchema = zod.z.object({
26940
26985
  phase: zod.z.enum([
26941
26986
  "download",
26942
26987
  "camera-overrides",
@@ -26947,19 +26992,19 @@ var BestSettingsPhaseResultSchema = zod.z.object({
26947
26992
  ok: zod.z.boolean(),
26948
26993
  detail: zod.z.string()
26949
26994
  });
26950
- var BestSettingsApplyResultSchema = zod.z.discriminatedUnion("kind", [
26995
+ var AutoTuneApplyResultSchema = zod.z.discriminatedUnion("kind", [
26951
26996
  zod.z.object({
26952
26997
  kind: zod.z.literal("applied"),
26953
26998
  planHash: zod.z.string(),
26954
- phases: zod.z.array(BestSettingsPhaseResultSchema).readonly()
26999
+ phases: zod.z.array(AutoTunePhaseResultSchema).readonly()
26955
27000
  }),
26956
27001
  zod.z.object({
26957
27002
  kind: zod.z.literal("aborted"),
26958
- phases: zod.z.array(BestSettingsPhaseResultSchema).readonly()
27003
+ phases: zod.z.array(AutoTunePhaseResultSchema).readonly()
26959
27004
  }),
26960
27005
  zod.z.object({
26961
27006
  kind: zod.z.literal("stale"),
26962
- plan: BestSettingsPlanSchema
27007
+ plan: AutoTunePlanSchema
26963
27008
  }),
26964
27009
  zod.z.object({
26965
27010
  kind: zod.z.literal("refused"),
@@ -29174,7 +29219,7 @@ var pipelineOrchestratorCapability = {
29174
29219
  auth: "admin"
29175
29220
  }),
29176
29221
  /**
29177
- * Best settings (D745) — DRY RUN. Recommends ONE detector family (YOLOv9)
29222
+ * Auto tune (D745) — DRY RUN. Recommends ONE detector family (YOLOv9)
29178
29223
  * for the whole cluster from each node's static hardware class, the
29179
29224
  * measured latency table and the detection demand, and lists every write
29180
29225
  * the apply would make: the node model pins set, the enrichment pins and
@@ -29183,14 +29228,14 @@ var pipelineOrchestratorCapability = {
29183
29228
  * enablement, device enablement, pins, recording, notifications, zones and
29184
29229
  * rules are never part of it. `planHash` names exactly this diff.
29185
29230
  */
29186
- planBestSettings: method(BestSettingsOptionsSchema, BestSettingsPlanSchema, { auth: "admin" }),
29231
+ planAutoTune: method(AutoTuneOptionsSchema, AutoTunePlanSchema, { auth: "admin" }),
29187
29232
  /**
29188
- * Best settings (D745) — APPLY the plan the operator confirmed. Recomputes
29233
+ * Auto tune (D745) — APPLY the plan the operator confirmed. Recomputes
29189
29234
  * the plan and refuses (`stale`, with the fresh plan) when its hash is not
29190
29235
  * `planHash`, so what is written is exactly the confirmed diff. Offline
29191
29236
  * nodes are skipped; there is no undo.
29192
29237
  */
29193
- applyBestSettings: method(BestSettingsApplyInputSchema, BestSettingsApplyResultSchema, {
29238
+ applyAutoTune: method(AutoTuneApplyInputSchema, AutoTuneApplyResultSchema, {
29194
29239
  kind: "mutation",
29195
29240
  auth: "admin"
29196
29241
  }),
@@ -29216,11 +29261,27 @@ var pipelineOrchestratorCapability = {
29216
29261
  getPlacementStats: method(PlacementStatsInputSchema, PlacementStatsSchema, { auth: "admin" }),
29217
29262
  /**
29218
29263
  * Load balancing (D748) — shares proportional to each node's measured
29219
- * capacity at the models Best settings would pick, iterated (≤ 3 rounds)
29264
+ * capacity at the models Auto tune would pick, iterated (≤ 3 rounds)
29220
29265
  * until the shares stop moving; per device, an ADVISORY session cap.
29221
29266
  * Writes nothing.
29222
29267
  */
29223
29268
  suggestShares: method(SuggestSharesInputSchema, SuggestSharesResultSchema, { auth: "admin" }),
29269
+ /**
29270
+ * Load balancing (D750) — the shares placement reads now: the source
29271
+ * (automatic capacity shares or the operator's sliders), each node's and
29272
+ * device's configured share, and the effective share after a node or
29273
+ * device that cannot take sessions gave its share to the others.
29274
+ */
29275
+ getEffectiveShares: method(zod.z.void(), EffectiveSharesSchema, { auth: "admin" }),
29276
+ /**
29277
+ * Load balancing (D750) — switch between automatic and manual shares.
29278
+ * Going manual seeds the sliders with the current automatic shares (one
29279
+ * atomic write), so nothing jumps; going automatic recomputes at once.
29280
+ */
29281
+ setShareSource: method(SetShareSourceInputSchema, zod.z.object({ success: zod.z.literal(true) }), {
29282
+ kind: "mutation",
29283
+ auth: "admin"
29284
+ }),
29224
29285
  /** Read one camera's settings. Null when never touched (inherits agent defaults fully). */
29225
29286
  getCameraSettings: method(zod.z.object({ deviceId: zod.z.number() }), CameraPipelineSettingsSchema.nullable()),
29226
29287
  /** Set or clear the 3-state toggle for one (camera, addonId). Pass `enabled: null` to clear and revert to agent default. */
@@ -52403,7 +52464,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
52403
52464
  addonId: null,
52404
52465
  access: "view"
52405
52466
  },
52406
- "pipelineOrchestrator.applyBestSettings": {
52467
+ "pipelineOrchestrator.applyAutoTune": {
52407
52468
  capName: "pipeline-orchestrator",
52408
52469
  capScope: "system",
52409
52470
  addonId: null,
@@ -52523,6 +52584,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
52523
52584
  addonId: null,
52524
52585
  access: "view"
52525
52586
  },
52587
+ "pipelineOrchestrator.getEffectiveShares": {
52588
+ capName: "pipeline-orchestrator",
52589
+ capScope: "system",
52590
+ addonId: null,
52591
+ access: "view"
52592
+ },
52526
52593
  "pipelineOrchestrator.getGlobalMetrics": {
52527
52594
  capName: "pipeline-orchestrator",
52528
52595
  capScope: "system",
@@ -52589,7 +52656,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
52589
52656
  addonId: null,
52590
52657
  access: "create"
52591
52658
  },
52592
- "pipelineOrchestrator.planBestSettings": {
52659
+ "pipelineOrchestrator.planAutoTune": {
52593
52660
  capName: "pipeline-orchestrator",
52594
52661
  capScope: "system",
52595
52662
  addonId: null,
@@ -52721,6 +52788,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
52721
52788
  addonId: null,
52722
52789
  access: "create"
52723
52790
  },
52791
+ "pipelineOrchestrator.setShareSource": {
52792
+ capName: "pipeline-orchestrator",
52793
+ capScope: "system",
52794
+ addonId: null,
52795
+ access: "create"
52796
+ },
52724
52797
  "pipelineOrchestrator.suggestShares": {
52725
52798
  capName: "pipeline-orchestrator",
52726
52799
  capScope: "system",
@@ -1,4 +1,4 @@
1
- import { Lt as hfModelUrl, T as HF_REPO, j as MODEL_FORMATS } from "./dist-CeGOZBrL.mjs";
1
+ import { Lt as hfModelUrl, T as HF_REPO, j as MODEL_FORMATS } from "./dist-CuTBQnSA.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-BK15O90l.js");
2
+ const require_dist = require("./dist-DyUq7law.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-BK15O90l.js");
3
+ const require_dist = require("./dist-DyUq7law.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-CkyaRbMu.js");
32
+ const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-CBRY-GRZ.js");
33
33
  const require_tls$1 = require("./tls-CCMX7MjX.js");
34
- const require_child_cap_dispatch = require("./child-cap-dispatch-D39k_fJX.js");
34
+ const require_child_cap_dispatch = require("./child-cap-dispatch-DkcTndAr.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-CeGOZBrL.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-CuTBQnSA.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-BCYVajJg.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-Byx9cQSz.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-DxV4uO5r.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-By0P9X06.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-BK15O90l.js");
1
+ const require_dist = require("./dist-DyUq7law.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-CeGOZBrL.mjs";
1
+ import { hr as asJsonObject } from "./dist-CuTBQnSA.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.367",
3
+ "version": "1.2.368",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",