@zlink-systems/framework 0.25.0 → 0.27.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 (557) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Channels/IZLinkFanoutClient.d.ts +0 -6
  3. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  4. package/dist/contracts/Common/CoreTypes.js +7 -0
  5. package/dist/contracts/Common/index.d.ts +1 -1
  6. package/dist/contracts/Common/index.js +0 -1
  7. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  8. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  9. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  10. package/dist/contracts/Configuration/Registration.js +58 -36
  11. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  12. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  13. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  14. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  15. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  16. package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
  17. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  18. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  19. package/dist/contracts/Handlers/JsonContract.js +10 -4
  20. package/dist/contracts/Locations/Authority.d.ts +1 -1
  21. package/dist/contracts/Locations/Authority.js +3 -2
  22. package/dist/contracts/Locations/Options.js +1 -1
  23. package/dist/contracts/Locations/Stores.d.ts +12 -0
  24. package/dist/contracts/Locations/Stores.js +9 -0
  25. package/dist/contracts/RouteMesh/RuntimeTopology.d.ts +8 -0
  26. package/dist/contracts/Spots/Contracts.d.ts +1 -1
  27. package/dist/internal.d.ts +5 -0
  28. package/dist/internal.js +16 -1
  29. package/dist/nest-integration.d.ts +4 -2
  30. package/dist/nest-integration.js +14 -4
  31. package/dist/runtime/abort.d.ts +1 -0
  32. package/dist/runtime/abort.js +8 -5
  33. package/dist/runtime/activation-admission.d.ts +28 -0
  34. package/dist/runtime/activation-admission.js +57 -0
  35. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  36. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  37. package/dist/runtime/actors/actor-client.d.ts +2 -2
  38. package/dist/runtime/actors/actor-client.js +42 -143
  39. package/dist/runtime/actors/actor-context.d.ts +3 -5
  40. package/dist/runtime/actors/actor-context.js +19 -17
  41. package/dist/runtime/actors/actor-handoff.d.ts +13 -7
  42. package/dist/runtime/actors/actor-handoff.js +36 -25
  43. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  44. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  45. package/dist/runtime/actors/actor-local-native-join.js +85 -123
  46. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  47. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  48. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  49. package/dist/runtime/actors/actor-remote-joiner.d.ts +3 -3
  50. package/dist/runtime/actors/actor-remote-joiner.js +11 -17
  51. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  52. package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
  53. package/dist/runtime/actors/actor-request-deadline.js +31 -0
  54. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  55. package/dist/runtime/actors/actor-runtime-contracts.d.ts +4 -2
  56. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  57. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  58. package/dist/runtime/actors/actor-source-transfer.d.ts +5 -5
  59. package/dist/runtime/actors/bound-session-wire.js +2 -7
  60. package/dist/runtime/actors/deferred-join-completion.d.ts +19 -0
  61. package/dist/runtime/actors/deferred-join-completion.js +21 -0
  62. package/dist/runtime/actors/index.d.ts +10 -8
  63. package/dist/runtime/actors/index.js +101 -73
  64. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  65. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  66. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  67. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  68. package/dist/runtime/admission.d.ts +7 -1
  69. package/dist/runtime/admission.js +11 -1
  70. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  71. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  72. package/dist/runtime/backend/contracts/index.d.ts +8 -33
  73. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +3 -26
  74. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  75. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  76. package/dist/runtime/backend/node/node-backend-adapter-factory.d.ts +1 -2
  77. package/dist/runtime/backend/node/node-backend-adapter-factory.js +4 -18
  78. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +7 -4
  79. package/dist/runtime/backend/node/node-backend-adapter-support.js +28 -34
  80. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  81. package/dist/runtime/backend/node/node-event-loop-poller.js +11 -6
  82. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  83. package/dist/runtime/backend/node/node-raw-binding-port.d.ts +1 -1
  84. package/dist/runtime/backend/node/node-raw-binding-port.js +51 -19
  85. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +21 -19
  86. package/dist/runtime/backend/node/node-raw-mesh-backend.js +171 -111
  87. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  88. package/dist/runtime/backend/raw-binding-port.d.ts +13 -1
  89. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  90. package/dist/runtime/backend/runtime-values.js +2 -0
  91. package/dist/runtime/channels/channel-clients.d.ts +20 -9
  92. package/dist/runtime/channels/channel-clients.js +68 -60
  93. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  94. package/dist/runtime/channels/channel-envelope.js +47 -29
  95. package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
  96. package/dist/runtime/channels/channel-outbound-operations.js +9 -18
  97. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  98. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  99. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  100. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  101. package/dist/runtime/channels/channel-runtime-manager.d.ts +2 -5
  102. package/dist/runtime/channels/channel-runtime-manager.js +4 -12
  103. package/dist/runtime/channels/channel-socket-options.js +3 -2
  104. package/dist/runtime/channels/channel-socket-registry.d.ts +30 -32
  105. package/dist/runtime/channels/channel-socket-registry.js +296 -235
  106. package/dist/runtime/channels/channel-transports.d.ts +11 -20
  107. package/dist/runtime/channels/channel-transports.js +68 -47
  108. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  109. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  110. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  111. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  112. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  113. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  114. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  115. package/dist/runtime/channels/fanout-location-runtime.js +133 -81
  116. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  117. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  118. package/dist/runtime/channels/spot-node-route-transport.js +3 -2
  119. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  120. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  121. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  122. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  123. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  124. package/dist/runtime/diagnostics/flow-context.js +16 -2
  125. package/dist/runtime/diagnostics/index.d.ts +4 -2
  126. package/dist/runtime/diagnostics/index.js +14 -4
  127. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  128. package/dist/runtime/diagnostics/message-flow.js +10 -19
  129. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  130. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  131. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  132. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  133. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  134. package/dist/runtime/disposal.d.ts +5 -0
  135. package/dist/runtime/disposal.js +22 -0
  136. package/dist/runtime/execution/index.d.ts +22 -9
  137. package/dist/runtime/execution/index.js +107 -37
  138. package/dist/runtime/execution/serial-execution-queue.d.ts +12 -7
  139. package/dist/runtime/execution/serial-execution-queue.js +99 -26
  140. package/dist/runtime/execution/state-lane.d.ts +8 -1
  141. package/dist/runtime/execution/state-lane.js +118 -3
  142. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  143. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  144. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  145. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  146. package/dist/runtime/foundation/listener-records.d.ts +11 -0
  147. package/dist/runtime/foundation/listener-records.js +20 -0
  148. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  149. package/dist/runtime/foundation/operation-identity.js +9 -5
  150. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  151. package/dist/runtime/foundation/operation-registry.js +34 -44
  152. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +18 -26
  153. package/dist/runtime/foundation/raw-service-mesh-runtime.js +122 -469
  154. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  155. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  156. package/dist/runtime/foundation/service-authority-payload-codec.d.ts +1 -0
  157. package/dist/runtime/foundation/service-authority-payload-codec.js +30 -12
  158. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  159. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  160. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  161. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  162. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  163. package/dist/runtime/foundation/service-maintenance-runtime.js +23 -8
  164. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  165. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  166. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  167. package/dist/runtime/foundation/service-relocation-coordinator.d.ts +9 -0
  168. package/dist/runtime/foundation/service-relocation-coordinator.js +14 -1
  169. package/dist/runtime/foundation/service-relocation-object-owner.d.ts +8 -0
  170. package/dist/runtime/foundation/service-relocation-object-owner.js +19 -6
  171. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  172. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  173. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  174. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -19
  175. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  176. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  177. package/dist/runtime/foundation/service-stateful-runtime.d.ts +28 -24
  178. package/dist/runtime/foundation/service-stateful-runtime.js +297 -244
  179. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +12 -7
  180. package/dist/runtime/foundation/service-stateful-wire-codec.js +240 -143
  181. package/dist/runtime/foundation/service-topology-registry.d.ts +1 -3
  182. package/dist/runtime/foundation/service-topology-registry.js +22 -61
  183. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  184. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  185. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  186. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  187. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  188. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  189. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  190. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  191. package/dist/runtime/framework-errors-internal.js +343 -122
  192. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  193. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  194. package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
  195. package/dist/runtime/host/actor-packet-relay.js +48 -91
  196. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  197. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  198. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  199. package/dist/runtime/host/actor-transfer-runtime.d.ts +28 -28
  200. package/dist/runtime/host/actor-transfer-runtime.js +210 -256
  201. package/dist/runtime/host/application-job-queue.js +16 -33
  202. package/dist/runtime/host/bound-session-relay.js +1 -1
  203. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  204. package/dist/runtime/host/index.d.ts +19 -14
  205. package/dist/runtime/host/index.js +234 -175
  206. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  207. package/dist/runtime/host/instance-activation-authority.js +17 -45
  208. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  209. package/dist/runtime/host/location-runtime-owner.js +2 -2
  210. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  211. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  212. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  213. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  214. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  215. package/dist/runtime/host/remote-bound-session-relay.js +11 -23
  216. package/dist/runtime/host/route-mesh-runtime.d.ts +14 -10
  217. package/dist/runtime/host/route-mesh-runtime.js +178 -257
  218. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  219. package/dist/runtime/host/runtime-shutdown.js +18 -21
  220. package/dist/runtime/host/service-relocation-control.js +6 -1
  221. package/dist/runtime/host/service-relocation-host-runtime.d.ts +71 -38
  222. package/dist/runtime/host/service-relocation-host-runtime.js +816 -651
  223. package/dist/runtime/host/spot-address-transport.d.ts +2 -3
  224. package/dist/runtime/host/spot-address-transport.js +34 -136
  225. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  226. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  227. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -7
  228. package/dist/runtime/host/spot-runtime-options-factory.js +53 -21
  229. package/dist/runtime/host/stateful-authority-route-runtime.js +6 -2
  230. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +14 -6
  231. package/dist/runtime/host/user-spot-creation-coordinator.js +96 -95
  232. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  233. package/dist/runtime/locations/authority-key-codec.js +4 -3
  234. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  235. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  236. package/dist/runtime/locations/creation-operation-id.js +6 -4
  237. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  238. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  239. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  240. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  241. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  242. package/dist/runtime/locations/in-memory-provider-location-store.js +79 -27
  243. package/dist/runtime/locations/key-codec.js +3 -2
  244. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  245. package/dist/runtime/locations/lease-tracker.js +7 -11
  246. package/dist/runtime/locations/lifecycle.d.ts +5 -10
  247. package/dist/runtime/locations/lifecycle.js +4 -33
  248. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  249. package/dist/runtime/locations/location-store-failure.js +7 -0
  250. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  251. package/dist/runtime/locations/location-store-pages.js +13 -0
  252. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  253. package/dist/runtime/locations/location-store-repository.js +303 -332
  254. package/dist/runtime/locations/relocation-blob.js +18 -5
  255. package/dist/runtime/locations/resolvers.d.ts +5 -5
  256. package/dist/runtime/locations/resolvers.js +44 -30
  257. package/dist/runtime/locations/runtime.d.ts +5 -4
  258. package/dist/runtime/locations/runtime.js +123 -92
  259. package/dist/runtime/locations/spot-location-claims.d.ts +8 -2
  260. package/dist/runtime/locations/spot-location-claims.js +40 -23
  261. package/dist/runtime/messaging/payload-codec.js +26 -20
  262. package/dist/runtime/messaging/submission-result.d.ts +3 -0
  263. package/dist/runtime/messaging/submission-result.js +48 -0
  264. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +2 -0
  265. package/dist/runtime/protocol/service_wire_codec.generated.js +17 -8
  266. package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +1 -0
  267. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +3 -2
  268. package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +3 -3
  269. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +4 -4
  270. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +6 -3
  271. package/dist/runtime/spots/index.d.ts +29 -29
  272. package/dist/runtime/spots/index.js +441 -313
  273. package/dist/runtime/spots/spot-activation-registry.d.ts +4 -4
  274. package/dist/runtime/spots/spot-activation-registry.js +27 -60
  275. package/dist/runtime/spots/spot-activation-state.d.ts +2 -11
  276. package/dist/runtime/spots/spot-activation-state.js +4 -17
  277. package/dist/runtime/spots/spot-activation.d.ts +10 -9
  278. package/dist/runtime/spots/spot-activation.js +103 -81
  279. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  280. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  281. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  282. package/dist/runtime/spots/spot-actor-join-dispatch.js +5 -55
  283. package/dist/runtime/spots/spot-actor-lifecycle-drain.js +2 -2
  284. package/dist/runtime/spots/spot-actor-membership.d.ts +7 -5
  285. package/dist/runtime/spots/spot-actor-membership.js +44 -53
  286. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  287. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  288. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  289. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  290. package/dist/runtime/spots/spot-context.d.ts +2 -2
  291. package/dist/runtime/spots/spot-entry-activation.d.ts +3 -4
  292. package/dist/runtime/spots/spot-entry-activation.js +9 -21
  293. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  294. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  295. package/dist/runtime/spots/spot-manager-public.js +6 -5
  296. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  297. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +22 -21
  298. package/dist/runtime/spots/spot-node-runtime-manager.js +73 -82
  299. package/dist/runtime/spots/spot-outbound.d.ts +4 -3
  300. package/dist/runtime/spots/spot-outbound.js +10 -37
  301. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  302. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  303. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  304. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  305. package/dist/runtime/spots/spot-route-replies.js +3 -1
  306. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -2
  307. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -2
  308. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +2 -7
  309. package/dist/runtime/spots/spot-routed-frame-dispatch.js +1 -70
  310. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  311. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  312. package/dist/runtime/spots/spot-runtime-ports.d.ts +4 -20
  313. package/dist/runtime/spots/spot-serial-executor.d.ts +5 -0
  314. package/dist/runtime/spots/spot-serial-executor.js +9 -2
  315. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +29 -6
  316. package/dist/runtime/spots/spot-serial-turn-executor.js +89 -13
  317. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  318. package/dist/runtime/streams/actor-session-binding-registry.d.ts +17 -32
  319. package/dist/runtime/streams/actor-session-binding-registry.js +145 -367
  320. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +2 -6
  321. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
  322. package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
  323. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  324. package/dist/runtime/streams/bound-session-service.js +12 -19
  325. package/dist/runtime/streams/index.d.ts +15 -14
  326. package/dist/runtime/streams/index.js +38 -39
  327. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  328. package/dist/runtime/streams/managed-stream.js +17 -8
  329. package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
  330. package/dist/runtime/streams/protocol.d.ts +6 -33
  331. package/dist/runtime/streams/protocol.js +38 -110
  332. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  333. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  334. package/dist/runtime/streams/session-calls.d.ts +1 -1
  335. package/dist/runtime/streams/session-calls.js +5 -4
  336. package/dist/runtime/streams/session-context.d.ts +6 -6
  337. package/dist/runtime/streams/session-context.js +22 -4
  338. package/dist/runtime/streams/session-requests.js +2 -1
  339. package/dist/runtime/streams/session-serial-executor.js +2 -2
  340. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  341. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  342. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  343. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  344. package/dist/runtime/workers/index.d.ts +2 -2
  345. package/dist/runtime/workers/index.js +5 -4
  346. package/package.json +3 -3
  347. package/src/contracts/Channels/IZLinkFanoutClient.ts +0 -7
  348. package/src/contracts/Common/CoreTypes.ts +7 -0
  349. package/src/contracts/Common/index.ts +1 -1
  350. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  351. package/src/contracts/Configuration/Registration.ts +92 -48
  352. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  353. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
  354. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  355. package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
  356. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  357. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  358. package/src/contracts/Handlers/JsonContract.ts +14 -4
  359. package/src/contracts/Locations/Authority.ts +7 -3
  360. package/src/contracts/Locations/Options.ts +1 -1
  361. package/src/contracts/Locations/Stores.ts +14 -0
  362. package/src/contracts/RouteMesh/RuntimeTopology.ts +10 -0
  363. package/src/contracts/Spots/Contracts.ts +1 -1
  364. package/src/internal.ts +15 -0
  365. package/src/nest-integration.ts +28 -10
  366. package/src/runtime/abort.ts +6 -5
  367. package/src/runtime/activation-admission.ts +72 -0
  368. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  369. package/src/runtime/actors/actor-client.ts +77 -204
  370. package/src/runtime/actors/actor-context.ts +45 -39
  371. package/src/runtime/actors/actor-handoff.ts +55 -45
  372. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  373. package/src/runtime/actors/actor-local-native-join.ts +174 -215
  374. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  375. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  376. package/src/runtime/actors/actor-remote-joiner.ts +15 -36
  377. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  378. package/src/runtime/actors/actor-request-deadline.ts +49 -0
  379. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  380. package/src/runtime/actors/actor-runtime-contracts.ts +4 -10
  381. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  382. package/src/runtime/actors/actor-source-transfer.ts +5 -18
  383. package/src/runtime/actors/bound-session-wire.ts +2 -8
  384. package/src/runtime/actors/deferred-join-completion.ts +44 -0
  385. package/src/runtime/actors/index.ts +122 -88
  386. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  387. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  388. package/src/runtime/admission.ts +13 -2
  389. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  390. package/src/runtime/backend/contracts/index.ts +15 -42
  391. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -28
  392. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  393. package/src/runtime/backend/node/node-backend-adapter-factory.ts +5 -25
  394. package/src/runtime/backend/node/node-backend-adapter-support.ts +32 -35
  395. package/src/runtime/backend/node/node-event-loop-poller.ts +16 -8
  396. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  397. package/src/runtime/backend/node/node-raw-binding-port.ts +58 -23
  398. package/src/runtime/backend/node/node-raw-mesh-backend.ts +252 -162
  399. package/src/runtime/backend/node/node-socket-backend-adapter.ts +5 -4
  400. package/src/runtime/backend/raw-binding-port.ts +14 -1
  401. package/src/runtime/backend/runtime-values.ts +4 -1
  402. package/src/runtime/channels/channel-clients.ts +132 -96
  403. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  404. package/src/runtime/channels/channel-envelope.ts +58 -29
  405. package/src/runtime/channels/channel-outbound-operations.ts +10 -31
  406. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  407. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  408. package/src/runtime/channels/channel-runtime-manager.ts +8 -15
  409. package/src/runtime/channels/channel-socket-options.ts +8 -2
  410. package/src/runtime/channels/channel-socket-registry.ts +369 -262
  411. package/src/runtime/channels/channel-transports.ts +161 -115
  412. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  413. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  414. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  415. package/src/runtime/channels/fanout-location-runtime.ts +175 -106
  416. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  417. package/src/runtime/channels/spot-node-route-transport.ts +5 -2
  418. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  419. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  420. package/src/runtime/diagnostics/flow-context.ts +16 -2
  421. package/src/runtime/diagnostics/index.ts +27 -17
  422. package/src/runtime/diagnostics/message-flow.ts +15 -25
  423. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  424. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  425. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  426. package/src/runtime/disposal.ts +19 -0
  427. package/src/runtime/execution/index.ts +116 -38
  428. package/src/runtime/execution/serial-execution-queue.ts +179 -34
  429. package/src/runtime/execution/state-lane.ts +142 -4
  430. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  431. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  432. package/src/runtime/foundation/listener-records.ts +21 -0
  433. package/src/runtime/foundation/operation-identity.ts +11 -5
  434. package/src/runtime/foundation/operation-registry.ts +33 -50
  435. package/src/runtime/foundation/raw-service-mesh-runtime.ts +170 -571
  436. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  437. package/src/runtime/foundation/service-authority-payload-codec.ts +41 -13
  438. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  439. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  440. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  441. package/src/runtime/foundation/service-maintenance-runtime.ts +30 -19
  442. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  443. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  444. package/src/runtime/foundation/service-relocation-coordinator.ts +13 -0
  445. package/src/runtime/foundation/service-relocation-object-owner.ts +23 -7
  446. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  447. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  448. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -25
  449. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  450. package/src/runtime/foundation/service-stateful-runtime.ts +435 -327
  451. package/src/runtime/foundation/service-stateful-wire-codec.ts +329 -199
  452. package/src/runtime/foundation/service-topology-registry.ts +30 -79
  453. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  454. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  455. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  456. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  457. package/src/runtime/framework-errors-internal.ts +380 -134
  458. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  459. package/src/runtime/host/actor-packet-relay.ts +57 -147
  460. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  461. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  462. package/src/runtime/host/actor-transfer-runtime.ts +266 -418
  463. package/src/runtime/host/application-job-queue.ts +28 -34
  464. package/src/runtime/host/bound-session-relay.ts +1 -2
  465. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  466. package/src/runtime/host/index.ts +408 -312
  467. package/src/runtime/host/instance-activation-authority.ts +89 -109
  468. package/src/runtime/host/location-runtime-owner.ts +4 -2
  469. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  470. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  471. package/src/runtime/host/remote-bound-session-relay.ts +12 -44
  472. package/src/runtime/host/route-mesh-runtime.ts +236 -275
  473. package/src/runtime/host/runtime-shutdown.ts +17 -21
  474. package/src/runtime/host/service-relocation-control.ts +14 -1
  475. package/src/runtime/host/service-relocation-host-runtime.ts +1161 -904
  476. package/src/runtime/host/spot-address-transport.ts +73 -195
  477. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  478. package/src/runtime/host/spot-runtime-options-factory.ts +92 -30
  479. package/src/runtime/host/stateful-authority-route-runtime.ts +8 -4
  480. package/src/runtime/host/user-spot-creation-coordinator.ts +182 -163
  481. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  482. package/src/runtime/locations/authority-key-codec.ts +7 -3
  483. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  484. package/src/runtime/locations/creation-operation-id.ts +6 -3
  485. package/src/runtime/locations/domain-store-contract.ts +12 -3
  486. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  487. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  488. package/src/runtime/locations/in-memory-provider-location-store.ts +110 -31
  489. package/src/runtime/locations/key-codec.ts +3 -2
  490. package/src/runtime/locations/lease-tracker.ts +8 -14
  491. package/src/runtime/locations/lifecycle.ts +16 -45
  492. package/src/runtime/locations/location-store-failure.ts +4 -0
  493. package/src/runtime/locations/location-store-pages.ts +18 -0
  494. package/src/runtime/locations/location-store-repository.ts +450 -478
  495. package/src/runtime/locations/relocation-blob.ts +17 -6
  496. package/src/runtime/locations/resolvers.ts +90 -58
  497. package/src/runtime/locations/runtime.ts +220 -110
  498. package/src/runtime/locations/spot-location-claims.ts +54 -26
  499. package/src/runtime/messaging/payload-codec.ts +35 -24
  500. package/src/runtime/messaging/submission-result.ts +57 -1
  501. package/src/runtime/protocol/service_wire_codec.generated.ts +27 -10
  502. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +4 -4
  503. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +6 -6
  504. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +6 -3
  505. package/src/runtime/spots/index.ts +687 -437
  506. package/src/runtime/spots/spot-activation-registry.ts +42 -71
  507. package/src/runtime/spots/spot-activation-state.ts +4 -16
  508. package/src/runtime/spots/spot-activation.ts +167 -115
  509. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  510. package/src/runtime/spots/spot-actor-join-dispatch.ts +25 -79
  511. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +20 -18
  512. package/src/runtime/spots/spot-actor-membership.ts +107 -75
  513. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  514. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  515. package/src/runtime/spots/spot-context.ts +3 -3
  516. package/src/runtime/spots/spot-entry-activation.ts +13 -33
  517. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  518. package/src/runtime/spots/spot-manager-public.ts +29 -21
  519. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  520. package/src/runtime/spots/spot-node-runtime-manager.ts +145 -140
  521. package/src/runtime/spots/spot-outbound.ts +47 -68
  522. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  523. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  524. package/src/runtime/spots/spot-route-replies.ts +6 -4
  525. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -6
  526. package/src/runtime/spots/spot-routed-frame-dispatch.ts +6 -77
  527. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  528. package/src/runtime/spots/spot-runtime-ports.ts +10 -43
  529. package/src/runtime/spots/spot-serial-executor.ts +10 -2
  530. package/src/runtime/spots/spot-serial-turn-executor.ts +120 -13
  531. package/src/runtime/spots/spot-timer.ts +3 -2
  532. package/src/runtime/streams/actor-session-binding-registry.ts +182 -560
  533. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +1 -19
  534. package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
  535. package/src/runtime/streams/bound-session-service.ts +23 -37
  536. package/src/runtime/streams/index.ts +102 -88
  537. package/src/runtime/streams/managed-stream.ts +29 -10
  538. package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
  539. package/src/runtime/streams/protocol.ts +34 -88
  540. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  541. package/src/runtime/streams/session-calls.ts +6 -5
  542. package/src/runtime/streams/session-context.ts +54 -10
  543. package/src/runtime/streams/session-requests.ts +2 -1
  544. package/src/runtime/streams/session-serial-executor.ts +2 -2
  545. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  546. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  547. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  548. package/src/runtime/workers/index.ts +13 -12
  549. package/dist/runtime/actors/deferred-join-accepted-journal.d.ts +0 -47
  550. package/dist/runtime/actors/deferred-join-accepted-journal.js +0 -992
  551. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  552. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  553. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  554. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  555. package/src/runtime/actors/deferred-join-accepted-journal.ts +0 -1346
  556. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  557. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventLoopWorkQueues = exports.EventLoopResourceStack = void 0;
4
- const execution_1 = require("../execution");
3
+ exports.EventLoopResourceStack = void 0;
4
+ exports.closeResources = closeResources;
5
+ exports.finishResourceCleanup = finishResourceCleanup;
5
6
  /** Closes owned runtime resources once, in reverse acquisition order. */
6
7
  class EventLoopResourceStack {
7
8
  resources = [];
@@ -31,124 +32,10 @@ async function closeResources(resources) {
31
32
  failures.push(error);
32
33
  }
33
34
  }
35
+ finishResourceCleanup(failures);
36
+ }
37
+ function finishResourceCleanup(failures) {
34
38
  if (failures.length > 0) {
35
39
  throw new AggregateError(failures, 'Event-loop resource cleanup failed.');
36
40
  }
37
41
  }
38
- /** Keeps infrastructure progress independent from awaiting application handlers. */
39
- class EventLoopWorkQueues {
40
- infrastructure = [];
41
- infrastructureHead = 0;
42
- infrastructureCount = 0;
43
- application = [];
44
- applicationHead = 0;
45
- applicationCount = 0;
46
- infrastructureScheduled = false;
47
- applicationScheduled = false;
48
- accepting = true;
49
- submitInfrastructure(task) {
50
- if (!this.accepting)
51
- return false;
52
- this.infrastructure.push(task);
53
- this.infrastructureCount += 1;
54
- this.scheduleInfrastructure();
55
- return true;
56
- }
57
- submitApplication(task) {
58
- if (!this.accepting)
59
- return false;
60
- this.application.push(task);
61
- this.applicationCount += 1;
62
- this.scheduleApplication();
63
- return true;
64
- }
65
- stopAdmission() {
66
- this.accepting = false;
67
- }
68
- scheduleInfrastructure() {
69
- if (this.infrastructureScheduled)
70
- return;
71
- this.infrastructureScheduled = true;
72
- queueMicrotask(() => this.drainInfrastructure());
73
- }
74
- drainInfrastructure() {
75
- this.infrastructureScheduled = false;
76
- const task = this.takeInfrastructure();
77
- if (task === undefined)
78
- return;
79
- try {
80
- const result = (0, execution_1.runZLinkExecutionArea)('infrastructure', task);
81
- if (result instanceof Promise)
82
- void result.catch(() => undefined);
83
- }
84
- finally {
85
- if (this.infrastructureCount > 0)
86
- this.scheduleInfrastructure();
87
- }
88
- }
89
- scheduleApplication() {
90
- if (this.applicationScheduled)
91
- return;
92
- this.applicationScheduled = true;
93
- queueMicrotask(() => void this.drainApplication());
94
- }
95
- async drainApplication() {
96
- try {
97
- const task = this.takeApplication();
98
- if (task !== undefined) {
99
- await (0, execution_1.runZLinkExecutionArea)('application', task);
100
- }
101
- }
102
- catch {
103
- // Handler failure is reported by the dispatch owner; it does not stop this queue.
104
- }
105
- finally {
106
- this.applicationScheduled = false;
107
- if (this.applicationCount > 0)
108
- this.scheduleApplication();
109
- }
110
- }
111
- takeInfrastructure() {
112
- const task = this.infrastructure[this.infrastructureHead];
113
- if (task === undefined)
114
- return undefined;
115
- this.infrastructure[this.infrastructureHead] = undefined;
116
- this.infrastructureHead += 1;
117
- this.infrastructureCount -= 1;
118
- this.compactInfrastructure();
119
- return task;
120
- }
121
- takeApplication() {
122
- const task = this.application[this.applicationHead];
123
- if (task === undefined)
124
- return undefined;
125
- this.application[this.applicationHead] = undefined;
126
- this.applicationHead += 1;
127
- this.applicationCount -= 1;
128
- this.compactApplication();
129
- return task;
130
- }
131
- compactInfrastructure() {
132
- if (this.infrastructureCount === 0) {
133
- this.infrastructure.length = 0;
134
- this.infrastructureHead = 0;
135
- }
136
- else if (this.infrastructureHead >= 1024 &&
137
- this.infrastructureHead * 2 >= this.infrastructure.length) {
138
- this.infrastructure.splice(0, this.infrastructureHead);
139
- this.infrastructureHead = 0;
140
- }
141
- }
142
- compactApplication() {
143
- if (this.applicationCount === 0) {
144
- this.application.length = 0;
145
- this.applicationHead = 0;
146
- }
147
- else if (this.applicationHead >= 1024 &&
148
- this.applicationHead * 2 >= this.application.length) {
149
- this.application.splice(0, this.applicationHead);
150
- this.applicationHead = 0;
151
- }
152
- }
153
- }
154
- exports.EventLoopWorkQueues = EventLoopWorkQueues;
@@ -0,0 +1,11 @@
1
+ import type { ZLinkListenerKind } from '../../contracts/RouteMesh/RuntimeTopology';
2
+ /**
3
+ * Bound listener records of one runtime generation (spec 04 §3.1). A listener writes its
4
+ * record when it finishes binding. The listener status query reads only this object.
5
+ */
6
+ export declare class ZLinkListenerRecords {
7
+ private readonly endpoints;
8
+ record(kind: ZLinkListenerKind, name: string, endpoint: string): void;
9
+ clear(): void;
10
+ endpoint(kind: ZLinkListenerKind, name: string): string | undefined;
11
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZLinkListenerRecords = void 0;
4
+ /**
5
+ * Bound listener records of one runtime generation (spec 04 §3.1). A listener writes its
6
+ * record when it finishes binding. The listener status query reads only this object.
7
+ */
8
+ class ZLinkListenerRecords {
9
+ endpoints = new Map();
10
+ record(kind, name, endpoint) {
11
+ this.endpoints.set(`${kind}:${name}`, endpoint);
12
+ }
13
+ clear() {
14
+ this.endpoints.clear();
15
+ }
16
+ endpoint(kind, name) {
17
+ return this.endpoints.get(`${kind}:${name}`);
18
+ }
19
+ }
20
+ exports.ZLinkListenerRecords = ZLinkListenerRecords;
@@ -1,3 +1,5 @@
1
+ export declare const OPERATION_IDENTITY_BYTES = 16;
2
+ export declare const ZLINK_NATIVE_CORRELATION_OPERATION_NAMESPACE = 2n;
1
3
  export interface ZLinkOperationIdentity128 {
2
4
  readonly high: bigint;
3
5
  readonly low: bigint;
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZLINK_NATIVE_CORRELATION_OPERATION_NAMESPACE = exports.OPERATION_IDENTITY_BYTES = void 0;
3
4
  exports.operationIdentityKey = operationIdentityKey;
4
5
  exports.createRandomOperationIdentity = createRandomOperationIdentity;
6
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
5
7
  const node_crypto_1 = require("node:crypto");
8
+ exports.OPERATION_IDENTITY_BYTES = 16;
9
+ exports.ZLINK_NATIVE_CORRELATION_OPERATION_NAMESPACE = 2n;
6
10
  function operationIdentityKey(operationId) {
7
11
  requireUnsigned64(operationId.high, 'operationId.high');
8
12
  requireUnsigned64(operationId.low, 'operationId.low');
@@ -13,13 +17,13 @@ function operationIdentityKey(operationId) {
13
17
  }
14
18
  function createRandomOperationIdentity(source = node_crypto_1.randomBytes) {
15
19
  for (;;) {
16
- const bytes = source(16);
17
- if (bytes.length !== 16) {
18
- throw new RangeError('Operation identity entropy source must return exactly 16 bytes.');
20
+ const bytes = source(exports.OPERATION_IDENTITY_BYTES);
21
+ if (bytes.length !== exports.OPERATION_IDENTITY_BYTES) {
22
+ throw new RangeError(`Operation identity entropy source must return exactly ${exports.OPERATION_IDENTITY_BYTES} bytes.`);
19
23
  }
20
24
  const operationId = {
21
25
  high: bytes.readBigUInt64BE(0),
22
- low: bytes.readBigUInt64BE(8)
26
+ low: bytes.readBigUInt64BE(stream_wire_1.UINT64_BYTES)
23
27
  };
24
28
  if (operationId.high !== 0n || operationId.low !== 0n) {
25
29
  return operationId;
@@ -27,7 +31,7 @@ function createRandomOperationIdentity(source = node_crypto_1.randomBytes) {
27
31
  }
28
32
  }
29
33
  function requireUnsigned64(value, name) {
30
- if (typeof value !== 'bigint' || value < 0n || value > 0xffffffffffffffffn) {
34
+ if (typeof value !== 'bigint' || value < 0n || value > stream_wire_1.UINT64_MAX) {
31
35
  throw new RangeError(`${name} must be an unsigned 64-bit integer.`);
32
36
  }
33
37
  }
@@ -1,6 +1,5 @@
1
1
  export interface OperationClock {
2
- setTimeout(callback: () => void, delayMs: number): unknown;
3
- clearTimeout(handle: unknown): void;
2
+ now(): number;
4
3
  }
5
4
  export declare class OperationTimeoutError extends Error {
6
5
  readonly operationId: bigint;
@@ -17,20 +16,19 @@ export interface PendingOperation<T> {
17
16
  /** Owns request completion so reply, timeout, cancellation, and shutdown race safely. */
18
17
  export declare class OperationRegistry<T> {
19
18
  private readonly clock;
19
+ private readonly onPendingChanged?;
20
20
  private readonly entries;
21
21
  private nextId;
22
- private generation;
22
+ private deadlineCursor?;
23
23
  private closed;
24
- constructor(clock?: OperationClock);
24
+ constructor(clock?: OperationClock, onPendingChanged?: (() => void) | undefined);
25
25
  register(timeoutMs: number, timeoutOwner?: 'registry' | 'sender'): PendingOperation<T>;
26
26
  complete(id: bigint, value: T): boolean;
27
27
  fail(id: bigint, reason: unknown): boolean;
28
- private failCore;
29
28
  cancel(id: bigint, message?: string): boolean;
30
29
  isPending(id: bigint): boolean;
31
30
  close(reason?: string): void;
32
31
  get size(): number;
33
- private rejectIfCurrent;
32
+ expire(nowMs: number, turnDeadlineMs: number): number;
34
33
  private take;
35
- private clearTimer;
36
34
  }
@@ -20,25 +20,19 @@ class OperationCancelledError extends Error {
20
20
  }
21
21
  exports.OperationCancelledError = OperationCancelledError;
22
22
  const systemClock = {
23
- setTimeout(callback, delayMs) {
24
- // A request promise is live work. Raw RouteMesh polling deliberately
25
- // uses unref'ed timers, so this deadline is the handle that keeps a
26
- // submit() caller alive until a reply, cancellation, or deadline settles.
27
- return setTimeout(callback, delayMs);
28
- },
29
- clearTimeout(handle) {
30
- clearTimeout(handle);
31
- }
23
+ now: () => performance.now()
32
24
  };
33
25
  /** Owns request completion so reply, timeout, cancellation, and shutdown race safely. */
34
26
  class OperationRegistry {
35
27
  clock;
28
+ onPendingChanged;
36
29
  entries = new Map();
37
30
  nextId = 1n;
38
- generation = 1n;
31
+ deadlineCursor;
39
32
  closed = false;
40
- constructor(clock = systemClock) {
33
+ constructor(clock = systemClock, onPendingChanged) {
41
34
  this.clock = clock;
35
+ this.onPendingChanged = onPendingChanged;
42
36
  }
43
37
  register(timeoutMs, timeoutOwner = 'registry') {
44
38
  if (this.closed)
@@ -47,20 +41,20 @@ class OperationRegistry {
47
41
  throw new RangeError('timeoutMs must be a non-negative finite number.');
48
42
  }
49
43
  const id = this.nextId++;
50
- const generation = this.generation;
51
44
  let resolve;
52
45
  let reject;
53
46
  const promise = new Promise((onResolve, onReject) => {
54
47
  resolve = onResolve;
55
48
  reject = onReject;
56
49
  });
57
- const entry = { generation, resolve, reject };
50
+ const entry = {
51
+ deadlineMs: timeoutOwner === 'registry' ? this.clock.now() + timeoutMs : undefined,
52
+ resolve,
53
+ reject
54
+ };
58
55
  this.entries.set(id, entry);
59
- // Durable senders classify exhaustion from admission history. Keep their
60
- // identity and cancellation here without racing that decision with a timer.
61
- if (timeoutOwner === 'registry') {
62
- entry.timer = this.clock.setTimeout(() => this.rejectIfCurrent(id, generation, new OperationTimeoutError(id)), timeoutMs);
63
- }
56
+ if (this.entries.size === 1)
57
+ this.onPendingChanged?.();
64
58
  return { id, promise };
65
59
  }
66
60
  complete(id, value) {
@@ -71,9 +65,6 @@ class OperationRegistry {
71
65
  return true;
72
66
  }
73
67
  fail(id, reason) {
74
- return this.failCore(id, reason);
75
- }
76
- failCore(id, reason) {
77
68
  const entry = this.take(id);
78
69
  if (entry === undefined)
79
70
  return false;
@@ -81,7 +72,7 @@ class OperationRegistry {
81
72
  return true;
82
73
  }
83
74
  cancel(id, message) {
84
- return this.failCore(id, new OperationCancelledError(id, message));
75
+ return this.fail(id, new OperationCancelledError(id, message));
85
76
  }
86
77
  isPending(id) {
87
78
  return this.entries.has(id);
@@ -90,39 +81,38 @@ class OperationRegistry {
90
81
  if (this.closed)
91
82
  return;
92
83
  this.closed = true;
93
- this.generation++;
94
- const pending = [...this.entries.entries()];
95
- this.entries.clear();
96
- for (const [, entry] of pending)
97
- this.clearTimer(entry);
98
- for (const [id, entry] of pending) {
99
- entry.reject(new OperationCancelledError(id, reason));
100
- }
84
+ for (const id of this.entries.keys())
85
+ this.cancel(id, reason);
86
+ this.deadlineCursor = undefined;
101
87
  }
102
88
  get size() {
103
89
  return this.entries.size;
104
90
  }
105
- rejectIfCurrent(id, generation, reason) {
106
- const entry = this.entries.get(id);
107
- if (entry === undefined || entry.generation !== generation)
108
- return;
109
- this.entries.delete(id);
110
- this.clearTimer(entry);
111
- entry.reject(reason);
91
+ expire(nowMs, turnDeadlineMs) {
92
+ let expired = 0;
93
+ while (this.clock.now() < turnDeadlineMs) {
94
+ this.deadlineCursor ??= this.entries.entries();
95
+ const current = this.deadlineCursor.next();
96
+ if (current.done === true) {
97
+ this.deadlineCursor = undefined;
98
+ break;
99
+ }
100
+ const [id, entry] = current.value;
101
+ if (entry.deadlineMs !== undefined && entry.deadlineMs <= nowMs) {
102
+ if (this.fail(id, new OperationTimeoutError(id)))
103
+ expired++;
104
+ }
105
+ }
106
+ return expired;
112
107
  }
113
108
  take(id) {
114
109
  const entry = this.entries.get(id);
115
110
  if (entry === undefined)
116
111
  return undefined;
117
112
  this.entries.delete(id);
118
- this.clearTimer(entry);
113
+ if (this.entries.size === 0)
114
+ this.onPendingChanged?.();
119
115
  return entry;
120
116
  }
121
- clearTimer(entry) {
122
- if (entry.timer === undefined)
123
- return;
124
- this.clock.clearTimeout(entry.timer);
125
- entry.timer = undefined;
126
- }
127
117
  }
128
118
  exports.OperationRegistry = OperationRegistry;
@@ -1,7 +1,7 @@
1
+ import { ApplicationIngressRecordOwner } from '../application-jobs/application-ingress-record-owner';
2
+ import type { ApplicationJobQueuePort } from '../application-jobs/contracts';
1
3
  import type { ZLinkRawBindingPort } from '../backend/raw-binding-port';
2
4
  import { SubmitResult } from '../backend/runtime-values';
3
- import type { ApplicationJobQueuePort } from '../application-jobs/contracts';
4
- import { ApplicationIngressRecordOwner } from '../application-jobs/application-ingress-record-owner';
5
5
  import { type PendingOperation } from './operation-registry';
6
6
  import { ServiceLivenessRegistry, type ServiceLivenessTick } from './service-liveness-registry';
7
7
  import { ServiceMailbox, type ServiceMailboxRecord } from './service-mailbox';
@@ -29,6 +29,7 @@ export interface RawServiceIngressRecord {
29
29
  }
30
30
  export type RawServiceIngressHandler = (record: RawServiceIngressRecord) => RawServicePumpResult | undefined | Promise<RawServicePumpResult | undefined>;
31
31
  export interface RawServiceMeshRuntimeOptions {
32
+ readonly onPendingOperationsChanged?: () => void;
32
33
  readonly descriptor: ServiceNodeDescriptor;
33
34
  readonly resolveAdvertisedEndpoint?: (boundEndpoint: string) => string;
34
35
  readonly probeIntervalMs?: number;
@@ -47,6 +48,7 @@ export interface RawServiceMeshRuntimeOptions {
47
48
  readonly command?: number;
48
49
  }) => void;
49
50
  }
51
+ export declare const RAW_MESH_RECEIVE_TIME_BUDGET_MS = 2;
50
52
  /**
51
53
  * RouteMesh M6A runtime built only on the public raw binding package.
52
54
  * It owns protocol, admission, mailbox, request and liveness state.
@@ -59,17 +61,11 @@ export declare class RawServiceMeshRuntime {
59
61
  private readonly expectedPeers;
60
62
  private readonly endpointOnlyPeers;
61
63
  private readonly peerConnectionIntentRemoved;
62
- private readonly connectionCandidates;
63
- private readonly unresolvedConnectionCandidates;
64
- private readonly connectionIds;
65
64
  /**
66
- * The monitor drain updates this fence before the event reaches the
67
- * normal runtime handler. `null` means that the last observed pair is no
68
- * longer usable by the application route.
65
+ * The last observed Core selected route of each RID (Core ROUTER §10.1):
66
+ * RID -> route generation. Only `observeSelectedRoutes` replaces it.
69
67
  */
70
- private readonly monitorConnectionStates;
71
- private monitorEvents;
72
- private monitorDrainBuffer;
68
+ private selectedRoutes;
73
69
  private readonly bindingPort;
74
70
  private readonly applicationJobQueue;
75
71
  private readonly peerAdmissionSealed?;
@@ -82,7 +78,6 @@ export declare class RawServiceMeshRuntime {
82
78
  private descriptor;
83
79
  private host?;
84
80
  private router?;
85
- private monitor?;
86
81
  private nextCorrelation;
87
82
  private serviceIngress?;
88
83
  private closed;
@@ -112,7 +107,6 @@ export declare class RawServiceMeshRuntime {
112
107
  requestToNode(targetNodeRoutingId: string, payload: ServiceApplicationPayloadInput, timeoutMs: number): PendingOperation<RawServiceRequestResult>;
113
108
  requestToChannel(channelName: string, payload: ServiceApplicationPayloadInput, timeoutMs: number): PendingOperation<RawServiceRequestResult>;
114
109
  private selectChannelTarget;
115
- private isLocalOrReadyPeer;
116
110
  setServiceIngress(handler: RawServiceIngressHandler): void;
117
111
  reserveLocalIngress(signal?: AbortSignal): Promise<ApplicationIngressRecordOwner>;
118
112
  sendService(targetNodeRoutingId: string, parts: readonly Uint8Array[]): Promise<boolean>;
@@ -120,16 +114,23 @@ export declare class RawServiceMeshRuntime {
120
114
  replyService(record: Pick<RawServiceIngressRecord, 'sourceRoutingId' | 'sourceRoute' | 'requestSequence' | 'reply'>, parts: readonly Uint8Array[]): void;
121
115
  reply(request: ServiceMailboxRecord, payload: ServiceApplicationPayloadInput, terminalResult?: number, failureCode?: number): void;
122
116
  pumpOne(nowMs?: number, observe?: RawServicePumpObserver): Promise<RawServicePumpResult>;
123
- setReadableHandler(handler: () => void): void;
117
+ setReadableHandler(handler: (receiveReady: boolean, routeReady: boolean) => void): void;
124
118
  /** Returns whether a receive budget ended before no-data; idle ticks only maintain peers. */
125
- pumpBatch(receiveReady?: boolean): Promise<boolean>;
119
+ pumpBatch(receiveReady?: boolean, routeReady?: boolean): Promise<boolean>;
126
120
  private receiveOne;
127
- private pullMonitorEvents;
128
121
  private reportProtocolError;
129
122
  private replyGenericProtocolError;
130
123
  private processReceived;
124
+ expireOperations(nowMs: number, turnDeadlineMs: number): number;
125
+ get pendingOperationCount(): number;
131
126
  tickLiveness(nowMs?: number): Promise<ServiceLivenessTick>;
132
- drainMonitorEvents(nowMs?: number): Promise<number>;
127
+ /**
128
+ * The socket's one route observer (Core ROUTER §10.1). It replaces the
129
+ * observation with Core's selected-route snapshot, ends the admission of
130
+ * every RID whose observed route disappeared or was replaced, and starts the
131
+ * handshake of every newly selected route. Returns the number of changes.
132
+ */
133
+ observeSelectedRoutes(): Promise<number>;
133
134
  close(): void;
134
135
  private requestToTarget;
135
136
  /**
@@ -139,18 +140,9 @@ export declare class RawServiceMeshRuntime {
139
140
  private applicationFrame;
140
141
  private applicationPayload;
141
142
  private admitPeer;
142
- private currentConnectionCandidate;
143
- private createConnectionCandidate;
144
- private createUnresolvedConnectionCandidate;
145
- private promoteUnresolvedConnectionCandidate;
146
- private removeConnectionCandidate;
147
- private isDiscoveredLifecycleReplacement;
148
- private expectedPeerRoutingId;
149
- private acceptsExpectedMonitorEndpoint;
150
143
  private retireNotRequiredExpectedPeer;
151
144
  private selectBilateralConnection;
152
145
  private removePeer;
153
- private observeMonitorEvent;
154
146
  private requireStarted;
155
147
  private send;
156
148
  }