@zlink-systems/framework 0.26.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (561) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Actors/ZLinkActorClient.d.ts +1 -1
  3. package/dist/contracts/Channels/Calls.d.ts +1 -1
  4. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  5. package/dist/contracts/Common/CoreTypes.js +7 -0
  6. package/dist/contracts/Common/index.d.ts +1 -1
  7. package/dist/contracts/Common/index.js +0 -1
  8. package/dist/contracts/Configuration/Builders.d.ts +0 -1
  9. package/dist/contracts/Configuration/Configs.d.ts +0 -1
  10. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  11. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  12. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  13. package/dist/contracts/Configuration/Registration.js +58 -36
  14. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  15. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  16. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  17. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  18. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -5
  19. package/dist/contracts/Configuration/RegistrationValidators.js +15 -14
  20. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  21. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  22. package/dist/contracts/Handlers/JsonContract.js +10 -4
  23. package/dist/contracts/Locations/Authority.d.ts +1 -1
  24. package/dist/contracts/Locations/Authority.js +3 -2
  25. package/dist/contracts/Locations/Options.js +1 -1
  26. package/dist/contracts/Locations/Stores.d.ts +12 -0
  27. package/dist/contracts/Locations/Stores.js +9 -0
  28. package/dist/contracts/Spots/Contracts.d.ts +2 -2
  29. package/dist/contracts/Streams/BoundSessionContracts.d.ts +1 -1
  30. package/dist/contracts/Streams/IZLinkSession.d.ts +2 -3
  31. package/dist/contracts/Streams/IZLinkSessionActor.d.ts +2 -2
  32. package/dist/internal.d.ts +4 -0
  33. package/dist/internal.js +15 -1
  34. package/dist/nest-integration.d.ts +4 -2
  35. package/dist/nest-integration.js +14 -4
  36. package/dist/runtime/abort.d.ts +1 -0
  37. package/dist/runtime/abort.js +8 -5
  38. package/dist/runtime/activation-admission.d.ts +1 -2
  39. package/dist/runtime/activation-admission.js +2 -6
  40. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  41. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  42. package/dist/runtime/actors/actor-client.d.ts +2 -2
  43. package/dist/runtime/actors/actor-client.js +49 -153
  44. package/dist/runtime/actors/actor-context.d.ts +3 -5
  45. package/dist/runtime/actors/actor-context.js +13 -11
  46. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  47. package/dist/runtime/actors/actor-handoff.js +8 -8
  48. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  49. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  50. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  51. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  52. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  53. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  54. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  55. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  56. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  57. package/dist/runtime/actors/actor-request-deadline.d.ts +1 -0
  58. package/dist/runtime/actors/actor-request-deadline.js +6 -0
  59. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  60. package/dist/runtime/actors/actor-routed-join-transport.d.ts +2 -3
  61. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  62. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  63. package/dist/runtime/actors/bound-session-wire.js +2 -7
  64. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  65. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  66. package/dist/runtime/actors/index.d.ts +9 -7
  67. package/dist/runtime/actors/index.js +87 -69
  68. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  69. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  70. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  71. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  72. package/dist/runtime/admission.d.ts +2 -0
  73. package/dist/runtime/admission.js +7 -1
  74. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  75. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  76. package/dist/runtime/backend/contracts/index.d.ts +7 -27
  77. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  78. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  79. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  80. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +3 -1
  81. package/dist/runtime/backend/node/node-backend-adapter-support.js +51 -10
  82. package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +1 -1
  83. package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +1 -2
  84. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  85. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  86. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  87. package/dist/runtime/backend/node/node-raw-binding-port.js +41 -34
  88. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  89. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  90. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  91. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  92. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  93. package/dist/runtime/backend/runtime-values.js +2 -0
  94. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  95. package/dist/runtime/channels/channel-clients.js +73 -59
  96. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  97. package/dist/runtime/channels/channel-envelope.d.ts +1 -1
  98. package/dist/runtime/channels/channel-envelope.js +51 -39
  99. package/dist/runtime/channels/channel-outbound-operations.d.ts +5 -2
  100. package/dist/runtime/channels/channel-outbound-operations.js +25 -42
  101. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  102. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  103. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  104. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  105. package/dist/runtime/channels/channel-runtime-manager.d.ts +4 -4
  106. package/dist/runtime/channels/channel-runtime-manager.js +13 -10
  107. package/dist/runtime/channels/channel-socket-options.js +3 -12
  108. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  109. package/dist/runtime/channels/channel-socket-registry.js +240 -177
  110. package/dist/runtime/channels/channel-transports.d.ts +21 -31
  111. package/dist/runtime/channels/channel-transports.js +80 -62
  112. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  113. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  114. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  115. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  116. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  117. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  118. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  119. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  120. package/dist/runtime/channels/local-spot-route-transport.d.ts +1 -1
  121. package/dist/runtime/channels/local-spot-route-transport.js +1 -3
  122. package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +1 -1
  123. package/dist/runtime/channels/router-socket-spot-route-transport.js +2 -2
  124. package/dist/runtime/channels/source-spot-router.d.ts +1 -1
  125. package/dist/runtime/channels/source-spot-router.js +2 -4
  126. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  127. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  128. package/dist/runtime/channels/spot-node-route-transport.d.ts +1 -1
  129. package/dist/runtime/channels/spot-node-route-transport.js +5 -5
  130. package/dist/runtime/channels/spot-route-bridge-transport.d.ts +1 -1
  131. package/dist/runtime/channels/spot-route-bridge-transport.js +2 -2
  132. package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +2 -4
  133. package/dist/runtime/channels/spot-route-dispatch-strategy.js +11 -12
  134. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  135. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  136. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  137. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  138. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  139. package/dist/runtime/diagnostics/flow-context.js +16 -2
  140. package/dist/runtime/diagnostics/index.d.ts +4 -2
  141. package/dist/runtime/diagnostics/index.js +14 -4
  142. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  143. package/dist/runtime/diagnostics/message-flow.js +10 -19
  144. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  145. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  146. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  147. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  148. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  149. package/dist/runtime/disposal.d.ts +5 -0
  150. package/dist/runtime/disposal.js +22 -0
  151. package/dist/runtime/execution/index.d.ts +12 -9
  152. package/dist/runtime/execution/index.js +58 -14
  153. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  154. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  155. package/dist/runtime/execution/state-lane.d.ts +8 -1
  156. package/dist/runtime/execution/state-lane.js +118 -3
  157. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  158. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  159. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  160. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  161. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  162. package/dist/runtime/foundation/operation-identity.js +9 -5
  163. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  164. package/dist/runtime/foundation/operation-registry.js +34 -44
  165. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  166. package/dist/runtime/foundation/raw-service-mesh-runtime.js +79 -94
  167. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  168. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  169. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  170. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  171. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  172. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  173. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  174. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  175. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  176. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  177. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  178. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  179. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  180. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  181. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  182. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  183. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  184. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  185. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  186. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  187. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  188. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  189. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  190. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  191. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  192. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  193. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  194. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  195. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  196. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  197. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  198. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  199. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  200. package/dist/runtime/framework-errors-internal.js +343 -122
  201. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  202. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  203. package/dist/runtime/host/actor-packet-relay.d.ts +11 -8
  204. package/dist/runtime/host/actor-packet-relay.js +54 -99
  205. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  206. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  207. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  208. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  209. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  210. package/dist/runtime/host/application-job-queue.js +16 -33
  211. package/dist/runtime/host/bound-session-relay.js +1 -1
  212. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  213. package/dist/runtime/host/index.d.ts +14 -13
  214. package/dist/runtime/host/index.js +190 -171
  215. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  216. package/dist/runtime/host/instance-activation-authority.js +17 -45
  217. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  218. package/dist/runtime/host/location-runtime-owner.js +2 -2
  219. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  220. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  221. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  222. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  223. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  224. package/dist/runtime/host/remote-bound-session-relay.js +15 -28
  225. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  226. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  227. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  228. package/dist/runtime/host/runtime-shutdown.js +18 -21
  229. package/dist/runtime/host/service-relocation-control.js +6 -1
  230. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  231. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  232. package/dist/runtime/host/spot-address-transport.d.ts +3 -12
  233. package/dist/runtime/host/spot-address-transport.js +78 -220
  234. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  235. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  236. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  237. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  238. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  239. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  240. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  241. package/dist/runtime/locations/authority-key-codec.js +4 -3
  242. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  243. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  244. package/dist/runtime/locations/creation-operation-id.js +6 -4
  245. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  246. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  247. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  248. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  249. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  250. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  251. package/dist/runtime/locations/key-codec.js +3 -2
  252. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  253. package/dist/runtime/locations/lease-tracker.js +7 -11
  254. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  255. package/dist/runtime/locations/lifecycle.js +2 -31
  256. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  257. package/dist/runtime/locations/location-store-failure.js +7 -0
  258. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  259. package/dist/runtime/locations/location-store-pages.js +13 -0
  260. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  261. package/dist/runtime/locations/location-store-repository.js +309 -336
  262. package/dist/runtime/locations/relocation-blob.js +18 -5
  263. package/dist/runtime/locations/resolvers.d.ts +5 -5
  264. package/dist/runtime/locations/resolvers.js +37 -28
  265. package/dist/runtime/locations/runtime.d.ts +5 -4
  266. package/dist/runtime/locations/runtime.js +123 -92
  267. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  268. package/dist/runtime/locations/spot-location-claims.js +42 -1
  269. package/dist/runtime/messaging/payload-codec.js +26 -20
  270. package/dist/runtime/messaging/request-deadline.d.ts +3 -0
  271. package/dist/runtime/messaging/request-deadline.js +39 -0
  272. package/dist/runtime/messaging/submission-result.d.ts +4 -0
  273. package/dist/runtime/messaging/submission-result.js +56 -1
  274. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  275. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  276. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  277. package/dist/runtime/spots/index.d.ts +14 -20
  278. package/dist/runtime/spots/index.js +302 -176
  279. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  280. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  281. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  282. package/dist/runtime/spots/spot-activation-state.js +2 -2
  283. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  284. package/dist/runtime/spots/spot-activation.js +49 -32
  285. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  286. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  287. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  288. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  289. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  290. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  291. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  292. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  293. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  294. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  295. package/dist/runtime/spots/spot-context.d.ts +2 -2
  296. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  297. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  298. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  299. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  300. package/dist/runtime/spots/spot-manager-public.js +5 -4
  301. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  302. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  303. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  304. package/dist/runtime/spots/spot-outbound.d.ts +7 -8
  305. package/dist/runtime/spots/spot-outbound.js +21 -23
  306. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  307. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  308. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  309. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  310. package/dist/runtime/spots/spot-route-replies.js +3 -1
  311. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  312. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  313. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  314. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  315. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  316. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  317. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  318. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  319. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  320. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  321. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  322. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  323. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  324. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  325. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +8 -4
  326. package/dist/runtime/streams/bound-actor-relay-sender.js +65 -41
  327. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  328. package/dist/runtime/streams/bound-session-service.js +12 -2
  329. package/dist/runtime/streams/index.d.ts +16 -17
  330. package/dist/runtime/streams/index.js +22 -23
  331. package/dist/runtime/streams/managed-stream.d.ts +5 -2
  332. package/dist/runtime/streams/managed-stream.js +20 -13
  333. package/dist/runtime/streams/native-fallback-bound-session.js +14 -19
  334. package/dist/runtime/streams/protocol.d.ts +6 -33
  335. package/dist/runtime/streams/protocol.js +38 -110
  336. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  337. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  338. package/dist/runtime/streams/session-calls.d.ts +6 -8
  339. package/dist/runtime/streams/session-calls.js +6 -22
  340. package/dist/runtime/streams/session-context.d.ts +10 -10
  341. package/dist/runtime/streams/session-context.js +25 -10
  342. package/dist/runtime/streams/session-requests.js +2 -1
  343. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  344. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  345. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  346. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  347. package/dist/runtime/workers/index.d.ts +2 -2
  348. package/dist/runtime/workers/index.js +5 -4
  349. package/package.json +3 -3
  350. package/src/contracts/Actors/ZLinkActorClient.ts +1 -1
  351. package/src/contracts/Channels/Calls.ts +1 -1
  352. package/src/contracts/Common/CoreTypes.ts +7 -0
  353. package/src/contracts/Common/index.ts +1 -1
  354. package/src/contracts/Configuration/Builders.ts +0 -1
  355. package/src/contracts/Configuration/Configs.ts +0 -1
  356. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  357. package/src/contracts/Configuration/Registration.ts +92 -48
  358. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  359. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -71
  360. package/src/contracts/Configuration/RegistrationTypes.ts +1 -5
  361. package/src/contracts/Configuration/RegistrationValidators.ts +19 -17
  362. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  363. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  364. package/src/contracts/Handlers/JsonContract.ts +14 -4
  365. package/src/contracts/Locations/Authority.ts +7 -3
  366. package/src/contracts/Locations/Options.ts +1 -1
  367. package/src/contracts/Locations/Stores.ts +14 -0
  368. package/src/contracts/Spots/Contracts.ts +2 -2
  369. package/src/contracts/Streams/BoundSessionContracts.ts +1 -1
  370. package/src/contracts/Streams/IZLinkSession.ts +2 -3
  371. package/src/contracts/Streams/IZLinkSessionActor.ts +2 -6
  372. package/src/internal.ts +14 -0
  373. package/src/nest-integration.ts +28 -10
  374. package/src/runtime/abort.ts +6 -5
  375. package/src/runtime/activation-admission.ts +2 -8
  376. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  377. package/src/runtime/actors/actor-client.ts +85 -218
  378. package/src/runtime/actors/actor-context.ts +39 -33
  379. package/src/runtime/actors/actor-handoff.ts +24 -22
  380. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  381. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  382. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  383. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  384. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  385. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  386. package/src/runtime/actors/actor-request-deadline.ts +4 -0
  387. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  388. package/src/runtime/actors/actor-routed-join-transport.ts +3 -5
  389. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  390. package/src/runtime/actors/bound-session-wire.ts +2 -8
  391. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  392. package/src/runtime/actors/index.ts +100 -79
  393. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  394. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  395. package/src/runtime/admission.ts +8 -1
  396. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  397. package/src/runtime/backend/contracts/index.ts +14 -37
  398. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  399. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  400. package/src/runtime/backend/node/node-backend-adapter-support.ts +67 -10
  401. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +0 -2
  402. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  403. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  404. package/src/runtime/backend/node/node-raw-binding-port.ts +44 -49
  405. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  406. package/src/runtime/backend/node/node-socket-backend-adapter.ts +4 -3
  407. package/src/runtime/backend/raw-binding-port.ts +1 -1
  408. package/src/runtime/backend/runtime-values.ts +4 -1
  409. package/src/runtime/channels/channel-clients.ts +139 -102
  410. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  411. package/src/runtime/channels/channel-envelope.ts +74 -57
  412. package/src/runtime/channels/channel-outbound-operations.ts +40 -55
  413. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  414. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  415. package/src/runtime/channels/channel-runtime-manager.ts +12 -30
  416. package/src/runtime/channels/channel-socket-options.ts +8 -15
  417. package/src/runtime/channels/channel-socket-registry.ts +291 -196
  418. package/src/runtime/channels/channel-transports.ts +168 -145
  419. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  420. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  421. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  422. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  423. package/src/runtime/channels/local-spot-route-transport.ts +1 -5
  424. package/src/runtime/channels/router-socket-spot-route-transport.ts +2 -6
  425. package/src/runtime/channels/source-spot-router.ts +2 -9
  426. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  427. package/src/runtime/channels/spot-node-route-transport.ts +7 -9
  428. package/src/runtime/channels/spot-route-bridge-transport.ts +5 -12
  429. package/src/runtime/channels/spot-route-dispatch-strategy.ts +11 -30
  430. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  431. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  432. package/src/runtime/diagnostics/flow-context.ts +16 -2
  433. package/src/runtime/diagnostics/index.ts +27 -17
  434. package/src/runtime/diagnostics/message-flow.ts +15 -25
  435. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  436. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  437. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  438. package/src/runtime/disposal.ts +19 -0
  439. package/src/runtime/execution/index.ts +60 -20
  440. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  441. package/src/runtime/execution/state-lane.ts +142 -4
  442. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  443. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  444. package/src/runtime/foundation/operation-identity.ts +11 -5
  445. package/src/runtime/foundation/operation-registry.ts +33 -50
  446. package/src/runtime/foundation/raw-service-mesh-runtime.ts +127 -125
  447. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  448. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  449. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  450. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  451. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  452. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  453. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  454. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  455. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  456. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  457. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  458. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  459. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  460. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  461. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  462. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  463. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  464. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  465. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  466. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  467. package/src/runtime/framework-errors-internal.ts +380 -134
  468. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  469. package/src/runtime/host/actor-packet-relay.ts +63 -160
  470. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  471. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  472. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  473. package/src/runtime/host/application-job-queue.ts +28 -34
  474. package/src/runtime/host/bound-session-relay.ts +1 -2
  475. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  476. package/src/runtime/host/index.ts +327 -320
  477. package/src/runtime/host/instance-activation-authority.ts +89 -109
  478. package/src/runtime/host/location-runtime-owner.ts +4 -2
  479. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  480. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  481. package/src/runtime/host/remote-bound-session-relay.ts +16 -57
  482. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  483. package/src/runtime/host/runtime-shutdown.ts +17 -21
  484. package/src/runtime/host/service-relocation-control.ts +14 -1
  485. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  486. package/src/runtime/host/spot-address-transport.ts +175 -356
  487. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  488. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  489. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  490. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  491. package/src/runtime/locations/authority-key-codec.ts +7 -3
  492. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  493. package/src/runtime/locations/creation-operation-id.ts +6 -3
  494. package/src/runtime/locations/domain-store-contract.ts +12 -3
  495. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  496. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  497. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  498. package/src/runtime/locations/key-codec.ts +3 -2
  499. package/src/runtime/locations/lease-tracker.ts +8 -14
  500. package/src/runtime/locations/lifecycle.ts +13 -43
  501. package/src/runtime/locations/location-store-failure.ts +4 -0
  502. package/src/runtime/locations/location-store-pages.ts +18 -0
  503. package/src/runtime/locations/location-store-repository.ts +457 -482
  504. package/src/runtime/locations/relocation-blob.ts +17 -6
  505. package/src/runtime/locations/resolvers.ts +75 -49
  506. package/src/runtime/locations/runtime.ts +220 -110
  507. package/src/runtime/locations/spot-location-claims.ts +58 -1
  508. package/src/runtime/messaging/payload-codec.ts +35 -24
  509. package/src/runtime/messaging/request-deadline.ts +58 -0
  510. package/src/runtime/messaging/submission-result.ts +72 -2
  511. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  512. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  513. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  514. package/src/runtime/spots/index.ts +433 -229
  515. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  516. package/src/runtime/spots/spot-activation-state.ts +2 -2
  517. package/src/runtime/spots/spot-activation.ts +67 -37
  518. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  519. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  520. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  521. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  522. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  523. package/src/runtime/spots/spot-context.ts +3 -3
  524. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  525. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  526. package/src/runtime/spots/spot-manager-public.ts +21 -17
  527. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  528. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  529. package/src/runtime/spots/spot-outbound.ts +59 -47
  530. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  531. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  532. package/src/runtime/spots/spot-route-replies.ts +6 -4
  533. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  534. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  535. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  536. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  537. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  538. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  539. package/src/runtime/spots/spot-timer.ts +3 -2
  540. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  541. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  542. package/src/runtime/streams/bound-actor-relay-sender.ts +98 -66
  543. package/src/runtime/streams/bound-session-service.ts +22 -2
  544. package/src/runtime/streams/index.ts +78 -68
  545. package/src/runtime/streams/managed-stream.ts +32 -23
  546. package/src/runtime/streams/native-fallback-bound-session.ts +14 -28
  547. package/src/runtime/streams/protocol.ts +34 -88
  548. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  549. package/src/runtime/streams/session-calls.ts +11 -36
  550. package/src/runtime/streams/session-context.ts +60 -25
  551. package/src/runtime/streams/session-requests.ts +2 -1
  552. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  553. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  554. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  555. package/src/runtime/workers/index.ts +13 -12
  556. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  557. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  558. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  559. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  560. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  561. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -5,6 +5,7 @@ exports.actorJoinIdentity = actorJoinIdentity;
5
5
  exports.createActorJoinRequest = createActorJoinRequest;
6
6
  exports.createActorMembership = createActorMembership;
7
7
  const configuration_1 = require("../configuration");
8
+ const diagnostic_text_1 = require("../diagnostics/diagnostic-text");
8
9
  exports.ZLINK_ACTOR_LIFECYCLE_SNAPSHOT = Symbol('zlink.actor.lifecycle-snapshot');
9
10
  /**
10
11
  * Identity an admission callback observes. Join admission decides on the Actor's
@@ -37,7 +38,7 @@ function lifecycleSource(actor) {
37
38
  : undefined;
38
39
  // A caller can hand in a value that carries no Framework context at all, so the
39
40
  // failure path reports the configuration error instead of dereferencing it.
40
- const actorId = context?.actorId ?? '<unknown>';
41
+ const actorId = (0, diagnostic_text_1.diagnosticTextOrAbsent)(context?.actorId);
41
42
  const snapshot = context?.[exports.ZLINK_ACTOR_LIFECYCLE_SNAPSHOT];
42
43
  const source = snapshot === undefined ? undefined : snapshot.call(context);
43
44
  if (source === undefined) {
@@ -1,26 +1,31 @@
1
- import type { RoutingId, ZLinkActor, ZLinkActorJoinOperationId, ZLinkMessageSerializer } from '../../contracts';
2
- import type { ZLinkActorJoinRuntimeResult } from './actor-runtime-contracts';
1
+ import { type RoutingId, type ZLinkActor, type ZLinkActorJoinOperationId, type ZLinkMessageSerializer, type ZLinkSpot, type ZLinkSpotActorJoinResult } from '../../contracts';
3
2
  import type { Message } from '../../contracts/Common/Message';
4
3
  import type { ZLinkBackendActorRef, ZLinkBackendMeshNode } from '../backend/contracts';
5
4
  import { type ZLinkMeshCompletionTable } from '../backend/mesh-completion-table';
5
+ import type { ZLinkLocationLifecycle } from '../locations';
6
6
  import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
7
+ import type { ZLinkActorJoinRelocation } from './actor-join-relocation';
8
+ import type { ZLinkActorJoinRuntimeResult } from './actor-runtime-contracts';
7
9
  import { ZLinkActorRuntimeState } from './actor-runtime-state';
8
10
  import type { ZLinkPostCommitActorBinder } from './post-commit-actor-binder';
9
- import type { ZLinkPostCommitActorLocation } from './post-commit-actor-location';
10
- import type { ZLinkActorJoinRelocation } from './actor-join-relocation';
11
11
  export interface ZLinkLocalNativeActorJoinOptions {
12
- readonly postCommitLocation?: ZLinkPostCommitActorLocation;
12
+ readonly locationLifecycle?: ZLinkLocationLifecycle;
13
+ readonly localSpotJoin?: (spotId: RoutingId, actor: ZLinkActor, request: Message, commit: (spot: ZLinkSpot) => Promise<void>, signal?: AbortSignal, leaveSource?: () => Promise<void>, contentType?: string) => Promise<ZLinkSpotActorJoinResult>;
14
+ readonly localEntryJoin?: (actor: ZLinkActor, signal?: AbortSignal) => Promise<void>;
15
+ readonly localSourceLeave?: (actor: ZLinkActor, spotId: RoutingId | undefined, signal?: AbortSignal) => Promise<void>;
16
+ readonly reportSourceLeaveError: (error: unknown) => void;
13
17
  readonly postCommitBinder?: ZLinkPostCommitActorBinder;
14
18
  readonly completionTableProvider: () => ZLinkMeshCompletionTable | undefined;
15
19
  readonly actorJoinRelocation?: ZLinkActorJoinRelocation;
16
20
  readonly messageSerializers?: ReadonlyMap<string, ZLinkMessageSerializer>;
17
21
  }
18
- /** Owns core-native actor joins and their local runtime state transition. */
22
+ /** Selects local membership commits or remote Actor relocation. */
19
23
  export declare class ZLinkLocalNativeActorJoin {
20
24
  private readonly options;
21
25
  constructor(options: ZLinkLocalNativeActorJoinOptions);
22
26
  joinSpot(node: ZLinkBackendMeshNode, actor: ZLinkActor, state: ZLinkActorRuntimeState, actorRef: ZLinkBackendActorRef, spotId: RoutingId, spotRouteTarget: ZLinkSpotRouteTarget | undefined, request: Message, timeoutMs: number | undefined, signal: AbortSignal | undefined, completionOperationId?: ZLinkActorJoinOperationId): Promise<ZLinkActorJoinRuntimeResult<Message>>;
23
27
  joinEntrySpot(node: ZLinkBackendMeshNode, actor: ZLinkActor, state: ZLinkActorRuntimeState, actorRef: ZLinkBackendActorRef, nodeRid: RoutingId, spotRouteTarget: ZLinkSpotRouteTarget | undefined, request: Message, timeoutMs: number | undefined, signal: AbortSignal | undefined, completionOperationId?: ZLinkActorJoinOperationId): Promise<ZLinkActorJoinRuntimeResult<Message>>;
28
+ private joinLocal;
24
29
  private waitForJoinCompletion;
25
30
  private relocateRemoteActorJoin;
26
31
  private requireCompletions;
@@ -1,19 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkLocalNativeActorJoin = void 0;
4
- const framework_errors_internal_1 = require("../framework-errors-internal");
4
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
5
5
  const node_crypto_1 = require("node:crypto");
6
- const runtime_values_1 = require("../backend/runtime-values");
7
6
  const contracts_1 = require("../../contracts");
8
- const mesh_completion_table_1 = require("../backend/mesh-completion-table");
9
7
  const abort_1 = require("../abort");
10
- const actor_runtime_state_1 = require("./actor-runtime-state");
11
- const routing_id_1 = require("../routing-id");
12
- const routing_id_2 = require("../routing-id");
8
+ const mesh_completion_table_1 = require("../backend/mesh-completion-table");
9
+ const runtime_values_1 = require("../backend/runtime-values");
13
10
  const operation_identity_1 = require("../foundation/operation-identity");
11
+ const framework_errors_internal_1 = require("../framework-errors-internal");
14
12
  const payload_codec_1 = require("../messaging/payload-codec");
13
+ const routing_id_1 = require("../routing-id");
14
+ const actor_remote_wire_1 = require("./actor-remote-wire");
15
+ const actor_runtime_state_1 = require("./actor-runtime-state");
16
+ const LOCAL_JOIN_RESOLUTION_TIMEOUT_MS = 5_000;
17
+ const LOCAL_JOIN_POLL_INTERVAL_MS = 10;
15
18
  const ZLINK_FRAMEWORK_ACTOR_JOIN_PACKET_NAME = 'ZLinkFrameworkActorJoinRequest';
16
- /** Owns core-native actor joins and their local runtime state transition. */
19
+ /** Selects local membership commits or remote Actor relocation. */
17
20
  class ZLinkLocalNativeActorJoin {
18
21
  options;
19
22
  constructor(options) {
@@ -22,119 +25,93 @@ class ZLinkLocalNativeActorJoin {
22
25
  async joinSpot(node, actor, state, actorRef, spotId, spotRouteTarget, request, timeoutMs, signal, completionOperationId) {
23
26
  if (signal?.aborted === true)
24
27
  throw (0, abort_1.createAbortError)();
25
- const completions = this.requireCompletions();
26
28
  const target = requireUserSpotRoute(spotRouteTarget, spotId);
27
- const actorMeshName = runtimeActorMeshName(actor, state, target.routerChannelId);
28
- const remote = !(0, routing_id_2.routingIdsEqual)((0, actor_runtime_state_1.toFrameworkRoutingId)(node.status().routingId), target.targetNodeRid);
29
+ const remote = !(0, routing_id_1.routingIdsEqual)((0, actor_runtime_state_1.toFrameworkRoutingId)(node.status().routingId), target.targetNodeRid);
29
30
  if (remote) {
30
31
  return await this.relocateRemoteActorJoin(node, actor, state, actorRef, target, request, timeoutMs, signal, completionOperationId, false);
31
32
  }
32
- const completion = await this.waitForJoinCompletion(() => node.joinActorSpot(actorRef, (0, routing_id_1.toBackendRoutingId)(target.targetNodeRid), (0, routing_id_1.toBackendRoutingId)(target.spotId), target.targetSpotGeneration, actorJoinApplicationPayload(request), timeoutMs), completions, timeoutMs, signal);
33
- const control = completion.kindData;
34
- if (control?.kind !== 'actorJoinCompletion' || control.actor === null) {
35
- (0, mesh_completion_table_1.closeMeshCompletion)(completion);
36
- const message = `Actor join failed for '${actor.context.actorId}' with result '${completion.terminalResult}' and errno '${completion.failureErrno}'.`;
37
- // Classify the (terminal, fine) pair instead of collapsing every non-OK
38
- // or malformed join completion to NotFound (spec 32-framework-error-model:
39
- // 83-118). An OK terminal that carries no join control is a protocol
40
- // violation, not a missing route.
41
- throw completion.terminalResult !== 0 || completion.failureErrno !== 0
42
- ? (0, framework_errors_internal_1.wireReplyFailureException)(completion.terminalResult, completion.failureErrno, message)
43
- : (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestProtocolError, message);
44
- }
45
- if (control.joinResult !== 0) {
46
- try {
47
- return {
48
- accepted: false,
49
- actor: (0, actor_runtime_state_1.toFrameworkActorRef)(control.actor, actorMeshName),
50
- reply: completion.parts[0]
51
- };
52
- }
53
- finally {
54
- disposeParts(completion.parts.slice(1));
55
- }
56
- }
57
- if (completion.terminalResult !== 0 || completion.failureErrno !== 0) {
58
- (0, mesh_completion_table_1.closeMeshCompletion)(completion);
59
- throw (0, framework_errors_internal_1.wireReplyFailureException)(completion.terminalResult, completion.failureErrno, `Actor join failed for '${actor.context.actorId}' with result '${completion.terminalResult}' and errno '${completion.failureErrno}'.`);
60
- }
61
- state.setNativeActorRef(control.actor);
62
- state.setJoinedSpot((0, actor_runtime_state_1.toFrameworkRoutingId)(control.location.spotId ?? target.spotId), undefined, control.location.membershipEpoch, control.location.spotGeneration);
63
- // The Session owner relays from the verified Ready authority snapshot;
64
- // membership coordinates alone cannot recreate a User/Instance fence.
65
- state.setRemoteActorPacketTarget(target.spotKind === contracts_1.ZLinkSpotKind.Entry ? undefined : target);
66
- if (state.actorType !== undefined) {
67
- this.options.postCommitLocation?.joinedEventually(state.actorType, actor.context.actorId, spotRouteTarget?.routerChannelId ?? '', (0, actor_runtime_state_1.toFrameworkRoutingId)(control.location.spotId ?? target.spotId), control.location.spotGeneration, control.location.membershipEpoch, node.status().lifecycleGeneration);
68
- }
69
- await this.options.postCommitBinder?.bind((0, actor_runtime_state_1.toFrameworkActorRef)(control.actor, actorMeshName));
70
- try {
71
- return {
72
- accepted: true,
73
- actor: (0, actor_runtime_state_1.toFrameworkActorRef)(control.actor, actorMeshName),
74
- reply: completion.parts[0]
75
- };
76
- }
77
- finally {
78
- disposeParts(completion.parts.slice(1));
79
- }
33
+ return await this.joinLocal(node, actor, state, actorRef, target, target.spotId, request, signal);
80
34
  }
81
35
  async joinEntrySpot(node, actor, state, actorRef, nodeRid, spotRouteTarget, request, timeoutMs, signal, completionOperationId) {
82
36
  if (signal?.aborted === true)
83
37
  throw (0, abort_1.createAbortError)();
84
- const completions = this.requireCompletions();
85
- const actorMeshName = runtimeActorMeshName(actor, state, '');
86
38
  const targetNodeRid = spotRouteTarget?.targetNodeRid ?? nodeRid;
87
39
  const remote = spotRouteTarget !== undefined &&
88
- (!(0, routing_id_2.routingIdsEqual)((0, actor_runtime_state_1.toFrameworkRoutingId)(node.status().routingId), spotRouteTarget.targetNodeRid) ||
89
- !(0, routing_id_2.routingIdsEqual)((0, actor_runtime_state_1.toFrameworkRoutingId)(actorRef.nodeRid), spotRouteTarget.targetNodeRid));
40
+ (!(0, routing_id_1.routingIdsEqual)((0, actor_runtime_state_1.toFrameworkRoutingId)(node.status().routingId), spotRouteTarget.targetNodeRid) ||
41
+ !(0, routing_id_1.routingIdsEqual)((0, actor_runtime_state_1.toFrameworkRoutingId)(actorRef.nodeRid), spotRouteTarget.targetNodeRid));
90
42
  if (remote) {
91
43
  return await this.relocateRemoteActorJoin(node, actor, state, actorRef, spotRouteTarget, request, timeoutMs, signal, completionOperationId, true);
92
44
  }
93
- const completion = await this.waitForJoinCompletion(() => node.joinActorEntrySpot(actorRef, (0, routing_id_1.toBackendRoutingId)(targetNodeRid), actorJoinApplicationPayload(request), timeoutMs), completions, timeoutMs, signal);
94
- const control = completion.kindData;
95
- if (control?.kind !== 'actorJoinCompletion' || control.actor === null) {
96
- (0, mesh_completion_table_1.closeMeshCompletion)(completion);
97
- const message = `Actor entry SPOT join failed for '${actor.context.actorId}' with result '${completion.terminalResult}' and errno '${completion.failureErrno}'.`;
98
- // Classify the (terminal, fine) pair instead of collapsing to NotFound
99
- // (spec 32-framework-error-model:83-118); an OK terminal with no join
100
- // control is a protocol violation.
101
- throw completion.terminalResult !== 0 || completion.failureErrno !== 0
102
- ? (0, framework_errors_internal_1.wireReplyFailureException)(completion.terminalResult, completion.failureErrno, message)
103
- : (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestProtocolError, message);
45
+ const target = {
46
+ routerChannelId: spotRouteTarget?.routerChannelId ?? runtimeActorMeshName(actor, state, ''),
47
+ targetNodeRid,
48
+ spotId: (0, actor_runtime_state_1.toFrameworkRoutingId)(node.entrySpot().routingId),
49
+ spotKind: contracts_1.ZLinkSpotKind.Entry,
50
+ targetSpotGeneration: node.entrySpot().status().lifecycleGeneration
51
+ };
52
+ return await this.joinLocal(node, actor, state, actorRef, target, spotRouteTarget?.spotId ?? target.spotId, request, signal);
53
+ }
54
+ async joinLocal(node, actor, state, actorRef, target, storeSpotId, request, signal) {
55
+ const location = node.actorLookup(actor.context.actorId);
56
+ const meshName = runtimeActorMeshName(actor, state, target.routerChannelId);
57
+ if ((0, routing_id_1.routingIdsEqual)((0, actor_runtime_state_1.toFrameworkRoutingId)(location.spotId), target.spotId)) {
58
+ return { accepted: true, actor: (0, actor_runtime_state_1.toFrameworkActorRef)(actorRef, meshName) };
104
59
  }
105
- if (control.joinResult !== 0) {
60
+ if (state.actorType === undefined)
61
+ throw new Error('Local Actor Join requires a registered Actor type.');
62
+ const actorType = state.actorType;
63
+ const previousSpotId = state.spotId;
64
+ const spotGeneration = target.targetSpotGeneration;
65
+ if (spotGeneration === undefined ||
66
+ spotGeneration <= 0n ||
67
+ node.restoreActorAuthority === undefined) {
68
+ throw new Error('Local Actor Join requires a valid target generation and stateful membership runtime.');
69
+ }
70
+ const membershipEpoch = location.membershipEpoch + 1n;
71
+ const commit = async (spot) => {
72
+ (0, abort_1.throwIfAborted)(signal);
73
+ if (target.spotKind === contracts_1.ZLinkSpotKind.Entry) {
74
+ await this.options.locationLifecycle?.notifyActorLeftSpot(actorType, actor.context.actorId, storeSpotId, spotGeneration, membershipEpoch, node.status().lifecycleGeneration);
75
+ }
76
+ else {
77
+ await this.options.locationLifecycle?.notifyActorJoinedSpot(actorType, actor.context.actorId, meshName, storeSpotId, spotGeneration, membershipEpoch, node.status().lifecycleGeneration);
78
+ }
79
+ const committedActor = node.restoreActorAuthority(actor.context.actorId, actorType, actorRef.generation, state.locationGeneration ?? actorRef.generation, target.spotKind === contracts_1.ZLinkSpotKind.Entry ? undefined : String(target.spotId), spotGeneration, membershipEpoch);
80
+ state.setNativeActorRef(committedActor);
81
+ if (target.spotKind === contracts_1.ZLinkSpotKind.Entry)
82
+ state.clearJoinedSpot();
83
+ else
84
+ state.setJoinedSpot(target.spotId, spot, membershipEpoch, spotGeneration);
85
+ state.setRemoteActorPacketTarget(target.spotKind === contracts_1.ZLinkSpotKind.Entry ? undefined : target);
86
+ };
87
+ const leaveSource = async () => {
88
+ void this.options.localSourceLeave?.(actor, previousSpotId, signal).catch((error) => {
89
+ this.options.reportSourceLeaveError(error);
90
+ });
91
+ };
92
+ let response;
93
+ if (target.spotKind === contracts_1.ZLinkSpotKind.Entry) {
94
+ if (this.options.localEntryJoin === undefined)
95
+ throw new Error('Local Entry Actor Join runtime is not configured.');
96
+ await commit();
106
97
  try {
107
- return {
108
- accepted: false,
109
- actor: (0, actor_runtime_state_1.toFrameworkActorRef)(control.actor, actorMeshName),
110
- reply: completion.parts[0]
111
- };
98
+ await this.options.localEntryJoin(actor, signal);
112
99
  }
113
100
  finally {
114
- disposeParts(completion.parts.slice(1));
101
+ await leaveSource();
115
102
  }
103
+ response = { accepted: true };
116
104
  }
117
- if (completion.terminalResult !== 0 || completion.failureErrno !== 0) {
118
- (0, mesh_completion_table_1.closeMeshCompletion)(completion);
119
- throw (0, framework_errors_internal_1.wireReplyFailureException)(completion.terminalResult, completion.failureErrno, `Actor entry SPOT join failed for '${actor.context.actorId}' with result '${completion.terminalResult}' and errno '${completion.failureErrno}'.`);
120
- }
121
- state.setNativeActorRef(control.actor);
122
- state.clearJoinedSpot();
123
- state.setRemoteActorPacketTarget(undefined);
124
- if (state.actorType !== undefined) {
125
- this.options.postCommitLocation?.leftEventually(state.actorType, actor.context.actorId, (0, actor_runtime_state_1.toFrameworkRoutingId)(control.location.spotId ?? spotRouteTarget?.spotId ?? nodeRid), control.location.spotGeneration, control.location.membershipEpoch, node.status().lifecycleGeneration);
126
- }
127
- await this.options.postCommitBinder?.bind((0, actor_runtime_state_1.toFrameworkActorRef)(control.actor, actorMeshName));
128
- try {
129
- return {
130
- accepted: true,
131
- actor: (0, actor_runtime_state_1.toFrameworkActorRef)(control.actor, actorMeshName),
132
- reply: completion.parts[0]
133
- };
134
- }
135
- finally {
136
- disposeParts(completion.parts.slice(1));
105
+ else {
106
+ if (this.options.localSpotJoin === undefined)
107
+ throw new Error('Local Spot Actor Join runtime is not configured.');
108
+ response = await this.options.localSpotJoin(target.spotId, actor, request, commit, signal, leaveSource, (0, payload_codec_1.frameworkPayloadContentType)(request));
137
109
  }
110
+ return {
111
+ accepted: response.accepted,
112
+ actor: (0, actor_runtime_state_1.toFrameworkActorRef)(state.nativeActorRef ?? actorRef, meshName),
113
+ reply: response.reply
114
+ };
138
115
  }
139
116
  async waitForJoinCompletion(submit, completions, timeoutMs, signal) {
140
117
  // The operation ID identifies one Core request. Once it is submitted, a
@@ -253,7 +230,7 @@ class ZLinkLocalNativeActorJoin {
253
230
  ...(completionOperationId === undefined
254
231
  ? {}
255
232
  : {
256
- replyContentType: control.replyContentType ?? 'application/octet-stream'
233
+ replyContentType: control.replyContentType ?? stream_wire_1.ZlinkStreamContentType.Raw
257
234
  }),
258
235
  reply: completionOperationId === undefined
259
236
  ? Buffer.alloc(0)
@@ -328,7 +305,7 @@ function legacyRemoteActorJoinPayload(actor, state, actorRef, target, request, t
328
305
  // canonical admission; it never substitutes target-Spot values as an Actor
329
306
  // authority fence.
330
307
  const payload = Buffer.from(JSON.stringify({
331
- packetName: '__zlink.actor.join_spot.request',
308
+ packetName: actor_remote_wire_1.ZLINK_REMOTE_ACTOR_JOIN_PACKET,
332
309
  phase: 'admission',
333
310
  transferId,
334
311
  spotId: String(target.spotId),
@@ -343,7 +320,7 @@ function legacyRemoteActorJoinPayload(actor, state, actorRef, target, request, t
343
320
  }));
344
321
  return {
345
322
  packetName: ZLINK_FRAMEWORK_ACTOR_JOIN_PACKET_NAME,
346
- contentType: 'application/json',
323
+ contentType: stream_wire_1.ZlinkStreamContentType.Json,
347
324
  payload,
348
325
  // Older in-process MeshNode adapters consume the fallback as a Message.
349
326
  // Keep that structural view without changing the typed service payload.
@@ -365,7 +342,8 @@ function runtimeActorMeshName(actor, state, fallback) {
365
342
  return context?.meshName ?? stateMeshName ?? fallback;
366
343
  }
367
344
  async function submitJoinWhenConnected(submit, timeoutMs, signal) {
368
- const deadline = performance.now() + Math.min(timeoutMs ?? 5_000, 5_000);
345
+ const deadline = performance.now() +
346
+ Math.min(timeoutMs ?? LOCAL_JOIN_RESOLUTION_TIMEOUT_MS, LOCAL_JOIN_RESOLUTION_TIMEOUT_MS);
369
347
  for (;;) {
370
348
  (0, abort_1.throwIfAborted)(signal);
371
349
  try {
@@ -375,7 +353,7 @@ async function submitJoinWhenConnected(submit, timeoutMs, signal) {
375
353
  if (!(0, runtime_values_1.isBackendNotConnectedError)(error) || performance.now() >= deadline) {
376
354
  throw error;
377
355
  }
378
- await new Promise((resolve) => setTimeout(resolve, 10));
356
+ await new Promise((resolve) => setTimeout(resolve, LOCAL_JOIN_POLL_INTERVAL_MS));
379
357
  }
380
358
  }
381
359
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.lookupNativeActorRef = lookupNativeActorRef;
4
+ const zlink_1 = require("@zlink-systems/zlink");
4
5
  function lookupNativeActorRef(node, actorId) {
5
6
  try {
6
7
  const location = node.actorLookup(actorId);
@@ -15,16 +16,9 @@ function lookupNativeActorRef(node, actorId) {
15
16
  };
16
17
  }
17
18
  catch (error) {
18
- if (nativeErrno(error) === 2) {
19
+ if (error instanceof zlink_1.ConfigError && error.result === zlink_1.ConfigResult.NotFound) {
19
20
  return undefined;
20
21
  }
21
22
  throw error;
22
23
  }
23
24
  }
24
- function nativeErrno(error) {
25
- if (typeof error !== 'object' || error === null || !('nativeErrno' in error)) {
26
- return undefined;
27
- }
28
- const value = error.nativeErrno;
29
- return typeof value === 'number' ? value : undefined;
30
- }
@@ -1,7 +1,6 @@
1
- import type { ActorRef, RoutingId } from '../../contracts';
2
- import { ZLinkSpotKind } from '../../contracts';
3
- import type { ZLinkRemoteActorPacketTarget } from './actor-runtime-state';
1
+ import { type ActorRef, type RoutingId, ZLinkSpotKind } from '../../contracts';
4
2
  import { type ZLinkActorMessageFollowContext } from './actor-message-follow-context';
3
+ import type { ZLinkRemoteActorPacketTarget } from './actor-runtime-state';
5
4
  export declare const ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET = "__zlink.actor.packet.relay";
6
5
  export declare const ZLINK_REMOTE_ACTOR_SESSION_DISCONNECTED_PACKET = "zlink.framework.actor.session_disconnected";
7
6
  export declare const ZLINK_REMOTE_ACTOR_SESSION_BIND_PACKET = "framework.internal.actor-session-bind";
@@ -21,6 +20,7 @@ export declare function encodeRemoteActorPacketRelayPayload(input: {
21
20
  readonly header: Uint8Array;
22
21
  readonly payload: Uint8Array;
23
22
  readonly bindingActorRef?: ActorRef;
23
+ readonly bindingGeneration?: bigint;
24
24
  /** The actor reference used to preserve relocation context at the target Spot. */
25
25
  readonly actorRef?: ActorRef;
26
26
  readonly returnResponse?: boolean;
@@ -9,6 +9,7 @@ exports.encodeRemoteActorPacketTarget = encodeRemoteActorPacketTarget;
9
9
  exports.decodeRemoteActorPacketTarget = decodeRemoteActorPacketTarget;
10
10
  exports.decodeRemoteActorPacketRelayPayload = decodeRemoteActorPacketRelayPayload;
11
11
  const contracts_1 = require("../../contracts");
12
+ const CoreTypes_1 = require("../../contracts/Common/CoreTypes");
12
13
  const routing_id_1 = require("../routing-id");
13
14
  const actor_message_follow_context_1 = require("./actor-message-follow-context");
14
15
  exports.ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET = '__zlink.actor.packet.relay';
@@ -47,7 +48,8 @@ function encodeRemoteActorPacketRelayPayload(input) {
47
48
  ? undefined
48
49
  : (0, routing_id_1.routingIdWireHex)(input.bindingActorRef.nodeRid),
49
50
  bindingActorGeneration: input.bindingActorRef?.objectGeneration.toString(),
50
- bindingGeneration: input.bindingActorRef?.bindingGeneration?.toString(),
51
+ bindingGeneration: input.bindingGeneration?.toString() ??
52
+ input.bindingActorRef?.bindingGeneration?.toString(),
51
53
  returnResponse: input.returnResponse,
52
54
  messageFollowContext: input.messageFollowContext,
53
55
  header: Buffer.from(input.header).toString('base64'),
@@ -100,8 +102,8 @@ function decodeRemoteActorPacketTarget(value) {
100
102
  }
101
103
  function requireSpotId(value) {
102
104
  const bytes = Buffer.byteLength(value, 'utf8');
103
- if (bytes < 1 || bytes > 255) {
104
- throw new Error('Actor packet target SpotId must contain 1..255 UTF-8 bytes.');
105
+ if (bytes < 1 || bytes > CoreTypes_1.ZLINK_MAX_SPOT_ID_BYTES) {
106
+ throw new Error(`Actor packet target SpotId must contain 1..${CoreTypes_1.ZLINK_MAX_SPOT_ID_BYTES} UTF-8 bytes.`);
105
107
  }
106
108
  return value;
107
109
  }
@@ -7,7 +7,7 @@ import type { ZLinkActorJoinCoordinator, ZLinkActorJoinRuntimeResult } from './a
7
7
  import type { ZLinkActorSourceTransfer } from './actor-source-transfer';
8
8
  import { ZLinkActorRuntimeState } from './actor-runtime-state';
9
9
  import type { ZLinkActorJoinRelocation } from './actor-join-relocation';
10
- export interface ZLinkActorNativeJoinCoordinatorOptions {
10
+ export interface ZLinkActorNativeJoinCoordinatorOptions extends Pick<import('./actor-local-native-join').ZLinkLocalNativeActorJoinOptions, 'localSpotJoin' | 'localEntryJoin' | 'localSourceLeave' | 'reportSourceLeaveError'> {
11
11
  readonly messageFlow?: () => import('../diagnostics/message-flow').ZLinkMessageFlowTracer | undefined;
12
12
  readonly node: ZLinkBackendMeshNode | (() => ZLinkBackendMeshNode);
13
13
  readonly completionTableProvider: () => ZLinkMeshCompletionTable | undefined;
@@ -4,7 +4,6 @@ exports.ZLinkActorNativeJoinCoordinator = void 0;
4
4
  const abort_1 = require("../abort");
5
5
  const actor_runtime_state_1 = require("./actor-runtime-state");
6
6
  const actor_native_lookup_1 = require("./actor-native-lookup");
7
- const post_commit_actor_location_1 = require("./post-commit-actor-location");
8
7
  const actor_local_native_join_1 = require("./actor-local-native-join");
9
8
  const post_commit_actor_binder_1 = require("./post-commit-actor-binder");
10
9
  /** Selects local native join or remote two-phase transfer for each destination. */
@@ -16,15 +15,12 @@ class ZLinkActorNativeJoinCoordinator {
16
15
  }
17
16
  constructor(options) {
18
17
  this.options = options;
19
- const postCommitLocation = options.locationLifecycle === undefined
20
- ? undefined
21
- : new post_commit_actor_location_1.ZLinkPostCommitActorLocation({
22
- lifecycle: options.locationLifecycle,
23
- reportError: options.postCommitErrorReporter,
24
- signal: options.shutdownSignal
25
- });
26
18
  this.localJoin = new actor_local_native_join_1.ZLinkLocalNativeActorJoin({
27
- postCommitLocation,
19
+ locationLifecycle: options.locationLifecycle,
20
+ localSpotJoin: options.localSpotJoin,
21
+ localEntryJoin: options.localEntryJoin,
22
+ localSourceLeave: options.localSourceLeave,
23
+ reportSourceLeaveError: options.reportSourceLeaveError,
28
24
  postCommitBinder: options.remoteActorBinder === undefined
29
25
  ? undefined
30
26
  : new post_commit_actor_binder_1.ZLinkPostCommitActorBinder({
@@ -4,6 +4,8 @@ exports.REMOTE_ACTOR_JOIN_ABORT = exports.REMOTE_ACTOR_JOIN_COMMIT = exports.REM
4
4
  exports.decodeRemoteActorSourceLeaveTerminal = decodeRemoteActorSourceLeaveTerminal;
5
5
  exports.decodeRemoteActorJoinPayload = decodeRemoteActorJoinPayload;
6
6
  exports.decodeWireRoutingId = decodeWireRoutingId;
7
+ const CoreTypes_1 = require("../../contracts/Common/CoreTypes");
8
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
7
9
  const routing_id_1 = require("../routing-id");
8
10
  exports.ZLINK_REMOTE_ACTOR_JOIN_PACKET = '__zlink.actor.join_spot.request';
9
11
  exports.ZLINK_REMOTE_ACTOR_SOURCE_LEAVE_TERMINAL = '__zlink.actor.source_leave.terminal';
@@ -56,7 +58,7 @@ function decodeRemoteActorJoinPayload(payload) {
56
58
  boundSessionTargetNodeRid: optionalRoutingId(payload, 'boundSessionTargetNodeRid', 'boundSessionTargetNodeRidHex'),
57
59
  boundSessionSpotId: optionalSpotId(payload, 'boundSessionSpotId'),
58
60
  request: payload.request,
59
- requestContentType: optionalString(payload, 'requestContentType') ?? 'application/json'
61
+ requestContentType: optionalString(payload, 'requestContentType') ?? stream_wire_1.ZlinkStreamContentType.Json
60
62
  };
61
63
  }
62
64
  function decodeWireRoutingId(text, hex) {
@@ -76,8 +78,8 @@ function optionalSpotId(value, key) {
76
78
  }
77
79
  function requireSpotId(value) {
78
80
  const bytes = Buffer.byteLength(value, 'utf8');
79
- if (bytes < 1 || bytes > 255) {
80
- throw new Error('Remote actor SpotId must contain 1..255 UTF-8 bytes.');
81
+ if (bytes < 1 || bytes > CoreTypes_1.ZLINK_MAX_SPOT_ID_BYTES) {
82
+ throw new Error(`Remote actor SpotId must contain 1..${CoreTypes_1.ZLINK_MAX_SPOT_ID_BYTES} UTF-8 bytes.`);
81
83
  }
82
84
  return value;
83
85
  }
@@ -0,0 +1 @@
1
+ export { remainingRequestTimeout as remainingActorRequestTimeout, waitRequestReply as waitActorReply } from '../messaging/request-deadline';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.waitActorReply = exports.remainingActorRequestTimeout = void 0;
4
+ var request_deadline_1 = require("../messaging/request-deadline");
5
+ Object.defineProperty(exports, "remainingActorRequestTimeout", { enumerable: true, get: function () { return request_deadline_1.remainingRequestTimeout; } });
6
+ Object.defineProperty(exports, "waitActorReply", { enumerable: true, get: function () { return request_deadline_1.waitRequestReply; } });
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkActorRetryDelay = void 0;
4
4
  const INITIAL_RETRY_DELAY_MS = 25;
5
5
  const MAX_RETRY_DELAY_MS = 1_000;
6
+ const RETRY_BACKOFF_MULTIPLIER = 2;
6
7
  class ZLinkActorRetryDelay {
7
8
  delayMs = INITIAL_RETRY_DELAY_MS;
8
9
  reset() {
@@ -11,7 +12,7 @@ class ZLinkActorRetryDelay {
11
12
  async wait(signal) {
12
13
  const completed = await delayUnlessAborted(this.delayMs, signal);
13
14
  if (completed) {
14
- this.delayMs = Math.min(this.delayMs * 2, MAX_RETRY_DELAY_MS);
15
+ this.delayMs = Math.min(this.delayMs * RETRY_BACKOFF_MULTIPLIER, MAX_RETRY_DELAY_MS);
15
16
  }
16
17
  return completed;
17
18
  }
@@ -6,11 +6,10 @@ export interface ZLinkActorRoutedJoinTransport {
6
6
  canRouteChannel?(routerChannelId: string): boolean;
7
7
  canRoutePacketChannel?(routerChannelId: string): boolean;
8
8
  request<TReply>(routerChannelId: string, targetNodeRid: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal): Promise<TReply>;
9
- submit?(routerChannelId: string, targetNodeRid: string, packetName: string | undefined, message: unknown, signal?: AbortSignal): Promise<ZLinkSubmitResult>;
10
- submitInfrastructure?(routerChannelId: string, targetNodeRid: string, packetName: string | undefined, message: unknown, signal?: AbortSignal): Promise<ZLinkSubmitResult>;
9
+ submit?(routerChannelId: string, targetNodeRid: string, packetName: string | undefined, message: unknown): Promise<ZLinkSubmitResult>;
10
+ submitInfrastructure?(routerChannelId: string, targetNodeRid: string, packetName: string | undefined, message: unknown): Promise<ZLinkSubmitResult>;
11
11
  sendToSpot(spotRouteTarget: ZLinkSpotRouteTarget, message: unknown, options: {
12
12
  readonly packetName?: string;
13
- readonly signal?: AbortSignal;
14
13
  }): Promise<ZLinkSubmitResult>;
15
14
  requestRawToSpot?(spotRouteTarget: ZLinkSpotRouteTarget, request: Message, options: {
16
15
  readonly timeoutMs?: number;
@@ -1,5 +1,4 @@
1
- import type { ActorRef, RoutingId, ZLinkActor, ZLinkActorContext, ZLinkSpot } from '../../contracts';
2
- import { ZLinkSpotKind } from '../../contracts';
1
+ import { type ActorRef, type RoutingId, type ZLinkActor, type ZLinkActorContext, type ZLinkSpot, ZLinkSpotKind } from '../../contracts';
3
2
  import type { Message } from '../../contracts/Common/Message';
4
3
  import type { ZLinkBackendActorRef, ZLinkBackendMeshNode } from '../backend/contracts';
5
4
  export interface ZLinkRemoteBoundSessionTarget {
@@ -37,18 +36,6 @@ export interface ZLinkRemoteBoundSessionTarget {
37
36
  };
38
37
  };
39
38
  }
40
- /**
41
- * Applies a lightweight Session binding refresh without discarding the
42
- * relocation fence that was staged for the same route. Core emits the bind
43
- * refresh with routing coordinates only; the relocation owner retains the
44
- * service-wire relocation identity until command 44 releases the owner seal.
45
- */
46
- export declare function mergeRemoteBoundSessionTarget(target: ZLinkRemoteBoundSessionTarget, fallback: ZLinkRemoteBoundSessionTarget | undefined): ZLinkRemoteBoundSessionTarget;
47
- /**
48
- * Selects the route that still carries the relocation fence when a Core
49
- * binding refresh and a formal transfer target temporarily coexist.
50
- */
51
- export declare function preferredRemoteBoundSessionTarget(remote: ZLinkRemoteBoundSessionTarget | undefined, transfer: ZLinkRemoteBoundSessionTarget | undefined): ZLinkRemoteBoundSessionTarget | undefined;
52
39
  export interface ZLinkRemoteActorPacketTarget {
53
40
  readonly routerChannelId: string;
54
41
  readonly targetNodeRid: RoutingId;
@@ -89,10 +76,8 @@ export declare class ZLinkActorRuntimeState {
89
76
  private spotGenerationValue;
90
77
  private spotMembershipEpochValue;
91
78
  private nativeActorRefValue;
92
- private boundSessionBindingGenerationValue;
93
79
  private entryNodeRidValue;
94
- private remoteBoundSessionTargetValue;
95
- private boundSessionTransferTargetValue;
80
+ private boundSessionValue;
96
81
  private remoteActorPacketTargetValue;
97
82
  private createRequestPayloadValue;
98
83
  private ownsLocationValue;
@@ -113,8 +98,14 @@ export declare class ZLinkActorRuntimeState {
113
98
  get nativeActorRef(): ZLinkBackendActorRef | undefined;
114
99
  get boundSessionBindingGeneration(): bigint;
115
100
  get entryNodeRid(): RoutingId | undefined;
101
+ /** The one current Session binding of this Actor (Session–Actor binding §6). */
102
+ get boundSession(): ZLinkRemoteBoundSessionTarget | undefined;
103
+ /**
104
+ * The current binding when its Session owner is another node. A same-node
105
+ * binding is served by the local Session registry, so remote routing sees
106
+ * no target for it.
107
+ */
116
108
  get remoteBoundSessionTarget(): ZLinkRemoteBoundSessionTarget | undefined;
117
- get boundSessionTransferTarget(): ZLinkRemoteBoundSessionTarget | undefined;
118
109
  get remoteActorPacketTarget(): ZLinkRemoteActorPacketTarget | undefined;
119
110
  get createRequestPayload(): Buffer | undefined;
120
111
  get isJoined(): boolean;
@@ -140,10 +131,7 @@ export declare class ZLinkActorRuntimeState {
140
131
  bindActor(actor: ZLinkActor, context: ZLinkActorContext): void;
141
132
  ensureNativeActorRef(node: ZLinkBackendMeshNode, request?: Message): ZLinkBackendActorRef;
142
133
  setNativeActorRef(actorRef: ZLinkBackendActorRef): void;
143
- setBoundSessionBindingGeneration(generation: bigint): void;
144
134
  setEntryNodeRid(entryNodeRid: RoutingId): void;
145
- setRemoteBoundSessionTarget(target: ZLinkRemoteBoundSessionTarget | undefined): void;
146
- setBoundSessionTransferTarget(target: ZLinkRemoteBoundSessionTarget | undefined): void;
147
135
  setRemoteActorPacketTarget(target: ZLinkRemoteActorPacketTarget | undefined): void;
148
136
  setCreateRequestPayload(payload: Buffer | Uint8Array): void;
149
137
  setJoinedSpot(spotId: RoutingId, spot?: ZLinkSpot, membershipEpoch?: bigint, spotGeneration?: bigint): void;