@camstack/addon-pipeline 1.2.360 → 1.2.362

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 (38) hide show
  1. package/dist/audio-analyzer/index.js +3 -3
  2. package/dist/audio-analyzer/index.mjs +3 -3
  3. package/dist/{custom-model-catalog-ihWAlDr4.mjs → custom-model-catalog-C77XAnt9.mjs} +2 -2
  4. package/dist/{custom-model-catalog-K9Hx82GZ.js → custom-model-catalog-CL9Tcn2Y.js} +2 -2
  5. package/dist/detection-pipeline/index.js +4 -4
  6. package/dist/detection-pipeline/index.mjs +4 -4
  7. package/dist/{dist-BYCrV0VR.mjs → dist-D629dz5x.mjs} +127 -20
  8. package/dist/{dist-CYakbWA8.js → dist-tclsRHCk.js} +126 -19
  9. package/dist/{model-catalogs-CX9SJ9in.mjs → model-catalogs-BxQBJBt4.mjs} +1 -1
  10. package/dist/{model-catalogs-C9cyLHdH.js → model-catalogs-Y1WJrGyS.js} +1 -1
  11. package/dist/motion-wasm/index.js +1 -1
  12. package/dist/motion-wasm/index.mjs +1 -1
  13. package/dist/{node-CTCm8Vtw.js → node-BYrYuZdh.js} +4 -2
  14. package/dist/{node-C_qDNN9f.mjs → node-D2D0N7_h.mjs} +3 -2
  15. package/dist/pipeline-runner/index.js +3 -3
  16. package/dist/pipeline-runner/index.mjs +3 -3
  17. package/dist/{process-memory-B3lkW9H-.mjs → process-memory-BR1e6q_Q.mjs} +1 -1
  18. package/dist/{process-memory-Ds5S3L0F.js → process-memory-eM4qLFdC.js} +1 -1
  19. package/dist/recorder/index.js +1679 -2
  20. package/dist/recorder/index.mjs +1679 -2
  21. package/dist/{segment-demux-js-BgDpp15L.js → segment-demux-js-B9EqRfBi.js} +1 -1
  22. package/dist/{segment-demux-js-W5FIgijf.mjs → segment-demux-js-C5IOs4lZ.mjs} +1 -1
  23. package/dist/stream-broker/_stub.js +2 -2
  24. package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-v95KZ2Rt.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-C4Cp_OAY.mjs} +2 -2
  25. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CICWhpXS.mjs +26 -0
  26. package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-qyhFaM-7.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-7VuNrr9l.mjs} +1 -1
  27. package/dist/stream-broker/demux-worker-child.js +1 -1
  28. package/dist/stream-broker/demux-worker-child.mjs +1 -1
  29. package/dist/stream-broker/{hostInit-CDaDWDva.mjs → hostInit-CZ_HBwki.mjs} +2 -2
  30. package/dist/stream-broker/index.js +159 -20
  31. package/dist/stream-broker/index.mjs +159 -20
  32. package/dist/stream-broker/remoteEntry.js +1 -1
  33. package/package.json +1 -1
  34. package/python/inference_pool.py +12 -13
  35. package/python/pool_platform.py +214 -0
  36. package/python/test_inference_pool_windows.py +86 -0
  37. package/python/test_pool_platform.py +141 -0
  38. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-XWaPHrfA.mjs +0 -26
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../chunk-emK7D4bc.js");
6
- const require_dist = require("../dist-CYakbWA8.js");
7
- const require_model_catalogs = require("../model-catalogs-C9cyLHdH.js");
8
- const require_process_memory = require("../process-memory-Ds5S3L0F.js");
6
+ const require_dist = require("../dist-tclsRHCk.js");
7
+ const require_model_catalogs = require("../model-catalogs-Y1WJrGyS.js");
8
+ const require_process_memory = require("../process-memory-eM4qLFdC.js");
9
9
  let node_fs = require("node:fs");
10
10
  node_fs = require_chunk.__toESM(node_fs);
11
11
  let node_path = require("node:path");
@@ -1,7 +1,7 @@
1
1
  import { n as __require } from "../chunk-DnnnRqeS.mjs";
2
- import { $ as audioAnalysisCapability, Bn as expandAudioChunkToF32le, In as audioChunkBytesPerSample, Kn as nodePin, L as PoolMemoryWatchdog, Nn as BaseAddon, Rt as mapAudioLabelToMacro, Vn as hydrateSchema, cr as EventCategory, et as audioAnalyzerCapability, h as DEFAULT_AUDIO_ANALYZER_CONFIG, jn as errMsg, ln as resolvePoolMemoryPolicy, r as AUDIO_BACKEND_CHOICES } from "../dist-BYCrV0VR.mjs";
3
- import { n as AUDIO_CLASSIFIER_MODELS } from "../model-catalogs-CX9SJ9in.mjs";
4
- import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-B3lkW9H-.mjs";
2
+ import { An as BaseAddon, F as PoolMemoryWatchdog, Fn as audioChunkBytesPerSample, Ft as mapAudioLabelToMacro, Kn as nodePin, On as errMsg, Q as audioAnalyzerCapability, Vn as hydrateSchema, Z as audioAnalysisCapability, cr as EventCategory, h as DEFAULT_AUDIO_ANALYZER_CONFIG, on as resolvePoolMemoryPolicy, r as AUDIO_BACKEND_CHOICES, zn as expandAudioChunkToF32le } from "../dist-D629dz5x.mjs";
3
+ import { n as AUDIO_CLASSIFIER_MODELS } from "../model-catalogs-BxQBJBt4.mjs";
4
+ import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-BR1e6q_Q.mjs";
5
5
  import * as fs from "node:fs";
6
6
  import * as path$1 from "node:path";
7
7
  import { ensureModel } from "@camstack/system/addon-utils";
@@ -1,5 +1,5 @@
1
- import { A as LABEL_SUPPLY_VOCABULARIES, Mt as inferModelProvider, b as DEVICE_BACKEND_TO_FORMAT, f as COCO_80_LABELS, i as AUDIO_MACRO_LABELS, mn as stepModelRunsOnFormat, p as COCO_TO_MACRO, tt as audioKindId } from "./dist-BYCrV0VR.mjs";
2
- import { a as FACE_DETECTION_MODELS, c as OBJECT_DETECTION_MODELS, d as PLATE_OCR_MODELS, f as SEGMENTATION_REFINER_MODELS, i as CLIP_EMBEDDING_MODELS, l as PACKAGE_DETECTION_MODELS, n as AUDIO_CLASSIFIER_MODELS, o as FACE_EMBEDDING_MODELS, p as VEHICLE_CLASSIFIER_MODELS, r as BIRD_CLASSIFIER_MODELS, s as INSTANCE_SEGMENTATION_MODELS, t as ANIMAL_CLASSIFIER_MODELS, u as PLATE_DETECTION_MODELS } from "./model-catalogs-CX9SJ9in.mjs";
1
+ import { $ as audioKindId, b as DEVICE_BACKEND_TO_FORMAT, dn as stepModelRunsOnFormat, f as COCO_80_LABELS, i as AUDIO_MACRO_LABELS, k as LABEL_SUPPLY_VOCABULARIES, kt as inferModelProvider, p as COCO_TO_MACRO } from "./dist-D629dz5x.mjs";
2
+ import { a as FACE_DETECTION_MODELS, c as OBJECT_DETECTION_MODELS, d as PLATE_OCR_MODELS, f as SEGMENTATION_REFINER_MODELS, i as CLIP_EMBEDDING_MODELS, l as PACKAGE_DETECTION_MODELS, n as AUDIO_CLASSIFIER_MODELS, o as FACE_EMBEDDING_MODELS, p as VEHICLE_CLASSIFIER_MODELS, r as BIRD_CLASSIFIER_MODELS, s as INSTANCE_SEGMENTATION_MODELS, t as ANIMAL_CLASSIFIER_MODELS, u as PLATE_DETECTION_MODELS } from "./model-catalogs-BxQBJBt4.mjs";
3
3
  import { t as isWorkerReply } from "./worker-protocol-D_NzPcnh.mjs";
4
4
  import { randomUUID } from "node:crypto";
5
5
  //#region src/detection-pipeline/registry/effective-confidence.ts
@@ -1,5 +1,5 @@
1
- const require_dist = require("./dist-CYakbWA8.js");
2
- const require_model_catalogs = require("./model-catalogs-C9cyLHdH.js");
1
+ const require_dist = require("./dist-tclsRHCk.js");
2
+ const require_model_catalogs = require("./model-catalogs-Y1WJrGyS.js");
3
3
  const require_worker_protocol = require("./worker-protocol-C-G8qmye.js");
4
4
  let node_crypto = require("node:crypto");
5
5
  //#region src/detection-pipeline/registry/effective-confidence.ts
@@ -3,11 +3,11 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../chunk-emK7D4bc.js");
6
- const require_dist = require("../dist-CYakbWA8.js");
7
- const require_node = require("../node-CTCm8Vtw.js");
8
- const require_custom_model_catalog = require("../custom-model-catalog-K9Hx82GZ.js");
6
+ const require_dist = require("../dist-tclsRHCk.js");
7
+ const require_node = require("../node-BYrYuZdh.js");
8
+ const require_custom_model_catalog = require("../custom-model-catalog-CL9Tcn2Y.js");
9
9
  const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
10
- const require_process_memory = require("../process-memory-Ds5S3L0F.js");
10
+ const require_process_memory = require("../process-memory-eM4qLFdC.js");
11
11
  let node_os = require("node:os");
12
12
  node_os = require_chunk.__toESM(node_os);
13
13
  let node_fs = require("node:fs");
@@ -1,9 +1,9 @@
1
1
  import { n as __require } from "../chunk-DnnnRqeS.mjs";
2
- import { It as loadContributionCapability, Jt as pickClusterStepSettings, Kn as nodePin, Kt as overlayClusterStepSettings, L as PoolMemoryWatchdog, Ln as createEvent, Nn as BaseAddon, Pt as linkedLabelStepId, Q as applyModelBoundSettings, St as evaluateZoneRules, Vn as hydrateSchema, Wt as modelBindingKey, Y as YAMNET_TO_MACRO, Yn as sleep, Zn as array, Zt as pipelineExecutorCapability, cr as EventCategory, ct as collectModelBoundKeys, d as CLUSTER_MODEL_SCOPED_STEPS, fn as rootSuppliesOf, g as DEFAULT_CLUSTER_STEP_SETTINGS, in as resolveClusterStepModelId, jn as errMsg$1, jt as hfModelUrl, k as LABEL_SUPPLY_MACRO, ln as resolvePoolMemoryPolicy, lt as containingParentIndex, mn as stepModelRunsOnFormat, n as APPLE_SA_TO_MACRO, or as string, pn as runtimeDevices$1, pt as defaultDeviceFor$1, rr as object, sr as union, vt as detectionPipelineCapability, xt as enumerateInferenceDevices, yn as supportedRuntimes$1 } from "../dist-BYCrV0VR.mjs";
3
- import { s as readProcessCost } from "../node-C_qDNN9f.mjs";
4
- import { C as resolveModelDefaultConfidence, S as landmarkPrecisionVerdict, _ as ALL_STEPS, b as getStepDefinition, f as localFrameRegistry, g as ALL_PIPELINE_STEPS, l as resolveDefaultDetectionModel, n as mergeCustomModels, o as deviceKeyOf, r as buildSubtreeCanRun, s as resolveDeviceEngine, t as CustomModelCatalog, u as macroGateVerdict, v as getDefaultModelForFormat, x as resolveModelForFormat, y as getStep } from "../custom-model-catalog-ihWAlDr4.mjs";
2
+ import { An as BaseAddon, Bn as hfModelUrl, F as PoolMemoryWatchdog, Gt as pickClusterStepSettings, In as createEvent, Jt as pipelineExecutorCapability, Kn as nodePin, Nt as loadContributionCapability, O as LABEL_SUPPLY_MACRO, On as errMsg$1, Ut as overlayClusterStepSettings, Vn as hydrateSchema, Vt as modelBindingKey, X as applyModelBoundSettings, Yn as sleep, Zn as array, bt as evaluateZoneRules, cr as EventCategory, d as CLUSTER_MODEL_SCOPED_STEPS, dn as stepModelRunsOnFormat, dt as defaultDeviceFor$1, g as DEFAULT_CLUSTER_STEP_SETTINGS, gn as supportedRuntimes$1, gt as detectionPipelineCapability, jt as linkedLabelStepId, ln as rootSuppliesOf, n as APPLE_SA_TO_MACRO, on as resolvePoolMemoryPolicy, or as string, ot as collectModelBoundKeys, q as YAMNET_TO_MACRO, rr as object, sr as union, st as containingParentIndex, tn as resolveClusterStepModelId, un as runtimeDevices$1, yt as enumerateInferenceDevices } from "../dist-D629dz5x.mjs";
3
+ import { s as readProcessCost } from "../node-D2D0N7_h.mjs";
4
+ import { C as resolveModelDefaultConfidence, S as landmarkPrecisionVerdict, _ as ALL_STEPS, b as getStepDefinition, f as localFrameRegistry, g as ALL_PIPELINE_STEPS, l as resolveDefaultDetectionModel, n as mergeCustomModels, o as deviceKeyOf, r as buildSubtreeCanRun, s as resolveDeviceEngine, t as CustomModelCatalog, u as macroGateVerdict, v as getDefaultModelForFormat, x as resolveModelForFormat, y as getStep } from "../custom-model-catalog-C77XAnt9.mjs";
5
5
  import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
6
- import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-B3lkW9H-.mjs";
6
+ import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-BR1e6q_Q.mjs";
7
7
  import * as os$1 from "node:os";
8
8
  import * as fs from "node:fs";
9
9
  import * as path$1 from "node:path";
@@ -5387,7 +5387,7 @@ var ZodIssueCode = {
5387
5387
  var ZodFirstPartyTypeKind;
5388
5388
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5389
5389
  //#endregion
5390
- //#region ../types/dist/sleep-BjDbnx6-.mjs
5390
+ //#region ../types/dist/sleep-B_3F_YwS.mjs
5391
5391
  /**
5392
5392
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5393
5393
  * window to float samples (D455).
@@ -8101,6 +8101,21 @@ var ProfileRtspEntrySchema = object({
8101
8101
  resolution: CamStreamResolutionSchema.optional()
8102
8102
  });
8103
8103
  /**
8104
+ * The model weight formats a catalog entry can ship. Schema-free on purpose:
8105
+ * `types/models.ts` builds Zod schemas from it, but a runner-closure consumer
8106
+ * (the model downloader in `@camstack/system`) needs only the list and must
8107
+ * reach it through `@camstack/types/addon` without building the cap schema
8108
+ * graph (D28).
8109
+ */
8110
+ var MODEL_FORMATS = [
8111
+ "onnx",
8112
+ "coreml",
8113
+ "openvino",
8114
+ "tflite",
8115
+ "pt",
8116
+ "gguf"
8117
+ ];
8118
+ /**
8104
8119
  * Per-call node pinning for `ctx.api` capability calls.
8105
8120
  *
8106
8121
  * A capability call normally resolves to its DEFAULT provider — a `singleton`
@@ -8337,6 +8352,8 @@ method(object({ deviceId: number() }), array(StreamSourceEntrySchema)), method(o
8337
8352
  kind: "mutation",
8338
8353
  auth: "admin"
8339
8354
  }), method(object({ deviceId: number() }), unknown().nullable()), method(object({ deviceId: number() }), RawStateResultSchema.nullable(), { auth: "protected" });
8355
+ var HF_REPO = "camstack/camstack-models";
8356
+ `${HF_REPO}`;
8340
8357
  /**
8341
8358
  * The ONE retry schedule for work that can fail simply because the node was
8342
8359
  * still booting.
@@ -8371,6 +8388,9 @@ var BOOT_RECOVERY_BACKOFF_MS = [
8371
8388
  60 * 6e4,
8372
8389
  90 * 6e4
8373
8390
  ];
8391
+ function hfModelUrl(repo, path) {
8392
+ return `https://huggingface.co/${repo}/resolve/main/${path}`;
8393
+ }
8374
8394
  /**
8375
8395
  * Names that, when used as URL query parameters, almost certainly carry
8376
8396
  * a secret. Matching is case-insensitive and anchored to the full param
@@ -8799,7 +8819,7 @@ function errMsg(err) {
8799
8819
  return String(err);
8800
8820
  }
8801
8821
  //#endregion
8802
- //#region ../types/dist/composition-Bzr7GwgP.mjs
8822
+ //#region ../types/dist/composition-C-WpVYTX.mjs
8803
8823
  var AUDIO_ENCODER_BY_CODEC = {
8804
8824
  opus: "libopus",
8805
8825
  aac: "aac",
@@ -9558,7 +9578,7 @@ var BASE = `https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v${FFM
9558
9578
  function portable(target) {
9559
9579
  return `${BASE}/jellyfin-ffmpeg_${FFMPEG_RELEASE}_portable_${target}-gpl.tar.xz`;
9560
9580
  }
9561
- portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64");
9581
+ portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64"), `${BASE}${FFMPEG_RELEASE}`;
9562
9582
  /**
9563
9583
  * THE table "which boolean of this device type counts as HIGH", and the
9564
9584
  * pure evaluator of its EDGE.
@@ -14187,14 +14207,6 @@ function containingParentIndex(child, parents) {
14187
14207
  });
14188
14208
  return best;
14189
14209
  }
14190
- var MODEL_FORMATS = [
14191
- "onnx",
14192
- "coreml",
14193
- "openvino",
14194
- "tflite",
14195
- "pt",
14196
- "gguf"
14197
- ];
14198
14210
  /**
14199
14211
  * Multi-file format payload.
14200
14212
  *
@@ -16472,6 +16484,16 @@ var BrokerClientsSchema = object({
16472
16484
  /** Total encoded + raw-RTP callback subscriber count (sum of `encoded[].length`). */
16473
16485
  encodedSubscribers: number()
16474
16486
  });
16487
+ /**
16488
+ * How many people are watching one camera LIVE right now — see
16489
+ * `getLiveViewerCounts`. A camera with nobody watching is absent from the list
16490
+ * (so `viewers` is always at least 1): the listing carries the cameras that
16491
+ * have viewers, never a row of zeros.
16492
+ */
16493
+ var LiveViewerCountSchema = object({
16494
+ deviceId: number().int().nonnegative(),
16495
+ viewers: number().int().positive()
16496
+ });
16475
16497
  _enum([
16476
16498
  "reconnecting",
16477
16499
  "sleeping",
@@ -16955,6 +16977,24 @@ var streamBrokerCapability = {
16955
16977
  auth: "admin"
16956
16978
  }),
16957
16979
  listClients: method(object({ brokerId: string() }), BrokerClientsSchema),
16980
+ /**
16981
+ * People watching each camera LIVE right now, for every camera at once —
16982
+ * cheap enough to poll (a walk of the live session maps, no I/O).
16983
+ *
16984
+ * Counts EXTERNAL viewers only: WebRTC sessions of a viewer kind
16985
+ * (`webrtc-browser` / `-mobile` / `-whep`, `alexa`, `homekit`) that are on
16986
+ * the live edge, plus RTSP restream clients from outside that are playing.
16987
+ * The system's own consumers are never counted: the detection decoder, the
16988
+ * recorder, snapshots, the prebuffer hold, audio analysis, and the RTSP
16989
+ * dials an agent's derived broker makes. One WebRTC session or RTSP
16990
+ * connection is one viewer, so two tabs on one camera read 2.
16991
+ *
16992
+ * The count is read off the live session maps at call time, so a session
16993
+ * that ends — cleanly or by the peer vanishing — stops counting with no
16994
+ * counter to leak. It covers the sessions THIS provider serves; a node
16995
+ * with its own stream-broker is asked with a `nodeId` pin.
16996
+ */
16997
+ getLiveViewerCounts: method(_void(), array(LiveViewerCountSchema).readonly()),
16958
16998
  killClient: method(object({
16959
16999
  brokerId: string(),
16960
17000
  channel: _enum(["rtsp", "audio"]),
@@ -31458,6 +31498,12 @@ var CameraStepOverridePatchSchema = object({
31458
31498
  settings: record(string(), unknown()).readonly().optional()
31459
31499
  });
31460
31500
  var CameraStepSettingsSchema = record(string(), record(string(), unknown()).readonly());
31501
+ /** The three root-detector choices a camera has (D507: at most one root). */
31502
+ var CameraDetectionSourceSchema = _enum([
31503
+ "pipeline",
31504
+ "onboard",
31505
+ "none"
31506
+ ]);
31461
31507
  var CameraPipelineSettingsSchema = object({
31462
31508
  stepToggles: record(string(), boolean()).optional(),
31463
31509
  stepSettings: CameraStepSettingsSchema.optional(),
@@ -32035,6 +32081,26 @@ method(object({
32035
32081
  }), object({ success: literal(true) }), {
32036
32082
  kind: "mutation",
32037
32083
  auth: "admin"
32084
+ }), method(object({ deviceId: number() }), object({
32085
+ source: CameraDetectionSourceSchema,
32086
+ explicit: boolean(),
32087
+ onboard: object({
32088
+ /** The camera has an onboard detector this system can read. */
32089
+ available: boolean(),
32090
+ /** What its detections carry — a camera with no box cannot be a root step. */
32091
+ geometry: _enum([
32092
+ "boxed",
32093
+ "while-streaming",
32094
+ "flag-only",
32095
+ "unknown"
32096
+ ])
32097
+ })
32098
+ })), method(object({
32099
+ deviceId: number(),
32100
+ source: CameraDetectionSourceSchema
32101
+ }), object({ success: literal(true) }), {
32102
+ kind: "mutation",
32103
+ auth: "admin"
32038
32104
  }), method(object({ deviceId: number() }), record(string(), record(string(), record(string(), CameraStepOverridePatchSchema))).nullable()), method(object({
32039
32105
  deviceId: number(),
32040
32106
  agentNodeId: string(),
@@ -35780,6 +35846,17 @@ var BatteryStatusSchema = object({
35780
35846
  */
35781
35847
  lastContactAt: number().optional(),
35782
35848
  /**
35849
+ * Ms epoch of the last COMPLETE scheduled refresh — every fact the provider
35850
+ * holds for the device (level, charging, link, device info, state slices) and
35851
+ * its cached snapshot, read together. Absent = never since this slice was
35852
+ * born. Unlike `lastUpdated` (any write, even a push of one field) this is
35853
+ * the staleness an operator can trust: the provider owns the device fact and
35854
+ * so owns the window on its age (D224, D847). Not a clock in the
35855
+ * runtime-state-durability sense: it moves once per window and must survive
35856
+ * a restart, or every restart would owe the camera a wake.
35857
+ */
35858
+ lastFullRefreshAt: number().optional(),
35859
+ /**
35783
35860
  * True when the source is a BINARY low-battery indicator (HA
35784
35861
  * `binary_sensor` device_class=battery / `LOW_BAT`) that has no real
35785
35862
  * charge level — `percentage` is then a coarse stand-in (100 = normal,
@@ -39077,7 +39154,14 @@ var TopologyNodeSchema = object({
39077
39154
  * completed a mutual-TLS handshake, `clear` otherwise. Absent for the hub,
39078
39155
  * for offline rows and when the hub cannot tell.
39079
39156
  */
39080
- meshTransport: _enum(["tls", "clear"]).optional()
39157
+ meshTransport: _enum(["tls", "clear"]).optional(),
39158
+ /**
39159
+ * Whether the hub holds this online AGENT's capability registration (its
39160
+ * `registerNode` manifest). `false` = online in the mesh but not ready: the
39161
+ * hub dropped the registration on a disconnect only it saw and the agent has
39162
+ * not re-sent it. Absent for the hub and offline rows.
39163
+ */
39164
+ capabilitiesRegistered: boolean().optional()
39081
39165
  });
39082
39166
  var CapUsageEdgeSchema = object({
39083
39167
  callerAddonId: string(),
@@ -44779,8 +44863,6 @@ Object.freeze({
44779
44863
  vehicle: .65,
44780
44864
  animal: .65
44781
44865
  });
44782
- var HF_REPO = "camstack/camstack-models";
44783
- `${HF_REPO}`;
44784
44866
  /**
44785
44867
  * Accessory device helpers — shared across drivers.
44786
44868
  *
@@ -49779,6 +49861,12 @@ Object.freeze({
49779
49861
  addonId: null,
49780
49862
  access: "view"
49781
49863
  },
49864
+ "pipelineOrchestrator.getCameraDetectionSource": {
49865
+ capName: "pipeline-orchestrator",
49866
+ capScope: "system",
49867
+ addonId: null,
49868
+ access: "view"
49869
+ },
49782
49870
  "pipelineOrchestrator.getCameraMetrics": {
49783
49871
  capName: "pipeline-orchestrator",
49784
49872
  capScope: "system",
@@ -50007,6 +50095,12 @@ Object.freeze({
50007
50095
  addonId: null,
50008
50096
  access: "create"
50009
50097
  },
50098
+ "pipelineOrchestrator.setCameraDetectionSource": {
50099
+ capName: "pipeline-orchestrator",
50100
+ capScope: "system",
50101
+ addonId: null,
50102
+ access: "create"
50103
+ },
50010
50104
  "pipelineOrchestrator.setCameraPipelineForAgent": {
50011
50105
  capName: "pipeline-orchestrator",
50012
50106
  capScope: "system",
@@ -51459,6 +51553,12 @@ Object.freeze({
51459
51553
  addonId: null,
51460
51554
  access: "view"
51461
51555
  },
51556
+ "streamBroker.getLiveViewerCounts": {
51557
+ capName: "stream-broker",
51558
+ capScope: "system",
51559
+ addonId: null,
51560
+ access: "view"
51561
+ },
51462
51562
  "streamBroker.getPreBufferInfo": {
51463
51563
  capName: "stream-broker",
51464
51564
  capScope: "system",
@@ -55604,6 +55704,11 @@ Object.freeze({
55604
55704
  form: "single",
55605
55705
  optional: false
55606
55706
  }],
55707
+ "pipelineOrchestrator.getCameraDetectionSource": [{
55708
+ name: "deviceId",
55709
+ form: "single",
55710
+ optional: false
55711
+ }],
55607
55712
  "pipelineOrchestrator.getCameraMetrics": [{
55608
55713
  name: "deviceId",
55609
55714
  form: "single",
@@ -55664,6 +55769,11 @@ Object.freeze({
55664
55769
  form: "single",
55665
55770
  optional: false
55666
55771
  }],
55772
+ "pipelineOrchestrator.setCameraDetectionSource": [{
55773
+ name: "deviceId",
55774
+ form: "single",
55775
+ optional: false
55776
+ }],
55667
55777
  "pipelineOrchestrator.setCameraPipelineForAgent": [{
55668
55778
  name: "deviceId",
55669
55779
  form: "single",
@@ -58181,9 +58291,6 @@ var BackgroundRunRegistry = class {
58181
58291
  }
58182
58292
  }
58183
58293
  };
58184
- function hfModelUrl(repo, path) {
58185
- return `https://huggingface.co/${repo}/resolve/main/${path}`;
58186
- }
58187
58294
  var MB = 1024 * 1024;
58188
58295
  var DEFAULT_POOL_MEMORY_POLICY = {
58189
58296
  sampleIntervalMs: 6e4,
@@ -58624,7 +58731,7 @@ var RUNTIMES = [
58624
58731
  value: "cuda",
58625
58732
  label: "CUDA"
58626
58733
  });
58627
- if (hw.gpu?.type === "amd") out.push({
58734
+ if (hw.gpu?.type === "amd" && hw.platform === "linux") out.push({
58628
58735
  value: "webgpu",
58629
58736
  label: "WebGPU (AMD iGPU)"
58630
58737
  });
@@ -58753,7 +58860,7 @@ function scoreRuntimes(hw) {
58753
58860
  });
58754
58861
  }
58755
58862
  if (hw.gpu?.type === "amd") {
58756
- scores.push({
58863
+ if (hw.platform === "linux") scores.push({
58757
58864
  runtime: "python",
58758
58865
  backend: "onnx",
58759
58866
  format: "onnx",
@@ -58846,4 +58953,4 @@ function enumerateInferenceDevices(hw) {
58846
58953
  return out;
58847
58954
  }
58848
58955
  //#endregion
58849
- export { audioAnalysisCapability as $, discriminatedUnion as $n, rankStreams as $t, LABEL_SUPPLY_VOCABULARIES as A, DeviceType as An, gifFromMp4Args as At, RECORDING_EXPORT_MAX_READ_BYTES as B, expandAudioChunkToF32le as Bn, mayWriteToLocation as Bt, EVENT_PAD_MS as C, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as Cn, evictionPolicyForMode as Ct, G711_SCALE_CORRECTION_DB as D, invocationFromEncodeProfile as Dn, ffmpegRate as Dt, FailureCounters as E, evaluateSensorEdge as En, failureContributionCapability as Et, OpsLogEntrySchema as F, CamProfileSchema as Fn, linkedStepOf as Ft, RecordingSignalStatusSchema as G, maskUrlCredentials as Gn, motionDetectionCapability as Gt, RECORDING_SOURCE_CAMSTACK_ADDON as H, isEvent as Hn, migrateLegacyDeviceSignalConfig as Ht, PIPELINE_RAMP as I, audioChunkBytesPerSample as In, loadContributionCapability as It, VISIT_MERGE_GAP_MS as J, selectAssignedProfileSlots as Jn, pickClusterStepSettings as Jt, RingBuffer as K, nodePin as Kn, overlayClusterStepSettings as Kt, PoolMemoryWatchdog as L, createEvent as Ln, logChannelsCapability as Lt, NativeLeaseAdmissionSchema as M, BOOT_RECOVERY_BACKOFF_MS as Mn, inferModelProvider as Mt, NativeLeaseSettingsSchema as N, BaseAddon as Nn, isFirstLevelMacroClass as Nt, HF_REPO as O, isSoftwareDecode as On, gbToBytes as Ot, NodeBenchRunnerInputSchema as P, CAM_PROFILE_ORDER as Pn, linkedLabelStepId as Pt, applyModelBoundSettings as Q, boolean as Qn, pipelineRunnerCapability as Qt, RATE_CONTROL_RELAXED as R, customAction as Rn, mapAudioLabelToMacro as Rt, EVENT_OWNER_TYPES as S, AUDIO_PRESETS as Sn, evaluateZoneRules as St, ExportRecordSchema as T, buildFfmpegArgs as Tn, exportSubjectOf as Tt, ROOT_SUPPLIABLE_STEP_IDS as U, makeProfileBrokerId as Un, modeMayWrite as Ut, RECORDING_SOURCE_CAMSTACK as V, hydrateSchema as Vn, memoizePinnedFfmpeg as Vt, RecordingConfigSchema as W, makeSourceBrokerId as Wn, modelBindingKey as Wt, addonWidgetsSourceCapability as X, _enum as Xn, pickNativeLeaseOverride as Xt, YAMNET_TO_MACRO as Y, sleep as Yn, pickDetailCropConvention as Yt, allowedSuppliedEffect as Z, array as Zn, pipelineExecutorCapability as Zt, DEFAULT_DETAIL_CROP_CONVENTION as _, streamBrokerCapability as _n, deriveRootFaceRefineRect as _t, BackgroundRunRegistry as a, resolveCreateExportSubject as an, record as ar, cameraStreamsCapability as at, DEVICE_BACKEND_TO_FORMAT as b, videoclipsCapability as bn, egressTransportFromRequest as bt, CLIP_STILL_REASON_CODE_HEADER as c, resolveModelBoundSetting as cn, EventCategory as cr, collectModelBoundKeys as ct, CLUSTER_MODEL_SCOPED_STEPS as d, resolveRootSupply as dn, createLogChannelsProvider as dt, recordingArchiveCapability as en, lazy as er, audioAnalyzerCapability as et, COCO_80_LABELS as f, rootSuppliesOf as fn, declareLogChannel as ft, DEFAULT_CLUSTER_STEP_SETTINGS as g, storageOccupancyCapability as gn, deriveRecordingMode as gt, DEFAULT_AUDIO_ANALYZER_CONFIG as h, storageEvictableCapability as hn, deriveDetailCropRect as ht, AUDIO_MACRO_LABELS as i, resolveClusterStepModelId as in, preprocess as ir, cameraOwnsMotionViaSensor as it, MODEL_FORMATS as j, errMsg as jn, hfModelUrl as jt, LABEL_SUPPLY_MACRO as k, DeviceFeature as kn, gifDeriveSpeed as kt, CLIP_STILL_REASON_HEADER as l, resolvePoolMemoryPolicy as ln, containingParentIndex as lt, CROP_SUPPLY_SOURCES as m, stepModelRunsOnFormat as mn, deriveBatteryPresence as mt, APPLE_SA_TO_MACRO as n, recordingExportCapability as nn, number as nr, batteryCapability as nt, BatteryStatusSchema as o, resolveEgressDecodeHwAccel as on, string as or, clipExportFailure as ot, COCO_TO_MACRO as p, runtimeDevices as pn, defaultDeviceFor as pt, VIDEOCLIPS_MAX_OFFER_BYTES as q, parseProfileBrokerId as qn, parseProcStatus as qt, AUDIO_BACKEND_CHOICES as r, recordingSignalCapability as rn, object as rr, buildBenchStepTree as rt, CLIP_BROKER_PACED_RATES as s, resolveLocationMode as sn, union as sr, clipExportFailureOf as st, APPEARANCE_BLOCKS as t, recordingCapability as tn, literal as tr, audioKindId as tt, CLIP_STREAM_TRANSPORT_HEADER as u, resolveRecordingProfiles as un, createHwAccelCache as ut, DEFAULT_EVENTS_BAND_BUFFER_SEC as v, stripRetiredBandPreBufferSec as vn, detectionPipelineCapability as vt, EncodeProfileSchema as w, Fmp4BoxSplitter as wn, evictionPolicyOfLocation as wt, DEVICE_RAMP as x, webrtcSessionCapability as xn, enumerateInferenceDevices as xt, DEFAULT_NATIVE_LEASE_SETTINGS as y, supportedRuntimes as yn, egressTranscodeSharingKey as yt, RATE_CONTROL_TIGHT as z, defineCustomActions as zn, mayReadLocation as zt };
58956
+ export { audioKindId as $, discriminatedUnion as $n, recordingExportCapability as $t, NativeLeaseAdmissionSchema as A, BaseAddon as An, isFirstLevelMacroClass as At, RECORDING_SOURCE_CAMSTACK_ADDON as B, hfModelUrl as Bn, modeMayWrite as Bt, EVENT_PAD_MS as C, evaluateSensorEdge as Cn, exportSubjectOf as Ct, G711_SCALE_CORRECTION_DB as D, DeviceType as Dn, gifDeriveSpeed as Dt, FailureCounters as E, DeviceFeature as En, gbToBytes as Et, PoolMemoryWatchdog as F, audioChunkBytesPerSample as Fn, mapAudioLabelToMacro as Ft, VIDEOCLIPS_MAX_OFFER_BYTES as G, maskUrlCredentials as Gn, pickClusterStepSettings as Gt, RecordingConfigSchema as H, isEvent as Hn, motionDetectionCapability as Ht, RATE_CONTROL_RELAXED as I, createEvent as In, mayReadLocation as It, addonWidgetsSourceCapability as J, selectAssignedProfileSlots as Jn, pipelineExecutorCapability as Jt, VISIT_MERGE_GAP_MS as K, nodePin as Kn, pickDetailCropConvention as Kt, RATE_CONTROL_TIGHT as L, customAction as Ln, mayWriteToLocation as Lt, NodeBenchRunnerInputSchema as M, CamProfileSchema as Mn, linkedStepOf as Mt, OpsLogEntrySchema as N, HF_REPO as Nn, loadContributionCapability as Nt, LABEL_SUPPLY_MACRO as O, errMsg as On, gifFromMp4Args as Ot, PIPELINE_RAMP as P, MODEL_FORMATS as Pn, logChannelsCapability as Pt, audioAnalyzerCapability as Q, boolean as Qn, recordingCapability as Qt, RECORDING_EXPORT_MAX_READ_BYTES as R, defineCustomActions as Rn, memoizePinnedFfmpeg as Rt, EVENT_OWNER_TYPES as S, buildFfmpegArgs as Sn, evictionPolicyOfLocation as St, ExportRecordSchema as T, isSoftwareDecode as Tn, ffmpegRate as Tt, RecordingSignalStatusSchema as U, makeProfileBrokerId as Un, overlayClusterStepSettings as Ut, ROOT_SUPPLIABLE_STEP_IDS as V, hydrateSchema as Vn, modelBindingKey as Vt, RingBuffer as W, makeSourceBrokerId as Wn, parseProcStatus as Wt, applyModelBoundSettings as X, _enum as Xn, rankStreams as Xt, allowedSuppliedEffect as Y, sleep as Yn, pipelineRunnerCapability as Yt, audioAnalysisCapability as Z, array as Zn, recordingArchiveCapability as Zt, DEFAULT_DETAIL_CROP_CONVENTION as _, videoclipsCapability as _n, egressTranscodeSharingKey as _t, BackgroundRunRegistry as a, resolveModelBoundSetting as an, record as ar, clipExportFailureOf as at, DEVICE_BACKEND_TO_FORMAT as b, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as bn, evaluateZoneRules as bt, CLIP_STILL_REASON_CODE_HEADER as c, resolveRootSupply as cn, EventCategory as cr, createHwAccelCache as ct, CLUSTER_MODEL_SCOPED_STEPS as d, stepModelRunsOnFormat as dn, defaultDeviceFor as dt, recordingSignalCapability as en, lazy as er, batteryCapability as et, COCO_80_LABELS as f, storageEvictableCapability as fn, deriveBatteryPresence as ft, DEFAULT_CLUSTER_STEP_SETTINGS as g, supportedRuntimes as gn, detectionPipelineCapability as gt, DEFAULT_AUDIO_ANALYZER_CONFIG as h, stripRetiredBandPreBufferSec as hn, deriveRootFaceRefineRect as ht, AUDIO_MACRO_LABELS as i, resolveLocationMode as in, preprocess as ir, clipExportFailure as it, NativeLeaseSettingsSchema as j, CAM_PROFILE_ORDER as jn, linkedLabelStepId as jt, LABEL_SUPPLY_VOCABULARIES as k, BOOT_RECOVERY_BACKOFF_MS as kn, inferModelProvider as kt, CLIP_STILL_REASON_HEADER as l, rootSuppliesOf as ln, createLogChannelsProvider as lt, CROP_SUPPLY_SOURCES as m, streamBrokerCapability as mn, deriveRecordingMode as mt, APPLE_SA_TO_MACRO as n, resolveCreateExportSubject as nn, number as nr, cameraOwnsMotionViaSensor as nt, BatteryStatusSchema as o, resolvePoolMemoryPolicy as on, string as or, collectModelBoundKeys as ot, COCO_TO_MACRO as p, storageOccupancyCapability as pn, deriveDetailCropRect as pt, YAMNET_TO_MACRO as q, parseProfileBrokerId as qn, pickNativeLeaseOverride as qt, AUDIO_BACKEND_CHOICES as r, resolveEgressDecodeHwAccel as rn, object as rr, cameraStreamsCapability as rt, CLIP_BROKER_PACED_RATES as s, resolveRecordingProfiles as sn, union as sr, containingParentIndex as st, APPEARANCE_BLOCKS as t, resolveClusterStepModelId as tn, literal as tr, buildBenchStepTree as tt, CLIP_STREAM_TRANSPORT_HEADER as u, runtimeDevices as un, declareLogChannel as ut, DEFAULT_EVENTS_BAND_BUFFER_SEC as v, webrtcSessionCapability as vn, egressTransportFromRequest as vt, EncodeProfileSchema as w, invocationFromEncodeProfile as wn, failureContributionCapability as wt, DEVICE_RAMP as x, Fmp4BoxSplitter as xn, evictionPolicyForMode as xt, DEFAULT_NATIVE_LEASE_SETTINGS as y, AUDIO_PRESETS as yn, enumerateInferenceDevices as yt, RECORDING_SOURCE_CAMSTACK as z, expandAudioChunkToF32le as zn, migrateLegacyDeviceSignalConfig as zt };