@camstack/system 1.2.390 → 1.2.392

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 (575) hide show
  1. package/dist/addon/addon-api-factory.d.ts +30 -30
  2. package/dist/addon-routes/addon-route-registry.d.ts +31 -31
  3. package/dist/addon-runner.js +1 -1
  4. package/dist/addon-runner.mjs +1 -1
  5. package/dist/addon-utils.d.ts +22 -22
  6. package/dist/addon-utils.js +1 -1
  7. package/dist/addon-utils.mjs +1 -1
  8. package/dist/amd-accelerators-CEuPFBBK.js +36 -0
  9. package/dist/amd-accelerators-U_RsoEDd.mjs +35 -0
  10. package/dist/amd-npu-B-QyyMyF.js +53 -0
  11. package/dist/amd-npu-Db_SoSuL.mjs +52 -0
  12. package/dist/auth/admin-token-manager.d.ts +37 -67
  13. package/dist/auth/api-key-manager.d.ts +8 -8
  14. package/dist/auth/auth-audit-log.d.ts +29 -49
  15. package/dist/auth/auth-manager.d.ts +127 -126
  16. package/dist/auth/cidr.d.ts +8 -8
  17. package/dist/auth/external-identity-manager.d.ts +46 -34
  18. package/dist/auth/jwt-signing-key.d.ts +14 -14
  19. package/dist/auth/login-session-manager.d.ts +95 -135
  20. package/dist/auth/parse-record.d.ts +13 -13
  21. package/dist/auth/scope-matcher.d.ts +7 -7
  22. package/dist/auth/scoped-token-manager.d.ts +62 -62
  23. package/dist/auth/token-expiry.d.ts +49 -26
  24. package/dist/auth/totp-manager.d.ts +48 -48
  25. package/dist/auth/user-management-internal.d.ts +67 -52
  26. package/dist/auth/user-manager.d.ts +58 -58
  27. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -54
  28. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  29. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  30. package/dist/builtins/addon-pages-aggregator/dedupe-pages.d.ts +22 -4
  31. package/dist/builtins/addon-pages-aggregator/index.d.ts +1 -1
  32. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +54 -54
  33. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  34. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  35. package/dist/builtins/addon-widgets-aggregator/index.d.ts +1 -1
  36. package/dist/builtins/alerts/alerts.addon.d.ts +88 -87
  37. package/dist/builtins/alerts/alerts.addon.js +1 -1
  38. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  39. package/dist/builtins/alerts/device-label.d.ts +6 -6
  40. package/dist/builtins/alerts/index.d.ts +1 -1
  41. package/dist/builtins/alerts/prune-policy.d.ts +36 -36
  42. package/dist/builtins/autotrack/autotrack-cameras.d.ts +102 -79
  43. package/dist/builtins/autotrack/autotrack-config.d.ts +81 -81
  44. package/dist/builtins/autotrack/autotrack-decision.d.ts +69 -82
  45. package/dist/builtins/autotrack/autotrack-loop.d.ts +81 -61
  46. package/dist/builtins/autotrack/autotrack.addon.d.ts +103 -66
  47. package/dist/builtins/autotrack/frame-error.d.ts +38 -38
  48. package/dist/builtins/autotrack/frame-measurements.d.ts +79 -79
  49. package/dist/builtins/autotrack/index.d.ts +2 -2
  50. package/dist/builtins/autotrack/index.js +1 -1
  51. package/dist/builtins/autotrack/index.mjs +1 -1
  52. package/dist/builtins/autotrack/ptz-mirror.d.ts +46 -17
  53. package/dist/builtins/autotrack/target-selection.d.ts +33 -47
  54. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +270 -269
  55. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  56. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
  57. package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +17 -17
  58. package/dist/builtins/backup-orchestrator/destination-policy.d.ts +99 -82
  59. package/dist/builtins/backup-orchestrator/download-helpers.d.ts +9 -9
  60. package/dist/builtins/backup-orchestrator/encryption-key-store.d.ts +40 -29
  61. package/dist/builtins/backup-orchestrator/index.d.ts +2 -2
  62. package/dist/builtins/backup-orchestrator/manifest-store.d.ts +88 -69
  63. package/dist/builtins/backup-orchestrator/restore-archive.d.ts +14 -14
  64. package/dist/builtins/backup-orchestrator/run-queue.d.ts +86 -86
  65. package/dist/builtins/backup-orchestrator/schedule-store.d.ts +53 -37
  66. package/dist/builtins/backup-orchestrator/staging-paths.d.ts +23 -23
  67. package/dist/builtins/backup-orchestrator/write-targets.d.ts +53 -53
  68. package/dist/builtins/calendars/calendar-color.d.ts +5 -1
  69. package/dist/builtins/calendars/calendar-prefs-store.d.ts +18 -12
  70. package/dist/builtins/calendars/calendars.addon.d.ts +16 -11
  71. package/dist/builtins/calendars/calendars.addon.js +1 -1
  72. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  73. package/dist/builtins/calendars/index.d.ts +1 -1
  74. package/dist/builtins/camera-grid/acquire-retry.d.ts +26 -26
  75. package/dist/builtins/camera-grid/addon.d.ts +200 -174
  76. package/dist/builtins/camera-grid/flv-join.d.ts +32 -58
  77. package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +37 -37
  78. package/dist/builtins/camera-grid/grid-activity.d.ts +83 -42
  79. package/dist/builtins/camera-grid/grid-camera-declarations.d.ts +46 -46
  80. package/dist/builtins/camera-grid/grid-camera-device.d.ts +60 -34
  81. package/dist/builtins/camera-grid/grid-canvas-derivation.d.ts +50 -15
  82. package/dist/builtins/camera-grid/grid-canvas-seed.d.ts +96 -46
  83. package/dist/builtins/camera-grid/grid-canvas.d.ts +74 -74
  84. package/dist/builtins/camera-grid/grid-child.d.ts +29 -16
  85. package/dist/builtins/camera-grid/grid-compositor-child.d.ts +2 -2
  86. package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +39 -11
  87. package/dist/builtins/camera-grid/grid-compositor.d.ts +50 -50
  88. package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +52 -22
  89. package/dist/builtins/camera-grid/grid-device-settings.d.ts +31 -7
  90. package/dist/builtins/camera-grid/grid-filter-graph.d.ts +41 -41
  91. package/dist/builtins/camera-grid/grid-frame-sample.d.ts +45 -19
  92. package/dist/builtins/camera-grid/grid-instances.d.ts +20 -50
  93. package/dist/builtins/camera-grid/grid-last-frame-store.d.ts +51 -51
  94. package/dist/builtins/camera-grid/grid-layout-native-provider.d.ts +30 -4
  95. package/dist/builtins/camera-grid/grid-plan.d.ts +30 -20
  96. package/dist/builtins/camera-grid/grid-profiles.d.ts +85 -45
  97. package/dist/builtins/camera-grid/grid-row-normalization.d.ts +6 -6
  98. package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +57 -57
  99. package/dist/builtins/camera-grid/grid-snapshot.d.ts +41 -41
  100. package/dist/builtins/camera-grid/grid-stream-descriptor.d.ts +49 -21
  101. package/dist/builtins/camera-grid/grid-stream-invocation.d.ts +37 -22
  102. package/dist/builtins/camera-grid/grid-stream-relay.d.ts +26 -26
  103. package/dist/builtins/camera-grid/grid-stream-session.d.ts +123 -93
  104. package/dist/builtins/camera-grid/grid-tile-feed.d.ts +47 -47
  105. package/dist/builtins/camera-grid/grid-tile-plan.d.ts +55 -20
  106. package/dist/builtins/camera-grid/grid-wire-format.d.ts +22 -6
  107. package/dist/builtins/camera-grid/index.d.ts +44 -44
  108. package/dist/builtins/camera-grid/index.js +1 -1
  109. package/dist/builtins/camera-grid/index.mjs +1 -1
  110. package/dist/builtins/camera-grid/silence-analysis.d.ts +31 -14
  111. package/dist/builtins/composer/claim-gate.d.ts +54 -27
  112. package/dist/builtins/composer/composed-device-set.d.ts +40 -26
  113. package/dist/builtins/composer/composed-device.d.ts +39 -17
  114. package/dist/builtins/composer/composer-apply-waits.d.ts +20 -13
  115. package/dist/builtins/composer/composer-grafts.d.ts +57 -38
  116. package/dist/builtins/composer/composer-live-set.d.ts +15 -15
  117. package/dist/builtins/composer/composer-plan.d.ts +76 -60
  118. package/dist/builtins/composer/composer-runtime-factory.d.ts +21 -14
  119. package/dist/builtins/composer/composer-seeds.d.ts +20 -14
  120. package/dist/builtins/composer/composer-verdict.d.ts +28 -14
  121. package/dist/builtins/composer/composer.addon.d.ts +23 -9
  122. package/dist/builtins/composer/composer.addon.js +2 -2
  123. package/dist/builtins/composer/composer.addon.mjs +2 -2
  124. package/dist/builtins/composer/composer.d.ts +145 -100
  125. package/dist/builtins/composer/composition-declarations.d.ts +50 -39
  126. package/dist/builtins/composer/composition-evaluation.d.ts +38 -22
  127. package/dist/builtins/composer/composition-runtime.d.ts +178 -125
  128. package/dist/builtins/composer/composition-target.d.ts +38 -34
  129. package/dist/builtins/composer/confirmed-seed.d.ts +35 -23
  130. package/dist/builtins/composer/deadline-timer.d.ts +13 -13
  131. package/dist/builtins/composer/existing-target.d.ts +90 -73
  132. package/dist/builtins/composer/field-record.d.ts +26 -19
  133. package/dist/builtins/composer/graft-host.d.ts +56 -32
  134. package/dist/builtins/composer/held-claims.d.ts +26 -9
  135. package/dist/builtins/composer/index.d.ts +1 -1
  136. package/dist/builtins/composer/own-field-reads.d.ts +26 -15
  137. package/dist/builtins/composer/owned-fields-target.d.ts +75 -44
  138. package/dist/builtins/composer/slice-assembler.d.ts +19 -3
  139. package/dist/builtins/composer/source-readings.d.ts +67 -61
  140. package/dist/builtins/composer/source-tracker.d.ts +133 -69
  141. package/dist/builtins/console-logging/console-destination.d.ts +15 -8
  142. package/dist/builtins/console-logging/console-logging.addon.d.ts +20 -19
  143. package/dist/builtins/console-logging/index.d.ts +3 -3
  144. package/dist/builtins/console-logging/index.js +1 -1
  145. package/dist/builtins/console-logging/index.mjs +1 -1
  146. package/dist/builtins/core-blocks/block-package.d.ts +37 -37
  147. package/dist/builtins/core-blocks/block-settings-store.d.ts +34 -21
  148. package/dist/builtins/core-blocks/block-supervisor.d.ts +138 -117
  149. package/dist/builtins/core-blocks/block-type-defs.d.ts +21 -21
  150. package/dist/builtins/core-blocks/blocks-integration.d.ts +76 -49
  151. package/dist/builtins/core-blocks/compile-block.d.ts +37 -37
  152. package/dist/builtins/core-blocks/composition-api.d.ts +38 -24
  153. package/dist/builtins/core-blocks/composition-peers.d.ts +26 -4
  154. package/dist/builtins/core-blocks/composition-sources.d.ts +25 -10
  155. package/dist/builtins/core-blocks/core-block-store.d.ts +109 -109
  156. package/dist/builtins/core-blocks/core-blocks.addon.d.ts +72 -72
  157. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  158. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  159. package/dist/builtins/core-blocks/extract-settings-schema.d.ts +4 -4
  160. package/dist/builtins/core-blocks/index.d.ts +8 -8
  161. package/dist/builtins/device-manager/adoption-job-engine.d.ts +141 -98
  162. package/dist/builtins/device-manager/claimed-status-overlay.d.ts +42 -9
  163. package/dist/builtins/device-manager/contribution-cache.d.ts +56 -56
  164. package/dist/builtins/device-manager/day-night-config-schema.d.ts +26 -12
  165. package/dist/builtins/device-manager/device-aggregation-merge.d.ts +17 -17
  166. package/dist/builtins/device-manager/device-aggregation.d.ts +277 -254
  167. package/dist/builtins/device-manager/device-bindings-store.d.ts +232 -220
  168. package/dist/builtins/device-manager/device-config-contribution.d.ts +29 -29
  169. package/dist/builtins/device-manager/device-config-secrets.d.ts +32 -13
  170. package/dist/builtins/device-manager/device-event-propagator.d.ts +22 -22
  171. package/dist/builtins/device-manager/device-extension-linked-slot.d.ts +17 -17
  172. package/dist/builtins/device-manager/device-form-secrets.d.ts +14 -14
  173. package/dist/builtins/device-manager/device-linked-devices.d.ts +159 -98
  174. package/dist/builtins/device-manager/device-manager.addon.d.ts +223 -197
  175. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  176. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  177. package/dist/builtins/device-manager/device-meta-actions.d.ts +306 -305
  178. package/dist/builtins/device-manager/device-meta-store.d.ts +100 -90
  179. package/dist/builtins/device-manager/device-meta-types.d.ts +250 -241
  180. package/dist/builtins/device-manager/device-online-fallback.d.ts +30 -30
  181. package/dist/builtins/device-manager/device-projection.d.ts +53 -67
  182. package/dist/builtins/device-manager/device-provider-context.d.ts +109 -94
  183. package/dist/builtins/device-manager/device-queries.d.ts +63 -63
  184. package/dist/builtins/device-manager/device-row-store.d.ts +417 -365
  185. package/dist/builtins/device-manager/device-source-activation.d.ts +91 -49
  186. package/dist/builtins/device-manager/device-state-claim-views.d.ts +76 -61
  187. package/dist/builtins/device-manager/device-state-claims.d.ts +53 -30
  188. package/dist/builtins/device-manager/device-state-mirror.d.ts +256 -264
  189. package/dist/builtins/device-manager/device-sync-resolvers.d.ts +25 -25
  190. package/dist/builtins/device-manager/field-claims-index.d.ts +85 -58
  191. package/dist/builtins/device-manager/field-ownership.d.ts +54 -36
  192. package/dist/builtins/device-manager/fleet-read-census.d.ts +99 -61
  193. package/dist/builtins/device-manager/image-settings-config-schema.d.ts +18 -8
  194. package/dist/builtins/device-manager/index.d.ts +2 -2
  195. package/dist/builtins/device-manager/linked-devices-manual-backfill.d.ts +20 -9
  196. package/dist/builtins/device-manager/location-alignment.d.ts +46 -46
  197. package/dist/builtins/device-manager/migrate-device.d.ts +178 -101
  198. package/dist/builtins/device-manager/migrate-guard.d.ts +66 -34
  199. package/dist/builtins/device-manager/migrate-hardware-state.d.ts +59 -59
  200. package/dist/builtins/device-manager/migrate-reload.d.ts +42 -4
  201. package/dist/builtins/device-manager/migration-refused.d.ts +20 -20
  202. package/dist/builtins/device-manager/mirror-row-writer.d.ts +205 -179
  203. package/dist/builtins/device-manager/recording-onboard-config-schema.d.ts +56 -32
  204. package/dist/builtins/device-manager/removal-fence.d.ts +48 -48
  205. package/dist/builtins/device-manager/runtime-state-persist-gate.d.ts +54 -26
  206. package/dist/builtins/device-manager/secret-config-paths.d.ts +17 -17
  207. package/dist/builtins/device-manager/stale-wrapper-activations.d.ts +52 -25
  208. package/dist/builtins/device-manager/write-lock.d.ts +13 -13
  209. package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +41 -41
  210. package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +13 -12
  211. package/dist/builtins/hub-forwarder/index.d.ts +3 -3
  212. package/dist/builtins/hub-forwarder/index.js +1 -1
  213. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  214. package/dist/builtins/keychain/index.d.ts +1 -1
  215. package/dist/builtins/keychain/index.js +3 -3
  216. package/dist/builtins/keychain/index.mjs +3 -3
  217. package/dist/builtins/keychain/key-sources.d.ts +19 -19
  218. package/dist/builtins/keychain/keychain-crypto.d.ts +4 -4
  219. package/dist/builtins/keychain/keychain-reset-trigger.d.ts +13 -13
  220. package/dist/builtins/keychain/keychain-service.d.ts +128 -128
  221. package/dist/builtins/keychain/keychain-store.d.ts +96 -87
  222. package/dist/builtins/keychain/keychain-usage.d.ts +13 -2
  223. package/dist/builtins/keychain/keychain.addon.d.ts +31 -6
  224. package/dist/builtins/keychain/platform-key-source.d.ts +15 -15
  225. package/dist/builtins/keychain/system-held-secrets.d.ts +17 -4
  226. package/dist/builtins/liveness-monitor/index.d.ts +2 -2
  227. package/dist/builtins/liveness-monitor/liveness-checks.d.ts +73 -52
  228. package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +57 -36
  229. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  230. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  231. package/dist/builtins/local-auth/admin-account-boot.d.ts +14 -14
  232. package/dist/builtins/local-auth/auth-config-reader.d.ts +34 -17
  233. package/dist/builtins/local-auth/auth-schema.d.ts +92 -69
  234. package/dist/builtins/local-auth/index.d.ts +1 -1
  235. package/dist/builtins/local-auth/jwt-signing-key-keeper.d.ts +22 -22
  236. package/dist/builtins/local-auth/local-auth.addon.d.ts +41 -40
  237. package/dist/builtins/local-auth/local-auth.addon.js +2 -2
  238. package/dist/builtins/local-auth/local-auth.addon.mjs +2 -2
  239. package/dist/builtins/local-auth/oauth-grants.d.ts +57 -57
  240. package/dist/builtins/local-auth/oauth-session-manager.d.ts +62 -62
  241. package/dist/builtins/local-network/address-book.d.ts +61 -36
  242. package/dist/builtins/local-network/index.d.ts +2 -2
  243. package/dist/builtins/local-network/ipv6-lan.d.ts +12 -17
  244. package/dist/builtins/local-network/local-hostname.d.ts +10 -10
  245. package/dist/builtins/local-network/local-network.addon.d.ts +259 -258
  246. package/dist/builtins/local-network/local-network.addon.js +1 -1
  247. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  248. package/dist/builtins/loki-logging/index.d.ts +4 -4
  249. package/dist/builtins/loki-logging/index.js +1 -1
  250. package/dist/builtins/loki-logging/index.mjs +1 -1
  251. package/dist/builtins/loki-logging/loki-destination.d.ts +113 -87
  252. package/dist/builtins/loki-logging/loki-logging.addon.d.ts +61 -42
  253. package/dist/builtins/loki-logging/loki-payload.d.ts +82 -39
  254. package/dist/builtins/loki-logging/retire-enabled-flag.d.ts +37 -12
  255. package/dist/builtins/native-metrics/cgroup-memory.d.ts +206 -159
  256. package/dist/builtins/native-metrics/cgroup-pids.d.ts +138 -91
  257. package/dist/builtins/native-metrics/container-memory-series.d.ts +212 -178
  258. package/dist/builtins/native-metrics/gpu-probe.d.ts +9 -9
  259. package/dist/builtins/native-metrics/index.d.ts +2 -2
  260. package/dist/builtins/native-metrics/load-series-config.d.ts +29 -57
  261. package/dist/builtins/native-metrics/load-series-reader.d.ts +52 -26
  262. package/dist/builtins/native-metrics/load-series-store.d.ts +237 -176
  263. package/dist/builtins/native-metrics/native-metrics-provider.d.ts +43 -43
  264. package/dist/builtins/native-metrics/native-metrics.addon.d.ts +230 -230
  265. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  266. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  267. package/dist/builtins/native-metrics/node-load-ring.d.ts +196 -196
  268. package/dist/builtins/native-metrics/proc-process-table.d.ts +12 -12
  269. package/dist/builtins/native-metrics/process-classification.d.ts +95 -36
  270. package/dist/builtins/native-metrics/thread-cpu-sampler.d.ts +95 -95
  271. package/dist/builtins/platform-probe/amd-accelerators.d.ts +15 -0
  272. package/dist/builtins/platform-probe/amd-npu.d.ts +29 -0
  273. package/dist/builtins/platform-probe/coral-accelerators.d.ts +17 -17
  274. package/dist/builtins/platform-probe/index.d.ts +38 -30
  275. package/dist/builtins/platform-probe/index.js +59 -22
  276. package/dist/builtins/platform-probe/index.mjs +59 -22
  277. package/dist/builtins/platform-probe/inference-config-resolver.d.ts +27 -27
  278. package/dist/builtins/platform-probe/intel-accelerators.d.ts +8 -8
  279. package/dist/builtins/platform-probe/intel-npu.d.ts +30 -30
  280. package/dist/builtins/platform-probe/platform-scorer.d.ts +35 -35
  281. package/dist/builtins/platform-probe/runtime-packages.d.ts +3 -3
  282. package/dist/builtins/remote-access-orchestrator/enabled-providers-reconcile.d.ts +87 -87
  283. package/dist/builtins/remote-access-orchestrator/index.d.ts +1 -1
  284. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +66 -35
  285. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  286. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  287. package/dist/builtins/shared/device-state-changed.d.ts +9 -9
  288. package/dist/builtins/shared/settle-sources.d.ts +16 -16
  289. package/dist/builtins/snapshot/index.d.ts +2 -2
  290. package/dist/builtins/snapshot/index.js +1 -1
  291. package/dist/builtins/snapshot/index.mjs +1 -1
  292. package/dist/builtins/snapshot/snapshot-cache.d.ts +92 -92
  293. package/dist/builtins/snapshot/snapshot-coalescing.d.ts +108 -108
  294. package/dist/builtins/snapshot/snapshot-courtesy.d.ts +48 -48
  295. package/dist/builtins/snapshot/snapshot-durable-store.d.ts +32 -32
  296. package/dist/builtins/snapshot/snapshot-fatigue.d.ts +34 -34
  297. package/dist/builtins/snapshot/snapshot-grab-pick.d.ts +14 -14
  298. package/dist/builtins/snapshot/snapshot-link-url.d.ts +49 -49
  299. package/dist/builtins/snapshot/snapshot-media-handler.d.ts +97 -97
  300. package/dist/builtins/snapshot/snapshot-resize.d.ts +64 -103
  301. package/dist/builtins/snapshot/snapshot.addon.d.ts +569 -568
  302. package/dist/builtins/sqlite-storage/analyze-stats.d.ts +73 -29
  303. package/dist/builtins/sqlite-storage/config-store.d.ts +6 -6
  304. package/dist/builtins/sqlite-storage/device-store.d.ts +16 -16
  305. package/dist/builtins/sqlite-storage/filesystem-browse-provider.d.ts +23 -23
  306. package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +79 -79
  307. package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +27 -26
  308. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  309. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  310. package/dist/builtins/sqlite-storage/filter-compiler.d.ts +107 -107
  311. package/dist/builtins/sqlite-storage/index.d.ts +12 -12
  312. package/dist/builtins/sqlite-storage/integration-registry.d.ts +37 -37
  313. package/dist/builtins/sqlite-storage/path-guard.d.ts +5 -5
  314. package/dist/builtins/sqlite-storage/prefix-range.d.ts +44 -44
  315. package/dist/builtins/sqlite-storage/query-bounds.d.ts +100 -106
  316. package/dist/builtins/sqlite-storage/query-profiler.d.ts +217 -217
  317. package/dist/builtins/sqlite-storage/retired-collections.d.ts +124 -55
  318. package/dist/builtins/sqlite-storage/retired-settings-keys.d.ts +239 -189
  319. package/dist/builtins/sqlite-storage/shm-lock-canary.d.ts +41 -41
  320. package/dist/builtins/sqlite-storage/sqlite-pragmas.d.ts +162 -162
  321. package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +458 -458
  322. package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +59 -58
  323. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  324. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  325. package/dist/builtins/sqlite-storage/sqlite-snapshot-protocol.d.ts +37 -32
  326. package/dist/builtins/sqlite-storage/sqlite-snapshot-worker.d.ts +19 -19
  327. package/dist/builtins/sqlite-storage/sqlite-snapshotter.d.ts +76 -76
  328. package/dist/builtins/sqlite-storage/statement-shape.d.ts +54 -54
  329. package/dist/builtins/sqlite-storage/table-sizes.d.ts +71 -71
  330. package/dist/builtins/sqlite-storage/vector-index-shared.d.ts +63 -54
  331. package/dist/builtins/sqlite-storage/vector-index-vec.d.ts +133 -96
  332. package/dist/builtins/sqlite-storage/wal-checkpoint-policy.d.ts +161 -161
  333. package/dist/builtins/sqlite-storage/wal-checkpointer.d.ts +60 -60
  334. package/dist/builtins/sqlite-storage/wal-maintenance.d.ts +94 -94
  335. package/dist/builtins/storage-orchestrator/access-guards.d.ts +37 -26
  336. package/dist/builtins/storage-orchestrator/data-store-dispatch.d.ts +33 -18
  337. package/dist/builtins/storage-orchestrator/drain-ratchet.d.ts +85 -85
  338. package/dist/builtins/storage-orchestrator/drain-state-store.d.ts +20 -10
  339. package/dist/builtins/storage-orchestrator/hub-settings-forward.d.ts +113 -53
  340. package/dist/builtins/storage-orchestrator/index.d.ts +7 -7
  341. package/dist/builtins/storage-orchestrator/location-occupancy-slice.d.ts +64 -40
  342. package/dist/builtins/storage-orchestrator/location-occupancy.d.ts +14 -14
  343. package/dist/builtins/storage-orchestrator/location-protection.d.ts +13 -13
  344. package/dist/builtins/storage-orchestrator/location-repoint-move.d.ts +44 -44
  345. package/dist/builtins/storage-orchestrator/location-root-collision.d.ts +61 -25
  346. package/dist/builtins/storage-orchestrator/location-secrets.d.ts +99 -58
  347. package/dist/builtins/storage-orchestrator/location-store.d.ts +56 -47
  348. package/dist/builtins/storage-orchestrator/location-volume-capacity.d.ts +37 -37
  349. package/dist/builtins/storage-orchestrator/provider-discovery.d.ts +20 -6
  350. package/dist/builtins/storage-orchestrator/storage-cleanup-coordinator.d.ts +51 -51
  351. package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +224 -224
  352. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +292 -292
  353. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  354. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  355. package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +431 -450
  356. package/dist/builtins/storage-orchestrator/storage-pressure-manager.d.ts +104 -104
  357. package/dist/builtins/system-backup/backup-encryption.d.ts +60 -23
  358. package/dist/builtins/system-backup/system-backup.service.d.ts +240 -240
  359. package/dist/builtins/system-config/cluster-secret-keeper.d.ts +54 -34
  360. package/dist/builtins/system-config/index.d.ts +2 -2
  361. package/dist/builtins/system-config/mesh-actions.d.ts +2 -30
  362. package/dist/builtins/system-config/system-config.addon.d.ts +57 -100
  363. package/dist/builtins/system-config/system-config.addon.js +39 -35
  364. package/dist/builtins/system-config/system-config.addon.mjs +320 -316
  365. package/dist/builtins/winston-logging/index.d.ts +3 -3
  366. package/dist/builtins/winston-logging/index.js +1 -1
  367. package/dist/builtins/winston-logging/index.mjs +1 -1
  368. package/dist/builtins/winston-logging/winston-destination.d.ts +15 -15
  369. package/dist/builtins/winston-logging/winston-logging.addon.d.ts +14 -13
  370. package/dist/{child-cap-dispatch-nURMuVTX.js → child-cap-dispatch-Nx-lrlHR.js} +19 -1
  371. package/dist/{child-cap-dispatch-B1gyE35b.mjs → child-cap-dispatch-x-onDDiV.mjs} +2 -2
  372. package/dist/{composition-sources-wdAxs-uY.js → composition-sources-LUJsW0AQ.js} +1 -1
  373. package/dist/{composition-sources-xqhm2Ygr.mjs → composition-sources-R8TskGSV.mjs} +1 -1
  374. package/dist/{constants-Ca-Sgcl8.js → constants-D4lxxip7.js} +1 -1
  375. package/dist/{constants-D5z4EwY8.mjs → constants-DMvAcbbP.mjs} +1 -1
  376. package/dist/{dist-8LQ4lDEB.js → dist-XTkzsnz-.js} +35 -1
  377. package/dist/{dist-Biqn3TEn.mjs → dist-byg8IP4Q.mjs} +35 -1
  378. package/dist/download/hosted-model-revisions.d.ts +8 -8
  379. package/dist/download/model-download-service.d.ts +32 -32
  380. package/dist/download/model-downloader.d.ts +88 -88
  381. package/dist/{event-loop-stall-monitor-CNj73d4D.js → event-loop-stall-monitor-DPFghEFw.js} +1 -1
  382. package/dist/{event-loop-stall-monitor-BtK_0Pjc.mjs → event-loop-stall-monitor-TG8UcdY2.mjs} +1 -1
  383. package/dist/events/event-bus.d.ts +6 -6
  384. package/dist/events/system-event-bus.d.ts +11 -11
  385. package/dist/feature/feature-manager.d.ts +6 -6
  386. package/dist/http/asset-compression.d.ts +35 -73
  387. package/dist/http/authenticated-file-server.d.ts +32 -32
  388. package/dist/http/data-plane-registry.d.ts +49 -39
  389. package/dist/http/file-data-plane.d.ts +14 -14
  390. package/dist/http/lan-http-bind.d.ts +24 -13
  391. package/dist/http/reverse-proxy.d.ts +36 -24
  392. package/dist/index.d.ts +137 -137
  393. package/dist/index.js +9 -8
  394. package/dist/index.mjs +7 -9
  395. package/dist/{jwt-signing-key-DxV2ucvJ.js → jwt-signing-key-CD87HrHH.js} +1 -1
  396. package/dist/{jwt-signing-key-SnDgvVUQ.mjs → jwt-signing-key-DNBxSN5p.mjs} +1 -1
  397. package/dist/kernel/addon-class-resolver.d.ts +1 -1
  398. package/dist/kernel/addon-engine-manager.d.ts +20 -20
  399. package/dist/kernel/addon-health-monitor.d.ts +151 -151
  400. package/dist/kernel/addon-installer.d.ts +609 -609
  401. package/dist/kernel/addon-loader.d.ts +133 -133
  402. package/dist/kernel/addon-manifest.d.ts +118 -118
  403. package/dist/kernel/addon-residue.d.ts +28 -32
  404. package/dist/kernel/array-buffer-census.d.ts +84 -88
  405. package/dist/kernel/bootstrap-config.d.ts +3 -3
  406. package/dist/kernel/cap-router-builder.d.ts +145 -101
  407. package/dist/kernel/capability-handle.d.ts +41 -41
  408. package/dist/kernel/capability-registry.d.ts +588 -576
  409. package/dist/kernel/config-manager.d.ts +199 -199
  410. package/dist/kernel/config-schema.d.ts +132 -128
  411. package/dist/kernel/custom-action-registry.d.ts +25 -25
  412. package/dist/kernel/deps/addon-deps-manager.d.ts +17 -17
  413. package/dist/kernel/deps/closure-dedupe.d.ts +76 -76
  414. package/dist/kernel/deps/ensure-addon-natives.d.ts +34 -34
  415. package/dist/kernel/deps/ensure-native-prebuilds.d.ts +25 -25
  416. package/dist/kernel/deps/manifest-native-deps.d.ts +38 -38
  417. package/dist/kernel/deps/manifest-python-deps.d.ts +18 -18
  418. package/dist/kernel/deps/manifest-system-deps.d.ts +13 -13
  419. package/dist/kernel/deps/npm-command.d.ts +45 -45
  420. package/dist/kernel/deps/system-package-allowlist.d.ts +9 -9
  421. package/dist/kernel/deps/system-package-broker.d.ts +20 -20
  422. package/dist/kernel/deps/system-package-client.d.ts +3 -3
  423. package/dist/kernel/device-registry.d.ts +27 -27
  424. package/dist/kernel/event-loop-stall-monitor.d.ts +33 -33
  425. package/dist/kernel/event-plane-report.d.ts +174 -174
  426. package/dist/kernel/fs-utils.d.ts +70 -70
  427. package/dist/kernel/gc-census.d.ts +119 -119
  428. package/dist/kernel/heap-spaces.d.ts +87 -87
  429. package/dist/kernel/heap-watch.d.ts +706 -706
  430. package/dist/kernel/host-externals.d.ts +8 -8
  431. package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +27 -27
  432. package/dist/kernel/index.d.ts +115 -113
  433. package/dist/kernel/inference/inference-resolver.d.ts +13 -13
  434. package/dist/kernel/infra-capabilities.d.ts +7 -7
  435. package/dist/kernel/isolated-builtin-phase.d.ts +42 -42
  436. package/dist/kernel/lifecycle/job-journal.d.ts +17 -17
  437. package/dist/kernel/lifecycle/lifecycle-job-engine.d.ts +99 -99
  438. package/dist/kernel/lifecycle/staging-area.d.ts +22 -22
  439. package/dist/kernel/moleculer/addon-context-factory.d.ts +90 -89
  440. package/dist/kernel/moleculer/addon-data-plane-facility.d.ts +12 -12
  441. package/dist/kernel/moleculer/addon-deploy-source.d.ts +11 -11
  442. package/dist/kernel/moleculer/addon-peer-bytes-facility.d.ts +18 -18
  443. package/dist/kernel/moleculer/addon-service-factory.d.ts +41 -41
  444. package/dist/kernel/moleculer/agent-mesh-authenticator.d.ts +60 -33
  445. package/dist/kernel/moleculer/agent-ui-unlock.d.ts +30 -30
  446. package/dist/kernel/moleculer/broker-factory.d.ts +61 -61
  447. package/dist/kernel/moleculer/cap-usage-registry.d.ts +108 -153
  448. package/dist/kernel/moleculer/capabilities-access.d.ts +19 -19
  449. package/dist/kernel/moleculer/child-addon-call-dispatch.d.ts +43 -43
  450. package/dist/kernel/moleculer/child-cap-descriptors.d.ts +26 -26
  451. package/dist/kernel/moleculer/child-cap-dispatch.d.ts +52 -52
  452. package/dist/kernel/moleculer/children-batch-loader.d.ts +86 -34
  453. package/dist/kernel/moleculer/cluster-secret.d.ts +19 -19
  454. package/dist/kernel/moleculer/core-cap-service.d.ts +53 -53
  455. package/dist/kernel/moleculer/crash-supervisor.d.ts +39 -39
  456. package/dist/kernel/moleculer/device-cap-proxy.d.ts +51 -51
  457. package/dist/kernel/moleculer/device-event-ring.d.ts +117 -75
  458. package/dist/kernel/moleculer/event-bus-core.d.ts +171 -159
  459. package/dist/kernel/moleculer/event-bus.d.ts +73 -73
  460. package/dist/kernel/moleculer/hub-log-forwarder.d.ts +30 -30
  461. package/dist/kernel/moleculer/hub-service.d.ts +42 -42
  462. package/dist/kernel/moleculer/init-watchdog.d.ts +49 -49
  463. package/dist/kernel/moleculer/mesh-access-middleware.d.ts +36 -21
  464. package/dist/kernel/moleculer/mesh-auth-mode.d.ts +33 -39
  465. package/dist/kernel/moleculer/mesh-authenticator.d.ts +58 -58
  466. package/dist/kernel/moleculer/mesh-auto-enforce.d.ts +38 -18
  467. package/dist/kernel/moleculer/mesh-join-client.d.ts +67 -45
  468. package/dist/kernel/moleculer/mesh-join-proof.d.ts +8 -8
  469. package/dist/kernel/moleculer/mesh-mtls/constants.d.ts +1 -1
  470. package/dist/kernel/moleculer/mesh-mtls/index.d.ts +10 -10
  471. package/dist/kernel/moleculer/mesh-mtls/mesh-ca-keeper.d.ts +43 -38
  472. package/dist/kernel/moleculer/mesh-mtls/mesh-ca.d.ts +29 -20
  473. package/dist/kernel/moleculer/mesh-mtls/mesh-clear-port.d.ts +32 -32
  474. package/dist/kernel/moleculer/mesh-mtls/mesh-crl.d.ts +11 -11
  475. package/dist/kernel/moleculer/mesh-mtls/mesh-enroll.d.ts +19 -16
  476. package/dist/kernel/moleculer/mesh-mtls/mesh-join-token.d.ts +40 -40
  477. package/dist/kernel/moleculer/mesh-mtls/mesh-tls-enabler.d.ts +5 -1
  478. package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +131 -130
  479. package/dist/kernel/moleculer/mesh-queue-report.d.ts +39 -39
  480. package/dist/kernel/moleculer/node-registry.d.ts +120 -120
  481. package/dist/kernel/moleculer/process-context.d.ts +2 -2
  482. package/dist/kernel/moleculer/process-service.d.ts +168 -168
  483. package/dist/kernel/moleculer/provider-registry.d.ts +9 -9
  484. package/dist/kernel/moleculer/readiness-context.d.ts +58 -58
  485. package/dist/kernel/moleculer/readiness-service.d.ts +31 -16
  486. package/dist/kernel/moleculer/register-framework-resolver.d.ts +6 -6
  487. package/dist/kernel/moleculer/register-node-client.d.ts +34 -27
  488. package/dist/kernel/moleculer/remote-logger.d.ts +29 -29
  489. package/dist/kernel/moleculer/resilient-cap-call.d.ts +21 -21
  490. package/dist/kernel/moleculer/runner-native-allocator.d.ts +95 -95
  491. package/dist/kernel/moleculer/runner-process-group.d.ts +57 -57
  492. package/dist/kernel/moleculer/runtime-state-load.d.ts +21 -11
  493. package/dist/kernel/moleculer/settings-read-guard.d.ts +39 -39
  494. package/dist/kernel/moleculer/stream-probe-service.d.ts +25 -6
  495. package/dist/kernel/moleculer/trpc-links.d.ts +203 -203
  496. package/dist/kernel/moleculer/typed-array-serde.d.ts +9 -20
  497. package/dist/kernel/moleculer/worker-device-restore.d.ts +8 -8
  498. package/dist/kernel/outbound-queue-watch.d.ts +74 -74
  499. package/dist/kernel/process-cpu-census.d.ts +55 -55
  500. package/dist/kernel/provider-kind-drift.d.ts +17 -8
  501. package/dist/kernel/restart-coordinator.d.ts +71 -71
  502. package/dist/kernel/settings-door-view.d.ts +36 -25
  503. package/dist/kernel/settings-read-error.d.ts +29 -31
  504. package/dist/kernel/settings-view-types.d.ts +100 -95
  505. package/dist/kernel/socket-plane-report.d.ts +214 -153
  506. package/dist/kernel/status-overlay.d.ts +31 -11
  507. package/dist/kernel/storage-location-registry.d.ts +50 -50
  508. package/dist/kernel/store-settings-view.d.ts +13 -13
  509. package/dist/kernel/system-settings-mirror.d.ts +40 -28
  510. package/dist/kernel/system-settings-policy.d.ts +15 -34
  511. package/dist/kernel/transport/cap-action-census.d.ts +183 -183
  512. package/dist/kernel/transport/cap-action-name.d.ts +84 -84
  513. package/dist/kernel/transport/cap-child-index.d.ts +41 -41
  514. package/dist/kernel/transport/cap-route-resolver.d.ts +237 -212
  515. package/dist/kernel/transport/cap-route.d.ts +139 -139
  516. package/dist/kernel/transport/cap-routing-hints.d.ts +37 -37
  517. package/dist/kernel/transport/child-cap-protocol.d.ts +245 -245
  518. package/dist/kernel/transport/claimed-get-status.d.ts +30 -6
  519. package/dist/kernel/transport/create-local-transport.d.ts +5 -5
  520. package/dist/kernel/transport/frame-codec.d.ts +109 -109
  521. package/dist/kernel/transport/hub-cap-forward.d.ts +81 -59
  522. package/dist/kernel/transport/index.d.ts +36 -36
  523. package/dist/kernel/transport/local-child-client.d.ts +184 -184
  524. package/dist/kernel/transport/local-child-registry.d.ts +592 -592
  525. package/dist/kernel/transport/local-endpoint-path.d.ts +4 -4
  526. package/dist/kernel/transport/local-transport.d.ts +92 -92
  527. package/dist/kernel/transport/parent-unowned-call.d.ts +266 -237
  528. package/dist/kernel/transport/peer-answered-error.d.ts +14 -14
  529. package/dist/kernel/transport/socket-channel.d.ts +110 -110
  530. package/dist/kernel/transport/socket-traffic.d.ts +96 -96
  531. package/dist/kernel/transport/uds-event-bridge.d.ts +77 -50
  532. package/dist/kernel/transport/uds-event-bus.d.ts +75 -26
  533. package/dist/kernel/transport/uds-local-transport.d.ts +14 -14
  534. package/dist/kernel/transport/uds-log-ingest.d.ts +38 -23
  535. package/dist/kernel/transport/uds-logger.d.ts +33 -33
  536. package/dist/kernel/utils/ring-buffer.d.ts +12 -12
  537. package/dist/kernel/workspace-detect.d.ts +7 -7
  538. package/dist/lifecycle/lifecycle-state-machine.d.ts +24 -24
  539. package/dist/logging/formatter.d.ts +52 -25
  540. package/dist/logging/log-manager.d.ts +133 -133
  541. package/dist/logging/log-redactor.d.ts +22 -1
  542. package/dist/logging/log-ring-buffer.d.ts +57 -57
  543. package/dist/logging/logging-gate.d.ts +69 -25
  544. package/dist/logging/logging-gate.singleton.d.ts +12 -1
  545. package/dist/logging/partitioned-log-buffer.d.ts +161 -161
  546. package/dist/logging/scoped-logger.d.ts +14 -14
  547. package/dist/network/network-quality.d.ts +8 -8
  548. package/dist/notification/notification-service.d.ts +37 -37
  549. package/dist/notification/toast-service.d.ts +18 -18
  550. package/dist/pipeline/engine-manager-resolver.d.ts +12 -12
  551. package/dist/pipeline/pipeline-runner.d.ts +6 -6
  552. package/dist/pipeline/pipeline-validator.d.ts +8 -8
  553. package/dist/process/proc-stat.d.ts +51 -51
  554. package/dist/process/resource-monitor.d.ts +19 -19
  555. package/dist/python/python-env-manager.d.ts +10 -10
  556. package/dist/repl/interfaces.d.ts +21 -21
  557. package/dist/repl/repl-engine.d.ts +6 -6
  558. package/dist/{restore-archive-D4cmLoNe.mjs → restore-archive-Bmmmyp1M.mjs} +81 -81
  559. package/dist/{restore-archive-Do_Yu5rC.js → restore-archive-bvYTsnvp.js} +1 -1
  560. package/dist/{retired-settings-keys-BsgVxh8-.mjs → retired-settings-keys-R9CBo2lY.mjs} +1 -1
  561. package/dist/{retired-settings-keys-Cyn3OD0K.js → retired-settings-keys-V0yq5Bm6.js} +1 -1
  562. package/dist/storage/fs-storage-backend.d.ts +35 -35
  563. package/dist/storage/storage-location-manager.d.ts +21 -21
  564. package/dist/storage/storage-manager.d.ts +68 -68
  565. package/dist/tls/boot-tls.d.ts +24 -24
  566. package/dist/tls/cert-evaluation.d.ts +25 -25
  567. package/dist/tls/cert-identity.d.ts +39 -39
  568. package/dist/tls/cert-issue.d.ts +37 -17
  569. package/dist/tls/cert-manager.d.ts +86 -84
  570. package/dist/tls/https-listener.d.ts +16 -16
  571. package/dist/tls/index.d.ts +8 -8
  572. package/dist/tls/tls-actions.d.ts +18 -18
  573. package/dist/tls/tls-status.d.ts +15 -15
  574. package/dist/tls/uploaded-cert.d.ts +9 -9
  575. package/package.json +9 -3
@@ -1,244 +1,273 @@
1
- import { CapCallInput } from './child-cap-protocol.js';
2
- import { CapRouteResolver, HubLocalChildDispatcher } from './cap-route-resolver.js';
3
- import { HubNodeRegistry } from '../moleculer/node-registry.js';
4
- import { ClaimedStatusResolver } from '../status-overlay.js';
5
- import { ServiceBroker } from 'moleculer';
6
1
  /**
7
- * Minimal logger surface accepted by the unowned-call handler. Matches the
8
- * `LocalChildRegistryLogger` shape so a single logger object can be shared.
9
- */
2
+ * parent-unowned-call.ts — the parent-side `onUnownedCall` fallback for the
3
+ * `LocalChildRegistry` (F0 — slice-5 outbound completion).
4
+ *
5
+ * When a forked child issues `ctx.api.<cap>.<method>` for a cap that NO local
6
+ * sibling owns, the call arrives at the parent's `LocalChildRegistry` as a
7
+ * `cap-call-out` with no local provider. Before F0 the parent threw
8
+ * `UDS_NO_ROUTE`, and the child's tRPC chain fell through to its own
9
+ * `brokerTransportLink` (its per-addon broker). F1+F2 removes that broker, so
10
+ * the PARENT must route the call instead and return the result over UDS.
11
+ *
12
+ * Routing strategy (resolver-first, broker-fallback):
13
+ * 1. Resolver-first — `resolver.resolveCapRoute(capName, { deviceId })` +
14
+ * `resolver.dispatch(...)`. This covers every REGISTERED capability:
15
+ * hub-in-process caps, hub-local-UDS sibling caps, remote-moleculer caps,
16
+ * and agent-child-forward caps. No nodeId is supplied so the resolver does
17
+ * singleton/wherever-it-lives resolution.
18
+ * 2. Broker-fallback — for what the resolver returns `no-provider` on. The
19
+ * hub's CORE services (`$core-caps` for `system`/`addons`/`capabilities`/
20
+ * `nodes`/…, `$stream-probe`, `settings-store`, …) are Moleculer services
21
+ * NOT registered as CapabilityRegistry providers, so the resolver can't
22
+ * see them — but the parent keeps its broker, so `brokerCallForCap`
23
+ * reaches them through cluster service discovery using the SAME action
24
+ * naming the child's `brokerTransportLink` used.
25
+ *
26
+ * The agent has no `CapRouteResolver` (it routes everything to the hub over its
27
+ * own broker), so it passes `getResolver: () => null` and relies entirely on
28
+ * the broker fallback — the agent's broker call reaches the hub mesh.
29
+ */
30
+ import type { CapCallInput } from "./child-cap-protocol.js";
31
+ import type { CapRouteResolver, HubLocalChildDispatcher } from "./cap-route-resolver.js";
32
+ import type { HubNodeRegistry } from "../moleculer/node-registry.js";
33
+ import type { ClaimedStatusResolver } from "../status-overlay.js";
34
+ import type { ServiceBroker } from "moleculer";
35
+ /**
36
+ * Minimal logger surface accepted by the unowned-call handler. Matches the
37
+ * `LocalChildRegistryLogger` shape so a single logger object can be shared.
38
+ */
10
39
  export interface ParentUnownedCallLogger {
11
- debug?(msg: string, meta?: unknown): void;
12
- warn?(msg: string, meta?: unknown): void;
40
+ debug?(msg: string, meta?: unknown): void;
41
+ warn?(msg: string, meta?: unknown): void;
13
42
  }
14
43
  export interface ParentUnownedCallDeps {
15
- /**
16
- * Returns the parent's `CapRouteResolver` at call time, or `null` when the
17
- * parent has none (the agent) or it has not been constructed yet (the hub,
18
- * before `onModuleInit` finishes — the resolver is built late, so this is a
19
- * live getter, not a captured value).
20
- */
21
- readonly getResolver: () => CapRouteResolver | null;
22
- /** The parent's Moleculer broker — reaches the cluster + the hub's `$`-infra services. */
23
- readonly broker: ServiceBroker;
24
- /**
25
- * The hub's single capability authority. Used to find the node that OWNS a
26
- * device-scoped native cap so the broker-fallback can be pinned to it instead
27
- * of load-balancing the call (which can hit the wrong provider).
28
- */
29
- readonly nodeRegistry: HubNodeRegistry;
30
- /**
31
- * Hub-local UDS child dispatcher (`LocalChildRegistry`). Resolves
32
- * device-scoped native caps OWNED by hub-local children (reolink/hikvision
33
- * cameras run as forked hub-local UDS children — they register via the hub's
34
- * `LocalChildRegistry`, NOT via `registerNode`, so the `nodeRegistry` lookup
35
- * is empty for them) and dispatches the call to the owning child over UDS.
36
- *
37
- * A live GETTER (init-order safety): on the agent the local registry is built
38
- * AFTER this handler, so the instance is captured lazily. Returns null when
39
- * no local registry exists (failed to start) or when not yet constructed.
40
- */
41
- readonly getLocalDispatcher?: () => HubLocalChildDispatcher | null;
42
- /**
43
- * Optional predicate — returns `true` when `capName` is a DEVICE-NATIVE cap
44
- * (`deviceNative: true` in its `CapabilityDefinition`): the provider IS the
45
- * device and routes ONLY over UDS / the per-node native path, never as a plain
46
- * Moleculer service. The kernel layer has no cap registry, so the wiring side
47
- * (which does) injects this.
48
- *
49
- * It gates the registration-race recovery in the broker-fallback branch: when
50
- * a device-scoped call's hub-local binding is not yet in the LocalChildRegistry
51
- * (`resolveChildId === null`) and no remote owner is known, the handler applies
52
- * a SHORT bounded retry, then — if still unresolved AND the cap is device-native
53
- * — throws a precise "binding not yet registered" error instead of attempting
54
- * the unpinned `brokerCallForCap`, which can NEVER reach a device-native cap and
55
- * would surface the misleading doubled `${cap}.${cap}.${method}` Moleculer error.
56
- *
57
- * Omitted (or returning `false`) ⇒ legacy behaviour is preserved exactly: no
58
- * retry, no precise error, straight to the existing broker fallback. This keeps
59
- * deviceId-carrying SYSTEM-cap calls (e.g. `system.info({deviceId})`) fast.
60
- */
61
- readonly isDeviceNativeCap?: (capName: string) => boolean;
62
- /**
63
- * Optional predicate — returns `true` when `capName` declares
64
- * `nodeIdMode: 'data'` in its `CapabilityDefinition` (`addon-settings`,
65
- * `addons`, `nodes`, `pipeline-orchestrator`): an inline `nodeId` in the
66
- * call args is DATA for the (hub-singleton) provider, which dispatches
67
- * internally — NOT a routing hint. For such caps the handler must NOT lift
68
- * `args.nodeId` into a routing pin: pinning routes the call to a node with
69
- * no provider for the cap (e.g. a forked addon on an agent calling
70
- * `addon-settings.getGlobalSettings({addonId, nodeId})` gets pinned to
71
- * `nodeId` → dead broker fallback → ServiceNotFoundError). Suppressing the
72
- * pin forwards the call unpinned → singleton resolution on the hub — exactly
73
- * how `settings-store` (no `nodeId` arg) already behaves. `args` pass
74
- * through UNTOUCHED: the provider still reads `nodeId` as data.
75
- *
76
- * The kernel layer has no cap registry, so the wiring side (which does)
77
- * injects this. Omitted (or returning `false`) ⇒ legacy behaviour exactly:
78
- * an inline `args.nodeId` keeps pinning (benchmark, platform-probe,
79
- * pipeline-runner node-pinned execution is unaffected).
80
- */
81
- readonly isDataNodeIdCap?: (capName: string) => boolean;
82
- /**
83
- * Optional forward-to-hub dispatcher (the AGENT path). When present, a cap
84
- * that no agent-LOCAL child owns is forwarded to the hub's `$hub-cap-fwd`
85
- * service instead of attempted via raw Moleculer service discovery
86
- * (`brokerCallForCap`). This is what makes an agent's forked addon reach a
87
- * HUB-hosted cap (`stream-broker`, `settings-store`, …): hub-local addon
88
- * runners register NO Moleculer service, so raw discovery for `${cap}.*`
89
- * 30s-deadlines. The hub side answers `$hub-cap-fwd.forward` by running the
90
- * call through ITS OWN `onUnownedCall` (resolver + broker-fallback), so the
91
- * agent inherits the hub's full routing. The hub itself passes this undefined
92
- * (it IS the hub) and keeps the `brokerCallForCap` path for its `$`-core
93
- * services. See `hub-cap-forward.ts`.
94
- */
95
- readonly forwardToHub?: (input: CapCallInput) => Promise<unknown>;
96
- /**
97
- * Optional empty-collection fast-path. Returns `[]` (an empty aggregate) when
98
- * `capName` is a `mode:'collection'` cap whose `method` is array-output AND
99
- * ZERO providers are registered cluster-wide; `null`/`undefined` otherwise.
100
- *
101
- * Why: a collection cap with no providers IS the empty collection — but with
102
- * nothing registered, the resolver returns `no-provider` and the call falls
103
- * to the broker fallback, which polls Moleculer service discovery for a
104
- * `${cap}.${method}` service that will NEVER appear until the discovery
105
- * deadline (~30s) elapses. That 30s stall hit EVERY WebRTC cold start via the
106
- * provider-less `turn-provider` (`getTurnServers`). Returning `[]` up front
107
- * treats a provider-less collection as the empty collection it is — instant,
108
- * no discovery. A collection WITH ≥1 provider returns `null` here and routes
109
- * normally (the aggregate fans out across its providers as before). The
110
- * kernel layer has no cap registry, so the wiring side (which has both the
111
- * `CapabilityDefinition`s and the registry) injects this.
112
- */
113
- readonly resolveEmptyCollection?: (capName: string, method: string) => readonly unknown[] | null;
114
- /**
115
- * Optional collection FAN-OUT. Returns the union of `method` across every
116
- * registered provider of a `mode:'collection'` cap, or `null` when the
117
- * (cap, method) pair is not an aggregated collection array-method.
118
- *
119
- * Why: routing resolves ONE provider (`resolveChildId` picks the
120
- * first-registered child, or the singleton preference — meaningless for a
121
- * collection). The hub's tRPC cap-router instead fans array methods across
122
- * every provider (`concatArrayMethod`). A forked addon calling the same cap
123
- * through `ctx.api` therefore saw a DIFFERENT, smaller answer than the hub's
124
- * own router — and for `notification-output`, whose three providers include
125
- * two that hold no targets, it saw `[]`. The Notification Center read that
126
- * empty catalog as "the target was deleted" and permanently dead-lettered
127
- * every notification it ever produced (2026-07-30).
128
- *
129
- * Skipped when the call carries an explicit `nodeId` pin — a pin must route
130
- * to its node, never be answered by a cluster-wide union. The kernel layer
131
- * has no cap registry, so the wiring side injects this (same shape as
132
- * {@link resolveEmptyCollection}, and it shares that path's aggregation code
133
- * so the two answers cannot drift).
134
- */
135
- readonly callCollectionAggregate?: (capName: string, method: string, args: unknown) => Promise<readonly unknown[] | null>;
136
- /**
137
- * Optional `{ addonId }` PIN for a collection cap's SCALAR method — the twin
138
- * of {@link callCollectionAggregate}, for the same reason.
139
- *
140
- * On a system-scoped collection cap `addonId` is not provider data: the
141
- * codegen injects it as the `{nodeId?, addonId?}` selector on every method,
142
- * and the hub's tRPC cap-router routes by it. This handler lifted only
143
- * `nodeId` and `deviceId` out of a child's args, so a forked addon's pin was
144
- * DISCARDED IN SILENCE and the call was answered by whichever provider
145
- * registered first. `broker.getBrokerConfig({id:'ha_001', addonId:'provider-
146
- * homeassistant'})` therefore returned Homematic's `null` — indistinguishable
147
- * from "no such broker" — and the Home Assistant export could never open a
148
- * link. Every write-up that "proved the pin works" had measured the hub's
149
- * tRPC surface, never this path (2026-08-09).
150
- *
151
- * Returns a `{ value }` box so a legitimate `null` result is distinguishable
152
- * from "not a pinned collection call, route normally", and THROWS when the
153
- * pin names a non-provider — a pin that silently degrades to another
154
- * provider's answer is worse than no pin. Array methods are never pinned
155
- * here: their contract is the union above.
156
- *
157
- * The kernel layer has no cap registry, so the wiring side injects this and
158
- * it shares the tRPC path's provider resolution — the two must not drift.
159
- */
160
- readonly callPinnedCollection?: (capName: string, method: string, args: unknown) => Promise<{
161
- readonly value: unknown;
162
- } | null>;
163
- /**
164
- * Optional predicate — returns `true` when `capName` is a HUB-CORE `$`-service
165
- * cap (`system`, `addons`, `nodes`, `capabilities`, `stream-probe`, …): served
166
- * by the hub's `$core-caps` / `$stream-probe` Moleculer services, NOT by any
167
- * addon provider. These are the ONLY legitimate consumers of the unpinned
168
- * `brokerCallForCap` fallback.
169
- *
170
- * It generalises the per-cap patches (`isDeviceNativeCap`,
171
- * `resolveEmptyCollection`) into ONE rule: for any cap the resolver misses
172
- * (`no-provider`) that is NOT a core `$`-service, the unpinned broker fallback
173
- * is a STRUCTURALLY DEAD path — the cap's providers are broker-less forked
174
- * children that expose no Moleculer service, so discovery 30s-deadlines into
175
- * the misleading `${cap}.${cap}.${method}` error. Instead the handler retries
176
- * the resolver briefly (the provider registers late in the post-restart boot
177
- * window) and then throws a PRECISE "not yet registered" error. A NEW
178
- * multi-node addon cap is covered automatically — no allowlist entry needed —
179
- * because the discriminant is the already-maintained hub-core cap set, not a
180
- * per-cap flag.
181
- *
182
- * The kernel layer has no cap registry, so the wiring side injects it.
183
- * Omitted (or returning `false` for a core cap by mistake) ⇒ legacy behaviour
184
- * exactly: the miss falls straight to the broker fallback with no retry.
185
- */
186
- readonly isCoreServiceCap?: (capName: string) => boolean;
187
- /**
188
- * Resolve the per-device NATIVE provider for `(capName, deviceId)` — the
189
- * `native: true` route (see {@link CapCallInput.native}).
190
- *
191
- * Wired to this node's `CapabilityRegistry.getNativeProvider`, which is the
192
- * SINGLE authority on the question: it already covers in-process natives,
193
- * hub-local UDS vendor children (through the hub's `setNativeFallback`
194
- * resolver) and remote agents. Nothing here re-derives that — a rule
195
- * implemented twice is a rule that drifts, and this one previously drifted
196
- * into a wrapper answering on behalf of the native it was supposed to call.
197
- *
198
- * Returns null when no addon publishes the cap for that device. The handler
199
- * then FAILS the call rather than falling back to capName routing: falling
200
- * back is how a wrapper ends up calling itself.
201
- *
202
- * Omitted ⇒ a `native: true` call is forwarded to the hub (agents) or
203
- * rejected (no forwarder) — never silently downgraded to wrapper routing.
204
- */
205
- readonly resolveNative?: (capName: string, deviceId: number) => Record<string, (input: unknown) => Promise<unknown>> | null;
206
- /**
207
- * The hub's claim authority for a device-scoped `getStatus` (D663, ruling
208
- * S3). Wired to `CapabilityRegistry.resolveClaimedStatus` — the SAME question
209
- * the registry's own wrappers and the other two transport entries ask, through
210
- * the one shared `answerClaimedGetStatus` (`claimed-get-status.ts`).
211
- *
212
- * Why here: every capName-based route below dispatches STRAIGHT to the owning
213
- * runner (`hub-local-uds`, `remote-moleculer`), whose `getStatus` answers the
214
- * NATIVE slice. This handler is the entry for a call no co-resident sibling
215
- * owns (a remote agent's device, a hub-in-process cap, the agent's forward);
216
- * the sibling short-circuit in `LocalChildRegistry` and the hub's
217
- * `callCapabilityOnNode` are the other two, and each asks first. When the
218
- * answer is `claimed` the merged slice IS the answer (`null` for a held claim,
219
- * and for a device whose claims cannot be known) and the resolver is never
220
- * consulted; a node pin does not bypass it — the hub is the one claim
221
- * authority wherever the device runs. `unclaimed` routes exactly as before.
222
- *
223
- * Omitted (the agent has no claim authority; its handler forwards to the hub
224
- * for hub-hosted caps, which answer through THIS hook on the hub) ⇒ legacy
225
- * routing exactly. Known gap: an agent-resident child calling `getStatus` of
226
- * an agent-resident device is answered by the agent's local dispatcher with
227
- * no hub round-trip, so a claim is not honoured there (D663 open item).
228
- */
229
- readonly claimedStatus?: ClaimedStatusResolver;
230
- /** Optional logger for the broker-fallback diagnostic line. */
231
- readonly logger?: ParentUnownedCallLogger;
44
+ /**
45
+ * Returns the parent's `CapRouteResolver` at call time, or `null` when the
46
+ * parent has none (the agent) or it has not been constructed yet (the hub,
47
+ * before `onModuleInit` finishes — the resolver is built late, so this is a
48
+ * live getter, not a captured value).
49
+ */
50
+ readonly getResolver: () => CapRouteResolver | null;
51
+ /** The parent's Moleculer broker — reaches the cluster + the hub's `$`-infra services. */
52
+ readonly broker: ServiceBroker;
53
+ /**
54
+ * The hub's single capability authority. Used to find the node that OWNS a
55
+ * device-scoped native cap so the broker-fallback can be pinned to it instead
56
+ * of load-balancing the call (which can hit the wrong provider).
57
+ */
58
+ readonly nodeRegistry: HubNodeRegistry;
59
+ /**
60
+ * Hub-local UDS child dispatcher (`LocalChildRegistry`). Resolves
61
+ * device-scoped native caps OWNED by hub-local children (reolink/hikvision
62
+ * cameras run as forked hub-local UDS children — they register via the hub's
63
+ * `LocalChildRegistry`, NOT via `registerNode`, so the `nodeRegistry` lookup
64
+ * is empty for them) and dispatches the call to the owning child over UDS.
65
+ *
66
+ * A live GETTER (init-order safety): on the agent the local registry is built
67
+ * AFTER this handler, so the instance is captured lazily. Returns null when
68
+ * no local registry exists (failed to start) or when not yet constructed.
69
+ */
70
+ readonly getLocalDispatcher?: () => HubLocalChildDispatcher | null;
71
+ /**
72
+ * Optional predicate — returns `true` when `capName` is a DEVICE-NATIVE cap
73
+ * (`deviceNative: true` in its `CapabilityDefinition`): the provider IS the
74
+ * device and routes ONLY over UDS / the per-node native path, never as a plain
75
+ * Moleculer service. The kernel layer has no cap registry, so the wiring side
76
+ * (which does) injects this.
77
+ *
78
+ * It gates the registration-race recovery in the broker-fallback branch: when
79
+ * a device-scoped call's hub-local binding is not yet in the LocalChildRegistry
80
+ * (`resolveChildId === null`) and no remote owner is known, the handler applies
81
+ * a SHORT bounded retry, then — if still unresolved AND the cap is device-native
82
+ * — throws a precise "binding not yet registered" error instead of attempting
83
+ * the unpinned `brokerCallForCap`, which can NEVER reach a device-native cap and
84
+ * would surface the misleading doubled `${cap}.${cap}.${method}` Moleculer error.
85
+ *
86
+ * Omitted (or returning `false`) ⇒ legacy behaviour is preserved exactly: no
87
+ * retry, no precise error, straight to the existing broker fallback. This keeps
88
+ * deviceId-carrying SYSTEM-cap calls (e.g. `system.info({deviceId})`) fast.
89
+ */
90
+ readonly isDeviceNativeCap?: (capName: string) => boolean;
91
+ /**
92
+ * Optional predicate — returns `true` when `capName` declares
93
+ * `nodeIdMode: 'data'` in its `CapabilityDefinition` (`addon-settings`,
94
+ * `addons`, `nodes`, `pipeline-orchestrator`): an inline `nodeId` in the
95
+ * call args is DATA for the (hub-singleton) provider, which dispatches
96
+ * internally — NOT a routing hint. For such caps the handler must NOT lift
97
+ * `args.nodeId` into a routing pin: pinning routes the call to a node with
98
+ * no provider for the cap (e.g. a forked addon on an agent calling
99
+ * `addon-settings.getGlobalSettings({addonId, nodeId})` gets pinned to
100
+ * `nodeId` → dead broker fallback → ServiceNotFoundError). Suppressing the
101
+ * pin forwards the call unpinned → singleton resolution on the hub — exactly
102
+ * how `settings-store` (no `nodeId` arg) already behaves. `args` pass
103
+ * through UNTOUCHED: the provider still reads `nodeId` as data.
104
+ *
105
+ * The kernel layer has no cap registry, so the wiring side (which does)
106
+ * injects this. Omitted (or returning `false`) ⇒ legacy behaviour exactly:
107
+ * an inline `args.nodeId` keeps pinning (benchmark, platform-probe,
108
+ * pipeline-runner node-pinned execution is unaffected).
109
+ */
110
+ readonly isDataNodeIdCap?: (capName: string) => boolean;
111
+ /**
112
+ * Optional forward-to-hub dispatcher (the AGENT path). When present, a cap
113
+ * that no agent-LOCAL child owns is forwarded to the hub's `$hub-cap-fwd`
114
+ * service instead of attempted via raw Moleculer service discovery
115
+ * (`brokerCallForCap`). This is what makes an agent's forked addon reach a
116
+ * HUB-hosted cap (`stream-broker`, `settings-store`, …): hub-local addon
117
+ * runners register NO Moleculer service, so raw discovery for `${cap}.*`
118
+ * 30s-deadlines. The hub side answers `$hub-cap-fwd.forward` by running the
119
+ * call through ITS OWN `onUnownedCall` (resolver + broker-fallback), so the
120
+ * agent inherits the hub's full routing. The hub itself passes this undefined
121
+ * (it IS the hub) and keeps the `brokerCallForCap` path for its `$`-core
122
+ * services. See `hub-cap-forward.ts`.
123
+ */
124
+ readonly forwardToHub?: (input: CapCallInput) => Promise<unknown>;
125
+ /**
126
+ * Optional empty-collection fast-path. Returns `[]` (an empty aggregate) when
127
+ * `capName` is a `mode:'collection'` cap whose `method` is array-output AND
128
+ * ZERO providers are registered cluster-wide; `null`/`undefined` otherwise.
129
+ *
130
+ * Why: a collection cap with no providers IS the empty collection — but with
131
+ * nothing registered, the resolver returns `no-provider` and the call falls
132
+ * to the broker fallback, which polls Moleculer service discovery for a
133
+ * `${cap}.${method}` service that will NEVER appear until the discovery
134
+ * deadline (~30s) elapses. That 30s stall hit EVERY WebRTC cold start via the
135
+ * provider-less `turn-provider` (`getTurnServers`). Returning `[]` up front
136
+ * treats a provider-less collection as the empty collection it is — instant,
137
+ * no discovery. A collection WITH ≥1 provider returns `null` here and routes
138
+ * normally (the aggregate fans out across its providers as before). The
139
+ * kernel layer has no cap registry, so the wiring side (which has both the
140
+ * `CapabilityDefinition`s and the registry) injects this.
141
+ */
142
+ readonly resolveEmptyCollection?: (capName: string, method: string) => readonly unknown[] | null;
143
+ /**
144
+ * Optional collection FAN-OUT. Returns the union of `method` across every
145
+ * registered provider of a `mode:'collection'` cap, or `null` when the
146
+ * (cap, method) pair is not an aggregated collection array-method.
147
+ *
148
+ * Why: routing resolves ONE provider (`resolveChildId` picks the
149
+ * first-registered child, or the singleton preference — meaningless for a
150
+ * collection). The hub's tRPC cap-router instead fans array methods across
151
+ * every provider (`concatArrayMethod`). A forked addon calling the same cap
152
+ * through `ctx.api` therefore saw a DIFFERENT, smaller answer than the hub's
153
+ * own router — and for `notification-output`, whose three providers include
154
+ * two that hold no targets, it saw `[]`. The Notification Center read that
155
+ * empty catalog as "the target was deleted" and permanently dead-lettered
156
+ * every notification it ever produced (2026-07-30).
157
+ *
158
+ * Skipped when the call carries an explicit `nodeId` pin — a pin must route
159
+ * to its node, never be answered by a cluster-wide union. The kernel layer
160
+ * has no cap registry, so the wiring side injects this (same shape as
161
+ * {@link resolveEmptyCollection}, and it shares that path's aggregation code
162
+ * so the two answers cannot drift).
163
+ */
164
+ readonly callCollectionAggregate?: (capName: string, method: string, args: unknown) => Promise<readonly unknown[] | null>;
165
+ /**
166
+ * Optional `{ addonId }` PIN for a collection cap's SCALAR method — the twin
167
+ * of {@link callCollectionAggregate}, for the same reason.
168
+ *
169
+ * On a system-scoped collection cap `addonId` is not provider data: the
170
+ * codegen injects it as the `{nodeId?, addonId?}` selector on every method,
171
+ * and the hub's tRPC cap-router routes by it. This handler lifted only
172
+ * `nodeId` and `deviceId` out of a child's args, so a forked addon's pin was
173
+ * DISCARDED IN SILENCE and the call was answered by whichever provider
174
+ * registered first. `broker.getBrokerConfig({id:'ha_001', addonId:'provider-
175
+ * homeassistant'})` therefore returned Homematic's `null` — indistinguishable
176
+ * from "no such broker" — and the Home Assistant export could never open a
177
+ * link. Every write-up that "proved the pin works" had measured the hub's
178
+ * tRPC surface, never this path (2026-08-09).
179
+ *
180
+ * Returns a `{ value }` box so a legitimate `null` result is distinguishable
181
+ * from "not a pinned collection call, route normally", and THROWS when the
182
+ * pin names a non-provider — a pin that silently degrades to another
183
+ * provider's answer is worse than no pin. Array methods are never pinned
184
+ * here: their contract is the union above.
185
+ *
186
+ * The kernel layer has no cap registry, so the wiring side injects this and
187
+ * it shares the tRPC path's provider resolution — the two must not drift.
188
+ */
189
+ readonly callPinnedCollection?: (capName: string, method: string, args: unknown) => Promise<{
190
+ readonly value: unknown;
191
+ } | null>;
192
+ /**
193
+ * Optional predicate — returns `true` when `capName` is a HUB-CORE `$`-service
194
+ * cap (`system`, `addons`, `nodes`, `capabilities`, `stream-probe`, …): served
195
+ * by the hub's `$core-caps` / `$stream-probe` Moleculer services, NOT by any
196
+ * addon provider. These are the ONLY legitimate consumers of the unpinned
197
+ * `brokerCallForCap` fallback.
198
+ *
199
+ * It generalises the per-cap patches (`isDeviceNativeCap`,
200
+ * `resolveEmptyCollection`) into ONE rule: for any cap the resolver misses
201
+ * (`no-provider`) that is NOT a core `$`-service, the unpinned broker fallback
202
+ * is a STRUCTURALLY DEAD path — the cap's providers are broker-less forked
203
+ * children that expose no Moleculer service, so discovery 30s-deadlines into
204
+ * the misleading `${cap}.${cap}.${method}` error. Instead the handler retries
205
+ * the resolver briefly (the provider registers late in the post-restart boot
206
+ * window) and then throws a PRECISE "not yet registered" error. A NEW
207
+ * multi-node addon cap is covered automatically — no allowlist entry needed —
208
+ * because the discriminant is the already-maintained hub-core cap set, not a
209
+ * per-cap flag.
210
+ *
211
+ * The kernel layer has no cap registry, so the wiring side injects it.
212
+ * Omitted (or returning `false` for a core cap by mistake) ⇒ legacy behaviour
213
+ * exactly: the miss falls straight to the broker fallback with no retry.
214
+ */
215
+ readonly isCoreServiceCap?: (capName: string) => boolean;
216
+ /**
217
+ * Resolve the per-device NATIVE provider for `(capName, deviceId)` — the
218
+ * `native: true` route (see {@link CapCallInput.native}).
219
+ *
220
+ * Wired to this node's `CapabilityRegistry.getNativeProvider`, which is the
221
+ * SINGLE authority on the question: it already covers in-process natives,
222
+ * hub-local UDS vendor children (through the hub's `setNativeFallback`
223
+ * resolver) and remote agents. Nothing here re-derives that — a rule
224
+ * implemented twice is a rule that drifts, and this one previously drifted
225
+ * into a wrapper answering on behalf of the native it was supposed to call.
226
+ *
227
+ * Returns null when no addon publishes the cap for that device. The handler
228
+ * then FAILS the call rather than falling back to capName routing: falling
229
+ * back is how a wrapper ends up calling itself.
230
+ *
231
+ * Omitted ⇒ a `native: true` call is forwarded to the hub (agents) or
232
+ * rejected (no forwarder) — never silently downgraded to wrapper routing.
233
+ */
234
+ readonly resolveNative?: (capName: string, deviceId: number) => Record<string, (input: unknown) => Promise<unknown>> | null;
235
+ /**
236
+ * The hub's claim authority for a device-scoped `getStatus` (D663, ruling
237
+ * S3). Wired to `CapabilityRegistry.resolveClaimedStatus` — the SAME question
238
+ * the registry's own wrappers and the other two transport entries ask, through
239
+ * the one shared `answerClaimedGetStatus` (`claimed-get-status.ts`).
240
+ *
241
+ * Why here: every capName-based route below dispatches STRAIGHT to the owning
242
+ * runner (`hub-local-uds`, `remote-moleculer`), whose `getStatus` answers the
243
+ * NATIVE slice. This handler is the entry for a call no co-resident sibling
244
+ * owns (a remote agent's device, a hub-in-process cap, the agent's forward);
245
+ * the sibling short-circuit in `LocalChildRegistry` and the hub's
246
+ * `callCapabilityOnNode` are the other two, and each asks first. When the
247
+ * answer is `claimed` the merged slice IS the answer (`null` for a held claim,
248
+ * and for a device whose claims cannot be known) and the resolver is never
249
+ * consulted; a node pin does not bypass it — the hub is the one claim
250
+ * authority wherever the device runs. `unclaimed` routes exactly as before.
251
+ *
252
+ * Omitted (the agent has no claim authority; its handler forwards to the hub
253
+ * for hub-hosted caps, which answer through THIS hook on the hub) ⇒ legacy
254
+ * routing exactly. Known gap: an agent-resident child calling `getStatus` of
255
+ * an agent-resident device is answered by the agent's local dispatcher with
256
+ * no hub round-trip, so a claim is not honoured there (D663 open item).
257
+ */
258
+ readonly claimedStatus?: ClaimedStatusResolver;
259
+ /** Optional logger for the broker-fallback diagnostic line. */
260
+ readonly logger?: ParentUnownedCallLogger;
232
261
  }
233
262
  /**
234
- * Build the `onUnownedCall` handler the hub / agent passes into
235
- * `new LocalChildRegistry({ ..., onUnownedCall })`.
236
- *
237
- * The returned handler:
238
- * - tries the resolver first (when present),
239
- * - falls back to the broker for `no-provider` resolver misses (the
240
- * `$`-infra / core services), and
241
- * - surfaces a clear error when the call is genuinely unroutable (so the
242
- * child's call rejects rather than hanging).
243
- */
263
+ * Build the `onUnownedCall` handler the hub / agent passes into
264
+ * `new LocalChildRegistry({ ..., onUnownedCall })`.
265
+ *
266
+ * The returned handler:
267
+ * - tries the resolver first (when present),
268
+ * - falls back to the broker for `no-provider` resolver misses (the
269
+ * `$`-infra / core services), and
270
+ * - surfaces a clear error when the call is genuinely unroutable (so the
271
+ * child's call rejects rather than hanging).
272
+ */
244
273
  export declare function createParentUnownedCallHandler(deps: ParentUnownedCallDeps): (input: CapCallInput) => Promise<unknown>;
@@ -1,17 +1,17 @@
1
1
  /**
2
- * An error the FAR END of a channel answered with.
3
- *
4
- * The request was delivered, a handler ran, and it said no — typically a
5
- * provider refusing by throwing ("No home preset configured for this
6
- * camera"). That is an application answer, and it must reach the caller as
7
- * the provider's own sentence. A transport failure (channel closed, request
8
- * timed out, no child) is a plain `Error` and nobody answered it.
9
- *
10
- * `CapRouteResolver.dispatch` keys on this class: it used to wrap EVERY
11
- * non-routing throw as `CapRouteError{reason:'transport-failed'}`, so an
12
- * operator pressing PTZ Home was told the node was "not routable" when the
13
- * node had answered (2026-09-25, device 3836).
14
- */
2
+ * An error the FAR END of a channel answered with.
3
+ *
4
+ * The request was delivered, a handler ran, and it said no — typically a
5
+ * provider refusing by throwing ("No home preset configured for this
6
+ * camera"). That is an application answer, and it must reach the caller as
7
+ * the provider's own sentence. A transport failure (channel closed, request
8
+ * timed out, no child) is a plain `Error` and nobody answered it.
9
+ *
10
+ * `CapRouteResolver.dispatch` keys on this class: it used to wrap EVERY
11
+ * non-routing throw as `CapRouteError{reason:'transport-failed'}`, so an
12
+ * operator pressing PTZ Home was told the node was "not routable" when the
13
+ * node had answered (2026-09-25, device 3836).
14
+ */
15
15
  export declare class PeerAnsweredError extends Error {
16
- constructor(message: string);
16
+ constructor(message: string);
17
17
  }