@camstack/system 1.2.391 → 1.2.393

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 (84) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/addon-utils.js +1 -1
  4. package/dist/addon-utils.mjs +1 -1
  5. package/dist/amd-accelerators-CEuPFBBK.js +36 -0
  6. package/dist/amd-accelerators-U_RsoEDd.mjs +35 -0
  7. package/dist/amd-npu-B-QyyMyF.js +53 -0
  8. package/dist/amd-npu-Db_SoSuL.mjs +52 -0
  9. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  10. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  11. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  12. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  13. package/dist/builtins/alerts/alerts.addon.js +1 -1
  14. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  15. package/dist/builtins/autotrack/index.js +1 -1
  16. package/dist/builtins/autotrack/index.mjs +1 -1
  17. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  18. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
  19. package/dist/builtins/calendars/calendars.addon.js +1 -1
  20. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  21. package/dist/builtins/camera-grid/index.js +1 -1
  22. package/dist/builtins/camera-grid/index.mjs +1 -1
  23. package/dist/builtins/composer/composer.addon.js +2 -2
  24. package/dist/builtins/composer/composer.addon.mjs +2 -2
  25. package/dist/builtins/console-logging/index.js +1 -1
  26. package/dist/builtins/console-logging/index.mjs +1 -1
  27. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  28. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  29. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  30. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  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 +2 -2
  39. package/dist/builtins/local-network/local-network.addon.js +1 -1
  40. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  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 +1 -1
  45. package/dist/builtins/platform-probe/amd-accelerators.d.ts +15 -0
  46. package/dist/builtins/platform-probe/amd-npu.d.ts +29 -0
  47. package/dist/builtins/platform-probe/index.js +59 -22
  48. package/dist/builtins/platform-probe/index.mjs +59 -22
  49. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  50. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  51. package/dist/builtins/snapshot/index.js +1 -1
  52. package/dist/builtins/snapshot/index.mjs +1 -1
  53. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  54. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  55. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  56. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  57. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  58. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  59. package/dist/builtins/system-config/system-config.addon.js +2 -2
  60. package/dist/builtins/system-config/system-config.addon.mjs +2 -2
  61. package/dist/builtins/winston-logging/index.js +1 -1
  62. package/dist/builtins/winston-logging/index.mjs +1 -1
  63. package/dist/{child-cap-dispatch-mHO_6r0G.mjs → child-cap-dispatch-BmNpRe0Y.mjs} +12 -7
  64. package/dist/{child-cap-dispatch-Bnr8brru.js → child-cap-dispatch-jQ61bSnU.js} +12 -7
  65. package/dist/{composition-sources-xqhm2Ygr.mjs → composition-sources-CmcKAYMz.mjs} +1 -1
  66. package/dist/{composition-sources-wdAxs-uY.js → composition-sources-YkkhpPDx.js} +1 -1
  67. package/dist/{constants-D5z4EwY8.mjs → constants-Ca1v1Sdn.mjs} +1 -1
  68. package/dist/{constants-Ca-Sgcl8.js → constants-DyC3WyXE.js} +1 -1
  69. package/dist/{dist-Biqn3TEn.mjs → dist-BIc6o_mz.mjs} +126 -2
  70. package/dist/{dist-8LQ4lDEB.js → dist-D_jdr1G9.js} +131 -1
  71. package/dist/{event-loop-stall-monitor-CNj73d4D.js → event-loop-stall-monitor-DXZb28pF.js} +1 -1
  72. package/dist/{event-loop-stall-monitor-BtK_0Pjc.mjs → event-loop-stall-monitor-r2ZBISpC.mjs} +1 -1
  73. package/dist/index.js +54 -6
  74. package/dist/index.mjs +54 -7
  75. package/dist/{jwt-signing-key-SnDgvVUQ.mjs → jwt-signing-key-BtfOMVyB.mjs} +1 -1
  76. package/dist/{jwt-signing-key-DxV2ucvJ.js → jwt-signing-key-CQHHsrOf.js} +1 -1
  77. package/dist/kernel/index.d.ts +1 -0
  78. package/dist/kernel/inference/inference-resolver.d.ts +10 -5
  79. package/dist/kernel/inference/local-python-runtimes.d.ts +2 -0
  80. package/dist/{restore-archive-Do_Yu5rC.js → restore-archive-BQSveGIo.js} +1 -1
  81. package/dist/{restore-archive-D4cmLoNe.mjs → restore-archive-CKcdqHk5.mjs} +1 -1
  82. package/dist/{retired-settings-keys-BsgVxh8-.mjs → retired-settings-keys-5x91Vz3i.mjs} +1 -1
  83. package/dist/{retired-settings-keys-Cyn3OD0K.js → retired-settings-keys-DoY1sb0U.js} +1 -1
  84. package/package.json +1 -1
@@ -0,0 +1,29 @@
1
+ import type { NpuInfo } from "@camstack/types";
2
+ /**
3
+ * Filesystem seam for AMD XDNA NPU detection. Sysfs under
4
+ * /sys/class/accel/accelN/device/{vendor,device} names the PCI ids; the
5
+ * char device is /dev/accel/accelN.
6
+ */
7
+ export interface AmdNpuFs {
8
+ listDir(path: string): readonly string[];
9
+ exists(path: string): boolean;
10
+ /** Read a sysfs attribute; empty string when missing. */
11
+ readFile(path: string): string;
12
+ }
13
+ export interface AmdNpuContext {
14
+ readonly platform: "darwin" | "linux" | "win32";
15
+ readonly arch: "arm64" | "x64";
16
+ /**
17
+ * True when an AMD CPU or AMD iGPU is present. A stray accel node on a
18
+ * non-AMD host must not be reported as XDNA.
19
+ */
20
+ readonly amdPresent: boolean;
21
+ }
22
+ /**
23
+ * Detect an AMD XDNA NPU and report it as **present only**.
24
+ *
25
+ * Inference is NOT offered until P2 (Ryzen AI on Linux is Strix-first;
26
+ * Phoenix is not a production path today). The probe still names the
27
+ * generation so the UI and fleet census can show the hardware.
28
+ */
29
+ export declare function classifyAmdNpu(ctx: AmdNpuContext, fsx: AmdNpuFs): NpuInfo | null;
@@ -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-8LQ4lDEB.js");
6
+ const require_dist = require("../../dist-D_jdr1G9.js");
7
7
  let node_os = require("node:os");
8
8
  node_os = require_chunk.__toESM(node_os);
9
9
  let node_fs = require("node:fs");
@@ -255,27 +255,47 @@ var PlatformScorer = class {
255
255
  } catch (err) {
256
256
  this.logger.debug("NVIDIA GPU detection failed", { meta: { error: require_dist.errMsg(err) } });
257
257
  }
258
+ const listRenderNodes = () => {
259
+ try {
260
+ return node_fs.readdirSync("/dev/dri").filter((n) => n.startsWith("renderD")).map((n) => `/dev/dri/${n}`);
261
+ } catch {
262
+ return [];
263
+ }
264
+ };
265
+ const readDrmAttr = (node, attr) => {
266
+ try {
267
+ return node_fs.readFileSync(`/sys/class/drm/${node.split("/").pop()}/device/${attr}`, "utf8");
268
+ } catch {
269
+ return "";
270
+ }
271
+ };
258
272
  if (!gpu) {
259
273
  const { classifyIntelAccelerators } = await Promise.resolve().then(() => require("../../intel-accelerators-BvBjZn4j.js"));
260
274
  const intel = classifyIntelAccelerators({
261
- listRenderNodes: () => {
262
- try {
263
- return node_fs.readdirSync("/dev/dri").filter((n) => n.startsWith("renderD")).map((n) => `/dev/dri/${n}`);
264
- } catch {
265
- return [];
266
- }
267
- },
268
- readVendor: (node) => {
269
- try {
270
- return node_fs.readFileSync(`/sys/class/drm/${node.split("/").pop()}/device/vendor`, "utf8");
271
- } catch {
272
- return "";
273
- }
274
- }
275
+ listRenderNodes,
276
+ readVendor: (node) => readDrmAttr(node, "vendor")
275
277
  });
276
278
  gpu = gpu ?? intel.gpu;
277
279
  if (intel.gpu) this.logger.info("Intel iGPU detected", { meta: { name: intel.gpu.name } });
278
280
  }
281
+ if (!gpu) {
282
+ const { classifyAmdAccelerators } = await Promise.resolve().then(() => require("../../amd-accelerators-CEuPFBBK.js"));
283
+ const amd = classifyAmdAccelerators({
284
+ listRenderNodes,
285
+ readVendor: (node) => readDrmAttr(node, "vendor"),
286
+ readDevice: (node) => readDrmAttr(node, "device")
287
+ });
288
+ gpu = gpu ?? amd.gpu;
289
+ if (amd.gpu) this.logger.info("AMD iGPU detected", { meta: { name: amd.gpu.name } });
290
+ }
291
+ const listDir = (p) => {
292
+ try {
293
+ return node_fs.readdirSync(p);
294
+ } catch {
295
+ return [];
296
+ }
297
+ };
298
+ const exists = (p) => node_fs.existsSync(p);
279
299
  if (!npu) {
280
300
  const { classifyIntelNpu } = await Promise.resolve().then(() => require("../../intel-npu-DYF5hO5K.js"));
281
301
  npu = classifyIntelNpu({
@@ -283,19 +303,36 @@ var PlatformScorer = class {
283
303
  arch,
284
304
  intelPresent: gpu?.type === "intel" || /intel/i.test(cpuModel)
285
305
  }, {
286
- listDir: (p) => {
306
+ listDir,
307
+ exists
308
+ });
309
+ if (npu) this.logger.info("Intel NPU detected", { meta: {
310
+ type: npu.type,
311
+ name: npu.name,
312
+ device: "/dev/accel/accel*"
313
+ } });
314
+ }
315
+ if (!npu) {
316
+ const { classifyAmdNpu } = await Promise.resolve().then(() => require("../../amd-npu-B-QyyMyF.js"));
317
+ npu = classifyAmdNpu({
318
+ platform,
319
+ arch,
320
+ amdPresent: gpu?.type === "amd" || /amd|ryzen/i.test(cpuModel)
321
+ }, {
322
+ listDir,
323
+ exists,
324
+ readFile: (p) => {
287
325
  try {
288
- return node_fs.readdirSync(p);
326
+ return node_fs.readFileSync(p, "utf8");
289
327
  } catch {
290
- return [];
328
+ return "";
291
329
  }
292
- },
293
- exists: (p) => node_fs.existsSync(p)
330
+ }
294
331
  });
295
- if (npu) this.logger.info("Intel NPU detected", { meta: {
332
+ if (npu) this.logger.info("AMD XDNA NPU detected (present only)", { meta: {
296
333
  type: npu.type,
297
334
  name: npu.name,
298
- device: "/dev/accel/accel*"
335
+ generation: npu.generation
299
336
  } });
300
337
  }
301
338
  }
@@ -1,5 +1,5 @@
1
1
  import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
2
- import { hn as platformProbeCapability, jn as scoreRuntimes, kr as emitReadiness, lr as errMsg, ni as EventCategory, ur as BaseAddon, wt as enumerateInferenceDevices } from "../../dist-Biqn3TEn.mjs";
2
+ import { Ar as emitReadiness, dr as BaseAddon, hn as platformProbeCapability, jn as scoreRuntimes, ri as EventCategory, ur as errMsg, wt as enumerateInferenceDevices } from "../../dist-BIc6o_mz.mjs";
3
3
  import * as os from "node:os";
4
4
  import * as fs from "node:fs";
5
5
  import { execFile } from "node:child_process";
@@ -249,27 +249,47 @@ var PlatformScorer = class {
249
249
  } catch (err) {
250
250
  this.logger.debug("NVIDIA GPU detection failed", { meta: { error: errMsg(err) } });
251
251
  }
252
+ const listRenderNodes = () => {
253
+ try {
254
+ return fs.readdirSync("/dev/dri").filter((n) => n.startsWith("renderD")).map((n) => `/dev/dri/${n}`);
255
+ } catch {
256
+ return [];
257
+ }
258
+ };
259
+ const readDrmAttr = (node, attr) => {
260
+ try {
261
+ return fs.readFileSync(`/sys/class/drm/${node.split("/").pop()}/device/${attr}`, "utf8");
262
+ } catch {
263
+ return "";
264
+ }
265
+ };
252
266
  if (!gpu) {
253
267
  const { classifyIntelAccelerators } = await import("../../intel-accelerators-idEumqk1.mjs");
254
268
  const intel = classifyIntelAccelerators({
255
- listRenderNodes: () => {
256
- try {
257
- return fs.readdirSync("/dev/dri").filter((n) => n.startsWith("renderD")).map((n) => `/dev/dri/${n}`);
258
- } catch {
259
- return [];
260
- }
261
- },
262
- readVendor: (node) => {
263
- try {
264
- return fs.readFileSync(`/sys/class/drm/${node.split("/").pop()}/device/vendor`, "utf8");
265
- } catch {
266
- return "";
267
- }
268
- }
269
+ listRenderNodes,
270
+ readVendor: (node) => readDrmAttr(node, "vendor")
269
271
  });
270
272
  gpu = gpu ?? intel.gpu;
271
273
  if (intel.gpu) this.logger.info("Intel iGPU detected", { meta: { name: intel.gpu.name } });
272
274
  }
275
+ if (!gpu) {
276
+ const { classifyAmdAccelerators } = await import("../../amd-accelerators-U_RsoEDd.mjs");
277
+ const amd = classifyAmdAccelerators({
278
+ listRenderNodes,
279
+ readVendor: (node) => readDrmAttr(node, "vendor"),
280
+ readDevice: (node) => readDrmAttr(node, "device")
281
+ });
282
+ gpu = gpu ?? amd.gpu;
283
+ if (amd.gpu) this.logger.info("AMD iGPU detected", { meta: { name: amd.gpu.name } });
284
+ }
285
+ const listDir = (p) => {
286
+ try {
287
+ return fs.readdirSync(p);
288
+ } catch {
289
+ return [];
290
+ }
291
+ };
292
+ const exists = (p) => fs.existsSync(p);
273
293
  if (!npu) {
274
294
  const { classifyIntelNpu } = await import("../../intel-npu-C8HKvRQF.mjs");
275
295
  npu = classifyIntelNpu({
@@ -277,19 +297,36 @@ var PlatformScorer = class {
277
297
  arch,
278
298
  intelPresent: gpu?.type === "intel" || /intel/i.test(cpuModel)
279
299
  }, {
280
- listDir: (p) => {
300
+ listDir,
301
+ exists
302
+ });
303
+ if (npu) this.logger.info("Intel NPU detected", { meta: {
304
+ type: npu.type,
305
+ name: npu.name,
306
+ device: "/dev/accel/accel*"
307
+ } });
308
+ }
309
+ if (!npu) {
310
+ const { classifyAmdNpu } = await import("../../amd-npu-Db_SoSuL.mjs");
311
+ npu = classifyAmdNpu({
312
+ platform,
313
+ arch,
314
+ amdPresent: gpu?.type === "amd" || /amd|ryzen/i.test(cpuModel)
315
+ }, {
316
+ listDir,
317
+ exists,
318
+ readFile: (p) => {
281
319
  try {
282
- return fs.readdirSync(p);
320
+ return fs.readFileSync(p, "utf8");
283
321
  } catch {
284
- return [];
322
+ return "";
285
323
  }
286
- },
287
- exists: (p) => fs.existsSync(p)
324
+ }
288
325
  });
289
- if (npu) this.logger.info("Intel NPU detected", { meta: {
326
+ if (npu) this.logger.info("AMD XDNA NPU detected (present only)", { meta: {
290
327
  type: npu.type,
291
328
  name: npu.name,
292
- device: "/dev/accel/accel*"
329
+ generation: npu.generation
293
330
  } });
294
331
  }
295
332
  }
@@ -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-8LQ4lDEB.js");
6
+ const require_dist = require("../../dist-D_jdr1G9.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 { ni as EventCategory, ur as BaseAddon } from "../../dist-Biqn3TEn.mjs";
1
+ import { dr as BaseAddon, ri as EventCategory } from "../../dist-BIc6o_mz.mjs";
2
2
  //#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
3
3
  /**
4
4
  * Reconcile the durable `enabledProviders` set against authoritative
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-8LQ4lDEB.js");
6
+ const require_dist = require("../../dist-D_jdr1G9.js");
7
7
  const require_snapshot_courtesy = require("../../snapshot-courtesy-D_C5-nC0.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { Bn as streamQualityLabel, Br as nodePin, Pn as snapshotCapability, Q as batteryCapability, Z as bareAddonId, a as BatteryStatusSchema, cr as DeviceType, in as memoizePinnedFfmpeg, lr as errMsg, ni as EventCategory, or as DeviceFeature, ur as BaseAddon, vt as deriveBatteryPresence } from "../../dist-Biqn3TEn.mjs";
1
+ import { Bn as streamQualityLabel, Pn as snapshotCapability, Q as batteryCapability, Vr as nodePin, Z as bareAddonId, a as BatteryStatusSchema, dr as BaseAddon, in as memoizePinnedFfmpeg, lr as DeviceType, ri as EventCategory, sr as DeviceFeature, ur as errMsg, vt as deriveBatteryPresence } from "../../dist-BIc6o_mz.mjs";
2
2
  import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-CyFs1M3I.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-8LQ4lDEB.js");
6
+ const require_dist = require("../../dist-D_jdr1G9.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let node_fs_promises = require("node:fs/promises");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Mt as filesystemBrowseCapability, Rn as storageProviderCapability, ur as BaseAddon } from "../../dist-Biqn3TEn.mjs";
1
+ import { Mt as filesystemBrowseCapability, Rn as storageProviderCapability, dr as BaseAddon } from "../../dist-BIc6o_mz.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { mkdir, readdir, realpath, statfs } from "node:fs/promises";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-8LQ4lDEB.js");
6
+ const require_dist = require("../../dist-D_jdr1G9.js");
7
7
  const require_hub_cap_forward = require("../../hub-cap-forward-W8oEm4ME.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { B as StorageCleanupJobSchema, Cr as collectSecretConfigKeys, Fn as storageCapability, Ft as gbToBytes, H as StorageLocationTypeSchema, Hr as parseJsonObject, In as storageMigrationCapability, Jt as legacyModeOf, Lr as isSecretMarker, Mn as settingsStoreCapability, O as LegacyStorageLocationDefaultSchema, Ot as evictionPolicyOfLocation, Tn as resolveLocationMode, U as StorageMigrationJobSchema, V as StorageLocationModeSchema, Vt as isLocationEnabled, Xr as secretTreeFromPaths, mr as REDACTED_SECRET, ni as EventCategory, nn as mayReadLocation, on as modeMayWrite, qn as withLocationMode, qr as resolveSecretMarkers, rn as mayWriteToLocation, ti as transformSecretWrite, ur as BaseAddon } from "../../dist-Biqn3TEn.mjs";
1
+ import { B as StorageCleanupJobSchema, Fn as storageCapability, Ft as gbToBytes, H as StorageLocationTypeSchema, In as storageMigrationCapability, Jn as withLocationMode, Jr as resolveSecretMarkers, Jt as legacyModeOf, Mn as settingsStoreCapability, O as LegacyStorageLocationDefaultSchema, Ot as evictionPolicyOfLocation, Rr as isSecretMarker, Tn as resolveLocationMode, U as StorageMigrationJobSchema, Ur as parseJsonObject, V as StorageLocationModeSchema, Vt as isLocationEnabled, Zr as secretTreeFromPaths, dr as BaseAddon, hr as REDACTED_SECRET, ni as transformSecretWrite, nn as mayReadLocation, on as modeMayWrite, ri as EventCategory, rn as mayWriteToLocation, wr as collectSecretConfigKeys } from "../../dist-BIc6o_mz.mjs";
2
2
  import { t as HUB_CAP_FWD_ACTION } from "../../hub-cap-forward-CDiN1p98.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
@@ -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-8LQ4lDEB.js");
6
+ const require_dist = require("../../dist-D_jdr1G9.js");
7
7
  const require_ms$1 = require("../../ms-t68_FaqE.js");
8
- const require_constants$8 = require("../../constants-Ca-Sgcl8.js");
8
+ const require_constants$8 = require("../../constants-DyC3WyXE.js");
9
9
  const require_x509_es = require("../../x509.es-BhTzcFhZ.js");
10
10
  let zod = require("zod");
11
11
  let node_crypto = require("node:crypto");
@@ -1,7 +1,7 @@
1
1
  import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM, r as __exportAll, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
2
- import { Dr as defineCustomActions, Er as customAction, Ir as isSecretClear, Lr as isSecretMarker, Mr as hydrateSchema, Zr as secretTreeFromSchema, lr as errMsg, ti as transformSecretWrite, ur as BaseAddon, zr as makeSecretMarker } from "../../dist-Biqn3TEn.mjs";
2
+ import { Br as makeSecretMarker, Dr as customAction, Lr as isSecretClear, Nr as hydrateSchema, Or as defineCustomActions, Qr as secretTreeFromSchema, Rr as isSecretMarker, dr as BaseAddon, ni as transformSecretWrite, ur as errMsg } from "../../dist-BIc6o_mz.mjs";
3
3
  import { n as require_safe_buffer, t as require_ms } from "../../ms-DlIWNkkk.mjs";
4
- import { a as MESH_CA_FIELD, c as MESH_CA_VALIDITY_DAYS, f as CLUSTER_SECRET_REF, i as MESH_CA_COMMON_NAME, l as MESH_JOIN_TOKEN_MAX_TTL_SEC, n as DEFAULT_HUB_TCP_PORT, o as MESH_CA_KEY_REF, r as DEFAULT_HUB_TLS_TCP_PORT, s as MESH_CA_SETTINGS_KEY, t as CLIENT_AUTH_OID, u as SERVER_AUTH_OID, x as setProcessClusterSecretGate, y as hashClusterSecret } from "../../constants-D5z4EwY8.mjs";
4
+ import { a as MESH_CA_FIELD, c as MESH_CA_VALIDITY_DAYS, f as CLUSTER_SECRET_REF, i as MESH_CA_COMMON_NAME, l as MESH_JOIN_TOKEN_MAX_TTL_SEC, n as DEFAULT_HUB_TCP_PORT, o as MESH_CA_KEY_REF, r as DEFAULT_HUB_TLS_TCP_PORT, s as MESH_CA_SETTINGS_KEY, t as CLIENT_AUTH_OID, u as SERVER_AUTH_OID, x as setProcessClusterSecretGate, y as hashClusterSecret } from "../../constants-Ca1v1Sdn.mjs";
5
5
  import { a as KeyUsagesExtension, c as Pkcs10CertificateRequestGenerator, d as X509Certificate$1, f as X509CertificateGenerator, i as KeyUsageFlags, n as BasicConstraintsExtension, o as PemConverter, p as cryptoProvider, r as ExtendedKeyUsageExtension, s as Pkcs10CertificateRequest, t as AuthorityKeyIdentifierExtension, u as SubjectKeyIdentifierExtension } from "../../x509.es-Xf3K_brW.mjs";
6
6
  import { z } from "zod";
7
7
  import { X509Certificate, createHash, createHmac, randomBytes, timingSafeEqual, webcrypto } from "node:crypto";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-8LQ4lDEB.js");
6
+ const require_dist = require("../../dist-D_jdr1G9.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 { Qt as logDestinationCapability, ur as BaseAddon } from "../../dist-Biqn3TEn.mjs";
1
+ import { Qt as logDestinationCapability, dr as BaseAddon } from "../../dist-BIc6o_mz.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  import * as path$1 from "node:path";
4
4
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- import { Tr as createEvent, Yr as scrubKnownSecrets, ni as EventCategory$1, tn as maskUrlCredentials } from "./dist-Biqn3TEn.mjs";
1
+ import { Er as createEvent, Xr as scrubKnownSecrets, ri as EventCategory$1, tn as maskUrlCredentials } from "./dist-BIc6o_mz.mjs";
2
2
  import { a as parseProcStat, i as nodeProcReader } from "./proc-stat-CbC55Kqi.mjs";
3
3
  import "./hub-cap-forward-CDiN1p98.mjs";
4
4
  import * as crypto$1 from "node:crypto";
@@ -10821,15 +10821,20 @@ function createKernelHwAccel() {
10821
10821
  //#region src/kernel/inference/inference-resolver.ts
10822
10822
  /**
10823
10823
  * Map the shared platform GPU-vendor probe into the inference `gpu`/`npu` types
10824
- * the runtime scorer understands. NVIDIA → cuda; Intel iGPU (or a bare render
10825
- * node) → openvino; Apple Silicon → CoreML/ANE; Intel NPU ("AI Boost") →
10826
- * intel-npu. The NPU only bumps the score, never changes the openvino winner,
10827
- * but surfacing it lets the TS hint/UI reflect the accelerator the python pool
10828
- * actually compiles onto (NPU>GPU>CPU). PURE — unit-tested.
10824
+ * the runtime scorer understands. NVIDIA → cuda; AMD iGPU → WebGPU/OV-CPU;
10825
+ * Intel iGPU (or a bare unknown-vendor render node) → openvino; Apple Silicon
10826
+ * → CoreML/ANE; Intel NPU ("AI Boost") → intel-npu. The NPU only bumps the
10827
+ * score, never changes the openvino winner, but surfacing it lets the TS
10828
+ * hint/UI reflect the accelerator the python pool actually compiles onto
10829
+ * (NPU>GPU>CPU). PURE — unit-tested.
10830
+ *
10831
+ * AMD must win over the `hasRenderNode` fallback: a Phoenix box has a render
10832
+ * node AND `hasAmdGpu`, and classifying it as Intel would offer
10833
+ * `openvino:gpu`/`npu` that do not exist on the host.
10829
10834
  */
10830
10835
  function mapSignalsToInferenceHardware(signals) {
10831
10836
  return {
10832
- gpu: signals.hasNvidiaGpu ? { type: "nvidia" } : signals.hasIntelGpu || signals.hasRenderNode ? { type: "intel" } : null,
10837
+ gpu: signals.hasNvidiaGpu ? { type: "nvidia" } : signals.hasAmdGpu ? { type: "amd" } : signals.hasIntelGpu ? { type: "intel" } : signals.hasRenderNode ? { type: "intel" } : null,
10833
10838
  npu: signals.platform === "darwin" && signals.arch === "arm64" ? { type: "apple-ane" } : signals.hasIntelNpu ? { type: "intel-npu" } : null,
10834
10839
  coral: signals.hasCoral ? { type: "coral-edgetpu" } : null
10835
10840
  };
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-8LQ4lDEB.js");
2
+ const require_dist = require("./dist-D_jdr1G9.js");
3
3
  const require_proc_stat = require("./proc-stat-DL-WUOhl.js");
4
4
  require("./hub-cap-forward-W8oEm4ME.js");
5
5
  let node_crypto = require("node:crypto");
@@ -10824,15 +10824,20 @@ function createKernelHwAccel() {
10824
10824
  //#region src/kernel/inference/inference-resolver.ts
10825
10825
  /**
10826
10826
  * Map the shared platform GPU-vendor probe into the inference `gpu`/`npu` types
10827
- * the runtime scorer understands. NVIDIA → cuda; Intel iGPU (or a bare render
10828
- * node) → openvino; Apple Silicon → CoreML/ANE; Intel NPU ("AI Boost") →
10829
- * intel-npu. The NPU only bumps the score, never changes the openvino winner,
10830
- * but surfacing it lets the TS hint/UI reflect the accelerator the python pool
10831
- * actually compiles onto (NPU>GPU>CPU). PURE — unit-tested.
10827
+ * the runtime scorer understands. NVIDIA → cuda; AMD iGPU → WebGPU/OV-CPU;
10828
+ * Intel iGPU (or a bare unknown-vendor render node) → openvino; Apple Silicon
10829
+ * → CoreML/ANE; Intel NPU ("AI Boost") → intel-npu. The NPU only bumps the
10830
+ * score, never changes the openvino winner, but surfacing it lets the TS
10831
+ * hint/UI reflect the accelerator the python pool actually compiles onto
10832
+ * (NPU>GPU>CPU). PURE — unit-tested.
10833
+ *
10834
+ * AMD must win over the `hasRenderNode` fallback: a Phoenix box has a render
10835
+ * node AND `hasAmdGpu`, and classifying it as Intel would offer
10836
+ * `openvino:gpu`/`npu` that do not exist on the host.
10832
10837
  */
10833
10838
  function mapSignalsToInferenceHardware(signals) {
10834
10839
  return {
10835
- gpu: signals.hasNvidiaGpu ? { type: "nvidia" } : signals.hasIntelGpu || signals.hasRenderNode ? { type: "intel" } : null,
10840
+ gpu: signals.hasNvidiaGpu ? { type: "nvidia" } : signals.hasAmdGpu ? { type: "amd" } : signals.hasIntelGpu ? { type: "intel" } : signals.hasRenderNode ? { type: "intel" } : null,
10836
10841
  npu: signals.platform === "darwin" && signals.arch === "arm64" ? { type: "apple-ane" } : signals.hasIntelNpu ? { type: "intel-npu" } : null,
10837
10842
  coral: signals.hasCoral ? { type: "coral-edgetpu" } : null
10838
10843
  };
@@ -1,4 +1,4 @@
1
- import { lr as errMsg, nr as compositionSourceKey } from "./dist-Biqn3TEn.mjs";
1
+ import { rr as compositionSourceKey, ur as errMsg } from "./dist-BIc6o_mz.mjs";
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-8LQ4lDEB.js");
1
+ const require_dist = require("./dist-D_jdr1G9.js");
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation
@@ -1,4 +1,4 @@
1
- import { Sr as buildSecretRef } from "./dist-Biqn3TEn.mjs";
1
+ import { Cr as buildSecretRef } from "./dist-BIc6o_mz.mjs";
2
2
  import { createHash, timingSafeEqual } from "node:crypto";
3
3
  //#region src/kernel/moleculer/cluster-secret.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-8LQ4lDEB.js");
1
+ const require_dist = require("./dist-D_jdr1G9.js");
2
2
  let node_crypto = require("node:crypto");
3
3
  //#region src/kernel/moleculer/cluster-secret.ts
4
4
  /**