@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,14 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ZLinkBoundActorRelaySender = void 0;
4
- const submission_result_1 = require("../messaging/submission-result");
5
- const payload_codec_1 = require("../messaging/payload-codec");
6
- const protocol_1 = require("./protocol");
3
+ exports.ZLinkBoundActorRelaySender = exports.DEFAULT_RELAY_ACTOR_BIND_TIMEOUT_MS = void 0;
4
+ const ZLinkDispatchOptions_1 = require("../../contracts/Dispatch/ZLinkDispatchOptions");
7
5
  const abort_1 = require("../abort");
8
- const execution_1 = require("../execution");
6
+ const diagnostics_1 = require("../diagnostics");
7
+ const payload_codec_1 = require("../messaging/payload-codec");
8
+ const submission_result_1 = require("../messaging/submission-result");
9
9
  const actor_session_binding_registry_1 = require("./actor-session-binding-registry");
10
10
  const actor_session_lifecycle_coordinator_1 = require("./actor-session-lifecycle-coordinator");
11
11
  const managed_stream_1 = require("./managed-stream");
12
+ const protocol_1 = require("./protocol");
13
+ exports.DEFAULT_RELAY_ACTOR_BIND_TIMEOUT_MS = 2000;
12
14
  class ZLinkBoundActorRelaySender {
13
15
  routes;
14
16
  frameMessages;
@@ -34,37 +36,58 @@ class ZLinkBoundActorRelaySender {
34
36
  await admission.complete();
35
37
  }
36
38
  };
37
- if ((await this.routes.isSealed(actor.actorId)) &&
38
- (0, execution_1.captureZLinkExecutionTurn)() !== undefined) {
39
- void operation().catch(() => undefined);
40
- return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
41
- }
42
39
  return await operation();
43
40
  }
44
- if ((await this.routes.isSealed(actor.actorId)) && (0, execution_1.captureZLinkExecutionTurn)() !== undefined) {
45
- // Spec 32:62 — a Send completes once the source outbound queue
46
- // accepts it; spec 05 — infrastructure send progress must not depend
47
- // on the application turn. When the CALLER IS an application turn
48
- // (a lifecycle callback pushing to a bound actor), awaiting the seal
49
- // release here deadlocks: the relocation seal waits for that very
50
- // callback to finish (onJoinedActor -> push -> seal ->
51
- // onJoinedActor). Accept the frame now and deliver it after the
52
- // seal releases, in per-actor order through the lifecycle lane; the
53
- // bounded seal wait converts a stuck seal into a typed failure.
54
- // Non-turn callers (stream ingress relays) keep the waiting
55
- // semantics so a held frame across a failed rebind still
56
- // terminalizes to the caller.
57
- void this.routes
58
- .runAcceptedFrameWhenReady(actor.actorId, actor.bindingToken, () => this.relayAcceptedFrame(actor, payload, signal), signal)
59
- .catch(() => undefined);
41
+ (0, abort_1.throwIfAborted)(signal);
42
+ const held = await this.routes.acceptOneWay(actor.actorId, actor.bindingToken, () => {
43
+ let heldMessage = (0, payload_codec_1.encodeFrameworkPayloadMessage)(payload, this.options.messageSerializers);
44
+ return {
45
+ deliver: async () => {
46
+ try {
47
+ const result = await this.routes.runAcceptedFrameWhenReady(actor.actorId, actor.bindingToken, () => this.relayAcceptedFrame(actor, payload, undefined, header, undefined, heldMessage));
48
+ if (result.status !== submission_result_1.ZLinkSubmitStatus.Submitted) {
49
+ this.traceHeldDrop(header, result.status === submission_result_1.ZLinkSubmitStatus.Backpressured ||
50
+ result.status === submission_result_1.ZLinkSubmitStatus.TimedOut
51
+ ? 'backpressure'
52
+ : result.status === submission_result_1.ZLinkSubmitStatus.Shutdown
53
+ ? 'shutdown'
54
+ : 'stale_target');
55
+ }
56
+ }
57
+ finally {
58
+ heldMessage?.close();
59
+ heldMessage = undefined;
60
+ }
61
+ },
62
+ drop: (reason, error) => {
63
+ heldMessage?.close();
64
+ heldMessage = undefined;
65
+ this.traceHeldDrop(header, reason, error);
66
+ }
67
+ };
68
+ });
69
+ if (held) {
60
70
  return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
61
71
  }
62
72
  return this.routes.runAcceptedFrameWhenReady(actor.actorId, actor.bindingToken, () => this.relayAcceptedFrame(actor, payload, signal), signal);
63
73
  }
64
- async relayAcceptedFrame(actor, payload, signal, header, requestAdmission) {
74
+ traceHeldDrop(header, reason, error) {
75
+ (0, diagnostics_1.flowIfEnabled)(this.options.dispatchErrors?.flow, ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Dropped, undefined, header.flowId)?.trace({
76
+ outcome: ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Dropped,
77
+ surface: ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.StreamSession,
78
+ messageKind: ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send,
79
+ packetName: header.name,
80
+ flowId: header.flowId,
81
+ flowOrigin: header.flowOrigin,
82
+ correlationId: header.correlationId,
83
+ errorReason: reason,
84
+ ...(error instanceof Error ? { errorType: error.name, errorMessage: error.message } : {})
85
+ });
86
+ }
87
+ async relayAcceptedFrame(actor, payload, signal, header, requestAdmission, acceptedPayload) {
65
88
  const activeHeader = header ?? (await this.currentHeader(actor));
66
89
  const started = await this.lifecycle.run(actor.actorId, async () => {
67
- const completion = this.relayInsideLifecycle(actor, payload, signal, activeHeader, requestAdmission);
90
+ const completion = this.relayInsideLifecycle(actor, payload, signal, activeHeader, requestAdmission, acceptedPayload);
68
91
  if (activeHeader.kind === protocol_1.ZLinkStreamMessageKind.Request &&
69
92
  activeHeader.requestSeq !== undefined) {
70
93
  // A routed REQUEST only needs this lane while its ordered submission
@@ -96,13 +119,13 @@ class ZLinkBoundActorRelaySender {
96
119
  }
97
120
  return header;
98
121
  }
99
- async relayInsideLifecycle(actor, payload, signal, currentHeader, requestAdmission) {
122
+ async relayInsideLifecycle(actor, payload, signal, currentHeader, requestAdmission, acceptedPayload) {
100
123
  const header = currentHeader ?? (await this.currentHeader(actor));
101
124
  const held = requestAdmission?.beginSubmission(signal);
102
125
  if (held !== undefined)
103
126
  await held;
104
127
  (0, abort_1.throwIfAborted)(signal);
105
- const payloadMessage = (0, payload_codec_1.encodeFrameworkPayloadMessage)(payload, this.options.messageSerializers);
128
+ const payloadMessage = acceptedPayload ?? (0, payload_codec_1.encodeFrameworkPayloadMessage)(payload, this.options.messageSerializers);
106
129
  try {
107
130
  if (this.options.relay !== undefined) {
108
131
  const handled = await this.options.relay(actor, header, payloadMessage, signal);
@@ -125,7 +148,8 @@ class ZLinkBoundActorRelaySender {
125
148
  }
126
149
  }
127
150
  finally {
128
- payloadMessage.close();
151
+ if (acceptedPayload === undefined)
152
+ payloadMessage.close();
129
153
  }
130
154
  }
131
155
  async notifyDisconnected(actor, signal) {
@@ -141,13 +165,13 @@ class ZLinkBoundActorRelaySender {
141
165
  if (unbindNative &&
142
166
  detached.bindingToken === actor.bindingToken &&
143
167
  detached.context.stream instanceof managed_stream_1.ZLinkManagedStream) {
144
- await detached.context.stream.unbindActor(actor.actorId, this.options.actorBindTimeoutMs ?? 2000, signal);
168
+ await detached.context.stream.unbindActor(actor.actorId, this.options.actorBindTimeoutMs ?? exports.DEFAULT_RELAY_ACTOR_BIND_TIMEOUT_MS, signal);
145
169
  }
146
170
  await this.options.notifyDisconnected?.(actor, signal);
147
171
  }
148
172
  async notifyPhysicalDisconnect(context) {
149
173
  const snapshot = [...context.boundActors];
150
- const timeoutMs = this.options.actorBindTimeoutMs ?? 2000;
174
+ const timeoutMs = this.options.actorBindTimeoutMs ?? exports.DEFAULT_RELAY_ACTOR_BIND_TIMEOUT_MS;
151
175
  await Promise.allSettled(snapshot.map(async (actor) => {
152
176
  const detached = await this.lifecycle.run(actor.actorId, async () => {
153
177
  const route = await this.routes.route(actor.actorId);
@@ -5,6 +5,7 @@ import { ZLinkActorSessionBindingRegistry } from './actor-session-binding-regist
5
5
  import type { DefaultZLinkSessionActor, DefaultZLinkSessionContext } from './session-context';
6
6
  import { ZLinkStreamFrameMessageFactory } from './stream-frame-factory';
7
7
  import { ZLinkManagedStream } from './managed-stream';
8
+ import type { ZLinkSessionBindingIdentity } from './stream-binding-runtime-ports';
8
9
  export interface ZLinkBoundSessionTransport {
9
10
  send(actorId: string, message: unknown, options: ZLinkBoundSessionSendOptions): Promise<ZLinkSubmitResult>;
10
11
  disconnect(actorId: string, options: ZLinkBoundSessionDisconnectOptions): Promise<void>;
@@ -39,6 +40,12 @@ export declare class ZLinkBoundSessionService {
39
40
  sendNativeBoundSessionError(node: ZLinkBackendActorSessionNode, actorRef: ActorRef, packetName: string, requestSeq: bigint, error: unknown, metadata: ReadonlyMap<string, string>, signal?: AbortSignal): Promise<void>;
40
41
  disconnectNativeBoundSession(node: ZLinkBackendActorSessionNode, actorRef: ActorRef, signal?: AbortSignal): Promise<void>;
41
42
  disconnectBoundSession(actorId: string, signal?: AbortSignal): Promise<void>;
43
+ /**
44
+ * Closes the physical Session of one exact binding after its relocation
45
+ * failed (Session–Actor binding §8.1). A newer binding of the same Actor is
46
+ * not selected.
47
+ */
48
+ closeSessionBinding(actorId: string, expected: ZLinkSessionBindingIdentity, signal?: AbortSignal): Promise<void>;
42
49
  relayRemoteBoundSessionBind(stream: ZLinkManagedStream, actorRef: ActorRef): Promise<void>;
43
50
  private writeLocalBoundSessionFrame;
44
51
  private sendNativeBoundSessionPayload;
@@ -7,6 +7,7 @@ const submission_result_1 = require("../messaging/submission-result");
7
7
  const abort_1 = require("../abort");
8
8
  const protocol_1 = require("./protocol");
9
9
  const bound_session_response_target_1 = require("./bound-session-response-target");
10
+ const spot_remote_codec_1 = require("../spots/spot-remote-codec");
10
11
  const ZLINK_SEND_DONT_WAIT = 1;
11
12
  class ZLinkBoundSessionService {
12
13
  routes;
@@ -102,12 +103,21 @@ class ZLinkBoundSessionService {
102
103
  await this.routes.unbind(actorId, route.context, route.bindingToken);
103
104
  }
104
105
  }
106
+ /**
107
+ * Closes the physical Session of one exact binding after its relocation
108
+ * failed (Session–Actor binding §8.1). A newer binding of the same Actor is
109
+ * not selected.
110
+ */
111
+ async closeSessionBinding(actorId, expected, signal) {
112
+ const route = await this.routes.routeForSessionBinding(actorId, expected.sessionRid, expected.bindingGeneration);
113
+ await route?.context.close(signal);
114
+ }
105
115
  async relayRemoteBoundSessionBind(stream, actorRef) {
106
116
  const encodedBindHeader = (0, protocol_1.encodeStreamHeader)({
107
117
  kind: protocol_1.ZLinkStreamMessageKind.Send,
108
118
  codec: protocol_1.ZLinkStreamCodec.Raw,
109
119
  flags: protocol_1.ZLinkStreamHeaderFlags.None,
110
- name: 'zlink.framework.actor.bound_session.bind',
120
+ name: spot_remote_codec_1.REMOTE_BOUND_SESSION_BIND_PACKET,
111
121
  metadata: new Map()
112
122
  });
113
123
  // encodeStreamHeader returns a fresh, unaliased array; view it without re-copying.
@@ -1,22 +1,21 @@
1
- import type { ZLinkListenerRecords } from '../foundation/listener-records';
2
- import type { ActorRef, ZLinkActor, ZLinkBoundSession, ZLinkSessionActor, ZLinkMessageSerializer, ZLinkStreamCompressionOptions } from '../../contracts';
3
- import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
4
- import type { ZLinkSubmitResult } from '../messaging/submission-result';
5
- import { ZLinkMessage } from '../../contracts';
1
+ import { type ActorRef, type ZLinkActor, type ZLinkBoundSession, type ZLinkMessageSerializer, type ZLinkSessionActor, type ZLinkStreamCompressionOptions, ZLinkMessage } from '../../contracts';
6
2
  import type { Message } from '../../contracts/Common/Message';
7
- import { type ZLinkFrameworkRegistration } from '../configuration';
8
- import { ZLinkDispatchErrorReporter } from '../channels';
9
- import type { ZLinkBackendAdapterFactory, ZLinkBackendActorSessionNode, ZLinkBackendContext, ZLinkBackendMeshNode } from '../backend/contracts';
3
+ import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
4
+ import type { ZLinkBackendActorSessionNode, ZLinkBackendAdapterFactory, ZLinkBackendContext, ZLinkBackendMeshNode } from '../backend/contracts';
10
5
  import type { ZLinkMeshCompletionTable } from '../backend/mesh-completion-table';
11
- import { ZLinkStreamCodec, type ZLinkStreamFrameHeader, ZLinkStreamMessageKind, type ZLinkStreamReplyMessageKind } from './protocol';
12
- import { type ZLinkActorSessionAuthorityFence } from './actor-session-binding-registry';
6
+ import { ZLinkDispatchErrorReporter } from '../channels';
7
+ import { type ZLinkFrameworkRegistration } from '../configuration';
8
+ import type { ZLinkListenerRecords } from '../foundation/listener-records';
13
9
  import { ApplicationJobQueue } from '../host/application-job-queue';
14
- import { DefaultZLinkSessionActor, DefaultZLinkSessionContext } from './session-context';
10
+ import type { ZLinkSubmitResult } from '../messaging/submission-result';
11
+ import { type ZLinkActorSessionAuthorityFence } from './actor-session-binding-registry';
15
12
  import { type ZLinkBoundSessionResponseTarget } from './bound-session-response-target';
16
13
  import { type ZLinkBoundSessionTransport } from './bound-session-service';
17
14
  import { ZLinkManagedStream } from './managed-stream';
15
+ import { ZLinkStreamCodec, ZLinkStreamMessageKind, type ZLinkStreamFrameHeader, type ZLinkStreamReplyMessageKind } from './protocol';
16
+ import { DefaultZLinkSessionActor, DefaultZLinkSessionContext } from './session-context';
17
+ import type { ZLinkActorRouteCommitOptions, ZLinkSessionBindingConfirmationOptions, ZLinkSessionBindingIdentity } from './stream-binding-runtime-ports';
18
18
  import { ZLinkStreamSessionNodeRuntime as ZLinkStreamSessionNodeRuntimeCore, ZLinkStreamSessionRuntime as ZLinkStreamSessionRuntimeCore, type ZLinkStreamSessionNodeRuntimeOptions as ZLinkStreamSessionNodeRuntimeCoreOptions, type ZLinkStreamSessionRuntimeOptions as ZLinkStreamSessionRuntimeCoreOptions } from './stream-session-runtime';
19
- import type { ZLinkActorRouteCommitOptions } from './stream-binding-runtime-ports';
20
19
  export { ZLinkPendingSessionRequest } from './session-requests';
21
20
  export { ZLinkActorSessionLifecycleCoordinator } from './actor-session-lifecycle-coordinator';
22
21
  export { ZLinkActorSessionBindingRegistry } from './actor-session-binding-registry';
@@ -26,6 +25,7 @@ export { DefaultZLinkBoundSession, DefaultZLinkBoundSessionFactory, DefaultZLink
26
25
  export type { ZLinkBoundSessionResponseTarget } from './bound-session-response-target';
27
26
  export type { ZLinkBoundSessionDisconnectOptions, ZLinkBoundSessionSendOptions, ZLinkBoundSessionTransport } from './bound-session-service';
28
27
  export interface ZLinkStreamBindingRuntimeOptions {
28
+ readonly dispatchErrors?: ZLinkDispatchErrorReporter;
29
29
  readonly transport?: ZLinkBoundSessionTransport;
30
30
  readonly messageFactory?: ZLinkStreamMessageFactory;
31
31
  readonly streamPayloadCodec?: ZLinkStreamPayloadCodec;
@@ -41,9 +41,7 @@ export interface ZLinkStreamBindingRuntimeOptions {
41
41
  readonly routingId: unknown;
42
42
  };
43
43
  } | undefined;
44
- readonly confirmRemoteActorSessionBinding?: (actor: ActorRef, sessionRid: ActorRef['nodeRid'], signal?: AbortSignal, options?: {
45
- readonly waitForAcknowledgement?: boolean;
46
- }) => Promise<void>;
44
+ readonly confirmRemoteActorSessionBinding?: (actor: ActorRef, sessionRid: ActorRef['nodeRid'], signal?: AbortSignal, options?: ZLinkSessionBindingConfirmationOptions) => Promise<void>;
47
45
  readonly errorSink?: () => {
48
46
  reportRuntimeTaskException(taskName: string, error: unknown): void;
49
47
  } | undefined;
@@ -144,6 +142,7 @@ export declare class ZLinkStreamBindingRuntime {
144
142
  sendNativeBoundSessionError(node: ZLinkBackendActorSessionNode, actorRef: ActorRef, packetName: string, requestSeq: bigint, error: unknown, metadata: ReadonlyMap<string, string>, signal?: AbortSignal): Promise<void>;
145
143
  disconnectNativeBoundSession(node: ZLinkBackendActorSessionNode, actorRef: ActorRef, signal?: AbortSignal): Promise<void>;
146
144
  disconnectBoundSession(actorId: string, signal?: AbortSignal): Promise<void>;
145
+ closeSessionBinding(actorId: string, expected: ZLinkSessionBindingIdentity, signal?: AbortSignal): Promise<void>;
147
146
  relay(actor: DefaultZLinkSessionActor, payload: ZLinkMessage, signal?: AbortSignal, dispatchHeader?: ZLinkStreamFrameHeader): Promise<ZLinkSubmitResult>;
148
147
  notifyDisconnected(actor: DefaultZLinkSessionActor, signal?: AbortSignal): Promise<void>;
149
148
  createTextMessage(payload: string): Message;
@@ -1,23 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkStreamBindingRuntime = exports.ZLinkStreamSessionNodeRuntime = exports.ZLinkStreamSessionRuntime = exports.ZLinkStreamRuntimeManager = exports.DefaultZLinkSessionContext = exports.DefaultZLinkSessionActor = exports.DefaultZLinkBoundSessionFactory = exports.DefaultZLinkBoundSession = exports.ZLinkManagedStream = exports.zlinkStreamLz4CompressionCodec = exports.ZLinkActorSessionBindingRegistry = exports.ZLinkActorSessionLifecycleCoordinator = exports.ZLinkPendingSessionRequest = void 0;
4
+ const InternalDefaults_1 = require("../../contracts/Configuration/InternalDefaults");
5
+ const Options_1 = require("../../contracts/Locations/Options");
4
6
  const configuration_1 = require("../configuration");
5
7
  const service_session_binding_ingress_port_1 = require("../foundation/service-session-binding-ingress-port");
6
- const protocol_1 = require("./protocol");
8
+ const application_job_queue_1 = require("../host/application-job-queue");
7
9
  const actor_session_binding_registry_1 = require("./actor-session-binding-registry");
8
10
  const actor_session_binding_runtime_owner_1 = require("./actor-session-binding-runtime-owner");
9
11
  const actor_session_lifecycle_coordinator_1 = require("./actor-session-lifecycle-coordinator");
10
- const stream_frame_factory_1 = require("./stream-frame-factory");
11
- const application_job_queue_1 = require("../host/application-job-queue");
12
- const stream_message_utils_1 = require("./stream-message-utils");
13
- const session_context_1 = require("./session-context");
12
+ const bound_actor_relay_sender_1 = require("./bound-actor-relay-sender");
14
13
  const bound_session_response_target_1 = require("./bound-session-response-target");
15
14
  const bound_session_service_1 = require("./bound-session-service");
15
+ const protocol_1 = require("./protocol");
16
16
  const session_actor_coordinator_1 = require("./session-actor-coordinator");
17
- const bound_actor_relay_sender_1 = require("./bound-actor-relay-sender");
17
+ const session_context_1 = require("./session-context");
18
18
  const session_provider_1 = require("./session-provider");
19
- const InternalDefaults_1 = require("../../contracts/Configuration/InternalDefaults");
19
+ const stream_frame_factory_1 = require("./stream-frame-factory");
20
+ const stream_message_utils_1 = require("./stream-message-utils");
20
21
  const stream_session_runtime_1 = require("./stream-session-runtime");
22
+ const DEFAULT_STREAM_SERVICE_SHUTDOWN_TIMEOUT_MS = 1000;
21
23
  var session_requests_1 = require("./session-requests");
22
24
  Object.defineProperty(exports, "ZLinkPendingSessionRequest", { enumerable: true, get: function () { return session_requests_1.ZLinkPendingSessionRequest; } });
23
25
  var actor_session_lifecycle_coordinator_2 = require("./actor-session-lifecycle-coordinator");
@@ -94,9 +96,7 @@ class ZLinkStreamRuntimeManager {
94
96
  node.nativeSessionServices.push(service);
95
97
  const bindingOwner = (0, actor_session_binding_runtime_owner_1.actorSessionBindingRuntimeOwner)(this.options.bindingRuntime);
96
98
  (0, service_session_binding_ingress_port_1.registerServiceSessionBindingIngressPort)(service, {
97
- actorSlot: (actorId, sessionRid) => bindingOwner.actorSlot(actorId, sessionRid),
98
- retainOutbound: (actorId, delivery) => bindingOwner.retainRelocationOutbound(actorId, delivery),
99
- clearOutbound: (actorId, error) => bindingOwner.clearRelocation(actorId, error)
99
+ actorSlot: (actorId, sessionRid) => bindingOwner.actorSlot(actorId, sessionRid)
100
100
  });
101
101
  nativeSessionRoutes.set(meshName, {
102
102
  service,
@@ -140,16 +140,16 @@ class ZLinkStreamRuntimeManager {
140
140
  }
141
141
  async dispose() {
142
142
  const nodes = [...this.nodes.values()];
143
- this.nodes.clear();
144
143
  for (const node of nodes.reverse()) {
145
144
  await node.runtime?.dispose();
146
145
  for (const service of node.nativeSessionServices) {
147
- service.shutdown(1000);
146
+ service.shutdown(DEFAULT_STREAM_SERVICE_SHUTDOWN_TIMEOUT_MS);
148
147
  service.close();
149
148
  }
150
149
  await node.monitor?.dispose();
151
150
  await node.socket.dispose();
152
151
  }
152
+ this.nodes.clear();
153
153
  }
154
154
  async notifyServerDrain(meshName) {
155
155
  await Promise.all([...this.nodes.values()]
@@ -170,6 +170,7 @@ class ZLinkStreamSessionRuntime extends stream_session_runtime_1.ZLinkStreamSess
170
170
  // dispatch-error flow tracer.
171
171
  const bindingRuntime = options.bindingRuntime ??
172
172
  new ZLinkStreamBindingRuntime({
173
+ dispatchErrors: options.dispatchErrors,
173
174
  flowCreationEnabled: () => options.dispatchErrors?.flow.flowCreationEnabled() ?? true
174
175
  });
175
176
  super({
@@ -187,6 +188,7 @@ class ZLinkStreamSessionNodeRuntime extends stream_session_runtime_1.ZLinkStream
187
188
  // process diagnostics Off gate (see ZLinkStreamSessionRuntime above).
188
189
  const bindingRuntime = options.bindingRuntime ??
189
190
  new ZLinkStreamBindingRuntime({
191
+ dispatchErrors: options.dispatchErrors,
190
192
  flowCreationEnabled: () => options.dispatchErrors?.flow.flowCreationEnabled() ?? true
191
193
  });
192
194
  super({
@@ -208,7 +210,8 @@ class ZLinkStreamBindingRuntime {
208
210
  ...options,
209
211
  actorBindTimeoutMs: options.actorBindTimeoutMs ?? DEFAULT_ACTOR_BIND_TIMEOUT_MS
210
212
  };
211
- this.routes = new actor_session_binding_registry_1.ZLinkActorSessionBindingRegistry(4096, 4096, runtimeOptions.sessionRelocationSealTimeoutMs ?? 3_000, runtimeOptions.errorSink);
213
+ this.routes = new actor_session_binding_registry_1.ZLinkActorSessionBindingRegistry(actor_session_binding_registry_1.DEFAULT_TERMINAL_RELOCATION_CAPACITY, runtimeOptions.sessionRelocationSealTimeoutMs ??
214
+ Options_1.zlinkDefaultLocationOptions.sessionRelocationSealTimeoutMs, runtimeOptions.errorSink);
212
215
  this.compressionCodec = (0, stream_frame_factory_1.resolveStreamCompressionCodec)(runtimeOptions.streamCompression);
213
216
  this.frameMessages = new stream_frame_factory_1.ZLinkStreamFrameMessageFactory(runtimeOptions);
214
217
  this.boundSessions = new bound_session_service_1.ZLinkBoundSessionService(this.routes, this.frameMessages, runtimeOptions);
@@ -216,16 +219,9 @@ class ZLinkStreamBindingRuntime {
216
219
  this.sessionActors = new session_actor_coordinator_1.ZLinkSessionActorCoordinator(this.routes, this, runtimeOptions, actorSessionLifecycle);
217
220
  this.boundActorRelay = new bound_actor_relay_sender_1.ZLinkBoundActorRelaySender(this.routes, this.frameMessages, runtimeOptions, actorSessionLifecycle);
218
221
  (0, actor_session_binding_runtime_owner_1.registerActorSessionBindingRuntimeOwner)(this, {
219
- actorSlot: async (actorId, sessionRid) => {
220
- const route = await this.routes.route(actorId);
221
- return route !== undefined && route.sessionIdentity === sessionRid
222
- ? route.actorSlot
223
- : undefined;
224
- },
222
+ actorSlot: async (actorId, sessionRid) => (await this.routes.routeForSessionBinding(actorId, sessionRid))?.actorSlot,
225
223
  sealRelocation: (claim, expected, signal) => this.routes.sealRelocation(claim, expected, signal),
226
224
  relocationSnapshot: (actorId, sealId) => this.routes.relocationSnapshot(actorId, sealId),
227
- retainRelocationOutbound: (actorId, operation, sealId) => this.routes.retainRelocationOutbound(actorId, operation, sealId),
228
- discardRelocationOutbound: (actorId, sealId, error) => this.routes.discardRelocationOutbound(actorId, sealId, error),
229
225
  applyRelocation: (...args) => this.routes.applyRelocation(...args),
230
226
  observeRelocationTerminal: (...args) => this.routes.observeRelocationTerminal(...args),
231
227
  clearRelocation: (actorId, error) => this.routes.clearRelocation(actorId, error),
@@ -328,6 +324,9 @@ class ZLinkStreamBindingRuntime {
328
324
  async disconnectBoundSession(actorId, signal) {
329
325
  await this.boundSessions.disconnectBoundSession(actorId, signal);
330
326
  }
327
+ async closeSessionBinding(actorId, expected, signal) {
328
+ await this.boundSessions.closeSessionBinding(actorId, expected, signal);
329
+ }
331
330
  async relay(actor, payload, signal, dispatchHeader) {
332
331
  return await this.boundActorRelay.relay(actor, payload, signal, dispatchHeader);
333
332
  }
@@ -5,6 +5,7 @@ import type { ZLinkBackendSendFlags, ZLinkBackendStreamSocket } from '../backend
5
5
  import type { StreamSessionService } from '../foundation/service-runtime-contracts';
6
6
  import type { ServiceRetiredBoundSessionRouteFence } from '../foundation/service-stateful-wire-codec';
7
7
  import type { ServiceActorRef } from '../foundation/service-stateful-registry';
8
+ import type { ServiceStreamSessionBinding } from '../foundation/service-runtime-contracts';
8
9
  import { type ZLinkMeshCompletionTable } from '../backend/mesh-completion-table';
9
10
  import { ZLinkStreamCloseReasonCode } from './protocol';
10
11
  import type { ZLinkActorSessionAuthorityFence } from './actor-session-binding-registry';
@@ -29,6 +30,8 @@ export declare class ZLinkManagedStream implements ZLinkStream {
29
30
  get routingId(): RoutingId;
30
31
  get actorBindingRoutingId(): RoutingId;
31
32
  actorBindingGeneration(actorId: string): bigint | undefined;
33
+ /** The Session owner's registry snapshot of the Actor's current native binding. */
34
+ actorBinding(actorId: string): ServiceStreamSessionBinding | undefined;
32
35
  private isTransportClosed;
33
36
  get localAddr(): string | undefined;
34
37
  get remoteAddr(): string | undefined;
@@ -8,6 +8,7 @@ const abort_1 = require("../abort");
8
8
  const payload_codec_1 = require("../messaging/payload-codec");
9
9
  const runtime_values_1 = require("../backend/runtime-values");
10
10
  const runtime_message_1 = require("../backend/runtime-message");
11
+ const diagnostic_text_1 = require("../diagnostics/diagnostic-text");
11
12
  const mesh_completion_table_1 = require("../backend/mesh-completion-table");
12
13
  const protocol_1 = require("./protocol");
13
14
  const ZLINK_SEND_DONT_WAIT = 1;
@@ -47,7 +48,11 @@ class ZLinkManagedStream {
47
48
  return this.backendSessionRoutingId;
48
49
  }
49
50
  actorBindingGeneration(actorId) {
50
- return this.nativeActorBindings.get(actorId)?.bindingGeneration;
51
+ return this.nativeActorBindings.get(actorId)?.binding?.bindingGeneration;
52
+ }
53
+ /** The Session owner's registry snapshot of the Actor's current native binding. */
54
+ actorBinding(actorId) {
55
+ return this.nativeActorBindings.get(actorId)?.binding;
51
56
  }
52
57
  isTransportClosed() {
53
58
  return this.transportClosed;
@@ -77,8 +82,9 @@ class ZLinkManagedStream {
77
82
  return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
78
83
  }
79
84
  catch (error) {
80
- if ((0, runtime_values_1.isBackendNotConnectedError)(error))
81
- return { status: submission_result_1.ZLinkSubmitStatus.Backpressured };
85
+ if ((0, runtime_values_1.isZLinkBackendResultError)(error) && error.operation === 'submit') {
86
+ return (0, submission_result_1.classifySubmitResult)(error.result, 'STREAM submit', error.phase);
87
+ }
82
88
  throw error;
83
89
  }
84
90
  }
@@ -157,7 +163,7 @@ class ZLinkManagedStream {
157
163
  }
158
164
  this.nativeActorBindings.set(actor.actorId, {
159
165
  actor: nativeActor,
160
- bindingGeneration: binding.bindingGeneration,
166
+ binding,
161
167
  route
162
168
  });
163
169
  return;
@@ -179,7 +185,9 @@ class ZLinkManagedStream {
179
185
  String(resolved.nodeRid) !== String(actor.nodeRid)) {
180
186
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorRouteNotFound, `Actor '${actor.actorId}' native route fence does not match its ActorRef ` +
181
187
  `(expected ${String(actor.nodeRid)}/${actor.objectGeneration}, ` +
182
- `resolved ${resolved === undefined ? 'none' : `${String(resolved.nodeRid)}/${resolved.generation}`}, ` +
188
+ `resolved ${(0, diagnostic_text_1.diagnosticTextOrAbsent)(resolved === undefined
189
+ ? undefined
190
+ : `${String(resolved.nodeRid)}/${resolved.generation}`)}, ` +
183
191
  `terminal=${completion.terminalResult}, failure=${completion.failureErrno}).`);
184
192
  }
185
193
  }
@@ -198,12 +206,13 @@ class ZLinkManagedStream {
198
206
  const binding = this.nativeActorBindings.get(actorId);
199
207
  if (binding?.route !== undefined) {
200
208
  const route = binding.route;
201
- if (!this.hasNativeBinding(route, actorId, binding.bindingGeneration)) {
209
+ const bindingGeneration = binding.binding.bindingGeneration;
210
+ if (!this.hasNativeBinding(route, actorId, bindingGeneration)) {
202
211
  this.nativeActorBindings.delete(actorId);
203
212
  return;
204
213
  }
205
214
  try {
206
- await this.requireSuccessfulCompletion(route.completions.submit(() => route.service.unbindActor(this.backendRoutingId(), binding.actor, binding.bindingGeneration, timeoutMs), signal), `Actor '${actorId}' native session unbind`,
215
+ await this.requireSuccessfulCompletion(route.completions.submit(() => route.service.unbindActor(this.backendRoutingId(), binding.actor, bindingGeneration, timeoutMs), signal), `Actor '${actorId}' native session unbind`,
207
216
  // Destroy can remove the actor registry entry before the old
208
217
  // session owner processes its cleanup. Both a disconnected route and
209
218
  // that stale actor route are idempotent unbind outcomes.
@@ -214,7 +223,7 @@ class ZLinkManagedStream {
214
223
  // tombstone. A transport teardown can therefore report an internal
215
224
  // completion after the exact binding is already gone. Treat only that
216
225
  // exact missing binding as stale cleanup; preserve other failures.
217
- if (this.hasNativeBinding(route, actorId, binding.bindingGeneration)) {
226
+ if (this.hasNativeBinding(route, actorId, bindingGeneration)) {
218
227
  throw error;
219
228
  }
220
229
  }
@@ -99,9 +99,8 @@ class ZLinkNativeFallbackBoundSessionSendCall {
99
99
  async executeScoped(packetName, signal) {
100
100
  const localActor = this.options.localActorProvider?.() === true;
101
101
  const remoteTarget = this.options.remoteBoundSessionTargetProvider();
102
- const sealedRemoteTarget = remoteTarget?.relocationSealId !== undefined;
103
102
  let nativeAttempted = false;
104
- if (localActor && !sealedRemoteTarget) {
103
+ if (localActor) {
105
104
  const result = await this.options.runtime.submitLocalBoundSession(this.options.actorId, this.message, packetName, this.selectedMetadata, signal);
106
105
  if (result.status !== submission_result_1.ZLinkSubmitStatus.TargetNotFound) {
107
106
  this.traceSubmitted(result, packetName);
@@ -136,7 +135,6 @@ class ZLinkNativeFallbackBoundSessionSendCall {
136
135
  actorNodeRidHex: actorRef?.nodeRid?.toHex?.(),
137
136
  actorGeneration: actorRef?.objectGeneration.toString(),
138
137
  actorOwnershipGeneration: ownershipGeneration?.toString(),
139
- relocationSealId: remoteTarget.relocationSealId,
140
138
  message: this.message,
141
139
  boundPacketName: packetName,
142
140
  metadata: this.selectedMetadata,
@@ -1,40 +1,13 @@
1
- import type { Message } from '../../contracts/Common/Message';
1
+ import { ZlinkStreamCloseReasonCode as ZLinkStreamCloseReasonCode, ZlinkStreamCodec as ZLinkStreamCodec, ZlinkStreamHeaderFlags as ZLinkStreamHeaderFlags, ZlinkStreamMessageKind as ZLinkStreamMessageKind } from '@zlink-systems/stream-wire';
2
2
  import type { ZLinkFlowOrigin } from '../../contracts';
3
+ import type { Message } from '../../contracts/Common/Message';
4
+ export { ZlinkStreamMessageKind as ZLinkStreamMessageKind, ZlinkStreamHeaderFlags as ZLinkStreamHeaderFlags, ZlinkStreamCloseReasonCode as ZLinkStreamCloseReasonCode } from '@zlink-systems/stream-wire';
3
5
  export { utf8Decode, utf8Encode } from '@zlink-systems/stream-wire';
4
- export declare enum ZLinkStreamCodec {
5
- Raw = 0,
6
- Json = 1,
7
- MessagePack = 2,
8
- Protobuf = 3
9
- }
6
+ export { ZlinkStreamCodec as ZLinkStreamCodec } from '@zlink-systems/stream-wire';
10
7
  export declare function streamCodecContentType(codec: ZLinkStreamCodec): string;
11
8
  export declare function streamCodecForContentType(contentType: string): ZLinkStreamCodec;
12
- export declare enum ZLinkStreamMessageKind {
13
- Send = 1,
14
- Request = 2,
15
- Response = 3,
16
- Error = 4,
17
- Control = 5
18
- }
19
- export declare enum ZLinkStreamHeaderFlags {
20
- None = 0,
21
- HasRequestSeq = 1,
22
- HasMetadata = 2,
23
- PayloadCompressed = 4,
24
- HasCorrelationId = 8,
25
- HasFlowId = 16,
26
- HasActorSlot = 32
27
- }
28
- export declare enum ZLinkStreamCloseReasonCode {
29
- ClientClose = 1,
30
- IdleTimeout = 2,
31
- HeartbeatTimeout = 3,
32
- ServerDrain = 4,
33
- ProtocolError = 5,
34
- TransportError = 6
35
- }
36
- export declare const ZLINK_STREAM_HEARTBEAT_PING = "$zlink.heartbeat.ping";
37
- export declare const ZLINK_STREAM_HEARTBEAT_PONG = "$zlink.heartbeat.pong";
9
+ export declare const ZLINK_STREAM_HEARTBEAT_PING: "$zlink.heartbeat.ping";
10
+ export declare const ZLINK_STREAM_HEARTBEAT_PONG: "$zlink.heartbeat.pong";
38
11
  export interface ZLinkStreamFrameHeader {
39
12
  readonly kind: ZLinkStreamMessageKind;
40
13
  readonly codec: ZLinkStreamCodec;