@camstack/system 1.2.114 → 1.2.116

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 (69) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  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.d.ts +1 -1
  8. package/dist/builtins/alerts/alerts.addon.js +6 -1
  9. package/dist/builtins/alerts/alerts.addon.mjs +6 -1
  10. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  11. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  12. package/dist/builtins/console-logging/index.js +1 -1
  13. package/dist/builtins/console-logging/index.mjs +1 -1
  14. package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
  15. package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
  16. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  17. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  18. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  19. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  20. package/dist/builtins/hub-forwarder/index.js +1 -1
  21. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  22. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  23. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  24. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  25. package/dist/builtins/local-auth/local-auth.addon.mjs +3 -3
  26. package/dist/builtins/local-network/local-hostname.d.ts +15 -0
  27. package/dist/builtins/local-network/local-network.addon.d.ts +31 -7
  28. package/dist/builtins/local-network/local-network.addon.js +177 -28
  29. package/dist/builtins/local-network/local-network.addon.mjs +177 -28
  30. package/dist/builtins/loki-logging/index.js +1 -1
  31. package/dist/builtins/loki-logging/index.mjs +1 -1
  32. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  33. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  34. package/dist/builtins/platform-probe/index.js +1 -1
  35. package/dist/builtins/platform-probe/index.mjs +1 -1
  36. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  37. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  38. package/dist/builtins/snapshot/index.js +1 -1
  39. package/dist/builtins/snapshot/index.mjs +1 -1
  40. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  41. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  42. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +2 -2
  43. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +2 -2
  44. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  45. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  46. package/dist/builtins/system-config/system-config.addon.js +1 -1
  47. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  48. package/dist/builtins/winston-logging/index.js +1 -1
  49. package/dist/builtins/winston-logging/index.mjs +1 -1
  50. package/dist/{dist-CJ8RRSvQ.mjs → dist-BpzbLPel.mjs} +149 -6
  51. package/dist/{dist-C1Aea3c6.js → dist-Cri60Jd0.js} +149 -6
  52. package/dist/http/lan-http-bind.d.ts +19 -0
  53. package/dist/index.d.ts +1 -0
  54. package/dist/index.js +30 -82
  55. package/dist/index.mjs +11 -83
  56. package/dist/lan-http-bind-BDJm4d-K.mjs +716 -0
  57. package/dist/lan-http-bind-CZ4EBeD_.js +848 -0
  58. package/dist/{retired-settings-keys-B52KsNz8.js → retired-settings-keys-BVAxT5XL.js} +1 -1
  59. package/dist/{retired-settings-keys-C1efPfyW.mjs → retired-settings-keys-SrxMH3OT.mjs} +1 -1
  60. package/dist/tls/cert-evaluation.d.ts +41 -0
  61. package/dist/tls/cert-identity.d.ts +37 -0
  62. package/dist/tls/cert-manager.d.ts +71 -6
  63. package/dist/tls/cert-openssl.d.ts +23 -0
  64. package/dist/tls/index.d.ts +5 -1
  65. package/dist/tls/tls-status.d.ts +16 -0
  66. package/dist/tls/uploaded-cert.d.ts +14 -0
  67. package/package.json +1 -1
  68. package/dist/{manifest-python-deps-MA_BZGBz.js → manifest-python-deps-CwBbX4Ut.js} +1 -1
  69. package/dist/{manifest-python-deps-Cb1ANt3i.mjs → manifest-python-deps-SGdbr9D5.mjs} +1 -1
package/dist/index.js CHANGED
@@ -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-C1Aea3c6.js");
3
+ const require_dist = require("./dist-Cri60Jd0.js");
4
4
  const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
5
5
  require("./builtins/alerts/index.js");
6
6
  const require_formatter = require("./formatter-DqAKDlvN.js");
@@ -25,8 +25,9 @@ const require_builtins_system_config_system_config_addon = require("./builtins/s
25
25
  require("./builtins/system-config/index.js");
26
26
  const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
27
27
  const require_file_data_plane = require("./file-data-plane-DUHPHa-Y.js");
28
- const require_manifest_python_deps = require("./manifest-python-deps-MA_BZGBz.js");
28
+ const require_manifest_python_deps = require("./manifest-python-deps-CwBbX4Ut.js");
29
29
  const require_resource_monitor = require("./resource-monitor-CdnzxBLP.js");
30
+ const require_lan_http_bind = require("./lan-http-bind-CZ4EBeD_.js");
30
31
  const require_custom_action_registry = require("./custom-action-registry-jY0NOZK8.js");
31
32
  let zod = require("zod");
32
33
  let node_crypto = require("node:crypto");
@@ -1515,7 +1516,7 @@ var PipelineValidator = class {
1515
1516
  };
1516
1517
  //#endregion
1517
1518
  //#region src/python/python-env-manager.ts
1518
- var execFileAsync$4 = (0, node_util.promisify)(node_child_process.execFile);
1519
+ var execFileAsync$3 = (0, node_util.promisify)(node_child_process.execFile);
1519
1520
  var PythonEnvManager = class {
1520
1521
  venvPath;
1521
1522
  cachedProbe = null;
@@ -1525,12 +1526,12 @@ var PythonEnvManager = class {
1525
1526
  async probe() {
1526
1527
  if (this.cachedProbe) return this.cachedProbe;
1527
1528
  for (const cmd of ["python3", "python"]) try {
1528
- const { stdout } = await execFileAsync$4(cmd, ["--version"]);
1529
+ const { stdout } = await execFileAsync$3(cmd, ["--version"]);
1529
1530
  const version = stdout.trim().replace("Python ", "");
1530
1531
  const major = parseInt(version.split(".")[0] ?? "0", 10);
1531
1532
  const minor = parseInt(version.split(".")[1] ?? "0", 10);
1532
1533
  if (major < 3 || major === 3 && minor < 10) continue;
1533
- const { stdout: pathOut } = await execFileAsync$4(cmd, ["-c", "import sys; print(sys.executable)"]);
1534
+ const { stdout: pathOut } = await execFileAsync$3(cmd, ["-c", "import sys; print(sys.executable)"]);
1534
1535
  this.cachedProbe = {
1535
1536
  available: true,
1536
1537
  version,
@@ -1546,13 +1547,13 @@ var PythonEnvManager = class {
1546
1547
  async ensure(options) {
1547
1548
  const probe = await this.probe();
1548
1549
  if (!probe.available || !probe.path) throw new Error("Python 3.10+ is required but not found on this system");
1549
- if (!node_fs.existsSync(node_path.join(this.venvPath, "bin", "python"))) await execFileAsync$4(probe.path, [
1550
+ if (!node_fs.existsSync(node_path.join(this.venvPath, "bin", "python"))) await execFileAsync$3(probe.path, [
1550
1551
  "-m",
1551
1552
  "venv",
1552
1553
  this.venvPath
1553
1554
  ]);
1554
1555
  const venvPython = node_path.join(this.venvPath, "bin", "python");
1555
- if (options.packages.length > 0) await execFileAsync$4(venvPython, [
1556
+ if (options.packages.length > 0) await execFileAsync$3(venvPython, [
1556
1557
  "-m",
1557
1558
  "pip",
1558
1559
  "install",
@@ -2017,79 +2018,6 @@ var StorageManager = class {
2017
2018
  }
2018
2019
  };
2019
2020
  //#endregion
2020
- //#region src/tls/cert-manager.ts
2021
- var execFileAsync$3 = (0, node_util.promisify)(node_child_process.execFile);
2022
- /**
2023
- * Ensure a self-signed TLS certificate exists in the given directory.
2024
- * Generates one if missing. Returns paths to cert and key files.
2025
- */
2026
- async function ensureTlsCert(dataDir, options) {
2027
- const tlsDir = (0, node_path.join)(dataDir, "tls");
2028
- const certPath = (0, node_path.join)(tlsDir, "camstack.crt");
2029
- const keyPath = (0, node_path.join)(tlsDir, "camstack.key");
2030
- if ((0, node_fs.existsSync)(certPath) && (0, node_fs.existsSync)(keyPath)) try {
2031
- const x509 = new node_crypto.X509Certificate((0, node_fs.readFileSync)(certPath));
2032
- if (new Date(x509.validTo) > /* @__PURE__ */ new Date()) return {
2033
- certPath,
2034
- keyPath,
2035
- generated: false
2036
- };
2037
- } catch {}
2038
- (0, node_fs.mkdirSync)(tlsDir, { recursive: true });
2039
- const cn = options?.commonName ?? "camstack.local";
2040
- const validDays = options?.validDays ?? 825;
2041
- const sanDns = new Set([
2042
- "localhost",
2043
- cn,
2044
- node_os.hostname()
2045
- ]);
2046
- const sanIps = new Set(["127.0.0.1", "::1"]);
2047
- const interfaces = node_os.networkInterfaces();
2048
- for (const addrs of Object.values(interfaces)) {
2049
- if (!addrs) continue;
2050
- for (const addr of addrs) if (!addr.internal) sanIps.add(addr.address);
2051
- }
2052
- for (const san of options?.extraSans ?? []) if (san.match(/^\d+\.\d+\.\d+\.\d+$/) || san.includes(":")) sanIps.add(san);
2053
- else sanDns.add(san);
2054
- const sanParts = [];
2055
- for (const dns of sanDns) sanParts.push(`DNS:${dns}`);
2056
- for (const ip of sanIps) sanParts.push(`IP:${ip}`);
2057
- const sanString = sanParts.join(",");
2058
- await execFileAsync$3("openssl", [
2059
- "req",
2060
- "-x509",
2061
- "-newkey",
2062
- "rsa:2048",
2063
- "-keyout",
2064
- keyPath,
2065
- "-out",
2066
- certPath,
2067
- "-days",
2068
- String(validDays),
2069
- "-nodes",
2070
- "-subj",
2071
- `/CN=${cn}`,
2072
- "-addext",
2073
- `subjectAltName=${sanString}`
2074
- ]);
2075
- const { chmod } = await import("node:fs/promises");
2076
- await chmod(keyPath, 384);
2077
- return {
2078
- certPath,
2079
- keyPath,
2080
- generated: true
2081
- };
2082
- }
2083
- /**
2084
- * Load TLS cert+key from files. Returns Buffers suitable for Node.js TLS options.
2085
- */
2086
- function loadTlsCert(certPath, keyPath) {
2087
- return {
2088
- cert: (0, node_fs.readFileSync)(certPath),
2089
- key: (0, node_fs.readFileSync)(keyPath)
2090
- };
2091
- }
2092
- //#endregion
2093
2021
  //#region src/builtins/sqlite-storage/integration-registry.ts
2094
2022
  function serializeSetting(value) {
2095
2023
  if (typeof value === "number") return {
@@ -94910,6 +94838,8 @@ exports.AddonRouteRegistry = AddonRouteRegistry;
94910
94838
  exports.AlertCenterAddon = require_builtins_alerts_alerts_addon.AlertCenterAddon;
94911
94839
  exports.ApiKeyManager = require_builtins_local_auth_local_auth_addon.ApiKeyManager;
94912
94840
  exports.AuthManager = require_builtins_local_auth_local_auth_addon.AuthManager;
94841
+ exports.CA_COMMON_NAME = require_lan_http_bind.CA_COMMON_NAME;
94842
+ exports.CA_VALIDITY_DAYS = require_lan_http_bind.CA_VALIDITY_DAYS;
94913
94843
  exports.CLUSTER_SECRET_MISMATCH_TYPE = CLUSTER_SECRET_MISMATCH_TYPE;
94914
94844
  exports.CLUSTER_SECRET_REJECTED_EXIT_CODE = CLUSTER_SECRET_REJECTED_EXIT_CODE;
94915
94845
  exports.CORE_CAP_SERVICE_NAME = CORE_CAP_SERVICE_NAME;
@@ -94926,6 +94856,7 @@ exports.ConsoleLoggingAddon = require_builtins_console_logging_index.ConsoleLogg
94926
94856
  exports.CoreBlocksAddon = require_builtins_core_blocks_core_blocks_addon.CoreBlocksAddon;
94927
94857
  exports.CustomActionRegistry = require_custom_action_registry.CustomActionRegistry;
94928
94858
  exports.DEFAULT_DATA_PATH = DEFAULT_DATA_PATH;
94859
+ exports.DEFAULT_LAN_HTTP_PORT = require_lan_http_bind.DEFAULT_LAN_HTTP_PORT;
94929
94860
  exports.DEVICE_SETTINGS_CONTRIBUTION_METHODS = require_dist.DEVICE_SETTINGS_CONTRIBUTION_METHODS;
94930
94861
  exports.DEVICE_STATUS_METHOD = require_dist.DEVICE_STATUS_METHOD;
94931
94862
  exports.DataPlaneRegistry = DataPlaneRegistry;
@@ -94956,6 +94887,7 @@ exports.HubNodeRegistry = HubNodeRegistry;
94956
94887
  exports.INFRA_CAPABILITIES = INFRA_CAPABILITIES;
94957
94888
  exports.IntegrationRegistry = IntegrationRegistry;
94958
94889
  exports.JobJournal = JobJournal;
94890
+ exports.LEAF_RENEWAL_WINDOW_DAYS = require_lan_http_bind.LEAF_RENEWAL_WINDOW_DAYS;
94959
94891
  exports.LifecycleJobEngine = LifecycleJobEngine;
94960
94892
  exports.LifecycleStateMachine = LifecycleStateMachine;
94961
94893
  exports.LivenessMonitorAddon = require_builtins_liveness_monitor_liveness_monitor_addon.LivenessMonitorAddon;
@@ -94966,6 +94898,7 @@ exports.LogManager = LogManager;
94966
94898
  exports.LogRingBuffer = LogRingBuffer;
94967
94899
  exports.LokiDestination = require_builtins_loki_logging_index.LokiDestination$1;
94968
94900
  exports.LokiLoggingAddon = require_builtins_loki_logging_index.LokiLoggingAddon$1;
94901
+ exports.MAX_LEAF_VALIDITY_DAYS = require_lan_http_bind.MAX_LEAF_VALIDITY_DAYS;
94969
94902
  exports.METHOD_ACCESS_MAP = require_dist.METHOD_ACCESS_MAP;
94970
94903
  exports.ModelDownloadService = require_file_data_plane.ModelDownloadService;
94971
94904
  exports.NATIVE_PROVIDER_SERVICE_INFIX = require_manifest_python_deps.NATIVE_PROVIDER_SERVICE_INFIX;
@@ -94991,6 +94924,7 @@ exports.ReadinessRegistry = require_dist.ReadinessRegistry;
94991
94924
  exports.ReadinessTimeoutError = require_dist.ReadinessTimeoutError;
94992
94925
  exports.ReplEngine = ReplEngine;
94993
94926
  exports.RingBuffer = RingBuffer;
94927
+ exports.SERVER_AUTH_OID = require_lan_http_bind.SERVER_AUTH_OID;
94994
94928
  exports.ScopedLogger = ScopedLogger;
94995
94929
  exports.ScopedTokenManager = require_builtins_local_auth_local_auth_addon.ScopedTokenManager;
94996
94930
  exports.SocketChannel = require_manifest_python_deps.SocketChannel;
@@ -95014,6 +94948,8 @@ exports.WinstonLoggingAddon = require_builtins_winston_logging_index.WinstonLogg
95014
94948
  exports.__resetCapUsageRegistryForTests = require_manifest_python_deps.__resetCapUsageRegistryForTests;
95015
94949
  exports.adaptBrokerToCluster = require_manifest_python_deps.adaptBrokerToCluster;
95016
94950
  exports.addonSettingsCapability = require_dist.addonSettingsCapability;
94951
+ exports.applyLanHttp = require_lan_http_bind.applyLanHttp;
94952
+ exports.bindPendingLanHttp = require_lan_http_bind.bindPendingLanHttp;
95017
94953
  exports.bootstrapSchema = bootstrapSchema;
95018
94954
  exports.brokerCallForCap = require_manifest_python_deps.brokerCallForCap;
95019
94955
  exports.brokerTransportLink = require_manifest_python_deps.brokerTransportLink;
@@ -95040,8 +94976,10 @@ exports.capServiceName = require_manifest_python_deps.capServiceName;
95040
94976
  exports.classifyAddonDir = classifyAddonDir;
95041
94977
  exports.classifyCapRoute = require_manifest_python_deps.classifyCapRoute;
95042
94978
  exports.clearPendingRestart = clearPendingRestart;
94979
+ exports.closeLanHttp = require_lan_http_bind.closeLanHttp;
95043
94980
  exports.clusterEventTopic = require_manifest_python_deps.clusterEventTopic;
95044
94981
  exports.clusterSecretMatches = clusterSecretMatches;
94982
+ exports.collectCertIdentity = require_lan_http_bind.collectCertIdentity;
95045
94983
  exports.collectModelFiles = require_file_data_plane.collectModelFiles;
95046
94984
  exports.contentTypeFor = require_file_data_plane.contentTypeFor;
95047
94985
  exports.copyDirRecursive = copyDirRecursive;
@@ -95107,7 +95045,8 @@ Object.defineProperty(exports, "ensurePython", {
95107
95045
  return _camstack_types_node.ensurePython;
95108
95046
  }
95109
95047
  });
95110
- exports.ensureTlsCert = ensureTlsCert;
95048
+ exports.ensureTlsCert = require_lan_http_bind.ensureTlsCert;
95049
+ exports.evaluateExistingCert = require_lan_http_bind.evaluateExistingCert;
95111
95050
  exports.expandCapMethods = require_dist.expandCapMethods;
95112
95051
  exports.fetchJson = require_file_data_plane.fetchJson;
95113
95052
  Object.defineProperty(exports, "findInPath", {
@@ -95171,7 +95110,7 @@ exports.isCollectionArrayMethod = require_dist.isCollectionArrayMethod;
95171
95110
  exports.isInfraCapability = isInfraCapability;
95172
95111
  exports.isModelDownloaded = require_file_data_plane.isModelDownloaded;
95173
95112
  exports.isSourceNewer = isSourceNewer;
95174
- exports.loadTlsCert = loadTlsCert;
95113
+ exports.loadTlsCert = require_lan_http_bind.loadTlsCert;
95175
95114
  exports.localEndpointPath = require_manifest_python_deps.localEndpointPath;
95176
95115
  exports.localProviderLink = require_manifest_python_deps.localProviderLink;
95177
95116
  exports.mountNativeCapService = require_manifest_python_deps.mountNativeCapService;
@@ -95180,9 +95119,15 @@ exports.parseRangeHeader = require_file_data_plane.parseRangeHeader;
95180
95119
  exports.parseTokenizedUrl = require_file_data_plane.parseTokenizedUrl;
95181
95120
  exports.proxyToUpstream = proxyToUpstream;
95182
95121
  exports.quarantineAddonResidue = quarantineAddonResidue;
95122
+ exports.readExtraSans = require_lan_http_bind.readExtraSans;
95123
+ exports.readLanHttpState = require_lan_http_bind.readLanHttpState;
95183
95124
  exports.readPendingRestart = readPendingRestart;
95125
+ exports.readTlsAccessStatus = require_lan_http_bind.readTlsAccessStatus;
95126
+ exports.readTlsMode = require_lan_http_bind.readTlsMode;
95184
95127
  exports.readinessKey = require_dist.readinessKey;
95185
95128
  exports.registerEventBusService = require_manifest_python_deps.registerEventBusService;
95129
+ exports.registerLanHttpHandler = require_lan_http_bind.registerLanHttpHandler;
95130
+ exports.reissueTlsLeaf = require_lan_http_bind.reissueTlsLeaf;
95186
95131
  exports.resolveFilePath = require_file_data_plane.resolveFilePath;
95187
95132
  exports.resolveHwAccel = require_manifest_python_deps.resolveHwAccel;
95188
95133
  exports.resolveNpmInvocation = require_manifest_python_deps.resolveNpmInvocation;
@@ -95203,4 +95148,7 @@ exports.stripCamstackDeps = stripCamstackDeps;
95203
95148
  exports.subscribePassthrough = require_manifest_python_deps.subscribePassthrough;
95204
95149
  exports.udsChildLogToWorkerEntry = require_manifest_python_deps.udsChildLogToWorkerEntry;
95205
95150
  exports.validateProviderRegistrations = require_manifest_python_deps.validateProviderRegistrations;
95151
+ exports.validateUploadedTls = require_lan_http_bind.validateUploadedTls;
95152
+ exports.writeExtraSans = require_lan_http_bind.writeExtraSans;
95206
95153
  exports.writePendingRestart = writePendingRestart;
95154
+ exports.writeTlsMode = require_lan_http_bind.writeTlsMode;
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM$1, r as __exportAll, t as __commonJSMin$1 } from "./chunk-CNf5ZN-e.mjs";
2
- import { At as asNumber, B as extractNestedAddonId, Bt as parseJsonUnknown$1, Dt as ReadinessTimeoutError, Et as ReadinessRegistry, Ft as expandCapMethods, Gt as EventCategory$1, H as isArrayOutputSchema, Ht as resolveCapMount, J as lifecycleJobSchema, K as isVoidInput, Mt as createEvent, Nt as emitDownForOwnedCaps, Q as looseSchema, St as DEVICE_STATUS_METHOD, U as isCollectionArrayMethod, Ut as scopeKey, Vt as readinessKey, W as isObjectInput, Z as logLevelAtMost, bt as DATAPLANE_SECRET_HEADER$1, d as METHOD_ACCESS_MAP, f as RUNTIME_DEFAULTS, it as procedureAuthKey, jt as asString$1, kt as asJsonObject$1, ot as scopesAllowAddon, q as kebabToCamel, st as scopesAllowDeviceCap, t as ALL_CAPABILITY_DEFINITIONS, tt as objectInputDeclaresAddonId, vt as errMsg$1, xt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, y as addonSettingsCapability, zt as parseJsonObject } from "./dist-CJ8RRSvQ.mjs";
2
+ import { At as asNumber, B as extractNestedAddonId, Bt as parseJsonUnknown$1, Dt as ReadinessTimeoutError, Et as ReadinessRegistry, Ft as expandCapMethods, Gt as EventCategory$1, H as isArrayOutputSchema, Ht as resolveCapMount, J as lifecycleJobSchema, K as isVoidInput, Mt as createEvent, Nt as emitDownForOwnedCaps, Q as looseSchema, St as DEVICE_STATUS_METHOD, U as isCollectionArrayMethod, Ut as scopeKey, Vt as readinessKey, W as isObjectInput, Z as logLevelAtMost, bt as DATAPLANE_SECRET_HEADER$1, d as METHOD_ACCESS_MAP, f as RUNTIME_DEFAULTS, it as procedureAuthKey, jt as asString$1, kt as asJsonObject$1, ot as scopesAllowAddon, q as kebabToCamel, st as scopesAllowDeviceCap, t as ALL_CAPABILITY_DEFINITIONS, tt as objectInputDeclaresAddonId, vt as errMsg$1, xt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, y as addonSettingsCapability, zt as parseJsonObject } from "./dist-BpzbLPel.mjs";
3
3
  import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
4
4
  import "./builtins/alerts/index.mjs";
5
5
  import { t as formatLogLine } from "./formatter-B7qW8bPJ.mjs";
@@ -24,11 +24,12 @@ import { SystemConfigAddon } from "./builtins/system-config/system-config.addon.
24
24
  import "./builtins/system-config/index.mjs";
25
25
  import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
26
26
  import { a as parseTokenizedUrl, c as collectModelFiles, d as downloadModel, f as ensureModel, h as isModelDownloaded, i as parseRangeHeader, l as deleteModelFromDisk, m as getModelFilePath, n as contentTypeFor, o as resolveFilePath, p as fetchJson, r as createAuthenticatedFileServer, s as ModelDownloadService, t as createFileDataPlaneHandler, u as downloadFile } from "./file-data-plane-CuE_hBli.mjs";
27
- import { $ as buildNativeCapProxy, A as createHubCapForwardService, At as buildHeapSample, B as AGENT_CAP_FWD_ACTION, C as brokerTransportLink, Ct as runNpm, D as localProviderLink, Dt as HEAP_WATCH_INTERVAL_MS, E as ipcParentLink, Et as HEAP_RECLAIM_TRIGGER_MB, F as createUdsLogger, Ft as strandedMb, G as callWithServiceDiscovery, H as CapRouteResolver, I as createUdsLoggerWithControl, J as UdsLocalTransportServer, K as createLocalTransport, L as LocalChildClient, M as createUdsEventBridge, Mt as shouldReclaim, N as createUdsEventBus, Nt as startHeapWatch, O as HUB_CAP_FWD_ACTION, Ot as HEAP_WATCH_WARN_RATIO, P as udsChildLogToWorkerEntry, Pt as startRunnerHeapWatch, Q as encodeFrame, R as LocalChildRegistry, S as brokerCallForCap, St as resolveNpmInvocation, T as ipcChildLink, Tt as HEAP_RECLAIM_MIN_INTERVAL_MS, 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 installManifestNativeDeps, 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, jt as createV8Reclaimer, k as HUB_CAP_FWD_SERVICE, kt as RUNNER_HEAP_WATCH_INTERVAL_MS, 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, wt as createAddonDataPlaneFacility, x as getCapUsageRegistry, xt as resolveAddonClass, y as CapUsageRegistry, yt as copyBundledNativeModules, z as UDS_NO_ROUTE_PREFIX } from "./manifest-python-deps-Cb1ANt3i.mjs";
27
+ import { $ as buildNativeCapProxy, A as createHubCapForwardService, At as buildHeapSample, B as AGENT_CAP_FWD_ACTION, C as brokerTransportLink, Ct as runNpm, D as localProviderLink, Dt as HEAP_WATCH_INTERVAL_MS, E as ipcParentLink, Et as HEAP_RECLAIM_TRIGGER_MB, F as createUdsLogger, Ft as strandedMb, G as callWithServiceDiscovery, H as CapRouteResolver, I as createUdsLoggerWithControl, J as UdsLocalTransportServer, K as createLocalTransport, L as LocalChildClient, M as createUdsEventBridge, Mt as shouldReclaim, N as createUdsEventBus, Nt as startHeapWatch, O as HUB_CAP_FWD_ACTION, Ot as HEAP_WATCH_WARN_RATIO, P as udsChildLogToWorkerEntry, Pt as startRunnerHeapWatch, Q as encodeFrame, R as LocalChildRegistry, S as brokerCallForCap, St as resolveNpmInvocation, T as ipcChildLink, Tt as HEAP_RECLAIM_MIN_INTERVAL_MS, 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 installManifestNativeDeps, 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, jt as createV8Reclaimer, k as HUB_CAP_FWD_SERVICE, kt as RUNNER_HEAP_WATCH_INTERVAL_MS, 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, wt as createAddonDataPlaneFacility, x as getCapUsageRegistry, xt as resolveAddonClass, y as CapUsageRegistry, yt as copyBundledNativeModules, z as UDS_NO_ROUTE_PREFIX } from "./manifest-python-deps-SGdbr9D5.mjs";
28
28
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-BWmQ5i-o.mjs";
29
+ import { S as evaluateExistingCert, _ as collectCertIdentity, a as readLanHttpState, b as MAX_LEAF_VALIDITY_DAYS, c as readTlsAccessStatus, d as writeTlsMode, f as validateUploadedTls, g as CA_COMMON_NAME, h as reissueTlsLeaf, i as closeLanHttp, l as readTlsMode, m as loadTlsCert, n as applyLanHttp, o as registerLanHttpHandler, p as ensureTlsCert, r as bindPendingLanHttp, s as readExtraSans, t as DEFAULT_LAN_HTTP_PORT, u as writeExtraSans, v as CA_VALIDITY_DAYS, x as SERVER_AUTH_OID, y as LEAF_RENEWAL_WINDOW_DAYS } from "./lan-http-bind-BDJm4d-K.mjs";
29
30
  import { t as CustomActionRegistry } from "./custom-action-registry-F__gp_VX.mjs";
30
31
  import { z } from "zod";
31
- import { X509Certificate, createHash, randomUUID, timingSafeEqual } from "node:crypto";
32
+ import { createHash, randomUUID, timingSafeEqual } from "node:crypto";
32
33
  import { PYTHON_VERSION, buildBinaryPath, downloadBinary, ensureBinary, ensureFfmpeg, ensurePython, findInPath, getFfmpegDownloadUrl, getPlatformInfo, getPythonDownloadUrl, installPythonPackages, installPythonRequirements } from "@camstack/types/node";
33
34
  import { lstat, readdir, readlink, realpath } from "node:fs/promises";
34
35
  import * as path$39 from "node:path";
@@ -38,7 +39,7 @@ import * as util$10 from "node:util";
38
39
  import { promisify } from "node:util";
39
40
  import * as os$18 from "node:os";
40
41
  import * as fs$17 from "node:fs";
41
- import { accessSync, constants, existsSync, mkdirSync, readFileSync } from "node:fs";
42
+ import { accessSync, constants, existsSync } from "node:fs";
42
43
  import { request } from "node:http";
43
44
  import * as vm from "node:vm";
44
45
  import { asJsonObject, errMsg, parseJsonUnknown } from "@camstack/types/addon";
@@ -1508,7 +1509,7 @@ var PipelineValidator = class {
1508
1509
  };
1509
1510
  //#endregion
1510
1511
  //#region src/python/python-env-manager.ts
1511
- var execFileAsync$4 = promisify(execFile);
1512
+ var execFileAsync$3 = promisify(execFile);
1512
1513
  var PythonEnvManager = class {
1513
1514
  venvPath;
1514
1515
  cachedProbe = null;
@@ -1518,12 +1519,12 @@ var PythonEnvManager = class {
1518
1519
  async probe() {
1519
1520
  if (this.cachedProbe) return this.cachedProbe;
1520
1521
  for (const cmd of ["python3", "python"]) try {
1521
- const { stdout } = await execFileAsync$4(cmd, ["--version"]);
1522
+ const { stdout } = await execFileAsync$3(cmd, ["--version"]);
1522
1523
  const version = stdout.trim().replace("Python ", "");
1523
1524
  const major = parseInt(version.split(".")[0] ?? "0", 10);
1524
1525
  const minor = parseInt(version.split(".")[1] ?? "0", 10);
1525
1526
  if (major < 3 || major === 3 && minor < 10) continue;
1526
- const { stdout: pathOut } = await execFileAsync$4(cmd, ["-c", "import sys; print(sys.executable)"]);
1527
+ const { stdout: pathOut } = await execFileAsync$3(cmd, ["-c", "import sys; print(sys.executable)"]);
1527
1528
  this.cachedProbe = {
1528
1529
  available: true,
1529
1530
  version,
@@ -1539,13 +1540,13 @@ var PythonEnvManager = class {
1539
1540
  async ensure(options) {
1540
1541
  const probe = await this.probe();
1541
1542
  if (!probe.available || !probe.path) throw new Error("Python 3.10+ is required but not found on this system");
1542
- if (!fs$17.existsSync(path$39.join(this.venvPath, "bin", "python"))) await execFileAsync$4(probe.path, [
1543
+ if (!fs$17.existsSync(path$39.join(this.venvPath, "bin", "python"))) await execFileAsync$3(probe.path, [
1543
1544
  "-m",
1544
1545
  "venv",
1545
1546
  this.venvPath
1546
1547
  ]);
1547
1548
  const venvPython = path$39.join(this.venvPath, "bin", "python");
1548
- if (options.packages.length > 0) await execFileAsync$4(venvPython, [
1549
+ if (options.packages.length > 0) await execFileAsync$3(venvPython, [
1549
1550
  "-m",
1550
1551
  "pip",
1551
1552
  "install",
@@ -2010,79 +2011,6 @@ var StorageManager = class {
2010
2011
  }
2011
2012
  };
2012
2013
  //#endregion
2013
- //#region src/tls/cert-manager.ts
2014
- var execFileAsync$3 = promisify(execFile);
2015
- /**
2016
- * Ensure a self-signed TLS certificate exists in the given directory.
2017
- * Generates one if missing. Returns paths to cert and key files.
2018
- */
2019
- async function ensureTlsCert(dataDir, options) {
2020
- const tlsDir = join(dataDir, "tls");
2021
- const certPath = join(tlsDir, "camstack.crt");
2022
- const keyPath = join(tlsDir, "camstack.key");
2023
- if (existsSync(certPath) && existsSync(keyPath)) try {
2024
- const x509 = new X509Certificate(readFileSync(certPath));
2025
- if (new Date(x509.validTo) > /* @__PURE__ */ new Date()) return {
2026
- certPath,
2027
- keyPath,
2028
- generated: false
2029
- };
2030
- } catch {}
2031
- mkdirSync(tlsDir, { recursive: true });
2032
- const cn = options?.commonName ?? "camstack.local";
2033
- const validDays = options?.validDays ?? 825;
2034
- const sanDns = new Set([
2035
- "localhost",
2036
- cn,
2037
- os$18.hostname()
2038
- ]);
2039
- const sanIps = new Set(["127.0.0.1", "::1"]);
2040
- const interfaces = os$18.networkInterfaces();
2041
- for (const addrs of Object.values(interfaces)) {
2042
- if (!addrs) continue;
2043
- for (const addr of addrs) if (!addr.internal) sanIps.add(addr.address);
2044
- }
2045
- for (const san of options?.extraSans ?? []) if (san.match(/^\d+\.\d+\.\d+\.\d+$/) || san.includes(":")) sanIps.add(san);
2046
- else sanDns.add(san);
2047
- const sanParts = [];
2048
- for (const dns of sanDns) sanParts.push(`DNS:${dns}`);
2049
- for (const ip of sanIps) sanParts.push(`IP:${ip}`);
2050
- const sanString = sanParts.join(",");
2051
- await execFileAsync$3("openssl", [
2052
- "req",
2053
- "-x509",
2054
- "-newkey",
2055
- "rsa:2048",
2056
- "-keyout",
2057
- keyPath,
2058
- "-out",
2059
- certPath,
2060
- "-days",
2061
- String(validDays),
2062
- "-nodes",
2063
- "-subj",
2064
- `/CN=${cn}`,
2065
- "-addext",
2066
- `subjectAltName=${sanString}`
2067
- ]);
2068
- const { chmod } = await import("node:fs/promises");
2069
- await chmod(keyPath, 384);
2070
- return {
2071
- certPath,
2072
- keyPath,
2073
- generated: true
2074
- };
2075
- }
2076
- /**
2077
- * Load TLS cert+key from files. Returns Buffers suitable for Node.js TLS options.
2078
- */
2079
- function loadTlsCert(certPath, keyPath) {
2080
- return {
2081
- cert: readFileSync(certPath),
2082
- key: readFileSync(keyPath)
2083
- };
2084
- }
2085
- //#endregion
2086
2014
  //#region src/builtins/sqlite-storage/integration-registry.ts
2087
2015
  function serializeSetting(value) {
2088
2016
  if (typeof value === "number") return {
@@ -94888,4 +94816,4 @@ var LifecycleJobEngine = class {
94888
94816
  }
94889
94817
  };
94890
94818
  //#endregion
94891
- 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, CoreBlocksAddon, 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, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, INFRA_CAPABILITIES, IntegrationRegistry, JobJournal, LifecycleJobEngine, LifecycleStateMachine, LivenessMonitorAddon, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, LokiDestination, LokiLoggingAddon, METHOD_ACCESS_MAP, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NATIVE_SCAN_DEPTH, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, PYTHON_VERSION, PipelineRunner, PipelineValidator, PythonEnvManager, QUARANTINE_DIRNAME, RESTART_MARKER_FILE, RUNNER_HEAP_WATCH_INTERVAL_MS, RUNTIME_DEFAULTS, ReadinessRegistry, ReadinessTimeoutError, ReplEngine, RingBuffer, ScopedLogger, ScopedTokenManager, SocketChannel, SqliteSettingsAddon, SqliteSettingsBackend, StagingArea, StorageLocationManager, StorageManager, StorageOrchestratorAddon, StorageOrchestratorService, SystemConfigAddon, SystemEventBus, TRADITIONAL_NATIVE_PACKAGES, ToastService, UDS_NO_ROUTE_PREFIX, UdsLocalTransportClient, UdsLocalTransportServer, UserManager, WinstonDestination, WinstonLoggingAddon, __resetCapUsageRegistryForTests, adaptBrokerToCluster, addonSettingsCapability, bootstrapSchema, brokerCallForCap, brokerTransportLink, buildBinaryPath, buildCapRouters, buildHeapSample, buildLinkChain, buildNativeCapProxy, buildNodeManifest, buildStorageLocationRegistry, buildUdsNativeCapProxy, builderMountedCapNames, callRegisterNodeWithRetry, callWithServiceDiscovery, capActionName, capActionSuffix, capBareAction, capServiceName, classifyAddonDir, 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, createV8Reclaimer, deleteModelFromDisk, deriveAgentListenPort, describeProviderKindDrift, detectWorkspacePackagesDir, downloadBinary, downloadFile, downloadModel, emitDownForOwnedCaps, encodeFrame, ensureAddonNativePrebuilds, ensureBinary, ensureDir, ensureFfmpeg, ensureLibraryBuilt, ensureModel, ensureNativePrebuilds, ensurePython, ensureTlsCert, expandCapMethods, fetchJson, findInPath, formatLogLine, getBrokerEventBus, getCapUsageRegistry, getFfmpegDownloadUrl, getModelFilePath, getMoleculerEventStats, getOrInitReadinessRegistry, getOrInitReadinessRegistryForClient, getPidStats, getPlatformInfo, getPythonDownloadUrl, getRestartMarkerPath, getSinglePidStats, getWorkerDeviceRegistry, hasDotNode, hashClusterSecret, installManifestNativeDeps, installManifestPythonDeps, installPackageFromNpm, installPythonPackages, installPythonRequirements, ipcChildLink, ipcParentLink, isAddonDeploySource, isArrayOutputSchema, isClusterSecretMismatchError, isCollectionArrayMethod, isInfraCapability, isModelDownloaded, isSourceNewer, loadTlsCert, localEndpointPath, localProviderLink, mountNativeCapService, parseCapAction, parseRangeHeader, parseTokenizedUrl, proxyToUpstream, quarantineAddonResidue, readPendingRestart, readinessKey, registerEventBusService, resolveFilePath, resolveHwAccel, resolveNpmInvocation, runNpm, scheduleSelfRestart, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, selectAddonResidue, serializeTypedArrays, setHubConnected, setNodeEventInterest, shouldReclaim, startHeapWatch, startRunnerHeapWatch, strandedMb, stripCamstackDeps, subscribePassthrough, udsChildLogToWorkerEntry, validateProviderRegistrations, writePendingRestart };
94819
+ 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, CA_COMMON_NAME, CA_VALIDITY_DAYS, CLUSTER_SECRET_MISMATCH_TYPE, CLUSTER_SECRET_REJECTED_EXIT_CODE, CORE_CAP_SERVICE_NAME, CapRouteError, CapRouteResolver, CapUsageRegistry, CapabilityHandle, CapabilityRegistry, CapabilityUnavailableError, ConfigManager, ConfigStore, ConsoleDestination, ConsoleLoggingAddon, CoreBlocksAddon, CustomActionRegistry, DEFAULT_DATA_PATH, DEFAULT_LAN_HTTP_PORT, 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, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, INFRA_CAPABILITIES, IntegrationRegistry, JobJournal, LEAF_RENEWAL_WINDOW_DAYS, LifecycleJobEngine, LifecycleStateMachine, LivenessMonitorAddon, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, LokiDestination, LokiLoggingAddon, MAX_LEAF_VALIDITY_DAYS, METHOD_ACCESS_MAP, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NATIVE_SCAN_DEPTH, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, PYTHON_VERSION, PipelineRunner, PipelineValidator, PythonEnvManager, QUARANTINE_DIRNAME, RESTART_MARKER_FILE, RUNNER_HEAP_WATCH_INTERVAL_MS, RUNTIME_DEFAULTS, ReadinessRegistry, ReadinessTimeoutError, ReplEngine, RingBuffer, SERVER_AUTH_OID, ScopedLogger, ScopedTokenManager, SocketChannel, SqliteSettingsAddon, SqliteSettingsBackend, StagingArea, StorageLocationManager, StorageManager, StorageOrchestratorAddon, StorageOrchestratorService, SystemConfigAddon, SystemEventBus, TRADITIONAL_NATIVE_PACKAGES, ToastService, UDS_NO_ROUTE_PREFIX, UdsLocalTransportClient, UdsLocalTransportServer, UserManager, WinstonDestination, WinstonLoggingAddon, __resetCapUsageRegistryForTests, adaptBrokerToCluster, addonSettingsCapability, applyLanHttp, bindPendingLanHttp, bootstrapSchema, brokerCallForCap, brokerTransportLink, buildBinaryPath, buildCapRouters, buildHeapSample, buildLinkChain, buildNativeCapProxy, buildNodeManifest, buildStorageLocationRegistry, buildUdsNativeCapProxy, builderMountedCapNames, callRegisterNodeWithRetry, callWithServiceDiscovery, capActionName, capActionSuffix, capBareAction, capServiceName, classifyAddonDir, classifyCapRoute, clearPendingRestart, closeLanHttp, clusterEventTopic, clusterSecretMatches, collectCertIdentity, 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, createV8Reclaimer, deleteModelFromDisk, deriveAgentListenPort, describeProviderKindDrift, detectWorkspacePackagesDir, downloadBinary, downloadFile, downloadModel, emitDownForOwnedCaps, encodeFrame, ensureAddonNativePrebuilds, ensureBinary, ensureDir, ensureFfmpeg, ensureLibraryBuilt, ensureModel, ensureNativePrebuilds, ensurePython, ensureTlsCert, evaluateExistingCert, expandCapMethods, fetchJson, findInPath, formatLogLine, getBrokerEventBus, getCapUsageRegistry, getFfmpegDownloadUrl, getModelFilePath, getMoleculerEventStats, getOrInitReadinessRegistry, getOrInitReadinessRegistryForClient, getPidStats, getPlatformInfo, getPythonDownloadUrl, getRestartMarkerPath, getSinglePidStats, getWorkerDeviceRegistry, hasDotNode, hashClusterSecret, installManifestNativeDeps, installManifestPythonDeps, installPackageFromNpm, installPythonPackages, installPythonRequirements, ipcChildLink, ipcParentLink, isAddonDeploySource, isArrayOutputSchema, isClusterSecretMismatchError, isCollectionArrayMethod, isInfraCapability, isModelDownloaded, isSourceNewer, loadTlsCert, localEndpointPath, localProviderLink, mountNativeCapService, parseCapAction, parseRangeHeader, parseTokenizedUrl, proxyToUpstream, quarantineAddonResidue, readExtraSans, readLanHttpState, readPendingRestart, readTlsAccessStatus, readTlsMode, readinessKey, registerEventBusService, registerLanHttpHandler, reissueTlsLeaf, resolveFilePath, resolveHwAccel, resolveNpmInvocation, runNpm, scheduleSelfRestart, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, selectAddonResidue, serializeTypedArrays, setHubConnected, setNodeEventInterest, shouldReclaim, startHeapWatch, startRunnerHeapWatch, strandedMb, stripCamstackDeps, subscribePassthrough, udsChildLogToWorkerEntry, validateProviderRegistrations, validateUploadedTls, writeExtraSans, writePendingRestart, writeTlsMode };