@camstack/system 1.2.255 → 1.2.256

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.
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_manifest_system_deps = require("./manifest-system-deps-CzyjTMcO.js");
2
+ const require_manifest_system_deps = require("./manifest-system-deps-CfVyUKLU.js");
3
3
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
4
4
  let node_path = require("node:path");
5
5
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { A as createUdsLoggerWithControl, It as RUNNER_RSS_BUDGET_ENV, L as LocalChildClient, Yt as startRunnerHeapWatch, a as createUdsAddonContext, bt as resolveAddonClass, it as setWorkerNativeCapsChangeListener, n as installManifestPythonDeps, nt as getWorkerNativeCapSnapshot, ot as validateProviderRegistrations, sn as emitHeapDiagnosticReport, t as installManifestSystemDeps, tt as getWorkerNativeCapProvider, yt as installManifestNativeDeps } from "./manifest-system-deps-CfR7Z90J.mjs";
1
+ import { Lt as RUNNER_RSS_BUDGET_ENV, R as LocalChildClient, Xt as startRunnerHeapWatch, a as createUdsAddonContext, at as setWorkerNativeCapsChangeListener, bt as installManifestNativeDeps, cn as emitHeapDiagnosticReport, j as createUdsLoggerWithControl, n as installManifestPythonDeps, nt as getWorkerNativeCapProvider, rt as getWorkerNativeCapSnapshot, st as validateProviderRegistrations, t as installManifestSystemDeps, xt as resolveAddonClass } from "./manifest-system-deps-BXf-Ouqx.mjs";
2
2
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
3
3
  import { register } from "node:module";
4
4
  import * as path$1 from "node:path";
@@ -816,7 +816,7 @@ var AutotrackAddon = class extends require_dist.BaseAddon {
816
816
  this.records = withCameraPatch(this.records, deviceId, patch);
817
817
  if (before !== this.recordOf(deviceId).enabled) this.lastChangedAt.set(deviceId, Date.now());
818
818
  await this.updateGlobalSettings({ cameras: this.serialiseRecords() });
819
- await this.reconcileSessions();
819
+ await this.refreshEverything();
820
820
  }
821
821
  serialiseRecords() {
822
822
  const out = {};
@@ -811,7 +811,7 @@ var AutotrackAddon = class extends BaseAddon {
811
811
  this.records = withCameraPatch(this.records, deviceId, patch);
812
812
  if (before !== this.recordOf(deviceId).enabled) this.lastChangedAt.set(deviceId, Date.now());
813
813
  await this.updateGlobalSettings({ cameras: this.serialiseRecords() });
814
- await this.reconcileSessions();
814
+ await this.refreshEverything();
815
815
  }
816
816
  serialiseRecords() {
817
817
  const out = {};
package/dist/index.js CHANGED
@@ -27,7 +27,7 @@ require("./builtins/system-config/index.js");
27
27
  const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
28
28
  const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-CAsHdMwP.js");
29
29
  const require_tls$1 = require("./tls-BFs4PzoW.js");
30
- const require_manifest_system_deps = require("./manifest-system-deps-CzyjTMcO.js");
30
+ const require_manifest_system_deps = require("./manifest-system-deps-CfVyUKLU.js");
31
31
  const require_resource_monitor = require("./resource-monitor-LVE1BoLs.js");
32
32
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
33
33
  let zod = require("zod");
@@ -96058,6 +96058,7 @@ exports.deriveAgentListenPort = deriveAgentListenPort;
96058
96058
  exports.describeProviderKindDrift = describeProviderKindDrift;
96059
96059
  exports.describeRss = require_manifest_system_deps.describeRss;
96060
96060
  exports.detectWorkspacePackagesDir = detectWorkspacePackagesDir;
96061
+ exports.deviceCapResolverLink = require_manifest_system_deps.deviceCapResolverLink;
96061
96062
  exports.diffCapActionCensus = require_manifest_system_deps.diffCapActionCensus;
96062
96063
  exports.diffEventPlane = require_manifest_system_deps.diffEventPlane;
96063
96064
  exports.diffSocketPlane = require_manifest_system_deps.diffSocketPlane;
package/dist/index.mjs CHANGED
@@ -26,7 +26,7 @@ import "./builtins/system-config/index.mjs";
26
26
  import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
27
27
  import { _ as fetchJson, a as createFileDataPlaneHandler, c as parseRangeHeader, d as ModelDownloadService, f as collectModelFiles, g as ensureModel, h as downloadModel, i as startEventLoopStallMonitor, l as parseTokenizedUrl, m as downloadFile, n as STALL_TICK_MS, o as contentTypeFor, p as deleteModelFromDisk, r as attributeStall, s as createAuthenticatedFileServer, t as STALL_REPORT_MS, u as resolveFilePath, v as getModelFilePath, y as isModelDownloaded } from "./event-loop-stall-monitor-GPrVvx14.mjs";
28
28
  import { C as registerLanHttpHandler, S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, b as bindPendingLanHttp, c as loadTlsCert, d as collectCertIdentity, f as CA_VALIDITY_DAYS, g as evaluateExistingCert, h as SERVER_AUTH_OID, i as writeExtraSans, l as reissueTlsLeaf, m as MAX_LEAF_VALIDITY_DAYS, n as readTlsAccessStatus, o as validateUploadedTls, p as LEAF_RENEWAL_WINDOW_DAYS, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, u as CA_COMMON_NAME, v as allFamiliesListenHost, x as closeLanHttp, y as applyLanHttp } from "./tls-2xbgg78V.mjs";
29
- import { $ as buildUdsNativeCapProxy, $t as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, A as createUdsLoggerWithControl, An as recordSocketFrame, At as HUB_MAIN_HEAP_WATCH_LABEL, B as readMoleculerFanoutMode, Bn as diffCapActionCensus, Bt as createLoopDelayMeter, C as ipcParentLink, Cn as createSocketPlaneMeter, Ct as runNpm, D as createUdsEventBus, Dn as readSocketQueues, Dt as HEAP_RECLAIM_TRIGGER_MB, E as createUdsEventBridge, En as formatSocketPlane, Et as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, F as CapRouteError, Fn as CAP_ACTION_UNLABELLED, Ft as RUNNER_HEAP_WATCH_INTERVAL_MS, G as createLocalTransport, Gn as formatEventPlane, Gt as parseRssBudgetMb, H as PARENT_ROUTED_PROVIDER_ADDON_ID, Hn as createEventPlaneMeter, Ht as describeRss, I as classifyCapRoute, In as EMPTY_CAP_ACTION_READING, It as RUNNER_RSS_BUDGET_ENV, J as SocketChannel, Jt as startHeapWatch, K as UdsLocalTransportClient, Kt as reclaimIntervalMs, L as LocalChildClient, Ln as MAX_CAP_ACTIONS_PER_PEER, Lt as ZERO_LOOP_DELAY, M as AGENT_CAP_FWD_SERVICE, Mn as socketDirectionBytes, Mt as HUB_RSS_BUDGET_ENV, N as CapRouteResolver, Nn as socketDirectionMessages, Nt as RSS_BUDGET_REANNOUNCE_MIN_MS, O as udsChildLogToWorkerEntry, On as EMPTY_SOCKET_DIRECTION, Ot as HEAP_WATCH_INTERVAL_MS, P as callWithServiceDiscovery, Pn as CAP_ACTION_OVERFLOW_LABEL, Pt as RSS_BUDGET_RELEASE_RATIO, Q as buildNativeCapProxy, Qt as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, R as LocalChildRegistry, Rn as capActionLabel, Rt as buildHeapSample, S as buildLinkChain, Sn as SOCKET_QUEUE_TOP_N, St as resolveNpmInvocation, T as createParentUnownedCallHandler, Tn as diffSocketPlane, Tt as HEAP_RECLAIM_MIN_INTERVAL_MS, U as __resetCapUsageRegistryForTests, Un as createEventPlaneReader, Ut as hubMainRssBudget, V as CapUsageRegistry, Vn as EVENT_PLANE_TOP_N, Vt as createV8Reclaimer, W as getCapUsageRegistry, Wn as diffEventPlane, Wt as nextRssBudgetState, X as FrameDecoder, Xt as strandedMb, Y as localEndpointPath, Yt as startRunnerHeapWatch, Z as encodeFrame, Zt as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, _ as AddonDepsManager, _n as MESH_QUEUE_TOP_N, _t as CapabilityUnavailableError, a as createUdsAddonContext, an as DECISIVE_HEAP_SPACES, at as createAddonService, b as brokerCallForCap, bn as EMPTY_SOCKET_PLANE_BASELINE, bt as resolveAddonClass, c as getOrInitReadinessRegistryForClient, cn as formatHeapSpaces, ct as capActionName, d as clusterEventTopic, dn as selectReportedSpaces, dt as capServiceName, en as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, et as createBrokerDeviceManagerApi, f as getBrokerEventBus, fn as OUTBOUND_QUEUE_COOLDOWN_MS, ft as parseCapAction, g as subscribePassthrough, gn as formatOutboundQueueVerdict, gt as CapabilityHandle, h as setNodeEventInterest, hn as createOutboundQueueGate, ht as DeviceRegistry, i as createAddonContext, in as isArrayBufferCensusReport, j as AGENT_CAP_FWD_ACTION, jn as sampleSocketDirection, jt as HUB_MAIN_RSS_BUDGET_MB, k as createUdsLogger, kn as createSocketDirectionCounters, kt as HEAP_WATCH_WARN_RATIO, l as setHubConnected, ln as heapSpaceField, lt as capActionSuffix, m as registerEventBusService, mn as OUTBOUND_QUEUE_THRESHOLD_BYTES, mt as serializeTypedArrays, n as installManifestPythonDeps, nn as createInspectorArrayBufferCensus, o as getWorkerDeviceRegistry, on as HEAP_SPACE_REPORT_MIN_MB, ot as validateProviderRegistrations, p as getMoleculerEventStats, pn as OUTBOUND_QUEUE_SUSTAIN_MS, pt as deserializeTypedArrays, q as UdsLocalTransportServer, qt as shouldReclaim, r as adaptBrokerToCluster, rn as formatArrayBufferCensus, rt as mountNativeCapService, s as getOrInitReadinessRegistry, sn as emitHeapDiagnosticReport, st as NATIVE_PROVIDER_SERVICE_INFIX, t as installManifestSystemDeps, tn as createArrayBufferCensusGate, u as EVENT_TOPIC_PREFIX, un as readHeapSpaces, ut as capBareAction, v as createKernelHwAccel, vn as createMeshQueueReader, vt as copyBundledNativeModules, w as localProviderLink, wn as createSocketPlaneReader, wt as createAddonDataPlaneFacility, x as brokerTransportLink, xn as SOCKET_PLANE_TOP_N, xt as buildNpmChildEnv, y as resolveHwAccel, yn as formatMeshQueue, yt as installManifestNativeDeps, z as UDS_NO_ROUTE_PREFIX, zn as createCapActionCensus, zt as createDeferredHeapWatchSink } from "./manifest-system-deps-CfR7Z90J.mjs";
29
+ import { $ as buildNativeCapProxy, $t as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, A as createUdsLogger, An as createSocketDirectionCounters, At as HEAP_WATCH_WARN_RATIO, B as UDS_NO_ROUTE_PREFIX, Bn as createCapActionCensus, Bt as createDeferredHeapWatchSink, C as deviceCapResolverLink, Cn as SOCKET_QUEUE_TOP_N, Ct as resolveNpmInvocation, D as createUdsEventBridge, Dn as formatSocketPlane, Dt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, E as createParentUnownedCallHandler, En as diffSocketPlane, Et as HEAP_RECLAIM_MIN_INTERVAL_MS, F as callWithServiceDiscovery, Fn as CAP_ACTION_OVERFLOW_LABEL, Ft as RSS_BUDGET_RELEASE_RATIO, G as getCapUsageRegistry, Gn as diffEventPlane, Gt as nextRssBudgetState, H as CapUsageRegistry, Hn as EVENT_PLANE_TOP_N, Ht as createV8Reclaimer, I as CapRouteError, In as CAP_ACTION_UNLABELLED, It as RUNNER_HEAP_WATCH_INTERVAL_MS, J as UdsLocalTransportServer, Jt as shouldReclaim, K as createLocalTransport, Kn as formatEventPlane, Kt as parseRssBudgetMb, L as classifyCapRoute, Ln as EMPTY_CAP_ACTION_READING, Lt as RUNNER_RSS_BUDGET_ENV, M as AGENT_CAP_FWD_ACTION, Mn as sampleSocketDirection, Mt as HUB_MAIN_RSS_BUDGET_MB, N as AGENT_CAP_FWD_SERVICE, Nn as socketDirectionBytes, Nt as HUB_RSS_BUDGET_ENV, O as createUdsEventBus, On as readSocketQueues, Ot as HEAP_RECLAIM_TRIGGER_MB, P as CapRouteResolver, Pn as socketDirectionMessages, Pt as RSS_BUDGET_REANNOUNCE_MIN_MS, Q as encodeFrame, Qt as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, R as LocalChildClient, Rn as MAX_CAP_ACTIONS_PER_PEER, Rt as ZERO_LOOP_DELAY, S as buildLinkChain, Sn as SOCKET_PLANE_TOP_N, St as buildNpmChildEnv, T as localProviderLink, Tn as createSocketPlaneReader, Tt as createAddonDataPlaneFacility, U as PARENT_ROUTED_PROVIDER_ADDON_ID, Un as createEventPlaneMeter, Ut as describeRss, V as readMoleculerFanoutMode, Vn as diffCapActionCensus, Vt as createLoopDelayMeter, W as __resetCapUsageRegistryForTests, Wn as createEventPlaneReader, Wt as hubMainRssBudget, X as localEndpointPath, Xt as startRunnerHeapWatch, Y as SocketChannel, Yt as startHeapWatch, Z as FrameDecoder, Zt as strandedMb, _ as AddonDepsManager, _n as formatOutboundQueueVerdict, _t as CapabilityHandle, a as createUdsAddonContext, an as isArrayBufferCensusReport, b as brokerCallForCap, bn as formatMeshQueue, bt as installManifestNativeDeps, c as getOrInitReadinessRegistryForClient, cn as emitHeapDiagnosticReport, ct as NATIVE_PROVIDER_SERVICE_INFIX, d as clusterEventTopic, dn as readHeapSpaces, dt as capBareAction, en as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, et as buildUdsNativeCapProxy, f as getBrokerEventBus, fn as selectReportedSpaces, ft as capServiceName, g as subscribePassthrough, gn as createOutboundQueueGate, gt as DeviceRegistry, h as setNodeEventInterest, hn as OUTBOUND_QUEUE_THRESHOLD_BYTES, ht as serializeTypedArrays, i as createAddonContext, in as formatArrayBufferCensus, it as mountNativeCapService, j as createUdsLoggerWithControl, jn as recordSocketFrame, jt as HUB_MAIN_HEAP_WATCH_LABEL, k as udsChildLogToWorkerEntry, kn as EMPTY_SOCKET_DIRECTION, kt as HEAP_WATCH_INTERVAL_MS, l as setHubConnected, ln as formatHeapSpaces, lt as capActionName, m as registerEventBusService, mn as OUTBOUND_QUEUE_SUSTAIN_MS, mt as deserializeTypedArrays, n as installManifestPythonDeps, nn as createArrayBufferCensusGate, o as getWorkerDeviceRegistry, on as DECISIVE_HEAP_SPACES, ot as createAddonService, p as getMoleculerEventStats, pn as OUTBOUND_QUEUE_COOLDOWN_MS, pt as parseCapAction, q as UdsLocalTransportClient, qt as reclaimIntervalMs, r as adaptBrokerToCluster, rn as createInspectorArrayBufferCensus, s as getOrInitReadinessRegistry, sn as HEAP_SPACE_REPORT_MIN_MB, st as validateProviderRegistrations, t as installManifestSystemDeps, tn as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, tt as createBrokerDeviceManagerApi, u as EVENT_TOPIC_PREFIX, un as heapSpaceField, ut as capActionSuffix, v as createKernelHwAccel, vn as MESH_QUEUE_TOP_N, vt as CapabilityUnavailableError, w as ipcParentLink, wn as createSocketPlaneMeter, wt as runNpm, x as brokerTransportLink, xn as EMPTY_SOCKET_PLANE_BASELINE, xt as resolveAddonClass, y as resolveHwAccel, yn as createMeshQueueReader, yt as copyBundledNativeModules, z as LocalChildRegistry, zn as capActionLabel, zt as buildHeapSample } from "./manifest-system-deps-BXf-Ouqx.mjs";
30
30
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-Vp0bPV3U.mjs";
31
31
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
32
32
  import { z } from "zod";
@@ -95810,4 +95810,4 @@ var LifecycleJobEngine = class {
95810
95810
  }
95811
95811
  };
95812
95812
  //#endregion
95813
- 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, 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, shouldReclaim, socketDirectionBytes, socketDirectionMessages, startEventLoopStallMonitor, startHeapWatch, startRunnerHeapWatch, strandedMb, stripCamstackDeps, subscribePassthrough, udsChildLogToWorkerEntry, validateProviderRegistrations, validateUploadedTls, waitUntilReady, writeExtraSans, writePendingRestart, writeTlsMode };
95813
+ 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, shouldReclaim, socketDirectionBytes, socketDirectionMessages, startEventLoopStallMonitor, startHeapWatch, startRunnerHeapWatch, strandedMb, stripCamstackDeps, subscribePassthrough, udsChildLogToWorkerEntry, validateProviderRegistrations, validateUploadedTls, waitUntilReady, writeExtraSans, writePendingRestart, writeTlsMode };
@@ -69,7 +69,7 @@ export type { HubServiceDeps } from './moleculer/hub-service.js';
69
69
  export { createBrokerDeviceManagerApi, buildNativeCapProxy, buildUdsNativeCapProxy, mountNativeCapService, NATIVE_PROVIDER_SERVICE_INFIX, } from './moleculer/device-cap-proxy.js';
70
70
  export type { WorkerDeviceManagerOptions } from './moleculer/device-cap-proxy.js';
71
71
  export { getWorkerDeviceRegistry } from './moleculer/addon-context-factory.js';
72
- export { localProviderLink, brokerTransportLink, ipcParentLink, buildLinkChain, brokerCallForCap, } from './moleculer/trpc-links.js';
72
+ export { localProviderLink, brokerTransportLink, deviceCapResolverLink, ipcParentLink, buildLinkChain, brokerCallForCap, } from './moleculer/trpc-links.js';
73
73
  export type { LocalProviderResolver, BrokerCapCallOpts } from './moleculer/trpc-links.js';
74
74
  export { createProcessService } from './moleculer/process-service.js';
75
75
  export type { ProcessInfo } from './moleculer/process-service.js';
@@ -170,6 +170,33 @@ export declare function brokerCallForCap(broker: ServiceBroker, capName: string,
170
170
  export interface BrokerTransportLinkOptions {
171
171
  readonly discoveryTimeoutMs?: number;
172
172
  }
173
+ /**
174
+ * Dispatch a call to a device-scoped capability. Supplied by the hub, where it
175
+ * is `callCapabilityOnNode` — the entry the codegen cap routers already use,
176
+ * which extracts the `deviceId` from the input and asks the `CapRouteResolver`.
177
+ */
178
+ export type DeviceCapDispatcher = (capName: string, method: string, input: unknown) => Promise<unknown>;
179
+ /**
180
+ * The link that lets an IN-PROCESS addon call a device-scoped cap.
181
+ *
182
+ * Without it the hub's own `ctx.api` chain is `localProviderLink →
183
+ * brokerTransportLink`: a provider in this process, then the Moleculer
184
+ * registry. Forked addon children are BROKER-LESS (UDS), so a device provider
185
+ * such as hikvision's `ptz` advertises nothing on the bus, no service candidate
186
+ * matches, and the call falls back to the `<cap>.<cap>.<method>` shape
187
+ * documented above as the broken one. A forked addon never hits this because
188
+ * its chain ends at `ipcParentLink` → the parent's `CapRouteResolver`; an
189
+ * in-process one had no way to reach that authority at all.
190
+ *
191
+ * Deliberately narrow: it intercepts ONLY a cap whose definition says
192
+ * `scope: 'device'`, and only when the call actually carries a numeric
193
+ * `deviceId` to route on. A system cap that happens to take a `deviceId`
194
+ * argument (`deviceManager.getBindings`, `deviceState.getCapSlice`) is left
195
+ * exactly where it was. There is no fallback to the broker after a resolver
196
+ * failure, on purpose: the resolver's error names the node and the reason,
197
+ * and replacing it with "service not found" is how this class of bug hides.
198
+ */
199
+ export declare function deviceCapResolverLink<TRouter extends AnyRouter>(dispatch: DeviceCapDispatcher, isDeviceScoped: (capName: string) => boolean): TRPCLink<TRouter>;
173
200
  export declare function brokerTransportLink<TRouter extends AnyRouter>(broker: ServiceBroker, serviceMap?: Readonly<Record<string, string>>, observerOpts?: CapUsageObserverOptions, linkOptions?: BrokerTransportLinkOptions): TRPCLink<TRouter>;
174
201
  /**
175
202
  * Middle link that routes a child addon's outbound `ctx.api` cap call to the
@@ -9556,6 +9556,49 @@ async function brokerCallForCap(broker, capName, method, args, opts) {
9556
9556
  if (abort.aborted) throw new Error(`brokerCallForCap: aborted while awaiting "${capName}.${method}" discovery`);
9557
9557
  return broker.call(action, callInput, callOpts);
9558
9558
  }
9559
+ /**
9560
+ * The link that lets an IN-PROCESS addon call a device-scoped cap.
9561
+ *
9562
+ * Without it the hub's own `ctx.api` chain is `localProviderLink →
9563
+ * brokerTransportLink`: a provider in this process, then the Moleculer
9564
+ * registry. Forked addon children are BROKER-LESS (UDS), so a device provider
9565
+ * such as hikvision's `ptz` advertises nothing on the bus, no service candidate
9566
+ * matches, and the call falls back to the `<cap>.<cap>.<method>` shape
9567
+ * documented above as the broken one. A forked addon never hits this because
9568
+ * its chain ends at `ipcParentLink` → the parent's `CapRouteResolver`; an
9569
+ * in-process one had no way to reach that authority at all.
9570
+ *
9571
+ * Deliberately narrow: it intercepts ONLY a cap whose definition says
9572
+ * `scope: 'device'`, and only when the call actually carries a numeric
9573
+ * `deviceId` to route on. A system cap that happens to take a `deviceId`
9574
+ * argument (`deviceManager.getBindings`, `deviceState.getCapSlice`) is left
9575
+ * exactly where it was. There is no fallback to the broker after a resolver
9576
+ * failure, on purpose: the resolver's error names the node and the reason,
9577
+ * and replacing it with "service not found" is how this class of bug hides.
9578
+ */
9579
+ function deviceCapResolverLink(dispatch, isDeviceScoped) {
9580
+ return () => {
9581
+ return ({ op, next }) => {
9582
+ const parsed = parsePath(op.path);
9583
+ if (!parsed || !isDeviceScoped(parsed.capName)) return next(op);
9584
+ const input = op.input;
9585
+ const deviceId = input !== null && typeof input === "object" ? Reflect.get(input, "deviceId") : void 0;
9586
+ if (typeof deviceId !== "number" || !Number.isFinite(deviceId)) return next(op);
9587
+ return observable((observer) => {
9588
+ dispatch(parsed.capName, parsed.method, input).then((data) => {
9589
+ observer.next({ result: {
9590
+ type: "data",
9591
+ data
9592
+ } });
9593
+ observer.complete();
9594
+ }).catch((cause) => {
9595
+ observer.error(TRPCClientError.from(cause instanceof Error ? cause : new Error(String(cause))));
9596
+ });
9597
+ return () => {};
9598
+ });
9599
+ };
9600
+ };
9601
+ }
9559
9602
  function brokerTransportLink(broker, serviceMap, observerOpts, linkOptions) {
9560
9603
  const map = serviceMap ?? {};
9561
9604
  const discoveryTimeoutMs = linkOptions?.discoveryTimeoutMs;
@@ -11583,4 +11626,4 @@ async function defaultRun(command, args) {
11583
11626
  await execFileAsync(command, [...args], { timeout: INSTALL_TIMEOUT_MS });
11584
11627
  }
11585
11628
  //#endregion
11586
- export { buildUdsNativeCapProxy as $, ARRAY_BUFFER_CENSUS_THRESHOLD_MB as $t, createUdsLoggerWithControl as A, recordSocketFrame as An, HUB_MAIN_HEAP_WATCH_LABEL as At, readMoleculerFanoutMode as B, diffCapActionCensus as Bn, createLoopDelayMeter as Bt, ipcParentLink as C, createSocketPlaneMeter as Cn, runNpm as Ct, createUdsEventBus as D, readSocketQueues as Dn, HEAP_RECLAIM_TRIGGER_MB as Dt, createUdsEventBridge as E, formatSocketPlane as En, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS as Et, CapRouteError as F, CAP_ACTION_UNLABELLED as Fn, RUNNER_HEAP_WATCH_INTERVAL_MS as Ft, createLocalTransport as G, formatEventPlane as Gn, parseRssBudgetMb as Gt, PARENT_ROUTED_PROVIDER_ADDON_ID as H, createEventPlaneMeter as Hn, describeRss as Ht, classifyCapRoute as I, EMPTY_CAP_ACTION_READING as In, RUNNER_RSS_BUDGET_ENV as It, SocketChannel as J, startHeapWatch as Jt, UdsLocalTransportClient as K, reclaimIntervalMs as Kt, LocalChildClient as L, MAX_CAP_ACTIONS_PER_PEER as Ln, ZERO_LOOP_DELAY as Lt, AGENT_CAP_FWD_SERVICE as M, socketDirectionBytes as Mn, HUB_RSS_BUDGET_ENV as Mt, CapRouteResolver as N, socketDirectionMessages as Nn, RSS_BUDGET_REANNOUNCE_MIN_MS as Nt, udsChildLogToWorkerEntry as O, EMPTY_SOCKET_DIRECTION as On, HEAP_WATCH_INTERVAL_MS as Ot, callWithServiceDiscovery as P, CAP_ACTION_OVERFLOW_LABEL as Pn, RSS_BUDGET_RELEASE_RATIO as Pt, buildNativeCapProxy as Q, ARRAY_BUFFER_CENSUS_SUSTAIN_MS as Qt, LocalChildRegistry as R, capActionLabel as Rn, buildHeapSample as Rt, buildLinkChain as S, SOCKET_QUEUE_TOP_N as Sn, resolveNpmInvocation as St, createParentUnownedCallHandler as T, diffSocketPlane as Tn, HEAP_RECLAIM_MIN_INTERVAL_MS as Tt, __resetCapUsageRegistryForTests as U, createEventPlaneReader as Un, hubMainRssBudget as Ut, CapUsageRegistry as V, EVENT_PLANE_TOP_N as Vn, createV8Reclaimer as Vt, getCapUsageRegistry as W, diffEventPlane as Wn, nextRssBudgetState as Wt, FrameDecoder as X, strandedMb as Xt, localEndpointPath as Y, startRunnerHeapWatch as Yt, encodeFrame as Z, ARRAY_BUFFER_CENSUS_COOLDOWN_MS as Zt, AddonDepsManager as _, MESH_QUEUE_TOP_N as _n, CapabilityUnavailableError as _t, createUdsAddonContext as a, DECISIVE_HEAP_SPACES as an, createAddonService as at, brokerCallForCap as b, EMPTY_SOCKET_PLANE_BASELINE as bn, resolveAddonClass as bt, getOrInitReadinessRegistryForClient as c, formatHeapSpaces as cn, capActionName as ct, clusterEventTopic as d, selectReportedSpaces as dn, capServiceName as dt, ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO as en, createBrokerDeviceManagerApi as et, getBrokerEventBus as f, OUTBOUND_QUEUE_COOLDOWN_MS as fn, parseCapAction as ft, subscribePassthrough as g, formatOutboundQueueVerdict as gn, CapabilityHandle as gt, setNodeEventInterest as h, createOutboundQueueGate as hn, DeviceRegistry as ht, createAddonContext as i, isArrayBufferCensusReport as in, setWorkerNativeCapsChangeListener as it, AGENT_CAP_FWD_ACTION as j, sampleSocketDirection as jn, HUB_MAIN_RSS_BUDGET_MB as jt, createUdsLogger as k, createSocketDirectionCounters as kn, HEAP_WATCH_WARN_RATIO as kt, setHubConnected as l, heapSpaceField as ln, capActionSuffix as lt, registerEventBusService as m, OUTBOUND_QUEUE_THRESHOLD_BYTES as mn, serializeTypedArrays as mt, installManifestPythonDeps as n, createInspectorArrayBufferCensus as nn, getWorkerNativeCapSnapshot as nt, getWorkerDeviceRegistry as o, HEAP_SPACE_REPORT_MIN_MB as on, validateProviderRegistrations as ot, getMoleculerEventStats as p, OUTBOUND_QUEUE_SUSTAIN_MS as pn, deserializeTypedArrays as pt, UdsLocalTransportServer as q, shouldReclaim as qt, adaptBrokerToCluster as r, formatArrayBufferCensus as rn, mountNativeCapService as rt, getOrInitReadinessRegistry as s, emitHeapDiagnosticReport as sn, NATIVE_PROVIDER_SERVICE_INFIX as st, installManifestSystemDeps as t, createArrayBufferCensusGate as tn, getWorkerNativeCapProvider as tt, EVENT_TOPIC_PREFIX as u, readHeapSpaces as un, capBareAction as ut, createKernelHwAccel as v, createMeshQueueReader as vn, copyBundledNativeModules as vt, localProviderLink as w, createSocketPlaneReader as wn, createAddonDataPlaneFacility as wt, brokerTransportLink as x, SOCKET_PLANE_TOP_N as xn, buildNpmChildEnv as xt, resolveHwAccel as y, formatMeshQueue as yn, installManifestNativeDeps as yt, UDS_NO_ROUTE_PREFIX as z, createCapActionCensus as zn, createDeferredHeapWatchSink as zt };
11629
+ export { buildNativeCapProxy as $, ARRAY_BUFFER_CENSUS_SUSTAIN_MS as $t, createUdsLogger as A, createSocketDirectionCounters as An, HEAP_WATCH_WARN_RATIO as At, UDS_NO_ROUTE_PREFIX as B, createCapActionCensus as Bn, createDeferredHeapWatchSink as Bt, deviceCapResolverLink as C, SOCKET_QUEUE_TOP_N as Cn, resolveNpmInvocation as Ct, createUdsEventBridge as D, formatSocketPlane as Dn, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS as Dt, createParentUnownedCallHandler as E, diffSocketPlane as En, HEAP_RECLAIM_MIN_INTERVAL_MS as Et, callWithServiceDiscovery as F, CAP_ACTION_OVERFLOW_LABEL as Fn, RSS_BUDGET_RELEASE_RATIO as Ft, getCapUsageRegistry as G, diffEventPlane as Gn, nextRssBudgetState as Gt, CapUsageRegistry as H, EVENT_PLANE_TOP_N as Hn, createV8Reclaimer as Ht, CapRouteError as I, CAP_ACTION_UNLABELLED as In, RUNNER_HEAP_WATCH_INTERVAL_MS as It, UdsLocalTransportServer as J, shouldReclaim as Jt, createLocalTransport as K, formatEventPlane as Kn, parseRssBudgetMb as Kt, classifyCapRoute as L, EMPTY_CAP_ACTION_READING as Ln, RUNNER_RSS_BUDGET_ENV as Lt, AGENT_CAP_FWD_ACTION as M, sampleSocketDirection as Mn, HUB_MAIN_RSS_BUDGET_MB as Mt, AGENT_CAP_FWD_SERVICE as N, socketDirectionBytes as Nn, HUB_RSS_BUDGET_ENV as Nt, createUdsEventBus as O, readSocketQueues as On, HEAP_RECLAIM_TRIGGER_MB as Ot, CapRouteResolver as P, socketDirectionMessages as Pn, RSS_BUDGET_REANNOUNCE_MIN_MS as Pt, encodeFrame as Q, ARRAY_BUFFER_CENSUS_COOLDOWN_MS as Qt, LocalChildClient as R, MAX_CAP_ACTIONS_PER_PEER as Rn, ZERO_LOOP_DELAY as Rt, buildLinkChain as S, SOCKET_PLANE_TOP_N as Sn, buildNpmChildEnv as St, localProviderLink as T, createSocketPlaneReader as Tn, createAddonDataPlaneFacility as Tt, PARENT_ROUTED_PROVIDER_ADDON_ID as U, createEventPlaneMeter as Un, describeRss as Ut, readMoleculerFanoutMode as V, diffCapActionCensus as Vn, createLoopDelayMeter as Vt, __resetCapUsageRegistryForTests as W, createEventPlaneReader as Wn, hubMainRssBudget as Wt, localEndpointPath as X, startRunnerHeapWatch as Xt, SocketChannel as Y, startHeapWatch as Yt, FrameDecoder as Z, strandedMb as Zt, AddonDepsManager as _, formatOutboundQueueVerdict as _n, CapabilityHandle as _t, createUdsAddonContext as a, isArrayBufferCensusReport as an, setWorkerNativeCapsChangeListener as at, brokerCallForCap as b, formatMeshQueue as bn, installManifestNativeDeps as bt, getOrInitReadinessRegistryForClient as c, emitHeapDiagnosticReport as cn, NATIVE_PROVIDER_SERVICE_INFIX as ct, clusterEventTopic as d, readHeapSpaces as dn, capBareAction as dt, ARRAY_BUFFER_CENSUS_THRESHOLD_MB as en, buildUdsNativeCapProxy as et, getBrokerEventBus as f, selectReportedSpaces as fn, capServiceName as ft, subscribePassthrough as g, createOutboundQueueGate as gn, DeviceRegistry as gt, setNodeEventInterest as h, OUTBOUND_QUEUE_THRESHOLD_BYTES as hn, serializeTypedArrays as ht, createAddonContext as i, formatArrayBufferCensus as in, mountNativeCapService as it, createUdsLoggerWithControl as j, recordSocketFrame as jn, HUB_MAIN_HEAP_WATCH_LABEL as jt, udsChildLogToWorkerEntry as k, EMPTY_SOCKET_DIRECTION as kn, HEAP_WATCH_INTERVAL_MS as kt, setHubConnected as l, formatHeapSpaces as ln, capActionName as lt, registerEventBusService as m, OUTBOUND_QUEUE_SUSTAIN_MS as mn, deserializeTypedArrays as mt, installManifestPythonDeps as n, createArrayBufferCensusGate as nn, getWorkerNativeCapProvider as nt, getWorkerDeviceRegistry as o, DECISIVE_HEAP_SPACES as on, createAddonService as ot, getMoleculerEventStats as p, OUTBOUND_QUEUE_COOLDOWN_MS as pn, parseCapAction as pt, UdsLocalTransportClient as q, reclaimIntervalMs as qt, adaptBrokerToCluster as r, createInspectorArrayBufferCensus as rn, getWorkerNativeCapSnapshot as rt, getOrInitReadinessRegistry as s, HEAP_SPACE_REPORT_MIN_MB as sn, validateProviderRegistrations as st, installManifestSystemDeps as t, ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO as tn, createBrokerDeviceManagerApi as tt, EVENT_TOPIC_PREFIX as u, heapSpaceField as un, capActionSuffix as ut, createKernelHwAccel as v, MESH_QUEUE_TOP_N as vn, CapabilityUnavailableError as vt, ipcParentLink as w, createSocketPlaneMeter as wn, runNpm as wt, brokerTransportLink as x, EMPTY_SOCKET_PLANE_BASELINE as xn, resolveAddonClass as xt, resolveHwAccel as y, createMeshQueueReader as yn, copyBundledNativeModules as yt, LocalChildRegistry as z, capActionLabel as zn, buildHeapSample as zt };
@@ -9559,6 +9559,49 @@ async function brokerCallForCap(broker, capName, method, args, opts) {
9559
9559
  if (abort.aborted) throw new Error(`brokerCallForCap: aborted while awaiting "${capName}.${method}" discovery`);
9560
9560
  return broker.call(action, callInput, callOpts);
9561
9561
  }
9562
+ /**
9563
+ * The link that lets an IN-PROCESS addon call a device-scoped cap.
9564
+ *
9565
+ * Without it the hub's own `ctx.api` chain is `localProviderLink →
9566
+ * brokerTransportLink`: a provider in this process, then the Moleculer
9567
+ * registry. Forked addon children are BROKER-LESS (UDS), so a device provider
9568
+ * such as hikvision's `ptz` advertises nothing on the bus, no service candidate
9569
+ * matches, and the call falls back to the `<cap>.<cap>.<method>` shape
9570
+ * documented above as the broken one. A forked addon never hits this because
9571
+ * its chain ends at `ipcParentLink` → the parent's `CapRouteResolver`; an
9572
+ * in-process one had no way to reach that authority at all.
9573
+ *
9574
+ * Deliberately narrow: it intercepts ONLY a cap whose definition says
9575
+ * `scope: 'device'`, and only when the call actually carries a numeric
9576
+ * `deviceId` to route on. A system cap that happens to take a `deviceId`
9577
+ * argument (`deviceManager.getBindings`, `deviceState.getCapSlice`) is left
9578
+ * exactly where it was. There is no fallback to the broker after a resolver
9579
+ * failure, on purpose: the resolver's error names the node and the reason,
9580
+ * and replacing it with "service not found" is how this class of bug hides.
9581
+ */
9582
+ function deviceCapResolverLink(dispatch, isDeviceScoped) {
9583
+ return () => {
9584
+ return ({ op, next }) => {
9585
+ const parsed = parsePath(op.path);
9586
+ if (!parsed || !isDeviceScoped(parsed.capName)) return next(op);
9587
+ const input = op.input;
9588
+ const deviceId = input !== null && typeof input === "object" ? Reflect.get(input, "deviceId") : void 0;
9589
+ if (typeof deviceId !== "number" || !Number.isFinite(deviceId)) return next(op);
9590
+ return observable((observer) => {
9591
+ dispatch(parsed.capName, parsed.method, input).then((data) => {
9592
+ observer.next({ result: {
9593
+ type: "data",
9594
+ data
9595
+ } });
9596
+ observer.complete();
9597
+ }).catch((cause) => {
9598
+ observer.error(_trpc_client.TRPCClientError.from(cause instanceof Error ? cause : new Error(String(cause))));
9599
+ });
9600
+ return () => {};
9601
+ });
9602
+ };
9603
+ };
9604
+ }
9562
9605
  function brokerTransportLink(broker, serviceMap, observerOpts, linkOptions) {
9563
9606
  const map = serviceMap ?? {};
9564
9607
  const discoveryTimeoutMs = linkOptions?.discoveryTimeoutMs;
@@ -12162,6 +12205,12 @@ Object.defineProperty(exports, "deserializeTypedArrays", {
12162
12205
  return deserializeTypedArrays;
12163
12206
  }
12164
12207
  });
12208
+ Object.defineProperty(exports, "deviceCapResolverLink", {
12209
+ enumerable: true,
12210
+ get: function() {
12211
+ return deviceCapResolverLink;
12212
+ }
12213
+ });
12165
12214
  Object.defineProperty(exports, "diffCapActionCensus", {
12166
12215
  enumerable: true,
12167
12216
  get: function() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/system",
3
- "version": "1.2.255",
3
+ "version": "1.2.256",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",
@@ -203,7 +203,7 @@
203
203
  "id": "autotrack",
204
204
  "category": "system",
205
205
  "name": "PTZ Autotrack (emulated)",
206
- "description": "Wrapper over the `ptz-autotrack` cap — follows a subject with self-terminating `ptz.move` pulses on cameras whose firmware has no autotrack, driven by the detection pipeline's tracked boxes. The operator binds it per camera, then uses the SAME autotrack switch a native camera has: the binding chooses the implementation, never a second toggle. It refuses to move without a readable `moveImpulseMs`, and while a firmware autotrack on the same camera reports armed.",
206
+ "description": "Wrapper over the `ptz-autotrack` cap — follows a subject with self-terminating `ptz.move` pulses on cameras whose firmware has no autotrack, driven by the detection pipeline's tracked boxes. The operator binds it per camera, then uses the SAME autotrack switch a native camera has: the binding chooses the implementation, never a second toggle. It refuses to move without a readable `moveImpulseMs`, and while a firmware autotrack on the same camera reports armed. Runs IN-PROCESS: it spawns nothing, carries no frames and issues a command every few seconds at most.",
207
207
  "entry": "./dist/builtins/autotrack/index.js",
208
208
  "capabilities": [
209
209
  {