@zlink-systems/framework 0.20.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
@@ -40,16 +40,13 @@ export function wrapSocket<T extends { close(): void }>(
40
40
  };
41
41
  };
42
42
  const hasRequest = typeof (nativeInstance as { request?: unknown }).request === 'function';
43
- const hasRoutedPeer = hasRequest
44
- && typeof (nativeInstance as { reply?: unknown }).reply === 'function';
43
+ const hasRoutedPeer =
44
+ hasRequest && typeof (nativeInstance as { reply?: unknown }).reply === 'function';
45
45
  const hasStream = typeof (nativeInstance as { recvPacket?: unknown }).recvPacket === 'function';
46
- const eventLoopPoller = pollCompletion === undefined
47
- ? undefined
48
- : new ZLinkNodeEventLoopPoller(
49
- nativeInstance as unknown as Socket,
50
- pollCompletion,
51
- () => {}
52
- );
46
+ const eventLoopPoller =
47
+ pollCompletion === undefined
48
+ ? undefined
49
+ : new ZLinkNodeEventLoopPoller(nativeInstance as unknown as Socket, pollCompletion, () => {});
53
50
  const adapter = {
54
51
  nativeInstance,
55
52
  async dispose(): Promise<void> {
@@ -74,20 +71,24 @@ export function wrapSocket<T extends { close(): void }>(
74
71
  (nativeInstance as T & { disconnect(endpoint: string): void }).disconnect(endpoint);
75
72
  },
76
73
  setChannelName(channelName: string): void {
77
- const setChannelName = (nativeInstance as T & { setChannelName?: (value: string) => void }).setChannelName;
74
+ const setChannelName = (nativeInstance as T & { setChannelName?: (value: string) => void })
75
+ .setChannelName;
78
76
  setChannelName?.call(nativeInstance, channelName);
79
77
  },
80
78
  setReceiveFlowState(state: 0 | 1): void {
81
- (nativeInstance as T & { setReceiveFlowState(value: 0 | 1): void })
82
- .setReceiveFlowState(state);
79
+ (nativeInstance as T & { setReceiveFlowState(value: 0 | 1): void }).setReceiveFlowState(
80
+ state
81
+ );
83
82
  },
84
83
  setProbe(enabled: boolean): void {
85
84
  requireSocketOptions(socket).probe = enabled;
86
85
  },
87
86
  setTlsServer(cert: string, key: string, requireClientCert?: boolean): void {
88
- (nativeInstance as T & {
89
- setTlsServer(cert: string, key: string, requireClientCert?: boolean): void;
90
- }).setTlsServer(cert, key, requireClientCert);
87
+ (
88
+ nativeInstance as T & {
89
+ setTlsServer(cert: string, key: string, requireClientCert?: boolean): void;
90
+ }
91
+ ).setTlsServer(cert, key, requireClientCert);
91
92
  },
92
93
  setSubscription(topic: string): void {
93
94
  (nativeInstance as T & { setSubscription(topic: string): void }).setSubscription(topic);
@@ -96,15 +97,21 @@ export function wrapSocket<T extends { close(): void }>(
96
97
  (nativeInstance as T & { unsetSubscription(topic: string): void }).unsetSubscription(topic);
97
98
  },
98
99
  subscribe(result: unknown, flags?: number): boolean {
99
- return Boolean((nativeInstance as T & {
100
- subscribe(result: unknown, flags?: number): boolean;
101
- }).subscribe(result, flags));
100
+ return Boolean(
101
+ (
102
+ nativeInstance as T & {
103
+ subscribe(result: unknown, flags?: number): boolean;
104
+ }
105
+ ).subscribe(result, flags)
106
+ );
102
107
  },
103
108
  get lastEndpoint(): string | undefined {
104
109
  return socket.options?.lastEndpoint;
105
110
  },
106
111
  setRoutingId(routingId: unknown): void {
107
- (nativeInstance as T & { setRoutingId(value: unknown): void }).setRoutingId(toNativeRoutingId(routingId));
112
+ (nativeInstance as T & { setRoutingId(value: unknown): void }).setRoutingId(
113
+ toNativeRoutingId(routingId)
114
+ );
108
115
  },
109
116
  get peerWeight(): number {
110
117
  return socket.options?.peerWeight ?? 100;
@@ -151,17 +158,20 @@ export function wrapSocket<T extends { close(): void }>(
151
158
  send(...args: unknown[]): unknown {
152
159
  if (hasStream) {
153
160
  const [routingId, payload] = args as [unknown, unknown];
154
- const operation = (nativeInstance as T & {
155
- send(routingId: unknown): ZLinkBindingAsyncSendOperation;
156
- }).send(toNativeRoutingId(routingId));
161
+ const operation = (
162
+ nativeInstance as T & {
163
+ send(routingId: unknown): ZLinkBindingAsyncSendOperation;
164
+ }
165
+ ).send(toNativeRoutingId(routingId));
157
166
  submitBindingSyncSend(operation, payload);
158
167
  return true;
159
168
  }
160
169
  if (hasRoutedPeer) {
161
170
  const [routingId, payload] = args as [unknown, unknown];
162
171
  return submitBindingAsyncSend(
163
- (nativeInstance as T & { send(routingId: unknown): ZLinkBindingAsyncSendOperation })
164
- .send(toNativeRoutingId(routingId)),
172
+ (nativeInstance as T & { send(routingId: unknown): ZLinkBindingAsyncSendOperation }).send(
173
+ toNativeRoutingId(routingId)
174
+ ),
165
175
  payload
166
176
  );
167
177
  }
@@ -172,9 +182,11 @@ export function wrapSocket<T extends { close(): void }>(
172
182
  payload
173
183
  );
174
184
  }
175
- const operation = (nativeInstance as T & {
176
- send(): ZLinkBindingAsyncSendOperation;
177
- }).send();
185
+ const operation = (
186
+ nativeInstance as T & {
187
+ send(): ZLinkBindingAsyncSendOperation;
188
+ }
189
+ ).send();
178
190
  if ((flags ?? zlink.SendFlags.None) === zlink.SendFlags.DontWait) {
179
191
  submitBindingSyncSend(operation, payload);
180
192
  return true;
@@ -184,8 +196,9 @@ export function wrapSocket<T extends { close(): void }>(
184
196
  submit(routingId: unknown, payload: unknown, _timeoutMs?: number): Promise<void> {
185
197
  if (!hasStream) throw new TypeError('Async stream send requires a STREAM socket.');
186
198
  return submitBindingAsyncSend(
187
- (nativeInstance as T & { send(routingId: unknown): ZLinkBindingAsyncSendOperation })
188
- .send(toNativeRoutingId(routingId)),
199
+ (nativeInstance as T & { send(routingId: unknown): ZLinkBindingAsyncSendOperation }).send(
200
+ toNativeRoutingId(routingId)
201
+ ),
189
202
  payload
190
203
  );
191
204
  },
@@ -193,8 +206,9 @@ export function wrapSocket<T extends { close(): void }>(
193
206
  if (hasRoutedPeer) {
194
207
  const [routingId, payload, timeoutMs] = args as [unknown, unknown, number | undefined];
195
208
  return submitBindingRequest(
196
- (nativeInstance as T & { request(routingId: unknown): ZLinkBindingRequestOperation })
197
- .request(toNativeRoutingId(routingId)),
209
+ (
210
+ nativeInstance as T & { request(routingId: unknown): ZLinkBindingRequestOperation }
211
+ ).request(toNativeRoutingId(routingId)),
198
212
  payload,
199
213
  timeoutMs
200
214
  );
@@ -211,18 +225,22 @@ export function wrapSocket<T extends { close(): void }>(
211
225
  },
212
226
  reply(...args: unknown[]): unknown {
213
227
  const [routingId, replyToken, payload] = args as [unknown, unknown, unknown];
214
- const operation = (nativeInstance as T & {
215
- reply(routingId: unknown, replyToken: unknown): ZLinkBindingReplyOperation;
216
- }).reply(toNativeRoutingId(routingId), replyToken);
228
+ const operation = (
229
+ nativeInstance as T & {
230
+ reply(routingId: unknown, replyToken: unknown): ZLinkBindingReplyOperation;
231
+ }
232
+ ).reply(toNativeRoutingId(routingId), replyToken);
217
233
  return args.length < 3 ? operation : submitBindingReply(operation, payload);
218
234
  },
219
235
  recv(flags?: number): unknown {
220
236
  const received = new zlink.Received();
221
237
  let ok = false;
222
238
  try {
223
- ok = (nativeInstance as T & {
224
- recv(result: unknown, flags?: number): boolean;
225
- }).recv(received, flags);
239
+ ok = (
240
+ nativeInstance as T & {
241
+ recv(result: unknown, flags?: number): boolean;
242
+ }
243
+ ).recv(received, flags);
226
244
  } catch (error) {
227
245
  received.close();
228
246
  if (isRouteRecvRetryable(error)) {
@@ -239,9 +257,11 @@ export function wrapSocket<T extends { close(): void }>(
239
257
  recvPacket(packet: unknown, flags?: number): boolean {
240
258
  if (!hasStream) throw new TypeError('Packet receive requires a STREAM socket.');
241
259
  try {
242
- return (nativeInstance as T & {
243
- recvPacket(result: unknown, flags?: number): boolean;
244
- }).recvPacket(packet, flags);
260
+ return (
261
+ nativeInstance as T & {
262
+ recvPacket(result: unknown, flags?: number): boolean;
263
+ }
264
+ ).recvPacket(packet, flags);
245
265
  } catch (error) {
246
266
  if (isRouteRecvRetryable(error)) return false;
247
267
  throw error;
@@ -251,7 +271,9 @@ export function wrapSocket<T extends { close(): void }>(
251
271
  if (args.length >= 2) {
252
272
  const [topic, payload] = args as [string, unknown];
253
273
  submitBindingPublish(
254
- (nativeInstance as T & { publish(topic: string): ZLinkBindingPublishOperation }).publish(topic),
274
+ (nativeInstance as T & { publish(topic: string): ZLinkBindingPublishOperation }).publish(
275
+ topic
276
+ ),
255
277
  payload
256
278
  );
257
279
  return;
@@ -264,9 +286,11 @@ export function wrapSocket<T extends { close(): void }>(
264
286
  payload: unknown,
265
287
  _flags?: number
266
288
  ): Promise<void> {
267
- const operation = (nativeInstance as T & {
268
- sendToSpot(targetRid: unknown, targetSpot: unknown): ZLinkBindingAsyncSendOperation;
269
- }).sendToSpot(toNativeRoutingId(targetRid), toNativeRoutingId(targetSpot));
289
+ const operation = (
290
+ nativeInstance as T & {
291
+ sendToSpot(targetRid: unknown, targetSpot: unknown): ZLinkBindingAsyncSendOperation;
292
+ }
293
+ ).sendToSpot(toNativeRoutingId(targetRid), toNativeRoutingId(targetSpot));
270
294
  await submitBindingAsyncSend(operation, payload);
271
295
  },
272
296
  requestToSpot(
@@ -276,27 +300,47 @@ export function wrapSocket<T extends { close(): void }>(
276
300
  timeoutMs?: number
277
301
  ): Promise<readonly unknown[]> {
278
302
  return submitBindingRequest(
279
- (nativeInstance as T & {
280
- requestToSpot(targetRid: unknown, targetSpot: unknown): ZLinkBindingRequestOperation;
281
- }).requestToSpot(toNativeRoutingId(targetRid), toNativeRoutingId(targetSpot)),
303
+ (
304
+ nativeInstance as T & {
305
+ requestToSpot(targetRid: unknown, targetSpot: unknown): ZLinkBindingRequestOperation;
306
+ }
307
+ ).requestToSpot(toNativeRoutingId(targetRid), toNativeRoutingId(targetSpot)),
282
308
  payload,
283
309
  timeoutMs
284
310
  );
285
311
  },
286
312
  disconnectPeer(routingId: unknown): void {
287
- disconnectStreamPeer(nativeInstance as T & { disconnectRid(value: unknown): void }, routingId);
313
+ disconnectStreamPeer(
314
+ nativeInstance as T & { disconnectRid(value: unknown): void },
315
+ routingId
316
+ );
288
317
  },
289
- async bindActor(_sessionRid: unknown, _actor: unknown, _timeoutMs: number, _signal?: AbortSignal): Promise<void> {
318
+ async bindActor(
319
+ _sessionRid: unknown,
320
+ _actor: unknown,
321
+ _timeoutMs: number,
322
+ _signal?: AbortSignal
323
+ ): Promise<void> {
290
324
  throw new Error(
291
325
  'Session Actor dispatch requires enableActorDispatch() and a Framework MeshNode service route.'
292
326
  );
293
327
  },
294
- async unbindActor(_sessionRid: unknown, _actorId: string, _timeoutMs: number, _signal?: AbortSignal): Promise<void> {
328
+ async unbindActor(
329
+ _sessionRid: unknown,
330
+ _actorId: string,
331
+ _timeoutMs: number,
332
+ _signal?: AbortSignal
333
+ ): Promise<void> {
295
334
  throw new Error(
296
335
  'Session Actor dispatch requires enableActorDispatch() and a Framework MeshNode service route.'
297
336
  );
298
337
  },
299
- sendBoundActor(_sessionRid: unknown, _actorId: string, _parts: readonly unknown[], _flags: number): boolean {
338
+ sendBoundActor(
339
+ _sessionRid: unknown,
340
+ _actorId: string,
341
+ _parts: readonly unknown[],
342
+ _flags: number
343
+ ): boolean {
300
344
  return false;
301
345
  }
302
346
  };
@@ -333,8 +377,11 @@ function requireSocketOptions<TOptions>(socket: { readonly options?: TOptions })
333
377
  }
334
378
 
335
379
  export function isEndpointCloseIgnorableError(error: unknown): boolean {
336
- return isContextTerminatedError(error) || (
337
- error instanceof Error && 'code' in error &&
338
- ((error as { code: unknown }).code === 604 || (error as { code: unknown }).code === zlink.ConnectResult.NotFound)
380
+ return (
381
+ isContextTerminatedError(error) ||
382
+ (error instanceof Error &&
383
+ 'code' in error &&
384
+ ((error as { code: unknown }).code === 604 ||
385
+ (error as { code: unknown }).code === zlink.ConnectResult.NotFound))
339
386
  );
340
387
  }
@@ -45,7 +45,9 @@ export class ZLinkBufferMessage implements Message {
45
45
  }
46
46
 
47
47
  function isMessage(value: unknown): value is Message {
48
- return typeof value === 'object'
49
- && value !== null
50
- && typeof (value as { data?: unknown }).data === 'function';
48
+ return (
49
+ typeof value === 'object' &&
50
+ value !== null &&
51
+ typeof (value as { data?: unknown }).data === 'function'
52
+ );
51
53
  }
@@ -16,7 +16,7 @@ export const RequestResult = Object.freeze({
16
16
  NotSupported: 112,
17
17
  Backpressured: 113
18
18
  } as const);
19
- export type RequestResult = typeof RequestResult[keyof typeof RequestResult];
19
+ export type RequestResult = (typeof RequestResult)[keyof typeof RequestResult];
20
20
 
21
21
  export const SubmitResult = Object.freeze({
22
22
  Ok: 0,
@@ -34,7 +34,7 @@ export const SubmitResult = Object.freeze({
34
34
  InternalError: 12,
35
35
  NotAdmitted: 13
36
36
  } as const);
37
- export type SubmitResult = typeof SubmitResult[keyof typeof SubmitResult];
37
+ export type SubmitResult = (typeof SubmitResult)[keyof typeof SubmitResult];
38
38
 
39
39
  export type ZLinkBackendSendFlags = number;
40
40
  export type ZLinkBackendRecvFlags = number;
@@ -59,8 +59,9 @@ export function isZLinkBackendResultError(error: unknown): error is ZLinkBackend
59
59
 
60
60
  export function isBackendNotConnectedError(error: unknown): boolean {
61
61
  if (isZLinkBackendResultError(error)) {
62
- return error.result === SubmitResult.NotConnected
63
- || error.result === RequestResult.NotConnected;
62
+ return (
63
+ error.result === SubmitResult.NotConnected || error.result === RequestResult.NotConnected
64
+ );
64
65
  }
65
66
  if (typeof error !== 'object' || error === null || !('result' in error)) {
66
67
  return false;
@@ -70,9 +71,11 @@ export function isBackendNotConnectedError(error: unknown): boolean {
70
71
  }
71
72
 
72
73
  export function isBackendRequestTimeoutError(error: unknown): boolean {
73
- return isZLinkBackendResultError(error)
74
- && error.operation === 'request'
75
- && error.result === RequestResult.TimedOut;
74
+ return (
75
+ isZLinkBackendResultError(error) &&
76
+ error.operation === 'request' &&
77
+ error.result === RequestResult.TimedOut
78
+ );
76
79
  }
77
80
  export type ZLinkBackendMessageLike = Message | Buffer | Uint8Array | string;
78
81
  /** Binding의 SendSubmission과 구조적으로 호환된다. binding 타입을 import 하지 않는다. */
@@ -1,9 +1,6 @@
1
1
  import type { ZLinkLocationOptionOverrides } from '../../contracts/Locations/Options';
2
2
  import type { ZLinkDomainLocationStore as ZLinkLocationStore } from '../locations/domain-store-contract';
3
- import type {
4
- ZLinkLocationEventSink,
5
- ZLinkLocationRuntimeStores
6
- } from '../locations';
3
+ import type { ZLinkLocationEventSink, ZLinkLocationRuntimeStores } from '../locations';
7
4
  import {
8
5
  ZLinkLocationRuntime,
9
6
  ZLinkOwnerLeaseTracker,
@@ -11,10 +11,7 @@ import type {
11
11
  ZLinkSpotPublisherClient
12
12
  } from '../../contracts';
13
13
  import type { SpotHandle } from '../spots/spot-handle';
14
- import {
15
- ZLinkConfigurationException,
16
- type ZLinkFrameworkRegistration
17
- } from '../configuration';
14
+ import { ZLinkConfigurationException, type ZLinkFrameworkRegistration } from '../configuration';
18
15
  import {
19
16
  ZLinkFrameworkInternalErrorKind,
20
17
  createInternalFrameworkException
@@ -56,13 +53,9 @@ export class DefaultZLinkChannelClient implements ZLinkChannelClient {
56
53
  return new DefaultZLinkSendCall(
57
54
  () => this.requireChannel(channelName),
58
55
  async (packetName, metadata, signal) =>
59
- normalizeSubmitResult(await this.requireTransport().send(
60
- channelName,
61
- packetName,
62
- message,
63
- signal,
64
- metadata
65
- ))
56
+ normalizeSubmitResult(
57
+ await this.requireTransport().send(channelName, packetName, message, signal, metadata)
58
+ )
66
59
  );
67
60
  }
68
61
 
@@ -83,9 +76,11 @@ export class DefaultZLinkChannelClient implements ZLinkChannelClient {
83
76
  }
84
77
 
85
78
  private defaultRequestTimeout(channelName: string): number {
86
- return this.registration.channels.get(channelName)?.requestTimeoutMs
87
- ?? this.registration.requestTimeoutMs
88
- ?? 30_000;
79
+ return (
80
+ this.registration.channels.get(channelName)?.requestTimeoutMs ??
81
+ this.registration.requestTimeoutMs ??
82
+ 30_000
83
+ );
89
84
  }
90
85
 
91
86
  private requireChannel(channelName: string): void {
@@ -105,9 +100,7 @@ export class DefaultZLinkChannelClient implements ZLinkChannelClient {
105
100
  }
106
101
 
107
102
  private requireTransport(): ZLinkChannelClientTransport {
108
- const transport = typeof this.transport === 'function'
109
- ? this.transport()
110
- : this.transport;
103
+ const transport = typeof this.transport === 'function' ? this.transport() : this.transport;
111
104
  if (transport === undefined) {
112
105
  throw new ZLinkConfigurationException('Channel runtime is not started.');
113
106
  }
@@ -123,24 +116,24 @@ export class DefaultZLinkFanoutClient implements ZLinkFanoutClient {
123
116
 
124
117
  publish(channelName: string, event: unknown): ZLinkFanoutPublishCall;
125
118
  publish(channelName: string, topic: string, event: unknown): ZLinkFanoutPublishCall;
126
- publish(channelName: string, topicOrEvent: string | unknown, explicitEvent?: unknown): ZLinkFanoutPublishCall {
119
+ publish(
120
+ channelName: string,
121
+ topicOrEvent: string | unknown,
122
+ explicitEvent?: unknown
123
+ ): ZLinkFanoutPublishCall {
127
124
  const hasExplicitTopic = arguments.length === 3;
128
125
  const event = hasExplicitTopic ? explicitEvent : topicOrEvent;
129
126
  const topic = hasExplicitTopic
130
- ? topicOrEvent as string
127
+ ? (topicOrEvent as string)
131
128
  : resolveFrameworkPacketName(event, undefined, 'Fanout');
132
129
  requirePublicFanoutTopic(topic);
133
130
  const packetName = resolveFrameworkPacketName(event, undefined, 'Fanout');
134
131
  return new DefaultZLinkFanoutPublishCall(
135
132
  () => this.requirePublisherChannel(channelName),
136
133
  async (signal) => ({
137
- status: (await this.requireTransport().publish(
138
- channelName,
139
- topic,
140
- packetName,
141
- event,
142
- signal
143
- )).status
134
+ status: (
135
+ await this.requireTransport().publish(channelName, topic, packetName, event, signal)
136
+ ).status
144
137
  })
145
138
  );
146
139
  }
@@ -158,14 +151,14 @@ export class DefaultZLinkFanoutClient implements ZLinkFanoutClient {
158
151
 
159
152
  private requirePublisherChannel(channelName: string): void {
160
153
  if (!this.registration.fanoutPublishers.has(channelName)) {
161
- throw new ZLinkConfigurationException(`Channel '${channelName}' does not have a publisher capability.`);
154
+ throw new ZLinkConfigurationException(
155
+ `Channel '${channelName}' does not have a publisher capability.`
156
+ );
162
157
  }
163
158
  }
164
159
 
165
160
  private requireTransport(): ZLinkChannelClientTransport {
166
- const transport = typeof this.transport === 'function'
167
- ? this.transport()
168
- : this.transport;
161
+ const transport = typeof this.transport === 'function' ? this.transport() : this.transport;
169
162
  if (transport === undefined) {
170
163
  throw new ZLinkConfigurationException('Channel runtime is not started.');
171
164
  }
@@ -177,21 +170,24 @@ export class DefaultZLinkRouteClient implements ZLinkRouteClient {
177
170
  constructor(
178
171
  private readonly registration: ZLinkFrameworkRegistration,
179
172
  private readonly transport?: ZLinkRouteClientTransport,
180
- private readonly spotRouterChannelIdForMesh: (meshName: string) => string = (meshName) => meshName
173
+ private readonly spotRouterChannelIdForMesh: (meshName: string) => string = (meshName) =>
174
+ meshName
181
175
  ) {}
182
176
 
183
177
  sendToNode(meshName: string, targetNodeRid: string, message: unknown): ZLinkSendCall {
184
178
  return new DefaultZLinkSendCall(
185
179
  () => this.requireMesh(meshName),
186
180
  async (packetName, metadata, signal) =>
187
- normalizeSubmitResult(await this.requireTransport().submit(
188
- meshName,
189
- targetNodeRid,
190
- packetName,
191
- message,
192
- signal,
193
- metadata
194
- ))
181
+ normalizeSubmitResult(
182
+ await this.requireTransport().submit(
183
+ meshName,
184
+ targetNodeRid,
185
+ packetName,
186
+ message,
187
+ signal,
188
+ metadata
189
+ )
190
+ )
195
191
  );
196
192
  }
197
193
 
@@ -214,24 +210,30 @@ export class DefaultZLinkRouteClient implements ZLinkRouteClient {
214
210
 
215
211
  sendToChannel(channelName: string, message: unknown): ZLinkSendCall {
216
212
  return new DefaultZLinkSendCall(
217
- () => { this.resolveMeshChannel(channelName); },
213
+ () => {
214
+ this.resolveMeshChannel(channelName);
215
+ },
218
216
  async (packetName, metadata, signal) => {
219
217
  const meshName = this.resolveMeshChannel(channelName);
220
- return normalizeSubmitResult(await this.requireTransport().submitToChannel(
221
- meshName,
222
- channelName,
223
- packetName,
224
- message,
225
- signal,
226
- metadata
227
- ));
218
+ return normalizeSubmitResult(
219
+ await this.requireTransport().submitToChannel(
220
+ meshName,
221
+ channelName,
222
+ packetName,
223
+ message,
224
+ signal,
225
+ metadata
226
+ )
227
+ );
228
228
  }
229
229
  );
230
230
  }
231
231
 
232
232
  requestToChannel(channelName: string, request: unknown): ZLinkChannelRequestCall {
233
233
  return new DefaultZLinkRequestCall(
234
- () => { this.resolveMeshChannel(channelName); },
234
+ () => {
235
+ this.resolveMeshChannel(channelName);
236
+ },
235
237
  (packetName, timeoutMs, metadata, signal) => {
236
238
  const meshName = this.resolveMeshChannel(channelName);
237
239
  return this.requireTransport().requestToChannel(
@@ -250,7 +252,9 @@ export class DefaultZLinkRouteClient implements ZLinkRouteClient {
250
252
 
251
253
  sendToSpot(spot: SpotHandle, message: unknown): ZLinkSendCall {
252
254
  return new DefaultZLinkSendCall(
253
- () => { this.requireSpotTransport(); },
255
+ () => {
256
+ this.requireSpotTransport();
257
+ },
254
258
  async (_packetName, metadata, signal) => {
255
259
  await sendToSpotHandle(this.requireSpotTransport(), spot, message, {
256
260
  signal,
@@ -264,38 +268,43 @@ export class DefaultZLinkRouteClient implements ZLinkRouteClient {
264
268
 
265
269
  requestToSpot(spot: SpotHandle, request: unknown): ZLinkRequestCall {
266
270
  return new DefaultZLinkRequestCall(
267
- () => { this.requireSpotTransport(); },
268
- (_packetName, timeoutMs, metadata, signal) => requestToSpotHandle(
269
- this.requireSpotTransport(),
270
- spot,
271
- request,
272
- {
271
+ () => {
272
+ this.requireSpotTransport();
273
+ },
274
+ (_packetName, timeoutMs, metadata, signal) =>
275
+ requestToSpotHandle(this.requireSpotTransport(), spot, request, {
273
276
  timeoutMs,
274
277
  signal,
275
278
  metadata,
276
279
  spotRouterChannelIdForMesh: this.spotRouterChannelIdForMesh
277
- }
278
- ),
280
+ }),
279
281
  this.registration.requestTimeoutMs ?? 30_000
280
282
  );
281
283
  }
282
284
 
283
285
  private defaultRequestTimeout(meshName: string): number {
284
- return this.registration.spotNodes.get(meshName)?.requestTimeoutMs
285
- ?? this.registration.routeChannelOptions.get(meshName)?.requestTimeoutMs
286
- ?? this.registration.requestTimeoutMs
287
- ?? 30_000;
286
+ return (
287
+ this.registration.spotNodes.get(meshName)?.requestTimeoutMs ??
288
+ this.registration.routeChannelOptions.get(meshName)?.requestTimeoutMs ??
289
+ this.registration.requestTimeoutMs ??
290
+ 30_000
291
+ );
288
292
  }
289
293
 
290
294
  private requireMesh(meshName: string): void {
291
- if (!this.registration.spotNodes.has(meshName) && !this.registration.routeChannels.has(meshName)) {
295
+ if (
296
+ !this.registration.spotNodes.has(meshName) &&
297
+ !this.registration.routeChannels.has(meshName)
298
+ ) {
292
299
  throw new ZLinkConfigurationException(`RouteMesh '${meshName}' is not registered.`);
293
300
  }
294
301
  }
295
302
 
296
303
  private resolveMeshChannel(channelName: string): string {
297
304
  const matches = [...this.registration.spotNodes.entries()]
298
- .filter(([, mesh]) => Object.prototype.hasOwnProperty.call(mesh.meshChannels ?? {}, channelName))
305
+ .filter(([, mesh]) =>
306
+ Object.prototype.hasOwnProperty.call(mesh.meshChannels ?? {}, channelName)
307
+ )
299
308
  .map(([meshName]) => meshName);
300
309
  if (matches.length === 0) {
301
310
  throw createInternalFrameworkException(
@@ -312,11 +321,10 @@ export class DefaultZLinkRouteClient implements ZLinkRouteClient {
312
321
  }
313
322
 
314
323
  private defaultRequestTimeoutForChannel(channelName: string): number {
315
- const match = [...this.registration.spotNodes.entries()]
316
- .find(([, mesh]) => Object.prototype.hasOwnProperty.call(mesh.meshChannels ?? {}, channelName));
317
- return match?.[1].requestTimeoutMs
318
- ?? this.registration.requestTimeoutMs
319
- ?? 30_000;
324
+ const match = [...this.registration.spotNodes.entries()].find(([, mesh]) =>
325
+ Object.prototype.hasOwnProperty.call(mesh.meshChannels ?? {}, channelName)
326
+ );
327
+ return match?.[1].requestTimeoutMs ?? this.registration.requestTimeoutMs ?? 30_000;
320
328
  }
321
329
 
322
330
  private requireTransport(): ZLinkRouteClientTransport {
@@ -329,11 +337,12 @@ export class DefaultZLinkRouteClient implements ZLinkRouteClient {
329
337
  private requireSpotTransport(): ZLinkSpotRoutedTransport {
330
338
  const transport = this.requireTransport();
331
339
  if (transport.sendToSpot === undefined || transport.requestToSpot === undefined) {
332
- throw new ZLinkConfigurationException('Route channel runtime does not support SpotHandle messaging.');
340
+ throw new ZLinkConfigurationException(
341
+ 'Route channel runtime does not support SpotHandle messaging.'
342
+ );
333
343
  }
334
344
  return transport as ZLinkSpotRoutedTransport;
335
345
  }
336
-
337
346
  }
338
347
 
339
348
  export class DefaultZLinkSpotPublisherClient implements ZLinkSpotPublisherClient {
@@ -346,13 +355,24 @@ export class DefaultZLinkSpotPublisherClient implements ZLinkSpotPublisherClient
346
355
  return new DefaultZLinkPublishCall(
347
356
  () => this.requireMeshChannel(meshName, channelName),
348
357
  (packetName, metadata, signal) =>
349
- this.requireTransport().publish(meshName, channelName, topic, packetName, event, signal, metadata)
358
+ this.requireTransport().publish(
359
+ meshName,
360
+ channelName,
361
+ topic,
362
+ packetName,
363
+ event,
364
+ signal,
365
+ metadata
366
+ )
350
367
  );
351
368
  }
352
369
 
353
370
  private requireMeshChannel(meshName: string, channelName: string): void {
354
371
  const mesh = this.registration.spotNodes.get(meshName);
355
- if (mesh === undefined || !Object.prototype.hasOwnProperty.call(mesh.meshChannels ?? {}, channelName)) {
372
+ if (
373
+ mesh === undefined ||
374
+ !Object.prototype.hasOwnProperty.call(mesh.meshChannels ?? {}, channelName)
375
+ ) {
356
376
  throw new ZLinkConfigurationException(
357
377
  `Channel '${channelName}' is not registered in RouteMesh '${meshName}'.`
358
378
  );