@camstack/system 1.2.1 → 1.2.3

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 (50) hide show
  1. package/dist/addon-runner.js +2 -2
  2. package/dist/addon-runner.mjs +2 -2
  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/doorbell/virtual-doorbell.addon.js +1 -1
  16. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  17. package/dist/builtins/hub-forwarder/index.js +1 -1
  18. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  19. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  20. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  21. package/dist/builtins/local-network/local-network.addon.js +1 -1
  22. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  23. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  24. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  25. package/dist/builtins/platform-probe/index.js +1 -1
  26. package/dist/builtins/platform-probe/index.mjs +1 -1
  27. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  28. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  29. package/dist/builtins/snapshot/index.js +1 -1
  30. package/dist/builtins/snapshot/index.mjs +1 -1
  31. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  32. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  33. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +1 -1
  34. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +1 -1
  35. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  36. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  37. package/dist/builtins/system-config/system-config.addon.js +1 -1
  38. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  39. package/dist/builtins/winston-logging/index.js +1 -1
  40. package/dist/builtins/winston-logging/index.mjs +1 -1
  41. package/dist/{dist-BLNvh8Qy.mjs → dist-72yufD8v.mjs} +68 -7
  42. package/dist/{dist-DP2SKMvU.js → dist-CQZxGJ8u.js} +68 -7
  43. package/dist/index.d.ts +1 -0
  44. package/dist/index.js +163 -21
  45. package/dist/index.mjs +156 -16
  46. package/dist/kernel/deps/ensure-native-prebuilds.d.ts +36 -0
  47. package/dist/kernel/deps/manifest-native-deps.d.ts +17 -0
  48. package/dist/{manifest-python-deps-Co8MTPdy.mjs → manifest-python-deps-6__QF75g.mjs} +88 -2
  49. package/dist/{manifest-python-deps-DE8HxnIx.js → manifest-python-deps-Cd7ocUBi.js} +93 -1
  50. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-DP2SKMvU.js");
3
- const require_manifest_python_deps = require("./manifest-python-deps-DE8HxnIx.js");
2
+ const require_dist = require("./dist-CQZxGJ8u.js");
3
+ const require_manifest_python_deps = require("./manifest-python-deps-Cd7ocUBi.js");
4
4
  const require_custom_action_registry = require("./custom-action-registry-vLYEFTtv.js");
5
5
  let node_fs = require("node:fs");
6
6
  node_fs = require_chunk.__toESM(node_fs);
@@ -1,5 +1,5 @@
1
- import { M as isCollectionArrayMethod, t as ALL_CAPABILITY_DEFINITIONS } from "./dist-BLNvh8Qy.mjs";
2
- import { I as createUdsLoggerWithControl, L as LocalChildClient, St as resolveAddonClass, at as setWorkerNativeCapsChangeListener, i as createUdsAddonContext, nt as getWorkerNativeCapProvider, rt as getWorkerNativeCapSnapshot, st as validateProviderRegistrations, t as installManifestPythonDeps, yt as installManifestNativeDeps } from "./manifest-python-deps-Co8MTPdy.mjs";
1
+ import { M as isCollectionArrayMethod, t as ALL_CAPABILITY_DEFINITIONS } from "./dist-72yufD8v.mjs";
2
+ import { Ct as resolveAddonClass, I as createUdsLoggerWithControl, L as LocalChildClient, at as setWorkerNativeCapsChangeListener, bt as installManifestNativeDeps, i as createUdsAddonContext, nt as getWorkerNativeCapProvider, rt as getWorkerNativeCapSnapshot, st as validateProviderRegistrations, t as installManifestPythonDeps } from "./manifest-python-deps-6__QF75g.mjs";
3
3
  import { t as CustomActionRegistry } from "./custom-action-registry-BEXwC-oo.mjs";
4
4
  import { register } from "node:module";
5
5
  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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { At as EventCategory, at as BaseAddon, f as addonPagesCapability, it as errMsg } from "../../dist-BLNvh8Qy.mjs";
1
+ import { At as EventCategory, at as BaseAddon, f as addonPagesCapability, it as errMsg } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { At as EventCategory, at as BaseAddon, it as errMsg, m as addonWidgetsCapability } from "../../dist-BLNvh8Qy.mjs";
1
+ import { At as EventCategory, at as BaseAddon, it as errMsg, m as addonWidgetsCapability } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { At as EventCategory, at as BaseAddon, h as alertsCapability, it as errMsg, n as AlertSchema, vt as createEvent } from "../../dist-BLNvh8Qy.mjs";
1
+ import { At as EventCategory, at as BaseAddon, h as alertsCapability, it as errMsg, n as AlertSchema, vt as createEvent } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { At as EventCategory, at as BaseAddon, v as backupCapability } from "../../dist-BLNvh8Qy.mjs";
1
+ import { At as EventCategory, at as BaseAddon, v as backupCapability } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { R as logDestinationCapability, at as BaseAddon } from "../../dist-BLNvh8Qy.mjs";
1
+ import { R as logDestinationCapability, at as BaseAddon } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { A as getByPath, At as EventCategory, Ct as isDeviceConfigCap, D as evaluateLinkExpression, E as enumerateSchemaFields, H as normalizeUnit, S as deviceStatusCapability, T as enumerateItemArrayFields, W as parseStreamParamsFormPatch, Y as setByPath, a as DeviceStatusSchema, at as BaseAddon, b as deviceManagerCapability, c as STREAM_PROFILE_META, dt as DeviceType, g as applyTransform, i as CAP_NAMES_WITH_STATUS, it as errMsg, kt as sleep, lt as DeviceFeature, mt as WELL_KNOWN_TAB_MAP, rt as validateExpressionSource, t as ALL_CAPABILITY_DEFINITIONS, tt as toExpressionValue, ut as DeviceRole, x as deviceStateCapability, y as buildStreamParamsConfigSchema } from "../../dist-BLNvh8Qy.mjs";
1
+ import { A as getByPath, At as EventCategory, Ct as isDeviceConfigCap, D as evaluateLinkExpression, E as enumerateSchemaFields, H as normalizeUnit, S as deviceStatusCapability, T as enumerateItemArrayFields, W as parseStreamParamsFormPatch, Y as setByPath, a as DeviceStatusSchema, at as BaseAddon, b as deviceManagerCapability, c as STREAM_PROFILE_META, dt as DeviceType, g as applyTransform, i as CAP_NAMES_WITH_STATUS, it as errMsg, kt as sleep, lt as DeviceFeature, mt as WELL_KNOWN_TAB_MAP, rt as validateExpressionSource, t as ALL_CAPABILITY_DEFINITIONS, tt as toExpressionValue, ut as DeviceRole, x as deviceStateCapability, y as buildStreamParamsConfigSchema } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.js");
7
7
  //#region src/builtins/doorbell/trigger-engine.ts
8
8
  /**
9
9
  * Pure trigger logic for the virtual-doorbell builtin — edge detection over
@@ -1,4 +1,4 @@
1
- import { At as EventCategory, C as doorbellCapability, at as BaseAddon, dt as DeviceType, it as errMsg, vt as createEvent } from "../../dist-BLNvh8Qy.mjs";
1
+ import { At as EventCategory, C as doorbellCapability, at as BaseAddon, dt as DeviceType, it as errMsg, vt as createEvent } from "../../dist-72yufD8v.mjs";
2
2
  //#region src/builtins/doorbell/trigger-engine.ts
3
3
  /**
4
4
  * Pure trigger logic for the virtual-doorbell builtin — edge detection over
@@ -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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { R as logDestinationCapability, at as BaseAddon } from "../../dist-BLNvh8Qy.mjs";
1
+ import { R as logDestinationCapability, at as BaseAddon } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { _ as authProviderCapability, at as BaseAddon, d as UserRecordSchema, l as ScopedTokenSchema, nt as userManagementCapability, r as ApiKeyRecordSchema } from "../../dist-BLNvh8Qy.mjs";
1
+ import { _ as authProviderCapability, at as BaseAddon, d as UserRecordSchema, l as ScopedTokenSchema, nt as userManagementCapability, r as ApiKeyRecordSchema } from "../../dist-72yufD8v.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-DP2SKMvU.js");
3
+ const require_dist = require("../../dist-CQZxGJ8u.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 { At as EventCategory, L as localNetworkCapability, at as BaseAddon } from "../../dist-BLNvh8Qy.mjs";
1
+ import { At as EventCategory, L as localNetworkCapability, at as BaseAddon } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { At as EventCategory, B as metricsProviderCapability, at as BaseAddon, vt as createEvent } from "../../dist-BLNvh8Qy.mjs";
1
+ import { At as EventCategory, B as metricsProviderCapability, at as BaseAddon, vt as createEvent } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { At as EventCategory, G as platformProbeCapability, J as scoreRuntimes, at as BaseAddon, bt as emitReadiness, it as errMsg, w as enumerateInferenceDevices } from "../../dist-BLNvh8Qy.mjs";
1
+ import { At as EventCategory, G as platformProbeCapability, J as scoreRuntimes, at as BaseAddon, bt as emitReadiness, it as errMsg, w as enumerateInferenceDevices } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { At as EventCategory, at as BaseAddon } from "../../dist-BLNvh8Qy.mjs";
1
+ import { At as EventCategory, at as BaseAddon } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { V as nodePin, Z as snapshotCapability, at as BaseAddon, dt as DeviceType, et as streamQualityLabel, it as errMsg, lt as DeviceFeature } from "../../dist-BLNvh8Qy.mjs";
1
+ import { V as nodePin, Z as snapshotCapability, at as BaseAddon, dt as DeviceType, et as streamQualityLabel, it as errMsg, lt as DeviceFeature } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { $ as storageProviderCapability, at as BaseAddon, k as filesystemBrowseCapability } from "../../dist-BLNvh8Qy.mjs";
1
+ import { $ as storageProviderCapability, at as BaseAddon, k as filesystemBrowseCapability } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { Tt as parseJsonUnknown, X as settingsStoreCapability, at as BaseAddon, ht as asJsonObject, it as errMsg, s as RUNTIME_DEFAULTS } from "../../dist-BLNvh8Qy.mjs";
1
+ import { Tt as parseJsonUnknown, X as settingsStoreCapability, at as BaseAddon, ht as asJsonObject, it as errMsg, s as RUNTIME_DEFAULTS } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { Q as storageCapability, at as BaseAddon, u as StorageLocationTypeSchema, wt as parseJsonObject } from "../../dist-BLNvh8Qy.mjs";
1
+ import { Q as storageCapability, at as BaseAddon, u as StorageLocationTypeSchema, wt as parseJsonObject } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { St as hydrateSchema, at as BaseAddon, it as errMsg } from "../../dist-BLNvh8Qy.mjs";
1
+ import { St as hydrateSchema, at as BaseAddon, it as errMsg } from "../../dist-72yufD8v.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-DP2SKMvU.js");
6
+ const require_dist = require("../../dist-CQZxGJ8u.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 { R as logDestinationCapability, at as BaseAddon } from "../../dist-BLNvh8Qy.mjs";
1
+ import { R as logDestinationCapability, at as BaseAddon } from "../../dist-72yufD8v.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";
@@ -8495,7 +8495,8 @@ var PipelineStepInputSchema = z.lazy(() => z.object({
8495
8495
  modelId: z.string().optional(),
8496
8496
  enabled: z.boolean().default(true),
8497
8497
  children: z.array(PipelineStepInputSchema).optional(),
8498
- settings: z.record(z.string(), z.unknown()).optional()
8498
+ settings: z.record(z.string(), z.unknown()).optional(),
8499
+ jumpDeviceKey: z.string().optional()
8499
8500
  }));
8500
8501
  var ModelSubstitutionSchema = z.object({
8501
8502
  addonId: z.string(),
@@ -8986,8 +8987,24 @@ var NativeCropBboxSchema = z.object({
8986
8987
  });
8987
8988
  /** Result of a best-effort native-resolution crop (`getNativeCrop`). */
8988
8989
  var NativeCropResultSchema = z.object({
8989
- /** Packed rgb (24-bit) pixels of the crop. */
8990
- bytes: z.instanceof(Uint8Array),
8990
+ /**
8991
+ * Packed rgb (24-bit) pixels of the crop. Present on the DEFAULT (raw) path —
8992
+ * same-node (in-process / UDS) callers get zero-copy RGB and encode locally.
8993
+ * OMITTED when the caller requested `encodeJpeg` (the cross-node compressed
8994
+ * path below), where shipping raw RGB is both an invariant violation and, for
8995
+ * a native full frame (~26 MB at 4K), larger than Moleculer's 10 MB
8996
+ * `maxPacketSize` → the packet is dropped and the call 60s-times-out. That is
8997
+ * the cross-node native-media miss: `bytes` is replaced by `jpeg`.
8998
+ */
8999
+ bytes: z.instanceof(Uint8Array).optional(),
9000
+ /**
9001
+ * Base64 JPEG of the crop — the COMPRESSED cross-node payload. The OWNING node
9002
+ * (which holds the native surface) encodes it in-process, so a native 4K frame
9003
+ * ships as ~0.5–2 MB (well under `maxPacketSize`) and NO raw pixels ever cross
9004
+ * a process boundary (CLAUDE.md invariant #21). Present ONLY when the request
9005
+ * set `encodeJpeg: true`; `bytes` is then absent.
9006
+ */
9007
+ jpeg: z.string().optional(),
8991
9008
  width: z.number().int().positive(),
8992
9009
  height: z.number().int().positive(),
8993
9010
  /**
@@ -9133,6 +9150,20 @@ var RunnerFrameSourceSchema = z.discriminatedUnion("kind", [z.object({ kind: z.l
9133
9150
  hubHostnameOverride: z.string().optional()
9134
9151
  })]).describe("Per-camera frame-source mode for the runner (P2c)");
9135
9152
  /**
9153
+ * One ENABLED inference device on the runner's node, as the step-tree
9154
+ * device-jump resolver sees it (phase 1). The orchestrator populates this
9155
+ * roster on the attach payload whenever the camera is elected onto a specific
9156
+ * `deviceKey` and the node has ≥2 enabled devices — it is the candidate set the
9157
+ * runner auto-jumps an enrichment step to when the elected device's format
9158
+ * cannot run that step's model. `weight`/`maxSessions` mirror the balancer's
9159
+ * per-device knobs so the auto choice is weighted-least-loaded.
9160
+ */
9161
+ var RunnerInferenceDeviceSchema = z.object({
9162
+ deviceKey: z.string(),
9163
+ weight: z.number().positive().default(1),
9164
+ maxSessions: z.number().int().positive().nullable().default(null)
9165
+ });
9166
+ /**
9136
9167
  * Camera assignment payload sent by `addon-pipeline-orchestrator` to a
9137
9168
  * specific runner instance via `attachCamera`. Carries everything the
9138
9169
  * runner needs to subscribe to the local broker and execute inference.
@@ -9250,7 +9281,16 @@ var RunnerCameraConfigSchema = z.object({
9250
9281
  * omitted ⇒ the runner's default device. The engine itself stays node-local —
9251
9282
  * this only selects WHICH device pool of that node runs the session.
9252
9283
  */
9253
- deviceKey: z.string().optional()
9284
+ deviceKey: z.string().optional(),
9285
+ /**
9286
+ * Step-tree device-jump roster (phase 1): the node's ENABLED inference
9287
+ * devices, populated by the orchestrator ONLY when `deviceKey` is set and the
9288
+ * node has ≥2 enabled devices. The runner uses it to AUTO-jump an enrichment
9289
+ * step whose model has no build for the elected device's format onto another
9290
+ * enabled device of the SAME node (weighted-least-loaded). Absent/single-entry
9291
+ * ⇒ no jump possible; the step runs on `deviceKey`.
9292
+ */
9293
+ inferenceDevices: z.array(RunnerInferenceDeviceSchema).readonly().optional()
9254
9294
  });
9255
9295
  motionFpsField.min, motionFpsField.max, motionFpsField.step, motionFpsField.default, detectionFpsField.min, detectionFpsField.max, detectionFpsField.step, detectionFpsField.default, motionCooldownMsField.min, motionCooldownMsField.max, motionCooldownMsField.step, motionCooldownMsField.default, occupancyRecheckSecField.min, occupancyRecheckSecField.max, occupancyRecheckSecField.step, occupancyRecheckSecField.default, occupancyRecheckFramesField.min, occupancyRecheckFramesField.max, occupancyRecheckFramesField.step, occupancyRecheckFramesField.default;
9256
9296
  /**
@@ -9370,7 +9410,18 @@ var pipelineRunnerCapability = {
9370
9410
  getNativeCrop: method(z.object({
9371
9411
  handle: FrameHandleSchema,
9372
9412
  bbox: NativeCropBboxSchema,
9373
- maxWidth: z.number().int().positive().optional()
9413
+ maxWidth: z.number().int().positive().optional(),
9414
+ /**
9415
+ * When `true`, the runner encodes the resolved crop to JPEG ON THE
9416
+ * OWNING NODE and returns it in `jpeg` (base64) INSTEAD of raw `bytes`.
9417
+ * Callers set this for CROSS-NODE fetches (`handle.nodeId` is a remote
9418
+ * agent) so the compressed payload fits Moleculer's `maxPacketSize` and
9419
+ * no raw pixels cross the process boundary. Same-node callers omit it
9420
+ * and keep the zero-copy raw `bytes` path. Additive + optional: a
9421
+ * pre-encode runner (version skew) ignores it and returns `bytes`, so
9422
+ * the caller falls back to encoding locally.
9423
+ */
9424
+ encodeJpeg: z.boolean().optional()
9374
9425
  }), NativeCropResultSchema.nullable()),
9375
9426
  /**
9376
9427
  * Two-plane design: run the DETAIL subtree (crop children —
@@ -16466,7 +16517,8 @@ var MediaFileKindEnum = z.enum([
16466
16517
  "faceCrop",
16467
16518
  "plateCrop",
16468
16519
  "keyFrame",
16469
- "keyFrameSmall"
16520
+ "keyFrameSmall",
16521
+ "thumbnailSmall"
16470
16522
  ]);
16471
16523
  var MediaFileSchema = z.object({
16472
16524
  key: z.string(),
@@ -16948,7 +17000,16 @@ var PipelineTemplateSchema = z.object({
16948
17000
  });
16949
17001
  var DeviceStepConfigSchema = z.object({
16950
17002
  modelId: z.string().optional(),
16951
- settings: z.record(z.string(), z.unknown()).optional()
17003
+ settings: z.record(z.string(), z.unknown()).optional(),
17004
+ /**
17005
+ * Step-tree device jump (same-node, phase 1) — OPTIONAL manual override.
17006
+ * When set, this step runs on the named enabled device of the SAME node
17007
+ * (`<backend>:<device>`) instead of the camera's elected device, bypassing
17008
+ * the runtime AUTO-jump. The orchestrator rejects a `jumpDeviceKey` pointing
17009
+ * at a disabled/absent device on that node at save time. Absent ⇒ the runner
17010
+ * auto-jumps only when the effective device's format cannot run the step.
17011
+ */
17012
+ jumpDeviceKey: z.string().optional()
16952
17013
  });
16953
17014
  var AgentPipelineSettingsSchema = z.object({
16954
17015
  maxCameras: z.number().int().nonnegative().nullable().default(null),
@@ -8495,7 +8495,8 @@ var PipelineStepInputSchema = zod.z.lazy(() => zod.z.object({
8495
8495
  modelId: zod.z.string().optional(),
8496
8496
  enabled: zod.z.boolean().default(true),
8497
8497
  children: zod.z.array(PipelineStepInputSchema).optional(),
8498
- settings: zod.z.record(zod.z.string(), zod.z.unknown()).optional()
8498
+ settings: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
8499
+ jumpDeviceKey: zod.z.string().optional()
8499
8500
  }));
8500
8501
  var ModelSubstitutionSchema = zod.z.object({
8501
8502
  addonId: zod.z.string(),
@@ -8986,8 +8987,24 @@ var NativeCropBboxSchema = zod.z.object({
8986
8987
  });
8987
8988
  /** Result of a best-effort native-resolution crop (`getNativeCrop`). */
8988
8989
  var NativeCropResultSchema = zod.z.object({
8989
- /** Packed rgb (24-bit) pixels of the crop. */
8990
- bytes: zod.z.instanceof(Uint8Array),
8990
+ /**
8991
+ * Packed rgb (24-bit) pixels of the crop. Present on the DEFAULT (raw) path —
8992
+ * same-node (in-process / UDS) callers get zero-copy RGB and encode locally.
8993
+ * OMITTED when the caller requested `encodeJpeg` (the cross-node compressed
8994
+ * path below), where shipping raw RGB is both an invariant violation and, for
8995
+ * a native full frame (~26 MB at 4K), larger than Moleculer's 10 MB
8996
+ * `maxPacketSize` → the packet is dropped and the call 60s-times-out. That is
8997
+ * the cross-node native-media miss: `bytes` is replaced by `jpeg`.
8998
+ */
8999
+ bytes: zod.z.instanceof(Uint8Array).optional(),
9000
+ /**
9001
+ * Base64 JPEG of the crop — the COMPRESSED cross-node payload. The OWNING node
9002
+ * (which holds the native surface) encodes it in-process, so a native 4K frame
9003
+ * ships as ~0.5–2 MB (well under `maxPacketSize`) and NO raw pixels ever cross
9004
+ * a process boundary (CLAUDE.md invariant #21). Present ONLY when the request
9005
+ * set `encodeJpeg: true`; `bytes` is then absent.
9006
+ */
9007
+ jpeg: zod.z.string().optional(),
8991
9008
  width: zod.z.number().int().positive(),
8992
9009
  height: zod.z.number().int().positive(),
8993
9010
  /**
@@ -9133,6 +9150,20 @@ var RunnerFrameSourceSchema = zod.z.discriminatedUnion("kind", [zod.z.object({ k
9133
9150
  hubHostnameOverride: zod.z.string().optional()
9134
9151
  })]).describe("Per-camera frame-source mode for the runner (P2c)");
9135
9152
  /**
9153
+ * One ENABLED inference device on the runner's node, as the step-tree
9154
+ * device-jump resolver sees it (phase 1). The orchestrator populates this
9155
+ * roster on the attach payload whenever the camera is elected onto a specific
9156
+ * `deviceKey` and the node has ≥2 enabled devices — it is the candidate set the
9157
+ * runner auto-jumps an enrichment step to when the elected device's format
9158
+ * cannot run that step's model. `weight`/`maxSessions` mirror the balancer's
9159
+ * per-device knobs so the auto choice is weighted-least-loaded.
9160
+ */
9161
+ var RunnerInferenceDeviceSchema = zod.z.object({
9162
+ deviceKey: zod.z.string(),
9163
+ weight: zod.z.number().positive().default(1),
9164
+ maxSessions: zod.z.number().int().positive().nullable().default(null)
9165
+ });
9166
+ /**
9136
9167
  * Camera assignment payload sent by `addon-pipeline-orchestrator` to a
9137
9168
  * specific runner instance via `attachCamera`. Carries everything the
9138
9169
  * runner needs to subscribe to the local broker and execute inference.
@@ -9250,7 +9281,16 @@ var RunnerCameraConfigSchema = zod.z.object({
9250
9281
  * omitted ⇒ the runner's default device. The engine itself stays node-local —
9251
9282
  * this only selects WHICH device pool of that node runs the session.
9252
9283
  */
9253
- deviceKey: zod.z.string().optional()
9284
+ deviceKey: zod.z.string().optional(),
9285
+ /**
9286
+ * Step-tree device-jump roster (phase 1): the node's ENABLED inference
9287
+ * devices, populated by the orchestrator ONLY when `deviceKey` is set and the
9288
+ * node has ≥2 enabled devices. The runner uses it to AUTO-jump an enrichment
9289
+ * step whose model has no build for the elected device's format onto another
9290
+ * enabled device of the SAME node (weighted-least-loaded). Absent/single-entry
9291
+ * ⇒ no jump possible; the step runs on `deviceKey`.
9292
+ */
9293
+ inferenceDevices: zod.z.array(RunnerInferenceDeviceSchema).readonly().optional()
9254
9294
  });
9255
9295
  motionFpsField.min, motionFpsField.max, motionFpsField.step, motionFpsField.default, detectionFpsField.min, detectionFpsField.max, detectionFpsField.step, detectionFpsField.default, motionCooldownMsField.min, motionCooldownMsField.max, motionCooldownMsField.step, motionCooldownMsField.default, occupancyRecheckSecField.min, occupancyRecheckSecField.max, occupancyRecheckSecField.step, occupancyRecheckSecField.default, occupancyRecheckFramesField.min, occupancyRecheckFramesField.max, occupancyRecheckFramesField.step, occupancyRecheckFramesField.default;
9256
9296
  /**
@@ -9370,7 +9410,18 @@ var pipelineRunnerCapability = {
9370
9410
  getNativeCrop: method(zod.z.object({
9371
9411
  handle: FrameHandleSchema,
9372
9412
  bbox: NativeCropBboxSchema,
9373
- maxWidth: zod.z.number().int().positive().optional()
9413
+ maxWidth: zod.z.number().int().positive().optional(),
9414
+ /**
9415
+ * When `true`, the runner encodes the resolved crop to JPEG ON THE
9416
+ * OWNING NODE and returns it in `jpeg` (base64) INSTEAD of raw `bytes`.
9417
+ * Callers set this for CROSS-NODE fetches (`handle.nodeId` is a remote
9418
+ * agent) so the compressed payload fits Moleculer's `maxPacketSize` and
9419
+ * no raw pixels cross the process boundary. Same-node callers omit it
9420
+ * and keep the zero-copy raw `bytes` path. Additive + optional: a
9421
+ * pre-encode runner (version skew) ignores it and returns `bytes`, so
9422
+ * the caller falls back to encoding locally.
9423
+ */
9424
+ encodeJpeg: zod.z.boolean().optional()
9374
9425
  }), NativeCropResultSchema.nullable()),
9375
9426
  /**
9376
9427
  * Two-plane design: run the DETAIL subtree (crop children —
@@ -16466,7 +16517,8 @@ var MediaFileKindEnum = zod.z.enum([
16466
16517
  "faceCrop",
16467
16518
  "plateCrop",
16468
16519
  "keyFrame",
16469
- "keyFrameSmall"
16520
+ "keyFrameSmall",
16521
+ "thumbnailSmall"
16470
16522
  ]);
16471
16523
  var MediaFileSchema = zod.z.object({
16472
16524
  key: zod.z.string(),
@@ -16948,7 +17000,16 @@ var PipelineTemplateSchema = zod.z.object({
16948
17000
  });
16949
17001
  var DeviceStepConfigSchema = zod.z.object({
16950
17002
  modelId: zod.z.string().optional(),
16951
- settings: zod.z.record(zod.z.string(), zod.z.unknown()).optional()
17003
+ settings: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
17004
+ /**
17005
+ * Step-tree device jump (same-node, phase 1) — OPTIONAL manual override.
17006
+ * When set, this step runs on the named enabled device of the SAME node
17007
+ * (`<backend>:<device>`) instead of the camera's elected device, bypassing
17008
+ * the runtime AUTO-jump. The orchestrator rejects a `jumpDeviceKey` pointing
17009
+ * at a disabled/absent device on that node at save time. Absent ⇒ the runner
17010
+ * auto-jumps only when the effective device's format cannot run the step.
17011
+ */
17012
+ jumpDeviceKey: zod.z.string().optional()
16952
17013
  });
16953
17014
  var AgentPipelineSettingsSchema = zod.z.object({
16954
17015
  maxCameras: zod.z.number().int().nonnegative().nullable().default(null),
package/dist/index.d.ts CHANGED
@@ -85,3 +85,4 @@ export type { DirectCallerOptions } from './addon/addon-api-factory.js';
85
85
  export { IntegrationRegistry } from './builtins/sqlite-storage/integration-registry.js';
86
86
  export * from './kernel/index.js';
87
87
  export { runNpm, resolveNpmInvocation, type RunNpmOptions, type NpmInvocation, } from './kernel/deps/npm-command.js';
88
+ export { ensureNativePrebuilds, TRADITIONAL_NATIVE_PACKAGES, type EnsureNativePrebuildsOptions, type PrebuildTarget, type PrebuildFetchFn, } from './kernel/deps/ensure-native-prebuilds.js';