@camstack/system 1.1.76 → 1.2.0

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 (51) hide show
  1. package/dist/addon-runner.js +2 -2
  2. package/dist/addon-runner.mjs +2 -2
  3. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/alerts/alerts.addon.js +1 -1
  8. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  9. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  10. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  11. package/dist/builtins/console-logging/index.js +1 -1
  12. package/dist/builtins/console-logging/index.mjs +1 -1
  13. package/dist/builtins/device-manager/device-manager.addon.js +1 -1
  14. package/dist/builtins/device-manager/device-manager.addon.mjs +1 -1
  15. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  16. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  17. package/dist/builtins/hub-forwarder/index.js +1 -1
  18. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  19. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  20. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  21. package/dist/builtins/local-network/local-network.addon.js +1 -1
  22. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  23. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  24. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  25. package/dist/builtins/platform-probe/index.js +1 -1
  26. package/dist/builtins/platform-probe/index.mjs +1 -1
  27. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  28. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  29. package/dist/builtins/snapshot/index.js +1 -1
  30. package/dist/builtins/snapshot/index.mjs +1 -1
  31. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  32. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  33. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +1 -1
  34. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +1 -1
  35. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  36. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  37. package/dist/builtins/system-config/system-config.addon.js +1 -1
  38. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  39. package/dist/builtins/winston-logging/index.js +1 -1
  40. package/dist/builtins/winston-logging/index.mjs +1 -1
  41. package/dist/{dist-C0Pf5ShP.js → dist-B9OD5Tdn.js} +10 -11
  42. package/dist/{dist-Dycu89sF.mjs → dist-D7-BTTgZ.mjs} +10 -11
  43. package/dist/index.d.ts +1 -0
  44. package/dist/index.js +37 -8
  45. package/dist/index.mjs +35 -9
  46. package/dist/kernel/addon-installer.d.ts +17 -3
  47. package/dist/kernel/index.d.ts +1 -1
  48. package/dist/kernel/moleculer/node-registry.d.ts +2 -2
  49. package/dist/{manifest-python-deps-BiM1uDhe.mjs → manifest-python-deps-D7EIakIT.mjs} +2 -2
  50. package/dist/{manifest-python-deps-BRFns0U-.js → manifest-python-deps-DXqcuOha.js} +13 -1
  51. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-C0Pf5ShP.js");
3
- const require_manifest_python_deps = require("./manifest-python-deps-BRFns0U-.js");
2
+ const require_dist = require("./dist-B9OD5Tdn.js");
3
+ const require_manifest_python_deps = require("./manifest-python-deps-DXqcuOha.js");
4
4
  const require_custom_action_registry = require("./custom-action-registry-vLYEFTtv.js");
5
5
  let node_fs = require("node:fs");
6
6
  node_fs = require_chunk.__toESM(node_fs);
@@ -1,5 +1,5 @@
1
- import { M as isCollectionArrayMethod, t as ALL_CAPABILITY_DEFINITIONS } from "./dist-Dycu89sF.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-BiM1uDhe.mjs";
1
+ import { M as isCollectionArrayMethod, t as ALL_CAPABILITY_DEFINITIONS } from "./dist-D7-BTTgZ.mjs";
2
+ import { I as createUdsLoggerWithControl, L as LocalChildClient, St as resolveAddonClass, at as setWorkerNativeCapsChangeListener, i as createUdsAddonContext, nt as getWorkerNativeCapProvider, rt as getWorkerNativeCapSnapshot, st as validateProviderRegistrations, t as installManifestPythonDeps, yt as installManifestNativeDeps } from "./manifest-python-deps-D7EIakIT.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_fs = require("node:fs");
9
9
  node_fs = require_chunk.__toESM(node_fs);
@@ -1,4 +1,4 @@
1
- import { At as EventCategory, at as BaseAddon, f as addonPagesCapability, it as errMsg } from "../../dist-Dycu89sF.mjs";
1
+ import { At as EventCategory, at as BaseAddon, f as addonPagesCapability, it as errMsg } from "../../dist-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_fs = require("node:fs");
9
9
  node_fs = require_chunk.__toESM(node_fs);
@@ -1,4 +1,4 @@
1
- import { At as EventCategory, at as BaseAddon, it as errMsg, m as addonWidgetsCapability } from "../../dist-Dycu89sF.mjs";
1
+ import { At as EventCategory, at as BaseAddon, it as errMsg, m as addonWidgetsCapability } from "../../dist-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  //#region src/builtins/alerts/alerts.addon.ts
8
8
  var CATEGORY_MAPPINGS = {
9
9
  "addon.crashed": {
@@ -1,4 +1,4 @@
1
- import { At as EventCategory, at as BaseAddon, h as alertsCapability, it as errMsg, n as AlertSchema, vt as createEvent } from "../../dist-Dycu89sF.mjs";
1
+ import { At as EventCategory, at as BaseAddon, h as alertsCapability, it as errMsg, n as AlertSchema, vt as createEvent } from "../../dist-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  let node_fs = require("node:fs");
8
8
  let node_fs$1 = require_chunk.__toESM(node_fs, 1);
9
9
  node_fs = require_chunk.__toESM(node_fs);
@@ -1,4 +1,4 @@
1
- import { At as EventCategory, at as BaseAddon, v as backupCapability } from "../../dist-Dycu89sF.mjs";
1
+ import { At as EventCategory, at as BaseAddon, v as backupCapability } from "../../dist-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/console-logging/console-destination.ts
9
9
  var LEVEL_RANK = {
@@ -1,4 +1,4 @@
1
- import { R as logDestinationCapability, at as BaseAddon } from "../../dist-Dycu89sF.mjs";
1
+ import { R as logDestinationCapability, at as BaseAddon } from "../../dist-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  let _camstack_types_node = require("@camstack/types/node");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { A as getByPath, At as EventCategory, Ct as isDeviceConfigCap, D as evaluateLinkExpression, E as enumerateSchemaFields, H as normalizeUnit, S as deviceStatusCapability, T as enumerateItemArrayFields, W as parseStreamParamsFormPatch, Y as setByPath, a as DeviceStatusSchema, at as BaseAddon, b as deviceManagerCapability, c as STREAM_PROFILE_META, dt as DeviceType, g as applyTransform, i as CAP_NAMES_WITH_STATUS, it as errMsg, kt as sleep, lt as DeviceFeature, mt as WELL_KNOWN_TAB_MAP, rt as validateExpressionSource, t as ALL_CAPABILITY_DEFINITIONS, tt as toExpressionValue, ut as DeviceRole, x as deviceStateCapability, y as buildStreamParamsConfigSchema } from "../../dist-Dycu89sF.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-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  //#region src/builtins/doorbell/trigger-engine.ts
8
8
  /**
9
9
  * Pure trigger logic for the virtual-doorbell builtin — edge detection over
@@ -1,4 +1,4 @@
1
- import { At as EventCategory, C as doorbellCapability, at as BaseAddon, dt as DeviceType, it as errMsg, vt as createEvent } from "../../dist-Dycu89sF.mjs";
1
+ import { At as EventCategory, C as doorbellCapability, at as BaseAddon, dt as DeviceType, it as errMsg, vt as createEvent } from "../../dist-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
9
9
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -1,4 +1,4 @@
1
- import { R as logDestinationCapability, at as BaseAddon } from "../../dist-Dycu89sF.mjs";
1
+ import { R as logDestinationCapability, at as BaseAddon } from "../../dist-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  node_crypto = require_chunk.__toESM(node_crypto);
9
9
  let crypto$1 = require("crypto");
@@ -1,4 +1,4 @@
1
- import { _ as authProviderCapability, at as BaseAddon, d as UserRecordSchema, l as ScopedTokenSchema, nt as userManagementCapability, r as ApiKeyRecordSchema } from "../../dist-Dycu89sF.mjs";
1
+ import { _ as authProviderCapability, at as BaseAddon, d as UserRecordSchema, l as ScopedTokenSchema, nt as userManagementCapability, r as ApiKeyRecordSchema } from "../../dist-D7-BTTgZ.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-C0Pf5ShP.js");
3
+ const require_dist = require("../../dist-B9OD5Tdn.js");
4
4
  let node_os = require("node:os");
5
5
  node_os = require_chunk.__toESM(node_os);
6
6
  //#region src/builtins/local-network/local-network.addon.ts
@@ -1,4 +1,4 @@
1
- import { At as EventCategory, L as localNetworkCapability, at as BaseAddon } from "../../dist-Dycu89sF.mjs";
1
+ import { At as EventCategory, L as localNetworkCapability, at as BaseAddon } from "../../dist-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  let node_fs = require("node:fs");
8
8
  node_fs = require_chunk.__toESM(node_fs);
9
9
  let node_child_process = require("node:child_process");
@@ -1,4 +1,4 @@
1
- import { At as EventCategory, B as metricsProviderCapability, at as BaseAddon, vt as createEvent } from "../../dist-Dycu89sF.mjs";
1
+ import { At as EventCategory, B as metricsProviderCapability, at as BaseAddon, vt as createEvent } from "../../dist-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  let node_fs = require("node:fs");
8
8
  node_fs = require_chunk.__toESM(node_fs);
9
9
  let node_child_process = require("node:child_process");
@@ -1,4 +1,4 @@
1
- import { At as EventCategory, G as platformProbeCapability, J as scoreRuntimes, at as BaseAddon, bt as emitReadiness, it as errMsg, w as enumerateInferenceDevices } from "../../dist-Dycu89sF.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-D7-BTTgZ.mjs";
2
2
  import * as fs from "node:fs";
3
3
  import { execFile } from "node:child_process";
4
4
  import { promisify } from "node:util";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  //#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
8
8
  /**
9
9
  * Reconcile the durable `enabledProviders` set against authoritative
@@ -1,4 +1,4 @@
1
- import { At as EventCategory, at as BaseAddon } from "../../dist-Dycu89sF.mjs";
1
+ import { At as EventCategory, at as BaseAddon } from "../../dist-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  let node_child_process = require("node:child_process");
8
8
  //#region src/builtins/snapshot/snapshot-coalescing.ts
9
9
  /**
@@ -1,4 +1,4 @@
1
- import { V as nodePin, Z as snapshotCapability, at as BaseAddon, dt as DeviceType, et as streamQualityLabel, it as errMsg, lt as DeviceFeature } from "../../dist-Dycu89sF.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-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  let node_fs = require("node:fs");
8
8
  node_fs = require_chunk.__toESM(node_fs);
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { $ as storageProviderCapability, at as BaseAddon, k as filesystemBrowseCapability } from "../../dist-Dycu89sF.mjs";
1
+ import { $ as storageProviderCapability, at as BaseAddon, k as filesystemBrowseCapability } from "../../dist-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let better_sqlite3 = require("better-sqlite3");
9
9
  better_sqlite3 = require_chunk.__toESM(better_sqlite3);
@@ -1,4 +1,4 @@
1
- import { Tt as parseJsonUnknown, X as settingsStoreCapability, at as BaseAddon, ht as asJsonObject, it as errMsg, s as RUNTIME_DEFAULTS } from "../../dist-Dycu89sF.mjs";
1
+ import { Tt as parseJsonUnknown, X as settingsStoreCapability, at as BaseAddon, ht as asJsonObject, it as errMsg, s as RUNTIME_DEFAULTS } from "../../dist-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  let node_path = require("node:path");
8
8
  node_path = require_chunk.__toESM(node_path);
9
9
  let node_fs_promises = require("node:fs/promises");
@@ -1,4 +1,4 @@
1
- import { Q as storageCapability, at as BaseAddon, u as StorageLocationTypeSchema, wt as parseJsonObject } from "../../dist-Dycu89sF.mjs";
1
+ import { Q as storageCapability, at as BaseAddon, u as StorageLocationTypeSchema, wt as parseJsonObject } from "../../dist-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  //#region src/builtins/system-config/system-config.addon.ts
8
8
  /**
9
9
  * Built-in `system-config` addon — Phase 4 of the settings redesign.
@@ -1,4 +1,4 @@
1
- import { St as hydrateSchema, at as BaseAddon, it as errMsg } from "../../dist-Dycu89sF.mjs";
1
+ import { St as hydrateSchema, at as BaseAddon, it as errMsg } from "../../dist-D7-BTTgZ.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-C0Pf5ShP.js");
6
+ const require_dist = require("../../dist-B9OD5Tdn.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  let node_path = require("node:path");
9
9
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { R as logDestinationCapability, at as BaseAddon } from "../../dist-Dycu89sF.mjs";
1
+ import { R as logDestinationCapability, at as BaseAddon } from "../../dist-D7-BTTgZ.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";
@@ -17653,14 +17653,13 @@ var pipelineOrchestratorCapability = {
17653
17653
  };
17654
17654
  /**
17655
17655
  * server-management — per-NODE singleton capability for a node's ROOT
17656
- * package lifecycle (runtime-updatable node packages, phase 2: hub + docker
17657
- * agents).
17656
+ * package lifecycle (runtime-updatable node packages).
17658
17657
  *
17659
- * Each node's root package (`@camstack/server` on the hub, `@camstack/agent`
17660
- * on agents) carries the whole software stack in its npm dep tree, so ONE
17661
- * version describes the node. Updates install into
17662
- * `<dataDir>/server-root/versions/<v>/` and apply on restart via the baked
17663
- * starter (probation boot + auto-rollback to N-1).
17658
+ * Every node role runs the SAME root package (`@camstack/server`), which
17659
+ * carries the whole software stack in its npm dep tree, so ONE version
17660
+ * describes the node. Updates stage into `<dataDir>/server-root/` and apply
17661
+ * on restart via the baked starter (single-copy in-place swap — no probation,
17662
+ * no auto-rollback).
17664
17663
  *
17665
17664
  * Providers:
17666
17665
  * - HUB: `ServerUpdateService` behind the `server-provided` mount
@@ -20701,10 +20700,10 @@ var TopologyCategorySchema = zod.z.object({
20701
20700
  addons: zod.z.array(TopologyCategoryAddonSchema).readonly()
20702
20701
  });
20703
20702
  /**
20704
- * The node's runtime-updatable ROOT package (`@camstack/server` on the hub,
20705
- * `@camstack/agent` on agents) as reported by its `registerNode` manifest —
20706
- * version visibility for the Server management surface. Nullable: offline
20707
- * rows and pre-phase-2 nodes report none.
20703
+ * The node's runtime-updatable ROOT package (`@camstack/server` the single
20704
+ * root package for every node role) as reported by its `registerNode`
20705
+ * manifest — version visibility for the Server management surface. Nullable:
20706
+ * offline rows and nodes that never reported one.
20708
20707
  */
20709
20708
  var TopologyRootPackageSchema = zod.z.object({
20710
20709
  name: zod.z.string(),
@@ -17653,14 +17653,13 @@ var pipelineOrchestratorCapability = {
17653
17653
  };
17654
17654
  /**
17655
17655
  * server-management — per-NODE singleton capability for a node's ROOT
17656
- * package lifecycle (runtime-updatable node packages, phase 2: hub + docker
17657
- * agents).
17656
+ * package lifecycle (runtime-updatable node packages).
17658
17657
  *
17659
- * Each node's root package (`@camstack/server` on the hub, `@camstack/agent`
17660
- * on agents) carries the whole software stack in its npm dep tree, so ONE
17661
- * version describes the node. Updates install into
17662
- * `<dataDir>/server-root/versions/<v>/` and apply on restart via the baked
17663
- * starter (probation boot + auto-rollback to N-1).
17658
+ * Every node role runs the SAME root package (`@camstack/server`), which
17659
+ * carries the whole software stack in its npm dep tree, so ONE version
17660
+ * describes the node. Updates stage into `<dataDir>/server-root/` and apply
17661
+ * on restart via the baked starter (single-copy in-place swap — no probation,
17662
+ * no auto-rollback).
17664
17663
  *
17665
17664
  * Providers:
17666
17665
  * - HUB: `ServerUpdateService` behind the `server-provided` mount
@@ -20701,10 +20700,10 @@ var TopologyCategorySchema = z.object({
20701
20700
  addons: z.array(TopologyCategoryAddonSchema).readonly()
20702
20701
  });
20703
20702
  /**
20704
- * The node's runtime-updatable ROOT package (`@camstack/server` on the hub,
20705
- * `@camstack/agent` on agents) as reported by its `registerNode` manifest —
20706
- * version visibility for the Server management surface. Nullable: offline
20707
- * rows and pre-phase-2 nodes report none.
20703
+ * The node's runtime-updatable ROOT package (`@camstack/server` the single
20704
+ * root package for every node role) as reported by its `registerNode`
20705
+ * manifest — version visibility for the Server management surface. Nullable:
20706
+ * offline rows and nodes that never reported one.
20708
20707
  */
20709
20708
  var TopologyRootPackageSchema = z.object({
20710
20709
  name: z.string(),
package/dist/index.d.ts CHANGED
@@ -84,3 +84,4 @@ export { AddonApiFactory } from './addon/addon-api-factory.js';
84
84
  export type { DirectCallerOptions } from './addon/addon-api-factory.js';
85
85
  export { IntegrationRegistry } from './builtins/sqlite-storage/integration-registry.js';
86
86
  export * from './kernel/index.js';
87
+ export { runNpm, resolveNpmInvocation, type RunNpmOptions, type NpmInvocation, } from './kernel/deps/npm-command.js';
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-C0Pf5ShP.js");
3
+ const require_dist = require("./dist-B9OD5Tdn.js");
4
4
  const require_model_download_service = require("./model-download-service-hf0ookyy.js");
5
- const require_manifest_python_deps = require("./manifest-python-deps-BRFns0U-.js");
5
+ const require_manifest_python_deps = require("./manifest-python-deps-DXqcuOha.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");
@@ -3134,7 +3134,8 @@ var AddonInstaller = class AddonInstaller {
3134
3134
  const raw = node_fs.readFileSync(pkgPath, "utf-8");
3135
3135
  const parsed = JSON.parse(raw);
3136
3136
  const deps = Object.keys(parsed.dependencies ?? {});
3137
- return Object.freeze(deps.filter((name) => name.startsWith("@camstack/addon-") || name === "@camstack/system"));
3137
+ const agentOnly = new Set(parsed.camstack?.agentOnlyBootstrapAddons ?? []);
3138
+ return Object.freeze(deps.filter((name) => !agentOnly.has(name) && (name.startsWith("@camstack/addon-") || name === "@camstack/system")));
3138
3139
  }
3139
3140
  /**
3140
3141
  * Bootstrap packages installed on first boot — derived from the
@@ -3149,11 +3150,36 @@ var AddonInstaller = class AddonInstaller {
3149
3150
  */
3150
3151
  static REQUIRED_PACKAGES = AddonInstaller.deriveBootstrapList("@camstack/server");
3151
3152
  /**
3152
- * Agent-only bootstrap packages — derived from the `@camstack/agent`
3153
- * meta-package's runtime dependencies. Adding an agent bootstrap addon
3154
- * = adding it to `packages/agent/package.json`.
3155
- */
3156
- static AGENT_PACKAGES = AddonInstaller.deriveBootstrapList("@camstack/agent");
3153
+ * Agent-only bootstrap packages — derived from the `@camstack/server`
3154
+ * meta-package's `camstack.agentBootstrapAddons` manifest field (single
3155
+ * source of truth; the separate agent meta-package is gone).
3156
+ * The agent runtime boots from the SAME `@camstack/server` closure, so its
3157
+ * bootstrap addon set is declared alongside the hub's. Adding an agent
3158
+ * bootstrap addon = adding it to `server/backend/package.json`'s
3159
+ * `camstack.agentBootstrapAddons`.
3160
+ */
3161
+ static AGENT_PACKAGES = AddonInstaller.deriveAgentBootstrapList("@camstack/server");
3162
+ /**
3163
+ * Derive the agent bootstrap addon list from a meta-package's
3164
+ * `camstack.agentBootstrapAddons` manifest field, prepending
3165
+ * `@camstack/system` (the required infrastructure builtins carrier — same
3166
+ * rationale as `deriveBootstrapList`). Mirrors `deriveBootstrapList`'s
3167
+ * `require.resolve` nuance: the meta-package may be absent in a deployment
3168
+ * (this field is eagerly evaluated at class-load), so a failed resolve
3169
+ * yields an empty list rather than throwing.
3170
+ */
3171
+ static deriveAgentBootstrapList(metaPackageName) {
3172
+ const pkgJsonId = `${metaPackageName}/package.json`;
3173
+ let pkgPath;
3174
+ try {
3175
+ pkgPath = require.resolve(pkgJsonId);
3176
+ } catch {
3177
+ return Object.freeze([]);
3178
+ }
3179
+ const raw = node_fs.readFileSync(pkgPath, "utf-8");
3180
+ const addons = JSON.parse(raw).camstack?.agentBootstrapAddons ?? [];
3181
+ return Object.freeze(["@camstack/system", ...addons]);
3182
+ }
3157
3183
  /**
3158
3184
  * Ensure all required packages are installed in the addons directory.
3159
3185
  *
@@ -93502,6 +93528,7 @@ exports.capBareAction = require_manifest_python_deps.capBareAction;
93502
93528
  exports.capServiceName = require_manifest_python_deps.capServiceName;
93503
93529
  exports.classifyCapRoute = require_manifest_python_deps.classifyCapRoute;
93504
93530
  exports.clearPendingRestart = clearPendingRestart;
93531
+ exports.clusterEventTopic = require_manifest_python_deps.clusterEventTopic;
93505
93532
  exports.clusterSecretMatches = clusterSecretMatches;
93506
93533
  exports.collectModelFiles = require_model_download_service.collectModelFiles;
93507
93534
  exports.contentTypeFor = require_model_download_service.contentTypeFor;
@@ -93641,6 +93668,8 @@ exports.readinessKey = require_dist.readinessKey;
93641
93668
  exports.registerEventBusService = require_manifest_python_deps.registerEventBusService;
93642
93669
  exports.resolveFilePath = require_model_download_service.resolveFilePath;
93643
93670
  exports.resolveHwAccel = require_manifest_python_deps.resolveHwAccel;
93671
+ exports.resolveNpmInvocation = require_manifest_python_deps.resolveNpmInvocation;
93672
+ exports.runNpm = require_manifest_python_deps.runNpm;
93644
93673
  exports.scheduleSelfRestart = scheduleSelfRestart;
93645
93674
  exports.scopeKey = require_dist.scopeKey;
93646
93675
  exports.scopesAllowDeviceCap = scopesAllowDeviceCap;
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
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-Dycu89sF.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-D7-BTTgZ.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-BiM1uDhe.mjs";
3
+ import { $ as buildNativeCapProxy, A as createHubCapForwardService, B as AGENT_CAP_FWD_ACTION, C as brokerTransportLink, Ct as createAddonDataPlaneFacility, D as localProviderLink, E as ipcParentLink, F as createUdsLogger, G as callWithServiceDiscovery, H as CapRouteResolver, I as createUdsLoggerWithControl, J as UdsLocalTransportServer, K as createLocalTransport, L as LocalChildClient, M as createUdsEventBridge, N as createUdsEventBus, O as HUB_CAP_FWD_ACTION, P as udsChildLogToWorkerEntry, Q as encodeFrame, R as LocalChildRegistry, S as brokerCallForCap, St as resolveAddonClass, T as ipcChildLink, U as CapRouteError, V as AGENT_CAP_FWD_SERVICE, W as classifyCapRoute, X as localEndpointPath, Y as SocketChannel, Z as FrameDecoder, _ as createKernelHwAccel, _t as CapabilityHandle, a as getWorkerDeviceRegistry, b as __resetCapUsageRegistryForTests, bt as resolveNpmInvocation, c as setHubConnected, ct as NATIVE_PROVIDER_SERVICE_INFIX, d as getBrokerEventBus, dt as capBareAction, et as buildUdsNativeCapProxy, f as getMoleculerEventStats, ft as capServiceName, g as AddonDepsManager, gt as DeviceRegistry, h as subscribePassthrough, ht as serializeTypedArrays, i as createUdsAddonContext, it as mountNativeCapService, j as createParentUnownedCallHandler, k as HUB_CAP_FWD_SERVICE, l as EVENT_TOPIC_PREFIX, lt as capActionName, m as setNodeEventInterest, mt as deserializeTypedArrays, n as adaptBrokerToCluster, o as getOrInitReadinessRegistry, ot as createAddonService, p as registerEventBusService, pt as parseCapAction, q as UdsLocalTransportClient, r as createAddonContext, s as getOrInitReadinessRegistryForClient, st as validateProviderRegistrations, t as installManifestPythonDeps, tt as createBrokerDeviceManagerApi, u as clusterEventTopic, ut as capActionSuffix, v as resolveHwAccel, vt as CapabilityUnavailableError, w as buildLinkChain, x as getCapUsageRegistry, xt as runNpm, y as CapUsageRegistry, yt as installManifestNativeDeps, z as UDS_NO_ROUTE_PREFIX } from "./manifest-python-deps-D7EIakIT.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";
@@ -3126,7 +3126,8 @@ var AddonInstaller = class AddonInstaller {
3126
3126
  const raw = fs$17.readFileSync(pkgPath, "utf-8");
3127
3127
  const parsed = JSON.parse(raw);
3128
3128
  const deps = Object.keys(parsed.dependencies ?? {});
3129
- return Object.freeze(deps.filter((name) => name.startsWith("@camstack/addon-") || name === "@camstack/system"));
3129
+ const agentOnly = new Set(parsed.camstack?.agentOnlyBootstrapAddons ?? []);
3130
+ return Object.freeze(deps.filter((name) => !agentOnly.has(name) && (name.startsWith("@camstack/addon-") || name === "@camstack/system")));
3130
3131
  }
3131
3132
  /**
3132
3133
  * Bootstrap packages installed on first boot — derived from the
@@ -3141,11 +3142,36 @@ var AddonInstaller = class AddonInstaller {
3141
3142
  */
3142
3143
  static REQUIRED_PACKAGES = AddonInstaller.deriveBootstrapList("@camstack/server");
3143
3144
  /**
3144
- * Agent-only bootstrap packages — derived from the `@camstack/agent`
3145
- * meta-package's runtime dependencies. Adding an agent bootstrap addon
3146
- * = adding it to `packages/agent/package.json`.
3147
- */
3148
- static AGENT_PACKAGES = AddonInstaller.deriveBootstrapList("@camstack/agent");
3145
+ * Agent-only bootstrap packages — derived from the `@camstack/server`
3146
+ * meta-package's `camstack.agentBootstrapAddons` manifest field (single
3147
+ * source of truth; the separate agent meta-package is gone).
3148
+ * The agent runtime boots from the SAME `@camstack/server` closure, so its
3149
+ * bootstrap addon set is declared alongside the hub's. Adding an agent
3150
+ * bootstrap addon = adding it to `server/backend/package.json`'s
3151
+ * `camstack.agentBootstrapAddons`.
3152
+ */
3153
+ static AGENT_PACKAGES = AddonInstaller.deriveAgentBootstrapList("@camstack/server");
3154
+ /**
3155
+ * Derive the agent bootstrap addon list from a meta-package's
3156
+ * `camstack.agentBootstrapAddons` manifest field, prepending
3157
+ * `@camstack/system` (the required infrastructure builtins carrier — same
3158
+ * rationale as `deriveBootstrapList`). Mirrors `deriveBootstrapList`'s
3159
+ * `require.resolve` nuance: the meta-package may be absent in a deployment
3160
+ * (this field is eagerly evaluated at class-load), so a failed resolve
3161
+ * yields an empty list rather than throwing.
3162
+ */
3163
+ static deriveAgentBootstrapList(metaPackageName) {
3164
+ const pkgJsonId = `${metaPackageName}/package.json`;
3165
+ let pkgPath;
3166
+ try {
3167
+ pkgPath = __require.resolve(pkgJsonId);
3168
+ } catch {
3169
+ return Object.freeze([]);
3170
+ }
3171
+ const raw = fs$17.readFileSync(pkgPath, "utf-8");
3172
+ const addons = JSON.parse(raw).camstack?.agentBootstrapAddons ?? [];
3173
+ return Object.freeze(["@camstack/system", ...addons]);
3174
+ }
3149
3175
  /**
3150
3176
  * Ensure all required packages are installed in the addons directory.
3151
3177
  *
@@ -93363,4 +93389,4 @@ var LifecycleJobEngine = class {
93363
93389
  }
93364
93390
  };
93365
93391
  //#endregion
93366
- export { AGENT_CAP_FWD_ACTION, AGENT_CAP_FWD_SERVICE, AGENT_READINESS_SERVICE_NAME, ALL_CAPABILITY_DEFINITIONS, AddonApiFactory, AddonDepsManager, AddonEngineManager, AddonHealthMonitor, AddonInstaller, AddonLoader, AddonManifest, AddonRouteRegistry, AlertCenterAddon, ApiKeyManager, AuthManager, CLUSTER_SECRET_MISMATCH_TYPE, CLUSTER_SECRET_REJECTED_EXIT_CODE, CORE_CAP_SERVICE_NAME, CapRouteError, CapRouteResolver, CapUsageRegistry, CapabilityHandle, CapabilityRegistry, CapabilityUnavailableError, ConfigManager, ConfigStore, ConsoleDestination, ConsoleLoggingAddon, CustomActionRegistry, DEFAULT_DATA_PATH, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DataPlaneRegistry, DeviceManagerAddon, DeviceRegistry, DeviceStore, EVENT_TOPIC_PREFIX, EngineManagerResolver, EventBus, FeatureManager, FilesystemStorageAddon, FilesystemStorageProvider, FrameDecoder, FsStorageBackend, HEALTH_MONITOR_GRACE_PERIOD_MS, HEALTH_MONITOR_RETRY_INTERVALS_MS, HEALTH_MONITOR_TICK_MS, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, INFRA_CAPABILITIES, IntegrationRegistry, JobJournal, LifecycleJobEngine, LifecycleStateMachine, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, METHOD_ACCESS_MAP, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, PYTHON_VERSION, PipelineRunner, PipelineValidator, PythonEnvManager, RESTART_MARKER_FILE, RUNTIME_DEFAULTS, ReadinessRegistry, ReadinessTimeoutError, ReplEngine, RingBuffer, ScopedLogger, ScopedTokenManager, SocketChannel, SqliteSettingsAddon, SqliteSettingsBackend, StagingArea, StorageLocationManager, StorageManager, StorageOrchestratorAddon, StorageOrchestratorService, SystemConfigAddon, SystemEventBus, ToastService, UDS_NO_ROUTE_PREFIX, UdsLocalTransportClient, UdsLocalTransportServer, UserManager, WinstonDestination, WinstonLoggingAddon, __resetCapUsageRegistryForTests, adaptBrokerToCluster, addonSettingsCapability, bootstrapSchema, brokerCallForCap, brokerTransportLink, buildBinaryPath, buildCapRouters, buildLinkChain, buildNativeCapProxy, buildNodeManifest, buildStorageLocationRegistry, buildUdsNativeCapProxy, builderMountedCapNames, callRegisterNodeWithRetry, callWithServiceDiscovery, capActionName, capActionSuffix, capBareAction, capServiceName, classifyCapRoute, clearPendingRestart, clusterSecretMatches, collectModelFiles, contentTypeFor, copyDirRecursive, copyExtraFileDirs, createAddonContext, createAddonDataPlaneFacility, createAddonService, createAuthenticatedFileServer, createBroker, createBrokerDeviceManagerApi, createCoreCapService, createFileDataPlaneHandler, createHubCapForwardService, createHubService, createKernelHwAccel, createLocalTransport, createParentUnownedCallHandler, createProcessService, createReadinessService, createReadinessServiceForRegistry, createScopedProcessManager, createStreamProbeBrokerService, createUdsAddonContext, createUdsEventBridge, createUdsEventBus, createUdsLogger, createUdsLoggerWithControl, deleteModelFromDisk, deriveAgentListenPort, describeProviderKindDrift, detectWorkspacePackagesDir, downloadBinary, downloadFile, downloadModel, emitDownForOwnedCaps, encodeFrame, ensureBinary, ensureDir, ensureFfmpeg, ensureLibraryBuilt, ensureModel, ensurePython, ensureTlsCert, expandCapMethods, fetchJson, findInPath, formatLogLine, getBrokerEventBus, getCapUsageRegistry, getFfmpegDownloadUrl, getModelFilePath, getMoleculerEventStats, getOrInitReadinessRegistry, getOrInitReadinessRegistryForClient, getPidStats, getPlatformInfo, getPythonDownloadUrl, getRestartMarkerPath, getSinglePidStats, getWorkerDeviceRegistry, hashClusterSecret, installManifestNativeDeps, installManifestPythonDeps, installPackageFromNpm, installPythonPackages, installPythonRequirements, ipcChildLink, ipcParentLink, isAddonDeploySource, isArrayOutputSchema, isClusterSecretMismatchError, isCollectionArrayMethod, isInfraCapability, isModelDownloaded, isSourceNewer, loadTlsCert, localEndpointPath, localProviderLink, mountNativeCapService, parseCapAction, parseRangeHeader, parseTokenizedUrl, proxyToUpstream, readPendingRestart, readinessKey, registerEventBusService, resolveFilePath, resolveHwAccel, scheduleSelfRestart, scopeKey, scopesAllowDeviceCap, serializeTypedArrays, setHubConnected, setNodeEventInterest, stripCamstackDeps, subscribePassthrough, udsChildLogToWorkerEntry, validateProviderRegistrations, writePendingRestart };
93392
+ export { AGENT_CAP_FWD_ACTION, AGENT_CAP_FWD_SERVICE, AGENT_READINESS_SERVICE_NAME, ALL_CAPABILITY_DEFINITIONS, AddonApiFactory, AddonDepsManager, AddonEngineManager, AddonHealthMonitor, AddonInstaller, AddonLoader, AddonManifest, AddonRouteRegistry, AlertCenterAddon, ApiKeyManager, AuthManager, CLUSTER_SECRET_MISMATCH_TYPE, CLUSTER_SECRET_REJECTED_EXIT_CODE, CORE_CAP_SERVICE_NAME, CapRouteError, CapRouteResolver, CapUsageRegistry, CapabilityHandle, CapabilityRegistry, CapabilityUnavailableError, ConfigManager, ConfigStore, ConsoleDestination, ConsoleLoggingAddon, CustomActionRegistry, DEFAULT_DATA_PATH, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DataPlaneRegistry, DeviceManagerAddon, DeviceRegistry, DeviceStore, EVENT_TOPIC_PREFIX, EngineManagerResolver, EventBus, FeatureManager, FilesystemStorageAddon, FilesystemStorageProvider, FrameDecoder, FsStorageBackend, HEALTH_MONITOR_GRACE_PERIOD_MS, HEALTH_MONITOR_RETRY_INTERVALS_MS, HEALTH_MONITOR_TICK_MS, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, INFRA_CAPABILITIES, IntegrationRegistry, JobJournal, LifecycleJobEngine, LifecycleStateMachine, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, METHOD_ACCESS_MAP, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, PYTHON_VERSION, PipelineRunner, PipelineValidator, PythonEnvManager, RESTART_MARKER_FILE, RUNTIME_DEFAULTS, ReadinessRegistry, ReadinessTimeoutError, ReplEngine, RingBuffer, ScopedLogger, ScopedTokenManager, SocketChannel, SqliteSettingsAddon, SqliteSettingsBackend, StagingArea, StorageLocationManager, StorageManager, StorageOrchestratorAddon, StorageOrchestratorService, SystemConfigAddon, SystemEventBus, ToastService, UDS_NO_ROUTE_PREFIX, UdsLocalTransportClient, UdsLocalTransportServer, UserManager, WinstonDestination, WinstonLoggingAddon, __resetCapUsageRegistryForTests, adaptBrokerToCluster, addonSettingsCapability, bootstrapSchema, brokerCallForCap, brokerTransportLink, buildBinaryPath, buildCapRouters, buildLinkChain, buildNativeCapProxy, buildNodeManifest, buildStorageLocationRegistry, buildUdsNativeCapProxy, builderMountedCapNames, callRegisterNodeWithRetry, callWithServiceDiscovery, capActionName, capActionSuffix, capBareAction, capServiceName, classifyCapRoute, clearPendingRestart, clusterEventTopic, clusterSecretMatches, collectModelFiles, contentTypeFor, copyDirRecursive, copyExtraFileDirs, createAddonContext, createAddonDataPlaneFacility, createAddonService, createAuthenticatedFileServer, createBroker, createBrokerDeviceManagerApi, createCoreCapService, createFileDataPlaneHandler, createHubCapForwardService, createHubService, createKernelHwAccel, createLocalTransport, createParentUnownedCallHandler, createProcessService, createReadinessService, createReadinessServiceForRegistry, createScopedProcessManager, createStreamProbeBrokerService, createUdsAddonContext, createUdsEventBridge, createUdsEventBus, createUdsLogger, createUdsLoggerWithControl, deleteModelFromDisk, deriveAgentListenPort, describeProviderKindDrift, detectWorkspacePackagesDir, downloadBinary, downloadFile, downloadModel, emitDownForOwnedCaps, encodeFrame, ensureBinary, ensureDir, ensureFfmpeg, ensureLibraryBuilt, ensureModel, ensurePython, ensureTlsCert, expandCapMethods, fetchJson, findInPath, formatLogLine, getBrokerEventBus, getCapUsageRegistry, getFfmpegDownloadUrl, getModelFilePath, getMoleculerEventStats, getOrInitReadinessRegistry, getOrInitReadinessRegistryForClient, getPidStats, getPlatformInfo, getPythonDownloadUrl, getRestartMarkerPath, getSinglePidStats, getWorkerDeviceRegistry, hashClusterSecret, installManifestNativeDeps, installManifestPythonDeps, installPackageFromNpm, installPythonPackages, installPythonRequirements, ipcChildLink, ipcParentLink, isAddonDeploySource, isArrayOutputSchema, isClusterSecretMismatchError, isCollectionArrayMethod, isInfraCapability, isModelDownloaded, isSourceNewer, loadTlsCert, localEndpointPath, localProviderLink, mountNativeCapService, parseCapAction, parseRangeHeader, parseTokenizedUrl, proxyToUpstream, readPendingRestart, readinessKey, registerEventBusService, resolveFilePath, resolveHwAccel, resolveNpmInvocation, runNpm, scheduleSelfRestart, scopeKey, scopesAllowDeviceCap, serializeTypedArrays, setHubConnected, setNodeEventInterest, stripCamstackDeps, subscribePassthrough, udsChildLogToWorkerEntry, validateProviderRegistrations, writePendingRestart };
@@ -78,11 +78,25 @@ export declare class AddonInstaller {
78
78
  */
79
79
  static readonly REQUIRED_PACKAGES: readonly string[];
80
80
  /**
81
- * Agent-only bootstrap packages — derived from the `@camstack/agent`
82
- * meta-package's runtime dependencies. Adding an agent bootstrap addon
83
- * = adding it to `packages/agent/package.json`.
81
+ * Agent-only bootstrap packages — derived from the `@camstack/server`
82
+ * meta-package's `camstack.agentBootstrapAddons` manifest field (single
83
+ * source of truth; the separate agent meta-package is gone).
84
+ * The agent runtime boots from the SAME `@camstack/server` closure, so its
85
+ * bootstrap addon set is declared alongside the hub's. Adding an agent
86
+ * bootstrap addon = adding it to `server/backend/package.json`'s
87
+ * `camstack.agentBootstrapAddons`.
84
88
  */
85
89
  static readonly AGENT_PACKAGES: readonly string[];
90
+ /**
91
+ * Derive the agent bootstrap addon list from a meta-package's
92
+ * `camstack.agentBootstrapAddons` manifest field, prepending
93
+ * `@camstack/system` (the required infrastructure builtins carrier — same
94
+ * rationale as `deriveBootstrapList`). Mirrors `deriveBootstrapList`'s
95
+ * `require.resolve` nuance: the meta-package may be absent in a deployment
96
+ * (this field is eagerly evaluated at class-load), so a failed resolve
97
+ * yields an empty list rather than throwing.
98
+ */
99
+ private static deriveAgentBootstrapList;
86
100
  /**
87
101
  * Ensure all required packages are installed in the addons directory.
88
102
  *
@@ -33,7 +33,7 @@ export { type AddonDeploySource, isAddonDeploySource } from './moleculer/addon-d
33
33
  export { createAddonService, validateProviderRegistrations, } from './moleculer/addon-service-factory.js';
34
34
  export { createCoreCapService, CORE_CAP_SERVICE_NAME } from './moleculer/core-cap-service.js';
35
35
  export type { CoreCapAction, CoreCapServiceOptions } from './moleculer/core-cap-service.js';
36
- export { createAddonContext, createUdsAddonContext, setHubConnected, adaptBrokerToCluster, registerEventBusService, setNodeEventInterest, getMoleculerEventStats, subscribePassthrough, getBrokerEventBus, EVENT_TOPIC_PREFIX, } from './moleculer/addon-context-factory.js';
36
+ export { createAddonContext, createUdsAddonContext, setHubConnected, adaptBrokerToCluster, registerEventBusService, setNodeEventInterest, getMoleculerEventStats, subscribePassthrough, getBrokerEventBus, clusterEventTopic, EVENT_TOPIC_PREFIX, } from './moleculer/addon-context-factory.js';
37
37
  export type { MoleculerEventStats } from './moleculer/addon-context-factory.js';
38
38
  export { HubLogForwarder } from './moleculer/hub-log-forwarder.js';
39
39
  export type { AddonContextOptions } from './moleculer/addon-context-factory.js';
@@ -33,8 +33,8 @@ interface RegisteredNativeCap {
33
33
  readonly deviceIds: readonly number[];
34
34
  }
35
35
  /**
36
- * A node's runtime-updatable ROOT package identity (`@camstack/server` on
37
- * the hub, `@camstack/agent` on agents) — carried in the `registerNode`
36
+ * A node's runtime-updatable ROOT package identity (`@camstack/server` — the
37
+ * single root package for every node role) — carried in the `registerNode`
38
38
  * manifest so the hub knows every node's exact software version (design:
39
39
  * runtime-updatable node packages, "visibility"). Version skew is SEEN in
40
40
  * the UI instead of discovered via a black-hole.
@@ -1,4 +1,4 @@
1
- import { q as readNodePin } from "./dist-Dycu89sF.mjs";
1
+ import { q as readNodePin } from "./dist-D7-BTTgZ.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";
@@ -7320,4 +7320,4 @@ async function installManifestPythonDeps(declaration, addonDir, deps, logger) {
7320
7320
  await deps.installPythonRequirements(reqAbs);
7321
7321
  }
7322
7322
  //#endregion
7323
- export { buildUdsNativeCapProxy as $, createParentUnownedCallHandler as A, AGENT_CAP_FWD_SERVICE as B, buildLinkChain as C, HUB_CAP_FWD_ACTION as D, localProviderLink as E, createUdsLoggerWithControl as F, createLocalTransport as G, CapRouteError as H, LocalChildClient as I, SocketChannel as J, UdsLocalTransportClient as K, LocalChildRegistry as L, createUdsEventBus as M, udsChildLogToWorkerEntry as N, HUB_CAP_FWD_SERVICE as O, createUdsLogger as P, buildNativeCapProxy as Q, UDS_NO_ROUTE_PREFIX as R, brokerTransportLink as S, ipcParentLink as T, classifyCapRoute as U, CapRouteResolver as V, callWithServiceDiscovery as W, FrameDecoder as X, localEndpointPath as Y, encodeFrame as Z, resolveHwAccel as _, CapabilityUnavailableError as _t, getWorkerDeviceRegistry as a, createAddonService as at, getCapUsageRegistry as b, resolveAddonClass as bt, setHubConnected as c, capActionName as ct, getMoleculerEventStats as d, capServiceName as dt, createBrokerDeviceManagerApi as et, registerEventBusService as f, parseCapAction as ft, createKernelHwAccel as g, CapabilityHandle as gt, AddonDepsManager as h, DeviceRegistry as ht, createUdsAddonContext as i, setWorkerNativeCapsChangeListener as it, createUdsEventBridge as j, createHubCapForwardService as k, EVENT_TOPIC_PREFIX as l, capActionSuffix as lt, subscribePassthrough as m, serializeTypedArrays as mt, adaptBrokerToCluster as n, getWorkerNativeCapSnapshot as nt, getOrInitReadinessRegistry as o, validateProviderRegistrations as ot, setNodeEventInterest as p, deserializeTypedArrays as pt, UdsLocalTransportServer as q, createAddonContext as r, mountNativeCapService as rt, getOrInitReadinessRegistryForClient as s, NATIVE_PROVIDER_SERVICE_INFIX as st, installManifestPythonDeps as t, getWorkerNativeCapProvider as tt, getBrokerEventBus as u, capBareAction as ut, CapUsageRegistry as v, installManifestNativeDeps as vt, ipcChildLink as w, brokerCallForCap as x, createAddonDataPlaneFacility as xt, __resetCapUsageRegistryForTests as y, runNpm as yt, AGENT_CAP_FWD_ACTION as z };
7323
+ export { buildNativeCapProxy as $, createHubCapForwardService as A, AGENT_CAP_FWD_ACTION as B, brokerTransportLink as C, createAddonDataPlaneFacility as Ct, localProviderLink as D, ipcParentLink as E, createUdsLogger as F, callWithServiceDiscovery as G, CapRouteResolver as H, createUdsLoggerWithControl as I, UdsLocalTransportServer as J, createLocalTransport as K, LocalChildClient as L, createUdsEventBridge as M, createUdsEventBus as N, HUB_CAP_FWD_ACTION as O, udsChildLogToWorkerEntry as P, encodeFrame as Q, LocalChildRegistry as R, brokerCallForCap as S, resolveAddonClass as St, ipcChildLink as T, CapRouteError as U, AGENT_CAP_FWD_SERVICE as V, classifyCapRoute as W, localEndpointPath as X, SocketChannel as Y, FrameDecoder as Z, createKernelHwAccel as _, CapabilityHandle as _t, getWorkerDeviceRegistry as a, setWorkerNativeCapsChangeListener as at, __resetCapUsageRegistryForTests as b, resolveNpmInvocation as bt, setHubConnected as c, NATIVE_PROVIDER_SERVICE_INFIX as ct, getBrokerEventBus as d, capBareAction as dt, buildUdsNativeCapProxy as et, getMoleculerEventStats as f, capServiceName as ft, AddonDepsManager as g, DeviceRegistry as gt, subscribePassthrough as h, serializeTypedArrays as ht, createUdsAddonContext as i, mountNativeCapService as it, createParentUnownedCallHandler as j, HUB_CAP_FWD_SERVICE as k, EVENT_TOPIC_PREFIX as l, capActionName as lt, setNodeEventInterest as m, deserializeTypedArrays as mt, adaptBrokerToCluster as n, getWorkerNativeCapProvider as nt, getOrInitReadinessRegistry as o, createAddonService as ot, registerEventBusService as p, parseCapAction as pt, UdsLocalTransportClient as q, createAddonContext as r, getWorkerNativeCapSnapshot as rt, getOrInitReadinessRegistryForClient as s, validateProviderRegistrations as st, installManifestPythonDeps as t, createBrokerDeviceManagerApi as tt, clusterEventTopic as u, capActionSuffix as ut, resolveHwAccel as v, CapabilityUnavailableError as vt, buildLinkChain as w, getCapUsageRegistry as x, runNpm as xt, CapUsageRegistry as y, installManifestNativeDeps as yt, UDS_NO_ROUTE_PREFIX as z };
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-C0Pf5ShP.js");
2
+ const require_dist = require("./dist-B9OD5Tdn.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");
@@ -7520,6 +7520,12 @@ Object.defineProperty(exports, "classifyCapRoute", {
7520
7520
  return classifyCapRoute;
7521
7521
  }
7522
7522
  });
7523
+ Object.defineProperty(exports, "clusterEventTopic", {
7524
+ enumerable: true,
7525
+ get: function() {
7526
+ return clusterEventTopic;
7527
+ }
7528
+ });
7523
7529
  Object.defineProperty(exports, "createAddonContext", {
7524
7530
  enumerable: true,
7525
7531
  get: function() {
@@ -7724,6 +7730,12 @@ Object.defineProperty(exports, "resolveHwAccel", {
7724
7730
  return resolveHwAccel;
7725
7731
  }
7726
7732
  });
7733
+ Object.defineProperty(exports, "resolveNpmInvocation", {
7734
+ enumerable: true,
7735
+ get: function() {
7736
+ return resolveNpmInvocation;
7737
+ }
7738
+ });
7727
7739
  Object.defineProperty(exports, "runNpm", {
7728
7740
  enumerable: true,
7729
7741
  get: function() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/system",
3
- "version": "1.1.76",
3
+ "version": "1.2.0",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",