@camstack/types 1.1.9 → 1.1.10

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.
@@ -2284,6 +2284,12 @@ var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
2284
2284
  DeviceFeature["ClimateFanMode"] = "climate-fan-mode";
2285
2285
  /** Thermostat exposes preset modes (eco / away / sleep / vendor). */
2286
2286
  DeviceFeature["ClimatePreset"] = "climate-preset";
2287
+ /** Thermostat exposes a vertical louver swing toggle. Gates the
2288
+ * vertical-swing switch in the climate UI. Independent of horizontal. */
2289
+ DeviceFeature["ClimateSwingVertical"] = "climate-swing-vertical";
2290
+ /** Thermostat exposes a horizontal louver swing toggle. Gates the
2291
+ * horizontal-swing switch in the climate UI. Independent of vertical. */
2292
+ DeviceFeature["ClimateSwingHorizontal"] = "climate-swing-horizontal";
2287
2293
  /** Cover exposes intermediate position control (0..100). Gates the
2288
2294
  * position slider UI. */
2289
2295
  DeviceFeature["CoverPositionable"] = "cover-positionable";
@@ -2349,6 +2355,18 @@ var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
2349
2355
  /** Automation `trigger` accepts a skipCondition flag — fires the
2350
2356
  * automation's actions while bypassing its condition block. */
2351
2357
  DeviceFeature["AutomationSkipCondition"] = "automation-skip-condition";
2358
+ /** Robot vacuum exposes a live cleaning map (image child). Gates the
2359
+ * map tile in the vacuum UI. */
2360
+ DeviceFeature["VacuumHasMap"] = "vacuum-has-map";
2361
+ /** Robot vacuum exposes AI obstacle-detection toggles. Gates the AI
2362
+ * switches group. */
2363
+ DeviceFeature["VacuumHasAi"] = "vacuum-has-ai";
2364
+ /** Robot mower exposes a live mowing map (SVG image child). Gates the
2365
+ * mower map tile. */
2366
+ DeviceFeature["MowerHasMap"] = "mower-has-map";
2367
+ /** Robot mower exposes targeted mowing (all-area / zones / edges /
2368
+ * spots) — gates the Mow action + map selectors. */
2369
+ DeviceFeature["MowerHasTargetedMowing"] = "mower-has-targeted-mowing";
2352
2370
  return DeviceFeature;
2353
2371
  }({});
2354
2372
  var ChargingStatus = /* @__PURE__ */ function(ChargingStatus) {
@@ -2463,6 +2481,18 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
2463
2481
  * 5. Registry auto-mounts tRPC router from definition.methods
2464
2482
  */
2465
2483
  /**
2484
+ * Resolve the EFFECTIVE mount hint for a cap — the explicit `mount` when
2485
+ * present, else the scope/mode/deviceNative-derived default. Single source
2486
+ * of truth shared by the runtime builder and any codegen that needs the
2487
+ * same classification, so the two can never disagree.
2488
+ */
2489
+ function resolveCapMount(def) {
2490
+ if (def.mount) return def.mount;
2491
+ if (def.deviceNative === true) return { kind: "device-native" };
2492
+ if (def.mode === "collection") return { kind: "collection" };
2493
+ return { kind: "singleton" };
2494
+ }
2495
+ /**
2466
2496
  * Output schema shared by the contribution + live methods.
2467
2497
  *
2468
2498
  * Mirrors the `ConfigUISchemaWithValues` shape (sections[] + optional
@@ -2939,6 +2969,8 @@ function createDeviceProxy(api, binding, opts) {
2939
2969
  setTarget: (input) => dispatch("climate-control", "climateControl", "setTarget", "mutation", input),
2940
2970
  setTargetRange: (input) => dispatch("climate-control", "climateControl", "setTargetRange", "mutation", input),
2941
2971
  setTargetHumidity: (input) => dispatch("climate-control", "climateControl", "setTargetHumidity", "mutation", input),
2972
+ setSwingVertical: (input) => dispatch("climate-control", "climateControl", "setSwingVertical", "mutation", input),
2973
+ setSwingHorizontal: (input) => dispatch("climate-control", "climateControl", "setSwingHorizontal", "mutation", input),
2942
2974
  getStatus: (input) => dispatch("climate-control", "climateControl", "getStatus", "query", input)
2943
2975
  },
2944
2976
  color: {
@@ -3531,4 +3563,4 @@ function sleepCancellable(ms, signal) {
3531
3563
  });
3532
3564
  }
3533
3565
  //#endregion
3534
- export { SubscribeFramesInputSchema as $, ReadinessTimeoutError as A, CameraStreamSchema as B, asNumber as C, parseJsonUnknown as D, parseJsonObject as E, BrokerStatusSchema as F, FrameHandleSchema as G, DecodedFrameSchema as H, CAM_PROFILE_ORDER as I, ProfileSlotStatusSchema as J, ProfileRtspEntrySchema as K, CamProfileSchema as L, readinessKey as M, scopeKey as N, DATAPLANE_SECRET_HEADER as O, BrokerStatsSchema as P, SubscribeAudioChunksResultSchema as Q, CamStreamKindSchema as R, asJsonObject as S, parseJsonArray as T, EncodedPacketSchema as U, DecodedAudioChunkSchema as V, FrameHandleFormatSchema as W, StreamSourceSchema as X, StreamSourceEntrySchema$1 as Y, SubscribeAudioChunksInputSchema as Z, DeviceFeature as _, adminUiCapability as a, BaseAddon as at, asBoolean as b, createMirrorSource as c, createEvent as ct, DEVICE_STATUS_METHOD as d, WELL_KNOWN_TABS as dt, SubscribeFramesResultSchema as et, event as f, WELL_KNOWN_TAB_MAP as ft, ChargingStatus as g, method as h, DisposerChain as ht, deviceOpsCapability as i, selectAssignedProfileSlots as it, emitDownForOwnedCaps as j, ReadinessRegistry as k, createSliceHandle as l, emitReadiness as lt, isDeviceConfigCap as m, EventCategory as mt, sleepCancellable as n, makeSourceBrokerId as nt, createDeviceProxy as o, normalizeAddonInitResult as ot, expandCapMethods as p, hydrateSchema as pt, ProfileSlotSchema as q, RawStateResultSchema as r, parseProfileBrokerId as rt, createLazyTrpcSource as s, createDurableState as st, sleep as t, makeProfileBrokerId as tt, DEVICE_SETTINGS_CONTRIBUTION_METHODS as u, isEvent as ut, DeviceRole as v, asString as w, asJsonArray as x, DeviceType as y, CamStreamResolutionSchema as z };
3566
+ export { SubscribeAudioChunksResultSchema as $, ReadinessRegistry as A, CamStreamResolutionSchema as B, asJsonObject as C, parseJsonObject as D, parseJsonArray as E, BrokerStatsSchema as F, FrameHandleFormatSchema as G, DecodedAudioChunkSchema as H, BrokerStatusSchema as I, ProfileSlotSchema as J, FrameHandleSchema as K, CAM_PROFILE_ORDER as L, emitDownForOwnedCaps as M, readinessKey as N, parseJsonUnknown as O, scopeKey as P, SubscribeAudioChunksInputSchema as Q, CamProfileSchema as R, asJsonArray as S, asString as T, DecodedFrameSchema as U, CameraStreamSchema as V, EncodedPacketSchema as W, StreamSourceEntrySchema$1 as X, ProfileSlotStatusSchema as Y, StreamSourceSchema as Z, ChargingStatus as _, adminUiCapability as a, selectAssignedProfileSlots as at, DeviceType as b, createMirrorSource as c, createDurableState as ct, DEVICE_STATUS_METHOD as d, isEvent as dt, SubscribeFramesInputSchema as et, event as f, WELL_KNOWN_TABS as ft, resolveCapMount as g, DisposerChain as gt, method as h, EventCategory as ht, deviceOpsCapability as i, parseProfileBrokerId as it, ReadinessTimeoutError as j, DATAPLANE_SECRET_HEADER as k, createSliceHandle as l, createEvent as lt, isDeviceConfigCap as m, hydrateSchema as mt, sleepCancellable as n, makeProfileBrokerId as nt, createDeviceProxy as o, BaseAddon as ot, expandCapMethods as p, WELL_KNOWN_TAB_MAP as pt, ProfileRtspEntrySchema as q, RawStateResultSchema as r, makeSourceBrokerId as rt, createLazyTrpcSource as s, normalizeAddonInitResult as st, sleep as t, SubscribeFramesResultSchema as tt, DEVICE_SETTINGS_CONTRIBUTION_METHODS as u, emitReadiness as ut, DeviceFeature as v, asNumber as w, asBoolean as x, DeviceRole as y, CamStreamKindSchema as z };
@@ -2284,6 +2284,12 @@ var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
2284
2284
  DeviceFeature["ClimateFanMode"] = "climate-fan-mode";
2285
2285
  /** Thermostat exposes preset modes (eco / away / sleep / vendor). */
2286
2286
  DeviceFeature["ClimatePreset"] = "climate-preset";
2287
+ /** Thermostat exposes a vertical louver swing toggle. Gates the
2288
+ * vertical-swing switch in the climate UI. Independent of horizontal. */
2289
+ DeviceFeature["ClimateSwingVertical"] = "climate-swing-vertical";
2290
+ /** Thermostat exposes a horizontal louver swing toggle. Gates the
2291
+ * horizontal-swing switch in the climate UI. Independent of vertical. */
2292
+ DeviceFeature["ClimateSwingHorizontal"] = "climate-swing-horizontal";
2287
2293
  /** Cover exposes intermediate position control (0..100). Gates the
2288
2294
  * position slider UI. */
2289
2295
  DeviceFeature["CoverPositionable"] = "cover-positionable";
@@ -2349,6 +2355,18 @@ var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
2349
2355
  /** Automation `trigger` accepts a skipCondition flag — fires the
2350
2356
  * automation's actions while bypassing its condition block. */
2351
2357
  DeviceFeature["AutomationSkipCondition"] = "automation-skip-condition";
2358
+ /** Robot vacuum exposes a live cleaning map (image child). Gates the
2359
+ * map tile in the vacuum UI. */
2360
+ DeviceFeature["VacuumHasMap"] = "vacuum-has-map";
2361
+ /** Robot vacuum exposes AI obstacle-detection toggles. Gates the AI
2362
+ * switches group. */
2363
+ DeviceFeature["VacuumHasAi"] = "vacuum-has-ai";
2364
+ /** Robot mower exposes a live mowing map (SVG image child). Gates the
2365
+ * mower map tile. */
2366
+ DeviceFeature["MowerHasMap"] = "mower-has-map";
2367
+ /** Robot mower exposes targeted mowing (all-area / zones / edges /
2368
+ * spots) — gates the Mow action + map selectors. */
2369
+ DeviceFeature["MowerHasTargetedMowing"] = "mower-has-targeted-mowing";
2352
2370
  return DeviceFeature;
2353
2371
  }({});
2354
2372
  var ChargingStatus = /* @__PURE__ */ function(ChargingStatus) {
@@ -2463,6 +2481,18 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
2463
2481
  * 5. Registry auto-mounts tRPC router from definition.methods
2464
2482
  */
2465
2483
  /**
2484
+ * Resolve the EFFECTIVE mount hint for a cap — the explicit `mount` when
2485
+ * present, else the scope/mode/deviceNative-derived default. Single source
2486
+ * of truth shared by the runtime builder and any codegen that needs the
2487
+ * same classification, so the two can never disagree.
2488
+ */
2489
+ function resolveCapMount(def) {
2490
+ if (def.mount) return def.mount;
2491
+ if (def.deviceNative === true) return { kind: "device-native" };
2492
+ if (def.mode === "collection") return { kind: "collection" };
2493
+ return { kind: "singleton" };
2494
+ }
2495
+ /**
2466
2496
  * Output schema shared by the contribution + live methods.
2467
2497
  *
2468
2498
  * Mirrors the `ConfigUISchemaWithValues` shape (sections[] + optional
@@ -2939,6 +2969,8 @@ function createDeviceProxy(api, binding, opts) {
2939
2969
  setTarget: (input) => dispatch("climate-control", "climateControl", "setTarget", "mutation", input),
2940
2970
  setTargetRange: (input) => dispatch("climate-control", "climateControl", "setTargetRange", "mutation", input),
2941
2971
  setTargetHumidity: (input) => dispatch("climate-control", "climateControl", "setTargetHumidity", "mutation", input),
2972
+ setSwingVertical: (input) => dispatch("climate-control", "climateControl", "setSwingVertical", "mutation", input),
2973
+ setSwingHorizontal: (input) => dispatch("climate-control", "climateControl", "setSwingHorizontal", "mutation", input),
2942
2974
  getStatus: (input) => dispatch("climate-control", "climateControl", "getStatus", "query", input)
2943
2975
  },
2944
2976
  color: {
@@ -3921,6 +3953,12 @@ Object.defineProperty(exports, "readinessKey", {
3921
3953
  return readinessKey;
3922
3954
  }
3923
3955
  });
3956
+ Object.defineProperty(exports, "resolveCapMount", {
3957
+ enumerable: true,
3958
+ get: function() {
3959
+ return resolveCapMount;
3960
+ }
3961
+ });
3924
3962
  Object.defineProperty(exports, "scopeKey", {
3925
3963
  enumerable: true,
3926
3964
  get: function() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.1.9",
3
+ "version": "1.1.10",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",