@camstack/system 1.2.276 → 1.2.277
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/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- package/dist/builtins/alerts/alerts.addon.js +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- package/dist/builtins/autotrack/index.js +1 -1
- package/dist/builtins/autotrack/index.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
- package/dist/builtins/camera-grid/index.js +1 -1
- package/dist/builtins/camera-grid/index.mjs +1 -1
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
- package/dist/builtins/device-manager/device-bindings-store.d.ts +10 -0
- package/dist/builtins/device-manager/device-manager.addon.js +63 -118
- package/dist/builtins/device-manager/device-manager.addon.mjs +64 -116
- package/dist/builtins/device-manager/device-meta-types.d.ts +15 -27
- package/dist/builtins/device-manager/device-source-activation.d.ts +9 -43
- package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
- package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/local-auth.addon.js +1 -1
- package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
- package/dist/builtins/local-network/local-network.addon.js +1 -1
- package/dist/builtins/local-network/local-network.addon.mjs +1 -1
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/index.mjs +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- package/dist/builtins/system-config/system-config.addon.js +1 -1
- package/dist/builtins/system-config/system-config.addon.mjs +1 -1
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{dist-D_OlSf31.js → dist-Bu8HN-KS.js} +36 -18
- package/dist/{dist-AHdiIdJH.mjs → dist-DOF9wnat.mjs} +36 -18
- package/dist/index.d.ts +1 -1
- package/dist/index.js +14 -67
- package/dist/index.mjs +16 -66
- package/dist/kernel/capability-registry.d.ts +12 -42
- package/dist/kernel/index.d.ts +0 -1
- package/dist/{retired-settings-keys-LwFyTKun.js → retired-settings-keys-BwE6S2eQ.js} +1 -1
- package/dist/{retired-settings-keys-Cp3oG_aH.mjs → retired-settings-keys-DXMfts8c.mjs} +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
3
|
-
const require_dist = require("./dist-
|
|
3
|
+
const require_dist = require("./dist-Bu8HN-KS.js");
|
|
4
4
|
const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
|
|
5
5
|
require("./builtins/alerts/index.js");
|
|
6
6
|
const require_formatter = require("./formatter-DqAKDlvN.js");
|
|
@@ -5908,7 +5908,6 @@ var CapabilityRegistry = class CapabilityRegistry {
|
|
|
5908
5908
|
* camera keeps every provider it has today, and a provider that registers
|
|
5909
5909
|
* after the operator's last toggle needs no second write to be seen.
|
|
5910
5910
|
*/
|
|
5911
|
-
deviceDisabledSources = /* @__PURE__ */ new Map();
|
|
5912
5911
|
/** autoActivate flags per (capability, addonId) — from addon manifests */
|
|
5913
5912
|
autoActivateFlags = /* @__PURE__ */ new Map();
|
|
5914
5913
|
/**
|
|
@@ -6805,72 +6804,23 @@ var CapabilityRegistry = class CapabilityRegistry {
|
|
|
6805
6804
|
return null;
|
|
6806
6805
|
}
|
|
6807
6806
|
/**
|
|
6808
|
-
* Mirror ONE device's persisted source deactivations for `capability` into
|
|
6809
|
-
* the projection (D556). The authority is the device-manager's
|
|
6810
|
-
* `deviceBindings` store; this is the read side of that write and the only
|
|
6811
|
-
* way the set changes.
|
|
6812
|
-
*
|
|
6813
|
-
* No check that `capability` is declared, and none that the addons are
|
|
6814
|
-
* registered: a persisted operator decision is a fact about the fleet, not a
|
|
6815
|
-
* reference to a live object, and replaying it at boot must not depend on
|
|
6816
|
-
* which addon happened to register first. An empty list drops the entry
|
|
6817
|
-
* (unset = every source).
|
|
6818
|
-
*/
|
|
6819
|
-
setDeviceDisabledSources(deviceId, capability, addonIds) {
|
|
6820
|
-
let deviceMap = this.deviceDisabledSources.get(deviceId);
|
|
6821
|
-
if (addonIds.length === 0) {
|
|
6822
|
-
if (!deviceMap) return;
|
|
6823
|
-
deviceMap.delete(capability);
|
|
6824
|
-
if (deviceMap.size === 0) this.deviceDisabledSources.delete(deviceId);
|
|
6825
|
-
this.logger.debug("Device source deactivations cleared", {
|
|
6826
|
-
tags: { deviceId: Number(deviceId) },
|
|
6827
|
-
meta: { capability }
|
|
6828
|
-
});
|
|
6829
|
-
return;
|
|
6830
|
-
}
|
|
6831
|
-
if (!deviceMap) {
|
|
6832
|
-
deviceMap = /* @__PURE__ */ new Map();
|
|
6833
|
-
this.deviceDisabledSources.set(deviceId, deviceMap);
|
|
6834
|
-
}
|
|
6835
|
-
deviceMap.set(capability, new Set(addonIds));
|
|
6836
|
-
this.logger.debug("Device source deactivations mirrored", {
|
|
6837
|
-
tags: { deviceId: Number(deviceId) },
|
|
6838
|
-
meta: {
|
|
6839
|
-
capability,
|
|
6840
|
-
disabledAddonIds: [...addonIds]
|
|
6841
|
-
}
|
|
6842
|
-
});
|
|
6843
|
-
}
|
|
6844
|
-
/**
|
|
6845
|
-
* The addon ids the operator switched OFF as sources of this device for
|
|
6846
|
-
* `capability`. Empty means every source — never "none".
|
|
6847
|
-
*/
|
|
6848
|
-
getDeviceDisabledSources(deviceId, capability) {
|
|
6849
|
-
const disabled = this.deviceDisabledSources.get(deviceId)?.get(capability);
|
|
6850
|
-
return disabled === void 0 ? [] : [...disabled];
|
|
6851
|
-
}
|
|
6852
|
-
/** Is `addonId` switched off as a source of this device for `capability`? */
|
|
6853
|
-
isDeviceSourceDisabled(deviceId, capability, addonId) {
|
|
6854
|
-
return this.deviceDisabledSources.get(deviceId)?.get(capability)?.has(addonId) === true;
|
|
6855
|
-
}
|
|
6856
|
-
/**
|
|
6857
6807
|
* Resolve collection providers for a specific device.
|
|
6858
|
-
* Filters by activation (the manifest's autoActivate) and by the per-device
|
|
6859
|
-
* source deactivations the operator persisted (D556).
|
|
6860
6808
|
*
|
|
6861
|
-
*
|
|
6862
|
-
* device
|
|
6863
|
-
*
|
|
6864
|
-
*
|
|
6865
|
-
*
|
|
6866
|
-
*
|
|
6867
|
-
|
|
6868
|
-
|
|
6809
|
+
* Filters by activation (the manifest's autoActivate) and by nothing else.
|
|
6810
|
+
* The per-device DENY set that used to filter here is gone with the switch
|
|
6811
|
+
* it projected (2026-09-20): *"tutti i providers funzionano sempre"*. WHICH
|
|
6812
|
+
* providers a device has is now answered by its BINDINGS
|
|
6813
|
+
* (`device-bindings-store.ts` step 0), which is a different question from
|
|
6814
|
+
* which of them are registered and running — this one.
|
|
6815
|
+
*
|
|
6816
|
+
* `deviceId` is kept in the signature and deliberately unused: the resolution
|
|
6817
|
+
* is per-device by CONTRACT, and a caller that stops passing one is a caller
|
|
6818
|
+
* that has stopped asking about a device.
|
|
6819
|
+
*/
|
|
6820
|
+
resolveCollectionForDevice(capability, _deviceId) {
|
|
6869
6821
|
const state = this.capabilities.get(capability);
|
|
6870
6822
|
if (!state || state.definition.mode !== "collection") return [];
|
|
6871
|
-
|
|
6872
|
-
const keepSwitchedOff = options?.includeSwitchedOff === true;
|
|
6873
|
-
return [...state.providers.entries()].filter(([addonId]) => !state.disabledProviders.has(addonId)).filter(([addonId]) => this.isActiveForSystem(capability, addonId)).filter(([addonId]) => keepSwitchedOff || disabledForDevice?.has(addonId) !== true).map(([, provider]) => asProvider(provider));
|
|
6823
|
+
return [...state.providers.entries()].filter(([addonId]) => !state.disabledProviders.has(addonId)).filter(([addonId]) => this.isActiveForSystem(capability, addonId)).map(([, provider]) => asProvider(provider));
|
|
6874
6824
|
}
|
|
6875
6825
|
/** Check if all dependencies for a capability are satisfied. */
|
|
6876
6826
|
areDependenciesMet(capabilityName) {
|
|
@@ -96239,14 +96189,12 @@ exports.isClusterSecretMismatchError = isClusterSecretMismatchError;
|
|
|
96239
96189
|
exports.isCollectionArrayMethod = require_dist.isCollectionArrayMethod;
|
|
96240
96190
|
exports.isInfraCapability = isInfraCapability;
|
|
96241
96191
|
exports.isModelDownloaded = require_event_loop_stall_monitor.isModelDownloaded;
|
|
96242
|
-
exports.isSourceDenied = require_builtins_device_manager_device_manager_addon.isSourceDenied;
|
|
96243
96192
|
exports.isSourceNewer = isSourceNewer;
|
|
96244
96193
|
exports.isolatedBuiltinPhase = isolatedBuiltinPhase;
|
|
96245
96194
|
exports.loadTlsCert = require_tls$1.loadTlsCert;
|
|
96246
96195
|
exports.localEndpointPath = require_manifest_system_deps.localEndpointPath;
|
|
96247
96196
|
exports.localProviderLink = require_manifest_system_deps.localProviderLink;
|
|
96248
96197
|
exports.mountNativeCapService = require_manifest_system_deps.mountNativeCapService;
|
|
96249
|
-
exports.nextDisabledSources = require_builtins_device_manager_device_manager_addon.nextDisabledSources;
|
|
96250
96198
|
exports.nextRssBudgetState = require_manifest_system_deps.nextRssBudgetState;
|
|
96251
96199
|
exports.parseCapAction = require_manifest_system_deps.parseCapAction;
|
|
96252
96200
|
exports.parseRangeHeader = require_event_loop_stall_monitor.parseRangeHeader;
|
|
@@ -96272,7 +96220,6 @@ exports.reissueTlsLeaf = require_tls$1.reissueTlsLeaf;
|
|
|
96272
96220
|
exports.resolveFilePath = require_event_loop_stall_monitor.resolveFilePath;
|
|
96273
96221
|
exports.resolveHwAccel = require_manifest_system_deps.resolveHwAccel;
|
|
96274
96222
|
exports.resolveNpmInvocation = require_manifest_system_deps.resolveNpmInvocation;
|
|
96275
|
-
exports.restoreDeviceSourceActivations = require_builtins_device_manager_device_manager_addon.restoreDeviceSourceActivations;
|
|
96276
96223
|
exports.runHubAddonBoot = runHubAddonBoot;
|
|
96277
96224
|
exports.runNpm = require_manifest_system_deps.runNpm;
|
|
96278
96225
|
exports.sampleSocketDirection = require_manifest_system_deps.sampleSocketDirection;
|
package/dist/index.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM$1, r as __exportAll, t as __commonJSMin$1 } from "./chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { An as parseJsonUnknown, F as addonSettingsCapability, Fn as EventCategory$1, Gt as scopesAllowDeviceCap, Ht as resolveMethodAuth, It as procedureAuthKey, Mn as resolveCapMount, Mt as objectInputDeclaresAddonId, Nn as scopeKey, Nt as objectInputDeclaresRequiredDeviceId, S as RUNTIME_DEFAULTS, Sn as emitDownForOwnedCaps, Tt as looseSchema, Wt as scopesAllowAddon, _t as isVoidInput, bn as asString$1, bt as lifecycleJobSchema, dn as DEVICE_STATUS_METHOD, dt as isArrayOutputSchema, ft as isCollectionArrayMethod, g as LOG_LEVEL_RANK, gn as ReadinessTimeoutError, hn as ReadinessRegistry, jn as readinessKey, kn as parseJsonObject, ln as DATAPLANE_SECRET_HEADER$1, mt as isObjectInput, on as errMsg$1, st as extractNestedAddonId, t as ALL_CAPABILITY_DEFINITIONS, un as DEVICE_SETTINGS_CONTRIBUTION_METHODS, vn as asJsonObject$1, vt as kebabToCamel, wn as expandCapMethods, wt as logLevelAtMost, xn as createEvent, y as METHOD_ACCESS_MAP, yn as asNumber } from "./dist-
|
|
2
|
+
import { An as parseJsonUnknown, F as addonSettingsCapability, Fn as EventCategory$1, Gt as scopesAllowDeviceCap, Ht as resolveMethodAuth, It as procedureAuthKey, Mn as resolveCapMount, Mt as objectInputDeclaresAddonId, Nn as scopeKey, Nt as objectInputDeclaresRequiredDeviceId, S as RUNTIME_DEFAULTS, Sn as emitDownForOwnedCaps, Tt as looseSchema, Wt as scopesAllowAddon, _t as isVoidInput, bn as asString$1, bt as lifecycleJobSchema, dn as DEVICE_STATUS_METHOD, dt as isArrayOutputSchema, ft as isCollectionArrayMethod, g as LOG_LEVEL_RANK, gn as ReadinessTimeoutError, hn as ReadinessRegistry, jn as readinessKey, kn as parseJsonObject, ln as DATAPLANE_SECRET_HEADER$1, mt as isObjectInput, on as errMsg$1, st as extractNestedAddonId, t as ALL_CAPABILITY_DEFINITIONS, un as DEVICE_SETTINGS_CONTRIBUTION_METHODS, vn as asJsonObject$1, vt as kebabToCamel, wn as expandCapMethods, wt as logLevelAtMost, xn as createEvent, y as METHOD_ACCESS_MAP, yn as asNumber } from "./dist-DOF9wnat.mjs";
|
|
3
3
|
import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
|
|
4
4
|
import "./builtins/alerts/index.mjs";
|
|
5
5
|
import { t as formatLogLine } from "./formatter-B7qW8bPJ.mjs";
|
|
6
6
|
import { ConsoleDestination, ConsoleLoggingAddon } from "./builtins/console-logging/index.mjs";
|
|
7
7
|
import { CoreBlocksAddon } from "./builtins/core-blocks/core-blocks.addon.mjs";
|
|
8
8
|
import "./builtins/core-blocks/index.mjs";
|
|
9
|
-
import { DeviceManagerAddon,
|
|
9
|
+
import { DeviceManagerAddon, t as setWrapperActive } from "./builtins/device-manager/device-manager.addon.mjs";
|
|
10
10
|
import "./builtins/device-manager/index.mjs";
|
|
11
11
|
import { HubForwarderAddon, HubForwarderDestination } from "./builtins/hub-forwarder/index.mjs";
|
|
12
12
|
import { LivenessMonitorAddon } from "./builtins/liveness-monitor/liveness-monitor.addon.mjs";
|
|
@@ -5901,7 +5901,6 @@ var CapabilityRegistry = class CapabilityRegistry {
|
|
|
5901
5901
|
* camera keeps every provider it has today, and a provider that registers
|
|
5902
5902
|
* after the operator's last toggle needs no second write to be seen.
|
|
5903
5903
|
*/
|
|
5904
|
-
deviceDisabledSources = /* @__PURE__ */ new Map();
|
|
5905
5904
|
/** autoActivate flags per (capability, addonId) — from addon manifests */
|
|
5906
5905
|
autoActivateFlags = /* @__PURE__ */ new Map();
|
|
5907
5906
|
/**
|
|
@@ -6798,72 +6797,23 @@ var CapabilityRegistry = class CapabilityRegistry {
|
|
|
6798
6797
|
return null;
|
|
6799
6798
|
}
|
|
6800
6799
|
/**
|
|
6801
|
-
* Mirror ONE device's persisted source deactivations for `capability` into
|
|
6802
|
-
* the projection (D556). The authority is the device-manager's
|
|
6803
|
-
* `deviceBindings` store; this is the read side of that write and the only
|
|
6804
|
-
* way the set changes.
|
|
6805
|
-
*
|
|
6806
|
-
* No check that `capability` is declared, and none that the addons are
|
|
6807
|
-
* registered: a persisted operator decision is a fact about the fleet, not a
|
|
6808
|
-
* reference to a live object, and replaying it at boot must not depend on
|
|
6809
|
-
* which addon happened to register first. An empty list drops the entry
|
|
6810
|
-
* (unset = every source).
|
|
6811
|
-
*/
|
|
6812
|
-
setDeviceDisabledSources(deviceId, capability, addonIds) {
|
|
6813
|
-
let deviceMap = this.deviceDisabledSources.get(deviceId);
|
|
6814
|
-
if (addonIds.length === 0) {
|
|
6815
|
-
if (!deviceMap) return;
|
|
6816
|
-
deviceMap.delete(capability);
|
|
6817
|
-
if (deviceMap.size === 0) this.deviceDisabledSources.delete(deviceId);
|
|
6818
|
-
this.logger.debug("Device source deactivations cleared", {
|
|
6819
|
-
tags: { deviceId: Number(deviceId) },
|
|
6820
|
-
meta: { capability }
|
|
6821
|
-
});
|
|
6822
|
-
return;
|
|
6823
|
-
}
|
|
6824
|
-
if (!deviceMap) {
|
|
6825
|
-
deviceMap = /* @__PURE__ */ new Map();
|
|
6826
|
-
this.deviceDisabledSources.set(deviceId, deviceMap);
|
|
6827
|
-
}
|
|
6828
|
-
deviceMap.set(capability, new Set(addonIds));
|
|
6829
|
-
this.logger.debug("Device source deactivations mirrored", {
|
|
6830
|
-
tags: { deviceId: Number(deviceId) },
|
|
6831
|
-
meta: {
|
|
6832
|
-
capability,
|
|
6833
|
-
disabledAddonIds: [...addonIds]
|
|
6834
|
-
}
|
|
6835
|
-
});
|
|
6836
|
-
}
|
|
6837
|
-
/**
|
|
6838
|
-
* The addon ids the operator switched OFF as sources of this device for
|
|
6839
|
-
* `capability`. Empty means every source — never "none".
|
|
6840
|
-
*/
|
|
6841
|
-
getDeviceDisabledSources(deviceId, capability) {
|
|
6842
|
-
const disabled = this.deviceDisabledSources.get(deviceId)?.get(capability);
|
|
6843
|
-
return disabled === void 0 ? [] : [...disabled];
|
|
6844
|
-
}
|
|
6845
|
-
/** Is `addonId` switched off as a source of this device for `capability`? */
|
|
6846
|
-
isDeviceSourceDisabled(deviceId, capability, addonId) {
|
|
6847
|
-
return this.deviceDisabledSources.get(deviceId)?.get(capability)?.has(addonId) === true;
|
|
6848
|
-
}
|
|
6849
|
-
/**
|
|
6850
6800
|
* Resolve collection providers for a specific device.
|
|
6851
|
-
* Filters by activation (the manifest's autoActivate) and by the per-device
|
|
6852
|
-
* source deactivations the operator persisted (D556).
|
|
6853
6801
|
*
|
|
6854
|
-
*
|
|
6855
|
-
* device
|
|
6856
|
-
*
|
|
6857
|
-
*
|
|
6858
|
-
*
|
|
6859
|
-
*
|
|
6860
|
-
|
|
6861
|
-
|
|
6802
|
+
* Filters by activation (the manifest's autoActivate) and by nothing else.
|
|
6803
|
+
* The per-device DENY set that used to filter here is gone with the switch
|
|
6804
|
+
* it projected (2026-09-20): *"tutti i providers funzionano sempre"*. WHICH
|
|
6805
|
+
* providers a device has is now answered by its BINDINGS
|
|
6806
|
+
* (`device-bindings-store.ts` step 0), which is a different question from
|
|
6807
|
+
* which of them are registered and running — this one.
|
|
6808
|
+
*
|
|
6809
|
+
* `deviceId` is kept in the signature and deliberately unused: the resolution
|
|
6810
|
+
* is per-device by CONTRACT, and a caller that stops passing one is a caller
|
|
6811
|
+
* that has stopped asking about a device.
|
|
6812
|
+
*/
|
|
6813
|
+
resolveCollectionForDevice(capability, _deviceId) {
|
|
6862
6814
|
const state = this.capabilities.get(capability);
|
|
6863
6815
|
if (!state || state.definition.mode !== "collection") return [];
|
|
6864
|
-
|
|
6865
|
-
const keepSwitchedOff = options?.includeSwitchedOff === true;
|
|
6866
|
-
return [...state.providers.entries()].filter(([addonId]) => !state.disabledProviders.has(addonId)).filter(([addonId]) => this.isActiveForSystem(capability, addonId)).filter(([addonId]) => keepSwitchedOff || disabledForDevice?.has(addonId) !== true).map(([, provider]) => asProvider(provider));
|
|
6816
|
+
return [...state.providers.entries()].filter(([addonId]) => !state.disabledProviders.has(addonId)).filter(([addonId]) => this.isActiveForSystem(capability, addonId)).map(([, provider]) => asProvider(provider));
|
|
6867
6817
|
}
|
|
6868
6818
|
/** Check if all dependencies for a capability are satisfied. */
|
|
6869
6819
|
areDependenciesMet(capabilityName) {
|
|
@@ -95879,4 +95829,4 @@ var LifecycleJobEngine = class {
|
|
|
95879
95829
|
}
|
|
95880
95830
|
};
|
|
95881
95831
|
//#endregion
|
|
95882
|
-
export { AGENT_CAP_FWD_ACTION, AGENT_CAP_FWD_SERVICE, AGENT_READINESS_SERVICE_NAME, ALL_CAPABILITY_DEFINITIONS, ARRAY_BUFFER_CENSUS_COOLDOWN_MS, ARRAY_BUFFER_CENSUS_SUSTAIN_MS, ARRAY_BUFFER_CENSUS_THRESHOLD_MB, ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, AddonApiFactory, AddonDepsManager, AddonEngineManager, AddonHealthMonitor, AddonInstaller, AddonLoader, AddonManifest, AddonRouteRegistry, AlertCenterAddon, ApiKeyManager, AuthManager, CAP_ACTION_OVERFLOW_LABEL, CAP_ACTION_UNLABELLED, CA_COMMON_NAME, CA_VALIDITY_DAYS, CLUSTER_SECRET_MISMATCH_TYPE, CLUSTER_SECRET_REJECTED_EXIT_CODE, CORE_CAP_SERVICE_NAME, CapRouteError, CapRouteResolver, CapUsageRegistry, CapabilityHandle, CapabilityRegistry, CapabilityUnavailableError, ConfigManager, ConfigStore, ConsoleDestination, ConsoleLoggingAddon, CoreBlocksAddon, CustomActionRegistry, DECISIVE_HEAP_SPACES, DEFAULT_DATA_PATH, DEFAULT_LAN_HTTP_PORT, DEFAULT_LOG_LEVEL, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DataPlaneRegistry, DeviceManagerAddon, DeviceRegistry, DeviceStore, EMPTY_CAP_ACTION_READING, EMPTY_SOCKET_DIRECTION, EMPTY_SOCKET_PLANE_BASELINE, EVENT_PLANE_TOP_N, EVENT_TOPIC_PREFIX, EngineManagerResolver, EventBus, FeatureManager, FilesystemStorageAddon, FilesystemStorageProvider, FrameDecoder, FsStorageBackend, HEALTH_MONITOR_GRACE_PERIOD_MS, HEALTH_MONITOR_RETRY_INTERVALS_MS, HEALTH_MONITOR_TICK_MS, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_SPACE_REPORT_MIN_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HUB_MAIN_HEAP_WATCH_LABEL, HUB_MAIN_RSS_BUDGET_MB, HUB_RSS_BUDGET_ENV, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, INFRA_CAPABILITIES, IntegrationRegistry, JobJournal, LEAF_RENEWAL_WINDOW_DAYS, LifecycleJobEngine, LifecycleStateMachine, LivenessMonitorAddon, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, LoggingGate, LokiDestination, LokiLoggingAddon, MAX_CAP_ACTIONS_PER_PEER, MAX_LEAF_VALIDITY_DAYS, MESH_QUEUE_TOP_N, METHOD_ACCESS_MAP, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NATIVE_SCAN_DEPTH, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, OUTBOUND_QUEUE_COOLDOWN_MS, OUTBOUND_QUEUE_SUSTAIN_MS, OUTBOUND_QUEUE_THRESHOLD_BYTES, PARENT_ROUTED_PROVIDER_ADDON_ID, PYTHON_VERSION, PipelineRunner, PipelineValidator, PythonEnvManager, QUARANTINE_DIRNAME, RESTART_MARKER_FILE, RSS_BUDGET_REANNOUNCE_MIN_MS, RSS_BUDGET_RELEASE_RATIO, RUNNER_HEAP_WATCH_INTERVAL_MS, RUNNER_RSS_BUDGET_ENV, RUNTIME_DEFAULTS, ReadinessRegistry, ReadinessTimeoutError, ReplEngine, RingBuffer, SERVER_AUTH_OID, SOCKET_PLANE_TOP_N, SOCKET_QUEUE_TOP_N, STALL_REPORT_MS, STALL_TICK_MS, ScopedLogger, ScopedTokenManager, SocketChannel, SqliteSettingsAddon, SqliteSettingsBackend, StagingArea, StorageLocationManager, StorageManager, StorageOrchestratorAddon, StorageOrchestratorService, SystemConfigAddon, SystemEventBus, TRADITIONAL_NATIVE_PACKAGES, ToastService, UDS_NO_ROUTE_PREFIX, UdsLocalTransportClient, UdsLocalTransportServer, UserManager, WinstonDestination, WinstonLoggingAddon, ZERO_LOOP_DELAY, __resetCapUsageRegistryForTests, __resetLoggingGateForTests, adaptBrokerToCluster, addonSettingsCapability, allFamiliesListenHost, applyLanHttp, attributeStall, bindPendingLanHttp, bootstrapSchema, brokerCallForCap, brokerTransportLink, buildBinaryPath, buildCapRouters, buildHeapSample, buildLinkChain, buildNativeCapProxy, buildNodeManifest, buildNpmChildEnv, buildStorageLocationRegistry, buildUdsNativeCapProxy, builderMountedCapNames, callRegisterNodeWithRetry, callWithServiceDiscovery, canServeDataPlane, capActionLabel, capActionName, capActionSuffix, capBareAction, capServiceName, classifyAddonDir, classifyCapRoute, clearPendingRestart, closeLanHttp, clusterEventTopic, clusterSecretMatches, collectCertIdentity, collectModelFiles, contentTypeFor, copyDirRecursive, copyExtraFileDirs, createAddonContext, createAddonDataPlaneFacility, createAddonService, createArrayBufferCensusGate, createAuthenticatedFileServer, createBroker, createBrokerDeviceManagerApi, createCapActionCensus, createCoreCapService, createDeferredHeapWatchSink, createDoorSettingsView, createEventPlaneMeter, createEventPlaneReader, createFileDataPlaneHandler, createHubCapForwardService, createHubService, createInspectorArrayBufferCensus, createKernelHwAccel, createLocalTransport, createLoopDelayMeter, createMeshQueueReader, createOutboundQueueGate, createParentUnownedCallHandler, createProcessService, createReadinessService, createReadinessServiceForRegistry, createScopedProcessManager, createSocketDirectionCounters, createSocketPlaneMeter, createSocketPlaneReader, createStreamProbeBrokerService, createUdsAddonContext, createUdsEventBridge, createUdsEventBus, createUdsLogger, createUdsLoggerWithControl, createV8Reclaimer, deleteModelFromDisk, deriveAgentListenPort, describeProviderKindDrift, describeRss, detectWorkspacePackagesDir, deviceCapResolverLink, diffCapActionCensus, diffEventPlane, diffSocketPlane, downloadBinary, downloadFile, downloadModel, emitDownForOwnedCaps, emitHeapDiagnosticReport, encodeFrame, ensureAddonNativePrebuilds, ensureBinary, ensureDir, ensureFfmpeg, ensureLibraryBuilt, ensureModel, ensureNativePrebuilds, ensurePython, ensureTlsCert, evaluateExistingCert, expandCapMethods, fetchJson, findInPath, formatArrayBufferCensus, formatEventPlane, formatHeapSpaces, formatLogLine, formatMeshQueue, formatOutboundQueueVerdict, formatSocketPlane, getBrokerEventBus, getCapUsageRegistry, getFfmpegDownloadUrl, getLoggingGate, getModelFilePath, getMoleculerEventStats, getOrInitReadinessRegistry, getOrInitReadinessRegistryForClient, getPidStats, getPlatformInfo, getPythonDownloadUrl, getRestartMarkerPath, getSinglePidStats, getWorkerDeviceRegistry, hasDotNode, hashClusterSecret, heapSpaceField, hubMainRssBudget, installManifestNativeDeps, installManifestPythonDeps, installManifestSystemDeps, installPackageFromNpm, installPythonPackages, installPythonRequirements, ipcParentLink, isAddonDeploySource, isArrayBufferCensusReport, isArrayOutputSchema, isClusterSecretMismatchError, isCollectionArrayMethod, isInfraCapability, isModelDownloaded,
|
|
95832
|
+
export { AGENT_CAP_FWD_ACTION, AGENT_CAP_FWD_SERVICE, AGENT_READINESS_SERVICE_NAME, ALL_CAPABILITY_DEFINITIONS, ARRAY_BUFFER_CENSUS_COOLDOWN_MS, ARRAY_BUFFER_CENSUS_SUSTAIN_MS, ARRAY_BUFFER_CENSUS_THRESHOLD_MB, ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, AddonApiFactory, AddonDepsManager, AddonEngineManager, AddonHealthMonitor, AddonInstaller, AddonLoader, AddonManifest, AddonRouteRegistry, AlertCenterAddon, ApiKeyManager, AuthManager, CAP_ACTION_OVERFLOW_LABEL, CAP_ACTION_UNLABELLED, CA_COMMON_NAME, CA_VALIDITY_DAYS, CLUSTER_SECRET_MISMATCH_TYPE, CLUSTER_SECRET_REJECTED_EXIT_CODE, CORE_CAP_SERVICE_NAME, CapRouteError, CapRouteResolver, CapUsageRegistry, CapabilityHandle, CapabilityRegistry, CapabilityUnavailableError, ConfigManager, ConfigStore, ConsoleDestination, ConsoleLoggingAddon, CoreBlocksAddon, CustomActionRegistry, DECISIVE_HEAP_SPACES, DEFAULT_DATA_PATH, DEFAULT_LAN_HTTP_PORT, DEFAULT_LOG_LEVEL, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DataPlaneRegistry, DeviceManagerAddon, DeviceRegistry, DeviceStore, EMPTY_CAP_ACTION_READING, EMPTY_SOCKET_DIRECTION, EMPTY_SOCKET_PLANE_BASELINE, EVENT_PLANE_TOP_N, EVENT_TOPIC_PREFIX, EngineManagerResolver, EventBus, FeatureManager, FilesystemStorageAddon, FilesystemStorageProvider, FrameDecoder, FsStorageBackend, HEALTH_MONITOR_GRACE_PERIOD_MS, HEALTH_MONITOR_RETRY_INTERVALS_MS, HEALTH_MONITOR_TICK_MS, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_SPACE_REPORT_MIN_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HUB_MAIN_HEAP_WATCH_LABEL, HUB_MAIN_RSS_BUDGET_MB, HUB_RSS_BUDGET_ENV, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, INFRA_CAPABILITIES, IntegrationRegistry, JobJournal, LEAF_RENEWAL_WINDOW_DAYS, LifecycleJobEngine, LifecycleStateMachine, LivenessMonitorAddon, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, LoggingGate, LokiDestination, LokiLoggingAddon, MAX_CAP_ACTIONS_PER_PEER, MAX_LEAF_VALIDITY_DAYS, MESH_QUEUE_TOP_N, METHOD_ACCESS_MAP, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NATIVE_SCAN_DEPTH, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, OUTBOUND_QUEUE_COOLDOWN_MS, OUTBOUND_QUEUE_SUSTAIN_MS, OUTBOUND_QUEUE_THRESHOLD_BYTES, PARENT_ROUTED_PROVIDER_ADDON_ID, PYTHON_VERSION, PipelineRunner, PipelineValidator, PythonEnvManager, QUARANTINE_DIRNAME, RESTART_MARKER_FILE, RSS_BUDGET_REANNOUNCE_MIN_MS, RSS_BUDGET_RELEASE_RATIO, RUNNER_HEAP_WATCH_INTERVAL_MS, RUNNER_RSS_BUDGET_ENV, RUNTIME_DEFAULTS, ReadinessRegistry, ReadinessTimeoutError, ReplEngine, RingBuffer, SERVER_AUTH_OID, SOCKET_PLANE_TOP_N, SOCKET_QUEUE_TOP_N, STALL_REPORT_MS, STALL_TICK_MS, ScopedLogger, ScopedTokenManager, SocketChannel, SqliteSettingsAddon, SqliteSettingsBackend, StagingArea, StorageLocationManager, StorageManager, StorageOrchestratorAddon, StorageOrchestratorService, SystemConfigAddon, SystemEventBus, TRADITIONAL_NATIVE_PACKAGES, ToastService, UDS_NO_ROUTE_PREFIX, UdsLocalTransportClient, UdsLocalTransportServer, UserManager, WinstonDestination, WinstonLoggingAddon, ZERO_LOOP_DELAY, __resetCapUsageRegistryForTests, __resetLoggingGateForTests, adaptBrokerToCluster, addonSettingsCapability, allFamiliesListenHost, applyLanHttp, attributeStall, bindPendingLanHttp, bootstrapSchema, brokerCallForCap, brokerTransportLink, buildBinaryPath, buildCapRouters, buildHeapSample, buildLinkChain, buildNativeCapProxy, buildNodeManifest, buildNpmChildEnv, buildStorageLocationRegistry, buildUdsNativeCapProxy, builderMountedCapNames, callRegisterNodeWithRetry, callWithServiceDiscovery, canServeDataPlane, capActionLabel, capActionName, capActionSuffix, capBareAction, capServiceName, classifyAddonDir, classifyCapRoute, clearPendingRestart, closeLanHttp, clusterEventTopic, clusterSecretMatches, collectCertIdentity, collectModelFiles, contentTypeFor, copyDirRecursive, copyExtraFileDirs, createAddonContext, createAddonDataPlaneFacility, createAddonService, createArrayBufferCensusGate, createAuthenticatedFileServer, createBroker, createBrokerDeviceManagerApi, createCapActionCensus, createCoreCapService, createDeferredHeapWatchSink, createDoorSettingsView, createEventPlaneMeter, createEventPlaneReader, createFileDataPlaneHandler, createHubCapForwardService, createHubService, createInspectorArrayBufferCensus, createKernelHwAccel, createLocalTransport, createLoopDelayMeter, createMeshQueueReader, createOutboundQueueGate, createParentUnownedCallHandler, createProcessService, createReadinessService, createReadinessServiceForRegistry, createScopedProcessManager, createSocketDirectionCounters, createSocketPlaneMeter, createSocketPlaneReader, createStreamProbeBrokerService, createUdsAddonContext, createUdsEventBridge, createUdsEventBus, createUdsLogger, createUdsLoggerWithControl, createV8Reclaimer, deleteModelFromDisk, deriveAgentListenPort, describeProviderKindDrift, describeRss, detectWorkspacePackagesDir, deviceCapResolverLink, diffCapActionCensus, diffEventPlane, diffSocketPlane, downloadBinary, downloadFile, downloadModel, emitDownForOwnedCaps, emitHeapDiagnosticReport, encodeFrame, ensureAddonNativePrebuilds, ensureBinary, ensureDir, ensureFfmpeg, ensureLibraryBuilt, ensureModel, ensureNativePrebuilds, ensurePython, ensureTlsCert, evaluateExistingCert, expandCapMethods, fetchJson, findInPath, formatArrayBufferCensus, formatEventPlane, formatHeapSpaces, formatLogLine, formatMeshQueue, formatOutboundQueueVerdict, formatSocketPlane, getBrokerEventBus, getCapUsageRegistry, getFfmpegDownloadUrl, getLoggingGate, getModelFilePath, getMoleculerEventStats, getOrInitReadinessRegistry, getOrInitReadinessRegistryForClient, getPidStats, getPlatformInfo, getPythonDownloadUrl, getRestartMarkerPath, getSinglePidStats, getWorkerDeviceRegistry, hasDotNode, hashClusterSecret, heapSpaceField, hubMainRssBudget, installManifestNativeDeps, installManifestPythonDeps, installManifestSystemDeps, installPackageFromNpm, installPythonPackages, installPythonRequirements, ipcParentLink, isAddonDeploySource, isArrayBufferCensusReport, isArrayOutputSchema, isClusterSecretMismatchError, isCollectionArrayMethod, isInfraCapability, isModelDownloaded, isSourceNewer, isolatedBuiltinPhase, loadTlsCert, localEndpointPath, localProviderLink, mountNativeCapService, nextRssBudgetState, parseCapAction, parseRangeHeader, parseRssBudgetMb, parseTokenizedUrl, partitionIsolatedBuiltinIds, proxyToUpstream, quarantineAddonResidue, readExtraSans, readHeapSpaces, readLanHttpState, readMoleculerFanoutMode, readPendingRestart, readSocketQueues, readTlsAccessStatus, readTlsMode, readinessKey, reclaimIntervalMs, recordSocketFrame, registerEventBusService, registerLanHttpHandler, reissueTlsLeaf, resolveFilePath, resolveHwAccel, resolveNpmInvocation, runHubAddonBoot, runNpm, sampleSocketDirection, scheduleSelfRestart, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, selectAddonResidue, selectReportedSpaces, serializeTypedArrays, setHubConnected, setNodeEventInterest, setWrapperActive, shouldReclaim, socketDirectionBytes, socketDirectionMessages, startEventLoopStallMonitor, startHeapWatch, startRunnerHeapWatch, strandedMb, stripCamstackDeps, subscribePassthrough, udsChildLogToWorkerEntry, validateProviderRegistrations, validateUploadedTls, waitUntilReady, writeExtraSans, writePendingRestart, writeTlsMode };
|
|
@@ -30,17 +30,6 @@ export type CollectionConfigReader = (capability: string) => readonly string[] |
|
|
|
30
30
|
* cannot present it. See docs/decisions/adr-0188-an-unregister-carries-proof-of-ownership.md.
|
|
31
31
|
*/
|
|
32
32
|
export type ProviderOwnerToken = string;
|
|
33
|
-
/**
|
|
34
|
-
* How much of a device's COLLECTION a caller is asking for.
|
|
35
|
-
*
|
|
36
|
-
* The default — and every caller that intends to USE the providers — is the
|
|
37
|
-
* serving set: the sources that may contribute. The source LISTING path asks
|
|
38
|
-
* for the whole set instead, because a source the operator switched off must
|
|
39
|
-
* still produce a row to be switched back on from (D556 as amended).
|
|
40
|
-
*/
|
|
41
|
-
export interface DeviceCollectionResolution {
|
|
42
|
-
readonly includeSwitchedOff: boolean;
|
|
43
|
-
}
|
|
44
33
|
export declare class CapabilityRegistry {
|
|
45
34
|
private readonly capabilities;
|
|
46
35
|
private readonly logger;
|
|
@@ -86,7 +75,6 @@ export declare class CapabilityRegistry {
|
|
|
86
75
|
* camera keeps every provider it has today, and a provider that registers
|
|
87
76
|
* after the operator's last toggle needs no second write to be seen.
|
|
88
77
|
*/
|
|
89
|
-
private readonly deviceDisabledSources;
|
|
90
78
|
/** autoActivate flags per (capability, addonId) — from addon manifests */
|
|
91
79
|
private readonly autoActivateFlags;
|
|
92
80
|
/**
|
|
@@ -491,39 +479,21 @@ export declare class CapabilityRegistry {
|
|
|
491
479
|
* singleton override — the in-memory provider pin, not a persisted flag.
|
|
492
480
|
*/
|
|
493
481
|
resolveForDevice<T = unknown>(capability: string, deviceId: string): T | null;
|
|
494
|
-
/**
|
|
495
|
-
* Mirror ONE device's persisted source deactivations for `capability` into
|
|
496
|
-
* the projection (D556). The authority is the device-manager's
|
|
497
|
-
* `deviceBindings` store; this is the read side of that write and the only
|
|
498
|
-
* way the set changes.
|
|
499
|
-
*
|
|
500
|
-
* No check that `capability` is declared, and none that the addons are
|
|
501
|
-
* registered: a persisted operator decision is a fact about the fleet, not a
|
|
502
|
-
* reference to a live object, and replaying it at boot must not depend on
|
|
503
|
-
* which addon happened to register first. An empty list drops the entry
|
|
504
|
-
* (unset = every source).
|
|
505
|
-
*/
|
|
506
|
-
setDeviceDisabledSources(deviceId: string, capability: string, addonIds: readonly string[]): void;
|
|
507
|
-
/**
|
|
508
|
-
* The addon ids the operator switched OFF as sources of this device for
|
|
509
|
-
* `capability`. Empty means every source — never "none".
|
|
510
|
-
*/
|
|
511
|
-
getDeviceDisabledSources(deviceId: string, capability: string): readonly string[];
|
|
512
|
-
/** Is `addonId` switched off as a source of this device for `capability`? */
|
|
513
|
-
isDeviceSourceDisabled(deviceId: string, capability: string, addonId: string): boolean;
|
|
514
482
|
/**
|
|
515
483
|
* Resolve collection providers for a specific device.
|
|
516
|
-
* Filters by activation (the manifest's autoActivate) and by the per-device
|
|
517
|
-
* source deactivations the operator persisted (D556).
|
|
518
484
|
*
|
|
519
|
-
*
|
|
520
|
-
* device
|
|
521
|
-
*
|
|
522
|
-
*
|
|
523
|
-
*
|
|
524
|
-
*
|
|
525
|
-
|
|
526
|
-
|
|
485
|
+
* Filters by activation (the manifest's autoActivate) and by nothing else.
|
|
486
|
+
* The per-device DENY set that used to filter here is gone with the switch
|
|
487
|
+
* it projected (2026-09-20): *"tutti i providers funzionano sempre"*. WHICH
|
|
488
|
+
* providers a device has is now answered by its BINDINGS
|
|
489
|
+
* (`device-bindings-store.ts` step 0), which is a different question from
|
|
490
|
+
* which of them are registered and running — this one.
|
|
491
|
+
*
|
|
492
|
+
* `deviceId` is kept in the signature and deliberately unused: the resolution
|
|
493
|
+
* is per-device by CONTRACT, and a caller that stops passing one is a caller
|
|
494
|
+
* that has stopped asking about a device.
|
|
495
|
+
*/
|
|
496
|
+
resolveCollectionForDevice<T = unknown>(capability: string, _deviceId: string): readonly T[];
|
|
527
497
|
/** Check if all dependencies for a capability are satisfied. */
|
|
528
498
|
areDependenciesMet(capabilityName: string): boolean;
|
|
529
499
|
/** Get topologically sorted boot order based on dependsOn. */
|
package/dist/kernel/index.d.ts
CHANGED
|
@@ -13,7 +13,6 @@ export { RESTART_MARKER_FILE, clearPendingRestart, getRestartMarkerPath, readPen
|
|
|
13
13
|
export type { PendingRestartMarker, RestartKind, ScheduleSelfRestartOptions, } from './restart-coordinator.js';
|
|
14
14
|
export { CapabilityHandle, CapabilityUnavailableError } from './capability-handle.js';
|
|
15
15
|
export { CapabilityRegistry } from './capability-registry.js';
|
|
16
|
-
export type { DeviceCollectionResolution } from './capability-registry.js';
|
|
17
16
|
export { buildCapRouters, builderMountedCapNames } from './cap-router-builder.js';
|
|
18
17
|
export type { CapRouterPrimitives, CapRouterServices, CapProviderGetter, RemoteProxyFactory, ProcedureBuilder, ProcedureResolverArgs, } from './cap-router-builder.js';
|
|
19
18
|
export { describeProviderKindDrift } from './provider-kind-drift.js';
|