@camstack/types 1.2.450 → 1.2.451

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/CHANGELOG.md CHANGED
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.2.451] - 2026-10-30
11
+
12
+ ### Changed
13
+
14
+ - New Gateway device type for the physical bridge box of an integration (reboot and admin link allowed on it)
15
+ - Broker kinds can advertise several sign-in methods (signIn.methods: device-code, proxy)
16
+
10
17
  ## [1.2.450] - 2026-10-30
11
18
 
12
19
  ### Changed
package/dist/addon.js CHANGED
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_sleep = require("./sleep-BSPhInRm.js");
3
3
  const require_event_category = require("./event-category-E17zaHjN.js");
4
- const require_err_msg = require("./err-msg-EJhsFHqa.js");
4
+ const require_err_msg = require("./err-msg-DkPZXb-g.js");
5
5
  //#region src/generated/cap-input-defaults.ts
6
6
  /**
7
7
  * AUTO-GENERATED by scripts/generate-cap-input-defaults.ts — DO NOT EDIT.
package/dist/addon.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { $n as RECORD_SECRET_COLLECTION_PREFIX, $r as SECRET_CLEAR, $t as entryBody, A as HF_REPO, An as RECORDS_ERROR_CODES, B as DEVICE_CHILDREN_BATCH_MAX, Bn as asRecordsError, C as addonSliceHandleApi, Cn as BatchTooLargeError, Dn as InvalidRecordError, En as ForeignSecretMarkerError, Fn as RecordsError, Fr as formatSecretScope, G as describeCustomActions, Gn as RECORD_DATABASES, H as withoutCallerStamp, Hn as RECORD_BATCH_MAX, Hr as createEvent, I as deviceOpsCapability, In as RevConflictError, Ir as globalSecretScope, Jn as RECORD_ID_MAX_LENGTH, Kn as RECORD_DEFAULT_MAX_DATA_BYTES, L as viewerUiCapability, Ln as TransactRefusedError, Lr as isSecretRef, M as CAP_ADVANCE_FIELDS, Mn as RecordSecretUnavailableError, Mr as SECRET_REF_SCHEME, Nn as RecordTooLargeError, Nr as arrayItemFieldPath, On as NoCallerError, P as CAP_STATE_LEAVES, Pn as RecordUniqueViolationError, Pr as buildSecretRef, Q as readNodePin, Qn as RECORD_QUERY_MAX, Qt as defineEntryKind, R as PipelineRunResultBridge, Rn as UnindexedFilterError, Rr as normalizeSecretOwner, Sn as isZodSecret, Sr as normalizeAddonInitResult, Tn as FilterRequiredError, U as customAction, Un as RECORD_BATCH_MAX_BYTES, Ur as emitReadiness, V as CALLER_STAMPED_CAPABILITIES, Vn as recordsErrorFromMessage, W as defineCustomActions, Wn as RECORD_CLASSES, Xn as RECORD_MAX_INDEXES, Y as addonPagesSourceCapability, Yn as RECORD_MAX_DATA_BYTES, Z as nodePin, Zn as RECORD_MAX_INDEX_FIELDS, Zt as makeInMemoryRecords, _ as readErrorI18n, _n as recordSecretCollection, _r as DATAPLANE_SECRET_HEADER, ai as makeSecretMarker, an as RecordKindDeclarationSchema, ar as MIN_SCRUBBED_LENGTH, b as isDeviceScopedCap, br as BaseAddon, c as asString, cn as StoredRecordKindDeclarationSchema, cr as knownSecretCount, d as parseJsonUnknown, dn as defineRecordKinds, dr as shortSecretRefHash, ei as classifySecretWrite, en as createRecordsAccess, er as RECORD_SETTINGS_MAX_ROWS, f as hfModelUrl, fn as REMOVE_LEAF, fr as PEER_BYTES_CHUNK_BYTES, g as ErrorI18nPayloadSchema, gn as recordArrayItemPath, gt as ReadinessTimeoutError, hn as parseSecretPath, hr as PEER_BYTES_TICKET_TTL_MS, ht as ReadinessRegistry, ii as isSecretMarkerLike, in as RecordIndexSchema, ir as createSecretsAccess, jn as RecordNotFoundError, kn as PlaintextSecretError, ln as assertValidDeclaration, lr as registerKnownSecret, mn as mapSecretLeaves, mr as PEER_BYTES_STALL_MS, mt as MODEL_FORMATS, ni as isSecretFieldView, nn as EntryDescriptorSchema, nr as resolveSecretViewsIn, o as asJsonObject, oi as toSecretFieldView, on as RecordKindNameSchema, or as clearKnownSecrets, p as BOOT_RECOVERY_BACKOFF_MS, pn as collectSecretLeaves, pr as PEER_BYTES_MAX_OUTSTANDING, q as adminUiCapability, qn as RECORD_DELETE_BATCH, r as maskUrlCredentials, ri as isSecretMarker, rn as RecordFieldPathSchema, rr as REVALIDATE_AFTER_MS, sn as RecordRetentionSchema, sr as forgetKnownSecret, st as expandCapMethods, t as sleep, ti as isSecretClear, tn as assertTransactScope, tr as RECORD_SWEEP_INTERVAL_MS, un as declarationsOf, ur as scrubKnownSecrets, vn as recordSecretRef, w as createEventBusSliceSource, wn as DeclarationRefusedError, x as createDeviceProxy, xn as collectZodSecretPaths, y as DEVICE_SCOPED_CAPS, yn as secretArrayPrefixes, yr as DisposerChain, yt as scopeKey, z as PipelineStepInputSchema, zn as UnknownRecordKindError, zr as parseSecretRef } from "./sleep-63gM_1JR.mjs";
2
2
  import { t as EventCategory } from "./event-category-DmZDPDf_.mjs";
3
- import { a as DeviceType, t as errMsg } from "./err-msg-DWXWc0Di.mjs";
3
+ import { a as DeviceType, t as errMsg } from "./err-msg-BD5buxvT.mjs";
4
4
  //#region src/generated/cap-input-defaults.ts
5
5
  /**
6
6
  * AUTO-GENERATED by scripts/generate-cap-input-defaults.ts — DO NOT EDIT.
@@ -94,6 +94,10 @@ declare const BrokerProviderInfoSchema: z.ZodObject<{
94
94
  interactiveDisconnectPath: z.ZodOptional<z.ZodString>;
95
95
  signIn: z.ZodOptional<z.ZodObject<{
96
96
  basePath: z.ZodString;
97
+ methods: z.ZodOptional<z.ZodArray<z.ZodEnum<{
98
+ "device-code": "device-code";
99
+ proxy: "proxy";
100
+ }>>>;
97
101
  }, z.core.$strip>>;
98
102
  }, z.core.$strip>>;
99
103
  }, z.core.$strip>;
@@ -209,6 +213,10 @@ export declare const brokerCapability: {
209
213
  interactiveDisconnectPath: z.ZodOptional<z.ZodString>;
210
214
  signIn: z.ZodOptional<z.ZodObject<{
211
215
  basePath: z.ZodString;
216
+ methods: z.ZodOptional<z.ZodArray<z.ZodEnum<{
217
+ "device-code": "device-code";
218
+ proxy: "proxy";
219
+ }>>>;
212
220
  }, z.core.$strip>>;
213
221
  }, z.core.$strip>>;
214
222
  }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
@@ -20,7 +20,7 @@ export declare const rebootCapability: {
20
20
  readonly scope: 'device';
21
21
  readonly deviceNative: true;
22
22
  readonly mode: 'singleton';
23
- readonly deviceTypes: readonly [DeviceType.Camera, DeviceType.Sensor, DeviceType.Switch];
23
+ readonly deviceTypes: readonly [DeviceType.Camera, DeviceType.Sensor, DeviceType.Switch, DeviceType.Gateway];
24
24
  readonly methods: {
25
25
  readonly reboot: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
26
26
  deviceId: z.ZodNumber;
package/dist/client.js CHANGED
@@ -711,6 +711,12 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
711
711
  DeviceType["Washer"] = "washer";
712
712
  /** Tumble dryer. Same plug-built running surface as {@link Washer}. */
713
713
  DeviceType["Dryer"] = "dryer";
714
+ /** The physical bridge box of a vendor ecosystem (Velux KLF-200, and later
715
+ * other radio-to-IP bridges). It carries the box's own facts (firmware,
716
+ * address, connection state) and the actions the box really supports
717
+ * (`reboot`, `device-admin-link`). Products are NOT its children — they are
718
+ * adopted beside it — and its connection settings stay on the integration. */
719
+ DeviceType["Gateway"] = "gateway";
714
720
  return DeviceType;
715
721
  }({});
716
722
  zod.z.enum(["new-session", "step-up"]);
@@ -28923,6 +28929,13 @@ function createSystemProxy(api) {
28923
28929
  assignPlates: (input) => dispatch("plateGallery", "assignPlates", "mutation", input),
28924
28930
  unassignPlates: (input) => dispatch("plateGallery", "unassignPlates", "mutation", input)
28925
28931
  },
28932
+ platformProbe: {
28933
+ getCapabilities: (input) => dispatch("platformProbe", "getCapabilities", "query", input),
28934
+ getHardware: (input) => dispatch("platformProbe", "getHardware", "query", input),
28935
+ resolveInferenceConfig: (input) => dispatch("platformProbe", "resolveInferenceConfig", "query", input),
28936
+ resolveHwAccel: (input) => dispatch("platformProbe", "resolveHwAccel", "query", input),
28937
+ rescanAccelerators: (input) => dispatch("platformProbe", "rescanAccelerators", "mutation", input)
28938
+ },
28926
28939
  recordEntries: {
28927
28940
  listEntryKinds: (input) => dispatch("recordEntries", "listEntryKinds", "query", input),
28928
28941
  listEntries: (input) => dispatch("recordEntries", "listEntries", "query", input),
package/dist/client.mjs CHANGED
@@ -710,6 +710,12 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
710
710
  DeviceType["Washer"] = "washer";
711
711
  /** Tumble dryer. Same plug-built running surface as {@link Washer}. */
712
712
  DeviceType["Dryer"] = "dryer";
713
+ /** The physical bridge box of a vendor ecosystem (Velux KLF-200, and later
714
+ * other radio-to-IP bridges). It carries the box's own facts (firmware,
715
+ * address, connection state) and the actions the box really supports
716
+ * (`reboot`, `device-admin-link`). Products are NOT its children — they are
717
+ * adopted beside it — and its connection settings stay on the integration. */
718
+ DeviceType["Gateway"] = "gateway";
713
719
  return DeviceType;
714
720
  }({});
715
721
  z.enum(["new-session", "step-up"]);
@@ -28922,6 +28928,13 @@ function createSystemProxy(api) {
28922
28928
  assignPlates: (input) => dispatch("plateGallery", "assignPlates", "mutation", input),
28923
28929
  unassignPlates: (input) => dispatch("plateGallery", "unassignPlates", "mutation", input)
28924
28930
  },
28931
+ platformProbe: {
28932
+ getCapabilities: (input) => dispatch("platformProbe", "getCapabilities", "query", input),
28933
+ getHardware: (input) => dispatch("platformProbe", "getHardware", "query", input),
28934
+ resolveInferenceConfig: (input) => dispatch("platformProbe", "resolveInferenceConfig", "query", input),
28935
+ resolveHwAccel: (input) => dispatch("platformProbe", "resolveHwAccel", "query", input),
28936
+ rescanAccelerators: (input) => dispatch("platformProbe", "rescanAccelerators", "mutation", input)
28937
+ },
28925
28938
  recordEntries: {
28926
28939
  listEntryKinds: (input) => dispatch("recordEntries", "listEntryKinds", "query", input),
28927
28940
  listEntries: (input) => dispatch("recordEntries", "listEntries", "query", input),
@@ -1,4 +1,4 @@
1
- import { a as DeviceType, i as DeviceRole } from "./err-msg-DWXWc0Di.mjs";
1
+ import { a as DeviceType, i as DeviceRole } from "./err-msg-BD5buxvT.mjs";
2
2
  import { z } from "zod";
3
3
  import { createHash } from "node:crypto";
4
4
  //#region src/ffmpeg/invocation.ts
@@ -1,4 +1,4 @@
1
- const require_err_msg = require("./err-msg-EJhsFHqa.js");
1
+ const require_err_msg = require("./err-msg-DkPZXb-g.js");
2
2
  let zod = require("zod");
3
3
  let node_crypto = require("node:crypto");
4
4
  //#region src/ffmpeg/invocation.ts
@@ -102,7 +102,13 @@ export declare enum DeviceType {
102
102
  * above a threshold. No program cap — that surface is the dishwasher's. */
103
103
  Washer = "washer",
104
104
  /** Tumble dryer. Same plug-built running surface as {@link Washer}. */
105
- Dryer = "dryer"
105
+ Dryer = "dryer",
106
+ /** The physical bridge box of a vendor ecosystem (Velux KLF-200, and later
107
+ * other radio-to-IP bridges). It carries the box's own facts (firmware,
108
+ * address, connection state) and the actions the box really supports
109
+ * (`reboot`, `device-admin-link`). Products are NOT its children — they are
110
+ * adopted beside it — and its connection settings stay on the integration. */
111
+ Gateway = "gateway"
106
112
  }
107
113
  export declare enum DeviceFeature {
108
114
  BatteryOperated = "battery-operated",
@@ -104,6 +104,12 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
104
104
  DeviceType["Washer"] = "washer";
105
105
  /** Tumble dryer. Same plug-built running surface as {@link Washer}. */
106
106
  DeviceType["Dryer"] = "dryer";
107
+ /** The physical bridge box of a vendor ecosystem (Velux KLF-200, and later
108
+ * other radio-to-IP bridges). It carries the box's own facts (firmware,
109
+ * address, connection state) and the actions the box really supports
110
+ * (`reboot`, `device-admin-link`). Products are NOT its children — they are
111
+ * adopted beside it — and its connection settings stay on the integration. */
112
+ DeviceType["Gateway"] = "gateway";
107
113
  return DeviceType;
108
114
  }({});
109
115
  var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
@@ -104,6 +104,12 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
104
104
  DeviceType["Washer"] = "washer";
105
105
  /** Tumble dryer. Same plug-built running surface as {@link Washer}. */
106
106
  DeviceType["Dryer"] = "dryer";
107
+ /** The physical bridge box of a vendor ecosystem (Velux KLF-200, and later
108
+ * other radio-to-IP bridges). It carries the box's own facts (firmware,
109
+ * address, connection state) and the actions the box really supports
110
+ * (`reboot`, `device-admin-link`). Products are NOT its children — they are
111
+ * adopted beside it — and its connection settings stay on the integration. */
112
+ DeviceType["Gateway"] = "gateway";
107
113
  return DeviceType;
108
114
  }({});
109
115
  var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
@@ -56,7 +56,7 @@ export declare const CAP_CUSTOMIZE_CATALOG: {
56
56
  readonly targets: readonly [{
57
57
  readonly id: 'items';
58
58
  readonly cardinality: 'keyedArray';
59
- readonly deviceTypes: readonly [DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.PetFountain, DeviceType.Dishwasher, DeviceType.Washer, DeviceType.Dryer];
59
+ readonly deviceTypes: readonly [DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.PetFountain, DeviceType.Dishwasher, DeviceType.Washer, DeviceType.Dryer, DeviceType.Gateway];
60
60
  readonly apply: 'add';
61
61
  readonly vocabularyCap: 'consumables';
62
62
  readonly sources: readonly [];
@@ -42,6 +42,7 @@ import type { pipelineExecutorCapability } from '../capabilities/pipeline-execut
42
42
  import type { pipelineOrchestratorCapability } from '../capabilities/pipeline-orchestrator.cap.js';
43
43
  import type { pipelineRunnerCapability } from '../capabilities/pipeline-runner.cap.js';
44
44
  import type { plateGalleryCapability } from '../capabilities/plate-gallery.cap.js';
45
+ import type { platformProbeCapability } from '../capabilities/platform-probe.cap.js';
45
46
  import type { recordEntriesCapability } from '../capabilities/record-entries.cap.js';
46
47
  import type { recordingArchiveCapability } from '../capabilities/recording-archive.cap.js';
47
48
  import type { recordingExportCapability } from '../capabilities/recording-export.cap.js';
@@ -110,6 +111,7 @@ export interface SystemProxy {
110
111
  readonly pipelineOrchestrator: Pick<InferProvider<typeof pipelineOrchestratorCapability>, 'requestOccupancyLook' | 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'rebalance' | 'getPipelineAssignments' | 'getAgentLoad' | 'getClusterModelChoice' | 'getGlobalMetrics' | 'getCapabilityBindings' | 'setCapabilityBinding' | 'getIngestOwner' | 'getAudioNodeLoad' | 'getAudioAssignments' | 'getAgentSettings' | 'listAgentSettings' | 'removeAgentSettings' | 'setAgentMaxCameras' | 'setAgentCapabilities' | 'setAgentDecodeLimits' | 'setAgentReachableHost' | 'setAgentInferenceDevices' | 'setNodeStepSettings' | 'getNodeInferenceDevices' | 'forgetInferenceDevice' | 'resetNodePipelineDefaults' | 'planAutoTune' | 'applyAutoTune' | 'setLoadBalancingShares' | 'getPlacementStats' | 'suggestShares' | 'getEffectiveShares' | 'setShareSource' | 'getNodeBenchmarkPreflight' | 'startNodeBenchmark' | 'getNodeBenchmarkStatus' | 'abortNodeBenchmark' | 'getNodeBenchmarkCandidates' | 'listNodeBenchmarkResults' | 'deleteNodeBenchmarkResult' | 'getCameraStatuses' | 'setCameraSensors' | 'reconcileFromDisk' | 'getReconcileFromDiskStatus'>;
111
112
  readonly pipelineRunner: Pick<InferProvider<typeof pipelineRunnerCapability>, 'attachCamera' | 'reportMotion' | 'getLocalLoad' | 'getLocalMetrics' | 'getAllCameraMetrics' | 'getLocalCameras' | 'getNativeCrop' | 'runStatelessStep' | 'startNodeBench' | 'getNodeBenchStatus' | 'abortNodeBench'>;
112
113
  readonly plateGallery: Pick<InferProvider<typeof plateGalleryCapability>, 'getPlateMedia' | 'searchPlates' | 'suggestPlateClusters' | 'correctPlateText' | 'deletePlate' | 'listVehicles' | 'createVehicle' | 'renameVehicle' | 'deleteVehicle' | 'listVehicleSamples' | 'removeVehicleSample' | 'assignPlate' | 'unassignPlate' | 'assignPlates' | 'unassignPlates'>;
114
+ readonly platformProbe: Pick<InferProvider<typeof platformProbeCapability>, 'getCapabilities' | 'getHardware' | 'resolveInferenceConfig' | 'resolveHwAccel' | 'rescanAccelerators'>;
113
115
  readonly recordEntries: Pick<InferProvider<typeof recordEntriesCapability>, 'listEntryKinds' | 'listEntries' | 'putEntry' | 'deleteEntry'>;
114
116
  readonly recordingArchive: Pick<InferProvider<typeof recordingArchiveCapability>, 'getAvailabilityBatch' | 'getDaysWithRecordingsBatch' | 'getStorageUsage' | 'listOpsLog' | 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'refreshStorageLocationsForMigration' | 'startStorageMigrationMove' | 'getStorageMigrationMoveStatus' | 'cancelStorageMigrationMove' | 'relocateFootage' | 'listRelocateJobs' | 'getRelocateResidue' | 'reconcileLedgerAgainstDisk' | 'cancelRelocateJob' | 'planStorageRebalance' | 'startStorageRebalance' | 'getPlacement' | 'setDevicePlacement'>;
115
117
  readonly recordingExport: Pick<InferProvider<typeof recordingExportCapability>, 'createExport' | 'getExport' | 'cancelExport' | 'deleteExport' | 'getDownloadUrl' | 'readExportBytes'>;
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_sleep = require("./sleep-BSPhInRm.js");
3
3
  const require_event_category = require("./event-category-E17zaHjN.js");
4
- const require_composition = require("./composition-CO6Sak-s.js");
4
+ const require_composition = require("./composition-tP-vAKqU.js");
5
5
  const require_node_color = require("./node-color.js");
6
- const require_err_msg = require("./err-msg-EJhsFHqa.js");
6
+ const require_err_msg = require("./err-msg-DkPZXb-g.js");
7
7
  const require_enums = require("./enums.js");
8
8
  let zod = require("zod");
9
9
  //#region src/media/media-owner-key.ts
@@ -14685,8 +14685,21 @@ var BrokerProviderInfoSchema = zod.z.object({
14685
14685
  * (`{ sessionId }`) drops the session. The dialog that edits a broker
14686
14686
  * offers it as the default path; the fields the session fills are
14687
14687
  * marked `filledBySignIn` in the kind's settings schema.
14688
+ *
14689
+ * `methods` lists the ways the session can sign in, recommended first:
14690
+ * `'device-code'` adds `POST {basePath}/code/start` (body: the form's
14691
+ * settings) answering `{ sessionId, userCode, verificationUrl,
14692
+ * expiresAt }` — the operator types `userCode` at `verificationUrl` on
14693
+ * any device, and the same `status` / `commit` / `cancel` routes follow
14694
+ * (status then carries `method`, `userCode`, `verificationUrl`,
14695
+ * `expiresAt` and the phases `'awaiting-code'` / `'expired'`);
14696
+ * `'proxy'` is the `{basePath}/start` flow above. Absent means
14697
+ * `['proxy']`.
14688
14698
  */
14689
- signIn: zod.z.object({ basePath: zod.z.string().min(1) }).optional()
14699
+ signIn: zod.z.object({
14700
+ basePath: zod.z.string().min(1),
14701
+ methods: zod.z.array(zod.z.enum(["device-code", "proxy"])).optional()
14702
+ }).optional()
14690
14703
  }))
14691
14704
  });
14692
14705
  var ListInputSchema = zod.z.object({
@@ -77080,7 +77093,8 @@ var rebootCapability = {
77080
77093
  deviceTypes: [
77081
77094
  require_err_msg.DeviceType.Camera,
77082
77095
  require_err_msg.DeviceType.Sensor,
77083
- require_err_msg.DeviceType.Switch
77096
+ require_err_msg.DeviceType.Switch,
77097
+ require_err_msg.DeviceType.Gateway
77084
77098
  ],
77085
77099
  methods: { reboot: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.object({ success: zod.z.literal(true) }), {
77086
77100
  kind: "mutation",
@@ -85322,7 +85336,8 @@ var CAP_CUSTOMIZE_CATALOG = {
85322
85336
  require_err_msg.DeviceType.PetFountain,
85323
85337
  require_err_msg.DeviceType.Dishwasher,
85324
85338
  require_err_msg.DeviceType.Washer,
85325
- require_err_msg.DeviceType.Dryer
85339
+ require_err_msg.DeviceType.Dryer,
85340
+ require_err_msg.DeviceType.Gateway
85326
85341
  ],
85327
85342
  apply: "add",
85328
85343
  vocabularyCap: "consumables",
@@ -89824,7 +89839,8 @@ var DEVICE_TYPE_CONTROL_KIND = {
89824
89839
  [require_err_msg.DeviceType.PetFountain]: "pet-fountain",
89825
89840
  [require_err_msg.DeviceType.Dishwasher]: "dishwasher",
89826
89841
  [require_err_msg.DeviceType.Washer]: "dummy",
89827
- [require_err_msg.DeviceType.Dryer]: "dummy"
89842
+ [require_err_msg.DeviceType.Dryer]: "dummy",
89843
+ [require_err_msg.DeviceType.Gateway]: "dummy"
89828
89844
  };
89829
89845
  var DEVICE_TYPE_VALUES = new Set(Object.values(require_err_msg.DeviceType));
89830
89846
  /**
@@ -104515,7 +104531,8 @@ var DEVICE_TYPE_DO_CAPS = {
104515
104531
  [require_err_msg.DeviceType.PetFountain]: ["pet-fountain"],
104516
104532
  [require_err_msg.DeviceType.Dishwasher]: ["dishwasher"],
104517
104533
  [require_err_msg.DeviceType.Washer]: [],
104518
- [require_err_msg.DeviceType.Dryer]: []
104534
+ [require_err_msg.DeviceType.Dryer]: [],
104535
+ [require_err_msg.DeviceType.Gateway]: []
104519
104536
  };
104520
104537
  /**
104521
104538
  * Whether a device type belongs in a Do / automation action device picker.
@@ -112036,6 +112053,13 @@ function createSystemProxy(api) {
112036
112053
  assignPlates: (input) => dispatch("plateGallery", "assignPlates", "mutation", input),
112037
112054
  unassignPlates: (input) => dispatch("plateGallery", "unassignPlates", "mutation", input)
112038
112055
  },
112056
+ platformProbe: {
112057
+ getCapabilities: (input) => dispatch("platformProbe", "getCapabilities", "query", input),
112058
+ getHardware: (input) => dispatch("platformProbe", "getHardware", "query", input),
112059
+ resolveInferenceConfig: (input) => dispatch("platformProbe", "resolveInferenceConfig", "query", input),
112060
+ resolveHwAccel: (input) => dispatch("platformProbe", "resolveHwAccel", "query", input),
112061
+ rescanAccelerators: (input) => dispatch("platformProbe", "rescanAccelerators", "mutation", input)
112062
+ },
112039
112063
  recordEntries: {
112040
112064
  listEntryKinds: (input) => dispatch("recordEntries", "listEntryKinds", "query", input),
112041
112065
  listEntries: (input) => dispatch("recordEntries", "listEntries", "query", input),
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import { $ as toNodeId, $n as RECORD_SECRET_COLLECTION_PREFIX, $r as SECRET_CLEAR, $t as entryBody, A as HF_REPO, An as RECORDS_ERROR_CODES, Ar as resolveSecretMarkers, At as FrameHandleSchema, B as DEVICE_CHILDREN_BATCH_MAX, Bn as asRecordsError, Br as normalizeNodeId, Bt as parseProfileBrokerId, Cn as BatchTooLargeError, Cr as mergeSecretStatePaths, Ct as BrokerStatusSchema, D as createSliceHandle, Dn as InvalidRecordError, Dr as KeychainWriteRefusedError, Dt as CamStreamResolutionSchema, E as createMirrorSource, En as ForeignSecretMarkerError, Er as secretTreeFromSchema, Et as CamStreamKindSchema, F as RawStateResultSchema, Fn as RecordsError, Fr as formatSecretScope, Ft as StreamSourceSchema, G as describeCustomActions, Gn as RECORD_DATABASES, Gr as WELL_KNOWN_TABS, Gt as ReadingQuantitySchema, H as withoutCallerStamp, Hn as RECORD_BATCH_MAX, Hr as createEvent, Ht as DEFAULT_DISPLAY_PREFERENCE, I as deviceOpsCapability, In as RevConflictError, Ir as globalSecretScope, It as SubscribeAudioChunksInputSchema, J as AddonPageDeclarationSchema, Jn as RECORD_ID_MAX_LENGTH, Jr as collectHydratedFieldValues, Jt as historyUnitFor, K as deviceCustomAction, Kn as RECORD_DEFAULT_MAX_DATA_BYTES, Kr as WELL_KNOWN_TAB_MAP, Kt as baseUnitOf, L as viewerUiCapability, Ln as TransactRefusedError, Lr as isSecretRef, Lt as SubscribeAudioChunksResultSchema, Mn as RecordSecretUnavailableError, Mr as SECRET_REF_SCHEME, Mt as ProfileSlotSchema, N as CAP_NAMES, Nn as RecordTooLargeError, Nr as arrayItemFieldPath, Nt as ProfileSlotStatusSchema, O as DEFAULT_TOKEN_EXPIRY, On as NoCallerError, Or as collectSecretMarkerRefs, Ot as CameraStreamSchema, Pn as RecordUniqueViolationError, Pr as buildSecretRef, Pt as StreamSourceEntrySchema, Q as readNodePin, Qn as RECORD_QUERY_MAX, Qr as resolveHydratedFieldValue, Qt as defineEntryKind, R as PipelineRunResultBridge, Rn as UnindexedFilterError, Rr as normalizeSecretOwner, Rt as makeProfileBrokerId, S as invokeTrpcLeaf, Sn as isZodSecret, Sr as normalizeAddonInitResult, St as BrokerStatsSchema, T as createLazyTrpcSource, Tn as FilterRequiredError, Tr as secretTreeFromPaths, Tt as CamProfileSchema, U as customAction, Un as RECORD_BATCH_MAX_BYTES, Ur as emitReadiness, Ut as DISPLAY_PREFERENCES, V as CALLER_STAMPED_CAPABILITIES, Vn as recordsErrorFromMessage, Vr as createDurableState, Vt as selectAssignedProfileSlots, W as defineCustomActions, Wn as RECORD_CLASSES, Wr as isEvent, Wt as QUANTITY_BASE, X as CAP_NODE_PIN_CONTEXT_KEY, Xn as RECORD_MAX_INDEXES, Xr as dehydrateSchema, Xt as readingMeta, Y as addonPagesSourceCapability, Yn as RECORD_MAX_DATA_BYTES, Yr as dehydrateConfigField, Yt as isReadingQuantity, Z as nodePin, Zn as RECORD_MAX_INDEX_FIELDS, Zr as hydrateSchema, Zt as makeInMemoryRecords, _ as readErrorI18n, _i as isAudioChunkFormat, _n as recordSecretCollection, _r as DATAPLANE_SECRET_HEADER, _t as emitDownForOwnedCaps, a as asJsonArray, ai as makeSecretMarker, an as RecordKindDeclarationSchema, ar as MIN_SCRUBBED_LENGTH, at as PROVIDER_PIN_FIELD, b as isDeviceScopedCap, bn as SECRET_META, br as BaseAddon, bt as AudioChunkFormatSchema, c as asString, ci as collectKeychainStoredKeys, cn as StoredRecordKindDeclarationSchema, cr as knownSecretCount, ct as historyItemFieldPath, d as parseJsonUnknown, di as isSecretConfigField, dn as defineRecordKinds, dr as shortSecretRefHash, dt as optionalMethod, ei as classifySecretWrite, en as createRecordsAccess, er as RECORD_SETTINGS_MAX_ROWS, et as DEFAULT_RUNTIME_STATE_DURABILITY, f as hfModelUrl, fi as omitTransientConfig, fn as REMOVE_LEAF, fr as PEER_BYTES_CHUNK_BYTES, ft as resolveCapMount, g as ErrorI18nPayloadSchema, gi as expandAudioChunkToF32le, gn as recordArrayItemPath, gr as PeerBytesTicketSchema, gt as ReadinessTimeoutError, h as ErrorCodeSchema, hi as audioChunkBytesPerSample, hn as parseSecretPath, hr as PEER_BYTES_TICKET_TTL_MS, ht as ReadinessRegistry, i as asBoolean, ii as isSecretMarkerLike, in as RecordIndexSchema, ir as createSecretsAccess, it as HISTORY_UNIT_LABELS, j as RUNTIME_DEFAULTS, jn as RecordNotFoundError, jr as transformSecretWrite, jt as ProfileRtspEntrySchema, k as HF_BASE_URL, kn as PlaintextSecretError, kr as isSecretRefOwnedBy, kt as DecodedAudioChunkSchema, l as parseJsonArray, li as collectSecretConfigKeys, ln as assertValidDeclaration, lr as registerKnownSecret, lt as isDeviceConfigCap, m as CamstackError, mi as AUDIO_CHUNK_FORMATS, mn as mapSecretLeaves, mr as PEER_BYTES_STALL_MS, mt as MODEL_FORMATS, n as sleepCancellable, ni as isSecretFieldView, nn as EntryDescriptorSchema, nr as resolveSecretViewsIn, nt as DEVICE_STATUS_METHOD, o as asJsonObject, oi as toSecretFieldView, on as RecordKindNameSchema, or as clearKnownSecrets, ot as event, p as BOOT_RECOVERY_BACKOFF_MS, pi as schemaDeclaresAnyField, pn as collectSecretLeaves, pr as PEER_BYTES_MAX_OUTSTANDING, pt as systemMethod, q as adminUiCapability, qn as RECORD_DELETE_BATCH, qr as collectHydratedFieldEntries, qt as displayUnitFor, r as maskUrlCredentials, ri as isSecretMarker, rn as RecordFieldPathSchema, rr as REVALIDATE_AFTER_MS, rt as HISTORY_DEFAULT_MIN_INTERVAL_MS, s as asNumber, si as REDACTED_SECRET, sn as RecordRetentionSchema, sr as forgetKnownSecret, st as expandCapMethods, t as sleep, ti as isSecretClear, tn as assertTransactScope, tr as RECORD_SWEEP_INTERVAL_MS, tt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, u as parseJsonObject, ui as isKeychainStoredField, un as declarationsOf, ur as scrubKnownSecrets, ut as method, v as userError, vn as recordSecretRef, vr as SHARE_VIEW_KINDS, vt as readinessKey, w as createEventBusSliceSource, wn as DeclarationRefusedError, wr as parseSecretStatePath, wt as CAM_PROFILE_ORDER, x as createDeviceProxy, xn as collectZodSecretPaths, xr as classifyStoreError, xt as AudioStreamPickSchema, y as DEVICE_SCOPED_CAPS, yn as secretArrayPrefixes, yr as DisposerChain, yt as scopeKey, z as PipelineStepInputSchema, zn as UnknownRecordKindError, zr as parseSecretRef, zt as makeSourceBrokerId } from "./sleep-63gM_1JR.mjs";
2
2
  import { i as publicEventCategories, n as OWNER_ONLY_EVENT_CATEGORIES, r as isOwnerOnlyEventCategory, t as EventCategory } from "./event-category-DmZDPDf_.mjs";
3
- import { $ as ExpressionHelperSpecSchema, $n as pickVideoEncoder, $t as evaluateExpressionSource, A as MAX_COMPOSITION_ITEMS, An as evaluateSensorEdge, At as nextLocalMidnight, B as fieldReads, Bt as evaluateStatistic, C as CompositionSchema, Cn as ExpressionEvalError, Ct as MIN_CUSTOM_MINUTES, D as MAX_COMPOSITION_CODE_LENGTH, Dn as SOURCE_CAP_ACTIVE_FIELD, Dt as StatisticWindowSchema, E as FORWARD_INPUT_KEY, En as SOURCE_CAPS, Et as RollingWindowSchema, F as compositionReadKey, Fn as FFMPEG_PATH_ENV, Ft as rollingDurationMs, G as ActiveCriterionSchema, Gn as audioPlanFromEncodeProfile, Gt as APPLIANCE_KINDS, H as ACTIVE_CRITERIA, Hn as Fmp4BoxSplitter, Ht as KWH_PER_WATT_MS, I as compositionSliceKey, It as statisticCadenceMs, J as ArithmeticHelperSpecSchema, Jn as buildInputArgs, Jt as isApplianceKind, K as AggregateReducerSchema, Kn as buildAudioArgs, Kt as APPLIANCE_TEMPLATE_ID, L as compositionSourceKey, Lt as SERIES_KINDS, M as composedDeviceStableId, Mn as isSourceCap, Mt as openStatistic, N as compositionFeatureEnabled, Nn as sliceActiveValue, Nt as planResetTier, O as MAX_COMPOSITION_FEATURES, On as SOURCE_CAP_CHANGED_AT_FIELD, Ot as integralCadenceMs, P as compositionItemFieldPath, Pn as sliceChangedAt, Pt as planStatisticTier, Q as EXPRESSION_OUTPUTS, Qn as logBannerArgs, Qt as createStatefulExpressionMemory, R as featureFieldEntries, Rt as STATISTIC_STATS, S as CompositionPassthroughFeatureSchema, Sn as isStatefulBuiltin, St as MINUTE_MS, T as CompositionTargetSchema, Tn as DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, Tt as ROLLING_SPANS, U as AGGREGATE_REDUCERS, Un as AUDIO_PRESETS, Ut as wattMillisecondsToKwh, V as isForwardInputRef, Vn as canonicalHash, Vt as integrateReading, W as ARITHMETIC_OPS, Wn as RESTREAM_INPUT_PROBE, Wt as APPLIANCE_DEFAULTS, X as DERIVATIVE_UNITS, Xn as invocationFromEncodeProfile, Xt as EXPRESSION_INJECTED_NOW, Y as BINARY_AGGREGATES, Yn as buildVideoArgs, Yt as sourcePickForAppliance, Z as DerivativeHelperSpecSchema, Zn as isSoftwareDecode, Zt as cloneStatefulExpressionMemory, _ as CompositionForwardCommandSchema, _n as EXPRESSION_BUILTINS, _t as DEFAULT_HISTORY_RETENTION, a as CUSTOMIZATION_BLOCK_NAME_PREFIX, an as compileExpression, at as INTEGRAL_OUTPUTS, b as CompositionLiteralBindingSchema, bn as evaluateCount, bt as HISTORY_TIERS, c as CompositionCodeSourceSchema, cn as tokenize, ct as NUMERIC_AGGREGATES, d as CompositionExpressionSourceSchema, dn as MAX_EXPRESSION_AST_NODES, dt as helperMembers, en as evaluateStatefulExpressionCall, er as resolveStreamMaps, et as GROUP_TEMPLATE_IDS, f as CompositionFeatureSchema, fn as MAX_EXPRESSION_BINDINGS, ft as isHistoryHelper, g as CompositionForwardArgSchema, gn as RESERVED_BINDING_NAMES, gt as DAY_MS, h as CompositionFieldsFeatureSchema, hn as MAX_EXPRESSION_SOURCE_LENGTH, ht as CalendarWindowSchema, i as COMPOSITION_ITEM_KEY_RE, in as evaluateAst, it as HelperSpecSchema, j as composedDeviceRef, jn as evaluateSensorLevelEdge, jt as openReset, k as MAX_COMPOSITION_FIELDS_PER_FEATURE, kn as SOURCE_DEVICE_TYPES, kt as maxDurationMs, l as CompositionCommandTargetSchema, ln as EXPRESSION_COMPILE_CACHE_CAPACITY, lt as StatisticHelperSpecSchema, m as CompositionFieldSourceSchema, mn as MAX_EXPRESSION_EVAL_STEPS, mt as CALENDAR_PERIODS, n as COMPOSER_ADDON_ID, nn as validateExpressionSource, nt as GroupTemplateIdSchema, o as CompositionAggregateSourceSchema, on as compileExpressionSafe, ot as IntegralHelperSpecSchema, p as CompositionFieldReadSchema, pn as MAX_EXPRESSION_CALL_ARGS, pt as CompositionSourceRefSchema, q as ApplianceHelperSpecSchema, qn as buildFfmpegArgs, qt as applianceDeviceType, r as COMPOSITION_ITEM_ARRAY_PATH, rn as createExpressionScope, rt as HelperMemberSchema, s as CompositionBindingSchema, sn as parseExpression, st as MAX_HELPER_MEMBERS, t as COMPOSED_DEVICE_STABLE_ID_PREFIX, tn as toExpressionValue, tt as GroupHelperSpecSchema, u as CompositionExistingTargetSchema, un as EXPRESSION_IDENTIFIER_RE, ut as ThresholdHelperSpecSchema, v as CompositionFromSourceSchema, vn as EXPRESSION_BUILTIN_NAMES, vt as HISTORY_FAST_MS, w as CompositionSeriesSourceSchema, wn as ExpressionParseError, wt as RESET_PERIODS, x as CompositionNewTargetSchema, xn as evaluateRose, xt as HOUR_MS, y as CompositionItemEntrySchema, yn as disarmRoseMemory, yt as HISTORY_SLOW_MS, z as featureSources, zt as evaluateDerivative } from "./composition-kSuOifuG.mjs";
3
+ import { $ as ExpressionHelperSpecSchema, $n as pickVideoEncoder, $t as evaluateExpressionSource, A as MAX_COMPOSITION_ITEMS, An as evaluateSensorEdge, At as nextLocalMidnight, B as fieldReads, Bt as evaluateStatistic, C as CompositionSchema, Cn as ExpressionEvalError, Ct as MIN_CUSTOM_MINUTES, D as MAX_COMPOSITION_CODE_LENGTH, Dn as SOURCE_CAP_ACTIVE_FIELD, Dt as StatisticWindowSchema, E as FORWARD_INPUT_KEY, En as SOURCE_CAPS, Et as RollingWindowSchema, F as compositionReadKey, Fn as FFMPEG_PATH_ENV, Ft as rollingDurationMs, G as ActiveCriterionSchema, Gn as audioPlanFromEncodeProfile, Gt as APPLIANCE_KINDS, H as ACTIVE_CRITERIA, Hn as Fmp4BoxSplitter, Ht as KWH_PER_WATT_MS, I as compositionSliceKey, It as statisticCadenceMs, J as ArithmeticHelperSpecSchema, Jn as buildInputArgs, Jt as isApplianceKind, K as AggregateReducerSchema, Kn as buildAudioArgs, Kt as APPLIANCE_TEMPLATE_ID, L as compositionSourceKey, Lt as SERIES_KINDS, M as composedDeviceStableId, Mn as isSourceCap, Mt as openStatistic, N as compositionFeatureEnabled, Nn as sliceActiveValue, Nt as planResetTier, O as MAX_COMPOSITION_FEATURES, On as SOURCE_CAP_CHANGED_AT_FIELD, Ot as integralCadenceMs, P as compositionItemFieldPath, Pn as sliceChangedAt, Pt as planStatisticTier, Q as EXPRESSION_OUTPUTS, Qn as logBannerArgs, Qt as createStatefulExpressionMemory, R as featureFieldEntries, Rt as STATISTIC_STATS, S as CompositionPassthroughFeatureSchema, Sn as isStatefulBuiltin, St as MINUTE_MS, T as CompositionTargetSchema, Tn as DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, Tt as ROLLING_SPANS, U as AGGREGATE_REDUCERS, Un as AUDIO_PRESETS, Ut as wattMillisecondsToKwh, V as isForwardInputRef, Vn as canonicalHash, Vt as integrateReading, W as ARITHMETIC_OPS, Wn as RESTREAM_INPUT_PROBE, Wt as APPLIANCE_DEFAULTS, X as DERIVATIVE_UNITS, Xn as invocationFromEncodeProfile, Xt as EXPRESSION_INJECTED_NOW, Y as BINARY_AGGREGATES, Yn as buildVideoArgs, Yt as sourcePickForAppliance, Z as DerivativeHelperSpecSchema, Zn as isSoftwareDecode, Zt as cloneStatefulExpressionMemory, _ as CompositionForwardCommandSchema, _n as EXPRESSION_BUILTINS, _t as DEFAULT_HISTORY_RETENTION, a as CUSTOMIZATION_BLOCK_NAME_PREFIX, an as compileExpression, at as INTEGRAL_OUTPUTS, b as CompositionLiteralBindingSchema, bn as evaluateCount, bt as HISTORY_TIERS, c as CompositionCodeSourceSchema, cn as tokenize, ct as NUMERIC_AGGREGATES, d as CompositionExpressionSourceSchema, dn as MAX_EXPRESSION_AST_NODES, dt as helperMembers, en as evaluateStatefulExpressionCall, er as resolveStreamMaps, et as GROUP_TEMPLATE_IDS, f as CompositionFeatureSchema, fn as MAX_EXPRESSION_BINDINGS, ft as isHistoryHelper, g as CompositionForwardArgSchema, gn as RESERVED_BINDING_NAMES, gt as DAY_MS, h as CompositionFieldsFeatureSchema, hn as MAX_EXPRESSION_SOURCE_LENGTH, ht as CalendarWindowSchema, i as COMPOSITION_ITEM_KEY_RE, in as evaluateAst, it as HelperSpecSchema, j as composedDeviceRef, jn as evaluateSensorLevelEdge, jt as openReset, k as MAX_COMPOSITION_FIELDS_PER_FEATURE, kn as SOURCE_DEVICE_TYPES, kt as maxDurationMs, l as CompositionCommandTargetSchema, ln as EXPRESSION_COMPILE_CACHE_CAPACITY, lt as StatisticHelperSpecSchema, m as CompositionFieldSourceSchema, mn as MAX_EXPRESSION_EVAL_STEPS, mt as CALENDAR_PERIODS, n as COMPOSER_ADDON_ID, nn as validateExpressionSource, nt as GroupTemplateIdSchema, o as CompositionAggregateSourceSchema, on as compileExpressionSafe, ot as IntegralHelperSpecSchema, p as CompositionFieldReadSchema, pn as MAX_EXPRESSION_CALL_ARGS, pt as CompositionSourceRefSchema, q as ApplianceHelperSpecSchema, qn as buildFfmpegArgs, qt as applianceDeviceType, r as COMPOSITION_ITEM_ARRAY_PATH, rn as createExpressionScope, rt as HelperMemberSchema, s as CompositionBindingSchema, sn as parseExpression, st as MAX_HELPER_MEMBERS, t as COMPOSED_DEVICE_STABLE_ID_PREFIX, tn as toExpressionValue, tt as GroupHelperSpecSchema, u as CompositionExistingTargetSchema, un as EXPRESSION_IDENTIFIER_RE, ut as ThresholdHelperSpecSchema, v as CompositionFromSourceSchema, vn as EXPRESSION_BUILTIN_NAMES, vt as HISTORY_FAST_MS, w as CompositionSeriesSourceSchema, wn as ExpressionParseError, wt as RESET_PERIODS, x as CompositionNewTargetSchema, xn as evaluateRose, xt as HOUR_MS, y as CompositionItemEntrySchema, yn as disarmRoseMemory, yt as HISTORY_SLOW_MS, z as featureSources, zt as evaluateDerivative } from "./composition-C7WdThmP.mjs";
4
4
  import { NODE_COLOR_IDS, NodeColorIdSchema, assignNodeColorId } from "./node-color.mjs";
5
- import { a as DeviceType, i as DeviceRole, n as ChargingStatus, r as DeviceFeature, t as errMsg } from "./err-msg-DWXWc0Di.mjs";
5
+ import { a as DeviceType, i as DeviceRole, n as ChargingStatus, r as DeviceFeature, t as errMsg } from "./err-msg-BD5buxvT.mjs";
6
6
  import { EventSourceType } from "./enums.mjs";
7
7
  import { z } from "zod";
8
8
  //#region src/media/media-owner-key.ts
@@ -14684,8 +14684,21 @@ var BrokerProviderInfoSchema = z.object({
14684
14684
  * (`{ sessionId }`) drops the session. The dialog that edits a broker
14685
14685
  * offers it as the default path; the fields the session fills are
14686
14686
  * marked `filledBySignIn` in the kind's settings schema.
14687
+ *
14688
+ * `methods` lists the ways the session can sign in, recommended first:
14689
+ * `'device-code'` adds `POST {basePath}/code/start` (body: the form's
14690
+ * settings) answering `{ sessionId, userCode, verificationUrl,
14691
+ * expiresAt }` — the operator types `userCode` at `verificationUrl` on
14692
+ * any device, and the same `status` / `commit` / `cancel` routes follow
14693
+ * (status then carries `method`, `userCode`, `verificationUrl`,
14694
+ * `expiresAt` and the phases `'awaiting-code'` / `'expired'`);
14695
+ * `'proxy'` is the `{basePath}/start` flow above. Absent means
14696
+ * `['proxy']`.
14687
14697
  */
14688
- signIn: z.object({ basePath: z.string().min(1) }).optional()
14698
+ signIn: z.object({
14699
+ basePath: z.string().min(1),
14700
+ methods: z.array(z.enum(["device-code", "proxy"])).optional()
14701
+ }).optional()
14689
14702
  }))
14690
14703
  });
14691
14704
  var ListInputSchema = z.object({
@@ -77079,7 +77092,8 @@ var rebootCapability = {
77079
77092
  deviceTypes: [
77080
77093
  DeviceType.Camera,
77081
77094
  DeviceType.Sensor,
77082
- DeviceType.Switch
77095
+ DeviceType.Switch,
77096
+ DeviceType.Gateway
77083
77097
  ],
77084
77098
  methods: { reboot: method(z.object({ deviceId: z.number().int().nonnegative() }), z.object({ success: z.literal(true) }), {
77085
77099
  kind: "mutation",
@@ -85321,7 +85335,8 @@ var CAP_CUSTOMIZE_CATALOG = {
85321
85335
  DeviceType.PetFountain,
85322
85336
  DeviceType.Dishwasher,
85323
85337
  DeviceType.Washer,
85324
- DeviceType.Dryer
85338
+ DeviceType.Dryer,
85339
+ DeviceType.Gateway
85325
85340
  ],
85326
85341
  apply: "add",
85327
85342
  vocabularyCap: "consumables",
@@ -89823,7 +89838,8 @@ var DEVICE_TYPE_CONTROL_KIND = {
89823
89838
  [DeviceType.PetFountain]: "pet-fountain",
89824
89839
  [DeviceType.Dishwasher]: "dishwasher",
89825
89840
  [DeviceType.Washer]: "dummy",
89826
- [DeviceType.Dryer]: "dummy"
89841
+ [DeviceType.Dryer]: "dummy",
89842
+ [DeviceType.Gateway]: "dummy"
89827
89843
  };
89828
89844
  var DEVICE_TYPE_VALUES = new Set(Object.values(DeviceType));
89829
89845
  /**
@@ -104514,7 +104530,8 @@ var DEVICE_TYPE_DO_CAPS = {
104514
104530
  [DeviceType.PetFountain]: ["pet-fountain"],
104515
104531
  [DeviceType.Dishwasher]: ["dishwasher"],
104516
104532
  [DeviceType.Washer]: [],
104517
- [DeviceType.Dryer]: []
104533
+ [DeviceType.Dryer]: [],
104534
+ [DeviceType.Gateway]: []
104518
104535
  };
104519
104536
  /**
104520
104537
  * Whether a device type belongs in a Do / automation action device picker.
@@ -112035,6 +112052,13 @@ function createSystemProxy(api) {
112035
112052
  assignPlates: (input) => dispatch("plateGallery", "assignPlates", "mutation", input),
112036
112053
  unassignPlates: (input) => dispatch("plateGallery", "unassignPlates", "mutation", input)
112037
112054
  },
112055
+ platformProbe: {
112056
+ getCapabilities: (input) => dispatch("platformProbe", "getCapabilities", "query", input),
112057
+ getHardware: (input) => dispatch("platformProbe", "getHardware", "query", input),
112058
+ resolveInferenceConfig: (input) => dispatch("platformProbe", "resolveInferenceConfig", "query", input),
112059
+ resolveHwAccel: (input) => dispatch("platformProbe", "resolveHwAccel", "query", input),
112060
+ rescanAccelerators: (input) => dispatch("platformProbe", "rescanAccelerators", "mutation", input)
112061
+ },
112038
112062
  recordEntries: {
112039
112063
  listEntryKinds: (input) => dispatch("recordEntries", "listEntryKinds", "query", input),
112040
112064
  listEntries: (input) => dispatch("recordEntries", "listEntries", "query", input),
package/dist/node.js CHANGED
@@ -21,8 +21,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
21
21
  enumerable: true
22
22
  }) : target, mod));
23
23
  //#endregion
24
- const require_composition = require("./composition-CO6Sak-s.js");
25
- const require_err_msg = require("./err-msg-EJhsFHqa.js");
24
+ const require_composition = require("./composition-tP-vAKqU.js");
25
+ const require_err_msg = require("./err-msg-DkPZXb-g.js");
26
26
  let node_crypto = require("node:crypto");
27
27
  let node_fs = require("node:fs");
28
28
  node_fs = __toESM(node_fs);
package/dist/node.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { Bn as getFfmpegDownloadUrl, Fn as FFMPEG_PATH_ENV, Hn as Fmp4BoxSplitter, In as chooseFfmpegBinary, L as compositionSourceKey, Ln as ffmpegBinaryName, Rn as FFMPEG_RELEASE, Vn as canonicalHash, Zn as isSoftwareDecode, a as CUSTOMIZATION_BLOCK_NAME_PREFIX, qn as buildFfmpegArgs, zn as getFfmpegArtifact } from "./composition-kSuOifuG.mjs";
2
- import { t as errMsg } from "./err-msg-DWXWc0Di.mjs";
1
+ import { Bn as getFfmpegDownloadUrl, Fn as FFMPEG_PATH_ENV, Hn as Fmp4BoxSplitter, In as chooseFfmpegBinary, L as compositionSourceKey, Ln as ffmpegBinaryName, Rn as FFMPEG_RELEASE, Vn as canonicalHash, Zn as isSoftwareDecode, a as CUSTOMIZATION_BLOCK_NAME_PREFIX, qn as buildFfmpegArgs, zn as getFfmpegArtifact } from "./composition-C7WdThmP.mjs";
2
+ import { t as errMsg } from "./err-msg-BD5buxvT.mjs";
3
3
  import { createHash, createHmac, randomUUID, timingSafeEqual } from "node:crypto";
4
4
  import * as fs from "node:fs";
5
5
  import { chmodSync, copyFileSync, createWriteStream, existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, unlinkSync, writeFileSync } from "node:fs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.450",
3
+ "version": "1.2.451",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",