@camstack/addon-provider-homeassistant 1.2.607 → 1.2.609

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 CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_dist = require("./dist-DpZriMEh.js");
2
+ const require_dist = require("./dist-C6Zhog8_.js");
3
3
  let node_crypto = require("node:crypto");
4
4
  let node_zlib = require("node:zlib");
5
5
  //#region src/ha-admin-link.ts
@@ -6789,7 +6789,6 @@ function createHaIconRouteProvider() {
6789
6789
  * Broker entry kind (B2): credentials live in records; integrations keep brokerId.
6790
6790
  */
6791
6791
  var HA_BROKERS_KIND = "brokers";
6792
- var HA_BROKERS_OWNER = "provider-homeassistant";
6793
6792
  var HaBrokerBodySchema = require_dist.entryBody({
6794
6793
  auth: HaBrokerEntrySchema.shape.auth,
6795
6794
  integrationId: require_dist.string().optional()
@@ -6797,8 +6796,7 @@ var HaBrokerBodySchema = require_dist.entryBody({
6797
6796
  var haBrokersEntryKind = require_dist.defineEntryKind(HA_BROKERS_KIND, {
6798
6797
  title: "Home Assistant brokers",
6799
6798
  schema: HaBrokerBodySchema,
6800
- writeTrigger: "an operator adds, edits or removes a Home Assistant broker connection",
6801
- adoptsFrom: require_dist.settingsBrokersAdoptsFrom(HA_BROKERS_OWNER)
6799
+ writeTrigger: "an operator adds, edits or removes a Home Assistant broker connection"
6802
6800
  });
6803
6801
  //#endregion
6804
6802
  //#region src/record-kinds.ts
@@ -6823,7 +6821,6 @@ var haRecordKinds = require_dist.defineRecordKinds({
6823
6821
  device: "none",
6824
6822
  at: "none",
6825
6823
  retention: { none: "a row is removed only on an explicit operator delete; bounded by the number of HA notify targets the operator configures" },
6826
- adoptsFrom: "provider-homeassistant:ha-notification-targets",
6827
6824
  entry: { title: "Home Assistant notification targets" }
6828
6825
  } });
6829
6826
  /** All record kinds this addon declares (targets + B2 broker entries). */
package/dist/addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { A as connectivityCapability, At as boolean, B as floodCapability, Bt as EventCategory, C as buildAddonRouteProvider, Ct as defineEntryKind, D as carbonMonoxideCapability, Dt as settingsBrokersAdoptsFrom, E as calendarSourceCapability, F as deviceAdoptionCapability, Ft as record, G as lawnMowerControlCapability, H as humidifierCapability, It as string, J as motionCapability, K as lockControlCapability, L as enumSensorCapability, Lt as union, M as controlCapability, Mt as literal, N as coverCapability, Nt as number, O as climateControlCapability, Ot as _enum, P as deviceAdminLinkCapability, Pt as object, Q as numericSensorCapability, R as eventEmitterCapability, Rt as unknown, S as brokerCapability, St as createEvent, T as buttonCapability, Tt as entryBody, U as humiditySensorCapability, V as gasCapability, W as imageCapability, X as notificationOutputCapability, Y as normalizeUnit, Z as notifierCapability, _ as automationControlCapability, _t as DeviceRole, at as scriptRunnerCapability, b as binaryCapability, ct as tamperCapability, d as TargetSchema, dt as vacuumControlCapability, et as parseAdminBase, f as accessoriesCapability, ft as valveCapability, g as ambientLightSensorCapability, gt as DeviceFeature, h as alarmPanelCapability, ht as weatherCapability, it as pressureSensorCapability, j as contactCapability, jt as discriminatedUnion, k as colorCapability, kt as array, lt as temperatureSensorCapability, m as airQualitySensorCapability, mt as waterHeaterCapability, n as BaseDevice, nt as prepareNotification, ot as smokeCapability, p as addonRoutesCapability, pt as vibrationCapability, q as mediaPlayerCapability, r as BaseDeviceProvider, rt as presenceCapability, s as EnumSensorDateTimeFormatSchema, st as switchCapability, tt as powerMeterCapability, ut as updateCapability, v as batteryCapability, vt as DeviceType, w as buildDeviceAdminUrl, wt as defineRecordKinds, x as brightnessCapability, xt as RecordSecretUnavailableError, y as bestLocationMatch, yt as errMsg, z as fanControlCapability, zt as url } from "./dist-CziryNRD.mjs";
1
+ import { A as connectivityCapability, At as discriminatedUnion, B as floodCapability, C as buildAddonRouteProvider, Ct as defineEntryKind, D as carbonMonoxideCapability, Dt as _enum, E as calendarSourceCapability, F as deviceAdoptionCapability, Ft as string, G as lawnMowerControlCapability, H as humidifierCapability, It as union, J as motionCapability, K as lockControlCapability, L as enumSensorCapability, Lt as unknown, M as controlCapability, Mt as number, N as coverCapability, Nt as object, O as climateControlCapability, Ot as array, P as deviceAdminLinkCapability, Pt as record, Q as numericSensorCapability, R as eventEmitterCapability, Rt as url, S as brokerCapability, St as createEvent, T as buttonCapability, Tt as entryBody, U as humiditySensorCapability, V as gasCapability, W as imageCapability, X as notificationOutputCapability, Y as normalizeUnit, Z as notifierCapability, _ as automationControlCapability, _t as DeviceRole, at as scriptRunnerCapability, b as binaryCapability, ct as tamperCapability, d as TargetSchema, dt as vacuumControlCapability, et as parseAdminBase, f as accessoriesCapability, ft as valveCapability, g as ambientLightSensorCapability, gt as DeviceFeature, h as alarmPanelCapability, ht as weatherCapability, it as pressureSensorCapability, j as contactCapability, jt as literal, k as colorCapability, kt as boolean, lt as temperatureSensorCapability, m as airQualitySensorCapability, mt as waterHeaterCapability, n as BaseDevice, nt as prepareNotification, ot as smokeCapability, p as addonRoutesCapability, pt as vibrationCapability, q as mediaPlayerCapability, r as BaseDeviceProvider, rt as presenceCapability, s as EnumSensorDateTimeFormatSchema, st as switchCapability, tt as powerMeterCapability, ut as updateCapability, v as batteryCapability, vt as DeviceType, w as buildDeviceAdminUrl, wt as defineRecordKinds, x as brightnessCapability, xt as RecordSecretUnavailableError, y as bestLocationMatch, yt as errMsg, z as fanControlCapability, zt as EventCategory } from "./dist-CG5youVr.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { brotliCompressSync, deflateSync, gzipSync } from "node:zlib";
4
4
  //#region src/ha-admin-link.ts
@@ -6788,8 +6788,7 @@ var haBrokersEntryKind = defineEntryKind("brokers", {
6788
6788
  auth: HaBrokerEntrySchema.shape.auth,
6789
6789
  integrationId: string().optional()
6790
6790
  }),
6791
- writeTrigger: "an operator adds, edits or removes a Home Assistant broker connection",
6792
- adoptsFrom: settingsBrokersAdoptsFrom("provider-homeassistant")
6791
+ writeTrigger: "an operator adds, edits or removes a Home Assistant broker connection"
6793
6792
  });
6794
6793
  var haRecordKinds = defineRecordKinds({
6795
6794
  /**
@@ -6804,7 +6803,6 @@ var haRecordKinds = defineRecordKinds({
6804
6803
  device: "none",
6805
6804
  at: "none",
6806
6805
  retention: { none: "a row is removed only on an explicit operator delete; bounded by the number of HA notify targets the operator configures" },
6807
- adoptsFrom: "provider-homeassistant:ha-notification-targets",
6808
6806
  entry: { title: "Home Assistant notification targets" }
6809
6807
  } });
6810
6808
  /** All record kinds this addon declares (targets + B2 broker entries). */
@@ -5547,7 +5547,7 @@ var ZodIssueCode = {
5547
5547
  var ZodFirstPartyTypeKind;
5548
5548
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5549
5549
  //#endregion
5550
- //#region ../types/dist/sleep-BSuCCFjf.mjs
5550
+ //#region ../types/dist/sleep-CSuN0thG.mjs
5551
5551
  /**
5552
5552
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5553
5553
  * window to float samples (D455).
@@ -8165,7 +8165,13 @@ var RecordKindDeclarationSchema = object({
8165
8165
  secretPaths: array(string().min(1)).default([]),
8166
8166
  /** The id key of each array that carries a secret (`{ headers: 'name' }`). */
8167
8167
  secretArrayKeys: record(string(), string()).default({}),
8168
- /** The legacy table this kind adopts from; the boot guard reads it (D853: no migration code). */
8168
+ /**
8169
+ * RETIRED (D900): the legacy table a kind adopted from during the records
8170
+ * migration. Nothing declares it any more and nothing reads it; the schema
8171
+ * still ACCEPTS it because the catalog rows the migration wrote carry it
8172
+ * (an orphaned kind is never redeclared) and an addon built before the
8173
+ * removal still sends it. Never set it.
8174
+ */
8169
8175
  adoptsFrom: string().min(1).optional(),
8170
8176
  /** Kinds that must agree through `transact` sit in one file under one family name. */
8171
8177
  transactFamily: string().min(1).optional(),
@@ -8240,7 +8246,6 @@ function defineRecordKinds(specs) {
8240
8246
  maxDataBytes: spec.maxDataBytes,
8241
8247
  secretPaths: [...secretPaths],
8242
8248
  secretArrayKeys: spec.secretArrayKeys === void 0 ? void 0 : { ...spec.secretArrayKeys },
8243
- adoptsFrom: spec.adoptsFrom,
8244
8249
  transactFamily: spec.transactFamily,
8245
8250
  entry: spec.entry === void 0 ? void 0 : {
8246
8251
  title: spec.entry.title,
@@ -8284,7 +8289,6 @@ function defineEntryKind(name, spec) {
8284
8289
  ...spec.database === void 0 ? {} : { database: spec.database },
8285
8290
  ...spec.indexes === void 0 ? {} : { indexes: spec.indexes },
8286
8291
  ...spec.secretArrayKeys === void 0 ? {} : { secretArrayKeys: spec.secretArrayKeys },
8287
- ...spec.adoptsFrom === void 0 ? {} : { adoptsFrom: spec.adoptsFrom },
8288
8292
  entry: {
8289
8293
  title: spec.title,
8290
8294
  ...spec.nameField === void 0 ? {} : { nameField: spec.nameField }
@@ -8293,16 +8297,6 @@ function defineEntryKind(name, spec) {
8293
8297
  if (defined === void 0) throw new DeclarationRefusedError(`entry kind "${name}" was not built`);
8294
8298
  return defined;
8295
8299
  }
8296
- /**
8297
- * Legacy source for broker entry adoption (B2): brokers live in addon-settings
8298
- * as one row `<addonId>.brokers` whose value is an array until records-adopt
8299
- * copies them into the entry kind.
8300
- */
8301
- var SETTINGS_BROKERS_ADOPTS_PREFIX = "@settings-brokers/";
8302
- /** The `adoptsFrom` value for an addon's broker entry kind. */
8303
- function settingsBrokersAdoptsFrom(addonId) {
8304
- return `${SETTINGS_BROKERS_ADOPTS_PREFIX}${addonId}`;
8305
- }
8306
8300
  /** Shared Zod schemas used across streaming capabilities. */
8307
8301
  var CamProfileSchema = _enum([
8308
8302
  "high",
@@ -17238,11 +17232,12 @@ var DeclareKindResultSchema = object({
17238
17232
  kindId: number().int(),
17239
17233
  state: RecordKindStateSchema,
17240
17234
  createdIndexes: array(string()),
17241
- /** The boot guard: the kind is empty while its legacy table still holds rows. */
17242
- adoptionPending: object({
17243
- legacyTable: string(),
17244
- legacyRows: number().int()
17245
- }).nullable()
17235
+ /**
17236
+ * RETIRED (D900): always `null`. It carried the records-migration boot guard;
17237
+ * it stays on the wire, null, because an addon built before the removal reads
17238
+ * an ABSENT field as "adoption pending" and refuses to start.
17239
+ */
17240
+ adoptionPending: _null()
17246
17241
  });
17247
17242
  /** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
17248
17243
  var SecretRefsList = array(string());
@@ -17415,26 +17410,7 @@ method(object({ ownerPrefix: string().min(1).optional() }), object({ tables: arr
17415
17410
  }), object({ kinds: array(StorageKindSchema) }), { auth: "admin" }), method(RecordQueryInputSchema.extend({
17416
17411
  owner: string().min(1),
17417
17412
  kind: RecordKindNameSchema
17418
- }), RecordQueryResultSchema, { auth: "admin" }), method(object({
17419
- owner: string().min(1),
17420
- kind: RecordKindNameSchema,
17421
- records: array(RecordInputSchema).max(RECORD_BATCH_MAX),
17422
- /** The LAST batch: the copy is complete, the boot guard stops asking. */
17423
- complete: boolean().optional()
17424
- }).refine((input) => input.records.length > 0 || input.complete === true, { message: "records must be non-empty unless complete is true" }), object({ adopted: number().int() }), {
17425
- kind: "mutation",
17426
- auth: "admin"
17427
- }), method(object({
17428
- collection: string().min(1),
17429
- cursor: string().optional(),
17430
- limit: number().int().min(1).max(1e3).optional()
17431
- }), object({
17432
- rows: array(object({
17433
- id: string(),
17434
- data: record(string(), unknown())
17435
- })),
17436
- nextCursor: string().nullable()
17437
- }), { auth: "admin" }), method(object({ collection: string().min(1) }), object({ adopted: boolean() }), { auth: "admin" });
17413
+ }), RecordQueryResultSchema, { auth: "admin" });
17438
17414
  /**
17439
17415
  * record-entries - the ONE admin surface for every list of user-created entries
17440
17416
  * (D881): notification targets, brokers, LLM profiles, anything an addon
@@ -61299,9 +61275,24 @@ var NpuInfoSchema = object({
61299
61275
  name: string().optional(),
61300
61276
  generation: _enum(["xdna1", "xdna2"]).optional()
61301
61277
  });
61278
+ var CoralBusSchema = _enum(["usb", "pci"]);
61302
61279
  var CoralInfoSchema = object({
61303
61280
  type: literal("coral-edgetpu"),
61304
- bus: string().optional()
61281
+ /** Legacy single-bus report (older nodes) — read via `coralUsableUnits`. */
61282
+ bus: string().optional(),
61283
+ /** Legacy USB unit count (older nodes) — read via `coralUsableUnits`. */
61284
+ count: number().int().nonnegative().optional(),
61285
+ /** Usable units per bus — each one is its own `edgetpu:<bus>[:N]` device. */
61286
+ units: array(object({
61287
+ bus: CoralBusSchema,
61288
+ count: number().int().nonnegative()
61289
+ })).readonly().optional(),
61290
+ /** Present-but-unusable units, each with its typed reason (never "absent"). */
61291
+ unavailable: array(object({
61292
+ bus: CoralBusSchema,
61293
+ count: number().int().nonnegative(),
61294
+ reason: _enum(["driver-missing", "device-not-accessible"])
61295
+ })).readonly().optional()
61305
61296
  });
61306
61297
  var HardwareInfoSchema = object({
61307
61298
  platform: HardwarePlatformSchema,
@@ -70048,6 +70039,12 @@ Object.freeze({
70048
70039
  addonId: null,
70049
70040
  access: "view"
70050
70041
  },
70042
+ "deviceHistory.queryMany": {
70043
+ capName: "device-history",
70044
+ capScope: "system",
70045
+ addonId: null,
70046
+ access: "view"
70047
+ },
70051
70048
  "deviceHistory.queryNode": {
70052
70049
  capName: "device-history",
70053
70050
  capScope: "system",
@@ -75268,24 +75265,12 @@ Object.freeze({
75268
75265
  addonId: null,
75269
75266
  access: "create"
75270
75267
  },
75271
- "storageAdmin.adoptRecords": {
75272
- capName: "storage-admin",
75273
- capScope: "system",
75274
- addonId: null,
75275
- access: "create"
75276
- },
75277
75268
  "storageAdmin.dropCollection": {
75278
75269
  capName: "storage-admin",
75279
75270
  capScope: "system",
75280
75271
  addonId: null,
75281
75272
  access: "delete"
75282
75273
  },
75283
- "storageAdmin.isAdoptedLegacyTable": {
75284
- capName: "storage-admin",
75285
- capScope: "system",
75286
- addonId: null,
75287
- access: "view"
75288
- },
75289
75274
  "storageAdmin.listKinds": {
75290
75275
  capName: "storage-admin",
75291
75276
  capScope: "system",
@@ -75298,12 +75283,6 @@ Object.freeze({
75298
75283
  addonId: null,
75299
75284
  access: "view"
75300
75285
  },
75301
- "storageAdmin.readLegacyCollection": {
75302
- capName: "storage-admin",
75303
- capScope: "system",
75304
- addonId: null,
75305
- access: "view"
75306
- },
75307
75286
  "storageAdmin.readRecords": {
75308
75287
  capName: "storage-admin",
75309
75288
  capScope: "system",
@@ -79118,12 +79097,6 @@ Object.freeze({
79118
79097
  form: "single",
79119
79098
  optional: false
79120
79099
  }],
79121
- "storageAdmin.adoptRecords": [{
79122
- name: "records",
79123
- form: "object-array",
79124
- optional: false,
79125
- itemField: "deviceId"
79126
- }],
79127
79100
  "storageAdmin.readRecords": [{
79128
79101
  name: "deviceId",
79129
79102
  form: "single",
@@ -81349,12 +81322,6 @@ Object.defineProperty(exports, "scriptRunnerCapability", {
81349
81322
  return scriptRunnerCapability;
81350
81323
  }
81351
81324
  });
81352
- Object.defineProperty(exports, "settingsBrokersAdoptsFrom", {
81353
- enumerable: true,
81354
- get: function() {
81355
- return settingsBrokersAdoptsFrom;
81356
- }
81357
- });
81358
81325
  Object.defineProperty(exports, "smokeCapability", {
81359
81326
  enumerable: true,
81360
81327
  get: function() {
@@ -5546,7 +5546,7 @@ var ZodIssueCode = {
5546
5546
  var ZodFirstPartyTypeKind;
5547
5547
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5548
5548
  //#endregion
5549
- //#region ../types/dist/sleep-BSuCCFjf.mjs
5549
+ //#region ../types/dist/sleep-CSuN0thG.mjs
5550
5550
  /**
5551
5551
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5552
5552
  * window to float samples (D455).
@@ -8164,7 +8164,13 @@ var RecordKindDeclarationSchema = object({
8164
8164
  secretPaths: array(string().min(1)).default([]),
8165
8165
  /** The id key of each array that carries a secret (`{ headers: 'name' }`). */
8166
8166
  secretArrayKeys: record(string(), string()).default({}),
8167
- /** The legacy table this kind adopts from; the boot guard reads it (D853: no migration code). */
8167
+ /**
8168
+ * RETIRED (D900): the legacy table a kind adopted from during the records
8169
+ * migration. Nothing declares it any more and nothing reads it; the schema
8170
+ * still ACCEPTS it because the catalog rows the migration wrote carry it
8171
+ * (an orphaned kind is never redeclared) and an addon built before the
8172
+ * removal still sends it. Never set it.
8173
+ */
8168
8174
  adoptsFrom: string().min(1).optional(),
8169
8175
  /** Kinds that must agree through `transact` sit in one file under one family name. */
8170
8176
  transactFamily: string().min(1).optional(),
@@ -8239,7 +8245,6 @@ function defineRecordKinds(specs) {
8239
8245
  maxDataBytes: spec.maxDataBytes,
8240
8246
  secretPaths: [...secretPaths],
8241
8247
  secretArrayKeys: spec.secretArrayKeys === void 0 ? void 0 : { ...spec.secretArrayKeys },
8242
- adoptsFrom: spec.adoptsFrom,
8243
8248
  transactFamily: spec.transactFamily,
8244
8249
  entry: spec.entry === void 0 ? void 0 : {
8245
8250
  title: spec.entry.title,
@@ -8283,7 +8288,6 @@ function defineEntryKind(name, spec) {
8283
8288
  ...spec.database === void 0 ? {} : { database: spec.database },
8284
8289
  ...spec.indexes === void 0 ? {} : { indexes: spec.indexes },
8285
8290
  ...spec.secretArrayKeys === void 0 ? {} : { secretArrayKeys: spec.secretArrayKeys },
8286
- ...spec.adoptsFrom === void 0 ? {} : { adoptsFrom: spec.adoptsFrom },
8287
8291
  entry: {
8288
8292
  title: spec.title,
8289
8293
  ...spec.nameField === void 0 ? {} : { nameField: spec.nameField }
@@ -8292,16 +8296,6 @@ function defineEntryKind(name, spec) {
8292
8296
  if (defined === void 0) throw new DeclarationRefusedError(`entry kind "${name}" was not built`);
8293
8297
  return defined;
8294
8298
  }
8295
- /**
8296
- * Legacy source for broker entry adoption (B2): brokers live in addon-settings
8297
- * as one row `<addonId>.brokers` whose value is an array until records-adopt
8298
- * copies them into the entry kind.
8299
- */
8300
- var SETTINGS_BROKERS_ADOPTS_PREFIX = "@settings-brokers/";
8301
- /** The `adoptsFrom` value for an addon's broker entry kind. */
8302
- function settingsBrokersAdoptsFrom(addonId) {
8303
- return `${SETTINGS_BROKERS_ADOPTS_PREFIX}${addonId}`;
8304
- }
8305
8299
  /** Shared Zod schemas used across streaming capabilities. */
8306
8300
  var CamProfileSchema = _enum([
8307
8301
  "high",
@@ -17237,11 +17231,12 @@ var DeclareKindResultSchema = object({
17237
17231
  kindId: number().int(),
17238
17232
  state: RecordKindStateSchema,
17239
17233
  createdIndexes: array(string()),
17240
- /** The boot guard: the kind is empty while its legacy table still holds rows. */
17241
- adoptionPending: object({
17242
- legacyTable: string(),
17243
- legacyRows: number().int()
17244
- }).nullable()
17234
+ /**
17235
+ * RETIRED (D900): always `null`. It carried the records-migration boot guard;
17236
+ * it stays on the wire, null, because an addon built before the removal reads
17237
+ * an ABSENT field as "adoption pending" and refuses to start.
17238
+ */
17239
+ adoptionPending: _null()
17245
17240
  });
17246
17241
  /** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
17247
17242
  var SecretRefsList = array(string());
@@ -17414,26 +17409,7 @@ method(object({ ownerPrefix: string().min(1).optional() }), object({ tables: arr
17414
17409
  }), object({ kinds: array(StorageKindSchema) }), { auth: "admin" }), method(RecordQueryInputSchema.extend({
17415
17410
  owner: string().min(1),
17416
17411
  kind: RecordKindNameSchema
17417
- }), RecordQueryResultSchema, { auth: "admin" }), method(object({
17418
- owner: string().min(1),
17419
- kind: RecordKindNameSchema,
17420
- records: array(RecordInputSchema).max(RECORD_BATCH_MAX),
17421
- /** The LAST batch: the copy is complete, the boot guard stops asking. */
17422
- complete: boolean().optional()
17423
- }).refine((input) => input.records.length > 0 || input.complete === true, { message: "records must be non-empty unless complete is true" }), object({ adopted: number().int() }), {
17424
- kind: "mutation",
17425
- auth: "admin"
17426
- }), method(object({
17427
- collection: string().min(1),
17428
- cursor: string().optional(),
17429
- limit: number().int().min(1).max(1e3).optional()
17430
- }), object({
17431
- rows: array(object({
17432
- id: string(),
17433
- data: record(string(), unknown())
17434
- })),
17435
- nextCursor: string().nullable()
17436
- }), { auth: "admin" }), method(object({ collection: string().min(1) }), object({ adopted: boolean() }), { auth: "admin" });
17412
+ }), RecordQueryResultSchema, { auth: "admin" });
17437
17413
  /**
17438
17414
  * record-entries - the ONE admin surface for every list of user-created entries
17439
17415
  * (D881): notification targets, brokers, LLM profiles, anything an addon
@@ -61298,9 +61274,24 @@ var NpuInfoSchema = object({
61298
61274
  name: string().optional(),
61299
61275
  generation: _enum(["xdna1", "xdna2"]).optional()
61300
61276
  });
61277
+ var CoralBusSchema = _enum(["usb", "pci"]);
61301
61278
  var CoralInfoSchema = object({
61302
61279
  type: literal("coral-edgetpu"),
61303
- bus: string().optional()
61280
+ /** Legacy single-bus report (older nodes) — read via `coralUsableUnits`. */
61281
+ bus: string().optional(),
61282
+ /** Legacy USB unit count (older nodes) — read via `coralUsableUnits`. */
61283
+ count: number().int().nonnegative().optional(),
61284
+ /** Usable units per bus — each one is its own `edgetpu:<bus>[:N]` device. */
61285
+ units: array(object({
61286
+ bus: CoralBusSchema,
61287
+ count: number().int().nonnegative()
61288
+ })).readonly().optional(),
61289
+ /** Present-but-unusable units, each with its typed reason (never "absent"). */
61290
+ unavailable: array(object({
61291
+ bus: CoralBusSchema,
61292
+ count: number().int().nonnegative(),
61293
+ reason: _enum(["driver-missing", "device-not-accessible"])
61294
+ })).readonly().optional()
61304
61295
  });
61305
61296
  var HardwareInfoSchema = object({
61306
61297
  platform: HardwarePlatformSchema,
@@ -70047,6 +70038,12 @@ Object.freeze({
70047
70038
  addonId: null,
70048
70039
  access: "view"
70049
70040
  },
70041
+ "deviceHistory.queryMany": {
70042
+ capName: "device-history",
70043
+ capScope: "system",
70044
+ addonId: null,
70045
+ access: "view"
70046
+ },
70050
70047
  "deviceHistory.queryNode": {
70051
70048
  capName: "device-history",
70052
70049
  capScope: "system",
@@ -75267,24 +75264,12 @@ Object.freeze({
75267
75264
  addonId: null,
75268
75265
  access: "create"
75269
75266
  },
75270
- "storageAdmin.adoptRecords": {
75271
- capName: "storage-admin",
75272
- capScope: "system",
75273
- addonId: null,
75274
- access: "create"
75275
- },
75276
75267
  "storageAdmin.dropCollection": {
75277
75268
  capName: "storage-admin",
75278
75269
  capScope: "system",
75279
75270
  addonId: null,
75280
75271
  access: "delete"
75281
75272
  },
75282
- "storageAdmin.isAdoptedLegacyTable": {
75283
- capName: "storage-admin",
75284
- capScope: "system",
75285
- addonId: null,
75286
- access: "view"
75287
- },
75288
75273
  "storageAdmin.listKinds": {
75289
75274
  capName: "storage-admin",
75290
75275
  capScope: "system",
@@ -75297,12 +75282,6 @@ Object.freeze({
75297
75282
  addonId: null,
75298
75283
  access: "view"
75299
75284
  },
75300
- "storageAdmin.readLegacyCollection": {
75301
- capName: "storage-admin",
75302
- capScope: "system",
75303
- addonId: null,
75304
- access: "view"
75305
- },
75306
75285
  "storageAdmin.readRecords": {
75307
75286
  capName: "storage-admin",
75308
75287
  capScope: "system",
@@ -79117,12 +79096,6 @@ Object.freeze({
79117
79096
  form: "single",
79118
79097
  optional: false
79119
79098
  }],
79120
- "storageAdmin.adoptRecords": [{
79121
- name: "records",
79122
- form: "object-array",
79123
- optional: false,
79124
- itemField: "deviceId"
79125
- }],
79126
79099
  "storageAdmin.readRecords": [{
79127
79100
  name: "deviceId",
79128
79101
  form: "single",
@@ -80874,4 +80847,4 @@ function bestLocationMatch(externalName, existing, threshold = .8) {
80874
80847
  var MB = 1024 * 1024;
80875
80848
  1024 * MB, 3072 * MB;
80876
80849
  //#endregion
80877
- export { oauthIntegrationCapability as $, connectivityCapability as A, boolean as At, floodCapability as B, EventCategory as Bt, buildAddonRouteProvider as C, defineEntryKind as Ct, carbonMonoxideCapability as D, settingsBrokersAdoptsFrom as Dt, calendarSourceCapability as E, nodePin as Et, deviceAdoptionCapability as F, record as Ft, lawnMowerControlCapability as G, humidifierCapability as H, deviceExportCapability as I, string as It, motionCapability as J, lockControlCapability as K, enumSensorCapability as L, union as Lt, controlCapability as M, literal as Mt, coverCapability as N, number as Nt, climateControlCapability as O, _enum as Ot, deviceAdminLinkCapability as P, object as Pt, numericSensorCapability as Q, eventEmitterCapability as R, unknown as Rt, brokerCapability as S, createEvent as St, buttonCapability as T, entryBody as Tt, humiditySensorCapability as U, gasCapability as V, imageCapability as W, notificationOutputCapability as X, normalizeUnit as Y, notifierCapability as Z, automationControlCapability as _, DeviceRole as _t, COCO_TO_MACRO as a, scriptRunnerCapability as at, binaryCapability as b, BaseAddon as bt, FanDirectionSchema as c, tamperCapability as ct, TargetSchema as d, vacuumControlCapability as dt, parseAdminBase as et, accessoriesCapability as f, valveCapability as ft, ambientLightSensorCapability as g, DeviceFeature as gt, alarmPanelCapability as h, weatherCapability as ht, CAMERA_SWITCH_ORDER as i, pressureSensorCapability as it, contactCapability as j, discriminatedUnion as jt, colorCapability as k, array as kt, HvacModeSchema as l, temperatureSensorCapability as lt, airQualitySensorCapability as m, waterHeaterCapability as mt, BaseDevice as n, prepareNotification as nt, CameraSwitchIdSchema as o, smokeCapability as ot, addonRoutesCapability as p, vibrationCapability as pt, mediaPlayerCapability as q, BaseDeviceProvider as r, presenceCapability as rt, EnumSensorDateTimeFormatSchema as s, switchCapability as st, AlarmArmModeSchema as t, powerMeterCapability as tt, MediaPlayerRepeatSchema as u, updateCapability as ut, batteryCapability as v, DeviceType as vt, buildDeviceAdminUrl as w, defineRecordKinds as wt, brightnessCapability as x, RecordSecretUnavailableError as xt, bestLocationMatch as y, errMsg as yt, fanControlCapability as z, url as zt };
80850
+ export { oauthIntegrationCapability as $, connectivityCapability as A, discriminatedUnion as At, floodCapability as B, buildAddonRouteProvider as C, defineEntryKind as Ct, carbonMonoxideCapability as D, _enum as Dt, calendarSourceCapability as E, nodePin as Et, deviceAdoptionCapability as F, string as Ft, lawnMowerControlCapability as G, humidifierCapability as H, deviceExportCapability as I, union as It, motionCapability as J, lockControlCapability as K, enumSensorCapability as L, unknown as Lt, controlCapability as M, number as Mt, coverCapability as N, object as Nt, climateControlCapability as O, array as Ot, deviceAdminLinkCapability as P, record as Pt, numericSensorCapability as Q, eventEmitterCapability as R, url as Rt, brokerCapability as S, createEvent as St, buttonCapability as T, entryBody as Tt, humiditySensorCapability as U, gasCapability as V, imageCapability as W, notificationOutputCapability as X, normalizeUnit as Y, notifierCapability as Z, automationControlCapability as _, DeviceRole as _t, COCO_TO_MACRO as a, scriptRunnerCapability as at, binaryCapability as b, BaseAddon as bt, FanDirectionSchema as c, tamperCapability as ct, TargetSchema as d, vacuumControlCapability as dt, parseAdminBase as et, accessoriesCapability as f, valveCapability as ft, ambientLightSensorCapability as g, DeviceFeature as gt, alarmPanelCapability as h, weatherCapability as ht, CAMERA_SWITCH_ORDER as i, pressureSensorCapability as it, contactCapability as j, literal as jt, colorCapability as k, boolean as kt, HvacModeSchema as l, temperatureSensorCapability as lt, airQualitySensorCapability as m, waterHeaterCapability as mt, BaseDevice as n, prepareNotification as nt, CameraSwitchIdSchema as o, smokeCapability as ot, addonRoutesCapability as p, vibrationCapability as pt, mediaPlayerCapability as q, BaseDeviceProvider as r, presenceCapability as rt, EnumSensorDateTimeFormatSchema as s, switchCapability as st, AlarmArmModeSchema as t, powerMeterCapability as tt, MediaPlayerRepeatSchema as u, updateCapability as ut, batteryCapability as v, DeviceType as vt, buildDeviceAdminUrl as w, defineRecordKinds as wt, brightnessCapability as x, RecordSecretUnavailableError as xt, bestLocationMatch as y, errMsg as yt, fanControlCapability as z, EventCategory as zt };
@@ -24,7 +24,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  enumerable: true
25
25
  }) : target, mod));
26
26
  //#endregion
27
- const require_dist = require("../dist-DpZriMEh.js");
27
+ const require_dist = require("../dist-C6Zhog8_.js");
28
28
  let node_crypto = require("node:crypto");
29
29
  require("node:zlib");
30
30
  let node_fs = require("node:fs");
@@ -1,4 +1,4 @@
1
- import { $ as oauthIntegrationCapability, Bt as EventCategory, C as buildAddonRouteProvider, Et as nodePin, I as deviceExportCapability, It as string, a as COCO_TO_MACRO, bt as BaseAddon, c as FanDirectionSchema, i as CAMERA_SWITCH_ORDER, l as HvacModeSchema, o as CameraSwitchIdSchema, p as addonRoutesCapability, t as AlarmArmModeSchema, u as MediaPlayerRepeatSchema } from "../dist-CziryNRD.mjs";
1
+ import { $ as oauthIntegrationCapability, C as buildAddonRouteProvider, Et as nodePin, Ft as string, I as deviceExportCapability, a as COCO_TO_MACRO, bt as BaseAddon, c as FanDirectionSchema, i as CAMERA_SWITCH_ORDER, l as HvacModeSchema, o as CameraSwitchIdSchema, p as addonRoutesCapability, t as AlarmArmModeSchema, u as MediaPlayerRepeatSchema, zt as EventCategory } from "../dist-CG5youVr.mjs";
2
2
  import { createHmac, timingSafeEqual } from "node:crypto";
3
3
  import "node:zlib";
4
4
  import "node:fs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-homeassistant",
3
- "version": "1.2.607",
3
+ "version": "1.2.609",
4
4
  "description": "Home Assistant device provider addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",