@zlink-systems/framework 0.21.0 → 0.22.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 (487) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/ZLinkMessage.js +5 -5
  3. package/dist/contracts/Configuration/CodecContentType.js +5 -7
  4. package/dist/contracts/Configuration/DiagnosticsValidation.js +1 -6
  5. package/dist/contracts/Configuration/EndpointNotation.js +4 -8
  6. package/dist/contracts/Configuration/Registration.js +14 -11
  7. package/dist/contracts/Configuration/RegistrationBuilders.js +32 -25
  8. package/dist/contracts/Configuration/RegistrationNormalizers.js +25 -26
  9. package/dist/contracts/Configuration/RegistrationValidators.js +36 -38
  10. package/dist/contracts/Configuration/SendTimeoutValidation.js +4 -4
  11. package/dist/contracts/Configuration/TimerRegistrationValidator.js +7 -7
  12. package/dist/contracts/Handlers/JsonContract.js +23 -11
  13. package/dist/contracts/Spots/SpotKind.js +16 -8
  14. package/dist/location-store-integration.js +16 -16
  15. package/dist/nest-integration.js +17 -11
  16. package/dist/runtime/abort.js +9 -5
  17. package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
  18. package/dist/runtime/actors/actor-authority-publication.js +18 -17
  19. package/dist/runtime/actors/actor-client.js +83 -63
  20. package/dist/runtime/actors/actor-context.js +24 -18
  21. package/dist/runtime/actors/actor-creation.js +4 -3
  22. package/dist/runtime/actors/actor-handoff.js +89 -92
  23. package/dist/runtime/actors/actor-local-native-join.js +18 -19
  24. package/dist/runtime/actors/actor-mailbox.js +1 -1
  25. package/dist/runtime/actors/actor-message-follow-context.js +24 -21
  26. package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
  27. package/dist/runtime/actors/actor-remote-joiner.js +20 -17
  28. package/dist/runtime/actors/actor-remote-wire.js +6 -7
  29. package/dist/runtime/actors/actor-runtime-state.js +87 -81
  30. package/dist/runtime/actors/actor-transfer-registry.js +3 -5
  31. package/dist/runtime/actors/bound-session-wire.js +14 -9
  32. package/dist/runtime/actors/deferred-join-accepted-journal.js +158 -124
  33. package/dist/runtime/actors/index.js +2 -5
  34. package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
  35. package/dist/runtime/actors/post-commit-actor-location.js +1 -1
  36. package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
  37. package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
  38. package/dist/runtime/admission.js +2 -6
  39. package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
  40. package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
  41. package/dist/runtime/backend/mesh-completion-table.js +1 -3
  42. package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
  43. package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
  44. package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
  45. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
  46. package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
  47. package/dist/runtime/backend/node/node-raw-mesh-backend.js +116 -113
  48. package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
  49. package/dist/runtime/backend/runtime-message.js +3 -3
  50. package/dist/runtime/backend/runtime-values.d.ts +2 -2
  51. package/dist/runtime/backend/runtime-values.js +4 -5
  52. package/dist/runtime/channels/channel-clients.js +27 -24
  53. package/dist/runtime/channels/channel-dispatch-pipeline.js +10 -18
  54. package/dist/runtime/channels/channel-dispatch-services.js +7 -4
  55. package/dist/runtime/channels/channel-dispatchers.js +9 -9
  56. package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
  57. package/dist/runtime/channels/channel-envelope.js +83 -47
  58. package/dist/runtime/channels/channel-outbound-operations.js +8 -8
  59. package/dist/runtime/channels/channel-receive-loops.js +20 -22
  60. package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
  61. package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
  62. package/dist/runtime/channels/channel-runtime-manager.js +18 -9
  63. package/dist/runtime/channels/channel-socket-registry.js +126 -123
  64. package/dist/runtime/channels/channel-transports.js +43 -33
  65. package/dist/runtime/channels/client-server-location-runtime.js +32 -40
  66. package/dist/runtime/channels/client-server-service-wire.js +29 -22
  67. package/dist/runtime/channels/dispatch-error-reporter.js +9 -7
  68. package/dist/runtime/channels/fanout-location-runtime.js +34 -47
  69. package/dist/runtime/channels/fanout-service-wire.js +3 -5
  70. package/dist/runtime/channels/local-spot-route-transport.js +7 -1
  71. package/dist/runtime/channels/route-member-snapshot.js +3 -3
  72. package/dist/runtime/channels/source-spot-router.js +6 -2
  73. package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
  74. package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
  75. package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
  76. package/dist/runtime/diagnostics/index.js +38 -10
  77. package/dist/runtime/diagnostics/message-flow.js +47 -39
  78. package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
  79. package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
  80. package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
  81. package/dist/runtime/execution/index.js +7 -6
  82. package/dist/runtime/execution/serial-execution-queue.js +12 -18
  83. package/dist/runtime/execution/state-lane.js +2 -2
  84. package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -23
  85. package/dist/runtime/foundation/event-loop-resources.js +4 -4
  86. package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
  87. package/dist/runtime/foundation/raw-service-mesh-runtime.js +136 -136
  88. package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
  89. package/dist/runtime/foundation/runtime-state-projections.js +22 -11
  90. package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
  91. package/dist/runtime/foundation/service-discovery-registry.js +35 -33
  92. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
  93. package/dist/runtime/foundation/service-liveness-registry.js +16 -12
  94. package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
  95. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
  96. package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
  97. package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
  98. package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
  99. package/dist/runtime/foundation/service-stateful-registry.js +24 -23
  100. package/dist/runtime/foundation/service-stateful-runtime.js +416 -438
  101. package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
  102. package/dist/runtime/foundation/service-topology-registry.js +96 -95
  103. package/dist/runtime/foundation/service-weighted-selection.js +6 -11
  104. package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
  105. package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
  106. package/dist/runtime/framework-errors-internal.js +7 -10
  107. package/dist/runtime/handlers/handler-instance-scope.js +4 -5
  108. package/dist/runtime/handlers/index.js +3 -1
  109. package/dist/runtime/host/actor-packet-relay.js +74 -70
  110. package/dist/runtime/host/actor-placement-coordinator.js +29 -31
  111. package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
  112. package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
  113. package/dist/runtime/host/actor-transfer-runtime.js +176 -153
  114. package/dist/runtime/host/application-job-queue.js +18 -22
  115. package/dist/runtime/host/bound-session-relay.js +3 -1
  116. package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
  117. package/dist/runtime/host/host-capacity-status.js +8 -4
  118. package/dist/runtime/host/index.js +244 -227
  119. package/dist/runtime/host/instance-activation-authority.js +93 -96
  120. package/dist/runtime/host/location-runtime-owner.js +16 -14
  121. package/dist/runtime/host/mesh-router-resolver.js +11 -13
  122. package/dist/runtime/host/relocation-direct-transfer.js +10 -9
  123. package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
  124. package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
  125. package/dist/runtime/host/remote-bound-session-relay.js +97 -73
  126. package/dist/runtime/host/route-mesh-runtime.js +64 -69
  127. package/dist/runtime/host/runtime-shutdown.js +1 -2
  128. package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
  129. package/dist/runtime/host/spot-address-transport.js +69 -71
  130. package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
  131. package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
  132. package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
  133. package/dist/runtime/locations/actor-location-claims.js +26 -20
  134. package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
  135. package/dist/runtime/locations/authority-key-codec.js +7 -7
  136. package/dist/runtime/locations/auto-connect-loop.js +3 -3
  137. package/dist/runtime/locations/auto-connect-planner.js +25 -19
  138. package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
  139. package/dist/runtime/locations/in-memory-authority-store.js +128 -118
  140. package/dist/runtime/locations/in-memory-location-store.js +195 -168
  141. package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
  142. package/dist/runtime/locations/key-codec.js +1 -1
  143. package/dist/runtime/locations/lease-tracker.js +23 -21
  144. package/dist/runtime/locations/lifecycle.js +4 -5
  145. package/dist/runtime/locations/location-store-repository.js +368 -324
  146. package/dist/runtime/locations/opaque-record-key.js +2 -2
  147. package/dist/runtime/locations/resolvers.js +73 -82
  148. package/dist/runtime/locations/runtime.js +68 -63
  149. package/dist/runtime/locations/spot-location-claims.js +39 -35
  150. package/dist/runtime/messaging/framework-json-v1.js +7 -7
  151. package/dist/runtime/messaging/packet-name.js +7 -6
  152. package/dist/runtime/messaging/payload-codec.js +21 -18
  153. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
  154. package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
  155. package/dist/runtime/routing-id.js +3 -5
  156. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
  157. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
  158. package/dist/runtime/spots/index.js +208 -219
  159. package/dist/runtime/spots/spot-activation-registry.js +15 -14
  160. package/dist/runtime/spots/spot-activation-state.js +17 -15
  161. package/dist/runtime/spots/spot-activation.js +33 -16
  162. package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
  163. package/dist/runtime/spots/spot-actor-membership.js +1 -3
  164. package/dist/runtime/spots/spot-actor-packet-dispatch.js +23 -20
  165. package/dist/runtime/spots/spot-actor-packet-drain.js +12 -10
  166. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
  167. package/dist/runtime/spots/spot-closing.js +3 -7
  168. package/dist/runtime/spots/spot-context.js +2 -2
  169. package/dist/runtime/spots/spot-entry-activation.js +13 -14
  170. package/dist/runtime/spots/spot-handle.js +6 -3
  171. package/dist/runtime/spots/spot-handler-registry.js +12 -12
  172. package/dist/runtime/spots/spot-manager-public.js +5 -6
  173. package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
  174. package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
  175. package/dist/runtime/spots/spot-node-runtime-manager.js +74 -85
  176. package/dist/runtime/spots/spot-outbound.js +10 -14
  177. package/dist/runtime/spots/spot-remote-codec.js +22 -26
  178. package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
  179. package/dist/runtime/spots/spot-route-packet-dispatch.js +16 -14
  180. package/dist/runtime/spots/spot-route-replies.js +4 -6
  181. package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
  182. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +1 -2
  183. package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
  184. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
  185. package/dist/runtime/spots/spot-serial-executor.js +5 -8
  186. package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
  187. package/dist/runtime/spots/spot-subscription-dispatch.js +5 -5
  188. package/dist/runtime/spots/spot-timer.js +25 -29
  189. package/dist/runtime/streams/actor-session-binding-registry.js +98 -107
  190. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
  191. package/dist/runtime/streams/bound-actor-relay-sender.js +18 -16
  192. package/dist/runtime/streams/bound-session-service.js +8 -9
  193. package/dist/runtime/streams/index.js +20 -19
  194. package/dist/runtime/streams/managed-stream.js +32 -30
  195. package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
  196. package/dist/runtime/streams/protocol.js +29 -18
  197. package/dist/runtime/streams/session-actor-coordinator.js +34 -37
  198. package/dist/runtime/streams/session-context.js +30 -28
  199. package/dist/runtime/streams/session-provider.js +2 -2
  200. package/dist/runtime/streams/session-serial-executor.js +1 -2
  201. package/dist/runtime/streams/stream-frame-factory.js +11 -5
  202. package/dist/runtime/streams/stream-session-runtime.js +70 -66
  203. package/dist/runtime/workers/index.js +15 -4
  204. package/package.json +2 -2
  205. package/src/contracts/Channels/RouteCalls.ts +6 -1
  206. package/src/contracts/Common/ZLinkMessage.ts +5 -5
  207. package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
  208. package/src/contracts/Configuration/Builders.ts +14 -14
  209. package/src/contracts/Configuration/CodecContentType.ts +8 -10
  210. package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
  211. package/src/contracts/Configuration/EndpointNotation.ts +11 -11
  212. package/src/contracts/Configuration/ObjectRoles.ts +1 -3
  213. package/src/contracts/Configuration/Registration.ts +46 -17
  214. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
  215. package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
  216. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
  217. package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
  218. package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
  219. package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
  220. package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
  221. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
  222. package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
  223. package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
  224. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -6
  225. package/src/contracts/Errors/index.ts +1 -4
  226. package/src/contracts/Handlers/Attributes.ts +15 -9
  227. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
  228. package/src/contracts/Handlers/JsonContract.ts +53 -19
  229. package/src/contracts/Locations/ActorTransfer.ts +1 -5
  230. package/src/contracts/Locations/Authority.ts +4 -11
  231. package/src/contracts/Locations/Keys.ts +6 -1
  232. package/src/contracts/Locations/Options.ts +3 -2
  233. package/src/contracts/Locations/RelocationStore.ts +1 -4
  234. package/src/contracts/Locations/Resolvers.ts +5 -5
  235. package/src/contracts/Locations/RuntimeQuery.ts +6 -2
  236. package/src/contracts/Locations/Stores.ts +1 -2
  237. package/src/contracts/Locations/index.ts +2 -8
  238. package/src/contracts/RouteMesh/Contracts.ts +1 -7
  239. package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
  240. package/src/contracts/Spots/Contracts.ts +2 -8
  241. package/src/contracts/Spots/SpotKind.ts +16 -8
  242. package/src/contracts/Spots/ZLinkSpot.ts +8 -11
  243. package/src/contracts/Streams/IZLinkSession.ts +0 -1
  244. package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
  245. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
  246. package/src/internal.ts +5 -4
  247. package/src/location-store-integration.ts +24 -16
  248. package/src/nest-integration.ts +40 -25
  249. package/src/runtime/abort.ts +10 -4
  250. package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
  251. package/src/runtime/actors/actor-authority-publication.ts +92 -77
  252. package/src/runtime/actors/actor-client.ts +162 -133
  253. package/src/runtime/actors/actor-context.ts +138 -130
  254. package/src/runtime/actors/actor-creation.ts +47 -44
  255. package/src/runtime/actors/actor-execution-context.ts +6 -4
  256. package/src/runtime/actors/actor-handoff.ts +269 -293
  257. package/src/runtime/actors/actor-join-deferred-scope.ts +5 -4
  258. package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
  259. package/src/runtime/actors/actor-local-native-join.ts +131 -159
  260. package/src/runtime/actors/actor-mailbox.ts +16 -19
  261. package/src/runtime/actors/actor-message-follow-context.ts +46 -36
  262. package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
  263. package/src/runtime/actors/actor-remote-joiner.ts +50 -54
  264. package/src/runtime/actors/actor-remote-wire.ts +9 -13
  265. package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
  266. package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
  267. package/src/runtime/actors/actor-runtime-state.ts +127 -124
  268. package/src/runtime/actors/actor-transfer-registry.ts +9 -14
  269. package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
  270. package/src/runtime/actors/bound-session-wire.ts +37 -17
  271. package/src/runtime/actors/deferred-join-accepted-journal.ts +351 -320
  272. package/src/runtime/actors/index.ts +43 -86
  273. package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
  274. package/src/runtime/actors/post-commit-actor-location.ts +30 -23
  275. package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
  276. package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
  277. package/src/runtime/admission.ts +9 -9
  278. package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
  279. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
  280. package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
  281. package/src/runtime/backend/contracts/index.ts +73 -52
  282. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
  283. package/src/runtime/backend/mesh-completion-table.ts +6 -9
  284. package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
  285. package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
  286. package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
  287. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
  288. package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
  289. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
  290. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
  291. package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
  292. package/src/runtime/backend/node/node-raw-mesh-backend.ts +335 -383
  293. package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
  294. package/src/runtime/backend/runtime-message.ts +5 -3
  295. package/src/runtime/backend/runtime-values.ts +10 -7
  296. package/src/runtime/channels/channel-autoconnect.ts +1 -4
  297. package/src/runtime/channels/channel-clients.ts +93 -73
  298. package/src/runtime/channels/channel-dispatch-pipeline.ts +40 -42
  299. package/src/runtime/channels/channel-dispatch-services.ts +51 -49
  300. package/src/runtime/channels/channel-dispatchers.ts +152 -96
  301. package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
  302. package/src/runtime/channels/channel-envelope.ts +256 -150
  303. package/src/runtime/channels/channel-multipart.ts +13 -5
  304. package/src/runtime/channels/channel-outbound-operations.ts +37 -41
  305. package/src/runtime/channels/channel-receive-loops.ts +102 -98
  306. package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
  307. package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
  308. package/src/runtime/channels/channel-runtime-manager.ts +63 -37
  309. package/src/runtime/channels/channel-socket-options.ts +3 -10
  310. package/src/runtime/channels/channel-socket-registry.ts +331 -273
  311. package/src/runtime/channels/channel-transports.ts +215 -197
  312. package/src/runtime/channels/client-server-location-runtime.ts +116 -100
  313. package/src/runtime/channels/client-server-service-wire.ts +37 -36
  314. package/src/runtime/channels/dispatch-error-reporter.ts +11 -8
  315. package/src/runtime/channels/fanout-location-runtime.ts +91 -94
  316. package/src/runtime/channels/fanout-service-wire.ts +5 -12
  317. package/src/runtime/channels/handler-filter-scope.ts +1 -4
  318. package/src/runtime/channels/index.ts +1 -4
  319. package/src/runtime/channels/local-spot-route-transport.ts +20 -5
  320. package/src/runtime/channels/route-member-snapshot.ts +11 -5
  321. package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
  322. package/src/runtime/channels/source-spot-router.ts +26 -22
  323. package/src/runtime/channels/spot-direct-envelope.ts +10 -8
  324. package/src/runtime/channels/spot-node-route-transport.ts +13 -16
  325. package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
  326. package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
  327. package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
  328. package/src/runtime/codecs/index.ts +3 -2
  329. package/src/runtime/diagnostics/flow-context.ts +12 -3
  330. package/src/runtime/diagnostics/index.ts +96 -61
  331. package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
  332. package/src/runtime/diagnostics/message-flow.ts +95 -76
  333. package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
  334. package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
  335. package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
  336. package/src/runtime/execution/index.ts +18 -26
  337. package/src/runtime/execution/serial-execution-queue.ts +31 -40
  338. package/src/runtime/execution/state-lane.ts +2 -2
  339. package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -51
  340. package/src/runtime/foundation/event-loop-resources.ts +8 -4
  341. package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
  342. package/src/runtime/foundation/operation-identity.ts +1 -2
  343. package/src/runtime/foundation/operation-registry.ts +8 -2
  344. package/src/runtime/foundation/raw-service-mesh-runtime.ts +312 -385
  345. package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
  346. package/src/runtime/foundation/runtime-state-projections.ts +24 -23
  347. package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
  348. package/src/runtime/foundation/service-discovery-registry.ts +67 -59
  349. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
  350. package/src/runtime/foundation/service-liveness-registry.ts +18 -13
  351. package/src/runtime/foundation/service-mailbox.ts +14 -14
  352. package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
  353. package/src/runtime/foundation/service-metadata-codec.ts +2 -9
  354. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
  355. package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
  356. package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
  357. package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
  358. package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
  359. package/src/runtime/foundation/service-session-binding-ingress-port.ts +1 -4
  360. package/src/runtime/foundation/service-stateful-registry.ts +69 -59
  361. package/src/runtime/foundation/service-stateful-runtime.ts +1174 -1112
  362. package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
  363. package/src/runtime/foundation/service-topology-registry.ts +157 -159
  364. package/src/runtime/foundation/service-weighted-selection.ts +9 -15
  365. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
  366. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
  367. package/src/runtime/framework-errors-internal.ts +31 -30
  368. package/src/runtime/handlers/handler-instance-scope.ts +18 -29
  369. package/src/runtime/handlers/index.ts +18 -8
  370. package/src/runtime/host/actor-packet-relay.ts +290 -261
  371. package/src/runtime/host/actor-placement-coordinator.ts +165 -150
  372. package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
  373. package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
  374. package/src/runtime/host/actor-transfer-runtime.ts +391 -395
  375. package/src/runtime/host/application-job-queue.ts +32 -48
  376. package/src/runtime/host/bound-session-relay.ts +7 -9
  377. package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
  378. package/src/runtime/host/host-capacity-status.ts +10 -9
  379. package/src/runtime/host/index.ts +861 -789
  380. package/src/runtime/host/instance-activation-authority.ts +125 -143
  381. package/src/runtime/host/location-runtime-owner.ts +38 -26
  382. package/src/runtime/host/mesh-router-resolver.ts +30 -23
  383. package/src/runtime/host/relocation-direct-transfer.ts +15 -15
  384. package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
  385. package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
  386. package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
  387. package/src/runtime/host/remote-bound-session-relay.ts +274 -247
  388. package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
  389. package/src/runtime/host/route-mesh-runtime.ts +227 -181
  390. package/src/runtime/host/runtime-shutdown.ts +4 -3
  391. package/src/runtime/host/service-relocation-control.ts +14 -5
  392. package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
  393. package/src/runtime/host/spot-address-transport.ts +284 -237
  394. package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
  395. package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
  396. package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
  397. package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
  398. package/src/runtime/locations/actor-location-claims.ts +61 -49
  399. package/src/runtime/locations/actor-session-route-claims.ts +1 -4
  400. package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
  401. package/src/runtime/locations/authority-key-codec.ts +13 -10
  402. package/src/runtime/locations/auto-connect-loop.ts +14 -11
  403. package/src/runtime/locations/auto-connect-planner.ts +42 -31
  404. package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
  405. package/src/runtime/locations/canonical-codec.ts +3 -1
  406. package/src/runtime/locations/creation-operation-id.ts +4 -3
  407. package/src/runtime/locations/domain-store-contract.ts +13 -7
  408. package/src/runtime/locations/in-memory-authority-store.ts +232 -199
  409. package/src/runtime/locations/in-memory-location-store.ts +432 -250
  410. package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
  411. package/src/runtime/locations/internal-store-contracts.ts +95 -38
  412. package/src/runtime/locations/key-codec.ts +3 -4
  413. package/src/runtime/locations/lease-tracker.ts +36 -27
  414. package/src/runtime/locations/lifecycle-runtime.ts +15 -3
  415. package/src/runtime/locations/lifecycle.ts +33 -28
  416. package/src/runtime/locations/location-store-repository.ts +1329 -1185
  417. package/src/runtime/locations/opaque-record-key.ts +4 -9
  418. package/src/runtime/locations/resolvers.ts +201 -178
  419. package/src/runtime/locations/runtime.ts +251 -159
  420. package/src/runtime/locations/spot-location-claims.ts +110 -112
  421. package/src/runtime/messaging/creation-payload-codec.ts +4 -1
  422. package/src/runtime/messaging/framework-json-v1.ts +34 -15
  423. package/src/runtime/messaging/packet-name.ts +8 -6
  424. package/src/runtime/messaging/payload-codec.ts +70 -50
  425. package/src/runtime/messaging/submission-result.ts +6 -9
  426. package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
  427. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  428. package/src/runtime/routing-id.ts +10 -7
  429. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
  430. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
  431. package/src/runtime/spots/index.ts +593 -563
  432. package/src/runtime/spots/spot-activation-registry.ts +38 -34
  433. package/src/runtime/spots/spot-activation-state.ts +43 -51
  434. package/src/runtime/spots/spot-activation.ts +179 -116
  435. package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
  436. package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
  437. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
  438. package/src/runtime/spots/spot-actor-membership.ts +25 -27
  439. package/src/runtime/spots/spot-actor-packet-dispatch.ts +184 -153
  440. package/src/runtime/spots/spot-actor-packet-drain.ts +54 -42
  441. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
  442. package/src/runtime/spots/spot-closing.ts +11 -12
  443. package/src/runtime/spots/spot-context.ts +46 -26
  444. package/src/runtime/spots/spot-entry-activation.ts +84 -65
  445. package/src/runtime/spots/spot-handle.ts +17 -15
  446. package/src/runtime/spots/spot-handler-registry.ts +44 -31
  447. package/src/runtime/spots/spot-location-claim.ts +5 -4
  448. package/src/runtime/spots/spot-manager-public.ts +62 -82
  449. package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
  450. package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
  451. package/src/runtime/spots/spot-node-runtime-manager.ts +230 -221
  452. package/src/runtime/spots/spot-outbound.ts +47 -59
  453. package/src/runtime/spots/spot-publisher-transport.ts +5 -4
  454. package/src/runtime/spots/spot-remote-codec.ts +66 -65
  455. package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
  456. package/src/runtime/spots/spot-route-packet-dispatch.ts +128 -95
  457. package/src/runtime/spots/spot-route-replies.ts +23 -24
  458. package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
  459. package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
  460. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +11 -17
  461. package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
  462. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
  463. package/src/runtime/spots/spot-routing-internal.ts +1 -4
  464. package/src/runtime/spots/spot-runtime-ports.ts +5 -5
  465. package/src/runtime/spots/spot-serial-executor.ts +5 -9
  466. package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
  467. package/src/runtime/spots/spot-subscription-dispatch.ts +56 -46
  468. package/src/runtime/spots/spot-timer.ts +98 -91
  469. package/src/runtime/streams/actor-session-binding-registry.ts +277 -235
  470. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +7 -4
  471. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
  472. package/src/runtime/streams/bound-actor-relay-sender.ts +53 -51
  473. package/src/runtime/streams/bound-session-response-target.ts +29 -8
  474. package/src/runtime/streams/bound-session-service.ts +39 -39
  475. package/src/runtime/streams/index.ts +176 -100
  476. package/src/runtime/streams/managed-stream.ts +98 -87
  477. package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
  478. package/src/runtime/streams/protocol.ts +73 -43
  479. package/src/runtime/streams/session-actor-coordinator.ts +97 -89
  480. package/src/runtime/streams/session-calls.ts +2 -8
  481. package/src/runtime/streams/session-context.ts +66 -48
  482. package/src/runtime/streams/session-provider.ts +5 -7
  483. package/src/runtime/streams/session-serial-executor.ts +7 -6
  484. package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
  485. package/src/runtime/streams/stream-frame-factory.ts +55 -38
  486. package/src/runtime/streams/stream-session-runtime.ts +268 -210
  487. package/src/runtime/workers/index.ts +68 -29
@@ -54,9 +54,7 @@ exports.RELOCATION_PAYLOAD_CHUNK_COUNT_MAX = 4096;
54
54
  exports.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES = 67_108_864;
55
55
  exports.M6bServiceWireFlag = service_wire_constants_generated_1.ServiceWireFlag;
56
56
  function serviceSessionRelocationIdentityKey(value) {
57
- const actor = 'targetNodeGeneration' in value.actor
58
- ? value.actor.actor
59
- : value.actor;
57
+ const actor = 'targetNodeGeneration' in value.actor ? value.actor.actor : value.actor;
60
58
  // Session owner가 seal을 대조할 때 쓰는 값만 넣는다 — Session과 Actor binding
61
59
  // §8.1 "Session owner는 다음 값만 검증한다". coordinator identity는 transport가
62
60
  // 검증하는 wire fence이므로 여기서 다시 대조하지 않는다.
@@ -457,13 +455,15 @@ function toGeneratedReplyRelay(value) {
457
455
  },
458
456
  terminalResult: value.terminalResult,
459
457
  failureCode: value.failureCode,
460
- ...(value.payload === undefined ? {} : {
461
- payload: {
462
- packetName: value.payload.packetName,
463
- contentType: value.payload.contentType,
464
- payload: value.payload.bytes
465
- }
466
- })
458
+ ...(value.payload === undefined
459
+ ? {}
460
+ : {
461
+ payload: {
462
+ packetName: value.payload.packetName,
463
+ contentType: value.payload.contentType,
464
+ payload: value.payload.bytes
465
+ }
466
+ })
467
467
  };
468
468
  }
469
469
  function fromGeneratedReplyRelay(value) {
@@ -480,27 +480,25 @@ function fromGeneratedReplyRelay(value) {
480
480
  sequence: value.context.sequence,
481
481
  terminalResult: value.terminalResult,
482
482
  failureCode: value.failureCode,
483
- ...(value.payload === undefined ? {} : {
484
- payload: {
485
- packetName: value.payload.packetName,
486
- contentType: value.payload.contentType,
487
- bytes: Buffer.from(value.payload.payload)
488
- }
489
- })
483
+ ...(value.payload === undefined
484
+ ? {}
485
+ : {
486
+ payload: {
487
+ packetName: value.payload.packetName,
488
+ contentType: value.payload.contentType,
489
+ bytes: Buffer.from(value.payload.payload)
490
+ }
491
+ })
490
492
  };
491
493
  }
492
494
  function encodeSpotHeader(kind, sourceSpotId, target, correlation) {
493
- return concat(prefix(kind === 'spotSend'
494
- ? exports.M6bServiceWireCommand.spotSend
495
- : exports.M6bServiceWireCommand.spotRequest), ...(kind === 'spotRequest' ? [u64(requirePositive(correlation, 'correlation'))] : []), rid(sourceSpotId, 'sourceSpotId'), directSpotFence(target));
495
+ return concat(prefix(kind === 'spotSend' ? exports.M6bServiceWireCommand.spotSend : exports.M6bServiceWireCommand.spotRequest), ...(kind === 'spotRequest' ? [u64(requirePositive(correlation, 'correlation'))] : []), rid(sourceSpotId, 'sourceSpotId'), directSpotFence(target));
496
496
  }
497
497
  function encodeActorHeader(kind, target, correlation, sourceActor, boundSession) {
498
498
  const flags = boundSession === undefined
499
499
  ? 0
500
500
  : exports.M6bServiceWireFlag.boundSession | exports.M6bServiceWireFlag.sourceSpotId;
501
- return concat(prefix(kind === 'actorSend'
502
- ? exports.M6bServiceWireCommand.actorSend
503
- : exports.M6bServiceWireCommand.actorRequest, flags), ...(kind === 'actorRequest' ? [u64(requirePositive(correlation, 'correlation'))] : []), optionalActor(sourceActor), actorFence(target), ...(boundSession === undefined
501
+ return concat(prefix(kind === 'actorSend' ? exports.M6bServiceWireCommand.actorSend : exports.M6bServiceWireCommand.actorRequest, flags), ...(kind === 'actorRequest' ? [u64(requirePositive(correlation, 'correlation'))] : []), optionalActor(sourceActor), actorFence(target), ...(boundSession === undefined
504
502
  ? []
505
503
  : [
506
504
  rid(boundSession.sessionRid, 'sourceSessionRid'),
@@ -521,9 +519,7 @@ function encodeBoundSessionSendHeader(actor, expectedBindingGeneration) {
521
519
  return concat(prefix(exports.M6bServiceWireCommand.boundSessionSend), actorFence(actor), u64(expectedBindingGeneration));
522
520
  }
523
521
  function encodeBoundSessionBindHeader(correlation, actor, sessionRid, binding) {
524
- const body = binding.state === 'active'
525
- ? u64(binding.generation)
526
- : u64(binding.retiredGeneration);
522
+ const body = binding.state === 'active' ? u64(binding.generation) : u64(binding.retiredGeneration);
527
523
  return concat(prefix(exports.M6bServiceWireCommand.boundSessionBind), u64(correlation), actorFence(actor), rid(sessionRid, 'sessionRid'), Buffer.of(binding.state === 'active' ? 1 : 2), u16(body.byteLength), body);
528
524
  }
529
525
  function encodeBoundSessionReplacedHeader(actorAuthority, retiredSession) {
@@ -555,16 +551,14 @@ function decodeSessionRelocationRoute(frame) {
555
551
  }
556
552
  function encodeInstanceSpotHeader(route, sourceNodeGeneration, sourceNodeRid, sourceSpotId, operationKind, operation, replyRouteId, hasMetadata = false) {
557
553
  const routeBody = concat(rid(route.targetNodeRid, 'targetNodeRid'), u64(route.targetNodeGeneration), rid(route.targetSpotId, 'targetSpotId'), u64(route.objectGeneration), text8(route.ownerId, 'ownerId'), u64(route.authorityOwnerGeneration), u64(route.leaseGeneration), text16(route.storeVersion, 'storeVersion'));
558
- if (operationKind === 'send'
559
- && (operation.high !== 0n || operation.low !== 0n || replyRouteId !== undefined)) {
554
+ if (operationKind === 'send' &&
555
+ (operation.high !== 0n || operation.low !== 0n || replyRouteId !== undefined)) {
560
556
  throw new RangeError('Instance Spot send must not carry an operation or reply route.');
561
557
  }
562
558
  if (operationKind === 'request' && operation.high === 0n && operation.low === 0n) {
563
559
  throw new RangeError('Instance Spot request requires a non-zero operation.');
564
560
  }
565
- return concat(prefix(exports.M6bServiceWireCommand.instanceSpot, hasMetadata ? exports.M6bServiceWireFlag.metadata : 0), Buffer.of(1), u16(routeBody.byteLength), routeBody, u64Any(sourceNodeGeneration), rid(sourceNodeRid, 'sourceNodeRid'), optionalRid(sourceSpotId), Buffer.of(operationKind === 'send' ? 1 : 2), u64Any(operation.high), u64Any(operation.low), ...(operationKind === 'request'
566
- ? [u64(requirePositive(replyRouteId, 'replyRouteId'))]
567
- : []));
561
+ return concat(prefix(exports.M6bServiceWireCommand.instanceSpot, hasMetadata ? exports.M6bServiceWireFlag.metadata : 0), Buffer.of(1), u16(routeBody.byteLength), routeBody, u64Any(sourceNodeGeneration), rid(sourceNodeRid, 'sourceNodeRid'), optionalRid(sourceSpotId), Buffer.of(operationKind === 'send' ? 1 : 2), u64Any(operation.high), u64Any(operation.low), ...(operationKind === 'request' ? [u64(requirePositive(replyRouteId, 'replyRouteId'))] : []));
568
562
  }
569
563
  function encodeInstanceSpotActivationHeader(target, sourceNodeGeneration, sourceNodeRid, sourceSpotId, operationKind, operation, deadlineUnixMs, replyRouteId, hasMetadata = false) {
570
564
  if (operation.high === 0n && operation.low === 0n) {
@@ -577,9 +571,7 @@ function encodeInstanceSpotActivationHeader(target, sourceNodeGeneration, source
577
571
  throw new RangeError('Instance Spot send must not carry a reply route.');
578
572
  }
579
573
  const targetBody = concat(rid(target.targetNodeRid, 'targetNodeRid'), u64(target.targetNodeGeneration), rid(target.targetSpotId, 'targetSpotId'), text16(target.stableType, 'stableType'), text16(target.descriptorVersion, 'descriptorVersion'));
580
- return concat(prefix(exports.M6bServiceWireCommand.instanceSpot, hasMetadata ? exports.M6bServiceWireFlag.metadata : 0), Buffer.of(2), u16(targetBody.byteLength), targetBody, u64Any(sourceNodeGeneration), rid(sourceNodeRid, 'sourceNodeRid'), optionalRid(sourceSpotId), Buffer.of(operationKind === 'send' ? 1 : 2), u64Any(operation.high), u64Any(operation.low), u64(deadlineUnixMs), ...(operationKind === 'request'
581
- ? [u64(requirePositive(replyRouteId, 'replyRouteId'))]
582
- : []));
574
+ return concat(prefix(exports.M6bServiceWireCommand.instanceSpot, hasMetadata ? exports.M6bServiceWireFlag.metadata : 0), Buffer.of(2), u16(targetBody.byteLength), targetBody, u64Any(sourceNodeGeneration), rid(sourceNodeRid, 'sourceNodeRid'), optionalRid(sourceSpotId), Buffer.of(operationKind === 'send' ? 1 : 2), u64Any(operation.high), u64Any(operation.low), u64(deadlineUnixMs), ...(operationKind === 'request' ? [u64(requirePositive(replyRouteId, 'replyRouteId'))] : []));
583
575
  }
584
576
  function encodeUserSpotCreateHeader(record) {
585
577
  return Buffer.from((0, service_wire_pilot_codec_generated_1.encodeUserSpotCreate47)(toGeneratedUserSpotCreate(record)));
@@ -629,9 +621,7 @@ function decodeStatefulHeader(frame) {
629
621
  case exports.M6bServiceWireCommand.actorRequest: {
630
622
  const request = command.command === exports.M6bServiceWireCommand.actorRequest;
631
623
  const hasBinding = command.flags !== 0;
632
- requireFlags(command.flags, hasBinding
633
- ? exports.M6bServiceWireFlag.boundSession | exports.M6bServiceWireFlag.sourceSpotId
634
- : 0);
624
+ requireFlags(command.flags, hasBinding ? exports.M6bServiceWireFlag.boundSession | exports.M6bServiceWireFlag.sourceSpotId : 0);
635
625
  const correlation = request ? reader.nonZeroU64('correlation') : undefined;
636
626
  const sourceActor = reader.optionalActor();
637
627
  const target = reader.actorFence();
@@ -806,19 +796,16 @@ function decodeStatefulHeader(frame) {
806
796
  low: reader.u64('operation.low')
807
797
  };
808
798
  const operationKind = operationValue === 1 ? 'send' : 'request';
809
- if (version === 1 && ((operationKind === 'send' && (operation.high !== 0n || operation.low !== 0n))
810
- || (operationKind === 'request' && operation.high === 0n && operation.low === 0n))) {
799
+ if (version === 1 &&
800
+ ((operationKind === 'send' && (operation.high !== 0n || operation.low !== 0n)) ||
801
+ (operationKind === 'request' && operation.high === 0n && operation.low === 0n))) {
811
802
  fail('Invalid Instance operation identity.');
812
803
  }
813
804
  if (version === 2 && operation.high === 0n && operation.low === 0n) {
814
805
  fail('Instance activation requires a non-zero operation identity.');
815
806
  }
816
- const deadlineUnixMs = version === 2
817
- ? reader.nonZeroU64('deadlineUnixMs')
818
- : undefined;
819
- const replyRouteId = operationKind === 'request'
820
- ? reader.nonZeroU64('replyRouteId')
821
- : undefined;
807
+ const deadlineUnixMs = version === 2 ? reader.nonZeroU64('deadlineUnixMs') : undefined;
808
+ const replyRouteId = operationKind === 'request' ? reader.nonZeroU64('replyRouteId') : undefined;
822
809
  reader.end();
823
810
  const common = {
824
811
  kind: 'instanceSpot',
@@ -1122,8 +1109,8 @@ function encodeReplyTail(tail) {
1122
1109
  fail('Accepted actor join requires a membership epoch.');
1123
1110
  }
1124
1111
  const receiveChunkLimitBytes = tail.receiveChunkLimitBytes ?? 0;
1125
- if (receiveChunkLimitBytes < 0
1126
- || receiveChunkLimitBytes > exports.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES) {
1112
+ if (receiveChunkLimitBytes < 0 ||
1113
+ receiveChunkLimitBytes > exports.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES) {
1127
1114
  fail('receiveChunkLimitBytes exceeds the relocation state chunk data bound.');
1128
1115
  }
1129
1116
  const body = concat(spotRef(tail.spot), u64(tail.membershipEpoch), u32(receiveChunkLimitBytes, 'receiveChunkLimitBytes'));
@@ -1166,8 +1153,18 @@ function validateReplyTerminal(terminalResult, failureCode, hasPayload) {
1166
1153
  }
1167
1154
  }
1168
1155
  function validateRelocationPhase(value) {
1169
- const phases = ['none', 'preparing', 'captured', 'prepared', 'committed',
1170
- 'activating', 'activated', 'cleaning', 'completed', 'aborted'];
1156
+ const phases = [
1157
+ 'none',
1158
+ 'preparing',
1159
+ 'captured',
1160
+ 'prepared',
1161
+ 'committed',
1162
+ 'activating',
1163
+ 'activated',
1164
+ 'cleaning',
1165
+ 'completed',
1166
+ 'aborted'
1167
+ ];
1171
1168
  if (!Number.isInteger(value) || value < 0 || value >= phases.length) {
1172
1169
  fail('Invalid relocationData control phase.');
1173
1170
  }
@@ -1197,37 +1194,38 @@ function messageFollowRoute(value) {
1197
1194
  : concat(spotRef(value.spot), rid(value.targetNodeRid, 'targetNodeRid'), u64(value.targetNodeGeneration), u64(value.authorityOwnerGeneration), u64(value.ownerLeaseGeneration));
1198
1195
  return concat(Buffer.of(value.kind === 'actor' ? 1 : 2), u16(body.byteLength), body);
1199
1196
  }
1200
- function validateMessageFollowRecord(value, invalid = (message) => { throw new RangeError(message); }) {
1197
+ function validateMessageFollowRecord(value, invalid = (message) => {
1198
+ throw new RangeError(message);
1199
+ }) {
1201
1200
  if (value.source.kind !== value.target.kind) {
1202
1201
  invalid('Message Follow source and target object kinds differ.');
1203
1202
  }
1204
1203
  const sameObject = value.source.kind === 'actor' && value.target.kind === 'actor'
1205
- ? value.source.actor.actorId === value.target.actor.actorId
1206
- && value.source.actor.generation === value.target.actor.generation
1204
+ ? value.source.actor.actorId === value.target.actor.actorId &&
1205
+ value.source.actor.generation === value.target.actor.generation
1207
1206
  : value.source.kind === 'spot' && value.target.kind === 'spot'
1208
- ? value.source.spot.spotId === value.target.spot.spotId
1209
- && value.source.spot.generation === value.target.spot.generation
1207
+ ? value.source.spot.spotId === value.target.spot.spotId &&
1208
+ value.source.spot.generation === value.target.spot.generation
1210
1209
  : false;
1211
1210
  if (!sameObject)
1212
1211
  invalid('Message Follow source and target object identities differ.');
1213
1212
  if (!Number.isInteger(value.hopCount) || value.hopCount < 1 || value.hopCount > 8) {
1214
1213
  invalid('Message Follow hopCount must be in 1..8.');
1215
1214
  }
1216
- if (!Number.isInteger(value.queuedMessages)
1217
- || value.queuedMessages < 0
1218
- || value.queuedMessages > 0xffff_ffff) {
1215
+ if (!Number.isInteger(value.queuedMessages) ||
1216
+ value.queuedMessages < 0 ||
1217
+ value.queuedMessages > 0xffff_ffff) {
1219
1218
  invalid('Message Follow queuedMessages must be a u32.');
1220
1219
  }
1221
- if (!Number.isInteger(value.queuedBytes)
1222
- || value.queuedBytes < 0
1223
- || value.queuedBytes > 0xffff_ffff) {
1220
+ if (!Number.isInteger(value.queuedBytes) ||
1221
+ value.queuedBytes < 0 ||
1222
+ value.queuedBytes > 0xffff_ffff) {
1224
1223
  invalid('Message Follow queuedBytes must be a u32.');
1225
1224
  }
1226
1225
  if (value.originalOperation.high === 0n && value.originalOperation.low === 0n) {
1227
1226
  invalid('Message Follow originalOperation must not be zero.');
1228
1227
  }
1229
- if (value.originalReplyRouteId < 0n
1230
- || value.originalReplyRouteId > 0xffffffffffffffffn) {
1228
+ if (value.originalReplyRouteId < 0n || value.originalReplyRouteId > 0xffffffffffffffffn) {
1231
1229
  invalid('Message Follow originalReplyRouteId must be a u64.');
1232
1230
  }
1233
1231
  }
@@ -1300,7 +1298,7 @@ function requireFlags(actual, expected) {
1300
1298
  fail(`Invalid command flags '${actual}'.`);
1301
1299
  }
1302
1300
  function concat(...parts) {
1303
- return Buffer.concat(parts.map(part => Buffer.from(part)));
1301
+ return Buffer.concat(parts.map((part) => Buffer.from(part)));
1304
1302
  }
1305
1303
  function fail(message) {
1306
1304
  throw new service_wire_m6a_codec_1.ServiceWireProtocolError(message);
@@ -1324,9 +1322,9 @@ class Reader {
1324
1322
  }
1325
1323
  prefix() {
1326
1324
  this.need(PREFIX_SIZE, 'prefix');
1327
- if (this.bytes[this.offset] !== MAGIC_0
1328
- || this.bytes[this.offset + 1] !== MAGIC_1
1329
- || this.bytes[this.offset + 2] !== MAJOR) {
1325
+ if (this.bytes[this.offset] !== MAGIC_0 ||
1326
+ this.bytes[this.offset + 1] !== MAGIC_1 ||
1327
+ this.bytes[this.offset + 2] !== MAJOR) {
1330
1328
  fail('Invalid service wire prefix.');
1331
1329
  }
1332
1330
  const command = this.bytes[this.offset + 3];
@@ -1536,7 +1534,10 @@ function decodeServiceWireFrozenRecordPrefix(bytes, offset = 0) {
1536
1534
  const reader = new FrozenReader(bytes.subarray(offset));
1537
1535
  const record = decodeServiceWireFrozenRecordFrom(reader);
1538
1536
  return {
1539
- record: { ...record, canonicalBytes: Buffer.from(bytes.subarray(offset, offset + reader.position)) },
1537
+ record: {
1538
+ ...record,
1539
+ canonicalBytes: Buffer.from(bytes.subarray(offset, offset + reader.position))
1540
+ },
1540
1541
  length: reader.position
1541
1542
  };
1542
1543
  }
@@ -1579,8 +1580,10 @@ function decodeServiceWireFrozenRecordFrom(reader) {
1579
1580
  }
1580
1581
  const hasMetadata = reader.bool8('hasMetadata');
1581
1582
  if (hasMetadata) {
1582
- if (!((recordKind >= 1 && recordKind <= 7)
1583
- || recordKind === 9 || recordKind === 10 || recordKind === 14)) {
1583
+ if (!((recordKind >= 1 && recordKind <= 7) ||
1584
+ recordKind === 9 ||
1585
+ recordKind === 10 ||
1586
+ recordKind === 14)) {
1584
1587
  fail('Metadata is forbidden for this frozen record kind.');
1585
1588
  }
1586
1589
  reader.metadata();
@@ -1594,9 +1597,7 @@ function decodeServiceWireFrozenRecordFrom(reader) {
1594
1597
  fail('Invalid frozen operation kind.');
1595
1598
  const replyReader = reader.body16('frozen reply route');
1596
1599
  const requiresReply = (0, service_runtime_contracts_1.operationRequiresReply)(operationKind);
1597
- const replyRouteId = requiresReply
1598
- ? replyReader.nonZeroU64('replyRouteId')
1599
- : undefined;
1600
+ const replyRouteId = requiresReply ? replyReader.nonZeroU64('replyRouteId') : undefined;
1600
1601
  replyReader.end('frozen reply route');
1601
1602
  const body = reader.frozenBody(recordKind);
1602
1603
  validateFrozenOperationMatrix(recordKind, operationKind, operationId, replyRouteId, body.instanceOperationKind);
@@ -1638,24 +1639,24 @@ function encodeServiceWireFrozenActorApplicationRecord(input) {
1638
1639
  return decodeServiceWireFrozenRecord(bytes);
1639
1640
  }
1640
1641
  function sameFrozenRecordSummary(left, right) {
1641
- return left.recordKind === right.recordKind
1642
- && left.sourceKind === right.sourceKind
1643
- && (0, routing_id_1.routingIdsEqual)(left.source.nodeRid, right.source.nodeRid)
1644
- && left.source.nodeGeneration === right.source.nodeGeneration
1645
- && left.source.ownerId === right.source.ownerId
1646
- && left.source.leaseGeneration === right.source.leaseGeneration
1647
- && left.sourceSpotId === right.sourceSpotId
1648
- && left.sourceActor?.actorId === right.sourceActor?.actorId
1649
- && left.sourceActor?.generation === right.sourceActor?.generation
1650
- && left.sourceSessionRid === right.sourceSessionRid
1651
- && left.sourceBindingGeneration === right.sourceBindingGeneration
1652
- && left.sourceSessionSequence === right.sourceSessionSequence
1653
- && left.hasMetadata === right.hasMetadata
1654
- && left.operationId.high === right.operationId.high
1655
- && left.operationId.low === right.operationId.low
1656
- && left.operationKind === right.operationKind
1657
- && left.replyRouteId === right.replyRouteId
1658
- && left.canonicalBytes.equals(right.canonicalBytes);
1642
+ return (left.recordKind === right.recordKind &&
1643
+ left.sourceKind === right.sourceKind &&
1644
+ (0, routing_id_1.routingIdsEqual)(left.source.nodeRid, right.source.nodeRid) &&
1645
+ left.source.nodeGeneration === right.source.nodeGeneration &&
1646
+ left.source.ownerId === right.source.ownerId &&
1647
+ left.source.leaseGeneration === right.source.leaseGeneration &&
1648
+ left.sourceSpotId === right.sourceSpotId &&
1649
+ left.sourceActor?.actorId === right.sourceActor?.actorId &&
1650
+ left.sourceActor?.generation === right.sourceActor?.generation &&
1651
+ left.sourceSessionRid === right.sourceSessionRid &&
1652
+ left.sourceBindingGeneration === right.sourceBindingGeneration &&
1653
+ left.sourceSessionSequence === right.sourceSessionSequence &&
1654
+ left.hasMetadata === right.hasMetadata &&
1655
+ left.operationId.high === right.operationId.high &&
1656
+ left.operationId.low === right.operationId.low &&
1657
+ left.operationKind === right.operationKind &&
1658
+ left.replyRouteId === right.replyRouteId &&
1659
+ left.canonicalBytes.equals(right.canonicalBytes));
1659
1660
  }
1660
1661
  function validateFrozenOperationMatrix(recordKind, operationKind, operationId, replyRouteId, instanceOperationKind) {
1661
1662
  const zero = operationId.high === 0n && operationId.low === 0n;
@@ -1673,15 +1674,13 @@ function validateFrozenOperationMatrix(recordKind, operationKind, operationId, r
1673
1674
  else if (recordKind === 10)
1674
1675
  valid = operationKind === 4 && !zero;
1675
1676
  else if (recordKind === 8) {
1676
- valid = operationKind === 0 && zero
1677
- || [6, 7, 8].includes(operationKind) && !zero;
1677
+ valid = (operationKind === 0 && zero) || ([6, 7, 8].includes(operationKind) && !zero);
1678
1678
  }
1679
1679
  else if (recordKind === 11)
1680
1680
  valid = operationKind >= 1 && operationKind <= 15 && !zero;
1681
1681
  else if (recordKind === 14 && instanceOperationKind !== undefined) {
1682
- valid = instanceOperationKind === 1
1683
- ? operationKind === 0 && zero
1684
- : operationKind === 12 && !zero;
1682
+ valid =
1683
+ instanceOperationKind === 1 ? operationKind === 0 && zero : operationKind === 12 && !zero;
1685
1684
  }
1686
1685
  if (!valid)
1687
1686
  fail('Frozen record kind, operation kind, and operation ID do not match.');
@@ -1825,9 +1824,7 @@ class FrozenReader {
1825
1824
  const failureCode = this.u32('failureCode');
1826
1825
  const hasPayload = this.bool8('hasPayload');
1827
1826
  validateReplyTerminal(terminalResult, failureCode, hasPayload);
1828
- return hasPayload
1829
- ? { applicationPayload: this.applicationPayload() }
1830
- : {};
1827
+ return hasPayload ? { applicationPayload: this.applicationPayload() } : {};
1831
1828
  }
1832
1829
  else if (recordKind === 12)
1833
1830
  this.sendReadyDestination();