@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,23 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultZLinkActorManager = exports.ZLINK_ACTOR_LIFECYCLE_SNAPSHOT = exports.createActorMembership = exports.createActorJoinRequest = exports.actorJoinIdentity = exports.ZLinkRemoteBoundSessionFenceError = exports.isRemoteBoundSessionFenceError = exports.encodeRemoteBoundSessionNack = exports.ZLINK_REMOTE_BOUND_SESSION_SEND_PACKET = exports.ZLINK_REMOTE_BOUND_SESSION_RESPONSE_PACKET = exports.ZLINK_REMOTE_BOUND_SESSION_FENCE_NACK_CODE = exports.ZLINK_REMOTE_BOUND_SESSION_ERROR_PACKET = exports.ZLINK_REMOTE_ACTOR_SESSION_DISCONNECTED_PACKET = exports.ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET = exports.decodeRemoteActorSourceLeaveTerminal = exports.ZLINK_REMOTE_ACTOR_SOURCE_LEAVE_TERMINAL = exports.ZLINK_REMOTE_ACTOR_JOIN_PACKET = exports.ZLinkActorTransferRegistry = exports.ZLinkActorNativeJoinCoordinator = exports.ZLinkSpotActorHandlerRegistryRuntime = exports.ZLinkSpotActorDispatcher = exports.ZLinkActorPacketKind = exports.publishInitialActorAuthority = exports.rewriteActorAuthorityOwner = exports.rewriteActorAuthorityRoute = exports.isActorAuthorityPayload = exports.encodeActorAuthorityIdentity = exports.decodeRelocatingActorAuthorityIdentity = exports.decodeActorAuthorityIdentity = exports.ZLinkDeferredJoinAcceptedJournal = exports.isDeferredJoinAcceptedRootPublication = exports.toFrameworkRoutingId = exports.toFrameworkActorRef = exports.preferredRemoteBoundSessionTarget = exports.mergeRemoteBoundSessionTarget = exports.ZLinkActorRuntimeState = exports.decodeActorMessageFollowContext = exports.attachActorMessageFollowContext = exports.actorMessageFollowContext = exports.decodeHandoffPacket = exports.ZLinkActorHandoffCoordinator = exports.DEFAULT_MESSAGE_FOLLOW_DURATION_MS = exports.ZLinkActorSerialExecutor = exports.ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME = exports.DefaultZLinkActorContext = exports.forwardEncodedActorPacket = exports.DefaultZLinkActorClient = void 0;
4
- const framework_errors_internal_1 = require("../framework-errors-internal");
3
+ exports.DefaultZLinkActorManager = exports.ZLINK_ACTOR_LIFECYCLE_SNAPSHOT = exports.createActorMembership = exports.createActorJoinRequest = exports.actorJoinIdentity = exports.ZLinkRemoteBoundSessionFenceError = exports.isRemoteBoundSessionFenceError = exports.encodeRemoteBoundSessionNack = exports.ZLINK_REMOTE_BOUND_SESSION_SEND_PACKET = exports.ZLINK_REMOTE_BOUND_SESSION_RESPONSE_PACKET = exports.ZLINK_REMOTE_BOUND_SESSION_FENCE_NACK_CODE = exports.ZLINK_REMOTE_BOUND_SESSION_ERROR_PACKET = exports.ZLINK_REMOTE_ACTOR_SESSION_DISCONNECTED_PACKET = exports.ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET = exports.decodeRemoteActorSourceLeaveTerminal = exports.ZLINK_REMOTE_ACTOR_SOURCE_LEAVE_TERMINAL = exports.ZLINK_REMOTE_ACTOR_JOIN_PACKET = exports.ZLinkActorTransferRegistry = exports.ZLinkActorNativeJoinCoordinator = exports.ZLinkSpotActorHandlerRegistryRuntime = exports.ZLinkSpotActorDispatcher = exports.ZLinkActorPacketKind = exports.publishInitialActorAuthority = exports.rewriteActorAuthorityOwner = exports.rewriteActorAuthorityRoute = exports.isActorAuthorityPayload = exports.encodeActorAuthorityIdentity = exports.decodeRelocatingActorAuthorityIdentity = exports.decodeActorAuthorityIdentity = exports.createDeferredJoinCompletion = exports.toFrameworkRoutingId = exports.toFrameworkActorRef = exports.ZLinkActorRuntimeState = exports.decodeActorMessageFollowContext = exports.attachActorMessageFollowContext = exports.actorMessageFollowContext = exports.decodeHandoffPacket = exports.ZLinkActorHandoffCoordinator = exports.DEFAULT_MESSAGE_FOLLOW_DURATION_MS = exports.ZLinkActorSerialExecutor = exports.ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME = exports.DefaultZLinkActorContext = exports.forwardEncodedActorPacket = exports.DefaultZLinkActorClient = void 0;
5
4
  const contracts_1 = require("../../contracts");
6
- const runtime_message_1 = require("../backend/runtime-message");
7
- const contracts_2 = require("../../contracts");
8
- const configuration_1 = require("../configuration");
5
+ const Registration_1 = require("../../contracts/Configuration/Registration");
9
6
  const abort_1 = require("../abort");
10
7
  const mesh_completion_table_1 = require("../backend/mesh-completion-table");
8
+ const runtime_message_1 = require("../backend/runtime-message");
9
+ const configuration_1 = require("../configuration");
10
+ const runtime_metrics_1 = require("../diagnostics/runtime-metrics");
11
11
  const execution_1 = require("../execution");
12
+ const framework_errors_internal_1 = require("../framework-errors-internal");
12
13
  const handler_instance_scope_1 = require("../handlers/handler-instance-scope");
14
+ const payload_codec_1 = require("../messaging/payload-codec");
15
+ const actor_creation_1 = require("./actor-creation");
16
+ const actor_runtime_state_1 = require("./actor-runtime-state");
17
+ const transferred_actor_rollback_1 = require("./transferred-actor-rollback");
18
+ const ACTOR_CREATION_RETRY_INTERVAL_MS = 5;
19
+ const LOCAL_DIAGNOSTIC_NODE_RID = 'local';
13
20
  var actor_client_1 = require("./actor-client");
14
21
  Object.defineProperty(exports, "DefaultZLinkActorClient", { enumerable: true, get: function () { return actor_client_1.DefaultZLinkActorClient; } });
15
22
  Object.defineProperty(exports, "forwardEncodedActorPacket", { enumerable: true, get: function () { return actor_client_1.forwardEncodedActorPacket; } });
16
- const payload_codec_1 = require("../messaging/payload-codec");
17
23
  var actor_context_1 = require("./actor-context");
18
24
  Object.defineProperty(exports, "DefaultZLinkActorContext", { enumerable: true, get: function () { return actor_context_1.DefaultZLinkActorContext; } });
19
25
  Object.defineProperty(exports, "ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME", { enumerable: true, get: function () { return actor_context_1.ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME; } });
20
- const actor_creation_1 = require("./actor-creation");
21
26
  var actor_mailbox_1 = require("./actor-mailbox");
22
27
  Object.defineProperty(exports, "ZLinkActorSerialExecutor", { enumerable: true, get: function () { return actor_mailbox_1.ZLinkActorSerialExecutor; } });
23
28
  var actor_handoff_1 = require("./actor-handoff");
@@ -28,15 +33,12 @@ var actor_message_follow_context_1 = require("./actor-message-follow-context");
28
33
  Object.defineProperty(exports, "actorMessageFollowContext", { enumerable: true, get: function () { return actor_message_follow_context_1.actorMessageFollowContext; } });
29
34
  Object.defineProperty(exports, "attachActorMessageFollowContext", { enumerable: true, get: function () { return actor_message_follow_context_1.attachActorMessageFollowContext; } });
30
35
  Object.defineProperty(exports, "decodeActorMessageFollowContext", { enumerable: true, get: function () { return actor_message_follow_context_1.decodeActorMessageFollowContext; } });
31
- var actor_runtime_state_1 = require("./actor-runtime-state");
32
- Object.defineProperty(exports, "ZLinkActorRuntimeState", { enumerable: true, get: function () { return actor_runtime_state_1.ZLinkActorRuntimeState; } });
33
- Object.defineProperty(exports, "mergeRemoteBoundSessionTarget", { enumerable: true, get: function () { return actor_runtime_state_1.mergeRemoteBoundSessionTarget; } });
34
- Object.defineProperty(exports, "preferredRemoteBoundSessionTarget", { enumerable: true, get: function () { return actor_runtime_state_1.preferredRemoteBoundSessionTarget; } });
35
- Object.defineProperty(exports, "toFrameworkActorRef", { enumerable: true, get: function () { return actor_runtime_state_1.toFrameworkActorRef; } });
36
- Object.defineProperty(exports, "toFrameworkRoutingId", { enumerable: true, get: function () { return actor_runtime_state_1.toFrameworkRoutingId; } });
37
- var deferred_join_accepted_journal_1 = require("./deferred-join-accepted-journal");
38
- Object.defineProperty(exports, "isDeferredJoinAcceptedRootPublication", { enumerable: true, get: function () { return deferred_join_accepted_journal_1.isDeferredJoinAcceptedRootPublication; } });
39
- Object.defineProperty(exports, "ZLinkDeferredJoinAcceptedJournal", { enumerable: true, get: function () { return deferred_join_accepted_journal_1.ZLinkDeferredJoinAcceptedJournal; } });
36
+ var actor_runtime_state_2 = require("./actor-runtime-state");
37
+ Object.defineProperty(exports, "ZLinkActorRuntimeState", { enumerable: true, get: function () { return actor_runtime_state_2.ZLinkActorRuntimeState; } });
38
+ Object.defineProperty(exports, "toFrameworkActorRef", { enumerable: true, get: function () { return actor_runtime_state_2.toFrameworkActorRef; } });
39
+ Object.defineProperty(exports, "toFrameworkRoutingId", { enumerable: true, get: function () { return actor_runtime_state_2.toFrameworkRoutingId; } });
40
+ var deferred_join_completion_1 = require("./deferred-join-completion");
41
+ Object.defineProperty(exports, "createDeferredJoinCompletion", { enumerable: true, get: function () { return deferred_join_completion_1.createDeferredJoinCompletion; } });
40
42
  var actor_authority_publication_1 = require("./actor-authority-publication");
41
43
  Object.defineProperty(exports, "decodeActorAuthorityIdentity", { enumerable: true, get: function () { return actor_authority_publication_1.decodeActorAuthorityIdentity; } });
42
44
  Object.defineProperty(exports, "decodeRelocatingActorAuthorityIdentity", { enumerable: true, get: function () { return actor_authority_publication_1.decodeRelocatingActorAuthorityIdentity; } });
@@ -45,14 +47,12 @@ Object.defineProperty(exports, "isActorAuthorityPayload", { enumerable: true, ge
45
47
  Object.defineProperty(exports, "rewriteActorAuthorityRoute", { enumerable: true, get: function () { return actor_authority_publication_1.rewriteActorAuthorityRoute; } });
46
48
  Object.defineProperty(exports, "rewriteActorAuthorityOwner", { enumerable: true, get: function () { return actor_authority_publication_1.rewriteActorAuthorityOwner; } });
47
49
  Object.defineProperty(exports, "publishInitialActorAuthority", { enumerable: true, get: function () { return actor_authority_publication_1.publishInitialActorAuthority; } });
48
- const actor_runtime_state_2 = require("./actor-runtime-state");
49
50
  var spot_actor_dispatch_1 = require("./spot-actor-dispatch");
50
51
  Object.defineProperty(exports, "ZLinkActorPacketKind", { enumerable: true, get: function () { return spot_actor_dispatch_1.ZLinkActorPacketKind; } });
51
52
  Object.defineProperty(exports, "ZLinkSpotActorDispatcher", { enumerable: true, get: function () { return spot_actor_dispatch_1.ZLinkSpotActorDispatcher; } });
52
53
  Object.defineProperty(exports, "ZLinkSpotActorHandlerRegistryRuntime", { enumerable: true, get: function () { return spot_actor_dispatch_1.ZLinkSpotActorHandlerRegistryRuntime; } });
53
54
  var actor_remote_joiner_1 = require("./actor-remote-joiner");
54
55
  Object.defineProperty(exports, "ZLinkActorNativeJoinCoordinator", { enumerable: true, get: function () { return actor_remote_joiner_1.ZLinkActorNativeJoinCoordinator; } });
55
- const transferred_actor_rollback_1 = require("./transferred-actor-rollback");
56
56
  var actor_transfer_registry_1 = require("./actor-transfer-registry");
57
57
  Object.defineProperty(exports, "ZLinkActorTransferRegistry", { enumerable: true, get: function () { return actor_transfer_registry_1.ZLinkActorTransferRegistry; } });
58
58
  var actor_remote_wire_1 = require("./actor-remote-wire");
@@ -77,15 +77,20 @@ Object.defineProperty(exports, "createActorMembership", { enumerable: true, get:
77
77
  Object.defineProperty(exports, "ZLINK_ACTOR_LIFECYCLE_SNAPSHOT", { enumerable: true, get: function () { return actor_lifecycle_snapshot_1.ZLINK_ACTOR_LIFECYCLE_SNAPSHOT; } });
78
78
  class DefaultZLinkActorManager {
79
79
  options;
80
+ detachedTaskRunner;
80
81
  states = new Map();
81
82
  actorMeshNames = new Map();
82
83
  relocationStaged = new Set();
83
84
  creation;
84
85
  transferredActorRollback;
85
- constructor(options) {
86
+ constructor(options, detachedTaskRunner) {
86
87
  this.options = options;
88
+ this.detachedTaskRunner = detachedTaskRunner;
89
+ if (detachedTaskRunner === undefined) {
90
+ throw new Error('Actor manager requires a detached task runner.');
91
+ }
87
92
  this.creation = new actor_creation_1.ZLinkActorCreationCoordinator(options);
88
- this.transferredActorRollback = new transferred_actor_rollback_1.ZLinkTransferredActorRollbackCoordinator(this.states, options);
93
+ this.transferredActorRollback = new transferred_actor_rollback_1.ZLinkTransferredActorRollbackCoordinator(this.states, options, (actorId, state) => this.finalizeDestroyedActor(actorId, state));
89
94
  }
90
95
  create(actorId, actorType) {
91
96
  return new ZLinkActorCreateCallRuntime((options, signal) => this.submitCreate(actorId, actorType, true, options, signal));
@@ -129,7 +134,6 @@ class DefaultZLinkActorManager {
129
134
  if (state.isMoving) {
130
135
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorMoving, `Actor '${actor.actorId}' is relocating.`);
131
136
  }
132
- const actorInstance = state.actor;
133
137
  const node = this.options.nativeActorNodeProvider?.() ?? this.options.nativeActorNode;
134
138
  const completions = this.options.nativeActorCompletionTableProvider?.();
135
139
  const entryNodeRid = state.entryNodeRid ?? current.nodeRid;
@@ -156,14 +160,7 @@ class DefaultZLinkActorManager {
156
160
  if (state.actorType !== undefined && state.ownsLocation) {
157
161
  await this.options.locationLifecycle?.releaseActor(state.actorType, actor.actorId, current);
158
162
  }
159
- this.options.actorDestroyedCleanup?.(actor.actorId);
160
- await (0, handler_instance_scope_1.disposeLifecycleHandlers)(actorInstance);
161
- state.clearAfterDestroy();
162
- if (this.states.get(actor.actorId) === state) {
163
- this.states.delete(actor.actorId);
164
- this.actorMeshNames.delete(actor.actorId);
165
- }
166
- this.options.metrics?.change('zlink.actor.count', -1);
163
+ await this.finalizeDestroyedActor(actor.actorId, state);
167
164
  });
168
165
  try {
169
166
  await destroyTask;
@@ -179,7 +176,7 @@ class DefaultZLinkActorManager {
179
176
  const state = this.getOrCreateState(actorId);
180
177
  this.rememberActorMeshFromType(actorId, actorType);
181
178
  if (state.actor !== undefined) {
182
- await (0, handler_instance_scope_1.disposeLifecycleHandlers)(state.actor);
179
+ await (0, handler_instance_scope_1.disposeLifecycleHandlers)(state.actor, this.detachedTaskRunner);
183
180
  }
184
181
  state.prepareForRemoteReentry();
185
182
  const operation = state.getOrStartCreation(actorType, false, () => this.creation.materializeTransferredActor(actorId, actorType, state, adapterKey === undefined
@@ -285,7 +282,7 @@ class DefaultZLinkActorManager {
285
282
  this.relocationStaged.add(actorId);
286
283
  let nativeRef;
287
284
  try {
288
- nativeRef = restore.call(node, actorId, actorType, objectGeneration, authorityOwnerGeneration, String(spotId), spotGeneration, membershipEpoch);
285
+ nativeRef = restore.call(node, actorId, actorType, objectGeneration, authorityOwnerGeneration, spotId === undefined ? undefined : String(spotId), spotGeneration, membershipEpoch);
289
286
  this.rememberActorMeshFromType(actorId, actorType);
290
287
  const state = this.getOrCreateState(actorId);
291
288
  state.setNativeActorRef(nativeRef);
@@ -303,7 +300,8 @@ class DefaultZLinkActorManager {
303
300
  await registry.restore(transfer.adapterKey, actor, transfer.state, signal);
304
301
  }
305
302
  state.setLocationGeneration(authorityOwnerGeneration);
306
- state.setJoinedSpot(spotId, undefined, membershipEpoch);
303
+ if (spotId !== undefined)
304
+ state.setJoinedSpot(spotId, undefined, membershipEpoch);
307
305
  return actor;
308
306
  }
309
307
  catch (error) {
@@ -311,12 +309,7 @@ class DefaultZLinkActorManager {
311
309
  node.discardRelocatedActor?.(nativeRef);
312
310
  this.relocationStaged.delete(actorId);
313
311
  const failedState = this.states.get(actorId);
314
- if (failedState?.actor !== undefined) {
315
- await (0, handler_instance_scope_1.disposeLifecycleHandlers)(failedState.actor);
316
- }
317
- failedState?.clearAfterDestroy();
318
- this.states.delete(actorId);
319
- this.actorMeshNames.delete(actorId);
312
+ await this.finalizeActorState(actorId, failedState);
320
313
  throw error;
321
314
  }
322
315
  }
@@ -336,26 +329,57 @@ class DefaultZLinkActorManager {
336
329
  const state = this.states.get(actorId);
337
330
  const node = this.options.nativeActorNodeProvider?.() ?? this.options.nativeActorNode;
338
331
  const nativeActorRef = exactNativeActorRef ?? state?.nativeActorRef;
339
- if (nativeActorRef !== undefined) {
340
- node?.discardRelocatedActor?.(nativeActorRef);
332
+ const failures = [];
333
+ try {
334
+ if (nativeActorRef !== undefined) {
335
+ node?.discardRelocatedActor?.(nativeActorRef);
336
+ }
341
337
  }
342
- if (state?.actor !== undefined) {
343
- await (0, handler_instance_scope_1.disposeLifecycleHandlers)(state.actor);
338
+ catch (error) {
339
+ failures.push(error);
340
+ }
341
+ try {
342
+ await this.completeCoreRelocationSource(actorId);
343
+ }
344
+ catch (error) {
345
+ failures.push(error);
346
+ }
347
+ if (failures.length > 0) {
348
+ throw failures.length === 1
349
+ ? failures[0]
350
+ : new AggregateError(failures, 'Actor relocation cleanup failed.');
344
351
  }
345
- state?.clearAfterDestroy();
346
- this.states.delete(actorId);
347
- this.actorMeshNames.delete(actorId);
348
- this.relocationStaged.delete(actorId);
349
352
  }
350
353
  async completeCoreRelocationSource(actorId) {
351
354
  const state = this.states.get(actorId);
352
- if (state?.actor !== undefined) {
353
- await (0, handler_instance_scope_1.disposeLifecycleHandlers)(state.actor);
355
+ await this.finalizeActorState(actorId, state);
356
+ }
357
+ async finalizeActorState(actorId, state) {
358
+ if (state === undefined || this.states.get(actorId) !== state)
359
+ return;
360
+ try {
361
+ if (state.actor !== undefined)
362
+ await (0, handler_instance_scope_1.disposeLifecycleHandlers)(state.actor, this.detachedTaskRunner);
363
+ }
364
+ finally {
365
+ state.clearAfterDestroy();
366
+ if (this.states.get(actorId) === state) {
367
+ this.states.delete(actorId);
368
+ this.actorMeshNames.delete(actorId);
369
+ this.relocationStaged.delete(actorId);
370
+ }
371
+ }
372
+ }
373
+ async finalizeDestroyedActor(actorId, state) {
374
+ if (this.states.get(actorId) !== state)
375
+ return;
376
+ try {
377
+ this.options.actorDestroyedCleanup?.(actorId);
378
+ }
379
+ finally {
380
+ await this.finalizeActorState(actorId, state);
381
+ this.options.metrics?.change(runtime_metrics_1.METRIC_NAMES.ActorCount, -1);
354
382
  }
355
- state?.clearAfterDestroy();
356
- this.states.delete(actorId);
357
- this.actorMeshNames.delete(actorId);
358
- this.relocationStaged.delete(actorId);
359
383
  }
360
384
  async getOrCreateActor(actorId, actorType, signal) {
361
385
  this.rememberActorMeshFromType(actorId, actorType);
@@ -375,7 +399,7 @@ class DefaultZLinkActorManager {
375
399
  }
376
400
  async createReservedActorResult(actorId, actorType, createRequest, signal, nativeActorRef) {
377
401
  this.rememberActorMeshFromType(actorId, actorType);
378
- return await this.createOrGet(actorId, actorType, false, createRequest, signal, false, 30_000, nativeActorRef);
402
+ return await this.createOrGet(actorId, actorType, false, createRequest, signal, false, Registration_1.DEFAULT_REQUEST_TIMEOUT_MS, nativeActorRef);
379
403
  }
380
404
  adoptCreatedAuthority(actorId, authorityOwnerGeneration, ownerLeaseGeneration) {
381
405
  const state = this.states.get(actorId);
@@ -406,7 +430,7 @@ class DefaultZLinkActorManager {
406
430
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorRouteNotFound, `Actor '${actor.context.actorId}' must leave its current SPOT before destroy.`);
407
431
  }
408
432
  const destroyTask = state.getOrStartDestroy(entryNodeRid, async (actorRef) => {
409
- const destroyedActorRef = actorRef === undefined ? undefined : (0, actor_runtime_state_2.toFrameworkActorRef)(actorRef, state.meshName ?? '');
433
+ const destroyedActorRef = actorRef === undefined ? undefined : (0, actor_runtime_state_1.toFrameworkActorRef)(actorRef, state.meshName ?? '');
410
434
  if (actorRef !== undefined) {
411
435
  await node.destroyActor(actorRef, 0, destroySignal);
412
436
  state.markNativeActorDestroyed(actorRef);
@@ -414,14 +438,7 @@ class DefaultZLinkActorManager {
414
438
  if (state.actorType !== undefined && state.ownsLocation) {
415
439
  await this.options.locationLifecycle?.releaseActor(state.actorType, actor.context.actorId, destroyedActorRef);
416
440
  }
417
- this.options.actorDestroyedCleanup?.(actor.context.actorId);
418
- await (0, handler_instance_scope_1.disposeLifecycleHandlers)(actor);
419
- state.clearAfterDestroy();
420
- if (this.states.get(actor.context.actorId) === state) {
421
- this.states.delete(actor.context.actorId);
422
- this.actorMeshNames.delete(actor.context.actorId);
423
- }
424
- this.options.metrics?.change('zlink.actor.count', -1);
441
+ await this.finalizeDestroyedActor(actor.context.actorId, state);
425
442
  });
426
443
  try {
427
444
  await destroyTask;
@@ -431,7 +448,7 @@ class DefaultZLinkActorManager {
431
448
  throw error;
432
449
  }
433
450
  }
434
- async createOrGet(actorId, actorType, failIfExists, request, signal, claimLocation = true, timeoutMs = 30_000, nativeActorRef) {
451
+ async createOrGet(actorId, actorType, failIfExists, request, signal, claimLocation = true, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS, nativeActorRef) {
435
452
  const deadline = performance.now() + timeoutMs;
436
453
  const requestedMeshName = this.actorMeshNames.get(actorId);
437
454
  for (;;) {
@@ -451,7 +468,18 @@ class DefaultZLinkActorManager {
451
468
  if (request !== undefined && createRequest.nativeRequest !== undefined) {
452
469
  state.setCreateRequestPayload(createRequest.nativeRequest.data());
453
470
  }
454
- const operation = state.getOrStartCreation(actorType, failIfExists, () => this.creation.createActor(actorId, actorType, state, createRequest, claimLocation, signal));
471
+ const operation = state.getOrStartCreation(actorType, failIfExists, async () => {
472
+ const meshName = state.meshName ?? this.options.actorMeshNameProvider?.(actorType);
473
+ const release = meshName === undefined
474
+ ? undefined
475
+ : await this.options.activationAdmission?.acquire(meshName, signal);
476
+ try {
477
+ return await this.creation.createActor(actorId, actorType, state, createRequest, claimLocation, signal);
478
+ }
479
+ finally {
480
+ release?.();
481
+ }
482
+ });
455
483
  if (operation.created) {
456
484
  void operation.task.then((result) => {
457
485
  if (result.status !== 'created') {
@@ -499,7 +527,7 @@ class DefaultZLinkActorManager {
499
527
  if (this.states.get(actorId) === state) {
500
528
  this.states.delete(actorId);
501
529
  this.actorMeshNames.delete(actorId);
502
- this.options.metrics?.change('zlink.actor.count', -1);
530
+ this.options.metrics?.change(runtime_metrics_1.METRIC_NAMES.ActorCount, -1);
503
531
  }
504
532
  }
505
533
  createRequestMessage(request) {
@@ -507,13 +535,13 @@ class DefaultZLinkActorManager {
507
535
  const empty = runtime_message_1.ZLinkBufferMessage.from(Buffer.alloc(0));
508
536
  return {
509
537
  nativeRequest: empty,
510
- callbackRequest: contracts_2.ZLinkMessage.fromEncoded(contracts_1.ZLinkEncodedPayload.from(empty.data()))
538
+ callbackRequest: contracts_1.ZLinkMessage.fromEncoded(contracts_1.ZLinkEncodedPayload.from(empty.data()))
511
539
  };
512
540
  }
513
541
  const nativeRequest = (0, payload_codec_1.encodeFrameworkPayloadMessage)(request, this.options.messageSerializers);
514
542
  return {
515
543
  nativeRequest,
516
- callbackRequest: contracts_2.ZLinkMessage.fromEncoded(contracts_1.ZLinkEncodedPayload.from(nativeRequest.data()))
544
+ callbackRequest: contracts_1.ZLinkMessage.fromEncoded(contracts_1.ZLinkEncodedPayload.from(nativeRequest.data()))
517
545
  };
518
546
  }
519
547
  getOrCreateState(actorId) {
@@ -521,25 +549,25 @@ class DefaultZLinkActorManager {
521
549
  if (existing !== undefined) {
522
550
  return existing;
523
551
  }
524
- const state = new actor_runtime_state_2.ZLinkActorRuntimeState(actorId);
552
+ const state = new actor_runtime_state_1.ZLinkActorRuntimeState(actorId);
525
553
  const remembered = this.actorMeshNames.get(actorId);
526
554
  if (remembered !== undefined) {
527
555
  state.rememberMeshName(remembered);
528
556
  }
529
557
  this.states.set(actorId, state);
530
- this.options.metrics?.change('zlink.actor.count', 1);
558
+ this.options.metrics?.change(runtime_metrics_1.METRIC_NAMES.ActorCount, 1);
531
559
  return state;
532
560
  }
533
561
  actorRefForState(state) {
534
562
  const nativeActorRef = state.nativeActorRef;
535
563
  if (nativeActorRef !== undefined) {
536
- return (0, actor_runtime_state_2.toFrameworkActorRef)(nativeActorRef, state.meshName ?? '');
564
+ return (0, actor_runtime_state_1.toFrameworkActorRef)(nativeActorRef, state.meshName ?? '');
537
565
  }
538
566
  return {
539
567
  actorId: state.actorId,
540
568
  objectGeneration: 1n,
541
569
  meshName: state.meshName ?? '',
542
- nodeRid: this.options.actorCreatedNodeRidProvider?.() ?? 'local'
570
+ nodeRid: this.options.actorCreatedNodeRidProvider?.() ?? LOCAL_DIAGNOSTIC_NODE_RID
543
571
  };
544
572
  }
545
573
  }
@@ -549,7 +577,7 @@ class ZLinkActorCreateCallRuntime {
549
577
  meshNameValue;
550
578
  requestValue;
551
579
  requestConfigured = false;
552
- timeoutMsValue = 30_000;
580
+ timeoutMsValue = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS;
553
581
  timeoutConfigured = false;
554
582
  submitted = false;
555
583
  turn = (0, execution_1.captureZLinkSpotSerialTurn)();
@@ -633,7 +661,7 @@ async function waitForCreationRetry(signal) {
633
661
  else
634
662
  reject(error);
635
663
  };
636
- const timer = setTimeout(() => finish(), 5);
664
+ const timer = setTimeout(() => finish(), ACTOR_CREATION_RETRY_INTERVAL_MS);
637
665
  const onAbort = () => {
638
666
  finish(signal?.reason ?? new Error('Actor creation was aborted.'));
639
667
  };
@@ -1,7 +1,6 @@
1
- import type { Type, ZLinkActor, ZLinkActorHandlerRegistry, ZLinkSpot, ZLinkSpotActorJoinResult, ZLinkMessageContext } from '../../contracts';
2
- import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
1
+ import { type Type, type ZLinkActor, type ZLinkActorHandlerRegistry, type ZLinkMessageContext, type ZLinkMessageSerializer, type ZLinkSpot, type ZLinkSpotActorJoinResult } from '../../contracts';
3
2
  import type { Message } from '../../contracts/Common/Message';
4
- import type { ZLinkMessageSerializer } from '../../contracts';
3
+ import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
5
4
  import type { ZLinkSerialWorkOptions } from '../execution/serial-execution-queue';
6
5
  export declare enum ZLinkActorPacketKind {
7
6
  Send = "send",
@@ -12,6 +11,7 @@ export interface ZLinkActorPacketDescriptor {
12
11
  readonly packetName: string;
13
12
  readonly actorType: Type<ZLinkActor>;
14
13
  readonly handlerType: Type;
14
+ readonly methodName?: string;
15
15
  }
16
16
  export declare class ZLinkSpotActorHandlerRegistryRuntime implements ZLinkActorHandlerRegistry {
17
17
  private readonly packets;
@@ -1,14 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkSpotActorDispatcher = exports.ZLinkSpotActorHandlerRegistryRuntime = exports.ZLinkActorPacketKind = void 0;
4
- const framework_errors_internal_1 = require("../framework-errors-internal");
4
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
5
5
  const contracts_1 = require("../../contracts");
6
- const configuration_1 = require("../configuration");
7
6
  const Attributes_1 = require("../../contracts/Handlers/Attributes");
7
+ const configuration_1 = require("../configuration");
8
+ const framework_errors_internal_1 = require("../framework-errors-internal");
9
+ const handler_instance_scope_1 = require("../handlers/handler-instance-scope");
8
10
  const payload_codec_1 = require("../messaging/payload-codec");
9
- const actor_lifecycle_snapshot_1 = require("./actor-lifecycle-snapshot");
10
11
  const actor_join_deferred_scope_1 = require("./actor-join-deferred-scope");
11
- const handler_instance_scope_1 = require("../handlers/handler-instance-scope");
12
+ const actor_lifecycle_snapshot_1 = require("./actor-lifecycle-snapshot");
12
13
  var ZLinkActorPacketKind;
13
14
  (function (ZLinkActorPacketKind) {
14
15
  ZLinkActorPacketKind["Send"] = "send";
@@ -28,7 +29,8 @@ class ZLinkSpotActorHandlerRegistryRuntime {
28
29
  : ZLinkActorPacketKind.Request,
29
30
  packetName: resolvedPacketName,
30
31
  actorType: Object,
31
- handlerType
32
+ handlerType,
33
+ methodName: metadata.methodName
32
34
  });
33
35
  }
34
36
  addPacket(descriptor) {
@@ -36,7 +38,13 @@ class ZLinkSpotActorHandlerRegistryRuntime {
36
38
  if (this.packets.has(key)) {
37
39
  throw new configuration_1.ZLinkConfigurationException(`Actor packet '${descriptor.packetName}' for '${descriptor.actorType.name}' is already registered.`);
38
40
  }
39
- this.packets.set(key, descriptor);
41
+ const metadata = (0, Attributes_1.readZLinkDecoratorMetadata)(descriptor.handlerType).find((entry) => entry.kind ===
42
+ (descriptor.kind === ZLinkActorPacketKind.Send ? 'spotActorSend' : 'spotActorRequest') &&
43
+ entry.packetName === descriptor.packetName);
44
+ this.packets.set(key, {
45
+ ...descriptor,
46
+ methodName: descriptor.methodName ?? metadata?.methodName
47
+ });
40
48
  return this;
41
49
  }
42
50
  resolvePacket(kind, actor, packetName) {
@@ -73,7 +81,7 @@ class ZLinkSpotActorDispatcher {
73
81
  const descriptor = this.requirePacket(ZLinkActorPacketKind.Send, actor, packetName);
74
82
  const message = decode();
75
83
  this.options.onHandlerStart?.();
76
- await this.invokeHandler(actor, descriptor, (handler) => (0, actor_join_deferred_scope_1.runActorHandlerWithDeferredJoins)(() => handler.handle(this.options.spot, actor, this.createContext(packetName, context), message)));
84
+ await this.invokeHandler(actor, descriptor, (handler, method) => (0, actor_join_deferred_scope_1.runActorHandlerWithDeferredJoins)(() => method.call(handler, this.options.spot, actor, this.createContext(packetName, context), message)));
77
85
  });
78
86
  }
79
87
  dispatchRequest(actor, packetName, request, context = {}) {
@@ -90,7 +98,7 @@ class ZLinkSpotActorDispatcher {
90
98
  const descriptor = this.requirePacket(ZLinkActorPacketKind.Request, actor, packetName);
91
99
  const request = decode();
92
100
  this.options.onHandlerStart?.();
93
- return await this.invokeHandler(actor, descriptor, (handler) => (0, actor_join_deferred_scope_1.runActorHandlerWithDeferredJoins)(() => handler.handle(this.options.spot, actor, this.createContext(packetName, context), request), (reply) => afterReply(reply, {
101
+ return await this.invokeHandler(actor, descriptor, (handler, method) => (0, actor_join_deferred_scope_1.runActorHandlerWithDeferredJoins)(() => method.call(handler, this.options.spot, actor, this.createContext(packetName, context), request), (reply) => afterReply(reply, {
94
102
  metadata: new Map(),
95
103
  compressPayload: false
96
104
  }), beforeReply === undefined
@@ -109,7 +117,7 @@ class ZLinkSpotActorDispatcher {
109
117
  return result;
110
118
  });
111
119
  }
112
- evaluateActorJoin(actor, request, contentType = 'application/json') {
120
+ evaluateActorJoin(actor, request, contentType = stream_wire_1.ZlinkStreamContentType.Json) {
113
121
  return this.execute(async () => {
114
122
  const payload = (0, payload_codec_1.wrapFrameworkPayloadMessage)(request, this.options.messageSerializers, contentType);
115
123
  const onActorJoin = this.options.spot.onActorJoin;
@@ -151,7 +159,14 @@ class ZLinkSpotActorDispatcher {
151
159
  throw actorDispatchHandlerNotFound(`Actor handler '${descriptor.handlerType.name}' expects actor '${descriptor.actorType.name}'.`);
152
160
  }
153
161
  async invokeHandler(actor, descriptor, callback) {
154
- return await (0, handler_instance_scope_1.runWithLifecycleHandler)(actor, descriptor.handlerType, this.options.providerResolver, (resolved) => callback(resolved));
162
+ return await (0, handler_instance_scope_1.runWithLifecycleHandler)(actor, descriptor.handlerType, this.options.providerResolver, (resolved) => {
163
+ const methodName = descriptor.methodName ?? 'handle';
164
+ const method = resolved[methodName];
165
+ if (typeof method !== 'function') {
166
+ throw new configuration_1.ZLinkConfigurationException(`Actor handler '${descriptor.handlerType.name}.${methodName}' is not callable.`);
167
+ }
168
+ return callback(resolved, method);
169
+ });
155
170
  }
156
171
  execute(operation) {
157
172
  const pending = this.options.serial?.execute(operation, this.options.serialWorkOptions) ??
@@ -1,15 +1,13 @@
1
1
  import type { ZLinkActor } from '../../contracts';
2
2
  import type { ZLinkActorManagerOptions } from './actor-runtime-contracts';
3
3
  import type { ZLinkActorRuntimeState } from './actor-runtime-state';
4
- type ZLinkTransferredActorRollbackOptions = Pick<ZLinkActorManagerOptions, 'actorDestroyedCleanup' | 'nativeActorNode' | 'nativeActorNodeProvider' | 'nativeActorCompletionTableProvider' | 'shutdownSignal' | 'metrics'>;
4
+ type ZLinkTransferredActorRollbackOptions = Pick<ZLinkActorManagerOptions, 'nativeActorNode' | 'nativeActorNodeProvider' | 'nativeActorCompletionTableProvider'>;
5
5
  export declare class ZLinkTransferredActorRollbackCoordinator {
6
6
  private readonly states;
7
7
  private readonly options;
8
- private readonly tasks;
9
- constructor(states: Map<string, ZLinkActorRuntimeState>, options: ZLinkTransferredActorRollbackOptions);
8
+ private readonly finalize;
9
+ constructor(states: Map<string, ZLinkActorRuntimeState>, options: ZLinkTransferredActorRollbackOptions, finalize: (actorId: string, state: ZLinkActorRuntimeState) => Promise<void>);
10
10
  rollback(actor: ZLinkActor, signal?: AbortSignal): Promise<void>;
11
- private schedule;
12
- private retry;
13
11
  private destroyNativeActor;
14
12
  private complete;
15
13
  }
@@ -3,14 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkTransferredActorRollbackCoordinator = void 0;
4
4
  const backend_1 = require("../backend");
5
5
  const runtime_values_1 = require("../backend/runtime-values");
6
- const actor_retry_delay_1 = require("./actor-retry-delay");
6
+ const actor_lifecycle_snapshot_1 = require("./actor-lifecycle-snapshot");
7
7
  class ZLinkTransferredActorRollbackCoordinator {
8
8
  states;
9
9
  options;
10
- tasks = new Map();
11
- constructor(states, options) {
10
+ finalize;
11
+ constructor(states, options, finalize) {
12
12
  this.states = states;
13
13
  this.options = options;
14
+ this.finalize = finalize;
14
15
  }
15
16
  async rollback(actor, signal) {
16
17
  const state = this.states.get(actor.context.actorId);
@@ -23,41 +24,10 @@ class ZLinkTransferredActorRollbackCoordinator {
23
24
  }
24
25
  const actorRef = state.nativeActorRef;
25
26
  const node = this.options.nativeActorNode ?? this.options.nativeActorNodeProvider?.();
26
- try {
27
- if (node !== undefined && actorRef !== undefined) {
28
- await this.destroyNativeActor(node, actorRef, signal);
29
- }
30
- }
31
- catch (error) {
32
- this.schedule(actor, state, node, actorRef);
33
- throw error;
34
- }
35
- this.complete(actor, state);
36
- }
37
- schedule(actor, state, node, actorRef) {
38
- if (this.tasks.has(actor.context.actorId)) {
39
- return;
40
- }
41
- const task = this.retry(actor, state, node, actorRef).finally(() => this.tasks.delete(actor.context.actorId));
42
- this.tasks.set(actor.context.actorId, task);
43
- }
44
- async retry(actor, state, node, actorRef) {
45
- const retryDelay = new actor_retry_delay_1.ZLinkActorRetryDelay();
46
- while (this.states.get(actor.context.actorId) === state &&
47
- this.options.shutdownSignal?.aborted !== true) {
48
- if (!(await retryDelay.wait(this.options.shutdownSignal)))
49
- return;
50
- try {
51
- if (node !== undefined && actorRef !== undefined) {
52
- await this.destroyNativeActor(node, actorRef);
53
- }
54
- this.complete(actor, state);
55
- return;
56
- }
57
- catch {
58
- // The tombstone prevents dispatch while the next retry is pending.
59
- }
27
+ if (node !== undefined && actorRef !== undefined) {
28
+ await this.destroyNativeActor(node, actorRef, signal);
60
29
  }
30
+ await this.complete(actor, state);
61
31
  }
62
32
  async destroyNativeActor(node, actorRef, signal) {
63
33
  const completions = this.options.nativeActorCompletionTableProvider?.();
@@ -78,14 +48,11 @@ class ZLinkTransferredActorRollbackCoordinator {
78
48
  (0, backend_1.closeMeshCompletion)(completion);
79
49
  }
80
50
  }
81
- complete(actor, state) {
51
+ async complete(actor, state) {
82
52
  if (this.states.get(actor.context.actorId) !== state) {
83
53
  return;
84
54
  }
85
- this.options.actorDestroyedCleanup?.(actor.context.actorId);
86
- state.clearAfterDestroy();
87
- this.states.delete(actor.context.actorId);
88
- this.options.metrics?.change('zlink.actor.count', -1);
55
+ await state.getOrStartDestroy((0, actor_lifecycle_snapshot_1.createActorMembership)(actor).actor.nodeRid, () => this.finalize(actor.context.actorId, state));
89
56
  }
90
57
  }
91
58
  exports.ZLinkTransferredActorRollbackCoordinator = ZLinkTransferredActorRollbackCoordinator;
@@ -1,7 +1,13 @@
1
1
  import { ZLinkFrameworkInternalErrorKind } from './framework-errors-internal';
2
+ /** 소비한 배열 prefix가 정리 조건에 도달했는지 판정합니다. */
3
+ export declare function shouldCompactBackingArray(head: number, length: number): boolean;
2
4
  export declare class ZLinkRuntimeAdmissionGate {
3
- private readonly ownerAdmissionOpen;
5
+ readonly ownerAdmissionOpen: () => boolean;
4
6
  private readonly meshes;
7
+ /**
8
+ * Location runtime §5: the host's single new-work decision (local admission deadline and host
9
+ * execution combination). A host without a Location Store has no such block.
10
+ */
5
11
  constructor(ownerAdmissionOpen?: () => boolean);
6
12
  get acceptsNewWork(): boolean;
7
13
  register(meshName: string): void;
@@ -1,10 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkRuntimeAdmissionGate = void 0;
4
+ exports.shouldCompactBackingArray = shouldCompactBackingArray;
4
5
  const framework_errors_internal_1 = require("./framework-errors-internal");
6
+ const BACKING_ARRAY_COMPACTION_MIN_HEAD = 1024;
7
+ /** 소비한 배열 prefix가 정리 조건에 도달했는지 판정합니다. */
8
+ function shouldCompactBackingArray(head, length) {
9
+ return head >= BACKING_ARRAY_COMPACTION_MIN_HEAD && head * 2 >= length;
10
+ }
5
11
  class ZLinkRuntimeAdmissionGate {
6
12
  ownerAdmissionOpen;
7
13
  meshes = new Map();
14
+ /**
15
+ * Location runtime §5: the host's single new-work decision (local admission deadline and host
16
+ * execution combination). A host without a Location Store has no such block.
17
+ */
8
18
  constructor(ownerAdmissionOpen = () => true) {
9
19
  this.ownerAdmissionOpen = ownerAdmissionOpen;
10
20
  }
@@ -161,7 +171,7 @@ function compactWaiters(state) {
161
171
  state.waiters.length = 0;
162
172
  state.waiterHead = 0;
163
173
  }
164
- else if (state.waiterHead >= 1024 && state.waiterHead * 2 >= state.waiters.length) {
174
+ else if (shouldCompactBackingArray(state.waiterHead, state.waiters.length)) {
165
175
  state.waiters.splice(0, state.waiterHead);
166
176
  state.waiterHead = 0;
167
177
  }
@@ -9,7 +9,7 @@ export declare function releaseApplicationJobPermitBeforeHandler(): void;
9
9
  /** True while dispatch already owns the host-wide application job permit. */
10
10
  export declare function hasApplicationJobPermit(): boolean;
11
11
  /** Re-enters the captured permit scope when a serial executor runs later. */
12
- export declare function bindApplicationJobPermit<TResult>(callback: () => Promise<TResult> | TResult): () => Promise<TResult> | TResult;
12
+ export declare function bindApplicationJobPermit<TResult, TArgument>(callback: (argument?: TArgument) => Promise<TResult> | TResult): (argument?: TArgument) => Promise<TResult> | TResult;
13
13
  /**
14
14
  * Transfers the current permit to a detached internal handler turn. The
15
15
  * detached owner must release it at handler entry or at a pre-start terminal.
@@ -41,7 +41,7 @@ function bindApplicationJobPermit(callback) {
41
41
  const scope = applicationJobPermitScope.getStore();
42
42
  if (scope === undefined)
43
43
  return callback;
44
- return () => applicationJobPermitScope.run(scope, callback);
44
+ return (argument) => applicationJobPermitScope.run(scope, callback, argument);
45
45
  }
46
46
  /**
47
47
  * Transfers the current permit to a detached internal handler turn. The