@camstack/system 1.1.58 → 1.1.60

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 (47) 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 +3 -2
  26. package/dist/builtins/platform-probe/index.mjs +3 -2
  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-BY6NWf-c.js → dist-BNdI6_MP.js} +98 -5
  42. package/dist/{dist-BNevCEAo.mjs → dist-BgR9fJpL.mjs} +93 -6
  43. package/dist/index.js +2 -2
  44. package/dist/index.mjs +2 -2
  45. package/dist/{manifest-python-deps-D2G0DFWp.js → manifest-python-deps-ClarMoI9.js} +1 -1
  46. package/dist/{manifest-python-deps-DtCMZhuR.mjs → manifest-python-deps-RSxmZ-Fu.mjs} +1 -1
  47. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-BY6NWf-c.js");
3
- const require_manifest_python_deps = require("./manifest-python-deps-D2G0DFWp.js");
2
+ const require_dist = require("./dist-BNdI6_MP.js");
3
+ const require_manifest_python_deps = require("./manifest-python-deps-ClarMoI9.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 { j as isCollectionArrayMethod, t as ALL_CAPABILITY_DEFINITIONS } from "./dist-BNevCEAo.mjs";
2
- import { F as createUdsLoggerWithControl, I as LocalChildClient, bt as resolveAddonClass, i as createUdsAddonContext, it as setWorkerNativeCapsChangeListener, nt as getWorkerNativeCapSnapshot, ot as validateProviderRegistrations, t as installManifestPythonDeps, tt as getWorkerNativeCapProvider, vt as installManifestNativeDeps } from "./manifest-python-deps-DtCMZhuR.mjs";
1
+ import { M as isCollectionArrayMethod, t as ALL_CAPABILITY_DEFINITIONS } from "./dist-BgR9fJpL.mjs";
2
+ import { F as createUdsLoggerWithControl, I as LocalChildClient, bt as resolveAddonClass, i as createUdsAddonContext, it as setWorkerNativeCapsChangeListener, nt as getWorkerNativeCapSnapshot, ot as validateProviderRegistrations, t as installManifestPythonDeps, tt as getWorkerNativeCapProvider, vt as installManifestNativeDeps } from "./manifest-python-deps-RSxmZ-Fu.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 { f as addonPagesCapability, it as BaseAddon, kt as EventCategory, rt as errMsg } from "../../dist-BNevCEAo.mjs";
1
+ import { At as EventCategory, at as BaseAddon, f as addonPagesCapability, it as errMsg } from "../../dist-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 { it as BaseAddon, kt as EventCategory, m as addonWidgetsCapability, rt as errMsg } from "../../dist-BNevCEAo.mjs";
1
+ import { At as EventCategory, at as BaseAddon, it as errMsg, m as addonWidgetsCapability } from "../../dist-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 { _t as createEvent, h as alertsCapability, it as BaseAddon, kt as EventCategory, n as AlertSchema, rt as errMsg } from "../../dist-BNevCEAo.mjs";
1
+ import { At as EventCategory, at as BaseAddon, h as alertsCapability, it as errMsg, n as AlertSchema, vt as createEvent } from "../../dist-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 { it as BaseAddon, kt as EventCategory, v as backupCapability } from "../../dist-BNevCEAo.mjs";
1
+ import { At as EventCategory, at as BaseAddon, v as backupCapability } from "../../dist-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 { L as logDestinationCapability, it as BaseAddon } from "../../dist-BNevCEAo.mjs";
1
+ import { R as logDestinationCapability, at as BaseAddon } from "../../dist-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 { E as evaluateLinkExpression, J as setByPath, Ot as sleep, S as deviceStatusCapability, St as isDeviceConfigCap, T as enumerateSchemaFields, U as parseStreamParamsFormPatch, V as normalizeUnit, a as DeviceStatusSchema, b as deviceManagerCapability, c as STREAM_PROFILE_META, ct as DeviceFeature, et as toExpressionValue, g as applyTransform, i as CAP_NAMES_WITH_STATUS, it as BaseAddon, k as getByPath, kt as EventCategory, lt as DeviceRole, nt as validateExpressionSource, pt as WELL_KNOWN_TAB_MAP, rt as errMsg, t as ALL_CAPABILITY_DEFINITIONS, ut as DeviceType, w as enumerateItemArrayFields, x as deviceStateCapability, y as buildStreamParamsConfigSchema } from "../../dist-BNevCEAo.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-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 { C as doorbellCapability, _t as createEvent, it as BaseAddon, kt as EventCategory, rt as errMsg, ut as DeviceType } from "../../dist-BNevCEAo.mjs";
1
+ import { At as EventCategory, C as doorbellCapability, at as BaseAddon, dt as DeviceType, it as errMsg, vt as createEvent } from "../../dist-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 { L as logDestinationCapability, it as BaseAddon } from "../../dist-BNevCEAo.mjs";
1
+ import { R as logDestinationCapability, at as BaseAddon } from "../../dist-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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, d as UserRecordSchema, it as BaseAddon, l as ScopedTokenSchema, r as ApiKeyRecordSchema, tt as userManagementCapability } from "../../dist-BNevCEAo.mjs";
1
+ import { _ as authProviderCapability, at as BaseAddon, d as UserRecordSchema, l as ScopedTokenSchema, nt as userManagementCapability, r as ApiKeyRecordSchema } from "../../dist-BgR9fJpL.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-BY6NWf-c.js");
3
+ const require_dist = require("../../dist-BNdI6_MP.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 { I as localNetworkCapability, it as BaseAddon, kt as EventCategory } from "../../dist-BNevCEAo.mjs";
1
+ import { At as EventCategory, L as localNetworkCapability, at as BaseAddon } from "../../dist-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 { _t as createEvent, it as BaseAddon, kt as EventCategory, z as metricsProviderCapability } from "../../dist-BNevCEAo.mjs";
1
+ import { At as EventCategory, B as metricsProviderCapability, at as BaseAddon, vt as createEvent } from "../../dist-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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");
@@ -184,7 +184,8 @@ var PlatformScorer = class {
184
184
  hardware,
185
185
  scores: [...scores],
186
186
  bestScore,
187
- pythonPath
187
+ pythonPath,
188
+ devices: require_dist.enumerateInferenceDevices(hardware)
188
189
  };
189
190
  onPhase?.("scored", {
190
191
  scores,
@@ -1,4 +1,4 @@
1
- import { W as platformProbeCapability, it as BaseAddon, kt as EventCategory, q as scoreRuntimes, rt as errMsg, yt as emitReadiness } from "../../dist-BNevCEAo.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-BgR9fJpL.mjs";
2
2
  import * as fs from "node:fs";
3
3
  import { execFile } from "node:child_process";
4
4
  import { promisify } from "node:util";
@@ -177,7 +177,8 @@ var PlatformScorer = class {
177
177
  hardware,
178
178
  scores: [...scores],
179
179
  bestScore,
180
- pythonPath
180
+ pythonPath,
181
+ devices: enumerateInferenceDevices(hardware)
181
182
  };
182
183
  onPhase?.("scored", {
183
184
  scores,
@@ -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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 { it as BaseAddon, kt as EventCategory } from "../../dist-BNevCEAo.mjs";
1
+ import { At as EventCategory, at as BaseAddon } from "../../dist-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 streamQualityLabel, B as nodePin, X as snapshotCapability, ct as DeviceFeature, it as BaseAddon, rt as errMsg, ut as DeviceType } from "../../dist-BNevCEAo.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-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 { O as filesystemBrowseCapability, Q as storageProviderCapability, it as BaseAddon } from "../../dist-BNevCEAo.mjs";
1
+ import { $ as storageProviderCapability, at as BaseAddon, k as filesystemBrowseCapability } from "../../dist-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 { Y as settingsStoreCapability, it as BaseAddon, mt as asJsonObject, rt as errMsg, s as RUNTIME_DEFAULTS, wt as parseJsonUnknown } from "../../dist-BNevCEAo.mjs";
1
+ import { Tt as parseJsonUnknown, X as settingsStoreCapability, at as BaseAddon, ht as asJsonObject, it as errMsg, s as RUNTIME_DEFAULTS } from "../../dist-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 { Ct as parseJsonObject, Z as storageCapability, it as BaseAddon, u as StorageLocationTypeSchema } from "../../dist-BNevCEAo.mjs";
1
+ import { Q as storageCapability, at as BaseAddon, u as StorageLocationTypeSchema, wt as parseJsonObject } from "../../dist-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 { it as BaseAddon, rt as errMsg, xt as hydrateSchema } from "../../dist-BNevCEAo.mjs";
1
+ import { St as hydrateSchema, at as BaseAddon, it as errMsg } from "../../dist-BgR9fJpL.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-BY6NWf-c.js");
6
+ const require_dist = require("../../dist-BNdI6_MP.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 { L as logDestinationCapability, it as BaseAddon } from "../../dist-BNevCEAo.mjs";
1
+ import { R as logDestinationCapability, at as BaseAddon } from "../../dist-BgR9fJpL.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";
@@ -3082,6 +3082,17 @@ var ModelCatalogEntrySchema = zod.z.object({
3082
3082
  "imagenet",
3083
3083
  "none"
3084
3084
  ]).optional(),
3085
+ /**
3086
+ * The model already applies softmax IN-GRAPH — its raw output is a
3087
+ * probability distribution, not logits. When set, the `softmax`
3088
+ * postprocessor must NOT re-apply softmax: re-softmaxing an already-normalised
3089
+ * probability vector collapses it toward uniform (top-1 score craters far
3090
+ * below its true value, making every confidence gate meaningless). Absent ⇒
3091
+ * the output is raw logits and the postprocessor applies softmax (the normal
3092
+ * case). Set on the Google AIY Birds `bird-classifier` (softmax baked into the
3093
+ * TF graph). Threaded to the Python pool via `PoolModelConfig.outputProbabilities`.
3094
+ */
3095
+ outputProbabilities: zod.z.boolean().optional(),
3085
3096
  preprocessMode: zod.z.enum(["letterbox", "resize"]).optional(),
3086
3097
  /**
3087
3098
  * Per-MODEL postprocessor override. Absent ⇒ the step's own
@@ -8734,7 +8745,14 @@ var pipelineExecutorCapability = {
8734
8745
  * (inputClasses ≠ null) are skipped and served per-track via
8735
8746
  * pipelineRunner.runDetailSubtree (two-plane design).
8736
8747
  */
8737
- plane: zod.z.enum(["full", "frame"]).optional()
8748
+ plane: zod.z.enum(["full", "frame"]).optional(),
8749
+ /**
8750
+ * Inference-device selector (Phase 2 multi-device). Format
8751
+ * `<backend>:<device>` (e.g. `openvino:gpu`, `edgetpu:usb`, `cpu`).
8752
+ * Omitted ⇒ the runner's default device (current single-engine
8753
+ * behaviour). Selects WHICH device pool of the node runs the call.
8754
+ */
8755
+ deviceKey: zod.z.string().optional()
8738
8756
  }), PipelineRunResultBridge, { kind: "mutation" }),
8739
8757
  /**
8740
8758
  * Batched run — N raw frames packed into one cap call. The provider
@@ -8752,7 +8770,20 @@ var pipelineExecutorCapability = {
8752
8770
  steps: zod.z.array(PipelineStepInputSchema).min(1),
8753
8771
  frames: zod.z.array(FrameInputSchema).min(1).max(255),
8754
8772
  deviceId: zod.z.number().optional(),
8755
- sessionId: zod.z.string().optional()
8773
+ sessionId: zod.z.string().optional(),
8774
+ /**
8775
+ * Pure-inference benchmark hint. A NONZERO uint32 pins every frame in
8776
+ * the batch to the Python pool's bench preprocess cache
8777
+ * (`_bench_frame_id`) so a REPEATED benchmark frame is decoded +
8778
+ * preprocessed ONCE and every later inference is a pure-inference cache
8779
+ * hit — the sustained-throughput run measures inference, not
8780
+ * decode+preprocess+infer. Omitted/0 for live frames (all different →
8781
+ * full preprocess every call, correct). Fresh per sustained run;
8782
+ * released via `uncacheFrame`.
8783
+ */
8784
+ frameId: zod.z.number().int().nonnegative().optional(),
8785
+ /** Inference-device selector (Phase 2 multi-device); see runPipeline. */
8786
+ deviceKey: zod.z.string().optional()
8756
8787
  }), zod.z.object({ results: zod.z.array(PipelineRunResultBridge).readonly() }), { kind: "mutation" }),
8757
8788
  /**
8758
8789
  * Cache a raw frame inside the Python inference pool's memory.
@@ -9202,7 +9233,14 @@ var RunnerCameraConfigSchema = zod.z.object({
9202
9233
  * camera's detect node differs from its source-owner (P2d, gated by the
9203
9234
  * `remoteSourcingNodes` rollout setting).
9204
9235
  */
9205
- frameSource: RunnerFrameSourceSchema.default({ kind: "local-broker" })
9236
+ frameSource: RunnerFrameSourceSchema.default({ kind: "local-broker" }),
9237
+ /**
9238
+ * Inference-device selector for this camera's sessions (Phase 2 multi-device).
9239
+ * Format `<backend>:<device>` (e.g. `openvino:gpu`, `edgetpu:usb`, `cpu`);
9240
+ * omitted ⇒ the runner's default device. The engine itself stays node-local —
9241
+ * this only selects WHICH device pool of that node runs the session.
9242
+ */
9243
+ deviceKey: zod.z.string().optional()
9206
9244
  });
9207
9245
  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;
9208
9246
  /**
@@ -11842,6 +11880,8 @@ function enumerateItemArrayFields(itemArray) {
11842
11880
  item: true
11843
11881
  }));
11844
11882
  }
11883
+ DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Siren, DeviceType.Light, DeviceType.Fan, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder;
11884
+ new Set(Object.values(DeviceType));
11845
11885
  /**
11846
11886
  * `addon-pages` — system-scoped singleton aggregator cap. Public-facing
11847
11887
  * surface that admin-ui consumes through `useAddonPagesListPages()`.
@@ -21053,17 +21093,28 @@ var PlatformScoreSchema = zod.z.object({
21053
21093
  format: zod.z.enum([
21054
21094
  "onnx",
21055
21095
  "coreml",
21056
- "openvino"
21096
+ "openvino",
21097
+ "tflite"
21057
21098
  ]),
21058
21099
  score: zod.z.number(),
21059
21100
  reason: zod.z.string(),
21060
21101
  available: zod.z.boolean()
21061
21102
  });
21103
+ var InferenceDeviceDescriptorSchema = zod.z.object({
21104
+ key: zod.z.string(),
21105
+ backend: zod.z.string(),
21106
+ device: zod.z.string(),
21107
+ format: ModelFormatSchema,
21108
+ runtime: zod.z.literal("python"),
21109
+ score: zod.z.number(),
21110
+ available: zod.z.boolean()
21111
+ });
21062
21112
  var PlatformCapabilitiesSchema = zod.z.object({
21063
21113
  hardware: HardwareInfoSchema,
21064
21114
  scores: zod.z.array(PlatformScoreSchema).readonly(),
21065
21115
  bestScore: PlatformScoreSchema,
21066
- pythonPath: zod.z.string().nullable()
21116
+ pythonPath: zod.z.string().nullable(),
21117
+ devices: zod.z.array(InferenceDeviceDescriptorSchema).readonly()
21067
21118
  });
21068
21119
  var ModelRequirementSchema = zod.z.object({
21069
21120
  modelId: zod.z.string(),
@@ -27239,6 +27290,7 @@ Object.freeze({
27239
27290
  * - coreml: score 95, darwin+arm64
27240
27291
  * - cuda: score 85, nvidia gpu
27241
27292
  * - openvino: score 90 if intel-npu present, else 80 if intel gpu
27293
+ * - edgetpu: score 70, coral usb present
27242
27294
  * - cpu: score 50 (universal floor, always included)
27243
27295
  *
27244
27296
  * All hardware-matched entries are `available: true`.
@@ -27274,6 +27326,14 @@ function scoreRuntimes(hw) {
27274
27326
  available: true
27275
27327
  });
27276
27328
  }
27329
+ if (hw.coral != null) scores.push({
27330
+ runtime: "python",
27331
+ backend: "edgetpu",
27332
+ format: "tflite",
27333
+ score: 70,
27334
+ reason: "Coral Edge TPU (Python LiteRT)",
27335
+ available: true
27336
+ });
27277
27337
  scores.push({
27278
27338
  runtime: "python",
27279
27339
  backend: "cpu",
@@ -27288,6 +27348,33 @@ function scoreRuntimes(hw) {
27288
27348
  best: sorted.find((s) => s.available) ?? sorted[sorted.length - 1]
27289
27349
  };
27290
27350
  }
27351
+ var DEVICE_FOR_BACKEND = {
27352
+ openvino: "gpu",
27353
+ cuda: "gpu",
27354
+ edgetpu: "usb",
27355
+ coreml: "all",
27356
+ cpu: "cpu"
27357
+ };
27358
+ /**
27359
+ * Enumerate every usable inference device on a node, one descriptor per scored
27360
+ * backend. Unlike the elected `bestScore`, this returns the FULL set so the
27361
+ * orchestrator can run and balance across all accelerators concurrently.
27362
+ */
27363
+ function enumerateInferenceDevices(hw) {
27364
+ const { scores } = scoreRuntimes(hw);
27365
+ return scores.map((s) => {
27366
+ const device = DEVICE_FOR_BACKEND[s.backend] ?? s.backend;
27367
+ return {
27368
+ key: s.backend === "cpu" ? "cpu" : `${s.backend}:${device}`,
27369
+ backend: s.backend,
27370
+ device,
27371
+ format: s.format,
27372
+ runtime: "python",
27373
+ score: s.score,
27374
+ available: s.available
27375
+ };
27376
+ });
27377
+ }
27291
27378
  //#endregion
27292
27379
  Object.defineProperty(exports, "ALL_CAPABILITY_DEFINITIONS", {
27293
27380
  enumerable: true,
@@ -27529,6 +27616,12 @@ Object.defineProperty(exports, "emitReadiness", {
27529
27616
  return emitReadiness;
27530
27617
  }
27531
27618
  });
27619
+ Object.defineProperty(exports, "enumerateInferenceDevices", {
27620
+ enumerable: true,
27621
+ get: function() {
27622
+ return enumerateInferenceDevices;
27623
+ }
27624
+ });
27532
27625
  Object.defineProperty(exports, "enumerateItemArrayFields", {
27533
27626
  enumerable: true,
27534
27627
  get: function() {
@@ -3082,6 +3082,17 @@ var ModelCatalogEntrySchema = z.object({
3082
3082
  "imagenet",
3083
3083
  "none"
3084
3084
  ]).optional(),
3085
+ /**
3086
+ * The model already applies softmax IN-GRAPH — its raw output is a
3087
+ * probability distribution, not logits. When set, the `softmax`
3088
+ * postprocessor must NOT re-apply softmax: re-softmaxing an already-normalised
3089
+ * probability vector collapses it toward uniform (top-1 score craters far
3090
+ * below its true value, making every confidence gate meaningless). Absent ⇒
3091
+ * the output is raw logits and the postprocessor applies softmax (the normal
3092
+ * case). Set on the Google AIY Birds `bird-classifier` (softmax baked into the
3093
+ * TF graph). Threaded to the Python pool via `PoolModelConfig.outputProbabilities`.
3094
+ */
3095
+ outputProbabilities: z.boolean().optional(),
3085
3096
  preprocessMode: z.enum(["letterbox", "resize"]).optional(),
3086
3097
  /**
3087
3098
  * Per-MODEL postprocessor override. Absent ⇒ the step's own
@@ -8734,7 +8745,14 @@ var pipelineExecutorCapability = {
8734
8745
  * (inputClasses ≠ null) are skipped and served per-track via
8735
8746
  * pipelineRunner.runDetailSubtree (two-plane design).
8736
8747
  */
8737
- plane: z.enum(["full", "frame"]).optional()
8748
+ plane: z.enum(["full", "frame"]).optional(),
8749
+ /**
8750
+ * Inference-device selector (Phase 2 multi-device). Format
8751
+ * `<backend>:<device>` (e.g. `openvino:gpu`, `edgetpu:usb`, `cpu`).
8752
+ * Omitted ⇒ the runner's default device (current single-engine
8753
+ * behaviour). Selects WHICH device pool of the node runs the call.
8754
+ */
8755
+ deviceKey: z.string().optional()
8738
8756
  }), PipelineRunResultBridge, { kind: "mutation" }),
8739
8757
  /**
8740
8758
  * Batched run — N raw frames packed into one cap call. The provider
@@ -8752,7 +8770,20 @@ var pipelineExecutorCapability = {
8752
8770
  steps: z.array(PipelineStepInputSchema).min(1),
8753
8771
  frames: z.array(FrameInputSchema).min(1).max(255),
8754
8772
  deviceId: z.number().optional(),
8755
- sessionId: z.string().optional()
8773
+ sessionId: z.string().optional(),
8774
+ /**
8775
+ * Pure-inference benchmark hint. A NONZERO uint32 pins every frame in
8776
+ * the batch to the Python pool's bench preprocess cache
8777
+ * (`_bench_frame_id`) so a REPEATED benchmark frame is decoded +
8778
+ * preprocessed ONCE and every later inference is a pure-inference cache
8779
+ * hit — the sustained-throughput run measures inference, not
8780
+ * decode+preprocess+infer. Omitted/0 for live frames (all different →
8781
+ * full preprocess every call, correct). Fresh per sustained run;
8782
+ * released via `uncacheFrame`.
8783
+ */
8784
+ frameId: z.number().int().nonnegative().optional(),
8785
+ /** Inference-device selector (Phase 2 multi-device); see runPipeline. */
8786
+ deviceKey: z.string().optional()
8756
8787
  }), z.object({ results: z.array(PipelineRunResultBridge).readonly() }), { kind: "mutation" }),
8757
8788
  /**
8758
8789
  * Cache a raw frame inside the Python inference pool's memory.
@@ -9202,7 +9233,14 @@ var RunnerCameraConfigSchema = z.object({
9202
9233
  * camera's detect node differs from its source-owner (P2d, gated by the
9203
9234
  * `remoteSourcingNodes` rollout setting).
9204
9235
  */
9205
- frameSource: RunnerFrameSourceSchema.default({ kind: "local-broker" })
9236
+ frameSource: RunnerFrameSourceSchema.default({ kind: "local-broker" }),
9237
+ /**
9238
+ * Inference-device selector for this camera's sessions (Phase 2 multi-device).
9239
+ * Format `<backend>:<device>` (e.g. `openvino:gpu`, `edgetpu:usb`, `cpu`);
9240
+ * omitted ⇒ the runner's default device. The engine itself stays node-local —
9241
+ * this only selects WHICH device pool of that node runs the session.
9242
+ */
9243
+ deviceKey: z.string().optional()
9206
9244
  });
9207
9245
  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;
9208
9246
  /**
@@ -11842,6 +11880,8 @@ function enumerateItemArrayFields(itemArray) {
11842
11880
  item: true
11843
11881
  }));
11844
11882
  }
11883
+ DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Siren, DeviceType.Light, DeviceType.Fan, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder;
11884
+ new Set(Object.values(DeviceType));
11845
11885
  /**
11846
11886
  * `addon-pages` — system-scoped singleton aggregator cap. Public-facing
11847
11887
  * surface that admin-ui consumes through `useAddonPagesListPages()`.
@@ -21053,17 +21093,28 @@ var PlatformScoreSchema = z.object({
21053
21093
  format: z.enum([
21054
21094
  "onnx",
21055
21095
  "coreml",
21056
- "openvino"
21096
+ "openvino",
21097
+ "tflite"
21057
21098
  ]),
21058
21099
  score: z.number(),
21059
21100
  reason: z.string(),
21060
21101
  available: z.boolean()
21061
21102
  });
21103
+ var InferenceDeviceDescriptorSchema = z.object({
21104
+ key: z.string(),
21105
+ backend: z.string(),
21106
+ device: z.string(),
21107
+ format: ModelFormatSchema,
21108
+ runtime: z.literal("python"),
21109
+ score: z.number(),
21110
+ available: z.boolean()
21111
+ });
21062
21112
  var PlatformCapabilitiesSchema = z.object({
21063
21113
  hardware: HardwareInfoSchema,
21064
21114
  scores: z.array(PlatformScoreSchema).readonly(),
21065
21115
  bestScore: PlatformScoreSchema,
21066
- pythonPath: z.string().nullable()
21116
+ pythonPath: z.string().nullable(),
21117
+ devices: z.array(InferenceDeviceDescriptorSchema).readonly()
21067
21118
  });
21068
21119
  var ModelRequirementSchema = z.object({
21069
21120
  modelId: z.string(),
@@ -27239,6 +27290,7 @@ Object.freeze({
27239
27290
  * - coreml: score 95, darwin+arm64
27240
27291
  * - cuda: score 85, nvidia gpu
27241
27292
  * - openvino: score 90 if intel-npu present, else 80 if intel gpu
27293
+ * - edgetpu: score 70, coral usb present
27242
27294
  * - cpu: score 50 (universal floor, always included)
27243
27295
  *
27244
27296
  * All hardware-matched entries are `available: true`.
@@ -27274,6 +27326,14 @@ function scoreRuntimes(hw) {
27274
27326
  available: true
27275
27327
  });
27276
27328
  }
27329
+ if (hw.coral != null) scores.push({
27330
+ runtime: "python",
27331
+ backend: "edgetpu",
27332
+ format: "tflite",
27333
+ score: 70,
27334
+ reason: "Coral Edge TPU (Python LiteRT)",
27335
+ available: true
27336
+ });
27277
27337
  scores.push({
27278
27338
  runtime: "python",
27279
27339
  backend: "cpu",
@@ -27288,5 +27348,32 @@ function scoreRuntimes(hw) {
27288
27348
  best: sorted.find((s) => s.available) ?? sorted[sorted.length - 1]
27289
27349
  };
27290
27350
  }
27351
+ var DEVICE_FOR_BACKEND = {
27352
+ openvino: "gpu",
27353
+ cuda: "gpu",
27354
+ edgetpu: "usb",
27355
+ coreml: "all",
27356
+ cpu: "cpu"
27357
+ };
27358
+ /**
27359
+ * Enumerate every usable inference device on a node, one descriptor per scored
27360
+ * backend. Unlike the elected `bestScore`, this returns the FULL set so the
27361
+ * orchestrator can run and balance across all accelerators concurrently.
27362
+ */
27363
+ function enumerateInferenceDevices(hw) {
27364
+ const { scores } = scoreRuntimes(hw);
27365
+ return scores.map((s) => {
27366
+ const device = DEVICE_FOR_BACKEND[s.backend] ?? s.backend;
27367
+ return {
27368
+ key: s.backend === "cpu" ? "cpu" : `${s.backend}:${device}`,
27369
+ backend: s.backend,
27370
+ device,
27371
+ format: s.format,
27372
+ runtime: "python",
27373
+ score: s.score,
27374
+ available: s.available
27375
+ };
27376
+ });
27377
+ }
27291
27378
  //#endregion
27292
- export { streamQualityLabel as $, isArrayOutputSchema as A, nodePin as B, doorbellCapability as C, parseJsonObject as Ct, extractNestedAddonId as D, scopeKey as Dt, evaluateLinkExpression as E, resolveCapMount as Et, lifecycleJobSchema as F, procedureAuthKey as G, objectInputDeclaresAddonId as H, localNetworkCapability as I, setByPath as J, readNodePin as K, logDestinationCapability as L, isObjectInput as M, isVoidInput as N, filesystemBrowseCapability as O, sleep as Ot, kebabToCamel as P, storageProviderCapability as Q, looseSchema as R, deviceStatusCapability as S, isDeviceConfigCap as St, enumerateSchemaFields as T, readinessKey as Tt, parseStreamParamsFormPatch as U, normalizeUnit as V, platformProbeCapability as W, snapshotCapability as X, settingsStoreCapability as Y, storageCapability as Z, authProviderCapability as _, createEvent as _t, DeviceStatusSchema as a, DATAPLANE_SECRET_HEADER as at, deviceManagerCapability as b, expandCapMethods as bt, STREAM_PROFILE_META as c, DeviceFeature as ct, UserRecordSchema as d, ReadinessRegistry as dt, toExpressionValue as et, addonPagesCapability as f, ReadinessTimeoutError as ft, applyTransform as g, asString as gt, alertsCapability as h, asNumber as ht, CAP_NAMES_WITH_STATUS as i, BaseAddon as it, isCollectionArrayMethod as j, getByPath as k, EventCategory as kt, ScopedTokenSchema as l, DeviceRole as lt, addonWidgetsCapability as m, asJsonObject as mt, AlertSchema as n, validateExpressionSource as nt, METHOD_ACCESS_MAP as o, DEVICE_SETTINGS_CONTRIBUTION_METHODS as ot, addonSettingsCapability as p, WELL_KNOWN_TAB_MAP as pt, scoreRuntimes as q, ApiKeyRecordSchema as r, errMsg as rt, RUNTIME_DEFAULTS as s, DEVICE_STATUS_METHOD as st, ALL_CAPABILITY_DEFINITIONS as t, userManagementCapability as tt, StorageLocationTypeSchema as u, DeviceType as ut, backupCapability as v, emitDownForOwnedCaps as vt, enumerateItemArrayFields as w, parseJsonUnknown as wt, deviceStateCapability as x, hydrateSchema as xt, buildStreamParamsConfigSchema as y, emitReadiness as yt, metricsProviderCapability as z };
27379
+ export { storageProviderCapability as $, getByPath as A, EventCategory as At, metricsProviderCapability as B, doorbellCapability as C, isDeviceConfigCap as Ct, evaluateLinkExpression as D, resolveCapMount as Dt, enumerateSchemaFields as E, readinessKey as Et, kebabToCamel as F, platformProbeCapability as G, normalizeUnit as H, lifecycleJobSchema as I, scoreRuntimes as J, procedureAuthKey as K, localNetworkCapability as L, isCollectionArrayMethod as M, isObjectInput as N, extractNestedAddonId as O, scopeKey as Ot, isVoidInput as P, storageCapability as Q, logDestinationCapability as R, deviceStatusCapability as S, hydrateSchema as St, enumerateItemArrayFields as T, parseJsonUnknown as Tt, objectInputDeclaresAddonId as U, nodePin as V, parseStreamParamsFormPatch as W, settingsStoreCapability as X, setByPath as Y, snapshotCapability as Z, authProviderCapability as _, asString as _t, DeviceStatusSchema as a, BaseAddon as at, deviceManagerCapability as b, emitReadiness as bt, STREAM_PROFILE_META as c, DEVICE_STATUS_METHOD as ct, UserRecordSchema as d, DeviceType as dt, streamQualityLabel as et, addonPagesCapability as f, ReadinessRegistry as ft, applyTransform as g, asNumber as gt, alertsCapability as h, asJsonObject as ht, CAP_NAMES_WITH_STATUS as i, errMsg as it, isArrayOutputSchema as j, filesystemBrowseCapability as k, sleep as kt, ScopedTokenSchema as l, DeviceFeature as lt, addonWidgetsCapability as m, WELL_KNOWN_TAB_MAP as mt, AlertSchema as n, userManagementCapability as nt, METHOD_ACCESS_MAP as o, DATAPLANE_SECRET_HEADER as ot, addonSettingsCapability as p, ReadinessTimeoutError as pt, readNodePin as q, ApiKeyRecordSchema as r, validateExpressionSource as rt, RUNTIME_DEFAULTS as s, DEVICE_SETTINGS_CONTRIBUTION_METHODS as st, ALL_CAPABILITY_DEFINITIONS as t, toExpressionValue as tt, StorageLocationTypeSchema as u, DeviceRole as ut, backupCapability as v, createEvent as vt, enumerateInferenceDevices as w, parseJsonObject as wt, deviceStateCapability as x, expandCapMethods as xt, buildStreamParamsConfigSchema as y, emitDownForOwnedCaps as yt, looseSchema as z };
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("./chunk-Cek0wNdY.js");
3
- const require_dist = require("./dist-BY6NWf-c.js");
3
+ const require_dist = require("./dist-BNdI6_MP.js");
4
4
  const require_model_download_service = require("./model-download-service-hf0ookyy.js");
5
- const require_manifest_python_deps = require("./manifest-python-deps-D2G0DFWp.js");
5
+ const require_manifest_python_deps = require("./manifest-python-deps-ClarMoI9.js");
6
6
  const require_resource_monitor = require("./resource-monitor-DNNomR-i.js");
7
7
  const require_builtins_sqlite_storage_filesystem_storage_addon = require("./builtins/sqlite-storage/filesystem-storage.addon.js");
8
8
  const require_builtins_sqlite_storage_sqlite_settings_addon = require("./builtins/sqlite-storage/sqlite-settings.addon.js");
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { A as isArrayOutputSchema, Ct as parseJsonObject, D as extractNestedAddonId, Dt as scopeKey, Et as resolveCapMount, F as lifecycleJobSchema, G as procedureAuthKey, H as objectInputDeclaresAddonId, M as isObjectInput, N as isVoidInput, P as kebabToCamel, R as looseSchema, Tt as readinessKey, _t as createEvent, at as DATAPLANE_SECRET_HEADER$1, bt as expandCapMethods, dt as ReadinessRegistry, ft as ReadinessTimeoutError, gt as asString$1, ht as asNumber, j as isCollectionArrayMethod, kt as EventCategory$1, mt as asJsonObject$1, o as METHOD_ACCESS_MAP, ot as DEVICE_SETTINGS_CONTRIBUTION_METHODS, p as addonSettingsCapability, rt as errMsg$1, s as RUNTIME_DEFAULTS, st as DEVICE_STATUS_METHOD, t as ALL_CAPABILITY_DEFINITIONS, vt as emitDownForOwnedCaps, wt as parseJsonUnknown$1 } from "./dist-BNevCEAo.mjs";
1
+ import { At as EventCategory$1, Dt as resolveCapMount, Et as readinessKey, F as kebabToCamel, I as lifecycleJobSchema, K as procedureAuthKey, M as isCollectionArrayMethod, N as isObjectInput, O as extractNestedAddonId, Ot as scopeKey, P as isVoidInput, Tt as parseJsonUnknown$1, U as objectInputDeclaresAddonId, _t as asString$1, ct as DEVICE_STATUS_METHOD, ft as ReadinessRegistry, gt as asNumber, ht as asJsonObject$1, it as errMsg$1, j as isArrayOutputSchema, o as METHOD_ACCESS_MAP, ot as DATAPLANE_SECRET_HEADER$1, p as addonSettingsCapability, pt as ReadinessTimeoutError, s as RUNTIME_DEFAULTS, st as DEVICE_SETTINGS_CONTRIBUTION_METHODS, t as ALL_CAPABILITY_DEFINITIONS, vt as createEvent, wt as parseJsonObject, xt as expandCapMethods, yt as emitDownForOwnedCaps, z as looseSchema } from "./dist-BgR9fJpL.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-Cp9f4dk6.mjs";
3
- 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, bt as resolveAddonClass, 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, xt as createAddonDataPlaneFacility, y as __resetCapUsageRegistryForTests, yt as runNpm, z as AGENT_CAP_FWD_ACTION } from "./manifest-python-deps-DtCMZhuR.mjs";
3
+ 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, bt as resolveAddonClass, 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, xt as createAddonDataPlaneFacility, y as __resetCapUsageRegistryForTests, yt as runNpm, z as AGENT_CAP_FWD_ACTION } from "./manifest-python-deps-RSxmZ-Fu.mjs";
4
4
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-Le3l0qS2.mjs";
5
5
  import { FilesystemStorageAddon, t as FilesystemStorageProvider } from "./builtins/sqlite-storage/filesystem-storage.addon.mjs";
6
6
  import { SqliteSettingsAddon, t as SqliteSettingsBackend } from "./builtins/sqlite-storage/sqlite-settings.addon.mjs";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-BY6NWf-c.js");
2
+ const require_dist = require("./dist-BNdI6_MP.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");
@@ -1,4 +1,4 @@
1
- import { K as readNodePin } from "./dist-BNevCEAo.mjs";
1
+ import { q as readNodePin } from "./dist-BgR9fJpL.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";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/system",
3
- "version": "1.1.58",
3
+ "version": "1.1.60",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",