@zlink-systems/framework 0.26.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 (521) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  3. package/dist/contracts/Common/CoreTypes.js +7 -0
  4. package/dist/contracts/Common/index.d.ts +1 -1
  5. package/dist/contracts/Common/index.js +0 -1
  6. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  7. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  8. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  9. package/dist/contracts/Configuration/Registration.js +58 -36
  10. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  11. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  12. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  13. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  14. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  15. package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
  16. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  17. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  18. package/dist/contracts/Handlers/JsonContract.js +10 -4
  19. package/dist/contracts/Locations/Authority.d.ts +1 -1
  20. package/dist/contracts/Locations/Authority.js +3 -2
  21. package/dist/contracts/Locations/Options.js +1 -1
  22. package/dist/contracts/Locations/Stores.d.ts +12 -0
  23. package/dist/contracts/Locations/Stores.js +9 -0
  24. package/dist/contracts/Spots/Contracts.d.ts +1 -1
  25. package/dist/internal.d.ts +4 -0
  26. package/dist/internal.js +15 -1
  27. package/dist/nest-integration.d.ts +4 -2
  28. package/dist/nest-integration.js +14 -4
  29. package/dist/runtime/abort.d.ts +1 -0
  30. package/dist/runtime/abort.js +8 -5
  31. package/dist/runtime/activation-admission.d.ts +1 -2
  32. package/dist/runtime/activation-admission.js +2 -6
  33. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  34. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  35. package/dist/runtime/actors/actor-client.d.ts +2 -2
  36. package/dist/runtime/actors/actor-client.js +42 -143
  37. package/dist/runtime/actors/actor-context.d.ts +3 -5
  38. package/dist/runtime/actors/actor-context.js +13 -11
  39. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  40. package/dist/runtime/actors/actor-handoff.js +8 -8
  41. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  42. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  43. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  44. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  45. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  46. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  47. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  48. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  49. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  50. package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
  51. package/dist/runtime/actors/actor-request-deadline.js +31 -0
  52. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  53. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  54. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  55. package/dist/runtime/actors/bound-session-wire.js +2 -7
  56. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  57. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  58. package/dist/runtime/actors/index.d.ts +9 -7
  59. package/dist/runtime/actors/index.js +87 -69
  60. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  61. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  62. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  63. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  64. package/dist/runtime/admission.d.ts +2 -0
  65. package/dist/runtime/admission.js +7 -1
  66. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  67. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  68. package/dist/runtime/backend/contracts/index.d.ts +6 -23
  69. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  70. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  71. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  72. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +1 -1
  73. package/dist/runtime/backend/node/node-backend-adapter-support.js +16 -6
  74. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  75. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  76. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  77. package/dist/runtime/backend/node/node-raw-binding-port.js +40 -16
  78. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  79. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  80. package/dist/runtime/backend/node/node-socket-backend-adapter.js +3 -2
  81. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  82. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  83. package/dist/runtime/backend/runtime-values.js +2 -0
  84. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  85. package/dist/runtime/channels/channel-clients.js +68 -52
  86. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  87. package/dist/runtime/channels/channel-envelope.js +47 -29
  88. package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
  89. package/dist/runtime/channels/channel-outbound-operations.js +9 -10
  90. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  91. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  92. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  93. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  94. package/dist/runtime/channels/channel-runtime-manager.js +5 -2
  95. package/dist/runtime/channels/channel-socket-options.js +3 -2
  96. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  97. package/dist/runtime/channels/channel-socket-registry.js +248 -174
  98. package/dist/runtime/channels/channel-transports.d.ts +11 -17
  99. package/dist/runtime/channels/channel-transports.js +68 -47
  100. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  101. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  102. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  103. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  104. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  105. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  106. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  107. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  108. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  109. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  110. package/dist/runtime/channels/spot-node-route-transport.js +3 -2
  111. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  112. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  113. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  114. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  115. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  116. package/dist/runtime/diagnostics/flow-context.js +16 -2
  117. package/dist/runtime/diagnostics/index.d.ts +4 -2
  118. package/dist/runtime/diagnostics/index.js +14 -4
  119. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  120. package/dist/runtime/diagnostics/message-flow.js +10 -19
  121. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  122. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  123. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  124. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  125. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  126. package/dist/runtime/disposal.d.ts +5 -0
  127. package/dist/runtime/disposal.js +22 -0
  128. package/dist/runtime/execution/index.d.ts +12 -9
  129. package/dist/runtime/execution/index.js +58 -14
  130. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  131. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  132. package/dist/runtime/execution/state-lane.d.ts +8 -1
  133. package/dist/runtime/execution/state-lane.js +118 -3
  134. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  135. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  136. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  137. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  138. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  139. package/dist/runtime/foundation/operation-identity.js +9 -5
  140. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  141. package/dist/runtime/foundation/operation-registry.js +34 -44
  142. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  143. package/dist/runtime/foundation/raw-service-mesh-runtime.js +62 -83
  144. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  145. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  146. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  147. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  148. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  149. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  150. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  151. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  152. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  153. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  154. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  155. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  156. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  157. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  158. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  159. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  160. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  161. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  162. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  163. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  164. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  165. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  166. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  167. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  168. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  169. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  170. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  171. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  172. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  173. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  174. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  175. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  176. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  177. package/dist/runtime/framework-errors-internal.js +343 -122
  178. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  179. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  180. package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
  181. package/dist/runtime/host/actor-packet-relay.js +48 -91
  182. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  183. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  184. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  185. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  186. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  187. package/dist/runtime/host/application-job-queue.js +16 -33
  188. package/dist/runtime/host/bound-session-relay.js +1 -1
  189. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  190. package/dist/runtime/host/index.d.ts +14 -13
  191. package/dist/runtime/host/index.js +190 -157
  192. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  193. package/dist/runtime/host/instance-activation-authority.js +17 -45
  194. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  195. package/dist/runtime/host/location-runtime-owner.js +2 -2
  196. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  197. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  198. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  199. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  200. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  201. package/dist/runtime/host/remote-bound-session-relay.js +7 -20
  202. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  203. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  204. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  205. package/dist/runtime/host/runtime-shutdown.js +18 -21
  206. package/dist/runtime/host/service-relocation-control.js +6 -1
  207. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  208. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  209. package/dist/runtime/host/spot-address-transport.d.ts +2 -3
  210. package/dist/runtime/host/spot-address-transport.js +34 -136
  211. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  212. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  213. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  214. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  215. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  216. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  217. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  218. package/dist/runtime/locations/authority-key-codec.js +4 -3
  219. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  220. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  221. package/dist/runtime/locations/creation-operation-id.js +6 -4
  222. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  223. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  224. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  225. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  226. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  227. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  228. package/dist/runtime/locations/key-codec.js +3 -2
  229. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  230. package/dist/runtime/locations/lease-tracker.js +7 -11
  231. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  232. package/dist/runtime/locations/lifecycle.js +2 -31
  233. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  234. package/dist/runtime/locations/location-store-failure.js +7 -0
  235. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  236. package/dist/runtime/locations/location-store-pages.js +13 -0
  237. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  238. package/dist/runtime/locations/location-store-repository.js +303 -332
  239. package/dist/runtime/locations/relocation-blob.js +18 -5
  240. package/dist/runtime/locations/resolvers.d.ts +5 -5
  241. package/dist/runtime/locations/resolvers.js +37 -28
  242. package/dist/runtime/locations/runtime.d.ts +5 -4
  243. package/dist/runtime/locations/runtime.js +123 -92
  244. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  245. package/dist/runtime/locations/spot-location-claims.js +42 -1
  246. package/dist/runtime/messaging/payload-codec.js +26 -20
  247. package/dist/runtime/messaging/submission-result.d.ts +3 -0
  248. package/dist/runtime/messaging/submission-result.js +48 -0
  249. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  250. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  251. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  252. package/dist/runtime/spots/index.d.ts +14 -20
  253. package/dist/runtime/spots/index.js +302 -176
  254. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  255. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  256. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  257. package/dist/runtime/spots/spot-activation-state.js +2 -2
  258. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  259. package/dist/runtime/spots/spot-activation.js +49 -32
  260. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  261. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  262. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  263. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  264. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  265. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  266. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  267. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  268. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  269. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  270. package/dist/runtime/spots/spot-context.d.ts +2 -2
  271. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  272. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  273. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  274. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  275. package/dist/runtime/spots/spot-manager-public.js +5 -4
  276. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  277. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  278. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  279. package/dist/runtime/spots/spot-outbound.d.ts +4 -3
  280. package/dist/runtime/spots/spot-outbound.js +9 -8
  281. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  282. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  283. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  284. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  285. package/dist/runtime/spots/spot-route-replies.js +3 -1
  286. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  287. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  288. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  289. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  290. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  291. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  292. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  293. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  294. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  295. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  296. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  297. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  298. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  299. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  300. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
  301. package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
  302. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  303. package/dist/runtime/streams/bound-session-service.js +11 -1
  304. package/dist/runtime/streams/index.d.ts +14 -15
  305. package/dist/runtime/streams/index.js +20 -21
  306. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  307. package/dist/runtime/streams/managed-stream.js +17 -8
  308. package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
  309. package/dist/runtime/streams/protocol.d.ts +6 -33
  310. package/dist/runtime/streams/protocol.js +38 -110
  311. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  312. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  313. package/dist/runtime/streams/session-calls.d.ts +1 -1
  314. package/dist/runtime/streams/session-calls.js +5 -4
  315. package/dist/runtime/streams/session-context.d.ts +6 -6
  316. package/dist/runtime/streams/session-context.js +22 -4
  317. package/dist/runtime/streams/session-requests.js +2 -1
  318. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  319. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  320. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  321. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  322. package/dist/runtime/workers/index.d.ts +2 -2
  323. package/dist/runtime/workers/index.js +5 -4
  324. package/package.json +3 -3
  325. package/src/contracts/Common/CoreTypes.ts +7 -0
  326. package/src/contracts/Common/index.ts +1 -1
  327. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  328. package/src/contracts/Configuration/Registration.ts +92 -48
  329. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  330. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
  331. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  332. package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
  333. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  334. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  335. package/src/contracts/Handlers/JsonContract.ts +14 -4
  336. package/src/contracts/Locations/Authority.ts +7 -3
  337. package/src/contracts/Locations/Options.ts +1 -1
  338. package/src/contracts/Locations/Stores.ts +14 -0
  339. package/src/contracts/Spots/Contracts.ts +1 -1
  340. package/src/internal.ts +14 -0
  341. package/src/nest-integration.ts +28 -10
  342. package/src/runtime/abort.ts +6 -5
  343. package/src/runtime/activation-admission.ts +2 -8
  344. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  345. package/src/runtime/actors/actor-client.ts +77 -204
  346. package/src/runtime/actors/actor-context.ts +39 -33
  347. package/src/runtime/actors/actor-handoff.ts +24 -22
  348. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  349. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  350. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  351. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  352. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  353. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  354. package/src/runtime/actors/actor-request-deadline.ts +49 -0
  355. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  356. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  357. package/src/runtime/actors/bound-session-wire.ts +2 -8
  358. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  359. package/src/runtime/actors/index.ts +100 -79
  360. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  361. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  362. package/src/runtime/admission.ts +8 -1
  363. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  364. package/src/runtime/backend/contracts/index.ts +13 -29
  365. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  366. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  367. package/src/runtime/backend/node/node-backend-adapter-support.ts +23 -6
  368. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  369. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  370. package/src/runtime/backend/node/node-raw-binding-port.ts +41 -20
  371. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  372. package/src/runtime/backend/node/node-socket-backend-adapter.ts +3 -2
  373. package/src/runtime/backend/raw-binding-port.ts +1 -1
  374. package/src/runtime/backend/runtime-values.ts +4 -1
  375. package/src/runtime/channels/channel-clients.ts +132 -85
  376. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  377. package/src/runtime/channels/channel-envelope.ts +58 -29
  378. package/src/runtime/channels/channel-outbound-operations.ts +10 -23
  379. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  380. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  381. package/src/runtime/channels/channel-runtime-manager.ts +6 -2
  382. package/src/runtime/channels/channel-socket-options.ts +8 -2
  383. package/src/runtime/channels/channel-socket-registry.ts +301 -192
  384. package/src/runtime/channels/channel-transports.ts +161 -112
  385. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  386. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  387. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  388. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  389. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  390. package/src/runtime/channels/spot-node-route-transport.ts +5 -2
  391. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  392. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  393. package/src/runtime/diagnostics/flow-context.ts +16 -2
  394. package/src/runtime/diagnostics/index.ts +27 -17
  395. package/src/runtime/diagnostics/message-flow.ts +15 -25
  396. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  397. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  398. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  399. package/src/runtime/disposal.ts +19 -0
  400. package/src/runtime/execution/index.ts +60 -20
  401. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  402. package/src/runtime/execution/state-lane.ts +142 -4
  403. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  404. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  405. package/src/runtime/foundation/operation-identity.ts +11 -5
  406. package/src/runtime/foundation/operation-registry.ts +33 -50
  407. package/src/runtime/foundation/raw-service-mesh-runtime.ts +110 -111
  408. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  409. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  410. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  411. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  412. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  413. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  414. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  415. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  416. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  417. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  418. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  419. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  420. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  421. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  422. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  423. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  424. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  425. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  426. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  427. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  428. package/src/runtime/framework-errors-internal.ts +380 -134
  429. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  430. package/src/runtime/host/actor-packet-relay.ts +57 -147
  431. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  432. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  433. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  434. package/src/runtime/host/application-job-queue.ts +28 -34
  435. package/src/runtime/host/bound-session-relay.ts +1 -2
  436. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  437. package/src/runtime/host/index.ts +327 -296
  438. package/src/runtime/host/instance-activation-authority.ts +89 -109
  439. package/src/runtime/host/location-runtime-owner.ts +4 -2
  440. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  441. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  442. package/src/runtime/host/remote-bound-session-relay.ts +8 -41
  443. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  444. package/src/runtime/host/runtime-shutdown.ts +17 -21
  445. package/src/runtime/host/service-relocation-control.ts +14 -1
  446. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  447. package/src/runtime/host/spot-address-transport.ts +73 -195
  448. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  449. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  450. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  451. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  452. package/src/runtime/locations/authority-key-codec.ts +7 -3
  453. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  454. package/src/runtime/locations/creation-operation-id.ts +6 -3
  455. package/src/runtime/locations/domain-store-contract.ts +12 -3
  456. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  457. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  458. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  459. package/src/runtime/locations/key-codec.ts +3 -2
  460. package/src/runtime/locations/lease-tracker.ts +8 -14
  461. package/src/runtime/locations/lifecycle.ts +13 -43
  462. package/src/runtime/locations/location-store-failure.ts +4 -0
  463. package/src/runtime/locations/location-store-pages.ts +18 -0
  464. package/src/runtime/locations/location-store-repository.ts +450 -478
  465. package/src/runtime/locations/relocation-blob.ts +17 -6
  466. package/src/runtime/locations/resolvers.ts +75 -49
  467. package/src/runtime/locations/runtime.ts +220 -110
  468. package/src/runtime/locations/spot-location-claims.ts +58 -1
  469. package/src/runtime/messaging/payload-codec.ts +35 -24
  470. package/src/runtime/messaging/submission-result.ts +57 -1
  471. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  472. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  473. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  474. package/src/runtime/spots/index.ts +433 -229
  475. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  476. package/src/runtime/spots/spot-activation-state.ts +2 -2
  477. package/src/runtime/spots/spot-activation.ts +67 -37
  478. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  479. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  480. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  481. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  482. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  483. package/src/runtime/spots/spot-context.ts +3 -3
  484. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  485. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  486. package/src/runtime/spots/spot-manager-public.ts +21 -17
  487. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  488. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  489. package/src/runtime/spots/spot-outbound.ts +45 -23
  490. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  491. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  492. package/src/runtime/spots/spot-route-replies.ts +6 -4
  493. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  494. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  495. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  496. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  497. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  498. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  499. package/src/runtime/spots/spot-timer.ts +3 -2
  500. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  501. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  502. package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
  503. package/src/runtime/streams/bound-session-service.ts +21 -1
  504. package/src/runtime/streams/index.ts +76 -64
  505. package/src/runtime/streams/managed-stream.ts +29 -10
  506. package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
  507. package/src/runtime/streams/protocol.ts +34 -88
  508. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  509. package/src/runtime/streams/session-calls.ts +6 -5
  510. package/src/runtime/streams/session-context.ts +54 -10
  511. package/src/runtime/streams/session-requests.ts +2 -1
  512. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  513. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  514. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  515. package/src/runtime/workers/index.ts +13 -12
  516. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  517. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  518. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  519. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  520. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  521. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -1,90 +1,52 @@
1
- import type { Message } from '../../contracts/Common/Message';
2
- import type { ZLinkFlowOrigin } from '../../contracts';
3
- import { resolveFrameworkPacketName } from '../messaging/packet-name';
4
1
  import {
2
+ ZlinkStreamCloseReasonCode as ZLinkStreamCloseReasonCode,
3
+ ZlinkStreamCodec as ZLinkStreamCodec,
4
+ ZlinkStreamHeaderFlags as ZLinkStreamHeaderFlags,
5
+ ZlinkStreamMessageKind as ZLinkStreamMessageKind,
6
+ ZlinkStreamControlPacket,
5
7
  decodeStreamWireFrame,
6
8
  decodeStreamWireHeader,
9
+ defaultMaxDecompressedPayloadSize,
10
+ encodeStreamWireActorBoundPayload,
11
+ encodeStreamWireActorUnboundPayload,
7
12
  encodeStreamWireFrame,
8
13
  encodeStreamWireHeader,
14
+ encodeStreamWireSessionClosingPayload,
9
15
  lz4PickleUncompressed,
10
16
  lz4UnpicklePayload,
11
17
  tryDecodeStreamWireFrame,
12
- utf8Encode
18
+ streamCodecContentType as wireCodecContentType,
19
+ streamCodecForContentType as wireCodecForContentType
13
20
  } from '@zlink-systems/stream-wire';
21
+ import type { ZLinkFlowOrigin } from '../../contracts';
22
+ import type { Message } from '../../contracts/Common/Message';
23
+ import { resolveFrameworkPacketName } from '../messaging/packet-name';
14
24
  import { throwAlreadySubmitted } from '../messaging/submission-result';
25
+ export {
26
+ ZlinkStreamMessageKind as ZLinkStreamMessageKind,
27
+ ZlinkStreamHeaderFlags as ZLinkStreamHeaderFlags,
28
+ ZlinkStreamCloseReasonCode as ZLinkStreamCloseReasonCode
29
+ } from '@zlink-systems/stream-wire';
15
30
 
16
31
  export { utf8Decode, utf8Encode } from '@zlink-systems/stream-wire';
17
32
 
18
- const defaultMaxDecompressedPayloadSize = 64 * 1024;
19
33
  const actorRequestDeadlineMetadataKey = '$zlink.actor-request-deadline-unix-ms';
20
34
  // Shared empty metadata for the dominant no-metadata frame; ReadonlyMap
21
35
  // keeps every consumer from mutating it.
22
36
  const EMPTY_STREAM_METADATA: ReadonlyMap<string, string> = new Map();
23
37
 
24
- export enum ZLinkStreamCodec {
25
- Raw = 0,
26
- Json = 1,
27
- MessagePack = 2,
28
- Protobuf = 3
29
- }
38
+ export { ZlinkStreamCodec as ZLinkStreamCodec } from '@zlink-systems/stream-wire';
30
39
 
31
40
  export function streamCodecContentType(codec: ZLinkStreamCodec): string {
32
- switch (codec) {
33
- case ZLinkStreamCodec.Json:
34
- return 'application/json';
35
- case ZLinkStreamCodec.MessagePack:
36
- return 'application/x-msgpack';
37
- case ZLinkStreamCodec.Protobuf:
38
- return 'application/x-protobuf';
39
- case ZLinkStreamCodec.Raw:
40
- return 'application/octet-stream';
41
- }
42
- throw new TypeError(`Unsupported STREAM codec '${codec}'.`);
41
+ return wireCodecContentType(codec);
43
42
  }
44
43
 
45
44
  export function streamCodecForContentType(contentType: string): ZLinkStreamCodec {
46
- switch (contentType) {
47
- case 'application/json':
48
- return ZLinkStreamCodec.Json;
49
- case 'application/x-msgpack':
50
- return ZLinkStreamCodec.MessagePack;
51
- case 'application/x-protobuf':
52
- return ZLinkStreamCodec.Protobuf;
53
- case 'application/octet-stream':
54
- return ZLinkStreamCodec.Raw;
55
- }
56
- throw new TypeError(`Unsupported STREAM content type '${contentType}'.`);
45
+ return wireCodecForContentType(contentType);
57
46
  }
58
47
 
59
- export enum ZLinkStreamMessageKind {
60
- Send = 1,
61
- Request = 2,
62
- Response = 3,
63
- Error = 4,
64
- Control = 5
65
- }
66
-
67
- export enum ZLinkStreamHeaderFlags {
68
- None = 0,
69
- HasRequestSeq = 0x01,
70
- HasMetadata = 0x02,
71
- PayloadCompressed = 0x04,
72
- HasCorrelationId = 0x08,
73
- HasFlowId = 0x10,
74
- HasActorSlot = 0x20
75
- }
76
-
77
- export enum ZLinkStreamCloseReasonCode {
78
- ClientClose = 1,
79
- IdleTimeout = 2,
80
- HeartbeatTimeout = 3,
81
- ServerDrain = 4,
82
- ProtocolError = 5,
83
- TransportError = 6
84
- }
85
-
86
- export const ZLINK_STREAM_HEARTBEAT_PING = '$zlink.heartbeat.ping';
87
- export const ZLINK_STREAM_HEARTBEAT_PONG = '$zlink.heartbeat.pong';
48
+ export const ZLINK_STREAM_HEARTBEAT_PING = ZlinkStreamControlPacket.HeartbeatPing;
49
+ export const ZLINK_STREAM_HEARTBEAT_PONG = ZlinkStreamControlPacket.HeartbeatPong;
88
50
 
89
51
  export interface ZLinkStreamFrameHeader {
90
52
  readonly kind: ZLinkStreamMessageKind;
@@ -142,48 +104,32 @@ export function encodeStreamControlFrame(name: string): Uint8Array {
142
104
  }
143
105
 
144
106
  export function encodeActorBoundFrame(actorSlot: number, actorId: string): Uint8Array {
145
- const actorIdBytes = utf8Encode(actorId);
146
- if (actorIdBytes.length < 1 || actorIdBytes.length > 0xff) {
147
- throw new Error('Actor id length is invalid for a STREAM binding control packet.');
148
- }
149
- const payload = new Uint8Array(4 + actorIdBytes.length);
150
- payload[0] = 1;
151
- payload[1] = actorSlot >>> 8;
152
- payload[2] = actorSlot & 0xff;
153
- payload[3] = actorIdBytes.length;
154
- payload.set(actorIdBytes, 4);
155
- return encodeStreamFrame(controlHeader('$zlink.actor.bound'), payload);
107
+ return encodeStreamFrame(
108
+ controlHeader(ZlinkStreamControlPacket.ActorBound),
109
+ encodeStreamWireActorBoundPayload(actorSlot, actorId)
110
+ );
156
111
  }
157
112
 
158
113
  export function encodeActorUnboundFrame(actorSlot: number): Uint8Array {
159
- const payload = new Uint8Array(3);
160
- payload[0] = 1;
161
- payload[1] = actorSlot >>> 8;
162
- payload[2] = actorSlot & 0xff;
163
- return encodeStreamFrame(controlHeader('$zlink.actor.unbound'), payload);
114
+ return encodeStreamFrame(
115
+ controlHeader(ZlinkStreamControlPacket.ActorUnbound),
116
+ encodeStreamWireActorUnboundPayload(actorSlot)
117
+ );
164
118
  }
165
119
 
166
120
  export function encodeSessionClosingFrame(
167
121
  diagnostic = '',
168
122
  reason = ZLinkStreamCloseReasonCode.ServerDrain
169
123
  ): Uint8Array {
170
- const diagnosticBytes = utf8Encode(diagnostic);
171
- if (diagnosticBytes.length > 512) throw new Error('Session-closing diagnostic is too large.');
172
- const payload = new Uint8Array(4 + diagnosticBytes.length);
173
- payload[0] = 1;
174
- payload[1] = reason;
175
- payload[2] = diagnosticBytes.length >>> 8;
176
- payload[3] = diagnosticBytes.length & 0xff;
177
- payload.set(diagnosticBytes, 4);
178
124
  return encodeStreamFrame(
179
125
  {
180
126
  kind: ZLinkStreamMessageKind.Control,
181
127
  codec: ZLinkStreamCodec.Raw,
182
128
  flags: ZLinkStreamHeaderFlags.None,
183
- name: 'session-closing',
129
+ name: ZlinkStreamControlPacket.SessionClosing,
184
130
  metadata: new Map()
185
131
  },
186
- payload
132
+ encodeStreamWireSessionClosingPayload(reason, diagnostic)
187
133
  );
188
134
  }
189
135
 
@@ -1,3 +1,4 @@
1
+ import { DEFAULT_RELAY_ACTOR_BIND_TIMEOUT_MS } from './bound-actor-relay-sender';
1
2
  import {
2
3
  ZLinkFrameworkInternalErrorKind,
3
4
  createInternalFrameworkException
@@ -13,6 +14,7 @@ import {
13
14
  import { ZLinkActorSessionLifecycleCoordinator } from './actor-session-lifecycle-coordinator';
14
15
  import { ZLinkManagedStream } from './managed-stream';
15
16
  import { DefaultZLinkSessionActor, DefaultZLinkSessionContext } from './session-context';
17
+ import type { ZLinkSessionBindingConfirmationOptions } from './stream-binding-runtime-ports';
16
18
 
17
19
  export interface ZLinkSessionActorCoordinatorOptions {
18
20
  readonly actorBindTimeoutMs?: number;
@@ -31,7 +33,7 @@ export interface ZLinkSessionActorCoordinatorOptions {
31
33
  actor: ActorRef,
32
34
  sessionRid: ActorRef['nodeRid'],
33
35
  signal?: AbortSignal,
34
- options?: { readonly waitForAcknowledgement?: boolean }
36
+ options?: ZLinkSessionBindingConfirmationOptions
35
37
  ) => Promise<void>;
36
38
  readonly errorSink?: () =>
37
39
  | {
@@ -181,7 +183,13 @@ export class ZLinkSessionActorCoordinator {
181
183
  boundActorRef,
182
184
  this.actorBindingRoutingId(context),
183
185
  undefined,
184
- { waitForAcknowledgement }
186
+ {
187
+ waitForAcknowledgement,
188
+ binding:
189
+ context.stream instanceof ZLinkManagedStream
190
+ ? context.stream.actorBinding(actorRef.actorId)
191
+ : undefined
192
+ }
185
193
  );
186
194
  const reportFailure = (error: unknown) => {
187
195
  // A fire-and-forget route update retains the already-current binding;
@@ -204,7 +212,7 @@ export class ZLinkSessionActorCoordinator {
204
212
  if (context.stream instanceof ZLinkManagedStream) {
205
213
  await context.stream.unbindActor(
206
214
  actorRef.actorId,
207
- this.options.actorBindTimeoutMs ?? 2000
215
+ this.options.actorBindTimeoutMs ?? DEFAULT_RELAY_ACTOR_BIND_TIMEOUT_MS
208
216
  );
209
217
  }
210
218
  } catch (cleanupError) {
@@ -354,7 +362,11 @@ export class ZLinkSessionActorCoordinator {
354
362
  true
355
363
  );
356
364
  }
357
- route.actor.updateRef(normalizedActorRef);
365
+ // A location refresh never changes the route's Session binding
366
+ // generation; the native bind owns it.
367
+ route.actor.updateRef(
368
+ withBindingGeneration(normalizedActorRef, bindingGenerationOf(route.actor.ref), undefined)
369
+ );
358
370
  if (authorityFence !== undefined) {
359
371
  await this.routes.updateAuthorityFence(normalizedActorRef.actorId, authorityFence);
360
372
  }
@@ -463,7 +475,7 @@ export class ZLinkSessionActorCoordinator {
463
475
  try {
464
476
  await context.stream.bindActor(
465
477
  actorRef,
466
- this.options.actorBindTimeoutMs ?? 2000,
478
+ this.options.actorBindTimeoutMs ?? DEFAULT_RELAY_ACTOR_BIND_TIMEOUT_MS,
467
479
  signal,
468
480
  context.actorBindingReplacedHandler,
469
481
  authorityFence
@@ -1,14 +1,15 @@
1
- import { ZLinkFrameworkInternalErrorKind } from '../framework-errors-internal';
2
1
  import type {
3
2
  ZLinkBoundSessionSendCall,
4
3
  ZLinkSessionReplyCall,
5
4
  ZLinkSessionSendCall
6
5
  } from '../../contracts';
7
- import type { ZLinkSubmitResult } from '../messaging/submission-result';
8
- import { requireOneWayCompletion } from '../messaging/submission-result';
9
6
  import type { Message } from '../../contracts/Common/Message';
7
+ import { ZLINK_MAX_SEND_TIMEOUT_MS } from '../../contracts/Configuration/SendTimeoutValidation';
10
8
  import { throwIfAborted } from '../abort';
11
9
  import { ZLinkConfigurationException } from '../configuration';
10
+ import { ZLinkFrameworkInternalErrorKind } from '../framework-errors-internal';
11
+ import { type ZLinkSubmitResult, requireOneWayCompletion } from '../messaging/submission-result';
12
+
12
13
  import {
13
14
  ensureSingleSubmit,
14
15
  resolvePacketName,
@@ -135,9 +136,9 @@ export class DefaultZLinkSessionSendCall implements ZLinkSessionSendCall {
135
136
  }
136
137
 
137
138
  timeout(timeoutMs: number): this {
138
- if (!Number.isInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > 2_147_483_647) {
139
+ if (!Number.isInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > ZLINK_MAX_SEND_TIMEOUT_MS) {
139
140
  throw new ZLinkConfigurationException(
140
- 'STREAM session send timeout must be an integer from 1 through 2147483647 milliseconds.'
141
+ `STREAM session send timeout must be an integer from 1 through ${ZLINK_MAX_SEND_TIMEOUT_MS} milliseconds.`
141
142
  );
142
143
  }
143
144
  this.selectedTimeoutMs = timeoutMs;
@@ -1,11 +1,10 @@
1
- import { ZLinkFrameworkInternalErrorKind } from '../framework-errors-internal';
2
1
  import type {
3
2
  ActorRef,
4
3
  RoutingId,
5
4
  Type,
6
- ZLinkMessage,
7
5
  ZLinkActor,
8
6
  ZLinkBoundSession,
7
+ ZLinkMessage,
9
8
  ZLinkSessionActor,
10
9
  ZLinkSessionActors,
11
10
  ZLinkSessionClient,
@@ -17,18 +16,27 @@ import type {
17
16
  ZLinkSessionSendCall,
18
17
  ZLinkStream
19
18
  } from '../../contracts';
20
- import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
21
- import type { ZLinkSubmitResult } from '../messaging/submission-result';
22
- import { requireOneWayCompletion } from '../messaging/submission-result';
23
19
  import type { Message } from '../../contracts/Common/Message';
20
+ import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
24
21
  import { readZLinkDecoratorMetadata } from '../../contracts/Handlers/Attributes';
25
22
  import { throwIfAborted } from '../abort';
23
+ import { releaseApplicationJobPermitBeforeHandler } from '../application-jobs/application-job-queue-scope';
26
24
  import { ZLinkConfigurationException } from '../configuration';
25
+ import {
26
+ guardStateLaneCompletion,
27
+ isStructuralGuardEnabled,
28
+ trackDiagnosticCompletion
29
+ } from '../execution/state-lane';
30
+ import type { ServiceActorRef } from '../foundation/service-stateful-registry';
31
+ import type { ServiceRetiredBoundSessionRouteFence } from '../foundation/service-stateful-wire-codec';
32
+ import { ZLinkFrameworkInternalErrorKind } from '../framework-errors-internal';
33
+ import { type ZLinkSubmitResult, requireOneWayCompletion } from '../messaging/submission-result';
34
+
27
35
  import {
28
36
  messageToBytes,
29
- type ZLinkStreamFrameHeader,
30
37
  ZLinkStreamHeaderFlags,
31
38
  ZLinkStreamMessageKind,
39
+ type ZLinkStreamFrameHeader,
32
40
  type ZLinkStreamReplyMessageKind
33
41
  } from './protocol';
34
42
  import {
@@ -36,11 +44,8 @@ import {
36
44
  DefaultZLinkSessionReplyCall,
37
45
  DefaultZLinkSessionSendCall
38
46
  } from './session-calls';
39
- import { ZLinkSessionRequestTracker, type ZLinkPendingSessionRequest } from './session-requests';
40
47
  import { ZLinkSessionLocalActorBindings } from './session-local-actors';
41
- import type { ServiceActorRef } from '../foundation/service-stateful-registry';
42
- import type { ServiceRetiredBoundSessionRouteFence } from '../foundation/service-stateful-wire-codec';
43
- import { releaseApplicationJobPermitBeforeHandler } from '../application-jobs/application-job-queue-scope';
48
+ import { ZLinkSessionRequestTracker, type ZLinkPendingSessionRequest } from './session-requests';
44
49
 
45
50
  export interface ZLinkSessionContextStream extends ZLinkStream {
46
51
  writeRaw(payload: Message, flags?: number): boolean;
@@ -652,3 +657,42 @@ function sameRetiredSession(
652
657
  left.retiredBindingGeneration === right.retiredBindingGeneration
653
658
  );
654
659
  }
660
+
661
+ if (isStructuralGuardEnabled()) {
662
+ const controlsGetter = Object.getOwnPropertyDescriptor(
663
+ DefaultZLinkSessionContext.prototype,
664
+ 'actorSlotControls'
665
+ )?.get;
666
+ if (controlsGetter !== undefined) {
667
+ Object.defineProperty(DefaultZLinkSessionContext.prototype, 'actorSlotControls', {
668
+ configurable: true,
669
+ get(this: DefaultZLinkSessionContext) {
670
+ const controls = controlsGetter.call(this) as
671
+ | {
672
+ enqueueBound(actorSlot: number, actorId: string): Promise<void>;
673
+ enqueueUnbound(actorSlot: number): Promise<void>;
674
+ }
675
+ | undefined;
676
+ if (controls === undefined) return undefined;
677
+ return {
678
+ enqueueBound: (actorSlot: number, actorId: string) =>
679
+ guardStateLaneCompletion(
680
+ trackDiagnosticCompletion(
681
+ controls.enqueueBound(actorSlot, actorId),
682
+ `binding transport bound ${actorId}`
683
+ ),
684
+ 'binding transport completion'
685
+ ),
686
+ enqueueUnbound: (actorSlot: number) =>
687
+ guardStateLaneCompletion(
688
+ trackDiagnosticCompletion(
689
+ controls.enqueueUnbound(actorSlot),
690
+ `binding transport unbound ${actorSlot}`
691
+ ),
692
+ 'binding transport completion'
693
+ )
694
+ };
695
+ }
696
+ });
697
+ }
698
+ }
@@ -1,3 +1,4 @@
1
+ import { UINT64_MAX } from '@zlink-systems/stream-wire';
1
2
  import type { Message } from '../../contracts/Common/Message';
2
3
  import { copyMessage } from './stream-message-utils';
3
4
 
@@ -102,7 +103,7 @@ export class ZLinkSessionRequestTracker {
102
103
 
103
104
  private next(): bigint {
104
105
  do {
105
- this.nextRequestSeq = (this.nextRequestSeq + 1n) & 0xffffffffffffffffn;
106
+ this.nextRequestSeq = (this.nextRequestSeq + 1n) & UINT64_MAX;
106
107
  } while (this.nextRequestSeq === 0n);
107
108
  return this.nextRequestSeq;
108
109
  }
@@ -3,6 +3,7 @@ import type { ZLinkBackendActorSessionNode } from '../backend';
3
3
  import type { ZLinkSubmitResult } from '../messaging/submission-result';
4
4
  import type { DefaultZLinkSessionActor } from './session-context';
5
5
  import type { ZLinkBoundSessionResponseTarget } from './bound-session-response-target';
6
+ import type { ServiceStreamSessionBinding } from '../foundation/service-runtime-contracts';
6
7
 
7
8
  export interface ZLinkStreamActorLookupPort {
8
9
  find(actorId: string): Promise<DefaultZLinkSessionActor | undefined>;
@@ -74,8 +75,28 @@ export interface ZLinkBoundSessionResponsePort {
74
75
  ): Promise<boolean>;
75
76
  }
76
77
 
78
+ /**
79
+ * Session–Actor binding §5: the Session owner's registry snapshot travels with
80
+ * the bind confirmation so a same-node Actor owner installs the same identity a
81
+ * remote command 38 would carry.
82
+ */
83
+ export interface ZLinkSessionBindingConfirmationOptions {
84
+ readonly waitForAcknowledgement?: boolean;
85
+ readonly binding?: ServiceStreamSessionBinding;
86
+ }
87
+
88
+ /** The exact Session binding identity a relocation validated (§8.1). */
89
+ export interface ZLinkSessionBindingIdentity {
90
+ readonly sessionRid: string;
91
+ readonly bindingGeneration: bigint;
92
+ }
93
+
77
94
  export interface ZLinkRemoteBoundSessionPort extends ZLinkStreamActorLifecyclePort {
78
- disconnectBoundSession(actorId: string, signal?: AbortSignal): Promise<void>;
95
+ closeSessionBinding(
96
+ actorId: string,
97
+ expected: ZLinkSessionBindingIdentity,
98
+ signal?: AbortSignal
99
+ ): Promise<void>;
79
100
  sendLocalBoundSession(
80
101
  actorId: string,
81
102
  message: unknown,
@@ -1,4 +1,5 @@
1
1
  import type { ZLinkStreamCompressionCodec, ZLinkStreamCompressionOptions } from '../../contracts';
2
+ import { defaultMaxDecompressedPayloadSize } from '@zlink-systems/stream-wire';
2
3
  import type { Message } from '../../contracts/Common/Message';
3
4
  import { ZLinkBufferMessage as ZLinkBindingMessage } from '../backend/runtime-message';
4
5
  import { currentOrCreateFlow } from '../diagnostics/flow-context';
@@ -18,8 +19,6 @@ import {
18
19
  type ZLinkStreamReplyMessageKind
19
20
  } from './protocol';
20
21
 
21
- const DEFAULT_MAX_DECOMPRESSED_STREAM_PAYLOAD_SIZE = 64 * 1024;
22
-
23
22
  export interface ZLinkStreamFramePayloadCodec {
24
23
  encode(
25
24
  payload: unknown,
@@ -245,7 +244,7 @@ function compressStreamPayload(
245
244
  export function decompressStreamPayload(
246
245
  payload: Uint8Array,
247
246
  codec: ZLinkStreamCompressionCodec | undefined,
248
- maxDecompressedSize = DEFAULT_MAX_DECOMPRESSED_STREAM_PAYLOAD_SIZE
247
+ maxDecompressedSize = defaultMaxDecompressedPayloadSize
249
248
  ): Uint8Array {
250
249
  if (codec === undefined) {
251
250
  throw new Error('Compression codec is not configured.');