@camstack/system 1.2.451 → 1.2.453

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.
Files changed (82) hide show
  1. package/dist/{agent-https-CMz4S56_.js → agent-https-DL2cFOQv.js} +2 -2
  2. package/dist/{agent-https-D6lRxHma.mjs → agent-https-XAZFJjOS.mjs} +2 -2
  3. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/alerts/alerts.addon.js +2 -2
  8. package/dist/builtins/alerts/alerts.addon.mjs +2 -2
  9. package/dist/builtins/autotrack/index.js +1 -1
  10. package/dist/builtins/autotrack/index.mjs +1 -1
  11. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  12. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
  13. package/dist/builtins/calendars/calendars.addon.js +1 -1
  14. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  15. package/dist/builtins/camera-grid/index.js +1 -1
  16. package/dist/builtins/camera-grid/index.mjs +1 -1
  17. package/dist/builtins/composer/composer.addon.js +2 -2
  18. package/dist/builtins/composer/composer.addon.mjs +2 -2
  19. package/dist/builtins/console-logging/index.js +1 -1
  20. package/dist/builtins/console-logging/index.mjs +1 -1
  21. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  22. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  23. package/dist/builtins/device-history/device-history.addon.js +1 -1
  24. package/dist/builtins/device-history/device-history.addon.mjs +1 -1
  25. package/dist/builtins/device-manager/device-manager.addon.js +1 -1
  26. package/dist/builtins/device-manager/device-manager.addon.mjs +1 -1
  27. package/dist/builtins/hub-forwarder/index.js +1 -1
  28. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  29. package/dist/builtins/keychain/index.js +4 -4
  30. package/dist/builtins/keychain/index.mjs +4 -4
  31. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  32. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  33. package/dist/builtins/local-auth/local-auth.addon.js +3 -3
  34. package/dist/builtins/local-auth/local-auth.addon.mjs +3 -3
  35. package/dist/builtins/local-network/local-network.addon.js +2 -2
  36. package/dist/builtins/local-network/local-network.addon.mjs +2 -2
  37. package/dist/builtins/loki-logging/index.js +1 -1
  38. package/dist/builtins/loki-logging/index.mjs +1 -1
  39. package/dist/builtins/native-metrics/native-metrics.addon.js +15 -2
  40. package/dist/builtins/native-metrics/native-metrics.addon.mjs +15 -2
  41. package/dist/builtins/platform-probe/index.js +1 -1
  42. package/dist/builtins/platform-probe/index.mjs +1 -1
  43. package/dist/builtins/record-entries/index.js +1 -1
  44. package/dist/builtins/record-entries/index.mjs +1 -1
  45. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  46. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  47. package/dist/builtins/snapshot/index.js +1 -1
  48. package/dist/builtins/snapshot/index.mjs +1 -1
  49. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  50. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  51. package/dist/builtins/sqlite-storage/index.js +1 -1
  52. package/dist/builtins/sqlite-storage/index.mjs +1 -1
  53. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +2 -2
  54. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +2 -2
  55. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  56. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  57. package/dist/builtins/system-config/system-config.addon.js +3 -3
  58. package/dist/builtins/system-config/system-config.addon.mjs +3 -3
  59. package/dist/builtins/winston-logging/index.js +1 -1
  60. package/dist/builtins/winston-logging/index.mjs +1 -1
  61. package/dist/{composition-sources-BQmhc3se.js → composition-sources-DwEvAg5Z.js} +1 -1
  62. package/dist/{composition-sources-DzuruDVY.mjs → composition-sources-jYNpYEhS.mjs} +1 -1
  63. package/dist/{constants-BPWA-r-Y.js → constants-B3fDUnJt.js} +1 -1
  64. package/dist/{constants-gzGZbnwO.mjs → constants-DGBB3tNi.mjs} +1 -1
  65. package/dist/{device-ca-D05nqNXE.mjs → device-ca-Dpkxg7px.mjs} +1 -1
  66. package/dist/{device-ca-75rt3U_U.js → device-ca-njpTMpJC.js} +1 -1
  67. package/dist/{dist-DV2ll9Hi.mjs → dist-B9C2v4SG.mjs} +89 -4
  68. package/dist/{dist-Ct88catN.js → dist-DyjNaeIj.js} +89 -4
  69. package/dist/file-host-worker.js +1 -1
  70. package/dist/file-host-worker.mjs +1 -1
  71. package/dist/{hub-mdns-ciao-BPOg2iyc.mjs → hub-mdns-ciao-B4wHDMvk.mjs} +2 -2
  72. package/dist/{hub-mdns-ciao-DAU1WttG.js → hub-mdns-ciao-DpdFaLz-.js} +2 -2
  73. package/dist/index.js +17 -9
  74. package/dist/index.mjs +17 -9
  75. package/dist/kernel/cap-router-builder.d.ts +9 -0
  76. package/dist/{phase6-declare-gate-C6WqagkC.js → phase6-declare-gate-BlTDMI3t.js} +1 -1
  77. package/dist/{phase6-declare-gate-BJplW6tX.mjs → phase6-declare-gate-CNxKbsvm.mjs} +1 -1
  78. package/dist/{restore-archive-Cprdh3P9.js → restore-archive-BeGP9IYs.js} +1 -1
  79. package/dist/{restore-archive-Jiz63mVB.mjs → restore-archive-D7HwsszI.mjs} +1 -1
  80. package/dist/{wal-maintenance-_tiSo8gz.mjs → wal-maintenance-HEmw2Fik.mjs} +0 -0
  81. package/dist/{wal-maintenance-6SrioJOn.js → wal-maintenance-i3GRvmQW.js} +0 -0
  82. package/package.json +1 -1
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-Ct88catN.js");
6
+ const require_dist = require("../../dist-DyjNaeIj.js");
7
7
  const require_retired_settings_keys = require("../../retired-settings-keys-D_VwZiDt.js");
8
- const require_wal_maintenance = require("../../wal-maintenance-6SrioJOn.js");
8
+ const require_wal_maintenance = require("../../wal-maintenance-i3GRvmQW.js");
9
9
  const require_sqlite_snapshot_protocol = require("../../sqlite-snapshot-protocol-B9OndqZv.js");
10
10
  const require_wal_checkpoint_policy = require("../../wal-checkpoint-policy-d2z2qPqx.js");
11
11
  let node_fs_promises = require("node:fs/promises");
@@ -1,6 +1,6 @@
1
- import { $ as STORAGE_ADMIN_SCOPED_BASES, $i as parseSettingsArrayAdoptsFrom, $r as NoCallerError, Gn as recordsCapability, Hr as BaseAddon, It as dataStoreProviderCapability, Jr as DeclarationRefusedError, Lt as databaseSnapshotCapability, Q as STORAGE_ADMIN_MOVED_COLLECTIONS, S as DATA_STORE_DATABASES, Vr as errMsg, Yi as normalizeSecretOwner, _i as UnknownRecordKindError, _t as bareAddonId, b as DATABASE_SNAPSHOT_SUFFIX, dr as storageAdminCapability, ea as parseSettingsBrokersAdoptsFrom, ii as RECORD_SWEEP_INTERVAL_MS, si as RUNTIME_DEFAULTS, ui as RecordKindDeclarationSchema, wr as vectorStoreCapability, x as DATABASE_SNAPSHOT_TIMEOUT_MS, y as DATABASE_SNAPSHOT_PARTIAL_SUFFIX } from "../../dist-DV2ll9Hi.mjs";
1
+ import { $ as STORAGE_ADMIN_SCOPED_BASES, $i as parseSettingsArrayAdoptsFrom, $r as NoCallerError, Gn as recordsCapability, Hr as BaseAddon, It as dataStoreProviderCapability, Jr as DeclarationRefusedError, Lt as databaseSnapshotCapability, Q as STORAGE_ADMIN_MOVED_COLLECTIONS, S as DATA_STORE_DATABASES, Vr as errMsg, Yi as normalizeSecretOwner, _i as UnknownRecordKindError, _t as bareAddonId, b as DATABASE_SNAPSHOT_SUFFIX, dr as storageAdminCapability, ea as parseSettingsBrokersAdoptsFrom, ii as RECORD_SWEEP_INTERVAL_MS, si as RUNTIME_DEFAULTS, ui as RecordKindDeclarationSchema, wr as vectorStoreCapability, x as DATABASE_SNAPSHOT_TIMEOUT_MS, y as DATABASE_SNAPSHOT_PARTIAL_SUFFIX } from "../../dist-B9C2v4SG.mjs";
2
2
  import { i as retiredKeyStoreOf, n as purgeRetiredSettingsKeys } from "../../retired-settings-keys-Bhwe4ymb.mjs";
3
- import { C as RecordsEngine, D as callVector, E as callRecords, O as controlTargetOf, S as trustResult, T as callData, _ as collectTransferables, a as WalMaintenance, c as vectorProviderOfOwnedFile, d as CrossDatabaseTransactError, f as DatabaseBusyError, l as SqliteSettingsBackend, m as rehydrateError, o as createVectorIndex, p as DuplicatePlacementError, s as vectorProviderOf, u as CollectionPlacementError, v as isFileHostMessage, w as callControl } from "../../wal-maintenance-_tiSo8gz.mjs";
3
+ import { C as RecordsEngine, D as callVector, E as callRecords, O as controlTargetOf, S as trustResult, T as callData, _ as collectTransferables, a as WalMaintenance, c as vectorProviderOfOwnedFile, d as CrossDatabaseTransactError, f as DatabaseBusyError, l as SqliteSettingsBackend, m as rehydrateError, o as createVectorIndex, p as DuplicatePlacementError, s as vectorProviderOf, u as CollectionPlacementError, v as isFileHostMessage, w as callControl } from "../../wal-maintenance-HEmw2Fik.mjs";
4
4
  import { r as isSnapshotWorkerMessage } from "../../sqlite-snapshot-protocol-2QaTouWV.mjs";
5
5
  import { a as isWorkerMessage, t as WAL_CHECKPOINT_LARGE_PASS_FRAMES } from "../../wal-checkpoint-policy-BahrTtyD.mjs";
6
6
  import { createRequire } from "node:module";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-Ct88catN.js");
6
+ const require_dist = require("../../dist-DyjNaeIj.js");
7
7
  const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { $n as resolveLocationMode, Hi as isSecretMarker, Hr as BaseAddon, Ji as normalizeNodeId, Mi as defineRecordKinds, Mn as modeMayWrite, On as mayReadLocation, Tr as withLocationMode, W as LegacyStorageLocationDefaultSchema, Xi as parseJsonObject, ai as REDACTED_SECRET, at as StorageLocationModeSchema, cn as gbToBytes, da as transformSecretWrite, en as evictionPolicyOfLocation, fr as storageCapability, ia as resolveSecretMarkers, it as StorageCleanupJobSchema, kn as mayWriteToLocation, ma as EventCategory, mn as isLocationEnabled, oa as secretTreeFromPaths, or as settingsStoreCapability, ot as StorageLocationTypeSchema, pr as storageMigrationCapability, st as StorageMigrationJobSchema, wi as collectSecretConfigKeys, xn as legacyModeOf } from "../../dist-DV2ll9Hi.mjs";
1
+ import { $n as resolveLocationMode, Hi as isSecretMarker, Hr as BaseAddon, Ji as normalizeNodeId, Mi as defineRecordKinds, Mn as modeMayWrite, On as mayReadLocation, Tr as withLocationMode, W as LegacyStorageLocationDefaultSchema, Xi as parseJsonObject, ai as REDACTED_SECRET, at as StorageLocationModeSchema, cn as gbToBytes, da as transformSecretWrite, en as evictionPolicyOfLocation, fr as storageCapability, ia as resolveSecretMarkers, it as StorageCleanupJobSchema, kn as mayWriteToLocation, ma as EventCategory, mn as isLocationEnabled, oa as secretTreeFromPaths, or as settingsStoreCapability, ot as StorageLocationTypeSchema, pr as storageMigrationCapability, st as StorageMigrationJobSchema, wi as collectSecretConfigKeys, xn as legacyModeOf } from "../../dist-B9C2v4SG.mjs";
2
2
  import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
@@ -3,11 +3,11 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-Ct88catN.js");
6
+ const require_dist = require("../../dist-DyjNaeIj.js");
7
7
  const require_safe_buffer$1 = require("../../safe-buffer-D3aoa-7X.js");
8
8
  const require_x509_es = require("../../x509.es-C4cOo48M.js");
9
- const require_constants$8 = require("../../constants-BPWA-r-Y.js");
10
- const require_agent_https = require("../../agent-https-CMz4S56_.js");
9
+ const require_constants$8 = require("../../constants-B3fDUnJt.js");
10
+ const require_agent_https = require("../../agent-https-DL2cFOQv.js");
11
11
  const require_src$1 = require("../../src-CnAqG6EF.js");
12
12
  let zod = require("zod");
13
13
  let node_crypto = require("node:crypto");
@@ -1,9 +1,9 @@
1
1
  import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM, r as __exportAll, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
2
- import { Hr as BaseAddon, Li as hydrateSchema, Vr as errMsg, ji as defineCustomActions, ki as customAction, nt as ServerNameSchema, sr as shortHostname } from "../../dist-DV2ll9Hi.mjs";
2
+ import { Hr as BaseAddon, Li as hydrateSchema, Vr as errMsg, ji as defineCustomActions, ki as customAction, nt as ServerNameSchema, sr as shortHostname } from "../../dist-B9C2v4SG.mjs";
3
3
  import { t as require_safe_buffer } from "../../safe-buffer-B1OjL1I9.mjs";
4
4
  import { c as Pkcs10CertificateRequest } from "../../x509.es-DK__ETIe.mjs";
5
- import { a as MESH_CA_KEY_REF, i as MESH_CA_FIELD, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY } from "../../constants-gzGZbnwO.mjs";
6
- import { $ as generateMeshKeyPair, B as systemConfigRecordKinds, F as AGENT_HTTPS_NAMES_COLLECTION, G as describeMeshLeaf, H as MESH_NODE_CERTIFICATES_COLUMNS, I as AGENT_HTTPS_NAMES_COLUMNS, L as AgentHttpsNames, Q as generateMeshCa, R as getProcessAgentHttpsNames, U as MeshCertificateRegistry, V as MESH_NODE_CERTIFICATES_COLLECTION, X as createMeshCsrPem, Y as caFingerprintCompact, Z as exportMeshPrivateKeyPem, et as isValidAgentNodeId, it as subjectCn, j as isLocalOnlyHostname, nt as issueMeshLeafFromCsr, q as setProcessMeshCertificateRegistry, rt as loadMeshCa, tt as issueMeshLeafForNode, u as isPrivateAddress, z as setProcessAgentHttpsNames } from "../../agent-https-D6lRxHma.mjs";
5
+ import { a as MESH_CA_KEY_REF, i as MESH_CA_FIELD, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY } from "../../constants-DGBB3tNi.mjs";
6
+ import { $ as generateMeshKeyPair, B as systemConfigRecordKinds, F as AGENT_HTTPS_NAMES_COLLECTION, G as describeMeshLeaf, H as MESH_NODE_CERTIFICATES_COLUMNS, I as AGENT_HTTPS_NAMES_COLUMNS, L as AgentHttpsNames, Q as generateMeshCa, R as getProcessAgentHttpsNames, U as MeshCertificateRegistry, V as MESH_NODE_CERTIFICATES_COLLECTION, X as createMeshCsrPem, Y as caFingerprintCompact, Z as exportMeshPrivateKeyPem, et as isValidAgentNodeId, it as subjectCn, j as isLocalOnlyHostname, nt as issueMeshLeafFromCsr, q as setProcessMeshCertificateRegistry, rt as loadMeshCa, tt as issueMeshLeafForNode, u as isPrivateAddress, z as setProcessAgentHttpsNames } from "../../agent-https-XAZFJjOS.mjs";
7
7
  import { t as require_src } from "../../src-hG4grMU4.mjs";
8
8
  import { z } from "zod";
9
9
  import { X509Certificate, createHash, createPrivateKey, randomBytes, randomInt, sign, timingSafeEqual, verify, webcrypto } from "node:crypto";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-Ct88catN.js");
6
+ const require_dist = require("../../dist-DyjNaeIj.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  let node_path = require("node:path");
9
9
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { Hr as BaseAddon, Tn as logDestinationCapability } from "../../dist-DV2ll9Hi.mjs";
1
+ import { Hr as BaseAddon, Tn as logDestinationCapability } from "../../dist-B9C2v4SG.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  import * as path$1 from "node:path";
4
4
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-Ct88catN.js");
1
+ const require_dist = require("./dist-DyjNaeIj.js");
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation
@@ -1,4 +1,4 @@
1
- import { Pr as compositionSourceKey, Vr as errMsg } from "./dist-DV2ll9Hi.mjs";
1
+ import { Pr as compositionSourceKey, Vr as errMsg } from "./dist-B9C2v4SG.mjs";
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation
@@ -1,5 +1,5 @@
1
1
  /** `secret://system/global/meshCaKey` — EC P-256 PKCS#8 PEM of the hub mesh CA. */
2
- var MESH_CA_KEY_REF = require("./dist-Ct88catN.js").buildSecretRef({
2
+ var MESH_CA_KEY_REF = require("./dist-DyjNaeIj.js").buildSecretRef({
3
3
  owner: "system",
4
4
  scope: { kind: "global" },
5
5
  fieldPath: "meshCaKey"
@@ -1,4 +1,4 @@
1
- import { Ci as buildSecretRef } from "./dist-DV2ll9Hi.mjs";
1
+ import { Ci as buildSecretRef } from "./dist-B9C2v4SG.mjs";
2
2
  /** `secret://system/global/meshCaKey` — EC P-256 PKCS#8 PEM of the hub mesh CA. */
3
3
  var MESH_CA_KEY_REF = buildSecretRef({
4
4
  owner: "system",
@@ -1,4 +1,4 @@
1
- import { Ci as buildSecretRef, D as DEVICE_SAN_CREDENTIAL_PREFIX, O as DEVICE_SAN_USER_PREFIX } from "./dist-DV2ll9Hi.mjs";
1
+ import { Ci as buildSecretRef, D as DEVICE_SAN_CREDENTIAL_PREFIX, O as DEVICE_SAN_USER_PREFIX } from "./dist-B9C2v4SG.mjs";
2
2
  import { S as backdatedNotBefore, a as KeyUsageFlags, d as SubjectKeyIdentifierExtension, f as X509Certificate$1, m as cryptoProvider, n as BasicConstraintsExtension, o as KeyUsagesExtension, p as X509CertificateGenerator, r as ExtendedKeyUsageExtension, s as PemConverter, t as AuthorityKeyIdentifierExtension, u as SubjectAlternativeNameExtension } from "./x509.es-DK__ETIe.mjs";
3
3
  import { X509Certificate, createPublicKey, randomBytes, verify, webcrypto } from "node:crypto";
4
4
  //#region src/auth/jwt-signing-key.ts
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-Ct88catN.js");
1
+ const require_dist = require("./dist-DyjNaeIj.js");
2
2
  const require_x509_es = require("./x509.es-C4cOo48M.js");
3
3
  let node_crypto = require("node:crypto");
4
4
  //#region src/auth/jwt-signing-key.ts
@@ -736,7 +736,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
736
736
  return EventCategory;
737
737
  }({});
738
738
  //#endregion
739
- //#region ../types/dist/sleep-BOjuyoPC.mjs
739
+ //#region ../types/dist/sleep-BegKjwUu.mjs
740
740
  /**
741
741
  * The audio chunk plane's byte format, and the ONE expansion from a coded
742
742
  * window to float samples (D455).
@@ -18582,7 +18582,11 @@ var deviceDiscoveryCapability = {
18582
18582
  };
18583
18583
  /**
18584
18584
  * `device-adoption` — generic discovery + adoption surface,
18585
- * system-scoped singleton. The de-HA-ified successor to `ha-discovery`:
18585
+ * system-scoped collection (one provider per integration addon), routed
18586
+ * by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
18587
+ * pin model as `connection-test`. The admin UI keeps using
18588
+ * `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
18589
+ * successor to `ha-discovery`:
18586
18590
  * keyed by `integrationId` (the addon resolves integrationId → broker
18587
18591
  * internally) rather than a connection-specific `brokerId`, and it
18588
18592
  * REUSES the shared `DiscoveredChildDevice` candidate type from
@@ -18747,7 +18751,7 @@ var ResyncResultSchema = z.object({
18747
18751
  var deviceAdoptionCapability = {
18748
18752
  name: "device-adoption",
18749
18753
  scope: "system",
18750
- mode: "singleton",
18754
+ mode: "collection",
18751
18755
  status: {
18752
18756
  schema: AdoptionStatusSchema,
18753
18757
  kind: "poll"
@@ -40305,7 +40309,7 @@ var deviceManagerCapability = {
40305
40309
  auth: "admin"
40306
40310
  }),
40307
40311
  /** List candidate filter chips for an integration via its device-adoption
40308
- * provider — addonId-routed so it never hits the singleton shadow. */
40312
+ * provider — addonId-routed via the collection pin. */
40309
40313
  adoptionListCandidateFilters: method(z.object({
40310
40314
  addonId: z.string(),
40311
40315
  integrationId: z.string()
@@ -61133,6 +61137,14 @@ var DishwasherStatusSchema = z.object({
61133
61137
  rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
61134
61138
  halfLoad: z.boolean(),
61135
61139
  hygienePlus: z.boolean(),
61140
+ /** Extra dry option when the appliance exposes it. */
61141
+ extraDry: z.boolean(),
61142
+ /** Intensive zone (lower basket) when the appliance exposes it. */
61143
+ intensiveZone: z.boolean(),
61144
+ /** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
61145
+ varioSpeedPlus: z.boolean(),
61146
+ /** Child lock (controls disabled on the appliance). */
61147
+ childLock: z.boolean(),
61136
61148
  errorCode: z.number().nullable(),
61137
61149
  errorLabel: z.string().nullable(),
61138
61150
  lastFetchedAt: z.number()
@@ -61184,6 +61196,34 @@ var dishwasherCapability = {
61184
61196
  kind: "mutation",
61185
61197
  auth: "protected"
61186
61198
  }),
61199
+ setExtraDry: method(z.object({
61200
+ deviceId: z.number().int().nonnegative(),
61201
+ on: z.boolean()
61202
+ }), z.void(), {
61203
+ kind: "mutation",
61204
+ auth: "protected"
61205
+ }),
61206
+ setIntensiveZone: method(z.object({
61207
+ deviceId: z.number().int().nonnegative(),
61208
+ on: z.boolean()
61209
+ }), z.void(), {
61210
+ kind: "mutation",
61211
+ auth: "protected"
61212
+ }),
61213
+ setVarioSpeedPlus: method(z.object({
61214
+ deviceId: z.number().int().nonnegative(),
61215
+ on: z.boolean()
61216
+ }), z.void(), {
61217
+ kind: "mutation",
61218
+ auth: "protected"
61219
+ }),
61220
+ setChildLock: method(z.object({
61221
+ deviceId: z.number().int().nonnegative(),
61222
+ on: z.boolean()
61223
+ }), z.void(), {
61224
+ kind: "mutation",
61225
+ auth: "protected"
61226
+ }),
61187
61227
  setOption: method(z.object({
61188
61228
  deviceId: z.number().int().nonnegative(),
61189
61229
  key: z.string().min(1),
@@ -74204,6 +74244,7 @@ var CONTAINER_CHILD_PRIORITY = [
74204
74244
  "fan",
74205
74245
  "vacuum",
74206
74246
  "lawn-mower",
74247
+ "dishwasher",
74207
74248
  "light",
74208
74249
  "switch",
74209
74250
  "siren",
@@ -77063,6 +77104,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
77063
77104
  addonId: null,
77064
77105
  access: "create"
77065
77106
  },
77107
+ "dishwasher.setChildLock": {
77108
+ capName: "dishwasher",
77109
+ capScope: "device",
77110
+ addonId: null,
77111
+ access: "create"
77112
+ },
77113
+ "dishwasher.setExtraDry": {
77114
+ capName: "dishwasher",
77115
+ capScope: "device",
77116
+ addonId: null,
77117
+ access: "create"
77118
+ },
77066
77119
  "dishwasher.setHalfLoad": {
77067
77120
  capName: "dishwasher",
77068
77121
  capScope: "device",
@@ -77075,6 +77128,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
77075
77128
  addonId: null,
77076
77129
  access: "create"
77077
77130
  },
77131
+ "dishwasher.setIntensiveZone": {
77132
+ capName: "dishwasher",
77133
+ capScope: "device",
77134
+ addonId: null,
77135
+ access: "create"
77136
+ },
77078
77137
  "dishwasher.setOption": {
77079
77138
  capName: "dishwasher",
77080
77139
  capScope: "device",
@@ -77093,6 +77152,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
77093
77152
  addonId: null,
77094
77153
  access: "create"
77095
77154
  },
77155
+ "dishwasher.setVarioSpeedPlus": {
77156
+ capName: "dishwasher",
77157
+ capScope: "device",
77158
+ addonId: null,
77159
+ access: "create"
77160
+ },
77096
77161
  "dishwasher.start": {
77097
77162
  capName: "dishwasher",
77098
77163
  capScope: "device",
@@ -84013,6 +84078,16 @@ Object.freeze({
84013
84078
  form: "single",
84014
84079
  optional: false
84015
84080
  }],
84081
+ "dishwasher.setChildLock": [{
84082
+ name: "deviceId",
84083
+ form: "single",
84084
+ optional: false
84085
+ }],
84086
+ "dishwasher.setExtraDry": [{
84087
+ name: "deviceId",
84088
+ form: "single",
84089
+ optional: false
84090
+ }],
84016
84091
  "dishwasher.setHalfLoad": [{
84017
84092
  name: "deviceId",
84018
84093
  form: "single",
@@ -84023,6 +84098,11 @@ Object.freeze({
84023
84098
  form: "single",
84024
84099
  optional: false
84025
84100
  }],
84101
+ "dishwasher.setIntensiveZone": [{
84102
+ name: "deviceId",
84103
+ form: "single",
84104
+ optional: false
84105
+ }],
84026
84106
  "dishwasher.setOption": [{
84027
84107
  name: "deviceId",
84028
84108
  form: "single",
@@ -84038,6 +84118,11 @@ Object.freeze({
84038
84118
  form: "single",
84039
84119
  optional: false
84040
84120
  }],
84121
+ "dishwasher.setVarioSpeedPlus": [{
84122
+ name: "deviceId",
84123
+ form: "single",
84124
+ optional: false
84125
+ }],
84041
84126
  "dishwasher.start": [{
84042
84127
  name: "deviceId",
84043
84128
  form: "single",
@@ -736,7 +736,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
736
736
  return EventCategory;
737
737
  }({});
738
738
  //#endregion
739
- //#region ../types/dist/sleep-BOjuyoPC.mjs
739
+ //#region ../types/dist/sleep-BegKjwUu.mjs
740
740
  /**
741
741
  * The audio chunk plane's byte format, and the ONE expansion from a coded
742
742
  * window to float samples (D455).
@@ -18582,7 +18582,11 @@ var deviceDiscoveryCapability = {
18582
18582
  };
18583
18583
  /**
18584
18584
  * `device-adoption` — generic discovery + adoption surface,
18585
- * system-scoped singleton. The de-HA-ified successor to `ha-discovery`:
18585
+ * system-scoped collection (one provider per integration addon), routed
18586
+ * by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
18587
+ * pin model as `connection-test`. The admin UI keeps using
18588
+ * `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
18589
+ * successor to `ha-discovery`:
18586
18590
  * keyed by `integrationId` (the addon resolves integrationId → broker
18587
18591
  * internally) rather than a connection-specific `brokerId`, and it
18588
18592
  * REUSES the shared `DiscoveredChildDevice` candidate type from
@@ -18747,7 +18751,7 @@ var ResyncResultSchema = zod.z.object({
18747
18751
  var deviceAdoptionCapability = {
18748
18752
  name: "device-adoption",
18749
18753
  scope: "system",
18750
- mode: "singleton",
18754
+ mode: "collection",
18751
18755
  status: {
18752
18756
  schema: AdoptionStatusSchema,
18753
18757
  kind: "poll"
@@ -40305,7 +40309,7 @@ var deviceManagerCapability = {
40305
40309
  auth: "admin"
40306
40310
  }),
40307
40311
  /** List candidate filter chips for an integration via its device-adoption
40308
- * provider — addonId-routed so it never hits the singleton shadow. */
40312
+ * provider — addonId-routed via the collection pin. */
40309
40313
  adoptionListCandidateFilters: method(zod.z.object({
40310
40314
  addonId: zod.z.string(),
40311
40315
  integrationId: zod.z.string()
@@ -61133,6 +61137,14 @@ var DishwasherStatusSchema = zod.z.object({
61133
61137
  rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
61134
61138
  halfLoad: zod.z.boolean(),
61135
61139
  hygienePlus: zod.z.boolean(),
61140
+ /** Extra dry option when the appliance exposes it. */
61141
+ extraDry: zod.z.boolean(),
61142
+ /** Intensive zone (lower basket) when the appliance exposes it. */
61143
+ intensiveZone: zod.z.boolean(),
61144
+ /** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
61145
+ varioSpeedPlus: zod.z.boolean(),
61146
+ /** Child lock (controls disabled on the appliance). */
61147
+ childLock: zod.z.boolean(),
61136
61148
  errorCode: zod.z.number().nullable(),
61137
61149
  errorLabel: zod.z.string().nullable(),
61138
61150
  lastFetchedAt: zod.z.number()
@@ -61184,6 +61196,34 @@ var dishwasherCapability = {
61184
61196
  kind: "mutation",
61185
61197
  auth: "protected"
61186
61198
  }),
61199
+ setExtraDry: method(zod.z.object({
61200
+ deviceId: zod.z.number().int().nonnegative(),
61201
+ on: zod.z.boolean()
61202
+ }), zod.z.void(), {
61203
+ kind: "mutation",
61204
+ auth: "protected"
61205
+ }),
61206
+ setIntensiveZone: method(zod.z.object({
61207
+ deviceId: zod.z.number().int().nonnegative(),
61208
+ on: zod.z.boolean()
61209
+ }), zod.z.void(), {
61210
+ kind: "mutation",
61211
+ auth: "protected"
61212
+ }),
61213
+ setVarioSpeedPlus: method(zod.z.object({
61214
+ deviceId: zod.z.number().int().nonnegative(),
61215
+ on: zod.z.boolean()
61216
+ }), zod.z.void(), {
61217
+ kind: "mutation",
61218
+ auth: "protected"
61219
+ }),
61220
+ setChildLock: method(zod.z.object({
61221
+ deviceId: zod.z.number().int().nonnegative(),
61222
+ on: zod.z.boolean()
61223
+ }), zod.z.void(), {
61224
+ kind: "mutation",
61225
+ auth: "protected"
61226
+ }),
61187
61227
  setOption: method(zod.z.object({
61188
61228
  deviceId: zod.z.number().int().nonnegative(),
61189
61229
  key: zod.z.string().min(1),
@@ -74204,6 +74244,7 @@ var CONTAINER_CHILD_PRIORITY = [
74204
74244
  "fan",
74205
74245
  "vacuum",
74206
74246
  "lawn-mower",
74247
+ "dishwasher",
74207
74248
  "light",
74208
74249
  "switch",
74209
74250
  "siren",
@@ -77063,6 +77104,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
77063
77104
  addonId: null,
77064
77105
  access: "create"
77065
77106
  },
77107
+ "dishwasher.setChildLock": {
77108
+ capName: "dishwasher",
77109
+ capScope: "device",
77110
+ addonId: null,
77111
+ access: "create"
77112
+ },
77113
+ "dishwasher.setExtraDry": {
77114
+ capName: "dishwasher",
77115
+ capScope: "device",
77116
+ addonId: null,
77117
+ access: "create"
77118
+ },
77066
77119
  "dishwasher.setHalfLoad": {
77067
77120
  capName: "dishwasher",
77068
77121
  capScope: "device",
@@ -77075,6 +77128,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
77075
77128
  addonId: null,
77076
77129
  access: "create"
77077
77130
  },
77131
+ "dishwasher.setIntensiveZone": {
77132
+ capName: "dishwasher",
77133
+ capScope: "device",
77134
+ addonId: null,
77135
+ access: "create"
77136
+ },
77078
77137
  "dishwasher.setOption": {
77079
77138
  capName: "dishwasher",
77080
77139
  capScope: "device",
@@ -77093,6 +77152,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
77093
77152
  addonId: null,
77094
77153
  access: "create"
77095
77154
  },
77155
+ "dishwasher.setVarioSpeedPlus": {
77156
+ capName: "dishwasher",
77157
+ capScope: "device",
77158
+ addonId: null,
77159
+ access: "create"
77160
+ },
77096
77161
  "dishwasher.start": {
77097
77162
  capName: "dishwasher",
77098
77163
  capScope: "device",
@@ -84013,6 +84078,16 @@ Object.freeze({
84013
84078
  form: "single",
84014
84079
  optional: false
84015
84080
  }],
84081
+ "dishwasher.setChildLock": [{
84082
+ name: "deviceId",
84083
+ form: "single",
84084
+ optional: false
84085
+ }],
84086
+ "dishwasher.setExtraDry": [{
84087
+ name: "deviceId",
84088
+ form: "single",
84089
+ optional: false
84090
+ }],
84016
84091
  "dishwasher.setHalfLoad": [{
84017
84092
  name: "deviceId",
84018
84093
  form: "single",
@@ -84023,6 +84098,11 @@ Object.freeze({
84023
84098
  form: "single",
84024
84099
  optional: false
84025
84100
  }],
84101
+ "dishwasher.setIntensiveZone": [{
84102
+ name: "deviceId",
84103
+ form: "single",
84104
+ optional: false
84105
+ }],
84026
84106
  "dishwasher.setOption": [{
84027
84107
  name: "deviceId",
84028
84108
  form: "single",
@@ -84038,6 +84118,11 @@ Object.freeze({
84038
84118
  form: "single",
84039
84119
  optional: false
84040
84120
  }],
84121
+ "dishwasher.setVarioSpeedPlus": [{
84122
+ name: "deviceId",
84123
+ form: "single",
84124
+ optional: false
84125
+ }],
84041
84126
  "dishwasher.start": [{
84042
84127
  name: "deviceId",
84043
84128
  form: "single",
@@ -1,5 +1,5 @@
1
1
  require("./chunk-Cek0wNdY.js");
2
- const require_wal_maintenance = require("./wal-maintenance-6SrioJOn.js");
2
+ const require_wal_maintenance = require("./wal-maintenance-i3GRvmQW.js");
3
3
  let node_worker_threads = require("node:worker_threads");
4
4
  //#region src/builtins/sqlite-storage/file-host-worker.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { C as RecordsEngine, D as callVector, E as callRecords, O as controlTargetOf, T as callData, _ as collectTransferables, a as WalMaintenance, b as isFileHostWorkerData, h as serializeError, l as SqliteSettingsBackend, o as createVectorIndex, s as vectorProviderOf, w as callControl, x as trustInput, y as isFileHostRequest } from "./wal-maintenance-_tiSo8gz.mjs";
1
+ import { C as RecordsEngine, D as callVector, E as callRecords, O as controlTargetOf, T as callData, _ as collectTransferables, a as WalMaintenance, b as isFileHostWorkerData, h as serializeError, l as SqliteSettingsBackend, o as createVectorIndex, s as vectorProviderOf, w as callControl, x as trustInput, y as isFileHostRequest } from "./wal-maintenance-HEmw2Fik.mjs";
2
2
  import { parentPort, threadId, workerData } from "node:worker_threads";
3
3
  //#region src/builtins/sqlite-storage/file-host-worker.ts
4
4
  /**
@@ -1,7 +1,7 @@
1
1
  import { o as __toESM } from "./chunk-CNf5ZN-e.mjs";
2
- import { fa as userError } from "./dist-DV2ll9Hi.mjs";
2
+ import { fa as userError } from "./dist-B9C2v4SG.mjs";
3
3
  import { f as X509Certificate$1 } from "./x509.es-DK__ETIe.mjs";
4
- import { A as isConstrainedCa, E as reasonRequiresNewCa, M as permitsIdentity, P as readNameConstraints, T as evaluateExistingCert, _ as issueLeaf, g as generateCa, v as loadCa, y as collectCertIdentity } from "./agent-https-D6lRxHma.mjs";
4
+ import { A as isConstrainedCa, E as reasonRequiresNewCa, M as permitsIdentity, P as readNameConstraints, T as evaluateExistingCert, _ as issueLeaf, g as generateCa, v as loadCa, y as collectCertIdentity } from "./agent-https-XAZFJjOS.mjs";
5
5
  import { X509Certificate, createPrivateKey } from "node:crypto";
6
6
  import { writeOwnerOnlyFileSync } from "@camstack/types/node";
7
7
  import { mkdir, writeFile } from "node:fs/promises";
@@ -1,7 +1,7 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-Ct88catN.js");
2
+ const require_dist = require("./dist-DyjNaeIj.js");
3
3
  const require_x509_es = require("./x509.es-C4cOo48M.js");
4
- const require_agent_https = require("./agent-https-CMz4S56_.js");
4
+ const require_agent_https = require("./agent-https-DL2cFOQv.js");
5
5
  let node_crypto = require("node:crypto");
6
6
  let _camstack_types_node = require("@camstack/types/node");
7
7
  let node_fs_promises = require("node:fs/promises");
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("./chunk-Cek0wNdY.js");
3
- const require_dist = require("./dist-Ct88catN.js");
3
+ const require_dist = require("./dist-DyjNaeIj.js");
4
4
  const require_read_all_rows$1 = require("./read-all-rows-CVoO1ONM.js");
5
- const require_device_ca = require("./device-ca-75rt3U_U.js");
5
+ const require_device_ca = require("./device-ca-njpTMpJC.js");
6
6
  const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
7
7
  require("./builtins/alerts/index.js");
8
8
  const require_builtins_calendars_calendars_addon = require("./builtins/calendars/calendars.addon.js");
@@ -27,21 +27,21 @@ const require_builtins_loki_logging_index = require("./builtins/loki-logging/ind
27
27
  const require_builtins_native_metrics_native_metrics_addon = require("./builtins/native-metrics/native-metrics.addon.js");
28
28
  const require_builtins_device_history_device_history_addon = require("./builtins/device-history/device-history.addon.js");
29
29
  const require_builtins_sqlite_storage_filesystem_storage_addon = require("./builtins/sqlite-storage/filesystem-storage.addon.js");
30
- const require_wal_maintenance = require("./wal-maintenance-6SrioJOn.js");
30
+ const require_wal_maintenance = require("./wal-maintenance-i3GRvmQW.js");
31
31
  const require_builtins_sqlite_storage_sqlite_settings_addon = require("./builtins/sqlite-storage/sqlite-settings.addon.js");
32
32
  const require_builtins_sqlite_storage_index = require("./builtins/sqlite-storage/index.js");
33
33
  const require_builtins_storage_orchestrator_storage_orchestrator_addon = require("./builtins/storage-orchestrator/storage-orchestrator.addon.js");
34
34
  require("./builtins/storage-orchestrator/index.js");
35
- const require_constants = require("./constants-BPWA-r-Y.js");
36
- const require_agent_https = require("./agent-https-CMz4S56_.js");
35
+ const require_constants = require("./constants-B3fDUnJt.js");
36
+ const require_agent_https = require("./agent-https-DL2cFOQv.js");
37
37
  const require_builtins_system_config_system_config_addon = require("./builtins/system-config/system-config.addon.js");
38
38
  require("./builtins/system-config/index.js");
39
39
  const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
40
40
  const require_custom_action_registry = require("./custom-action-registry-COyb49zm.js");
41
- const require_hub_mdns_ciao = require("./hub-mdns-ciao-DAU1WttG.js");
41
+ const require_hub_mdns_ciao = require("./hub-mdns-ciao-DpdFaLz-.js");
42
42
  const require_platform_key_source = require("./platform-key-source-Di7HrlGR.js");
43
43
  const require_resource_monitor = require("./resource-monitor-mio9dSCT.js");
44
- const require_restore_archive = require("./restore-archive-Cprdh3P9.js");
44
+ const require_restore_archive = require("./restore-archive-BeGP9IYs.js");
45
45
  let zod = require("zod");
46
46
  let node_crypto = require("node:crypto");
47
47
  node_crypto = require_chunk.__toESM(node_crypto);
@@ -11609,8 +11609,16 @@ function buildOneCapRouter(def, primitives, services) {
11609
11609
  const nodeId = typeof picked.nodeId === "string" ? picked.nodeId : void 0;
11610
11610
  const topLevelAddonId = typeof picked.addonId === "string" ? picked.addonId : void 0;
11611
11611
  const canRecoverNestedAddonId = !require_dist.isArrayOutputSchema(method.schema.output) && !require_dist.objectInputDeclaresAddonId(method.schema.input);
11612
- const addonId = topLevelAddonId ?? (canRecoverNestedAddonId ? require_dist.extractNestedAddonId(rest) : void 0);
11613
- return invokeCapMethod(resolveProviderForCall(capName, nodeId, () => getLocal(ctx, addonId), services, topLevelAddonId), method, method.callerRequired ? injectCaller(rest, ctx, capName, method.name, services) : rest, capName, isCollection, services);
11612
+ let addonId = topLevelAddonId ?? (canRecoverNestedAddonId ? require_dist.extractNestedAddonId(rest) : void 0);
11613
+ const resolveAndInvoke = async () => {
11614
+ let refusePin = topLevelAddonId;
11615
+ if (addonId === void 0 && !method.isArrayOutput && services.inferCollectionAddonPin) {
11616
+ addonId = await Promise.resolve(services.inferCollectionAddonPin(capName, method.name, rest));
11617
+ if (addonId !== void 0) refusePin = addonId;
11618
+ }
11619
+ return invokeCapMethod(resolveProviderForCall(capName, nodeId, () => getLocal(ctx, addonId), services, refusePin), method, method.callerRequired ? injectCaller(rest, ctx, capName, method.name, services) : rest, capName, isCollection, services);
11620
+ };
11621
+ return resolveAndInvoke();
11614
11622
  }
11615
11623
  const { rest, picked } = stripKeys(input, ["nodeId"]);
11616
11624
  return invokeCapMethod(resolveProviderForCall(capName, typeof picked.nodeId === "string" ? picked.nodeId : void 0, () => getLocal(ctx), services), method, method.callerRequired ? injectCaller(rest, ctx, capName, method.name, services) : rest, capName, isCollection, services);