@zlink-systems/framework 0.21.0 → 0.22.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 (487) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/ZLinkMessage.js +5 -5
  3. package/dist/contracts/Configuration/CodecContentType.js +5 -7
  4. package/dist/contracts/Configuration/DiagnosticsValidation.js +1 -6
  5. package/dist/contracts/Configuration/EndpointNotation.js +4 -8
  6. package/dist/contracts/Configuration/Registration.js +14 -11
  7. package/dist/contracts/Configuration/RegistrationBuilders.js +32 -25
  8. package/dist/contracts/Configuration/RegistrationNormalizers.js +25 -26
  9. package/dist/contracts/Configuration/RegistrationValidators.js +36 -38
  10. package/dist/contracts/Configuration/SendTimeoutValidation.js +4 -4
  11. package/dist/contracts/Configuration/TimerRegistrationValidator.js +7 -7
  12. package/dist/contracts/Handlers/JsonContract.js +23 -11
  13. package/dist/contracts/Spots/SpotKind.js +16 -8
  14. package/dist/location-store-integration.js +16 -16
  15. package/dist/nest-integration.js +17 -11
  16. package/dist/runtime/abort.js +9 -5
  17. package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
  18. package/dist/runtime/actors/actor-authority-publication.js +18 -17
  19. package/dist/runtime/actors/actor-client.js +83 -63
  20. package/dist/runtime/actors/actor-context.js +24 -18
  21. package/dist/runtime/actors/actor-creation.js +4 -3
  22. package/dist/runtime/actors/actor-handoff.js +89 -92
  23. package/dist/runtime/actors/actor-local-native-join.js +18 -19
  24. package/dist/runtime/actors/actor-mailbox.js +1 -1
  25. package/dist/runtime/actors/actor-message-follow-context.js +24 -21
  26. package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
  27. package/dist/runtime/actors/actor-remote-joiner.js +20 -17
  28. package/dist/runtime/actors/actor-remote-wire.js +6 -7
  29. package/dist/runtime/actors/actor-runtime-state.js +87 -81
  30. package/dist/runtime/actors/actor-transfer-registry.js +3 -5
  31. package/dist/runtime/actors/bound-session-wire.js +14 -9
  32. package/dist/runtime/actors/deferred-join-accepted-journal.js +158 -124
  33. package/dist/runtime/actors/index.js +2 -5
  34. package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
  35. package/dist/runtime/actors/post-commit-actor-location.js +1 -1
  36. package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
  37. package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
  38. package/dist/runtime/admission.js +2 -6
  39. package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
  40. package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
  41. package/dist/runtime/backend/mesh-completion-table.js +1 -3
  42. package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
  43. package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
  44. package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
  45. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
  46. package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
  47. package/dist/runtime/backend/node/node-raw-mesh-backend.js +116 -113
  48. package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
  49. package/dist/runtime/backend/runtime-message.js +3 -3
  50. package/dist/runtime/backend/runtime-values.d.ts +2 -2
  51. package/dist/runtime/backend/runtime-values.js +4 -5
  52. package/dist/runtime/channels/channel-clients.js +27 -24
  53. package/dist/runtime/channels/channel-dispatch-pipeline.js +10 -18
  54. package/dist/runtime/channels/channel-dispatch-services.js +7 -4
  55. package/dist/runtime/channels/channel-dispatchers.js +9 -9
  56. package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
  57. package/dist/runtime/channels/channel-envelope.js +83 -47
  58. package/dist/runtime/channels/channel-outbound-operations.js +8 -8
  59. package/dist/runtime/channels/channel-receive-loops.js +20 -22
  60. package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
  61. package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
  62. package/dist/runtime/channels/channel-runtime-manager.js +18 -9
  63. package/dist/runtime/channels/channel-socket-registry.js +126 -123
  64. package/dist/runtime/channels/channel-transports.js +43 -33
  65. package/dist/runtime/channels/client-server-location-runtime.js +32 -40
  66. package/dist/runtime/channels/client-server-service-wire.js +29 -22
  67. package/dist/runtime/channels/dispatch-error-reporter.js +9 -7
  68. package/dist/runtime/channels/fanout-location-runtime.js +34 -47
  69. package/dist/runtime/channels/fanout-service-wire.js +3 -5
  70. package/dist/runtime/channels/local-spot-route-transport.js +7 -1
  71. package/dist/runtime/channels/route-member-snapshot.js +3 -3
  72. package/dist/runtime/channels/source-spot-router.js +6 -2
  73. package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
  74. package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
  75. package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
  76. package/dist/runtime/diagnostics/index.js +38 -10
  77. package/dist/runtime/diagnostics/message-flow.js +47 -39
  78. package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
  79. package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
  80. package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
  81. package/dist/runtime/execution/index.js +7 -6
  82. package/dist/runtime/execution/serial-execution-queue.js +12 -18
  83. package/dist/runtime/execution/state-lane.js +2 -2
  84. package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -23
  85. package/dist/runtime/foundation/event-loop-resources.js +4 -4
  86. package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
  87. package/dist/runtime/foundation/raw-service-mesh-runtime.js +136 -136
  88. package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
  89. package/dist/runtime/foundation/runtime-state-projections.js +22 -11
  90. package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
  91. package/dist/runtime/foundation/service-discovery-registry.js +35 -33
  92. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
  93. package/dist/runtime/foundation/service-liveness-registry.js +16 -12
  94. package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
  95. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
  96. package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
  97. package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
  98. package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
  99. package/dist/runtime/foundation/service-stateful-registry.js +24 -23
  100. package/dist/runtime/foundation/service-stateful-runtime.js +416 -438
  101. package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
  102. package/dist/runtime/foundation/service-topology-registry.js +96 -95
  103. package/dist/runtime/foundation/service-weighted-selection.js +6 -11
  104. package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
  105. package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
  106. package/dist/runtime/framework-errors-internal.js +7 -10
  107. package/dist/runtime/handlers/handler-instance-scope.js +4 -5
  108. package/dist/runtime/handlers/index.js +3 -1
  109. package/dist/runtime/host/actor-packet-relay.js +74 -70
  110. package/dist/runtime/host/actor-placement-coordinator.js +29 -31
  111. package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
  112. package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
  113. package/dist/runtime/host/actor-transfer-runtime.js +176 -153
  114. package/dist/runtime/host/application-job-queue.js +18 -22
  115. package/dist/runtime/host/bound-session-relay.js +3 -1
  116. package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
  117. package/dist/runtime/host/host-capacity-status.js +8 -4
  118. package/dist/runtime/host/index.js +244 -227
  119. package/dist/runtime/host/instance-activation-authority.js +93 -96
  120. package/dist/runtime/host/location-runtime-owner.js +16 -14
  121. package/dist/runtime/host/mesh-router-resolver.js +11 -13
  122. package/dist/runtime/host/relocation-direct-transfer.js +10 -9
  123. package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
  124. package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
  125. package/dist/runtime/host/remote-bound-session-relay.js +97 -73
  126. package/dist/runtime/host/route-mesh-runtime.js +64 -69
  127. package/dist/runtime/host/runtime-shutdown.js +1 -2
  128. package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
  129. package/dist/runtime/host/spot-address-transport.js +69 -71
  130. package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
  131. package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
  132. package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
  133. package/dist/runtime/locations/actor-location-claims.js +26 -20
  134. package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
  135. package/dist/runtime/locations/authority-key-codec.js +7 -7
  136. package/dist/runtime/locations/auto-connect-loop.js +3 -3
  137. package/dist/runtime/locations/auto-connect-planner.js +25 -19
  138. package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
  139. package/dist/runtime/locations/in-memory-authority-store.js +128 -118
  140. package/dist/runtime/locations/in-memory-location-store.js +195 -168
  141. package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
  142. package/dist/runtime/locations/key-codec.js +1 -1
  143. package/dist/runtime/locations/lease-tracker.js +23 -21
  144. package/dist/runtime/locations/lifecycle.js +4 -5
  145. package/dist/runtime/locations/location-store-repository.js +368 -324
  146. package/dist/runtime/locations/opaque-record-key.js +2 -2
  147. package/dist/runtime/locations/resolvers.js +73 -82
  148. package/dist/runtime/locations/runtime.js +68 -63
  149. package/dist/runtime/locations/spot-location-claims.js +39 -35
  150. package/dist/runtime/messaging/framework-json-v1.js +7 -7
  151. package/dist/runtime/messaging/packet-name.js +7 -6
  152. package/dist/runtime/messaging/payload-codec.js +21 -18
  153. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
  154. package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
  155. package/dist/runtime/routing-id.js +3 -5
  156. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
  157. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
  158. package/dist/runtime/spots/index.js +208 -219
  159. package/dist/runtime/spots/spot-activation-registry.js +15 -14
  160. package/dist/runtime/spots/spot-activation-state.js +17 -15
  161. package/dist/runtime/spots/spot-activation.js +33 -16
  162. package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
  163. package/dist/runtime/spots/spot-actor-membership.js +1 -3
  164. package/dist/runtime/spots/spot-actor-packet-dispatch.js +23 -20
  165. package/dist/runtime/spots/spot-actor-packet-drain.js +12 -10
  166. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
  167. package/dist/runtime/spots/spot-closing.js +3 -7
  168. package/dist/runtime/spots/spot-context.js +2 -2
  169. package/dist/runtime/spots/spot-entry-activation.js +13 -14
  170. package/dist/runtime/spots/spot-handle.js +6 -3
  171. package/dist/runtime/spots/spot-handler-registry.js +12 -12
  172. package/dist/runtime/spots/spot-manager-public.js +5 -6
  173. package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
  174. package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
  175. package/dist/runtime/spots/spot-node-runtime-manager.js +74 -85
  176. package/dist/runtime/spots/spot-outbound.js +10 -14
  177. package/dist/runtime/spots/spot-remote-codec.js +22 -26
  178. package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
  179. package/dist/runtime/spots/spot-route-packet-dispatch.js +16 -14
  180. package/dist/runtime/spots/spot-route-replies.js +4 -6
  181. package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
  182. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +1 -2
  183. package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
  184. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
  185. package/dist/runtime/spots/spot-serial-executor.js +5 -8
  186. package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
  187. package/dist/runtime/spots/spot-subscription-dispatch.js +5 -5
  188. package/dist/runtime/spots/spot-timer.js +25 -29
  189. package/dist/runtime/streams/actor-session-binding-registry.js +98 -107
  190. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
  191. package/dist/runtime/streams/bound-actor-relay-sender.js +18 -16
  192. package/dist/runtime/streams/bound-session-service.js +8 -9
  193. package/dist/runtime/streams/index.js +20 -19
  194. package/dist/runtime/streams/managed-stream.js +32 -30
  195. package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
  196. package/dist/runtime/streams/protocol.js +29 -18
  197. package/dist/runtime/streams/session-actor-coordinator.js +34 -37
  198. package/dist/runtime/streams/session-context.js +30 -28
  199. package/dist/runtime/streams/session-provider.js +2 -2
  200. package/dist/runtime/streams/session-serial-executor.js +1 -2
  201. package/dist/runtime/streams/stream-frame-factory.js +11 -5
  202. package/dist/runtime/streams/stream-session-runtime.js +70 -66
  203. package/dist/runtime/workers/index.js +15 -4
  204. package/package.json +2 -2
  205. package/src/contracts/Channels/RouteCalls.ts +6 -1
  206. package/src/contracts/Common/ZLinkMessage.ts +5 -5
  207. package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
  208. package/src/contracts/Configuration/Builders.ts +14 -14
  209. package/src/contracts/Configuration/CodecContentType.ts +8 -10
  210. package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
  211. package/src/contracts/Configuration/EndpointNotation.ts +11 -11
  212. package/src/contracts/Configuration/ObjectRoles.ts +1 -3
  213. package/src/contracts/Configuration/Registration.ts +46 -17
  214. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
  215. package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
  216. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
  217. package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
  218. package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
  219. package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
  220. package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
  221. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
  222. package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
  223. package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
  224. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -6
  225. package/src/contracts/Errors/index.ts +1 -4
  226. package/src/contracts/Handlers/Attributes.ts +15 -9
  227. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
  228. package/src/contracts/Handlers/JsonContract.ts +53 -19
  229. package/src/contracts/Locations/ActorTransfer.ts +1 -5
  230. package/src/contracts/Locations/Authority.ts +4 -11
  231. package/src/contracts/Locations/Keys.ts +6 -1
  232. package/src/contracts/Locations/Options.ts +3 -2
  233. package/src/contracts/Locations/RelocationStore.ts +1 -4
  234. package/src/contracts/Locations/Resolvers.ts +5 -5
  235. package/src/contracts/Locations/RuntimeQuery.ts +6 -2
  236. package/src/contracts/Locations/Stores.ts +1 -2
  237. package/src/contracts/Locations/index.ts +2 -8
  238. package/src/contracts/RouteMesh/Contracts.ts +1 -7
  239. package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
  240. package/src/contracts/Spots/Contracts.ts +2 -8
  241. package/src/contracts/Spots/SpotKind.ts +16 -8
  242. package/src/contracts/Spots/ZLinkSpot.ts +8 -11
  243. package/src/contracts/Streams/IZLinkSession.ts +0 -1
  244. package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
  245. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
  246. package/src/internal.ts +5 -4
  247. package/src/location-store-integration.ts +24 -16
  248. package/src/nest-integration.ts +40 -25
  249. package/src/runtime/abort.ts +10 -4
  250. package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
  251. package/src/runtime/actors/actor-authority-publication.ts +92 -77
  252. package/src/runtime/actors/actor-client.ts +162 -133
  253. package/src/runtime/actors/actor-context.ts +138 -130
  254. package/src/runtime/actors/actor-creation.ts +47 -44
  255. package/src/runtime/actors/actor-execution-context.ts +6 -4
  256. package/src/runtime/actors/actor-handoff.ts +269 -293
  257. package/src/runtime/actors/actor-join-deferred-scope.ts +5 -4
  258. package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
  259. package/src/runtime/actors/actor-local-native-join.ts +131 -159
  260. package/src/runtime/actors/actor-mailbox.ts +16 -19
  261. package/src/runtime/actors/actor-message-follow-context.ts +46 -36
  262. package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
  263. package/src/runtime/actors/actor-remote-joiner.ts +50 -54
  264. package/src/runtime/actors/actor-remote-wire.ts +9 -13
  265. package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
  266. package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
  267. package/src/runtime/actors/actor-runtime-state.ts +127 -124
  268. package/src/runtime/actors/actor-transfer-registry.ts +9 -14
  269. package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
  270. package/src/runtime/actors/bound-session-wire.ts +37 -17
  271. package/src/runtime/actors/deferred-join-accepted-journal.ts +351 -320
  272. package/src/runtime/actors/index.ts +43 -86
  273. package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
  274. package/src/runtime/actors/post-commit-actor-location.ts +30 -23
  275. package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
  276. package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
  277. package/src/runtime/admission.ts +9 -9
  278. package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
  279. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
  280. package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
  281. package/src/runtime/backend/contracts/index.ts +73 -52
  282. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
  283. package/src/runtime/backend/mesh-completion-table.ts +6 -9
  284. package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
  285. package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
  286. package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
  287. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
  288. package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
  289. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
  290. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
  291. package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
  292. package/src/runtime/backend/node/node-raw-mesh-backend.ts +335 -383
  293. package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
  294. package/src/runtime/backend/runtime-message.ts +5 -3
  295. package/src/runtime/backend/runtime-values.ts +10 -7
  296. package/src/runtime/channels/channel-autoconnect.ts +1 -4
  297. package/src/runtime/channels/channel-clients.ts +93 -73
  298. package/src/runtime/channels/channel-dispatch-pipeline.ts +40 -42
  299. package/src/runtime/channels/channel-dispatch-services.ts +51 -49
  300. package/src/runtime/channels/channel-dispatchers.ts +152 -96
  301. package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
  302. package/src/runtime/channels/channel-envelope.ts +256 -150
  303. package/src/runtime/channels/channel-multipart.ts +13 -5
  304. package/src/runtime/channels/channel-outbound-operations.ts +37 -41
  305. package/src/runtime/channels/channel-receive-loops.ts +102 -98
  306. package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
  307. package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
  308. package/src/runtime/channels/channel-runtime-manager.ts +63 -37
  309. package/src/runtime/channels/channel-socket-options.ts +3 -10
  310. package/src/runtime/channels/channel-socket-registry.ts +331 -273
  311. package/src/runtime/channels/channel-transports.ts +215 -197
  312. package/src/runtime/channels/client-server-location-runtime.ts +116 -100
  313. package/src/runtime/channels/client-server-service-wire.ts +37 -36
  314. package/src/runtime/channels/dispatch-error-reporter.ts +11 -8
  315. package/src/runtime/channels/fanout-location-runtime.ts +91 -94
  316. package/src/runtime/channels/fanout-service-wire.ts +5 -12
  317. package/src/runtime/channels/handler-filter-scope.ts +1 -4
  318. package/src/runtime/channels/index.ts +1 -4
  319. package/src/runtime/channels/local-spot-route-transport.ts +20 -5
  320. package/src/runtime/channels/route-member-snapshot.ts +11 -5
  321. package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
  322. package/src/runtime/channels/source-spot-router.ts +26 -22
  323. package/src/runtime/channels/spot-direct-envelope.ts +10 -8
  324. package/src/runtime/channels/spot-node-route-transport.ts +13 -16
  325. package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
  326. package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
  327. package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
  328. package/src/runtime/codecs/index.ts +3 -2
  329. package/src/runtime/diagnostics/flow-context.ts +12 -3
  330. package/src/runtime/diagnostics/index.ts +96 -61
  331. package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
  332. package/src/runtime/diagnostics/message-flow.ts +95 -76
  333. package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
  334. package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
  335. package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
  336. package/src/runtime/execution/index.ts +18 -26
  337. package/src/runtime/execution/serial-execution-queue.ts +31 -40
  338. package/src/runtime/execution/state-lane.ts +2 -2
  339. package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -51
  340. package/src/runtime/foundation/event-loop-resources.ts +8 -4
  341. package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
  342. package/src/runtime/foundation/operation-identity.ts +1 -2
  343. package/src/runtime/foundation/operation-registry.ts +8 -2
  344. package/src/runtime/foundation/raw-service-mesh-runtime.ts +312 -385
  345. package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
  346. package/src/runtime/foundation/runtime-state-projections.ts +24 -23
  347. package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
  348. package/src/runtime/foundation/service-discovery-registry.ts +67 -59
  349. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
  350. package/src/runtime/foundation/service-liveness-registry.ts +18 -13
  351. package/src/runtime/foundation/service-mailbox.ts +14 -14
  352. package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
  353. package/src/runtime/foundation/service-metadata-codec.ts +2 -9
  354. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
  355. package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
  356. package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
  357. package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
  358. package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
  359. package/src/runtime/foundation/service-session-binding-ingress-port.ts +1 -4
  360. package/src/runtime/foundation/service-stateful-registry.ts +69 -59
  361. package/src/runtime/foundation/service-stateful-runtime.ts +1174 -1112
  362. package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
  363. package/src/runtime/foundation/service-topology-registry.ts +157 -159
  364. package/src/runtime/foundation/service-weighted-selection.ts +9 -15
  365. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
  366. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
  367. package/src/runtime/framework-errors-internal.ts +31 -30
  368. package/src/runtime/handlers/handler-instance-scope.ts +18 -29
  369. package/src/runtime/handlers/index.ts +18 -8
  370. package/src/runtime/host/actor-packet-relay.ts +290 -261
  371. package/src/runtime/host/actor-placement-coordinator.ts +165 -150
  372. package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
  373. package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
  374. package/src/runtime/host/actor-transfer-runtime.ts +391 -395
  375. package/src/runtime/host/application-job-queue.ts +32 -48
  376. package/src/runtime/host/bound-session-relay.ts +7 -9
  377. package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
  378. package/src/runtime/host/host-capacity-status.ts +10 -9
  379. package/src/runtime/host/index.ts +861 -789
  380. package/src/runtime/host/instance-activation-authority.ts +125 -143
  381. package/src/runtime/host/location-runtime-owner.ts +38 -26
  382. package/src/runtime/host/mesh-router-resolver.ts +30 -23
  383. package/src/runtime/host/relocation-direct-transfer.ts +15 -15
  384. package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
  385. package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
  386. package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
  387. package/src/runtime/host/remote-bound-session-relay.ts +274 -247
  388. package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
  389. package/src/runtime/host/route-mesh-runtime.ts +227 -181
  390. package/src/runtime/host/runtime-shutdown.ts +4 -3
  391. package/src/runtime/host/service-relocation-control.ts +14 -5
  392. package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
  393. package/src/runtime/host/spot-address-transport.ts +284 -237
  394. package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
  395. package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
  396. package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
  397. package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
  398. package/src/runtime/locations/actor-location-claims.ts +61 -49
  399. package/src/runtime/locations/actor-session-route-claims.ts +1 -4
  400. package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
  401. package/src/runtime/locations/authority-key-codec.ts +13 -10
  402. package/src/runtime/locations/auto-connect-loop.ts +14 -11
  403. package/src/runtime/locations/auto-connect-planner.ts +42 -31
  404. package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
  405. package/src/runtime/locations/canonical-codec.ts +3 -1
  406. package/src/runtime/locations/creation-operation-id.ts +4 -3
  407. package/src/runtime/locations/domain-store-contract.ts +13 -7
  408. package/src/runtime/locations/in-memory-authority-store.ts +232 -199
  409. package/src/runtime/locations/in-memory-location-store.ts +432 -250
  410. package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
  411. package/src/runtime/locations/internal-store-contracts.ts +95 -38
  412. package/src/runtime/locations/key-codec.ts +3 -4
  413. package/src/runtime/locations/lease-tracker.ts +36 -27
  414. package/src/runtime/locations/lifecycle-runtime.ts +15 -3
  415. package/src/runtime/locations/lifecycle.ts +33 -28
  416. package/src/runtime/locations/location-store-repository.ts +1329 -1185
  417. package/src/runtime/locations/opaque-record-key.ts +4 -9
  418. package/src/runtime/locations/resolvers.ts +201 -178
  419. package/src/runtime/locations/runtime.ts +251 -159
  420. package/src/runtime/locations/spot-location-claims.ts +110 -112
  421. package/src/runtime/messaging/creation-payload-codec.ts +4 -1
  422. package/src/runtime/messaging/framework-json-v1.ts +34 -15
  423. package/src/runtime/messaging/packet-name.ts +8 -6
  424. package/src/runtime/messaging/payload-codec.ts +70 -50
  425. package/src/runtime/messaging/submission-result.ts +6 -9
  426. package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
  427. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  428. package/src/runtime/routing-id.ts +10 -7
  429. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
  430. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
  431. package/src/runtime/spots/index.ts +593 -563
  432. package/src/runtime/spots/spot-activation-registry.ts +38 -34
  433. package/src/runtime/spots/spot-activation-state.ts +43 -51
  434. package/src/runtime/spots/spot-activation.ts +179 -116
  435. package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
  436. package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
  437. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
  438. package/src/runtime/spots/spot-actor-membership.ts +25 -27
  439. package/src/runtime/spots/spot-actor-packet-dispatch.ts +184 -153
  440. package/src/runtime/spots/spot-actor-packet-drain.ts +54 -42
  441. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
  442. package/src/runtime/spots/spot-closing.ts +11 -12
  443. package/src/runtime/spots/spot-context.ts +46 -26
  444. package/src/runtime/spots/spot-entry-activation.ts +84 -65
  445. package/src/runtime/spots/spot-handle.ts +17 -15
  446. package/src/runtime/spots/spot-handler-registry.ts +44 -31
  447. package/src/runtime/spots/spot-location-claim.ts +5 -4
  448. package/src/runtime/spots/spot-manager-public.ts +62 -82
  449. package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
  450. package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
  451. package/src/runtime/spots/spot-node-runtime-manager.ts +230 -221
  452. package/src/runtime/spots/spot-outbound.ts +47 -59
  453. package/src/runtime/spots/spot-publisher-transport.ts +5 -4
  454. package/src/runtime/spots/spot-remote-codec.ts +66 -65
  455. package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
  456. package/src/runtime/spots/spot-route-packet-dispatch.ts +128 -95
  457. package/src/runtime/spots/spot-route-replies.ts +23 -24
  458. package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
  459. package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
  460. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +11 -17
  461. package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
  462. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
  463. package/src/runtime/spots/spot-routing-internal.ts +1 -4
  464. package/src/runtime/spots/spot-runtime-ports.ts +5 -5
  465. package/src/runtime/spots/spot-serial-executor.ts +5 -9
  466. package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
  467. package/src/runtime/spots/spot-subscription-dispatch.ts +56 -46
  468. package/src/runtime/spots/spot-timer.ts +98 -91
  469. package/src/runtime/streams/actor-session-binding-registry.ts +277 -235
  470. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +7 -4
  471. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
  472. package/src/runtime/streams/bound-actor-relay-sender.ts +53 -51
  473. package/src/runtime/streams/bound-session-response-target.ts +29 -8
  474. package/src/runtime/streams/bound-session-service.ts +39 -39
  475. package/src/runtime/streams/index.ts +176 -100
  476. package/src/runtime/streams/managed-stream.ts +98 -87
  477. package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
  478. package/src/runtime/streams/protocol.ts +73 -43
  479. package/src/runtime/streams/session-actor-coordinator.ts +97 -89
  480. package/src/runtime/streams/session-calls.ts +2 -8
  481. package/src/runtime/streams/session-context.ts +66 -48
  482. package/src/runtime/streams/session-provider.ts +5 -7
  483. package/src/runtime/streams/session-serial-executor.ts +7 -6
  484. package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
  485. package/src/runtime/streams/stream-frame-factory.ts +55 -38
  486. package/src/runtime/streams/stream-session-runtime.ts +268 -210
  487. package/src/runtime/workers/index.ts +68 -29
@@ -1,4 +1,7 @@
1
- import { ZLinkFrameworkInternalErrorKind, createInternalFrameworkException } from '../framework-errors-internal';
1
+ import {
2
+ ZLinkFrameworkInternalErrorKind,
3
+ createInternalFrameworkException
4
+ } from '../framework-errors-internal';
2
5
  import type {
3
6
  RoutingId,
4
7
  SpotId,
@@ -10,11 +13,7 @@ import type {
10
13
  ZLinkBoundSession,
11
14
  ZLinkBoundSessionSendCall
12
15
  } from '../../contracts';
13
- import {
14
- ZLinkEncodedPayload,
15
- ZLinkFrameworkException,
16
- ZLinkMessage
17
- } from '../../contracts';
16
+ import { ZLinkEncodedPayload, ZLinkFrameworkException, ZLinkMessage } from '../../contracts';
18
17
  import type { Message } from '../../contracts/Common/Message';
19
18
  import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
20
19
  import { type ZLinkMessageSerializer } from '../../contracts';
@@ -26,13 +25,8 @@ import {
26
25
  ZLinkDispatchErrorSurface,
27
26
  ZLinkDispatchMessageKind
28
27
  } from '../../contracts/Dispatch/ZLinkDispatchOptions';
29
- import {
30
- encodeFrameworkPayloadMessage
31
- } from '../messaging/payload-codec';
32
- import {
33
- ZLinkActorRuntimeState,
34
- toFrameworkActorRef
35
- } from './actor-runtime-state';
28
+ import { encodeFrameworkPayloadMessage } from '../messaging/payload-codec';
29
+ import { ZLinkActorRuntimeState, toFrameworkActorRef } from './actor-runtime-state';
36
30
  import type {
37
31
  ZLinkActorBoundSessionFactory,
38
32
  ZLinkActorJoinCoordinator
@@ -140,14 +134,16 @@ export class DefaultZLinkActorContext implements ZLinkActorContext {
140
134
  ): Promise<boolean> {
141
135
  const requestMessage = encodeJoinRequest(request, this.messageSerializers);
142
136
  try {
143
- return (await this.requireJoinCoordinator().joinEntrySpot(
144
- this.requireActor(),
145
- this.state,
146
- nodeRid,
147
- requestMessage,
148
- undefined,
149
- signal
150
- )).accepted;
137
+ return (
138
+ await this.requireJoinCoordinator().joinEntrySpot(
139
+ this.requireActor(),
140
+ this.state,
141
+ nodeRid,
142
+ requestMessage,
143
+ undefined,
144
+ signal
145
+ )
146
+ ).accepted;
151
147
  } finally {
152
148
  requestMessage.close();
153
149
  }
@@ -180,8 +176,7 @@ class DefaultZLinkActorJoinSpotCall implements ZLinkActorJoinSpotCall {
180
176
  private readonly spotId: SpotId,
181
177
  private readonly request: unknown,
182
178
  private readonly messageSerializers: ReadonlyMap<string, ZLinkMessageSerializer> | undefined
183
- ) {
184
- }
179
+ ) {}
185
180
 
186
181
  timeout(timeoutMs: number): this {
187
182
  this.timeoutMs = validateJoinTimeout(timeoutMs);
@@ -209,7 +204,8 @@ class DefaultZLinkActorJoinSpotCall implements ZLinkActorJoinSpotCall {
209
204
  const operationId = createJoinOperationId();
210
205
  let discarded = false;
211
206
  let prepared = false;
212
- let pendingJoin: Promise<import('./actor-runtime-contracts').ZLinkActorJoinRuntimeResult<Message>> | undefined;
207
+ let pendingJoin:
208
+ Promise<import('./actor-runtime-contracts').ZLinkActorJoinRuntimeResult<Message>> | undefined;
213
209
  const discard = async (): Promise<void> => {
214
210
  if (discarded) return;
215
211
  discarded = true;
@@ -252,50 +248,53 @@ class DefaultZLinkActorJoinSpotCall implements ZLinkActorJoinSpotCall {
252
248
  },
253
249
  discard,
254
250
  execute: async () => {
255
- let result: import('./actor-runtime-contracts').ZLinkActorJoinRuntimeResult<Message>;
256
- try {
257
- const pending = pendingJoin ?? this.coordinator.joinSpot(
258
- this.actor,
259
- this.state,
260
- this.spotId,
261
- requestMessage,
262
- remainingJoinTimeout(deadline.atMs),
263
- deadline.signal,
264
- operationId
265
- );
266
- result = this.turn === undefined
267
- ? await pending
268
- : await this.turn.yieldFrameworkPromise(pending);
269
- } catch (error) {
270
- this.state.endDeferredJoin();
271
- await this.coordinator.abortDeferredJoin?.(this.actor, this.state, operationId)
272
- .catch(() => undefined);
273
- await notifyJoinFailure(this.actor, operationId, error, this.coordinator);
274
- return;
275
- } finally {
276
- deadline.close();
277
- requestMessage.close();
278
- }
279
- if (
280
- !result.accepted
281
- || sourceNodeRid === undefined
282
- || result.actor === undefined
283
- || String(sourceNodeRid) === String(result.actor.nodeRid)
284
- ) {
285
- await notifyJoinCompletion(
286
- this.actor, operationId, result, this.messageSerializers);
287
- } else {
288
- result.reply?.close();
289
- }
290
- const finalization = result.finalizeDeferredJoin?.();
291
- if (finalization !== undefined) {
292
- // Releasing a rejected provisional handoff can enqueue source
293
- // backlog behind this same Spot turn. Yield the lifecycle boundary
294
- // so replay can run without overtaking the completion callback.
295
- await (this.turn === undefined
296
- ? finalization
297
- : this.turn.yieldFrameworkPromise(finalization));
298
- }
251
+ let result: import('./actor-runtime-contracts').ZLinkActorJoinRuntimeResult<Message>;
252
+ try {
253
+ const pending =
254
+ pendingJoin ??
255
+ this.coordinator.joinSpot(
256
+ this.actor,
257
+ this.state,
258
+ this.spotId,
259
+ requestMessage,
260
+ remainingJoinTimeout(deadline.atMs),
261
+ deadline.signal,
262
+ operationId
263
+ );
264
+ result =
265
+ this.turn === undefined
266
+ ? await pending
267
+ : await this.turn.yieldFrameworkPromise(pending);
268
+ } catch (error) {
269
+ this.state.endDeferredJoin();
270
+ await this.coordinator
271
+ .abortDeferredJoin?.(this.actor, this.state, operationId)
272
+ .catch(() => undefined);
273
+ await notifyJoinFailure(this.actor, operationId, error, this.coordinator);
274
+ return;
275
+ } finally {
276
+ deadline.close();
277
+ requestMessage.close();
278
+ }
279
+ if (
280
+ !result.accepted ||
281
+ sourceNodeRid === undefined ||
282
+ result.actor === undefined ||
283
+ String(sourceNodeRid) === String(result.actor.nodeRid)
284
+ ) {
285
+ await notifyJoinCompletion(this.actor, operationId, result, this.messageSerializers);
286
+ } else {
287
+ result.reply?.close();
288
+ }
289
+ const finalization = result.finalizeDeferredJoin?.();
290
+ if (finalization !== undefined) {
291
+ // Releasing a rejected provisional handoff can enqueue source
292
+ // backlog behind this same Spot turn. Yield the lifecycle boundary
293
+ // so replay can run without overtaking the completion callback.
294
+ await (this.turn === undefined
295
+ ? finalization
296
+ : this.turn.yieldFrameworkPromise(finalization));
297
+ }
299
298
  }
300
299
  });
301
300
  } catch (error) {
@@ -316,8 +315,7 @@ class DefaultZLinkActorJoinEntrySpotCall implements ZLinkActorJoinEntrySpotCall
316
315
  private readonly coordinator: ZLinkActorJoinCoordinator,
317
316
  private readonly request: unknown,
318
317
  private readonly messageSerializers: ReadonlyMap<string, ZLinkMessageSerializer> | undefined
319
- ) {
320
- }
318
+ ) {}
321
319
 
322
320
  timeout(timeoutMs: number): this {
323
321
  this.timeoutMs = validateJoinTimeout(timeoutMs);
@@ -345,7 +343,8 @@ class DefaultZLinkActorJoinEntrySpotCall implements ZLinkActorJoinEntrySpotCall
345
343
  const operationId = createJoinOperationId();
346
344
  let discarded = false;
347
345
  let prepared = false;
348
- let pendingJoin: Promise<import('./actor-runtime-contracts').ZLinkActorJoinRuntimeResult<Message>> | undefined;
346
+ let pendingJoin:
347
+ Promise<import('./actor-runtime-contracts').ZLinkActorJoinRuntimeResult<Message>> | undefined;
349
348
  const discard = async (): Promise<void> => {
350
349
  if (discarded) return;
351
350
  discarded = true;
@@ -385,47 +384,50 @@ class DefaultZLinkActorJoinEntrySpotCall implements ZLinkActorJoinEntrySpotCall
385
384
  },
386
385
  discard,
387
386
  execute: async () => {
388
- let result: import('./actor-runtime-contracts').ZLinkActorJoinRuntimeResult<Message>;
389
- try {
390
- const pending = pendingJoin ?? this.coordinator.joinEntrySpot(
391
- this.actor,
392
- this.state,
393
- undefined,
394
- requestMessage,
395
- remainingJoinTimeout(deadline.atMs),
396
- deadline.signal,
397
- operationId
398
- );
399
- result = this.turn === undefined
400
- ? await pending
401
- : await this.turn.yieldFrameworkPromise(pending);
402
- } catch (error) {
403
- this.state.endDeferredJoin();
404
- await this.coordinator.abortDeferredJoin?.(this.actor, this.state, operationId)
405
- .catch(() => undefined);
406
- await notifyJoinFailure(this.actor, operationId, error, this.coordinator);
407
- return;
408
- } finally {
409
- deadline.close();
410
- requestMessage.close();
411
- }
412
- if (
413
- !result.accepted
414
- || sourceNodeRid === undefined
415
- || result.actor === undefined
416
- || String(sourceNodeRid) === String(result.actor.nodeRid)
417
- ) {
418
- await notifyJoinCompletion(
419
- this.actor, operationId, result, this.messageSerializers);
420
- } else {
421
- result.reply?.close();
422
- }
423
- const finalization = result.finalizeDeferredJoin?.();
424
- if (finalization !== undefined) {
425
- await (this.turn === undefined
426
- ? finalization
427
- : this.turn.yieldFrameworkPromise(finalization));
428
- }
387
+ let result: import('./actor-runtime-contracts').ZLinkActorJoinRuntimeResult<Message>;
388
+ try {
389
+ const pending =
390
+ pendingJoin ??
391
+ this.coordinator.joinEntrySpot(
392
+ this.actor,
393
+ this.state,
394
+ undefined,
395
+ requestMessage,
396
+ remainingJoinTimeout(deadline.atMs),
397
+ deadline.signal,
398
+ operationId
399
+ );
400
+ result =
401
+ this.turn === undefined
402
+ ? await pending
403
+ : await this.turn.yieldFrameworkPromise(pending);
404
+ } catch (error) {
405
+ this.state.endDeferredJoin();
406
+ await this.coordinator
407
+ .abortDeferredJoin?.(this.actor, this.state, operationId)
408
+ .catch(() => undefined);
409
+ await notifyJoinFailure(this.actor, operationId, error, this.coordinator);
410
+ return;
411
+ } finally {
412
+ deadline.close();
413
+ requestMessage.close();
414
+ }
415
+ if (
416
+ !result.accepted ||
417
+ sourceNodeRid === undefined ||
418
+ result.actor === undefined ||
419
+ String(sourceNodeRid) === String(result.actor.nodeRid)
420
+ ) {
421
+ await notifyJoinCompletion(this.actor, operationId, result, this.messageSerializers);
422
+ } else {
423
+ result.reply?.close();
424
+ }
425
+ const finalization = result.finalizeDeferredJoin?.();
426
+ if (finalization !== undefined) {
427
+ await (this.turn === undefined
428
+ ? finalization
429
+ : this.turn.yieldFrameworkPromise(finalization));
430
+ }
429
431
  }
430
432
  });
431
433
  } catch (error) {
@@ -516,11 +518,17 @@ function createDeferredJoinDeadline(timeoutMs: number): {
516
518
  } {
517
519
  const controller = new AbortController();
518
520
  const atMs = performance.now() + timeoutMs;
519
- const timer = setTimeout(() => controller.abort(createInternalFrameworkException(
520
- ZLinkFrameworkInternalErrorKind.DeadlineExceeded,
521
- 'Deferred Actor join exceeded its absolute deadline.',
522
- true
523
- )), timeoutMs);
521
+ const timer = setTimeout(
522
+ () =>
523
+ controller.abort(
524
+ createInternalFrameworkException(
525
+ ZLinkFrameworkInternalErrorKind.DeadlineExceeded,
526
+ 'Deferred Actor join exceeded its absolute deadline.',
527
+ true
528
+ )
529
+ ),
530
+ timeoutMs
531
+ );
524
532
  return {
525
533
  atMs,
526
534
  signal: controller.signal,
@@ -539,11 +547,10 @@ async function notifyJoinCompletion(
539
547
  _messageSerializers: ReadonlyMap<string, ZLinkMessageSerializer> | undefined
540
548
  ): Promise<void> {
541
549
  // The completion preserves the encoded reply without exposing serializer selection.
542
- const reply = result.reply === undefined
543
- ? undefined
544
- : ZLinkMessage.fromEncoded(
545
- ZLinkEncodedPayload.from(result.reply.data())
546
- );
550
+ const reply =
551
+ result.reply === undefined
552
+ ? undefined
553
+ : ZLinkMessage.fromEncoded(ZLinkEncodedPayload.from(result.reply.data()));
547
554
  result.reply?.close();
548
555
  // `reply`는 계약상 선택 항목이라 없을 때는 key 자체를 만들지 않는다.
549
556
  const replyField = reply === undefined ? {} : { reply };
@@ -569,14 +576,15 @@ async function notifyJoinFailure(
569
576
  coordinator?: ZLinkActorJoinCoordinator
570
577
  ): Promise<void> {
571
578
  console.error(`actor join failure actor=${actor.context.actorId}`, error);
572
- const frameworkError = error instanceof ZLinkFrameworkException
573
- ? error
574
- : createInternalFrameworkException(
575
- ZLinkFrameworkInternalErrorKind.RequestFailed,
576
- 'Deferred actor join failed.',
577
- false,
578
- error
579
- );
579
+ const frameworkError =
580
+ error instanceof ZLinkFrameworkException
581
+ ? error
582
+ : createInternalFrameworkException(
583
+ ZLinkFrameworkInternalErrorKind.RequestFailed,
584
+ 'Deferred actor join failed.',
585
+ false,
586
+ error
587
+ );
580
588
  // The completion carries only an error kind, so trace the cause on the
581
589
  // message flow under the same flow id as the Join that produced it.
582
590
  const tracePoint = coordinator?.messageFlow?.()?.begin(ZLinkMessageFlowOutcome.Error);
@@ -1,15 +1,16 @@
1
- import { ZLinkFrameworkInternalErrorKind, createInternalFrameworkException } from '../framework-errors-internal';
1
+ import {
2
+ ZLinkFrameworkInternalErrorKind,
3
+ createInternalFrameworkException
4
+ } from '../framework-errors-internal';
2
5
  import type {
3
6
  RoutingId,
4
7
  Type,
5
8
  ZLinkActor,
6
9
  ZLinkActorCreateResponse,
7
- ZLinkActorFactory,
10
+ ZLinkActorFactory
8
11
  } from '../../contracts';
9
12
  import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
10
- import {
11
- ZLinkMessage
12
- } from '../../contracts';
13
+ import { ZLinkMessage } from '../../contracts';
13
14
  import type { Message } from '../../contracts/Common/Message';
14
15
  import { ZLinkConfigurationException } from '../configuration';
15
16
  import { DefaultZLinkActorContext } from './actor-context';
@@ -54,14 +55,7 @@ export class ZLinkActorCreationCoordinator {
54
55
  this.options.actorDestroyedCleanup?.(actorId);
55
56
  state.clearAfterDestroy();
56
57
  },
57
- () => this.createActorAfterClaim(
58
- actorId,
59
- actorType,
60
- state,
61
- createRequest,
62
- true,
63
- signal
64
- )
58
+ () => this.createActorAfterClaim(actorId, actorType, state, createRequest, true, signal)
65
59
  );
66
60
  if (activation.activated !== undefined) {
67
61
  if (activation.activated.status !== 'created') {
@@ -102,18 +96,22 @@ export class ZLinkActorCreationCoordinator {
102
96
  restore: ((actor: ZLinkActor) => Promise<void>) | undefined
103
97
  ): Promise<ZLinkActorCreationAttemptResult> {
104
98
  void actorId;
105
- const context = state.ensureContext(() => new DefaultZLinkActorContext(
106
- state,
107
- this.options.joinCoordinator,
108
- this.options.boundSessionFactory,
109
- this.options.messageSerializers,
110
- this.options.actorMeshNameProvider
111
- ));
99
+ const context = state.ensureContext(
100
+ () =>
101
+ new DefaultZLinkActorContext(
102
+ state,
103
+ this.options.joinCoordinator,
104
+ this.options.boundSessionFactory,
105
+ this.options.messageSerializers,
106
+ this.options.actorMeshNameProvider
107
+ )
108
+ );
112
109
  const actor = await (await this.createFactory(actorType)).create(context);
113
110
  attachTransferredActorContext(actor, context);
114
111
  await restore?.(actor);
115
112
  state.bindActor(actor, context);
116
- const nativeActorNode = this.options.nativeActorNode ?? this.options.nativeActorNodeProvider?.();
113
+ const nativeActorNode =
114
+ this.options.nativeActorNode ?? this.options.nativeActorNodeProvider?.();
117
115
  if (nativeActorNode !== undefined) {
118
116
  state.ensureNativeActorRef(nativeActorNode);
119
117
  }
@@ -129,14 +127,18 @@ export class ZLinkActorCreationCoordinator {
129
127
  signal?: AbortSignal
130
128
  ): Promise<ZLinkActorCreationAttemptResult> {
131
129
  const factory = await this.createFactory(actorType);
132
- const context = state.ensureContext(() => new DefaultZLinkActorContext(
133
- state,
134
- this.options.joinCoordinator,
135
- this.options.boundSessionFactory,
136
- this.options.messageSerializers,
137
- this.options.actorMeshNameProvider
138
- ));
139
- const nativeActorNode = this.options.nativeActorNode ?? this.options.nativeActorNodeProvider?.();
130
+ const context = state.ensureContext(
131
+ () =>
132
+ new DefaultZLinkActorContext(
133
+ state,
134
+ this.options.joinCoordinator,
135
+ this.options.boundSessionFactory,
136
+ this.options.messageSerializers,
137
+ this.options.actorMeshNameProvider
138
+ )
139
+ );
140
+ const nativeActorNode =
141
+ this.options.nativeActorNode ?? this.options.nativeActorNodeProvider?.();
140
142
  let actor: ZLinkActor;
141
143
  try {
142
144
  actor = await factory.create(context, signal);
@@ -154,9 +156,7 @@ export class ZLinkActorCreationCoordinator {
154
156
  }
155
157
  meshName = state.meshName ?? '';
156
158
  if (meshName.length === 0 && state.nativeActorRef === undefined) {
157
- throw new ZLinkConfigurationException(
158
- `Actor '${actorId}' has no RouteMesh identity.`
159
- );
159
+ throw new ZLinkConfigurationException(`Actor '${actorId}' has no RouteMesh identity.`);
160
160
  }
161
161
  if (nativeActorNode !== undefined) {
162
162
  const actorRef = state.ensureNativeActorRef(nativeActorNode, createRequest.nativeRequest);
@@ -171,14 +171,15 @@ export class ZLinkActorCreationCoordinator {
171
171
 
172
172
  let response: ZLinkActorCreateResponse;
173
173
  try {
174
- response = nodeRid === undefined
175
- ? { accepted: true }
176
- : await this.options.actorCreatedNotifier?.(
177
- nodeRid,
178
- actor,
179
- createRequest.callbackRequest,
180
- signal
181
- ) ?? { accepted: true };
174
+ response =
175
+ nodeRid === undefined
176
+ ? { accepted: true }
177
+ : ((await this.options.actorCreatedNotifier?.(
178
+ nodeRid,
179
+ actor,
180
+ createRequest.callbackRequest,
181
+ signal
182
+ )) ?? { accepted: true });
182
183
  } catch (error) {
183
184
  await this.discardStagingActor(state, nativeActorNode);
184
185
  return { status: 'failed', error };
@@ -233,10 +234,12 @@ export class ZLinkActorCreationCoordinator {
233
234
  }
234
235
 
235
236
  private resolveLocationNodeRid(): RoutingId {
236
- const nativeActorNode = this.options.nativeActorNode ?? this.options.nativeActorNodeProvider?.();
237
- const nodeRid = nativeActorNode === undefined
238
- ? this.options.actorCreatedNodeRidProvider?.()
239
- : toFrameworkRoutingId(nativeActorNode.status().routingId as never);
237
+ const nativeActorNode =
238
+ this.options.nativeActorNode ?? this.options.nativeActorNodeProvider?.();
239
+ const nodeRid =
240
+ nativeActorNode === undefined
241
+ ? this.options.actorCreatedNodeRidProvider?.()
242
+ : toFrameworkRoutingId(nativeActorNode.status().routingId as never);
240
243
  if (nodeRid === undefined) {
241
244
  throw new ZLinkConfigurationException('Location actor claim requires a node routing id.');
242
245
  }
@@ -27,10 +27,12 @@ export async function runZLinkActorExecution<T>(
27
27
  });
28
28
  }
29
29
 
30
- export function currentZLinkActorExecution(): Readonly<{
31
- actorId: string;
32
- spotId?: unknown;
33
- }> | undefined {
30
+ export function currentZLinkActorExecution():
31
+ | Readonly<{
32
+ actorId: string;
33
+ spotId?: unknown;
34
+ }>
35
+ | undefined {
34
36
  const context = actorExecutionStorage.getStore();
35
37
  return context?.active === true
36
38
  ? { actorId: context.actorId, spotId: context.spotId }