@camstack/types 1.1.11 → 1.1.12

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-B3AOslwX.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-C2M2zF7x.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
@@ -4215,7 +4215,7 @@ var climateControlCapability = {
4215
4215
  scope: "device",
4216
4216
  deviceNative: true,
4217
4217
  mode: "singleton",
4218
- deviceTypes: [DeviceType.Thermostat],
4218
+ deviceTypes: [DeviceType.Thermostat, DeviceType.Climate],
4219
4219
  methods: {
4220
4220
  setMode: method(z.object({
4221
4221
  deviceId: z.number().int().nonnegative(),
@@ -9426,10 +9426,30 @@ var deviceProviderCapability = {
9426
9426
  type: z.string()
9427
9427
  }))),
9428
9428
  supportsDiscovery: method(z.object({}), z.boolean()),
9429
- discoverDevices: method(z.object({}), z.array(DiscoveryCandidateSchema), {
9429
+ /**
9430
+ * Run a network scan. `params` carries optional provider-specific scan
9431
+ * inputs (e.g. a broadcast address / subnet for cross-subnet discovery),
9432
+ * shaped by `getDiscoveryParamsSchema`. Omitted for the generic scan
9433
+ * (provider uses its local-network default).
9434
+ */
9435
+ discoverDevices: method(z.object({ params: z.record(z.string(), z.unknown()).optional() }), z.array(DiscoveryCandidateSchema), {
9430
9436
  kind: "mutation",
9431
9437
  auth: "admin"
9432
9438
  }),
9439
+ /**
9440
+ * Optional form schema (`ConfigUISchema`) for the EXTRA per-scan inputs a
9441
+ * provider accepts (e.g. Gree's broadcast address for a different subnet).
9442
+ * `null` when the provider takes no extra scan params — the generic
9443
+ * aggregated scan never renders this; the per-integration scan does.
9444
+ */
9445
+ getDiscoveryParamsSchema: method(z.object({}), CreationSchemaOutputSchema),
9446
+ /**
9447
+ * The DeviceType this provider creates via manual add (Camera for
9448
+ * Reolink/ONVIF, Container for Gree, Hub for Ecowitt). `null` when the
9449
+ * provider does not support manual creation. Lets the Add-Device dialog
9450
+ * pick the right type instead of assuming Camera.
9451
+ */
9452
+ getManualCreationType: method(z.object({}), z.object({ deviceType: z.enum(DeviceType).nullable() })),
9433
9453
  adoptDiscoveredDevice: method(z.object({ candidate: DiscoveryCandidateSchema }), DeviceSummarySchema, {
9434
9454
  kind: "mutation",
9435
9455
  auth: "admin"
@@ -9555,9 +9575,23 @@ var BaseDeviceProvider = class extends BaseAddon {
9555
9575
  async supportsDiscovery() {
9556
9576
  return false;
9557
9577
  }
9558
- async discoverDevices() {
9578
+ async discoverDevices(_input) {
9559
9579
  return [];
9560
9580
  }
9581
+ /** Extra per-scan input form (e.g. a broadcast address for another subnet).
9582
+ * Null = no extra params. Override in providers that support scoped scans. */
9583
+ async getDiscoveryParamsSchema() {
9584
+ return null;
9585
+ }
9586
+ /**
9587
+ * The DeviceType this provider creates via manual add — derived from the
9588
+ * `deviceClasses` map (first registered type). `null` when manual creation is
9589
+ * unsupported. Lets the Add-Device dialog pick the right type per provider.
9590
+ */
9591
+ async getManualCreationType() {
9592
+ if (!await this.supportsManualCreation()) return { deviceType: null };
9593
+ return { deviceType: Object.values(DeviceType).find((t) => this.deviceClasses[t] !== void 0) ?? null };
9594
+ }
9561
9595
  async adoptDiscoveredDevice(_input) {
9562
9596
  throw new Error(`${this.providerName} provider does not support discovery-based adoption`);
9563
9597
  }
@@ -10168,11 +10202,17 @@ function createSystemProxy(api) {
10168
10202
  getCreationSchema: (input) => dispatch("deviceManager", "getCreationSchema", "query", input),
10169
10203
  createDevice: (input) => dispatch("deviceManager", "createDevice", "mutation", input),
10170
10204
  testCreationField: (input) => dispatch("deviceManager", "testCreationField", "mutation", input),
10205
+ adoptionListCandidateFilters: (input) => dispatch("deviceManager", "adoptionListCandidateFilters", "query", input),
10171
10206
  adoptionListCandidates: (input) => dispatch("deviceManager", "adoptionListCandidates", "query", input),
10172
10207
  adoptionRefresh: (input) => dispatch("deviceManager", "adoptionRefresh", "mutation", input),
10173
10208
  adoptionAdopt: (input) => dispatch("deviceManager", "adoptionAdopt", "mutation", input),
10174
10209
  adoptionRelease: (input) => dispatch("deviceManager", "adoptionRelease", "mutation", input),
10175
- adoptionResync: (input) => dispatch("deviceManager", "adoptionResync", "mutation", input)
10210
+ adoptionResync: (input) => dispatch("deviceManager", "adoptionResync", "mutation", input),
10211
+ discoveryProviders: (input) => dispatch("deviceManager", "discoveryProviders", "query", input),
10212
+ discoverAllProviders: (input) => dispatch("deviceManager", "discoverAllProviders", "mutation", input),
10213
+ discoverProvider: (input) => dispatch("deviceManager", "discoverProvider", "mutation", input),
10214
+ providerCreationType: (input) => dispatch("deviceManager", "providerCreationType", "query", input),
10215
+ providerDiscoveryParamsSchema: (input) => dispatch("deviceManager", "providerDiscoveryParamsSchema", "query", input)
10176
10216
  },
10177
10217
  deviceProvider: {
10178
10218
  start: (input) => dispatch("deviceProvider", "start", "mutation", input),
@@ -10181,6 +10221,8 @@ function createSystemProxy(api) {
10181
10221
  getDevices: (input) => dispatch("deviceProvider", "getDevices", "query", input),
10182
10222
  supportsDiscovery: (input) => dispatch("deviceProvider", "supportsDiscovery", "query", input),
10183
10223
  discoverDevices: (input) => dispatch("deviceProvider", "discoverDevices", "mutation", input),
10224
+ getDiscoveryParamsSchema: (input) => dispatch("deviceProvider", "getDiscoveryParamsSchema", "query", input),
10225
+ getManualCreationType: (input) => dispatch("deviceProvider", "getManualCreationType", "query", input),
10184
10226
  adoptDiscoveredDevice: (input) => dispatch("deviceProvider", "adoptDiscoveredDevice", "mutation", input),
10185
10227
  supportsManualCreation: (input) => dispatch("deviceProvider", "supportsManualCreation", "query", input),
10186
10228
  getChildCreationSchema: (input) => dispatch("deviceProvider", "getChildCreationSchema", "query", input),
@@ -13650,6 +13692,12 @@ var deviceManagerCapability = {
13650
13692
  kind: "mutation",
13651
13693
  auth: "admin"
13652
13694
  }),
13695
+ /** List candidate filter chips for an integration via its device-adoption
13696
+ * provider — addonId-routed so it never hits the singleton shadow. */
13697
+ adoptionListCandidateFilters: method(z.object({
13698
+ addonId: z.string(),
13699
+ integrationId: z.string()
13700
+ }), z.object({ filters: z.array(AdoptionFilterSchema) }), { auth: "admin" }),
13653
13701
  /** List adoption candidates for an integration via its device-adoption provider. */
13654
13702
  adoptionListCandidates: method(ListCandidatesInputSchema.extend({ addonId: z.string() }), ListCandidatesOutputSchema, { auth: "admin" }),
13655
13703
  /** Trigger a discovery refresh on the integration's device-adoption provider. */
@@ -13680,6 +13728,36 @@ var deviceManagerCapability = {
13680
13728
  kind: "mutation",
13681
13729
  auth: "admin"
13682
13730
  }),
13731
+ /** Addons whose device-provider reports `supportsDiscovery` (for the modal). */
13732
+ discoveryProviders: method(z.object({}), z.object({ providers: z.array(z.object({
13733
+ addonId: z.string(),
13734
+ label: z.string()
13735
+ })).readonly() }), { auth: "admin" }),
13736
+ /** Scan EVERY discovery-capable provider; returns candidates grouped by addon. */
13737
+ discoverAllProviders: method(z.object({}), z.object({ groups: z.array(z.object({
13738
+ addonId: z.string(),
13739
+ label: z.string(),
13740
+ candidates: z.array(DiscoveryCandidateSchema).readonly(),
13741
+ error: z.string().nullable()
13742
+ })).readonly() }), {
13743
+ kind: "mutation",
13744
+ auth: "admin"
13745
+ }),
13746
+ /** Scan ONE provider with optional provider-specific params (subnet /
13747
+ * broadcast addr) — the per-integration "Scan network" surface. */
13748
+ discoverProvider: method(z.object({
13749
+ addonId: z.string(),
13750
+ params: z.record(z.string(), z.unknown()).optional()
13751
+ }), z.object({ candidates: z.array(DiscoveryCandidateSchema).readonly() }), {
13752
+ kind: "mutation",
13753
+ auth: "admin"
13754
+ }),
13755
+ /** The device type a provider creates via manual add (Camera/Container/Hub),
13756
+ * so the Add-Device dialog uses the right type instead of assuming Camera. */
13757
+ providerCreationType: method(z.object({ addonId: z.string() }), z.object({ deviceType: z.enum(DeviceType).nullable() }), { auth: "admin" }),
13758
+ /** A provider's extra per-scan param form (ConfigUISchema) for the
13759
+ * per-integration scan, or null when it takes none. */
13760
+ providerDiscoveryParamsSchema: method(z.object({ addonId: z.string() }), z.unknown(), { auth: "admin" }),
13683
13761
  /**
13684
13762
  * Test a field value on an existing device (e.g. probe an RTSP URL).
13685
13763
  * Routes through the device-provider for the owning addon.
@@ -21864,6 +21942,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
21864
21942
  addonId: null,
21865
21943
  access: "create"
21866
21944
  },
21945
+ "deviceManager.adoptionListCandidateFilters": {
21946
+ capName: "device-manager",
21947
+ capScope: "system",
21948
+ addonId: null,
21949
+ access: "view"
21950
+ },
21867
21951
  "deviceManager.adoptionListCandidates": {
21868
21952
  capName: "device-manager",
21869
21953
  capScope: "system",
@@ -21912,12 +21996,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
21912
21996
  addonId: null,
21913
21997
  access: "create"
21914
21998
  },
21999
+ "deviceManager.discoverAllProviders": {
22000
+ capName: "device-manager",
22001
+ capScope: "system",
22002
+ addonId: null,
22003
+ access: "create"
22004
+ },
21915
22005
  "deviceManager.discoverDevices": {
21916
22006
  capName: "device-manager",
21917
22007
  capScope: "system",
21918
22008
  addonId: null,
21919
22009
  access: "create"
21920
22010
  },
22011
+ "deviceManager.discoverProvider": {
22012
+ capName: "device-manager",
22013
+ capScope: "system",
22014
+ addonId: null,
22015
+ access: "create"
22016
+ },
22017
+ "deviceManager.discoveryProviders": {
22018
+ capName: "device-manager",
22019
+ capScope: "system",
22020
+ addonId: null,
22021
+ access: "view"
22022
+ },
21921
22023
  "deviceManager.enable": {
21922
22024
  capName: "device-manager",
21923
22025
  capScope: "system",
@@ -22068,6 +22170,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
22068
22170
  addonId: null,
22069
22171
  access: "create"
22070
22172
  },
22173
+ "deviceManager.providerCreationType": {
22174
+ capName: "device-manager",
22175
+ capScope: "system",
22176
+ addonId: null,
22177
+ access: "view"
22178
+ },
22179
+ "deviceManager.providerDiscoveryParamsSchema": {
22180
+ capName: "device-manager",
22181
+ capScope: "system",
22182
+ addonId: null,
22183
+ access: "view"
22184
+ },
22071
22185
  "deviceManager.registerDevice": {
22072
22186
  capName: "device-manager",
22073
22187
  capScope: "system",
@@ -22284,6 +22398,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
22284
22398
  addonId: null,
22285
22399
  access: "view"
22286
22400
  },
22401
+ "deviceProvider.getDiscoveryParamsSchema": {
22402
+ capName: "device-provider",
22403
+ capScope: "system",
22404
+ addonId: null,
22405
+ access: "view"
22406
+ },
22407
+ "deviceProvider.getManualCreationType": {
22408
+ capName: "device-provider",
22409
+ capScope: "system",
22410
+ addonId: null,
22411
+ access: "view"
22412
+ },
22287
22413
  "deviceProvider.getStatus": {
22288
22414
  capName: "device-provider",
22289
22415
  capScope: "system",
@@ -1,20 +1,20 @@
1
- import type { ISettingsBackend, IEmbeddingsBackend } from './storage.js';
2
- import type { ILogDestination } from './logging.js';
3
- import type { IAddonPageProvider } from './addon.js';
4
1
  import type { IAuthProvider } from '../capabilities/auth-provider.cap.js';
5
- import type { IAddonRouteProvider } from './addon-routes.js';
6
- import type { IRestreamer } from './restreamer.js';
7
- import type { IWebRtcProvider } from './webrtc-provider.js';
8
- import type { streamBrokerCapability } from '../capabilities/stream-broker.cap.js';
9
2
  import type { InferProvider } from '../capabilities/capability-definition.js';
10
3
  import type { ISnapshotOrchestrator } from '../capabilities/snapshot.cap.js';
11
- import type { IStreamingEngine } from './streaming.js';
4
+ import type { streamBrokerCapability } from '../capabilities/stream-broker.cap.js';
5
+ import type { CollectionCapabilityName, SingletonCapabilityName } from '../generated/capability-router-map.js';
6
+ import type { StepDefinition } from '../types/pipeline-step.js';
7
+ import type { IAddonPageProvider } from './addon.js';
8
+ import type { IAddonRouteProvider } from './addon-routes.js';
9
+ import type { IDecoderProvider } from './decoder.js';
10
+ import type { ILogDestination } from './logging.js';
12
11
  import type { IPipelineExecutorProvider } from './pipeline-executor-capability.js';
13
12
  import type { IPipelineOrchestratorProvider } from './pipeline-orchestrator-capability.js';
14
13
  import type { IPipelineRunnerProvider } from './pipeline-runner-capability.js';
15
- import type { IDecoderProvider } from './decoder.js';
16
- import type { StepDefinition } from '../types/pipeline-step.js';
17
- import type { SingletonCapabilityName, CollectionCapabilityName } from '../generated/capability-router-map.js';
14
+ import type { IRestreamer } from './restreamer.js';
15
+ import type { IEmbeddingsBackend, ISettingsBackend } from './storage.js';
16
+ import type { IStreamingEngine } from './streaming.js';
17
+ import type { IWebRtcProvider } from './webrtc-provider.js';
18
18
  /**
19
19
  * Pipeline step capability — each step is a separate capability
20
20
  * named `pipeline-step:{stepId}` (e.g., `pipeline-step:object-detection`).
@@ -20,8 +20,8 @@ export declare const taskPhaseSchema: z.ZodEnum<{
20
20
  }>;
21
21
  export type TaskPhase = z.infer<typeof taskPhaseSchema>;
22
22
  export declare const taskTargetSchema: z.ZodEnum<{
23
- addon: "addon";
24
23
  framework: "framework";
24
+ addon: "addon";
25
25
  }>;
26
26
  export type TaskTarget = z.infer<typeof taskTargetSchema>;
27
27
  export declare const taskLogEntrySchema: z.ZodObject<{
@@ -50,8 +50,8 @@ export declare const lifecycleTaskSchema: z.ZodObject<{
50
50
  fromVersion: z.ZodNullable<z.ZodString>;
51
51
  toVersion: z.ZodString;
52
52
  target: z.ZodEnum<{
53
- addon: "addon";
54
53
  framework: "framework";
54
+ addon: "addon";
55
55
  }>;
56
56
  phase: z.ZodEnum<{
57
57
  failed: "failed";
@@ -126,8 +126,8 @@ export declare const lifecycleJobSchema: z.ZodObject<{
126
126
  fromVersion: z.ZodNullable<z.ZodString>;
127
127
  toVersion: z.ZodString;
128
128
  target: z.ZodEnum<{
129
- addon: "addon";
130
129
  framework: "framework";
130
+ addon: "addon";
131
131
  }>;
132
132
  phase: z.ZodEnum<{
133
133
  failed: "failed";
@@ -2162,6 +2162,12 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
2162
2162
  DeviceType["Switch"] = "switch";
2163
2163
  DeviceType["Sensor"] = "sensor";
2164
2164
  DeviceType["Thermostat"] = "thermostat";
2165
+ /** Air-conditioner / heat-pump climate device (HVAC) — shares the
2166
+ * `climate-control` cap surface with `Thermostat` but renders a
2167
+ * dedicated AC-appropriate control UI (mode chips, fan speed,
2168
+ * independent vertical/horizontal swing). Sources: native Gree, and
2169
+ * reusable by other AC integrations. */
2170
+ DeviceType["Climate"] = "climate";
2165
2171
  DeviceType["Button"] = "button";
2166
2172
  /** Generic stateless event emitter — carries a device's EXACT declared
2167
2173
  * event vocabulary verbatim (no normalization). Installed with the
@@ -2162,6 +2162,12 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
2162
2162
  DeviceType["Switch"] = "switch";
2163
2163
  DeviceType["Sensor"] = "sensor";
2164
2164
  DeviceType["Thermostat"] = "thermostat";
2165
+ /** Air-conditioner / heat-pump climate device (HVAC) — shares the
2166
+ * `climate-control` cap surface with `Thermostat` but renders a
2167
+ * dedicated AC-appropriate control UI (mode chips, fan speed,
2168
+ * independent vertical/horizontal swing). Sources: native Gree, and
2169
+ * reusable by other AC integrations. */
2170
+ DeviceType["Climate"] = "climate";
2165
2171
  DeviceType["Button"] = "button";
2166
2172
  /** Generic stateless event emitter — carries a device's EXACT declared
2167
2173
  * event vocabulary verbatim (no normalization). Installed with the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.1.11",
3
+ "version": "1.1.12",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",