@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
@@ -6,35 +6,35 @@ import type {
6
6
  ZLinkSpot,
7
7
  ZLinkSpotActorJoinResult
8
8
  } from '../../contracts';
9
+ import type { Message } from '../../contracts/Common/Message';
9
10
  import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
10
- import { ZLinkBackendSpotDispatchEvent } from '../backend/contracts';
11
- import type {
12
- ZLinkBackendActorRef,
13
- ZLinkBackendActorRecvInfo,
14
- ZLinkBackendReceived,
15
- ZLinkBackendSpot,
16
- ZLinkBackendTopicMessage
11
+ import type { ZLinkRemoteBoundSessionTarget } from '../actors';
12
+ import type { ZLinkActorHandoffPacket, ZLinkActorHandoffResult } from '../actors/actor-handoff';
13
+ import type { ZLinkApplicationWorkClaim } from '../admission';
14
+ import {
15
+ type ZLinkBackendActorRecvInfo,
16
+ type ZLinkBackendActorRef,
17
+ type ZLinkBackendSpot,
18
+ type ZLinkBackendTopicMessage,
19
+ ZLinkBackendSpotDispatchEvent
17
20
  } from '../backend/contracts';
18
- import type { Message } from '../../contracts/Common/Message';
21
+
19
22
  import type { RequestResult } from '../backend/runtime-values';
20
- type RuntimeMessage = Message;
21
- import type { ZLinkRemoteBoundSessionTarget } from '../actors';
22
23
  import type { ZLinkDispatchErrorReporter } from '../channels';
23
24
  import { ZLinkSpotActorLifecycleDrain } from './spot-actor-lifecycle-drain';
25
+ import type { ZLinkActorPacketDelivery } from './spot-actor-packet-dispatch';
24
26
  import { ZLinkSpotActorPacketDrain, type ZLinkActorDispatchPart } from './spot-actor-packet-drain';
25
- import { ZLINK_RECV_DONT_WAIT } from './spot-native-flags';
26
- import { ZLinkSpotNativeActorJoinAdmission } from './spot-native-actor-join-admission';
27
- import { ZLinkSpotRoutedFrameDispatch } from './spot-routed-frame-dispatch';
28
- import { ZLinkSpotSubscriptionDispatch } from './spot-subscription-dispatch';
29
27
  import type { ZLinkSpotHandlerRegistration } from './spot-handler-registry';
30
- import type { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
31
- import type { ZLinkApplicationWorkClaim } from '../admission';
32
- import type { ZLinkActorHandoffPacket, ZLinkActorHandoffResult } from '../actors/actor-handoff';
33
- import type { ZLinkActorPacketDelivery } from './spot-actor-packet-dispatch';
28
+ import { ZLinkSpotRoutedFrameDispatch } from './spot-routed-frame-dispatch';
34
29
  import type {
35
30
  ZLinkSpotActorTransferRuntime,
36
31
  ZLinkSpotBoundSessionRuntime
37
32
  } from './spot-runtime-ports';
33
+ import type { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
34
+ import { ZLinkSpotSubscriptionDispatch } from './spot-subscription-dispatch';
35
+ const ACTOR_JOIN_POLL_INTERVAL_MS = 5;
36
+
37
+ type RuntimeMessage = Message;
38
38
 
39
39
  const ZLINK_SPOT_DISPATCH_SUBJECT_SPOT = 1;
40
40
  const ZLINK_SPOT_DISPATCH_SUBJECT_CHANNEL_DEALER = 3;
@@ -63,11 +63,11 @@ interface ZLinkSpotActorAdmissionRuntime {
63
63
  readonly kind: 'enabled';
64
64
  readonly runtime: ZLinkSpotActorTransferRuntime;
65
65
  };
66
- readonly commitNativeActor?: (actor: ZLinkActor) => Promise<void>;
67
66
  readonly commitActorDeparture?: (actorId: string) => void;
68
67
  readonly commitTransferredActor?: (
69
68
  actor: ZLinkActor,
70
- backlog: readonly ZLinkActorHandoffPacket[]
69
+ backlog: readonly ZLinkActorHandoffPacket[],
70
+ sealedSession: ZLinkRemoteBoundSessionTarget | undefined
71
71
  ) => Promise<readonly ZLinkActorHandoffResult[]>;
72
72
  }
73
73
 
@@ -76,8 +76,7 @@ interface ZLinkSpotActorPacketRuntime {
76
76
  readonly bindRemoteSession?: (
77
77
  actor: ZLinkBackendActorRef,
78
78
  sourceNodeRid: RoutingId,
79
- sourceSessionRid: RoutingId,
80
- declaredTarget?: ZLinkRemoteBoundSessionTarget
79
+ sourceSessionRid: RoutingId
81
80
  ) => void;
82
81
  readonly replyNoBind?: (
83
82
  info: ZLinkBackendActorRecvInfo,
@@ -92,7 +91,6 @@ export interface ZLinkDetachedTaskRunner {
92
91
 
93
92
  interface ZLinkSpotActorJoinDispatchOptions {
94
93
  readonly nativeSpot: ZLinkBackendSpot;
95
- readonly createReceived: () => ZLinkBackendReceived;
96
94
  readonly createTopicMessage: () => ZLinkBackendTopicMessage;
97
95
  readonly serial: ZLinkSpotSerialTurnExecutor;
98
96
  readonly actors: ZLinkSpotActorAdmissionRuntime;
@@ -106,13 +104,10 @@ interface ZLinkSpotActorJoinDispatchOptions {
106
104
  }
107
105
 
108
106
  export class ZLinkSpotActorJoinDispatch {
109
- private draining = false;
110
- private redrainRequested = false;
111
107
  private readonly nativeSpotId: string;
112
108
  private readonly subscriptions: ZLinkSpotSubscriptionDispatch;
113
109
  private readonly actorLifecycleDrain: ZLinkSpotActorLifecycleDrain;
114
110
  private readonly actorPacketDrain: ZLinkSpotActorPacketDrain;
115
- private readonly nativeActorJoinAdmission: ZLinkSpotNativeActorJoinAdmission;
116
111
  private readonly routedFrames: ZLinkSpotRoutedFrameDispatch;
117
112
  private readonly nativeSpot: ZLinkBackendSpot;
118
113
 
@@ -137,19 +132,7 @@ export class ZLinkSpotActorJoinDispatch {
137
132
  waitIdle: waitSpotDispatchIdle,
138
133
  flowEnabled: () => options.dispatchErrors?.flow.flowCreationEnabled() ?? true
139
134
  });
140
- this.nativeActorJoinAdmission = new ZLinkSpotNativeActorJoinAdmission({
141
- nativeSpot: options.nativeSpot,
142
- serial: options.serial,
143
- resolveActor: actors.resolveActor,
144
- getTarget: actors.getTarget,
145
- defaultAccept: actors.defaultAccept,
146
- commitAcceptedActor: actors.commitNativeActor,
147
- messageSerializers: options.messageSerializers,
148
- dispatchErrors: options.dispatchErrors
149
- });
150
135
  this.routedFrames = new ZLinkSpotRoutedFrameDispatch({
151
- nativeSpot: options.nativeSpot,
152
- createReceived: options.createReceived,
153
136
  nativeSpotId: this.nativeSpotId,
154
137
  serial: options.serial,
155
138
  resolveActor: actors.resolveActor,
@@ -161,7 +144,7 @@ export class ZLinkSpotActorJoinDispatch {
161
144
  bindRemoteSession:
162
145
  options.packets?.bindRemoteSession === undefined
163
146
  ? undefined
164
- : (actor, sourceNodeRid, sourceSessionRid, declaredTarget) =>
147
+ : (actor, sourceNodeRid, sourceSessionRid) =>
165
148
  options.packets!.bindRemoteSession!(
166
149
  {
167
150
  actorId: actor.actorId,
@@ -169,8 +152,7 @@ export class ZLinkSpotActorJoinDispatch {
169
152
  nodeRid: actor.nodeRid
170
153
  },
171
154
  sourceNodeRid,
172
- sourceSessionRid,
173
- declaredTarget
155
+ sourceSessionRid
174
156
  ),
175
157
  routedBoundSessionReceiver: options.boundSessionRuntime?.receiveRoutedBoundSession.bind(
176
158
  options.boundSessionRuntime
@@ -189,8 +171,7 @@ export class ZLinkSpotActorJoinDispatch {
189
171
  messageSerializers: options.messageSerializers,
190
172
  providerResolver: options.providerResolver,
191
173
  dispatchErrors: options.dispatchErrors,
192
- claimApplicationWork: options.claimApplicationWork,
193
- waitIdle: waitSpotDispatchIdle
174
+ claimApplicationWork: options.claimApplicationWork
194
175
  });
195
176
  this.subscriptions = new ZLinkSpotSubscriptionDispatch({
196
177
  nativeSpot: options.nativeSpot,
@@ -226,10 +207,6 @@ export class ZLinkSpotActorJoinDispatch {
226
207
  return;
227
208
  }
228
209
  this.nativeSpot.setDispatchHandler((info) => {
229
- if (info.event === ZLinkBackendSpotDispatchEvent.ActorJoinReadable) {
230
- this.runDetached('spot actor join drain', () => this.drain());
231
- return;
232
- }
233
210
  if (info.event === ZLinkBackendSpotDispatchEvent.SubscribeReadable) {
234
211
  this.runDetached('spot subscription drain', () => this.subscriptions.drain());
235
212
  return;
@@ -281,39 +258,8 @@ export class ZLinkSpotActorJoinDispatch {
281
258
  }
282
259
  void callback().catch(() => undefined);
283
260
  }
284
-
285
- private async drain(): Promise<void> {
286
- if (this.draining) {
287
- this.redrainRequested = true;
288
- return;
289
- }
290
- this.draining = true;
291
- try {
292
- do {
293
- this.redrainRequested = false;
294
- await this.drainAvailableActorJoins();
295
- } while (this.redrainWasRequested());
296
- } finally {
297
- this.draining = false;
298
- }
299
- }
300
-
301
- private redrainWasRequested(): boolean {
302
- return this.redrainRequested;
303
- }
304
-
305
- private async drainAvailableActorJoins(): Promise<void> {
306
- for (;;) {
307
- const request = this.nativeSpot.recvActorJoin(ZLINK_RECV_DONT_WAIT);
308
- if (request === null) {
309
- await waitSpotDispatchIdle();
310
- return;
311
- }
312
- await this.nativeActorJoinAdmission.admit(request);
313
- }
314
- }
315
261
  }
316
262
 
317
263
  function waitSpotDispatchIdle(): Promise<void> {
318
- return new Promise((resolve) => setTimeout(resolve, 5));
264
+ return new Promise((resolve) => setTimeout(resolve, ACTOR_JOIN_POLL_INTERVAL_MS));
319
265
  }
@@ -53,25 +53,27 @@ export class ZLinkSpotActorLifecycleDrain {
53
53
  continue;
54
54
  }
55
55
  if (actorRef === null || actorRef === undefined) continue;
56
- await this.options.serial.execute(() => {
57
- const actor = this.options.resolveActor(actorId);
58
- if (actor === undefined) {
56
+ await this.options.serial.executeLifecycleOperation(() =>
57
+ this.options.serial.execute(() => {
58
+ const actor = this.options.resolveActor(actorId);
59
+ if (actor === undefined) {
60
+ return undefined;
61
+ }
62
+ const target = this.options.getTarget();
63
+ if (event.kind === ZLINK_SPOT_ACTOR_LIFECYCLE_JOINED) {
64
+ return target.onJoinedActor?.(actor);
65
+ }
66
+ if (event.kind === ZLINK_SPOT_ACTOR_LIFECYCLE_LEFT) {
67
+ return Promise.resolve(target.onLeaveActor?.(actor)).then(() => {
68
+ this.options.commitActorDeparture?.(actorId);
69
+ });
70
+ }
71
+ if (event.kind === ZLINK_SPOT_ACTOR_LIFECYCLE_DISCONNECTED) {
72
+ return target.onDisconnectActor?.(actor);
73
+ }
59
74
  return undefined;
60
- }
61
- const target = this.options.getTarget();
62
- if (event.kind === ZLINK_SPOT_ACTOR_LIFECYCLE_JOINED) {
63
- return target.onJoinedActor?.(actor);
64
- }
65
- if (event.kind === ZLINK_SPOT_ACTOR_LIFECYCLE_LEFT) {
66
- return Promise.resolve(target.onLeaveActor?.(actor)).then(() => {
67
- this.options.commitActorDeparture?.(actorId);
68
- });
69
- }
70
- if (event.kind === ZLINK_SPOT_ACTOR_LIFECYCLE_DISCONNECTED) {
71
- return target.onDisconnectActor?.(actor);
72
- }
73
- return undefined;
74
- });
75
+ })
76
+ );
75
77
  }
76
78
  }
77
79
  }
@@ -1,23 +1,31 @@
1
- import type {
2
- RoutingId,
3
- ZLinkActor,
4
- ZLinkMessageSerializer,
5
- ZLinkSpot,
6
- ZLinkSpotActorJoinResult
1
+ import { ZlinkStreamContentType } from '@zlink-systems/stream-wire';
2
+ import {
3
+ type RoutingId,
4
+ type ZLinkActor,
5
+ type ZLinkMessageSerializer,
6
+ type ZLinkSpot,
7
+ type ZLinkSpotActorJoinResult,
8
+ ZLinkEncodedPayload,
9
+ ZLinkMessage
7
10
  } from '../../contracts';
11
+
12
+ import type { Message } from '../../contracts/Common/Message';
8
13
  import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
9
- import { ZLinkEncodedPayload, ZLinkMessage } from '../../contracts';
14
+ import {
15
+ ZLinkDispatchErrorSurface,
16
+ ZLinkDispatchMessageKind,
17
+ ZLinkRuntimeDispatchErrorAction,
18
+ ZLinkRuntimeDispatchErrorReason
19
+ } from '../../contracts/Dispatch/ZLinkDispatchOptions';
10
20
  import { throwIfAborted } from '../abort';
11
- import type { Message } from '../../contracts/Common/Message';
21
+ import { ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME, ZLinkSpotActorDispatcher } from '../actors';
12
22
  import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
13
- import { ZLinkConfigurationException } from '../configuration';
14
23
  import { ZLinkDispatchErrorReporter } from '../channels';
15
- import { ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME, ZLinkSpotActorDispatcher } from '../actors';
24
+ import { ZLinkConfigurationException } from '../configuration';
16
25
  import { encodeFrameworkPayloadMessage } from '../messaging/payload-codec';
17
- import { routingIdsEqual } from '../routing-id';
18
26
  import type { ZLinkSpotActivation } from './spot-activation-state';
19
- import type { ZLinkSpotActorTransferRuntime } from './spot-runtime-ports';
20
27
  import type { ZLinkSpotRouteResolver } from './spot-routing-internal';
28
+ import type { ZLinkSpotActorTransferRuntime } from './spot-runtime-ports';
21
29
 
22
30
  export interface ZLinkSpotActorMembershipOptions {
23
31
  readonly resolveActivation: (
@@ -39,8 +47,6 @@ export interface ZLinkSpotActorMembershipOptions {
39
47
  readonly actorTransferRuntime?: ZLinkSpotActorTransferRuntime;
40
48
  }
41
49
 
42
- export type ZLinkActorJoinRollback = () => Promise<void> | void;
43
-
44
50
  export class ZLinkSpotActorMembership {
45
51
  constructor(private readonly options: ZLinkSpotActorMembershipOptions) {}
46
52
 
@@ -48,43 +54,58 @@ export class ZLinkSpotActorMembership {
48
54
  spotId: RoutingId,
49
55
  actor: ZLinkActor,
50
56
  request: Message,
51
- commit: (
52
- spot: ZLinkSpot
53
- ) => Promise<ZLinkActorJoinRollback | void> | ZLinkActorJoinRollback | void,
57
+ commit: (spot: ZLinkSpot) => Promise<void> | void,
54
58
  signal?: AbortSignal,
55
59
  leaveSource?: () => Promise<void>,
56
- contentType = 'application/json'
60
+ contentType: string = ZlinkStreamContentType.Json
57
61
  ): Promise<ZLinkSpotActorJoinResult> {
58
62
  throwIfAborted(signal);
59
63
  const activation = this.requireActivation(spotId);
64
+ return await this.runLifecycleOperation(activation, async () => {
65
+ return await this.admitActorJoinCore(
66
+ activation,
67
+ actor,
68
+ request,
69
+ commit,
70
+ signal,
71
+ leaveSource,
72
+ contentType
73
+ );
74
+ });
75
+ }
76
+
77
+ private async admitActorJoinCore(
78
+ activation: ZLinkSpotActivation,
79
+ actor: ZLinkActor,
80
+ request: Message,
81
+ commit: (spot: ZLinkSpot) => Promise<void> | void,
82
+ signal: AbortSignal | undefined,
83
+ leaveSource: (() => Promise<void>) | undefined,
84
+ contentType: string
85
+ ): Promise<ZLinkSpotActorJoinResult> {
60
86
  const dispatcher = this.createActorDispatcher(activation);
61
- const transaction: {
62
- rollbackExternal?: ZLinkActorJoinRollback;
63
- rollbackMembership?: () => void;
64
- committed: boolean;
65
- } = { committed: false };
66
- let response: ZLinkSpotActorJoinResult;
67
- try {
68
- response = await dispatcher.evaluateActorJoin(actor, request, contentType);
69
- if (response.accepted) {
87
+ const response = await dispatcher.evaluateActorJoin(actor, request, contentType);
88
+ if (response.accepted) {
89
+ await commit(activation.spot);
90
+ activation.commitActorJoin(actor);
91
+ try {
92
+ await dispatcher.notifyJoinActor(actor);
93
+ } finally {
70
94
  if (leaveSource === undefined) {
71
- await this.options.entrySpotCallbacks?.onLeaveActor(actor, signal);
95
+ void this.options.entrySpotCallbacks?.onLeaveActor(actor, signal).catch((error) => {
96
+ this.options.dispatchErrors?.report({
97
+ surface: ZLinkDispatchErrorSurface.SpotActor,
98
+ messageKind: ZLinkDispatchMessageKind.ActorSend,
99
+ reason: ZLinkRuntimeDispatchErrorReason.HandlerException,
100
+ action: ZLinkRuntimeDispatchErrorAction.Drop,
101
+ actorId: actor.context.actorId,
102
+ error
103
+ });
104
+ });
72
105
  } else {
73
106
  await leaveSource();
74
107
  }
75
- await dispatcher.commitActorJoin(actor, async () => {
76
- const rollback = await commit(activation.spot);
77
- if (rollback !== undefined) transaction.rollbackExternal = rollback;
78
- transaction.rollbackMembership = activation.commitActorJoin(actor);
79
- transaction.committed = true;
80
- });
81
- }
82
- } catch (error) {
83
- if (transaction.committed) {
84
- transaction.rollbackMembership?.();
85
- await transaction.rollbackExternal?.();
86
108
  }
87
- throw error;
88
109
  }
89
110
  return {
90
111
  accepted: response.accepted,
@@ -103,6 +124,17 @@ export class ZLinkSpotActorMembership {
103
124
  ): Promise<void> {
104
125
  throwIfAborted(signal);
105
126
  const activation = this.requireActivation(spotId, meshName);
127
+ await this.runLifecycleOperation(activation, () =>
128
+ this.leaveActorCore(activation, actor, signal, meshName)
129
+ );
130
+ }
131
+
132
+ private async leaveActorCore(
133
+ activation: ZLinkSpotActivation,
134
+ actor: ZLinkActor,
135
+ signal?: AbortSignal,
136
+ meshName?: string
137
+ ): Promise<void> {
106
138
  const localEntryNodeRid =
107
139
  (meshName === undefined ? undefined : this.options.nodeRidProvider?.(meshName)) ??
108
140
  this.options.entryNodeRidProvider?.() ??
@@ -123,24 +155,6 @@ export class ZLinkSpotActorMembership {
123
155
  'Spot actor leave requires an Entry Spot node routing id.'
124
156
  );
125
157
  }
126
- const remoteEntry =
127
- localEntryNodeRid !== undefined && !routingIdsEqual(entryNodeRid, localEntryNodeRid);
128
- if (!remoteEntry) {
129
- const leaveSource = async () => {
130
- activation.beginActorTransfer(actor.context.actorId);
131
- await activation.spot.onLeaveActor(actor);
132
- activation.commitActorDeparture(actor.context.actorId);
133
- this.options.actorTransferRuntime?.clearRoutedActor(actor);
134
- };
135
- // A Spot actor handler already owns this activation's serial turn.
136
- // Complete its lifecycle transition inside that turn instead of trying
137
- // to acquire a second turn for the same owner.
138
- if (activation.serial.isCurrentTurn) {
139
- await leaveSource();
140
- } else {
141
- await activation.serial.execute(leaveSource);
142
- }
143
- }
144
158
  const request = RuntimeMessage.from(Buffer.alloc(0));
145
159
  try {
146
160
  const context = actor.context as typeof actor.context & {
@@ -177,11 +191,13 @@ export class ZLinkSpotActorMembership {
177
191
  ): Promise<void> {
178
192
  throwIfAborted(signal);
179
193
  const activation = this.requireActivation(spotId);
180
- await activation.serial.execute(async () => {
181
- activation.beginActorTransfer(actor.context.actorId);
182
- await activation.spot.onLeaveActor(actor);
183
- activation.commitActorDeparture(actor.context.actorId);
184
- });
194
+ await this.runLifecycleOperation(activation, () =>
195
+ activation.serial.execute(async () => {
196
+ activation.beginActorTransfer(actor.context.actorId);
197
+ await activation.spot.onLeaveActor(actor);
198
+ activation.commitActorDeparture(actor.context.actorId);
199
+ })
200
+ );
185
201
  }
186
202
 
187
203
  async prepareActorLeaveForTransfer(
@@ -191,12 +207,16 @@ export class ZLinkSpotActorMembership {
191
207
  ): Promise<void> {
192
208
  throwIfAborted(signal);
193
209
  const activation = this.requireActivation(spotId);
194
- await activation.serial.execute(() => activation.spot.onLeaveActor(actor));
210
+ await this.runLifecycleOperation(activation, () =>
211
+ activation.serial.execute(() => activation.spot.onLeaveActor(actor))
212
+ );
195
213
  }
196
214
 
197
215
  async commitActorLeaveAfterTransfer(spotId: RoutingId, actorId: string): Promise<void> {
198
216
  const activation = this.requireActivation(spotId);
199
- await activation.serial.execute(() => activation.commitActorDeparture(actorId));
217
+ await this.runLifecycleOperation(activation, () =>
218
+ activation.serial.execute(() => activation.commitActorDeparture(actorId))
219
+ );
200
220
  }
201
221
 
202
222
  async restoreActorAfterFailedTransfer(
@@ -206,24 +226,26 @@ export class ZLinkSpotActorMembership {
206
226
  ): Promise<void> {
207
227
  throwIfAborted(signal);
208
228
  const activation = this.requireActivation(spotId);
209
- await activation.serial.execute(async () => {
210
- activation.cancelActorTransfer(actor.context.actorId);
211
- await activation.spot.onJoinedActor(actor);
212
- });
229
+ await this.runLifecycleOperation(activation, () =>
230
+ activation.serial.execute(async () => {
231
+ activation.cancelActorTransfer(actor.context.actorId);
232
+ await activation.spot.onJoinedActor(actor);
233
+ })
234
+ );
213
235
  }
214
236
 
215
237
  async beginActorTransfer(spotId: RoutingId, actorId: string): Promise<void> {
216
238
  const activation = this.requireActivation(spotId);
217
- await activation.serial.execute(() => {
218
- activation.beginActorTransfer(actorId);
219
- });
239
+ await this.runLifecycleOperation(activation, () =>
240
+ activation.serial.execute(() => activation.beginActorTransfer(actorId))
241
+ );
220
242
  }
221
243
 
222
244
  async cancelActorTransfer(spotId: RoutingId, actorId: string): Promise<void> {
223
245
  const activation = this.requireActivation(spotId);
224
- await activation.serial.execute(() => {
225
- activation.cancelActorTransfer(actorId);
226
- });
246
+ await this.runLifecycleOperation(activation, () =>
247
+ activation.serial.execute(() => activation.cancelActorTransfer(actorId))
248
+ );
227
249
  }
228
250
 
229
251
  async notifyJoinedActorDisconnected(
@@ -252,6 +274,16 @@ export class ZLinkSpotActorMembership {
252
274
  return activation;
253
275
  }
254
276
 
277
+ private async runLifecycleOperation<T>(
278
+ activation: ZLinkSpotActivation,
279
+ operation: () => Promise<T> | T
280
+ ): Promise<T> {
281
+ const pending = activation.serial.executeLifecycleOperation(operation);
282
+ return activation.serial.isCurrentTurn
283
+ ? await activation.serial.currentTurn!.yieldFrameworkPromise(pending)
284
+ : await pending;
285
+ }
286
+
255
287
  private createActorDispatcher(activation: ZLinkSpotActivation): ZLinkSpotActorDispatcher {
256
288
  return new ZLinkSpotActorDispatcher({
257
289
  registry: activation.actorHandlers,
@@ -24,7 +24,6 @@ import { createInboundFlow, currentFlowContext, runWithFlow } from '../diagnosti
24
24
  import { streamSessionIdFromRoutingId } from '../streams/managed-stream';
25
25
  import type { ZLinkRemoteBoundSessionTarget } from '../actors';
26
26
  import {
27
- actorMessageFollowContext,
28
27
  ZLINK_REMOTE_ACTOR_SESSION_DISCONNECTED_PACKET,
29
28
  ZLinkSpotActorDispatcher,
30
29
  ZLinkSpotActorHandlerRegistryRuntime
@@ -104,10 +103,6 @@ interface ZLinkSpotActorPacketDispatchOptions {
104
103
  | Promise<{ readonly handled: boolean; readonly response?: unknown } | undefined>
105
104
  | { readonly handled: boolean; readonly response?: unknown }
106
105
  | undefined;
107
- readonly onRemoteBoundSessionTarget?: (
108
- actorId: string,
109
- target: ZLinkRemoteBoundSessionTarget | undefined
110
- ) => void;
111
106
  readonly onDisconnectActor: (actor: ZLinkActor) => Promise<void>;
112
107
  readonly actorResponseSender?: (
113
108
  actor: ZLinkActor,
@@ -210,16 +205,6 @@ export class ZLinkSpotActorPacketDispatch {
210
205
  ) {
211
206
  return undefined;
212
207
  }
213
- if (
214
- remoteBoundSessionTarget !== undefined &&
215
- actorMessageFollowContext(fallbackActorRef) === undefined
216
- ) {
217
- // A replayed handoff/Message Follow packet keeps its captured Session
218
- // route solely for that packet's response. It cannot republish the
219
- // predecessor route over a binding already confirmed by a later Actor
220
- // owner turn.
221
- this.options.onRemoteBoundSessionTarget?.(actorId, remoteBoundSessionTarget);
222
- }
223
208
  const routed = await this.options.routeBeforeLocal?.(delivery);
224
209
  if (routed?.handled === true) {
225
210
  return routed.response;
@@ -239,7 +224,6 @@ export class ZLinkSpotActorPacketDispatch {
239
224
  );
240
225
  }
241
226
  if (header.name === ZLINK_REMOTE_ACTOR_SESSION_DISCONNECTED_PACKET) {
242
- this.options.onRemoteBoundSessionTarget?.(actorId, undefined);
243
227
  await this.options.onDisconnectActor(actor);
244
228
  return undefined;
245
229
  }
@@ -5,7 +5,7 @@ import {
5
5
  import { ZLinkFrameworkException, type ActorRef, type RoutingId } from '../../contracts';
6
6
  import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
7
7
  import type { ZLinkBackendReceived as BackendReceived } from '../backend/runtime-values';
8
- import type { ZLinkRemoteActorPacketTarget, ZLinkRemoteBoundSessionTarget } from '../actors';
8
+ import type { ZLinkRemoteActorPacketTarget } from '../actors';
9
9
  import { decodeStreamHeader, messageToBytes, ZLinkStreamMessageKind } from '../streams/protocol';
10
10
  import {
11
11
  decodeRemoteActorSessionBinding,
@@ -25,8 +25,7 @@ interface ZLinkSpotActorPacketRelayDispatchOptions {
25
25
  readonly bindRemoteSession?: (
26
26
  actor: ActorRef,
27
27
  sourceNodeRid: RoutingId,
28
- sourceSessionRid: RoutingId,
29
- declaredTarget?: ZLinkRemoteBoundSessionTarget
28
+ sourceSessionRid: RoutingId
30
29
  ) => void;
31
30
  readonly flowEnabled?: () => boolean;
32
31
  }
@@ -81,18 +80,7 @@ export class ZLinkSpotActorPacketRelayDispatch {
81
80
  'Remote actor session binding source did not match the declared session node.'
82
81
  );
83
82
  }
84
- this.options.bindRemoteSession(
85
- actorRef,
86
- declaredSourceNodeRid,
87
- binding.sessionRid,
88
- remoteBoundSessionTarget === undefined
89
- ? undefined
90
- : {
91
- ...remoteBoundSessionTarget,
92
- sessionNodeRid: declaredSourceNodeRid,
93
- sessionRid: binding.sessionRid
94
- }
95
- );
83
+ this.options.bindRemoteSession(actorRef, declaredSourceNodeRid, binding.sessionRid);
96
84
  if (hasReplyToken(received.replyToken)) {
97
85
  submitSpotRouteBridgeReply(received, actorPacketRelay.envelope, {
98
86
  ok: true,
@@ -26,7 +26,7 @@ import type { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
26
26
 
27
27
  interface ZLinkEntrySpotContextOptions {
28
28
  readonly spotId: SpotId;
29
- readonly objectGeneration: number;
29
+ readonly objectGeneration: bigint;
30
30
  readonly nodeRid: RoutingId;
31
31
  readonly handlers: ZLinkSpotHandlerRegistry;
32
32
  readonly outbound: ZLinkSpotOutbound;
@@ -47,7 +47,7 @@ interface ZLinkEntrySpotContextOptions {
47
47
  interface ZLinkSpotContextOptions {
48
48
  readonly meshName: string;
49
49
  readonly spotId: SpotId;
50
- readonly objectGeneration: number;
50
+ readonly objectGeneration: bigint;
51
51
  readonly handlers: ZLinkSpotHandlerRegistry;
52
52
  readonly outbound: ZLinkSpotOutbound;
53
53
  readonly timers: ZLinkSpotTimerRegistry;
@@ -263,7 +263,7 @@ function withImmutableSpotIdentity<
263
263
  T extends {
264
264
  readonly meshName: string;
265
265
  readonly spotId: SpotId;
266
- readonly objectGeneration: number;
266
+ readonly objectGeneration: bigint;
267
267
  readonly nodeRid: RoutingId;
268
268
  }
269
269
  >(context: T): T {