@zlink-systems/framework 0.30.1 → 0.30.2

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 (340) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/ZLinkEncodedPayload.d.ts +6 -0
  3. package/dist/contracts/Common/ZLinkEncodedPayload.js +18 -3
  4. package/dist/contracts/Common/encoded-payload-storage.d.ts +1 -1
  5. package/dist/contracts/Common/encoded-payload-storage.js +5 -2
  6. package/dist/contracts/Configuration/Builders.d.ts +1 -1
  7. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +2 -1
  8. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +5 -1
  9. package/dist/contracts/Configuration/RegistrationBuilders.js +2 -2
  10. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  11. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +2 -2
  12. package/dist/contracts/Locations/Rows.d.ts +2 -0
  13. package/dist/contracts/Spots/Contracts.d.ts +4 -0
  14. package/dist/contracts/Spots/ZLinkSpot.d.ts +3 -3
  15. package/dist/runtime/abort.d.ts +5 -0
  16. package/dist/runtime/abort.js +10 -0
  17. package/dist/runtime/actors/actor-authority-publication.js +3 -2
  18. package/dist/runtime/actors/actor-client.d.ts +0 -1
  19. package/dist/runtime/actors/actor-client.js +38 -45
  20. package/dist/runtime/actors/actor-context.d.ts +2 -0
  21. package/dist/runtime/actors/actor-context.js +46 -9
  22. package/dist/runtime/actors/actor-handoff.d.ts +7 -3
  23. package/dist/runtime/actors/actor-handoff.js +212 -88
  24. package/dist/runtime/actors/actor-join-relocation.d.ts +2 -0
  25. package/dist/runtime/actors/actor-local-native-join.js +4 -0
  26. package/dist/runtime/actors/actor-mailbox.js +27 -1
  27. package/dist/runtime/actors/actor-remote-joiner.js +3 -1
  28. package/dist/runtime/actors/actor-reply.d.ts +4 -0
  29. package/dist/runtime/actors/actor-reply.js +29 -0
  30. package/dist/runtime/actors/actor-runtime-contracts.d.ts +2 -0
  31. package/dist/runtime/actors/actor-runtime-state.js +2 -20
  32. package/dist/runtime/actors/actor-source-transfer.d.ts +1 -17
  33. package/dist/runtime/actors/index.d.ts +6 -2
  34. package/dist/runtime/actors/index.js +37 -21
  35. package/dist/runtime/actors/session-disconnected-wire.d.ts +8 -0
  36. package/dist/runtime/actors/session-disconnected-wire.js +48 -0
  37. package/dist/runtime/admission.d.ts +9 -1
  38. package/dist/runtime/admission.js +55 -32
  39. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +13 -0
  40. package/dist/runtime/application-jobs/application-job-queue-scope.js +27 -1
  41. package/dist/runtime/application-jobs/contracts.d.ts +2 -0
  42. package/dist/runtime/backend/contracts/index.d.ts +19 -3
  43. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +2 -2
  44. package/dist/runtime/backend/mesh-completion-table.js +5 -0
  45. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +26 -2
  46. package/dist/runtime/backend/mesh-dispatch-pump.js +193 -107
  47. package/dist/runtime/backend/node/node-raw-binding-port.js +90 -58
  48. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +33 -8
  49. package/dist/runtime/backend/node/node-raw-mesh-backend.js +142 -143
  50. package/dist/runtime/backend/node/node-socket-backend-adapter.d.ts +1 -1
  51. package/dist/runtime/backend/node/node-socket-backend-adapter.js +5 -5
  52. package/dist/runtime/channels/channel-clients.d.ts +1 -0
  53. package/dist/runtime/channels/channel-clients.js +20 -5
  54. package/dist/runtime/channels/channel-dispatch-pipeline.d.ts +22 -3
  55. package/dist/runtime/channels/channel-dispatch-pipeline.js +103 -57
  56. package/dist/runtime/channels/channel-dispatchers.d.ts +3 -2
  57. package/dist/runtime/channels/channel-dispatchers.js +44 -37
  58. package/dist/runtime/channels/channel-envelope.d.ts +1 -0
  59. package/dist/runtime/channels/channel-envelope.js +74 -31
  60. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +4 -3
  61. package/dist/runtime/channels/channel-runtime-lifecycle.js +19 -24
  62. package/dist/runtime/channels/channel-runtime-manager.d.ts +3 -2
  63. package/dist/runtime/channels/channel-runtime-manager.js +4 -4
  64. package/dist/runtime/channels/channel-transports.d.ts +0 -1
  65. package/dist/runtime/channels/channel-transports.js +35 -33
  66. package/dist/runtime/channels/client-server-location-runtime.js +5 -4
  67. package/dist/runtime/channels/dispatch-error-reporter.d.ts +2 -1
  68. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  69. package/dist/runtime/channels/fanout-location-runtime.d.ts +1 -1
  70. package/dist/runtime/channels/fanout-location-runtime.js +3 -3
  71. package/dist/runtime/diagnostics/flow-context.js +19 -7
  72. package/dist/runtime/diagnostics/index.js +4 -9
  73. package/dist/runtime/diagnostics/message-flow.d.ts +8 -0
  74. package/dist/runtime/diagnostics/message-flow.js +35 -5
  75. package/dist/runtime/diagnostics/runtime-metrics.d.ts +2 -2
  76. package/dist/runtime/diagnostics/runtime-metrics.js +10 -8
  77. package/dist/runtime/execution/index.d.ts +4 -2
  78. package/dist/runtime/execution/index.js +33 -10
  79. package/dist/runtime/execution/serial-execution-queue.d.ts +4 -0
  80. package/dist/runtime/execution/serial-execution-queue.js +21 -2
  81. package/dist/runtime/execution/state-lane.d.ts +2 -0
  82. package/dist/runtime/execution/state-lane.js +5 -0
  83. package/dist/runtime/foundation/operation-registry.d.ts +25 -1
  84. package/dist/runtime/foundation/operation-registry.js +86 -18
  85. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +39 -3
  86. package/dist/runtime/foundation/raw-service-mesh-runtime.js +151 -55
  87. package/dist/runtime/foundation/service-liveness-registry.d.ts +12 -1
  88. package/dist/runtime/foundation/service-liveness-registry.js +38 -0
  89. package/dist/runtime/foundation/service-mailbox.d.ts +7 -0
  90. package/dist/runtime/foundation/service-maintenance-runtime.js +1 -6
  91. package/dist/runtime/foundation/service-relocation-object-owner.d.ts +2 -3
  92. package/dist/runtime/foundation/service-relocation-object-owner.js +48 -35
  93. package/dist/runtime/foundation/service-relocation-runtime.js +7 -3
  94. package/dist/runtime/foundation/service-runtime-contracts.d.ts +8 -1
  95. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +2 -1
  96. package/dist/runtime/foundation/service-stateful-registry.d.ts +5 -4
  97. package/dist/runtime/foundation/service-stateful-registry.js +24 -26
  98. package/dist/runtime/foundation/service-stateful-runtime.d.ts +72 -6
  99. package/dist/runtime/foundation/service-stateful-runtime.js +444 -117
  100. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +14 -1
  101. package/dist/runtime/foundation/service-stateful-wire-codec.js +48 -27
  102. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +6 -1
  103. package/dist/runtime/foundation/service-wire-binary-primitives.js +27 -11
  104. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  105. package/dist/runtime/foundation/service-wire-constants.generated.js +1 -0
  106. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +10 -0
  107. package/dist/runtime/foundation/service-wire-m6a-codec.js +166 -53
  108. package/dist/runtime/host/actor-packet-relay.d.ts +6 -4
  109. package/dist/runtime/host/actor-packet-relay.js +59 -72
  110. package/dist/runtime/host/actor-placement-coordinator.js +25 -8
  111. package/dist/runtime/host/actor-transfer-runtime.d.ts +7 -31
  112. package/dist/runtime/host/actor-transfer-runtime.js +85 -331
  113. package/dist/runtime/host/application-job-queue.d.ts +24 -3
  114. package/dist/runtime/host/application-job-queue.js +28 -41
  115. package/dist/runtime/host/index.d.ts +5 -1
  116. package/dist/runtime/host/index.js +171 -97
  117. package/dist/runtime/host/location-runtime-owner.js +2 -6
  118. package/dist/runtime/host/mesh-router-resolver.d.ts +4 -0
  119. package/dist/runtime/host/mesh-router-resolver.js +14 -6
  120. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -4
  121. package/dist/runtime/host/remote-bound-session-relay.js +71 -190
  122. package/dist/runtime/host/route-mesh-runtime.d.ts +2 -2
  123. package/dist/runtime/host/route-mesh-runtime.js +5 -3
  124. package/dist/runtime/host/runtime-shutdown.d.ts +1 -0
  125. package/dist/runtime/host/runtime-shutdown.js +3 -2
  126. package/dist/runtime/host/service-relocation-host-runtime.d.ts +17 -7
  127. package/dist/runtime/host/service-relocation-host-runtime.js +550 -367
  128. package/dist/runtime/host/spot-runtime-options-factory.js +15 -7
  129. package/dist/runtime/host/user-spot-creation-coordinator.js +33 -84
  130. package/dist/runtime/locations/auto-connect-loop.d.ts +2 -0
  131. package/dist/runtime/locations/auto-connect-loop.js +22 -14
  132. package/dist/runtime/locations/auto-connect-reconciler.js +0 -6
  133. package/dist/runtime/locations/auto-connect-types.d.ts +0 -1
  134. package/dist/runtime/locations/descriptor-publication.d.ts +4 -0
  135. package/dist/runtime/locations/descriptor-publication.js +11 -0
  136. package/dist/runtime/locations/domain-store-contract.d.ts +1 -0
  137. package/dist/runtime/locations/in-memory-authority-store.d.ts +7 -1
  138. package/dist/runtime/locations/in-memory-authority-store.js +56 -19
  139. package/dist/runtime/locations/in-memory-location-store.js +1 -10
  140. package/dist/runtime/locations/index.d.ts +1 -0
  141. package/dist/runtime/locations/index.js +1 -0
  142. package/dist/runtime/locations/lease-tracker.js +1 -6
  143. package/dist/runtime/locations/location-store-repository.d.ts +51 -1
  144. package/dist/runtime/locations/location-store-repository.js +363 -139
  145. package/dist/runtime/locations/relocation-blob.d.ts +18 -1
  146. package/dist/runtime/locations/relocation-blob.js +52 -1
  147. package/dist/runtime/locations/request-source-resolver.d.ts +37 -0
  148. package/dist/runtime/locations/request-source-resolver.js +80 -0
  149. package/dist/runtime/locations/resolvers.js +1 -1
  150. package/dist/runtime/locations/runtime.d.ts +6 -2
  151. package/dist/runtime/locations/runtime.js +37 -30
  152. package/dist/runtime/messaging/payload-codec.d.ts +7 -1
  153. package/dist/runtime/messaging/payload-codec.js +7 -6
  154. package/dist/runtime/messaging/request-result.js +29 -26
  155. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +19 -1
  156. package/dist/runtime/protocol/service_wire_codec.generated.js +85 -0
  157. package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +7 -1
  158. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +23 -7
  159. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +3 -2
  160. package/dist/runtime/spots/index.d.ts +18 -11
  161. package/dist/runtime/spots/index.js +234 -176
  162. package/dist/runtime/spots/spot-activation-registry.d.ts +4 -2
  163. package/dist/runtime/spots/spot-activation-registry.js +21 -11
  164. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  165. package/dist/runtime/spots/spot-activation-state.js +7 -7
  166. package/dist/runtime/spots/spot-activation.d.ts +6 -3
  167. package/dist/runtime/spots/spot-activation.js +123 -44
  168. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -0
  169. package/dist/runtime/spots/spot-actor-admission-coordinator.js +13 -22
  170. package/dist/runtime/spots/spot-actor-membership.d.ts +0 -1
  171. package/dist/runtime/spots/spot-actor-membership.js +0 -8
  172. package/dist/runtime/spots/spot-actor-packet-dispatch.js +33 -8
  173. package/dist/runtime/spots/spot-actor-packet-drain.js +5 -33
  174. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -0
  175. package/dist/runtime/spots/spot-entry-activation.js +14 -9
  176. package/dist/runtime/spots/spot-handler-registry.d.ts +4 -3
  177. package/dist/runtime/spots/spot-handler-registry.js +6 -2
  178. package/dist/runtime/spots/spot-manager-internal-contracts.d.ts +2 -2
  179. package/dist/runtime/spots/spot-manager-public.js +2 -2
  180. package/dist/runtime/spots/spot-node-autoconnect.d.ts +2 -1
  181. package/dist/runtime/spots/spot-node-autoconnect.js +18 -39
  182. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -2
  183. package/dist/runtime/spots/spot-node-runtime-manager.js +115 -50
  184. package/dist/runtime/spots/spot-outbound.js +3 -3
  185. package/dist/runtime/spots/spot-remote-codec.js +5 -1
  186. package/dist/runtime/spots/spot-runtime-ports.d.ts +0 -1
  187. package/dist/runtime/spots/spot-serial-executor.d.ts +10 -0
  188. package/dist/runtime/spots/spot-serial-executor.js +61 -8
  189. package/dist/runtime/spots/spot-serial-turn-executor.js +19 -2
  190. package/dist/runtime/spots/spot-subscription-dispatch.js +1 -1
  191. package/dist/runtime/spots/spot-timer.d.ts +57 -5
  192. package/dist/runtime/spots/spot-timer.js +287 -103
  193. package/dist/runtime/streams/actor-session-binding-registry.d.ts +42 -11
  194. package/dist/runtime/streams/actor-session-binding-registry.js +165 -48
  195. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +8 -4
  196. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +2 -1
  197. package/dist/runtime/streams/bound-actor-relay-sender.js +15 -8
  198. package/dist/runtime/streams/bound-session-service.d.ts +1 -1
  199. package/dist/runtime/streams/bound-session-service.js +6 -11
  200. package/dist/runtime/streams/index.d.ts +3 -2
  201. package/dist/runtime/streams/index.js +6 -4
  202. package/dist/runtime/streams/managed-stream.js +3 -2
  203. package/dist/runtime/streams/native-fallback-bound-session.js +8 -73
  204. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -8
  205. package/dist/runtime/streams/session-actor-coordinator.js +15 -32
  206. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +3 -10
  207. package/dist/runtime/streams/stream-session-runtime.js +1 -4
  208. package/dist/runtime/workers/index.js +1 -1
  209. package/package.json +3 -3
  210. package/src/contracts/Common/ZLinkEncodedPayload.ts +24 -4
  211. package/src/contracts/Common/encoded-payload-storage.ts +6 -3
  212. package/src/contracts/Configuration/Builders.ts +4 -1
  213. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +7 -2
  214. package/src/contracts/Configuration/RegistrationBuilders.ts +6 -2
  215. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  216. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +2 -1
  217. package/src/contracts/Locations/Rows.ts +2 -0
  218. package/src/contracts/Spots/Contracts.ts +8 -0
  219. package/src/contracts/Spots/ZLinkSpot.ts +3 -3
  220. package/src/runtime/abort.ts +12 -0
  221. package/src/runtime/actors/actor-authority-publication.ts +3 -2
  222. package/src/runtime/actors/actor-client.ts +61 -70
  223. package/src/runtime/actors/actor-context.ts +49 -9
  224. package/src/runtime/actors/actor-handoff.ts +282 -106
  225. package/src/runtime/actors/actor-join-relocation.ts +2 -0
  226. package/src/runtime/actors/actor-local-native-join.ts +4 -0
  227. package/src/runtime/actors/actor-mailbox.ts +40 -2
  228. package/src/runtime/actors/actor-remote-joiner.ts +6 -1
  229. package/src/runtime/actors/actor-reply.ts +42 -0
  230. package/src/runtime/actors/actor-runtime-contracts.ts +2 -0
  231. package/src/runtime/actors/actor-runtime-state.ts +2 -20
  232. package/src/runtime/actors/actor-source-transfer.ts +1 -34
  233. package/src/runtime/actors/index.ts +41 -27
  234. package/src/runtime/actors/session-disconnected-wire.ts +66 -0
  235. package/src/runtime/admission.ts +69 -34
  236. package/src/runtime/application-jobs/application-job-queue-scope.ts +33 -1
  237. package/src/runtime/application-jobs/contracts.ts +2 -0
  238. package/src/runtime/backend/contracts/index.ts +39 -4
  239. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +5 -3
  240. package/src/runtime/backend/mesh-completion-table.ts +4 -0
  241. package/src/runtime/backend/mesh-dispatch-pump.ts +223 -124
  242. package/src/runtime/backend/node/node-raw-binding-port.ts +106 -70
  243. package/src/runtime/backend/node/node-raw-mesh-backend.ts +221 -170
  244. package/src/runtime/backend/node/node-socket-backend-adapter.ts +5 -5
  245. package/src/runtime/channels/channel-clients.ts +49 -24
  246. package/src/runtime/channels/channel-dispatch-pipeline.ts +173 -124
  247. package/src/runtime/channels/channel-dispatchers.ts +116 -72
  248. package/src/runtime/channels/channel-envelope.ts +105 -36
  249. package/src/runtime/channels/channel-runtime-lifecycle.ts +13 -13
  250. package/src/runtime/channels/channel-runtime-manager.ts +12 -5
  251. package/src/runtime/channels/channel-transports.ts +49 -58
  252. package/src/runtime/channels/client-server-location-runtime.ts +11 -10
  253. package/src/runtime/channels/dispatch-error-reporter.ts +4 -2
  254. package/src/runtime/channels/fanout-location-runtime.ts +17 -9
  255. package/src/runtime/diagnostics/flow-context.ts +20 -7
  256. package/src/runtime/diagnostics/index.ts +1 -7
  257. package/src/runtime/diagnostics/message-flow.ts +47 -9
  258. package/src/runtime/diagnostics/runtime-metrics.ts +12 -10
  259. package/src/runtime/execution/index.ts +40 -14
  260. package/src/runtime/execution/serial-execution-queue.ts +31 -4
  261. package/src/runtime/execution/state-lane.ts +7 -0
  262. package/src/runtime/foundation/operation-registry.ts +98 -20
  263. package/src/runtime/foundation/raw-service-mesh-runtime.ts +244 -67
  264. package/src/runtime/foundation/service-liveness-registry.ts +39 -0
  265. package/src/runtime/foundation/service-mailbox.ts +8 -0
  266. package/src/runtime/foundation/service-maintenance-runtime.ts +1 -8
  267. package/src/runtime/foundation/service-relocation-object-owner.ts +54 -37
  268. package/src/runtime/foundation/service-relocation-runtime.ts +7 -3
  269. package/src/runtime/foundation/service-runtime-contracts.ts +12 -1
  270. package/src/runtime/foundation/service-session-binding-ingress-port.ts +2 -1
  271. package/src/runtime/foundation/service-stateful-registry.ts +38 -35
  272. package/src/runtime/foundation/service-stateful-runtime.ts +667 -152
  273. package/src/runtime/foundation/service-stateful-wire-codec.ts +49 -11
  274. package/src/runtime/foundation/service-wire-binary-primitives.ts +35 -12
  275. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  276. package/src/runtime/foundation/service-wire-m6a-codec.ts +187 -51
  277. package/src/runtime/host/actor-packet-relay.ts +113 -94
  278. package/src/runtime/host/actor-placement-coordinator.ts +31 -8
  279. package/src/runtime/host/actor-transfer-runtime.ts +104 -430
  280. package/src/runtime/host/application-job-queue.ts +29 -44
  281. package/src/runtime/host/index.ts +286 -129
  282. package/src/runtime/host/location-runtime-owner.ts +2 -6
  283. package/src/runtime/host/mesh-router-resolver.ts +13 -5
  284. package/src/runtime/host/remote-bound-session-relay.ts +86 -248
  285. package/src/runtime/host/route-mesh-runtime.ts +11 -5
  286. package/src/runtime/host/runtime-shutdown.ts +15 -4
  287. package/src/runtime/host/service-relocation-host-runtime.ts +784 -475
  288. package/src/runtime/host/spot-runtime-options-factory.ts +18 -7
  289. package/src/runtime/host/user-spot-creation-coordinator.ts +41 -100
  290. package/src/runtime/locations/auto-connect-loop.ts +22 -14
  291. package/src/runtime/locations/auto-connect-reconciler.ts +0 -6
  292. package/src/runtime/locations/auto-connect-types.ts +0 -1
  293. package/src/runtime/locations/descriptor-publication.ts +7 -0
  294. package/src/runtime/locations/domain-store-contract.ts +5 -0
  295. package/src/runtime/locations/in-memory-authority-store.ts +85 -23
  296. package/src/runtime/locations/in-memory-location-store.ts +1 -12
  297. package/src/runtime/locations/index.ts +1 -0
  298. package/src/runtime/locations/lease-tracker.ts +2 -9
  299. package/src/runtime/locations/location-store-repository.ts +628 -152
  300. package/src/runtime/locations/relocation-blob.ts +75 -1
  301. package/src/runtime/locations/request-source-resolver.ts +138 -0
  302. package/src/runtime/locations/resolvers.ts +2 -2
  303. package/src/runtime/locations/runtime.ts +70 -40
  304. package/src/runtime/messaging/payload-codec.ts +8 -11
  305. package/src/runtime/messaging/request-result.ts +33 -29
  306. package/src/runtime/protocol/service_wire_codec.generated.ts +87 -4
  307. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +13 -10
  308. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +3 -2
  309. package/src/runtime/spots/index.ts +375 -281
  310. package/src/runtime/spots/spot-activation-registry.ts +25 -13
  311. package/src/runtime/spots/spot-activation-state.ts +12 -19
  312. package/src/runtime/spots/spot-activation.ts +170 -86
  313. package/src/runtime/spots/spot-actor-admission-coordinator.ts +25 -55
  314. package/src/runtime/spots/spot-actor-membership.ts +0 -15
  315. package/src/runtime/spots/spot-actor-packet-dispatch.ts +56 -11
  316. package/src/runtime/spots/spot-actor-packet-drain.ts +9 -52
  317. package/src/runtime/spots/spot-entry-activation.ts +24 -19
  318. package/src/runtime/spots/spot-handler-registry.ts +15 -4
  319. package/src/runtime/spots/spot-manager-internal-contracts.ts +2 -2
  320. package/src/runtime/spots/spot-manager-public.ts +2 -2
  321. package/src/runtime/spots/spot-node-autoconnect.ts +22 -45
  322. package/src/runtime/spots/spot-node-runtime-manager.ts +197 -67
  323. package/src/runtime/spots/spot-outbound.ts +3 -3
  324. package/src/runtime/spots/spot-remote-codec.ts +9 -2
  325. package/src/runtime/spots/spot-runtime-ports.ts +0 -1
  326. package/src/runtime/spots/spot-serial-executor.ts +97 -25
  327. package/src/runtime/spots/spot-serial-turn-executor.ts +22 -3
  328. package/src/runtime/spots/spot-subscription-dispatch.ts +1 -1
  329. package/src/runtime/spots/spot-timer.ts +413 -157
  330. package/src/runtime/streams/actor-session-binding-registry.ts +236 -64
  331. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +16 -8
  332. package/src/runtime/streams/bound-actor-relay-sender.ts +23 -9
  333. package/src/runtime/streams/bound-session-service.ts +7 -10
  334. package/src/runtime/streams/index.ts +12 -6
  335. package/src/runtime/streams/managed-stream.ts +4 -2
  336. package/src/runtime/streams/native-fallback-bound-session.ts +14 -103
  337. package/src/runtime/streams/session-actor-coordinator.ts +39 -88
  338. package/src/runtime/streams/stream-binding-runtime-ports.ts +3 -9
  339. package/src/runtime/streams/stream-session-runtime.ts +1 -5
  340. package/src/runtime/workers/index.ts +1 -1
@@ -48,7 +48,10 @@ import {
48
48
  registerActorSessionBindingRuntimeOwner
49
49
  } from './actor-session-binding-runtime-owner';
50
50
  import { ZLinkActorSessionLifecycleCoordinator } from './actor-session-lifecycle-coordinator';
51
- import { ZLinkBoundActorRelaySender } from './bound-actor-relay-sender';
51
+ import {
52
+ ZLinkBoundActorRelaySender,
53
+ type ZLinkBoundActorRelaySenderOptions
54
+ } from './bound-actor-relay-sender';
52
55
  import {
53
56
  DefaultZLinkBoundSessionResponseTarget,
54
57
  type ZLinkBoundSessionResponseTarget
@@ -140,7 +143,7 @@ export interface ZLinkStreamBindingRuntimeOptions {
140
143
  header: ZLinkStreamFrameHeader,
141
144
  payload: Message
142
145
  ) => Promise<boolean>;
143
- readonly notifyDisconnected?: (actor: ZLinkSessionActor, signal?: AbortSignal) => Promise<void>;
146
+ readonly notifyDisconnected?: ZLinkBoundActorRelaySenderOptions['notifyDisconnected'];
144
147
  readonly flowCreationEnabled?: () => boolean;
145
148
  readonly metrics?: import('../diagnostics').ZLinkRuntimeMetrics;
146
149
  }
@@ -459,14 +462,16 @@ export class ZLinkStreamBindingRuntime {
459
462
  actorSessionLifecycle
460
463
  );
461
464
  registerActorSessionBindingRuntimeOwner(this, {
465
+ prepareSessionRelocationSeal: (...args) => this.routes.prepareSessionRelocationSeal(...args),
466
+ acceptSessionRelocationRoute: (value, apply) =>
467
+ this.routes.acceptSessionRelocationRoute(value, apply),
468
+ clearSessionRelocationResults: () => this.routes.clearSessionRelocationResults(),
462
469
  actorSlot: async (actorId, sessionRid) =>
463
470
  (await this.routes.routeForSessionBinding(actorId, sessionRid))?.actorSlot,
464
- sealRelocation: (claim, expected, signal) =>
465
- this.routes.sealRelocation(claim, expected, signal),
466
471
  relocationSnapshot: (actorId, sealId) => this.routes.relocationSnapshot(actorId, sealId),
467
472
  applyRelocation: (...args) => this.routes.applyRelocation(...args),
468
473
  observeRelocationTerminal: (...args) => this.routes.observeRelocationTerminal(...args),
469
- clearRelocation: (actorId, error) => this.routes.clearRelocation(actorId, error),
474
+ clearRelocation: (...args) => this.routes.clearRelocation(...args),
470
475
  committedRoute: async (actorId) => {
471
476
  const route = await this.routes.route(actorId);
472
477
  return route === undefined
@@ -739,9 +744,10 @@ export class ZLinkStreamBindingRuntime {
739
744
  async disconnectNativeBoundSession(
740
745
  node: ZLinkBackendActorSessionNode,
741
746
  actorRef: ActorRef,
747
+ timeoutMs: number,
742
748
  signal?: AbortSignal
743
749
  ): Promise<void> {
744
- await this.boundSessions.disconnectNativeBoundSession(node, actorRef, signal);
750
+ await this.boundSessions.disconnectNativeBoundSession(node, actorRef, timeoutMs, signal);
745
751
  }
746
752
 
747
753
  async disconnectBoundSession(actorId: string, signal?: AbortSignal): Promise<void> {
@@ -1,3 +1,4 @@
1
+ import { routingIdsEqual } from '../routing-id';
1
2
  import {
2
3
  ZLinkFrameworkInternalErrorKind,
3
4
  createInternalFrameworkException,
@@ -225,7 +226,8 @@ export class ZLinkManagedStream implements ZLinkStream {
225
226
  : (_actorId, retiredSession, replacedActor) => {
226
227
  onBindingReplaced(replacedActor, retiredSession);
227
228
  },
228
- toStreamSessionActorAuthorityFence(authorityFence)
229
+ toStreamSessionActorAuthorityFence(authorityFence),
230
+ () => this.close()
229
231
  ),
230
232
  signal
231
233
  ),
@@ -307,7 +309,7 @@ export class ZLinkManagedStream implements ZLinkStream {
307
309
  resolved === undefined ||
308
310
  resolved.actorId !== actor.actorId ||
309
311
  resolved.generation !== actor.objectGeneration ||
310
- String(resolved.nodeRid) !== String(actor.nodeRid)
312
+ !routingIdsEqual(resolved.nodeRid, actor.nodeRid)
311
313
  ) {
312
314
  throw createInternalFrameworkException(
313
315
  ZLinkFrameworkInternalErrorKind.ActorRouteNotFound,
@@ -1,3 +1,4 @@
1
+ import { DEFAULT_REQUEST_TIMEOUT_MS } from '../../contracts/Configuration/Registration';
1
2
  import {
2
3
  createInternalFrameworkException,
3
4
  ZLinkFrameworkInternalErrorKind
@@ -11,26 +12,13 @@ import {
11
12
  type ZLinkSubmitResult
12
13
  } from '../messaging/submission-result';
13
14
  import {
14
- ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET,
15
- ZLINK_REMOTE_ACTOR_SESSION_DISCONNECTED_PACKET,
16
15
  ZLINK_REMOTE_BOUND_SESSION_SEND_PACKET,
17
16
  type ZLinkActorRoutedJoinTransport,
18
17
  type ZLinkRemoteActorPacketTarget,
19
18
  type ZLinkRemoteBoundSessionTarget
20
19
  } from '../actors';
21
- import {
22
- encodeRemoteActorPacketRelayPayload,
23
- encodeRemoteActorPacketTarget
24
- } from '../actors/actor-packet-relay-wire';
20
+ import { encodeRemoteActorPacketTarget } from '../actors/actor-packet-relay-wire';
25
21
  import { encodeRemoteBoundSessionSendPayload } from '../actors/bound-session-wire';
26
- import { tryRequestRoutedJson } from '../actors/actor-routed-json-request';
27
- import {
28
- ZLinkStreamCodec,
29
- ZLinkStreamHeaderFlags,
30
- ZLinkStreamMessageKind,
31
- encodeStreamHeader,
32
- type ZLinkStreamFrameHeader
33
- } from './protocol';
34
22
  import type { ZLinkNativeFallbackBoundSessionPort } from './stream-binding-runtime-ports';
35
23
  import type { ZLinkBackendActorSessionNode } from '../backend';
36
24
  import { resolveFrameworkPacketName } from '../messaging/packet-name';
@@ -59,37 +47,6 @@ export class ZLinkNativeFallbackBoundSession implements ZLinkBoundSession {
59
47
  }
60
48
 
61
49
  async disconnect(signal?: AbortSignal): Promise<void> {
62
- const remoteTarget = this.options.remoteBoundSessionTargetProvider();
63
- if (remoteTarget !== undefined) {
64
- const spotKind: ZLinkSpotKind | undefined =
65
- 'spotKind' in remoteTarget
66
- ? (remoteTarget.spotKind as ZLinkSpotKind | undefined)
67
- : undefined;
68
- const payload = encodeRemoteActorPacketRelayPayload({
69
- actorId: this.options.actorId,
70
- routerChannelId: remoteTarget.routerChannelId,
71
- header: encodeStreamHeader(disconnectedFrameHeader()),
72
- payload: Buffer.alloc(0)
73
- });
74
- const target = {
75
- routerChannelId: remoteTarget.routerChannelId,
76
- targetNodeRid: remoteTarget.targetNodeRid,
77
- spotId: remoteTarget.spotId,
78
- spotKind: spotKind ?? ZLinkSpotKind.Entry
79
- };
80
- if (
81
- await tryRequestRoutedJson(this.options.routedTransport, target, payload, {
82
- timeoutMs: this.options.requestTimeoutMs,
83
- signal
84
- })
85
- ) {
86
- return;
87
- }
88
- await this.options.routedTransport.sendToSpot(target, payload, {
89
- packetName: ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET
90
- });
91
- return;
92
- }
93
50
  const actorRef = this.options.actorRefProvider();
94
51
  const node = this.options.nativeActorNodeProvider();
95
52
  if (
@@ -97,7 +54,12 @@ export class ZLinkNativeFallbackBoundSession implements ZLinkBoundSession {
97
54
  node !== undefined &&
98
55
  currentBindingGeneration(actorRef) !== undefined
99
56
  ) {
100
- await this.options.runtime.disconnectNativeBoundSession(node, actorRef, signal);
57
+ await this.options.runtime.disconnectNativeBoundSession(
58
+ node,
59
+ actorRef,
60
+ this.options.requestTimeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS,
61
+ signal
62
+ );
101
63
  return;
102
64
  }
103
65
  await this.options.runtime.disconnectBoundSession(this.options.actorId, signal);
@@ -154,42 +116,16 @@ class ZLinkNativeFallbackBoundSessionSendCall implements ZLinkBoundSessionSendCa
154
116
  private async executeScoped(packetName: string): Promise<ZLinkSubmitResult> {
155
117
  const localActor = this.options.localActorProvider?.() === true;
156
118
  const remoteTarget = this.options.remoteBoundSessionTargetProvider();
157
- let nativeAttempted = false;
158
- if (localActor) {
159
- const result = await this.options.runtime.submitLocalBoundSession(
119
+ if (localActor || remoteTarget === undefined) {
120
+ const localResult = await this.options.runtime.submitLocalBoundSession(
160
121
  this.options.actorId,
161
122
  this.message,
162
123
  packetName,
163
124
  this.selectedMetadata
164
125
  );
165
- if (result.status !== ZLinkSubmitStatus.TargetNotFound) {
166
- this.traceSubmitted(result, packetName);
167
- return result;
168
- }
169
-
170
- // A local Actor with a concrete native owner has a direct binding path.
171
- // Use that path before a routed transfer target. The transfer target is
172
- // retained for actors whose current owner is remote or whose native
173
- // binding is no longer available.
174
- const actorRef = this.options.actorRefProvider();
175
- const node = this.options.nativeActorNodeProvider();
176
- const bindingGeneration = currentBindingGeneration(actorRef);
177
- if (actorRef !== undefined && node !== undefined && bindingGeneration !== undefined) {
178
- nativeAttempted = true;
179
- const result = await this.options.runtime.sendNativeBoundSession(
180
- node,
181
- actorRef,
182
- this.message,
183
- packetName,
184
- this.selectedMetadata
185
- );
186
- if (result.status !== ZLinkSubmitStatus.TargetNotFound) {
187
- this.traceSubmitted(result, packetName);
188
- return result;
189
- }
190
- if (remoteTarget === undefined) {
191
- return result;
192
- }
126
+ if (localResult.status !== ZLinkSubmitStatus.TargetNotFound) {
127
+ this.traceSubmitted(localResult, packetName);
128
+ return localResult;
193
129
  }
194
130
  }
195
131
  if (remoteTarget !== undefined) {
@@ -238,25 +174,10 @@ class ZLinkNativeFallbackBoundSessionSendCall implements ZLinkBoundSessionSendCa
238
174
  this.traceSubmitted(result, packetName);
239
175
  return result;
240
176
  }
241
- const localResult = await this.options.runtime.submitLocalBoundSession(
242
- this.options.actorId,
243
- this.message,
244
- packetName,
245
- this.selectedMetadata
246
- );
247
- if (localResult.status !== ZLinkSubmitStatus.TargetNotFound) {
248
- this.traceSubmitted(localResult, packetName);
249
- return localResult;
250
- }
251
177
  const actorRef = this.options.actorRefProvider();
252
178
  const node = this.options.nativeActorNodeProvider();
253
179
  const bindingGeneration = currentBindingGeneration(actorRef);
254
- if (
255
- !nativeAttempted &&
256
- actorRef !== undefined &&
257
- node !== undefined &&
258
- bindingGeneration !== undefined
259
- ) {
180
+ if (actorRef !== undefined && node !== undefined && bindingGeneration !== undefined) {
260
181
  const result = await this.options.runtime.sendNativeBoundSession(
261
182
  node,
262
183
  actorRef,
@@ -300,13 +221,3 @@ function currentBindingGeneration(actorRef: ActorRef | undefined): bigint | unde
300
221
  function positiveBindingGeneration(generation: bigint | undefined): bigint | undefined {
301
222
  return generation !== undefined && generation > 0n ? generation : undefined;
302
223
  }
303
-
304
- function disconnectedFrameHeader(): ZLinkStreamFrameHeader {
305
- return {
306
- kind: ZLinkStreamMessageKind.Send,
307
- codec: ZLinkStreamCodec.Raw,
308
- flags: ZLinkStreamHeaderFlags.None,
309
- name: ZLINK_REMOTE_ACTOR_SESSION_DISCONNECTED_PACKET,
310
- metadata: new Map()
311
- };
312
- }
@@ -14,7 +14,10 @@ import {
14
14
  import { ZLinkActorSessionLifecycleCoordinator } from './actor-session-lifecycle-coordinator';
15
15
  import { ZLinkManagedStream } from './managed-stream';
16
16
  import { DefaultZLinkSessionActor, DefaultZLinkSessionContext } from './session-context';
17
- import type { ZLinkSessionBindingConfirmationOptions } from './stream-binding-runtime-ports';
17
+ import type {
18
+ ZLinkActorRouteCommitOptions,
19
+ ZLinkSessionBindingConfirmationOptions
20
+ } from './stream-binding-runtime-ports';
18
21
 
19
22
  export interface ZLinkSessionActorCoordinatorOptions {
20
23
  readonly actorBindTimeoutMs?: number;
@@ -70,25 +73,7 @@ export class ZLinkSessionActorCoordinator {
70
73
  private async replaceBinding(
71
74
  context: DefaultZLinkSessionContext,
72
75
  actorRef: ActorRef,
73
- signal?: AbortSignal,
74
- confirmRemoteSessionBinding: boolean | 'send' = true,
75
- releaseSeal?: { readonly sealId: string }
76
- ): Promise<DefaultZLinkSessionActor> {
77
- return await this.replaceBindingCore(
78
- context,
79
- actorRef,
80
- signal,
81
- confirmRemoteSessionBinding,
82
- releaseSeal
83
- );
84
- }
85
-
86
- private async replaceBindingCore(
87
- context: DefaultZLinkSessionContext,
88
- actorRef: ActorRef,
89
- signal?: AbortSignal,
90
- confirmRemoteSessionBinding: boolean | 'send' = true,
91
- releaseSeal?: { readonly sealId: string }
76
+ signal?: AbortSignal
92
77
  ): Promise<DefaultZLinkSessionActor> {
93
78
  throwIfAborted(signal);
94
79
  if (actorRef.actorId.trim().length === 0) {
@@ -134,15 +119,8 @@ export class ZLinkSessionActorCoordinator {
134
119
  const sessionActor =
135
120
  reuseActor ??
136
121
  new DefaultZLinkSessionActor(this.sessionActorRuntime, boundActorRef, bindingToken);
137
- const sessionIdentity = String(this.actorBindingRoutingId(context));
122
+ const sessionIdentity = this.actorBindingRoutingId(context);
138
123
  if (previous === undefined) {
139
- if (releaseSeal !== undefined) {
140
- throw createInternalFrameworkException(
141
- ZLinkFrameworkInternalErrorKind.ActorSessionNotBound,
142
- `Actor '${actorRef.actorId}' route switch has no Session binding to release.`,
143
- true
144
- );
145
- }
146
124
  await this.routes.bind(
147
125
  context,
148
126
  sessionActor,
@@ -151,17 +129,6 @@ export class ZLinkSessionActorCoordinator {
151
129
  sessionIdentity,
152
130
  () => sessionActor.updateRef(boundActorRef)
153
131
  );
154
- } else if (releaseSeal !== undefined) {
155
- await this.routes.replaceAndReleaseSeal(
156
- previous,
157
- context,
158
- sessionActor,
159
- bindingToken,
160
- releaseSeal.sealId,
161
- authorityFence,
162
- sessionIdentity,
163
- () => sessionActor.updateRef(boundActorRef)
164
- );
165
132
  } else {
166
133
  await this.routes.replace(
167
134
  previous,
@@ -173,12 +140,8 @@ export class ZLinkSessionActorCoordinator {
173
140
  () => sessionActor.updateRef(boundActorRef)
174
141
  );
175
142
  }
176
- if (
177
- confirmRemoteSessionBinding !== false &&
178
- this.options.confirmRemoteActorSessionBinding !== undefined
179
- ) {
180
- const waitForAcknowledgement =
181
- previous === undefined && confirmRemoteSessionBinding !== 'send';
143
+ if (this.options.confirmRemoteActorSessionBinding !== undefined) {
144
+ const waitForAcknowledgement = previous === undefined;
182
145
  const confirmation = this.options.confirmRemoteActorSessionBinding(
183
146
  boundActorRef,
184
147
  this.actorBindingRoutingId(context),
@@ -334,12 +297,7 @@ export class ZLinkSessionActorCoordinator {
334
297
  async commitActorRoute(
335
298
  actorRef: ActorRef,
336
299
  signal?: AbortSignal,
337
- options: {
338
- readonly confirmRemoteSessionBinding?: boolean | 'send';
339
- readonly releaseSeal?: {
340
- readonly sealId: string;
341
- };
342
- } = {}
300
+ options: ZLinkActorRouteCommitOptions = {}
343
301
  ): Promise<void> {
344
302
  const normalizedActorRef = normalizeActorRef(
345
303
  actorRef as ActorRef & { readonly generation?: bigint | number },
@@ -350,45 +308,38 @@ export class ZLinkSessionActorCoordinator {
350
308
  const route = await this.routes.route(normalizedActorRef.actorId);
351
309
  if (route === undefined) return;
352
310
  requireSameIncarnation(route.actor.ref, normalizedActorRef);
353
- if (routingIdsEqual(route.actor.ref.nodeRid, normalizedActorRef.nodeRid)) {
354
- const authorityFence = await this.resolveAuthorityFence(normalizedActorRef, signal);
355
- if (
356
- options.releaseSeal !== undefined &&
357
- !(await this.routes.validateSeal(normalizedActorRef.actorId, options.releaseSeal.sealId))
358
- ) {
359
- throw createInternalFrameworkException(
360
- ZLinkFrameworkInternalErrorKind.ActorLocationStale,
361
- `Actor '${normalizedActorRef.actorId}' route switch did not match its relocation seal.`,
362
- true
363
- );
364
- }
365
- // A location refresh never changes the route's Session binding
366
- // generation; the native bind owns it.
367
- route.actor.updateRef(
368
- withBindingGeneration(normalizedActorRef, bindingGenerationOf(route.actor.ref), undefined)
369
- );
370
- if (authorityFence !== undefined) {
371
- await this.routes.updateAuthorityFence(normalizedActorRef.actorId, authorityFence);
372
- }
373
- if (
374
- options.releaseSeal !== undefined &&
375
- !(await this.routes.abortSeal(normalizedActorRef.actorId, options.releaseSeal.sealId))
376
- ) {
377
- throw createInternalFrameworkException(
378
- ZLinkFrameworkInternalErrorKind.ActorLocationStale,
379
- `Actor '${normalizedActorRef.actorId}' route switch lost its relocation seal.`,
380
- true
381
- );
382
- }
383
- return;
384
- }
385
- await this.replaceBinding(
386
- route.context,
311
+ const authorityFence = await this.resolveAuthorityFence(normalizedActorRef, signal);
312
+ // Relocation changes only the Actor route of this physical binding.
313
+ // Publish the ref and authority together in the binding registry's turn;
314
+ // a native bind would issue a different binding generation.
315
+ const boundActorRef = withBindingGeneration(
387
316
  normalizedActorRef,
388
- signal,
389
- options.confirmRemoteSessionBinding,
390
- options.releaseSeal
317
+ bindingGenerationOf(route.actor.ref),
318
+ undefined
391
319
  );
320
+ const commitActor = () => route.actor.updateRef(boundActorRef);
321
+ if (options.releaseSeal !== undefined) {
322
+ await this.routes.replaceAndReleaseSeal(
323
+ route,
324
+ route.context,
325
+ route.actor,
326
+ route.bindingToken,
327
+ options.releaseSeal.sealId,
328
+ authorityFence,
329
+ route.sessionIdentity,
330
+ commitActor
331
+ );
332
+ } else {
333
+ await this.routes.replace(
334
+ route,
335
+ route.context,
336
+ route.actor,
337
+ route.bindingToken,
338
+ authorityFence,
339
+ route.sessionIdentity,
340
+ commitActor
341
+ );
342
+ }
392
343
  });
393
344
  }
394
345
 
@@ -39,15 +39,8 @@ export interface ZLinkStreamActorLifecyclePort {
39
39
 
40
40
  export interface ZLinkActorRouteCommitOptions {
41
41
  /**
42
- * Relocation already carries the binding identity to the target actor. The
43
- * follow-up confirmation can use a one-way route submission because a
44
- * request/ACK would create a nested route request while the Session
45
- * ownership command is being dispatched.
46
- */
47
- readonly confirmRemoteSessionBinding?: boolean | 'send';
48
- /**
49
- * Command 44 keeps ingress sealed while the native route is prepared, then
50
- * publishes the new route and releases this exact seal in one owner turn.
42
+ * Command 44 publishes the Actor route of the existing binding and releases
43
+ * this exact seal in one owner turn.
51
44
  */
52
45
  readonly releaseSeal?: {
53
46
  readonly sealId: string;
@@ -143,6 +136,7 @@ export interface ZLinkNativeFallbackBoundSessionPort {
143
136
  disconnectNativeBoundSession(
144
137
  node: ZLinkBackendActorSessionNode,
145
138
  actorRef: ActorRef,
139
+ timeoutMs: number,
146
140
  signal?: AbortSignal
147
141
  ): Promise<void>;
148
142
  disconnectBoundSession(actorId: string, signal?: AbortSignal): Promise<void>;
@@ -9,7 +9,7 @@ import {
9
9
  ZLinkDispatchMessageKind,
10
10
  ZLinkRuntimeMessageFlowOutcome as ZLinkMessageFlowOutcome
11
11
  } from '../../contracts/Dispatch/ZLinkDispatchOptions';
12
- import { throwIfAborted } from '../abort';
12
+ import { isPromiseLike, throwIfAborted } from '../abort';
13
13
  import { type ZLinkApplicationWorkClaim, shouldCompactBackingArray } from '../admission';
14
14
 
15
15
  import {
@@ -1494,10 +1494,6 @@ function streamMonitorHasEndpoint(event: ZLinkBackendSocketMonitorEvent): boolea
1494
1494
  return endpoint.localAddr !== undefined || endpoint.remoteAddr !== undefined;
1495
1495
  }
1496
1496
 
1497
- function isPromiseLike<T>(value: T | Promise<T>): value is Promise<T> {
1498
- return typeof (value as { then?: unknown }).then === 'function';
1499
- }
1500
-
1501
1497
  function normalizeStreamCloseReason(reason: string): string {
1502
1498
  switch (reason) {
1503
1499
  case 'client_close':
@@ -503,7 +503,7 @@ export class DefaultZLinkWorkerCall<T> implements ZLinkWorkerCall<T> {
503
503
  yield(signal?: AbortSignal): Promise<T> {
504
504
  const turn = requireZLinkYieldTurn(this.turn);
505
505
  const pending = this.begin(signal);
506
- return turn.yieldPromise(pending);
506
+ return turn.yieldFrameworkPromise(pending);
507
507
  }
508
508
 
509
509
  private begin(signal?: AbortSignal): Promise<T> {