@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
@@ -18,9 +18,9 @@ class ZLinkRouteMemberSnapshot {
18
18
  }
19
19
  observeTermination(channel, routingId, endpoint) {
20
20
  const connected = this.connected.get(channel);
21
- const disconnected = routingId
22
- ?? this.memberByEndpoint.get(channel)?.get(endpoint)
23
- ?? (connected?.size === 1 ? connected.values().next().value : undefined);
21
+ const disconnected = routingId ??
22
+ this.memberByEndpoint.get(channel)?.get(endpoint) ??
23
+ (connected?.size === 1 ? connected.values().next().value : undefined);
24
24
  if (disconnected === undefined)
25
25
  return undefined;
26
26
  getOrCreateSet(this.members, channel).add(disconnected);
@@ -11,7 +11,9 @@ class ZLinkSourceSpotRouter {
11
11
  }
12
12
  async request(sourceSpot, target, packetName, request, timeoutMs, signal) {
13
13
  (0, abort_1.throwIfAborted)(signal);
14
- const parts = [(0, spot_direct_envelope_1.encodeSpotDirectEnvelope)(1 /* ZLinkChannelMessageKind.Request */, target.routerChannelId, packetName, request)];
14
+ const parts = [
15
+ (0, spot_direct_envelope_1.encodeSpotDirectEnvelope)(1 /* ZLinkChannelMessageKind.Request */, target.routerChannelId, packetName, request)
16
+ ];
15
17
  const operation = sourceSpot.requestToSpot(target.targetNodeRid, target.spotId, parts, timeoutMs ?? this.defaultRequestTimeoutMs);
16
18
  const replyParts = await (0, abort_1.awaitWithAbort)(operation, signal, () => {
17
19
  void operation.then(channel_envelope_1.closeMessages, () => undefined);
@@ -26,7 +28,9 @@ class ZLinkSourceSpotRouter {
26
28
  }
27
29
  async send(sourceSpot, target, packetName, message, signal, metadata, timeoutMs) {
28
30
  (0, abort_1.throwIfAborted)(signal);
29
- const parts = [(0, spot_direct_envelope_1.encodeSpotDirectEnvelope)(3 /* ZLinkChannelMessageKind.Command */, target.routerChannelId, packetName, message, metadata)];
31
+ const parts = [
32
+ (0, spot_direct_envelope_1.encodeSpotDirectEnvelope)(3 /* ZLinkChannelMessageKind.Command */, target.routerChannelId, packetName, message, metadata)
33
+ ];
30
34
  try {
31
35
  void timeoutMs;
32
36
  await (0, abort_1.awaitWithAbort)(sourceSpot.sendToSpot(target.targetNodeRid, target.spotId, parts), signal);
@@ -26,7 +26,9 @@ class ZLinkSpotRouteBridgeTransport {
26
26
  }
27
27
  async request(target, parts, codecs, timeoutMs, signal) {
28
28
  const bridge = this.requireBridge(target.routerChannelId);
29
- const operation = (0, channel_multipart_1.appendParts)(bridge.request(target.routerChannelId, target.targetNodeRid, target.spotId), parts).timeout(timeoutMs ?? 0).submit();
29
+ const operation = (0, channel_multipart_1.appendParts)(bridge.request(target.routerChannelId, target.targetNodeRid, target.spotId), parts)
30
+ .timeout(timeoutMs ?? 0)
31
+ .submit();
30
32
  const replyParts = await (0, abort_1.awaitWithAbort)(operation, signal, () => {
31
33
  void operation.then(channel_envelope_1.closeMessages, () => undefined);
32
34
  });
@@ -40,7 +42,8 @@ class ZLinkSpotRouteBridgeTransport {
40
42
  }
41
43
  requestRaw(target, request, timeoutMs, signal) {
42
44
  const bridge = this.requireBridge(target.routerChannelId);
43
- const operation = bridge.request(target.routerChannelId, target.targetNodeRid, target.spotId)
45
+ const operation = bridge
46
+ .request(target.routerChannelId, target.targetNodeRid, target.spotId)
44
47
  .message(request)
45
48
  .timeout(timeoutMs ?? this.defaultRequestTimeoutMs ?? 0)
46
49
  .submit();
@@ -54,8 +54,8 @@ class ZLinkSpotRouteDispatchStrategy {
54
54
  return;
55
55
  }
56
56
  const parts = (0, channel_envelope_1.encodeChannelEnvelopeParts)(3 /* ZLinkChannelMessageKind.Command */, spotRouteTarget.routerChannelId, packetName, message, undefined, undefined, (0, channel_framework_packets_1.codecsForFrameworkPacket)(packetName, this.options.codecs), undefined, this.options.flowCreationEnabled?.() ?? true, metadata);
57
- if (this.targets.hasNamedSpotNode(spotRouteTarget.routerChannelId)
58
- && await this.spotNodeTransport.send(spotRouteTarget, parts, signal)) {
57
+ if (this.targets.hasNamedSpotNode(spotRouteTarget.routerChannelId) &&
58
+ (await this.spotNodeTransport.send(spotRouteTarget, parts, signal))) {
59
59
  return;
60
60
  }
61
61
  if (this.bridgeTransport.has(spotRouteTarget.routerChannelId)) {
@@ -15,8 +15,7 @@ class ZLinkSpotRouteTargetResolver {
15
15
  if (named?.router !== undefined) {
16
16
  return this.spotNodes?.get(routerChannelId);
17
17
  }
18
- const channelOwners = [...this.registration.spotNodes.entries()]
19
- .filter(([, node]) => Object.prototype.hasOwnProperty.call(node.meshChannels ?? {}, routerChannelId));
18
+ const channelOwners = [...this.registration.spotNodes.entries()].filter(([, node]) => Object.prototype.hasOwnProperty.call(node.meshChannels ?? {}, routerChannelId));
20
19
  if (channelOwners.length === 1) {
21
20
  return this.spotNodes?.get(channelOwners[0][0]);
22
21
  }
@@ -38,7 +37,8 @@ class ZLinkSpotRouteTargetResolver {
38
37
  }
39
38
  localRouteNode(target) {
40
39
  const routeNode = this.routeNode(target.routerChannelId) ?? this.spotNodes?.get(target.routerChannelId);
41
- return routeNode !== undefined && routingIdsMatchSpotRoute(routeNode.routingId, target.targetNodeRid)
40
+ return routeNode !== undefined &&
41
+ routingIdsMatchSpotRoute(routeNode.routingId, target.targetNodeRid)
42
42
  ? routeNode
43
43
  : undefined;
44
44
  }
@@ -50,8 +50,8 @@ class ZLinkSpotRouteTargetResolver {
50
50
  return (routeBridgeNode ?? this.spotNodes?.get(routerChannelId))?.entrySpot();
51
51
  }
52
52
  canRouteChannel(routerChannelId) {
53
- return this.registration.routeChannels.has(routerChannelId)
54
- || this.spotNodeRouter(routerChannelId) !== undefined;
53
+ return (this.registration.routeChannels.has(routerChannelId) ||
54
+ this.spotNodeRouter(routerChannelId) !== undefined);
55
55
  }
56
56
  canRoutePacketChannel(routerChannelId) {
57
57
  if (this.spotNodes?.has(routerChannelId) ?? false) {
@@ -72,7 +72,7 @@ function routingIdsMatchSpotRoute(left, right) {
72
72
  return false;
73
73
  }
74
74
  const rightCandidates = spotRouteRoutingIdCandidates(right);
75
- return [...spotRouteRoutingIdCandidates(left)].some(candidate => rightCandidates.has(candidate));
75
+ return [...spotRouteRoutingIdCandidates(left)].some((candidate) => rightCandidates.has(candidate));
76
76
  }
77
77
  function spotRouteRoutingIdCandidates(routingId) {
78
78
  const candidates = new Set();
@@ -62,9 +62,8 @@ class ZLinkSocketMonitoringSource {
62
62
  this.monitor = monitor;
63
63
  this.publisher = publisher;
64
64
  validateSourceName(registration.sourceName);
65
- this.enabledEvents = registration.events === undefined
66
- ? undefined
67
- : new Set(registration.events);
65
+ this.enabledEvents =
66
+ registration.events === undefined ? undefined : new Set(registration.events);
68
67
  }
69
68
  start() {
70
69
  this.monitor.onEvent((event) => {
@@ -185,7 +184,12 @@ class ZLinkLocationMonitoringEventEmitter {
185
184
  constructor(registration, publisher) {
186
185
  this.registration = registration;
187
186
  this.publisher = publisher;
188
- for (const source of [registration.peer, registration.spot, registration.actor, registration.route]) {
187
+ for (const source of [
188
+ registration.peer,
189
+ registration.spot,
190
+ registration.actor,
191
+ registration.route
192
+ ]) {
189
193
  if (source !== undefined) {
190
194
  validateSourceName(source.sourceName);
191
195
  }
@@ -232,28 +236,48 @@ class ZLinkLocationMonitoringEventEmitter {
232
236
  if (registration === undefined) {
233
237
  return;
234
238
  }
235
- this.publish({ sourceName: registration.sourceName, timestamp: new Date(), event, ...payload });
239
+ this.publish({
240
+ sourceName: registration.sourceName,
241
+ timestamp: new Date(),
242
+ event,
243
+ ...payload
244
+ });
236
245
  }
237
246
  publishSpotLocation(event, payload) {
238
247
  const registration = this.registration.spot;
239
248
  if (registration === undefined) {
240
249
  return;
241
250
  }
242
- this.publish({ sourceName: registration.sourceName, timestamp: new Date(), event, ...payload });
251
+ this.publish({
252
+ sourceName: registration.sourceName,
253
+ timestamp: new Date(),
254
+ event,
255
+ ...payload
256
+ });
243
257
  }
244
258
  publishActor(event, payload) {
245
259
  const registration = this.registration.actor;
246
260
  if (registration === undefined) {
247
261
  return;
248
262
  }
249
- this.publish({ sourceName: registration.sourceName, timestamp: new Date(), event, ...payload });
263
+ this.publish({
264
+ sourceName: registration.sourceName,
265
+ timestamp: new Date(),
266
+ event,
267
+ ...payload
268
+ });
250
269
  }
251
270
  publishRoute(event, payload) {
252
271
  const registration = this.registration.route;
253
272
  if (registration === undefined) {
254
273
  return;
255
274
  }
256
- this.publish({ sourceName: registration.sourceName, timestamp: new Date(), event, ...payload });
275
+ this.publish({
276
+ sourceName: registration.sourceName,
277
+ timestamp: new Date(),
278
+ event,
279
+ ...payload
280
+ });
257
281
  }
258
282
  publish(event) {
259
283
  if (this.publisher === undefined) {
@@ -311,14 +335,18 @@ async function publishLocationRuntimeChange(publisher, sourceName, event, snapsh
311
335
  ? { ...base, event, status: snapshot }
312
336
  : event === internal_event_contracts_1.ZLinkLocationRuntimeEventKind.TopologyChanged
313
337
  ? { ...base, event, topology: snapshot }
314
- : { ...base, event: internal_event_contracts_1.ZLinkLocationRuntimeEventKind.ServiceSummaryChanged, serviceSummary: snapshot };
338
+ : {
339
+ ...base,
340
+ event: internal_event_contracts_1.ZLinkLocationRuntimeEventKind.ServiceSummaryChanged,
341
+ serviceSummary: snapshot
342
+ };
315
343
  await publisher.publish(runtimeEvent);
316
344
  }
317
345
  function startOutsideStateLane(work) {
318
346
  return detachedStateLaneResource.runInAsyncScope(work);
319
347
  }
320
348
  function stableSnapshot(value) {
321
- return JSON.stringify(value, (_key, item) => typeof item === 'bigint' ? item.toString() : item);
349
+ return JSON.stringify(value, (_key, item) => (typeof item === 'bigint' ? item.toString() : item));
322
350
  }
323
351
  function validateSourceName(sourceName) {
324
352
  if (sourceName.trim().length === 0) {
@@ -34,10 +34,10 @@ function createDiagnosticsContext(dispatch, _providerResolver, liveMode) {
34
34
  function requiredMode(outcome, result) {
35
35
  // succeeded가 아닌 terminal은 Errors level에서도 보여야 한다 — 기록 범위 설정
36
36
  // 절의 level 규칙.
37
- return outcome === ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Dropped
38
- || outcome === ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Backpressured
39
- || outcome === ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Error
40
- || (result !== undefined && result !== 'succeeded')
37
+ return outcome === ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Dropped ||
38
+ outcome === ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Backpressured ||
39
+ outcome === ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Error ||
40
+ (result !== undefined && result !== 'succeeded')
41
41
  ? 'errors'
42
42
  : 'normal';
43
43
  }
@@ -46,7 +46,9 @@ function flowIfEnabled(flow, outcome, result, flowId, sourceMeshGeneration) {
46
46
  return undefined;
47
47
  return typeof flow.begin === 'function'
48
48
  ? flow.begin(outcome, result, flowId, sourceMeshGeneration)
49
- : flow.accepts(outcome) ? flow : undefined;
49
+ : flow.accepts(outcome)
50
+ ? flow
51
+ : undefined;
50
52
  }
51
53
  class ZLinkMessageFlowTracer {
52
54
  ctx;
@@ -79,17 +81,17 @@ class ZLinkMessageFlowTracer {
79
81
  }
80
82
  switch (mode) {
81
83
  case 'errors':
82
- return this.errorsTracePoint ??= {
83
- trace: flowInput => this.traceAcceptedAtMode(flowInput, 'errors')
84
- };
84
+ return (this.errorsTracePoint ??= {
85
+ trace: (flowInput) => this.traceAcceptedAtMode(flowInput, 'errors')
86
+ });
85
87
  case 'normal':
86
- return this.normalTracePoint ??= {
87
- trace: flowInput => this.traceAcceptedAtMode(flowInput, 'normal')
88
- };
88
+ return (this.normalTracePoint ??= {
89
+ trace: (flowInput) => this.traceAcceptedAtMode(flowInput, 'normal')
90
+ });
89
91
  case 'detailed':
90
- return this.detailedTracePoint ??= {
91
- trace: flowInput => this.traceAcceptedAtMode(flowInput, 'detailed')
92
- };
92
+ return (this.detailedTracePoint ??= {
93
+ trace: (flowInput) => this.traceAcceptedAtMode(flowInput, 'detailed')
94
+ });
93
95
  case 'off':
94
96
  return undefined;
95
97
  }
@@ -99,8 +101,8 @@ class ZLinkMessageFlowTracer {
99
101
  }
100
102
  trace(flowInput) {
101
103
  const effectiveMode = effectiveMessageFlow(this.ctx);
102
- if (contracts_1.MESSAGE_FLOW_MODE_RANK[effectiveMode]
103
- < contracts_1.MESSAGE_FLOW_MODE_RANK[requiredMode(flowInput.outcome, flowInput.result)])
104
+ if (contracts_1.MESSAGE_FLOW_MODE_RANK[effectiveMode] <
105
+ contracts_1.MESSAGE_FLOW_MODE_RANK[requiredMode(flowInput.outcome, flowInput.result)])
104
106
  return;
105
107
  const ambient = (0, flow_context_1.currentFlowContext)();
106
108
  const flowId = flowInput.flowId ?? ambient?.flowId;
@@ -126,11 +128,11 @@ class ZLinkMessageFlowTracer {
126
128
  effectiveMode === 'detailed' ? flow.durationSeconds : undefined));
127
129
  }
128
130
  acceptsSample(outcome, result, flowId, sourceMeshGeneration) {
129
- return outcome === ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Dropped
130
- || outcome === ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Backpressured
131
- || outcome === ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Error
132
- || (result !== undefined && result !== 'succeeded')
133
- || this.sample(flowId, sourceMeshGeneration);
131
+ return (outcome === ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Dropped ||
132
+ outcome === ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Backpressured ||
133
+ outcome === ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Error ||
134
+ (result !== undefined && result !== 'succeeded') ||
135
+ this.sample(flowId, sourceMeshGeneration));
134
136
  }
135
137
  get tracedCount() {
136
138
  return this.tracedEvents;
@@ -144,8 +146,8 @@ class ZLinkMessageFlowTracer {
144
146
  return true;
145
147
  if (rate <= 0.0)
146
148
  return false;
147
- const samplingKey = flowId
148
- ?? `${sourceMeshGeneration ?? this.ctx.sourceMeshGeneration}:${this.nextSamplingSequence()}`;
149
+ const samplingKey = flowId ??
150
+ `${sourceMeshGeneration ?? this.ctx.sourceMeshGeneration}:${this.nextSamplingSequence()}`;
149
151
  return hashFlowId(samplingKey) / 0x1_0000_0000 < rate;
150
152
  }
151
153
  nextSamplingSequence() {
@@ -158,9 +160,7 @@ class ZLinkMessageFlowTracer {
158
160
  }
159
161
  publishToLogger(record) {
160
162
  try {
161
- const severityNumber = record.eventId === 'zlink.dispatch_error'
162
- ? api_logs_1.SeverityNumber.ERROR
163
- : api_logs_1.SeverityNumber.INFO;
163
+ const severityNumber = record.eventId === 'zlink.dispatch_error' ? api_logs_1.SeverityNumber.ERROR : api_logs_1.SeverityNumber.INFO;
164
164
  telemetryLogger.emit({
165
165
  eventName: record.eventId,
166
166
  timestamp: record.timestamp,
@@ -232,9 +232,7 @@ function toTelemetryRecord(flow, messageSizeBytes, durationSeconds) {
232
232
  targetRid: flow.targetRid,
233
233
  serverRid: flow.serverRid,
234
234
  flowId: flow.flowId,
235
- flowOrigin: flow.flowOrigin === undefined
236
- ? undefined
237
- : FLOW_ORIGIN_TELEMETRY_VALUES[flow.flowOrigin],
235
+ flowOrigin: flow.flowOrigin === undefined ? undefined : FLOW_ORIGIN_TELEMETRY_VALUES[flow.flowOrigin],
238
236
  spotId: flow.spotId,
239
237
  instanceSpotType: flow.instanceSpotType,
240
238
  activationState: flow.activationState,
@@ -336,16 +334,26 @@ function compactAttributes(values) {
336
334
  }
337
335
  function messageFlowPhase(outcome) {
338
336
  switch (outcome) {
339
- case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Received: return 'received';
340
- case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Admitted: return 'admitted';
341
- case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Dispatched: return 'dispatched';
342
- case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Completed: return 'completed';
343
- case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Replied: return 'replied';
344
- case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Dropped: return 'dropped';
345
- case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Sent: return 'sent';
346
- case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.ReplyReceived: return 'reply_received';
347
- case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Backpressured: return 'backpressured';
348
- case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Error: return undefined;
337
+ case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Received:
338
+ return 'received';
339
+ case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Admitted:
340
+ return 'admitted';
341
+ case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Dispatched:
342
+ return 'dispatched';
343
+ case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Completed:
344
+ return 'completed';
345
+ case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Replied:
346
+ return 'replied';
347
+ case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Dropped:
348
+ return 'dropped';
349
+ case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Sent:
350
+ return 'sent';
351
+ case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.ReplyReceived:
352
+ return 'reply_received';
353
+ case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Backpressured:
354
+ return 'backpressured';
355
+ case ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Error:
356
+ return undefined;
349
357
  }
350
358
  }
351
359
  function messageFlowOutcome(outcome) {
@@ -100,10 +100,10 @@ class MetricRegistry {
100
100
  }
101
101
  }
102
102
  observe(name, result) {
103
- if (name === 'zlink.host.application_job_queue.pressure_state'
104
- || name === 'zlink.host.application_job_queue.pressure_transitions'
105
- || name === 'zlink.host.application_job_queue.pause_duration'
106
- || name === 'zlink.host.application_job_queue.flow_state_config_failures') {
103
+ if (name === 'zlink.host.application_job_queue.pressure_state' ||
104
+ name === 'zlink.host.application_job_queue.pressure_transitions' ||
105
+ name === 'zlink.host.application_job_queue.pause_duration' ||
106
+ name === 'zlink.host.application_job_queue.flow_state_config_failures') {
107
107
  for (const provider of this.applicationJobQueuePressures) {
108
108
  try {
109
109
  this.observeApplicationJobQueuePressure(name, provider(), result);
@@ -114,8 +114,8 @@ class MetricRegistry {
114
114
  }
115
115
  return;
116
116
  }
117
- if (name.startsWith('zlink.host.core_hwm.')
118
- || name.startsWith('zlink.host.application_job_queue.')) {
117
+ if (name.startsWith('zlink.host.core_hwm.') ||
118
+ name.startsWith('zlink.host.application_job_queue.')) {
119
119
  for (const provider of this.hostCapacities) {
120
120
  try {
121
121
  this.observeHostCapacity(name, provider(), result);
@@ -215,13 +215,22 @@ class MetricRegistry {
215
215
  result.observe(nonNegative(snapshot.readyPeers), peer);
216
216
  else if (name === 'zlink.mesh_node.channels.ready_members') {
217
217
  for (const channel of snapshot.channels) {
218
- result.observe(nonNegative(channel.readyMembers), { ...mesh, channel_name: channel.channelName });
218
+ result.observe(nonNegative(channel.readyMembers), {
219
+ ...mesh,
220
+ channel_name: channel.channelName
221
+ });
219
222
  }
220
223
  }
221
224
  else if (name.startsWith('zlink.object.capacity.')) {
222
225
  const field = metricSuffix(name);
223
- result.observe(capacityValue(snapshot.actorCapacity, field), { ...mesh, capacity_scope: 'actor' });
224
- result.observe(capacityValue(snapshot.spotCapacity, field), { ...mesh, capacity_scope: 'spot' });
226
+ result.observe(capacityValue(snapshot.actorCapacity, field), {
227
+ ...mesh,
228
+ capacity_scope: 'actor'
229
+ });
230
+ result.observe(capacityValue(snapshot.spotCapacity, field), {
231
+ ...mesh,
232
+ capacity_scope: 'spot'
233
+ });
225
234
  }
226
235
  else if (name.startsWith('zlink.spot.type.capacity.')) {
227
236
  const field = metricSuffix(name);
@@ -80,7 +80,9 @@ class RuntimeEventQueue {
80
80
  this.abortCleanup = () => signal.removeEventListener('abort', onAbort);
81
81
  }
82
82
  }
83
- [Symbol.asyncIterator]() { return this; }
83
+ [Symbol.asyncIterator]() {
84
+ return this;
85
+ }
84
86
  next() {
85
87
  if (this.waitersCount === 0) {
86
88
  const retained = this.takeRetained();
@@ -97,7 +99,7 @@ class RuntimeEventQueue {
97
99
  return Promise.resolve({ done: true, value: undefined });
98
100
  }
99
101
  }
100
- return new Promise(resolve => {
102
+ return new Promise((resolve) => {
101
103
  this.waiters.push(resolve);
102
104
  this.waitersCount += 1;
103
105
  if (this.hasRetained() || this.closed || this.completeWhenDrained) {
@@ -205,9 +207,8 @@ class RuntimeEventQueue {
205
207
  takeRetained() {
206
208
  const terminal = this.peekTerminal();
207
209
  const intermediate = this.oldestIntermediate();
208
- if (terminal !== undefined
209
- && (intermediate === undefined
210
- || terminal.publishOrdinal <= intermediate.publishOrdinal)) {
210
+ if (terminal !== undefined &&
211
+ (intermediate === undefined || terminal.publishOrdinal <= intermediate.publishOrdinal)) {
211
212
  return this.takeTerminal();
212
213
  }
213
214
  if (intermediate === undefined)
@@ -216,9 +217,7 @@ class RuntimeEventQueue {
216
217
  return intermediate;
217
218
  }
218
219
  peekTerminal() {
219
- return this.terminalCount === 0
220
- ? undefined
221
- : this.terminalFifo[this.terminalHead];
220
+ return this.terminalCount === 0 ? undefined : this.terminalFifo[this.terminalHead];
222
221
  }
223
222
  oldestIntermediate() {
224
223
  let oldest;
@@ -264,8 +263,7 @@ class RuntimeEventQueue {
264
263
  this.terminalFifo.length = 0;
265
264
  this.terminalHead = 0;
266
265
  }
267
- else if (this.terminalHead >= 1024
268
- && this.terminalHead * 2 >= this.terminalFifo.length) {
266
+ else if (this.terminalHead >= 1024 && this.terminalHead * 2 >= this.terminalFifo.length) {
269
267
  this.terminalFifo.splice(0, this.terminalHead);
270
268
  this.terminalHead = 0;
271
269
  }
@@ -27,9 +27,12 @@ class ZLinkClientServerRuntimeProjection {
27
27
  const targets = topology.descriptors.map((descriptor) => ({
28
28
  nodeRid: descriptor.serverRoutingId,
29
29
  weight: descriptor.weight,
30
- state: descriptor.state === 'serving' ? contracts_1.ZLinkPeerState.Ready
31
- : descriptor.state === 'retiring' ? contracts_1.ZLinkPeerState.Draining
32
- : descriptor.state === 'preparing' ? contracts_1.ZLinkPeerState.Connecting
30
+ state: descriptor.state === 'serving'
31
+ ? contracts_1.ZLinkPeerState.Ready
32
+ : descriptor.state === 'retiring'
33
+ ? contracts_1.ZLinkPeerState.Draining
34
+ : descriptor.state === 'preparing'
35
+ ? contracts_1.ZLinkPeerState.Connecting
33
36
  : contracts_1.ZLinkPeerState.NotConnected,
34
37
  unavailableReason: descriptor.state === 'serving' && descriptor.weight > 0
35
38
  ? undefined
@@ -37,7 +40,7 @@ class ZLinkClientServerRuntimeProjection {
37
40
  ? contracts_1.ZLinkTopologyReason.Draining
38
41
  : contracts_1.ZLinkTopologyReason.NoReadyTarget
39
42
  }));
40
- const readyTargetCount = targets.filter(target => target.state === contracts_1.ZLinkPeerState.Ready && target.weight > 0).length;
43
+ const readyTargetCount = targets.filter((target) => target.state === contracts_1.ZLinkPeerState.Ready && target.weight > 0).length;
41
44
  const hostState = this.hostState();
42
45
  const isReady = (0, runtime_state_projections_1.topologyRuntimeIsReady)(hostState, readyTargetCount);
43
46
  return {
@@ -137,12 +140,16 @@ class ZLinkFanoutRuntimeProjection {
137
140
  return this.snapshotCore(channelName);
138
141
  }
139
142
  snapshotCore(channelName) {
140
- const publishers = this.requireRuntime().fanoutTopology(channelName).descriptors
141
- .map((descriptor) => ({
143
+ const publishers = this.requireRuntime()
144
+ .fanoutTopology(channelName)
145
+ .descriptors.map((descriptor) => ({
142
146
  nodeRid: descriptor.publisherRoutingId,
143
- state: descriptor.state === 'serving' ? contracts_1.ZLinkPeerState.Ready
144
- : descriptor.state === 'retiring' ? contracts_1.ZLinkPeerState.Draining
145
- : descriptor.state === 'preparing' ? contracts_1.ZLinkPeerState.Connecting
147
+ state: descriptor.state === 'serving'
148
+ ? contracts_1.ZLinkPeerState.Ready
149
+ : descriptor.state === 'retiring'
150
+ ? contracts_1.ZLinkPeerState.Draining
151
+ : descriptor.state === 'preparing'
152
+ ? contracts_1.ZLinkPeerState.Connecting
146
153
  : contracts_1.ZLinkPeerState.NotConnected,
147
154
  unavailableReason: descriptor.state === 'serving'
148
155
  ? undefined
@@ -150,7 +157,7 @@ class ZLinkFanoutRuntimeProjection {
150
157
  ? contracts_1.ZLinkTopologyReason.Draining
151
158
  : contracts_1.ZLinkTopologyReason.NoReadyTarget
152
159
  }));
153
- const readyPublisherCount = publishers.filter(publisher => publisher.state === contracts_1.ZLinkPeerState.Ready).length;
160
+ const readyPublisherCount = publishers.filter((publisher) => publisher.state === contracts_1.ZLinkPeerState.Ready).length;
154
161
  const hostState = this.hostState();
155
162
  const hostReady = (0, runtime_state_projections_1.runtimeStateIsReady)(hostState);
156
163
  return {
@@ -137,8 +137,7 @@ function captureZLinkSpotSerialTurn(executor) {
137
137
  /** Returns the physical Spot owner only while its captured turn owns the gate. */
138
138
  function currentZLinkSpotSerialSourceId() {
139
139
  const current = spotSerialTurnStorage.getStore();
140
- if (current === undefined
141
- || !current.executor.isActiveTurn(current.turn, current.turnId)) {
140
+ if (current === undefined || !current.executor.isActiveTurn(current.turn, current.turnId)) {
142
141
  return undefined;
143
142
  }
144
143
  return current.executor.sourceSpotId;
@@ -157,14 +156,16 @@ function captureZLinkExecutionTurn() {
157
156
  }
158
157
  return {
159
158
  yieldPromise: (pending) => current.turn.yieldPromise(pending),
160
- post: (callback) => { void current.executor.post(callback); }
159
+ post: (callback) => {
160
+ void current.executor.post(callback);
161
+ }
161
162
  };
162
163
  }
163
164
  function isCurrentZLinkSpotSerialTurn(executor) {
164
165
  const current = spotSerialTurnStorage.getStore();
165
- return current !== undefined
166
- && current.executor === executor
167
- && executor.isActiveTurn(current.turn, current.turnId);
166
+ return (current !== undefined &&
167
+ current.executor === executor &&
168
+ executor.isActiveTurn(current.turn, current.turnId));
168
169
  }
169
170
  /**
170
171
  * Seals application-lane admission and waits for every active Promise turn to
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkSerialExecutionQueue = exports.ZLINK_DEFAULT_SERIAL_SCHEDULER_OPTIONS = void 0;
4
4
  exports.ZLINK_DEFAULT_SERIAL_SCHEDULER_OPTIONS = Object.freeze({
5
5
  ownerTimeBudget: 10,
6
- lifecycleBurstLimit: 8,
6
+ lifecycleBurstLimit: 8
7
7
  });
8
8
  /**
9
9
  * One event-loop serial execution queue per Spot, Actor mailbox, or Stream session.
@@ -80,14 +80,12 @@ class ZLinkSerialExecutionQueue {
80
80
  };
81
81
  }
82
82
  get hasPendingWork() {
83
- return this.draining
84
- || this.application.records.length > 0
85
- || this.lifecycle.records.length > 0;
83
+ return (this.draining || this.application.records.length > 0 || this.lifecycle.records.length > 0);
86
84
  }
87
85
  whenIdle() {
88
86
  if (!this.hasPendingWork)
89
87
  return Promise.resolve();
90
- return new Promise(resolve => this.idleWaiters.push(resolve));
88
+ return new Promise((resolve) => this.idleWaiters.push(resolve));
91
89
  }
92
90
  /** Stops new submissions while allowing the accepted FIFO to finish. */
93
91
  close() {
@@ -176,8 +174,8 @@ class ZLinkSerialExecutionQueue {
176
174
  const record = selection.record;
177
175
  if (selection.lane === 'lifecycle') {
178
176
  const applicationHead = this.application.records[0];
179
- if (this.application.records.length > 0
180
- && !this.cancelPreparationForRearbitration(applicationHead)) {
177
+ if (this.application.records.length > 0 &&
178
+ !this.cancelPreparationForRearbitration(applicationHead)) {
181
179
  waitingForPreparation = true;
182
180
  break;
183
181
  }
@@ -187,8 +185,7 @@ class ZLinkSerialExecutionQueue {
187
185
  waitingForPreparation = true;
188
186
  break;
189
187
  }
190
- if (record.preparationState === 'pending'
191
- || record.preparationState === 'canceling') {
188
+ if (record.preparationState === 'pending' || record.preparationState === 'canceling') {
192
189
  waitingForPreparation = true;
193
190
  break;
194
191
  }
@@ -217,8 +214,8 @@ class ZLinkSerialExecutionQueue {
217
214
  finally {
218
215
  this.draining = false;
219
216
  this.claimStartedAt = undefined;
220
- if (!waitingForPreparation
221
- && (this.application.records.length > 0 || this.lifecycle.records.length > 0)) {
217
+ if (!waitingForPreparation &&
218
+ (this.application.records.length > 0 || this.lifecycle.records.length > 0)) {
222
219
  this.scheduleDrain();
223
220
  }
224
221
  else {
@@ -245,9 +242,7 @@ class ZLinkSerialExecutionQueue {
245
242
  return { lane: 'application', record: this.application.records[0] };
246
243
  }
247
244
  takeSelected(selection) {
248
- const record = selection.lane === 'lifecycle'
249
- ? this.takeLifecycle()
250
- : this.takeApplication();
245
+ const record = selection.lane === 'lifecycle' ? this.takeLifecycle() : this.takeApplication();
251
246
  if (record !== selection.record) {
252
247
  throw new Error('The selected serial work record changed before owner claim.');
253
248
  }
@@ -255,8 +250,7 @@ class ZLinkSerialExecutionQueue {
255
250
  }
256
251
  takeLifecycle() {
257
252
  this.lifecycleStreak += 1;
258
- if (this.application.records.length > 0
259
- && this.lifecycleStreak >= this.lifecycleBurstLimit) {
253
+ if (this.application.records.length > 0 && this.lifecycleStreak >= this.lifecycleBurstLimit) {
260
254
  this.lifecycleDebt = true;
261
255
  }
262
256
  return this.lifecycle.records.shift();
@@ -286,7 +280,7 @@ class ZLinkSerialExecutionQueue {
286
280
  }
287
281
  record.preparationController = undefined;
288
282
  this.scheduleDrain();
289
- }, error => {
283
+ }, (error) => {
290
284
  if (record.preparationState === 'canceling' || controller.signal.aborted) {
291
285
  preparation.cancel();
292
286
  record.preparationState = 'idle';
@@ -343,5 +337,5 @@ function validateNonNegative(value, field) {
343
337
  }
344
338
  }
345
339
  function macrotaskBoundary() {
346
- return new Promise(resolve => setImmediate(resolve));
340
+ return new Promise((resolve) => setImmediate(resolve));
347
341
  }