@zlink-systems/framework 0.26.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (561) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Actors/ZLinkActorClient.d.ts +1 -1
  3. package/dist/contracts/Channels/Calls.d.ts +1 -1
  4. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  5. package/dist/contracts/Common/CoreTypes.js +7 -0
  6. package/dist/contracts/Common/index.d.ts +1 -1
  7. package/dist/contracts/Common/index.js +0 -1
  8. package/dist/contracts/Configuration/Builders.d.ts +0 -1
  9. package/dist/contracts/Configuration/Configs.d.ts +0 -1
  10. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  11. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  12. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  13. package/dist/contracts/Configuration/Registration.js +58 -36
  14. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  15. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  16. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  17. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  18. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -5
  19. package/dist/contracts/Configuration/RegistrationValidators.js +15 -14
  20. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  21. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  22. package/dist/contracts/Handlers/JsonContract.js +10 -4
  23. package/dist/contracts/Locations/Authority.d.ts +1 -1
  24. package/dist/contracts/Locations/Authority.js +3 -2
  25. package/dist/contracts/Locations/Options.js +1 -1
  26. package/dist/contracts/Locations/Stores.d.ts +12 -0
  27. package/dist/contracts/Locations/Stores.js +9 -0
  28. package/dist/contracts/Spots/Contracts.d.ts +2 -2
  29. package/dist/contracts/Streams/BoundSessionContracts.d.ts +1 -1
  30. package/dist/contracts/Streams/IZLinkSession.d.ts +2 -3
  31. package/dist/contracts/Streams/IZLinkSessionActor.d.ts +2 -2
  32. package/dist/internal.d.ts +4 -0
  33. package/dist/internal.js +15 -1
  34. package/dist/nest-integration.d.ts +4 -2
  35. package/dist/nest-integration.js +14 -4
  36. package/dist/runtime/abort.d.ts +1 -0
  37. package/dist/runtime/abort.js +8 -5
  38. package/dist/runtime/activation-admission.d.ts +1 -2
  39. package/dist/runtime/activation-admission.js +2 -6
  40. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  41. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  42. package/dist/runtime/actors/actor-client.d.ts +2 -2
  43. package/dist/runtime/actors/actor-client.js +49 -153
  44. package/dist/runtime/actors/actor-context.d.ts +3 -5
  45. package/dist/runtime/actors/actor-context.js +13 -11
  46. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  47. package/dist/runtime/actors/actor-handoff.js +8 -8
  48. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  49. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  50. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  51. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  52. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  53. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  54. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  55. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  56. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  57. package/dist/runtime/actors/actor-request-deadline.d.ts +1 -0
  58. package/dist/runtime/actors/actor-request-deadline.js +6 -0
  59. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  60. package/dist/runtime/actors/actor-routed-join-transport.d.ts +2 -3
  61. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  62. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  63. package/dist/runtime/actors/bound-session-wire.js +2 -7
  64. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  65. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  66. package/dist/runtime/actors/index.d.ts +9 -7
  67. package/dist/runtime/actors/index.js +87 -69
  68. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  69. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  70. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  71. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  72. package/dist/runtime/admission.d.ts +2 -0
  73. package/dist/runtime/admission.js +7 -1
  74. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  75. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  76. package/dist/runtime/backend/contracts/index.d.ts +7 -27
  77. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  78. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  79. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  80. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +3 -1
  81. package/dist/runtime/backend/node/node-backend-adapter-support.js +51 -10
  82. package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +1 -1
  83. package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +1 -2
  84. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  85. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  86. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  87. package/dist/runtime/backend/node/node-raw-binding-port.js +41 -34
  88. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  89. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  90. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  91. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  92. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  93. package/dist/runtime/backend/runtime-values.js +2 -0
  94. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  95. package/dist/runtime/channels/channel-clients.js +73 -59
  96. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  97. package/dist/runtime/channels/channel-envelope.d.ts +1 -1
  98. package/dist/runtime/channels/channel-envelope.js +51 -39
  99. package/dist/runtime/channels/channel-outbound-operations.d.ts +5 -2
  100. package/dist/runtime/channels/channel-outbound-operations.js +25 -42
  101. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  102. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  103. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  104. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  105. package/dist/runtime/channels/channel-runtime-manager.d.ts +4 -4
  106. package/dist/runtime/channels/channel-runtime-manager.js +13 -10
  107. package/dist/runtime/channels/channel-socket-options.js +3 -12
  108. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  109. package/dist/runtime/channels/channel-socket-registry.js +240 -177
  110. package/dist/runtime/channels/channel-transports.d.ts +21 -31
  111. package/dist/runtime/channels/channel-transports.js +80 -62
  112. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  113. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  114. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  115. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  116. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  117. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  118. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  119. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  120. package/dist/runtime/channels/local-spot-route-transport.d.ts +1 -1
  121. package/dist/runtime/channels/local-spot-route-transport.js +1 -3
  122. package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +1 -1
  123. package/dist/runtime/channels/router-socket-spot-route-transport.js +2 -2
  124. package/dist/runtime/channels/source-spot-router.d.ts +1 -1
  125. package/dist/runtime/channels/source-spot-router.js +2 -4
  126. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  127. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  128. package/dist/runtime/channels/spot-node-route-transport.d.ts +1 -1
  129. package/dist/runtime/channels/spot-node-route-transport.js +5 -5
  130. package/dist/runtime/channels/spot-route-bridge-transport.d.ts +1 -1
  131. package/dist/runtime/channels/spot-route-bridge-transport.js +2 -2
  132. package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +2 -4
  133. package/dist/runtime/channels/spot-route-dispatch-strategy.js +11 -12
  134. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  135. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  136. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  137. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  138. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  139. package/dist/runtime/diagnostics/flow-context.js +16 -2
  140. package/dist/runtime/diagnostics/index.d.ts +4 -2
  141. package/dist/runtime/diagnostics/index.js +14 -4
  142. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  143. package/dist/runtime/diagnostics/message-flow.js +10 -19
  144. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  145. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  146. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  147. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  148. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  149. package/dist/runtime/disposal.d.ts +5 -0
  150. package/dist/runtime/disposal.js +22 -0
  151. package/dist/runtime/execution/index.d.ts +12 -9
  152. package/dist/runtime/execution/index.js +58 -14
  153. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  154. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  155. package/dist/runtime/execution/state-lane.d.ts +8 -1
  156. package/dist/runtime/execution/state-lane.js +118 -3
  157. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  158. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  159. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  160. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  161. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  162. package/dist/runtime/foundation/operation-identity.js +9 -5
  163. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  164. package/dist/runtime/foundation/operation-registry.js +34 -44
  165. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  166. package/dist/runtime/foundation/raw-service-mesh-runtime.js +79 -94
  167. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  168. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  169. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  170. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  171. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  172. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  173. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  174. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  175. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  176. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  177. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  178. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  179. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  180. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  181. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  182. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  183. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  184. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  185. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  186. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  187. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  188. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  189. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  190. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  191. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  192. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  193. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  194. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  195. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  196. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  197. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  198. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  199. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  200. package/dist/runtime/framework-errors-internal.js +343 -122
  201. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  202. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  203. package/dist/runtime/host/actor-packet-relay.d.ts +11 -8
  204. package/dist/runtime/host/actor-packet-relay.js +54 -99
  205. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  206. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  207. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  208. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  209. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  210. package/dist/runtime/host/application-job-queue.js +16 -33
  211. package/dist/runtime/host/bound-session-relay.js +1 -1
  212. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  213. package/dist/runtime/host/index.d.ts +14 -13
  214. package/dist/runtime/host/index.js +190 -171
  215. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  216. package/dist/runtime/host/instance-activation-authority.js +17 -45
  217. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  218. package/dist/runtime/host/location-runtime-owner.js +2 -2
  219. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  220. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  221. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  222. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  223. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  224. package/dist/runtime/host/remote-bound-session-relay.js +15 -28
  225. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  226. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  227. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  228. package/dist/runtime/host/runtime-shutdown.js +18 -21
  229. package/dist/runtime/host/service-relocation-control.js +6 -1
  230. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  231. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  232. package/dist/runtime/host/spot-address-transport.d.ts +3 -12
  233. package/dist/runtime/host/spot-address-transport.js +78 -220
  234. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  235. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  236. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  237. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  238. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  239. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  240. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  241. package/dist/runtime/locations/authority-key-codec.js +4 -3
  242. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  243. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  244. package/dist/runtime/locations/creation-operation-id.js +6 -4
  245. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  246. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  247. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  248. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  249. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  250. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  251. package/dist/runtime/locations/key-codec.js +3 -2
  252. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  253. package/dist/runtime/locations/lease-tracker.js +7 -11
  254. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  255. package/dist/runtime/locations/lifecycle.js +2 -31
  256. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  257. package/dist/runtime/locations/location-store-failure.js +7 -0
  258. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  259. package/dist/runtime/locations/location-store-pages.js +13 -0
  260. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  261. package/dist/runtime/locations/location-store-repository.js +309 -336
  262. package/dist/runtime/locations/relocation-blob.js +18 -5
  263. package/dist/runtime/locations/resolvers.d.ts +5 -5
  264. package/dist/runtime/locations/resolvers.js +37 -28
  265. package/dist/runtime/locations/runtime.d.ts +5 -4
  266. package/dist/runtime/locations/runtime.js +123 -92
  267. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  268. package/dist/runtime/locations/spot-location-claims.js +42 -1
  269. package/dist/runtime/messaging/payload-codec.js +26 -20
  270. package/dist/runtime/messaging/request-deadline.d.ts +3 -0
  271. package/dist/runtime/messaging/request-deadline.js +39 -0
  272. package/dist/runtime/messaging/submission-result.d.ts +4 -0
  273. package/dist/runtime/messaging/submission-result.js +56 -1
  274. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  275. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  276. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  277. package/dist/runtime/spots/index.d.ts +14 -20
  278. package/dist/runtime/spots/index.js +302 -176
  279. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  280. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  281. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  282. package/dist/runtime/spots/spot-activation-state.js +2 -2
  283. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  284. package/dist/runtime/spots/spot-activation.js +49 -32
  285. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  286. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  287. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  288. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  289. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  290. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  291. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  292. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  293. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  294. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  295. package/dist/runtime/spots/spot-context.d.ts +2 -2
  296. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  297. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  298. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  299. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  300. package/dist/runtime/spots/spot-manager-public.js +5 -4
  301. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  302. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  303. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  304. package/dist/runtime/spots/spot-outbound.d.ts +7 -8
  305. package/dist/runtime/spots/spot-outbound.js +21 -23
  306. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  307. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  308. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  309. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  310. package/dist/runtime/spots/spot-route-replies.js +3 -1
  311. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  312. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  313. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  314. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  315. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  316. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  317. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  318. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  319. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  320. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  321. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  322. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  323. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  324. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  325. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +8 -4
  326. package/dist/runtime/streams/bound-actor-relay-sender.js +65 -41
  327. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  328. package/dist/runtime/streams/bound-session-service.js +12 -2
  329. package/dist/runtime/streams/index.d.ts +16 -17
  330. package/dist/runtime/streams/index.js +22 -23
  331. package/dist/runtime/streams/managed-stream.d.ts +5 -2
  332. package/dist/runtime/streams/managed-stream.js +20 -13
  333. package/dist/runtime/streams/native-fallback-bound-session.js +14 -19
  334. package/dist/runtime/streams/protocol.d.ts +6 -33
  335. package/dist/runtime/streams/protocol.js +38 -110
  336. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  337. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  338. package/dist/runtime/streams/session-calls.d.ts +6 -8
  339. package/dist/runtime/streams/session-calls.js +6 -22
  340. package/dist/runtime/streams/session-context.d.ts +10 -10
  341. package/dist/runtime/streams/session-context.js +25 -10
  342. package/dist/runtime/streams/session-requests.js +2 -1
  343. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  344. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  345. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  346. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  347. package/dist/runtime/workers/index.d.ts +2 -2
  348. package/dist/runtime/workers/index.js +5 -4
  349. package/package.json +3 -3
  350. package/src/contracts/Actors/ZLinkActorClient.ts +1 -1
  351. package/src/contracts/Channels/Calls.ts +1 -1
  352. package/src/contracts/Common/CoreTypes.ts +7 -0
  353. package/src/contracts/Common/index.ts +1 -1
  354. package/src/contracts/Configuration/Builders.ts +0 -1
  355. package/src/contracts/Configuration/Configs.ts +0 -1
  356. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  357. package/src/contracts/Configuration/Registration.ts +92 -48
  358. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  359. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -71
  360. package/src/contracts/Configuration/RegistrationTypes.ts +1 -5
  361. package/src/contracts/Configuration/RegistrationValidators.ts +19 -17
  362. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  363. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  364. package/src/contracts/Handlers/JsonContract.ts +14 -4
  365. package/src/contracts/Locations/Authority.ts +7 -3
  366. package/src/contracts/Locations/Options.ts +1 -1
  367. package/src/contracts/Locations/Stores.ts +14 -0
  368. package/src/contracts/Spots/Contracts.ts +2 -2
  369. package/src/contracts/Streams/BoundSessionContracts.ts +1 -1
  370. package/src/contracts/Streams/IZLinkSession.ts +2 -3
  371. package/src/contracts/Streams/IZLinkSessionActor.ts +2 -6
  372. package/src/internal.ts +14 -0
  373. package/src/nest-integration.ts +28 -10
  374. package/src/runtime/abort.ts +6 -5
  375. package/src/runtime/activation-admission.ts +2 -8
  376. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  377. package/src/runtime/actors/actor-client.ts +85 -218
  378. package/src/runtime/actors/actor-context.ts +39 -33
  379. package/src/runtime/actors/actor-handoff.ts +24 -22
  380. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  381. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  382. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  383. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  384. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  385. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  386. package/src/runtime/actors/actor-request-deadline.ts +4 -0
  387. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  388. package/src/runtime/actors/actor-routed-join-transport.ts +3 -5
  389. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  390. package/src/runtime/actors/bound-session-wire.ts +2 -8
  391. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  392. package/src/runtime/actors/index.ts +100 -79
  393. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  394. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  395. package/src/runtime/admission.ts +8 -1
  396. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  397. package/src/runtime/backend/contracts/index.ts +14 -37
  398. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  399. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  400. package/src/runtime/backend/node/node-backend-adapter-support.ts +67 -10
  401. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +0 -2
  402. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  403. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  404. package/src/runtime/backend/node/node-raw-binding-port.ts +44 -49
  405. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  406. package/src/runtime/backend/node/node-socket-backend-adapter.ts +4 -3
  407. package/src/runtime/backend/raw-binding-port.ts +1 -1
  408. package/src/runtime/backend/runtime-values.ts +4 -1
  409. package/src/runtime/channels/channel-clients.ts +139 -102
  410. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  411. package/src/runtime/channels/channel-envelope.ts +74 -57
  412. package/src/runtime/channels/channel-outbound-operations.ts +40 -55
  413. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  414. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  415. package/src/runtime/channels/channel-runtime-manager.ts +12 -30
  416. package/src/runtime/channels/channel-socket-options.ts +8 -15
  417. package/src/runtime/channels/channel-socket-registry.ts +291 -196
  418. package/src/runtime/channels/channel-transports.ts +168 -145
  419. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  420. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  421. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  422. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  423. package/src/runtime/channels/local-spot-route-transport.ts +1 -5
  424. package/src/runtime/channels/router-socket-spot-route-transport.ts +2 -6
  425. package/src/runtime/channels/source-spot-router.ts +2 -9
  426. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  427. package/src/runtime/channels/spot-node-route-transport.ts +7 -9
  428. package/src/runtime/channels/spot-route-bridge-transport.ts +5 -12
  429. package/src/runtime/channels/spot-route-dispatch-strategy.ts +11 -30
  430. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  431. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  432. package/src/runtime/diagnostics/flow-context.ts +16 -2
  433. package/src/runtime/diagnostics/index.ts +27 -17
  434. package/src/runtime/diagnostics/message-flow.ts +15 -25
  435. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  436. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  437. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  438. package/src/runtime/disposal.ts +19 -0
  439. package/src/runtime/execution/index.ts +60 -20
  440. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  441. package/src/runtime/execution/state-lane.ts +142 -4
  442. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  443. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  444. package/src/runtime/foundation/operation-identity.ts +11 -5
  445. package/src/runtime/foundation/operation-registry.ts +33 -50
  446. package/src/runtime/foundation/raw-service-mesh-runtime.ts +127 -125
  447. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  448. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  449. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  450. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  451. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  452. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  453. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  454. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  455. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  456. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  457. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  458. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  459. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  460. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  461. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  462. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  463. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  464. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  465. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  466. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  467. package/src/runtime/framework-errors-internal.ts +380 -134
  468. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  469. package/src/runtime/host/actor-packet-relay.ts +63 -160
  470. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  471. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  472. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  473. package/src/runtime/host/application-job-queue.ts +28 -34
  474. package/src/runtime/host/bound-session-relay.ts +1 -2
  475. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  476. package/src/runtime/host/index.ts +327 -320
  477. package/src/runtime/host/instance-activation-authority.ts +89 -109
  478. package/src/runtime/host/location-runtime-owner.ts +4 -2
  479. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  480. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  481. package/src/runtime/host/remote-bound-session-relay.ts +16 -57
  482. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  483. package/src/runtime/host/runtime-shutdown.ts +17 -21
  484. package/src/runtime/host/service-relocation-control.ts +14 -1
  485. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  486. package/src/runtime/host/spot-address-transport.ts +175 -356
  487. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  488. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  489. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  490. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  491. package/src/runtime/locations/authority-key-codec.ts +7 -3
  492. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  493. package/src/runtime/locations/creation-operation-id.ts +6 -3
  494. package/src/runtime/locations/domain-store-contract.ts +12 -3
  495. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  496. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  497. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  498. package/src/runtime/locations/key-codec.ts +3 -2
  499. package/src/runtime/locations/lease-tracker.ts +8 -14
  500. package/src/runtime/locations/lifecycle.ts +13 -43
  501. package/src/runtime/locations/location-store-failure.ts +4 -0
  502. package/src/runtime/locations/location-store-pages.ts +18 -0
  503. package/src/runtime/locations/location-store-repository.ts +457 -482
  504. package/src/runtime/locations/relocation-blob.ts +17 -6
  505. package/src/runtime/locations/resolvers.ts +75 -49
  506. package/src/runtime/locations/runtime.ts +220 -110
  507. package/src/runtime/locations/spot-location-claims.ts +58 -1
  508. package/src/runtime/messaging/payload-codec.ts +35 -24
  509. package/src/runtime/messaging/request-deadline.ts +58 -0
  510. package/src/runtime/messaging/submission-result.ts +72 -2
  511. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  512. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  513. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  514. package/src/runtime/spots/index.ts +433 -229
  515. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  516. package/src/runtime/spots/spot-activation-state.ts +2 -2
  517. package/src/runtime/spots/spot-activation.ts +67 -37
  518. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  519. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  520. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  521. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  522. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  523. package/src/runtime/spots/spot-context.ts +3 -3
  524. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  525. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  526. package/src/runtime/spots/spot-manager-public.ts +21 -17
  527. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  528. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  529. package/src/runtime/spots/spot-outbound.ts +59 -47
  530. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  531. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  532. package/src/runtime/spots/spot-route-replies.ts +6 -4
  533. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  534. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  535. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  536. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  537. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  538. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  539. package/src/runtime/spots/spot-timer.ts +3 -2
  540. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  541. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  542. package/src/runtime/streams/bound-actor-relay-sender.ts +98 -66
  543. package/src/runtime/streams/bound-session-service.ts +22 -2
  544. package/src/runtime/streams/index.ts +78 -68
  545. package/src/runtime/streams/managed-stream.ts +32 -23
  546. package/src/runtime/streams/native-fallback-bound-session.ts +14 -28
  547. package/src/runtime/streams/protocol.ts +34 -88
  548. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  549. package/src/runtime/streams/session-calls.ts +11 -36
  550. package/src/runtime/streams/session-context.ts +60 -25
  551. package/src/runtime/streams/session-requests.ts +2 -1
  552. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  553. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  554. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  555. package/src/runtime/workers/index.ts +13 -12
  556. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  557. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  558. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  559. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  560. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  561. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -1,41 +1,57 @@
1
+ import { ZlinkStreamContentType } from '@zlink-systems/stream-wire';
1
2
  import {
2
- ZLinkFrameworkInternalErrorKind,
3
- createInternalFrameworkException,
4
- internalFrameworkErrorKind
5
- } from '../framework-errors-internal';
3
+ type ActorRef,
4
+ type RoutingId,
5
+ type ZLinkActorClient,
6
+ type ZLinkActorRequestCall,
7
+ type ZLinkActorSendCall,
8
+ type ZLinkMessageSerializer,
9
+ ZLinkFrameworkErrorKind,
10
+ ZLinkFrameworkException,
11
+ ZLinkSpotKind
12
+ } from '../../contracts';
13
+
14
+ import { ZLINK_MAX_ACTOR_ID_BYTES } from '../../contracts/Common/CoreTypes';
15
+ import type { Message } from '../../contracts/Common/Message';
16
+ import { throwIfAborted } from '../abort';
17
+ import {
18
+ type ZLinkBackendActorRef,
19
+ type ZLinkBackendMeshNode,
20
+ type ZLinkMeshCompletionTable,
21
+ closeMeshCompletion
22
+ } from '../backend';
23
+
6
24
  import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
7
25
  import {
26
+ isZLinkBackendResultError,
8
27
  RequestResult,
9
28
  SubmitResult,
10
- isZLinkBackendResultError,
11
29
  ZLINK_BACKEND_SEND_NONE
12
30
  } from '../backend/runtime-values';
13
- import type {
14
- ActorRef,
15
- RoutingId,
16
- ZLinkActorClient,
17
- ZLinkActorRequestCall,
18
- ZLinkActorSendCall,
19
- ZLinkMessageSerializer
20
- } from '../../contracts';
21
- import { ZLinkSpotKind } from '../../contracts';
22
- import { ZLinkFrameworkException, ZLinkFrameworkErrorKind } from '../../contracts';
31
+ import { ZLinkConfigurationException } from '../configuration';
32
+ import {
33
+ captureZLinkSpotSerialTurn,
34
+ currentZLinkSpotSerialSourceId,
35
+ requireZLinkYieldTurn,
36
+ type ZLinkSpotSerialTurn
37
+ } from '../execution';
38
+ import { remainingActorRequestTimeout, waitActorReply } from './actor-request-deadline';
23
39
  import {
40
+ createInternalFrameworkException,
41
+ internalFrameworkErrorKind,
42
+ internalFrameworkErrorKindFromWireFailureCode,
43
+ ZLinkFrameworkInternalErrorKind
44
+ } from '../framework-errors-internal';
45
+ import type { ZLinkResolvedActorRoute, ZLinkStoreLocationResolvers } from '../locations';
46
+ import { resolveFrameworkPacketName } from '../messaging/packet-name';
47
+ import { decodeFrameworkPayloadMessage, encodeFrameworkPayload } from '../messaging/payload-codec';
48
+ import {
49
+ classifySubmitResult,
24
50
  requireOneWayCompletion,
25
51
  throwAlreadySubmitted,
26
52
  ZLinkSubmitStatus,
27
53
  type ZLinkSubmitResult
28
54
  } from '../messaging/submission-result';
29
- import type { Message } from '../../contracts/Common/Message';
30
- import type {
31
- ZLinkBackendActorRef,
32
- ZLinkBackendMeshNode,
33
- ZLinkMeshCompletionTable
34
- } from '../backend';
35
- import { closeMeshCompletion } from '../backend';
36
- import { awaitWithAbort, throwIfAborted } from '../abort';
37
- import { encodeFrameworkPayload, decodeFrameworkPayloadMessage } from '../messaging/payload-codec';
38
- import { resolveFrameworkPacketName } from '../messaging/packet-name';
39
55
  import {
40
56
  actorRequestDeadlineMetadata,
41
57
  decodeStreamHeader,
@@ -45,11 +61,7 @@ import {
45
61
  ZLinkStreamHeaderFlags,
46
62
  ZLinkStreamMessageKind
47
63
  } from '../streams/protocol';
48
- import type { ZLinkStoreLocationResolvers } from '../locations';
49
- import type { ZLinkResolvedActorRoute } from '../locations';
50
- import type { ZLinkActorRoutedJoinTransport } from './actor-routed-join-transport';
51
- import { encodeRemoteActorPacketRelayPayload } from './actor-packet-relay-wire';
52
- import { requestRoutedJsonReply } from './actor-routed-json-request';
64
+ import { currentZLinkActorExecution } from './actor-execution-context';
53
65
  import {
54
66
  attachActorMessageFollowContext,
55
67
  createInitialActorMessageFollowContext,
@@ -57,13 +69,11 @@ import {
57
69
  type ZLinkActorMessageFollowContext
58
70
  } from './actor-message-follow-context';
59
71
  import {
60
- captureZLinkSpotSerialTurn,
61
- currentZLinkSpotSerialSourceId,
62
- requireZLinkYieldTurn,
63
- type ZLinkSpotSerialTurn
64
- } from '../execution';
65
- import { ZLinkConfigurationException } from '../configuration';
66
- import { currentZLinkActorExecution } from './actor-execution-context';
72
+ encodeRemoteActorPacketRelayPayload,
73
+ ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET
74
+ } from './actor-packet-relay-wire';
75
+ import type { ZLinkActorRoutedJoinTransport } from './actor-routed-join-transport';
76
+ import { requestRoutedJsonReply } from './actor-routed-json-request';
67
77
 
68
78
  export interface ZLinkActorClientOptions {
69
79
  readonly nodeProvider: (meshName: string) => ZLinkBackendMeshNode | undefined;
@@ -100,7 +110,7 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
100
110
  sendToActor(actorId: string, message: unknown): ZLinkActorSendCall {
101
111
  requireActorId(actorId);
102
112
  return new DefaultZLinkActorSendCall(
103
- (packetName, metadata, signal) => this.send(actorId, packetName, message, metadata, signal),
113
+ (packetName, metadata) => this.send(actorId, packetName, message, metadata),
104
114
  message
105
115
  );
106
116
  }
@@ -122,11 +132,9 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
122
132
  actorId: string,
123
133
  explicitPacketName: string | undefined,
124
134
  message: unknown,
125
- metadata: ReadonlyMap<string, string>,
126
- signal?: AbortSignal
135
+ metadata: ReadonlyMap<string, string>
127
136
  ): Promise<ZLinkSubmitResult> {
128
- throwIfAborted(signal);
129
- const route = await this.resolveActorRoute(actorId, signal);
137
+ const route = await this.resolveActorRoute(actorId);
130
138
  const { meshName, actorRef: actor } = route;
131
139
  this.throwIfKnownStale(meshName, actor);
132
140
  const parts = this.createPacketParts(
@@ -140,9 +148,7 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
140
148
  const routedActor = attachActorMessageFollowContext(actor, messageFollow);
141
149
  try {
142
150
  const submissionCopies =
143
- (await this.options
144
- .transportDeliveryGate?.()
145
- ?.waitBeforeSubmit(actorId, 'oneWay', signal)) ?? 1;
151
+ (await this.options.transportDeliveryGate?.()?.waitBeforeSubmit(actorId, 'oneWay')) ?? 1;
146
152
  const handoff = this.options.handoffCapture?.(
147
153
  meshName,
148
154
  actor.actorId,
@@ -162,8 +168,8 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
162
168
  );
163
169
  if (duplicate !== undefined) submissions.push(duplicate);
164
170
  }
165
- await awaitWithAbort(Promise.all(submissions), signal);
166
- return submitted();
171
+ await Promise.all(submissions);
172
+ return { status: ZLinkSubmitStatus.Submitted };
167
173
  }
168
174
  const node = this.requireNode(meshName);
169
175
  if (
@@ -181,9 +187,9 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
181
187
  returnResponse: false,
182
188
  messageFollowContext: messageFollow
183
189
  }),
184
- { packetName: '__zlink.actor.packet.relay' }
190
+ { packetName: ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET }
185
191
  );
186
- return submitted();
192
+ return { status: ZLinkSubmitStatus.Submitted };
187
193
  }
188
194
  return await this.submitActorSend(meshName, toBackendActorRef(actor), parts);
189
195
  } catch (error) {
@@ -214,7 +220,7 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
214
220
  effectiveTimeoutMs === undefined ? undefined : performance.now() + effectiveTimeoutMs;
215
221
  const deadlineUnixMs =
216
222
  effectiveTimeoutMs === undefined ? undefined : Date.now() + effectiveTimeoutMs;
217
- const route = await this.resolveActorRoute(actorId, signal);
223
+ const route = await this.resolveActorRoute(actorId, signal, deadlineMs);
218
224
  if (
219
225
  waitPolicy === 'async' &&
220
226
  sourceSpotId !== undefined &&
@@ -248,10 +254,13 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
248
254
  );
249
255
  const routedActor = attachActorMessageFollowContext(actor, messageFollow);
250
256
  try {
257
+ const delivery = this.options
258
+ .transportDeliveryGate?.()
259
+ ?.waitBeforeSubmit(actorId, 'request', signal);
251
260
  const submissionCopies =
252
- (await this.options
253
- .transportDeliveryGate?.()
254
- ?.waitBeforeSubmit(actorId, 'request', signal)) ?? 1;
261
+ delivery === undefined
262
+ ? 1
263
+ : ((await waitActorReply(delivery, actorId, deadlineMs, signal)) ?? 1);
255
264
  const handoff = this.options.handoffCapture?.(
256
265
  meshName,
257
266
  actor.actorId,
@@ -273,9 +282,11 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
273
282
  );
274
283
  if (duplicate !== undefined) submissions.push(duplicate);
275
284
  }
276
- const replies = await waitHandoffReply<unknown[]>(
285
+ const replies = await waitActorReply<unknown[]>(
277
286
  Promise.all(submissions),
278
- remainingActorRequestTimeout(actorId, deadlineMs)
287
+ actorId,
288
+ deadlineMs,
289
+ signal
279
290
  );
280
291
  return replies[0] as TReply;
281
292
  }
@@ -302,7 +313,8 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
302
313
 
303
314
  private async resolveActorRoute(
304
315
  actorId: string,
305
- signal?: AbortSignal
316
+ signal?: AbortSignal,
317
+ deadlineMs?: number
306
318
  ): Promise<ZLinkResolvedActorRoute> {
307
319
  const resolver = this.options.locationResolver();
308
320
  if (resolver === undefined) {
@@ -311,7 +323,7 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
311
323
  'Actor direct messaging requires a Location Store.'
312
324
  );
313
325
  }
314
- const resolution = await resolver.resolveDirectActorRoute(actorId, signal);
326
+ const resolution = await resolver.resolveDirectActorRoute(actorId, signal, deadlineMs);
315
327
  if (resolution.kind === 'missing') {
316
328
  throw createInternalFrameworkException(
317
329
  ZLinkFrameworkInternalErrorKind.ActorRouteNotFound,
@@ -390,7 +402,7 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
390
402
  ): Promise<ZLinkSubmitResult> {
391
403
  const node = this.requireNode(meshName);
392
404
  try {
393
- return mapSubmitResult(
405
+ return classifySubmitResult(
394
406
  await node.sendToActor(actor, toMessageLikeParts(parts), {
395
407
  flags: ZLINK_BACKEND_SEND_NONE
396
408
  }),
@@ -398,11 +410,9 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
398
410
  );
399
411
  } catch (error) {
400
412
  if (isZLinkBackendResultError(error)) {
401
- return mapSubmitResult(error.result, 'Actor send');
413
+ return classifySubmitResult(error.result, 'Actor send', error.phase);
402
414
  }
403
- throw isZLinkBackendResultError(error)
404
- ? mapRequestError(error, 'Actor send')
405
- : mapSubmitError(error, 'Actor send');
415
+ throw mapSubmitError(error, 'Actor send');
406
416
  }
407
417
  }
408
418
 
@@ -560,53 +570,12 @@ function remoteRelayErrorKind(value: unknown): ZLinkFrameworkInternalErrorKind {
560
570
  : ZLinkFrameworkInternalErrorKind.RequestFailed;
561
571
  }
562
572
 
563
- function remainingActorRequestTimeout(
564
- actorId: string,
565
- deadlineMs: number | undefined
566
- ): number | undefined {
567
- if (deadlineMs === undefined) return undefined;
568
- const remaining = deadlineMs - performance.now();
569
- if (remaining <= 0) {
570
- throw createInternalFrameworkException(
571
- ZLinkFrameworkInternalErrorKind.DeadlineExceeded,
572
- `Actor request '${actorId}' exceeded its deadline before submission.`
573
- );
574
- }
575
- return Math.max(1, Math.ceil(remaining));
576
- }
577
-
578
573
  function requireActorId(actorId: string): void {
579
574
  const byteLength = Buffer.byteLength(actorId, 'utf8');
580
- if (byteLength < 1 || byteLength > 255) {
581
- throw new ZLinkConfigurationException('Actor ID must contain 1..255 UTF-8 bytes.');
582
- }
583
- }
584
-
585
- async function waitHandoffReply<TReply>(
586
- reply: Promise<unknown>,
587
- timeoutMs: number | undefined
588
- ): Promise<TReply> {
589
- if (timeoutMs === undefined) return (await reply) as TReply;
590
- let deadline: ReturnType<typeof setTimeout> | undefined;
591
- try {
592
- return await Promise.race([
593
- reply as Promise<TReply>,
594
- new Promise<TReply>((_resolve, reject) => {
595
- deadline = setTimeout(
596
- () =>
597
- reject(
598
- createInternalFrameworkException(
599
- ZLinkFrameworkInternalErrorKind.RequestFailed,
600
- 'Actor handoff request timed out.',
601
- true
602
- )
603
- ),
604
- timeoutMs
605
- );
606
- })
607
- ]);
608
- } finally {
609
- if (deadline !== undefined) clearTimeout(deadline);
575
+ if (byteLength < 1 || byteLength > ZLINK_MAX_ACTOR_ID_BYTES) {
576
+ throw new ZLinkConfigurationException(
577
+ `Actor ID must contain 1..${ZLINK_MAX_ACTOR_ID_BYTES} UTF-8 bytes.`
578
+ );
610
579
  }
611
580
  }
612
581
 
@@ -689,8 +658,7 @@ class DefaultZLinkActorSendCall implements ZLinkActorSendCall {
689
658
  constructor(
690
659
  private readonly submitter: (
691
660
  packetName: string | undefined,
692
- metadata: ReadonlyMap<string, string>,
693
- signal?: AbortSignal
661
+ metadata: ReadonlyMap<string, string>
694
662
  ) => Promise<ZLinkSubmitResult>,
695
663
  private readonly message: unknown
696
664
  ) {}
@@ -705,13 +673,12 @@ class DefaultZLinkActorSendCall implements ZLinkActorSendCall {
705
673
  return this;
706
674
  }
707
675
 
708
- async submit(signal?: AbortSignal): Promise<void> {
676
+ async submit(): Promise<void> {
709
677
  ensureSingleSubmit(this.executed);
710
678
  this.executed = true;
711
679
  const result = await this.submitter(
712
680
  this.packet ?? resolveFrameworkPacketName(this.message, undefined, 'Actor'),
713
- this.selectedMetadata,
714
- signal
681
+ this.selectedMetadata
715
682
  );
716
683
  requireOneWayCompletion(
717
684
  result,
@@ -861,7 +828,7 @@ function decodeActorReplyPayload<TReply>(
861
828
  payload,
862
829
  serializers,
863
830
  undefined,
864
- 'application/json',
831
+ ZlinkStreamContentType.Json,
865
832
  packetName,
866
833
  'reply'
867
834
  );
@@ -871,29 +838,6 @@ function mapSubmitError(error: unknown, operationName: string): Error {
871
838
  if (error instanceof ZLinkFrameworkException) {
872
839
  return error;
873
840
  }
874
- if (isZLinkBackendResultError(error)) {
875
- switch (error.result) {
876
- case SubmitResult.NotConnected:
877
- return routeNotConnected(
878
- `${operationName} failed because the target route is not connected.`,
879
- error
880
- );
881
- case SubmitResult.NotFound:
882
- return createInternalFrameworkException(
883
- ZLinkFrameworkInternalErrorKind.ActorRouteNotFound,
884
- `${operationName} failed because the actor route was not found.`,
885
- false,
886
- error
887
- );
888
- default:
889
- return createInternalFrameworkException(
890
- ZLinkFrameworkInternalErrorKind.RequestFailed,
891
- `${operationName} failed with submit result ${error.result}.`,
892
- false,
893
- error
894
- );
895
- }
896
- }
897
841
  return createInternalFrameworkException(
898
842
  ZLinkFrameworkInternalErrorKind.RouteNotConnected,
899
843
  `${operationName} failed before a reply was received.`,
@@ -902,79 +846,6 @@ function mapSubmitError(error: unknown, operationName: string): Error {
902
846
  );
903
847
  }
904
848
 
905
- function mapSubmitResult(result: number, operationName: string): ZLinkSubmitResult {
906
- switch (result) {
907
- case SubmitResult.Ok:
908
- return submitted();
909
- case SubmitResult.Backpressured:
910
- case SubmitResult.NotAdmitted:
911
- return { status: ZLinkSubmitStatus.Backpressured };
912
- case SubmitResult.NotConnected:
913
- return { status: ZLinkSubmitStatus.RouteNotConnected };
914
- case SubmitResult.NotFound:
915
- return { status: ZLinkSubmitStatus.TargetNotFound };
916
- case SubmitResult.Terminated:
917
- return { status: ZLinkSubmitStatus.Shutdown };
918
- default:
919
- throw createInternalFrameworkException(
920
- ZLinkFrameworkInternalErrorKind.RequestFailed,
921
- `${operationName} failed with submit result ${result}.`
922
- );
923
- }
924
- }
925
-
926
- function submitted(): ZLinkSubmitResult {
927
- return { status: ZLinkSubmitStatus.Submitted };
928
- }
929
-
930
- // Ownership-aware Actor remote-reply translator (spec 32:81-118, 99-103):
931
- // the reply comes from a remote target, so a fine framework failure code
932
- // refines the coarse terminal, and a terminal-only conflict/busy is the
933
- // target's owner/queue state (retryable stale/Unavailable), never a
934
- // source-owned queue exhaustion. Backpressure never appears on this reply
935
- // path. Internal kinds are preserved so the stale-actor re-resolve retry
936
- // (isStaleActorError) keeps working.
937
- function actorFailureCodeKind(failureErrno: number): ZLinkFrameworkInternalErrorKind | undefined {
938
- switch (failureErrno) {
939
- case 3:
940
- return ZLinkFrameworkInternalErrorKind.ActorAlreadyExists;
941
- case 4:
942
- return ZLinkFrameworkInternalErrorKind.ActorTypeMismatch;
943
- case 7:
944
- return ZLinkFrameworkInternalErrorKind.SpotTypeMismatch;
945
- case 8:
946
- return ZLinkFrameworkInternalErrorKind.ActorSessionNotBound;
947
- case 9:
948
- case 14:
949
- return ZLinkFrameworkInternalErrorKind.RequestTargetNotFound;
950
- case 12:
951
- case 16:
952
- return ZLinkFrameworkInternalErrorKind.RequestProtocolError;
953
- // routeNotConnected(13) and a remote worker queue full(18) are Unavailable.
954
- case 13:
955
- case 18:
956
- return ZLinkFrameworkInternalErrorKind.RouteNotConnected;
957
- case 15:
958
- return ZLinkFrameworkInternalErrorKind.RequestRejected;
959
- case 19:
960
- return ZLinkFrameworkInternalErrorKind.WorkerTimedOut;
961
- case 17:
962
- return ZLinkFrameworkInternalErrorKind.RequestFailed;
963
- case 20:
964
- return ZLinkFrameworkInternalErrorKind.WorkerFailed;
965
- case 21:
966
- return ZLinkFrameworkInternalErrorKind.ActorLocationStale;
967
- case 33:
968
- return ZLinkFrameworkInternalErrorKind.ActorGenerationStale;
969
- case 34:
970
- return ZLinkFrameworkInternalErrorKind.ActorMoving;
971
- case 35:
972
- return ZLinkFrameworkInternalErrorKind.RelocationDataLost;
973
- default:
974
- return undefined;
975
- }
976
- }
977
-
978
849
  function actorTerminalKind(result: number): ZLinkFrameworkInternalErrorKind {
979
850
  switch (result) {
980
851
  case RequestResult.TimedOut:
@@ -990,7 +861,7 @@ function actorTerminalKind(result: number): ZLinkFrameworkInternalErrorKind {
990
861
  case RequestResult.NotConnected:
991
862
  return ZLinkFrameworkInternalErrorKind.RouteNotConnected;
992
863
  // A terminal-only conflict/busy on a remote actor reply is the target's
993
- // stale/owner state: retryable ActorLocationStale (-> Unavailable).
864
+ // stale/owner state: ActorLocationStale (Unavailable).
994
865
  case RequestResult.Conflict:
995
866
  case RequestResult.Busy:
996
867
  return ZLinkFrameworkInternalErrorKind.ActorLocationStale;
@@ -999,8 +870,11 @@ function actorTerminalKind(result: number): ZLinkFrameworkInternalErrorKind {
999
870
  }
1000
871
  }
1001
872
 
873
+ // The shared table preserves Actor fine kinds; without a recognized fine code,
874
+ // the remote owner/queue terminal supplies the classification.
1002
875
  function mapRequestResult(result: number, failureErrno: number, operationName: string): Error {
1003
- const kind = actorFailureCodeKind(failureErrno) ?? actorTerminalKind(result);
876
+ const kind =
877
+ internalFrameworkErrorKindFromWireFailureCode(failureErrno) ?? actorTerminalKind(result);
1004
878
  return createInternalFrameworkException(
1005
879
  kind,
1006
880
  `${operationName} failed with request result ${result}` +
@@ -1008,13 +882,6 @@ function mapRequestResult(result: number, failureErrno: number, operationName: s
1008
882
  );
1009
883
  }
1010
884
 
1011
- function mapRequestError(
1012
- error: { readonly result: number; readonly failureErrno?: number },
1013
- operationName: string
1014
- ): Error {
1015
- return mapRequestResult(error.result, error.failureErrno ?? 0, operationName);
1016
- }
1017
-
1018
885
  function routeNotConnected(message: string, cause?: unknown): ZLinkFrameworkException {
1019
886
  return createInternalFrameworkException(
1020
887
  ZLinkFrameworkInternalErrorKind.RouteNotConnected,
@@ -1,45 +1,51 @@
1
1
  import {
2
- ZLinkFrameworkInternalErrorKind,
3
- createInternalFrameworkException
4
- } from '../framework-errors-internal';
5
- import type {
6
- RoutingId,
7
- SpotId,
8
- ZLinkActor,
9
- ZLinkActorContext,
10
- ZLinkActorJoinCompletion,
11
- ZLinkActorJoinEntrySpotCall,
12
- ZLinkActorJoinSpotCall,
13
- ZLinkBoundSession,
14
- ZLinkBoundSessionSendCall
2
+ type RoutingId,
3
+ type SpotId,
4
+ type ZLinkActor,
5
+ type ZLinkActorContext,
6
+ type ZLinkActorJoinCompletion,
7
+ type ZLinkActorJoinEntrySpotCall,
8
+ type ZLinkActorJoinSpotCall,
9
+ type ZLinkBoundSession,
10
+ type ZLinkBoundSessionSendCall,
11
+ ZLinkEncodedPayload,
12
+ ZLinkFrameworkException,
13
+ ZLinkMessage,
14
+ type ZLinkMessageSerializer
15
15
  } from '../../contracts';
16
- import { ZLinkEncodedPayload, ZLinkFrameworkException, ZLinkMessage } from '../../contracts';
16
+
17
17
  import type { Message } from '../../contracts/Common/Message';
18
- import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
19
- import { type ZLinkMessageSerializer } from '../../contracts';
20
- import { ZLinkConfigurationException } from '../configuration';
21
18
  import {
22
- ZLinkRuntimeMessageFlowOutcome as ZLinkMessageFlowOutcome,
23
19
  ZLinkRuntimeDispatchErrorAction as ZLinkDispatchErrorAction,
24
20
  ZLinkRuntimeDispatchErrorReason as ZLinkDispatchErrorReason,
25
21
  ZLinkDispatchErrorSurface,
26
- ZLinkDispatchMessageKind
22
+ ZLinkDispatchMessageKind,
23
+ ZLinkRuntimeMessageFlowOutcome as ZLinkMessageFlowOutcome
27
24
  } from '../../contracts/Dispatch/ZLinkDispatchOptions';
25
+ import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
26
+ import { ZLinkConfigurationException } from '../configuration';
27
+ import { dispatchErrorDetails } from '../diagnostics/dispatch-error-details';
28
+ import { captureZLinkSpotSerialTurn } from '../execution';
29
+ import { createRandomOperationIdentity } from '../foundation/operation-identity';
30
+ import {
31
+ ZLinkFrameworkInternalErrorKind,
32
+ createInternalFrameworkException
33
+ } from '../framework-errors-internal';
28
34
  import { encodeFrameworkPayloadMessage } from '../messaging/payload-codec';
29
- import { ZLinkActorRuntimeState, toFrameworkActorRef } from './actor-runtime-state';
30
- import type {
31
- ZLinkActorBoundSessionFactory,
32
- ZLinkActorJoinCoordinator
33
- } from './actor-runtime-contracts';
34
- import type { ZLinkActorManagerOptions } from './actor-runtime-contracts';
35
+ import { deferActorJoin } from './actor-join-deferred-scope';
35
36
  import {
36
37
  ZLINK_ACTOR_LIFECYCLE_SNAPSHOT,
37
38
  type ZLinkActorLifecycleSnapshotSource
38
39
  } from './actor-lifecycle-snapshot';
39
- import { createRandomOperationIdentity } from '../foundation/operation-identity';
40
- import { deferActorJoin } from './actor-join-deferred-scope';
41
- import { captureZLinkSpotSerialTurn } from '../execution';
42
- import { dispatchErrorDetails } from '../diagnostics/dispatch-error-details';
40
+ import type {
41
+ ZLinkActorBoundSessionFactory,
42
+ ZLinkActorJoinCoordinator,
43
+ ZLinkActorManagerOptions
44
+ } from './actor-runtime-contracts';
45
+ import { ZLinkActorRuntimeState, toFrameworkActorRef } from './actor-runtime-state';
46
+ const DEFAULT_ACTOR_JOIN_TIMEOUT_MS = 5_000;
47
+
48
+ const MAX_ACTOR_JOIN_TIMEOUT_MS = 2_147_483_647;
43
49
 
44
50
  export const ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME = Symbol('zlink.actor.join-entry-spot-runtime');
45
51
 
@@ -166,7 +172,7 @@ export class DefaultZLinkActorContext implements ZLinkActorContext {
166
172
  }
167
173
 
168
174
  class DefaultZLinkActorJoinSpotCall implements ZLinkActorJoinSpotCall {
169
- private timeoutMs = 5_000;
175
+ private timeoutMs: number = DEFAULT_ACTOR_JOIN_TIMEOUT_MS;
170
176
  private deferred = false;
171
177
  private readonly turn = captureZLinkSpotSerialTurn();
172
178
 
@@ -305,7 +311,7 @@ class DefaultZLinkActorJoinSpotCall implements ZLinkActorJoinSpotCall {
305
311
  }
306
312
 
307
313
  class DefaultZLinkActorJoinEntrySpotCall implements ZLinkActorJoinEntrySpotCall {
308
- private timeoutMs = 5_000;
314
+ private timeoutMs: number = DEFAULT_ACTOR_JOIN_TIMEOUT_MS;
309
315
  private deferred = false;
310
316
  private readonly turn = captureZLinkSpotSerialTurn();
311
317
 
@@ -480,9 +486,9 @@ function encodeJoinRequest(
480
486
 
481
487
  function validateJoinTimeout(timeoutMs: number): number {
482
488
  const rounded = Math.ceil(timeoutMs);
483
- if (!Number.isFinite(timeoutMs) || rounded < 1 || rounded > 2_147_483_647) {
489
+ if (!Number.isFinite(timeoutMs) || rounded < 1 || rounded > MAX_ACTOR_JOIN_TIMEOUT_MS) {
484
490
  throw new ZLinkConfigurationException(
485
- 'Actor join timeout must be a finite value from 1 through 2147483647 milliseconds.'
491
+ `Actor join timeout must be a finite value from 1 through ${MAX_ACTOR_JOIN_TIMEOUT_MS} milliseconds.`
486
492
  );
487
493
  }
488
494
  return rounded;
@@ -1,45 +1,47 @@
1
- import {
2
- ZLinkFrameworkInternalErrorKind,
3
- createInternalFrameworkException,
4
- internalFrameworkErrorKind
5
- } from '../framework-errors-internal';
6
- import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
7
- import type { ActorRef, RoutingId } from '../../contracts';
8
- import { ZLinkFrameworkException } from '../../contracts';
1
+ import { type ActorRef, type RoutingId, ZLinkFrameworkException } from '../../contracts';
2
+
9
3
  import type { Message } from '../../contracts/Common/Message';
10
- import type { ZLinkMessageFollowOrigin } from '../foundation/service-runtime-contracts';
4
+ import { zlinkDefaultLocationOptions } from '../../contracts/Locations/Options';
5
+ import { releaseApplicationJobPermitForDurableHandoff } from '../application-jobs/application-job-queue-scope';
6
+ import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
11
7
  import {
12
8
  MessageFollowSuppressionRegistry,
13
9
  type MessageFollowSuppressionFence
14
10
  } from '../foundation/message-follow-suppression-registry';
15
- import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
11
+ import type { ZLinkMessageFollowOrigin } from '../foundation/service-runtime-contracts';
12
+ import {
13
+ createInternalFrameworkException,
14
+ internalFrameworkErrorKind,
15
+ ZLinkFrameworkInternalErrorKind
16
+ } from '../framework-errors-internal';
16
17
  import { encodeRoutingIdStorageHex, routingIdsEqual } from '../routing-id';
17
- import { releaseApplicationJobPermitForDurableHandoff } from '../application-jobs/application-job-queue-scope';
18
+ import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
18
19
  import { decodeActorRequestDeadlineUnixMs, decodeStreamHeader } from '../streams/protocol';
19
- import type { ZLinkActorRoutedJoinTransport } from './actor-routed-join-transport';
20
- import { requestRoutedJsonReply } from './actor-routed-json-request';
21
- import type { ZLinkRemoteBoundSessionTarget } from './actor-runtime-state';
22
- import {
23
- encodeMessageFollowRemoteActorPacketRelayPayload,
24
- ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET
25
- } from './actor-packet-relay-wire';
26
20
  import {
27
21
  actorMessageFollowContext,
28
22
  actorMessageFollowPayloadChecksum,
29
- attachActorMessageFollowContext,
30
23
  advanceActorMessageFollowContext,
24
+ attachActorMessageFollowContext,
31
25
  createMessageFollowId,
32
26
  messageFollowOwnerFenceKey,
33
27
  messageFollowOwnerFencesEqual,
34
28
  messageFollowOwnerNodeRid,
35
29
  ownerFence,
36
30
  verifyActorMessageFollowPayload,
31
+ ZLINK_MESSAGE_FOLLOW_MAX_HOPS,
37
32
  type ZLinkActorMessageFollowContext,
38
33
  type ZLinkActorMessageFollowOwnerFence
39
34
  } from './actor-message-follow-context';
35
+ import {
36
+ encodeMessageFollowRemoteActorPacketRelayPayload,
37
+ ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET
38
+ } from './actor-packet-relay-wire';
39
+ import type { ZLinkActorRoutedJoinTransport } from './actor-routed-join-transport';
40
+ import { requestRoutedJsonReply } from './actor-routed-json-request';
41
+ import type { ZLinkRemoteBoundSessionTarget } from './actor-runtime-state';
40
42
 
41
- export const DEFAULT_MESSAGE_FOLLOW_DURATION_MS = 30_000;
42
- const MAX_MESSAGE_FOLLOW_HOPS = 8;
43
+ export const DEFAULT_MESSAGE_FOLLOW_DURATION_MS =
44
+ zlinkDefaultLocationOptions.messageFollowDurationMs;
43
45
  const RELOCATION_REPLY_RETENTION_MS = 24 * 60 * 60 * 1_000;
44
46
 
45
47
  export interface ZLinkActorHandoffPacket {
@@ -1445,7 +1447,7 @@ export class ZLinkActorHandoffCoordinator {
1445
1447
  return duplicate.result;
1446
1448
  }
1447
1449
  const bytes = packetBytes(packet);
1448
- if (context.hopCount >= MAX_MESSAGE_FOLLOW_HOPS) {
1450
+ if (context.hopCount >= ZLINK_MESSAGE_FOLLOW_MAX_HOPS) {
1449
1451
  this.options.onMarker?.('message_follow_rejected', actorId);
1450
1452
  return Promise.reject(actorLocationStale(actorId));
1451
1453
  }