@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
@@ -7,22 +7,33 @@ exports.decodeActorAuthorityPayload = decodeActorAuthorityPayload;
7
7
  exports.actorRelocationAuthorityApplicationPayload = actorRelocationAuthorityApplicationPayload;
8
8
  exports.relocatingActorAuthorityApplicationPayload = relocatingActorAuthorityApplicationPayload;
9
9
  exports.replaceActorRelocationAuthorityApplicationPayload = replaceActorRelocationAuthorityApplicationPayload;
10
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
10
11
  const contracts_1 = require("../../contracts");
12
+ const CoreTypes_1 = require("../../contracts/Common/CoreTypes");
13
+ const InternalDefaults_1 = require("../../contracts/Configuration/InternalDefaults");
11
14
  const service_relocation_runtime_1 = require("../foundation/service-relocation-runtime");
15
+ const service_wire_binary_primitives_1 = require("../foundation/service-wire-binary-primitives");
12
16
  const routing_id_1 = require("../routing-id");
13
17
  const AUTHORITY_MAGIC = Buffer.from([0x5a, 0x4c, 0x41, 0x55]);
14
18
  const AUTHORITY_VERSION = 1;
15
19
  const AUTHORITY_FLAGS = 0;
16
20
  const ACTOR_RELOCATION_MAGIC = Buffer.from([0x5a, 0x4c, 0x41, 0x50]);
17
- const MAXIMUM_BYTES = 1024 * 1024;
21
+ const AUTHORITY_MINIMUM_BYTES = 15;
22
+ const ACTOR_RELOCATION_MINIMUM_BYTES = 32;
23
+ const ACTOR_RELOCATION_VERSION_WITHOUT_SESSION_FENCE = 5;
24
+ const ACTOR_RELOCATION_VERSION_WITH_SESSION_FENCE = 6;
25
+ const ACTOR_RELOCATION_FIRST_PHASE = 1;
26
+ const ACTOR_RELOCATION_STEADY_PHASE = 4;
27
+ const ENTRY_SPOT_WIRE_KIND = (0, contracts_1.zlinkSpotKindToWire)(contracts_1.ZLinkSpotKind.Entry);
28
+ const USER_SPOT_WIRE_KIND = (0, contracts_1.zlinkSpotKindToWire)(contracts_1.ZLinkSpotKind.User);
18
29
  const FATAL_UTF8 = new TextDecoder('utf-8', { fatal: true });
19
30
  /** Encodes the durable authority-payload-v1 envelope around one schema body. */
20
31
  function encodeCanonicalAuthorityPayload(value) {
21
32
  const body = Buffer.from(value.body);
22
33
  const envelope = concat(AUTHORITY_MAGIC, Buffer.of(AUTHORITY_VERSION), u16be(AUTHORITY_FLAGS), u32be(body.byteLength), body);
23
34
  const encoded = concat(envelope, u32be((0, service_relocation_runtime_1.crc32c)(envelope)));
24
- if (encoded.byteLength > MAXIMUM_BYTES) {
25
- throw new RangeError('Actor authority payload exceeds 1 MiB.');
35
+ if (encoded.byteLength > InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES) {
36
+ throw new RangeError(`Actor authority payload exceeds ${InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`);
26
37
  }
27
38
  return encoded;
28
39
  }
@@ -30,7 +41,8 @@ function encodeCanonicalAuthorityPayload(value) {
30
41
  function decodeCanonicalAuthorityPayload(payload) {
31
42
  try {
32
43
  const reader = new BigEndianReader(payload);
33
- if (reader.bytes.byteLength < 15 || reader.bytes.byteLength > MAXIMUM_BYTES) {
44
+ if (reader.bytes.byteLength < AUTHORITY_MINIMUM_BYTES ||
45
+ reader.bytes.byteLength > InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES) {
34
46
  return undefined;
35
47
  }
36
48
  reader.expect(AUTHORITY_MAGIC);
@@ -52,7 +64,7 @@ function decodeCanonicalAuthorityPayload(payload) {
52
64
  /** Byte-exact Node counterpart of .NET ZLinkActorAuthorityPayloadCodec.Encode. */
53
65
  function encodeActorAuthorityPayload(value) {
54
66
  const spotKind = (0, contracts_1.zlinkSpotKindToWire)(value.currentSpotKind);
55
- if (spotKind !== 1 && spotKind !== 2) {
67
+ if (spotKind !== ENTRY_SPOT_WIRE_KIND && spotKind !== USER_SPOT_WIRE_KIND) {
56
68
  throw new RangeError('Actor currentSpotKind must be Entry or User.');
57
69
  }
58
70
  const actor = concat(text8(value.stableType, 'stableType'), text8(value.actorId, 'actorId'), Buffer.of(value.state === 'creating' ? 0 : 1), text8(value.currentSpotId, 'currentSpotId'), nonzeroU64be(value.currentSpotGeneration, 'currentSpotGeneration'), Buffer.of(spotKind));
@@ -117,7 +129,7 @@ function actorRelocationAuthorityApplicationPayload(payload) {
117
129
  const current = decodeActorRelocationEnvelope(payload);
118
130
  return current === undefined
119
131
  ? Buffer.from(payload)
120
- : current.phase === 4
132
+ : current.phase === ACTOR_RELOCATION_STEADY_PHASE
121
133
  ? Buffer.from(current.applicationPayload)
122
134
  : undefined;
123
135
  }
@@ -132,15 +144,16 @@ function replaceActorRelocationAuthorityApplicationPayload(payload, applicationP
132
144
  return Buffer.from(applicationPayload);
133
145
  const withoutChecksum = concat(current.prefix, i32le(applicationPayload.byteLength), applicationPayload);
134
146
  const encoded = concat(withoutChecksum, u32le((0, service_relocation_runtime_1.crc32c)(withoutChecksum)));
135
- if (encoded.byteLength > MAXIMUM_BYTES) {
136
- throw new RangeError('Actor relocation authority payload exceeds 1 MiB.');
147
+ if (encoded.byteLength > InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES) {
148
+ throw new RangeError(`Actor relocation authority payload exceeds ${InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`);
137
149
  }
138
150
  return encoded;
139
151
  }
140
152
  function decodeActorRelocationEnvelope(payload) {
141
153
  try {
142
154
  const bytes = Buffer.from(payload);
143
- if (bytes.byteLength < 32 || bytes.byteLength > MAXIMUM_BYTES)
155
+ if (bytes.byteLength < ACTOR_RELOCATION_MINIMUM_BYTES ||
156
+ bytes.byteLength > InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES)
144
157
  return undefined;
145
158
  const checksumOffset = bytes.byteLength - 4;
146
159
  if (bytes.readUInt32LE(checksumOffset) !== (0, service_relocation_runtime_1.crc32c)(bytes.subarray(0, checksumOffset))) {
@@ -149,12 +162,13 @@ function decodeActorRelocationEnvelope(payload) {
149
162
  const reader = new LittleEndianReader(bytes.subarray(0, checksumOffset));
150
163
  reader.expect(ACTOR_RELOCATION_MAGIC);
151
164
  const version = reader.u16();
152
- if (version !== 5 && version !== 6)
165
+ if (version !== ACTOR_RELOCATION_VERSION_WITHOUT_SESSION_FENCE &&
166
+ version !== ACTOR_RELOCATION_VERSION_WITH_SESSION_FENCE)
153
167
  return undefined;
154
168
  if (reader.take(16).every((byte) => byte === 0))
155
169
  return undefined;
156
170
  const phase = reader.u8();
157
- if (phase < 1 || phase > 4)
171
+ if (phase < ACTOR_RELOCATION_FIRST_PHASE || phase > ACTOR_RELOCATION_STEADY_PHASE)
158
172
  return undefined;
159
173
  const isBound = reader.bool();
160
174
  if (isBound) {
@@ -169,7 +183,7 @@ function decodeActorRelocationEnvelope(payload) {
169
183
  const ownerLeaseGeneration = reader.u64();
170
184
  const sessionOwnerNodeGeneration = reader.u64();
171
185
  reader.u64();
172
- if (version === 6) {
186
+ if (version === ACTOR_RELOCATION_VERSION_WITH_SESSION_FENCE) {
173
187
  reader.text16();
174
188
  reader.u64();
175
189
  }
@@ -184,7 +198,7 @@ function decodeActorRelocationEnvelope(payload) {
184
198
  }
185
199
  const prefix = Buffer.from(reader.bytes.subarray(0, reader.offset));
186
200
  const applicationLength = reader.i32();
187
- if (applicationLength < 1 || applicationLength > MAXIMUM_BYTES)
201
+ if (applicationLength < 1 || applicationLength > InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES)
188
202
  return undefined;
189
203
  const applicationPayload = Buffer.from(reader.take(applicationLength));
190
204
  if (!reader.done)
@@ -197,20 +211,22 @@ function decodeActorRelocationEnvelope(payload) {
197
211
  }
198
212
  function text8(value, name) {
199
213
  const bytes = Buffer.from(value, 'utf8');
200
- if (bytes.byteLength < 1 || bytes.byteLength > 0xff || bytes.includes(0)) {
201
- throw new RangeError(`${name} must contain 1..255 UTF-8 bytes without NUL.`);
214
+ if (bytes.byteLength < 1 ||
215
+ bytes.byteLength > service_wire_binary_primitives_1.SERVICE_WIRE_TEXT8_MAX_BYTES ||
216
+ bytes.includes(0)) {
217
+ throw new RangeError(`${name} must contain 1..${service_wire_binary_primitives_1.SERVICE_WIRE_TEXT8_MAX_BYTES} UTF-8 bytes without NUL.`);
202
218
  }
203
219
  return concat(Buffer.of(bytes.byteLength), bytes);
204
220
  }
205
221
  function rid(value, name) {
206
222
  const bytes = Buffer.from((0, routing_id_1.encodeRoutingIdStorageHex)(value), 'hex');
207
- if (bytes.byteLength < 1 || bytes.byteLength > 0xff) {
208
- throw new RangeError(`${name} must contain 1..255 bytes.`);
223
+ if (bytes.byteLength < 1 || bytes.byteLength > CoreTypes_1.ZLINK_MAX_ROUTING_ID_BYTES) {
224
+ throw new RangeError(`${name} must contain 1..${CoreTypes_1.ZLINK_MAX_ROUTING_ID_BYTES} bytes.`);
209
225
  }
210
226
  return concat(Buffer.of(bytes.byteLength), bytes);
211
227
  }
212
228
  function nonzeroU64be(value, name) {
213
- if (value === 0n || value < 0n || value > 0xffffffffffffffffn) {
229
+ if (value === 0n || value < 0n || value > stream_wire_1.UINT64_MAX) {
214
230
  throw new RangeError(`${name} must be a non-zero u64.`);
215
231
  }
216
232
  const result = Buffer.alloc(8);
@@ -1,6 +1,6 @@
1
- import type { ActorRef, ZLinkActorClient, ZLinkActorRequestCall, ZLinkActorSendCall, ZLinkMessageSerializer } from '../../contracts';
1
+ import { type ActorRef, type ZLinkActorClient, type ZLinkActorRequestCall, type ZLinkActorSendCall, type ZLinkMessageSerializer } from '../../contracts';
2
2
  import type { Message } from '../../contracts/Common/Message';
3
- import type { ZLinkBackendMeshNode, ZLinkMeshCompletionTable } from '../backend';
3
+ import { type ZLinkBackendMeshNode, type ZLinkMeshCompletionTable } from '../backend';
4
4
  import type { ZLinkStoreLocationResolvers } from '../locations';
5
5
  import type { ZLinkActorRoutedJoinTransport } from './actor-routed-join-transport';
6
6
  export interface ZLinkActorClientOptions {
@@ -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) {
@@ -26,24 +28,21 @@ class DefaultZLinkActorClient {
26
28
  }
27
29
  sendToActor(actorId, message) {
28
30
  requireActorId(actorId);
29
- return new DefaultZLinkActorSendCall((packetName, metadata, signal) => this.send(actorId, packetName, message, metadata, signal), message);
31
+ return new DefaultZLinkActorSendCall((packetName, metadata) => this.send(actorId, packetName, message, metadata), message);
30
32
  }
31
33
  requestToActor(actorId, request) {
32
34
  requireActorId(actorId);
33
35
  return new DefaultZLinkActorRequestCall((packetName, timeoutMs, metadata, signal) => this.request(actorId, packetName, request, timeoutMs, metadata, signal, 'async'), (packetName, timeoutMs, metadata, signal) => this.request(actorId, packetName, request, timeoutMs, metadata, signal, 'yield'), actorId, request, this.options.defaultRequestTimeoutMs);
34
36
  }
35
- async send(actorId, explicitPacketName, message, metadata, signal) {
36
- (0, abort_1.throwIfAborted)(signal);
37
- const route = await this.resolveActorRoute(actorId, signal);
37
+ async send(actorId, explicitPacketName, message, metadata) {
38
+ const route = await this.resolveActorRoute(actorId);
38
39
  const { meshName, actorRef: actor } = route;
39
40
  this.throwIfKnownStale(meshName, actor);
40
41
  const parts = this.createPacketParts(protocol_1.ZLinkStreamMessageKind.Send, undefined, explicitPacketName, message, metadata);
41
42
  const messageFollow = createActorMessageFollowContext(route, parts, false);
42
43
  const routedActor = (0, actor_message_follow_context_1.attachActorMessageFollowContext)(actor, messageFollow);
43
44
  try {
44
- const submissionCopies = (await this.options
45
- .transportDeliveryGate?.()
46
- ?.waitBeforeSubmit(actorId, 'oneWay', signal)) ?? 1;
45
+ const submissionCopies = (await this.options.transportDeliveryGate?.()?.waitBeforeSubmit(actorId, 'oneWay')) ?? 1;
47
46
  const handoff = this.options.handoffCapture?.(meshName, actor.actorId, parts, false, routedActor);
48
47
  if (handoff !== undefined) {
49
48
  const submissions = [handoff];
@@ -52,8 +51,8 @@ class DefaultZLinkActorClient {
52
51
  if (duplicate !== undefined)
53
52
  submissions.push(duplicate);
54
53
  }
55
- await (0, abort_1.awaitWithAbort)(Promise.all(submissions), signal);
56
- return submitted();
54
+ await Promise.all(submissions);
55
+ return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
57
56
  }
58
57
  const node = this.requireNode(meshName);
59
58
  if (this.options.routeTransport !== undefined &&
@@ -66,8 +65,8 @@ class DefaultZLinkActorClient {
66
65
  actorRef: actor,
67
66
  returnResponse: false,
68
67
  messageFollowContext: messageFollow
69
- }), { packetName: '__zlink.actor.packet.relay' });
70
- return submitted();
68
+ }), { packetName: actor_packet_relay_wire_1.ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET });
69
+ return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
71
70
  }
72
71
  return await this.submitActorSend(meshName, toBackendActorRef(actor), parts);
73
72
  }
@@ -89,7 +88,7 @@ class DefaultZLinkActorClient {
89
88
  const effectiveTimeoutMs = timeoutMs ?? this.options.defaultRequestTimeoutMs;
90
89
  const deadlineMs = effectiveTimeoutMs === undefined ? undefined : performance.now() + effectiveTimeoutMs;
91
90
  const deadlineUnixMs = effectiveTimeoutMs === undefined ? undefined : Date.now() + effectiveTimeoutMs;
92
- const route = await this.resolveActorRoute(actorId, signal);
91
+ const route = await this.resolveActorRoute(actorId, signal, deadlineMs);
93
92
  if (waitPolicy === 'async' &&
94
93
  sourceSpotId !== undefined &&
95
94
  sameSpotRoute(sourceSpotId, route)) {
@@ -104,9 +103,12 @@ class DefaultZLinkActorClient {
104
103
  const messageFollow = createActorMessageFollowContext(route, parts, true, deadlineUnixMs, correlationId, operationId);
105
104
  const routedActor = (0, actor_message_follow_context_1.attachActorMessageFollowContext)(actor, messageFollow);
106
105
  try {
107
- const submissionCopies = (await this.options
106
+ const delivery = this.options
108
107
  .transportDeliveryGate?.()
109
- ?.waitBeforeSubmit(actorId, 'request', signal)) ?? 1;
108
+ ?.waitBeforeSubmit(actorId, 'request', signal);
109
+ const submissionCopies = delivery === undefined
110
+ ? 1
111
+ : ((await (0, actor_request_deadline_1.waitActorReply)(delivery, actorId, deadlineMs, signal)) ?? 1);
110
112
  const handoff = this.options.handoffCapture?.(meshName, actor.actorId, parts, true, routedActor, deadlineUnixMs);
111
113
  if (handoff !== undefined) {
112
114
  const submissions = [handoff];
@@ -115,10 +117,10 @@ class DefaultZLinkActorClient {
115
117
  if (duplicate !== undefined)
116
118
  submissions.push(duplicate);
117
119
  }
118
- const replies = await waitHandoffReply(Promise.all(submissions), remainingActorRequestTimeout(actorId, deadlineMs));
120
+ const replies = await (0, actor_request_deadline_1.waitActorReply)(Promise.all(submissions), actorId, deadlineMs, signal);
119
121
  return replies[0];
120
122
  }
121
- return await this.submitActorRequest(meshName, toBackendActorRef(actor), parts, remainingActorRequestTimeout(actorId, deadlineMs), signal, route, messageFollow);
123
+ return await this.submitActorRequest(meshName, toBackendActorRef(actor), parts, (0, actor_request_deadline_1.remainingActorRequestTimeout)(actorId, deadlineMs), signal, route, messageFollow);
122
124
  }
123
125
  catch (error) {
124
126
  if (isStaleActorError(error)) {
@@ -132,12 +134,12 @@ class DefaultZLinkActorClient {
132
134
  closeMessages(parts);
133
135
  }
134
136
  }
135
- async resolveActorRoute(actorId, signal) {
137
+ async resolveActorRoute(actorId, signal, deadlineMs) {
136
138
  const resolver = this.options.locationResolver();
137
139
  if (resolver === undefined) {
138
140
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.InvalidConfiguration, 'Actor direct messaging requires a Location Store.');
139
141
  }
140
- const resolution = await resolver.resolveDirectActorRoute(actorId, signal);
142
+ const resolution = await resolver.resolveDirectActorRoute(actorId, signal, deadlineMs);
141
143
  if (resolution.kind === 'missing') {
142
144
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorRouteNotFound, `Actor route '${actorId}' was not found.`);
143
145
  }
@@ -191,17 +193,15 @@ class DefaultZLinkActorClient {
191
193
  async submitActorSend(meshName, actor, parts) {
192
194
  const node = this.requireNode(meshName);
193
195
  try {
194
- return mapSubmitResult(await node.sendToActor(actor, toMessageLikeParts(parts), {
196
+ return (0, submission_result_1.classifySubmitResult)(await node.sendToActor(actor, toMessageLikeParts(parts), {
195
197
  flags: runtime_values_1.ZLINK_BACKEND_SEND_NONE
196
198
  }), 'Actor send');
197
199
  }
198
200
  catch (error) {
199
201
  if ((0, runtime_values_1.isZLinkBackendResultError)(error)) {
200
- return mapSubmitResult(error.result, 'Actor send');
202
+ return (0, submission_result_1.classifySubmitResult)(error.result, 'Actor send', error.phase);
201
203
  }
202
- throw (0, runtime_values_1.isZLinkBackendResultError)(error)
203
- ? mapRequestError(error, 'Actor send')
204
- : mapSubmitError(error, 'Actor send');
204
+ throw mapSubmitError(error, 'Actor send');
205
205
  }
206
206
  }
207
207
  async submitActorRequest(meshName, actor, parts, timeoutMs, signal, route, messageFollowContext) {
@@ -296,36 +296,10 @@ function remoteRelayErrorKind(value) {
296
296
  ? value
297
297
  : framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed;
298
298
  }
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
299
  function requireActorId(actorId) {
309
300
  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);
301
+ if (byteLength < 1 || byteLength > CoreTypes_1.ZLINK_MAX_ACTOR_ID_BYTES) {
302
+ throw new configuration_1.ZLinkConfigurationException(`Actor ID must contain 1..${CoreTypes_1.ZLINK_MAX_ACTOR_ID_BYTES} UTF-8 bytes.`);
329
303
  }
330
304
  }
331
305
  async function forwardEncodedActorPacket(node, completions, actor, header, payload, returnResponse, timeoutMs, serializers) {
@@ -393,10 +367,10 @@ class DefaultZLinkActorSendCall {
393
367
  this.selectedMetadata.set(key, value);
394
368
  return this;
395
369
  }
396
- async submit(signal) {
370
+ async submit() {
397
371
  ensureSingleSubmit(this.executed);
398
372
  this.executed = true;
399
- const result = await this.submitter(this.packet ?? (0, packet_name_1.resolveFrameworkPacketName)(this.message, undefined, 'Actor'), this.selectedMetadata, signal);
373
+ const result = await this.submitter(this.packet ?? (0, packet_name_1.resolveFrameworkPacketName)(this.message, undefined, 'Actor'), this.selectedMetadata);
400
374
  (0, submission_result_1.requireOneWayCompletion)(result, 'Actor send', framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorRouteNotFound);
401
375
  }
402
376
  }
@@ -493,97 +467,20 @@ function decodeActorReplyPayload(kind, payload, serializers, packetName) {
493
467
  const wireKind = error.kind;
494
468
  const publicKind = typeof wireKind === 'number' &&
495
469
  Number.isInteger(wireKind) &&
496
- wireKind >= contracts_2.ZLinkFrameworkErrorKind.NotFound &&
497
- wireKind <= contracts_2.ZLinkFrameworkErrorKind.InternalFailure
470
+ wireKind >= contracts_1.ZLinkFrameworkErrorKind.NotFound &&
471
+ wireKind <= contracts_1.ZLinkFrameworkErrorKind.InternalFailure
498
472
  ? wireKind
499
- : contracts_2.ZLinkFrameworkErrorKind.InternalFailure;
500
- throw new contracts_2.ZLinkFrameworkException(publicKind, error.message ?? 'Actor request failed.');
473
+ : contracts_1.ZLinkFrameworkErrorKind.InternalFailure;
474
+ throw new contracts_1.ZLinkFrameworkException(publicKind, error.message ?? 'Actor request failed.');
501
475
  }
502
- return (0, payload_codec_1.decodeFrameworkPayloadMessage)(payload, serializers, undefined, 'application/json', packetName, 'reply');
476
+ return (0, payload_codec_1.decodeFrameworkPayloadMessage)(payload, serializers, undefined, stream_wire_1.ZlinkStreamContentType.Json, packetName, 'reply');
503
477
  }
504
478
  function mapSubmitError(error, operationName) {
505
- if (error instanceof contracts_2.ZLinkFrameworkException) {
479
+ if (error instanceof contracts_1.ZLinkFrameworkException) {
506
480
  return error;
507
481
  }
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
482
  return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected, `${operationName} failed before a reply was received.`, true, error);
519
483
  }
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
484
  function actorTerminalKind(result) {
588
485
  switch (result) {
589
486
  case runtime_values_1.RequestResult.TimedOut:
@@ -599,7 +496,7 @@ function actorTerminalKind(result) {
599
496
  case runtime_values_1.RequestResult.NotConnected:
600
497
  return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected;
601
498
  // A terminal-only conflict/busy on a remote actor reply is the target's
602
- // stale/owner state: retryable ActorLocationStale (-> Unavailable).
499
+ // stale/owner state: ActorLocationStale (Unavailable).
603
500
  case runtime_values_1.RequestResult.Conflict:
604
501
  case runtime_values_1.RequestResult.Busy:
605
502
  return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale;
@@ -607,19 +504,18 @@ function actorTerminalKind(result) {
607
504
  return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed;
608
505
  }
609
506
  }
507
+ // The shared table preserves Actor fine kinds; without a recognized fine code,
508
+ // the remote owner/queue terminal supplies the classification.
610
509
  function mapRequestResult(result, failureErrno, operationName) {
611
- const kind = actorFailureCodeKind(failureErrno) ?? actorTerminalKind(result);
510
+ const kind = (0, framework_errors_internal_1.internalFrameworkErrorKindFromWireFailureCode)(failureErrno) ?? actorTerminalKind(result);
612
511
  return (0, framework_errors_internal_1.createInternalFrameworkException)(kind, `${operationName} failed with request result ${result}` +
613
512
  (failureErrno !== 0 ? ` (failure code ${failureErrno}).` : '.'));
614
513
  }
615
- function mapRequestError(error, operationName) {
616
- return mapRequestResult(error.result, error.failureErrno ?? 0, operationName);
617
- }
618
514
  function routeNotConnected(message, cause) {
619
515
  return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected, message, true, cause);
620
516
  }
621
517
  function isStaleActorError(error) {
622
- return (error instanceof contracts_2.ZLinkFrameworkException &&
518
+ return (error instanceof contracts_1.ZLinkFrameworkException &&
623
519
  (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale);
624
520
  }
625
521
  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) {
@@ -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) {
@@ -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;
@@ -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) {
@@ -940,7 +940,7 @@ class ZLinkActorHandoffCoordinator {
940
940
  return duplicate.result;
941
941
  }
942
942
  const bytes = packetBytes(packet);
943
- if (context.hopCount >= MAX_MESSAGE_FOLLOW_HOPS) {
943
+ if (context.hopCount >= actor_message_follow_context_1.ZLINK_MESSAGE_FOLLOW_MAX_HOPS) {
944
944
  this.options.onMarker?.('message_follow_rejected', actorId);
945
945
  return Promise.reject(actorLocationStale(actorId));
946
946
  }