@zlink-systems/framework 0.25.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (557) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Channels/IZLinkFanoutClient.d.ts +0 -6
  3. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  4. package/dist/contracts/Common/CoreTypes.js +7 -0
  5. package/dist/contracts/Common/index.d.ts +1 -1
  6. package/dist/contracts/Common/index.js +0 -1
  7. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  8. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  9. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  10. package/dist/contracts/Configuration/Registration.js +58 -36
  11. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  12. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  13. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  14. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  15. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  16. package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
  17. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  18. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  19. package/dist/contracts/Handlers/JsonContract.js +10 -4
  20. package/dist/contracts/Locations/Authority.d.ts +1 -1
  21. package/dist/contracts/Locations/Authority.js +3 -2
  22. package/dist/contracts/Locations/Options.js +1 -1
  23. package/dist/contracts/Locations/Stores.d.ts +12 -0
  24. package/dist/contracts/Locations/Stores.js +9 -0
  25. package/dist/contracts/RouteMesh/RuntimeTopology.d.ts +8 -0
  26. package/dist/contracts/Spots/Contracts.d.ts +1 -1
  27. package/dist/internal.d.ts +5 -0
  28. package/dist/internal.js +16 -1
  29. package/dist/nest-integration.d.ts +4 -2
  30. package/dist/nest-integration.js +14 -4
  31. package/dist/runtime/abort.d.ts +1 -0
  32. package/dist/runtime/abort.js +8 -5
  33. package/dist/runtime/activation-admission.d.ts +28 -0
  34. package/dist/runtime/activation-admission.js +57 -0
  35. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  36. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  37. package/dist/runtime/actors/actor-client.d.ts +2 -2
  38. package/dist/runtime/actors/actor-client.js +42 -143
  39. package/dist/runtime/actors/actor-context.d.ts +3 -5
  40. package/dist/runtime/actors/actor-context.js +19 -17
  41. package/dist/runtime/actors/actor-handoff.d.ts +13 -7
  42. package/dist/runtime/actors/actor-handoff.js +36 -25
  43. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  44. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  45. package/dist/runtime/actors/actor-local-native-join.js +85 -123
  46. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  47. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  48. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  49. package/dist/runtime/actors/actor-remote-joiner.d.ts +3 -3
  50. package/dist/runtime/actors/actor-remote-joiner.js +11 -17
  51. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  52. package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
  53. package/dist/runtime/actors/actor-request-deadline.js +31 -0
  54. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  55. package/dist/runtime/actors/actor-runtime-contracts.d.ts +4 -2
  56. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  57. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  58. package/dist/runtime/actors/actor-source-transfer.d.ts +5 -5
  59. package/dist/runtime/actors/bound-session-wire.js +2 -7
  60. package/dist/runtime/actors/deferred-join-completion.d.ts +19 -0
  61. package/dist/runtime/actors/deferred-join-completion.js +21 -0
  62. package/dist/runtime/actors/index.d.ts +10 -8
  63. package/dist/runtime/actors/index.js +101 -73
  64. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  65. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  66. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  67. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  68. package/dist/runtime/admission.d.ts +7 -1
  69. package/dist/runtime/admission.js +11 -1
  70. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  71. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  72. package/dist/runtime/backend/contracts/index.d.ts +8 -33
  73. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +3 -26
  74. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  75. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  76. package/dist/runtime/backend/node/node-backend-adapter-factory.d.ts +1 -2
  77. package/dist/runtime/backend/node/node-backend-adapter-factory.js +4 -18
  78. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +7 -4
  79. package/dist/runtime/backend/node/node-backend-adapter-support.js +28 -34
  80. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  81. package/dist/runtime/backend/node/node-event-loop-poller.js +11 -6
  82. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  83. package/dist/runtime/backend/node/node-raw-binding-port.d.ts +1 -1
  84. package/dist/runtime/backend/node/node-raw-binding-port.js +51 -19
  85. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +21 -19
  86. package/dist/runtime/backend/node/node-raw-mesh-backend.js +171 -111
  87. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  88. package/dist/runtime/backend/raw-binding-port.d.ts +13 -1
  89. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  90. package/dist/runtime/backend/runtime-values.js +2 -0
  91. package/dist/runtime/channels/channel-clients.d.ts +20 -9
  92. package/dist/runtime/channels/channel-clients.js +68 -60
  93. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  94. package/dist/runtime/channels/channel-envelope.js +47 -29
  95. package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
  96. package/dist/runtime/channels/channel-outbound-operations.js +9 -18
  97. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  98. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  99. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  100. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  101. package/dist/runtime/channels/channel-runtime-manager.d.ts +2 -5
  102. package/dist/runtime/channels/channel-runtime-manager.js +4 -12
  103. package/dist/runtime/channels/channel-socket-options.js +3 -2
  104. package/dist/runtime/channels/channel-socket-registry.d.ts +30 -32
  105. package/dist/runtime/channels/channel-socket-registry.js +296 -235
  106. package/dist/runtime/channels/channel-transports.d.ts +11 -20
  107. package/dist/runtime/channels/channel-transports.js +68 -47
  108. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  109. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  110. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  111. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  112. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  113. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  114. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  115. package/dist/runtime/channels/fanout-location-runtime.js +133 -81
  116. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  117. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  118. package/dist/runtime/channels/spot-node-route-transport.js +3 -2
  119. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  120. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  121. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  122. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  123. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  124. package/dist/runtime/diagnostics/flow-context.js +16 -2
  125. package/dist/runtime/diagnostics/index.d.ts +4 -2
  126. package/dist/runtime/diagnostics/index.js +14 -4
  127. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  128. package/dist/runtime/diagnostics/message-flow.js +10 -19
  129. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  130. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  131. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  132. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  133. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  134. package/dist/runtime/disposal.d.ts +5 -0
  135. package/dist/runtime/disposal.js +22 -0
  136. package/dist/runtime/execution/index.d.ts +22 -9
  137. package/dist/runtime/execution/index.js +107 -37
  138. package/dist/runtime/execution/serial-execution-queue.d.ts +12 -7
  139. package/dist/runtime/execution/serial-execution-queue.js +99 -26
  140. package/dist/runtime/execution/state-lane.d.ts +8 -1
  141. package/dist/runtime/execution/state-lane.js +118 -3
  142. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  143. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  144. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  145. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  146. package/dist/runtime/foundation/listener-records.d.ts +11 -0
  147. package/dist/runtime/foundation/listener-records.js +20 -0
  148. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  149. package/dist/runtime/foundation/operation-identity.js +9 -5
  150. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  151. package/dist/runtime/foundation/operation-registry.js +34 -44
  152. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +18 -26
  153. package/dist/runtime/foundation/raw-service-mesh-runtime.js +122 -469
  154. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  155. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  156. package/dist/runtime/foundation/service-authority-payload-codec.d.ts +1 -0
  157. package/dist/runtime/foundation/service-authority-payload-codec.js +30 -12
  158. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  159. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  160. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  161. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  162. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  163. package/dist/runtime/foundation/service-maintenance-runtime.js +23 -8
  164. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  165. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  166. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  167. package/dist/runtime/foundation/service-relocation-coordinator.d.ts +9 -0
  168. package/dist/runtime/foundation/service-relocation-coordinator.js +14 -1
  169. package/dist/runtime/foundation/service-relocation-object-owner.d.ts +8 -0
  170. package/dist/runtime/foundation/service-relocation-object-owner.js +19 -6
  171. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  172. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  173. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  174. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -19
  175. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  176. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  177. package/dist/runtime/foundation/service-stateful-runtime.d.ts +28 -24
  178. package/dist/runtime/foundation/service-stateful-runtime.js +297 -244
  179. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +12 -7
  180. package/dist/runtime/foundation/service-stateful-wire-codec.js +240 -143
  181. package/dist/runtime/foundation/service-topology-registry.d.ts +1 -3
  182. package/dist/runtime/foundation/service-topology-registry.js +22 -61
  183. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  184. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  185. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  186. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  187. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  188. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  189. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  190. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  191. package/dist/runtime/framework-errors-internal.js +343 -122
  192. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  193. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  194. package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
  195. package/dist/runtime/host/actor-packet-relay.js +48 -91
  196. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  197. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  198. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  199. package/dist/runtime/host/actor-transfer-runtime.d.ts +28 -28
  200. package/dist/runtime/host/actor-transfer-runtime.js +210 -256
  201. package/dist/runtime/host/application-job-queue.js +16 -33
  202. package/dist/runtime/host/bound-session-relay.js +1 -1
  203. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  204. package/dist/runtime/host/index.d.ts +19 -14
  205. package/dist/runtime/host/index.js +234 -175
  206. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  207. package/dist/runtime/host/instance-activation-authority.js +17 -45
  208. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  209. package/dist/runtime/host/location-runtime-owner.js +2 -2
  210. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  211. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  212. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  213. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  214. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  215. package/dist/runtime/host/remote-bound-session-relay.js +11 -23
  216. package/dist/runtime/host/route-mesh-runtime.d.ts +14 -10
  217. package/dist/runtime/host/route-mesh-runtime.js +178 -257
  218. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  219. package/dist/runtime/host/runtime-shutdown.js +18 -21
  220. package/dist/runtime/host/service-relocation-control.js +6 -1
  221. package/dist/runtime/host/service-relocation-host-runtime.d.ts +71 -38
  222. package/dist/runtime/host/service-relocation-host-runtime.js +816 -651
  223. package/dist/runtime/host/spot-address-transport.d.ts +2 -3
  224. package/dist/runtime/host/spot-address-transport.js +34 -136
  225. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  226. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  227. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -7
  228. package/dist/runtime/host/spot-runtime-options-factory.js +53 -21
  229. package/dist/runtime/host/stateful-authority-route-runtime.js +6 -2
  230. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +14 -6
  231. package/dist/runtime/host/user-spot-creation-coordinator.js +96 -95
  232. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  233. package/dist/runtime/locations/authority-key-codec.js +4 -3
  234. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  235. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  236. package/dist/runtime/locations/creation-operation-id.js +6 -4
  237. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  238. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  239. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  240. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  241. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  242. package/dist/runtime/locations/in-memory-provider-location-store.js +79 -27
  243. package/dist/runtime/locations/key-codec.js +3 -2
  244. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  245. package/dist/runtime/locations/lease-tracker.js +7 -11
  246. package/dist/runtime/locations/lifecycle.d.ts +5 -10
  247. package/dist/runtime/locations/lifecycle.js +4 -33
  248. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  249. package/dist/runtime/locations/location-store-failure.js +7 -0
  250. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  251. package/dist/runtime/locations/location-store-pages.js +13 -0
  252. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  253. package/dist/runtime/locations/location-store-repository.js +303 -332
  254. package/dist/runtime/locations/relocation-blob.js +18 -5
  255. package/dist/runtime/locations/resolvers.d.ts +5 -5
  256. package/dist/runtime/locations/resolvers.js +44 -30
  257. package/dist/runtime/locations/runtime.d.ts +5 -4
  258. package/dist/runtime/locations/runtime.js +123 -92
  259. package/dist/runtime/locations/spot-location-claims.d.ts +8 -2
  260. package/dist/runtime/locations/spot-location-claims.js +40 -23
  261. package/dist/runtime/messaging/payload-codec.js +26 -20
  262. package/dist/runtime/messaging/submission-result.d.ts +3 -0
  263. package/dist/runtime/messaging/submission-result.js +48 -0
  264. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +2 -0
  265. package/dist/runtime/protocol/service_wire_codec.generated.js +17 -8
  266. package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +1 -0
  267. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +3 -2
  268. package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +3 -3
  269. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +4 -4
  270. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +6 -3
  271. package/dist/runtime/spots/index.d.ts +29 -29
  272. package/dist/runtime/spots/index.js +441 -313
  273. package/dist/runtime/spots/spot-activation-registry.d.ts +4 -4
  274. package/dist/runtime/spots/spot-activation-registry.js +27 -60
  275. package/dist/runtime/spots/spot-activation-state.d.ts +2 -11
  276. package/dist/runtime/spots/spot-activation-state.js +4 -17
  277. package/dist/runtime/spots/spot-activation.d.ts +10 -9
  278. package/dist/runtime/spots/spot-activation.js +103 -81
  279. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  280. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  281. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  282. package/dist/runtime/spots/spot-actor-join-dispatch.js +5 -55
  283. package/dist/runtime/spots/spot-actor-lifecycle-drain.js +2 -2
  284. package/dist/runtime/spots/spot-actor-membership.d.ts +7 -5
  285. package/dist/runtime/spots/spot-actor-membership.js +44 -53
  286. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  287. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  288. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  289. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  290. package/dist/runtime/spots/spot-context.d.ts +2 -2
  291. package/dist/runtime/spots/spot-entry-activation.d.ts +3 -4
  292. package/dist/runtime/spots/spot-entry-activation.js +9 -21
  293. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  294. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  295. package/dist/runtime/spots/spot-manager-public.js +6 -5
  296. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  297. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +22 -21
  298. package/dist/runtime/spots/spot-node-runtime-manager.js +73 -82
  299. package/dist/runtime/spots/spot-outbound.d.ts +4 -3
  300. package/dist/runtime/spots/spot-outbound.js +10 -37
  301. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  302. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  303. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  304. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  305. package/dist/runtime/spots/spot-route-replies.js +3 -1
  306. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -2
  307. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -2
  308. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +2 -7
  309. package/dist/runtime/spots/spot-routed-frame-dispatch.js +1 -70
  310. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  311. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  312. package/dist/runtime/spots/spot-runtime-ports.d.ts +4 -20
  313. package/dist/runtime/spots/spot-serial-executor.d.ts +5 -0
  314. package/dist/runtime/spots/spot-serial-executor.js +9 -2
  315. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +29 -6
  316. package/dist/runtime/spots/spot-serial-turn-executor.js +89 -13
  317. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  318. package/dist/runtime/streams/actor-session-binding-registry.d.ts +17 -32
  319. package/dist/runtime/streams/actor-session-binding-registry.js +145 -367
  320. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +2 -6
  321. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
  322. package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
  323. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  324. package/dist/runtime/streams/bound-session-service.js +12 -19
  325. package/dist/runtime/streams/index.d.ts +15 -14
  326. package/dist/runtime/streams/index.js +38 -39
  327. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  328. package/dist/runtime/streams/managed-stream.js +17 -8
  329. package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
  330. package/dist/runtime/streams/protocol.d.ts +6 -33
  331. package/dist/runtime/streams/protocol.js +38 -110
  332. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  333. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  334. package/dist/runtime/streams/session-calls.d.ts +1 -1
  335. package/dist/runtime/streams/session-calls.js +5 -4
  336. package/dist/runtime/streams/session-context.d.ts +6 -6
  337. package/dist/runtime/streams/session-context.js +22 -4
  338. package/dist/runtime/streams/session-requests.js +2 -1
  339. package/dist/runtime/streams/session-serial-executor.js +2 -2
  340. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  341. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  342. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  343. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  344. package/dist/runtime/workers/index.d.ts +2 -2
  345. package/dist/runtime/workers/index.js +5 -4
  346. package/package.json +3 -3
  347. package/src/contracts/Channels/IZLinkFanoutClient.ts +0 -7
  348. package/src/contracts/Common/CoreTypes.ts +7 -0
  349. package/src/contracts/Common/index.ts +1 -1
  350. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  351. package/src/contracts/Configuration/Registration.ts +92 -48
  352. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  353. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
  354. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  355. package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
  356. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  357. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  358. package/src/contracts/Handlers/JsonContract.ts +14 -4
  359. package/src/contracts/Locations/Authority.ts +7 -3
  360. package/src/contracts/Locations/Options.ts +1 -1
  361. package/src/contracts/Locations/Stores.ts +14 -0
  362. package/src/contracts/RouteMesh/RuntimeTopology.ts +10 -0
  363. package/src/contracts/Spots/Contracts.ts +1 -1
  364. package/src/internal.ts +15 -0
  365. package/src/nest-integration.ts +28 -10
  366. package/src/runtime/abort.ts +6 -5
  367. package/src/runtime/activation-admission.ts +72 -0
  368. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  369. package/src/runtime/actors/actor-client.ts +77 -204
  370. package/src/runtime/actors/actor-context.ts +45 -39
  371. package/src/runtime/actors/actor-handoff.ts +55 -45
  372. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  373. package/src/runtime/actors/actor-local-native-join.ts +174 -215
  374. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  375. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  376. package/src/runtime/actors/actor-remote-joiner.ts +15 -36
  377. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  378. package/src/runtime/actors/actor-request-deadline.ts +49 -0
  379. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  380. package/src/runtime/actors/actor-runtime-contracts.ts +4 -10
  381. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  382. package/src/runtime/actors/actor-source-transfer.ts +5 -18
  383. package/src/runtime/actors/bound-session-wire.ts +2 -8
  384. package/src/runtime/actors/deferred-join-completion.ts +44 -0
  385. package/src/runtime/actors/index.ts +122 -88
  386. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  387. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  388. package/src/runtime/admission.ts +13 -2
  389. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  390. package/src/runtime/backend/contracts/index.ts +15 -42
  391. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -28
  392. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  393. package/src/runtime/backend/node/node-backend-adapter-factory.ts +5 -25
  394. package/src/runtime/backend/node/node-backend-adapter-support.ts +32 -35
  395. package/src/runtime/backend/node/node-event-loop-poller.ts +16 -8
  396. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  397. package/src/runtime/backend/node/node-raw-binding-port.ts +58 -23
  398. package/src/runtime/backend/node/node-raw-mesh-backend.ts +252 -162
  399. package/src/runtime/backend/node/node-socket-backend-adapter.ts +5 -4
  400. package/src/runtime/backend/raw-binding-port.ts +14 -1
  401. package/src/runtime/backend/runtime-values.ts +4 -1
  402. package/src/runtime/channels/channel-clients.ts +132 -96
  403. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  404. package/src/runtime/channels/channel-envelope.ts +58 -29
  405. package/src/runtime/channels/channel-outbound-operations.ts +10 -31
  406. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  407. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  408. package/src/runtime/channels/channel-runtime-manager.ts +8 -15
  409. package/src/runtime/channels/channel-socket-options.ts +8 -2
  410. package/src/runtime/channels/channel-socket-registry.ts +369 -262
  411. package/src/runtime/channels/channel-transports.ts +161 -115
  412. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  413. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  414. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  415. package/src/runtime/channels/fanout-location-runtime.ts +175 -106
  416. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  417. package/src/runtime/channels/spot-node-route-transport.ts +5 -2
  418. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  419. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  420. package/src/runtime/diagnostics/flow-context.ts +16 -2
  421. package/src/runtime/diagnostics/index.ts +27 -17
  422. package/src/runtime/diagnostics/message-flow.ts +15 -25
  423. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  424. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  425. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  426. package/src/runtime/disposal.ts +19 -0
  427. package/src/runtime/execution/index.ts +116 -38
  428. package/src/runtime/execution/serial-execution-queue.ts +179 -34
  429. package/src/runtime/execution/state-lane.ts +142 -4
  430. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  431. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  432. package/src/runtime/foundation/listener-records.ts +21 -0
  433. package/src/runtime/foundation/operation-identity.ts +11 -5
  434. package/src/runtime/foundation/operation-registry.ts +33 -50
  435. package/src/runtime/foundation/raw-service-mesh-runtime.ts +170 -571
  436. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  437. package/src/runtime/foundation/service-authority-payload-codec.ts +41 -13
  438. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  439. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  440. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  441. package/src/runtime/foundation/service-maintenance-runtime.ts +30 -19
  442. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  443. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  444. package/src/runtime/foundation/service-relocation-coordinator.ts +13 -0
  445. package/src/runtime/foundation/service-relocation-object-owner.ts +23 -7
  446. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  447. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  448. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -25
  449. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  450. package/src/runtime/foundation/service-stateful-runtime.ts +435 -327
  451. package/src/runtime/foundation/service-stateful-wire-codec.ts +329 -199
  452. package/src/runtime/foundation/service-topology-registry.ts +30 -79
  453. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  454. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  455. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  456. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  457. package/src/runtime/framework-errors-internal.ts +380 -134
  458. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  459. package/src/runtime/host/actor-packet-relay.ts +57 -147
  460. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  461. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  462. package/src/runtime/host/actor-transfer-runtime.ts +266 -418
  463. package/src/runtime/host/application-job-queue.ts +28 -34
  464. package/src/runtime/host/bound-session-relay.ts +1 -2
  465. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  466. package/src/runtime/host/index.ts +408 -312
  467. package/src/runtime/host/instance-activation-authority.ts +89 -109
  468. package/src/runtime/host/location-runtime-owner.ts +4 -2
  469. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  470. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  471. package/src/runtime/host/remote-bound-session-relay.ts +12 -44
  472. package/src/runtime/host/route-mesh-runtime.ts +236 -275
  473. package/src/runtime/host/runtime-shutdown.ts +17 -21
  474. package/src/runtime/host/service-relocation-control.ts +14 -1
  475. package/src/runtime/host/service-relocation-host-runtime.ts +1161 -904
  476. package/src/runtime/host/spot-address-transport.ts +73 -195
  477. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  478. package/src/runtime/host/spot-runtime-options-factory.ts +92 -30
  479. package/src/runtime/host/stateful-authority-route-runtime.ts +8 -4
  480. package/src/runtime/host/user-spot-creation-coordinator.ts +182 -163
  481. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  482. package/src/runtime/locations/authority-key-codec.ts +7 -3
  483. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  484. package/src/runtime/locations/creation-operation-id.ts +6 -3
  485. package/src/runtime/locations/domain-store-contract.ts +12 -3
  486. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  487. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  488. package/src/runtime/locations/in-memory-provider-location-store.ts +110 -31
  489. package/src/runtime/locations/key-codec.ts +3 -2
  490. package/src/runtime/locations/lease-tracker.ts +8 -14
  491. package/src/runtime/locations/lifecycle.ts +16 -45
  492. package/src/runtime/locations/location-store-failure.ts +4 -0
  493. package/src/runtime/locations/location-store-pages.ts +18 -0
  494. package/src/runtime/locations/location-store-repository.ts +450 -478
  495. package/src/runtime/locations/relocation-blob.ts +17 -6
  496. package/src/runtime/locations/resolvers.ts +90 -58
  497. package/src/runtime/locations/runtime.ts +220 -110
  498. package/src/runtime/locations/spot-location-claims.ts +54 -26
  499. package/src/runtime/messaging/payload-codec.ts +35 -24
  500. package/src/runtime/messaging/submission-result.ts +57 -1
  501. package/src/runtime/protocol/service_wire_codec.generated.ts +27 -10
  502. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +4 -4
  503. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +6 -6
  504. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +6 -3
  505. package/src/runtime/spots/index.ts +687 -437
  506. package/src/runtime/spots/spot-activation-registry.ts +42 -71
  507. package/src/runtime/spots/spot-activation-state.ts +4 -16
  508. package/src/runtime/spots/spot-activation.ts +167 -115
  509. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  510. package/src/runtime/spots/spot-actor-join-dispatch.ts +25 -79
  511. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +20 -18
  512. package/src/runtime/spots/spot-actor-membership.ts +107 -75
  513. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  514. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  515. package/src/runtime/spots/spot-context.ts +3 -3
  516. package/src/runtime/spots/spot-entry-activation.ts +13 -33
  517. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  518. package/src/runtime/spots/spot-manager-public.ts +29 -21
  519. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  520. package/src/runtime/spots/spot-node-runtime-manager.ts +145 -140
  521. package/src/runtime/spots/spot-outbound.ts +47 -68
  522. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  523. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  524. package/src/runtime/spots/spot-route-replies.ts +6 -4
  525. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -6
  526. package/src/runtime/spots/spot-routed-frame-dispatch.ts +6 -77
  527. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  528. package/src/runtime/spots/spot-runtime-ports.ts +10 -43
  529. package/src/runtime/spots/spot-serial-executor.ts +10 -2
  530. package/src/runtime/spots/spot-serial-turn-executor.ts +120 -13
  531. package/src/runtime/spots/spot-timer.ts +3 -2
  532. package/src/runtime/streams/actor-session-binding-registry.ts +182 -560
  533. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +1 -19
  534. package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
  535. package/src/runtime/streams/bound-session-service.ts +23 -37
  536. package/src/runtime/streams/index.ts +102 -88
  537. package/src/runtime/streams/managed-stream.ts +29 -10
  538. package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
  539. package/src/runtime/streams/protocol.ts +34 -88
  540. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  541. package/src/runtime/streams/session-calls.ts +6 -5
  542. package/src/runtime/streams/session-context.ts +54 -10
  543. package/src/runtime/streams/session-requests.ts +2 -1
  544. package/src/runtime/streams/session-serial-executor.ts +2 -2
  545. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  546. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  547. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  548. package/src/runtime/workers/index.ts +13 -12
  549. package/dist/runtime/actors/deferred-join-accepted-journal.d.ts +0 -47
  550. package/dist/runtime/actors/deferred-join-accepted-journal.js +0 -992
  551. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  552. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  553. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  554. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  555. package/src/runtime/actors/deferred-join-accepted-journal.ts +0 -1346
  556. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  557. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -2,23 +2,25 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DefaultZLinkActorClient = void 0;
4
4
  exports.forwardEncodedActorPacket = forwardEncodedActorPacket;
5
- const framework_errors_internal_1 = require("../framework-errors-internal");
6
- const runtime_message_1 = require("../backend/runtime-message");
7
- const runtime_values_1 = require("../backend/runtime-values");
5
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
8
6
  const contracts_1 = require("../../contracts");
9
- const contracts_2 = require("../../contracts");
10
- const submission_result_1 = require("../messaging/submission-result");
11
- const backend_1 = require("../backend");
7
+ const CoreTypes_1 = require("../../contracts/Common/CoreTypes");
12
8
  const abort_1 = require("../abort");
13
- const payload_codec_1 = require("../messaging/payload-codec");
9
+ const backend_1 = require("../backend");
10
+ const runtime_message_1 = require("../backend/runtime-message");
11
+ const runtime_values_1 = require("../backend/runtime-values");
12
+ const configuration_1 = require("../configuration");
13
+ const execution_1 = require("../execution");
14
+ const actor_request_deadline_1 = require("./actor-request-deadline");
15
+ const framework_errors_internal_1 = require("../framework-errors-internal");
14
16
  const packet_name_1 = require("../messaging/packet-name");
17
+ const payload_codec_1 = require("../messaging/payload-codec");
18
+ const submission_result_1 = require("../messaging/submission-result");
15
19
  const protocol_1 = require("../streams/protocol");
20
+ const actor_execution_context_1 = require("./actor-execution-context");
21
+ const actor_message_follow_context_1 = require("./actor-message-follow-context");
16
22
  const actor_packet_relay_wire_1 = require("./actor-packet-relay-wire");
17
23
  const actor_routed_json_request_1 = require("./actor-routed-json-request");
18
- const actor_message_follow_context_1 = require("./actor-message-follow-context");
19
- const execution_1 = require("../execution");
20
- const configuration_1 = require("../configuration");
21
- const actor_execution_context_1 = require("./actor-execution-context");
22
24
  class DefaultZLinkActorClient {
23
25
  options;
24
26
  constructor(options) {
@@ -53,7 +55,7 @@ class DefaultZLinkActorClient {
53
55
  submissions.push(duplicate);
54
56
  }
55
57
  await (0, abort_1.awaitWithAbort)(Promise.all(submissions), signal);
56
- return submitted();
58
+ return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
57
59
  }
58
60
  const node = this.requireNode(meshName);
59
61
  if (this.options.routeTransport !== undefined &&
@@ -66,8 +68,8 @@ class DefaultZLinkActorClient {
66
68
  actorRef: actor,
67
69
  returnResponse: false,
68
70
  messageFollowContext: messageFollow
69
- }), { packetName: '__zlink.actor.packet.relay' });
70
- return submitted();
71
+ }), { packetName: actor_packet_relay_wire_1.ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET });
72
+ return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
71
73
  }
72
74
  return await this.submitActorSend(meshName, toBackendActorRef(actor), parts);
73
75
  }
@@ -89,7 +91,7 @@ class DefaultZLinkActorClient {
89
91
  const effectiveTimeoutMs = timeoutMs ?? this.options.defaultRequestTimeoutMs;
90
92
  const deadlineMs = effectiveTimeoutMs === undefined ? undefined : performance.now() + effectiveTimeoutMs;
91
93
  const deadlineUnixMs = effectiveTimeoutMs === undefined ? undefined : Date.now() + effectiveTimeoutMs;
92
- const route = await this.resolveActorRoute(actorId, signal);
94
+ const route = await this.resolveActorRoute(actorId, signal, deadlineMs);
93
95
  if (waitPolicy === 'async' &&
94
96
  sourceSpotId !== undefined &&
95
97
  sameSpotRoute(sourceSpotId, route)) {
@@ -104,9 +106,12 @@ class DefaultZLinkActorClient {
104
106
  const messageFollow = createActorMessageFollowContext(route, parts, true, deadlineUnixMs, correlationId, operationId);
105
107
  const routedActor = (0, actor_message_follow_context_1.attachActorMessageFollowContext)(actor, messageFollow);
106
108
  try {
107
- const submissionCopies = (await this.options
109
+ const delivery = this.options
108
110
  .transportDeliveryGate?.()
109
- ?.waitBeforeSubmit(actorId, 'request', signal)) ?? 1;
111
+ ?.waitBeforeSubmit(actorId, 'request', signal);
112
+ const submissionCopies = delivery === undefined
113
+ ? 1
114
+ : ((await (0, actor_request_deadline_1.waitActorReply)(delivery, actorId, deadlineMs, signal)) ?? 1);
110
115
  const handoff = this.options.handoffCapture?.(meshName, actor.actorId, parts, true, routedActor, deadlineUnixMs);
111
116
  if (handoff !== undefined) {
112
117
  const submissions = [handoff];
@@ -115,10 +120,10 @@ class DefaultZLinkActorClient {
115
120
  if (duplicate !== undefined)
116
121
  submissions.push(duplicate);
117
122
  }
118
- const replies = await waitHandoffReply(Promise.all(submissions), remainingActorRequestTimeout(actorId, deadlineMs));
123
+ const replies = await (0, actor_request_deadline_1.waitActorReply)(Promise.all(submissions), actorId, deadlineMs, signal);
119
124
  return replies[0];
120
125
  }
121
- return await this.submitActorRequest(meshName, toBackendActorRef(actor), parts, remainingActorRequestTimeout(actorId, deadlineMs), signal, route, messageFollow);
126
+ return await this.submitActorRequest(meshName, toBackendActorRef(actor), parts, (0, actor_request_deadline_1.remainingActorRequestTimeout)(actorId, deadlineMs), signal, route, messageFollow);
122
127
  }
123
128
  catch (error) {
124
129
  if (isStaleActorError(error)) {
@@ -132,12 +137,12 @@ class DefaultZLinkActorClient {
132
137
  closeMessages(parts);
133
138
  }
134
139
  }
135
- async resolveActorRoute(actorId, signal) {
140
+ async resolveActorRoute(actorId, signal, deadlineMs) {
136
141
  const resolver = this.options.locationResolver();
137
142
  if (resolver === undefined) {
138
143
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.InvalidConfiguration, 'Actor direct messaging requires a Location Store.');
139
144
  }
140
- const resolution = await resolver.resolveDirectActorRoute(actorId, signal);
145
+ const resolution = await resolver.resolveDirectActorRoute(actorId, signal, deadlineMs);
141
146
  if (resolution.kind === 'missing') {
142
147
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorRouteNotFound, `Actor route '${actorId}' was not found.`);
143
148
  }
@@ -191,17 +196,15 @@ class DefaultZLinkActorClient {
191
196
  async submitActorSend(meshName, actor, parts) {
192
197
  const node = this.requireNode(meshName);
193
198
  try {
194
- return mapSubmitResult(await node.sendToActor(actor, toMessageLikeParts(parts), {
199
+ return (0, submission_result_1.classifySubmitResult)(await node.sendToActor(actor, toMessageLikeParts(parts), {
195
200
  flags: runtime_values_1.ZLINK_BACKEND_SEND_NONE
196
201
  }), 'Actor send');
197
202
  }
198
203
  catch (error) {
199
204
  if ((0, runtime_values_1.isZLinkBackendResultError)(error)) {
200
- return mapSubmitResult(error.result, 'Actor send');
205
+ return (0, submission_result_1.classifySubmitResult)(error.result, 'Actor send', error.phase);
201
206
  }
202
- throw (0, runtime_values_1.isZLinkBackendResultError)(error)
203
- ? mapRequestError(error, 'Actor send')
204
- : mapSubmitError(error, 'Actor send');
207
+ throw mapSubmitError(error, 'Actor send');
205
208
  }
206
209
  }
207
210
  async submitActorRequest(meshName, actor, parts, timeoutMs, signal, route, messageFollowContext) {
@@ -296,36 +299,10 @@ function remoteRelayErrorKind(value) {
296
299
  ? value
297
300
  : framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed;
298
301
  }
299
- function remainingActorRequestTimeout(actorId, deadlineMs) {
300
- if (deadlineMs === undefined)
301
- return undefined;
302
- const remaining = deadlineMs - performance.now();
303
- if (remaining <= 0) {
304
- throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.DeadlineExceeded, `Actor request '${actorId}' exceeded its deadline before submission.`);
305
- }
306
- return Math.max(1, Math.ceil(remaining));
307
- }
308
302
  function requireActorId(actorId) {
309
303
  const byteLength = Buffer.byteLength(actorId, 'utf8');
310
- if (byteLength < 1 || byteLength > 255) {
311
- throw new configuration_1.ZLinkConfigurationException('Actor ID must contain 1..255 UTF-8 bytes.');
312
- }
313
- }
314
- async function waitHandoffReply(reply, timeoutMs) {
315
- if (timeoutMs === undefined)
316
- return (await reply);
317
- let deadline;
318
- try {
319
- return await Promise.race([
320
- reply,
321
- new Promise((_resolve, reject) => {
322
- deadline = setTimeout(() => reject((0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed, 'Actor handoff request timed out.', true)), timeoutMs);
323
- })
324
- ]);
325
- }
326
- finally {
327
- if (deadline !== undefined)
328
- clearTimeout(deadline);
304
+ if (byteLength < 1 || byteLength > CoreTypes_1.ZLINK_MAX_ACTOR_ID_BYTES) {
305
+ throw new configuration_1.ZLinkConfigurationException(`Actor ID must contain 1..${CoreTypes_1.ZLINK_MAX_ACTOR_ID_BYTES} UTF-8 bytes.`);
329
306
  }
330
307
  }
331
308
  async function forwardEncodedActorPacket(node, completions, actor, header, payload, returnResponse, timeoutMs, serializers) {
@@ -493,97 +470,20 @@ function decodeActorReplyPayload(kind, payload, serializers, packetName) {
493
470
  const wireKind = error.kind;
494
471
  const publicKind = typeof wireKind === 'number' &&
495
472
  Number.isInteger(wireKind) &&
496
- wireKind >= contracts_2.ZLinkFrameworkErrorKind.NotFound &&
497
- wireKind <= contracts_2.ZLinkFrameworkErrorKind.InternalFailure
473
+ wireKind >= contracts_1.ZLinkFrameworkErrorKind.NotFound &&
474
+ wireKind <= contracts_1.ZLinkFrameworkErrorKind.InternalFailure
498
475
  ? wireKind
499
- : contracts_2.ZLinkFrameworkErrorKind.InternalFailure;
500
- throw new contracts_2.ZLinkFrameworkException(publicKind, error.message ?? 'Actor request failed.');
476
+ : contracts_1.ZLinkFrameworkErrorKind.InternalFailure;
477
+ throw new contracts_1.ZLinkFrameworkException(publicKind, error.message ?? 'Actor request failed.');
501
478
  }
502
- return (0, payload_codec_1.decodeFrameworkPayloadMessage)(payload, serializers, undefined, 'application/json', packetName, 'reply');
479
+ return (0, payload_codec_1.decodeFrameworkPayloadMessage)(payload, serializers, undefined, stream_wire_1.ZlinkStreamContentType.Json, packetName, 'reply');
503
480
  }
504
481
  function mapSubmitError(error, operationName) {
505
- if (error instanceof contracts_2.ZLinkFrameworkException) {
482
+ if (error instanceof contracts_1.ZLinkFrameworkException) {
506
483
  return error;
507
484
  }
508
- if ((0, runtime_values_1.isZLinkBackendResultError)(error)) {
509
- switch (error.result) {
510
- case runtime_values_1.SubmitResult.NotConnected:
511
- return routeNotConnected(`${operationName} failed because the target route is not connected.`, error);
512
- case runtime_values_1.SubmitResult.NotFound:
513
- return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorRouteNotFound, `${operationName} failed because the actor route was not found.`, false, error);
514
- default:
515
- return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed, `${operationName} failed with submit result ${error.result}.`, false, error);
516
- }
517
- }
518
485
  return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected, `${operationName} failed before a reply was received.`, true, error);
519
486
  }
520
- function mapSubmitResult(result, operationName) {
521
- switch (result) {
522
- case runtime_values_1.SubmitResult.Ok:
523
- return submitted();
524
- case runtime_values_1.SubmitResult.Backpressured:
525
- case runtime_values_1.SubmitResult.NotAdmitted:
526
- return { status: submission_result_1.ZLinkSubmitStatus.Backpressured };
527
- case runtime_values_1.SubmitResult.NotConnected:
528
- return { status: submission_result_1.ZLinkSubmitStatus.RouteNotConnected };
529
- case runtime_values_1.SubmitResult.NotFound:
530
- return { status: submission_result_1.ZLinkSubmitStatus.TargetNotFound };
531
- case runtime_values_1.SubmitResult.Terminated:
532
- return { status: submission_result_1.ZLinkSubmitStatus.Shutdown };
533
- default:
534
- throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed, `${operationName} failed with submit result ${result}.`);
535
- }
536
- }
537
- function submitted() {
538
- return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
539
- }
540
- // Ownership-aware Actor remote-reply translator (spec 32:81-118, 99-103):
541
- // the reply comes from a remote target, so a fine framework failure code
542
- // refines the coarse terminal, and a terminal-only conflict/busy is the
543
- // target's owner/queue state (retryable stale/Unavailable), never a
544
- // source-owned queue exhaustion. Backpressure never appears on this reply
545
- // path. Internal kinds are preserved so the stale-actor re-resolve retry
546
- // (isStaleActorError) keeps working.
547
- function actorFailureCodeKind(failureErrno) {
548
- switch (failureErrno) {
549
- case 3:
550
- return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorAlreadyExists;
551
- case 4:
552
- return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorTypeMismatch;
553
- case 7:
554
- return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotTypeMismatch;
555
- case 8:
556
- return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorSessionNotBound;
557
- case 9:
558
- case 14:
559
- return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound;
560
- case 12:
561
- case 16:
562
- return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestProtocolError;
563
- // routeNotConnected(13) and a remote worker queue full(18) are Unavailable.
564
- case 13:
565
- case 18:
566
- return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected;
567
- case 15:
568
- return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestRejected;
569
- case 19:
570
- return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.WorkerTimedOut;
571
- case 17:
572
- return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed;
573
- case 20:
574
- return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.WorkerFailed;
575
- case 21:
576
- return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale;
577
- case 33:
578
- return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorGenerationStale;
579
- case 34:
580
- return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorMoving;
581
- case 35:
582
- return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RelocationDataLost;
583
- default:
584
- return undefined;
585
- }
586
- }
587
487
  function actorTerminalKind(result) {
588
488
  switch (result) {
589
489
  case runtime_values_1.RequestResult.TimedOut:
@@ -599,7 +499,7 @@ function actorTerminalKind(result) {
599
499
  case runtime_values_1.RequestResult.NotConnected:
600
500
  return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected;
601
501
  // A terminal-only conflict/busy on a remote actor reply is the target's
602
- // stale/owner state: retryable ActorLocationStale (-> Unavailable).
502
+ // stale/owner state: ActorLocationStale (Unavailable).
603
503
  case runtime_values_1.RequestResult.Conflict:
604
504
  case runtime_values_1.RequestResult.Busy:
605
505
  return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale;
@@ -607,19 +507,18 @@ function actorTerminalKind(result) {
607
507
  return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed;
608
508
  }
609
509
  }
510
+ // The shared table preserves Actor fine kinds; without a recognized fine code,
511
+ // the remote owner/queue terminal supplies the classification.
610
512
  function mapRequestResult(result, failureErrno, operationName) {
611
- const kind = actorFailureCodeKind(failureErrno) ?? actorTerminalKind(result);
513
+ const kind = (0, framework_errors_internal_1.internalFrameworkErrorKindFromWireFailureCode)(failureErrno) ?? actorTerminalKind(result);
612
514
  return (0, framework_errors_internal_1.createInternalFrameworkException)(kind, `${operationName} failed with request result ${result}` +
613
515
  (failureErrno !== 0 ? ` (failure code ${failureErrno}).` : '.'));
614
516
  }
615
- function mapRequestError(error, operationName) {
616
- return mapRequestResult(error.result, error.failureErrno ?? 0, operationName);
617
- }
618
517
  function routeNotConnected(message, cause) {
619
518
  return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected, message, true, cause);
620
519
  }
621
520
  function isStaleActorError(error) {
622
- return (error instanceof contracts_2.ZLinkFrameworkException &&
521
+ return (error instanceof contracts_1.ZLinkFrameworkException &&
623
522
  (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale);
624
523
  }
625
524
  function actorLocationStale(actorId, cause) {
@@ -1,9 +1,7 @@
1
- import type { RoutingId, SpotId, ZLinkActorContext, ZLinkActorJoinEntrySpotCall, ZLinkActorJoinSpotCall, ZLinkBoundSession } from '../../contracts';
2
- import { type ZLinkMessageSerializer } from '../../contracts';
3
- import { ZLinkActorRuntimeState } from './actor-runtime-state';
4
- import type { ZLinkActorBoundSessionFactory, ZLinkActorJoinCoordinator } from './actor-runtime-contracts';
5
- import type { ZLinkActorManagerOptions } from './actor-runtime-contracts';
1
+ import { type RoutingId, type SpotId, type ZLinkActorContext, type ZLinkActorJoinEntrySpotCall, type ZLinkActorJoinSpotCall, type ZLinkBoundSession, type ZLinkMessageSerializer } from '../../contracts';
6
2
  import { ZLINK_ACTOR_LIFECYCLE_SNAPSHOT, type ZLinkActorLifecycleSnapshotSource } from './actor-lifecycle-snapshot';
3
+ import type { ZLinkActorBoundSessionFactory, ZLinkActorJoinCoordinator, ZLinkActorManagerOptions } from './actor-runtime-contracts';
4
+ import { ZLinkActorRuntimeState } from './actor-runtime-state';
7
5
  export declare const ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME: unique symbol;
8
6
  export declare class DefaultZLinkActorContext implements ZLinkActorContext {
9
7
  private readonly state;
@@ -1,18 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DefaultZLinkActorContext = exports.ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME = void 0;
4
- const framework_errors_internal_1 = require("../framework-errors-internal");
5
4
  const contracts_1 = require("../../contracts");
5
+ const ZLinkDispatchOptions_1 = require("../../contracts/Dispatch/ZLinkDispatchOptions");
6
6
  const runtime_message_1 = require("../backend/runtime-message");
7
7
  const configuration_1 = require("../configuration");
8
- const ZLinkDispatchOptions_1 = require("../../contracts/Dispatch/ZLinkDispatchOptions");
9
- const payload_codec_1 = require("../messaging/payload-codec");
10
- const actor_runtime_state_1 = require("./actor-runtime-state");
11
- const actor_lifecycle_snapshot_1 = require("./actor-lifecycle-snapshot");
8
+ const dispatch_error_details_1 = require("../diagnostics/dispatch-error-details");
9
+ const execution_1 = require("../execution");
12
10
  const operation_identity_1 = require("../foundation/operation-identity");
11
+ const framework_errors_internal_1 = require("../framework-errors-internal");
12
+ const payload_codec_1 = require("../messaging/payload-codec");
13
13
  const actor_join_deferred_scope_1 = require("./actor-join-deferred-scope");
14
- const execution_1 = require("../execution");
15
- const dispatch_error_details_1 = require("../diagnostics/dispatch-error-details");
14
+ const actor_lifecycle_snapshot_1 = require("./actor-lifecycle-snapshot");
15
+ const actor_runtime_state_1 = require("./actor-runtime-state");
16
+ const DEFAULT_ACTOR_JOIN_TIMEOUT_MS = 5_000;
17
+ const MAX_ACTOR_JOIN_TIMEOUT_MS = 2_147_483_647;
16
18
  exports.ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME = Symbol('zlink.actor.join-entry-spot-runtime');
17
19
  class DefaultZLinkActorContext {
18
20
  state;
@@ -105,7 +107,7 @@ class DefaultZLinkActorJoinSpotCall {
105
107
  spotId;
106
108
  request;
107
109
  messageSerializers;
108
- timeoutMs = 5_000;
110
+ timeoutMs = DEFAULT_ACTOR_JOIN_TIMEOUT_MS;
109
111
  deferred = false;
110
112
  turn = (0, execution_1.captureZLinkSpotSerialTurn)();
111
113
  constructor(state, actor, coordinator, spotId, request, messageSerializers) {
@@ -146,7 +148,7 @@ class DefaultZLinkActorJoinSpotCall {
146
148
  discarded = true;
147
149
  this.state.endDeferredJoin();
148
150
  try {
149
- await this.coordinator.abortDeferredJoin?.(this.actor, this.state, operationId);
151
+ await this.coordinator.abortDeferredJoin?.(this.actor, this.state);
150
152
  }
151
153
  finally {
152
154
  deadline.close();
@@ -164,7 +166,7 @@ class DefaultZLinkActorJoinSpotCall {
164
166
  // The provisional ingress fence is installed only after the
165
167
  // handler terminal. Target admission starts before reply encoding,
166
168
  // while completion and finalization remain in execute().
167
- this.coordinator.beginDeferredJoin?.(this.actor, this.state, operationId);
169
+ this.coordinator.beginDeferredJoin?.(this.actor, this.state);
168
170
  pendingJoin = this.coordinator.joinSpot(this.actor, this.state, this.spotId, requestMessage, remainingJoinTimeout(deadline.atMs), deadline.signal, operationId);
169
171
  if (this.turn === undefined) {
170
172
  await pendingJoin.catch(() => undefined);
@@ -189,7 +191,7 @@ class DefaultZLinkActorJoinSpotCall {
189
191
  catch (error) {
190
192
  this.state.endDeferredJoin();
191
193
  await this.coordinator
192
- .abortDeferredJoin?.(this.actor, this.state, operationId)
194
+ .abortDeferredJoin?.(this.actor, this.state)
193
195
  .catch(() => undefined);
194
196
  await notifyJoinFailure(this.actor, operationId, error, this.coordinator);
195
197
  return;
@@ -231,7 +233,7 @@ class DefaultZLinkActorJoinEntrySpotCall {
231
233
  coordinator;
232
234
  request;
233
235
  messageSerializers;
234
- timeoutMs = 5_000;
236
+ timeoutMs = DEFAULT_ACTOR_JOIN_TIMEOUT_MS;
235
237
  deferred = false;
236
238
  turn = (0, execution_1.captureZLinkSpotSerialTurn)();
237
239
  constructor(state, actor, coordinator, request, messageSerializers) {
@@ -271,7 +273,7 @@ class DefaultZLinkActorJoinEntrySpotCall {
271
273
  discarded = true;
272
274
  this.state.endDeferredJoin();
273
275
  try {
274
- await this.coordinator.abortDeferredJoin?.(this.actor, this.state, operationId);
276
+ await this.coordinator.abortDeferredJoin?.(this.actor, this.state);
275
277
  }
276
278
  finally {
277
279
  deadline.close();
@@ -286,7 +288,7 @@ class DefaultZLinkActorJoinEntrySpotCall {
286
288
  prepared = true;
287
289
  this.state.endDeferredJoin();
288
290
  try {
289
- this.coordinator.beginDeferredJoin?.(this.actor, this.state, operationId);
291
+ this.coordinator.beginDeferredJoin?.(this.actor, this.state);
290
292
  pendingJoin = this.coordinator.joinEntrySpot(this.actor, this.state, undefined, requestMessage, remainingJoinTimeout(deadline.atMs), deadline.signal, operationId);
291
293
  if (this.turn === undefined) {
292
294
  await pendingJoin.catch(() => undefined);
@@ -311,7 +313,7 @@ class DefaultZLinkActorJoinEntrySpotCall {
311
313
  catch (error) {
312
314
  this.state.endDeferredJoin();
313
315
  await this.coordinator
314
- .abortDeferredJoin?.(this.actor, this.state, operationId)
316
+ .abortDeferredJoin?.(this.actor, this.state)
315
317
  .catch(() => undefined);
316
318
  await notifyJoinFailure(this.actor, operationId, error, this.coordinator);
317
319
  return;
@@ -375,8 +377,8 @@ function encodeJoinRequest(request, serializers) {
375
377
  }
376
378
  function validateJoinTimeout(timeoutMs) {
377
379
  const rounded = Math.ceil(timeoutMs);
378
- if (!Number.isFinite(timeoutMs) || rounded < 1 || rounded > 2_147_483_647) {
379
- throw new configuration_1.ZLinkConfigurationException('Actor join timeout must be a finite value from 1 through 2147483647 milliseconds.');
380
+ if (!Number.isFinite(timeoutMs) || rounded < 1 || rounded > MAX_ACTOR_JOIN_TIMEOUT_MS) {
381
+ throw new configuration_1.ZLinkConfigurationException(`Actor join timeout must be a finite value from 1 through ${MAX_ACTOR_JOIN_TIMEOUT_MS} milliseconds.`);
380
382
  }
381
383
  return rounded;
382
384
  }
@@ -1,12 +1,12 @@
1
- import { ZLinkFrameworkInternalErrorKind } from '../framework-errors-internal';
2
- import type { ActorRef, RoutingId } from '../../contracts';
1
+ import { type ActorRef, type RoutingId } from '../../contracts';
3
2
  import type { Message } from '../../contracts/Common/Message';
4
3
  import type { ZLinkMessageFollowOrigin } from '../foundation/service-runtime-contracts';
4
+ import { ZLinkFrameworkInternalErrorKind } from '../framework-errors-internal';
5
5
  import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
6
+ import { type ZLinkActorMessageFollowContext, type ZLinkActorMessageFollowOwnerFence } from './actor-message-follow-context';
6
7
  import type { ZLinkActorRoutedJoinTransport } from './actor-routed-join-transport';
7
8
  import type { ZLinkRemoteBoundSessionTarget } from './actor-runtime-state';
8
- import { type ZLinkActorMessageFollowContext, type ZLinkActorMessageFollowOwnerFence } from './actor-message-follow-context';
9
- export declare const DEFAULT_MESSAGE_FOLLOW_DURATION_MS = 30000;
9
+ export declare const DEFAULT_MESSAGE_FOLLOW_DURATION_MS: number;
10
10
  export interface ZLinkActorHandoffPacket {
11
11
  readonly index: number;
12
12
  readonly header: string;
@@ -115,14 +115,14 @@ export declare class ZLinkActorHandoffCoordinator {
115
115
  private readonly replyRoutes;
116
116
  constructor(options: ZLinkActorHandoffCoordinatorOptions);
117
117
  begin(actorId: string, oldGeneration: bigint): void;
118
- beginProvisional(actorId: string, operationId: string, oldGeneration: bigint): void;
118
+ beginProvisional(actorId: string, oldGeneration: bigint): void;
119
119
  private startHandoff;
120
120
  isActive(actorId: string): boolean;
121
121
  isProvisional(actorId: string): boolean;
122
- promoteProvisional(actorId: string, operationId: string): void;
122
+ promoteProvisional(actorId: string): void;
123
123
  sealConnectionBoundIngress(actorId: string): void;
124
124
  activeSourceOwner(actorId: string): ZLinkActorMessageFollowOwnerFence | undefined;
125
- releaseDeferred(actorId: string, operationId: string, dispatch?: ZLinkActorHandoffDispatch, admission?: ZLinkActorHandoffReplayAdmission): Promise<void>;
125
+ releaseDeferred(actorId: string, dispatch?: ZLinkActorHandoffDispatch, admission?: ZLinkActorHandoffReplayAdmission): Promise<void>;
126
126
  releaseCanceled(actorId: string, dispatch: ZLinkActorHandoffDispatch, admission?: ZLinkActorHandoffReplayAdmission): Promise<void>;
127
127
  private admitHandoffPrefix;
128
128
  private admitPendingPrefix;
@@ -134,6 +134,12 @@ export declare class ZLinkActorHandoffCoordinator {
134
134
  private replayReleasedBacklog;
135
135
  private replayReleasedPending;
136
136
  private failReleasedPending;
137
+ /**
138
+ * Expired-owner terminal of a relocation (spec 28 §4.4): every pending
139
+ * record without a terminal fails once with `reason`. The handoff stays
140
+ * active, so the source never dispatches the Actor again.
141
+ */
142
+ failPending(actorId: string, reason: unknown): void;
137
143
  cancel(actorId: string): void;
138
144
  capture(actorId: string, parts: readonly Message[], returnResponse?: boolean, remoteBoundSessionTarget?: ZLinkRemoteBoundSessionTarget, fallbackActorRef?: ActorRef, deadlineUnixMs?: number, messageFollowOrigin?: ZLinkMessageFollowOrigin, provisionalReplay?: ZLinkActorHandoffDispatch): Promise<unknown> | undefined;
139
145
  snapshot(actorId: string): readonly ZLinkActorHandoffPacket[];
@@ -3,18 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkActorHandoffCoordinator = exports.DEFAULT_MESSAGE_FOLLOW_DURATION_MS = void 0;
4
4
  exports.decodeHandoffPacket = decodeHandoffPacket;
5
5
  exports.replayActorHandoffBacklog = replayActorHandoffBacklog;
6
- const framework_errors_internal_1 = require("../framework-errors-internal");
7
- const runtime_message_1 = require("../backend/runtime-message");
8
6
  const contracts_1 = require("../../contracts");
7
+ const Options_1 = require("../../contracts/Locations/Options");
8
+ const application_job_queue_scope_1 = require("../application-jobs/application-job-queue-scope");
9
+ const runtime_message_1 = require("../backend/runtime-message");
9
10
  const message_follow_suppression_registry_1 = require("../foundation/message-follow-suppression-registry");
11
+ const framework_errors_internal_1 = require("../framework-errors-internal");
10
12
  const routing_id_1 = require("../routing-id");
11
- const application_job_queue_scope_1 = require("../application-jobs/application-job-queue-scope");
12
13
  const protocol_1 = require("../streams/protocol");
13
- const actor_routed_json_request_1 = require("./actor-routed-json-request");
14
- const actor_packet_relay_wire_1 = require("./actor-packet-relay-wire");
15
14
  const actor_message_follow_context_1 = require("./actor-message-follow-context");
16
- exports.DEFAULT_MESSAGE_FOLLOW_DURATION_MS = 30_000;
17
- const MAX_MESSAGE_FOLLOW_HOPS = 8;
15
+ const actor_packet_relay_wire_1 = require("./actor-packet-relay-wire");
16
+ const actor_routed_json_request_1 = require("./actor-routed-json-request");
17
+ exports.DEFAULT_MESSAGE_FOLLOW_DURATION_MS = Options_1.zlinkDefaultLocationOptions.messageFollowDurationMs;
18
18
  const RELOCATION_REPLY_RETENTION_MS = 24 * 60 * 60 * 1_000;
19
19
  function requireExactTargetOwnerFence(actorId, fence) {
20
20
  if (fence === undefined) {
@@ -50,12 +50,12 @@ class ZLinkActorHandoffCoordinator {
50
50
  options.messageFollowDurationMs ?? exports.DEFAULT_MESSAGE_FOLLOW_DURATION_MS;
51
51
  }
52
52
  begin(actorId, oldGeneration) {
53
- this.startHandoff(actorId, oldGeneration, { phase: 'relocating' });
53
+ this.startHandoff(actorId, oldGeneration, 'relocating');
54
54
  }
55
- beginProvisional(actorId, operationId, oldGeneration) {
56
- this.startHandoff(actorId, oldGeneration, { phase: 'provisional', operationId });
55
+ beginProvisional(actorId, oldGeneration) {
56
+ this.startHandoff(actorId, oldGeneration, 'provisional');
57
57
  }
58
- startHandoff(actorId, oldGeneration, transition) {
58
+ startHandoff(actorId, oldGeneration, phase) {
59
59
  if (this.active.has(actorId)) {
60
60
  throw new Error(`Actor '${actorId}' already has an active packet handoff.`);
61
61
  }
@@ -98,8 +98,8 @@ class ZLinkActorHandoffCoordinator {
98
98
  oldNodeRidHex: sourceEvidence.nodeRidHex,
99
99
  sourceEvidence,
100
100
  sourceOwner,
101
- phase: transition.phase,
102
- ...(transition.phase === 'provisional' ? { operationId: transition.operationId } : {}),
101
+ phase,
102
+ deferredJoin: phase === 'provisional',
103
103
  connectionBoundSealed: false,
104
104
  pending: [],
105
105
  nextIndex: 0,
@@ -113,14 +113,11 @@ class ZLinkActorHandoffCoordinator {
113
113
  isProvisional(actorId) {
114
114
  return this.active.get(actorId)?.phase === 'provisional';
115
115
  }
116
- promoteProvisional(actorId, operationId) {
116
+ promoteProvisional(actorId) {
117
117
  const handoff = this.active.get(actorId);
118
- if (handoff === undefined) {
118
+ if (handoff?.phase !== 'provisional') {
119
119
  throw new Error(`Actor '${actorId}' does not have a provisional packet handoff.`);
120
120
  }
121
- if (handoff.phase !== 'provisional' || handoff.operationId !== operationId) {
122
- throw new Error(`Actor '${actorId}' packet handoff belongs to another operation.`);
123
- }
124
121
  handoff.phase = 'relocating';
125
122
  }
126
123
  sealConnectionBoundIngress(actorId) {
@@ -131,12 +128,12 @@ class ZLinkActorHandoffCoordinator {
131
128
  activeSourceOwner(actorId) {
132
129
  return this.active.get(actorId)?.sourceOwner;
133
130
  }
134
- async releaseDeferred(actorId, operationId, dispatch, admission) {
131
+ async releaseDeferred(actorId, dispatch, admission) {
135
132
  const handoff = this.active.get(actorId);
136
133
  if (handoff === undefined)
137
134
  return;
138
- if (handoff.operationId !== operationId) {
139
- throw new Error(`Actor '${actorId}' packet handoff belongs to another operation.`);
135
+ if (!handoff.deferredJoin) {
136
+ throw new Error(`Actor '${actorId}' packet handoff was not started by a deferred Join.`);
140
137
  }
141
138
  await this.releaseHandoff(actorId, handoff, dispatch ?? handoff.replay, admission);
142
139
  }
@@ -153,12 +150,12 @@ class ZLinkActorHandoffCoordinator {
153
150
  *
154
151
  * @internal
155
152
  */
156
- admitDeferredPrefix(actorId, operationId, queue, preparation, start = Promise.resolve()) {
153
+ admitDeferredPrefix(actorId, queue, preparation, start = Promise.resolve()) {
157
154
  const handoff = this.active.get(actorId);
158
155
  if (handoff === undefined)
159
156
  return { terminal: Promise.resolve() };
160
- if (handoff.operationId !== operationId) {
161
- throw new Error(`Actor '${actorId}' packet handoff belongs to another operation.`);
157
+ if (!handoff.deferredJoin) {
158
+ throw new Error(`Actor '${actorId}' packet handoff was not started by a deferred Join.`);
162
159
  }
163
160
  return this.admitHandoffPrefix(actorId, handoff, queue, preparation, start);
164
161
  }
@@ -396,6 +393,20 @@ class ZLinkActorHandoffCoordinator {
396
393
  }
397
394
  pending.reject?.(error);
398
395
  }
396
+ /**
397
+ * Expired-owner terminal of a relocation (spec 28 §4.4): every pending
398
+ * record without a terminal fails once with `reason`. The handoff stays
399
+ * active, so the source never dispatches the Actor again.
400
+ */
401
+ failPending(actorId, reason) {
402
+ const handoff = this.active.get(actorId);
403
+ if (handoff === undefined)
404
+ return;
405
+ for (const pending of handoff.pending.splice(0))
406
+ this.failReleasedPending(pending, reason);
407
+ handoff.snapshotIndex = -1;
408
+ handoff.pendingBytes = 0;
409
+ }
399
410
  cancel(actorId) {
400
411
  const handoff = this.active.get(actorId);
401
412
  if (handoff === undefined)
@@ -929,7 +940,7 @@ class ZLinkActorHandoffCoordinator {
929
940
  return duplicate.result;
930
941
  }
931
942
  const bytes = packetBytes(packet);
932
- if (context.hopCount >= MAX_MESSAGE_FOLLOW_HOPS) {
943
+ if (context.hopCount >= actor_message_follow_context_1.ZLINK_MESSAGE_FOLLOW_MAX_HOPS) {
933
944
  this.options.onMarker?.('message_follow_rejected', actorId);
934
945
  return Promise.reject(actorLocationStale(actorId));
935
946
  }
@@ -5,6 +5,7 @@ exports.actorJoinIdentity = actorJoinIdentity;
5
5
  exports.createActorJoinRequest = createActorJoinRequest;
6
6
  exports.createActorMembership = createActorMembership;
7
7
  const configuration_1 = require("../configuration");
8
+ const diagnostic_text_1 = require("../diagnostics/diagnostic-text");
8
9
  exports.ZLINK_ACTOR_LIFECYCLE_SNAPSHOT = Symbol('zlink.actor.lifecycle-snapshot');
9
10
  /**
10
11
  * Identity an admission callback observes. Join admission decides on the Actor's
@@ -37,7 +38,7 @@ function lifecycleSource(actor) {
37
38
  : undefined;
38
39
  // A caller can hand in a value that carries no Framework context at all, so the
39
40
  // failure path reports the configuration error instead of dereferencing it.
40
- const actorId = context?.actorId ?? '<unknown>';
41
+ const actorId = (0, diagnostic_text_1.diagnosticTextOrAbsent)(context?.actorId);
41
42
  const snapshot = context?.[exports.ZLINK_ACTOR_LIFECYCLE_SNAPSHOT];
42
43
  const source = snapshot === undefined ? undefined : snapshot.call(context);
43
44
  if (source === undefined) {