@zlink-systems/framework 0.26.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 (521) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  3. package/dist/contracts/Common/CoreTypes.js +7 -0
  4. package/dist/contracts/Common/index.d.ts +1 -1
  5. package/dist/contracts/Common/index.js +0 -1
  6. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  7. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  8. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  9. package/dist/contracts/Configuration/Registration.js +58 -36
  10. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  11. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  12. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  13. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  14. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  15. package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
  16. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  17. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  18. package/dist/contracts/Handlers/JsonContract.js +10 -4
  19. package/dist/contracts/Locations/Authority.d.ts +1 -1
  20. package/dist/contracts/Locations/Authority.js +3 -2
  21. package/dist/contracts/Locations/Options.js +1 -1
  22. package/dist/contracts/Locations/Stores.d.ts +12 -0
  23. package/dist/contracts/Locations/Stores.js +9 -0
  24. package/dist/contracts/Spots/Contracts.d.ts +1 -1
  25. package/dist/internal.d.ts +4 -0
  26. package/dist/internal.js +15 -1
  27. package/dist/nest-integration.d.ts +4 -2
  28. package/dist/nest-integration.js +14 -4
  29. package/dist/runtime/abort.d.ts +1 -0
  30. package/dist/runtime/abort.js +8 -5
  31. package/dist/runtime/activation-admission.d.ts +1 -2
  32. package/dist/runtime/activation-admission.js +2 -6
  33. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  34. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  35. package/dist/runtime/actors/actor-client.d.ts +2 -2
  36. package/dist/runtime/actors/actor-client.js +42 -143
  37. package/dist/runtime/actors/actor-context.d.ts +3 -5
  38. package/dist/runtime/actors/actor-context.js +13 -11
  39. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  40. package/dist/runtime/actors/actor-handoff.js +8 -8
  41. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  42. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  43. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  44. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  45. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  46. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  47. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  48. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  49. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  50. package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
  51. package/dist/runtime/actors/actor-request-deadline.js +31 -0
  52. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  53. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  54. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  55. package/dist/runtime/actors/bound-session-wire.js +2 -7
  56. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  57. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  58. package/dist/runtime/actors/index.d.ts +9 -7
  59. package/dist/runtime/actors/index.js +87 -69
  60. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  61. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  62. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  63. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  64. package/dist/runtime/admission.d.ts +2 -0
  65. package/dist/runtime/admission.js +7 -1
  66. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  67. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  68. package/dist/runtime/backend/contracts/index.d.ts +6 -23
  69. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  70. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  71. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  72. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +1 -1
  73. package/dist/runtime/backend/node/node-backend-adapter-support.js +16 -6
  74. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  75. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  76. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  77. package/dist/runtime/backend/node/node-raw-binding-port.js +40 -16
  78. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  79. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  80. package/dist/runtime/backend/node/node-socket-backend-adapter.js +3 -2
  81. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  82. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  83. package/dist/runtime/backend/runtime-values.js +2 -0
  84. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  85. package/dist/runtime/channels/channel-clients.js +68 -52
  86. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  87. package/dist/runtime/channels/channel-envelope.js +47 -29
  88. package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
  89. package/dist/runtime/channels/channel-outbound-operations.js +9 -10
  90. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  91. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  92. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  93. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  94. package/dist/runtime/channels/channel-runtime-manager.js +5 -2
  95. package/dist/runtime/channels/channel-socket-options.js +3 -2
  96. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  97. package/dist/runtime/channels/channel-socket-registry.js +248 -174
  98. package/dist/runtime/channels/channel-transports.d.ts +11 -17
  99. package/dist/runtime/channels/channel-transports.js +68 -47
  100. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  101. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  102. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  103. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  104. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  105. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  106. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  107. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  108. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  109. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  110. package/dist/runtime/channels/spot-node-route-transport.js +3 -2
  111. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  112. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  113. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  114. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  115. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  116. package/dist/runtime/diagnostics/flow-context.js +16 -2
  117. package/dist/runtime/diagnostics/index.d.ts +4 -2
  118. package/dist/runtime/diagnostics/index.js +14 -4
  119. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  120. package/dist/runtime/diagnostics/message-flow.js +10 -19
  121. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  122. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  123. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  124. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  125. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  126. package/dist/runtime/disposal.d.ts +5 -0
  127. package/dist/runtime/disposal.js +22 -0
  128. package/dist/runtime/execution/index.d.ts +12 -9
  129. package/dist/runtime/execution/index.js +58 -14
  130. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  131. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  132. package/dist/runtime/execution/state-lane.d.ts +8 -1
  133. package/dist/runtime/execution/state-lane.js +118 -3
  134. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  135. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  136. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  137. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  138. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  139. package/dist/runtime/foundation/operation-identity.js +9 -5
  140. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  141. package/dist/runtime/foundation/operation-registry.js +34 -44
  142. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  143. package/dist/runtime/foundation/raw-service-mesh-runtime.js +62 -83
  144. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  145. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  146. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  147. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  148. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  149. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  150. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  151. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  152. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  153. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  154. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  155. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  156. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  157. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  158. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  159. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  160. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  161. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  162. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  163. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  164. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  165. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  166. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  167. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  168. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  169. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  170. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  171. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  172. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  173. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  174. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  175. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  176. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  177. package/dist/runtime/framework-errors-internal.js +343 -122
  178. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  179. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  180. package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
  181. package/dist/runtime/host/actor-packet-relay.js +48 -91
  182. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  183. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  184. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  185. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  186. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  187. package/dist/runtime/host/application-job-queue.js +16 -33
  188. package/dist/runtime/host/bound-session-relay.js +1 -1
  189. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  190. package/dist/runtime/host/index.d.ts +14 -13
  191. package/dist/runtime/host/index.js +190 -157
  192. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  193. package/dist/runtime/host/instance-activation-authority.js +17 -45
  194. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  195. package/dist/runtime/host/location-runtime-owner.js +2 -2
  196. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  197. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  198. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  199. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  200. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  201. package/dist/runtime/host/remote-bound-session-relay.js +7 -20
  202. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  203. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  204. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  205. package/dist/runtime/host/runtime-shutdown.js +18 -21
  206. package/dist/runtime/host/service-relocation-control.js +6 -1
  207. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  208. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  209. package/dist/runtime/host/spot-address-transport.d.ts +2 -3
  210. package/dist/runtime/host/spot-address-transport.js +34 -136
  211. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  212. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  213. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  214. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  215. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  216. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  217. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  218. package/dist/runtime/locations/authority-key-codec.js +4 -3
  219. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  220. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  221. package/dist/runtime/locations/creation-operation-id.js +6 -4
  222. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  223. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  224. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  225. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  226. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  227. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  228. package/dist/runtime/locations/key-codec.js +3 -2
  229. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  230. package/dist/runtime/locations/lease-tracker.js +7 -11
  231. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  232. package/dist/runtime/locations/lifecycle.js +2 -31
  233. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  234. package/dist/runtime/locations/location-store-failure.js +7 -0
  235. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  236. package/dist/runtime/locations/location-store-pages.js +13 -0
  237. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  238. package/dist/runtime/locations/location-store-repository.js +303 -332
  239. package/dist/runtime/locations/relocation-blob.js +18 -5
  240. package/dist/runtime/locations/resolvers.d.ts +5 -5
  241. package/dist/runtime/locations/resolvers.js +37 -28
  242. package/dist/runtime/locations/runtime.d.ts +5 -4
  243. package/dist/runtime/locations/runtime.js +123 -92
  244. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  245. package/dist/runtime/locations/spot-location-claims.js +42 -1
  246. package/dist/runtime/messaging/payload-codec.js +26 -20
  247. package/dist/runtime/messaging/submission-result.d.ts +3 -0
  248. package/dist/runtime/messaging/submission-result.js +48 -0
  249. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  250. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  251. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  252. package/dist/runtime/spots/index.d.ts +14 -20
  253. package/dist/runtime/spots/index.js +302 -176
  254. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  255. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  256. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  257. package/dist/runtime/spots/spot-activation-state.js +2 -2
  258. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  259. package/dist/runtime/spots/spot-activation.js +49 -32
  260. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  261. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  262. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  263. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  264. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  265. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  266. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  267. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  268. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  269. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  270. package/dist/runtime/spots/spot-context.d.ts +2 -2
  271. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  272. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  273. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  274. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  275. package/dist/runtime/spots/spot-manager-public.js +5 -4
  276. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  277. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  278. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  279. package/dist/runtime/spots/spot-outbound.d.ts +4 -3
  280. package/dist/runtime/spots/spot-outbound.js +9 -8
  281. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  282. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  283. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  284. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  285. package/dist/runtime/spots/spot-route-replies.js +3 -1
  286. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  287. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  288. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  289. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  290. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  291. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  292. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  293. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  294. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  295. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  296. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  297. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  298. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  299. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  300. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
  301. package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
  302. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  303. package/dist/runtime/streams/bound-session-service.js +11 -1
  304. package/dist/runtime/streams/index.d.ts +14 -15
  305. package/dist/runtime/streams/index.js +20 -21
  306. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  307. package/dist/runtime/streams/managed-stream.js +17 -8
  308. package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
  309. package/dist/runtime/streams/protocol.d.ts +6 -33
  310. package/dist/runtime/streams/protocol.js +38 -110
  311. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  312. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  313. package/dist/runtime/streams/session-calls.d.ts +1 -1
  314. package/dist/runtime/streams/session-calls.js +5 -4
  315. package/dist/runtime/streams/session-context.d.ts +6 -6
  316. package/dist/runtime/streams/session-context.js +22 -4
  317. package/dist/runtime/streams/session-requests.js +2 -1
  318. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  319. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  320. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  321. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  322. package/dist/runtime/workers/index.d.ts +2 -2
  323. package/dist/runtime/workers/index.js +5 -4
  324. package/package.json +3 -3
  325. package/src/contracts/Common/CoreTypes.ts +7 -0
  326. package/src/contracts/Common/index.ts +1 -1
  327. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  328. package/src/contracts/Configuration/Registration.ts +92 -48
  329. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  330. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
  331. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  332. package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
  333. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  334. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  335. package/src/contracts/Handlers/JsonContract.ts +14 -4
  336. package/src/contracts/Locations/Authority.ts +7 -3
  337. package/src/contracts/Locations/Options.ts +1 -1
  338. package/src/contracts/Locations/Stores.ts +14 -0
  339. package/src/contracts/Spots/Contracts.ts +1 -1
  340. package/src/internal.ts +14 -0
  341. package/src/nest-integration.ts +28 -10
  342. package/src/runtime/abort.ts +6 -5
  343. package/src/runtime/activation-admission.ts +2 -8
  344. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  345. package/src/runtime/actors/actor-client.ts +77 -204
  346. package/src/runtime/actors/actor-context.ts +39 -33
  347. package/src/runtime/actors/actor-handoff.ts +24 -22
  348. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  349. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  350. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  351. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  352. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  353. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  354. package/src/runtime/actors/actor-request-deadline.ts +49 -0
  355. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  356. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  357. package/src/runtime/actors/bound-session-wire.ts +2 -8
  358. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  359. package/src/runtime/actors/index.ts +100 -79
  360. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  361. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  362. package/src/runtime/admission.ts +8 -1
  363. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  364. package/src/runtime/backend/contracts/index.ts +13 -29
  365. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  366. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  367. package/src/runtime/backend/node/node-backend-adapter-support.ts +23 -6
  368. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  369. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  370. package/src/runtime/backend/node/node-raw-binding-port.ts +41 -20
  371. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  372. package/src/runtime/backend/node/node-socket-backend-adapter.ts +3 -2
  373. package/src/runtime/backend/raw-binding-port.ts +1 -1
  374. package/src/runtime/backend/runtime-values.ts +4 -1
  375. package/src/runtime/channels/channel-clients.ts +132 -85
  376. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  377. package/src/runtime/channels/channel-envelope.ts +58 -29
  378. package/src/runtime/channels/channel-outbound-operations.ts +10 -23
  379. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  380. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  381. package/src/runtime/channels/channel-runtime-manager.ts +6 -2
  382. package/src/runtime/channels/channel-socket-options.ts +8 -2
  383. package/src/runtime/channels/channel-socket-registry.ts +301 -192
  384. package/src/runtime/channels/channel-transports.ts +161 -112
  385. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  386. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  387. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  388. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  389. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  390. package/src/runtime/channels/spot-node-route-transport.ts +5 -2
  391. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  392. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  393. package/src/runtime/diagnostics/flow-context.ts +16 -2
  394. package/src/runtime/diagnostics/index.ts +27 -17
  395. package/src/runtime/diagnostics/message-flow.ts +15 -25
  396. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  397. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  398. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  399. package/src/runtime/disposal.ts +19 -0
  400. package/src/runtime/execution/index.ts +60 -20
  401. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  402. package/src/runtime/execution/state-lane.ts +142 -4
  403. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  404. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  405. package/src/runtime/foundation/operation-identity.ts +11 -5
  406. package/src/runtime/foundation/operation-registry.ts +33 -50
  407. package/src/runtime/foundation/raw-service-mesh-runtime.ts +110 -111
  408. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  409. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  410. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  411. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  412. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  413. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  414. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  415. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  416. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  417. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  418. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  419. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  420. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  421. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  422. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  423. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  424. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  425. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  426. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  427. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  428. package/src/runtime/framework-errors-internal.ts +380 -134
  429. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  430. package/src/runtime/host/actor-packet-relay.ts +57 -147
  431. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  432. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  433. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  434. package/src/runtime/host/application-job-queue.ts +28 -34
  435. package/src/runtime/host/bound-session-relay.ts +1 -2
  436. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  437. package/src/runtime/host/index.ts +327 -296
  438. package/src/runtime/host/instance-activation-authority.ts +89 -109
  439. package/src/runtime/host/location-runtime-owner.ts +4 -2
  440. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  441. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  442. package/src/runtime/host/remote-bound-session-relay.ts +8 -41
  443. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  444. package/src/runtime/host/runtime-shutdown.ts +17 -21
  445. package/src/runtime/host/service-relocation-control.ts +14 -1
  446. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  447. package/src/runtime/host/spot-address-transport.ts +73 -195
  448. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  449. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  450. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  451. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  452. package/src/runtime/locations/authority-key-codec.ts +7 -3
  453. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  454. package/src/runtime/locations/creation-operation-id.ts +6 -3
  455. package/src/runtime/locations/domain-store-contract.ts +12 -3
  456. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  457. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  458. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  459. package/src/runtime/locations/key-codec.ts +3 -2
  460. package/src/runtime/locations/lease-tracker.ts +8 -14
  461. package/src/runtime/locations/lifecycle.ts +13 -43
  462. package/src/runtime/locations/location-store-failure.ts +4 -0
  463. package/src/runtime/locations/location-store-pages.ts +18 -0
  464. package/src/runtime/locations/location-store-repository.ts +450 -478
  465. package/src/runtime/locations/relocation-blob.ts +17 -6
  466. package/src/runtime/locations/resolvers.ts +75 -49
  467. package/src/runtime/locations/runtime.ts +220 -110
  468. package/src/runtime/locations/spot-location-claims.ts +58 -1
  469. package/src/runtime/messaging/payload-codec.ts +35 -24
  470. package/src/runtime/messaging/submission-result.ts +57 -1
  471. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  472. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  473. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  474. package/src/runtime/spots/index.ts +433 -229
  475. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  476. package/src/runtime/spots/spot-activation-state.ts +2 -2
  477. package/src/runtime/spots/spot-activation.ts +67 -37
  478. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  479. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  480. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  481. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  482. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  483. package/src/runtime/spots/spot-context.ts +3 -3
  484. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  485. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  486. package/src/runtime/spots/spot-manager-public.ts +21 -17
  487. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  488. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  489. package/src/runtime/spots/spot-outbound.ts +45 -23
  490. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  491. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  492. package/src/runtime/spots/spot-route-replies.ts +6 -4
  493. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  494. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  495. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  496. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  497. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  498. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  499. package/src/runtime/spots/spot-timer.ts +3 -2
  500. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  501. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  502. package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
  503. package/src/runtime/streams/bound-session-service.ts +21 -1
  504. package/src/runtime/streams/index.ts +76 -64
  505. package/src/runtime/streams/managed-stream.ts +29 -10
  506. package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
  507. package/src/runtime/streams/protocol.ts +34 -88
  508. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  509. package/src/runtime/streams/session-calls.ts +6 -5
  510. package/src/runtime/streams/session-context.ts +54 -10
  511. package/src/runtime/streams/session-requests.ts +2 -1
  512. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  513. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  514. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  515. package/src/runtime/workers/index.ts +13 -12
  516. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  517. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  518. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  519. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  520. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  521. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -4,21 +4,17 @@ exports.ZLinkSpotActorJoinDispatch = void 0;
4
4
  const contracts_1 = require("../backend/contracts");
5
5
  const spot_actor_lifecycle_drain_1 = require("./spot-actor-lifecycle-drain");
6
6
  const spot_actor_packet_drain_1 = require("./spot-actor-packet-drain");
7
- const spot_native_flags_1 = require("./spot-native-flags");
8
- const spot_native_actor_join_admission_1 = require("./spot-native-actor-join-admission");
9
7
  const spot_routed_frame_dispatch_1 = require("./spot-routed-frame-dispatch");
10
8
  const spot_subscription_dispatch_1 = require("./spot-subscription-dispatch");
9
+ const ACTOR_JOIN_POLL_INTERVAL_MS = 5;
11
10
  const ZLINK_SPOT_DISPATCH_SUBJECT_SPOT = 1;
12
11
  const ZLINK_SPOT_DISPATCH_SUBJECT_CHANNEL_DEALER = 3;
13
12
  class ZLinkSpotActorJoinDispatch {
14
13
  options;
15
- draining = false;
16
- redrainRequested = false;
17
14
  nativeSpotId;
18
15
  subscriptions;
19
16
  actorLifecycleDrain;
20
17
  actorPacketDrain;
21
- nativeActorJoinAdmission;
22
18
  routedFrames;
23
19
  nativeSpot;
24
20
  constructor(options) {
@@ -43,20 +39,9 @@ class ZLinkSpotActorJoinDispatch {
43
39
  waitIdle: waitSpotDispatchIdle,
44
40
  flowEnabled: () => options.dispatchErrors?.flow.flowCreationEnabled() ?? true
45
41
  });
46
- this.nativeActorJoinAdmission = new spot_native_actor_join_admission_1.ZLinkSpotNativeActorJoinAdmission({
47
- nativeSpot: options.nativeSpot,
48
- serial: options.serial,
49
- resolveActor: actors.resolveActor,
50
- getTarget: actors.getTarget,
51
- defaultAccept: actors.defaultAccept,
52
- commitAcceptedActor: actors.commitNativeActor,
53
- messageSerializers: options.messageSerializers,
54
- dispatchErrors: options.dispatchErrors
55
- });
56
42
  this.routedFrames = new spot_routed_frame_dispatch_1.ZLinkSpotRoutedFrameDispatch({
57
43
  nativeSpotId: this.nativeSpotId,
58
44
  serial: options.serial,
59
- isSpotClosing: options.isSpotClosing,
60
45
  resolveActor: actors.resolveActor,
61
46
  getTarget: () => actors.getTarget(),
62
47
  defaultAccept: actors.defaultAccept,
@@ -65,11 +50,11 @@ class ZLinkSpotActorJoinDispatch {
65
50
  actorPacketHandler: options.packets?.handle,
66
51
  bindRemoteSession: options.packets?.bindRemoteSession === undefined
67
52
  ? undefined
68
- : (actor, sourceNodeRid, sourceSessionRid, declaredTarget) => options.packets.bindRemoteSession({
53
+ : (actor, sourceNodeRid, sourceSessionRid) => options.packets.bindRemoteSession({
69
54
  actorId: actor.actorId,
70
55
  generation: actor.objectGeneration,
71
56
  nodeRid: actor.nodeRid
72
- }, sourceNodeRid, sourceSessionRid, declaredTarget),
57
+ }, sourceNodeRid, sourceSessionRid),
73
58
  routedBoundSessionReceiver: options.boundSessionRuntime?.receiveRoutedBoundSession.bind(options.boundSessionRuntime),
74
59
  routedBoundSessionResponseReceiver: options.boundSessionRuntime?.receiveRoutedBoundSessionResponse.bind(options.boundSessionRuntime),
75
60
  routedBoundSessionErrorReceiver: options.boundSessionRuntime?.receiveRoutedBoundSessionError.bind(options.boundSessionRuntime),
@@ -105,10 +90,6 @@ class ZLinkSpotActorJoinDispatch {
105
90
  return;
106
91
  }
107
92
  this.nativeSpot.setDispatchHandler((info) => {
108
- if (info.event === contracts_1.ZLinkBackendSpotDispatchEvent.ActorJoinReadable) {
109
- this.runDetached('spot actor join drain', () => this.drain());
110
- return;
111
- }
112
93
  if (info.event === contracts_1.ZLinkBackendSpotDispatchEvent.SubscribeReadable) {
113
94
  this.runDetached('spot subscription drain', () => this.subscriptions.drain());
114
95
  return;
@@ -147,37 +128,8 @@ class ZLinkSpotActorJoinDispatch {
147
128
  }
148
129
  void callback().catch(() => undefined);
149
130
  }
150
- async drain() {
151
- if (this.draining) {
152
- this.redrainRequested = true;
153
- return;
154
- }
155
- this.draining = true;
156
- try {
157
- do {
158
- this.redrainRequested = false;
159
- await this.drainAvailableActorJoins();
160
- } while (this.redrainWasRequested());
161
- }
162
- finally {
163
- this.draining = false;
164
- }
165
- }
166
- redrainWasRequested() {
167
- return this.redrainRequested;
168
- }
169
- async drainAvailableActorJoins() {
170
- for (;;) {
171
- const request = this.nativeSpot.recvActorJoin(spot_native_flags_1.ZLINK_RECV_DONT_WAIT);
172
- if (request === null) {
173
- await waitSpotDispatchIdle();
174
- return;
175
- }
176
- await this.options.serial.executeLifecycleOperation(() => this.nativeActorJoinAdmission.admit(request, this.options.isSpotClosing?.() === true));
177
- }
178
- }
179
131
  }
180
132
  exports.ZLinkSpotActorJoinDispatch = ZLinkSpotActorJoinDispatch;
181
133
  function waitSpotDispatchIdle() {
182
- return new Promise((resolve) => setTimeout(resolve, 5));
134
+ return new Promise((resolve) => setTimeout(resolve, ACTOR_JOIN_POLL_INTERVAL_MS));
183
135
  }
@@ -1,10 +1,10 @@
1
- import type { RoutingId, ZLinkActor, ZLinkMessageSerializer, ZLinkSpot, ZLinkSpotActorJoinResult } from '../../contracts';
2
- import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
1
+ import { type RoutingId, type ZLinkActor, type ZLinkMessageSerializer, type ZLinkSpot, type ZLinkSpotActorJoinResult } from '../../contracts';
3
2
  import type { Message } from '../../contracts/Common/Message';
3
+ import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
4
4
  import { ZLinkDispatchErrorReporter } from '../channels';
5
5
  import type { ZLinkSpotActivation } from './spot-activation-state';
6
- import type { ZLinkSpotActorTransferRuntime } from './spot-runtime-ports';
7
6
  import type { ZLinkSpotRouteResolver } from './spot-routing-internal';
7
+ import type { ZLinkSpotActorTransferRuntime } from './spot-runtime-ports';
8
8
  export interface ZLinkSpotActorMembershipOptions {
9
9
  readonly resolveActivation: (spotId: RoutingId, meshName?: string) => ZLinkSpotActivation | undefined;
10
10
  readonly providerResolver?: ZLinkProviderResolver;
@@ -20,13 +20,11 @@ export interface ZLinkSpotActorMembershipOptions {
20
20
  readonly entrySpotIdProvider?: (meshName: string) => string | undefined;
21
21
  readonly spotRouteResolver?: ZLinkSpotRouteResolver;
22
22
  readonly actorTransferRuntime?: ZLinkSpotActorTransferRuntime;
23
- readonly isSpotClosing?: (activation: ZLinkSpotActivation) => boolean;
24
23
  }
25
- export type ZLinkActorJoinRollback = () => Promise<void> | void;
26
24
  export declare class ZLinkSpotActorMembership {
27
25
  private readonly options;
28
26
  constructor(options: ZLinkSpotActorMembershipOptions);
29
- admitActorJoin(spotId: RoutingId, actor: ZLinkActor, request: Message, commit: (spot: ZLinkSpot) => Promise<ZLinkActorJoinRollback | void> | ZLinkActorJoinRollback | void, signal?: AbortSignal, leaveSource?: () => Promise<void>, contentType?: string): Promise<ZLinkSpotActorJoinResult>;
27
+ admitActorJoin(spotId: RoutingId, actor: ZLinkActor, request: Message, commit: (spot: ZLinkSpot) => Promise<void> | void, signal?: AbortSignal, leaveSource?: () => Promise<void>, contentType?: string): Promise<ZLinkSpotActorJoinResult>;
30
28
  private admitActorJoinCore;
31
29
  leaveActor(spotId: RoutingId, actor: ZLinkActor, signal?: AbortSignal, meshName?: string): Promise<void>;
32
30
  private leaveActorCore;
@@ -1,58 +1,53 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkSpotActorMembership = void 0;
4
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
4
5
  const contracts_1 = require("../../contracts");
6
+ const ZLinkDispatchOptions_1 = require("../../contracts/Dispatch/ZLinkDispatchOptions");
5
7
  const abort_1 = require("../abort");
8
+ const actors_1 = require("../actors");
6
9
  const runtime_message_1 = require("../backend/runtime-message");
7
10
  const configuration_1 = require("../configuration");
8
- const framework_errors_internal_1 = require("../framework-errors-internal");
9
- const actors_1 = require("../actors");
10
11
  const payload_codec_1 = require("../messaging/payload-codec");
11
- const routing_id_1 = require("../routing-id");
12
12
  class ZLinkSpotActorMembership {
13
13
  options;
14
14
  constructor(options) {
15
15
  this.options = options;
16
16
  }
17
- async admitActorJoin(spotId, actor, request, commit, signal, leaveSource, contentType = 'application/json') {
17
+ async admitActorJoin(spotId, actor, request, commit, signal, leaveSource, contentType = stream_wire_1.ZlinkStreamContentType.Json) {
18
18
  (0, abort_1.throwIfAborted)(signal);
19
19
  const activation = this.requireActivation(spotId);
20
20
  return await this.runLifecycleOperation(activation, async () => {
21
- if (this.options.isSpotClosing?.(activation) === true) {
22
- throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestRejected, `User Spot '${String(spotId)}' is closing.`);
23
- }
24
21
  return await this.admitActorJoinCore(activation, actor, request, commit, signal, leaveSource, contentType);
25
22
  });
26
23
  }
27
24
  async admitActorJoinCore(activation, actor, request, commit, signal, leaveSource, contentType) {
28
25
  const dispatcher = this.createActorDispatcher(activation);
29
- const transaction = { committed: false };
30
- let response;
31
- try {
32
- response = await dispatcher.evaluateActorJoin(actor, request, contentType);
33
- if (response.accepted) {
26
+ const response = await dispatcher.evaluateActorJoin(actor, request, contentType);
27
+ if (response.accepted) {
28
+ await commit(activation.spot);
29
+ activation.commitActorJoin(actor);
30
+ try {
31
+ await dispatcher.notifyJoinActor(actor);
32
+ }
33
+ finally {
34
34
  if (leaveSource === undefined) {
35
- await this.options.entrySpotCallbacks?.onLeaveActor(actor, signal);
35
+ void this.options.entrySpotCallbacks?.onLeaveActor(actor, signal).catch((error) => {
36
+ this.options.dispatchErrors?.report({
37
+ surface: ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.SpotActor,
38
+ messageKind: ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.ActorSend,
39
+ reason: ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.HandlerException,
40
+ action: ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorAction.Drop,
41
+ actorId: actor.context.actorId,
42
+ error
43
+ });
44
+ });
36
45
  }
37
46
  else {
38
47
  await leaveSource();
39
48
  }
40
- await dispatcher.commitActorJoin(actor, async () => {
41
- const rollback = await commit(activation.spot);
42
- if (rollback !== undefined)
43
- transaction.rollbackExternal = rollback;
44
- transaction.rollbackMembership = activation.commitActorJoin(actor);
45
- transaction.committed = true;
46
- });
47
49
  }
48
50
  }
49
- catch (error) {
50
- if (transaction.committed) {
51
- transaction.rollbackMembership?.();
52
- await transaction.rollbackExternal?.();
53
- }
54
- throw error;
55
- }
56
51
  return {
57
52
  accepted: response.accepted,
58
53
  reply: response.reply === undefined
@@ -80,24 +75,6 @@ class ZLinkSpotActorMembership {
80
75
  if (entryNodeRid === undefined) {
81
76
  throw new configuration_1.ZLinkConfigurationException('Spot actor leave requires an Entry Spot node routing id.');
82
77
  }
83
- const remoteEntry = localEntryNodeRid !== undefined && !(0, routing_id_1.routingIdsEqual)(entryNodeRid, localEntryNodeRid);
84
- if (!remoteEntry) {
85
- const leaveSource = async () => {
86
- activation.beginActorTransfer(actor.context.actorId);
87
- await activation.spot.onLeaveActor(actor);
88
- activation.commitActorDeparture(actor.context.actorId);
89
- this.options.actorTransferRuntime?.clearRoutedActor(actor);
90
- };
91
- // A Spot actor handler already owns this activation's serial turn.
92
- // Complete its lifecycle transition inside that turn instead of trying
93
- // to acquire a second turn for the same owner.
94
- if (activation.serial.isCurrentTurn) {
95
- await leaveSource();
96
- }
97
- else {
98
- await activation.serial.execute(leaveSource);
99
- }
100
- }
101
78
  const request = runtime_message_1.ZLinkBufferMessage.from(Buffer.alloc(0));
102
79
  try {
103
80
  const context = actor.context;
@@ -58,7 +58,6 @@ interface ZLinkSpotActorPacketDispatchOptions {
58
58
  readonly handled: boolean;
59
59
  readonly response?: unknown;
60
60
  } | undefined;
61
- readonly onRemoteBoundSessionTarget?: (actorId: string, target: ZLinkRemoteBoundSessionTarget | undefined) => void;
62
61
  readonly onDisconnectActor: (actor: ZLinkActor) => Promise<void>;
63
62
  readonly actorResponseSender?: (actor: ZLinkActor, packetName: string, requestSeq: bigint, response: unknown, replyOptions: ZLinkActorResponseOptions, fallbackBoundSessionTarget?: ZLinkRemoteBoundSessionTarget, fallbackActorRef?: ActorRef, signal?: AbortSignal) => Promise<void> | void;
64
63
  readonly actorErrorSender?: (actorId: string, packetName: string, requestSeq: bigint, error: unknown, metadata: ReadonlyMap<string, string>, fallbackBoundSessionTarget?: ZLinkRemoteBoundSessionTarget, fallbackActorRef?: ActorRef) => Promise<void> | void;
@@ -65,14 +65,6 @@ class ZLinkSpotActorPacketDispatch {
65
65
  header.name === actors_1.ZLINK_REMOTE_ACTOR_SESSION_DISCONNECTED_PACKET) {
66
66
  return undefined;
67
67
  }
68
- if (remoteBoundSessionTarget !== undefined &&
69
- (0, actors_1.actorMessageFollowContext)(fallbackActorRef) === undefined) {
70
- // A replayed handoff/Message Follow packet keeps its captured Session
71
- // route solely for that packet's response. It cannot republish the
72
- // predecessor route over a binding already confirmed by a later Actor
73
- // owner turn.
74
- this.options.onRemoteBoundSessionTarget?.(actorId, remoteBoundSessionTarget);
75
- }
76
68
  const routed = await this.options.routeBeforeLocal?.(delivery);
77
69
  if (routed?.handled === true) {
78
70
  return routed.response;
@@ -82,7 +74,6 @@ class ZLinkSpotActorPacketDispatch {
82
74
  return this.handleMissingActor(actorId, parts, header, messageKind, action, returnResponse, remoteBoundSessionTarget, fallbackActorRef, requestTerminal);
83
75
  }
84
76
  if (header.name === actors_1.ZLINK_REMOTE_ACTOR_SESSION_DISCONNECTED_PACKET) {
85
- this.options.onRemoteBoundSessionTarget?.(actorId, undefined);
86
77
  await this.options.onDisconnectActor(actor);
87
78
  return undefined;
88
79
  }
@@ -1,12 +1,12 @@
1
1
  import { type ActorRef, type RoutingId } from '../../contracts';
2
2
  import type { ZLinkBackendReceived as BackendReceived } from '../backend/runtime-values';
3
- import type { ZLinkRemoteActorPacketTarget, ZLinkRemoteBoundSessionTarget } from '../actors';
3
+ import type { ZLinkRemoteActorPacketTarget } from '../actors';
4
4
  import type { ZLinkRemoteActorPacketRelay } from './spot-remote-route-codec';
5
5
  import type { ZLinkActorPacketDelivery } from './spot-actor-packet-dispatch';
6
6
  interface ZLinkSpotActorPacketRelayDispatchOptions {
7
7
  readonly actorPacketHandler?: (delivery: ZLinkActorPacketDelivery) => Promise<unknown>;
8
8
  readonly actorPacketTargetProvider?: (actorId: string) => ZLinkRemoteActorPacketTarget | undefined;
9
- readonly bindRemoteSession?: (actor: ActorRef, sourceNodeRid: RoutingId, sourceSessionRid: RoutingId, declaredTarget?: ZLinkRemoteBoundSessionTarget) => void;
9
+ readonly bindRemoteSession?: (actor: ActorRef, sourceNodeRid: RoutingId, sourceSessionRid: RoutingId) => void;
10
10
  readonly flowEnabled?: () => boolean;
11
11
  }
12
12
  export declare class ZLinkSpotActorPacketRelayDispatch {
@@ -44,13 +44,7 @@ class ZLinkSpotActorPacketRelayDispatch {
44
44
  if (!(0, routing_id_1.routingIdsEqual)(sourceNodeRid, declaredSourceNodeRid)) {
45
45
  throw new Error('Remote actor session binding source did not match the declared session node.');
46
46
  }
47
- this.options.bindRemoteSession(actorRef, declaredSourceNodeRid, binding.sessionRid, remoteBoundSessionTarget === undefined
48
- ? undefined
49
- : {
50
- ...remoteBoundSessionTarget,
51
- sessionNodeRid: declaredSourceNodeRid,
52
- sessionRid: binding.sessionRid
53
- });
47
+ this.options.bindRemoteSession(actorRef, declaredSourceNodeRid, binding.sessionRid);
54
48
  if ((0, spot_route_replies_1.hasReplyToken)(received.replyToken)) {
55
49
  (0, spot_route_replies_1.submitSpotRouteBridgeReply)(received, actorPacketRelay.envelope, {
56
50
  ok: true,
@@ -6,7 +6,7 @@ import { type ZLinkSpotTimerRegistry } from './spot-timer';
6
6
  import type { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
7
7
  interface ZLinkEntrySpotContextOptions {
8
8
  readonly spotId: SpotId;
9
- readonly objectGeneration: number;
9
+ readonly objectGeneration: bigint;
10
10
  readonly nodeRid: RoutingId;
11
11
  readonly handlers: ZLinkSpotHandlerRegistry;
12
12
  readonly outbound: ZLinkSpotOutbound;
@@ -22,7 +22,7 @@ interface ZLinkEntrySpotContextOptions {
22
22
  interface ZLinkSpotContextOptions {
23
23
  readonly meshName: string;
24
24
  readonly spotId: SpotId;
25
- readonly objectGeneration: number;
25
+ readonly objectGeneration: bigint;
26
26
  readonly handlers: ZLinkSpotHandlerRegistry;
27
27
  readonly outbound: ZLinkSpotOutbound;
28
28
  readonly timers: ZLinkSpotTimerRegistry;
@@ -29,7 +29,6 @@ interface ZLinkEntrySpotActivationOptions {
29
29
  readonly spotPublisherClient?: ZLinkSpotPublisherClient;
30
30
  readonly routedTransport?: ZLinkSpotRoutedTransport;
31
31
  readonly spotRouterChannelIdForMesh?: (meshName: string) => string;
32
- readonly channelMeshNameForChannel?: (channelName: string) => string | undefined;
33
32
  readonly providerResolver?: ZLinkProviderResolver;
34
33
  readonly dispatchErrors?: ZLinkDispatchErrorReporter;
35
34
  readonly runtimeEventPublisher?: ZLinkRuntimeEventPublisher;
@@ -40,7 +39,7 @@ interface ZLinkEntrySpotActivationOptions {
40
39
  readonly actorTransferRuntime?: ZLinkSpotActorTransferRuntime;
41
40
  readonly boundSessionRuntime?: ZLinkSpotBoundSessionRuntime;
42
41
  readonly actorHandoffRuntime?: ZLinkSpotActorHandoffRuntime;
43
- readonly detachedTaskRunner?: ZLinkDetachedTaskRunner;
42
+ readonly detachedTaskRunner: ZLinkDetachedTaskRunner;
44
43
  }
45
44
  export declare class ZLinkEntrySpotActivation {
46
45
  private readonly options;
@@ -89,6 +88,7 @@ export declare class ZLinkEntrySpotActivation {
89
88
  * actor-manager transaction in its admission callback.
90
89
  */
91
90
  commitServiceActorJoin(actor: ZLinkActor, handoffBacklog?: readonly ZLinkActorHandoffPacket[], signal?: AbortSignal): Promise<void>;
91
+ executeActor<T>(actorId: string, operation: () => Promise<T>): Promise<T>;
92
92
  /**
93
93
  * Entry Spot membership does not have an application admission callback.
94
94
  * The shared core round-trip therefore accepts a valid returning Actor and
@@ -40,6 +40,9 @@ class ZLinkEntrySpotActivation {
40
40
  context;
41
41
  constructor(options) {
42
42
  this.options = options;
43
+ if (options.detachedTaskRunner === undefined) {
44
+ throw new configuration_1.ZLinkConfigurationException('Entry Spot activation requires a detached task runner.');
45
+ }
43
46
  this.serial = new spot_serial_turn_executor_1.ZLinkSpotSerialTurnExecutor(false, options.nativeSpot.routingId);
44
47
  this.spotSerialExecutor = new spot_serial_executor_1.ZLinkSpotSerialExecutor(this.serial, contracts_1.ZLinkUserSpotExecutionMode.PerActor, options.nativeSpot.routingId);
45
48
  // Entry Spot lifecycle, timers and detached continuations use this serial
@@ -57,7 +60,7 @@ class ZLinkEntrySpotActivation {
57
60
  this.workerRuntime = options.workerRuntime ?? new workers_1.ZLinkWorkerRuntime();
58
61
  this.context = (0, spot_context_1.createEntrySpotContext)({
59
62
  spotId: String(options.nativeSpot.routingId),
60
- objectGeneration: toContextGeneration(entrySpotGeneration(options.nativeSpot)),
63
+ objectGeneration: entrySpotGeneration(options.nativeSpot),
61
64
  nodeRid: options.nodeRid,
62
65
  handlers: this.handlers,
63
66
  outbound: this.outbound,
@@ -97,7 +100,6 @@ class ZLinkEntrySpotActivation {
97
100
  registry: this.actorHandlers,
98
101
  resolveActor: (targetActorId) => this.options.entryActorRuntime?.resolveActor(targetActorId),
99
102
  routeBeforeLocal: (target) => this.options.entryActorRuntime?.routePacket(target.actorId, target.parts, target.returnResponse, target.remoteBoundSessionTarget, target.fallbackActorRef),
100
- onRemoteBoundSessionTarget: (targetActorId, target) => this.options.boundSessionRuntime?.rememberRemoteBoundSessionTarget(targetActorId, target),
101
103
  onDisconnectActor: (actor) => this.notifyDisconnectActor(actor),
102
104
  actorResponseSender: this.options.boundSessionRuntime?.sendActorResponse.bind(this.options.boundSessionRuntime),
103
105
  actorErrorSender: this.options.boundSessionRuntime?.sendActorError.bind(this.options.boundSessionRuntime),
@@ -179,7 +181,7 @@ class ZLinkEntrySpotActivation {
179
181
  await cleanup(() => this.actorDispatch?.dispose());
180
182
  await cleanup(() => this.timers.dispose());
181
183
  await cleanup(() => this.spotSerialExecutor.close());
182
- await cleanup(() => (0, handler_instance_scope_1.disposeLifecycleHandlers)(this.entrySpot));
184
+ await cleanup(() => (0, handler_instance_scope_1.disposeLifecycleHandlers)(this.entrySpot, this.options.detachedTaskRunner));
183
185
  await cleanup(() => this.options.nativeSpot.dispose());
184
186
  if (this.initialized) {
185
187
  this.lifecycleMetrics.closed('entry');
@@ -215,6 +217,9 @@ class ZLinkEntrySpotActivation {
215
217
  await this.replayActorBacklog(actor, handoffBacklog);
216
218
  }
217
219
  }
220
+ executeActor(actorId, operation) {
221
+ return this.spotSerialExecutor.executeActor(actorId, operation);
222
+ }
218
223
  /**
219
224
  * Entry Spot membership does not have an application admission callback.
220
225
  * The shared core round-trip therefore accepts a valid returning Actor and
@@ -235,7 +240,6 @@ class ZLinkEntrySpotActivation {
235
240
  kind: 'enabled',
236
241
  runtime: this.options.actorTransferRuntime
237
242
  },
238
- commitNativeActor: (actor) => this.commitEntryActorTransaction(actor),
239
243
  commitTransferredActor: async (actor, backlog) => {
240
244
  await this.commitEntryActorTransaction(actor);
241
245
  return await this.replayActorBacklog(actor, backlog);
@@ -243,19 +247,10 @@ class ZLinkEntrySpotActivation {
243
247
  },
244
248
  packets: {
245
249
  handle: (delivery) => this.dispatchActorPacket(delivery),
246
- bindRemoteSession: (actor, sourceNodeRid, sourceSessionRid, declaredTarget) => {
250
+ bindRemoteSession: (actor, sourceNodeRid, sourceSessionRid) => {
247
251
  if ((0, routing_id_1.routingIdsEqual)(sourceNodeRid, this.options.nativeNode.routingId)) {
248
252
  return;
249
253
  }
250
- const target = declaredTarget ??
251
- this.options.boundSessionRuntime?.resolveRemoteBoundSessionTarget(sourceNodeRid, sourceSessionRid);
252
- if (target !== undefined) {
253
- this.options.boundSessionRuntime?.rememberRemoteBoundSessionTarget(actor.actorId, {
254
- ...target,
255
- sessionNodeRid: sourceNodeRid,
256
- sessionRid: sourceSessionRid
257
- });
258
- }
259
254
  this.options.nativeNode.bindRemoteActorSession(actor, sourceNodeRid, sourceSessionRid);
260
255
  },
261
256
  replyNoBind: (info, parts, result) => this.replyActorNoBind(info, parts, result)
@@ -327,12 +322,6 @@ function notifyEntryActorJoined(entrySpot, actor) {
327
322
  const callback = entrySpot.onJoinedActor;
328
323
  return callback === undefined ? Promise.resolve() : callback.call(entrySpot, actor);
329
324
  }
330
- function toContextGeneration(generation) {
331
- if (generation < 0n || generation > BigInt(Number.MAX_SAFE_INTEGER)) {
332
- throw new configuration_1.ZLinkConfigurationException(`Entry Spot object generation '${generation}' cannot be represented by the Node.js public context.`);
333
- }
334
- return Number(generation);
335
- }
336
325
  function entrySpotGeneration(spot) {
337
326
  return (spot.lifecycleGeneration ??
338
327
  spot.status?.().lifecycleGeneration ??
@@ -1,16 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkSpotLifecycleMetrics = void 0;
4
+ const runtime_metrics_1 = require("../diagnostics/runtime-metrics");
4
5
  class ZLinkSpotLifecycleMetrics {
5
6
  metrics;
6
7
  constructor(metrics) {
7
8
  this.metrics = metrics;
8
9
  }
9
10
  opened(kind) {
10
- this.metrics?.change('zlink.spot.count', 1, { kind });
11
+ this.metrics?.change(runtime_metrics_1.METRIC_NAMES.SpotCount, 1, { kind });
11
12
  }
12
13
  closed(kind) {
13
- this.metrics?.change('zlink.spot.count', -1, { kind });
14
+ this.metrics?.change(runtime_metrics_1.METRIC_NAMES.SpotCount, -1, { kind });
14
15
  }
15
16
  }
16
17
  exports.ZLinkSpotLifecycleMetrics = ZLinkSpotLifecycleMetrics;
@@ -1,12 +1,11 @@
1
- import { type RoutingId, type SpotId, type SpotRef, type ZLinkSpot, type ZLinkSpotCreateCall, type ZLinkSpotGetOrCreateCall, type ZLinkSpotManager } from '../../contracts';
2
- import type { ZLinkMessageSerializer } from '../../contracts';
1
+ import { type ZLinkMessageSerializer, type RoutingId, type SpotId, type SpotRef, type ZLinkSpot, type ZLinkSpotCreateCall, type ZLinkSpotGetOrCreateCall, type ZLinkSpotManager } from '../../contracts';
3
2
  import type { ZLinkObjectFactoryRegistration } from '../../contracts/Configuration/RegistrationTypes';
4
- import type { ZLinkUserSpotCreationCoordinator } from '../host/user-spot-creation-coordinator';
5
- import type { ZLinkSpotRouteResolver } from './spot-routing-internal';
6
- import type { DefaultZLinkSpotManager } from './index';
7
- import type { ServiceUserSpotCloseRecord } from '../foundation/service-stateful-wire-codec';
8
3
  import type { ServiceUserSpotOperationResult } from '../foundation/service-stateful-runtime';
4
+ import type { ServiceUserSpotCloseRecord } from '../foundation/service-stateful-wire-codec';
5
+ import type { ZLinkUserSpotCreationCoordinator } from '../host/user-spot-creation-coordinator';
9
6
  import type { ZLinkAuthoritySnapshot } from '../locations/internal-location-contracts';
7
+ import type { DefaultZLinkSpotManager } from './index';
8
+ import type { ZLinkSpotRouteResolver } from './spot-routing-internal';
10
9
  export interface ZLinkPublicSpotManagerOptions {
11
10
  readonly local: DefaultZLinkSpotManager;
12
11
  readonly coordinator: ZLinkUserSpotCreationCoordinator;
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkPublicSpotManager = void 0;
4
- const framework_errors_internal_1 = require("../framework-errors-internal");
5
4
  const node_crypto_1 = require("node:crypto");
6
5
  const contracts_1 = require("../../contracts");
6
+ const CoreTypes_1 = require("../../contracts/Common/CoreTypes");
7
7
  const configuration_1 = require("../configuration");
8
- const creation_payload_codec_1 = require("../messaging/creation-payload-codec");
9
8
  const execution_1 = require("../execution");
9
+ const framework_errors_internal_1 = require("../framework-errors-internal");
10
+ const creation_payload_codec_1 = require("../messaging/creation-payload-codec");
10
11
  class ZLinkPublicSpotManager {
11
12
  options;
12
13
  constructor(options) {
@@ -208,8 +209,8 @@ function selectFactory(factories, stableType, selectedMesh) {
208
209
  }
209
210
  function requireText(value, label) {
210
211
  const bytes = Buffer.byteLength(value);
211
- if (bytes < 1 || bytes > 255 || value.includes('\0')) {
212
- throw invalidConfiguration(`${label} must contain 1..255 UTF-8 bytes and no NUL.`);
212
+ if (bytes < 1 || bytes > CoreTypes_1.ZLINK_MAX_SPOT_ID_BYTES || value.includes('\0')) {
213
+ throw invalidConfiguration(`${label} must contain 1..${CoreTypes_1.ZLINK_MAX_SPOT_ID_BYTES} UTF-8 bytes and no NUL.`);
213
214
  }
214
215
  return value;
215
216
  }
@@ -2,11 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSpotNodeLocationAutoConnectContext = createSpotNodeLocationAutoConnectContext;
4
4
  exports.spotNodeAutoConnectCapability = spotNodeAutoConnectCapability;
5
+ const RegistrationBuilderPolicy_1 = require("../../contracts/Configuration/RegistrationBuilderPolicy");
5
6
  const Values_1 = require("../../contracts/Locations/Values");
6
7
  const contracts_1 = require("../../contracts");
7
8
  const node_async_hooks_1 = require("node:async_hooks");
8
9
  const state_lane_1 = require("../execution/state-lane");
9
10
  const routing_id_1 = require("../routing-id");
11
+ const service_runtime_contracts_1 = require("../foundation/service-runtime-contracts");
10
12
  const locations_1 = require("../locations");
11
13
  function createSpotNodeLocationAutoConnectContext(runtime, stores, options, events) {
12
14
  const leaseTracker = new locations_1.ZLinkOwnerLeaseTracker({
@@ -67,7 +69,7 @@ function meshDescriptorPeerResolver(runtime) {
67
69
  nodeRid: descriptor.rid,
68
70
  role: contracts_1.ZLinkLocationRole.Router,
69
71
  endpoint: descriptor.endpoint,
70
- weight: 100,
72
+ weight: RegistrationBuilderPolicy_1.ZLINK_DEFAULT_PUBLIC_WEIGHT,
71
73
  draining: descriptor.state !== contracts_1.ZLinkFrameworkRuntimeState.Serving,
72
74
  value: descriptor.descriptorRevision,
73
75
  ownerId: descriptor.ownerId,
@@ -145,7 +147,7 @@ class ZLinkSpotNodeAutoConnectExecutor {
145
147
  peer.endpoint === target.endpoint &&
146
148
  (target.nodeRid === undefined || String(peer.routingId) === String(target.nodeRid)) &&
147
149
  peer.lifecycleGeneration === target.lifecycleGeneration &&
148
- peer.state === 3);
150
+ peer.state === service_runtime_contracts_1.MeshPeerRuntimeState.Serving);
149
151
  }
150
152
  replaceNotRequired(targets) {
151
153
  this.node.replaceDiscoveredNotRequiredPeers?.(targets
@@ -170,40 +172,29 @@ class ZLinkSpotNodeAutoConnectExecutor {
170
172
  }
171
173
  }
172
174
  prepareConnectCore(key) {
173
- if (this.connectionIntents.has(key))
174
- return undefined;
175
+ const current = this.connectionIntents.get(key);
176
+ if (current !== undefined)
177
+ return current.connectionIntentId === undefined ? current : undefined;
175
178
  const intent = {};
176
179
  this.connectionIntents.set(key, intent);
177
180
  return intent;
178
181
  }
179
182
  async connectPeer(target, key, intent) {
180
- try {
181
- const connectionIntentId = await this.node.connectPeer({
182
- endpoint: target.endpoint,
183
- expectedRid: target.nodeRid === undefined ? undefined : (0, routing_id_1.toBackendRoutingId)(target.nodeRid),
184
- expectedSecurityIdentity: toAdmissionSecurityIdentity(target.metadata?.securityIdentity),
185
- expectedLifecycleGeneration: target.lifecycleGeneration
186
- });
187
- const accepted = await this.lane.run(() => {
188
- if (this.connectionIntents.get(key) !== intent)
189
- return false;
190
- intent.connectionIntentId = connectionIntentId;
191
- return true;
192
- });
193
- if (!accepted)
194
- this.node.removePeerConnection(connectionIntentId);
195
- return accepted;
196
- }
197
- catch {
198
- // A discovered endpoint can become unavailable between the store read and
199
- // the socket connect. Leave the target inactive so the next reconciliation
200
- // can retry without terminating the host's background runtime.
201
- await this.lane.run(() => {
202
- if (this.connectionIntents.get(key) === intent)
203
- this.connectionIntents.delete(key);
204
- });
205
- return false;
206
- }
183
+ const connectionIntentId = await this.node.connectPeer({
184
+ endpoint: target.endpoint,
185
+ expectedRid: target.nodeRid === undefined ? undefined : (0, routing_id_1.toBackendRoutingId)(target.nodeRid),
186
+ expectedSecurityIdentity: toAdmissionSecurityIdentity(target.metadata?.securityIdentity),
187
+ expectedLifecycleGeneration: target.lifecycleGeneration
188
+ });
189
+ const accepted = await this.lane.run(() => {
190
+ if (this.connectionIntents.get(key) !== intent)
191
+ return false;
192
+ intent.connectionIntentId = connectionIntentId;
193
+ return true;
194
+ });
195
+ if (!accepted)
196
+ this.node.removePeerConnection(connectionIntentId);
197
+ return accepted;
207
198
  }
208
199
  disconnectPeer(target) {
209
200
  const key = connectionKey(target);