@camstack/system 1.2.39 → 1.2.41

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 (59) hide show
  1. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  2. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  3. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/alerts/alerts.addon.js +1 -1
  6. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  7. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  8. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  9. package/dist/builtins/console-logging/index.js +1 -1
  10. package/dist/builtins/console-logging/index.mjs +1 -1
  11. package/dist/builtins/core-blocks/block-package.d.ts +59 -0
  12. package/dist/builtins/core-blocks/block-supervisor.d.ts +86 -0
  13. package/dist/builtins/core-blocks/core-blocks.addon.d.ts +18 -0
  14. package/dist/builtins/core-blocks/core-blocks.addon.js +533 -68
  15. package/dist/builtins/core-blocks/core-blocks.addon.mjs +528 -69
  16. package/dist/builtins/core-blocks/index.d.ts +5 -3
  17. package/dist/builtins/core-blocks/index.js +6 -0
  18. package/dist/builtins/core-blocks/index.mjs +2 -2
  19. package/dist/builtins/device-manager/device-manager.addon.js +14 -6
  20. package/dist/builtins/device-manager/device-manager.addon.mjs +14 -6
  21. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  22. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  23. package/dist/builtins/hub-forwarder/index.js +1 -1
  24. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  25. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  26. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  27. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  28. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  29. package/dist/builtins/local-network/local-network.addon.js +1 -1
  30. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  31. package/dist/builtins/loki-logging/index.js +1 -1
  32. package/dist/builtins/loki-logging/index.mjs +1 -1
  33. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  34. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  35. package/dist/builtins/platform-probe/index.js +1 -1
  36. package/dist/builtins/platform-probe/index.mjs +1 -1
  37. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  38. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  39. package/dist/builtins/snapshot/index.js +281 -16
  40. package/dist/builtins/snapshot/index.mjs +282 -17
  41. package/dist/builtins/snapshot/snapshot-cache.d.ts +45 -0
  42. package/dist/builtins/snapshot/snapshot-media-handler.d.ts +32 -2
  43. package/dist/builtins/snapshot/snapshot-resize.d.ts +50 -0
  44. package/dist/builtins/snapshot/snapshot.addon.d.ts +13 -0
  45. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  46. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  47. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +1 -1
  48. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +1 -1
  49. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  50. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  51. package/dist/builtins/system-config/system-config.addon.js +1 -1
  52. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  53. package/dist/builtins/winston-logging/index.js +1 -1
  54. package/dist/builtins/winston-logging/index.mjs +1 -1
  55. package/dist/{dist-CFinlH7b.js → dist-BECNOXoK.js} +54 -2
  56. package/dist/{dist-DO76YVO2.mjs → dist-rjk6L9_P.mjs} +54 -2
  57. package/dist/index.js +1 -1
  58. package/dist/index.mjs +1 -1
  59. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { Tt as hydrateSchema, ct as BaseAddon, st as errMsg } from "../../dist-DO76YVO2.mjs";
1
+ import { Tt as hydrateSchema, ct as BaseAddon, st as errMsg } from "../../dist-rjk6L9_P.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-CFinlH7b.js");
6
+ const require_dist = require("../../dist-BECNOXoK.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 { H as logDestinationCapability, ct as BaseAddon } from "../../dist-DO76YVO2.mjs";
1
+ import { H as logDestinationCapability, ct as BaseAddon } from "../../dist-rjk6L9_P.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";
@@ -16024,8 +16024,30 @@ var deviceManagerCapability = {
16024
16024
  }),
16025
16025
  /** List persisted devices for an addon (DB, for restore). */
16026
16026
  listPersistedByAddon: method(zod.z.object({ addonId: zod.z.string() }), zod.z.array(SavedDeviceRowSchema)),
16027
- /** List all devices (live registry), optionally filtered by addonId. */
16028
- listAll: method(zod.z.object({ addonId: zod.z.string().optional() }), zod.z.array(DeviceInfoSchema)),
16027
+ /**
16028
+ * List all devices (live registry), optionally filtered by addonId.
16029
+ *
16030
+ * **Ask for `projection: 'slim'` unless you need `config`.** A full listing
16031
+ * of 293 devices measured 271 KB, of which `config` was 113 KB and
16032
+ * `metadata` 22 KB — half the payload — and the viewer's camera list, the
16033
+ * largest consumer, reads 1.8 KB of it. Worse, the persisted branch reads
16034
+ * each device's settings row one at a time, so `config` costs a
16035
+ * per-device round-trip as well as its bytes.
16036
+ */
16037
+ listAll: method(zod.z.object({
16038
+ addonId: zod.z.string().optional(),
16039
+ /**
16040
+ * `slim` omits `config` (returned `{}`), `metadata` (null) and the
16041
+ * `sourceInfo` derived from config — and skips the per-device settings
16042
+ * read that produces them. Everything identifying a device (id, name,
16043
+ * type, online, features, isCamera, parent/link ids) is unchanged.
16044
+ * Do not use it for dispatch routing, which needs `sourceInfo`.
16045
+ */
16046
+ projection: zod.z.enum(["full", "slim"]).optional(),
16047
+ /** Return only camera devices. Filtering server-side instead of
16048
+ * shipping 293 rows to find 12. */
16049
+ isCamera: zod.z.boolean().optional()
16050
+ }), zod.z.array(DeviceInfoSchema)),
16029
16051
  /** Get a single device by numeric deviceId. */
16030
16052
  getDevice: method(zod.z.object({ deviceId: zod.z.number() }), DeviceInfoSchema.nullable()),
16031
16053
  /** List children of a parent device (by parent numeric id). */
@@ -18110,6 +18132,11 @@ var EventKindDescriptorSchema = zod.z.object({
18110
18132
  deviceId: zod.z.number()
18111
18133
  })
18112
18134
  });
18135
+ /** One camera's event vocabulary, as returned by `listEventKindsBatch`. */
18136
+ var EventKindsForDeviceSchema = zod.z.object({
18137
+ deviceId: zod.z.number(),
18138
+ kinds: zod.z.array(EventKindDescriptorSchema).readonly()
18139
+ });
18113
18140
  var SensorEventSchema = zod.z.object({
18114
18141
  id: zod.z.string(),
18115
18142
  /** The CAMERA the event is attributed to (a sensor linked to N cameras
@@ -18561,6 +18588,25 @@ var pipelineAnalyticsCapability = {
18561
18588
  */
18562
18589
  listEventKinds: method(zod.z.object({ deviceId: zod.z.number() }), zod.z.array(EventKindDescriptorSchema).readonly()),
18563
18590
  /**
18591
+ * The same answer for many cameras in ONE call.
18592
+ *
18593
+ * `listEventKinds` is the slowest per-device query on the hub — measured
18594
+ * at ~100 ms against 6-11 ms for its neighbours — because composing it
18595
+ * costs a `getCameraStatus`, a `getLinkedDevices` and one `getBindings`
18596
+ * per linked device. The viewer asks for it once per camera at first
18597
+ * paint, so twelve cameras paid twelve of those round-trips on top of the
18598
+ * per-camera cost.
18599
+ *
18600
+ * Batched, the camera statuses come from ONE `getCameraStatuses` instead
18601
+ * of N, and the per-device composition runs concurrently.
18602
+ *
18603
+ * Per-device rather than pre-merged on purpose: a caller that renders one
18604
+ * camera's lanes needs to know WHICH camera a kind came from, and merging
18605
+ * is three lines the caller can do. `listEventKinds` stays for
18606
+ * single-device callers.
18607
+ */
18608
+ listEventKindsBatch: method(zod.z.object({ deviceIds: zod.z.array(zod.z.number()).min(1).max(200) }), zod.z.array(EventKindsForDeviceSchema).readonly()),
18609
+ /**
18564
18610
  * Sensor-event history for a camera: state changes of LINKED sensor
18565
18611
  * devices, attributed to the camera at ingest time (one row per linked
18566
18612
  * camera). Mirrors `getAudioEvents` query semantics; `kinds` narrows to
@@ -27579,6 +27625,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
27579
27625
  addonId: null,
27580
27626
  access: "view"
27581
27627
  },
27628
+ "pipelineAnalytics.listEventKindsBatch": {
27629
+ capName: "pipeline-analytics",
27630
+ capScope: "device",
27631
+ addonId: null,
27632
+ access: "view"
27633
+ },
27582
27634
  "pipelineAnalytics.listOpsLog": {
27583
27635
  capName: "pipeline-analytics",
27584
27636
  capScope: "device",
@@ -16024,8 +16024,30 @@ var deviceManagerCapability = {
16024
16024
  }),
16025
16025
  /** List persisted devices for an addon (DB, for restore). */
16026
16026
  listPersistedByAddon: method(z.object({ addonId: z.string() }), z.array(SavedDeviceRowSchema)),
16027
- /** List all devices (live registry), optionally filtered by addonId. */
16028
- listAll: method(z.object({ addonId: z.string().optional() }), z.array(DeviceInfoSchema)),
16027
+ /**
16028
+ * List all devices (live registry), optionally filtered by addonId.
16029
+ *
16030
+ * **Ask for `projection: 'slim'` unless you need `config`.** A full listing
16031
+ * of 293 devices measured 271 KB, of which `config` was 113 KB and
16032
+ * `metadata` 22 KB — half the payload — and the viewer's camera list, the
16033
+ * largest consumer, reads 1.8 KB of it. Worse, the persisted branch reads
16034
+ * each device's settings row one at a time, so `config` costs a
16035
+ * per-device round-trip as well as its bytes.
16036
+ */
16037
+ listAll: method(z.object({
16038
+ addonId: z.string().optional(),
16039
+ /**
16040
+ * `slim` omits `config` (returned `{}`), `metadata` (null) and the
16041
+ * `sourceInfo` derived from config — and skips the per-device settings
16042
+ * read that produces them. Everything identifying a device (id, name,
16043
+ * type, online, features, isCamera, parent/link ids) is unchanged.
16044
+ * Do not use it for dispatch routing, which needs `sourceInfo`.
16045
+ */
16046
+ projection: z.enum(["full", "slim"]).optional(),
16047
+ /** Return only camera devices. Filtering server-side instead of
16048
+ * shipping 293 rows to find 12. */
16049
+ isCamera: z.boolean().optional()
16050
+ }), z.array(DeviceInfoSchema)),
16029
16051
  /** Get a single device by numeric deviceId. */
16030
16052
  getDevice: method(z.object({ deviceId: z.number() }), DeviceInfoSchema.nullable()),
16031
16053
  /** List children of a parent device (by parent numeric id). */
@@ -18110,6 +18132,11 @@ var EventKindDescriptorSchema = z.object({
18110
18132
  deviceId: z.number()
18111
18133
  })
18112
18134
  });
18135
+ /** One camera's event vocabulary, as returned by `listEventKindsBatch`. */
18136
+ var EventKindsForDeviceSchema = z.object({
18137
+ deviceId: z.number(),
18138
+ kinds: z.array(EventKindDescriptorSchema).readonly()
18139
+ });
18113
18140
  var SensorEventSchema = z.object({
18114
18141
  id: z.string(),
18115
18142
  /** The CAMERA the event is attributed to (a sensor linked to N cameras
@@ -18561,6 +18588,25 @@ var pipelineAnalyticsCapability = {
18561
18588
  */
18562
18589
  listEventKinds: method(z.object({ deviceId: z.number() }), z.array(EventKindDescriptorSchema).readonly()),
18563
18590
  /**
18591
+ * The same answer for many cameras in ONE call.
18592
+ *
18593
+ * `listEventKinds` is the slowest per-device query on the hub — measured
18594
+ * at ~100 ms against 6-11 ms for its neighbours — because composing it
18595
+ * costs a `getCameraStatus`, a `getLinkedDevices` and one `getBindings`
18596
+ * per linked device. The viewer asks for it once per camera at first
18597
+ * paint, so twelve cameras paid twelve of those round-trips on top of the
18598
+ * per-camera cost.
18599
+ *
18600
+ * Batched, the camera statuses come from ONE `getCameraStatuses` instead
18601
+ * of N, and the per-device composition runs concurrently.
18602
+ *
18603
+ * Per-device rather than pre-merged on purpose: a caller that renders one
18604
+ * camera's lanes needs to know WHICH camera a kind came from, and merging
18605
+ * is three lines the caller can do. `listEventKinds` stays for
18606
+ * single-device callers.
18607
+ */
18608
+ listEventKindsBatch: method(z.object({ deviceIds: z.array(z.number()).min(1).max(200) }), z.array(EventKindsForDeviceSchema).readonly()),
18609
+ /**
18564
18610
  * Sensor-event history for a camera: state changes of LINKED sensor
18565
18611
  * devices, attributed to the camera at ingest time (one row per linked
18566
18612
  * camera). Mirrors `getAudioEvents` query semantics; `kinds` narrows to
@@ -27579,6 +27625,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
27579
27625
  addonId: null,
27580
27626
  access: "view"
27581
27627
  },
27628
+ "pipelineAnalytics.listEventKindsBatch": {
27629
+ capName: "pipeline-analytics",
27630
+ capScope: "device",
27631
+ addonId: null,
27632
+ access: "view"
27633
+ },
27582
27634
  "pipelineAnalytics.listOpsLog": {
27583
27635
  capName: "pipeline-analytics",
27584
27636
  capScope: "device",
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-CFinlH7b.js");
3
+ const require_dist = require("./dist-BECNOXoK.js");
4
4
  const require_model_download_service = require("./model-download-service-hf0ookyy.js");
5
5
  const require_manifest_python_deps = require("./manifest-python-deps-BqE5j0-O.js");
6
6
  const require_resource_monitor = require("./resource-monitor-DNNomR-i.js");
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM$1, r as __exportAll, t as __commonJSMin$1 } from "./chunk-CNf5ZN-e.mjs";
2
- import { At as readinessKey, B as lifecycleJobSchema, F as isArrayOutputSchema, I as isCollectionArrayMethod, L as isObjectInput, M as extractNestedAddonId, Mt as scopeKey, Ot as parseJsonObject, Pt as EventCategory$1, R as isVoidInput, St as emitDownForOwnedCaps, U as logLevelAtMost, W as looseSchema, X as procedureAuthKey, bt as asString$1, c as METHOD_ACCESS_MAP, dt as DEVICE_STATUS_METHOD, gt as ReadinessTimeoutError, h as addonSettingsCapability, ht as ReadinessRegistry, jt as resolveCapMount, kt as parseJsonUnknown$1, l as RUNTIME_DEFAULTS, lt as DATAPLANE_SECRET_HEADER$1, q as objectInputDeclaresAddonId, st as errMsg$1, t as ALL_CAPABILITY_DEFINITIONS, ut as DEVICE_SETTINGS_CONTRIBUTION_METHODS, vt as asJsonObject$1, wt as expandCapMethods, xt as createEvent, yt as asNumber, z as kebabToCamel } from "./dist-DO76YVO2.mjs";
2
+ import { At as readinessKey, B as lifecycleJobSchema, F as isArrayOutputSchema, I as isCollectionArrayMethod, L as isObjectInput, M as extractNestedAddonId, Mt as scopeKey, Ot as parseJsonObject, Pt as EventCategory$1, R as isVoidInput, St as emitDownForOwnedCaps, U as logLevelAtMost, W as looseSchema, X as procedureAuthKey, bt as asString$1, c as METHOD_ACCESS_MAP, dt as DEVICE_STATUS_METHOD, gt as ReadinessTimeoutError, h as addonSettingsCapability, ht as ReadinessRegistry, jt as resolveCapMount, kt as parseJsonUnknown$1, l as RUNTIME_DEFAULTS, lt as DATAPLANE_SECRET_HEADER$1, q as objectInputDeclaresAddonId, st as errMsg$1, t as ALL_CAPABILITY_DEFINITIONS, ut as DEVICE_SETTINGS_CONTRIBUTION_METHODS, vt as asJsonObject$1, wt as expandCapMethods, xt as createEvent, yt as asNumber, z as kebabToCamel } from "./dist-rjk6L9_P.mjs";
3
3
  import { a as downloadModel, c as getModelFilePath, d as contentTypeFor, f as createAuthenticatedFileServer, h as resolveFilePath, i as downloadFile, l as isModelDownloaded, m as parseTokenizedUrl, n as collectModelFiles, o as ensureModel, p as parseRangeHeader, r as deleteModelFromDisk, s as fetchJson, t as ModelDownloadService, u as createFileDataPlaneHandler } from "./model-download-service-Cp9f4dk6.mjs";
4
4
  import { $ as buildNativeCapProxy, A as createHubCapForwardService, B as AGENT_CAP_FWD_ACTION, C as brokerTransportLink, Ct as resolveAddonClass, D as localProviderLink, E as ipcParentLink, F as createUdsLogger, G as callWithServiceDiscovery, H as CapRouteResolver, I as createUdsLoggerWithControl, J as UdsLocalTransportServer, K as createLocalTransport, L as LocalChildClient, M as createUdsEventBridge, N as createUdsEventBus, O as HUB_CAP_FWD_ACTION, P as udsChildLogToWorkerEntry, Q as encodeFrame, R as LocalChildRegistry, S as brokerCallForCap, St as runNpm, T as ipcChildLink, U as CapRouteError, V as AGENT_CAP_FWD_SERVICE, W as classifyCapRoute, X as localEndpointPath, Y as SocketChannel, Z as FrameDecoder, _ as createKernelHwAccel, _t as CapabilityHandle, a as getWorkerDeviceRegistry, b as __resetCapUsageRegistryForTests, bt as installManifestNativeDeps, c as setHubConnected, ct as NATIVE_PROVIDER_SERVICE_INFIX, d as getBrokerEventBus, dt as capBareAction, et as buildUdsNativeCapProxy, f as getMoleculerEventStats, ft as capServiceName, g as AddonDepsManager, gt as DeviceRegistry, h as subscribePassthrough, ht as serializeTypedArrays, i as createUdsAddonContext, it as mountNativeCapService, j as createParentUnownedCallHandler, k as HUB_CAP_FWD_SERVICE, l as EVENT_TOPIC_PREFIX, lt as capActionName, m as setNodeEventInterest, mt as deserializeTypedArrays, n as adaptBrokerToCluster, o as getOrInitReadinessRegistry, ot as createAddonService, p as registerEventBusService, pt as parseCapAction, q as UdsLocalTransportClient, r as createAddonContext, s as getOrInitReadinessRegistryForClient, st as validateProviderRegistrations, t as installManifestPythonDeps, tt as createBrokerDeviceManagerApi, u as clusterEventTopic, ut as capActionSuffix, v as resolveHwAccel, vt as CapabilityUnavailableError, w as buildLinkChain, wt as createAddonDataPlaneFacility, x as getCapUsageRegistry, xt as resolveNpmInvocation, y as CapUsageRegistry, yt as copyBundledNativeModules, z as UDS_NO_ROUTE_PREFIX } from "./manifest-python-deps-Ck4-9K9m.mjs";
5
5
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-BkP504Vq.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/system",
3
- "version": "1.2.39",
3
+ "version": "1.2.41",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",