@camstack/types 1.1.10 → 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/addon.js +1 -1
- package/dist/addon.mjs +1 -1
- package/dist/capabilities/addons.cap.d.ts +3 -3
- package/dist/capabilities/climate-control.cap.d.ts +9 -9
- package/dist/capabilities/control.cap.d.ts +4 -4
- package/dist/capabilities/device-manager.cap.d.ts +70 -0
- package/dist/capabilities/device-provider.cap.d.ts +27 -3
- package/dist/capabilities/integrations.cap.d.ts +10 -0
- package/dist/capabilities/local-network.cap.d.ts +1 -1
- package/dist/capabilities/media-player.cap.d.ts +4 -4
- package/dist/capabilities/mesh-network.cap.d.ts +3 -3
- package/dist/capabilities/network-access.cap.d.ts +7 -7
- package/dist/capabilities/stream-broker.cap.d.ts +5 -5
- package/dist/capabilities/toast.cap.d.ts +2 -2
- package/dist/capabilities/webrtc-session.cap.d.ts +2 -2
- package/dist/device/base-device-provider.d.ts +17 -5
- package/dist/device/device-type.d.ts +6 -0
- package/dist/generated/addon-api.d.ts +222 -2
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/system-proxy.d.ts +2 -2
- package/dist/index.js +142 -5
- package/dist/index.mjs +142 -5
- package/dist/interfaces/addon.d.ts +16 -0
- package/dist/interfaces/api-responses.d.ts +7 -0
- package/dist/interfaces/capability.d.ts +11 -11
- package/dist/lifecycle/job.d.ts +3 -3
- package/dist/{sleep-CKc4LLbD.js → sleep-BQzZ7joF.js} +6 -0
- package/dist/{sleep-B3AOslwX.mjs → sleep-C2M2zF7x.mjs} +6 -0
- package/package.json +1 -1
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-
|
|
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
|
-
|
|
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.
|
|
@@ -17659,6 +17737,17 @@ var AvailableIntegrationTypeSchema = z.object({
|
|
|
17659
17737
|
iconUrl: z.string().nullable(),
|
|
17660
17738
|
color: z.string(),
|
|
17661
17739
|
instanceMode: z.string(),
|
|
17740
|
+
/**
|
|
17741
|
+
* Integration wizard `mode` (LOCKED MODEL): `standalone` (create
|
|
17742
|
+
* immediately then add devices, no config step/button), `account` (config
|
|
17743
|
+
* step), or `broker` (broker step). Derived server-side by
|
|
17744
|
+
* `getAvailableTypes` when the addon manifest omits an explicit `mode`.
|
|
17745
|
+
*/
|
|
17746
|
+
mode: z.enum([
|
|
17747
|
+
"standalone",
|
|
17748
|
+
"account",
|
|
17749
|
+
"broker"
|
|
17750
|
+
]),
|
|
17662
17751
|
discoveryMode: z.string(),
|
|
17663
17752
|
/**
|
|
17664
17753
|
* Which integration-marker cap the addon declared, so the wizard can
|
|
@@ -21853,6 +21942,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
21853
21942
|
addonId: null,
|
|
21854
21943
|
access: "create"
|
|
21855
21944
|
},
|
|
21945
|
+
"deviceManager.adoptionListCandidateFilters": {
|
|
21946
|
+
capName: "device-manager",
|
|
21947
|
+
capScope: "system",
|
|
21948
|
+
addonId: null,
|
|
21949
|
+
access: "view"
|
|
21950
|
+
},
|
|
21856
21951
|
"deviceManager.adoptionListCandidates": {
|
|
21857
21952
|
capName: "device-manager",
|
|
21858
21953
|
capScope: "system",
|
|
@@ -21901,12 +21996,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
21901
21996
|
addonId: null,
|
|
21902
21997
|
access: "create"
|
|
21903
21998
|
},
|
|
21999
|
+
"deviceManager.discoverAllProviders": {
|
|
22000
|
+
capName: "device-manager",
|
|
22001
|
+
capScope: "system",
|
|
22002
|
+
addonId: null,
|
|
22003
|
+
access: "create"
|
|
22004
|
+
},
|
|
21904
22005
|
"deviceManager.discoverDevices": {
|
|
21905
22006
|
capName: "device-manager",
|
|
21906
22007
|
capScope: "system",
|
|
21907
22008
|
addonId: null,
|
|
21908
22009
|
access: "create"
|
|
21909
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
|
+
},
|
|
21910
22023
|
"deviceManager.enable": {
|
|
21911
22024
|
capName: "device-manager",
|
|
21912
22025
|
capScope: "system",
|
|
@@ -22057,6 +22170,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
22057
22170
|
addonId: null,
|
|
22058
22171
|
access: "create"
|
|
22059
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
|
+
},
|
|
22060
22185
|
"deviceManager.registerDevice": {
|
|
22061
22186
|
capName: "device-manager",
|
|
22062
22187
|
capScope: "system",
|
|
@@ -22273,6 +22398,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
22273
22398
|
addonId: null,
|
|
22274
22399
|
access: "view"
|
|
22275
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
|
+
},
|
|
22276
22413
|
"deviceProvider.getStatus": {
|
|
22277
22414
|
capName: "device-provider",
|
|
22278
22415
|
capScope: "system",
|
|
@@ -809,6 +809,22 @@ export interface AddonDeclaration {
|
|
|
809
809
|
readonly slot?: PipelineSlot | null;
|
|
810
810
|
/** Instance mode: 'unique' or 'multiple'. Default: 'multiple' */
|
|
811
811
|
readonly instanceMode?: 'unique' | 'multiple';
|
|
812
|
+
/**
|
|
813
|
+
* Integration `mode` — how the Add-Integration wizard behaves for this
|
|
814
|
+
* addon (LOCKED MODEL, supersedes `instanceMode` for wizard routing):
|
|
815
|
+
* - `'standalone'` — NO integration-level config; picking creates the
|
|
816
|
+
* integration immediately (empty settings) and goes straight to
|
|
817
|
+
* adding/discovering the first device. No config step, no config
|
|
818
|
+
* button on the detail page. (Reolink/ONVIF/Ecowitt/Gree.)
|
|
819
|
+
* - `'account'` — account/connection config; wizard shows the config
|
|
820
|
+
* step, then `integrations.create` with those settings.
|
|
821
|
+
* (Dreo/Wyze/Dreame.)
|
|
822
|
+
* - `'broker'` — the shared-bus/session broker step. (HomeAssistant/MQTT.)
|
|
823
|
+
* Optional/transitional: when absent, `getAvailableTypes` DERIVES the mode
|
|
824
|
+
* (broker cap + brokerKind → broker; device-adoption → account; else →
|
|
825
|
+
* standalone). `instanceMode` is kept for now.
|
|
826
|
+
*/
|
|
827
|
+
readonly mode?: 'standalone' | 'account' | 'broker';
|
|
812
828
|
/**
|
|
813
829
|
* For `device-adoption` integration addons (Approach A): the broker
|
|
814
830
|
* kind the integration wizard must create or link (e.g.
|
|
@@ -97,6 +97,13 @@ export interface IntegrationTypeInfo {
|
|
|
97
97
|
readonly iconUrl: string | null;
|
|
98
98
|
readonly color: string;
|
|
99
99
|
readonly instanceMode: 'unique' | 'multiple';
|
|
100
|
+
/**
|
|
101
|
+
* Integration wizard `mode` — how the Add-Integration flow behaves:
|
|
102
|
+
* `'standalone'` (create immediately → add devices, no config),
|
|
103
|
+
* `'account'` (config step), or `'broker'` (broker step). Derived by
|
|
104
|
+
* `getAvailableTypes` when the manifest omits an explicit `mode`.
|
|
105
|
+
*/
|
|
106
|
+
readonly mode: 'standalone' | 'account' | 'broker';
|
|
100
107
|
readonly discoveryMode: string;
|
|
101
108
|
readonly existingInstances: ReadonlyArray<{
|
|
102
109
|
readonly id: string;
|
|
@@ -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 {
|
|
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 {
|
|
16
|
-
import type {
|
|
17
|
-
import type {
|
|
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`).
|
package/dist/lifecycle/job.d.ts
CHANGED
|
@@ -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
|