@camstack/system 1.2.469 → 1.2.471

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 (91) hide show
  1. package/dist/addon-runner.js +97 -31
  2. package/dist/addon-runner.mjs +97 -31
  3. package/dist/addon-utils.mjs +1 -1
  4. package/dist/{agent-https-b-zX78oB.mjs → agent-https-DHBvFZJS.mjs} +1 -1
  5. package/dist/{agent-https-5OgOR-eF.js → agent-https-bH6bKDeK.js} +1 -1
  6. package/dist/auth/user-manager.d.ts +2 -2
  7. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  8. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +4 -4
  9. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  10. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +5 -5
  11. package/dist/builtins/alerts/alerts.addon.js +1 -1
  12. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  13. package/dist/builtins/autotrack/index.js +1 -1
  14. package/dist/builtins/autotrack/index.mjs +1 -1
  15. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  16. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +5 -5
  17. package/dist/builtins/calendars/calendars.addon.js +1 -1
  18. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  19. package/dist/builtins/camera-grid/index.js +1 -1
  20. package/dist/builtins/camera-grid/index.mjs +1 -1
  21. package/dist/builtins/composer/composer.addon.js +2 -2
  22. package/dist/builtins/composer/composer.addon.mjs +2 -2
  23. package/dist/builtins/console-logging/index.js +1 -1
  24. package/dist/builtins/console-logging/index.mjs +1 -1
  25. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  26. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  27. package/dist/builtins/device-history/device-history.addon.js +1 -1
  28. package/dist/builtins/device-history/device-history.addon.mjs +1 -1
  29. package/dist/builtins/device-manager/device-manager.addon.js +1 -1
  30. package/dist/builtins/device-manager/device-manager.addon.mjs +1 -1
  31. package/dist/builtins/hub-forwarder/index.js +1 -1
  32. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  33. package/dist/builtins/keychain/index.js +3 -3
  34. package/dist/builtins/keychain/index.mjs +3 -3
  35. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  36. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  37. package/dist/builtins/local-auth/local-auth.addon.js +2 -2
  38. package/dist/builtins/local-auth/local-auth.addon.mjs +5 -5
  39. package/dist/builtins/local-network/local-network.addon.js +2 -2
  40. package/dist/builtins/local-network/local-network.addon.mjs +2 -2
  41. package/dist/builtins/loki-logging/index.js +1 -1
  42. package/dist/builtins/loki-logging/index.mjs +1 -1
  43. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  44. package/dist/builtins/native-metrics/native-metrics.addon.mjs +10 -10
  45. package/dist/builtins/platform-probe/accelerator-reprobe.d.ts +23 -0
  46. package/dist/builtins/platform-probe/coral-accelerators.d.ts +50 -11
  47. package/dist/builtins/platform-probe/index.d.ts +17 -1
  48. package/dist/builtins/platform-probe/index.js +196 -12
  49. package/dist/builtins/platform-probe/index.mjs +202 -19
  50. package/dist/builtins/platform-probe/platform-scorer.d.ts +14 -0
  51. package/dist/builtins/record-entries/index.js +1 -1
  52. package/dist/builtins/record-entries/index.mjs +1 -1
  53. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  54. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  55. package/dist/builtins/snapshot/index.js +1 -1
  56. package/dist/builtins/snapshot/index.mjs +1 -1
  57. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  58. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +20 -20
  59. package/dist/builtins/sqlite-storage/index.js +1 -1
  60. package/dist/builtins/sqlite-storage/index.mjs +1 -1
  61. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +2 -2
  62. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +2 -2
  63. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  64. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  65. package/dist/builtins/system-config/system-config.addon.js +3 -3
  66. package/dist/builtins/system-config/system-config.addon.mjs +115 -115
  67. package/dist/builtins/winston-logging/index.js +1 -1
  68. package/dist/builtins/winston-logging/index.mjs +1 -1
  69. package/dist/{composition-sources-BGXTiUZm.js → composition-sources-B5uJZXZ1.js} +1 -1
  70. package/dist/{composition-sources-DTdzzyf0.mjs → composition-sources-DRw_vBKH.mjs} +1 -1
  71. package/dist/{constants-md_POijo.mjs → constants-5lA8Z9d8.mjs} +1 -1
  72. package/dist/{constants-2mPqJjkR.js → constants-CToE4OFp.js} +1 -1
  73. package/dist/{coral-accelerators-oUXmmbc2.js → coral-accelerators-BSVsBVzt.js} +102 -30
  74. package/dist/coral-accelerators-BW3OcrLD.mjs +231 -0
  75. package/dist/{custom-action-registry-DZSCLBuT.mjs → custom-action-registry-BGYDjTqY.mjs} +37 -37
  76. package/dist/{device-ca-CFdyrqeJ.mjs → device-ca-URrs1lxK.mjs} +1 -1
  77. package/dist/{device-ca-CC58lmNV.js → device-ca-nOCYVFS4.js} +1 -1
  78. package/dist/{dist-CtVVtyTX.mjs → dist-5XUG7iYJ.mjs} +6839 -1416
  79. package/dist/{dist-DuBtzSCh.js → dist-BjcWEfRy.js} +6839 -1416
  80. package/dist/file-host-worker.js +1 -1
  81. package/dist/file-host-worker.mjs +1 -1
  82. package/dist/{hub-mdns-ciao-BLsX_2cL.js → hub-mdns-ciao-vEWhJ_SD.js} +2 -2
  83. package/dist/{hub-mdns-ciao-CmuWLPci.mjs → hub-mdns-ciao-zD3JojB_.mjs} +2 -2
  84. package/dist/index.js +8 -8
  85. package/dist/index.mjs +225 -225
  86. package/dist/{restore-archive-CxPAuaNs.js → restore-archive-B64m2nAj.js} +1 -1
  87. package/dist/{restore-archive-D2w3z_ob.mjs → restore-archive-CN1pJTRn.mjs} +94 -94
  88. package/dist/{wal-maintenance-EK28XXnc.js → wal-maintenance-BNXVX-ot.js} +0 -0
  89. package/dist/{wal-maintenance-DeluFl_1.mjs → wal-maintenance-Bl2I-ZcR.mjs} +0 -0
  90. package/package.json +1 -1
  91. package/dist/coral-accelerators-Qhn5TOYZ.mjs +0 -165
@@ -7893,14 +7893,34 @@ function currentDelegateHost() {
7893
7893
  override: process.env[_camstack_types_node.EDGETPU_LIB_ENV]
7894
7894
  };
7895
7895
  }
7896
- function countUsbCorals(fsx) {
7897
- let count = 0;
7898
- for (const device of fsx.listUsbDevices()) {
7896
+ /** usbfs names a device `/dev/bus/usb/<busnum>/<devnum>`, each zero-padded to three digits. */
7897
+ function usbDeviceNode(device, fsx) {
7898
+ const bus = Number.parseInt(fsx.readUsbAttr(device, "busnum"), 10);
7899
+ const dev = Number.parseInt(fsx.readUsbAttr(device, "devnum"), 10);
7900
+ if (!Number.isInteger(bus) || !Number.isInteger(dev) || bus <= 0 || dev <= 0) return null;
7901
+ return `/dev/bus/usb/${String(bus).padStart(3, "0")}/${String(dev).padStart(3, "0")}`;
7902
+ }
7903
+ /**
7904
+ * USB units: sysfs is the HOST's view — a container whose `/dev/bus/usb`
7905
+ * mapping was removed still lists the stick under `/sys/bus/usb/devices`. A
7906
+ * listed Coral is usable only when its usbfs device node is in this process's
7907
+ * view AND opens read/write; otherwise it is present but not accessible.
7908
+ */
7909
+ function classifyUsb(devices, fsx) {
7910
+ let usable = 0;
7911
+ const inaccessibleNodes = [];
7912
+ for (const device of devices) {
7899
7913
  const vendor = fsx.readUsbAttr(device, "idVendor").toLowerCase();
7900
7914
  const product = fsx.readUsbAttr(device, "idProduct").toLowerCase();
7901
- if (CORAL_USB_IDS.some((id) => id.vendor === vendor && id.product === product)) count++;
7915
+ if (!CORAL_USB_IDS.some((id) => id.vendor === vendor && id.product === product)) continue;
7916
+ const node = usbDeviceNode(device, fsx);
7917
+ if (node !== null && fsx.exists(node) && fsx.canOpen(node)) usable++;
7918
+ else inaccessibleNodes.push(node ?? `/sys/bus/usb/devices/${device}`);
7902
7919
  }
7903
- return count;
7920
+ return {
7921
+ usable,
7922
+ inaccessibleNodes
7923
+ };
7904
7924
  }
7905
7925
  function countPciCorals(fsx) {
7906
7926
  let count = 0;
@@ -7934,32 +7954,56 @@ function classifyPci(fsx) {
7934
7954
  };
7935
7955
  }
7936
7956
  /**
7937
- * Detect Coral Edge TPUs on USB and PCIe/M.2.
7957
+ * Detect Coral Edge TPUs on USB and PCIe/M.2 — the answer only. See
7958
+ * {@link detectCoralAccelerator} for the evidence that decided it.
7959
+ */
7960
+ function classifyCoralAccelerator(fsx, delegateHost = currentDelegateHost()) {
7961
+ return detectCoralAccelerator(fsx, delegateHost).info;
7962
+ }
7963
+ /**
7964
+ * Detect Coral Edge TPUs on USB and PCIe/M.2, with the evidence that decided.
7938
7965
  *
7939
- * - USB: every matching USB device counts (multiple Corals run concurrently).
7966
+ * - USB: every matching USB device counts (multiple Corals run concurrently),
7967
+ * usable only if its `/dev/bus/usb/<BBB>/<DDD>` node opens read/write — a
7968
+ * listed stick whose node is missing or refused is `device-not-accessible`.
7940
7969
  * - PCIe: the apex driver's units, each usable only if its device node opens;
7941
7970
  * a Coral PCI function the driver did not bind is `driver-missing`.
7942
- * - Fallback: when NO Coral signal of either bus is visible but the libedgetpu
7943
- * delegate is installed (a container whose `/sys` USB view is limited), one
7944
- * USB Coral is assumed — never when a PCI Coral was seen, since the delegate
7945
- * then says nothing about USB.
7971
+ * - Fallback: when the USB bus is NOT OBSERVABLE (`/sys/bus/usb/devices`
7972
+ * missing, unreadable or empty — a macOS desktop, a restricted container)
7973
+ * and no PCI Coral was seen, an installed libedgetpu delegate means one USB
7974
+ * Coral is assumed. A bus that IS readable and lists no Coral id is the
7975
+ * answer: no USB Coral. The delegate stays installed after a stick is
7976
+ * unplugged or moved to another node, so it is evidence only where nothing
7977
+ * better exists (D919).
7946
7978
  *
7947
7979
  * Returns `null` only when no Coral was found at all; a present-but-unusable
7948
7980
  * Coral is reported with its typed reason, never as absent (D393/D315).
7949
7981
  */
7950
- function classifyCoralAccelerator(fsx, delegateHost = currentDelegateHost()) {
7951
- const usb = countUsbCorals(fsx);
7982
+ function detectCoralAccelerator(fsx, delegateHost = currentDelegateHost()) {
7983
+ const usbDevices = fsx.listUsbDevices();
7984
+ const usbBus = usbDevices !== null && usbDevices.length > 0 ? "observed" : "unobservable";
7985
+ const usb = usbDevices === null ? {
7986
+ usable: 0,
7987
+ inaccessibleNodes: []
7988
+ } : classifyUsb(usbDevices, fsx);
7989
+ const usbSeen = usb.usable + usb.inaccessibleNodes.length;
7990
+ const inaccessibleUsbNodes = usb.inaccessibleNodes;
7952
7991
  const pci = classifyPci(fsx);
7953
7992
  const units = [];
7954
- if (usb > 0) units.push({
7993
+ if (usb.usable > 0) units.push({
7955
7994
  bus: "usb",
7956
- count: usb
7995
+ count: usb.usable
7957
7996
  });
7958
7997
  if (pci.usable > 0) units.push({
7959
7998
  bus: "pci",
7960
7999
  count: pci.usable
7961
8000
  });
7962
8001
  const unavailable = [];
8002
+ if (usb.inaccessibleNodes.length > 0) unavailable.push({
8003
+ bus: "usb",
8004
+ count: usb.inaccessibleNodes.length,
8005
+ reason: "device-not-accessible"
8006
+ });
7963
8007
  if (pci.driverMissing > 0) unavailable.push({
7964
8008
  bus: "pci",
7965
8009
  count: pci.driverMissing,
@@ -7970,25 +8014,47 @@ function classifyCoralAccelerator(fsx, delegateHost = currentDelegateHost()) {
7970
8014
  count: pci.notAccessible,
7971
8015
  reason: "device-not-accessible"
7972
8016
  });
7973
- if (units.length > 0 || unavailable.length > 0) return unavailable.length > 0 ? {
7974
- type: "coral-edgetpu",
7975
- units,
7976
- unavailable
7977
- } : {
7978
- type: "coral-edgetpu",
7979
- units
7980
- };
7981
- if ((0, _camstack_types_node.chooseEdgetpuDelegate)({
8017
+ if (units.length > 0 || unavailable.length > 0) return {
8018
+ info: unavailable.length > 0 ? {
8019
+ type: "coral-edgetpu",
8020
+ units,
8021
+ unavailable
8022
+ } : {
8023
+ type: "coral-edgetpu",
8024
+ units
8025
+ },
8026
+ usbBus,
8027
+ decidedBy: usbSeen > 0 ? "usb-ids" : "pci",
8028
+ inaccessibleUsbNodes
8029
+ };
8030
+ if (usbBus === "unobservable" && (0, _camstack_types_node.chooseEdgetpuDelegate)({
7982
8031
  ...delegateHost,
7983
8032
  exists: (p) => fsx.exists(p)
7984
8033
  }) !== null) return {
7985
- type: "coral-edgetpu",
7986
- units: [{
7987
- bus: "usb",
7988
- count: 1
7989
- }]
8034
+ info: {
8035
+ type: "coral-edgetpu",
8036
+ units: [{
8037
+ bus: "usb",
8038
+ count: 1
8039
+ }]
8040
+ },
8041
+ usbBus,
8042
+ decidedBy: "delegate-fallback",
8043
+ inaccessibleUsbNodes
7990
8044
  };
7991
- return null;
8045
+ return {
8046
+ info: null,
8047
+ usbBus,
8048
+ decidedBy: "none",
8049
+ inaccessibleUsbNodes
8050
+ };
8051
+ }
8052
+ function safeListOrNull(dir) {
8053
+ try {
8054
+ return node_fs.default.readdirSync(dir);
8055
+ } catch {
8056
+ return null;
8057
+ }
7992
8058
  }
7993
8059
  function safeList(dir) {
7994
8060
  try {
@@ -8006,7 +8072,7 @@ function safeRead(path) {
8006
8072
  }
8007
8073
  /** The real filesystem view: `/sys` for enumeration, `/dev` for access. */
8008
8074
  var nodeCoralFs = {
8009
- listUsbDevices: () => safeList("/sys/bus/usb/devices"),
8075
+ listUsbDevices: () => safeListOrNull("/sys/bus/usb/devices"),
8010
8076
  readUsbAttr: (device, attr) => safeRead(`/sys/bus/usb/devices/${device}/${attr}`),
8011
8077
  listPciDevices: () => safeList("/sys/bus/pci/devices"),
8012
8078
  readPciAttr: (device, attr) => safeRead(`/sys/bus/pci/devices/${device}/${attr}`),
@@ -7869,14 +7869,34 @@ function currentDelegateHost() {
7869
7869
  override: process.env[EDGETPU_LIB_ENV]
7870
7870
  };
7871
7871
  }
7872
- function countUsbCorals(fsx) {
7873
- let count = 0;
7874
- for (const device of fsx.listUsbDevices()) {
7872
+ /** usbfs names a device `/dev/bus/usb/<busnum>/<devnum>`, each zero-padded to three digits. */
7873
+ function usbDeviceNode(device, fsx) {
7874
+ const bus = Number.parseInt(fsx.readUsbAttr(device, "busnum"), 10);
7875
+ const dev = Number.parseInt(fsx.readUsbAttr(device, "devnum"), 10);
7876
+ if (!Number.isInteger(bus) || !Number.isInteger(dev) || bus <= 0 || dev <= 0) return null;
7877
+ return `/dev/bus/usb/${String(bus).padStart(3, "0")}/${String(dev).padStart(3, "0")}`;
7878
+ }
7879
+ /**
7880
+ * USB units: sysfs is the HOST's view — a container whose `/dev/bus/usb`
7881
+ * mapping was removed still lists the stick under `/sys/bus/usb/devices`. A
7882
+ * listed Coral is usable only when its usbfs device node is in this process's
7883
+ * view AND opens read/write; otherwise it is present but not accessible.
7884
+ */
7885
+ function classifyUsb(devices, fsx) {
7886
+ let usable = 0;
7887
+ const inaccessibleNodes = [];
7888
+ for (const device of devices) {
7875
7889
  const vendor = fsx.readUsbAttr(device, "idVendor").toLowerCase();
7876
7890
  const product = fsx.readUsbAttr(device, "idProduct").toLowerCase();
7877
- if (CORAL_USB_IDS.some((id) => id.vendor === vendor && id.product === product)) count++;
7891
+ if (!CORAL_USB_IDS.some((id) => id.vendor === vendor && id.product === product)) continue;
7892
+ const node = usbDeviceNode(device, fsx);
7893
+ if (node !== null && fsx.exists(node) && fsx.canOpen(node)) usable++;
7894
+ else inaccessibleNodes.push(node ?? `/sys/bus/usb/devices/${device}`);
7878
7895
  }
7879
- return count;
7896
+ return {
7897
+ usable,
7898
+ inaccessibleNodes
7899
+ };
7880
7900
  }
7881
7901
  function countPciCorals(fsx) {
7882
7902
  let count = 0;
@@ -7910,32 +7930,56 @@ function classifyPci(fsx) {
7910
7930
  };
7911
7931
  }
7912
7932
  /**
7913
- * Detect Coral Edge TPUs on USB and PCIe/M.2.
7933
+ * Detect Coral Edge TPUs on USB and PCIe/M.2 — the answer only. See
7934
+ * {@link detectCoralAccelerator} for the evidence that decided it.
7935
+ */
7936
+ function classifyCoralAccelerator(fsx, delegateHost = currentDelegateHost()) {
7937
+ return detectCoralAccelerator(fsx, delegateHost).info;
7938
+ }
7939
+ /**
7940
+ * Detect Coral Edge TPUs on USB and PCIe/M.2, with the evidence that decided.
7914
7941
  *
7915
- * - USB: every matching USB device counts (multiple Corals run concurrently).
7942
+ * - USB: every matching USB device counts (multiple Corals run concurrently),
7943
+ * usable only if its `/dev/bus/usb/<BBB>/<DDD>` node opens read/write — a
7944
+ * listed stick whose node is missing or refused is `device-not-accessible`.
7916
7945
  * - PCIe: the apex driver's units, each usable only if its device node opens;
7917
7946
  * a Coral PCI function the driver did not bind is `driver-missing`.
7918
- * - Fallback: when NO Coral signal of either bus is visible but the libedgetpu
7919
- * delegate is installed (a container whose `/sys` USB view is limited), one
7920
- * USB Coral is assumed — never when a PCI Coral was seen, since the delegate
7921
- * then says nothing about USB.
7947
+ * - Fallback: when the USB bus is NOT OBSERVABLE (`/sys/bus/usb/devices`
7948
+ * missing, unreadable or empty — a macOS desktop, a restricted container)
7949
+ * and no PCI Coral was seen, an installed libedgetpu delegate means one USB
7950
+ * Coral is assumed. A bus that IS readable and lists no Coral id is the
7951
+ * answer: no USB Coral. The delegate stays installed after a stick is
7952
+ * unplugged or moved to another node, so it is evidence only where nothing
7953
+ * better exists (D919).
7922
7954
  *
7923
7955
  * Returns `null` only when no Coral was found at all; a present-but-unusable
7924
7956
  * Coral is reported with its typed reason, never as absent (D393/D315).
7925
7957
  */
7926
- function classifyCoralAccelerator(fsx, delegateHost = currentDelegateHost()) {
7927
- const usb = countUsbCorals(fsx);
7958
+ function detectCoralAccelerator(fsx, delegateHost = currentDelegateHost()) {
7959
+ const usbDevices = fsx.listUsbDevices();
7960
+ const usbBus = usbDevices !== null && usbDevices.length > 0 ? "observed" : "unobservable";
7961
+ const usb = usbDevices === null ? {
7962
+ usable: 0,
7963
+ inaccessibleNodes: []
7964
+ } : classifyUsb(usbDevices, fsx);
7965
+ const usbSeen = usb.usable + usb.inaccessibleNodes.length;
7966
+ const inaccessibleUsbNodes = usb.inaccessibleNodes;
7928
7967
  const pci = classifyPci(fsx);
7929
7968
  const units = [];
7930
- if (usb > 0) units.push({
7969
+ if (usb.usable > 0) units.push({
7931
7970
  bus: "usb",
7932
- count: usb
7971
+ count: usb.usable
7933
7972
  });
7934
7973
  if (pci.usable > 0) units.push({
7935
7974
  bus: "pci",
7936
7975
  count: pci.usable
7937
7976
  });
7938
7977
  const unavailable = [];
7978
+ if (usb.inaccessibleNodes.length > 0) unavailable.push({
7979
+ bus: "usb",
7980
+ count: usb.inaccessibleNodes.length,
7981
+ reason: "device-not-accessible"
7982
+ });
7939
7983
  if (pci.driverMissing > 0) unavailable.push({
7940
7984
  bus: "pci",
7941
7985
  count: pci.driverMissing,
@@ -7946,25 +7990,47 @@ function classifyCoralAccelerator(fsx, delegateHost = currentDelegateHost()) {
7946
7990
  count: pci.notAccessible,
7947
7991
  reason: "device-not-accessible"
7948
7992
  });
7949
- if (units.length > 0 || unavailable.length > 0) return unavailable.length > 0 ? {
7950
- type: "coral-edgetpu",
7951
- units,
7952
- unavailable
7953
- } : {
7954
- type: "coral-edgetpu",
7955
- units
7956
- };
7957
- if (chooseEdgetpuDelegate({
7993
+ if (units.length > 0 || unavailable.length > 0) return {
7994
+ info: unavailable.length > 0 ? {
7995
+ type: "coral-edgetpu",
7996
+ units,
7997
+ unavailable
7998
+ } : {
7999
+ type: "coral-edgetpu",
8000
+ units
8001
+ },
8002
+ usbBus,
8003
+ decidedBy: usbSeen > 0 ? "usb-ids" : "pci",
8004
+ inaccessibleUsbNodes
8005
+ };
8006
+ if (usbBus === "unobservable" && chooseEdgetpuDelegate({
7958
8007
  ...delegateHost,
7959
8008
  exists: (p) => fsx.exists(p)
7960
8009
  }) !== null) return {
7961
- type: "coral-edgetpu",
7962
- units: [{
7963
- bus: "usb",
7964
- count: 1
7965
- }]
8010
+ info: {
8011
+ type: "coral-edgetpu",
8012
+ units: [{
8013
+ bus: "usb",
8014
+ count: 1
8015
+ }]
8016
+ },
8017
+ usbBus,
8018
+ decidedBy: "delegate-fallback",
8019
+ inaccessibleUsbNodes
7966
8020
  };
7967
- return null;
8021
+ return {
8022
+ info: null,
8023
+ usbBus,
8024
+ decidedBy: "none",
8025
+ inaccessibleUsbNodes
8026
+ };
8027
+ }
8028
+ function safeListOrNull(dir) {
8029
+ try {
8030
+ return fs.readdirSync(dir);
8031
+ } catch {
8032
+ return null;
8033
+ }
7968
8034
  }
7969
8035
  function safeList(dir) {
7970
8036
  try {
@@ -7982,7 +8048,7 @@ function safeRead(path) {
7982
8048
  }
7983
8049
  /** The real filesystem view: `/sys` for enumeration, `/dev` for access. */
7984
8050
  var nodeCoralFs = {
7985
- listUsbDevices: () => safeList("/sys/bus/usb/devices"),
8051
+ listUsbDevices: () => safeListOrNull("/sys/bus/usb/devices"),
7986
8052
  readUsbAttr: (device, attr) => safeRead(`/sys/bus/usb/devices/${device}/${attr}`),
7987
8053
  listPciDevices: () => safeList("/sys/bus/pci/devices"),
7988
8054
  readPciAttr: (device, attr) => safeRead(`/sys/bus/pci/devices/${device}/${attr}`),
@@ -1,3 +1,3 @@
1
- import { C as isModelDownloaded, S as isModelDownloadHttpError, _ as downloadFile, a as startEventLoopStallMonitor, f as ModelDownloadService, g as deleteModelFromDisk, h as collectModelFiles, i as attributeStall, l as parseRangeHeader, m as adoptModelRevisions, n as STALL_REPORT_MS, o as createFileDataPlaneHandler, p as ModelDownloadHttpError, r as STALL_TICK_MS, s as contentTypeFor, t as CustomActionRegistry, w as resolveFormatRevision, x as getModelFilePath, y as ensureModel } from "./custom-action-registry-DZSCLBuT.mjs";
1
+ import { C as isModelDownloaded, S as isModelDownloadHttpError, _ as downloadFile, a as startEventLoopStallMonitor, f as ModelDownloadService, g as deleteModelFromDisk, h as collectModelFiles, i as attributeStall, l as parseRangeHeader, m as adoptModelRevisions, n as STALL_REPORT_MS, o as createFileDataPlaneHandler, p as ModelDownloadHttpError, r as STALL_TICK_MS, s as contentTypeFor, t as CustomActionRegistry, w as resolveFormatRevision, x as getModelFilePath, y as ensureModel } from "./custom-action-registry-BGYDjTqY.mjs";
2
2
  import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg, t as COURTESY_DEFAULT_WIDTH } from "./snapshot-courtesy-CyFs1M3I.mjs";
3
3
  export { COURTESY_DEFAULT_WIDTH, CustomActionRegistry, ModelDownloadHttpError, ModelDownloadService, STALL_REPORT_MS, STALL_TICK_MS, adoptModelRevisions, attributeStall, collectModelFiles, contentTypeFor, courtesyCacheKey, createFileDataPlaneHandler, deleteModelFromDisk, downloadFile, ensureModel, getModelFilePath, isModelDownloadHttpError, isModelDownloaded, parseRangeHeader, renderCourtesyJpeg, renderCourtesyOverlayJpeg, resolveFormatRevision, startEventLoopStallMonitor };
@@ -1,4 +1,4 @@
1
- import { Ki as defineRecordKinds } from "./dist-CtVVtyTX.mjs";
1
+ import { Ki as defineRecordKinds } from "./dist-5XUG7iYJ.mjs";
2
2
  import { S as backdatedNotBefore, _ as NameConstraints, a as KeyUsageFlags, c as Pkcs10CertificateRequest, d as SubjectKeyIdentifierExtension, f as X509Certificate$1, g as GeneralSubtrees, h as GeneralSubtree, i as Extension, l as Pkcs10CertificateRequestGenerator, m as cryptoProvider, n as BasicConstraintsExtension, o as KeyUsagesExtension, p as X509CertificateGenerator, r as ExtendedKeyUsageExtension, s as PemConverter, t as AuthorityKeyIdentifierExtension, u as SubjectAlternativeNameExtension, v as GeneralName, x as AsnConvert } from "./x509.es-DK__ETIe.mjs";
3
3
  import { z } from "zod";
4
4
  import { X509Certificate, createHash, createPrivateKey, randomBytes, webcrypto } from "node:crypto";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-DuBtzSCh.js");
2
+ const require_dist = require("./dist-BjcWEfRy.js");
3
3
  const require_x509_es = require("./x509.es-C4cOo48M.js");
4
4
  let zod = require("zod");
5
5
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import type { RecordKindHandle, SettingsStoreClient, TokenScope, UserRecord } from "@camstack/types";
1
+ import type { RecordKindHandle, SettingsStoreClient, UserRecord, UserScope } from "@camstack/types";
2
2
  import type { AuthManager } from "./auth-manager.js";
3
3
  import type { UserBody } from "../builtins/local-auth/record-kinds.js";
4
4
  export type { UserRecord };
@@ -8,7 +8,7 @@ interface CreateUserInput {
8
8
  isAdmin?: boolean;
9
9
  allowedProviders?: string[] | "*";
10
10
  allowedDevices?: Record<string, string[] | "*">;
11
- scopes?: TokenScope[];
11
+ scopes?: UserScope[];
12
12
  }
13
13
  type UpdatableUserFields = Partial<Pick<UserRecord, "isAdmin" | "allowedProviders" | "allowedDevices" | "scopes">>;
14
14
  /**
@@ -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-DuBtzSCh.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let node_path = require("node:path");
@@ -1,8 +1,8 @@
1
- import { $r as errMsg, Da as EventCategory, _t as addonPagesCapability, ei as BaseAddon } from "../../dist-CtVVtyTX.mjs";
1
+ import { $r as errMsg, Da as EventCategory, _t as addonPagesCapability, ei as BaseAddon } from "../../dist-5XUG7iYJ.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import * as path$1 from "node:path";
5
- import * as fs$1 from "node:fs";
5
+ import * as fs from "node:fs";
6
6
  //#region src/builtins/addon-pages-aggregator/dedupe-pages.ts
7
7
  /** Stable identity for an addon page, independent of which node reported it. */
8
8
  function pageKey(info) {
@@ -211,11 +211,11 @@ var AddonPagesAggregatorAddon = class extends BaseAddon {
211
211
  const bundlePath = this.resolveBundlePath(addonId, bundle);
212
212
  if (bundlePath === null) return `/api/addon-pages/${addonId}/${bundle}?v=${Math.floor(Date.now())}`;
213
213
  try {
214
- const stat = fs$1.statSync(bundlePath);
214
+ const stat = fs.statSync(bundlePath);
215
215
  const cacheKey = `${bundlePath}:${stat.size}:${stat.mtimeMs}`;
216
216
  let v = this.bundleHashCache.get(cacheKey);
217
217
  if (v === void 0) {
218
- v = createHash("sha1").update(fs$1.readFileSync(bundlePath)).digest("hex").slice(0, 12);
218
+ v = createHash("sha1").update(fs.readFileSync(bundlePath)).digest("hex").slice(0, 12);
219
219
  this.bundleHashCache.set(cacheKey, v);
220
220
  }
221
221
  return `/api/addon-pages/${addonId}/${bundle}?v=${v}`;
@@ -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-DuBtzSCh.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let node_path = require("node:path");
@@ -1,8 +1,8 @@
1
- import { $r as errMsg, Da as EventCategory, ei as BaseAddon, yt as addonWidgetsCapability } from "../../dist-CtVVtyTX.mjs";
1
+ import { $r as errMsg, Da as EventCategory, ei as BaseAddon, yt as addonWidgetsCapability } from "../../dist-5XUG7iYJ.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import * as path$1 from "node:path";
5
- import * as fs$1 from "node:fs";
5
+ import * as fs from "node:fs";
6
6
  //#region src/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.ts
7
7
  /**
8
8
  * Addon Widgets Aggregator — hub-local builtin that owns the singleton
@@ -204,9 +204,9 @@ var AddonWidgetsAggregatorAddon = class extends BaseAddon {
204
204
  if (entryPath === null) return String(Math.floor(Date.now()));
205
205
  try {
206
206
  const dir = path$1.dirname(entryPath);
207
- const files = fs$1.readdirSync(dir).filter((f) => fs$1.statSync(path$1.join(dir, f)).isFile()).sort();
207
+ const files = fs.readdirSync(dir).filter((f) => fs.statSync(path$1.join(dir, f)).isFile()).sort();
208
208
  const cacheKey = `${dir}#${files.map((f) => {
209
- const s = fs$1.statSync(path$1.join(dir, f));
209
+ const s = fs.statSync(path$1.join(dir, f));
210
210
  return `${f}:${s.size}:${s.mtimeMs}`;
211
211
  }).join("|")}`;
212
212
  const cached = this.bundleHashCache.get(cacheKey);
@@ -214,7 +214,7 @@ var AddonWidgetsAggregatorAddon = class extends BaseAddon {
214
214
  const hash = createHash("sha1");
215
215
  for (const f of files) {
216
216
  hash.update(f);
217
- hash.update(fs$1.readFileSync(path$1.join(dir, f)));
217
+ hash.update(fs.readFileSync(path$1.join(dir, f)));
218
218
  }
219
219
  const digest = hash.digest("hex").slice(0, 12);
220
220
  this.bundleHashCache.set(cacheKey, digest);
@@ -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-DuBtzSCh.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.js");
7
7
  const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
8
8
  //#region src/builtins/alerts/alert-episode-policy.ts
9
9
  /**
@@ -1,4 +1,4 @@
1
- import { $r as errMsg, Da as EventCategory, Ki as defineRecordKinds, St as alertsCapability, Ui as createEvent, bn as isAlertEpisodeSeverity, bt as alertEpisodeId, ei as BaseAddon, i as AlertSchema, xt as alertEpisodePayload, yn as isAlertEpisodeOpen } from "../../dist-CtVVtyTX.mjs";
1
+ import { $r as errMsg, Da as EventCategory, Ki as defineRecordKinds, St as alertsCapability, Ui as createEvent, bn as isAlertEpisodeSeverity, bt as alertEpisodeId, ei as BaseAddon, i as AlertSchema, xt as alertEpisodePayload, yn as isAlertEpisodeOpen } from "../../dist-5XUG7iYJ.mjs";
2
2
  import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
3
3
  //#region src/builtins/alerts/alert-episode-policy.ts
4
4
  /**
@@ -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-DuBtzSCh.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.js");
7
7
  //#region src/builtins/autotrack/autotrack-config.ts
8
8
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
9
9
  deadZoneFraction: .5,
@@ -1,4 +1,4 @@
1
- import { $r as errMsg, Da as EventCategory, Et as bareAddonId, I as FIRST_LEVEL_MACRO_CLASSES, ea as isEvent, ei as BaseAddon, tr as ptzAutotrackCapability } from "../../dist-CtVVtyTX.mjs";
1
+ import { $r as errMsg, Da as EventCategory, Et as bareAddonId, I as FIRST_LEVEL_MACRO_CLASSES, ea as isEvent, ei as BaseAddon, tr as ptzAutotrackCapability } from "../../dist-5XUG7iYJ.mjs";
2
2
  //#region src/builtins/autotrack/autotrack-config.ts
3
3
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
4
4
  deadZoneFraction: .5,
@@ -3,9 +3,9 @@ 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-DuBtzSCh.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.js");
7
7
  const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
8
- const require_restore_archive = require("../../restore-archive-CxPAuaNs.js");
8
+ const require_restore_archive = require("../../restore-archive-B64m2nAj.js");
9
9
  let node_crypto = require("node:crypto");
10
10
  let node_fs_promises = require("node:fs/promises");
11
11
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -1,10 +1,10 @@
1
- import { Da as EventCategory, Er as storageOccupancyCapability, Sa as toNodeId, Tt as backupCapability, Vn as mayWriteToLocation, ca as nodePin, ei as BaseAddon } from "../../dist-CtVVtyTX.mjs";
1
+ import { Da as EventCategory, Er as storageOccupancyCapability, Sa as toNodeId, Tt as backupCapability, Vn as mayWriteToLocation, ca as nodePin, ei as BaseAddon } from "../../dist-5XUG7iYJ.mjs";
2
2
  import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
3
- import { _ as backupRecordStoresOf, a as BackupSnapshotRefusedError, d as ENCRYPTED_BACKUP_SUFFIX, f as generateBackupKeyPair, g as backupOrchestratorRecordKinds, i as BackupCancelledError, l as BackupKeyFormatError, m as parseBackupSecretKey, n as precheckRestoreKey, o as DEFAULT_BACKUP_DATABASES, p as parseBackupPublicKey, r as prepareRestoreArchive, s as SystemBackupService } from "../../restore-archive-D2w3z_ob.mjs";
3
+ import { _ as backupRecordStoresOf, a as BackupSnapshotRefusedError, d as ENCRYPTED_BACKUP_SUFFIX, f as generateBackupKeyPair, g as backupOrchestratorRecordKinds, i as BackupCancelledError, l as BackupKeyFormatError, m as parseBackupSecretKey, n as precheckRestoreKey, o as DEFAULT_BACKUP_DATABASES, p as parseBackupPublicKey, r as prepareRestoreArchive, s as SystemBackupService } from "../../restore-archive-CN1pJTRn.mjs";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import * as fsp from "node:fs/promises";
6
6
  import * as path$1 from "node:path";
7
- import * as fs$1 from "node:fs";
7
+ import * as fs from "node:fs";
8
8
  //#region src/builtins/backup-orchestrator/backup-databases.ts
9
9
  /** Stable id of the seeded weekly schedule. */
10
10
  var WEEKLY_SCHEDULE_ID = "weekly-events-history";
@@ -1018,7 +1018,7 @@ async function downloadArchiveToCache(input) {
1018
1018
  location: input.locationId,
1019
1019
  relativePath: input.filename
1020
1020
  });
1021
- const writeStream = fs$1.createWriteStream(input.cachePath);
1021
+ const writeStream = fs.createWriteStream(input.cachePath);
1022
1022
  let offset = 0;
1023
1023
  try {
1024
1024
  while (offset < sizeBytes) {
@@ -2502,7 +2502,7 @@ var BackupOrchestratorAddon = class extends BaseAddon {
2502
2502
  });
2503
2503
  try {
2504
2504
  let offset = 0;
2505
- const stream = fs$1.createReadStream(input.cachePath, { highWaterMark: UPLOAD_CHUNK_BYTES });
2505
+ const stream = fs.createReadStream(input.cachePath, { highWaterMark: UPLOAD_CHUNK_BYTES });
2506
2506
  for await (const rawChunk of stream) {
2507
2507
  if (input.signal?.aborted) {
2508
2508
  stream.destroy();
@@ -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-DuBtzSCh.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let zod = require("zod");
9
9
  //#region src/builtins/calendars/calendar-color.ts
@@ -1,4 +1,4 @@
1
- import { Ki as defineRecordKinds, Mt as calendarsCapability, ei as BaseAddon, g as CalendarPreferencesSchema } from "../../dist-CtVVtyTX.mjs";
1
+ import { Ki as defineRecordKinds, Mt as calendarsCapability, ei as BaseAddon, g as CalendarPreferencesSchema } from "../../dist-5XUG7iYJ.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/builtins/calendars/calendar-color.ts
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DuBtzSCh.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.js");
7
7
  let zod = require("zod");
8
8
  let _camstack_types_node = require("@camstack/types/node");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { $r as errMsg, Da as EventCategory, Gn as motionCapability, Hn as memoizePinnedFfmpeg, N as DeclaredDevices, Nt as cameraGridLayoutCapability, Or as streamCatalogCapability, Qi as hydrateSchema, Qr as DeviceType, T as DERIVED_CAMERA_SILENCED_CAP_NAMES, Ui as createEvent, X as MOTION_CLOSE_AFTER_MS, Xr as DeviceFeature, a as BaseDevice, ei as BaseAddon, qt as declarationOwnerNodeId, xr as snapshotCapability, zr as buildFfmpegArgs } from "../../dist-CtVVtyTX.mjs";
1
+ import { $r as errMsg, Da as EventCategory, Gn as motionCapability, Hn as memoizePinnedFfmpeg, N as DeclaredDevices, Nt as cameraGridLayoutCapability, Or as streamCatalogCapability, Qi as hydrateSchema, Qr as DeviceType, T as DERIVED_CAMERA_SILENCED_CAP_NAMES, Ui as createEvent, X as MOTION_CLOSE_AFTER_MS, Xr as DeviceFeature, a as BaseDevice, ei as BaseAddon, qt as declarationOwnerNodeId, xr as snapshotCapability, zr as buildFfmpegArgs } from "../../dist-5XUG7iYJ.mjs";
2
2
  import { z } from "zod";
3
3
  import { FfmpegProcess } from "@camstack/types/node";
4
4
  import { join } from "node:path";
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DuBtzSCh.js");
7
- const require_composition_sources = require("../../composition-sources-BGXTiUZm.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.js");
7
+ const require_composition_sources = require("../../composition-sources-B5uJZXZ1.js");
8
8
  let zod = require("zod");
9
9
  //#region src/builtins/shared/device-state-changed.ts
10
10
  /** Structural narrowing helper for untrusted bus payloads. */
@@ -1,5 +1,5 @@
1
- import { $r as errMsg, Br as cloneStatefulExpressionMemory, Da as EventCategory, Gr as compositionSliceKey, Hr as composedDeviceStableId, It as composerCapability, Jr as disarmRoseMemory, Kr as compositionSourceKey, Lt as compositionFieldKey, N as DeclaredDevices, Ot as buildCapabilityLookup, Qn as planComposition, Qr as DeviceType, Rr as COMPOSER_ADDON_ID, Ui as createEvent, Ur as compositionFeatureEnabled, Vr as composedDeviceRef, Wr as compositionItemFieldPath, Yr as toExpressionValue, a as BaseDevice, cn as evaluateCompositionField, d as COMPOSED_ITEM_FIXED_FIELDS, dn as expressionContainsBuiltinCall, ei as BaseAddon, qr as createStatefulExpressionMemory, r as ALL_CAPABILITY_DEFINITIONS } from "../../dist-CtVVtyTX.mjs";
2
- import { n as normalizedNativeOwner } from "../../composition-sources-DTdzzyf0.mjs";
1
+ import { $r as errMsg, Br as cloneStatefulExpressionMemory, Da as EventCategory, Gr as compositionSliceKey, Hr as composedDeviceStableId, It as composerCapability, Jr as disarmRoseMemory, Kr as compositionSourceKey, Lt as compositionFieldKey, N as DeclaredDevices, Ot as buildCapabilityLookup, Qn as planComposition, Qr as DeviceType, Rr as COMPOSER_ADDON_ID, Ui as createEvent, Ur as compositionFeatureEnabled, Vr as composedDeviceRef, Wr as compositionItemFieldPath, Yr as toExpressionValue, a as BaseDevice, cn as evaluateCompositionField, d as COMPOSED_ITEM_FIXED_FIELDS, dn as expressionContainsBuiltinCall, ei as BaseAddon, qr as createStatefulExpressionMemory, r as ALL_CAPABILITY_DEFINITIONS } from "../../dist-5XUG7iYJ.mjs";
2
+ import { n as normalizedNativeOwner } from "../../composition-sources-DRw_vBKH.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/builtins/shared/device-state-changed.ts
5
5
  /** Structural narrowing helper for untrusted bus payloads. */
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DuBtzSCh.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.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 { Ln as logDestinationCapability, ei as BaseAddon } from "../../dist-CtVVtyTX.mjs";
1
+ import { Ln as logDestinationCapability, ei as BaseAddon } from "../../dist-5XUG7iYJ.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 = {