@camstack/system 1.1.45 → 1.1.47

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 (46) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/alerts/alerts.addon.js +1 -1
  8. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  9. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  10. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  11. package/dist/builtins/console-logging/index.js +1 -1
  12. package/dist/builtins/console-logging/index.mjs +1 -1
  13. package/dist/builtins/device-manager/device-manager.addon.js +1 -1
  14. package/dist/builtins/device-manager/device-manager.addon.mjs +1 -1
  15. package/dist/builtins/hub-forwarder/index.js +1 -1
  16. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  17. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  18. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  19. package/dist/builtins/local-network/local-network.addon.js +1 -1
  20. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  21. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  22. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  23. package/dist/builtins/platform-probe/index.js +1 -1
  24. package/dist/builtins/platform-probe/index.mjs +1 -1
  25. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  26. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  27. package/dist/builtins/snapshot/index.js +1 -1
  28. package/dist/builtins/snapshot/index.mjs +1 -1
  29. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  30. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  31. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +1 -1
  32. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +1 -1
  33. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  34. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  35. package/dist/builtins/system-config/system-config.addon.js +1 -1
  36. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  37. package/dist/builtins/winston-logging/index.js +1 -1
  38. package/dist/builtins/winston-logging/index.mjs +1 -1
  39. package/dist/{dist-C68OyuEd.mjs → dist-BD7BE4o6.mjs} +119 -6
  40. package/dist/{dist-BP89I7gi.js → dist-fw1in_1Q.js} +119 -6
  41. package/dist/index.js +2 -2
  42. package/dist/index.mjs +2 -2
  43. package/dist/kernel/transport/local-child-registry.d.ts +17 -0
  44. package/dist/{manifest-python-deps-CJn9aExb.js → manifest-python-deps-Ciq2HL8D.js} +7 -2
  45. package/dist/{manifest-python-deps-MJEshIKy.mjs → manifest-python-deps-Rj3f1zyf.mjs} +7 -2
  46. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_manifest_python_deps = require("./manifest-python-deps-CJn9aExb.js");
2
+ const require_manifest_python_deps = require("./manifest-python-deps-Ciq2HL8D.js");
3
3
  const require_custom_action_registry = require("./custom-action-registry-vLYEFTtv.js");
4
4
  let node_fs = require("node:fs");
5
5
  node_fs = require_chunk.__toESM(node_fs);
@@ -1,4 +1,4 @@
1
- import { F as createUdsLoggerWithControl, I as LocalChildClient, i as createUdsAddonContext, it as setWorkerNativeCapsChangeListener, nt as getWorkerNativeCapSnapshot, ot as validateProviderRegistrations, t as installManifestPythonDeps, tt as getWorkerNativeCapProvider, vt as installManifestNativeDeps, yt as resolveAddonClass } from "./manifest-python-deps-MJEshIKy.mjs";
1
+ import { F as createUdsLoggerWithControl, I as LocalChildClient, i as createUdsAddonContext, it as setWorkerNativeCapsChangeListener, nt as getWorkerNativeCapSnapshot, ot as validateProviderRegistrations, t as installManifestPythonDeps, tt as getWorkerNativeCapProvider, vt as installManifestNativeDeps, yt as resolveAddonClass } from "./manifest-python-deps-Rj3f1zyf.mjs";
2
2
  import { t as CustomActionRegistry } from "./custom-action-registry-BEXwC-oo.mjs";
3
3
  import { register } from "node:module";
4
4
  import * as fs from "node:fs";
@@ -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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_fs = require("node:fs");
9
9
  node_fs = require_chunk.__toESM(node_fs);
@@ -1,4 +1,4 @@
1
- import { $ as errMsg, et as BaseAddon, f as addonPagesCapability, st as EventCategory } from "../../dist-C68OyuEd.mjs";
1
+ import { $ as errMsg, et as BaseAddon, f as addonPagesCapability, st as EventCategory } from "../../dist-BD7BE4o6.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import * as fs from "node:fs";
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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_fs = require("node:fs");
9
9
  node_fs = require_chunk.__toESM(node_fs);
@@ -1,4 +1,4 @@
1
- import { $ as errMsg, et as BaseAddon, m as addonWidgetsCapability, st as EventCategory } from "../../dist-C68OyuEd.mjs";
1
+ import { $ as errMsg, et as BaseAddon, m as addonWidgetsCapability, st as EventCategory } from "../../dist-BD7BE4o6.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import * as fs from "node:fs";
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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.js");
7
7
  //#region src/builtins/alerts/alerts.addon.ts
8
8
  var CATEGORY_MAPPINGS = {
9
9
  "addon.crashed": {
@@ -1,4 +1,4 @@
1
- import { $ as errMsg, et as BaseAddon, h as alertsCapability, mt as createEvent, n as AlertSchema, st as EventCategory } from "../../dist-C68OyuEd.mjs";
1
+ import { $ as errMsg, et as BaseAddon, h as alertsCapability, mt as createEvent, n as AlertSchema, st as EventCategory } from "../../dist-BD7BE4o6.mjs";
2
2
  //#region src/builtins/alerts/alerts.addon.ts
3
3
  var CATEGORY_MAPPINGS = {
4
4
  "addon.crashed": {
@@ -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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.js");
7
7
  let node_fs = require("node:fs");
8
8
  let node_fs$1 = require_chunk.__toESM(node_fs, 1);
9
9
  node_fs = require_chunk.__toESM(node_fs);
@@ -1,4 +1,4 @@
1
- import { et as BaseAddon, st as EventCategory, v as backupCapability } from "../../dist-C68OyuEd.mjs";
1
+ import { et as BaseAddon, st as EventCategory, v as backupCapability } from "../../dist-BD7BE4o6.mjs";
2
2
  import * as fs from "node:fs";
3
3
  import Kt from "node:fs";
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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.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 { P as logDestinationCapability, et as BaseAddon } from "../../dist-C68OyuEd.mjs";
1
+ import { P as logDestinationCapability, et as BaseAddon } from "../../dist-BD7BE4o6.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 = {
@@ -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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.js");
7
7
  let _camstack_types_node = require("@camstack/types/node");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { $ as errMsg, C as enumerateItemArrayFields, D as getByPath, Q as validateExpressionSource, R as normalizeUnit, S as deviceStatusCapability, T as evaluateLinkExpression, Tt as sleep, W as setByPath, X as toExpressionValue, a as DeviceStatusSchema, at as DeviceRole, b as deviceManagerCapability, c as STREAM_PROFILE_META, et as BaseAddon, g as applyTransform, i as CAP_NAMES_WITH_STATUS, it as DeviceFeature, ot as DeviceType, st as EventCategory, t as ALL_CAPABILITY_DEFINITIONS, ut as WELL_KNOWN_TAB_MAP, w as enumerateSchemaFields, x as deviceStateCapability, y as buildStreamParamsConfigSchema, yt as isDeviceConfigCap, z as parseStreamParamsFormPatch } from "../../dist-C68OyuEd.mjs";
1
+ import { $ as errMsg, C as enumerateItemArrayFields, D as getByPath, Q as validateExpressionSource, R as normalizeUnit, S as deviceStatusCapability, T as evaluateLinkExpression, Tt as sleep, W as setByPath, X as toExpressionValue, a as DeviceStatusSchema, at as DeviceRole, b as deviceManagerCapability, c as STREAM_PROFILE_META, et as BaseAddon, g as applyTransform, i as CAP_NAMES_WITH_STATUS, it as DeviceFeature, ot as DeviceType, st as EventCategory, t as ALL_CAPABILITY_DEFINITIONS, ut as WELL_KNOWN_TAB_MAP, w as enumerateSchemaFields, x as deviceStateCapability, y as buildStreamParamsConfigSchema, yt as isDeviceConfigCap, z as parseStreamParamsFormPatch } from "../../dist-BD7BE4o6.mjs";
2
2
  import { canonicalDeviceFingerprint } from "@camstack/types/node";
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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.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 { P as logDestinationCapability, et as BaseAddon } from "../../dist-C68OyuEd.mjs";
1
+ import { P as logDestinationCapability, et as BaseAddon } from "../../dist-BD7BE4o6.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;
@@ -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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  node_crypto = require_chunk.__toESM(node_crypto);
9
9
  let crypto$1 = require("crypto");
@@ -1,4 +1,4 @@
1
- import { Z as userManagementCapability, _ as authProviderCapability, d as UserRecordSchema, et as BaseAddon, l as ScopedTokenSchema, r as ApiKeyRecordSchema } from "../../dist-C68OyuEd.mjs";
1
+ import { Z as userManagementCapability, _ as authProviderCapability, d as UserRecordSchema, et as BaseAddon, l as ScopedTokenSchema, r as ApiKeyRecordSchema } from "../../dist-BD7BE4o6.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import * as crypto$1 from "node:crypto";
4
4
  import { randomUUID } 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-BP89I7gi.js");
3
+ const require_dist = require("../../dist-fw1in_1Q.js");
4
4
  let node_os = require("node:os");
5
5
  node_os = require_chunk.__toESM(node_os);
6
6
  //#region src/builtins/local-network/local-network.addon.ts
@@ -1,4 +1,4 @@
1
- import { N as localNetworkCapability, et as BaseAddon, st as EventCategory } from "../../dist-C68OyuEd.mjs";
1
+ import { N as localNetworkCapability, et as BaseAddon, st as EventCategory } from "../../dist-BD7BE4o6.mjs";
2
2
  import * as os from "node:os";
3
3
  //#region src/builtins/local-network/local-network.addon.ts
4
4
  /**
@@ -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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.js");
7
7
  let node_fs = require("node:fs");
8
8
  node_fs = require_chunk.__toESM(node_fs);
9
9
  let node_child_process = require("node:child_process");
@@ -1,4 +1,4 @@
1
- import { I as metricsProviderCapability, et as BaseAddon, mt as createEvent, st as EventCategory } from "../../dist-C68OyuEd.mjs";
1
+ import { I as metricsProviderCapability, et as BaseAddon, mt as createEvent, st as EventCategory } from "../../dist-BD7BE4o6.mjs";
2
2
  import * as fs from "node:fs";
3
3
  import { execFile, execFileSync } from "node:child_process";
4
4
  import { promisify } from "node:util";
@@ -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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.js");
7
7
  let node_fs = require("node:fs");
8
8
  node_fs = require_chunk.__toESM(node_fs);
9
9
  let node_child_process = require("node:child_process");
@@ -1,4 +1,4 @@
1
- import { $ as errMsg, B as platformProbeCapability, U as scoreRuntimes, et as BaseAddon, gt as emitReadiness, st as EventCategory } from "../../dist-C68OyuEd.mjs";
1
+ import { $ as errMsg, B as platformProbeCapability, U as scoreRuntimes, et as BaseAddon, gt as emitReadiness, st as EventCategory } from "../../dist-BD7BE4o6.mjs";
2
2
  import * as fs from "node:fs";
3
3
  import { execFile } from "node:child_process";
4
4
  import { promisify } from "node:util";
@@ -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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.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 { et as BaseAddon, st as EventCategory } from "../../dist-C68OyuEd.mjs";
1
+ import { et as BaseAddon, st as EventCategory } from "../../dist-BD7BE4o6.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
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.js");
7
7
  let node_child_process = require("node:child_process");
8
8
  //#region src/builtins/snapshot/snapshot-coalescing.ts
9
9
  /**
@@ -1,4 +1,4 @@
1
- import { $ as errMsg, K as snapshotCapability, L as nodePin, Y as streamQualityLabel, et as BaseAddon, it as DeviceFeature, ot as DeviceType } from "../../dist-C68OyuEd.mjs";
1
+ import { $ as errMsg, K as snapshotCapability, L as nodePin, Y as streamQualityLabel, et as BaseAddon, it as DeviceFeature, ot as DeviceType } from "../../dist-BD7BE4o6.mjs";
2
2
  import { execFile } from "node:child_process";
3
3
  //#region src/builtins/snapshot/snapshot-coalescing.ts
4
4
  /**
@@ -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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.js");
7
7
  let node_fs = require("node:fs");
8
8
  node_fs = require_chunk.__toESM(node_fs);
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { E as filesystemBrowseCapability, J as storageProviderCapability, et as BaseAddon } from "../../dist-C68OyuEd.mjs";
1
+ import { E as filesystemBrowseCapability, J as storageProviderCapability, et as BaseAddon } from "../../dist-BD7BE4o6.mjs";
2
2
  import * as fs from "node:fs";
3
3
  import * as path$1 from "node:path";
4
4
  import { basename, dirname, join, resolve, sep } 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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let better_sqlite3 = require("better-sqlite3");
9
9
  better_sqlite3 = require_chunk.__toESM(better_sqlite3);
@@ -1,4 +1,4 @@
1
- import { $ as errMsg, G as settingsStoreCapability, dt as asJsonObject, et as BaseAddon, s as RUNTIME_DEFAULTS, xt as parseJsonUnknown } from "../../dist-C68OyuEd.mjs";
1
+ import { $ as errMsg, G as settingsStoreCapability, dt as asJsonObject, et as BaseAddon, s as RUNTIME_DEFAULTS, xt as parseJsonUnknown } from "../../dist-BD7BE4o6.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import Database from "better-sqlite3";
4
4
  //#region src/builtins/sqlite-storage/sqlite-settings-backend.ts
@@ -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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.js");
7
7
  let node_path = require("node:path");
8
8
  node_path = require_chunk.__toESM(node_path);
9
9
  let node_fs_promises = require("node:fs/promises");
@@ -1,4 +1,4 @@
1
- import { bt as parseJsonObject, et as BaseAddon, q as storageCapability, u as StorageLocationTypeSchema } from "../../dist-C68OyuEd.mjs";
1
+ import { bt as parseJsonObject, et as BaseAddon, q as storageCapability, u as StorageLocationTypeSchema } from "../../dist-BD7BE4o6.mjs";
2
2
  import * as path$1 from "node:path";
3
3
  import * as fs from "node:fs/promises";
4
4
  import { buildStorageLocationRegistry } from "@camstack/system";
@@ -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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.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 { $ as errMsg, et as BaseAddon, vt as hydrateSchema } from "../../dist-C68OyuEd.mjs";
1
+ import { $ as errMsg, et as BaseAddon, vt as hydrateSchema } from "../../dist-BD7BE4o6.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-BP89I7gi.js");
6
+ const require_dist = require("../../dist-fw1in_1Q.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 { P as logDestinationCapability, et as BaseAddon } from "../../dist-C68OyuEd.mjs";
1
+ import { P as logDestinationCapability, et as BaseAddon } from "../../dist-BD7BE4o6.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,5 +1,5 @@
1
1
  import { z } from "zod";
2
- //#region ../types/dist/sleep-b4Jf2n33.mjs
2
+ //#region ../types/dist/sleep-BC9Yqte7.mjs
3
3
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4
4
  EventCategory["SystemBoot"] = "system.boot";
5
5
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -7923,6 +7923,7 @@ var PipelineAddonSchemaSchema = z.object({
7923
7923
  defaultModelId: z.string(),
7924
7924
  defaultModelIdByFormat: z.record(z.string(), z.string()).optional(),
7925
7925
  enabledByDefault: z.boolean().optional(),
7926
+ backfillIntoExistingOverrides: z.boolean().optional(),
7926
7927
  defaultConfidence: z.number(),
7927
7928
  group: z.string().optional(),
7928
7929
  configSchema: z.array(ConfigFieldBridge).readonly().optional()
@@ -8425,6 +8426,25 @@ var zonesCapability = {
8425
8426
  runtimeState: z.object({ zones: z.array(ZoneSchema).readonly() })
8426
8427
  };
8427
8428
  /**
8429
+ * A bounding box in NORMALIZED [0,1] frame coordinates for `getNativeCrop`. The
8430
+ * decode worker resolves it against the RETAINED native frame's real pixel dims,
8431
+ * so the caller supplies only the detection-res bbox divided by the detection
8432
+ * dims — no native resolution to plumb.
8433
+ */
8434
+ var NativeCropBboxSchema = z.object({
8435
+ x: z.number(),
8436
+ y: z.number(),
8437
+ w: z.number(),
8438
+ h: z.number()
8439
+ });
8440
+ /** Result of a best-effort native-resolution crop (`getNativeCrop`). */
8441
+ var NativeCropResultSchema = z.object({
8442
+ /** Packed rgb (24-bit) pixels of the crop. */
8443
+ bytes: z.instanceof(Uint8Array),
8444
+ width: z.number().int().positive(),
8445
+ height: z.number().int().positive()
8446
+ });
8447
+ /**
8428
8448
  * Per-camera tunable ranges + defaults. Single source of truth used
8429
8449
  * by both the Zod data schema (validation + default fallback) and
8430
8450
  * the device settings UI (slider min/max/step). Touch one place and
@@ -8728,7 +8748,22 @@ var pipelineRunnerCapability = {
8728
8748
  /** All per-camera metrics in one round-trip. */
8729
8749
  getAllCameraMetrics: method(z.void(), z.array(CameraMetricsWithDeviceIdSchema).readonly()),
8730
8750
  /** List the deviceIds currently attached to this runner. */
8731
- getLocalCameras: method(z.void(), z.array(z.number()).readonly())
8751
+ getLocalCameras: method(z.void(), z.array(z.number()).readonly()),
8752
+ /**
8753
+ * Best-effort NATIVE-resolution crop of a retention-ring frame. Given the
8754
+ * `FrameHandle` that rode an inference-result event and a normalized `bbox`,
8755
+ * the runner asks the decode worker still holding that frame's NATIVE
8756
+ * surface to GPU/CPU-crop ONLY the ROI at native res and download just the
8757
+ * crop. Returns `null` on a miss (handle not registered, or the worker's
8758
+ * tiny native-retention ring already evicted the frame) — the caller falls
8759
+ * back to a detection-frame crop. Routed to the frame's owning node by
8760
+ * `handle.nodeId`; NEVER ships a full native frame.
8761
+ */
8762
+ getNativeCrop: method(z.object({
8763
+ handle: FrameHandleSchema,
8764
+ bbox: NativeCropBboxSchema,
8765
+ maxWidth: z.number().int().positive().optional()
8766
+ }), NativeCropResultSchema.nullable())
8732
8767
  }
8733
8768
  };
8734
8769
  /**
@@ -14884,7 +14919,17 @@ var TrackSchema = z.object({
14884
14919
  /** Cumulative normalized distance travelled (0..1 units = full frame width). */
14885
14920
  totalDistance: z.number(),
14886
14921
  state: TrackStateSchema,
14887
- active: z.boolean()
14922
+ active: z.boolean(),
14923
+ /** Deterministic key-event importance score in [0,1] (server-computed at
14924
+ * track expiry, recomputed on late label). Absent on legacy rows written
14925
+ * before scoring shipped — consumers degrade to absence / compute-on-read. */
14926
+ importance: z.number().optional(),
14927
+ /** Id of the track's highest-confidence ObjectEvent (its representative
14928
+ * "best" frame). Absent when the track produced no object events. */
14929
+ bestEventId: z.string().optional(),
14930
+ /** Tag of the importance sub-signal that dominated the score
14931
+ * (identity|dwell|proximity|class|confidence|travel|zone). */
14932
+ importanceReason: z.string().optional()
14888
14933
  });
14889
14934
  var BaseEventFields = {
14890
14935
  id: z.string(),
@@ -14949,8 +14994,18 @@ var ObjectEventSchema = z.object({
14949
14994
  frameHeight: z.number().optional(),
14950
14995
  /** MediaStore key for the crop attached to this event (if any). */
14951
14996
  mediaKey: z.string().optional(),
14997
+ /** Design B: MediaStore key of the track's native-resolution key frame (the
14998
+ * best-detection full frame). Resolve via the event-media data-plane
14999
+ * (`/addon/<addonId>/event-media/<keyFrameMediaKey>`) for a detail view that
15000
+ * draws `bbox` over the native frame. Absent on legacy rows / non-decoded
15001
+ * sources — consumers fall back to `mediaKey` (the tight crop). */
15002
+ keyFrameMediaKey: z.string().optional(),
14952
15003
  /** Populated by B5 (recording playback URL for this event). */
14953
- mediaUrl: z.string().optional()
15004
+ mediaUrl: z.string().optional(),
15005
+ /** The parent track's key-event importance [0,1], propagated to every object
15006
+ * event of the track (so an event row can be sorted by importance without a
15007
+ * track join). Absent on legacy rows / before the track was scored. */
15008
+ importance: z.number().optional()
14954
15009
  });
14955
15010
  var AudioEventSchema = z.object({
14956
15011
  ...BaseEventFields,
@@ -14974,7 +15029,8 @@ var MediaFileKindEnum = z.enum([
14974
15029
  "fullFrame",
14975
15030
  "fullFrameBoxed",
14976
15031
  "faceCrop",
14977
- "plateCrop"
15032
+ "plateCrop",
15033
+ "keyFrame"
14978
15034
  ]);
14979
15035
  var MediaFileSchema = z.object({
14980
15036
  key: z.string(),
@@ -14995,6 +15051,32 @@ var DeviceEventQueryInput = z.object({
14995
15051
  projection: z.enum(["full", "slim"]).optional()
14996
15052
  });
14997
15053
  var ObjectEventQueryInput = DeviceEventQueryInput.extend({ classFilter: z.string().optional() });
15054
+ var KeyEventQueryInput = z.object({
15055
+ deviceId: z.number(),
15056
+ /** Window lower bound (track firstSeen ≥ since). */
15057
+ since: z.number(),
15058
+ /** Window upper bound (track firstSeen ≤ until). */
15059
+ until: z.number(),
15060
+ limit: z.number().int().min(1).max(200).default(50),
15061
+ /** Drop tracks scoring below this importance. */
15062
+ minImportance: z.number().min(0).max(1).optional(),
15063
+ /** Restrict to a single class (e.g. 'person'). */
15064
+ classFilter: z.string().optional()
15065
+ });
15066
+ var KeyEventSchema = z.object({
15067
+ /** The representative event id (the track's best ObjectEvent, else its trackId). */
15068
+ id: z.string(),
15069
+ trackId: z.string(),
15070
+ /** Track start time (firstSeen). */
15071
+ timestamp: z.number(),
15072
+ className: z.string(),
15073
+ label: z.string().optional(),
15074
+ importance: z.number(),
15075
+ /** Highest-confidence ObjectEvent id for the track (empty when none). */
15076
+ bestEventId: z.string(),
15077
+ /** Track lifetime in ms (lastSeen - firstSeen). */
15078
+ windowMs: z.number().optional()
15079
+ });
14998
15080
  var TrackedDetectionSchema = z.object({
14999
15081
  trackId: z.string(),
15000
15082
  className: z.string(),
@@ -15043,6 +15125,15 @@ var pipelineAnalyticsCapability = {
15043
15125
  getMotionEvents: method(DeviceEventQueryInput, z.array(MotionEventSchema).readonly()),
15044
15126
  getObjectEvents: method(ObjectEventQueryInput, z.array(ObjectEventSchema).readonly()),
15045
15127
  getAudioEvents: method(DeviceEventQueryInput, z.array(AudioEventSchema).readonly()),
15128
+ /**
15129
+ * Importance-ranked highlights for a device+window. Queries completed
15130
+ * tracks by (deviceId, firstSeen ∈ [since,until]), scores each (or reuses
15131
+ * the persisted score), filters by minImportance/classFilter, orders by
15132
+ * importance desc, and returns up to `limit` compact key events mapped to
15133
+ * each track's best event. Legacy tracks lacking a persisted score are
15134
+ * scored on-read (no write). Degrades to `[]` on error.
15135
+ */
15136
+ getKeyEvents: method(KeyEventQueryInput, z.array(KeyEventSchema).readonly()),
15046
15137
  /** Server-side bucketed event counts for the 24-hour timeline.
15047
15138
  * Returns one entry per non-empty bucket; empty buckets are omitted. */
15048
15139
  getEventDensity: method(z.object({
@@ -17906,7 +17997,17 @@ var FaceInfoSchema = z.object({
17906
17997
  recognizedIdentityId: z.string().optional(),
17907
17998
  identityName: z.string().optional(),
17908
17999
  assigned: z.boolean(),
17909
- base64: z.string().optional()
18000
+ base64: z.string().optional(),
18001
+ /** Design B: the face bbox (pixel space) on the key frame — lets a detail
18002
+ * view draw the box over the native `keyFrameMediaKey` frame. Absent on
18003
+ * legacy rows written before design B. */
18004
+ faceBbox: BoundingBoxSchema.optional(),
18005
+ /** Design B: MediaStore key of the track's native-resolution key frame.
18006
+ * Fetch the native JPEG via the event-media data-plane
18007
+ * (`/addon/<addonId>/event-media/<keyFrameMediaKey>`). Absent when the
18008
+ * track produced no key frame (e.g. native/onboard source) — the UI falls
18009
+ * back to the inline `base64` face crop. */
18010
+ keyFrameMediaKey: z.string().optional()
17910
18011
  });
17911
18012
  var FaceFilterEnum = z.enum([
17912
18013
  "unassigned",
@@ -23029,6 +23130,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
23029
23130
  addonId: null,
23030
23131
  access: "view"
23031
23132
  },
23133
+ "pipelineAnalytics.getKeyEvents": {
23134
+ capName: "pipeline-analytics",
23135
+ capScope: "device",
23136
+ addonId: null,
23137
+ access: "view"
23138
+ },
23032
23139
  "pipelineAnalytics.getMotionEvents": {
23033
23140
  capName: "pipeline-analytics",
23034
23141
  capScope: "device",
@@ -23557,6 +23664,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
23557
23664
  addonId: null,
23558
23665
  access: "view"
23559
23666
  },
23667
+ "pipelineRunner.getNativeCrop": {
23668
+ capName: "pipeline-runner",
23669
+ capScope: "system",
23670
+ addonId: null,
23671
+ access: "view"
23672
+ },
23560
23673
  "pipelineRunner.reportMotion": {
23561
23674
  capName: "pipeline-runner",
23562
23675
  capScope: "system",
@@ -1,5 +1,5 @@
1
1
  let zod = require("zod");
2
- //#region ../types/dist/sleep-b4Jf2n33.mjs
2
+ //#region ../types/dist/sleep-BC9Yqte7.mjs
3
3
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4
4
  EventCategory["SystemBoot"] = "system.boot";
5
5
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -7923,6 +7923,7 @@ var PipelineAddonSchemaSchema = zod.z.object({
7923
7923
  defaultModelId: zod.z.string(),
7924
7924
  defaultModelIdByFormat: zod.z.record(zod.z.string(), zod.z.string()).optional(),
7925
7925
  enabledByDefault: zod.z.boolean().optional(),
7926
+ backfillIntoExistingOverrides: zod.z.boolean().optional(),
7926
7927
  defaultConfidence: zod.z.number(),
7927
7928
  group: zod.z.string().optional(),
7928
7929
  configSchema: zod.z.array(ConfigFieldBridge).readonly().optional()
@@ -8425,6 +8426,25 @@ var zonesCapability = {
8425
8426
  runtimeState: zod.z.object({ zones: zod.z.array(ZoneSchema).readonly() })
8426
8427
  };
8427
8428
  /**
8429
+ * A bounding box in NORMALIZED [0,1] frame coordinates for `getNativeCrop`. The
8430
+ * decode worker resolves it against the RETAINED native frame's real pixel dims,
8431
+ * so the caller supplies only the detection-res bbox divided by the detection
8432
+ * dims — no native resolution to plumb.
8433
+ */
8434
+ var NativeCropBboxSchema = zod.z.object({
8435
+ x: zod.z.number(),
8436
+ y: zod.z.number(),
8437
+ w: zod.z.number(),
8438
+ h: zod.z.number()
8439
+ });
8440
+ /** Result of a best-effort native-resolution crop (`getNativeCrop`). */
8441
+ var NativeCropResultSchema = zod.z.object({
8442
+ /** Packed rgb (24-bit) pixels of the crop. */
8443
+ bytes: zod.z.instanceof(Uint8Array),
8444
+ width: zod.z.number().int().positive(),
8445
+ height: zod.z.number().int().positive()
8446
+ });
8447
+ /**
8428
8448
  * Per-camera tunable ranges + defaults. Single source of truth used
8429
8449
  * by both the Zod data schema (validation + default fallback) and
8430
8450
  * the device settings UI (slider min/max/step). Touch one place and
@@ -8728,7 +8748,22 @@ var pipelineRunnerCapability = {
8728
8748
  /** All per-camera metrics in one round-trip. */
8729
8749
  getAllCameraMetrics: method(zod.z.void(), zod.z.array(CameraMetricsWithDeviceIdSchema).readonly()),
8730
8750
  /** List the deviceIds currently attached to this runner. */
8731
- getLocalCameras: method(zod.z.void(), zod.z.array(zod.z.number()).readonly())
8751
+ getLocalCameras: method(zod.z.void(), zod.z.array(zod.z.number()).readonly()),
8752
+ /**
8753
+ * Best-effort NATIVE-resolution crop of a retention-ring frame. Given the
8754
+ * `FrameHandle` that rode an inference-result event and a normalized `bbox`,
8755
+ * the runner asks the decode worker still holding that frame's NATIVE
8756
+ * surface to GPU/CPU-crop ONLY the ROI at native res and download just the
8757
+ * crop. Returns `null` on a miss (handle not registered, or the worker's
8758
+ * tiny native-retention ring already evicted the frame) — the caller falls
8759
+ * back to a detection-frame crop. Routed to the frame's owning node by
8760
+ * `handle.nodeId`; NEVER ships a full native frame.
8761
+ */
8762
+ getNativeCrop: method(zod.z.object({
8763
+ handle: FrameHandleSchema,
8764
+ bbox: NativeCropBboxSchema,
8765
+ maxWidth: zod.z.number().int().positive().optional()
8766
+ }), NativeCropResultSchema.nullable())
8732
8767
  }
8733
8768
  };
8734
8769
  /**
@@ -14884,7 +14919,17 @@ var TrackSchema = zod.z.object({
14884
14919
  /** Cumulative normalized distance travelled (0..1 units = full frame width). */
14885
14920
  totalDistance: zod.z.number(),
14886
14921
  state: TrackStateSchema,
14887
- active: zod.z.boolean()
14922
+ active: zod.z.boolean(),
14923
+ /** Deterministic key-event importance score in [0,1] (server-computed at
14924
+ * track expiry, recomputed on late label). Absent on legacy rows written
14925
+ * before scoring shipped — consumers degrade to absence / compute-on-read. */
14926
+ importance: zod.z.number().optional(),
14927
+ /** Id of the track's highest-confidence ObjectEvent (its representative
14928
+ * "best" frame). Absent when the track produced no object events. */
14929
+ bestEventId: zod.z.string().optional(),
14930
+ /** Tag of the importance sub-signal that dominated the score
14931
+ * (identity|dwell|proximity|class|confidence|travel|zone). */
14932
+ importanceReason: zod.z.string().optional()
14888
14933
  });
14889
14934
  var BaseEventFields = {
14890
14935
  id: zod.z.string(),
@@ -14949,8 +14994,18 @@ var ObjectEventSchema = zod.z.object({
14949
14994
  frameHeight: zod.z.number().optional(),
14950
14995
  /** MediaStore key for the crop attached to this event (if any). */
14951
14996
  mediaKey: zod.z.string().optional(),
14997
+ /** Design B: MediaStore key of the track's native-resolution key frame (the
14998
+ * best-detection full frame). Resolve via the event-media data-plane
14999
+ * (`/addon/<addonId>/event-media/<keyFrameMediaKey>`) for a detail view that
15000
+ * draws `bbox` over the native frame. Absent on legacy rows / non-decoded
15001
+ * sources — consumers fall back to `mediaKey` (the tight crop). */
15002
+ keyFrameMediaKey: zod.z.string().optional(),
14952
15003
  /** Populated by B5 (recording playback URL for this event). */
14953
- mediaUrl: zod.z.string().optional()
15004
+ mediaUrl: zod.z.string().optional(),
15005
+ /** The parent track's key-event importance [0,1], propagated to every object
15006
+ * event of the track (so an event row can be sorted by importance without a
15007
+ * track join). Absent on legacy rows / before the track was scored. */
15008
+ importance: zod.z.number().optional()
14954
15009
  });
14955
15010
  var AudioEventSchema = zod.z.object({
14956
15011
  ...BaseEventFields,
@@ -14974,7 +15029,8 @@ var MediaFileKindEnum = zod.z.enum([
14974
15029
  "fullFrame",
14975
15030
  "fullFrameBoxed",
14976
15031
  "faceCrop",
14977
- "plateCrop"
15032
+ "plateCrop",
15033
+ "keyFrame"
14978
15034
  ]);
14979
15035
  var MediaFileSchema = zod.z.object({
14980
15036
  key: zod.z.string(),
@@ -14995,6 +15051,32 @@ var DeviceEventQueryInput = zod.z.object({
14995
15051
  projection: zod.z.enum(["full", "slim"]).optional()
14996
15052
  });
14997
15053
  var ObjectEventQueryInput = DeviceEventQueryInput.extend({ classFilter: zod.z.string().optional() });
15054
+ var KeyEventQueryInput = zod.z.object({
15055
+ deviceId: zod.z.number(),
15056
+ /** Window lower bound (track firstSeen ≥ since). */
15057
+ since: zod.z.number(),
15058
+ /** Window upper bound (track firstSeen ≤ until). */
15059
+ until: zod.z.number(),
15060
+ limit: zod.z.number().int().min(1).max(200).default(50),
15061
+ /** Drop tracks scoring below this importance. */
15062
+ minImportance: zod.z.number().min(0).max(1).optional(),
15063
+ /** Restrict to a single class (e.g. 'person'). */
15064
+ classFilter: zod.z.string().optional()
15065
+ });
15066
+ var KeyEventSchema = zod.z.object({
15067
+ /** The representative event id (the track's best ObjectEvent, else its trackId). */
15068
+ id: zod.z.string(),
15069
+ trackId: zod.z.string(),
15070
+ /** Track start time (firstSeen). */
15071
+ timestamp: zod.z.number(),
15072
+ className: zod.z.string(),
15073
+ label: zod.z.string().optional(),
15074
+ importance: zod.z.number(),
15075
+ /** Highest-confidence ObjectEvent id for the track (empty when none). */
15076
+ bestEventId: zod.z.string(),
15077
+ /** Track lifetime in ms (lastSeen - firstSeen). */
15078
+ windowMs: zod.z.number().optional()
15079
+ });
14998
15080
  var TrackedDetectionSchema = zod.z.object({
14999
15081
  trackId: zod.z.string(),
15000
15082
  className: zod.z.string(),
@@ -15043,6 +15125,15 @@ var pipelineAnalyticsCapability = {
15043
15125
  getMotionEvents: method(DeviceEventQueryInput, zod.z.array(MotionEventSchema).readonly()),
15044
15126
  getObjectEvents: method(ObjectEventQueryInput, zod.z.array(ObjectEventSchema).readonly()),
15045
15127
  getAudioEvents: method(DeviceEventQueryInput, zod.z.array(AudioEventSchema).readonly()),
15128
+ /**
15129
+ * Importance-ranked highlights for a device+window. Queries completed
15130
+ * tracks by (deviceId, firstSeen ∈ [since,until]), scores each (or reuses
15131
+ * the persisted score), filters by minImportance/classFilter, orders by
15132
+ * importance desc, and returns up to `limit` compact key events mapped to
15133
+ * each track's best event. Legacy tracks lacking a persisted score are
15134
+ * scored on-read (no write). Degrades to `[]` on error.
15135
+ */
15136
+ getKeyEvents: method(KeyEventQueryInput, zod.z.array(KeyEventSchema).readonly()),
15046
15137
  /** Server-side bucketed event counts for the 24-hour timeline.
15047
15138
  * Returns one entry per non-empty bucket; empty buckets are omitted. */
15048
15139
  getEventDensity: method(zod.z.object({
@@ -17906,7 +17997,17 @@ var FaceInfoSchema = zod.z.object({
17906
17997
  recognizedIdentityId: zod.z.string().optional(),
17907
17998
  identityName: zod.z.string().optional(),
17908
17999
  assigned: zod.z.boolean(),
17909
- base64: zod.z.string().optional()
18000
+ base64: zod.z.string().optional(),
18001
+ /** Design B: the face bbox (pixel space) on the key frame — lets a detail
18002
+ * view draw the box over the native `keyFrameMediaKey` frame. Absent on
18003
+ * legacy rows written before design B. */
18004
+ faceBbox: BoundingBoxSchema.optional(),
18005
+ /** Design B: MediaStore key of the track's native-resolution key frame.
18006
+ * Fetch the native JPEG via the event-media data-plane
18007
+ * (`/addon/<addonId>/event-media/<keyFrameMediaKey>`). Absent when the
18008
+ * track produced no key frame (e.g. native/onboard source) — the UI falls
18009
+ * back to the inline `base64` face crop. */
18010
+ keyFrameMediaKey: zod.z.string().optional()
17910
18011
  });
17911
18012
  var FaceFilterEnum = zod.z.enum([
17912
18013
  "unassigned",
@@ -23029,6 +23130,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
23029
23130
  addonId: null,
23030
23131
  access: "view"
23031
23132
  },
23133
+ "pipelineAnalytics.getKeyEvents": {
23134
+ capName: "pipeline-analytics",
23135
+ capScope: "device",
23136
+ addonId: null,
23137
+ access: "view"
23138
+ },
23032
23139
  "pipelineAnalytics.getMotionEvents": {
23033
23140
  capName: "pipeline-analytics",
23034
23141
  capScope: "device",
@@ -23557,6 +23664,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
23557
23664
  addonId: null,
23558
23665
  access: "view"
23559
23666
  },
23667
+ "pipelineRunner.getNativeCrop": {
23668
+ capName: "pipeline-runner",
23669
+ capScope: "system",
23670
+ addonId: null,
23671
+ access: "view"
23672
+ },
23560
23673
  "pipelineRunner.reportMotion": {
23561
23674
  capName: "pipeline-runner",
23562
23675
  capScope: "system",
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-BP89I7gi.js");
3
+ const require_dist = require("./dist-fw1in_1Q.js");
4
4
  const require_model_download_service = require("./model-download-service-D-Umz4-L.js");
5
5
  const require_resource_monitor = require("./resource-monitor-DNNomR-i.js");
6
6
  const require_builtins_sqlite_storage_filesystem_storage_addon = require("./builtins/sqlite-storage/filesystem-storage.addon.js");
@@ -21,7 +21,7 @@ const require_builtins_local_auth_local_auth_addon = require("./builtins/local-a
21
21
  require("./builtins/local-auth/index.js");
22
22
  const require_builtins_device_manager_device_manager_addon = require("./builtins/device-manager/device-manager.addon.js");
23
23
  require("./builtins/device-manager/index.js");
24
- const require_manifest_python_deps = require("./manifest-python-deps-CJn9aExb.js");
24
+ const require_manifest_python_deps = require("./manifest-python-deps-Ciq2HL8D.js");
25
25
  const require_custom_action_registry = require("./custom-action-registry-vLYEFTtv.js");
26
26
  let _camstack_types_node = require("@camstack/types/node");
27
27
  let zod = require("zod");
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as errMsg$1, A as isVoidInput, Ct as resolveCapMount, F as looseSchema, M as lifecycleJobSchema, O as isArrayOutputSchema, St as readinessKey, V as procedureAuthKey, _t as expandCapMethods, bt as parseJsonObject, ct as ReadinessRegistry, dt as asJsonObject$1, ft as asNumber, ht as emitDownForOwnedCaps, j as kebabToCamel, k as isObjectInput, lt as ReadinessTimeoutError, mt as createEvent, nt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, o as METHOD_ACCESS_MAP, p as addonSettingsCapability, pt as asString$1, rt as DEVICE_STATUS_METHOD, s as RUNTIME_DEFAULTS, st as EventCategory$1, t as ALL_CAPABILITY_DEFINITIONS, tt as DATAPLANE_SECRET_HEADER$1, wt as scopeKey, xt as parseJsonUnknown$1 } from "./dist-C68OyuEd.mjs";
1
+ import { $ as errMsg$1, A as isVoidInput, Ct as resolveCapMount, F as looseSchema, M as lifecycleJobSchema, O as isArrayOutputSchema, St as readinessKey, V as procedureAuthKey, _t as expandCapMethods, bt as parseJsonObject, ct as ReadinessRegistry, dt as asJsonObject$1, ft as asNumber, ht as emitDownForOwnedCaps, j as kebabToCamel, k as isObjectInput, lt as ReadinessTimeoutError, mt as createEvent, nt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, o as METHOD_ACCESS_MAP, p as addonSettingsCapability, pt as asString$1, rt as DEVICE_STATUS_METHOD, s as RUNTIME_DEFAULTS, st as EventCategory$1, t as ALL_CAPABILITY_DEFINITIONS, tt as DATAPLANE_SECRET_HEADER$1, wt as scopeKey, xt as parseJsonUnknown$1 } from "./dist-BD7BE4o6.mjs";
2
2
  import { a as downloadModel, c as getModelFilePath, d as contentTypeFor, f as createAuthenticatedFileServer, h as resolveFilePath, i as downloadFile, l as isModelDownloaded, m as parseTokenizedUrl, n as collectModelFiles, o as ensureModel, p as parseRangeHeader, r as deleteModelFromDisk, s as fetchJson, t as ModelDownloadService, u as createFileDataPlaneHandler } from "./model-download-service-C-IHWnXx.mjs";
3
3
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-Le3l0qS2.mjs";
4
4
  import { FilesystemStorageAddon, t as FilesystemStorageProvider } from "./builtins/sqlite-storage/filesystem-storage.addon.mjs";
@@ -19,7 +19,7 @@ import { LocalAuthAddon, a as require_ms, c as __esmMin, d as __toCommonJS, f as
19
19
  import "./builtins/local-auth/index.mjs";
20
20
  import { DeviceManagerAddon } from "./builtins/device-manager/device-manager.addon.mjs";
21
21
  import "./builtins/device-manager/index.mjs";
22
- import { $ as buildUdsNativeCapProxy, A as createParentUnownedCallHandler, B as AGENT_CAP_FWD_SERVICE, C as buildLinkChain, D as HUB_CAP_FWD_ACTION, E as localProviderLink, F as createUdsLoggerWithControl, G as createLocalTransport, H as CapRouteError, I as LocalChildClient, J as SocketChannel, K as UdsLocalTransportClient, L as LocalChildRegistry, M as createUdsEventBus, N as udsChildLogToWorkerEntry, O as HUB_CAP_FWD_SERVICE, P as createUdsLogger, Q as buildNativeCapProxy, R as UDS_NO_ROUTE_PREFIX, S as brokerTransportLink, T as ipcParentLink, U as classifyCapRoute, V as CapRouteResolver, W as callWithServiceDiscovery, X as FrameDecoder, Y as localEndpointPath, Z as encodeFrame, _ as resolveHwAccel, _t as CapabilityUnavailableError, a as getWorkerDeviceRegistry, at as createAddonService, b as getCapUsageRegistry, c as setHubConnected, ct as capActionName, d as getMoleculerEventStats, dt as capServiceName, et as createBrokerDeviceManagerApi, f as registerEventBusService, ft as parseCapAction, g as createKernelHwAccel, gt as CapabilityHandle, h as AddonDepsManager, ht as DeviceRegistry, i as createUdsAddonContext, j as createUdsEventBridge, k as createHubCapForwardService, l as EVENT_TOPIC_PREFIX, lt as capActionSuffix, m as subscribePassthrough, mt as serializeTypedArrays, n as adaptBrokerToCluster, o as getOrInitReadinessRegistry, ot as validateProviderRegistrations, p as setNodeEventInterest, pt as deserializeTypedArrays, q as UdsLocalTransportServer, r as createAddonContext, rt as mountNativeCapService, s as getOrInitReadinessRegistryForClient, st as NATIVE_PROVIDER_SERVICE_INFIX, t as installManifestPythonDeps, u as getBrokerEventBus, ut as capBareAction, v as CapUsageRegistry, vt as installManifestNativeDeps, w as ipcChildLink, x as brokerCallForCap, y as __resetCapUsageRegistryForTests, yt as resolveAddonClass, z as AGENT_CAP_FWD_ACTION } from "./manifest-python-deps-MJEshIKy.mjs";
22
+ import { $ as buildUdsNativeCapProxy, A as createParentUnownedCallHandler, B as AGENT_CAP_FWD_SERVICE, C as buildLinkChain, D as HUB_CAP_FWD_ACTION, E as localProviderLink, F as createUdsLoggerWithControl, G as createLocalTransport, H as CapRouteError, I as LocalChildClient, J as SocketChannel, K as UdsLocalTransportClient, L as LocalChildRegistry, M as createUdsEventBus, N as udsChildLogToWorkerEntry, O as HUB_CAP_FWD_SERVICE, P as createUdsLogger, Q as buildNativeCapProxy, R as UDS_NO_ROUTE_PREFIX, S as brokerTransportLink, T as ipcParentLink, U as classifyCapRoute, V as CapRouteResolver, W as callWithServiceDiscovery, X as FrameDecoder, Y as localEndpointPath, Z as encodeFrame, _ as resolveHwAccel, _t as CapabilityUnavailableError, a as getWorkerDeviceRegistry, at as createAddonService, b as getCapUsageRegistry, c as setHubConnected, ct as capActionName, d as getMoleculerEventStats, dt as capServiceName, et as createBrokerDeviceManagerApi, f as registerEventBusService, ft as parseCapAction, g as createKernelHwAccel, gt as CapabilityHandle, h as AddonDepsManager, ht as DeviceRegistry, i as createUdsAddonContext, j as createUdsEventBridge, k as createHubCapForwardService, l as EVENT_TOPIC_PREFIX, lt as capActionSuffix, m as subscribePassthrough, mt as serializeTypedArrays, n as adaptBrokerToCluster, o as getOrInitReadinessRegistry, ot as validateProviderRegistrations, p as setNodeEventInterest, pt as deserializeTypedArrays, q as UdsLocalTransportServer, r as createAddonContext, rt as mountNativeCapService, s as getOrInitReadinessRegistryForClient, st as NATIVE_PROVIDER_SERVICE_INFIX, t as installManifestPythonDeps, u as getBrokerEventBus, ut as capBareAction, v as CapUsageRegistry, vt as installManifestNativeDeps, w as ipcChildLink, x as brokerCallForCap, y as __resetCapUsageRegistryForTests, yt as resolveAddonClass, z as AGENT_CAP_FWD_ACTION } from "./manifest-python-deps-Rj3f1zyf.mjs";
23
23
  import { t as CustomActionRegistry } from "./custom-action-registry-BEXwC-oo.mjs";
24
24
  import { PYTHON_VERSION, buildBinaryPath, downloadBinary, ensureBinary, ensureFfmpeg, ensurePython, findInPath, getFfmpegDownloadUrl, getPlatformInfo, getPythonDownloadUrl, installPythonPackages, installPythonRequirements } from "@camstack/types/node";
25
25
  import { z } from "zod";
@@ -64,6 +64,21 @@ export interface LocalChildRegistryOptions {
64
64
  * solo-runner behaviour for every ungrouped addon.
65
65
  */
66
66
  readonly resolveChildIdForAddon?: (addonId: string) => string;
67
+ /**
68
+ * This node's own Moleculer nodeId (`'hub'` on the hub, the bare agent id on
69
+ * an agent). Used ONLY to decide whether an explicit per-call `nodeId` pin
70
+ * bypasses the local-sibling short-circuit in the `cap-call-out` path:
71
+ * - a pin naming THIS node is satisfied by a co-resident sibling (the pin's
72
+ * target lives here), so it routes locally exactly like an unpinned call;
73
+ * - a pin naming ANOTHER node bypasses the sibling and reaches
74
+ * `onUnownedCall` (so it is never silently answered by a same-named
75
+ * provider on the wrong node).
76
+ *
77
+ * Omitted (legacy / positional construction) ⇒ prior behaviour EXACTLY: any
78
+ * pin bypasses the local sibling — without this node's id the registry cannot
79
+ * distinguish a pin-to-self from a pin-to-another-node.
80
+ */
81
+ readonly ownNodeId?: string;
67
82
  }
68
83
  /**
69
84
  * Parent-side authority for local addon-runners reachable over a
@@ -83,6 +98,8 @@ export declare class LocalChildRegistry {
83
98
  private readonly logger?;
84
99
  private readonly getActiveSingletonAddonId?;
85
100
  private readonly resolveChildIdForAddon?;
101
+ /** This node's own Moleculer nodeId (see {@link LocalChildRegistryOptions.ownNodeId}). */
102
+ private readonly ownNodeId?;
86
103
  /** Tracks capNames already logged as UDS-routed; one INFO line per capName per process. */
87
104
  private readonly egressRoutedCaps;
88
105
  /** Active event fan-out mode, read once from `CAMSTACK_UDS_EVENT_FANOUT`. */
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-BP89I7gi.js");
2
+ const require_dist = require("./dist-fw1in_1Q.js");
3
3
  let _camstack_types_node = require("@camstack/types/node");
4
4
  let node_http = require("node:http");
5
5
  let node_fs = require("node:fs");
@@ -3956,6 +3956,8 @@ var LocalChildRegistry = class {
3956
3956
  logger;
3957
3957
  getActiveSingletonAddonId;
3958
3958
  resolveChildIdForAddon;
3959
+ /** This node's own Moleculer nodeId (see {@link LocalChildRegistryOptions.ownNodeId}). */
3960
+ ownNodeId;
3959
3961
  /** Tracks capNames already logged as UDS-routed; one INFO line per capName per process. */
3960
3962
  egressRoutedCaps = /* @__PURE__ */ new Set();
3961
3963
  /** Active event fan-out mode, read once from `CAMSTACK_UDS_EVENT_FANOUT`. */
@@ -3983,6 +3985,7 @@ var LocalChildRegistry = class {
3983
3985
  this.logger = opts.logger;
3984
3986
  this.getActiveSingletonAddonId = opts.getActiveSingletonAddonId;
3985
3987
  this.resolveChildIdForAddon = opts.resolveChildIdForAddon;
3988
+ this.ownNodeId = opts.ownNodeId;
3986
3989
  } else {
3987
3990
  this.server = serverOrOptions;
3988
3991
  this.onUnownedCall = onUnownedCallArg;
@@ -4343,7 +4346,9 @@ var LocalChildRegistry = class {
4343
4346
  ...out.deviceId !== void 0 ? { deviceId: out.deviceId } : {},
4344
4347
  ...out.nodeId !== void 0 ? { nodeId: out.nodeId } : {}
4345
4348
  };
4346
- if (((out.nodeId ?? extractNodeId(out.args)) === void 0 ? this.resolveChildId(out.capName, out.deviceId) : null) !== null) {
4349
+ const pinnedNodeId = out.nodeId ?? extractNodeId(out.args);
4350
+ const pinTargetsThisNode = pinnedNodeId !== void 0 && this.ownNodeId !== void 0 && pinnedNodeId === this.ownNodeId;
4351
+ if ((pinnedNodeId === void 0 || pinTargetsThisNode ? this.resolveChildId(out.capName, out.deviceId) : null) !== null) {
4347
4352
  if (!this.egressRoutedCaps.has(out.capName)) {
4348
4353
  this.egressRoutedCaps.add(out.capName);
4349
4354
  this.logger?.info("routed child egress over UDS", { capName: out.capName });
@@ -1,4 +1,4 @@
1
- import { H as readNodePin } from "./dist-C68OyuEd.mjs";
1
+ import { H as readNodePin } from "./dist-BD7BE4o6.mjs";
2
2
  import { ensureBinary, ensureFfmpeg, ensurePython, installPythonPackages, installPythonRequirements } from "@camstack/types/node";
3
3
  import { createServer } from "node:http";
4
4
  import * as fs from "node:fs";
@@ -3954,6 +3954,8 @@ var LocalChildRegistry = class {
3954
3954
  logger;
3955
3955
  getActiveSingletonAddonId;
3956
3956
  resolveChildIdForAddon;
3957
+ /** This node's own Moleculer nodeId (see {@link LocalChildRegistryOptions.ownNodeId}). */
3958
+ ownNodeId;
3957
3959
  /** Tracks capNames already logged as UDS-routed; one INFO line per capName per process. */
3958
3960
  egressRoutedCaps = /* @__PURE__ */ new Set();
3959
3961
  /** Active event fan-out mode, read once from `CAMSTACK_UDS_EVENT_FANOUT`. */
@@ -3981,6 +3983,7 @@ var LocalChildRegistry = class {
3981
3983
  this.logger = opts.logger;
3982
3984
  this.getActiveSingletonAddonId = opts.getActiveSingletonAddonId;
3983
3985
  this.resolveChildIdForAddon = opts.resolveChildIdForAddon;
3986
+ this.ownNodeId = opts.ownNodeId;
3984
3987
  } else {
3985
3988
  this.server = serverOrOptions;
3986
3989
  this.onUnownedCall = onUnownedCallArg;
@@ -4341,7 +4344,9 @@ var LocalChildRegistry = class {
4341
4344
  ...out.deviceId !== void 0 ? { deviceId: out.deviceId } : {},
4342
4345
  ...out.nodeId !== void 0 ? { nodeId: out.nodeId } : {}
4343
4346
  };
4344
- if (((out.nodeId ?? extractNodeId(out.args)) === void 0 ? this.resolveChildId(out.capName, out.deviceId) : null) !== null) {
4347
+ const pinnedNodeId = out.nodeId ?? extractNodeId(out.args);
4348
+ const pinTargetsThisNode = pinnedNodeId !== void 0 && this.ownNodeId !== void 0 && pinnedNodeId === this.ownNodeId;
4349
+ if ((pinnedNodeId === void 0 || pinTargetsThisNode ? this.resolveChildId(out.capName, out.deviceId) : null) !== null) {
4345
4350
  if (!this.egressRoutedCaps.has(out.capName)) {
4346
4351
  this.egressRoutedCaps.add(out.capName);
4347
4352
  this.logger?.info("routed child egress over UDS", { capName: out.capName });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/system",
3
- "version": "1.1.45",
3
+ "version": "1.1.47",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",