@zlink-systems/framework 0.26.0 → 0.28.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 (561) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Actors/ZLinkActorClient.d.ts +1 -1
  3. package/dist/contracts/Channels/Calls.d.ts +1 -1
  4. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  5. package/dist/contracts/Common/CoreTypes.js +7 -0
  6. package/dist/contracts/Common/index.d.ts +1 -1
  7. package/dist/contracts/Common/index.js +0 -1
  8. package/dist/contracts/Configuration/Builders.d.ts +0 -1
  9. package/dist/contracts/Configuration/Configs.d.ts +0 -1
  10. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  11. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  12. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  13. package/dist/contracts/Configuration/Registration.js +58 -36
  14. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  15. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  16. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  17. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  18. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -5
  19. package/dist/contracts/Configuration/RegistrationValidators.js +15 -14
  20. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  21. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  22. package/dist/contracts/Handlers/JsonContract.js +10 -4
  23. package/dist/contracts/Locations/Authority.d.ts +1 -1
  24. package/dist/contracts/Locations/Authority.js +3 -2
  25. package/dist/contracts/Locations/Options.js +1 -1
  26. package/dist/contracts/Locations/Stores.d.ts +12 -0
  27. package/dist/contracts/Locations/Stores.js +9 -0
  28. package/dist/contracts/Spots/Contracts.d.ts +2 -2
  29. package/dist/contracts/Streams/BoundSessionContracts.d.ts +1 -1
  30. package/dist/contracts/Streams/IZLinkSession.d.ts +2 -3
  31. package/dist/contracts/Streams/IZLinkSessionActor.d.ts +2 -2
  32. package/dist/internal.d.ts +4 -0
  33. package/dist/internal.js +15 -1
  34. package/dist/nest-integration.d.ts +4 -2
  35. package/dist/nest-integration.js +14 -4
  36. package/dist/runtime/abort.d.ts +1 -0
  37. package/dist/runtime/abort.js +8 -5
  38. package/dist/runtime/activation-admission.d.ts +1 -2
  39. package/dist/runtime/activation-admission.js +2 -6
  40. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  41. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  42. package/dist/runtime/actors/actor-client.d.ts +2 -2
  43. package/dist/runtime/actors/actor-client.js +49 -153
  44. package/dist/runtime/actors/actor-context.d.ts +3 -5
  45. package/dist/runtime/actors/actor-context.js +13 -11
  46. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  47. package/dist/runtime/actors/actor-handoff.js +8 -8
  48. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  49. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  50. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  51. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  52. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  53. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  54. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  55. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  56. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  57. package/dist/runtime/actors/actor-request-deadline.d.ts +1 -0
  58. package/dist/runtime/actors/actor-request-deadline.js +6 -0
  59. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  60. package/dist/runtime/actors/actor-routed-join-transport.d.ts +2 -3
  61. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  62. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  63. package/dist/runtime/actors/bound-session-wire.js +2 -7
  64. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  65. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  66. package/dist/runtime/actors/index.d.ts +9 -7
  67. package/dist/runtime/actors/index.js +87 -69
  68. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  69. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  70. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  71. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  72. package/dist/runtime/admission.d.ts +2 -0
  73. package/dist/runtime/admission.js +7 -1
  74. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  75. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  76. package/dist/runtime/backend/contracts/index.d.ts +7 -27
  77. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  78. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  79. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  80. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +3 -1
  81. package/dist/runtime/backend/node/node-backend-adapter-support.js +51 -10
  82. package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +1 -1
  83. package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +1 -2
  84. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  85. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  86. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  87. package/dist/runtime/backend/node/node-raw-binding-port.js +41 -34
  88. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  89. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  90. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  91. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  92. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  93. package/dist/runtime/backend/runtime-values.js +2 -0
  94. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  95. package/dist/runtime/channels/channel-clients.js +73 -59
  96. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  97. package/dist/runtime/channels/channel-envelope.d.ts +1 -1
  98. package/dist/runtime/channels/channel-envelope.js +51 -39
  99. package/dist/runtime/channels/channel-outbound-operations.d.ts +5 -2
  100. package/dist/runtime/channels/channel-outbound-operations.js +25 -42
  101. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  102. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  103. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  104. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  105. package/dist/runtime/channels/channel-runtime-manager.d.ts +4 -4
  106. package/dist/runtime/channels/channel-runtime-manager.js +13 -10
  107. package/dist/runtime/channels/channel-socket-options.js +3 -12
  108. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  109. package/dist/runtime/channels/channel-socket-registry.js +240 -177
  110. package/dist/runtime/channels/channel-transports.d.ts +21 -31
  111. package/dist/runtime/channels/channel-transports.js +80 -62
  112. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  113. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  114. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  115. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  116. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  117. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  118. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  119. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  120. package/dist/runtime/channels/local-spot-route-transport.d.ts +1 -1
  121. package/dist/runtime/channels/local-spot-route-transport.js +1 -3
  122. package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +1 -1
  123. package/dist/runtime/channels/router-socket-spot-route-transport.js +2 -2
  124. package/dist/runtime/channels/source-spot-router.d.ts +1 -1
  125. package/dist/runtime/channels/source-spot-router.js +2 -4
  126. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  127. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  128. package/dist/runtime/channels/spot-node-route-transport.d.ts +1 -1
  129. package/dist/runtime/channels/spot-node-route-transport.js +5 -5
  130. package/dist/runtime/channels/spot-route-bridge-transport.d.ts +1 -1
  131. package/dist/runtime/channels/spot-route-bridge-transport.js +2 -2
  132. package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +2 -4
  133. package/dist/runtime/channels/spot-route-dispatch-strategy.js +11 -12
  134. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  135. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  136. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  137. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  138. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  139. package/dist/runtime/diagnostics/flow-context.js +16 -2
  140. package/dist/runtime/diagnostics/index.d.ts +4 -2
  141. package/dist/runtime/diagnostics/index.js +14 -4
  142. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  143. package/dist/runtime/diagnostics/message-flow.js +10 -19
  144. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  145. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  146. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  147. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  148. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  149. package/dist/runtime/disposal.d.ts +5 -0
  150. package/dist/runtime/disposal.js +22 -0
  151. package/dist/runtime/execution/index.d.ts +12 -9
  152. package/dist/runtime/execution/index.js +58 -14
  153. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  154. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  155. package/dist/runtime/execution/state-lane.d.ts +8 -1
  156. package/dist/runtime/execution/state-lane.js +118 -3
  157. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  158. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  159. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  160. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  161. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  162. package/dist/runtime/foundation/operation-identity.js +9 -5
  163. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  164. package/dist/runtime/foundation/operation-registry.js +34 -44
  165. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  166. package/dist/runtime/foundation/raw-service-mesh-runtime.js +79 -94
  167. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  168. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  169. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  170. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  171. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  172. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  173. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  174. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  175. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  176. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  177. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  178. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  179. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  180. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  181. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  182. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  183. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  184. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  185. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  186. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  187. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  188. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  189. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  190. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  191. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  192. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  193. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  194. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  195. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  196. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  197. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  198. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  199. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  200. package/dist/runtime/framework-errors-internal.js +343 -122
  201. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  202. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  203. package/dist/runtime/host/actor-packet-relay.d.ts +11 -8
  204. package/dist/runtime/host/actor-packet-relay.js +54 -99
  205. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  206. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  207. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  208. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  209. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  210. package/dist/runtime/host/application-job-queue.js +16 -33
  211. package/dist/runtime/host/bound-session-relay.js +1 -1
  212. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  213. package/dist/runtime/host/index.d.ts +14 -13
  214. package/dist/runtime/host/index.js +190 -171
  215. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  216. package/dist/runtime/host/instance-activation-authority.js +17 -45
  217. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  218. package/dist/runtime/host/location-runtime-owner.js +2 -2
  219. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  220. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  221. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  222. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  223. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  224. package/dist/runtime/host/remote-bound-session-relay.js +15 -28
  225. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  226. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  227. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  228. package/dist/runtime/host/runtime-shutdown.js +18 -21
  229. package/dist/runtime/host/service-relocation-control.js +6 -1
  230. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  231. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  232. package/dist/runtime/host/spot-address-transport.d.ts +3 -12
  233. package/dist/runtime/host/spot-address-transport.js +78 -220
  234. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  235. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  236. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  237. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  238. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  239. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  240. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  241. package/dist/runtime/locations/authority-key-codec.js +4 -3
  242. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  243. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  244. package/dist/runtime/locations/creation-operation-id.js +6 -4
  245. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  246. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  247. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  248. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  249. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  250. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  251. package/dist/runtime/locations/key-codec.js +3 -2
  252. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  253. package/dist/runtime/locations/lease-tracker.js +7 -11
  254. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  255. package/dist/runtime/locations/lifecycle.js +2 -31
  256. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  257. package/dist/runtime/locations/location-store-failure.js +7 -0
  258. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  259. package/dist/runtime/locations/location-store-pages.js +13 -0
  260. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  261. package/dist/runtime/locations/location-store-repository.js +309 -336
  262. package/dist/runtime/locations/relocation-blob.js +18 -5
  263. package/dist/runtime/locations/resolvers.d.ts +5 -5
  264. package/dist/runtime/locations/resolvers.js +37 -28
  265. package/dist/runtime/locations/runtime.d.ts +5 -4
  266. package/dist/runtime/locations/runtime.js +123 -92
  267. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  268. package/dist/runtime/locations/spot-location-claims.js +42 -1
  269. package/dist/runtime/messaging/payload-codec.js +26 -20
  270. package/dist/runtime/messaging/request-deadline.d.ts +3 -0
  271. package/dist/runtime/messaging/request-deadline.js +39 -0
  272. package/dist/runtime/messaging/submission-result.d.ts +4 -0
  273. package/dist/runtime/messaging/submission-result.js +56 -1
  274. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  275. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  276. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  277. package/dist/runtime/spots/index.d.ts +14 -20
  278. package/dist/runtime/spots/index.js +302 -176
  279. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  280. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  281. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  282. package/dist/runtime/spots/spot-activation-state.js +2 -2
  283. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  284. package/dist/runtime/spots/spot-activation.js +49 -32
  285. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  286. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  287. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  288. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  289. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  290. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  291. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  292. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  293. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  294. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  295. package/dist/runtime/spots/spot-context.d.ts +2 -2
  296. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  297. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  298. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  299. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  300. package/dist/runtime/spots/spot-manager-public.js +5 -4
  301. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  302. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  303. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  304. package/dist/runtime/spots/spot-outbound.d.ts +7 -8
  305. package/dist/runtime/spots/spot-outbound.js +21 -23
  306. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  307. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  308. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  309. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  310. package/dist/runtime/spots/spot-route-replies.js +3 -1
  311. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  312. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  313. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  314. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  315. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  316. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  317. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  318. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  319. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  320. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  321. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  322. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  323. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  324. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  325. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +8 -4
  326. package/dist/runtime/streams/bound-actor-relay-sender.js +65 -41
  327. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  328. package/dist/runtime/streams/bound-session-service.js +12 -2
  329. package/dist/runtime/streams/index.d.ts +16 -17
  330. package/dist/runtime/streams/index.js +22 -23
  331. package/dist/runtime/streams/managed-stream.d.ts +5 -2
  332. package/dist/runtime/streams/managed-stream.js +20 -13
  333. package/dist/runtime/streams/native-fallback-bound-session.js +14 -19
  334. package/dist/runtime/streams/protocol.d.ts +6 -33
  335. package/dist/runtime/streams/protocol.js +38 -110
  336. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  337. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  338. package/dist/runtime/streams/session-calls.d.ts +6 -8
  339. package/dist/runtime/streams/session-calls.js +6 -22
  340. package/dist/runtime/streams/session-context.d.ts +10 -10
  341. package/dist/runtime/streams/session-context.js +25 -10
  342. package/dist/runtime/streams/session-requests.js +2 -1
  343. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  344. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  345. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  346. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  347. package/dist/runtime/workers/index.d.ts +2 -2
  348. package/dist/runtime/workers/index.js +5 -4
  349. package/package.json +3 -3
  350. package/src/contracts/Actors/ZLinkActorClient.ts +1 -1
  351. package/src/contracts/Channels/Calls.ts +1 -1
  352. package/src/contracts/Common/CoreTypes.ts +7 -0
  353. package/src/contracts/Common/index.ts +1 -1
  354. package/src/contracts/Configuration/Builders.ts +0 -1
  355. package/src/contracts/Configuration/Configs.ts +0 -1
  356. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  357. package/src/contracts/Configuration/Registration.ts +92 -48
  358. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  359. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -71
  360. package/src/contracts/Configuration/RegistrationTypes.ts +1 -5
  361. package/src/contracts/Configuration/RegistrationValidators.ts +19 -17
  362. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  363. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  364. package/src/contracts/Handlers/JsonContract.ts +14 -4
  365. package/src/contracts/Locations/Authority.ts +7 -3
  366. package/src/contracts/Locations/Options.ts +1 -1
  367. package/src/contracts/Locations/Stores.ts +14 -0
  368. package/src/contracts/Spots/Contracts.ts +2 -2
  369. package/src/contracts/Streams/BoundSessionContracts.ts +1 -1
  370. package/src/contracts/Streams/IZLinkSession.ts +2 -3
  371. package/src/contracts/Streams/IZLinkSessionActor.ts +2 -6
  372. package/src/internal.ts +14 -0
  373. package/src/nest-integration.ts +28 -10
  374. package/src/runtime/abort.ts +6 -5
  375. package/src/runtime/activation-admission.ts +2 -8
  376. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  377. package/src/runtime/actors/actor-client.ts +85 -218
  378. package/src/runtime/actors/actor-context.ts +39 -33
  379. package/src/runtime/actors/actor-handoff.ts +24 -22
  380. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  381. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  382. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  383. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  384. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  385. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  386. package/src/runtime/actors/actor-request-deadline.ts +4 -0
  387. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  388. package/src/runtime/actors/actor-routed-join-transport.ts +3 -5
  389. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  390. package/src/runtime/actors/bound-session-wire.ts +2 -8
  391. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  392. package/src/runtime/actors/index.ts +100 -79
  393. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  394. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  395. package/src/runtime/admission.ts +8 -1
  396. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  397. package/src/runtime/backend/contracts/index.ts +14 -37
  398. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  399. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  400. package/src/runtime/backend/node/node-backend-adapter-support.ts +67 -10
  401. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +0 -2
  402. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  403. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  404. package/src/runtime/backend/node/node-raw-binding-port.ts +44 -49
  405. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  406. package/src/runtime/backend/node/node-socket-backend-adapter.ts +4 -3
  407. package/src/runtime/backend/raw-binding-port.ts +1 -1
  408. package/src/runtime/backend/runtime-values.ts +4 -1
  409. package/src/runtime/channels/channel-clients.ts +139 -102
  410. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  411. package/src/runtime/channels/channel-envelope.ts +74 -57
  412. package/src/runtime/channels/channel-outbound-operations.ts +40 -55
  413. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  414. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  415. package/src/runtime/channels/channel-runtime-manager.ts +12 -30
  416. package/src/runtime/channels/channel-socket-options.ts +8 -15
  417. package/src/runtime/channels/channel-socket-registry.ts +291 -196
  418. package/src/runtime/channels/channel-transports.ts +168 -145
  419. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  420. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  421. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  422. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  423. package/src/runtime/channels/local-spot-route-transport.ts +1 -5
  424. package/src/runtime/channels/router-socket-spot-route-transport.ts +2 -6
  425. package/src/runtime/channels/source-spot-router.ts +2 -9
  426. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  427. package/src/runtime/channels/spot-node-route-transport.ts +7 -9
  428. package/src/runtime/channels/spot-route-bridge-transport.ts +5 -12
  429. package/src/runtime/channels/spot-route-dispatch-strategy.ts +11 -30
  430. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  431. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  432. package/src/runtime/diagnostics/flow-context.ts +16 -2
  433. package/src/runtime/diagnostics/index.ts +27 -17
  434. package/src/runtime/diagnostics/message-flow.ts +15 -25
  435. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  436. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  437. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  438. package/src/runtime/disposal.ts +19 -0
  439. package/src/runtime/execution/index.ts +60 -20
  440. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  441. package/src/runtime/execution/state-lane.ts +142 -4
  442. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  443. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  444. package/src/runtime/foundation/operation-identity.ts +11 -5
  445. package/src/runtime/foundation/operation-registry.ts +33 -50
  446. package/src/runtime/foundation/raw-service-mesh-runtime.ts +127 -125
  447. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  448. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  449. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  450. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  451. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  452. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  453. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  454. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  455. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  456. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  457. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  458. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  459. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  460. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  461. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  462. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  463. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  464. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  465. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  466. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  467. package/src/runtime/framework-errors-internal.ts +380 -134
  468. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  469. package/src/runtime/host/actor-packet-relay.ts +63 -160
  470. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  471. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  472. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  473. package/src/runtime/host/application-job-queue.ts +28 -34
  474. package/src/runtime/host/bound-session-relay.ts +1 -2
  475. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  476. package/src/runtime/host/index.ts +327 -320
  477. package/src/runtime/host/instance-activation-authority.ts +89 -109
  478. package/src/runtime/host/location-runtime-owner.ts +4 -2
  479. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  480. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  481. package/src/runtime/host/remote-bound-session-relay.ts +16 -57
  482. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  483. package/src/runtime/host/runtime-shutdown.ts +17 -21
  484. package/src/runtime/host/service-relocation-control.ts +14 -1
  485. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  486. package/src/runtime/host/spot-address-transport.ts +175 -356
  487. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  488. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  489. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  490. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  491. package/src/runtime/locations/authority-key-codec.ts +7 -3
  492. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  493. package/src/runtime/locations/creation-operation-id.ts +6 -3
  494. package/src/runtime/locations/domain-store-contract.ts +12 -3
  495. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  496. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  497. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  498. package/src/runtime/locations/key-codec.ts +3 -2
  499. package/src/runtime/locations/lease-tracker.ts +8 -14
  500. package/src/runtime/locations/lifecycle.ts +13 -43
  501. package/src/runtime/locations/location-store-failure.ts +4 -0
  502. package/src/runtime/locations/location-store-pages.ts +18 -0
  503. package/src/runtime/locations/location-store-repository.ts +457 -482
  504. package/src/runtime/locations/relocation-blob.ts +17 -6
  505. package/src/runtime/locations/resolvers.ts +75 -49
  506. package/src/runtime/locations/runtime.ts +220 -110
  507. package/src/runtime/locations/spot-location-claims.ts +58 -1
  508. package/src/runtime/messaging/payload-codec.ts +35 -24
  509. package/src/runtime/messaging/request-deadline.ts +58 -0
  510. package/src/runtime/messaging/submission-result.ts +72 -2
  511. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  512. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  513. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  514. package/src/runtime/spots/index.ts +433 -229
  515. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  516. package/src/runtime/spots/spot-activation-state.ts +2 -2
  517. package/src/runtime/spots/spot-activation.ts +67 -37
  518. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  519. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  520. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  521. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  522. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  523. package/src/runtime/spots/spot-context.ts +3 -3
  524. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  525. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  526. package/src/runtime/spots/spot-manager-public.ts +21 -17
  527. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  528. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  529. package/src/runtime/spots/spot-outbound.ts +59 -47
  530. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  531. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  532. package/src/runtime/spots/spot-route-replies.ts +6 -4
  533. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  534. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  535. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  536. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  537. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  538. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  539. package/src/runtime/spots/spot-timer.ts +3 -2
  540. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  541. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  542. package/src/runtime/streams/bound-actor-relay-sender.ts +98 -66
  543. package/src/runtime/streams/bound-session-service.ts +22 -2
  544. package/src/runtime/streams/index.ts +78 -68
  545. package/src/runtime/streams/managed-stream.ts +32 -23
  546. package/src/runtime/streams/native-fallback-bound-session.ts +14 -28
  547. package/src/runtime/streams/protocol.ts +34 -88
  548. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  549. package/src/runtime/streams/session-calls.ts +11 -36
  550. package/src/runtime/streams/session-context.ts +60 -25
  551. package/src/runtime/streams/session-requests.ts +2 -1
  552. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  553. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  554. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  555. package/src/runtime/workers/index.ts +13 -12
  556. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  557. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  558. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  559. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  560. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  561. 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.createDeferredJoinCompletion = 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,12 +33,10 @@ 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; } });
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; } });
37
40
  var deferred_join_completion_1 = require("./deferred-join-completion");
38
41
  Object.defineProperty(exports, "createDeferredJoinCompletion", { enumerable: true, get: function () { return deferred_join_completion_1.createDeferredJoinCompletion; } });
39
42
  var actor_authority_publication_1 = require("./actor-authority-publication");
@@ -44,14 +47,12 @@ Object.defineProperty(exports, "isActorAuthorityPayload", { enumerable: true, ge
44
47
  Object.defineProperty(exports, "rewriteActorAuthorityRoute", { enumerable: true, get: function () { return actor_authority_publication_1.rewriteActorAuthorityRoute; } });
45
48
  Object.defineProperty(exports, "rewriteActorAuthorityOwner", { enumerable: true, get: function () { return actor_authority_publication_1.rewriteActorAuthorityOwner; } });
46
49
  Object.defineProperty(exports, "publishInitialActorAuthority", { enumerable: true, get: function () { return actor_authority_publication_1.publishInitialActorAuthority; } });
47
- const actor_runtime_state_2 = require("./actor-runtime-state");
48
50
  var spot_actor_dispatch_1 = require("./spot-actor-dispatch");
49
51
  Object.defineProperty(exports, "ZLinkActorPacketKind", { enumerable: true, get: function () { return spot_actor_dispatch_1.ZLinkActorPacketKind; } });
50
52
  Object.defineProperty(exports, "ZLinkSpotActorDispatcher", { enumerable: true, get: function () { return spot_actor_dispatch_1.ZLinkSpotActorDispatcher; } });
51
53
  Object.defineProperty(exports, "ZLinkSpotActorHandlerRegistryRuntime", { enumerable: true, get: function () { return spot_actor_dispatch_1.ZLinkSpotActorHandlerRegistryRuntime; } });
52
54
  var actor_remote_joiner_1 = require("./actor-remote-joiner");
53
55
  Object.defineProperty(exports, "ZLinkActorNativeJoinCoordinator", { enumerable: true, get: function () { return actor_remote_joiner_1.ZLinkActorNativeJoinCoordinator; } });
54
- const transferred_actor_rollback_1 = require("./transferred-actor-rollback");
55
56
  var actor_transfer_registry_1 = require("./actor-transfer-registry");
56
57
  Object.defineProperty(exports, "ZLinkActorTransferRegistry", { enumerable: true, get: function () { return actor_transfer_registry_1.ZLinkActorTransferRegistry; } });
57
58
  var actor_remote_wire_1 = require("./actor-remote-wire");
@@ -76,15 +77,20 @@ Object.defineProperty(exports, "createActorMembership", { enumerable: true, get:
76
77
  Object.defineProperty(exports, "ZLINK_ACTOR_LIFECYCLE_SNAPSHOT", { enumerable: true, get: function () { return actor_lifecycle_snapshot_1.ZLINK_ACTOR_LIFECYCLE_SNAPSHOT; } });
77
78
  class DefaultZLinkActorManager {
78
79
  options;
80
+ detachedTaskRunner;
79
81
  states = new Map();
80
82
  actorMeshNames = new Map();
81
83
  relocationStaged = new Set();
82
84
  creation;
83
85
  transferredActorRollback;
84
- constructor(options) {
86
+ constructor(options, detachedTaskRunner) {
85
87
  this.options = options;
88
+ this.detachedTaskRunner = detachedTaskRunner;
89
+ if (detachedTaskRunner === undefined) {
90
+ throw new Error('Actor manager requires a detached task runner.');
91
+ }
86
92
  this.creation = new actor_creation_1.ZLinkActorCreationCoordinator(options);
87
- 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));
88
94
  }
89
95
  create(actorId, actorType) {
90
96
  return new ZLinkActorCreateCallRuntime((options, signal) => this.submitCreate(actorId, actorType, true, options, signal));
@@ -128,7 +134,6 @@ class DefaultZLinkActorManager {
128
134
  if (state.isMoving) {
129
135
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorMoving, `Actor '${actor.actorId}' is relocating.`);
130
136
  }
131
- const actorInstance = state.actor;
132
137
  const node = this.options.nativeActorNodeProvider?.() ?? this.options.nativeActorNode;
133
138
  const completions = this.options.nativeActorCompletionTableProvider?.();
134
139
  const entryNodeRid = state.entryNodeRid ?? current.nodeRid;
@@ -155,14 +160,7 @@ class DefaultZLinkActorManager {
155
160
  if (state.actorType !== undefined && state.ownsLocation) {
156
161
  await this.options.locationLifecycle?.releaseActor(state.actorType, actor.actorId, current);
157
162
  }
158
- this.options.actorDestroyedCleanup?.(actor.actorId);
159
- await (0, handler_instance_scope_1.disposeLifecycleHandlers)(actorInstance);
160
- state.clearAfterDestroy();
161
- if (this.states.get(actor.actorId) === state) {
162
- this.states.delete(actor.actorId);
163
- this.actorMeshNames.delete(actor.actorId);
164
- }
165
- this.options.metrics?.change('zlink.actor.count', -1);
163
+ await this.finalizeDestroyedActor(actor.actorId, state);
166
164
  });
167
165
  try {
168
166
  await destroyTask;
@@ -178,7 +176,7 @@ class DefaultZLinkActorManager {
178
176
  const state = this.getOrCreateState(actorId);
179
177
  this.rememberActorMeshFromType(actorId, actorType);
180
178
  if (state.actor !== undefined) {
181
- await (0, handler_instance_scope_1.disposeLifecycleHandlers)(state.actor);
179
+ await (0, handler_instance_scope_1.disposeLifecycleHandlers)(state.actor, this.detachedTaskRunner);
182
180
  }
183
181
  state.prepareForRemoteReentry();
184
182
  const operation = state.getOrStartCreation(actorType, false, () => this.creation.materializeTransferredActor(actorId, actorType, state, adapterKey === undefined
@@ -284,7 +282,7 @@ class DefaultZLinkActorManager {
284
282
  this.relocationStaged.add(actorId);
285
283
  let nativeRef;
286
284
  try {
287
- 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);
288
286
  this.rememberActorMeshFromType(actorId, actorType);
289
287
  const state = this.getOrCreateState(actorId);
290
288
  state.setNativeActorRef(nativeRef);
@@ -302,7 +300,8 @@ class DefaultZLinkActorManager {
302
300
  await registry.restore(transfer.adapterKey, actor, transfer.state, signal);
303
301
  }
304
302
  state.setLocationGeneration(authorityOwnerGeneration);
305
- state.setJoinedSpot(spotId, undefined, membershipEpoch);
303
+ if (spotId !== undefined)
304
+ state.setJoinedSpot(spotId, undefined, membershipEpoch);
306
305
  return actor;
307
306
  }
308
307
  catch (error) {
@@ -310,12 +309,7 @@ class DefaultZLinkActorManager {
310
309
  node.discardRelocatedActor?.(nativeRef);
311
310
  this.relocationStaged.delete(actorId);
312
311
  const failedState = this.states.get(actorId);
313
- if (failedState?.actor !== undefined) {
314
- await (0, handler_instance_scope_1.disposeLifecycleHandlers)(failedState.actor);
315
- }
316
- failedState?.clearAfterDestroy();
317
- this.states.delete(actorId);
318
- this.actorMeshNames.delete(actorId);
312
+ await this.finalizeActorState(actorId, failedState);
319
313
  throw error;
320
314
  }
321
315
  }
@@ -335,26 +329,57 @@ class DefaultZLinkActorManager {
335
329
  const state = this.states.get(actorId);
336
330
  const node = this.options.nativeActorNodeProvider?.() ?? this.options.nativeActorNode;
337
331
  const nativeActorRef = exactNativeActorRef ?? state?.nativeActorRef;
338
- if (nativeActorRef !== undefined) {
339
- node?.discardRelocatedActor?.(nativeActorRef);
332
+ const failures = [];
333
+ try {
334
+ if (nativeActorRef !== undefined) {
335
+ node?.discardRelocatedActor?.(nativeActorRef);
336
+ }
340
337
  }
341
- if (state?.actor !== undefined) {
342
- 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.');
343
351
  }
344
- state?.clearAfterDestroy();
345
- this.states.delete(actorId);
346
- this.actorMeshNames.delete(actorId);
347
- this.relocationStaged.delete(actorId);
348
352
  }
349
353
  async completeCoreRelocationSource(actorId) {
350
354
  const state = this.states.get(actorId);
351
- if (state?.actor !== undefined) {
352
- 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);
353
382
  }
354
- state?.clearAfterDestroy();
355
- this.states.delete(actorId);
356
- this.actorMeshNames.delete(actorId);
357
- this.relocationStaged.delete(actorId);
358
383
  }
359
384
  async getOrCreateActor(actorId, actorType, signal) {
360
385
  this.rememberActorMeshFromType(actorId, actorType);
@@ -374,7 +399,7 @@ class DefaultZLinkActorManager {
374
399
  }
375
400
  async createReservedActorResult(actorId, actorType, createRequest, signal, nativeActorRef) {
376
401
  this.rememberActorMeshFromType(actorId, actorType);
377
- 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);
378
403
  }
379
404
  adoptCreatedAuthority(actorId, authorityOwnerGeneration, ownerLeaseGeneration) {
380
405
  const state = this.states.get(actorId);
@@ -405,7 +430,7 @@ class DefaultZLinkActorManager {
405
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.`);
406
431
  }
407
432
  const destroyTask = state.getOrStartDestroy(entryNodeRid, async (actorRef) => {
408
- 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 ?? '');
409
434
  if (actorRef !== undefined) {
410
435
  await node.destroyActor(actorRef, 0, destroySignal);
411
436
  state.markNativeActorDestroyed(actorRef);
@@ -413,14 +438,7 @@ class DefaultZLinkActorManager {
413
438
  if (state.actorType !== undefined && state.ownsLocation) {
414
439
  await this.options.locationLifecycle?.releaseActor(state.actorType, actor.context.actorId, destroyedActorRef);
415
440
  }
416
- this.options.actorDestroyedCleanup?.(actor.context.actorId);
417
- await (0, handler_instance_scope_1.disposeLifecycleHandlers)(actor);
418
- state.clearAfterDestroy();
419
- if (this.states.get(actor.context.actorId) === state) {
420
- this.states.delete(actor.context.actorId);
421
- this.actorMeshNames.delete(actor.context.actorId);
422
- }
423
- this.options.metrics?.change('zlink.actor.count', -1);
441
+ await this.finalizeDestroyedActor(actor.context.actorId, state);
424
442
  });
425
443
  try {
426
444
  await destroyTask;
@@ -430,7 +448,7 @@ class DefaultZLinkActorManager {
430
448
  throw error;
431
449
  }
432
450
  }
433
- 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) {
434
452
  const deadline = performance.now() + timeoutMs;
435
453
  const requestedMeshName = this.actorMeshNames.get(actorId);
436
454
  for (;;) {
@@ -509,7 +527,7 @@ class DefaultZLinkActorManager {
509
527
  if (this.states.get(actorId) === state) {
510
528
  this.states.delete(actorId);
511
529
  this.actorMeshNames.delete(actorId);
512
- this.options.metrics?.change('zlink.actor.count', -1);
530
+ this.options.metrics?.change(runtime_metrics_1.METRIC_NAMES.ActorCount, -1);
513
531
  }
514
532
  }
515
533
  createRequestMessage(request) {
@@ -517,13 +535,13 @@ class DefaultZLinkActorManager {
517
535
  const empty = runtime_message_1.ZLinkBufferMessage.from(Buffer.alloc(0));
518
536
  return {
519
537
  nativeRequest: empty,
520
- callbackRequest: contracts_2.ZLinkMessage.fromEncoded(contracts_1.ZLinkEncodedPayload.from(empty.data()))
538
+ callbackRequest: contracts_1.ZLinkMessage.fromEncoded(contracts_1.ZLinkEncodedPayload.from(empty.data()))
521
539
  };
522
540
  }
523
541
  const nativeRequest = (0, payload_codec_1.encodeFrameworkPayloadMessage)(request, this.options.messageSerializers);
524
542
  return {
525
543
  nativeRequest,
526
- callbackRequest: contracts_2.ZLinkMessage.fromEncoded(contracts_1.ZLinkEncodedPayload.from(nativeRequest.data()))
544
+ callbackRequest: contracts_1.ZLinkMessage.fromEncoded(contracts_1.ZLinkEncodedPayload.from(nativeRequest.data()))
527
545
  };
528
546
  }
529
547
  getOrCreateState(actorId) {
@@ -531,25 +549,25 @@ class DefaultZLinkActorManager {
531
549
  if (existing !== undefined) {
532
550
  return existing;
533
551
  }
534
- const state = new actor_runtime_state_2.ZLinkActorRuntimeState(actorId);
552
+ const state = new actor_runtime_state_1.ZLinkActorRuntimeState(actorId);
535
553
  const remembered = this.actorMeshNames.get(actorId);
536
554
  if (remembered !== undefined) {
537
555
  state.rememberMeshName(remembered);
538
556
  }
539
557
  this.states.set(actorId, state);
540
- this.options.metrics?.change('zlink.actor.count', 1);
558
+ this.options.metrics?.change(runtime_metrics_1.METRIC_NAMES.ActorCount, 1);
541
559
  return state;
542
560
  }
543
561
  actorRefForState(state) {
544
562
  const nativeActorRef = state.nativeActorRef;
545
563
  if (nativeActorRef !== undefined) {
546
- return (0, actor_runtime_state_2.toFrameworkActorRef)(nativeActorRef, state.meshName ?? '');
564
+ return (0, actor_runtime_state_1.toFrameworkActorRef)(nativeActorRef, state.meshName ?? '');
547
565
  }
548
566
  return {
549
567
  actorId: state.actorId,
550
568
  objectGeneration: 1n,
551
569
  meshName: state.meshName ?? '',
552
- nodeRid: this.options.actorCreatedNodeRidProvider?.() ?? 'local'
570
+ nodeRid: this.options.actorCreatedNodeRidProvider?.() ?? LOCAL_DIAGNOSTIC_NODE_RID
553
571
  };
554
572
  }
555
573
  }
@@ -559,7 +577,7 @@ class ZLinkActorCreateCallRuntime {
559
577
  meshNameValue;
560
578
  requestValue;
561
579
  requestConfigured = false;
562
- timeoutMsValue = 30_000;
580
+ timeoutMsValue = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS;
563
581
  timeoutConfigured = false;
564
582
  submitted = false;
565
583
  turn = (0, execution_1.captureZLinkSpotSerialTurn)();
@@ -643,7 +661,7 @@ async function waitForCreationRetry(signal) {
643
661
  else
644
662
  reject(error);
645
663
  };
646
- const timer = setTimeout(() => finish(), 5);
664
+ const timer = setTimeout(() => finish(), ACTOR_CREATION_RETRY_INTERVAL_MS);
647
665
  const onAbort = () => {
648
666
  finish(signal?.reason ?? new Error('Actor creation was aborted.'));
649
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,4 +1,6 @@
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
5
  readonly ownerAdmissionOpen: () => boolean;
4
6
  private readonly meshes;
@@ -1,7 +1,13 @@
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();
@@ -165,7 +171,7 @@ function compactWaiters(state) {
165
171
  state.waiters.length = 0;
166
172
  state.waiterHead = 0;
167
173
  }
168
- else if (state.waiterHead >= 1024 && state.waiterHead * 2 >= state.waiters.length) {
174
+ else if (shouldCompactBackingArray(state.waiterHead, state.waiters.length)) {
169
175
  state.waiters.splice(0, state.waiterHead);
170
176
  state.waiterHead = 0;
171
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