@camstack/system 1.1.34 → 1.1.36

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 (49) hide show
  1. package/dist/addon-runner.js +87 -35
  2. package/dist/addon-runner.mjs +87 -35
  3. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +6 -6
  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 +6 -6
  6. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/alerts/alerts.addon.js +12 -12
  8. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  9. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +5 -5
  10. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  11. package/dist/builtins/console-logging/index.js +3 -3
  12. package/dist/builtins/console-logging/index.mjs +1 -1
  13. package/dist/builtins/device-manager/device-manager.addon.js +69 -69
  14. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  15. package/dist/builtins/hub-forwarder/index.js +3 -3
  16. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  17. package/dist/builtins/local-auth/local-auth.addon.js +7 -7
  18. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  19. package/dist/builtins/local-network/local-network.addon.js +7 -7
  20. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  21. package/dist/builtins/native-metrics/native-metrics.addon.js +5 -5
  22. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  23. package/dist/builtins/platform-probe/index.js +13 -13
  24. package/dist/builtins/platform-probe/index.mjs +1 -1
  25. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +4 -4
  26. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  27. package/dist/builtins/snapshot/index.js +13 -13
  28. package/dist/builtins/snapshot/index.mjs +1 -1
  29. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +4 -4
  30. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  31. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +9 -9
  32. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +1 -1
  33. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +5 -5
  34. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  35. package/dist/builtins/system-config/system-config.addon.js +5 -5
  36. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  37. package/dist/builtins/winston-logging/index.js +3 -3
  38. package/dist/builtins/winston-logging/index.mjs +1 -1
  39. package/dist/dist-C7oOY4iL.mjs +24559 -0
  40. package/dist/dist-COIhbSao.js +25032 -0
  41. package/dist/index.d.ts +1 -0
  42. package/dist/index.js +92 -115
  43. package/dist/index.mjs +52 -52
  44. package/dist/kernel/moleculer/child-cap-descriptors.d.ts +34 -0
  45. package/dist/kernel/moleculer/child-cap-dispatch.d.ts +10 -2
  46. package/dist/kernel/transport/child-cap-protocol.d.ts +20 -0
  47. package/dist/{manifest-python-deps-u-AQBQY6.mjs → manifest-python-deps-BYIV8-rc.mjs} +31 -29
  48. package/dist/{manifest-python-deps-CAnO1wPx.js → manifest-python-deps-CZFqI4wp.js} +7 -5
  49. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { ensureBinary, downloadBinary, findInPath, getPlatformInfo, buildBinaryPath, ensureFfmpeg, getFfmpegDownloadUrl, ensurePython, installPythonPackages, installPythonRequirements, getPythonDownloadUrl, PYTHON_VERSION, } from '@camstack/types/node';
2
2
  export type { PlatformInfo } from '@camstack/types/node';
3
+ export { ALL_CAPABILITY_DEFINITIONS, METHOD_ACCESS_MAP, expandCapMethods, isArrayOutputSchema, addonSettingsCapability, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, } from '@camstack/types';
3
4
  export { EventBus } from './events/event-bus.js';
4
5
  export { createAuthenticatedFileServer, parseTokenizedUrl, resolveFilePath, contentTypeFor, parseRangeHeader, } from './http/authenticated-file-server.js';
5
6
  export type { AuthenticatedFileServerOptions, FileServerHandle, FileServerTokenVerifier, FileResolveResult, ByteRange, } from './http/authenticated-file-server.js';
package/dist/index.js CHANGED
@@ -1,5 +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-COIhbSao.js");
3
4
  const require_model_download_service = require("./model-download-service-D-Umz4-L.js");
4
5
  const require_resource_monitor = require("./resource-monitor-DNNomR-i.js");
5
6
  const require_builtins_sqlite_storage_filesystem_storage_addon = require("./builtins/sqlite-storage/filesystem-storage.addon.js");
@@ -20,16 +21,16 @@ const require_builtins_local_auth_local_auth_addon = require("./builtins/local-a
20
21
  require("./builtins/local-auth/index.js");
21
22
  const require_builtins_device_manager_device_manager_addon = require("./builtins/device-manager/device-manager.addon.js");
22
23
  require("./builtins/device-manager/index.js");
23
- const require_manifest_python_deps = require("./manifest-python-deps-CAnO1wPx.js");
24
+ const require_manifest_python_deps = require("./manifest-python-deps-CZFqI4wp.js");
24
25
  const require_custom_action_registry = require("./custom-action-registry-vLYEFTtv.js");
25
26
  let _camstack_types_node = require("@camstack/types/node");
27
+ let zod = require("zod");
26
28
  let node_http = require("node:http");
27
29
  let node_fs = require("node:fs");
28
30
  let node_fs$1 = require_chunk.__toESM(node_fs, 1);
29
31
  node_fs = require_chunk.__toESM(node_fs);
30
32
  let node_path = require("node:path");
31
33
  node_path = require_chunk.__toESM(node_path, 1);
32
- let _camstack_types = require("@camstack/types");
33
34
  let node_crypto = require("node:crypto");
34
35
  let node_child_process = require("node:child_process");
35
36
  let node_util = require("node:util");
@@ -39,7 +40,6 @@ node_vm = require_chunk.__toESM(node_vm);
39
40
  let node_os = require("node:os");
40
41
  node_os = require_chunk.__toESM(node_os);
41
42
  let node_fs_promises = require("node:fs/promises");
42
- let zod = require("zod");
43
43
  let _camstack_types_addon = require("@camstack/types/addon");
44
44
  let node_events = require("node:events");
45
45
  let node_stream = require("node:stream");
@@ -158,7 +158,7 @@ function proxyToUpstream(opts) {
158
158
  delete headers.host;
159
159
  delete headers.connection;
160
160
  delete headers["content-length"];
161
- headers[_camstack_types.DATAPLANE_SECRET_HEADER] = secret;
161
+ headers[require_dist.DATAPLANE_SECRET_HEADER] = secret;
162
162
  const upstream = (0, node_http.request)({
163
163
  protocol: base.protocol,
164
164
  hostname: base.hostname,
@@ -328,7 +328,7 @@ var PipelineRunner = class {
328
328
  }
329
329
  } catch (error) {
330
330
  const stepMs = performance.now() - stepStart;
331
- const message = (0, _camstack_types.errMsg)(error);
331
+ const message = require_dist.errMsg(error);
332
332
  results.push({
333
333
  addon: node.addon,
334
334
  slot: "detector",
@@ -1570,7 +1570,7 @@ var NotificationService = class {
1570
1570
  this.logger.error("Notification target failed", { meta: {
1571
1571
  addonId: ref.addonId,
1572
1572
  targetId: ref.targetId,
1573
- error: (0, _camstack_types.errMsg)(err)
1573
+ error: require_dist.errMsg(err)
1574
1574
  } });
1575
1575
  }
1576
1576
  }));
@@ -2216,7 +2216,7 @@ var IntegrationRegistry = class {
2216
2216
  addonId: String(row["addon_id"]),
2217
2217
  name: String(row["name"]),
2218
2218
  enabled: row["enabled"] === 1,
2219
- info: typeof row["info"] === "string" ? (0, _camstack_types.parseJsonObject)(row["info"]) ?? {} : {},
2219
+ info: typeof row["info"] === "string" ? require_dist.parseJsonObject(row["info"]) ?? {} : {},
2220
2220
  createdAt: Number(row["created_at"]),
2221
2221
  updatedAt: Number(row["updated_at"])
2222
2222
  };
@@ -2229,7 +2229,7 @@ var IntegrationRegistry = class {
2229
2229
  type: String(row["type"]),
2230
2230
  name: String(row["name"]),
2231
2231
  enabled: row["enabled"] === 1,
2232
- info: typeof row["info"] === "string" ? (0, _camstack_types.parseJsonObject)(row["info"]) ?? {} : {},
2232
+ info: typeof row["info"] === "string" ? require_dist.parseJsonObject(row["info"]) ?? {} : {},
2233
2233
  createdAt: Number(row["created_at"]),
2234
2234
  updatedAt: Number(row["updated_at"])
2235
2235
  };
@@ -2346,7 +2346,7 @@ var AddonLoader = class {
2346
2346
  /** Load addon from a specific directory (package.json + dist/) */
2347
2347
  async loadFromAddonDir(addonDir) {
2348
2348
  const pkgJsonPath = node_path.join(addonDir, "package.json");
2349
- const pkgJson = (0, _camstack_types.asJsonObject)((0, _camstack_types.parseJsonUnknown)(node_fs.readFileSync(pkgJsonPath, "utf-8"))) ?? {};
2349
+ const pkgJson = require_dist.asJsonObject(require_dist.parseJsonUnknown(node_fs.readFileSync(pkgJsonPath, "utf-8"))) ?? {};
2350
2350
  const packageNameRaw = pkgJson["name"];
2351
2351
  const packageName = typeof packageNameRaw === "string" ? packageNameRaw : "";
2352
2352
  const packageVersionRaw = pkgJson["version"];
@@ -2712,7 +2712,7 @@ async function installPackageFromNpm(packageName, targetDir) {
2712
2712
  const distSrc = node_path.join(srcPkgJsonDir, "dist");
2713
2713
  if (node_fs.existsSync(distSrc)) await copyDirRecursive(distSrc, node_path.join(targetDir, "dist"));
2714
2714
  try {
2715
- const npmPkg = (0, _camstack_types.asJsonObject)((0, _camstack_types.parseJsonUnknown)(await node_fs.promises.readFile(node_path.join(srcPkgJsonDir, "package.json"), "utf-8")));
2715
+ const npmPkg = require_dist.asJsonObject(require_dist.parseJsonUnknown(await node_fs.promises.readFile(node_path.join(srcPkgJsonDir, "package.json"), "utf-8")));
2716
2716
  if (npmPkg) await copyExtraFileDirs(npmPkg, srcPkgJsonDir, targetDir);
2717
2717
  } catch {}
2718
2718
  } finally {
@@ -2944,15 +2944,15 @@ function parseInstallSource(value) {
2944
2944
  function readPackageJson(pkgJsonPath) {
2945
2945
  let raw;
2946
2946
  try {
2947
- raw = (0, _camstack_types.asJsonObject)((0, _camstack_types.parseJsonUnknown)(node_fs.readFileSync(pkgJsonPath, "utf-8")));
2947
+ raw = require_dist.asJsonObject(require_dist.parseJsonUnknown(node_fs.readFileSync(pkgJsonPath, "utf-8")));
2948
2948
  } catch {
2949
2949
  return null;
2950
2950
  }
2951
2951
  if (!raw) return null;
2952
- const name = (0, _camstack_types.asString)(raw["name"]);
2953
- const version = (0, _camstack_types.asString)(raw["version"]);
2952
+ const name = require_dist.asString(raw["name"]);
2953
+ const version = require_dist.asString(raw["version"]);
2954
2954
  if (!name || !version) return null;
2955
- const camstack = (0, _camstack_types.asJsonObject)(raw["camstack"]);
2955
+ const camstack = require_dist.asJsonObject(raw["camstack"]);
2956
2956
  const addonsField = camstack ? camstack["addons"] : void 0;
2957
2957
  return {
2958
2958
  name,
@@ -3072,7 +3072,7 @@ var AddonInstaller = class AddonInstaller {
3072
3072
  }
3073
3073
  await this.installFromNpm(packageName);
3074
3074
  } catch (err) {
3075
- const msg = (0, _camstack_types.errMsg)(err);
3075
+ const msg = require_dist.errMsg(err);
3076
3076
  if (packageName === "@camstack/system") throw new Error(`Required package ${packageName} failed to install: ${msg}`, { cause: err });
3077
3077
  this.logger.error(`Failed to install ${packageName}`, { meta: { error: msg } });
3078
3078
  }
@@ -3125,7 +3125,7 @@ var AddonInstaller = class AddonInstaller {
3125
3125
  if (this.installSource === "symlink") try {
3126
3126
  return await this.installSymlink(packageName, sourceDir, pkgView.raw, targetDir);
3127
3127
  } catch (err) {
3128
- this.logger.warn(`${packageName} — symlink failed, falling back to copy: ${(0, _camstack_types.errMsg)(err)}`);
3128
+ this.logger.warn(`${packageName} — symlink failed, falling back to copy: ${require_dist.errMsg(err)}`);
3129
3129
  }
3130
3130
  return this.installCopy(packageName, sourceDir, pkgView.raw, targetDir);
3131
3131
  }
@@ -3153,13 +3153,13 @@ var AddonInstaller = class AddonInstaller {
3153
3153
  ensureDir(node_path.dirname(targetDir));
3154
3154
  node_fs.symlinkSync(sourceDir, targetDir, "dir");
3155
3155
  this.manifest.upsert(packageName, {
3156
- version: (0, _camstack_types.asString)(pkgData.version, "0.0.0"),
3156
+ version: require_dist.asString(pkgData.version, "0.0.0"),
3157
3157
  source: "local"
3158
3158
  });
3159
3159
  this.logger.info(`${packageName} — symlinked → ${sourceDir}`);
3160
3160
  return {
3161
- name: (0, _camstack_types.asString)(pkgData.name, packageName),
3162
- version: (0, _camstack_types.asString)(pkgData.version, "0.0.0")
3161
+ name: require_dist.asString(pkgData.name, packageName),
3162
+ version: require_dist.asString(pkgData.version, "0.0.0")
3163
3163
  };
3164
3164
  }
3165
3165
  async installCopy(packageName, sourceDir, pkgData, targetDir) {
@@ -3175,7 +3175,7 @@ var AddonInstaller = class AddonInstaller {
3175
3175
  await copyDirRecursive(distDir, node_path.join(targetDir, "dist"));
3176
3176
  await copyExtraFileDirs(pkgData, sourceDir, targetDir);
3177
3177
  await node_fs.promises.writeFile(node_path.join(targetDir, ".install-source"), "local");
3178
- const localPkgVersion = (0, _camstack_types.asString)(pkgData.version, "0.0.0");
3178
+ const localPkgVersion = require_dist.asString(pkgData.version, "0.0.0");
3179
3179
  this.manifest.upsert(packageName, {
3180
3180
  version: localPkgVersion,
3181
3181
  source: "local"
@@ -3194,7 +3194,7 @@ var AddonInstaller = class AddonInstaller {
3194
3194
  try {
3195
3195
  await require_manifest_python_deps.installManifestNativeDeps(targetDir, pkgData, this.logger, this.registry);
3196
3196
  } catch (err) {
3197
- this.logger.warn(`${packageName} — native deps install failed (continuing)`, { meta: { error: (0, _camstack_types.errMsg)(err) } });
3197
+ this.logger.warn(`${packageName} — native deps install failed (continuing)`, { meta: { error: require_dist.errMsg(err) } });
3198
3198
  }
3199
3199
  this.logger.info(`${packageName} — copied from ${sourceDir}`);
3200
3200
  return {
@@ -3320,7 +3320,7 @@ var AddonInstaller = class AddonInstaller {
3320
3320
  }).catch((cleanupErr) => {
3321
3321
  this.logger.debug("evictInstallDir: aside cleanup deferred (likely held open)", { meta: {
3322
3322
  asideDir,
3323
- error: (0, _camstack_types.errMsg)(cleanupErr)
3323
+ error: require_dist.errMsg(cleanupErr)
3324
3324
  } });
3325
3325
  });
3326
3326
  }
@@ -3383,7 +3383,7 @@ var AddonInstaller = class AddonInstaller {
3383
3383
  try {
3384
3384
  await require_manifest_python_deps.installManifestNativeDeps(pkgDir, pkgView.raw, this.logger, this.registry);
3385
3385
  } catch (nativeErr) {
3386
- throw new Error(`${pkgView.name} — native deps install failed: ${(0, _camstack_types.errMsg)(nativeErr)}`, { cause: nativeErr });
3386
+ throw new Error(`${pkgView.name} — native deps install failed: ${require_dist.errMsg(nativeErr)}`, { cause: nativeErr });
3387
3387
  }
3388
3388
  await this.evictInstallDir(targetDir);
3389
3389
  ensureDir(node_path.dirname(targetDir));
@@ -3442,7 +3442,7 @@ var AddonInstaller = class AddonInstaller {
3442
3442
  };
3443
3443
  } else result = await this.installFromNpm(packageName, version);
3444
3444
  } catch (installErr) {
3445
- this.logger.error(`${packageName} — install failed, restoring backup`, { meta: { error: (0, _camstack_types.errMsg)(installErr) } });
3445
+ this.logger.error(`${packageName} — install failed, restoring backup`, { meta: { error: require_dist.errMsg(installErr) } });
3446
3446
  try {
3447
3447
  if (node_fs.existsSync(addonDir)) node_fs.rmSync(addonDir, {
3448
3448
  recursive: true,
@@ -3457,7 +3457,7 @@ var AddonInstaller = class AddonInstaller {
3457
3457
  } catch (restoreErr) {
3458
3458
  this.logger.error(`${packageName} — backup restore ALSO failed; manual recovery needed`, { meta: {
3459
3459
  backupDir,
3460
- error: (0, _camstack_types.errMsg)(restoreErr)
3460
+ error: require_dist.errMsg(restoreErr)
3461
3461
  } });
3462
3462
  }
3463
3463
  throw installErr;
@@ -3512,7 +3512,7 @@ var AddonInstaller = class AddonInstaller {
3512
3512
  } else throw renameErr;
3513
3513
  }
3514
3514
  } catch (swapErr) {
3515
- this.logger.error(`${packageName} — staged swap failed, restoring backup`, { meta: { error: (0, _camstack_types.errMsg)(swapErr) } });
3515
+ this.logger.error(`${packageName} — staged swap failed, restoring backup`, { meta: { error: require_dist.errMsg(swapErr) } });
3516
3516
  try {
3517
3517
  if (node_fs.existsSync(addonDir)) node_fs.rmSync(addonDir, {
3518
3518
  recursive: true,
@@ -3527,7 +3527,7 @@ var AddonInstaller = class AddonInstaller {
3527
3527
  } catch (restoreErr) {
3528
3528
  this.logger.error(`${packageName} — backup restore ALSO failed; manual recovery needed`, { meta: {
3529
3529
  backupDir,
3530
- error: (0, _camstack_types.errMsg)(restoreErr)
3530
+ error: require_dist.errMsg(restoreErr)
3531
3531
  } });
3532
3532
  }
3533
3533
  throw swapErr;
@@ -3671,8 +3671,8 @@ var AddonInstaller = class AddonInstaller {
3671
3671
  ]) {
3672
3672
  const candidate = node_path.join(this.workspaceDir, dirName);
3673
3673
  try {
3674
- const pkg = (0, _camstack_types.asJsonObject)((0, _camstack_types.parseJsonUnknown)(node_fs.readFileSync(node_path.join(candidate, "package.json"), "utf-8")));
3675
- if (pkg && (0, _camstack_types.asString)(pkg["name"]) === packageName) return candidate;
3674
+ const pkg = require_dist.asJsonObject(require_dist.parseJsonUnknown(node_fs.readFileSync(node_path.join(candidate, "package.json"), "utf-8")));
3675
+ if (pkg && require_dist.asString(pkg["name"]) === packageName) return candidate;
3676
3676
  } catch {}
3677
3677
  }
3678
3678
  return null;
@@ -3688,7 +3688,7 @@ var AddonInstaller = class AddonInstaller {
3688
3688
  timeout: 18e4
3689
3689
  });
3690
3690
  } catch (err) {
3691
- const msg = (0, _camstack_types.errMsg)(err);
3691
+ const msg = require_dist.errMsg(err);
3692
3692
  this.logger.warn(`${packageName} auto-build failed`, { meta: { error: msg } });
3693
3693
  }
3694
3694
  }
@@ -3808,7 +3808,7 @@ function readPendingRestart(dataDir) {
3808
3808
  }
3809
3809
  let parsed;
3810
3810
  try {
3811
- parsed = (0, _camstack_types.asJsonObject)((0, _camstack_types.parseJsonUnknown)(raw));
3811
+ parsed = require_dist.asJsonObject(require_dist.parseJsonUnknown(raw));
3812
3812
  } catch (err) {
3813
3813
  console.error("[restart-coordinator] Marker JSON invalid — clearing:", err);
3814
3814
  clearPendingRestart(dataDir);
@@ -3819,8 +3819,8 @@ function readPendingRestart(dataDir) {
3819
3819
  clearPendingRestart(dataDir);
3820
3820
  return null;
3821
3821
  }
3822
- const kindRaw = (0, _camstack_types.asString)(parsed["kind"]);
3823
- const requestedAt = (0, _camstack_types.asNumber)(parsed["requestedAt"]);
3822
+ const kindRaw = require_dist.asString(parsed["kind"]);
3823
+ const requestedAt = require_dist.asNumber(parsed["requestedAt"]);
3824
3824
  if (!isRestartKind(kindRaw) || requestedAt <= 0) {
3825
3825
  console.error("[restart-coordinator] Marker missing kind/requestedAt — clearing");
3826
3826
  clearPendingRestart(dataDir);
@@ -4943,7 +4943,7 @@ var CapabilityRegistry = class CapabilityRegistry {
4943
4943
  * backend coupling (self-sufficiency invariant).
4944
4944
  */
4945
4945
  function methodsFor(def) {
4946
- const effective = (0, _camstack_types.expandCapMethods)(def);
4946
+ const effective = require_dist.expandCapMethods(def);
4947
4947
  return Object.entries(effective).map(([name, schema]) => {
4948
4948
  const m = schema;
4949
4949
  return {
@@ -4951,8 +4951,8 @@ function methodsFor(def) {
4951
4951
  kind: m.kind ?? "query",
4952
4952
  auth: m.auth ?? "protected",
4953
4953
  schema: m,
4954
- isVoid: (0, _camstack_types.isVoidInput)(m.input),
4955
- isObject: (0, _camstack_types.isObjectInput)(m.input)
4954
+ isVoid: require_dist.isVoidInput(m.input),
4955
+ isObject: require_dist.isObjectInput(m.input)
4956
4956
  };
4957
4957
  });
4958
4958
  }
@@ -4999,13 +4999,13 @@ function requireLocal(capName, getLocal, services) {
4999
4999
  */
5000
5000
  function buildOneCapRouter(def, primitives, services) {
5001
5001
  const capName = def.name;
5002
- const mount = (0, _camstack_types.resolveCapMount)(def);
5002
+ const mount = require_dist.resolveCapMount(def);
5003
5003
  const isCollection = mount.kind === "collection";
5004
5004
  const nodeIdData = def.nodeIdMode === "data";
5005
5005
  const procedures = {};
5006
5006
  const getLocal = (ctx, addonId) => services.getLocalProvider(capName, mount.kind, ctx, addonId);
5007
5007
  for (const method of methodsFor(def)) {
5008
- const base = primitives.procedures[(0, _camstack_types.procedureAuthKey)(method.auth)];
5008
+ const base = primitives.procedures[require_dist.procedureAuthKey(method.auth)];
5009
5009
  const inputSchema = method.schema.input;
5010
5010
  if (method.kind === "subscription") {
5011
5011
  procedures[method.name] = base.input(inputSchema).subscription(({ input, ctx }) => {
@@ -5031,7 +5031,7 @@ function buildOneCapRouter(def, primitives, services) {
5031
5031
  continue;
5032
5032
  }
5033
5033
  if (method.isObject) {
5034
- const schema = nodeIdData ? inputSchema : (0, _camstack_types.looseSchema)(inputSchema);
5034
+ const schema = nodeIdData ? inputSchema : require_dist.looseSchema(inputSchema);
5035
5035
  procedures[method.name] = base.input(schema)[procKind](({ input, ctx }) => {
5036
5036
  if (nodeIdData) return requireLocal(capName, () => getLocal(ctx), services)[method.name]?.(input);
5037
5037
  if (isCollection) {
@@ -5070,21 +5070,21 @@ function isBuilderMounted(kind) {
5070
5070
  */
5071
5071
  function buildCapRouters(primitives, services) {
5072
5072
  const out = {};
5073
- for (const def of _camstack_types.ALL_CAPABILITY_DEFINITIONS) {
5074
- if (!isBuilderMounted((0, _camstack_types.resolveCapMount)(def).kind)) continue;
5075
- const effective = (0, _camstack_types.expandCapMethods)(def);
5073
+ for (const def of require_dist.ALL_CAPABILITY_DEFINITIONS) {
5074
+ if (!isBuilderMounted(require_dist.resolveCapMount(def).kind)) continue;
5075
+ const effective = require_dist.expandCapMethods(def);
5076
5076
  if (Object.keys(effective).length === 0) continue;
5077
- out[(0, _camstack_types.kebabToCamel)(def.name)] = buildOneCapRouter(def, primitives, services);
5077
+ out[require_dist.kebabToCamel(def.name)] = buildOneCapRouter(def, primitives, services);
5078
5078
  }
5079
5079
  return out;
5080
5080
  }
5081
5081
  /** The set of cap camelNames the builder owns (for drift checks / tests). */
5082
5082
  function builderMountedCapNames() {
5083
5083
  const names = [];
5084
- for (const def of _camstack_types.ALL_CAPABILITY_DEFINITIONS) {
5085
- if (!isBuilderMounted((0, _camstack_types.resolveCapMount)(def).kind)) continue;
5086
- if (Object.keys((0, _camstack_types.expandCapMethods)(def)).length === 0) continue;
5087
- names.push((0, _camstack_types.kebabToCamel)(def.name));
5084
+ for (const def of require_dist.ALL_CAPABILITY_DEFINITIONS) {
5085
+ if (!isBuilderMounted(require_dist.resolveCapMount(def).kind)) continue;
5086
+ if (Object.keys(require_dist.expandCapMethods(def)).length === 0) continue;
5087
+ names.push(require_dist.kebabToCamel(def.name));
5088
5088
  }
5089
5089
  return names;
5090
5090
  }
@@ -7643,7 +7643,7 @@ var ConfigManager = class ConfigManager {
7643
7643
  const nested = this.getNestedFromSystemSettings(configPath);
7644
7644
  if (nested !== null) return nested;
7645
7645
  }
7646
- if (configPath in _camstack_types.RUNTIME_DEFAULTS) return _camstack_types.RUNTIME_DEFAULTS[configPath];
7646
+ if (configPath in require_dist.RUNTIME_DEFAULTS) return require_dist.RUNTIME_DEFAULTS[configPath];
7647
7647
  return this.getFromRuntimeDefaults(configPath) ?? void 0;
7648
7648
  }
7649
7649
  /**
@@ -7868,7 +7868,7 @@ var ConfigManager = class ConfigManager {
7868
7868
  const g = (key) => {
7869
7869
  const storeValue = this.get(`features.${key}`);
7870
7870
  if (typeof storeValue === "boolean") return storeValue;
7871
- return _camstack_types.RUNTIME_DEFAULTS[`features.${key}`];
7871
+ return require_dist.RUNTIME_DEFAULTS[`features.${key}`];
7872
7872
  };
7873
7873
  return {
7874
7874
  streaming: g("streaming"),
@@ -7887,33 +7887,33 @@ var ConfigManager = class ConfigManager {
7887
7887
  */
7888
7888
  get raw() {
7889
7889
  const features = {
7890
- streaming: _camstack_types.RUNTIME_DEFAULTS["features.streaming"],
7891
- notifications: _camstack_types.RUNTIME_DEFAULTS["features.notifications"],
7892
- objectDetection: _camstack_types.RUNTIME_DEFAULTS["features.objectDetection"],
7893
- remoteAccess: _camstack_types.RUNTIME_DEFAULTS["features.remoteAccess"],
7894
- agentCluster: _camstack_types.RUNTIME_DEFAULTS["features.agentCluster"],
7895
- smartHome: _camstack_types.RUNTIME_DEFAULTS["features.smartHome"],
7896
- recordings: _camstack_types.RUNTIME_DEFAULTS["features.recordings"],
7897
- backup: _camstack_types.RUNTIME_DEFAULTS["features.backup"],
7898
- repl: _camstack_types.RUNTIME_DEFAULTS["features.repl"]
7890
+ streaming: require_dist.RUNTIME_DEFAULTS["features.streaming"],
7891
+ notifications: require_dist.RUNTIME_DEFAULTS["features.notifications"],
7892
+ objectDetection: require_dist.RUNTIME_DEFAULTS["features.objectDetection"],
7893
+ remoteAccess: require_dist.RUNTIME_DEFAULTS["features.remoteAccess"],
7894
+ agentCluster: require_dist.RUNTIME_DEFAULTS["features.agentCluster"],
7895
+ smartHome: require_dist.RUNTIME_DEFAULTS["features.smartHome"],
7896
+ recordings: require_dist.RUNTIME_DEFAULTS["features.recordings"],
7897
+ backup: require_dist.RUNTIME_DEFAULTS["features.backup"],
7898
+ repl: require_dist.RUNTIME_DEFAULTS["features.repl"]
7899
7899
  };
7900
7900
  return {
7901
7901
  ...this.bootstrapConfig,
7902
7902
  features,
7903
7903
  storage: {
7904
- provider: _camstack_types.RUNTIME_DEFAULTS["storage.provider"],
7905
- locations: { ..._camstack_types.RUNTIME_DEFAULTS["storage.locations"] }
7904
+ provider: require_dist.RUNTIME_DEFAULTS["storage.provider"],
7905
+ locations: { ...require_dist.RUNTIME_DEFAULTS["storage.locations"] }
7906
7906
  },
7907
7907
  logging: {
7908
- level: _camstack_types.RUNTIME_DEFAULTS["logging.level"],
7909
- retentionDays: _camstack_types.RUNTIME_DEFAULTS["logging.retentionDays"]
7908
+ level: require_dist.RUNTIME_DEFAULTS["logging.level"],
7909
+ retentionDays: require_dist.RUNTIME_DEFAULTS["logging.retentionDays"]
7910
7910
  },
7911
- eventBus: { ringBufferSize: _camstack_types.RUNTIME_DEFAULTS["eventBus.ringBufferSize"] },
7911
+ eventBus: { ringBufferSize: require_dist.RUNTIME_DEFAULTS["eventBus.ringBufferSize"] },
7912
7912
  retention: {
7913
- detectionEventsDays: _camstack_types.RUNTIME_DEFAULTS["retention.detectionEventsDays"],
7914
- audioLevelsDays: _camstack_types.RUNTIME_DEFAULTS["retention.audioLevelsDays"]
7913
+ detectionEventsDays: require_dist.RUNTIME_DEFAULTS["retention.detectionEventsDays"],
7914
+ audioLevelsDays: require_dist.RUNTIME_DEFAULTS["retention.audioLevelsDays"]
7915
7915
  },
7916
- providers: [..._camstack_types.RUNTIME_DEFAULTS["providers"]]
7916
+ providers: [...require_dist.RUNTIME_DEFAULTS["providers"]]
7917
7917
  };
7918
7918
  }
7919
7919
  /** Sections that live in config.yaml. Everything else goes to the settings-store. */
@@ -8005,7 +8005,7 @@ var ConfigManager = class ConfigManager {
8005
8005
  const prefix = configPath + ".";
8006
8006
  const result = {};
8007
8007
  let found = false;
8008
- for (const [key, value] of Object.entries(_camstack_types.RUNTIME_DEFAULTS)) if (key.startsWith(prefix)) {
8008
+ for (const [key, value] of Object.entries(require_dist.RUNTIME_DEFAULTS)) if (key.startsWith(prefix)) {
8009
8009
  const subKey = key.slice(prefix.length);
8010
8010
  result[subKey] = value;
8011
8011
  found = true;
@@ -91670,7 +91670,7 @@ var HubLogForwarder = class {
91670
91670
  tags: mergedTags,
91671
91671
  ...entry.meta !== void 0 ? { meta: entry.meta } : {}
91672
91672
  }).catch((err) => {
91673
- console.error(`[HubLogForwarder] $hub.log call failed: ${(0, _camstack_types.errMsg)(err)}`);
91673
+ console.error(`[HubLogForwarder] $hub.log call failed: ${require_dist.errMsg(err)}`);
91674
91674
  });
91675
91675
  }
91676
91676
  async shutdown() {
@@ -92047,7 +92047,7 @@ var AddonHealthMonitor = class {
92047
92047
  alertEmitted: false,
92048
92048
  retrying: false
92049
92049
  });
92050
- if (wasAlerting) this.emit(_camstack_types.EventCategory.AddonLoadRecovered, {
92050
+ if (wasAlerting) this.emit(require_dist.EventCategory.AddonLoadRecovered, {
92051
92051
  packageName,
92052
92052
  addonId: addonId ?? existing?.addonId,
92053
92053
  retryCount: existing.retryCount
@@ -92065,7 +92065,7 @@ var AddonHealthMonitor = class {
92065
92065
  const intervalIdx = Math.min(retryCount - 1, this.retryIntervalsMs.length - 1);
92066
92066
  const nextRetryAt = t + this.retryIntervalsMs[intervalIdx];
92067
92067
  const errPayload = {
92068
- message: (0, _camstack_types.errMsg)(err),
92068
+ message: require_dist.errMsg(err),
92069
92069
  ...err instanceof Error && err.stack ? { stack: err.stack } : {}
92070
92070
  };
92071
92071
  const next = {
@@ -92089,7 +92089,7 @@ var AddonHealthMonitor = class {
92089
92089
  inGrace: this.inGracePeriod(),
92090
92090
  error: errPayload.message
92091
92091
  } });
92092
- this.emit(_camstack_types.EventCategory.AddonRetryScheduled, {
92092
+ this.emit(require_dist.EventCategory.AddonRetryScheduled, {
92093
92093
  packageName,
92094
92094
  addonId: next.addonId,
92095
92095
  retryCount,
@@ -92097,7 +92097,7 @@ var AddonHealthMonitor = class {
92097
92097
  });
92098
92098
  if (!this.inGracePeriod() && !next.alertEmitted) {
92099
92099
  next.alertEmitted = true;
92100
- this.emit(_camstack_types.EventCategory.AddonLoadFailed, {
92100
+ this.emit(require_dist.EventCategory.AddonLoadFailed, {
92101
92101
  packageName,
92102
92102
  addonId: next.addonId,
92103
92103
  error: errPayload,
@@ -92185,7 +92185,7 @@ var AddonHealthMonitor = class {
92185
92185
  this.graceEmittedFor = true;
92186
92186
  for (const s of this.state.values()) if (s.phase === "failed" && !s.alertEmitted && s.lastError) {
92187
92187
  s.alertEmitted = true;
92188
- this.emit(_camstack_types.EventCategory.AddonLoadFailed, {
92188
+ this.emit(require_dist.EventCategory.AddonLoadFailed, {
92189
92189
  packageName: s.packageName,
92190
92190
  addonId: s.addonId,
92191
92191
  error: s.lastError,
@@ -92202,7 +92202,7 @@ var AddonHealthMonitor = class {
92202
92202
  const existing = this.state.get(packageName);
92203
92203
  if (!existing) return;
92204
92204
  existing.retrying = true;
92205
- this.emit(_camstack_types.EventCategory.AddonRetryAttempting, {
92205
+ this.emit(require_dist.EventCategory.AddonRetryAttempting, {
92206
92206
  packageName,
92207
92207
  addonId: existing.addonId,
92208
92208
  retryCount: existing.retryCount
@@ -92441,7 +92441,7 @@ function createProcessService(parentNodeId, dataDir, deps, parentTcpPort, parent
92441
92441
  */
92442
92442
  function emitRunnerEvent(category, sourceId, data) {
92443
92443
  if (!capturedBroker) return;
92444
- require_manifest_python_deps.getBrokerEventBus(capturedBroker).emit((0, _camstack_types.createEvent)(category, {
92444
+ require_manifest_python_deps.getBrokerEventBus(capturedBroker).emit(require_dist.createEvent(category, {
92445
92445
  type: "core",
92446
92446
  id: sourceId,
92447
92447
  nodeId: parentNodeId
@@ -92516,7 +92516,7 @@ function createProcessService(parentNodeId, dataDir, deps, parentTcpPort, parent
92516
92516
  entry.state = "crashed";
92517
92517
  capturedBroker?.logger.error(`[${runnerId}] Process exited (code=${code}, signal=${signal})`);
92518
92518
  const decision = crashSupervisor.recordCrash(runnerId);
92519
- emitRunnerEvent(_camstack_types.EventCategory.ProcessCrashed, runnerId, {
92519
+ emitRunnerEvent(require_dist.EventCategory.ProcessCrashed, runnerId, {
92520
92520
  processId: runnerId,
92521
92521
  exitCode: code ?? void 0,
92522
92522
  signal: signal ?? void 0
@@ -92526,14 +92526,14 @@ function createProcessService(parentNodeId, dataDir, deps, parentTcpPort, parent
92526
92526
  capturedBroker?.logger.error(`[${runnerId}] Crash circuit-breaker tripped — ${decision.crashesInWindow} crashes in ${CRASH_WINDOW_MS}ms. Not respawning.`);
92527
92527
  processes.set(runnerId, entry);
92528
92528
  if (capturedBroker) forceMoleculerDisconnect(capturedBroker, entry.nodeId);
92529
- for (const addon of entry.runnerAddons) emitRunnerEvent(_camstack_types.EventCategory.AddonCrashed, addon.addonId, {
92529
+ for (const addon of entry.runnerAddons) emitRunnerEvent(require_dist.EventCategory.AddonCrashed, addon.addonId, {
92530
92530
  addonId: addon.addonId,
92531
92531
  error: `Crash circuit-breaker tripped after ${decision.crashesInWindow} crashes in ${CRASH_WINDOW_MS}ms`
92532
92532
  });
92533
92533
  return;
92534
92534
  }
92535
92535
  capturedBroker?.logger.warn(`[${runnerId}] Restart scheduled (attempt #${decision.crashesInWindow}, backoff ${decision.backoffMs}ms)...`);
92536
- emitRunnerEvent(_camstack_types.EventCategory.ProcessRestartScheduled, runnerId, {
92536
+ emitRunnerEvent(require_dist.EventCategory.ProcessRestartScheduled, runnerId, {
92537
92537
  processId: runnerId,
92538
92538
  delayMs: decision.backoffMs
92539
92539
  });
@@ -92891,7 +92891,7 @@ var JobJournal = class {
92891
92891
  }
92892
92892
  getJob(id) {
92893
92893
  try {
92894
- const parsed = _camstack_types.lifecycleJobSchema.safeParse(JSON.parse(node_fs.readFileSync(this.jobPath(id), "utf-8")));
92894
+ const parsed = require_dist.lifecycleJobSchema.safeParse(JSON.parse(node_fs.readFileSync(this.jobPath(id), "utf-8")));
92895
92895
  return parsed.success ? parsed.data : null;
92896
92896
  } catch {
92897
92897
  return null;
@@ -93251,6 +93251,7 @@ async function stageFrameworkLockstep(input) {
93251
93251
  //#endregion
93252
93252
  exports.AGENT_CAP_FWD_ACTION = require_manifest_python_deps.AGENT_CAP_FWD_ACTION;
93253
93253
  exports.AGENT_CAP_FWD_SERVICE = require_manifest_python_deps.AGENT_CAP_FWD_SERVICE;
93254
+ exports.ALL_CAPABILITY_DEFINITIONS = require_dist.ALL_CAPABILITY_DEFINITIONS;
93254
93255
  exports.AddonApiFactory = AddonApiFactory;
93255
93256
  exports.AddonDepsManager = require_manifest_python_deps.AddonDepsManager;
93256
93257
  exports.AddonEngineManager = AddonEngineManager;
@@ -93277,6 +93278,8 @@ exports.ConsoleDestination = require_builtins_console_logging_index.ConsoleDesti
93277
93278
  exports.ConsoleLoggingAddon = require_builtins_console_logging_index.ConsoleLoggingAddon$1;
93278
93279
  exports.CustomActionRegistry = require_custom_action_registry.CustomActionRegistry;
93279
93280
  exports.DEFAULT_DATA_PATH = DEFAULT_DATA_PATH;
93281
+ exports.DEVICE_SETTINGS_CONTRIBUTION_METHODS = require_dist.DEVICE_SETTINGS_CONTRIBUTION_METHODS;
93282
+ exports.DEVICE_STATUS_METHOD = require_dist.DEVICE_STATUS_METHOD;
93280
93283
  exports.DataPlaneRegistry = DataPlaneRegistry;
93281
93284
  exports.DeviceManagerAddon = require_builtins_device_manager_device_manager_addon.DeviceManagerAddon;
93282
93285
  exports.DeviceRegistry = require_manifest_python_deps.DeviceRegistry;
@@ -93309,6 +93312,7 @@ exports.LocalChildClient = require_manifest_python_deps.LocalChildClient;
93309
93312
  exports.LocalChildRegistry = require_manifest_python_deps.LocalChildRegistry;
93310
93313
  exports.LogManager = LogManager;
93311
93314
  exports.LogRingBuffer = LogRingBuffer;
93315
+ exports.METHOD_ACCESS_MAP = require_dist.METHOD_ACCESS_MAP;
93312
93316
  exports.ModelDownloadService = require_model_download_service.ModelDownloadService;
93313
93317
  exports.NATIVE_PROVIDER_SERVICE_INFIX = require_manifest_python_deps.NATIVE_PROVIDER_SERVICE_INFIX;
93314
93318
  exports.NativeMetricsAddon = require_builtins_native_metrics_native_metrics_addon.default;
@@ -93325,24 +93329,9 @@ exports.PipelineRunner = PipelineRunner;
93325
93329
  exports.PipelineValidator = PipelineValidator;
93326
93330
  exports.PythonEnvManager = PythonEnvManager;
93327
93331
  exports.RESTART_MARKER_FILE = RESTART_MARKER_FILE;
93328
- Object.defineProperty(exports, "RUNTIME_DEFAULTS", {
93329
- enumerable: true,
93330
- get: function() {
93331
- return _camstack_types.RUNTIME_DEFAULTS;
93332
- }
93333
- });
93334
- Object.defineProperty(exports, "ReadinessRegistry", {
93335
- enumerable: true,
93336
- get: function() {
93337
- return _camstack_types.ReadinessRegistry;
93338
- }
93339
- });
93340
- Object.defineProperty(exports, "ReadinessTimeoutError", {
93341
- enumerable: true,
93342
- get: function() {
93343
- return _camstack_types.ReadinessTimeoutError;
93344
- }
93345
- });
93332
+ exports.RUNTIME_DEFAULTS = require_dist.RUNTIME_DEFAULTS;
93333
+ exports.ReadinessRegistry = require_dist.ReadinessRegistry;
93334
+ exports.ReadinessTimeoutError = require_dist.ReadinessTimeoutError;
93346
93335
  exports.ReplEngine = ReplEngine;
93347
93336
  exports.RingBuffer = RingBuffer;
93348
93337
  exports.ScopedLogger = ScopedLogger;
@@ -93366,6 +93355,7 @@ exports.WinstonDestination = require_builtins_winston_logging_index.WinstonDesti
93366
93355
  exports.WinstonLoggingAddon = require_builtins_winston_logging_index.WinstonLoggingAddon$1;
93367
93356
  exports.__resetCapUsageRegistryForTests = require_manifest_python_deps.__resetCapUsageRegistryForTests;
93368
93357
  exports.adaptBrokerToCluster = require_manifest_python_deps.adaptBrokerToCluster;
93358
+ exports.addonSettingsCapability = require_dist.addonSettingsCapability;
93369
93359
  exports.bootstrapSchema = bootstrapSchema;
93370
93360
  exports.brokerCallForCap = require_manifest_python_deps.brokerCallForCap;
93371
93361
  exports.brokerTransportLink = require_manifest_python_deps.brokerTransportLink;
@@ -93429,12 +93419,7 @@ Object.defineProperty(exports, "downloadBinary", {
93429
93419
  });
93430
93420
  exports.downloadFile = require_model_download_service.downloadFile;
93431
93421
  exports.downloadModel = require_model_download_service.downloadModel;
93432
- Object.defineProperty(exports, "emitDownForOwnedCaps", {
93433
- enumerable: true,
93434
- get: function() {
93435
- return _camstack_types.emitDownForOwnedCaps;
93436
- }
93437
- });
93422
+ exports.emitDownForOwnedCaps = require_dist.emitDownForOwnedCaps;
93438
93423
  exports.encodeFrame = require_manifest_python_deps.encodeFrame;
93439
93424
  Object.defineProperty(exports, "ensureBinary", {
93440
93425
  enumerable: true,
@@ -93458,6 +93443,7 @@ Object.defineProperty(exports, "ensurePython", {
93458
93443
  }
93459
93444
  });
93460
93445
  exports.ensureTlsCert = ensureTlsCert;
93446
+ exports.expandCapMethods = require_dist.expandCapMethods;
93461
93447
  exports.fetchJson = require_model_download_service.fetchJson;
93462
93448
  Object.defineProperty(exports, "findInPath", {
93463
93449
  enumerable: true,
@@ -93513,6 +93499,7 @@ Object.defineProperty(exports, "installPythonRequirements", {
93513
93499
  exports.ipcChildLink = require_manifest_python_deps.ipcChildLink;
93514
93500
  exports.ipcParentLink = require_manifest_python_deps.ipcParentLink;
93515
93501
  exports.isAddonDeploySource = isAddonDeploySource;
93502
+ exports.isArrayOutputSchema = require_dist.isArrayOutputSchema;
93516
93503
  exports.isClusterSecretMismatchError = isClusterSecretMismatchError;
93517
93504
  exports.isInfraCapability = isInfraCapability;
93518
93505
  exports.isModelDownloaded = require_model_download_service.isModelDownloaded;
@@ -93526,22 +93513,12 @@ exports.parseRangeHeader = require_model_download_service.parseRangeHeader;
93526
93513
  exports.parseTokenizedUrl = require_model_download_service.parseTokenizedUrl;
93527
93514
  exports.proxyToUpstream = proxyToUpstream;
93528
93515
  exports.readPendingRestart = readPendingRestart;
93529
- Object.defineProperty(exports, "readinessKey", {
93530
- enumerable: true,
93531
- get: function() {
93532
- return _camstack_types.readinessKey;
93533
- }
93534
- });
93516
+ exports.readinessKey = require_dist.readinessKey;
93535
93517
  exports.registerEventBusService = require_manifest_python_deps.registerEventBusService;
93536
93518
  exports.resolveFilePath = require_model_download_service.resolveFilePath;
93537
93519
  exports.resolveHwAccel = require_manifest_python_deps.resolveHwAccel;
93538
93520
  exports.scheduleSelfRestart = scheduleSelfRestart;
93539
- Object.defineProperty(exports, "scopeKey", {
93540
- enumerable: true,
93541
- get: function() {
93542
- return _camstack_types.scopeKey;
93543
- }
93544
- });
93521
+ exports.scopeKey = require_dist.scopeKey;
93545
93522
  exports.scopesAllowDeviceCap = scopesAllowDeviceCap;
93546
93523
  exports.serializeTypedArrays = require_manifest_python_deps.serializeTypedArrays;
93547
93524
  exports.setHubConnected = require_manifest_python_deps.setHubConnected;