@camstack/system 1.2.469 → 1.2.471

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 (91) hide show
  1. package/dist/addon-runner.js +97 -31
  2. package/dist/addon-runner.mjs +97 -31
  3. package/dist/addon-utils.mjs +1 -1
  4. package/dist/{agent-https-b-zX78oB.mjs → agent-https-DHBvFZJS.mjs} +1 -1
  5. package/dist/{agent-https-5OgOR-eF.js → agent-https-bH6bKDeK.js} +1 -1
  6. package/dist/auth/user-manager.d.ts +2 -2
  7. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  8. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +4 -4
  9. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  10. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +5 -5
  11. package/dist/builtins/alerts/alerts.addon.js +1 -1
  12. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  13. package/dist/builtins/autotrack/index.js +1 -1
  14. package/dist/builtins/autotrack/index.mjs +1 -1
  15. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  16. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +5 -5
  17. package/dist/builtins/calendars/calendars.addon.js +1 -1
  18. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  19. package/dist/builtins/camera-grid/index.js +1 -1
  20. package/dist/builtins/camera-grid/index.mjs +1 -1
  21. package/dist/builtins/composer/composer.addon.js +2 -2
  22. package/dist/builtins/composer/composer.addon.mjs +2 -2
  23. package/dist/builtins/console-logging/index.js +1 -1
  24. package/dist/builtins/console-logging/index.mjs +1 -1
  25. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  26. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  27. package/dist/builtins/device-history/device-history.addon.js +1 -1
  28. package/dist/builtins/device-history/device-history.addon.mjs +1 -1
  29. package/dist/builtins/device-manager/device-manager.addon.js +1 -1
  30. package/dist/builtins/device-manager/device-manager.addon.mjs +1 -1
  31. package/dist/builtins/hub-forwarder/index.js +1 -1
  32. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  33. package/dist/builtins/keychain/index.js +3 -3
  34. package/dist/builtins/keychain/index.mjs +3 -3
  35. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  36. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  37. package/dist/builtins/local-auth/local-auth.addon.js +2 -2
  38. package/dist/builtins/local-auth/local-auth.addon.mjs +5 -5
  39. package/dist/builtins/local-network/local-network.addon.js +2 -2
  40. package/dist/builtins/local-network/local-network.addon.mjs +2 -2
  41. package/dist/builtins/loki-logging/index.js +1 -1
  42. package/dist/builtins/loki-logging/index.mjs +1 -1
  43. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  44. package/dist/builtins/native-metrics/native-metrics.addon.mjs +10 -10
  45. package/dist/builtins/platform-probe/accelerator-reprobe.d.ts +23 -0
  46. package/dist/builtins/platform-probe/coral-accelerators.d.ts +50 -11
  47. package/dist/builtins/platform-probe/index.d.ts +17 -1
  48. package/dist/builtins/platform-probe/index.js +196 -12
  49. package/dist/builtins/platform-probe/index.mjs +202 -19
  50. package/dist/builtins/platform-probe/platform-scorer.d.ts +14 -0
  51. package/dist/builtins/record-entries/index.js +1 -1
  52. package/dist/builtins/record-entries/index.mjs +1 -1
  53. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  54. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  55. package/dist/builtins/snapshot/index.js +1 -1
  56. package/dist/builtins/snapshot/index.mjs +1 -1
  57. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  58. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +20 -20
  59. package/dist/builtins/sqlite-storage/index.js +1 -1
  60. package/dist/builtins/sqlite-storage/index.mjs +1 -1
  61. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +2 -2
  62. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +2 -2
  63. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  64. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  65. package/dist/builtins/system-config/system-config.addon.js +3 -3
  66. package/dist/builtins/system-config/system-config.addon.mjs +115 -115
  67. package/dist/builtins/winston-logging/index.js +1 -1
  68. package/dist/builtins/winston-logging/index.mjs +1 -1
  69. package/dist/{composition-sources-BGXTiUZm.js → composition-sources-B5uJZXZ1.js} +1 -1
  70. package/dist/{composition-sources-DTdzzyf0.mjs → composition-sources-DRw_vBKH.mjs} +1 -1
  71. package/dist/{constants-md_POijo.mjs → constants-5lA8Z9d8.mjs} +1 -1
  72. package/dist/{constants-2mPqJjkR.js → constants-CToE4OFp.js} +1 -1
  73. package/dist/{coral-accelerators-oUXmmbc2.js → coral-accelerators-BSVsBVzt.js} +102 -30
  74. package/dist/coral-accelerators-BW3OcrLD.mjs +231 -0
  75. package/dist/{custom-action-registry-DZSCLBuT.mjs → custom-action-registry-BGYDjTqY.mjs} +37 -37
  76. package/dist/{device-ca-CFdyrqeJ.mjs → device-ca-URrs1lxK.mjs} +1 -1
  77. package/dist/{device-ca-CC58lmNV.js → device-ca-nOCYVFS4.js} +1 -1
  78. package/dist/{dist-CtVVtyTX.mjs → dist-5XUG7iYJ.mjs} +6839 -1416
  79. package/dist/{dist-DuBtzSCh.js → dist-BjcWEfRy.js} +6839 -1416
  80. package/dist/file-host-worker.js +1 -1
  81. package/dist/file-host-worker.mjs +1 -1
  82. package/dist/{hub-mdns-ciao-BLsX_2cL.js → hub-mdns-ciao-vEWhJ_SD.js} +2 -2
  83. package/dist/{hub-mdns-ciao-CmuWLPci.mjs → hub-mdns-ciao-zD3JojB_.mjs} +2 -2
  84. package/dist/index.js +8 -8
  85. package/dist/index.mjs +225 -225
  86. package/dist/{restore-archive-CxPAuaNs.js → restore-archive-B64m2nAj.js} +1 -1
  87. package/dist/{restore-archive-D2w3z_ob.mjs → restore-archive-CN1pJTRn.mjs} +94 -94
  88. package/dist/{wal-maintenance-EK28XXnc.js → wal-maintenance-BNXVX-ot.js} +0 -0
  89. package/dist/{wal-maintenance-DeluFl_1.mjs → wal-maintenance-Bl2I-ZcR.mjs} +0 -0
  90. package/package.json +1 -1
  91. package/dist/coral-accelerators-Qhn5TOYZ.mjs +0 -165
@@ -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-DuBtzSCh.js");
3
+ const require_dist = require("../../dist-BjcWEfRy.js");
4
4
  const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
5
- const require_composition_sources = require("../../composition-sources-BGXTiUZm.js");
5
+ const require_composition_sources = require("../../composition-sources-B5uJZXZ1.js");
6
6
  const require_prefix_range = require("../../prefix-range-D_KueXbQ.js");
7
7
  const require_prefix_walk = require("../../prefix-walk-Dv6MLZlM.js");
8
8
  let zod = require("zod");
@@ -1,6 +1,6 @@
1
- import { $r as errMsg, Bt as coreBlockComposition, Ht as coreBlockSourceKind, Ki as defineRecordKinds, Kn as normalizeCoreBlockWrite, Kr as compositionSourceKey, Mr as validateComposition, N as DeclaredDevices, Ot as buildCapabilityLookup, Qi as hydrateSchema, Qn as planComposition, Rt as compositionSourceRefs, Ut as coreBlocksCapability, Vi as collectSecretMarkerRefs, Vr as composedDeviceRef, Vt as coreBlockIdFromAddonId, Zt as describeComposableCaps, _a as resolveSecretMarkers, aa as isSecretRefOwnedBy, ar as replacedFieldKeys, ba as secretTreeFromSchema, cr as resolveCoreBlockEntry, ei as BaseAddon, f as COMPOSER_RUNNER_ID, lr as resolveCoreBlockFiles, m as CORE_BLOCK_ADDON_PREFIX, p as CORE_BLOCKS_ADDON_ID, r as ALL_CAPABILITY_DEFINITIONS, ra as isSecretMarker, v as CoreBlockSchema, wa as transformSecretWrite, zt as coreBlockAddonId } from "../../dist-CtVVtyTX.mjs";
1
+ import { $r as errMsg, Bt as coreBlockComposition, Ht as coreBlockSourceKind, Ki as defineRecordKinds, Kn as normalizeCoreBlockWrite, Kr as compositionSourceKey, Mr as validateComposition, N as DeclaredDevices, Ot as buildCapabilityLookup, Qi as hydrateSchema, Qn as planComposition, Rt as compositionSourceRefs, Ut as coreBlocksCapability, Vi as collectSecretMarkerRefs, Vr as composedDeviceRef, Vt as coreBlockIdFromAddonId, Zt as describeComposableCaps, _a as resolveSecretMarkers, aa as isSecretRefOwnedBy, ar as replacedFieldKeys, ba as secretTreeFromSchema, cr as resolveCoreBlockEntry, ei as BaseAddon, f as COMPOSER_RUNNER_ID, lr as resolveCoreBlockFiles, m as CORE_BLOCK_ADDON_PREFIX, p as CORE_BLOCKS_ADDON_ID, r as ALL_CAPABILITY_DEFINITIONS, ra as isSecretMarker, v as CoreBlockSchema, wa as transformSecretWrite, zt as coreBlockAddonId } from "../../dist-5XUG7iYJ.mjs";
2
2
  import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
3
- import { t as describeCompositionSources } from "../../composition-sources-DTdzzyf0.mjs";
3
+ import { t as describeCompositionSources } from "../../composition-sources-DRw_vBKH.mjs";
4
4
  import { t as prefixRange } from "../../prefix-range-Dl0znowN.mjs";
5
5
  import { n as unwrapStoredValue, t as loadPrefixed } from "../../prefix-walk-DAOBSyH1.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
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DuBtzSCh.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.js");
7
7
  //#region src/builtins/device-history/time/bucket-time.ts
8
8
  /**
9
9
  * Bucket arithmetic for the three rollup tiers (D850, plan §4/§5.5).
@@ -1,4 +1,4 @@
1
- import { B as HISTORY_ITEM_CATALOG, Ct as armRemovalReconcile, D as DEVICE_HISTORY_ENERGY_KEY, Da as EventCategory, Ji as emitReadiness, Qr as DeviceType, Zi as historyItemFieldPath, ei as BaseAddon, en as deviceHistoryCapability, li as HISTORY_DEFAULT_MIN_INTERVAL_MS, nn as deviceRemovalHookCapability, z as HISTORY_CATALOG } from "../../dist-CtVVtyTX.mjs";
1
+ import { B as HISTORY_ITEM_CATALOG, Ct as armRemovalReconcile, D as DEVICE_HISTORY_ENERGY_KEY, Da as EventCategory, Ji as emitReadiness, Qr as DeviceType, Zi as historyItemFieldPath, ei as BaseAddon, en as deviceHistoryCapability, li as HISTORY_DEFAULT_MIN_INTERVAL_MS, nn as deviceRemovalHookCapability, z as HISTORY_CATALOG } from "../../dist-5XUG7iYJ.mjs";
2
2
  //#region src/builtins/device-history/time/bucket-time.ts
3
3
  /**
4
4
  * Bucket arithmetic for the three rollup tiers (D850, plan §4/§5.5).
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DuBtzSCh.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.js");
7
7
  const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
8
8
  const require_prefix_range = require("../../prefix-range-D_KueXbQ.js");
9
9
  const require_prefix_walk = require("../../prefix-walk-Dv6MLZlM.js");
@@ -1,4 +1,4 @@
1
- import { $i as isDeviceConfigCap, $r as errMsg, $t as deviceExtensionCapability, Ca as toSecretFieldView, Da as EventCategory, Di as SECRET_CLEAR, F as DeviceTombstoneSchema, Hi as collectZodSecretPaths, In as locationIconKey, Ki as defineRecordKinds, L as FieldClaimModeSchema, Mi as WELL_KNOWN_TAB_MAP, Mn as legacyAutoLinkIds, P as DeviceStatusSchema, Pt as canonicalIconKey, Qr as DeviceType, R as FieldClaimSchema, Ta as userError, Wt as createDeviceExtensionProvider, Xn as parseStreamParamsFormPatch, Xr as DeviceFeature, Y as MINUTES_PER_DAY, Yt as defineExtensionSlotProvider, Zr as DeviceRole, _a as resolveSecretMarkers, br as siteZoneKey, ei as BaseAddon, gn as formatMinutes, ia as isSecretMarkerLike, in as deviceStatusCapability, jt as buildStreamParamsConfigSchema, l as CAP_NAMES_WITH_STATUS, mr as runtimeStatePolicyFor, na as isSecretClear, on as enumerateItemArrayFields, ot as STREAM_PROFILE_META, qn as normalizeUnit, r as ALL_CAPABILITY_DEFINITIONS, ra as isSecretMarker, rn as deviceStateCapability, s as CAMERA_SWITCH_ORDER, sn as enumerateSchemaFields, ta as isKeychainStoredField, tn as deviceManagerCapability, un as expandContainer, w as DAY_NAMES, wa as transformSecretWrite, xa as sleep$1, ya as secretTreeFromPaths } from "../../dist-CtVVtyTX.mjs";
1
+ import { $i as isDeviceConfigCap, $r as errMsg, $t as deviceExtensionCapability, Ca as toSecretFieldView, Da as EventCategory, Di as SECRET_CLEAR, F as DeviceTombstoneSchema, Hi as collectZodSecretPaths, In as locationIconKey, Ki as defineRecordKinds, L as FieldClaimModeSchema, Mi as WELL_KNOWN_TAB_MAP, Mn as legacyAutoLinkIds, P as DeviceStatusSchema, Pt as canonicalIconKey, Qr as DeviceType, R as FieldClaimSchema, Ta as userError, Wt as createDeviceExtensionProvider, Xn as parseStreamParamsFormPatch, Xr as DeviceFeature, Y as MINUTES_PER_DAY, Yt as defineExtensionSlotProvider, Zr as DeviceRole, _a as resolveSecretMarkers, br as siteZoneKey, ei as BaseAddon, gn as formatMinutes, ia as isSecretMarkerLike, in as deviceStatusCapability, jt as buildStreamParamsConfigSchema, l as CAP_NAMES_WITH_STATUS, mr as runtimeStatePolicyFor, na as isSecretClear, on as enumerateItemArrayFields, ot as STREAM_PROFILE_META, qn as normalizeUnit, r as ALL_CAPABILITY_DEFINITIONS, ra as isSecretMarker, rn as deviceStateCapability, s as CAMERA_SWITCH_ORDER, sn as enumerateSchemaFields, ta as isKeychainStoredField, tn as deviceManagerCapability, un as expandContainer, w as DAY_NAMES, wa as transformSecretWrite, xa as sleep$1, ya as secretTreeFromPaths } from "../../dist-5XUG7iYJ.mjs";
2
2
  import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
3
3
  import { t as prefixRange } from "../../prefix-range-Dl0znowN.mjs";
4
4
  import { t as loadPrefixed } from "../../prefix-walk-DAOBSyH1.mjs";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DuBtzSCh.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
9
9
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -1,4 +1,4 @@
1
- import { Ln as logDestinationCapability, ei as BaseAddon } from "../../dist-CtVVtyTX.mjs";
1
+ import { Ln as logDestinationCapability, ei as BaseAddon } from "../../dist-5XUG7iYJ.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
4
4
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -3,10 +3,10 @@ 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-DuBtzSCh.js");
7
- const require_device_ca = require("../../device-ca-CC58lmNV.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.js");
7
+ const require_device_ca = require("../../device-ca-nOCYVFS4.js");
8
8
  const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
9
- const require_constants = require("../../constants-2mPqJjkR.js");
9
+ const require_constants = require("../../constants-CToE4OFp.js");
10
10
  const require_platform_key_source = require("../../platform-key-source-Di7HrlGR.js");
11
11
  let node_crypto = require("node:crypto");
12
12
  let _camstack_types_node = require("@camstack/types/node");
@@ -1,7 +1,7 @@
1
- import { An as keychainAdminCapability, Da as EventCategory, G as KeychainResetRecordSchema, Ki as defineRecordKinds, U as KEYCHAIN_RESET_TRIGGER_ACTOR, W as KeychainAuditEntrySchema, Xi as formatSecretScope, ei as BaseAddon, jn as keychainCapability, pa as parseSecretRef, ua as normalizeSecretOwner } from "../../dist-CtVVtyTX.mjs";
2
- import { d as JWT_SIGNING_KEY_REF, n as DEVICE_CA_KEY_REF, p as SYSTEM_SECRET_OWNER } from "../../device-ca-CFdyrqeJ.mjs";
1
+ import { An as keychainAdminCapability, Da as EventCategory, G as KeychainResetRecordSchema, Ki as defineRecordKinds, U as KEYCHAIN_RESET_TRIGGER_ACTOR, W as KeychainAuditEntrySchema, Xi as formatSecretScope, ei as BaseAddon, jn as keychainCapability, pa as parseSecretRef, ua as normalizeSecretOwner } from "../../dist-5XUG7iYJ.mjs";
2
+ import { d as JWT_SIGNING_KEY_REF, n as DEVICE_CA_KEY_REF, p as SYSTEM_SECRET_OWNER } from "../../device-ca-URrs1lxK.mjs";
3
3
  import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
4
- import { a as MESH_CA_KEY_REF } from "../../constants-md_POijo.mjs";
4
+ import { a as MESH_CA_KEY_REF } from "../../constants-5lA8Z9d8.mjs";
5
5
  import { n as getPlatformKeychainKey } from "../../platform-key-source-BWlq0jjn.mjs";
6
6
  import { createCipheriv, createDecipheriv, createHmac, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
7
7
  import { restrictDirToOwnerSync, restrictFileToOwnerSync, writeOwnerOnlyFileSync } from "@camstack/types/node";
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-DuBtzSCh.js");
3
+ const require_dist = require("../../dist-BjcWEfRy.js");
4
4
  //#region src/builtins/liveness-monitor/liveness-checks.ts
5
5
  var NO_DEVICES = "liveness:no-devices";
6
6
  var ALL_OFFLINE = "liveness:all-devices-offline";
@@ -1,4 +1,4 @@
1
- import { $r as errMsg, Da as EventCategory, Ui as createEvent, ei as BaseAddon, it as RecordingStatusSchema, nt as RECORDING_SOURCE_CAMSTACK_ADDON } from "../../dist-CtVVtyTX.mjs";
1
+ import { $r as errMsg, Da as EventCategory, Ui as createEvent, ei as BaseAddon, it as RecordingStatusSchema, nt as RECORDING_SOURCE_CAMSTACK_ADDON } from "../../dist-5XUG7iYJ.mjs";
2
2
  //#region src/builtins/liveness-monitor/liveness-checks.ts
3
3
  var NO_DEVICES = "liveness:no-devices";
4
4
  var ALL_OFFLINE = "liveness:all-devices-offline";
@@ -3,10 +3,10 @@ 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-DuBtzSCh.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.js");
7
7
  const require_safe_buffer$1 = require("../../safe-buffer-D3aoa-7X.js");
8
8
  const require_ms$1 = require("../../ms-LB3giGoU.js");
9
- const require_device_ca = require("../../device-ca-CC58lmNV.js");
9
+ const require_device_ca = require("../../device-ca-nOCYVFS4.js");
10
10
  const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
11
11
  let zod = require("zod");
12
12
  let node_crypto = require("node:crypto");
@@ -1,15 +1,15 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
2
- import { $ as PreferenceDeviceIdSchema, At as buildDeviceSignatureMessage, E as DEVICE_ENROLLMENT_TTL_MS, Ki as defineRecordKinds, O as DEVICE_NONCE_TTL_MS, Q as PREFERENCES_MAX_VALUE_BYTES, Qt as deviceCredentialsCapability, Ta as userError, ei as BaseAddon, et as PreferenceNamespaceSchema, gt as UserRecordSchema, h as CREDENTIAL_TOKEN_AUDIENCE, hn as formatDeviceRevoker, jr as userManagementCapability, kt as buildDeviceEnrollmentLink, lt as SsoBridgeClaimsSchema, mt as TokenScopeSchema, oa as makeSecretMarker, ra as isSecretMarker, st as ScopedTokenSchema, tt as PreferenceValueSchema, wn as isCredentialTokenPayload, wt as authProviderCapability, y as CredentialTokenClaimsSchema } from "../../dist-CtVVtyTX.mjs";
2
+ import { $ as PreferenceDeviceIdSchema, At as buildDeviceSignatureMessage, E as DEVICE_ENROLLMENT_TTL_MS, Ki as defineRecordKinds, O as DEVICE_NONCE_TTL_MS, Q as PREFERENCES_MAX_VALUE_BYTES, Qt as deviceCredentialsCapability, Ta as userError, ei as BaseAddon, et as PreferenceNamespaceSchema, gt as UserRecordSchema, h as CREDENTIAL_TOKEN_AUDIENCE, hn as formatDeviceRevoker, jr as userManagementCapability, kt as buildDeviceEnrollmentLink, lt as SsoBridgeClaimsSchema, mt as TokenScopeSchema, oa as makeSecretMarker, ra as isSecretMarker, st as ScopedTokenSchema, tt as PreferenceValueSchema, wn as isCredentialTokenPayload, wt as authProviderCapability, y as CredentialTokenClaimsSchema } from "../../dist-5XUG7iYJ.mjs";
3
3
  import { t as require_safe_buffer } from "../../safe-buffer-B1OjL1I9.mjs";
4
4
  import { t as require_ms } from "../../ms-CgH2OFlD.mjs";
5
- import { _ as setProcessJwtSigningKey, a as importDevicePublicKey, c as rebuildDeviceCaCertificate, d as JWT_SIGNING_KEY_REF, g as processJwtSigningKey, h as loadJwtSigningKey, i as generateDeviceCa, l as verifyDeviceLeaf, m as getProcessJwtSigningKeyState, n as DEVICE_CA_KEY_REF, o as issueDeviceLeaf, r as DEVICE_CA_SETTINGS_SECTION, s as loadDeviceCa, t as DEVICE_CA_FIELD, u as verifyDeviceSignature } from "../../device-ca-CFdyrqeJ.mjs";
5
+ import { _ as setProcessJwtSigningKey, a as importDevicePublicKey, c as rebuildDeviceCaCertificate, d as JWT_SIGNING_KEY_REF, g as processJwtSigningKey, h as loadJwtSigningKey, i as generateDeviceCa, l as verifyDeviceLeaf, m as getProcessJwtSigningKeyState, n as DEVICE_CA_KEY_REF, o as issueDeviceLeaf, r as DEVICE_CA_SETTINGS_SECTION, s as loadDeviceCa, t as DEVICE_CA_FIELD, u as verifyDeviceSignature } from "../../device-ca-URrs1lxK.mjs";
6
6
  import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
7
7
  import { z } from "zod";
8
8
  import * as crypto$1 from "node:crypto";
9
9
  import { X509Certificate, createHash, randomUUID, timingSafeEqual } from "node:crypto";
10
10
  import nodeCrypto from "crypto";
11
11
  import * as path$1 from "node:path";
12
- import * as fs$1 from "node:fs";
12
+ import * as fs from "node:fs";
13
13
  //#region ../../node_modules/bcryptjs/index.js
14
14
  /**
15
15
  * The random implementation to use as a fallback.
@@ -12064,8 +12064,8 @@ var LocalAuthAddon = class extends BaseAddon {
12064
12064
  users: this.userManager,
12065
12065
  dataDir: this.ctx.nodeDataDir,
12066
12066
  fs: {
12067
- exists: (filePath) => fs$1.existsSync(filePath),
12068
- remove: (filePath) => fs$1.rmSync(filePath, { force: true })
12067
+ exists: (filePath) => fs.existsSync(filePath),
12068
+ remove: (filePath) => fs.rmSync(filePath, { force: true })
12069
12069
  },
12070
12070
  logger: this.ctx.logger
12071
12071
  });
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-DuBtzSCh.js");
4
- const require_hub_mdns_ciao = require("../../hub-mdns-ciao-BLsX_2cL.js");
3
+ const require_dist = require("../../dist-BjcWEfRy.js");
4
+ const require_hub_mdns_ciao = require("../../hub-mdns-ciao-vEWhJ_SD.js");
5
5
  let zod = require("zod");
6
6
  let node_net = require("node:net");
7
7
  let node_os = require("node:os");
@@ -1,5 +1,5 @@
1
- import { $r as errMsg, Da as EventCategory, Fn as localNetworkCapability, Ft as checkRoleAddress, H as HUB_MDNS_TXT_KEYS, Nr as validateCustomAddress, Tn as isDefaultAppConnectionEndpoint, V as HUB_MDNS_SERVICE_TYPE, Z as NetworkTunnelStartedDataSchema, Zn as pickAppLinkHub, c as CAMSTACK_APP_LINK_ORIGIN, ei as BaseAddon, or as resolveAppConnections, pr as resolveNotificationTapAddress, ur as resolveHubAddressRoles, xn as isAppLinkBase, yr as shortHostname } from "../../dist-CtVVtyTX.mjs";
2
- import { P as readLanHttpState, a as storeUploadedCertificate, d as servedHttpsLeafFingerprint, g as readTlsMode, h as readTlsAccessStatus, i as revertToGeneratedCertificate, j as applyLanHttp, k as DEFAULT_LAN_HTTP_PORT, m as readExtraSans, n as applyCertificateToListener, o as useStoredUploadedCertificate, r as regenerateCertificate, t as createCiaoPublisher, v as writeExtraSans, w as ensureTlsCert } from "../../hub-mdns-ciao-CmuWLPci.mjs";
1
+ import { $r as errMsg, Da as EventCategory, Fn as localNetworkCapability, Ft as checkRoleAddress, H as HUB_MDNS_TXT_KEYS, Nr as validateCustomAddress, Tn as isDefaultAppConnectionEndpoint, V as HUB_MDNS_SERVICE_TYPE, Z as NetworkTunnelStartedDataSchema, Zn as pickAppLinkHub, c as CAMSTACK_APP_LINK_ORIGIN, ei as BaseAddon, or as resolveAppConnections, pr as resolveNotificationTapAddress, ur as resolveHubAddressRoles, xn as isAppLinkBase, yr as shortHostname } from "../../dist-5XUG7iYJ.mjs";
2
+ import { P as readLanHttpState, a as storeUploadedCertificate, d as servedHttpsLeafFingerprint, g as readTlsMode, h as readTlsAccessStatus, i as revertToGeneratedCertificate, j as applyLanHttp, k as DEFAULT_LAN_HTTP_PORT, m as readExtraSans, n as applyCertificateToListener, o as useStoredUploadedCertificate, r as regenerateCertificate, t as createCiaoPublisher, v as writeExtraSans, w as ensureTlsCert } from "../../hub-mdns-ciao-zD3JojB_.mjs";
3
3
  import { z } from "zod";
4
4
  import { isIP } from "node:net";
5
5
  import * as os$1 from "node:os";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DuBtzSCh.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.js");
7
7
  const require_log_read_filter = require("../../log-read-filter-Bi066jwU.js");
8
8
  let zod = require("zod");
9
9
  //#region src/builtins/loki-logging/loki-payload.ts
@@ -1,4 +1,4 @@
1
- import { Ln as logDestinationCapability, ei as BaseAddon } from "../../dist-CtVVtyTX.mjs";
1
+ import { Ln as logDestinationCapability, ei as BaseAddon } from "../../dist-5XUG7iYJ.mjs";
2
2
  import { n as compileLogFilter, o as lineMatches } from "../../log-read-filter-D7Ev3zm-.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/builtins/loki-logging/loki-payload.ts
@@ -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-DuBtzSCh.js");
6
+ const require_dist = require("../../dist-BjcWEfRy.js");
7
7
  let node_fs_promises = require("node:fs/promises");
8
8
  let node_util = require("node:util");
9
9
  let node_os = require("node:os");
@@ -1,9 +1,9 @@
1
- import { $r as errMsg, Da as EventCategory, Ui as createEvent, Un as metricsProviderCapability, ei as BaseAddon, ht as UNATTRIBUTED_BUCKET_KEY, ir as reducePoints, mn as foldSnapshotByFunction, rt as ROOT_BUCKET_KEY, sr as resolveBucketMs } from "../../dist-CtVVtyTX.mjs";
1
+ import { $r as errMsg, Da as EventCategory, Ui as createEvent, Un as metricsProviderCapability, ei as BaseAddon, ht as UNATTRIBUTED_BUCKET_KEY, ir as reducePoints, mn as foldSnapshotByFunction, rt as ROOT_BUCKET_KEY, sr as resolveBucketMs } from "../../dist-5XUG7iYJ.mjs";
2
2
  import { access, readFile, readdir } from "node:fs/promises";
3
3
  import { promisify } from "node:util";
4
4
  import * as os$1 from "node:os";
5
5
  import { platform } from "node:os";
6
- import * as fs$1 from "node:fs";
6
+ import * as fs from "node:fs";
7
7
  import { constants, readFileSync } from "node:fs";
8
8
  import { execFile, execFileSync } from "node:child_process";
9
9
  //#region src/builtins/native-metrics/cgroup-memory.ts
@@ -1642,7 +1642,7 @@ var NativeMetricsProvider = class {
1642
1642
  let swapUsedBytes = 0;
1643
1643
  let swapTotalBytes = 0;
1644
1644
  if (IS_LINUX) try {
1645
- const meminfo = fs$1.readFileSync("/proc/meminfo", "utf-8");
1645
+ const meminfo = fs.readFileSync("/proc/meminfo", "utf-8");
1646
1646
  const swapTotal = parseInt(meminfo.match(/SwapTotal:\s+(\d+)/)?.[1] ?? "0", 10) * 1024;
1647
1647
  const swapFree = parseInt(meminfo.match(/SwapFree:\s+(\d+)/)?.[1] ?? "0", 10) * 1024;
1648
1648
  swapTotalBytes = swapTotal;
@@ -1720,7 +1720,7 @@ function sampleMacMemory(provider) {
1720
1720
  }
1721
1721
  function getDiskSpaceInternal(dirPath) {
1722
1722
  return new Promise((resolve, reject) => {
1723
- fs$1.statfs(dirPath, (err, stats) => {
1723
+ fs.statfs(dirPath, (err, stats) => {
1724
1724
  if (err) return reject(err);
1725
1725
  const totalBytes = stats.blocks * stats.bsize;
1726
1726
  const availableBytes = stats.bavail * stats.bsize;
@@ -1738,7 +1738,7 @@ function getDiskSpaceInternal(dirPath) {
1738
1738
  async function takeDiskIoSnapshot() {
1739
1739
  const now = Date.now();
1740
1740
  if (IS_LINUX) try {
1741
- const data = fs$1.readFileSync("/proc/diskstats", "utf-8");
1741
+ const data = fs.readFileSync("/proc/diskstats", "utf-8");
1742
1742
  let readOps = 0, readBytes = 0, writeOps = 0, writeBytes = 0;
1743
1743
  for (const line of data.split("\n")) {
1744
1744
  const parts = line.trim().split(/\s+/);
@@ -1769,7 +1769,7 @@ async function takeDiskIoSnapshot() {
1769
1769
  async function takeNetworkIoSnapshot() {
1770
1770
  const now = Date.now();
1771
1771
  if (IS_LINUX) try {
1772
- const data = fs$1.readFileSync("/proc/net/dev", "utf-8");
1772
+ const data = fs.readFileSync("/proc/net/dev", "utf-8");
1773
1773
  let rxBytes = 0, txBytes = 0, rxPackets = 0, txPackets = 0, rxErrors = 0, txErrors = 0;
1774
1774
  for (const line of data.split("\n")) {
1775
1775
  const match = line.match(/^\s*(\w+):\s+(.+)$/);
@@ -1830,7 +1830,7 @@ async function takeNetworkIoSnapshot() {
1830
1830
  }
1831
1831
  async function getCpuTemperatureInternal() {
1832
1832
  if (IS_LINUX) for (const p of ["/sys/class/thermal/thermal_zone0/temp", "/sys/class/hwmon/hwmon0/temp1_input"]) try {
1833
- const raw = fs$1.readFileSync(p, "utf-8").trim();
1833
+ const raw = fs.readFileSync(p, "utf-8").trim();
1834
1834
  const millideg = parseInt(raw, 10);
1835
1835
  if (!isNaN(millideg)) return Math.round(millideg / 100) / 10;
1836
1836
  } catch {
@@ -1881,10 +1881,10 @@ function getProcessResources() {
1881
1881
  let threadCount = 0;
1882
1882
  if (IS_LINUX) {
1883
1883
  try {
1884
- openFds = fs$1.readdirSync(`/proc/${process.pid}/fd`).length;
1884
+ openFds = fs.readdirSync(`/proc/${process.pid}/fd`).length;
1885
1885
  } catch {}
1886
1886
  try {
1887
- const match = fs$1.readFileSync(`/proc/${process.pid}/status`, "utf-8").match(/Threads:\s+(\d+)/);
1887
+ const match = fs.readFileSync(`/proc/${process.pid}/status`, "utf-8").match(/Threads:\s+(\d+)/);
1888
1888
  if (match) threadCount = parseInt(match[1], 10);
1889
1889
  } catch {}
1890
1890
  }
@@ -1899,7 +1899,7 @@ function getProcessResources() {
1899
1899
  function getPressure(resource) {
1900
1900
  if (!IS_LINUX) return null;
1901
1901
  try {
1902
- const data = fs$1.readFileSync(`/proc/pressure/${resource}`, "utf-8");
1902
+ const data = fs.readFileSync(`/proc/pressure/${resource}`, "utf-8");
1903
1903
  const parseLine = (prefix) => {
1904
1904
  const match = data.match(new RegExp(`${prefix} avg10=(\\d+\\.\\d+) avg60=(\\d+\\.\\d+) avg300=(\\d+\\.\\d+)`));
1905
1905
  if (!match) return null;
@@ -0,0 +1,23 @@
1
+ import type { CoralInfo, InferenceDeviceDescriptor, PlatformCapabilities } from "@camstack/types";
2
+ import type { CoralDetection } from "./coral-accelerators.js";
3
+ /** Device keys that appeared and disappeared between two probes, sorted. */
4
+ export interface InferenceDeviceSetChange {
5
+ readonly appeared: readonly string[];
6
+ readonly disappeared: readonly string[];
7
+ }
8
+ /** The result of one accelerator re-probe. */
9
+ export interface AcceleratorReprobe {
10
+ readonly caps: PlatformCapabilities;
11
+ readonly change: InferenceDeviceSetChange;
12
+ readonly detection: CoralDetection;
13
+ }
14
+ /** A stable signature of a Coral answer — what decides "did it change". */
15
+ export declare function coralSignature(coral: CoralInfo | null | undefined): string;
16
+ /** Which device keys a new probe added and removed. */
17
+ export declare function diffInferenceDevices(previous: readonly InferenceDeviceDescriptor[], next: readonly InferenceDeviceDescriptor[]): InferenceDeviceSetChange;
18
+ /**
19
+ * The capabilities with a new Coral answer: hardware, scores and the device
20
+ * enumeration are all derived again from it, so the edgetpu runtime and its
21
+ * devices follow the hardware rather than the boot-time snapshot.
22
+ */
23
+ export declare function withCoral(caps: PlatformCapabilities, coral: CoralInfo | null): PlatformCapabilities;
@@ -6,9 +6,13 @@ import { type EdgetpuDelegateLookup } from "@camstack/types/node";
6
6
  * stays a pure, unit-testable function over injected reads.
7
7
  */
8
8
  export interface CoralFs {
9
- /** USB device directory names under `/sys/bus/usb/devices` (e.g. `2-4`). */
10
- listUsbDevices(): readonly string[];
11
- /** Read a `<sysfsNode>/<attr>` value (idVendor / idProduct), trimmed. */
9
+ /**
10
+ * USB device directory names under `/sys/bus/usb/devices` (e.g. `2-4`), or
11
+ * `null` when the bus cannot be read at all (no `/sys`, a restricted view).
12
+ * `null` and an empty listing both mean "the bus is not observable".
13
+ */
14
+ listUsbDevices(): readonly string[] | null;
15
+ /** Read a `<sysfsNode>/<attr>` value (idVendor / idProduct / busnum / devnum), trimmed. */
12
16
  readUsbAttr(device: string, attr: string): string;
13
17
  /** PCI function names under `/sys/bus/pci/devices` (e.g. `0000:03:00.0`). */
14
18
  listPciDevices(): readonly string[];
@@ -16,7 +20,7 @@ export interface CoralFs {
16
20
  readPciAttr(device: string, attr: string): string;
17
21
  /** Entry names under `/sys/class/apex` (the gasket/apex driver: `apex_0`, …). */
18
22
  listApexClass(): readonly string[];
19
- /** Whether this process can open a device node for read AND write. */
23
+ /** Whether this process can open a device node (`/dev/apex_N`, `/dev/bus/usb/…`) for read AND write. */
20
24
  canOpen(path: string): boolean;
21
25
  /** Whether a filesystem path exists (the libedgetpu delegate, `/dev/apex_N`). */
22
26
  exists(path: string): boolean;
@@ -29,20 +33,55 @@ export interface CoralFs {
29
33
  * `/data/deps/edgetpu/lib/libedgetpu.so.1`.
30
34
  */
31
35
  export type EdgetpuDelegateHost = Omit<EdgetpuDelegateLookup, "exists">;
36
+ /** Whether this process could see the USB bus at all. */
37
+ export type CoralUsbBusView = "observed" | "unobservable";
32
38
  /**
33
- * Detect Coral Edge TPUs on USB and PCIe/M.2.
39
+ * Which evidence decided the Coral answer — logged by the probe so a node
40
+ * that reports (or stops reporting) a Coral says WHY:
41
+ * - `usb-ids` — a Coral USB id is on the bus (usable or not: its device node
42
+ * decides, see {@link CoralDetection.inaccessibleUsbNodes});
43
+ * - `pci` — a PCIe/M.2 Coral (usable or not) is on the PCI bus;
44
+ * - `delegate-fallback` — the USB bus is not observable and the libedgetpu
45
+ * delegate is installed, so one USB unit is ASSUMED;
46
+ * - `none` — no Coral.
47
+ */
48
+ export type CoralDecision = "usb-ids" | "pci" | "delegate-fallback" | "none";
49
+ export interface CoralDetection {
50
+ readonly info: CoralInfo | null;
51
+ readonly usbBus: CoralUsbBusView;
52
+ readonly decidedBy: CoralDecision;
53
+ /**
54
+ * The device node of every USB Coral sysfs lists but this process cannot
55
+ * open read/write (`/dev/bus/usb/<BBB>/<DDD>`, or `<sysfs entry>` when
56
+ * sysfs gave no bus/device number) — the evidence behind a USB
57
+ * `device-not-accessible`. Empty when every listed stick is usable.
58
+ */
59
+ readonly inaccessibleUsbNodes: readonly string[];
60
+ }
61
+ /**
62
+ * Detect Coral Edge TPUs on USB and PCIe/M.2 — the answer only. See
63
+ * {@link detectCoralAccelerator} for the evidence that decided it.
64
+ */
65
+ export declare function classifyCoralAccelerator(fsx: CoralFs, delegateHost?: EdgetpuDelegateHost): CoralInfo | null;
66
+ /**
67
+ * Detect Coral Edge TPUs on USB and PCIe/M.2, with the evidence that decided.
34
68
  *
35
- * - USB: every matching USB device counts (multiple Corals run concurrently).
69
+ * - USB: every matching USB device counts (multiple Corals run concurrently),
70
+ * usable only if its `/dev/bus/usb/<BBB>/<DDD>` node opens read/write — a
71
+ * listed stick whose node is missing or refused is `device-not-accessible`.
36
72
  * - PCIe: the apex driver's units, each usable only if its device node opens;
37
73
  * a Coral PCI function the driver did not bind is `driver-missing`.
38
- * - Fallback: when NO Coral signal of either bus is visible but the libedgetpu
39
- * delegate is installed (a container whose `/sys` USB view is limited), one
40
- * USB Coral is assumed — never when a PCI Coral was seen, since the delegate
41
- * then says nothing about USB.
74
+ * - Fallback: when the USB bus is NOT OBSERVABLE (`/sys/bus/usb/devices`
75
+ * missing, unreadable or empty — a macOS desktop, a restricted container)
76
+ * and no PCI Coral was seen, an installed libedgetpu delegate means one USB
77
+ * Coral is assumed. A bus that IS readable and lists no Coral id is the
78
+ * answer: no USB Coral. The delegate stays installed after a stick is
79
+ * unplugged or moved to another node, so it is evidence only where nothing
80
+ * better exists (D919).
42
81
  *
43
82
  * Returns `null` only when no Coral was found at all; a present-but-unusable
44
83
  * Coral is reported with its typed reason, never as absent (D393/D315).
45
84
  */
46
- export declare function classifyCoralAccelerator(fsx: CoralFs, delegateHost?: EdgetpuDelegateHost): CoralInfo | null;
85
+ export declare function detectCoralAccelerator(fsx: CoralFs, delegateHost?: EdgetpuDelegateHost): CoralDetection;
47
86
  /** The real filesystem view: `/sys` for enumeration, `/dev` for access. */
48
87
  export declare const nodeCoralFs: CoralFs;
@@ -5,13 +5,19 @@
5
5
  * exposes the result via the `platform-probe` capability (singleton per
6
6
  * node).
7
7
  */
8
- import type { ProviderRegistration } from "@camstack/types";
8
+ import type { ProviderRegistration, AcceleratorRescan } from "@camstack/types";
9
9
  import { BaseAddon } from "@camstack/types";
10
10
  export { PlatformScorer } from "./platform-scorer.js";
11
11
  export { InferenceConfigResolver } from "./inference-config-resolver.js";
12
+ /** How often the accelerator part of the probe is re-run (D919). Cheap: `/sys` + `/dev` reads. */
13
+ export declare const ACCELERATOR_REPROBE_INTERVAL_MS = 6e4;
14
+ /** What started an accelerator re-probe — logged with every change. */
15
+ export type AcceleratorReprobeTrigger = "periodic" | "operator";
12
16
  export declare class PlatformProbeNativeAddon extends BaseAddon {
13
17
  private scorer;
14
18
  private cachedCaps;
19
+ /** The periodic accelerator re-probe; started once the full probe completed. */
20
+ private reprobeTimer;
15
21
  /**
16
22
  * Per-boot generation stamp for the manual readiness emissions below.
17
23
  * Constant for the lifetime of this addon instance (== one process boot);
@@ -36,6 +42,16 @@ export declare class PlatformProbeNativeAddon extends BaseAddon {
36
42
  /** Emit a `system.ready-state` transition for the platform-probe cap. */
37
43
  private emitProbeReadiness;
38
44
  protected onInitialize(): Promise<ProviderRegistration[]>;
45
+ /** Start the periodic accelerator re-probe (idempotent). */
46
+ private startAcceleratorReprobe;
47
+ /**
48
+ * Re-run the accelerator part of the probe and serve its answer from now on.
49
+ * Every device that appeared or disappeared is logged, naming the node and
50
+ * what triggered the re-probe; the orchestrator sees the new list on its next
51
+ * `getCapabilities` read and re-elects through its device-set-change path.
52
+ * `null` when the scorer is gone or has not completed its first probe.
53
+ */
54
+ reprobeAccelerators(trigger: AcceleratorReprobeTrigger): AcceleratorRescan | null;
39
55
  protected onShutdown(): Promise<void>;
40
56
  }
41
57
  export default PlatformProbeNativeAddon;