@camstack/types 1.1.21 → 1.1.23

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.
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as SubscribeAudioChunksResultSchema, A as ReadinessRegistry, B as CamStreamResolutionSchema, C as asJsonObject, D as parseJsonObject, E as parseJsonArray, F as BrokerStatsSchema, G as FrameHandleFormatSchema, H as DecodedAudioChunkSchema, I as BrokerStatusSchema, J as ProfileSlotSchema, K as FrameHandleSchema, L as CAM_PROFILE_ORDER, M as emitDownForOwnedCaps, N as readinessKey, O as parseJsonUnknown, P as scopeKey, Q as SubscribeAudioChunksInputSchema, R as CamProfileSchema, S as asJsonArray, T as asString, U as DecodedFrameSchema, V as CameraStreamSchema, W as EncodedPacketSchema, X as StreamSourceEntrySchema, Y as ProfileSlotStatusSchema, Z as StreamSourceSchema, _ as ChargingStatus, a as adminUiCapability, at as selectAssignedProfileSlots, b as DeviceType, c as createMirrorSource, ct as createDurableState, d as DEVICE_STATUS_METHOD, dt as isEvent, et as SubscribeFramesInputSchema, f as event, ft as WELL_KNOWN_TABS, g as resolveCapMount, gt as DisposerChain, h as method, ht as EventCategory, i as deviceOpsCapability, it as parseProfileBrokerId, j as ReadinessTimeoutError, k as DATAPLANE_SECRET_HEADER, l as createSliceHandle, lt as createEvent, m as isDeviceConfigCap, mt as hydrateSchema, n as sleepCancellable, nt as makeProfileBrokerId, o as createDeviceProxy, ot as BaseAddon, p as expandCapMethods, pt as WELL_KNOWN_TAB_MAP, q as ProfileRtspEntrySchema, r as RawStateResultSchema, rt as makeSourceBrokerId, s as createLazyTrpcSource, st as normalizeAddonInitResult, t as sleep, tt as SubscribeFramesResultSchema, u as DEVICE_SETTINGS_CONTRIBUTION_METHODS, ut as emitReadiness, v as DeviceFeature, w as asNumber, x as asBoolean, y as DeviceRole, z as CamStreamKindSchema } from "./sleep-BO1nweKv.mjs";
1
+ import { $ as SubscribeAudioChunksResultSchema, A as ReadinessRegistry, B as CamStreamResolutionSchema, C as asJsonObject, D as parseJsonObject, E as parseJsonArray, F as BrokerStatsSchema, G as FrameHandleFormatSchema, H as DecodedAudioChunkSchema, I as BrokerStatusSchema, J as ProfileSlotSchema, K as FrameHandleSchema, L as CAM_PROFILE_ORDER, M as emitDownForOwnedCaps, N as readinessKey, O as parseJsonUnknown, P as scopeKey, Q as SubscribeAudioChunksInputSchema, R as CamProfileSchema, S as asJsonArray, T as asString, U as DecodedFrameSchema, V as CameraStreamSchema, W as EncodedPacketSchema, X as StreamSourceEntrySchema, Y as ProfileSlotStatusSchema, Z as StreamSourceSchema, _ as ChargingStatus, a as adminUiCapability, at as selectAssignedProfileSlots, b as DeviceType, c as createMirrorSource, ct as createDurableState, d as DEVICE_STATUS_METHOD, dt as isEvent, et as SubscribeFramesInputSchema, f as event, ft as WELL_KNOWN_TABS, g as resolveCapMount, gt as DisposerChain, h as method, ht as EventCategory, i as deviceOpsCapability, it as parseProfileBrokerId, j as ReadinessTimeoutError, k as DATAPLANE_SECRET_HEADER, l as createSliceHandle, lt as createEvent, m as isDeviceConfigCap, mt as hydrateSchema, n as sleepCancellable, nt as makeProfileBrokerId, o as createDeviceProxy, ot as BaseAddon, p as expandCapMethods, pt as WELL_KNOWN_TAB_MAP, q as ProfileRtspEntrySchema, r as RawStateResultSchema, rt as makeSourceBrokerId, s as createLazyTrpcSource, st as normalizeAddonInitResult, t as sleep, tt as SubscribeFramesResultSchema, u as DEVICE_SETTINGS_CONTRIBUTION_METHODS, ut as emitReadiness, v as DeviceFeature, w as asNumber, x as asBoolean, y as DeviceRole, z as CamStreamKindSchema } from "./sleep-BiDFW0E7.mjs";
2
2
  import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/health/wiring-health.ts
@@ -6958,7 +6958,8 @@ var motionDetectionCapability = {
6958
6958
  methods: {
6959
6959
  analyze: method(z.object({
6960
6960
  deviceId: z.number(),
6961
- frame: FrameInputSchema
6961
+ frame: FrameInputSchema.optional(),
6962
+ frameHandle: FrameHandleSchema.optional()
6962
6963
  }), MotionAnalysisResultSchema, { kind: "mutation" }),
6963
6964
  removeCamera: method(z.object({ deviceId: z.number() }), z.void(), { kind: "mutation" }),
6964
6965
  reset: method(z.void(), z.void(), { kind: "mutation" })
@@ -7276,11 +7277,20 @@ var pipelineExecutorCapability = {
7276
7277
  * legacy call shape used by existing benchmark code; once all
7277
7278
  * callers pass it explicitly we make it required.
7278
7279
  *
7279
- * Exactly one of `frame`, `imageBase64`, `referenceImage` must be
7280
- * provided:
7280
+ * Exactly one of `frame`, `frameHandle`, `imageBase64`,
7281
+ * `referenceImage` must be provided:
7281
7282
  * - `frame`: runtime dispatch path (runner → decoded broker frame).
7282
7283
  * Carries the raw buffer, dimensions, and format; the executor
7283
7284
  * uses it directly without base64 round-tripping.
7285
+ * - `frameHandle` (CB5): a zero-pixel shm `FrameHandle` for the SAME
7286
+ * decoded frame. Both runner and executor are hub-local processes
7287
+ * sharing `/dev/shm`, so the executor maps the named segment and
7288
+ * reads the pixels back zero-copy — eliminating the ~1.2MB
7289
+ * re-serialisation over UDS/MsgPack the `frame` path pays per call.
7290
+ * High-risk: the FrameRing is a latest-wins seqlock with no
7291
+ * refcount, so a recycled slot yields a null read; the executor
7292
+ * then degrades to an empty result and the runner ships pixels via
7293
+ * `frame` as the fallback (queue-depth gated on the runner side).
7284
7294
  * - `imageBase64`: one-shot test path (benchmark ImageTab).
7285
7295
  * - `referenceImage`: named file from the reference-image store.
7286
7296
  */
@@ -7288,6 +7298,12 @@ var pipelineExecutorCapability = {
7288
7298
  engine: PipelineEngineChoiceSchema.optional(),
7289
7299
  steps: z.array(PipelineStepInputSchema).min(1),
7290
7300
  frame: FrameInputSchema.optional(),
7301
+ /**
7302
+ * CB5 shm passthrough — a `FrameHandle` naming the same ring slot
7303
+ * the decoded pixels live in. One more member of the one-of
7304
+ * frame/frameHandle/image/imageBase64/referenceImage group.
7305
+ */
7306
+ frameHandle: FrameHandleSchema.optional(),
7291
7307
  imageBase64: z.string().optional(),
7292
7308
  /**
7293
7309
  * Binary JPEG bytes — preferred over `imageBase64` on internal
@@ -8451,6 +8467,191 @@ var numericSensorCapability = {
8451
8467
  runtimeState: NumericSensorStatusSchema
8452
8468
  };
8453
8469
  //#endregion
8470
+ //#region src/capabilities/pet-feeder.cap.ts
8471
+ /**
8472
+ * PetKit pet-feeder cap. Models the control + telemetry surface of a
8473
+ * cloud-connected smart feeder (Fresh Element / Mini / D3 / D4 / D4S
8474
+ * Gemini / D4H / D4SH) as a single coherent slice — bowl food level,
8475
+ * battery, desiccant life, feeding state + the four persisted settings
8476
+ * (child-lock / indicator-light / feed-sound / volume).
8477
+ *
8478
+ * Sources: native PetKit (`nodepetkit` `FeederDevice`). Reusable by any
8479
+ * feeder integration that speaks the same food/desiccant/hopper surface.
8480
+ *
8481
+ * `kind: 'poll'` — PetKit exposes only a cloud REST API (no push
8482
+ * channel), so the provider refreshes the slice on a poll interval and
8483
+ * eagerly after every command.
8484
+ *
8485
+ * Dual-hopper feeders (D4S/D4SH) split the bowl into two independent
8486
+ * hoppers. `isDualHopper` gates the two-hopper UI; `food1`/`food2` carry
8487
+ * the per-hopper levels (both `null` on single-hopper models, where
8488
+ * `foodLevel` is the single reading). The manual-feed portion honours the
8489
+ * PetKit hardware range 4–200 g in 1 g steps.
8490
+ *
8491
+ * Device status is exposed both raw and decoded, mirroring PetKit's HA
8492
+ * integration (RobertD502/py-petkit-api). `status` is the connectivity /
8493
+ * power enum (`normal` / `offline` / `on_batteries`); `error` is the
8494
+ * decoded human-readable fault message (null / `no_error` = healthy);
8495
+ * `errorCode` keeps the raw device integer (0 / null = no error) so a
8496
+ * provider that only has the numeric code stays lossless. A provider maps
8497
+ * the library's fields onto these; any it cannot determine stays `null`.
8498
+ */
8499
+ /** PetKit manual-feed portion bounds (grams). Mirrors the HA `manual_feed`
8500
+ * number entity (min 4, max 200, step 1, device_class weight). */
8501
+ var PET_FEEDER_MANUAL_FEED_MIN = 4;
8502
+ var PET_FEEDER_MANUAL_FEED_MAX = 200;
8503
+ /**
8504
+ * Feeder connectivity / power status — mirrors the HA petkit device-status
8505
+ * enum: `normal` (online, mains), `offline` (not reaching PetKit cloud),
8506
+ * `on_batteries` (running on battery backup). `null` until first reported.
8507
+ */
8508
+ var PetFeederDeviceStatusSchema = z.enum([
8509
+ "normal",
8510
+ "offline",
8511
+ "on_batteries"
8512
+ ]);
8513
+ var gramsPortion = z.number().int().min(4).max(200);
8514
+ var PetFeederStatusSchema = z.object({
8515
+ /** Food currently in the bowl (grams). Null when the device has not
8516
+ * reported a reading yet. On dual-hopper models this is the combined
8517
+ * bowl reading; per-hopper levels live in `food1`/`food2`. */
8518
+ foodLevel: z.number().nullable(),
8519
+ /** Hopper-1 food level (grams) on dual-hopper feeders; null on
8520
+ * single-hopper models. */
8521
+ food1: z.number().nullable(),
8522
+ /** Hopper-2 food level (grams) on dual-hopper feeders; null on
8523
+ * single-hopper models. */
8524
+ food2: z.number().nullable(),
8525
+ /** Derived low-food flag — mirrors the HA `food_level` binary_sensor
8526
+ * (`device_class: problem`, on = low). True when the bowl is empty /
8527
+ * below the feeder's low threshold. */
8528
+ lowFood: z.boolean(),
8529
+ /** Battery charge 0..100 (%). Null on mains-powered models or when the
8530
+ * device has no battery reading. */
8531
+ batteryPower: z.number().min(0).max(100).nullable(),
8532
+ /** Days of desiccant life remaining. Null when the model has no
8533
+ * desiccant sensor. */
8534
+ desiccantLeftDays: z.number().nullable(),
8535
+ /** True while a feed is in progress. */
8536
+ feeding: z.boolean(),
8537
+ /** Decoded connectivity / power status (HA petkit device-status enum).
8538
+ * Null until the device has reported a status. */
8539
+ status: PetFeederDeviceStatusSchema.nullable(),
8540
+ /** Decoded human-readable fault message. Null (or the device's `no_error`
8541
+ * sentinel) means healthy; a non-null string is an active fault. Pairs
8542
+ * with `errorCode` for consumers that want the raw integer. */
8543
+ error: z.string().nullable(),
8544
+ /** Raw device error code (0 / null = no error). */
8545
+ errorCode: z.number().nullable(),
8546
+ /** True for D4S/D4SH dual-hopper hardware — gates the per-hopper UI. */
8547
+ isDualHopper: z.boolean(),
8548
+ /** Child-lock (manual-lock) setting — buttons on the unit are disabled. */
8549
+ childLock: z.boolean(),
8550
+ /** Front indicator-light setting. */
8551
+ indicatorLight: z.boolean(),
8552
+ /** Play a chime when dispensing. */
8553
+ feedSound: z.boolean(),
8554
+ /** Speaker / prompt volume level (device-scaled integer). */
8555
+ volume: z.number(),
8556
+ /** Ms epoch when the slice was last refreshed from the cloud. */
8557
+ lastFetchedAt: z.number()
8558
+ });
8559
+ var petFeederCapability = {
8560
+ name: "pet-feeder",
8561
+ scope: "device",
8562
+ deviceNative: true,
8563
+ mode: "singleton",
8564
+ deviceTypes: [DeviceType.PetFeeder],
8565
+ methods: {
8566
+ /**
8567
+ * Dispense food now. Single-hopper feeders take `grams`; dual-hopper
8568
+ * feeders (D4S/D4SH) accept `hopper1`/`hopper2` to target one or both
8569
+ * hoppers. All portions honour the 4–200 g hardware range. At least
8570
+ * one of the three must be present — the provider rejects an empty
8571
+ * request.
8572
+ */
8573
+ feed: method(z.object({
8574
+ deviceId: z.number().int().nonnegative(),
8575
+ grams: gramsPortion.optional(),
8576
+ hopper1: gramsPortion.optional(),
8577
+ hopper2: gramsPortion.optional()
8578
+ }), z.void(), {
8579
+ kind: "mutation",
8580
+ auth: "admin"
8581
+ }),
8582
+ /** Cancel an in-progress manual feed. */
8583
+ cancelFeed: method(z.object({ deviceId: z.number().int().nonnegative() }), z.void(), {
8584
+ kind: "mutation",
8585
+ auth: "admin"
8586
+ }),
8587
+ /** Reset the desiccant "days remaining" counter after replacing it. */
8588
+ resetDesiccant: method(z.object({ deviceId: z.number().int().nonnegative() }), z.void(), {
8589
+ kind: "mutation",
8590
+ auth: "admin"
8591
+ }),
8592
+ /** Mark a hopper as refilled (D4H/D4S/D4SH). */
8593
+ markFoodReplenished: method(z.object({ deviceId: z.number().int().nonnegative() }), z.void(), {
8594
+ kind: "mutation",
8595
+ auth: "admin"
8596
+ }),
8597
+ /** Call the pet with the recorded prompt (D3). */
8598
+ callPet: method(z.object({ deviceId: z.number().int().nonnegative() }), z.void(), {
8599
+ kind: "mutation",
8600
+ auth: "admin"
8601
+ }),
8602
+ /** Play a stored sound by id (D3 / D4H / D4SH). */
8603
+ playSound: method(z.object({
8604
+ deviceId: z.number().int().nonnegative(),
8605
+ soundId: z.number().int().nonnegative()
8606
+ }), z.void(), {
8607
+ kind: "mutation",
8608
+ auth: "admin"
8609
+ }),
8610
+ /** Toggle the child-lock (manual-lock) setting. */
8611
+ setChildLock: method(z.object({
8612
+ deviceId: z.number().int().nonnegative(),
8613
+ on: z.boolean()
8614
+ }), z.void(), {
8615
+ kind: "mutation",
8616
+ auth: "admin"
8617
+ }),
8618
+ /** Toggle the front indicator light. */
8619
+ setIndicatorLight: method(z.object({
8620
+ deviceId: z.number().int().nonnegative(),
8621
+ on: z.boolean()
8622
+ }), z.void(), {
8623
+ kind: "mutation",
8624
+ auth: "admin"
8625
+ }),
8626
+ /** Toggle the dispense chime. */
8627
+ setFeedSound: method(z.object({
8628
+ deviceId: z.number().int().nonnegative(),
8629
+ on: z.boolean()
8630
+ }), z.void(), {
8631
+ kind: "mutation",
8632
+ auth: "admin"
8633
+ }),
8634
+ /** Set the speaker / prompt volume level. */
8635
+ setVolume: method(z.object({
8636
+ deviceId: z.number().int().nonnegative(),
8637
+ level: z.number().int().nonnegative()
8638
+ }), z.void(), {
8639
+ kind: "mutation",
8640
+ auth: "admin"
8641
+ })
8642
+ },
8643
+ status: {
8644
+ schema: PetFeederStatusSchema,
8645
+ kind: "poll"
8646
+ },
8647
+ /**
8648
+ * Runtime-state slice — mirrored by the kernel. UI feeder cards read
8649
+ * the full slice via `device.state.petFeeder.value` and refresh on
8650
+ * every poll without re-querying the provider.
8651
+ */
8652
+ runtimeState: PetFeederStatusSchema
8653
+ };
8654
+ //#endregion
8454
8655
  //#region src/capabilities/power-meter.cap.ts
8455
8656
  /**
8456
8657
  * Multi-metric electrical meter. One slice can carry any combination
@@ -9907,6 +10108,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
9907
10108
  nativeObjectDetection: nativeObjectDetectionCapability,
9908
10109
  notifier: notifierCapability,
9909
10110
  numericSensor: numericSensorCapability,
10111
+ petFeeder: petFeederCapability,
9910
10112
  powerMeter: powerMeterCapability,
9911
10113
  presence: presenceCapability,
9912
10114
  pressureSensor: pressureSensorCapability,
@@ -14076,11 +14278,13 @@ var decoderCapability = {
14076
14278
  }), z.void()),
14077
14279
  pullFrames: method(z.object({
14078
14280
  sessionId: z.string(),
14079
- maxCount: z.number().default(1)
14281
+ maxCount: z.number().default(1),
14282
+ waitMs: z.number().optional()
14080
14283
  }), z.array(DecodedFrameSchema)),
14081
14284
  pullHandles: method(z.object({
14082
14285
  sessionId: z.string(),
14083
- maxCount: z.number().default(1)
14286
+ maxCount: z.number().default(1),
14287
+ waitMs: z.number().optional()
14084
14288
  }), z.array(FrameHandleSchema)),
14085
14289
  getFrame: method(z.object({ handle: FrameHandleSchema }), DecodedFrameSchema.nullable()),
14086
14290
  getShmStats: method(z.object({ sessionId: z.string() }), ShmRingStatsSchema.nullable()),
@@ -20608,7 +20812,10 @@ var HwAccelBackendInputSchema = z.enum([
20608
20812
  "webgpu",
20609
20813
  "none"
20610
20814
  ]).nullable().optional();
20611
- var HwAccelResolutionSchema = z.object({ preferred: z.array(z.string()).readonly() });
20815
+ var HwAccelResolutionSchema = z.object({
20816
+ preferred: z.array(z.string()).readonly(),
20817
+ rationale: z.string()
20818
+ });
20612
20819
  var HardwareEncoderIdSchema = z.enum([
20613
20820
  "h264_videotoolbox",
20614
20821
  "hevc_videotoolbox",
@@ -20722,10 +20929,7 @@ var platformProbeCapability = {
20722
20929
  getCapabilities: method(z.void(), PlatformCapabilitiesSchema),
20723
20930
  getHardware: method(z.void(), HardwareInfoSchema),
20724
20931
  resolveInferenceConfig: method(z.object({ requirements: z.array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema),
20725
- resolveHwAccel: method(z.object({
20726
- prefer: HwAccelBackendInputSchema,
20727
- nodeId: z.string().optional()
20728
- }), HwAccelResolutionSchema),
20932
+ resolveHwAccel: method(z.object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema),
20729
20933
  /**
20730
20934
  * Hardware-encoder probe — see Task #185. Cached after first call.
20731
20935
  */
@@ -21827,6 +22031,7 @@ var CAPABILITY_NAMES = {
21827
22031
  numericSensor: "numeric-sensor",
21828
22032
  oauthIntegration: "oauth-integration",
21829
22033
  osd: "osd",
22034
+ petFeeder: "pet-feeder",
21830
22035
  pipelineAnalytics: "pipeline-analytics",
21831
22036
  pipelineExecutor: "pipeline-executor",
21832
22037
  pipelineOrchestrator: "pipeline-orchestrator",
@@ -22227,6 +22432,10 @@ var CAPABILITY_ROUTER_KEYS = [
22227
22432
  key: "osd",
22228
22433
  name: "osd"
22229
22434
  },
22435
+ {
22436
+ key: "petFeeder",
22437
+ name: "pet-feeder"
22438
+ },
22230
22439
  {
22231
22440
  key: "pipelineAnalytics",
22232
22441
  name: "pipeline-analytics"
@@ -22521,6 +22730,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
22521
22730
  numericSensorCapability,
22522
22731
  oauthIntegrationCapability,
22523
22732
  osdCapability,
22733
+ petFeederCapability,
22524
22734
  pipelineAnalyticsCapability,
22525
22735
  pipelineExecutorCapability,
22526
22736
  pipelineOrchestratorCapability,
@@ -22623,6 +22833,7 @@ var CAP_NAMES_WITH_STATUS = [
22623
22833
  "notifier",
22624
22834
  "numeric-sensor",
22625
22835
  "osd",
22836
+ "pet-feeder",
22626
22837
  "power-meter",
22627
22838
  "presence",
22628
22839
  "pressure-sensor",
@@ -25089,6 +25300,66 @@ var METHOD_ACCESS_MAP = Object.freeze({
25089
25300
  addonId: null,
25090
25301
  access: "create"
25091
25302
  },
25303
+ "petFeeder.callPet": {
25304
+ capName: "pet-feeder",
25305
+ capScope: "device",
25306
+ addonId: null,
25307
+ access: "create"
25308
+ },
25309
+ "petFeeder.cancelFeed": {
25310
+ capName: "pet-feeder",
25311
+ capScope: "device",
25312
+ addonId: null,
25313
+ access: "create"
25314
+ },
25315
+ "petFeeder.feed": {
25316
+ capName: "pet-feeder",
25317
+ capScope: "device",
25318
+ addonId: null,
25319
+ access: "create"
25320
+ },
25321
+ "petFeeder.markFoodReplenished": {
25322
+ capName: "pet-feeder",
25323
+ capScope: "device",
25324
+ addonId: null,
25325
+ access: "create"
25326
+ },
25327
+ "petFeeder.playSound": {
25328
+ capName: "pet-feeder",
25329
+ capScope: "device",
25330
+ addonId: null,
25331
+ access: "create"
25332
+ },
25333
+ "petFeeder.resetDesiccant": {
25334
+ capName: "pet-feeder",
25335
+ capScope: "device",
25336
+ addonId: null,
25337
+ access: "delete"
25338
+ },
25339
+ "petFeeder.setChildLock": {
25340
+ capName: "pet-feeder",
25341
+ capScope: "device",
25342
+ addonId: null,
25343
+ access: "create"
25344
+ },
25345
+ "petFeeder.setFeedSound": {
25346
+ capName: "pet-feeder",
25347
+ capScope: "device",
25348
+ addonId: null,
25349
+ access: "create"
25350
+ },
25351
+ "petFeeder.setIndicatorLight": {
25352
+ capName: "pet-feeder",
25353
+ capScope: "device",
25354
+ addonId: null,
25355
+ access: "create"
25356
+ },
25357
+ "petFeeder.setVolume": {
25358
+ capName: "pet-feeder",
25359
+ capScope: "device",
25360
+ addonId: null,
25361
+ access: "create"
25362
+ },
25092
25363
  "pipelineAnalytics.clearTracks": {
25093
25364
  capName: "pipeline-analytics",
25094
25365
  capScope: "device",
@@ -27081,6 +27352,7 @@ var KNOWN_CAP_NAMES = [
27081
27352
  "notifier",
27082
27353
  "oauth-integration",
27083
27354
  "osd",
27355
+ "pet-feeder",
27084
27356
  "pipeline-analytics",
27085
27357
  "pipeline-executor",
27086
27358
  "pipeline-orchestrator",
@@ -27156,6 +27428,7 @@ var DEVICE_CAP_NAMES = [
27156
27428
  "native-object-detection",
27157
27429
  "notifier",
27158
27430
  "osd",
27431
+ "pet-feeder",
27159
27432
  "pipeline-analytics",
27160
27433
  "privacy-mask",
27161
27434
  "ptz",
@@ -27794,4 +28067,4 @@ function scoreRuntimes(hw) {
27794
28067
  };
27795
28068
  }
27796
28069
  //#endregion
27797
- export { ACCESSORY_LABEL, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationControlStatusSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BATTERY_DEVICE_PROFILE, BackupDestinationInfoSchema, BackupEntrySchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, COCO_80_LABELS, COCO_TO_MACRO, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusSchema, CameraStreamSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_FEATURES, DEFAULT_RETENTION, DEVICE_CAP_NAMES, DEVICE_PROFILES, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DEVICE_TYPE_INFO, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderAssignmentSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetectionSourceSchema, DetectorOutputSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENT_PAD_MS, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindSchema, EventSourceType, ExportSetupFieldSchema, ExportSetupSchema, ExposedDeviceSchema, ExposedResourceSchema, ExpressionEvalError, ExpressionParseError, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageStatusSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, LabelDefinitionSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, MACRO_LABELS, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, METHOD_ACCESS_MAP, MODEL_FORMATS, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, NativeDetectionSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionSchema, NotificationFormatSchema, NotificationHistoryEntrySchema, NotificationRuleSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OauthIntegrationDescriptorSchema, ObjectEventSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdStatusSchema, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PlaceholderReasonSchema, PolygonPointSchema, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, RECOGNITION_TYPES, RESERVED_BINDING_NAMES, RUNTIME_DEFAULTS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingModeSchema, RecordingRangeSchema, RecordingRetentionSchema, RecordingRuleSchema, RecordingScheduleSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RegisteredStreamSchema, RenderedAsSchema, ReportMotionInputSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCOPE_PRESETS, SOURCE_INFO_METADATA_KEY, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StreamCodecSchema, StreamFormatSchema, StreamInfoSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SubscribeFramesInputSchema, SubscribeFramesResultSchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TIMEZONES, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestResultSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackSchema, TrackStateSchema, TrackedDetectionSchema, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VibrationStatusSchema, VideoEncodeSchema, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WidgetHostEnum, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, advancedNotifierCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, applyTransform, asBoolean, asJsonArray, asJsonObject, asNumber, asString, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioMetricsCapability, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildStreamParamsConfigSchema, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, carbonMonoxideCapability, cellsToRects, classifyStream, classifyStreams, climateControlCapability, colorCapability, compileExpression, compileExpressionSafe, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, cosineSimilarity, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, decoderCapability, defaultDeviceFor, defineCustomActions, detectionPipelineCapability, deviceAdoptionCapability, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, enumSensorCapability, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateLinkExpression, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, frameworkSwapConfirmSchema, frameworkSwapPackageSchema, gasCapability, getAudioMacroClassIds, getByPath, getCapsByProviderKind, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, integrationsCapability, intercomCapability, isAgentOnlyPlacement, isDeployableToAgent, isDeviceConfigCap, isEvent, jobKindSchema, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, localNetworkCapability, locationSimilarity, lockControlCapability, logDestinationCapability, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, metricsProviderCapability, migrateConfigToBands, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, osdCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, pendingFrameworkSwapSchema, pickPreferredRtspEntry, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, privacyMaskCapability, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readNodePin, readinessKey, rebootCapability, recordingCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceProfile, resolveFormat, resolveModelFormat, resolveRunnerId, restreamerCapability, runInferenceStep, runtimeDevices, scopeKey, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, snapshotProviderCapability, ssoBridgeCapability, storageCapability, storageEvictableCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, streamingEngineCapability, supportedRuntimes, switchCapability, synthesizeSourceInfo, systemCapability, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, textToHtml, toDeviceSummary, toExpressionValue, toStreamSourceEntry, toastCapability, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, valveCapability, vibrationCapability, videoclipsCapability, waterHeaterCapability, weatherCapability, webrtcCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
28070
+ export { ACCESSORY_LABEL, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationControlStatusSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BATTERY_DEVICE_PROFILE, BackupDestinationInfoSchema, BackupEntrySchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, COCO_80_LABELS, COCO_TO_MACRO, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusSchema, CameraStreamSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_FEATURES, DEFAULT_RETENTION, DEVICE_CAP_NAMES, DEVICE_PROFILES, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DEVICE_TYPE_INFO, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderAssignmentSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetectionSourceSchema, DetectorOutputSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENT_PAD_MS, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindSchema, EventSourceType, ExportSetupFieldSchema, ExportSetupSchema, ExposedDeviceSchema, ExposedResourceSchema, ExpressionEvalError, ExpressionParseError, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageStatusSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, LabelDefinitionSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, MACRO_LABELS, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, METHOD_ACCESS_MAP, MODEL_FORMATS, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, NativeDetectionSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionSchema, NotificationFormatSchema, NotificationHistoryEntrySchema, NotificationRuleSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OauthIntegrationDescriptorSchema, ObjectEventSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PlaceholderReasonSchema, PolygonPointSchema, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, RECOGNITION_TYPES, RESERVED_BINDING_NAMES, RUNTIME_DEFAULTS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingModeSchema, RecordingRangeSchema, RecordingRetentionSchema, RecordingRuleSchema, RecordingScheduleSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RegisteredStreamSchema, RenderedAsSchema, ReportMotionInputSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCOPE_PRESETS, SOURCE_INFO_METADATA_KEY, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StreamCodecSchema, StreamFormatSchema, StreamInfoSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SubscribeFramesInputSchema, SubscribeFramesResultSchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TIMEZONES, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestResultSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackSchema, TrackStateSchema, TrackedDetectionSchema, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VibrationStatusSchema, VideoEncodeSchema, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WidgetHostEnum, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, advancedNotifierCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, applyTransform, asBoolean, asJsonArray, asJsonObject, asNumber, asString, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioMetricsCapability, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildStreamParamsConfigSchema, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, carbonMonoxideCapability, cellsToRects, classifyStream, classifyStreams, climateControlCapability, colorCapability, compileExpression, compileExpressionSafe, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, cosineSimilarity, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, decoderCapability, defaultDeviceFor, defineCustomActions, detectionPipelineCapability, deviceAdoptionCapability, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, enumSensorCapability, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateLinkExpression, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, frameworkSwapConfirmSchema, frameworkSwapPackageSchema, gasCapability, getAudioMacroClassIds, getByPath, getCapsByProviderKind, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, integrationsCapability, intercomCapability, isAgentOnlyPlacement, isDeployableToAgent, isDeviceConfigCap, isEvent, jobKindSchema, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, localNetworkCapability, locationSimilarity, lockControlCapability, logDestinationCapability, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, metricsProviderCapability, migrateConfigToBands, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, osdCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, pendingFrameworkSwapSchema, petFeederCapability, pickPreferredRtspEntry, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, privacyMaskCapability, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readNodePin, readinessKey, rebootCapability, recordingCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceProfile, resolveFormat, resolveModelFormat, resolveRunnerId, restreamerCapability, runInferenceStep, runtimeDevices, scopeKey, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, snapshotProviderCapability, ssoBridgeCapability, storageCapability, storageEvictableCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, streamingEngineCapability, supportedRuntimes, switchCapability, synthesizeSourceInfo, systemCapability, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, textToHtml, toDeviceSummary, toExpressionValue, toStreamSourceEntry, toastCapability, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, valveCapability, vibrationCapability, videoclipsCapability, waterHeaterCapability, weatherCapability, webrtcCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
@@ -262,8 +262,8 @@ export interface IKernelServices {
262
262
  * own probe because hwaccel is inherently hardware-bound: decoder
263
263
  * addons on an NVIDIA agent get `['cuda', 'nvdec']`, the same addon
264
264
  * on a Mac hub gets `['videotoolbox']`. Cross-node queries for the
265
- * admin UI go via the `$hwaccel.resolve` Moleculer service
266
- * registered on every node.
265
+ * admin UI go via the node-pinned `platform-probe` capability
266
+ * (`resolveHwAccel`), not a bespoke Moleculer service.
267
267
  */
268
268
  readonly hwaccel?: IKernelHwAccel;
269
269
  /**
@@ -437,6 +437,15 @@ export interface AddonContext<TConfig = Record<string, unknown>> {
437
437
  * and `global`-level values; they're disjoint by schema invariant so
438
438
  * they can share one physical store. No defaults merged in. Returns
439
439
  * an empty object if the addon has never written anything.
440
+ *
441
+ * @internal Low-level primitive — addons MUST NOT call this directly.
442
+ * Use the high-level, schema-driven, per-node-aware API instead:
443
+ * `this.getGlobalSettings()` / `this.updateGlobalSettings()`,
444
+ * `this.resolveGlobalStore()` (raw view for a `getGlobalSettings`
445
+ * override), or `this.state<T>()` (durable JSON blob). Enforced by the
446
+ * `no-raw-addon-store` biome guard over the addon source tree; the
447
+ * sanctioned `BaseAddon` wrappers (in `@camstack/types`) and the
448
+ * allowlisted engine-cascade holdouts are the only callers.
440
449
  */
441
450
  readAddonStore(): Promise<Record<string, unknown>>;
442
451
  /**
@@ -444,6 +453,10 @@ export interface AddonContext<TConfig = Record<string, unknown>> {
444
453
  * preserved. Keys explicitly set to `null` are preserved as-is (they
445
454
  * do NOT fall back to schema default on subsequent reads — that
446
455
  * layering happens only at `hydrateSchema` time).
456
+ *
457
+ * @internal Low-level primitive — addons MUST NOT call this directly.
458
+ * Use `this.updateGlobalSettings()` or `this.state<T>().set()`. Enforced
459
+ * by the `no-raw-addon-store` biome guard (see `readAddonStore`).
447
460
  */
448
461
  writeAddonStore(patch: Record<string, unknown>): Promise<void>;
449
462
  /**
@@ -1,4 +1,4 @@
1
- import type { ModelCatalogEntry, ModelFormat, ModelOutputFormat, CustomModelMetadata } from '../types/models.js';
1
+ import type { CustomModelMetadata, ModelCatalogEntry, ModelFormat, ModelOutputFormat } from '../types/models.js';
2
2
  /**
3
3
  * Configuration UI Schema -- declarative form definition for any element.
4
4
  *
@@ -111,6 +111,24 @@ export interface ConfigFieldBase {
111
111
  * `updateAddonSettings`.
112
112
  */
113
113
  readonly requiresRestart?: boolean;
114
+ /**
115
+ * Per-node store scoping. `perNode: true` ⇒ the field's persisted store
116
+ * key is physically `<key>@<nodeId>` — one value per cluster node — while
117
+ * the SCHEMA field key stays bare (the UI form never sees the scoped key).
118
+ * `BaseAddon.getGlobalSettings` / `updateGlobalSettings` / `resolveConfig`
119
+ * scope reads and writes through `addon/per-node-store.ts`; a node with no
120
+ * scoped key resolves to the field's schema `default` — NEVER another
121
+ * node's value (deliberately NO bare-key fallback).
122
+ *
123
+ * Absent/false (default) ⇒ node-agnostic shared blob — a single value for
124
+ * the whole cluster, today's behavior for the vast majority of fields.
125
+ *
126
+ * This is SCHEMA metadata (like `immediate` / `requiresRestart`), NOT
127
+ * capability metadata: it lives on the field only — never in a `*.cap.ts`
128
+ * definition or an addon manifest — so it is invisible to
129
+ * `check-capability-metadata-drift.ts`.
130
+ */
131
+ readonly perNode?: boolean;
114
132
  /**
115
133
  * Override the default placement of this field.
116
134
  * Moves it to a different tab and/or section than its parent section.
@@ -2,6 +2,7 @@ import type { PipelineEngineChoice, PipelineConfig } from '../types/pipeline.js'
2
2
  import type { PipelineSchema, PipelineDefaultStep, PipelineTemplateStep, PipelineTemplate } from '../types/pipeline-schema.js';
3
3
  import type { ModelFormat } from '../types/models.js';
4
4
  import type { FrameInput } from '../types/io.js';
5
+ import type { FrameHandle } from './frame-handle.js';
5
6
  import type { FrameResult, DetectorOutput } from '../types/detection.js';
6
7
  import type { ConfigUISchema } from './config-ui.js';
7
8
  import type { InferenceCapabilities } from './inference-capabilities.js';
@@ -24,6 +25,9 @@ export interface PipelineStepInput {
24
25
  /**
25
26
  * Input for pipeline execution. Exactly one image source must be provided:
26
27
  * - `frame`: runtime dispatch (pipeline-runner — decoded broker frame)
28
+ * - `frameHandle` (CB5): a zero-pixel shm `FrameHandle` for the same
29
+ * decoded frame — the hub-local executor maps the segment and reads the
30
+ * pixels back zero-copy instead of paying the ~1.2MB UDS re-serialise.
27
31
  * - `imageBase64`: one-shot benchmark (ImageTab "Run")
28
32
  * - `referenceImage`: named file from the reference-image store
29
33
  *
@@ -36,6 +40,12 @@ export interface PipelineRunInput {
36
40
  readonly steps: readonly PipelineStepInput[];
37
41
  readonly engine?: PipelineEngineChoice;
38
42
  readonly frame?: FrameInput;
43
+ /**
44
+ * CB5 shm passthrough — names the ring slot the decoded pixels live in.
45
+ * A null read (recycled slot / foreign handle) degrades to an empty
46
+ * result; the runner ships `frame` as the fallback (queue-depth gated).
47
+ */
48
+ readonly frameHandle?: FrameHandle;
39
49
  readonly referenceImage?: string;
40
50
  readonly imageBase64?: string;
41
51
  /**