@zlink-systems/framework 0.25.0 → 0.27.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 (557) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Channels/IZLinkFanoutClient.d.ts +0 -6
  3. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  4. package/dist/contracts/Common/CoreTypes.js +7 -0
  5. package/dist/contracts/Common/index.d.ts +1 -1
  6. package/dist/contracts/Common/index.js +0 -1
  7. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  8. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  9. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  10. package/dist/contracts/Configuration/Registration.js +58 -36
  11. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  12. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  13. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  14. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  15. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  16. package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
  17. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  18. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  19. package/dist/contracts/Handlers/JsonContract.js +10 -4
  20. package/dist/contracts/Locations/Authority.d.ts +1 -1
  21. package/dist/contracts/Locations/Authority.js +3 -2
  22. package/dist/contracts/Locations/Options.js +1 -1
  23. package/dist/contracts/Locations/Stores.d.ts +12 -0
  24. package/dist/contracts/Locations/Stores.js +9 -0
  25. package/dist/contracts/RouteMesh/RuntimeTopology.d.ts +8 -0
  26. package/dist/contracts/Spots/Contracts.d.ts +1 -1
  27. package/dist/internal.d.ts +5 -0
  28. package/dist/internal.js +16 -1
  29. package/dist/nest-integration.d.ts +4 -2
  30. package/dist/nest-integration.js +14 -4
  31. package/dist/runtime/abort.d.ts +1 -0
  32. package/dist/runtime/abort.js +8 -5
  33. package/dist/runtime/activation-admission.d.ts +28 -0
  34. package/dist/runtime/activation-admission.js +57 -0
  35. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  36. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  37. package/dist/runtime/actors/actor-client.d.ts +2 -2
  38. package/dist/runtime/actors/actor-client.js +42 -143
  39. package/dist/runtime/actors/actor-context.d.ts +3 -5
  40. package/dist/runtime/actors/actor-context.js +19 -17
  41. package/dist/runtime/actors/actor-handoff.d.ts +13 -7
  42. package/dist/runtime/actors/actor-handoff.js +36 -25
  43. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  44. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  45. package/dist/runtime/actors/actor-local-native-join.js +85 -123
  46. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  47. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  48. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  49. package/dist/runtime/actors/actor-remote-joiner.d.ts +3 -3
  50. package/dist/runtime/actors/actor-remote-joiner.js +11 -17
  51. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  52. package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
  53. package/dist/runtime/actors/actor-request-deadline.js +31 -0
  54. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  55. package/dist/runtime/actors/actor-runtime-contracts.d.ts +4 -2
  56. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  57. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  58. package/dist/runtime/actors/actor-source-transfer.d.ts +5 -5
  59. package/dist/runtime/actors/bound-session-wire.js +2 -7
  60. package/dist/runtime/actors/deferred-join-completion.d.ts +19 -0
  61. package/dist/runtime/actors/deferred-join-completion.js +21 -0
  62. package/dist/runtime/actors/index.d.ts +10 -8
  63. package/dist/runtime/actors/index.js +101 -73
  64. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  65. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  66. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  67. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  68. package/dist/runtime/admission.d.ts +7 -1
  69. package/dist/runtime/admission.js +11 -1
  70. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  71. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  72. package/dist/runtime/backend/contracts/index.d.ts +8 -33
  73. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +3 -26
  74. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  75. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  76. package/dist/runtime/backend/node/node-backend-adapter-factory.d.ts +1 -2
  77. package/dist/runtime/backend/node/node-backend-adapter-factory.js +4 -18
  78. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +7 -4
  79. package/dist/runtime/backend/node/node-backend-adapter-support.js +28 -34
  80. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  81. package/dist/runtime/backend/node/node-event-loop-poller.js +11 -6
  82. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  83. package/dist/runtime/backend/node/node-raw-binding-port.d.ts +1 -1
  84. package/dist/runtime/backend/node/node-raw-binding-port.js +51 -19
  85. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +21 -19
  86. package/dist/runtime/backend/node/node-raw-mesh-backend.js +171 -111
  87. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  88. package/dist/runtime/backend/raw-binding-port.d.ts +13 -1
  89. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  90. package/dist/runtime/backend/runtime-values.js +2 -0
  91. package/dist/runtime/channels/channel-clients.d.ts +20 -9
  92. package/dist/runtime/channels/channel-clients.js +68 -60
  93. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  94. package/dist/runtime/channels/channel-envelope.js +47 -29
  95. package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
  96. package/dist/runtime/channels/channel-outbound-operations.js +9 -18
  97. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  98. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  99. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  100. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  101. package/dist/runtime/channels/channel-runtime-manager.d.ts +2 -5
  102. package/dist/runtime/channels/channel-runtime-manager.js +4 -12
  103. package/dist/runtime/channels/channel-socket-options.js +3 -2
  104. package/dist/runtime/channels/channel-socket-registry.d.ts +30 -32
  105. package/dist/runtime/channels/channel-socket-registry.js +296 -235
  106. package/dist/runtime/channels/channel-transports.d.ts +11 -20
  107. package/dist/runtime/channels/channel-transports.js +68 -47
  108. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  109. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  110. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  111. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  112. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  113. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  114. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  115. package/dist/runtime/channels/fanout-location-runtime.js +133 -81
  116. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  117. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  118. package/dist/runtime/channels/spot-node-route-transport.js +3 -2
  119. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  120. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  121. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  122. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  123. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  124. package/dist/runtime/diagnostics/flow-context.js +16 -2
  125. package/dist/runtime/diagnostics/index.d.ts +4 -2
  126. package/dist/runtime/diagnostics/index.js +14 -4
  127. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  128. package/dist/runtime/diagnostics/message-flow.js +10 -19
  129. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  130. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  131. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  132. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  133. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  134. package/dist/runtime/disposal.d.ts +5 -0
  135. package/dist/runtime/disposal.js +22 -0
  136. package/dist/runtime/execution/index.d.ts +22 -9
  137. package/dist/runtime/execution/index.js +107 -37
  138. package/dist/runtime/execution/serial-execution-queue.d.ts +12 -7
  139. package/dist/runtime/execution/serial-execution-queue.js +99 -26
  140. package/dist/runtime/execution/state-lane.d.ts +8 -1
  141. package/dist/runtime/execution/state-lane.js +118 -3
  142. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  143. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  144. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  145. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  146. package/dist/runtime/foundation/listener-records.d.ts +11 -0
  147. package/dist/runtime/foundation/listener-records.js +20 -0
  148. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  149. package/dist/runtime/foundation/operation-identity.js +9 -5
  150. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  151. package/dist/runtime/foundation/operation-registry.js +34 -44
  152. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +18 -26
  153. package/dist/runtime/foundation/raw-service-mesh-runtime.js +122 -469
  154. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  155. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  156. package/dist/runtime/foundation/service-authority-payload-codec.d.ts +1 -0
  157. package/dist/runtime/foundation/service-authority-payload-codec.js +30 -12
  158. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  159. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  160. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  161. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  162. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  163. package/dist/runtime/foundation/service-maintenance-runtime.js +23 -8
  164. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  165. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  166. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  167. package/dist/runtime/foundation/service-relocation-coordinator.d.ts +9 -0
  168. package/dist/runtime/foundation/service-relocation-coordinator.js +14 -1
  169. package/dist/runtime/foundation/service-relocation-object-owner.d.ts +8 -0
  170. package/dist/runtime/foundation/service-relocation-object-owner.js +19 -6
  171. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  172. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  173. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  174. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -19
  175. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  176. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  177. package/dist/runtime/foundation/service-stateful-runtime.d.ts +28 -24
  178. package/dist/runtime/foundation/service-stateful-runtime.js +297 -244
  179. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +12 -7
  180. package/dist/runtime/foundation/service-stateful-wire-codec.js +240 -143
  181. package/dist/runtime/foundation/service-topology-registry.d.ts +1 -3
  182. package/dist/runtime/foundation/service-topology-registry.js +22 -61
  183. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  184. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  185. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  186. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  187. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  188. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  189. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  190. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  191. package/dist/runtime/framework-errors-internal.js +343 -122
  192. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  193. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  194. package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
  195. package/dist/runtime/host/actor-packet-relay.js +48 -91
  196. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  197. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  198. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  199. package/dist/runtime/host/actor-transfer-runtime.d.ts +28 -28
  200. package/dist/runtime/host/actor-transfer-runtime.js +210 -256
  201. package/dist/runtime/host/application-job-queue.js +16 -33
  202. package/dist/runtime/host/bound-session-relay.js +1 -1
  203. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  204. package/dist/runtime/host/index.d.ts +19 -14
  205. package/dist/runtime/host/index.js +234 -175
  206. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  207. package/dist/runtime/host/instance-activation-authority.js +17 -45
  208. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  209. package/dist/runtime/host/location-runtime-owner.js +2 -2
  210. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  211. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  212. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  213. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  214. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  215. package/dist/runtime/host/remote-bound-session-relay.js +11 -23
  216. package/dist/runtime/host/route-mesh-runtime.d.ts +14 -10
  217. package/dist/runtime/host/route-mesh-runtime.js +178 -257
  218. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  219. package/dist/runtime/host/runtime-shutdown.js +18 -21
  220. package/dist/runtime/host/service-relocation-control.js +6 -1
  221. package/dist/runtime/host/service-relocation-host-runtime.d.ts +71 -38
  222. package/dist/runtime/host/service-relocation-host-runtime.js +816 -651
  223. package/dist/runtime/host/spot-address-transport.d.ts +2 -3
  224. package/dist/runtime/host/spot-address-transport.js +34 -136
  225. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  226. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  227. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -7
  228. package/dist/runtime/host/spot-runtime-options-factory.js +53 -21
  229. package/dist/runtime/host/stateful-authority-route-runtime.js +6 -2
  230. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +14 -6
  231. package/dist/runtime/host/user-spot-creation-coordinator.js +96 -95
  232. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  233. package/dist/runtime/locations/authority-key-codec.js +4 -3
  234. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  235. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  236. package/dist/runtime/locations/creation-operation-id.js +6 -4
  237. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  238. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  239. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  240. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  241. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  242. package/dist/runtime/locations/in-memory-provider-location-store.js +79 -27
  243. package/dist/runtime/locations/key-codec.js +3 -2
  244. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  245. package/dist/runtime/locations/lease-tracker.js +7 -11
  246. package/dist/runtime/locations/lifecycle.d.ts +5 -10
  247. package/dist/runtime/locations/lifecycle.js +4 -33
  248. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  249. package/dist/runtime/locations/location-store-failure.js +7 -0
  250. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  251. package/dist/runtime/locations/location-store-pages.js +13 -0
  252. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  253. package/dist/runtime/locations/location-store-repository.js +303 -332
  254. package/dist/runtime/locations/relocation-blob.js +18 -5
  255. package/dist/runtime/locations/resolvers.d.ts +5 -5
  256. package/dist/runtime/locations/resolvers.js +44 -30
  257. package/dist/runtime/locations/runtime.d.ts +5 -4
  258. package/dist/runtime/locations/runtime.js +123 -92
  259. package/dist/runtime/locations/spot-location-claims.d.ts +8 -2
  260. package/dist/runtime/locations/spot-location-claims.js +40 -23
  261. package/dist/runtime/messaging/payload-codec.js +26 -20
  262. package/dist/runtime/messaging/submission-result.d.ts +3 -0
  263. package/dist/runtime/messaging/submission-result.js +48 -0
  264. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +2 -0
  265. package/dist/runtime/protocol/service_wire_codec.generated.js +17 -8
  266. package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +1 -0
  267. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +3 -2
  268. package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +3 -3
  269. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +4 -4
  270. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +6 -3
  271. package/dist/runtime/spots/index.d.ts +29 -29
  272. package/dist/runtime/spots/index.js +441 -313
  273. package/dist/runtime/spots/spot-activation-registry.d.ts +4 -4
  274. package/dist/runtime/spots/spot-activation-registry.js +27 -60
  275. package/dist/runtime/spots/spot-activation-state.d.ts +2 -11
  276. package/dist/runtime/spots/spot-activation-state.js +4 -17
  277. package/dist/runtime/spots/spot-activation.d.ts +10 -9
  278. package/dist/runtime/spots/spot-activation.js +103 -81
  279. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  280. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  281. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  282. package/dist/runtime/spots/spot-actor-join-dispatch.js +5 -55
  283. package/dist/runtime/spots/spot-actor-lifecycle-drain.js +2 -2
  284. package/dist/runtime/spots/spot-actor-membership.d.ts +7 -5
  285. package/dist/runtime/spots/spot-actor-membership.js +44 -53
  286. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  287. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  288. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  289. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  290. package/dist/runtime/spots/spot-context.d.ts +2 -2
  291. package/dist/runtime/spots/spot-entry-activation.d.ts +3 -4
  292. package/dist/runtime/spots/spot-entry-activation.js +9 -21
  293. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  294. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  295. package/dist/runtime/spots/spot-manager-public.js +6 -5
  296. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  297. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +22 -21
  298. package/dist/runtime/spots/spot-node-runtime-manager.js +73 -82
  299. package/dist/runtime/spots/spot-outbound.d.ts +4 -3
  300. package/dist/runtime/spots/spot-outbound.js +10 -37
  301. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  302. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  303. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  304. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  305. package/dist/runtime/spots/spot-route-replies.js +3 -1
  306. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -2
  307. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -2
  308. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +2 -7
  309. package/dist/runtime/spots/spot-routed-frame-dispatch.js +1 -70
  310. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  311. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  312. package/dist/runtime/spots/spot-runtime-ports.d.ts +4 -20
  313. package/dist/runtime/spots/spot-serial-executor.d.ts +5 -0
  314. package/dist/runtime/spots/spot-serial-executor.js +9 -2
  315. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +29 -6
  316. package/dist/runtime/spots/spot-serial-turn-executor.js +89 -13
  317. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  318. package/dist/runtime/streams/actor-session-binding-registry.d.ts +17 -32
  319. package/dist/runtime/streams/actor-session-binding-registry.js +145 -367
  320. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +2 -6
  321. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
  322. package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
  323. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  324. package/dist/runtime/streams/bound-session-service.js +12 -19
  325. package/dist/runtime/streams/index.d.ts +15 -14
  326. package/dist/runtime/streams/index.js +38 -39
  327. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  328. package/dist/runtime/streams/managed-stream.js +17 -8
  329. package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
  330. package/dist/runtime/streams/protocol.d.ts +6 -33
  331. package/dist/runtime/streams/protocol.js +38 -110
  332. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  333. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  334. package/dist/runtime/streams/session-calls.d.ts +1 -1
  335. package/dist/runtime/streams/session-calls.js +5 -4
  336. package/dist/runtime/streams/session-context.d.ts +6 -6
  337. package/dist/runtime/streams/session-context.js +22 -4
  338. package/dist/runtime/streams/session-requests.js +2 -1
  339. package/dist/runtime/streams/session-serial-executor.js +2 -2
  340. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  341. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  342. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  343. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  344. package/dist/runtime/workers/index.d.ts +2 -2
  345. package/dist/runtime/workers/index.js +5 -4
  346. package/package.json +3 -3
  347. package/src/contracts/Channels/IZLinkFanoutClient.ts +0 -7
  348. package/src/contracts/Common/CoreTypes.ts +7 -0
  349. package/src/contracts/Common/index.ts +1 -1
  350. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  351. package/src/contracts/Configuration/Registration.ts +92 -48
  352. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  353. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
  354. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  355. package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
  356. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  357. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  358. package/src/contracts/Handlers/JsonContract.ts +14 -4
  359. package/src/contracts/Locations/Authority.ts +7 -3
  360. package/src/contracts/Locations/Options.ts +1 -1
  361. package/src/contracts/Locations/Stores.ts +14 -0
  362. package/src/contracts/RouteMesh/RuntimeTopology.ts +10 -0
  363. package/src/contracts/Spots/Contracts.ts +1 -1
  364. package/src/internal.ts +15 -0
  365. package/src/nest-integration.ts +28 -10
  366. package/src/runtime/abort.ts +6 -5
  367. package/src/runtime/activation-admission.ts +72 -0
  368. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  369. package/src/runtime/actors/actor-client.ts +77 -204
  370. package/src/runtime/actors/actor-context.ts +45 -39
  371. package/src/runtime/actors/actor-handoff.ts +55 -45
  372. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  373. package/src/runtime/actors/actor-local-native-join.ts +174 -215
  374. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  375. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  376. package/src/runtime/actors/actor-remote-joiner.ts +15 -36
  377. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  378. package/src/runtime/actors/actor-request-deadline.ts +49 -0
  379. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  380. package/src/runtime/actors/actor-runtime-contracts.ts +4 -10
  381. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  382. package/src/runtime/actors/actor-source-transfer.ts +5 -18
  383. package/src/runtime/actors/bound-session-wire.ts +2 -8
  384. package/src/runtime/actors/deferred-join-completion.ts +44 -0
  385. package/src/runtime/actors/index.ts +122 -88
  386. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  387. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  388. package/src/runtime/admission.ts +13 -2
  389. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  390. package/src/runtime/backend/contracts/index.ts +15 -42
  391. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -28
  392. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  393. package/src/runtime/backend/node/node-backend-adapter-factory.ts +5 -25
  394. package/src/runtime/backend/node/node-backend-adapter-support.ts +32 -35
  395. package/src/runtime/backend/node/node-event-loop-poller.ts +16 -8
  396. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  397. package/src/runtime/backend/node/node-raw-binding-port.ts +58 -23
  398. package/src/runtime/backend/node/node-raw-mesh-backend.ts +252 -162
  399. package/src/runtime/backend/node/node-socket-backend-adapter.ts +5 -4
  400. package/src/runtime/backend/raw-binding-port.ts +14 -1
  401. package/src/runtime/backend/runtime-values.ts +4 -1
  402. package/src/runtime/channels/channel-clients.ts +132 -96
  403. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  404. package/src/runtime/channels/channel-envelope.ts +58 -29
  405. package/src/runtime/channels/channel-outbound-operations.ts +10 -31
  406. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  407. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  408. package/src/runtime/channels/channel-runtime-manager.ts +8 -15
  409. package/src/runtime/channels/channel-socket-options.ts +8 -2
  410. package/src/runtime/channels/channel-socket-registry.ts +369 -262
  411. package/src/runtime/channels/channel-transports.ts +161 -115
  412. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  413. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  414. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  415. package/src/runtime/channels/fanout-location-runtime.ts +175 -106
  416. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  417. package/src/runtime/channels/spot-node-route-transport.ts +5 -2
  418. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  419. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  420. package/src/runtime/diagnostics/flow-context.ts +16 -2
  421. package/src/runtime/diagnostics/index.ts +27 -17
  422. package/src/runtime/diagnostics/message-flow.ts +15 -25
  423. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  424. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  425. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  426. package/src/runtime/disposal.ts +19 -0
  427. package/src/runtime/execution/index.ts +116 -38
  428. package/src/runtime/execution/serial-execution-queue.ts +179 -34
  429. package/src/runtime/execution/state-lane.ts +142 -4
  430. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  431. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  432. package/src/runtime/foundation/listener-records.ts +21 -0
  433. package/src/runtime/foundation/operation-identity.ts +11 -5
  434. package/src/runtime/foundation/operation-registry.ts +33 -50
  435. package/src/runtime/foundation/raw-service-mesh-runtime.ts +170 -571
  436. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  437. package/src/runtime/foundation/service-authority-payload-codec.ts +41 -13
  438. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  439. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  440. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  441. package/src/runtime/foundation/service-maintenance-runtime.ts +30 -19
  442. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  443. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  444. package/src/runtime/foundation/service-relocation-coordinator.ts +13 -0
  445. package/src/runtime/foundation/service-relocation-object-owner.ts +23 -7
  446. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  447. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  448. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -25
  449. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  450. package/src/runtime/foundation/service-stateful-runtime.ts +435 -327
  451. package/src/runtime/foundation/service-stateful-wire-codec.ts +329 -199
  452. package/src/runtime/foundation/service-topology-registry.ts +30 -79
  453. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  454. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  455. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  456. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  457. package/src/runtime/framework-errors-internal.ts +380 -134
  458. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  459. package/src/runtime/host/actor-packet-relay.ts +57 -147
  460. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  461. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  462. package/src/runtime/host/actor-transfer-runtime.ts +266 -418
  463. package/src/runtime/host/application-job-queue.ts +28 -34
  464. package/src/runtime/host/bound-session-relay.ts +1 -2
  465. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  466. package/src/runtime/host/index.ts +408 -312
  467. package/src/runtime/host/instance-activation-authority.ts +89 -109
  468. package/src/runtime/host/location-runtime-owner.ts +4 -2
  469. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  470. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  471. package/src/runtime/host/remote-bound-session-relay.ts +12 -44
  472. package/src/runtime/host/route-mesh-runtime.ts +236 -275
  473. package/src/runtime/host/runtime-shutdown.ts +17 -21
  474. package/src/runtime/host/service-relocation-control.ts +14 -1
  475. package/src/runtime/host/service-relocation-host-runtime.ts +1161 -904
  476. package/src/runtime/host/spot-address-transport.ts +73 -195
  477. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  478. package/src/runtime/host/spot-runtime-options-factory.ts +92 -30
  479. package/src/runtime/host/stateful-authority-route-runtime.ts +8 -4
  480. package/src/runtime/host/user-spot-creation-coordinator.ts +182 -163
  481. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  482. package/src/runtime/locations/authority-key-codec.ts +7 -3
  483. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  484. package/src/runtime/locations/creation-operation-id.ts +6 -3
  485. package/src/runtime/locations/domain-store-contract.ts +12 -3
  486. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  487. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  488. package/src/runtime/locations/in-memory-provider-location-store.ts +110 -31
  489. package/src/runtime/locations/key-codec.ts +3 -2
  490. package/src/runtime/locations/lease-tracker.ts +8 -14
  491. package/src/runtime/locations/lifecycle.ts +16 -45
  492. package/src/runtime/locations/location-store-failure.ts +4 -0
  493. package/src/runtime/locations/location-store-pages.ts +18 -0
  494. package/src/runtime/locations/location-store-repository.ts +450 -478
  495. package/src/runtime/locations/relocation-blob.ts +17 -6
  496. package/src/runtime/locations/resolvers.ts +90 -58
  497. package/src/runtime/locations/runtime.ts +220 -110
  498. package/src/runtime/locations/spot-location-claims.ts +54 -26
  499. package/src/runtime/messaging/payload-codec.ts +35 -24
  500. package/src/runtime/messaging/submission-result.ts +57 -1
  501. package/src/runtime/protocol/service_wire_codec.generated.ts +27 -10
  502. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +4 -4
  503. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +6 -6
  504. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +6 -3
  505. package/src/runtime/spots/index.ts +687 -437
  506. package/src/runtime/spots/spot-activation-registry.ts +42 -71
  507. package/src/runtime/spots/spot-activation-state.ts +4 -16
  508. package/src/runtime/spots/spot-activation.ts +167 -115
  509. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  510. package/src/runtime/spots/spot-actor-join-dispatch.ts +25 -79
  511. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +20 -18
  512. package/src/runtime/spots/spot-actor-membership.ts +107 -75
  513. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  514. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  515. package/src/runtime/spots/spot-context.ts +3 -3
  516. package/src/runtime/spots/spot-entry-activation.ts +13 -33
  517. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  518. package/src/runtime/spots/spot-manager-public.ts +29 -21
  519. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  520. package/src/runtime/spots/spot-node-runtime-manager.ts +145 -140
  521. package/src/runtime/spots/spot-outbound.ts +47 -68
  522. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  523. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  524. package/src/runtime/spots/spot-route-replies.ts +6 -4
  525. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -6
  526. package/src/runtime/spots/spot-routed-frame-dispatch.ts +6 -77
  527. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  528. package/src/runtime/spots/spot-runtime-ports.ts +10 -43
  529. package/src/runtime/spots/spot-serial-executor.ts +10 -2
  530. package/src/runtime/spots/spot-serial-turn-executor.ts +120 -13
  531. package/src/runtime/spots/spot-timer.ts +3 -2
  532. package/src/runtime/streams/actor-session-binding-registry.ts +182 -560
  533. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +1 -19
  534. package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
  535. package/src/runtime/streams/bound-session-service.ts +23 -37
  536. package/src/runtime/streams/index.ts +102 -88
  537. package/src/runtime/streams/managed-stream.ts +29 -10
  538. package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
  539. package/src/runtime/streams/protocol.ts +34 -88
  540. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  541. package/src/runtime/streams/session-calls.ts +6 -5
  542. package/src/runtime/streams/session-context.ts +54 -10
  543. package/src/runtime/streams/session-requests.ts +2 -1
  544. package/src/runtime/streams/session-serial-executor.ts +2 -2
  545. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  546. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  547. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  548. package/src/runtime/workers/index.ts +13 -12
  549. package/dist/runtime/actors/deferred-join-accepted-journal.d.ts +0 -47
  550. package/dist/runtime/actors/deferred-join-accepted-journal.js +0 -992
  551. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  552. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  553. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  554. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  555. package/src/runtime/actors/deferred-join-accepted-journal.ts +0 -1346
  556. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  557. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -1,15 +1,25 @@
1
+ import { UINT64_MAX } from '@zlink-systems/stream-wire';
1
2
  import { createHash } from 'node:crypto';
3
+ import { AUTHORITY_ENVELOPE_MAX_BYTES } from '../../contracts/Configuration/InternalDefaults';
4
+ import { decodeAuthorityKey } from '../locations/authority-key-codec';
2
5
  import type {
3
- ZLinkPlacementObjectKind,
4
- ZLinkAuthorityKey
6
+ ZLinkAuthorityKey,
7
+ ZLinkPlacementObjectKind
5
8
  } from '../locations/internal-location-contracts';
6
- import { decodeAuthorityKey } from '../locations/authority-key-codec';
9
+ import { enumWireRelocationPhase } from '../protocol/service_wire_codec.generated';
7
10
  import {
8
11
  decodeRelocationEnvelopeV1 as decodeGeneratedRelocationEnvelopeV1,
9
12
  encodeRelocationEnvelopeV1 as encodeGeneratedRelocationEnvelopeV1,
10
13
  type RelocationEnvelopeV1 as GeneratedRelocationEnvelopeV1,
11
14
  type RelocationObjectIdentity as GeneratedRelocationObjectIdentity
12
15
  } from '../protocol/service_wire_pilot_codec.generated';
16
+ import { SHA256_DIGEST_BYTES } from './actor-join-recovery-codec';
17
+ const MAX_RELOCATION_GENERATION = 0x7fff_ffff_ffff_ffffn;
18
+
19
+ const RELOCATION_PREPARING_PHASE = enumWireRelocationPhase('preparing');
20
+ const RELOCATION_ACTIVATING_PHASE = enumWireRelocationPhase('activating');
21
+ const RELOCATION_COMPLETED_PHASE = enumWireRelocationPhase('completed');
22
+ const RELOCATION_LAST_PHASE = enumWireRelocationPhase('aborted');
13
23
 
14
24
  export interface ServiceRelocationParticipant {
15
25
  /** Wire-local participant ordinal; identity is projected from Location Store. */
@@ -280,7 +290,7 @@ export function projectServiceRelocationAuthorityTargetReady(
280
290
  coordinatorNodeRid: target.nodeRid,
281
291
  coordinatorNodeGeneration: target.nodeGeneration,
282
292
  coordinatorExpectedStoreVersion: target.coordinatorExpectedStoreVersion,
283
- phase: 5,
293
+ phase: RELOCATION_ACTIVATING_PHASE,
284
294
  sourceCleanupState: 0
285
295
  });
286
296
  return replaceCanonicalRelocationSlot(layout, slot);
@@ -323,7 +333,7 @@ function decodeCanonicalAuthorityPublication(
323
333
  function decodeCanonicalAuthorityLayout(payload: Uint8Array): CanonicalAuthorityLayout | undefined {
324
334
  try {
325
335
  const bytes = Buffer.from(payload);
326
- if (bytes.byteLength < 20 || bytes.byteLength > 1024 * 1024) return undefined;
336
+ if (bytes.byteLength < 20 || bytes.byteLength > AUTHORITY_ENVELOPE_MAX_BYTES) return undefined;
327
337
  const reader = new CanonicalReader(bytes);
328
338
  reader.expect(Buffer.from('ZLAU'));
329
339
  if (reader.u8() !== 1) return undefined;
@@ -395,21 +405,21 @@ export function decodeCanonicalRelocationSlot(
395
405
  if (
396
406
  !reader.done ||
397
407
  aggregateGeneration > 0x7fff_ffff_ffff_fffen ||
398
- (aggregateGeneration === 0n && phase !== 1) ||
408
+ (aggregateGeneration === 0n && phase !== RELOCATION_PREPARING_PHASE) ||
399
409
  (rootAggregateGeneration !== undefined && aggregateGeneration !== rootAggregateGeneration) ||
400
- targetAttemptGeneration > 0x7fff_ffff_ffff_ffffn ||
410
+ targetAttemptGeneration > MAX_RELOCATION_GENERATION ||
401
411
  sourceNodeGeneration === 0n ||
402
- sourceNodeGeneration > 0x7fff_ffff_ffff_ffffn ||
412
+ sourceNodeGeneration > MAX_RELOCATION_GENERATION ||
403
413
  sourceOwnerLeaseGeneration === 0n ||
404
- sourceOwnerLeaseGeneration > 0x7fff_ffff_ffff_ffffn ||
405
- targetNodeGeneration > 0x7fff_ffff_ffff_ffffn ||
406
- targetOwnerLeaseGeneration > 0x7fff_ffff_ffff_ffffn ||
414
+ sourceOwnerLeaseGeneration > MAX_RELOCATION_GENERATION ||
415
+ targetNodeGeneration > MAX_RELOCATION_GENERATION ||
416
+ targetOwnerLeaseGeneration > MAX_RELOCATION_GENERATION ||
407
417
  coordinatorLeaseGeneration === 0n ||
408
- coordinatorLeaseGeneration > 0x7fff_ffff_ffff_ffffn ||
418
+ coordinatorLeaseGeneration > MAX_RELOCATION_GENERATION ||
409
419
  coordinatorNodeGeneration === 0n ||
410
- coordinatorNodeGeneration > 0x7fff_ffff_ffff_ffffn ||
411
- phase < 1 ||
412
- phase > 9 ||
420
+ coordinatorNodeGeneration > MAX_RELOCATION_GENERATION ||
421
+ phase < RELOCATION_PREPARING_PHASE ||
422
+ phase > RELOCATION_LAST_PHASE ||
413
423
  applicationVersion < 0n ||
414
424
  sourceCleanupState > 2
415
425
  )
@@ -452,10 +462,10 @@ export function encodeCanonicalRelocationSlot(value: CanonicalRelocationSlot): B
452
462
  if (aggregateGeneration > 0x7fff_ffff_ffff_fffen) {
453
463
  throw new TypeError('Aggregate generation exceeds the issued range.');
454
464
  }
455
- if (aggregateGeneration === 0n && value.phase !== 1) {
465
+ if (aggregateGeneration === 0n && value.phase !== RELOCATION_PREPARING_PHASE) {
456
466
  throw new TypeError('Zero aggregate generation is only valid while preparing.');
457
467
  }
458
- if (targetAttemptGeneration > 0x7fff_ffff_ffff_ffffn) {
468
+ if (targetAttemptGeneration > MAX_RELOCATION_GENERATION) {
459
469
  throw new TypeError('Target attempt generation exceeds the ordinal range.');
460
470
  }
461
471
  const sourceNodeGeneration = canonicalNonZeroOrdinal(
@@ -482,7 +492,11 @@ export function encodeCanonicalRelocationSlot(value: CanonicalRelocationSlot): B
482
492
  value.coordinatorNodeGeneration,
483
493
  'coordinator node generation'
484
494
  );
485
- if (!Number.isInteger(value.phase) || value.phase < 1 || value.phase > 9) {
495
+ if (
496
+ !Number.isInteger(value.phase) ||
497
+ value.phase < RELOCATION_PREPARING_PHASE ||
498
+ value.phase > RELOCATION_LAST_PHASE
499
+ ) {
486
500
  throw new TypeError('Canonical relocation phase is invalid.');
487
501
  }
488
502
  if (
@@ -553,7 +567,7 @@ function encodeCanonicalRelocationPublicationSlot(
553
567
  coordinatorNodeRid: publication.coordinatorNodeRid ?? nodeRid,
554
568
  coordinatorNodeGeneration: publication.coordinatorNodeGeneration ?? layout.nodeGeneration,
555
569
  coordinatorExpectedStoreVersion: publication.coordinatorExpectedStoreVersion ?? '',
556
- phase: publication.canonicalPhase ?? 8,
570
+ phase: publication.canonicalPhase ?? RELOCATION_COMPLETED_PHASE,
557
571
  applicationVersion,
558
572
  sourceCleanupState: publication.canonicalSourceCleanupState ?? 0
559
573
  });
@@ -579,8 +593,10 @@ function replaceCanonicalRelocationSlot(
579
593
  body
580
594
  ]);
581
595
  const result = Buffer.concat([envelope, canonicalU32(crc32c(envelope))]);
582
- if (result.byteLength > 1024 * 1024) {
583
- throw new TypeError('Canonical authority payload exceeds 1 MiB.');
596
+ if (result.byteLength > AUTHORITY_ENVELOPE_MAX_BYTES) {
597
+ throw new TypeError(
598
+ `Canonical authority payload exceeds ${AUTHORITY_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`
599
+ );
584
600
  }
585
601
  return result;
586
602
  }
@@ -1022,8 +1038,8 @@ function encodeAuthorityEnvelope(
1022
1038
  'target owner lease generation'
1023
1039
  );
1024
1040
  if (
1025
- aggregateGeneration > 0x7fff_ffff_ffff_ffffn ||
1026
- targetOwnerLeaseGeneration > 0x7fff_ffff_ffff_ffffn
1041
+ aggregateGeneration > MAX_RELOCATION_GENERATION ||
1042
+ targetOwnerLeaseGeneration > MAX_RELOCATION_GENERATION
1027
1043
  ) {
1028
1044
  throw new TypeError('Relocation publication generations must fit signed 64-bit storage.');
1029
1045
  }
@@ -1040,8 +1056,10 @@ function encodeAuthorityEnvelope(
1040
1056
  i64le(targetOwnerLeaseGeneration),
1041
1057
  bytes32le(base)
1042
1058
  ]);
1043
- if (payload.byteLength > 1024 * 1024) {
1044
- throw new TypeError('Location authority relocation payload exceeds 1 MiB.');
1059
+ if (payload.byteLength > AUTHORITY_ENVELOPE_MAX_BYTES) {
1060
+ throw new TypeError(
1061
+ `Location authority relocation payload exceeds ${AUTHORITY_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`
1062
+ );
1045
1063
  }
1046
1064
  return payload;
1047
1065
  }
@@ -1067,8 +1085,8 @@ function decodeAuthorityEnvelope(
1067
1085
  if (
1068
1086
  !reader.done ||
1069
1087
  aggregateGeneration === 0n ||
1070
- aggregateGeneration > 0x7fff_ffff_ffff_ffffn ||
1071
- inventoryDigestBytes.byteLength !== 32 ||
1088
+ aggregateGeneration > MAX_RELOCATION_GENERATION ||
1089
+ inventoryDigestBytes.byteLength !== SHA256_DIGEST_BYTES ||
1072
1090
  targetOwnerLeaseGeneration <= 0n
1073
1091
  ) {
1074
1092
  return undefined;
@@ -1181,8 +1199,10 @@ function text16le(value: string): Buffer {
1181
1199
 
1182
1200
  function bytes32le(value: Uint8Array): Buffer {
1183
1201
  const bytes = Buffer.from(value);
1184
- if (bytes.byteLength > 1024 * 1024) {
1185
- throw new TypeError('Relocation byte field exceeds 1 MiB.');
1202
+ if (bytes.byteLength > AUTHORITY_ENVELOPE_MAX_BYTES) {
1203
+ throw new TypeError(
1204
+ `Relocation byte field exceeds ${AUTHORITY_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`
1205
+ );
1186
1206
  }
1187
1207
  const length = Buffer.alloc(4);
1188
1208
  length.writeInt32LE(bytes.byteLength);
@@ -1350,7 +1370,7 @@ function canonicalU32(value: number): Buffer {
1350
1370
  }
1351
1371
 
1352
1372
  function canonicalU64(value: bigint): Buffer {
1353
- if (value < 0n || value > 0xffff_ffff_ffff_ffffn) {
1373
+ if (value < 0n || value > UINT64_MAX) {
1354
1374
  throw new TypeError('Canonical authority u64 is invalid.');
1355
1375
  }
1356
1376
  const result = Buffer.alloc(8);
@@ -1360,7 +1380,7 @@ function canonicalU64(value: bigint): Buffer {
1360
1380
 
1361
1381
  function canonicalOrdinal(value: bigint, name: string): bigint {
1362
1382
  const ordinal = nonNegativeBigInt(value, name);
1363
- if (ordinal > 0x7fff_ffff_ffff_ffffn) {
1383
+ if (ordinal > MAX_RELOCATION_GENERATION) {
1364
1384
  throw new TypeError(`${name} exceeds the ordinal range.`);
1365
1385
  }
1366
1386
  return ordinal;
@@ -1373,7 +1393,7 @@ function canonicalNonZeroOrdinal(value: bigint, name: string): bigint {
1373
1393
  }
1374
1394
 
1375
1395
  function canonicalI64(value: bigint): Buffer {
1376
- if (value < 0n || value > 0x7fff_ffff_ffff_ffffn) {
1396
+ if (value < 0n || value > MAX_RELOCATION_GENERATION) {
1377
1397
  throw new TypeError('Canonical authority i64 is invalid.');
1378
1398
  }
1379
1399
  const result = Buffer.alloc(8);
@@ -1387,8 +1407,10 @@ class DotnetBinaryReader {
1387
1407
 
1388
1408
  constructor(payload: Uint8Array) {
1389
1409
  this.bytes = Buffer.from(payload);
1390
- if (this.bytes.byteLength > 1024 * 1024) {
1391
- throw new TypeError('Location authority relocation payload exceeds 1 MiB.');
1410
+ if (this.bytes.byteLength > AUTHORITY_ENVELOPE_MAX_BYTES) {
1411
+ throw new TypeError(
1412
+ `Location authority relocation payload exceeds ${AUTHORITY_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`
1413
+ );
1392
1414
  }
1393
1415
  }
1394
1416
 
@@ -1426,7 +1448,7 @@ class DotnetBinaryReader {
1426
1448
 
1427
1449
  bytes32(): Buffer {
1428
1450
  const length = this.take(4).readInt32LE(0);
1429
- if (length < 0 || length > 1024 * 1024) {
1451
+ if (length < 0 || length > AUTHORITY_ENVELOPE_MAX_BYTES) {
1430
1452
  throw new TypeError('Location authority relocation byte field is invalid.');
1431
1453
  }
1432
1454
  return Buffer.from(this.take(length));
@@ -1,16 +1,39 @@
1
+ import type { RoutingId } from '../../contracts';
1
2
  import type { Message } from '../../contracts/Common/Message';
3
+ import type { ApplicationJobPermitPort } from '../application-jobs/contracts';
2
4
  import type {
5
+ ZLinkBackendMessageLike as MessageLike,
3
6
  RequestResult,
4
- SubmitResult,
5
- ZLinkBackendMessageLike as MessageLike
7
+ SubmitResult
6
8
  } from '../backend/runtime-values';
7
- import type { RoutingId } from '../../contracts';
8
- import type { ApplicationJobPermitPort } from '../application-jobs/contracts';
9
9
  import type { ServiceActorRef } from './service-stateful-registry';
10
10
  import type {
11
11
  ServiceDirectSpotRouteFence,
12
12
  ServiceRetiredBoundSessionRouteFence
13
13
  } from './service-stateful-wire-codec';
14
+ export enum StreamSessionRuntimeState {
15
+ Created = 1,
16
+ Started = 2,
17
+ Closed = 5
18
+ }
19
+
20
+ export enum MeshNodeRuntimeState {
21
+ Preparing = 1,
22
+ Serving = 2,
23
+ Retiring = 3,
24
+ Draining = 4,
25
+ Stopped = 5,
26
+ Error = 6
27
+ }
28
+
29
+ export enum MeshPeerRuntimeState {
30
+ Connecting = 1,
31
+ Preparing = 2,
32
+ Serving = 3,
33
+ Draining = 4,
34
+ Closed = 5,
35
+ NotRequired = 6
36
+ }
14
37
 
15
38
  export interface MeshOperationId {
16
39
  readonly high: bigint;
@@ -167,6 +190,18 @@ export interface ActorTransferControlPayload {
167
190
  readonly failureErrno: number;
168
191
  }
169
192
 
193
+ /** The Session owner's registry view of one Session binding (Session–Actor binding §5-2). */
194
+ export interface ServiceStreamSessionBinding {
195
+ readonly sessionRid: RoutingId;
196
+ readonly actor: ServiceActorRef;
197
+ readonly sessionOwnerNodeRid: RoutingId;
198
+ readonly sessionOwnerNodeGeneration: bigint;
199
+ readonly sessionOwnerId: string;
200
+ readonly sessionOwnerLeaseGeneration: bigint;
201
+ readonly bindingGeneration: bigint;
202
+ readonly membershipEpoch: bigint;
203
+ }
204
+
170
205
  export interface ActorBindingControlPayload {
171
206
  readonly kind: 'actorBinding';
172
207
  readonly transition: 'active' | 'tombstone';
@@ -235,8 +270,14 @@ export interface ReceiveRecord {
235
270
  readonly isPending?: () => boolean;
236
271
  /** Absolute deadline used by the local lifecycle dispatch fence. */
237
272
  readonly deadlineUnixMs?: bigint;
273
+ readonly activationRecord?: Extract<
274
+ import('./service-stateful-wire-codec').ServiceStatefulWireRecord,
275
+ { readonly kind: 'instanceSpot' }
276
+ >;
238
277
  readonly messageFollowOrigin?: ZLinkMessageFollowOrigin;
239
278
  readonly onTerminalCompletion?: () => void | Promise<void>;
279
+ /** Marks the start of the first handler turn whose terminal record a Close waits for. */
280
+ readonly onHandlerTurnStarted?: () => void;
240
281
  readonly applicationJobPermit?: ApplicationJobPermitPort;
241
282
  readonly releaseRetainedIngress?: () => void;
242
283
  reply(parts: MessageLike | readonly MessageLike[], flags?: number): SubmitResult;
@@ -344,12 +385,7 @@ export interface StreamSessionService {
344
385
  expectedBindingGeneration: bigint,
345
386
  timeoutMs?: number
346
387
  ): MeshOperationId;
347
- bindings(sessionRid: RoutingId): ReadonlyArray<{
348
- readonly sessionRid: RoutingId;
349
- readonly actor: ServiceActorRef;
350
- readonly bindingGeneration: bigint;
351
- readonly membershipEpoch: bigint;
352
- }>;
388
+ bindings(sessionRid: RoutingId): ReadonlyArray<ServiceStreamSessionBinding>;
353
389
  sendToActor(
354
390
  sessionRid: RoutingId,
355
391
  actor: ServiceActorRef,
@@ -1,30 +1,5 @@
1
- export interface ServiceSessionBindingRetainedDelivery {
2
- deliver(): Promise<boolean>;
3
- fail(error: unknown): void;
4
- }
5
-
6
- export interface ServiceSessionBindingAdmissionClaim {
7
- readonly actorId: string;
8
- readonly objectGeneration: bigint;
9
- readonly actorNodeRid: string;
10
- readonly actorNodeGeneration: bigint;
11
- readonly authorityOwnerGeneration: bigint;
12
- readonly ownerLeaseGeneration: bigint;
13
- readonly producerNodeRid: string;
14
- readonly producerNodeGeneration: bigint;
15
- readonly sessionIdentity: string;
16
- readonly bindingGeneration: bigint;
17
- }
18
-
19
- export type ServiceSessionBindingAdmissionResult = 'passThrough' | 'retained' | 'rejected';
20
-
21
1
  export interface ServiceSessionBindingIngressPort {
22
2
  actorSlot(actorId: string, sessionRid: string): Promise<number | undefined>;
23
- retainOutbound(
24
- claim: ServiceSessionBindingAdmissionClaim,
25
- delivery: ServiceSessionBindingRetainedDelivery
26
- ): Promise<ServiceSessionBindingAdmissionResult>;
27
- clearOutbound(actorId: string, error: unknown): Promise<void>;
28
3
  }
29
4
 
30
5
  const ports = new WeakMap<object, ServiceSessionBindingIngressPort>();
@@ -1,3 +1,4 @@
1
+ import { ZLINK_MAX_IDENTITY_TEXT_BYTES } from '../../contracts/Common/CoreTypes';
1
2
  import { OperationRegistry, type PendingOperation } from './operation-registry';
2
3
 
3
4
  export type ServiceSpotKind = 'entry' | 'user' | 'instance';
@@ -325,6 +326,7 @@ export class ServiceStatefulRegistry {
325
326
  );
326
327
  this.actorTypes.set(actor.actorId, stableType);
327
328
  this.actors.set(actor.actorId, restored);
329
+ this.updateBindingMembership(restored);
328
330
  return restored;
329
331
  }
330
332
 
@@ -649,6 +651,14 @@ export class ServiceTerminalOperationRegistry<T> {
649
651
  return this.operations.isPending(id);
650
652
  }
651
653
 
654
+ get size(): number {
655
+ return this.operations.size;
656
+ }
657
+
658
+ expire(nowMs: number, turnDeadlineMs: number): number {
659
+ return this.operations.expire(nowMs, turnDeadlineMs);
660
+ }
661
+
652
662
  close(): void {
653
663
  this.operations.close('Stateful runtime closed.');
654
664
  }
@@ -660,8 +670,10 @@ function actorKey(actor: ServiceActorRef): string {
660
670
 
661
671
  function requireText(value: string, name: string): void {
662
672
  const bytes = Buffer.byteLength(value);
663
- if (bytes < 1 || bytes > 255 || value.includes('\0')) {
664
- throw new RangeError(`${name} must be 1..255 UTF-8 bytes without NUL.`);
673
+ if (bytes < 1 || bytes > ZLINK_MAX_IDENTITY_TEXT_BYTES || value.includes('\0')) {
674
+ throw new RangeError(
675
+ `${name} must be 1..${ZLINK_MAX_IDENTITY_TEXT_BYTES} UTF-8 bytes without NUL.`
676
+ );
665
677
  }
666
678
  }
667
679