camstack 1.1.9 → 1.1.11

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.
@@ -14522,7 +14522,7 @@ function date4(params) {
14522
14522
  // ../../node_modules/zod/v4/classic/external.js
14523
14523
  config(en_default());
14524
14524
 
14525
- // ../types/dist/sleep-B3AOslwX.mjs
14525
+ // ../types/dist/sleep-C2M2zF7x.mjs
14526
14526
  var WELL_KNOWN_TABS = [
14527
14527
  {
14528
14528
  id: "overview",
@@ -14935,6 +14935,7 @@ var DeviceType = /* @__PURE__ */ (function(DeviceType2) {
14935
14935
  DeviceType2["Switch"] = "switch";
14936
14936
  DeviceType2["Sensor"] = "sensor";
14937
14937
  DeviceType2["Thermostat"] = "thermostat";
14938
+ DeviceType2["Climate"] = "climate";
14938
14939
  DeviceType2["Button"] = "button";
14939
14940
  DeviceType2["EventEmitter"] = "event-emitter";
14940
14941
  DeviceType2["Update"] = "update";
@@ -17161,7 +17162,7 @@ var climateControlCapability = {
17161
17162
  scope: "device",
17162
17163
  deviceNative: true,
17163
17164
  mode: "singleton",
17164
- deviceTypes: [DeviceType.Thermostat],
17165
+ deviceTypes: [DeviceType.Thermostat, DeviceType.Climate],
17165
17166
  methods: {
17166
17167
  setMode: method(external_exports.object({
17167
17168
  deviceId: external_exports.number().int().nonnegative(),
@@ -20610,10 +20611,30 @@ var deviceProviderCapability = {
20610
20611
  type: external_exports.string()
20611
20612
  }))),
20612
20613
  supportsDiscovery: method(external_exports.object({}), external_exports.boolean()),
20613
- discoverDevices: method(external_exports.object({}), external_exports.array(DiscoveryCandidateSchema), {
20614
+ /**
20615
+ * Run a network scan. `params` carries optional provider-specific scan
20616
+ * inputs (e.g. a broadcast address / subnet for cross-subnet discovery),
20617
+ * shaped by `getDiscoveryParamsSchema`. Omitted for the generic scan
20618
+ * (provider uses its local-network default).
20619
+ */
20620
+ discoverDevices: method(external_exports.object({ params: external_exports.record(external_exports.string(), external_exports.unknown()).optional() }), external_exports.array(DiscoveryCandidateSchema), {
20614
20621
  kind: "mutation",
20615
20622
  auth: "admin"
20616
20623
  }),
20624
+ /**
20625
+ * Optional form schema (`ConfigUISchema`) for the EXTRA per-scan inputs a
20626
+ * provider accepts (e.g. Gree's broadcast address for a different subnet).
20627
+ * `null` when the provider takes no extra scan params — the generic
20628
+ * aggregated scan never renders this; the per-integration scan does.
20629
+ */
20630
+ getDiscoveryParamsSchema: method(external_exports.object({}), CreationSchemaOutputSchema),
20631
+ /**
20632
+ * The DeviceType this provider creates via manual add (Camera for
20633
+ * Reolink/ONVIF, Container for Gree, Hub for Ecowitt). `null` when the
20634
+ * provider does not support manual creation. Lets the Add-Device dialog
20635
+ * pick the right type instead of assuming Camera.
20636
+ */
20637
+ getManualCreationType: method(external_exports.object({}), external_exports.object({ deviceType: external_exports.enum(DeviceType).nullable() })),
20617
20638
  adoptDiscoveredDevice: method(external_exports.object({ candidate: DiscoveryCandidateSchema }), DeviceSummarySchema, {
20618
20639
  kind: "mutation",
20619
20640
  auth: "admin"
@@ -22614,6 +22635,12 @@ var deviceManagerCapability = {
22614
22635
  kind: "mutation",
22615
22636
  auth: "admin"
22616
22637
  }),
22638
+ /** List candidate filter chips for an integration via its device-adoption
22639
+ * provider — addonId-routed so it never hits the singleton shadow. */
22640
+ adoptionListCandidateFilters: method(external_exports.object({
22641
+ addonId: external_exports.string(),
22642
+ integrationId: external_exports.string()
22643
+ }), external_exports.object({ filters: external_exports.array(AdoptionFilterSchema) }), { auth: "admin" }),
22617
22644
  /** List adoption candidates for an integration via its device-adoption provider. */
22618
22645
  adoptionListCandidates: method(ListCandidatesInputSchema.extend({ addonId: external_exports.string() }), ListCandidatesOutputSchema, { auth: "admin" }),
22619
22646
  /** Trigger a discovery refresh on the integration's device-adoption provider. */
@@ -22644,6 +22671,36 @@ var deviceManagerCapability = {
22644
22671
  kind: "mutation",
22645
22672
  auth: "admin"
22646
22673
  }),
22674
+ /** Addons whose device-provider reports `supportsDiscovery` (for the modal). */
22675
+ discoveryProviders: method(external_exports.object({}), external_exports.object({ providers: external_exports.array(external_exports.object({
22676
+ addonId: external_exports.string(),
22677
+ label: external_exports.string()
22678
+ })).readonly() }), { auth: "admin" }),
22679
+ /** Scan EVERY discovery-capable provider; returns candidates grouped by addon. */
22680
+ discoverAllProviders: method(external_exports.object({}), external_exports.object({ groups: external_exports.array(external_exports.object({
22681
+ addonId: external_exports.string(),
22682
+ label: external_exports.string(),
22683
+ candidates: external_exports.array(DiscoveryCandidateSchema).readonly(),
22684
+ error: external_exports.string().nullable()
22685
+ })).readonly() }), {
22686
+ kind: "mutation",
22687
+ auth: "admin"
22688
+ }),
22689
+ /** Scan ONE provider with optional provider-specific params (subnet /
22690
+ * broadcast addr) — the per-integration "Scan network" surface. */
22691
+ discoverProvider: method(external_exports.object({
22692
+ addonId: external_exports.string(),
22693
+ params: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
22694
+ }), external_exports.object({ candidates: external_exports.array(DiscoveryCandidateSchema).readonly() }), {
22695
+ kind: "mutation",
22696
+ auth: "admin"
22697
+ }),
22698
+ /** The device type a provider creates via manual add (Camera/Container/Hub),
22699
+ * so the Add-Device dialog uses the right type instead of assuming Camera. */
22700
+ providerCreationType: method(external_exports.object({ addonId: external_exports.string() }), external_exports.object({ deviceType: external_exports.enum(DeviceType).nullable() }), { auth: "admin" }),
22701
+ /** A provider's extra per-scan param form (ConfigUISchema) for the
22702
+ * per-integration scan, or null when it takes none. */
22703
+ providerDiscoveryParamsSchema: method(external_exports.object({ addonId: external_exports.string() }), external_exports.unknown(), { auth: "admin" }),
22647
22704
  /**
22648
22705
  * Test a field value on an existing device (e.g. probe an RTSP URL).
22649
22706
  * Routes through the device-provider for the owning addon.
@@ -25918,6 +25975,17 @@ var AvailableIntegrationTypeSchema = external_exports.object({
25918
25975
  iconUrl: external_exports.string().nullable(),
25919
25976
  color: external_exports.string(),
25920
25977
  instanceMode: external_exports.string(),
25978
+ /**
25979
+ * Integration wizard `mode` (LOCKED MODEL): `standalone` (create
25980
+ * immediately then add devices, no config step/button), `account` (config
25981
+ * step), or `broker` (broker step). Derived server-side by
25982
+ * `getAvailableTypes` when the addon manifest omits an explicit `mode`.
25983
+ */
25984
+ mode: external_exports.enum([
25985
+ "standalone",
25986
+ "account",
25987
+ "broker"
25988
+ ]),
25921
25989
  discoveryMode: external_exports.string(),
25922
25990
  /**
25923
25991
  * Which integration-marker cap the addon declared, so the wizard can
@@ -28656,6 +28724,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
28656
28724
  addonId: null,
28657
28725
  access: "create"
28658
28726
  },
28727
+ "deviceManager.adoptionListCandidateFilters": {
28728
+ capName: "device-manager",
28729
+ capScope: "system",
28730
+ addonId: null,
28731
+ access: "view"
28732
+ },
28659
28733
  "deviceManager.adoptionListCandidates": {
28660
28734
  capName: "device-manager",
28661
28735
  capScope: "system",
@@ -28704,12 +28778,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
28704
28778
  addonId: null,
28705
28779
  access: "create"
28706
28780
  },
28781
+ "deviceManager.discoverAllProviders": {
28782
+ capName: "device-manager",
28783
+ capScope: "system",
28784
+ addonId: null,
28785
+ access: "create"
28786
+ },
28707
28787
  "deviceManager.discoverDevices": {
28708
28788
  capName: "device-manager",
28709
28789
  capScope: "system",
28710
28790
  addonId: null,
28711
28791
  access: "create"
28712
28792
  },
28793
+ "deviceManager.discoverProvider": {
28794
+ capName: "device-manager",
28795
+ capScope: "system",
28796
+ addonId: null,
28797
+ access: "create"
28798
+ },
28799
+ "deviceManager.discoveryProviders": {
28800
+ capName: "device-manager",
28801
+ capScope: "system",
28802
+ addonId: null,
28803
+ access: "view"
28804
+ },
28713
28805
  "deviceManager.enable": {
28714
28806
  capName: "device-manager",
28715
28807
  capScope: "system",
@@ -28860,6 +28952,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
28860
28952
  addonId: null,
28861
28953
  access: "create"
28862
28954
  },
28955
+ "deviceManager.providerCreationType": {
28956
+ capName: "device-manager",
28957
+ capScope: "system",
28958
+ addonId: null,
28959
+ access: "view"
28960
+ },
28961
+ "deviceManager.providerDiscoveryParamsSchema": {
28962
+ capName: "device-manager",
28963
+ capScope: "system",
28964
+ addonId: null,
28965
+ access: "view"
28966
+ },
28863
28967
  "deviceManager.registerDevice": {
28864
28968
  capName: "device-manager",
28865
28969
  capScope: "system",
@@ -29076,6 +29180,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
29076
29180
  addonId: null,
29077
29181
  access: "view"
29078
29182
  },
29183
+ "deviceProvider.getDiscoveryParamsSchema": {
29184
+ capName: "device-provider",
29185
+ capScope: "system",
29186
+ addonId: null,
29187
+ access: "view"
29188
+ },
29189
+ "deviceProvider.getManualCreationType": {
29190
+ capName: "device-provider",
29191
+ capScope: "system",
29192
+ addonId: null,
29193
+ access: "view"
29194
+ },
29079
29195
  "deviceProvider.getStatus": {
29080
29196
  capName: "device-provider",
29081
29197
  capScope: "system",
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runDiscover
4
- } from "./chunk-J27EZDJZ.js";
4
+ } from "./chunk-L5X2DQAP.js";
5
5
  import "./chunk-K3NQKI34.js";
6
6
 
7
7
  // src/cli.ts
@@ -608,7 +608,7 @@ function isUnknown(_value) {
608
608
  return true;
609
609
  }
610
610
  async function resolveServerInteractive(presetNamespace) {
611
- const { discoverNodes, resolveHubFromDiscovered } = await import("./discover-ADPVJS53.js");
611
+ const { discoverNodes, resolveHubFromDiscovered } = await import("./discover-ENH5WDYE.js");
612
612
  if (presetNamespace) {
613
613
  const spinner4 = clack.spinner();
614
614
  spinner4.start(`Discovering hub on LAN (namespace "${presetNamespace}")`);
@@ -3,7 +3,7 @@ import {
3
3
  discoverNodes,
4
4
  resolveHubFromDiscovered,
5
5
  runDiscover
6
- } from "./chunk-J27EZDJZ.js";
6
+ } from "./chunk-L5X2DQAP.js";
7
7
  import "./chunk-K3NQKI34.js";
8
8
  export {
9
9
  discoverNodes,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "camstack",
3
- "version": "1.1.9",
3
+ "version": "1.1.11",
4
4
  "description": "CLI tool for managing and running CamStack server",
5
5
  "keywords": [
6
6
  "camstack",