@zlink-systems/framework 0.26.0 → 0.28.0

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 (561) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Actors/ZLinkActorClient.d.ts +1 -1
  3. package/dist/contracts/Channels/Calls.d.ts +1 -1
  4. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  5. package/dist/contracts/Common/CoreTypes.js +7 -0
  6. package/dist/contracts/Common/index.d.ts +1 -1
  7. package/dist/contracts/Common/index.js +0 -1
  8. package/dist/contracts/Configuration/Builders.d.ts +0 -1
  9. package/dist/contracts/Configuration/Configs.d.ts +0 -1
  10. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  11. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  12. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  13. package/dist/contracts/Configuration/Registration.js +58 -36
  14. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  15. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  16. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  17. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  18. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -5
  19. package/dist/contracts/Configuration/RegistrationValidators.js +15 -14
  20. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  21. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  22. package/dist/contracts/Handlers/JsonContract.js +10 -4
  23. package/dist/contracts/Locations/Authority.d.ts +1 -1
  24. package/dist/contracts/Locations/Authority.js +3 -2
  25. package/dist/contracts/Locations/Options.js +1 -1
  26. package/dist/contracts/Locations/Stores.d.ts +12 -0
  27. package/dist/contracts/Locations/Stores.js +9 -0
  28. package/dist/contracts/Spots/Contracts.d.ts +2 -2
  29. package/dist/contracts/Streams/BoundSessionContracts.d.ts +1 -1
  30. package/dist/contracts/Streams/IZLinkSession.d.ts +2 -3
  31. package/dist/contracts/Streams/IZLinkSessionActor.d.ts +2 -2
  32. package/dist/internal.d.ts +4 -0
  33. package/dist/internal.js +15 -1
  34. package/dist/nest-integration.d.ts +4 -2
  35. package/dist/nest-integration.js +14 -4
  36. package/dist/runtime/abort.d.ts +1 -0
  37. package/dist/runtime/abort.js +8 -5
  38. package/dist/runtime/activation-admission.d.ts +1 -2
  39. package/dist/runtime/activation-admission.js +2 -6
  40. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  41. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  42. package/dist/runtime/actors/actor-client.d.ts +2 -2
  43. package/dist/runtime/actors/actor-client.js +49 -153
  44. package/dist/runtime/actors/actor-context.d.ts +3 -5
  45. package/dist/runtime/actors/actor-context.js +13 -11
  46. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  47. package/dist/runtime/actors/actor-handoff.js +8 -8
  48. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  49. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  50. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  51. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  52. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  53. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  54. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  55. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  56. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  57. package/dist/runtime/actors/actor-request-deadline.d.ts +1 -0
  58. package/dist/runtime/actors/actor-request-deadline.js +6 -0
  59. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  60. package/dist/runtime/actors/actor-routed-join-transport.d.ts +2 -3
  61. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  62. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  63. package/dist/runtime/actors/bound-session-wire.js +2 -7
  64. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  65. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  66. package/dist/runtime/actors/index.d.ts +9 -7
  67. package/dist/runtime/actors/index.js +87 -69
  68. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  69. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  70. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  71. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  72. package/dist/runtime/admission.d.ts +2 -0
  73. package/dist/runtime/admission.js +7 -1
  74. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  75. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  76. package/dist/runtime/backend/contracts/index.d.ts +7 -27
  77. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  78. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  79. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  80. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +3 -1
  81. package/dist/runtime/backend/node/node-backend-adapter-support.js +51 -10
  82. package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +1 -1
  83. package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +1 -2
  84. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  85. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  86. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  87. package/dist/runtime/backend/node/node-raw-binding-port.js +41 -34
  88. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  89. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  90. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  91. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  92. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  93. package/dist/runtime/backend/runtime-values.js +2 -0
  94. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  95. package/dist/runtime/channels/channel-clients.js +73 -59
  96. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  97. package/dist/runtime/channels/channel-envelope.d.ts +1 -1
  98. package/dist/runtime/channels/channel-envelope.js +51 -39
  99. package/dist/runtime/channels/channel-outbound-operations.d.ts +5 -2
  100. package/dist/runtime/channels/channel-outbound-operations.js +25 -42
  101. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  102. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  103. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  104. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  105. package/dist/runtime/channels/channel-runtime-manager.d.ts +4 -4
  106. package/dist/runtime/channels/channel-runtime-manager.js +13 -10
  107. package/dist/runtime/channels/channel-socket-options.js +3 -12
  108. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  109. package/dist/runtime/channels/channel-socket-registry.js +240 -177
  110. package/dist/runtime/channels/channel-transports.d.ts +21 -31
  111. package/dist/runtime/channels/channel-transports.js +80 -62
  112. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  113. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  114. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  115. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  116. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  117. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  118. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  119. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  120. package/dist/runtime/channels/local-spot-route-transport.d.ts +1 -1
  121. package/dist/runtime/channels/local-spot-route-transport.js +1 -3
  122. package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +1 -1
  123. package/dist/runtime/channels/router-socket-spot-route-transport.js +2 -2
  124. package/dist/runtime/channels/source-spot-router.d.ts +1 -1
  125. package/dist/runtime/channels/source-spot-router.js +2 -4
  126. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  127. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  128. package/dist/runtime/channels/spot-node-route-transport.d.ts +1 -1
  129. package/dist/runtime/channels/spot-node-route-transport.js +5 -5
  130. package/dist/runtime/channels/spot-route-bridge-transport.d.ts +1 -1
  131. package/dist/runtime/channels/spot-route-bridge-transport.js +2 -2
  132. package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +2 -4
  133. package/dist/runtime/channels/spot-route-dispatch-strategy.js +11 -12
  134. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  135. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  136. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  137. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  138. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  139. package/dist/runtime/diagnostics/flow-context.js +16 -2
  140. package/dist/runtime/diagnostics/index.d.ts +4 -2
  141. package/dist/runtime/diagnostics/index.js +14 -4
  142. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  143. package/dist/runtime/diagnostics/message-flow.js +10 -19
  144. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  145. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  146. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  147. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  148. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  149. package/dist/runtime/disposal.d.ts +5 -0
  150. package/dist/runtime/disposal.js +22 -0
  151. package/dist/runtime/execution/index.d.ts +12 -9
  152. package/dist/runtime/execution/index.js +58 -14
  153. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  154. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  155. package/dist/runtime/execution/state-lane.d.ts +8 -1
  156. package/dist/runtime/execution/state-lane.js +118 -3
  157. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  158. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  159. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  160. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  161. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  162. package/dist/runtime/foundation/operation-identity.js +9 -5
  163. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  164. package/dist/runtime/foundation/operation-registry.js +34 -44
  165. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  166. package/dist/runtime/foundation/raw-service-mesh-runtime.js +79 -94
  167. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  168. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  169. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  170. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  171. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  172. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  173. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  174. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  175. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  176. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  177. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  178. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  179. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  180. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  181. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  182. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  183. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  184. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  185. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  186. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  187. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  188. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  189. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  190. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  191. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  192. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  193. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  194. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  195. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  196. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  197. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  198. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  199. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  200. package/dist/runtime/framework-errors-internal.js +343 -122
  201. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  202. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  203. package/dist/runtime/host/actor-packet-relay.d.ts +11 -8
  204. package/dist/runtime/host/actor-packet-relay.js +54 -99
  205. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  206. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  207. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  208. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  209. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  210. package/dist/runtime/host/application-job-queue.js +16 -33
  211. package/dist/runtime/host/bound-session-relay.js +1 -1
  212. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  213. package/dist/runtime/host/index.d.ts +14 -13
  214. package/dist/runtime/host/index.js +190 -171
  215. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  216. package/dist/runtime/host/instance-activation-authority.js +17 -45
  217. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  218. package/dist/runtime/host/location-runtime-owner.js +2 -2
  219. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  220. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  221. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  222. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  223. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  224. package/dist/runtime/host/remote-bound-session-relay.js +15 -28
  225. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  226. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  227. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  228. package/dist/runtime/host/runtime-shutdown.js +18 -21
  229. package/dist/runtime/host/service-relocation-control.js +6 -1
  230. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  231. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  232. package/dist/runtime/host/spot-address-transport.d.ts +3 -12
  233. package/dist/runtime/host/spot-address-transport.js +78 -220
  234. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  235. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  236. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  237. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  238. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  239. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  240. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  241. package/dist/runtime/locations/authority-key-codec.js +4 -3
  242. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  243. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  244. package/dist/runtime/locations/creation-operation-id.js +6 -4
  245. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  246. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  247. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  248. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  249. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  250. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  251. package/dist/runtime/locations/key-codec.js +3 -2
  252. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  253. package/dist/runtime/locations/lease-tracker.js +7 -11
  254. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  255. package/dist/runtime/locations/lifecycle.js +2 -31
  256. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  257. package/dist/runtime/locations/location-store-failure.js +7 -0
  258. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  259. package/dist/runtime/locations/location-store-pages.js +13 -0
  260. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  261. package/dist/runtime/locations/location-store-repository.js +309 -336
  262. package/dist/runtime/locations/relocation-blob.js +18 -5
  263. package/dist/runtime/locations/resolvers.d.ts +5 -5
  264. package/dist/runtime/locations/resolvers.js +37 -28
  265. package/dist/runtime/locations/runtime.d.ts +5 -4
  266. package/dist/runtime/locations/runtime.js +123 -92
  267. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  268. package/dist/runtime/locations/spot-location-claims.js +42 -1
  269. package/dist/runtime/messaging/payload-codec.js +26 -20
  270. package/dist/runtime/messaging/request-deadline.d.ts +3 -0
  271. package/dist/runtime/messaging/request-deadline.js +39 -0
  272. package/dist/runtime/messaging/submission-result.d.ts +4 -0
  273. package/dist/runtime/messaging/submission-result.js +56 -1
  274. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  275. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  276. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  277. package/dist/runtime/spots/index.d.ts +14 -20
  278. package/dist/runtime/spots/index.js +302 -176
  279. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  280. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  281. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  282. package/dist/runtime/spots/spot-activation-state.js +2 -2
  283. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  284. package/dist/runtime/spots/spot-activation.js +49 -32
  285. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  286. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  287. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  288. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  289. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  290. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  291. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  292. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  293. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  294. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  295. package/dist/runtime/spots/spot-context.d.ts +2 -2
  296. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  297. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  298. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  299. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  300. package/dist/runtime/spots/spot-manager-public.js +5 -4
  301. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  302. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  303. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  304. package/dist/runtime/spots/spot-outbound.d.ts +7 -8
  305. package/dist/runtime/spots/spot-outbound.js +21 -23
  306. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  307. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  308. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  309. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  310. package/dist/runtime/spots/spot-route-replies.js +3 -1
  311. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  312. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  313. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  314. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  315. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  316. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  317. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  318. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  319. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  320. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  321. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  322. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  323. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  324. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  325. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +8 -4
  326. package/dist/runtime/streams/bound-actor-relay-sender.js +65 -41
  327. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  328. package/dist/runtime/streams/bound-session-service.js +12 -2
  329. package/dist/runtime/streams/index.d.ts +16 -17
  330. package/dist/runtime/streams/index.js +22 -23
  331. package/dist/runtime/streams/managed-stream.d.ts +5 -2
  332. package/dist/runtime/streams/managed-stream.js +20 -13
  333. package/dist/runtime/streams/native-fallback-bound-session.js +14 -19
  334. package/dist/runtime/streams/protocol.d.ts +6 -33
  335. package/dist/runtime/streams/protocol.js +38 -110
  336. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  337. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  338. package/dist/runtime/streams/session-calls.d.ts +6 -8
  339. package/dist/runtime/streams/session-calls.js +6 -22
  340. package/dist/runtime/streams/session-context.d.ts +10 -10
  341. package/dist/runtime/streams/session-context.js +25 -10
  342. package/dist/runtime/streams/session-requests.js +2 -1
  343. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  344. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  345. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  346. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  347. package/dist/runtime/workers/index.d.ts +2 -2
  348. package/dist/runtime/workers/index.js +5 -4
  349. package/package.json +3 -3
  350. package/src/contracts/Actors/ZLinkActorClient.ts +1 -1
  351. package/src/contracts/Channels/Calls.ts +1 -1
  352. package/src/contracts/Common/CoreTypes.ts +7 -0
  353. package/src/contracts/Common/index.ts +1 -1
  354. package/src/contracts/Configuration/Builders.ts +0 -1
  355. package/src/contracts/Configuration/Configs.ts +0 -1
  356. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  357. package/src/contracts/Configuration/Registration.ts +92 -48
  358. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  359. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -71
  360. package/src/contracts/Configuration/RegistrationTypes.ts +1 -5
  361. package/src/contracts/Configuration/RegistrationValidators.ts +19 -17
  362. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  363. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  364. package/src/contracts/Handlers/JsonContract.ts +14 -4
  365. package/src/contracts/Locations/Authority.ts +7 -3
  366. package/src/contracts/Locations/Options.ts +1 -1
  367. package/src/contracts/Locations/Stores.ts +14 -0
  368. package/src/contracts/Spots/Contracts.ts +2 -2
  369. package/src/contracts/Streams/BoundSessionContracts.ts +1 -1
  370. package/src/contracts/Streams/IZLinkSession.ts +2 -3
  371. package/src/contracts/Streams/IZLinkSessionActor.ts +2 -6
  372. package/src/internal.ts +14 -0
  373. package/src/nest-integration.ts +28 -10
  374. package/src/runtime/abort.ts +6 -5
  375. package/src/runtime/activation-admission.ts +2 -8
  376. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  377. package/src/runtime/actors/actor-client.ts +85 -218
  378. package/src/runtime/actors/actor-context.ts +39 -33
  379. package/src/runtime/actors/actor-handoff.ts +24 -22
  380. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  381. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  382. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  383. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  384. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  385. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  386. package/src/runtime/actors/actor-request-deadline.ts +4 -0
  387. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  388. package/src/runtime/actors/actor-routed-join-transport.ts +3 -5
  389. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  390. package/src/runtime/actors/bound-session-wire.ts +2 -8
  391. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  392. package/src/runtime/actors/index.ts +100 -79
  393. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  394. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  395. package/src/runtime/admission.ts +8 -1
  396. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  397. package/src/runtime/backend/contracts/index.ts +14 -37
  398. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  399. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  400. package/src/runtime/backend/node/node-backend-adapter-support.ts +67 -10
  401. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +0 -2
  402. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  403. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  404. package/src/runtime/backend/node/node-raw-binding-port.ts +44 -49
  405. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  406. package/src/runtime/backend/node/node-socket-backend-adapter.ts +4 -3
  407. package/src/runtime/backend/raw-binding-port.ts +1 -1
  408. package/src/runtime/backend/runtime-values.ts +4 -1
  409. package/src/runtime/channels/channel-clients.ts +139 -102
  410. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  411. package/src/runtime/channels/channel-envelope.ts +74 -57
  412. package/src/runtime/channels/channel-outbound-operations.ts +40 -55
  413. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  414. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  415. package/src/runtime/channels/channel-runtime-manager.ts +12 -30
  416. package/src/runtime/channels/channel-socket-options.ts +8 -15
  417. package/src/runtime/channels/channel-socket-registry.ts +291 -196
  418. package/src/runtime/channels/channel-transports.ts +168 -145
  419. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  420. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  421. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  422. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  423. package/src/runtime/channels/local-spot-route-transport.ts +1 -5
  424. package/src/runtime/channels/router-socket-spot-route-transport.ts +2 -6
  425. package/src/runtime/channels/source-spot-router.ts +2 -9
  426. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  427. package/src/runtime/channels/spot-node-route-transport.ts +7 -9
  428. package/src/runtime/channels/spot-route-bridge-transport.ts +5 -12
  429. package/src/runtime/channels/spot-route-dispatch-strategy.ts +11 -30
  430. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  431. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  432. package/src/runtime/diagnostics/flow-context.ts +16 -2
  433. package/src/runtime/diagnostics/index.ts +27 -17
  434. package/src/runtime/diagnostics/message-flow.ts +15 -25
  435. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  436. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  437. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  438. package/src/runtime/disposal.ts +19 -0
  439. package/src/runtime/execution/index.ts +60 -20
  440. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  441. package/src/runtime/execution/state-lane.ts +142 -4
  442. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  443. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  444. package/src/runtime/foundation/operation-identity.ts +11 -5
  445. package/src/runtime/foundation/operation-registry.ts +33 -50
  446. package/src/runtime/foundation/raw-service-mesh-runtime.ts +127 -125
  447. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  448. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  449. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  450. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  451. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  452. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  453. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  454. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  455. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  456. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  457. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  458. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  459. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  460. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  461. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  462. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  463. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  464. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  465. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  466. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  467. package/src/runtime/framework-errors-internal.ts +380 -134
  468. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  469. package/src/runtime/host/actor-packet-relay.ts +63 -160
  470. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  471. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  472. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  473. package/src/runtime/host/application-job-queue.ts +28 -34
  474. package/src/runtime/host/bound-session-relay.ts +1 -2
  475. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  476. package/src/runtime/host/index.ts +327 -320
  477. package/src/runtime/host/instance-activation-authority.ts +89 -109
  478. package/src/runtime/host/location-runtime-owner.ts +4 -2
  479. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  480. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  481. package/src/runtime/host/remote-bound-session-relay.ts +16 -57
  482. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  483. package/src/runtime/host/runtime-shutdown.ts +17 -21
  484. package/src/runtime/host/service-relocation-control.ts +14 -1
  485. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  486. package/src/runtime/host/spot-address-transport.ts +175 -356
  487. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  488. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  489. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  490. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  491. package/src/runtime/locations/authority-key-codec.ts +7 -3
  492. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  493. package/src/runtime/locations/creation-operation-id.ts +6 -3
  494. package/src/runtime/locations/domain-store-contract.ts +12 -3
  495. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  496. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  497. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  498. package/src/runtime/locations/key-codec.ts +3 -2
  499. package/src/runtime/locations/lease-tracker.ts +8 -14
  500. package/src/runtime/locations/lifecycle.ts +13 -43
  501. package/src/runtime/locations/location-store-failure.ts +4 -0
  502. package/src/runtime/locations/location-store-pages.ts +18 -0
  503. package/src/runtime/locations/location-store-repository.ts +457 -482
  504. package/src/runtime/locations/relocation-blob.ts +17 -6
  505. package/src/runtime/locations/resolvers.ts +75 -49
  506. package/src/runtime/locations/runtime.ts +220 -110
  507. package/src/runtime/locations/spot-location-claims.ts +58 -1
  508. package/src/runtime/messaging/payload-codec.ts +35 -24
  509. package/src/runtime/messaging/request-deadline.ts +58 -0
  510. package/src/runtime/messaging/submission-result.ts +72 -2
  511. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  512. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  513. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  514. package/src/runtime/spots/index.ts +433 -229
  515. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  516. package/src/runtime/spots/spot-activation-state.ts +2 -2
  517. package/src/runtime/spots/spot-activation.ts +67 -37
  518. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  519. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  520. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  521. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  522. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  523. package/src/runtime/spots/spot-context.ts +3 -3
  524. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  525. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  526. package/src/runtime/spots/spot-manager-public.ts +21 -17
  527. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  528. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  529. package/src/runtime/spots/spot-outbound.ts +59 -47
  530. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  531. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  532. package/src/runtime/spots/spot-route-replies.ts +6 -4
  533. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  534. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  535. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  536. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  537. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  538. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  539. package/src/runtime/spots/spot-timer.ts +3 -2
  540. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  541. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  542. package/src/runtime/streams/bound-actor-relay-sender.ts +98 -66
  543. package/src/runtime/streams/bound-session-service.ts +22 -2
  544. package/src/runtime/streams/index.ts +78 -68
  545. package/src/runtime/streams/managed-stream.ts +32 -23
  546. package/src/runtime/streams/native-fallback-bound-session.ts +14 -28
  547. package/src/runtime/streams/protocol.ts +34 -88
  548. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  549. package/src/runtime/streams/session-calls.ts +11 -36
  550. package/src/runtime/streams/session-context.ts +60 -25
  551. package/src/runtime/streams/session-requests.ts +2 -1
  552. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  553. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  554. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  555. package/src/runtime/workers/index.ts +13 -12
  556. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  557. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  558. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  559. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  560. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  561. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -3,11 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkUserSpotCreationCoordinator = void 0;
4
4
  exports.encodeLocationCreationContent = encodeLocationCreationContent;
5
5
  exports.decodeLocationCreationContent = decodeLocationCreationContent;
6
- const framework_errors_internal_1 = require("../framework-errors-internal");
7
6
  const node_crypto_1 = require("node:crypto");
8
7
  const contracts_1 = require("../../contracts");
9
8
  const service_authority_payload_codec_1 = require("../foundation/service-authority-payload-codec");
9
+ const framework_errors_internal_1 = require("../framework-errors-internal");
10
10
  const authority_key_codec_1 = require("../locations/authority-key-codec");
11
+ const DEFAULT_USER_SPOT_CLEANUP_TIMEOUT_MS = 1_000;
12
+ const DEFAULT_USER_SPOT_POLL_INTERVAL_MS = 10;
11
13
  /**
12
14
  * Makes generic Location Store reservation the only visibility barrier for a
13
15
  * User Spot. Only the reservation winner invokes application lifecycle code.
@@ -20,9 +22,10 @@ class ZLinkUserSpotCreationCoordinator {
20
22
  this.options = options;
21
23
  }
22
24
  async getOrCreate(request, materialize, discard) {
23
- const deadline = createDeadline(request.timeoutMs, request.signal);
24
- const deadlineMs = performance.now() + request.timeoutMs;
25
25
  const deadlineUnixMs = Date.now() + request.timeoutMs;
26
+ const remainingMs = Math.max(0, deadlineUnixMs - Date.now());
27
+ const deadline = createDeadline(remainingMs, request.signal);
28
+ const deadlineMs = performance.now() + remainingMs;
26
29
  const signal = deadline.signal;
27
30
  signal.throwIfAborted();
28
31
  const sha256 = (0, node_crypto_1.createHash)('sha256').update(request.requestPayload).digest();
@@ -85,7 +88,7 @@ class ZLinkUserSpotCreationCoordinator {
85
88
  count: 1
86
89
  }
87
90
  }
88
- }, signal);
91
+ }, signal, BigInt(deadlineUnixMs));
89
92
  }
90
93
  catch (error) {
91
94
  deadline.close();
@@ -323,7 +326,7 @@ class ZLinkUserSpotCreationCoordinator {
323
326
  leaseGeneration: current.ownerLeaseGeneration
324
327
  }
325
328
  }
326
- }, signal);
329
+ }, signal, record.deadlineUnixMs);
327
330
  await discard?.(signal);
328
331
  return {
329
332
  result: { spot, state: local.state, reply: local.reply },
@@ -355,7 +358,7 @@ class ZLinkUserSpotCreationCoordinator {
355
358
  ownerNodeRid: String(current.allocation.descriptor.rid),
356
359
  ownerNodeGeneration: current.allocation.descriptorLifecycleGeneration
357
360
  })
358
- }, signal);
361
+ }, signal, record.deadlineUnixMs);
359
362
  }
360
363
  catch (error) {
361
364
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed, 'User Spot Ready commit Store operation failed.', false, error);
@@ -376,7 +379,7 @@ class ZLinkUserSpotCreationCoordinator {
376
379
  }
377
380
  catch (error) {
378
381
  local?.publication?.abort();
379
- const cleanupDeadline = createDeadline(this.options.cleanupTimeoutMs ?? 1_000);
382
+ const cleanupDeadline = createDeadline(this.options.cleanupTimeoutMs ?? DEFAULT_USER_SPOT_CLEANUP_TIMEOUT_MS);
380
383
  const cleanupSignal = cleanupDeadline.signal;
381
384
  const cleanup = await Promise.allSettled([
382
385
  waitForAbort(this.options.store.abort({
@@ -474,7 +477,7 @@ class ZLinkUserSpotCreationCoordinator {
474
477
  if (current.kind === 'snapshot' && current.allocation.state === 'active') {
475
478
  return spotRef(current, request);
476
479
  }
477
- await wait(this.options.pollIntervalMs ?? 10, signal);
480
+ await wait(this.options.pollIntervalMs ?? DEFAULT_USER_SPOT_POLL_INTERVAL_MS, signal);
478
481
  }
479
482
  }
480
483
  async remoteCreate(request, snapshot, targetNodeRid, targetNodeGeneration, deadlineUnixMs, deadlineMs) {
@@ -2,8 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkAggregateInventoryStore = void 0;
4
4
  const node_crypto_1 = require("node:crypto");
5
+ const actor_join_recovery_codec_1 = require("../foundation/actor-join-recovery-codec");
5
6
  const in_memory_provider_location_store_1 = require("./in-memory-provider-location-store");
6
- const PREFIX = 'zlink:v11:aggregate-inventory:';
7
+ const INVENTORY_PAGE_KIND = 'aggregate-inventory-page-v1';
8
+ const INVENTORY_ROOT_KIND = 'aggregate-inventory-root-v1';
9
+ const PREFIX = `${in_memory_provider_location_store_1.PROVIDER_STORAGE_NAMESPACE_PREFIX}aggregate-inventory:`;
7
10
  const MAX_PAGE_ENTRIES = 1_024;
8
11
  const MAX_PAGE_BYTES = 1_024 * 1_024;
9
12
  const MAX_TREE_LEVELS = 32;
@@ -135,8 +138,8 @@ function buildTree(request) {
135
138
  if (request.participants.length < 1) {
136
139
  throw new RangeError('Aggregate inventory requires at least one participant.');
137
140
  }
138
- if (request.inventoryDigest.byteLength !== 32) {
139
- throw new TypeError('Aggregate inventory digest must contain 32 bytes.');
141
+ if (request.inventoryDigest.byteLength !== actor_join_recovery_codec_1.SHA256_DIGEST_BYTES) {
142
+ throw new TypeError(`Aggregate inventory digest must contain ${actor_join_recovery_codec_1.SHA256_DIGEST_BYTES} bytes.`);
140
143
  }
141
144
  const entries = request.participants.map((participant, index) => ({
142
145
  index,
@@ -162,7 +165,7 @@ function buildTree(request) {
162
165
  MAX_PAGE_BYTES) {
163
166
  level++;
164
167
  if (level >= MAX_TREE_LEVELS) {
165
- throw new RangeError('Aggregate inventory tree exceeds 32 levels.');
168
+ throw new RangeError(`Aggregate inventory tree exceeds ${MAX_TREE_LEVELS} levels.`);
166
169
  }
167
170
  references = packIndexPages(level, references, pages);
168
171
  }
@@ -180,7 +183,7 @@ function packLeafPages(entries, pages) {
180
183
  let bytes;
181
184
  do {
182
185
  page = {
183
- kind: 'aggregate-inventory-page-v1',
186
+ kind: INVENTORY_PAGE_KIND,
184
187
  level: 0,
185
188
  index: references.length,
186
189
  startIndex: offset,
@@ -211,7 +214,7 @@ function packIndexPages(level, children, pages) {
211
214
  do {
212
215
  const selected = children.slice(offset, offset + count);
213
216
  page = {
214
- kind: 'aggregate-inventory-page-v1',
217
+ kind: INVENTORY_PAGE_KIND,
215
218
  level,
216
219
  index: references.length,
217
220
  startIndex: selected[0].startIndex,
@@ -240,7 +243,7 @@ function rootCandidate(totalCount, topLevel, topPages, pages, digest, declaredDi
240
243
  pageCountsByLevel[page.level]++;
241
244
  }
242
245
  return {
243
- kind: 'aggregate-inventory-root-v1',
246
+ kind: INVENTORY_ROOT_KIND,
244
247
  totalCount,
245
248
  digest,
246
249
  declaredDigest,
@@ -325,7 +328,7 @@ function decodeRoot(bytes) {
325
328
  if (value === null ||
326
329
  typeof value !== 'object' ||
327
330
  !('kind' in value) ||
328
- value.kind !== 'aggregate-inventory-root-v1') {
331
+ value.kind !== INVENTORY_ROOT_KIND) {
329
332
  throw new Error('Invalid inventory root.');
330
333
  }
331
334
  return value;
@@ -335,7 +338,7 @@ function decodePage(bytes) {
335
338
  if (value === null ||
336
339
  typeof value !== 'object' ||
337
340
  !('kind' in value) ||
338
- value.kind !== 'aggregate-inventory-page-v1' ||
341
+ value.kind !== INVENTORY_PAGE_KIND ||
339
342
  !('entries' in value) ||
340
343
  !Array.isArray(value.entries) ||
341
344
  !('children' in value) ||
@@ -379,7 +382,7 @@ function isSha256(value) {
379
382
  }
380
383
  function sameHash(expected, actual) {
381
384
  return (isSha256(expected) &&
382
- actual.byteLength === 32 &&
385
+ actual.byteLength === actor_join_recovery_codec_1.SHA256_DIGEST_BYTES &&
383
386
  (0, node_crypto_1.timingSafeEqual)(Buffer.from(expected, 'hex'), Buffer.from(actual)));
384
387
  }
385
388
  function dataLost(fence, reason) {
@@ -2,10 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.encodeAuthorityKey = encodeAuthorityKey;
4
4
  exports.decodeAuthorityKey = decodeAuthorityKey;
5
+ const CoreTypes_1 = require("../../contracts/Common/CoreTypes");
5
6
  function encodeAuthorityKey(kind, globalId) {
6
7
  const bytes = Buffer.from(globalId);
7
- if (bytes.byteLength < 1 || bytes.byteLength > 255) {
8
- throw new RangeError('Authority identity must contain 1..255 UTF-8 bytes.');
8
+ if (bytes.byteLength < 1 || bytes.byteLength > CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES) {
9
+ throw new RangeError(`Authority identity must contain 1..${CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES} UTF-8 bytes.`);
9
10
  }
10
11
  const discriminator = kind === 'actor' ? 'a' : 's';
11
12
  return {
@@ -20,7 +21,7 @@ function decodeAuthorityKey(key) {
20
21
  if (match === null)
21
22
  throw new TypeError('Authority key is not canonical.');
22
23
  const declaredLength = Number(match[2]);
23
- if (declaredLength > 255)
24
+ if (declaredLength > CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES)
24
25
  throw new TypeError('Authority key identity exceeds the byte limit.');
25
26
  const encoded = match[3];
26
27
  const bytes = [];
@@ -1,6 +1,7 @@
1
1
  import { type ZLinkLocationOptionOverrides } from '../../contracts/Locations/Options';
2
2
  import type { RoutingId } from '../../contracts/Common';
3
3
  import { type ZLinkPeerLocationResolver, type ZLinkPeerLocation } from './internal-location-contracts';
4
+ import type { ZLinkDispatchErrorSink } from '../diagnostics/dispatch-error-port';
4
5
  import type { IZLinkAutoConnectExecutor, IZLinkAutoConnectPeerPublisher, ZLinkAutoConnectEventSink, ZLinkAutoConnectLocal, ZLinkAutoConnectTarget } from './auto-connect-types';
5
6
  export interface ZLinkAutoConnectReconcilerOptions {
6
7
  readonly local: ZLinkAutoConnectLocal;
@@ -12,6 +13,7 @@ export interface ZLinkAutoConnectReconcilerOptions {
12
13
  readonly events?: ZLinkAutoConnectEventSink;
13
14
  readonly options?: ZLinkLocationOptionOverrides;
14
15
  readonly monotonicNowMs?: () => number;
16
+ readonly errorSink: ZLinkDispatchErrorSink;
15
17
  }
16
18
  export declare class ZLinkAutoConnectReconciler {
17
19
  private readonly lane;
@@ -24,6 +26,7 @@ export declare class ZLinkAutoConnectReconciler {
24
26
  private readonly events?;
25
27
  private readonly options;
26
28
  private readonly monotonicNowMs;
29
+ private readonly errorSink;
27
30
  private readonly active;
28
31
  private readonly pendingDisconnects;
29
32
  private readonly failedEndpoints;
@@ -50,6 +53,7 @@ export declare class ZLinkAutoConnectReconciler {
50
53
  private completePublishClaimCore;
51
54
  private preparePublishRenewalCore;
52
55
  private recordStoreFailure;
56
+ private connectTarget;
53
57
  private beginStoreFailureCore;
54
58
  private completeStoreFailureConnectCore;
55
59
  private recordDisconnectedEndpoint;
@@ -7,6 +7,7 @@ const key_codec_1 = require("./key-codec");
7
7
  const EndpointNotation_1 = require("../../contracts/Configuration/EndpointNotation");
8
8
  const auto_connect_planner_1 = require("./auto-connect-planner");
9
9
  const state_lane_1 = require("../execution/state-lane");
10
+ const zlink_1 = require("@zlink-systems/zlink");
10
11
  const encodeRoutingIdHex = key_codec_1.ZLinkLocationKeyCodec.encodeRoutingIdHex;
11
12
  class ZLinkAutoConnectReconciler {
12
13
  lane = new state_lane_1.ZLinkStateLane();
@@ -19,6 +20,7 @@ class ZLinkAutoConnectReconciler {
19
20
  events;
20
21
  options;
21
22
  monotonicNowMs;
23
+ errorSink;
22
24
  active = new Map();
23
25
  pendingDisconnects = new Map();
24
26
  failedEndpoints = new Set();
@@ -45,6 +47,7 @@ class ZLinkAutoConnectReconciler {
45
47
  this.events = options.events;
46
48
  this.options = { ...Options_1.zlinkRuntimeDefaultLocationOptions, ...options.options };
47
49
  this.monotonicNowMs = options.monotonicNowMs ?? (() => performance.now());
50
+ this.errorSink = options.errorSink;
48
51
  this.executor.onDisconnected?.((endpoint) => this.recordDisconnectedEndpoint(endpoint));
49
52
  }
50
53
  get storeFailed() {
@@ -116,13 +119,6 @@ class ZLinkAutoConnectReconciler {
116
119
  await this.lane.run(() => {
117
120
  this.storeFailedValue = false;
118
121
  this.storeFailureStartedAtMs = undefined;
119
- // After a store restart, owners may need one full lease interval to
120
- // reclaim their token and republish a descriptor. Do not interpret the
121
- // incomplete post-restart scan as a definitive removal.
122
- // Keep the existing transport set through one lease interval while
123
- // owners reclaim their tokens and republish descriptors. This deferral
124
- // applies only after a Store operation failed; a successful empty scan
125
- // is authoritative and must remove stale peers promptly.
126
122
  this.recoveryDeferUntilMs = this.monotonicNowMs() + this.options.ownerLeaseTtlMs;
127
123
  });
128
124
  }
@@ -133,7 +129,6 @@ class ZLinkAutoConnectReconciler {
133
129
  .map((nodeRid) => encodeRoutingIdHex(nodeRid)));
134
130
  });
135
131
  const candidates = auto_connect_planner_1.ZLinkAutoConnectPlanner.computeCandidates(this.local, rows);
136
- const nowMs = this.monotonicNowMs();
137
132
  this.executor.expectPeers?.([...candidates.values()]);
138
133
  this.executor.replaceNotRequired?.(auto_connect_planner_1.ZLinkAutoConnectPlanner.computeNotRequired(this.local, rows));
139
134
  const desired = new Map(auto_connect_planner_1.ZLinkAutoConnectPlanner.computeDesired(this.local, rows));
@@ -152,6 +147,19 @@ class ZLinkAutoConnectReconciler {
152
147
  if (activeKeys.has(key))
153
148
  desired.set(key, target);
154
149
  }
150
+ const deferringMissingTargets = this.monotonicNowMs() < (await this.lane.run(() => this.recoveryDeferUntilMs));
151
+ let staleCandidates = candidates;
152
+ if (deferringMissingTargets) {
153
+ const retainedCandidates = new Map(candidates);
154
+ const lastDesired = await this.lane.run(() => [...this.lastDesired]);
155
+ for (const [key, target] of lastDesired) {
156
+ if (!desired.has(key))
157
+ desired.set(key, target);
158
+ if (!retainedCandidates.has(key))
159
+ retainedCandidates.set(key, target);
160
+ }
161
+ staleCandidates = retainedCandidates;
162
+ }
155
163
  await this.lane.run(() => {
156
164
  this.lastDesired = new Map(desired);
157
165
  });
@@ -178,14 +186,13 @@ class ZLinkAutoConnectReconciler {
178
186
  await this.lane.run(() => {
179
187
  this.pendingDisconnects.delete(key);
180
188
  });
181
- const connected = await this.executor.connect(target);
182
- if (connected) {
189
+ await this.connectTarget(target, async () => {
183
190
  connectedEndpoints.push(target.endpoint);
184
191
  await this.lane.run(() => {
185
192
  this.active.set(key, target);
186
193
  this.failedEndpoints.delete(target.endpoint);
187
194
  });
188
- }
195
+ });
189
196
  continue;
190
197
  }
191
198
  if (current.endpoint !== target.endpoint || current.ownerId !== target.ownerId) {
@@ -203,25 +210,16 @@ class ZLinkAutoConnectReconciler {
203
210
  await this.lane.run(() => {
204
211
  this.pendingDisconnects.delete(key);
205
212
  });
206
- const connected = await this.executor.connect(target);
207
- if (connected) {
213
+ await this.connectTarget(target, async () => {
208
214
  connectedEndpoints.push(target.endpoint);
209
215
  await this.lane.run(() => {
210
216
  this.active.set(key, target);
211
217
  this.failedEndpoints.delete(target.endpoint);
212
218
  });
213
- }
219
+ });
214
220
  }
215
221
  }
216
- if (nowMs < (await this.lane.run(() => this.recoveryDeferUntilMs))) {
217
- this.publishDesiredSetChange(connectedEndpoints, disconnectedEndpoints);
218
- return;
219
- }
220
- // A store restart can expose an incomplete descriptor set while peers are
221
- // reclaiming their owner leases. Preserve existing transport connections
222
- // during that recovery window; stale-peer cleanup is safe after the
223
- // deferred reconciliation has completed.
224
- this.executor.disconnectStalePeers?.([...candidates.values()]);
222
+ this.executor.disconnectStalePeers?.([...staleCandidates.values()]);
225
223
  const activeTargets = await this.lane.run(() => [...this.active]);
226
224
  for (const [key, target] of activeTargets) {
227
225
  if (!desired.has(key)) {
@@ -330,10 +328,24 @@ class ZLinkAutoConnectReconciler {
330
328
  if (retryTargets === undefined)
331
329
  return;
332
330
  for (const [key, target] of retryTargets) {
333
- if (await this.executor.connect(target)) {
331
+ await this.connectTarget(target, async () => {
334
332
  await this.lane.run(() => this.completeStoreFailureConnectCore(key, target));
335
- }
333
+ });
334
+ }
335
+ }
336
+ async connectTarget(target, accept) {
337
+ let accepted;
338
+ try {
339
+ accepted = await this.executor.connect(target);
340
+ }
341
+ catch (error) {
342
+ if (!(error instanceof zlink_1.ConnectError))
343
+ throw error;
344
+ this.errorSink.reportRuntimeTaskException('auto-connect', error);
345
+ return;
336
346
  }
347
+ if (accepted)
348
+ await accept();
337
349
  }
338
350
  beginStoreFailureCore() {
339
351
  const nowMs = this.monotonicNowMs();
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.randomOperationId = randomOperationId;
4
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
5
+ const operation_identity_1 = require("../foundation/operation-identity");
4
6
  const node_crypto_1 = require("node:crypto");
5
- function randomOperationId(entropy = (0, node_crypto_1.randomBytes)(16)) {
6
- if (entropy.byteLength !== 16)
7
- throw new RangeError('Operation ID entropy must be 16 bytes.');
7
+ function randomOperationId(entropy = (0, node_crypto_1.randomBytes)(operation_identity_1.OPERATION_IDENTITY_BYTES)) {
8
+ if (entropy.byteLength !== operation_identity_1.OPERATION_IDENTITY_BYTES)
9
+ throw new RangeError(`Operation ID entropy must be ${operation_identity_1.OPERATION_IDENTITY_BYTES} bytes.`);
8
10
  const bytes = Buffer.from(entropy);
9
11
  const high = bytes.readBigUInt64BE(0);
10
- const low = bytes.readBigUInt64BE(8);
12
+ const low = bytes.readBigUInt64BE(stream_wire_1.UINT64_BYTES);
11
13
  return high === 0n && low === 0n ? { high, low: 1n } : { high, low };
12
14
  }
@@ -22,10 +22,10 @@ export interface ZLinkDomainLocationStore {
22
22
  compareExchangeAuthority(key: ZLinkAuthorityKey, expectedStoreVersion: ZLinkAuthorityStoreVersion, mutation: ZLinkAuthorityMutation, signal?: AbortSignal): Promise<ZLinkAuthorityCompareExchangeResult>;
23
23
  listAuthorities(prefix: string, cursor: ZLinkAuthorityScanCursor | undefined, limit: number, signal?: AbortSignal): Promise<ZLinkAuthorityScanResult>;
24
24
  readCreationTerminal(operation: ZLinkCreationOperationIdentity, signal?: AbortSignal): Promise<ZLinkCreationTerminalReadResult>;
25
- reserve(request: ZLinkObjectReserveRequest, signal?: AbortSignal): Promise<ZLinkObjectReserveResult>;
26
- commit(request: ZLinkObjectCommitRequest, signal?: AbortSignal): Promise<ZLinkObjectCommitResult>;
25
+ reserve(request: ZLinkObjectReserveRequest, signal?: AbortSignal, deadlineUnixMs?: bigint): Promise<ZLinkObjectReserveResult>;
26
+ commit(request: ZLinkObjectCommitRequest, signal?: AbortSignal, deadlineUnixMs?: bigint): Promise<ZLinkObjectCommitResult>;
27
27
  completeCreation(request: ZLinkObjectCreationCompleteRequest, signal?: AbortSignal): Promise<ZLinkObjectCreationCompleteResult>;
28
- abort(request: ZLinkObjectAbortRequest, signal?: AbortSignal): Promise<ZLinkObjectAbortResult>;
28
+ abort(request: ZLinkObjectAbortRequest, signal?: AbortSignal, deadlineUnixMs?: bigint): Promise<ZLinkObjectAbortResult>;
29
29
  prepareAggregate(request: ZLinkAggregatePrepareRequest, signal?: AbortSignal): Promise<ZLinkAggregatePrepareResult>;
30
30
  commitAggregate(fence: ZLinkAggregateFence, signal?: AbortSignal): Promise<ZLinkAggregateCommitResult>;
31
31
  abortAggregate(fence: ZLinkAggregateFence, signal?: AbortSignal): Promise<ZLinkAggregateAbortResult>;
@@ -1,13 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkInMemoryAuthorityStore = void 0;
4
+ const InternalDefaults_1 = require("../../contracts/Configuration/InternalDefaults");
5
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
6
+ const CoreTypes_1 = require("../../contracts/Common/CoreTypes");
7
+ const Stores_1 = require("../../contracts/Locations/Stores");
4
8
  const node_crypto_1 = require("node:crypto");
9
+ const actor_join_recovery_codec_1 = require("../foundation/actor-join-recovery-codec");
5
10
  const authority_key_codec_1 = require("./authority-key-codec");
6
11
  const opaque_record_key_1 = require("./opaque-record-key");
7
12
  const MAX_GENERATION = 0x7fffffffffffffffn;
8
- const MAX_PAYLOAD_BYTES = 1024 * 1024;
9
13
  const CREATION_TERMINAL_RETENTION_MS = 5 * 60 * 1000;
10
- const MAX_U64 = 0xffffffffffffffffn;
14
+ const MAX_U64 = stream_wire_1.UINT64_MAX;
11
15
  /**
12
16
  * In-memory reference provider for the provider-owned authority state machine.
13
17
  * Opaque payload bytes are copied but never parsed.
@@ -101,11 +105,21 @@ class ZLinkInMemoryAuthorityStore {
101
105
  if (!this.isOwnerLive(row.snapshot)) {
102
106
  return { kind: 'conflict', current: this.read(keyValue) };
103
107
  }
108
+ if (mutation.generationTransition === 'reincarnate' &&
109
+ (this.objectGeneration >= MAX_GENERATION || this.ownerGeneration >= MAX_GENERATION)) {
110
+ return { kind: 'generationExhausted' };
111
+ }
104
112
  const nextVersion = this.tryNextStoreVersion();
105
113
  if (nextVersion === undefined)
106
114
  return { kind: 'generationExhausted' };
107
115
  row.snapshot = {
108
116
  ...row.snapshot,
117
+ ...(mutation.generationTransition === 'reincarnate'
118
+ ? {
119
+ objectGeneration: ++this.objectGeneration,
120
+ authorityOwnerGeneration: ++this.ownerGeneration
121
+ }
122
+ : {}),
109
123
  storeVersion: version(nextVersion),
110
124
  payload: Buffer.from(mutation.payload)
111
125
  };
@@ -114,8 +128,8 @@ class ZLinkInMemoryAuthorityStore {
114
128
  }
115
129
  async listAuthorities(prefix, cursor, limit, signal) {
116
130
  signal?.throwIfAborted();
117
- if (!Number.isInteger(limit) || limit < 1 || limit > 1000) {
118
- throw new RangeError('Authority scan limit must be in 1..1000.');
131
+ if (!Number.isInteger(limit) || limit < 1 || limit > Stores_1.ZLINK_PROVIDER_MAX_PAGE_SIZE) {
132
+ throw new RangeError(`Authority scan limit must be in 1..${Stores_1.ZLINK_PROVIDER_MAX_PAGE_SIZE}.`);
119
133
  }
120
134
  const decoded = cursor === undefined
121
135
  ? { revision: this.scanRevision, offset: 0, prefix }
@@ -611,7 +625,7 @@ function validateAuthorityMutation(mutation) {
611
625
  }
612
626
  const generationTransition = mutation
613
627
  .generationTransition;
614
- if (generationTransition !== 'preserve') {
628
+ if (generationTransition !== 'preserve' && generationTransition !== 'reincarnate') {
615
629
  throw new TypeError('Authority owner transitions require an aggregate CAS.');
616
630
  }
617
631
  }
@@ -621,17 +635,19 @@ function validateReserve(request) {
621
635
  requireText(request.intent.requestContentReference, 'creation content reference');
622
636
  validatePayload(request.creatingPayload);
623
637
  validateCapacityVector(request.capacity);
624
- if (request.intent.requestSha256.byteLength !== 32 ||
638
+ if (request.intent.requestSha256.byteLength !== actor_join_recovery_codec_1.SHA256_DIGEST_BYTES ||
625
639
  request.intent.requestEncodedSize < 0n ||
626
- request.intent.requestEncodedSize > BigInt(MAX_PAYLOAD_BYTES)) {
640
+ request.intent.requestEncodedSize > BigInt(InternalDefaults_1.CREATION_INTENT_MAX_BYTES)) {
627
641
  throw new TypeError('Object creation content receipt is invalid.');
628
642
  }
629
643
  }
630
644
  function validateCreationOperation(operation) {
631
645
  const sourceRid = String(operation.sourceNodeRid);
632
646
  const sourceRidBytes = Buffer.byteLength(sourceRid, 'utf8');
633
- if (sourceRidBytes < 1 || sourceRidBytes > 255 || sourceRid.includes('\0')) {
634
- throw new TypeError('Creation terminal source node RID must contain 1..255 UTF-8 bytes without NUL.');
647
+ if (sourceRidBytes < 1 ||
648
+ sourceRidBytes > CoreTypes_1.ZLINK_MAX_ROUTING_ID_BYTES ||
649
+ sourceRid.includes('\0')) {
650
+ throw new TypeError(`Creation terminal source node RID must contain 1..${CoreTypes_1.ZLINK_MAX_ROUTING_ID_BYTES} UTF-8 bytes without NUL.`);
635
651
  }
636
652
  if (operation.sourceNodeGeneration < 1n ||
637
653
  operation.sourceNodeGeneration > MAX_U64 ||
@@ -647,8 +663,8 @@ function validateTerminalForMutation(publication, storeNow) {
647
663
  if (publication === undefined)
648
664
  return undefined;
649
665
  validateCreationOperation(publication.operation);
650
- if (publication.terminalEnvelope.byteLength > MAX_PAYLOAD_BYTES) {
651
- throw new RangeError('Creation terminal envelope must not exceed 1 MiB.');
666
+ if (publication.terminalEnvelope.byteLength > InternalDefaults_1.CREATION_TERMINAL_ENVELOPE_MAX_BYTES) {
667
+ throw new RangeError(`Creation terminal envelope must not exceed ${InternalDefaults_1.CREATION_TERMINAL_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`);
652
668
  }
653
669
  const deadlineMs = publication.operationDeadline.getTime();
654
670
  const expiresAtMs = deadlineMs + CREATION_TERMINAL_RETENTION_MS;
@@ -691,8 +707,8 @@ function validateAggregateRequest(request) {
691
707
  if (request.aggregateGeneration < 1n || request.participants.length < 1) {
692
708
  throw new RangeError('Aggregate generation and participant count are invalid.');
693
709
  }
694
- if (request.inventoryDigest.byteLength !== 32) {
695
- throw new TypeError('Aggregate inventory digest must contain 32 bytes.');
710
+ if (request.inventoryDigest.byteLength !== actor_join_recovery_codec_1.SHA256_DIGEST_BYTES) {
711
+ throw new TypeError(`Aggregate inventory digest must contain ${actor_join_recovery_codec_1.SHA256_DIGEST_BYTES} bytes.`);
696
712
  }
697
713
  validateCapacityVector(request.capacity);
698
714
  const keys = request.participants.map((participant) => participant.authorityKey.value);
@@ -702,8 +718,8 @@ function validateAggregateRequest(request) {
702
718
  }
703
719
  }
704
720
  function validatePayload(payload) {
705
- if (payload.byteLength > MAX_PAYLOAD_BYTES) {
706
- throw new RangeError('Authority payload exceeds 1 MiB.');
721
+ if (payload.byteLength > InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES) {
722
+ throw new RangeError(`Authority payload exceeds ${InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`);
707
723
  }
708
724
  }
709
725
  function validateCapacityVector(value) {
@@ -1,7 +1,7 @@
1
- import { ZLinkLocationWriteIntent, ZLinkLocationWriteStatus, type ZLinkActorLocation, type ZLinkAggregateAbortResult, type ZLinkAggregateCommitResult, type ZLinkAggregateFence, type ZLinkAggregatePrepareRequest, type ZLinkAggregatePrepareResult, type ZLinkAuthorityCompareExchangeResult, type ZLinkAuthorityKey, type ZLinkAuthorityMutation, type ZLinkAuthorityReadResult, type ZLinkAuthorityScanCursor, type ZLinkAuthorityScanResult, type ZLinkAuthorityStoreVersion, type ZLinkActorLocationFilter, type ZLinkActorLocationKey, type ZLinkLocationChangeStampScope, type ZLinkLocationOwnerToken, type ZLinkLocationPage, type ZLinkLocationWriteResult, type ZLinkMeshNodeDescriptor, type ZLinkMeshNodeDescriptorKey, type ZLinkClientServerServerDescriptor, type ZLinkClientServerServerDescriptorKey, type ZLinkFanoutPublisherDescriptor, type ZLinkFanoutPublisherDescriptorKey, type ZLinkOwnerLeaseClaimResult, type ZLinkOwnerLeaseReadResult, type ZLinkOwnerLeaseReleaseResult, type ZLinkOwnerLeaseRenewResult, type ZLinkObjectAbortRequest, type ZLinkObjectAbortResult, type ZLinkObjectCommitRequest, type ZLinkObjectCommitResult, type ZLinkObjectCreationCompleteRequest, type ZLinkObjectCreationCompleteResult, type ZLinkObjectReserveRequest, type ZLinkObjectReserveResult, type ZLinkCreationOperationIdentity, type ZLinkCreationTerminalReadResult, type ZLinkPageRequest, type ZLinkPeerLocation, type ZLinkPeerLocationFilter, type ZLinkPeerLocationKey, type ZLinkRouteLocation, type ZLinkRouteLocationFilter, type ZLinkRouteLocationKey, type ZLinkSpotLocation, type ZLinkSpotLocationFilter, type ZLinkSpotLocationKey } from './internal-location-contracts';
2
1
  import type { ZLinkActorTransferPrepareRequest, ZLinkActorTransferRecord, ZLinkActorTransferWriteResult } from '../../contracts/Locations/ActorTransfer';
3
- import type { ZLinkFanoutLocationStore } from './internal-store-contracts';
4
2
  import type { ZLinkDomainLocationStore } from './domain-store-contract';
3
+ import { ZLinkLocationWriteIntent, ZLinkLocationWriteStatus, type ZLinkActorLocation, type ZLinkActorLocationFilter, type ZLinkActorLocationKey, type ZLinkAggregateAbortResult, type ZLinkAggregateCommitResult, type ZLinkAggregateFence, type ZLinkAggregatePrepareRequest, type ZLinkAggregatePrepareResult, type ZLinkAuthorityCompareExchangeResult, type ZLinkAuthorityKey, type ZLinkAuthorityMutation, type ZLinkAuthorityReadResult, type ZLinkAuthorityScanCursor, type ZLinkAuthorityScanResult, type ZLinkAuthorityStoreVersion, type ZLinkClientServerServerDescriptor, type ZLinkClientServerServerDescriptorKey, type ZLinkCreationOperationIdentity, type ZLinkCreationTerminalReadResult, type ZLinkFanoutPublisherDescriptor, type ZLinkFanoutPublisherDescriptorKey, type ZLinkLocationChangeStampScope, type ZLinkLocationOwnerToken, type ZLinkLocationPage, type ZLinkLocationWriteResult, type ZLinkMeshNodeDescriptor, type ZLinkMeshNodeDescriptorKey, type ZLinkObjectAbortRequest, type ZLinkObjectAbortResult, type ZLinkObjectCommitRequest, type ZLinkObjectCommitResult, type ZLinkObjectCreationCompleteRequest, type ZLinkObjectCreationCompleteResult, type ZLinkObjectReserveRequest, type ZLinkObjectReserveResult, type ZLinkOwnerLeaseClaimResult, type ZLinkOwnerLeaseReadResult, type ZLinkOwnerLeaseReleaseResult, type ZLinkOwnerLeaseRenewResult, type ZLinkPageRequest, type ZLinkPeerLocation, type ZLinkPeerLocationFilter, type ZLinkPeerLocationKey, type ZLinkRouteLocation, type ZLinkRouteLocationFilter, type ZLinkRouteLocationKey, type ZLinkSpotLocation, type ZLinkSpotLocationFilter, type ZLinkSpotLocationKey } from './internal-location-contracts';
4
+ import type { ZLinkFanoutLocationStore } from './internal-store-contracts';
5
5
  export declare class ZLinkInMemoryLocationStore implements ZLinkDomainLocationStore, ZLinkFanoutLocationStore {
6
6
  private readonly now;
7
7
  private readonly leases;
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkInMemoryLocationStore = void 0;
4
- const internal_location_contracts_1 = require("./internal-location-contracts");
5
- const in_memory_authority_store_1 = require("./in-memory-authority-store");
4
+ const CoreTypes_1 = require("../../contracts/Common/CoreTypes");
5
+ const RegistrationBuilderPolicy_1 = require("../../contracts/Configuration/RegistrationBuilderPolicy");
6
+ const location_store_integration_1 = require("../../location-store-integration");
6
7
  const authority_key_codec_1 = require("./authority-key-codec");
8
+ const in_memory_authority_store_1 = require("./in-memory-authority-store");
9
+ const internal_location_contracts_1 = require("./internal-location-contracts");
7
10
  const key_codec_1 = require("./key-codec");
8
- const location_store_integration_1 = require("../../location-store-integration");
11
+ const MAX_LOCATION_GENERATION = 0x7fffffffffffffffn;
12
+ const MAX_DESCRIPTOR_OBJECT_CAPABILITIES = 1024;
9
13
  class ZLinkInMemoryLocationStore {
10
14
  now;
11
15
  leases = new Map();
@@ -526,7 +530,7 @@ class ZLinkInMemoryLocationStore {
526
530
  if (current !== undefined && current.leaseExpiresAt.getTime() > storeNow.getTime()) {
527
531
  return { kind: 'conflict' };
528
532
  }
529
- if (this.ownerLeaseGeneration >= 0x7fffffffffffffffn) {
533
+ if (this.ownerLeaseGeneration >= MAX_LOCATION_GENERATION) {
530
534
  return { kind: 'generationExhausted' };
531
535
  }
532
536
  const token = { ownerId, leaseGeneration: ++this.ownerLeaseGeneration };
@@ -743,13 +747,13 @@ function validateMeshNodeDescriptor(descriptor) {
743
747
  }
744
748
  if (descriptor.objectRole === internal_location_contracts_1.ZLinkObjectRole.Server) {
745
749
  if (descriptor.entrySpotId !== undefined && !validDescriptorText(descriptor.entrySpotId)) {
746
- throw new TypeError('MeshNode Entry Spot ID must contain 1..255 UTF-8 bytes.');
750
+ throw new TypeError(`MeshNode Entry Spot ID must contain 1..${CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES} UTF-8 bytes.`);
747
751
  }
748
752
  }
749
753
  else if (descriptor.entrySpotId !== undefined) {
750
754
  throw new TypeError('Only Object Server descriptors may publish an Entry Spot ID.');
751
755
  }
752
- const maxGeneration = 0x7fffffffffffffffn;
756
+ const maxGeneration = MAX_LOCATION_GENERATION;
753
757
  if (descriptor.lifecycleGeneration < 1n ||
754
758
  descriptor.lifecycleGeneration > maxGeneration ||
755
759
  descriptor.descriptorRevision < 1n ||
@@ -777,9 +781,8 @@ function validateMeshNodeDescriptor(descriptor) {
777
781
  !Number.isSafeInteger(descriptor.activationConcurrency.limit) ||
778
782
  descriptor.activationConcurrency.limit < 1 ||
779
783
  descriptor.activationConcurrency.active > descriptor.activationConcurrency.limit ||
780
- descriptor.placementWeight < 0 ||
781
- descriptor.placementWeight > 10_000 ||
782
- descriptor.objectCapabilities.length > 1024 ||
784
+ !(0, RegistrationBuilderPolicy_1.isValidPublicWeight)(descriptor.placementWeight) ||
785
+ descriptor.objectCapabilities.length > MAX_DESCRIPTOR_OBJECT_CAPABILITIES ||
783
786
  (descriptor.objectRole !== internal_location_contracts_1.ZLinkObjectRole.Server && descriptor.objectCapabilities.length !== 0)) {
784
787
  throw new RangeError('MeshNode object capacity is invalid.');
785
788
  }
@@ -804,7 +807,7 @@ function validateMeshNodeDescriptor(descriptor) {
804
807
  }
805
808
  function validDescriptorText(value) {
806
809
  const size = Buffer.byteLength(value, 'utf8');
807
- return size >= 1 && size <= 255 && !value.includes('\0');
810
+ return size >= 1 && size <= CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES && !value.includes('\0');
808
811
  }
809
812
  function meshNodeImmutableFingerprint(descriptor) {
810
813
  const capabilities = [...descriptor.objectCapabilities].sort((left, right) => {
@@ -867,7 +870,7 @@ function validateClientServerDescriptor(descriptor) {
867
870
  !validDescriptorText(descriptor.ownerId)) {
868
871
  throw new TypeError('ClientServer descriptor identity and endpoint are required.');
869
872
  }
870
- const maxGeneration = 0x7fffffffffffffffn;
873
+ const maxGeneration = MAX_LOCATION_GENERATION;
871
874
  if (descriptor.lifecycleGeneration < 1n ||
872
875
  descriptor.lifecycleGeneration > maxGeneration ||
873
876
  descriptor.descriptorRevision < 1n ||
@@ -876,8 +879,8 @@ function validateClientServerDescriptor(descriptor) {
876
879
  descriptor.leaseGeneration > maxGeneration) {
877
880
  throw new RangeError('ClientServer descriptor generations are invalid.');
878
881
  }
879
- if (!Number.isInteger(descriptor.weight) || descriptor.weight < 0 || descriptor.weight > 10_000) {
880
- throw new RangeError('ClientServer descriptor weight must be an integer in 0..10000.');
882
+ if (!(0, RegistrationBuilderPolicy_1.isValidPublicWeight)(descriptor.weight)) {
883
+ throw new RangeError(`ClientServer descriptor weight must be an integer in 0..${RegistrationBuilderPolicy_1.ZLINK_MAX_PUBLIC_WEIGHT}.`);
881
884
  }
882
885
  }
883
886
  function clientServerImmutableFingerprint(descriptor) {
@@ -907,7 +910,7 @@ function validateFanoutPublisherDescriptor(descriptor) {
907
910
  !validDescriptorText(descriptor.ownerId)) {
908
911
  throw new TypeError('Fanout publisher descriptor identity and endpoint are required.');
909
912
  }
910
- const maxGeneration = 0x7fffffffffffffffn;
913
+ const maxGeneration = MAX_LOCATION_GENERATION;
911
914
  if (descriptor.lifecycleGeneration < 1n ||
912
915
  descriptor.lifecycleGeneration > maxGeneration ||
913
916
  descriptor.descriptorRevision < 1n ||
@@ -1,4 +1,5 @@
1
1
  import type { ZLinkLocationStore, ZLinkStoreKey, ZLinkStoreReadResult, ZLinkStoreScanRequest, ZLinkStoreScanResult, ZLinkStoreVersion, ZLinkStoreWriteRequest, ZLinkStoreWriteResult } from '../../contracts';
2
+ export declare const PROVIDER_STORAGE_NAMESPACE_PREFIX = "zlink:v11:";
2
3
  /**
3
4
  * Framework-owned primitive Store used by the explicit in-memory option.
4
5
  * Domain records are encoded by ZLinkLocationStoreRepository.