@camstack/system 1.1.46 → 1.1.48

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 (45) 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.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/hub-forwarder/index.js +1 -1
  16. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  17. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  18. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  19. package/dist/builtins/local-network/local-network.addon.js +1 -1
  20. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  21. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  22. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  23. package/dist/builtins/platform-probe/index.js +1 -1
  24. package/dist/builtins/platform-probe/index.mjs +1 -1
  25. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  26. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  27. package/dist/builtins/snapshot/index.js +1 -1
  28. package/dist/builtins/snapshot/index.mjs +1 -1
  29. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  30. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  31. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +1 -1
  32. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +1 -1
  33. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  34. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  35. package/dist/builtins/system-config/system-config.addon.js +1 -1
  36. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  37. package/dist/builtins/winston-logging/index.js +1 -1
  38. package/dist/builtins/winston-logging/index.mjs +1 -1
  39. package/dist/{dist-CJKq2Q3i.mjs → dist-BMN1IAl3.mjs} +175 -7
  40. package/dist/{dist-C-gQhgt3.js → dist-CiveK-yv.js} +175 -7
  41. package/dist/index.js +2 -2
  42. package/dist/index.mjs +2 -2
  43. package/dist/{manifest-python-deps-DgfWY-Ts.mjs → manifest-python-deps-CWBvn2eF.mjs} +1 -1
  44. package/dist/{manifest-python-deps-Pjgtwufj.js → manifest-python-deps-DRE97YbS.js} +1 -1
  45. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_manifest_python_deps = require("./manifest-python-deps-Pjgtwufj.js");
2
+ const require_manifest_python_deps = require("./manifest-python-deps-DRE97YbS.js");
3
3
  const require_custom_action_registry = require("./custom-action-registry-vLYEFTtv.js");
4
4
  let node_fs = require("node:fs");
5
5
  node_fs = require_chunk.__toESM(node_fs);
@@ -1,4 +1,4 @@
1
- import { F as createUdsLoggerWithControl, I as LocalChildClient, i as createUdsAddonContext, it as setWorkerNativeCapsChangeListener, nt as getWorkerNativeCapSnapshot, ot as validateProviderRegistrations, t as installManifestPythonDeps, tt as getWorkerNativeCapProvider, vt as installManifestNativeDeps, yt as resolveAddonClass } from "./manifest-python-deps-DgfWY-Ts.mjs";
1
+ import { F as createUdsLoggerWithControl, I as LocalChildClient, i as createUdsAddonContext, it as setWorkerNativeCapsChangeListener, nt as getWorkerNativeCapSnapshot, ot as validateProviderRegistrations, t as installManifestPythonDeps, tt as getWorkerNativeCapProvider, vt as installManifestNativeDeps, yt as resolveAddonClass } from "./manifest-python-deps-CWBvn2eF.mjs";
2
2
  import { t as CustomActionRegistry } from "./custom-action-registry-BEXwC-oo.mjs";
3
3
  import { register } from "node:module";
4
4
  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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { $ as errMsg, et as BaseAddon, f as addonPagesCapability, st as EventCategory } from "../../dist-CJKq2Q3i.mjs";
1
+ import { $ as errMsg, et as BaseAddon, f as addonPagesCapability, st as EventCategory } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { $ as errMsg, et as BaseAddon, m as addonWidgetsCapability, st as EventCategory } from "../../dist-CJKq2Q3i.mjs";
1
+ import { $ as errMsg, et as BaseAddon, m as addonWidgetsCapability, st as EventCategory } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { $ as errMsg, et as BaseAddon, h as alertsCapability, mt as createEvent, n as AlertSchema, st as EventCategory } from "../../dist-CJKq2Q3i.mjs";
1
+ import { $ as errMsg, et as BaseAddon, h as alertsCapability, mt as createEvent, n as AlertSchema, st as EventCategory } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { et as BaseAddon, st as EventCategory, v as backupCapability } from "../../dist-CJKq2Q3i.mjs";
1
+ import { et as BaseAddon, st as EventCategory, v as backupCapability } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { P as logDestinationCapability, et as BaseAddon } from "../../dist-CJKq2Q3i.mjs";
1
+ import { P as logDestinationCapability, et as BaseAddon } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { $ as errMsg, C as enumerateItemArrayFields, D as getByPath, Q as validateExpressionSource, R as normalizeUnit, S as deviceStatusCapability, T as evaluateLinkExpression, Tt as sleep, W as setByPath, X as toExpressionValue, a as DeviceStatusSchema, at as DeviceRole, b as deviceManagerCapability, c as STREAM_PROFILE_META, et as BaseAddon, g as applyTransform, i as CAP_NAMES_WITH_STATUS, it as DeviceFeature, ot as DeviceType, st as EventCategory, t as ALL_CAPABILITY_DEFINITIONS, ut as WELL_KNOWN_TAB_MAP, w as enumerateSchemaFields, x as deviceStateCapability, y as buildStreamParamsConfigSchema, yt as isDeviceConfigCap, z as parseStreamParamsFormPatch } from "../../dist-CJKq2Q3i.mjs";
1
+ import { $ as errMsg, C as enumerateItemArrayFields, D as getByPath, Q as validateExpressionSource, R as normalizeUnit, S as deviceStatusCapability, T as evaluateLinkExpression, Tt as sleep, W as setByPath, X as toExpressionValue, a as DeviceStatusSchema, at as DeviceRole, b as deviceManagerCapability, c as STREAM_PROFILE_META, et as BaseAddon, g as applyTransform, i as CAP_NAMES_WITH_STATUS, it as DeviceFeature, ot as DeviceType, st as EventCategory, t as ALL_CAPABILITY_DEFINITIONS, ut as WELL_KNOWN_TAB_MAP, w as enumerateSchemaFields, x as deviceStateCapability, y as buildStreamParamsConfigSchema, yt as isDeviceConfigCap, z as parseStreamParamsFormPatch } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { P as logDestinationCapability, et as BaseAddon } from "../../dist-CJKq2Q3i.mjs";
1
+ import { P as logDestinationCapability, et as BaseAddon } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { Z as userManagementCapability, _ as authProviderCapability, d as UserRecordSchema, et as BaseAddon, l as ScopedTokenSchema, r as ApiKeyRecordSchema } from "../../dist-CJKq2Q3i.mjs";
1
+ import { Z as userManagementCapability, _ as authProviderCapability, d as UserRecordSchema, et as BaseAddon, l as ScopedTokenSchema, r as ApiKeyRecordSchema } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
3
+ const require_dist = require("../../dist-CiveK-yv.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 { N as localNetworkCapability, et as BaseAddon, st as EventCategory } from "../../dist-CJKq2Q3i.mjs";
1
+ import { N as localNetworkCapability, et as BaseAddon, st as EventCategory } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { I as metricsProviderCapability, et as BaseAddon, mt as createEvent, st as EventCategory } from "../../dist-CJKq2Q3i.mjs";
1
+ import { I as metricsProviderCapability, et as BaseAddon, mt as createEvent, st as EventCategory } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { $ as errMsg, B as platformProbeCapability, U as scoreRuntimes, et as BaseAddon, gt as emitReadiness, st as EventCategory } from "../../dist-CJKq2Q3i.mjs";
1
+ import { $ as errMsg, B as platformProbeCapability, U as scoreRuntimes, et as BaseAddon, gt as emitReadiness, st as EventCategory } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { et as BaseAddon, st as EventCategory } from "../../dist-CJKq2Q3i.mjs";
1
+ import { et as BaseAddon, st as EventCategory } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { $ as errMsg, K as snapshotCapability, L as nodePin, Y as streamQualityLabel, et as BaseAddon, it as DeviceFeature, ot as DeviceType } from "../../dist-CJKq2Q3i.mjs";
1
+ import { $ as errMsg, K as snapshotCapability, L as nodePin, Y as streamQualityLabel, et as BaseAddon, it as DeviceFeature, ot as DeviceType } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { E as filesystemBrowseCapability, J as storageProviderCapability, et as BaseAddon } from "../../dist-CJKq2Q3i.mjs";
1
+ import { E as filesystemBrowseCapability, J as storageProviderCapability, et as BaseAddon } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { $ as errMsg, G as settingsStoreCapability, dt as asJsonObject, et as BaseAddon, s as RUNTIME_DEFAULTS, xt as parseJsonUnknown } from "../../dist-CJKq2Q3i.mjs";
1
+ import { $ as errMsg, G as settingsStoreCapability, dt as asJsonObject, et as BaseAddon, s as RUNTIME_DEFAULTS, xt as parseJsonUnknown } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { bt as parseJsonObject, et as BaseAddon, q as storageCapability, u as StorageLocationTypeSchema } from "../../dist-CJKq2Q3i.mjs";
1
+ import { bt as parseJsonObject, et as BaseAddon, q as storageCapability, u as StorageLocationTypeSchema } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { $ as errMsg, et as BaseAddon, vt as hydrateSchema } from "../../dist-CJKq2Q3i.mjs";
1
+ import { $ as errMsg, et as BaseAddon, vt as hydrateSchema } from "../../dist-BMN1IAl3.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-C-gQhgt3.js");
6
+ const require_dist = require("../../dist-CiveK-yv.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 { P as logDestinationCapability, et as BaseAddon } from "../../dist-CJKq2Q3i.mjs";
1
+ import { P as logDestinationCapability, et as BaseAddon } from "../../dist-BMN1IAl3.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  import * as path$1 from "node:path";
4
4
  import path from "node:path";
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- //#region ../types/dist/sleep-b4Jf2n33.mjs
2
+ //#region ../types/dist/sleep-Baang_XW.mjs
3
3
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4
4
  EventCategory["SystemBoot"] = "system.boot";
5
5
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -8214,7 +8214,15 @@ var pipelineExecutorCapability = {
8214
8214
  image: z.instanceof(Uint8Array).optional(),
8215
8215
  referenceImage: z.string().optional(),
8216
8216
  deviceId: z.number().optional(),
8217
- sessionId: z.string().optional()
8217
+ sessionId: z.string().optional(),
8218
+ /**
8219
+ * Execution plane. 'full' (default) runs the whole tree — benchmark,
8220
+ * reference-image, and detail-subtree calls. 'frame' is the live
8221
+ * per-frame dispatch: ONLY root-plane steps run; crop children
8222
+ * (inputClasses ≠ null) are skipped and served per-track via
8223
+ * pipelineRunner.runDetailSubtree (two-plane design).
8224
+ */
8225
+ plane: z.enum(["full", "frame"]).optional()
8218
8226
  }), PipelineRunResultBridge, { kind: "mutation" }),
8219
8227
  /**
8220
8228
  * Batched run — N raw frames packed into one cap call. The provider
@@ -8426,6 +8434,47 @@ var zonesCapability = {
8426
8434
  runtimeState: z.object({ zones: z.array(ZoneSchema).readonly() })
8427
8435
  };
8428
8436
  /**
8437
+ * A bounding box in NORMALIZED [0,1] frame coordinates for `getNativeCrop`. The
8438
+ * decode worker resolves it against the RETAINED native frame's real pixel dims,
8439
+ * so the caller supplies only the detection-res bbox divided by the detection
8440
+ * dims — no native resolution to plumb.
8441
+ */
8442
+ var NativeCropBboxSchema = z.object({
8443
+ x: z.number(),
8444
+ y: z.number(),
8445
+ w: z.number(),
8446
+ h: z.number()
8447
+ });
8448
+ /** Result of a best-effort native-resolution crop (`getNativeCrop`). */
8449
+ var NativeCropResultSchema = z.object({
8450
+ /** Packed rgb (24-bit) pixels of the crop. */
8451
+ bytes: z.instanceof(Uint8Array),
8452
+ width: z.number().int().positive(),
8453
+ height: z.number().int().positive()
8454
+ });
8455
+ /** Parent detection context passed to `runDetailSubtree` — the crop's
8456
+ * originating detection, in FRAME-space coordinates. Reuses
8457
+ * `NativeCropBboxSchema`'s `{x,y,w,h}` shape (same numeric fields; here
8458
+ * the coordinates are frame-space rather than getNativeCrop's
8459
+ * normalized [0,1] convention). */
8460
+ var DetailParentSchema = z.object({
8461
+ bbox: NativeCropBboxSchema,
8462
+ className: z.string()
8463
+ });
8464
+ /** One child-step result from `runDetailSubtree` — an embedding, label,
8465
+ * or refined detection produced by running the crop-subtree on a
8466
+ * single tracked detection. */
8467
+ var DetailResultSchema = z.object({
8468
+ stepId: z.string(),
8469
+ className: z.string(),
8470
+ score: z.number(),
8471
+ /** FRAME-space bbox (already mapped back from crop space). */
8472
+ bbox: NativeCropBboxSchema.optional(),
8473
+ embedding: z.string().optional(),
8474
+ label: z.string().optional(),
8475
+ alignedCropJpeg: z.string().optional()
8476
+ });
8477
+ /**
8429
8478
  * Per-camera tunable ranges + defaults. Single source of truth used
8430
8479
  * by both the Zod data schema (validation + default fallback) and
8431
8480
  * the device settings UI (slider min/max/step). Touch one place and
@@ -8729,7 +8778,42 @@ var pipelineRunnerCapability = {
8729
8778
  /** All per-camera metrics in one round-trip. */
8730
8779
  getAllCameraMetrics: method(z.void(), z.array(CameraMetricsWithDeviceIdSchema).readonly()),
8731
8780
  /** List the deviceIds currently attached to this runner. */
8732
- getLocalCameras: method(z.void(), z.array(z.number()).readonly())
8781
+ getLocalCameras: method(z.void(), z.array(z.number()).readonly()),
8782
+ /**
8783
+ * Best-effort NATIVE-resolution crop of a retention-ring frame. Given the
8784
+ * `FrameHandle` that rode an inference-result event and a normalized `bbox`,
8785
+ * the runner asks the decode worker still holding that frame's NATIVE
8786
+ * surface to GPU/CPU-crop ONLY the ROI at native res and download just the
8787
+ * crop. Returns `null` on a miss (handle not registered, or the worker's
8788
+ * tiny native-retention ring already evicted the frame) — the caller falls
8789
+ * back to a detection-frame crop. Routed to the frame's owning node by
8790
+ * `handle.nodeId`; NEVER ships a full native frame.
8791
+ */
8792
+ getNativeCrop: method(z.object({
8793
+ handle: FrameHandleSchema,
8794
+ bbox: NativeCropBboxSchema,
8795
+ maxWidth: z.number().int().positive().optional()
8796
+ }), NativeCropResultSchema.nullable()),
8797
+ /**
8798
+ * Two-plane design: run the DETAIL subtree (crop children —
8799
+ * embedding, classifier, refiner steps whose `inputClasses ≠ null`)
8800
+ * for a single tracked detection. The per-frame plane (`runPipeline`
8801
+ * with `plane: 'frame'`) skips crop children entirely; a track-level
8802
+ * caller invokes this per-track, on its own cadence, instead of on
8803
+ * every frame. Takes either a `frameHandle` (shm lease/session —
8804
+ * preferred, zero-copy) or a `cropJpeg` fallback when the lease/
8805
+ * session backing the frame is already gone. `steps` narrows which
8806
+ * configured children to run (default: all configured children for
8807
+ * `parent.className`). Returns `null` when neither frame source is
8808
+ * resolvable (handle evicted and no cropJpeg fallback supplied).
8809
+ */
8810
+ runDetailSubtree: method(z.object({
8811
+ deviceId: z.number(),
8812
+ frameHandle: FrameHandleSchema.optional(),
8813
+ cropJpeg: z.string().optional(),
8814
+ parent: DetailParentSchema,
8815
+ steps: z.array(z.string()).optional()
8816
+ }), z.object({ details: z.array(DetailResultSchema) }).nullable(), { kind: "mutation" })
8733
8817
  }
8734
8818
  };
8735
8819
  /**
@@ -14885,7 +14969,17 @@ var TrackSchema = z.object({
14885
14969
  /** Cumulative normalized distance travelled (0..1 units = full frame width). */
14886
14970
  totalDistance: z.number(),
14887
14971
  state: TrackStateSchema,
14888
- active: z.boolean()
14972
+ active: z.boolean(),
14973
+ /** Deterministic key-event importance score in [0,1] (server-computed at
14974
+ * track expiry, recomputed on late label). Absent on legacy rows written
14975
+ * before scoring shipped — consumers degrade to absence / compute-on-read. */
14976
+ importance: z.number().optional(),
14977
+ /** Id of the track's highest-confidence ObjectEvent (its representative
14978
+ * "best" frame). Absent when the track produced no object events. */
14979
+ bestEventId: z.string().optional(),
14980
+ /** Tag of the importance sub-signal that dominated the score
14981
+ * (identity|dwell|proximity|class|confidence|travel|zone). */
14982
+ importanceReason: z.string().optional()
14889
14983
  });
14890
14984
  var BaseEventFields = {
14891
14985
  id: z.string(),
@@ -14950,8 +15044,18 @@ var ObjectEventSchema = z.object({
14950
15044
  frameHeight: z.number().optional(),
14951
15045
  /** MediaStore key for the crop attached to this event (if any). */
14952
15046
  mediaKey: z.string().optional(),
15047
+ /** Design B: MediaStore key of the track's native-resolution key frame (the
15048
+ * best-detection full frame). Resolve via the event-media data-plane
15049
+ * (`/addon/<addonId>/event-media/<keyFrameMediaKey>`) for a detail view that
15050
+ * draws `bbox` over the native frame. Absent on legacy rows / non-decoded
15051
+ * sources — consumers fall back to `mediaKey` (the tight crop). */
15052
+ keyFrameMediaKey: z.string().optional(),
14953
15053
  /** Populated by B5 (recording playback URL for this event). */
14954
- mediaUrl: z.string().optional()
15054
+ mediaUrl: z.string().optional(),
15055
+ /** The parent track's key-event importance [0,1], propagated to every object
15056
+ * event of the track (so an event row can be sorted by importance without a
15057
+ * track join). Absent on legacy rows / before the track was scored. */
15058
+ importance: z.number().optional()
14955
15059
  });
14956
15060
  var AudioEventSchema = z.object({
14957
15061
  ...BaseEventFields,
@@ -14975,7 +15079,8 @@ var MediaFileKindEnum = z.enum([
14975
15079
  "fullFrame",
14976
15080
  "fullFrameBoxed",
14977
15081
  "faceCrop",
14978
- "plateCrop"
15082
+ "plateCrop",
15083
+ "keyFrame"
14979
15084
  ]);
14980
15085
  var MediaFileSchema = z.object({
14981
15086
  key: z.string(),
@@ -14996,6 +15101,32 @@ var DeviceEventQueryInput = z.object({
14996
15101
  projection: z.enum(["full", "slim"]).optional()
14997
15102
  });
14998
15103
  var ObjectEventQueryInput = DeviceEventQueryInput.extend({ classFilter: z.string().optional() });
15104
+ var KeyEventQueryInput = z.object({
15105
+ deviceId: z.number(),
15106
+ /** Window lower bound (track firstSeen ≥ since). */
15107
+ since: z.number(),
15108
+ /** Window upper bound (track firstSeen ≤ until). */
15109
+ until: z.number(),
15110
+ limit: z.number().int().min(1).max(200).default(50),
15111
+ /** Drop tracks scoring below this importance. */
15112
+ minImportance: z.number().min(0).max(1).optional(),
15113
+ /** Restrict to a single class (e.g. 'person'). */
15114
+ classFilter: z.string().optional()
15115
+ });
15116
+ var KeyEventSchema = z.object({
15117
+ /** The representative event id (the track's best ObjectEvent, else its trackId). */
15118
+ id: z.string(),
15119
+ trackId: z.string(),
15120
+ /** Track start time (firstSeen). */
15121
+ timestamp: z.number(),
15122
+ className: z.string(),
15123
+ label: z.string().optional(),
15124
+ importance: z.number(),
15125
+ /** Highest-confidence ObjectEvent id for the track (empty when none). */
15126
+ bestEventId: z.string(),
15127
+ /** Track lifetime in ms (lastSeen - firstSeen). */
15128
+ windowMs: z.number().optional()
15129
+ });
14999
15130
  var TrackedDetectionSchema = z.object({
15000
15131
  trackId: z.string(),
15001
15132
  className: z.string(),
@@ -15044,6 +15175,15 @@ var pipelineAnalyticsCapability = {
15044
15175
  getMotionEvents: method(DeviceEventQueryInput, z.array(MotionEventSchema).readonly()),
15045
15176
  getObjectEvents: method(ObjectEventQueryInput, z.array(ObjectEventSchema).readonly()),
15046
15177
  getAudioEvents: method(DeviceEventQueryInput, z.array(AudioEventSchema).readonly()),
15178
+ /**
15179
+ * Importance-ranked highlights for a device+window. Queries completed
15180
+ * tracks by (deviceId, firstSeen ∈ [since,until]), scores each (or reuses
15181
+ * the persisted score), filters by minImportance/classFilter, orders by
15182
+ * importance desc, and returns up to `limit` compact key events mapped to
15183
+ * each track's best event. Legacy tracks lacking a persisted score are
15184
+ * scored on-read (no write). Degrades to `[]` on error.
15185
+ */
15186
+ getKeyEvents: method(KeyEventQueryInput, z.array(KeyEventSchema).readonly()),
15047
15187
  /** Server-side bucketed event counts for the 24-hour timeline.
15048
15188
  * Returns one entry per non-empty bucket; empty buckets are omitted. */
15049
15189
  getEventDensity: method(z.object({
@@ -17907,7 +18047,17 @@ var FaceInfoSchema = z.object({
17907
18047
  recognizedIdentityId: z.string().optional(),
17908
18048
  identityName: z.string().optional(),
17909
18049
  assigned: z.boolean(),
17910
- base64: z.string().optional()
18050
+ base64: z.string().optional(),
18051
+ /** Design B: the face bbox (pixel space) on the key frame — lets a detail
18052
+ * view draw the box over the native `keyFrameMediaKey` frame. Absent on
18053
+ * legacy rows written before design B. */
18054
+ faceBbox: BoundingBoxSchema.optional(),
18055
+ /** Design B: MediaStore key of the track's native-resolution key frame.
18056
+ * Fetch the native JPEG via the event-media data-plane
18057
+ * (`/addon/<addonId>/event-media/<keyFrameMediaKey>`). Absent when the
18058
+ * track produced no key frame (e.g. native/onboard source) — the UI falls
18059
+ * back to the inline `base64` face crop. */
18060
+ keyFrameMediaKey: z.string().optional()
17911
18061
  });
17912
18062
  var FaceFilterEnum = z.enum([
17913
18063
  "unassigned",
@@ -23030,6 +23180,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
23030
23180
  addonId: null,
23031
23181
  access: "view"
23032
23182
  },
23183
+ "pipelineAnalytics.getKeyEvents": {
23184
+ capName: "pipeline-analytics",
23185
+ capScope: "device",
23186
+ addonId: null,
23187
+ access: "view"
23188
+ },
23033
23189
  "pipelineAnalytics.getMotionEvents": {
23034
23190
  capName: "pipeline-analytics",
23035
23191
  capScope: "device",
@@ -23558,12 +23714,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
23558
23714
  addonId: null,
23559
23715
  access: "view"
23560
23716
  },
23717
+ "pipelineRunner.getNativeCrop": {
23718
+ capName: "pipeline-runner",
23719
+ capScope: "system",
23720
+ addonId: null,
23721
+ access: "view"
23722
+ },
23561
23723
  "pipelineRunner.reportMotion": {
23562
23724
  capName: "pipeline-runner",
23563
23725
  capScope: "system",
23564
23726
  addonId: null,
23565
23727
  access: "create"
23566
23728
  },
23729
+ "pipelineRunner.runDetailSubtree": {
23730
+ capName: "pipeline-runner",
23731
+ capScope: "system",
23732
+ addonId: null,
23733
+ access: "create"
23734
+ },
23567
23735
  "plateGallery.correctPlateText": {
23568
23736
  capName: "plate-gallery",
23569
23737
  capScope: "system",
@@ -1,5 +1,5 @@
1
1
  let zod = require("zod");
2
- //#region ../types/dist/sleep-b4Jf2n33.mjs
2
+ //#region ../types/dist/sleep-Baang_XW.mjs
3
3
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4
4
  EventCategory["SystemBoot"] = "system.boot";
5
5
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -8214,7 +8214,15 @@ var pipelineExecutorCapability = {
8214
8214
  image: zod.z.instanceof(Uint8Array).optional(),
8215
8215
  referenceImage: zod.z.string().optional(),
8216
8216
  deviceId: zod.z.number().optional(),
8217
- sessionId: zod.z.string().optional()
8217
+ sessionId: zod.z.string().optional(),
8218
+ /**
8219
+ * Execution plane. 'full' (default) runs the whole tree — benchmark,
8220
+ * reference-image, and detail-subtree calls. 'frame' is the live
8221
+ * per-frame dispatch: ONLY root-plane steps run; crop children
8222
+ * (inputClasses ≠ null) are skipped and served per-track via
8223
+ * pipelineRunner.runDetailSubtree (two-plane design).
8224
+ */
8225
+ plane: zod.z.enum(["full", "frame"]).optional()
8218
8226
  }), PipelineRunResultBridge, { kind: "mutation" }),
8219
8227
  /**
8220
8228
  * Batched run — N raw frames packed into one cap call. The provider
@@ -8426,6 +8434,47 @@ var zonesCapability = {
8426
8434
  runtimeState: zod.z.object({ zones: zod.z.array(ZoneSchema).readonly() })
8427
8435
  };
8428
8436
  /**
8437
+ * A bounding box in NORMALIZED [0,1] frame coordinates for `getNativeCrop`. The
8438
+ * decode worker resolves it against the RETAINED native frame's real pixel dims,
8439
+ * so the caller supplies only the detection-res bbox divided by the detection
8440
+ * dims — no native resolution to plumb.
8441
+ */
8442
+ var NativeCropBboxSchema = zod.z.object({
8443
+ x: zod.z.number(),
8444
+ y: zod.z.number(),
8445
+ w: zod.z.number(),
8446
+ h: zod.z.number()
8447
+ });
8448
+ /** Result of a best-effort native-resolution crop (`getNativeCrop`). */
8449
+ var NativeCropResultSchema = zod.z.object({
8450
+ /** Packed rgb (24-bit) pixels of the crop. */
8451
+ bytes: zod.z.instanceof(Uint8Array),
8452
+ width: zod.z.number().int().positive(),
8453
+ height: zod.z.number().int().positive()
8454
+ });
8455
+ /** Parent detection context passed to `runDetailSubtree` — the crop's
8456
+ * originating detection, in FRAME-space coordinates. Reuses
8457
+ * `NativeCropBboxSchema`'s `{x,y,w,h}` shape (same numeric fields; here
8458
+ * the coordinates are frame-space rather than getNativeCrop's
8459
+ * normalized [0,1] convention). */
8460
+ var DetailParentSchema = zod.z.object({
8461
+ bbox: NativeCropBboxSchema,
8462
+ className: zod.z.string()
8463
+ });
8464
+ /** One child-step result from `runDetailSubtree` — an embedding, label,
8465
+ * or refined detection produced by running the crop-subtree on a
8466
+ * single tracked detection. */
8467
+ var DetailResultSchema = zod.z.object({
8468
+ stepId: zod.z.string(),
8469
+ className: zod.z.string(),
8470
+ score: zod.z.number(),
8471
+ /** FRAME-space bbox (already mapped back from crop space). */
8472
+ bbox: NativeCropBboxSchema.optional(),
8473
+ embedding: zod.z.string().optional(),
8474
+ label: zod.z.string().optional(),
8475
+ alignedCropJpeg: zod.z.string().optional()
8476
+ });
8477
+ /**
8429
8478
  * Per-camera tunable ranges + defaults. Single source of truth used
8430
8479
  * by both the Zod data schema (validation + default fallback) and
8431
8480
  * the device settings UI (slider min/max/step). Touch one place and
@@ -8729,7 +8778,42 @@ var pipelineRunnerCapability = {
8729
8778
  /** All per-camera metrics in one round-trip. */
8730
8779
  getAllCameraMetrics: method(zod.z.void(), zod.z.array(CameraMetricsWithDeviceIdSchema).readonly()),
8731
8780
  /** List the deviceIds currently attached to this runner. */
8732
- getLocalCameras: method(zod.z.void(), zod.z.array(zod.z.number()).readonly())
8781
+ getLocalCameras: method(zod.z.void(), zod.z.array(zod.z.number()).readonly()),
8782
+ /**
8783
+ * Best-effort NATIVE-resolution crop of a retention-ring frame. Given the
8784
+ * `FrameHandle` that rode an inference-result event and a normalized `bbox`,
8785
+ * the runner asks the decode worker still holding that frame's NATIVE
8786
+ * surface to GPU/CPU-crop ONLY the ROI at native res and download just the
8787
+ * crop. Returns `null` on a miss (handle not registered, or the worker's
8788
+ * tiny native-retention ring already evicted the frame) — the caller falls
8789
+ * back to a detection-frame crop. Routed to the frame's owning node by
8790
+ * `handle.nodeId`; NEVER ships a full native frame.
8791
+ */
8792
+ getNativeCrop: method(zod.z.object({
8793
+ handle: FrameHandleSchema,
8794
+ bbox: NativeCropBboxSchema,
8795
+ maxWidth: zod.z.number().int().positive().optional()
8796
+ }), NativeCropResultSchema.nullable()),
8797
+ /**
8798
+ * Two-plane design: run the DETAIL subtree (crop children —
8799
+ * embedding, classifier, refiner steps whose `inputClasses ≠ null`)
8800
+ * for a single tracked detection. The per-frame plane (`runPipeline`
8801
+ * with `plane: 'frame'`) skips crop children entirely; a track-level
8802
+ * caller invokes this per-track, on its own cadence, instead of on
8803
+ * every frame. Takes either a `frameHandle` (shm lease/session —
8804
+ * preferred, zero-copy) or a `cropJpeg` fallback when the lease/
8805
+ * session backing the frame is already gone. `steps` narrows which
8806
+ * configured children to run (default: all configured children for
8807
+ * `parent.className`). Returns `null` when neither frame source is
8808
+ * resolvable (handle evicted and no cropJpeg fallback supplied).
8809
+ */
8810
+ runDetailSubtree: method(zod.z.object({
8811
+ deviceId: zod.z.number(),
8812
+ frameHandle: FrameHandleSchema.optional(),
8813
+ cropJpeg: zod.z.string().optional(),
8814
+ parent: DetailParentSchema,
8815
+ steps: zod.z.array(zod.z.string()).optional()
8816
+ }), zod.z.object({ details: zod.z.array(DetailResultSchema) }).nullable(), { kind: "mutation" })
8733
8817
  }
8734
8818
  };
8735
8819
  /**
@@ -14885,7 +14969,17 @@ var TrackSchema = zod.z.object({
14885
14969
  /** Cumulative normalized distance travelled (0..1 units = full frame width). */
14886
14970
  totalDistance: zod.z.number(),
14887
14971
  state: TrackStateSchema,
14888
- active: zod.z.boolean()
14972
+ active: zod.z.boolean(),
14973
+ /** Deterministic key-event importance score in [0,1] (server-computed at
14974
+ * track expiry, recomputed on late label). Absent on legacy rows written
14975
+ * before scoring shipped — consumers degrade to absence / compute-on-read. */
14976
+ importance: zod.z.number().optional(),
14977
+ /** Id of the track's highest-confidence ObjectEvent (its representative
14978
+ * "best" frame). Absent when the track produced no object events. */
14979
+ bestEventId: zod.z.string().optional(),
14980
+ /** Tag of the importance sub-signal that dominated the score
14981
+ * (identity|dwell|proximity|class|confidence|travel|zone). */
14982
+ importanceReason: zod.z.string().optional()
14889
14983
  });
14890
14984
  var BaseEventFields = {
14891
14985
  id: zod.z.string(),
@@ -14950,8 +15044,18 @@ var ObjectEventSchema = zod.z.object({
14950
15044
  frameHeight: zod.z.number().optional(),
14951
15045
  /** MediaStore key for the crop attached to this event (if any). */
14952
15046
  mediaKey: zod.z.string().optional(),
15047
+ /** Design B: MediaStore key of the track's native-resolution key frame (the
15048
+ * best-detection full frame). Resolve via the event-media data-plane
15049
+ * (`/addon/<addonId>/event-media/<keyFrameMediaKey>`) for a detail view that
15050
+ * draws `bbox` over the native frame. Absent on legacy rows / non-decoded
15051
+ * sources — consumers fall back to `mediaKey` (the tight crop). */
15052
+ keyFrameMediaKey: zod.z.string().optional(),
14953
15053
  /** Populated by B5 (recording playback URL for this event). */
14954
- mediaUrl: zod.z.string().optional()
15054
+ mediaUrl: zod.z.string().optional(),
15055
+ /** The parent track's key-event importance [0,1], propagated to every object
15056
+ * event of the track (so an event row can be sorted by importance without a
15057
+ * track join). Absent on legacy rows / before the track was scored. */
15058
+ importance: zod.z.number().optional()
14955
15059
  });
14956
15060
  var AudioEventSchema = zod.z.object({
14957
15061
  ...BaseEventFields,
@@ -14975,7 +15079,8 @@ var MediaFileKindEnum = zod.z.enum([
14975
15079
  "fullFrame",
14976
15080
  "fullFrameBoxed",
14977
15081
  "faceCrop",
14978
- "plateCrop"
15082
+ "plateCrop",
15083
+ "keyFrame"
14979
15084
  ]);
14980
15085
  var MediaFileSchema = zod.z.object({
14981
15086
  key: zod.z.string(),
@@ -14996,6 +15101,32 @@ var DeviceEventQueryInput = zod.z.object({
14996
15101
  projection: zod.z.enum(["full", "slim"]).optional()
14997
15102
  });
14998
15103
  var ObjectEventQueryInput = DeviceEventQueryInput.extend({ classFilter: zod.z.string().optional() });
15104
+ var KeyEventQueryInput = zod.z.object({
15105
+ deviceId: zod.z.number(),
15106
+ /** Window lower bound (track firstSeen ≥ since). */
15107
+ since: zod.z.number(),
15108
+ /** Window upper bound (track firstSeen ≤ until). */
15109
+ until: zod.z.number(),
15110
+ limit: zod.z.number().int().min(1).max(200).default(50),
15111
+ /** Drop tracks scoring below this importance. */
15112
+ minImportance: zod.z.number().min(0).max(1).optional(),
15113
+ /** Restrict to a single class (e.g. 'person'). */
15114
+ classFilter: zod.z.string().optional()
15115
+ });
15116
+ var KeyEventSchema = zod.z.object({
15117
+ /** The representative event id (the track's best ObjectEvent, else its trackId). */
15118
+ id: zod.z.string(),
15119
+ trackId: zod.z.string(),
15120
+ /** Track start time (firstSeen). */
15121
+ timestamp: zod.z.number(),
15122
+ className: zod.z.string(),
15123
+ label: zod.z.string().optional(),
15124
+ importance: zod.z.number(),
15125
+ /** Highest-confidence ObjectEvent id for the track (empty when none). */
15126
+ bestEventId: zod.z.string(),
15127
+ /** Track lifetime in ms (lastSeen - firstSeen). */
15128
+ windowMs: zod.z.number().optional()
15129
+ });
14999
15130
  var TrackedDetectionSchema = zod.z.object({
15000
15131
  trackId: zod.z.string(),
15001
15132
  className: zod.z.string(),
@@ -15044,6 +15175,15 @@ var pipelineAnalyticsCapability = {
15044
15175
  getMotionEvents: method(DeviceEventQueryInput, zod.z.array(MotionEventSchema).readonly()),
15045
15176
  getObjectEvents: method(ObjectEventQueryInput, zod.z.array(ObjectEventSchema).readonly()),
15046
15177
  getAudioEvents: method(DeviceEventQueryInput, zod.z.array(AudioEventSchema).readonly()),
15178
+ /**
15179
+ * Importance-ranked highlights for a device+window. Queries completed
15180
+ * tracks by (deviceId, firstSeen ∈ [since,until]), scores each (or reuses
15181
+ * the persisted score), filters by minImportance/classFilter, orders by
15182
+ * importance desc, and returns up to `limit` compact key events mapped to
15183
+ * each track's best event. Legacy tracks lacking a persisted score are
15184
+ * scored on-read (no write). Degrades to `[]` on error.
15185
+ */
15186
+ getKeyEvents: method(KeyEventQueryInput, zod.z.array(KeyEventSchema).readonly()),
15047
15187
  /** Server-side bucketed event counts for the 24-hour timeline.
15048
15188
  * Returns one entry per non-empty bucket; empty buckets are omitted. */
15049
15189
  getEventDensity: method(zod.z.object({
@@ -17907,7 +18047,17 @@ var FaceInfoSchema = zod.z.object({
17907
18047
  recognizedIdentityId: zod.z.string().optional(),
17908
18048
  identityName: zod.z.string().optional(),
17909
18049
  assigned: zod.z.boolean(),
17910
- base64: zod.z.string().optional()
18050
+ base64: zod.z.string().optional(),
18051
+ /** Design B: the face bbox (pixel space) on the key frame — lets a detail
18052
+ * view draw the box over the native `keyFrameMediaKey` frame. Absent on
18053
+ * legacy rows written before design B. */
18054
+ faceBbox: BoundingBoxSchema.optional(),
18055
+ /** Design B: MediaStore key of the track's native-resolution key frame.
18056
+ * Fetch the native JPEG via the event-media data-plane
18057
+ * (`/addon/<addonId>/event-media/<keyFrameMediaKey>`). Absent when the
18058
+ * track produced no key frame (e.g. native/onboard source) — the UI falls
18059
+ * back to the inline `base64` face crop. */
18060
+ keyFrameMediaKey: zod.z.string().optional()
17911
18061
  });
17912
18062
  var FaceFilterEnum = zod.z.enum([
17913
18063
  "unassigned",
@@ -23030,6 +23180,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
23030
23180
  addonId: null,
23031
23181
  access: "view"
23032
23182
  },
23183
+ "pipelineAnalytics.getKeyEvents": {
23184
+ capName: "pipeline-analytics",
23185
+ capScope: "device",
23186
+ addonId: null,
23187
+ access: "view"
23188
+ },
23033
23189
  "pipelineAnalytics.getMotionEvents": {
23034
23190
  capName: "pipeline-analytics",
23035
23191
  capScope: "device",
@@ -23558,12 +23714,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
23558
23714
  addonId: null,
23559
23715
  access: "view"
23560
23716
  },
23717
+ "pipelineRunner.getNativeCrop": {
23718
+ capName: "pipeline-runner",
23719
+ capScope: "system",
23720
+ addonId: null,
23721
+ access: "view"
23722
+ },
23561
23723
  "pipelineRunner.reportMotion": {
23562
23724
  capName: "pipeline-runner",
23563
23725
  capScope: "system",
23564
23726
  addonId: null,
23565
23727
  access: "create"
23566
23728
  },
23729
+ "pipelineRunner.runDetailSubtree": {
23730
+ capName: "pipeline-runner",
23731
+ capScope: "system",
23732
+ addonId: null,
23733
+ access: "create"
23734
+ },
23567
23735
  "plateGallery.correctPlateText": {
23568
23736
  capName: "plate-gallery",
23569
23737
  capScope: "system",
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-C-gQhgt3.js");
3
+ const require_dist = require("./dist-CiveK-yv.js");
4
4
  const require_model_download_service = require("./model-download-service-D-Umz4-L.js");
5
5
  const require_resource_monitor = require("./resource-monitor-DNNomR-i.js");
6
6
  const require_builtins_sqlite_storage_filesystem_storage_addon = require("./builtins/sqlite-storage/filesystem-storage.addon.js");
@@ -21,7 +21,7 @@ const require_builtins_local_auth_local_auth_addon = require("./builtins/local-a
21
21
  require("./builtins/local-auth/index.js");
22
22
  const require_builtins_device_manager_device_manager_addon = require("./builtins/device-manager/device-manager.addon.js");
23
23
  require("./builtins/device-manager/index.js");
24
- const require_manifest_python_deps = require("./manifest-python-deps-Pjgtwufj.js");
24
+ const require_manifest_python_deps = require("./manifest-python-deps-DRE97YbS.js");
25
25
  const require_custom_action_registry = require("./custom-action-registry-vLYEFTtv.js");
26
26
  let _camstack_types_node = require("@camstack/types/node");
27
27
  let zod = require("zod");
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as errMsg$1, A as isVoidInput, Ct as resolveCapMount, F as looseSchema, M as lifecycleJobSchema, O as isArrayOutputSchema, St as readinessKey, V as procedureAuthKey, _t as expandCapMethods, bt as parseJsonObject, ct as ReadinessRegistry, dt as asJsonObject$1, ft as asNumber, ht as emitDownForOwnedCaps, j as kebabToCamel, k as isObjectInput, lt as ReadinessTimeoutError, mt as createEvent, nt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, o as METHOD_ACCESS_MAP, p as addonSettingsCapability, pt as asString$1, rt as DEVICE_STATUS_METHOD, s as RUNTIME_DEFAULTS, st as EventCategory$1, t as ALL_CAPABILITY_DEFINITIONS, tt as DATAPLANE_SECRET_HEADER$1, wt as scopeKey, xt as parseJsonUnknown$1 } from "./dist-CJKq2Q3i.mjs";
1
+ import { $ as errMsg$1, A as isVoidInput, Ct as resolveCapMount, F as looseSchema, M as lifecycleJobSchema, O as isArrayOutputSchema, St as readinessKey, V as procedureAuthKey, _t as expandCapMethods, bt as parseJsonObject, ct as ReadinessRegistry, dt as asJsonObject$1, ft as asNumber, ht as emitDownForOwnedCaps, j as kebabToCamel, k as isObjectInput, lt as ReadinessTimeoutError, mt as createEvent, nt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, o as METHOD_ACCESS_MAP, p as addonSettingsCapability, pt as asString$1, rt as DEVICE_STATUS_METHOD, s as RUNTIME_DEFAULTS, st as EventCategory$1, t as ALL_CAPABILITY_DEFINITIONS, tt as DATAPLANE_SECRET_HEADER$1, wt as scopeKey, xt as parseJsonUnknown$1 } from "./dist-BMN1IAl3.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-C-IHWnXx.mjs";
3
3
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-Le3l0qS2.mjs";
4
4
  import { FilesystemStorageAddon, t as FilesystemStorageProvider } from "./builtins/sqlite-storage/filesystem-storage.addon.mjs";
@@ -19,7 +19,7 @@ import { LocalAuthAddon, a as require_ms, c as __esmMin, d as __toCommonJS, f as
19
19
  import "./builtins/local-auth/index.mjs";
20
20
  import { DeviceManagerAddon } from "./builtins/device-manager/device-manager.addon.mjs";
21
21
  import "./builtins/device-manager/index.mjs";
22
- 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, 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, y as __resetCapUsageRegistryForTests, yt as resolveAddonClass, z as AGENT_CAP_FWD_ACTION } from "./manifest-python-deps-DgfWY-Ts.mjs";
22
+ 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, 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, y as __resetCapUsageRegistryForTests, yt as resolveAddonClass, z as AGENT_CAP_FWD_ACTION } from "./manifest-python-deps-CWBvn2eF.mjs";
23
23
  import { t as CustomActionRegistry } from "./custom-action-registry-BEXwC-oo.mjs";
24
24
  import { PYTHON_VERSION, buildBinaryPath, downloadBinary, ensureBinary, ensureFfmpeg, ensurePython, findInPath, getFfmpegDownloadUrl, getPlatformInfo, getPythonDownloadUrl, installPythonPackages, installPythonRequirements } from "@camstack/types/node";
25
25
  import { z } from "zod";
@@ -1,4 +1,4 @@
1
- import { H as readNodePin } from "./dist-CJKq2Q3i.mjs";
1
+ import { H as readNodePin } from "./dist-BMN1IAl3.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";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-C-gQhgt3.js");
2
+ const require_dist = require("./dist-CiveK-yv.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");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/system",
3
- "version": "1.1.46",
3
+ "version": "1.1.48",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",