@zlink-systems/framework 0.26.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (561) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Actors/ZLinkActorClient.d.ts +1 -1
  3. package/dist/contracts/Channels/Calls.d.ts +1 -1
  4. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  5. package/dist/contracts/Common/CoreTypes.js +7 -0
  6. package/dist/contracts/Common/index.d.ts +1 -1
  7. package/dist/contracts/Common/index.js +0 -1
  8. package/dist/contracts/Configuration/Builders.d.ts +0 -1
  9. package/dist/contracts/Configuration/Configs.d.ts +0 -1
  10. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  11. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  12. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  13. package/dist/contracts/Configuration/Registration.js +58 -36
  14. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  15. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  16. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  17. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  18. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -5
  19. package/dist/contracts/Configuration/RegistrationValidators.js +15 -14
  20. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  21. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  22. package/dist/contracts/Handlers/JsonContract.js +10 -4
  23. package/dist/contracts/Locations/Authority.d.ts +1 -1
  24. package/dist/contracts/Locations/Authority.js +3 -2
  25. package/dist/contracts/Locations/Options.js +1 -1
  26. package/dist/contracts/Locations/Stores.d.ts +12 -0
  27. package/dist/contracts/Locations/Stores.js +9 -0
  28. package/dist/contracts/Spots/Contracts.d.ts +2 -2
  29. package/dist/contracts/Streams/BoundSessionContracts.d.ts +1 -1
  30. package/dist/contracts/Streams/IZLinkSession.d.ts +2 -3
  31. package/dist/contracts/Streams/IZLinkSessionActor.d.ts +2 -2
  32. package/dist/internal.d.ts +4 -0
  33. package/dist/internal.js +15 -1
  34. package/dist/nest-integration.d.ts +4 -2
  35. package/dist/nest-integration.js +14 -4
  36. package/dist/runtime/abort.d.ts +1 -0
  37. package/dist/runtime/abort.js +8 -5
  38. package/dist/runtime/activation-admission.d.ts +1 -2
  39. package/dist/runtime/activation-admission.js +2 -6
  40. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  41. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  42. package/dist/runtime/actors/actor-client.d.ts +2 -2
  43. package/dist/runtime/actors/actor-client.js +49 -153
  44. package/dist/runtime/actors/actor-context.d.ts +3 -5
  45. package/dist/runtime/actors/actor-context.js +13 -11
  46. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  47. package/dist/runtime/actors/actor-handoff.js +8 -8
  48. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  49. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  50. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  51. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  52. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  53. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  54. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  55. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  56. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  57. package/dist/runtime/actors/actor-request-deadline.d.ts +1 -0
  58. package/dist/runtime/actors/actor-request-deadline.js +6 -0
  59. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  60. package/dist/runtime/actors/actor-routed-join-transport.d.ts +2 -3
  61. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  62. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  63. package/dist/runtime/actors/bound-session-wire.js +2 -7
  64. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  65. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  66. package/dist/runtime/actors/index.d.ts +9 -7
  67. package/dist/runtime/actors/index.js +87 -69
  68. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  69. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  70. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  71. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  72. package/dist/runtime/admission.d.ts +2 -0
  73. package/dist/runtime/admission.js +7 -1
  74. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  75. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  76. package/dist/runtime/backend/contracts/index.d.ts +7 -27
  77. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  78. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  79. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  80. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +3 -1
  81. package/dist/runtime/backend/node/node-backend-adapter-support.js +51 -10
  82. package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +1 -1
  83. package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +1 -2
  84. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  85. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  86. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  87. package/dist/runtime/backend/node/node-raw-binding-port.js +41 -34
  88. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  89. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  90. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  91. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  92. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  93. package/dist/runtime/backend/runtime-values.js +2 -0
  94. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  95. package/dist/runtime/channels/channel-clients.js +73 -59
  96. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  97. package/dist/runtime/channels/channel-envelope.d.ts +1 -1
  98. package/dist/runtime/channels/channel-envelope.js +51 -39
  99. package/dist/runtime/channels/channel-outbound-operations.d.ts +5 -2
  100. package/dist/runtime/channels/channel-outbound-operations.js +25 -42
  101. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  102. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  103. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  104. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  105. package/dist/runtime/channels/channel-runtime-manager.d.ts +4 -4
  106. package/dist/runtime/channels/channel-runtime-manager.js +13 -10
  107. package/dist/runtime/channels/channel-socket-options.js +3 -12
  108. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  109. package/dist/runtime/channels/channel-socket-registry.js +240 -177
  110. package/dist/runtime/channels/channel-transports.d.ts +21 -31
  111. package/dist/runtime/channels/channel-transports.js +80 -62
  112. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  113. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  114. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  115. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  116. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  117. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  118. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  119. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  120. package/dist/runtime/channels/local-spot-route-transport.d.ts +1 -1
  121. package/dist/runtime/channels/local-spot-route-transport.js +1 -3
  122. package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +1 -1
  123. package/dist/runtime/channels/router-socket-spot-route-transport.js +2 -2
  124. package/dist/runtime/channels/source-spot-router.d.ts +1 -1
  125. package/dist/runtime/channels/source-spot-router.js +2 -4
  126. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  127. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  128. package/dist/runtime/channels/spot-node-route-transport.d.ts +1 -1
  129. package/dist/runtime/channels/spot-node-route-transport.js +5 -5
  130. package/dist/runtime/channels/spot-route-bridge-transport.d.ts +1 -1
  131. package/dist/runtime/channels/spot-route-bridge-transport.js +2 -2
  132. package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +2 -4
  133. package/dist/runtime/channels/spot-route-dispatch-strategy.js +11 -12
  134. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  135. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  136. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  137. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  138. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  139. package/dist/runtime/diagnostics/flow-context.js +16 -2
  140. package/dist/runtime/diagnostics/index.d.ts +4 -2
  141. package/dist/runtime/diagnostics/index.js +14 -4
  142. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  143. package/dist/runtime/diagnostics/message-flow.js +10 -19
  144. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  145. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  146. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  147. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  148. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  149. package/dist/runtime/disposal.d.ts +5 -0
  150. package/dist/runtime/disposal.js +22 -0
  151. package/dist/runtime/execution/index.d.ts +12 -9
  152. package/dist/runtime/execution/index.js +58 -14
  153. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  154. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  155. package/dist/runtime/execution/state-lane.d.ts +8 -1
  156. package/dist/runtime/execution/state-lane.js +118 -3
  157. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  158. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  159. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  160. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  161. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  162. package/dist/runtime/foundation/operation-identity.js +9 -5
  163. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  164. package/dist/runtime/foundation/operation-registry.js +34 -44
  165. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  166. package/dist/runtime/foundation/raw-service-mesh-runtime.js +79 -94
  167. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  168. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  169. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  170. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  171. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  172. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  173. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  174. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  175. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  176. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  177. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  178. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  179. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  180. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  181. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  182. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  183. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  184. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  185. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  186. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  187. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  188. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  189. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  190. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  191. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  192. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  193. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  194. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  195. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  196. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  197. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  198. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  199. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  200. package/dist/runtime/framework-errors-internal.js +343 -122
  201. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  202. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  203. package/dist/runtime/host/actor-packet-relay.d.ts +11 -8
  204. package/dist/runtime/host/actor-packet-relay.js +54 -99
  205. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  206. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  207. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  208. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  209. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  210. package/dist/runtime/host/application-job-queue.js +16 -33
  211. package/dist/runtime/host/bound-session-relay.js +1 -1
  212. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  213. package/dist/runtime/host/index.d.ts +14 -13
  214. package/dist/runtime/host/index.js +190 -171
  215. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  216. package/dist/runtime/host/instance-activation-authority.js +17 -45
  217. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  218. package/dist/runtime/host/location-runtime-owner.js +2 -2
  219. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  220. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  221. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  222. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  223. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  224. package/dist/runtime/host/remote-bound-session-relay.js +15 -28
  225. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  226. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  227. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  228. package/dist/runtime/host/runtime-shutdown.js +18 -21
  229. package/dist/runtime/host/service-relocation-control.js +6 -1
  230. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  231. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  232. package/dist/runtime/host/spot-address-transport.d.ts +3 -12
  233. package/dist/runtime/host/spot-address-transport.js +78 -220
  234. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  235. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  236. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  237. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  238. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  239. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  240. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  241. package/dist/runtime/locations/authority-key-codec.js +4 -3
  242. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  243. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  244. package/dist/runtime/locations/creation-operation-id.js +6 -4
  245. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  246. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  247. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  248. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  249. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  250. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  251. package/dist/runtime/locations/key-codec.js +3 -2
  252. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  253. package/dist/runtime/locations/lease-tracker.js +7 -11
  254. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  255. package/dist/runtime/locations/lifecycle.js +2 -31
  256. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  257. package/dist/runtime/locations/location-store-failure.js +7 -0
  258. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  259. package/dist/runtime/locations/location-store-pages.js +13 -0
  260. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  261. package/dist/runtime/locations/location-store-repository.js +309 -336
  262. package/dist/runtime/locations/relocation-blob.js +18 -5
  263. package/dist/runtime/locations/resolvers.d.ts +5 -5
  264. package/dist/runtime/locations/resolvers.js +37 -28
  265. package/dist/runtime/locations/runtime.d.ts +5 -4
  266. package/dist/runtime/locations/runtime.js +123 -92
  267. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  268. package/dist/runtime/locations/spot-location-claims.js +42 -1
  269. package/dist/runtime/messaging/payload-codec.js +26 -20
  270. package/dist/runtime/messaging/request-deadline.d.ts +3 -0
  271. package/dist/runtime/messaging/request-deadline.js +39 -0
  272. package/dist/runtime/messaging/submission-result.d.ts +4 -0
  273. package/dist/runtime/messaging/submission-result.js +56 -1
  274. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  275. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  276. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  277. package/dist/runtime/spots/index.d.ts +14 -20
  278. package/dist/runtime/spots/index.js +302 -176
  279. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  280. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  281. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  282. package/dist/runtime/spots/spot-activation-state.js +2 -2
  283. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  284. package/dist/runtime/spots/spot-activation.js +49 -32
  285. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  286. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  287. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  288. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  289. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  290. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  291. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  292. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  293. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  294. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  295. package/dist/runtime/spots/spot-context.d.ts +2 -2
  296. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  297. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  298. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  299. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  300. package/dist/runtime/spots/spot-manager-public.js +5 -4
  301. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  302. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  303. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  304. package/dist/runtime/spots/spot-outbound.d.ts +7 -8
  305. package/dist/runtime/spots/spot-outbound.js +21 -23
  306. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  307. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  308. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  309. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  310. package/dist/runtime/spots/spot-route-replies.js +3 -1
  311. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  312. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  313. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  314. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  315. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  316. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  317. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  318. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  319. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  320. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  321. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  322. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  323. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  324. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  325. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +8 -4
  326. package/dist/runtime/streams/bound-actor-relay-sender.js +65 -41
  327. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  328. package/dist/runtime/streams/bound-session-service.js +12 -2
  329. package/dist/runtime/streams/index.d.ts +16 -17
  330. package/dist/runtime/streams/index.js +22 -23
  331. package/dist/runtime/streams/managed-stream.d.ts +5 -2
  332. package/dist/runtime/streams/managed-stream.js +20 -13
  333. package/dist/runtime/streams/native-fallback-bound-session.js +14 -19
  334. package/dist/runtime/streams/protocol.d.ts +6 -33
  335. package/dist/runtime/streams/protocol.js +38 -110
  336. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  337. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  338. package/dist/runtime/streams/session-calls.d.ts +6 -8
  339. package/dist/runtime/streams/session-calls.js +6 -22
  340. package/dist/runtime/streams/session-context.d.ts +10 -10
  341. package/dist/runtime/streams/session-context.js +25 -10
  342. package/dist/runtime/streams/session-requests.js +2 -1
  343. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  344. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  345. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  346. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  347. package/dist/runtime/workers/index.d.ts +2 -2
  348. package/dist/runtime/workers/index.js +5 -4
  349. package/package.json +3 -3
  350. package/src/contracts/Actors/ZLinkActorClient.ts +1 -1
  351. package/src/contracts/Channels/Calls.ts +1 -1
  352. package/src/contracts/Common/CoreTypes.ts +7 -0
  353. package/src/contracts/Common/index.ts +1 -1
  354. package/src/contracts/Configuration/Builders.ts +0 -1
  355. package/src/contracts/Configuration/Configs.ts +0 -1
  356. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  357. package/src/contracts/Configuration/Registration.ts +92 -48
  358. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  359. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -71
  360. package/src/contracts/Configuration/RegistrationTypes.ts +1 -5
  361. package/src/contracts/Configuration/RegistrationValidators.ts +19 -17
  362. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  363. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  364. package/src/contracts/Handlers/JsonContract.ts +14 -4
  365. package/src/contracts/Locations/Authority.ts +7 -3
  366. package/src/contracts/Locations/Options.ts +1 -1
  367. package/src/contracts/Locations/Stores.ts +14 -0
  368. package/src/contracts/Spots/Contracts.ts +2 -2
  369. package/src/contracts/Streams/BoundSessionContracts.ts +1 -1
  370. package/src/contracts/Streams/IZLinkSession.ts +2 -3
  371. package/src/contracts/Streams/IZLinkSessionActor.ts +2 -6
  372. package/src/internal.ts +14 -0
  373. package/src/nest-integration.ts +28 -10
  374. package/src/runtime/abort.ts +6 -5
  375. package/src/runtime/activation-admission.ts +2 -8
  376. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  377. package/src/runtime/actors/actor-client.ts +85 -218
  378. package/src/runtime/actors/actor-context.ts +39 -33
  379. package/src/runtime/actors/actor-handoff.ts +24 -22
  380. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  381. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  382. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  383. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  384. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  385. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  386. package/src/runtime/actors/actor-request-deadline.ts +4 -0
  387. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  388. package/src/runtime/actors/actor-routed-join-transport.ts +3 -5
  389. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  390. package/src/runtime/actors/bound-session-wire.ts +2 -8
  391. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  392. package/src/runtime/actors/index.ts +100 -79
  393. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  394. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  395. package/src/runtime/admission.ts +8 -1
  396. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  397. package/src/runtime/backend/contracts/index.ts +14 -37
  398. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  399. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  400. package/src/runtime/backend/node/node-backend-adapter-support.ts +67 -10
  401. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +0 -2
  402. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  403. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  404. package/src/runtime/backend/node/node-raw-binding-port.ts +44 -49
  405. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  406. package/src/runtime/backend/node/node-socket-backend-adapter.ts +4 -3
  407. package/src/runtime/backend/raw-binding-port.ts +1 -1
  408. package/src/runtime/backend/runtime-values.ts +4 -1
  409. package/src/runtime/channels/channel-clients.ts +139 -102
  410. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  411. package/src/runtime/channels/channel-envelope.ts +74 -57
  412. package/src/runtime/channels/channel-outbound-operations.ts +40 -55
  413. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  414. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  415. package/src/runtime/channels/channel-runtime-manager.ts +12 -30
  416. package/src/runtime/channels/channel-socket-options.ts +8 -15
  417. package/src/runtime/channels/channel-socket-registry.ts +291 -196
  418. package/src/runtime/channels/channel-transports.ts +168 -145
  419. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  420. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  421. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  422. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  423. package/src/runtime/channels/local-spot-route-transport.ts +1 -5
  424. package/src/runtime/channels/router-socket-spot-route-transport.ts +2 -6
  425. package/src/runtime/channels/source-spot-router.ts +2 -9
  426. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  427. package/src/runtime/channels/spot-node-route-transport.ts +7 -9
  428. package/src/runtime/channels/spot-route-bridge-transport.ts +5 -12
  429. package/src/runtime/channels/spot-route-dispatch-strategy.ts +11 -30
  430. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  431. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  432. package/src/runtime/diagnostics/flow-context.ts +16 -2
  433. package/src/runtime/diagnostics/index.ts +27 -17
  434. package/src/runtime/diagnostics/message-flow.ts +15 -25
  435. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  436. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  437. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  438. package/src/runtime/disposal.ts +19 -0
  439. package/src/runtime/execution/index.ts +60 -20
  440. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  441. package/src/runtime/execution/state-lane.ts +142 -4
  442. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  443. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  444. package/src/runtime/foundation/operation-identity.ts +11 -5
  445. package/src/runtime/foundation/operation-registry.ts +33 -50
  446. package/src/runtime/foundation/raw-service-mesh-runtime.ts +127 -125
  447. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  448. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  449. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  450. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  451. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  452. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  453. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  454. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  455. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  456. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  457. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  458. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  459. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  460. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  461. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  462. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  463. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  464. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  465. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  466. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  467. package/src/runtime/framework-errors-internal.ts +380 -134
  468. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  469. package/src/runtime/host/actor-packet-relay.ts +63 -160
  470. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  471. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  472. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  473. package/src/runtime/host/application-job-queue.ts +28 -34
  474. package/src/runtime/host/bound-session-relay.ts +1 -2
  475. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  476. package/src/runtime/host/index.ts +327 -320
  477. package/src/runtime/host/instance-activation-authority.ts +89 -109
  478. package/src/runtime/host/location-runtime-owner.ts +4 -2
  479. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  480. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  481. package/src/runtime/host/remote-bound-session-relay.ts +16 -57
  482. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  483. package/src/runtime/host/runtime-shutdown.ts +17 -21
  484. package/src/runtime/host/service-relocation-control.ts +14 -1
  485. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  486. package/src/runtime/host/spot-address-transport.ts +175 -356
  487. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  488. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  489. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  490. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  491. package/src/runtime/locations/authority-key-codec.ts +7 -3
  492. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  493. package/src/runtime/locations/creation-operation-id.ts +6 -3
  494. package/src/runtime/locations/domain-store-contract.ts +12 -3
  495. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  496. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  497. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  498. package/src/runtime/locations/key-codec.ts +3 -2
  499. package/src/runtime/locations/lease-tracker.ts +8 -14
  500. package/src/runtime/locations/lifecycle.ts +13 -43
  501. package/src/runtime/locations/location-store-failure.ts +4 -0
  502. package/src/runtime/locations/location-store-pages.ts +18 -0
  503. package/src/runtime/locations/location-store-repository.ts +457 -482
  504. package/src/runtime/locations/relocation-blob.ts +17 -6
  505. package/src/runtime/locations/resolvers.ts +75 -49
  506. package/src/runtime/locations/runtime.ts +220 -110
  507. package/src/runtime/locations/spot-location-claims.ts +58 -1
  508. package/src/runtime/messaging/payload-codec.ts +35 -24
  509. package/src/runtime/messaging/request-deadline.ts +58 -0
  510. package/src/runtime/messaging/submission-result.ts +72 -2
  511. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  512. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  513. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  514. package/src/runtime/spots/index.ts +433 -229
  515. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  516. package/src/runtime/spots/spot-activation-state.ts +2 -2
  517. package/src/runtime/spots/spot-activation.ts +67 -37
  518. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  519. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  520. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  521. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  522. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  523. package/src/runtime/spots/spot-context.ts +3 -3
  524. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  525. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  526. package/src/runtime/spots/spot-manager-public.ts +21 -17
  527. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  528. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  529. package/src/runtime/spots/spot-outbound.ts +59 -47
  530. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  531. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  532. package/src/runtime/spots/spot-route-replies.ts +6 -4
  533. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  534. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  535. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  536. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  537. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  538. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  539. package/src/runtime/spots/spot-timer.ts +3 -2
  540. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  541. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  542. package/src/runtime/streams/bound-actor-relay-sender.ts +98 -66
  543. package/src/runtime/streams/bound-session-service.ts +22 -2
  544. package/src/runtime/streams/index.ts +78 -68
  545. package/src/runtime/streams/managed-stream.ts +32 -23
  546. package/src/runtime/streams/native-fallback-bound-session.ts +14 -28
  547. package/src/runtime/streams/protocol.ts +34 -88
  548. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  549. package/src/runtime/streams/session-calls.ts +11 -36
  550. package/src/runtime/streams/session-context.ts +60 -25
  551. package/src/runtime/streams/session-requests.ts +2 -1
  552. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  553. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  554. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  555. package/src/runtime/workers/index.ts +13 -12
  556. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  557. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  558. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  559. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  560. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  561. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -169,7 +169,59 @@ export class ZLinkSpotLocationClaims {
169
169
  tracked.storeVersion = result.storeVersion.value;
170
170
  onCommitted();
171
171
  return {
172
- release: async () => undefined
172
+ release: () => this.release(meshName, spotId),
173
+ reincarnate: async (initialize) => {
174
+ const reincarnated = await store.compareExchangeAuthority(key, result.storeVersion, {
175
+ kind: 'put',
176
+ generationTransition: 'reincarnate',
177
+ payload: replaceServiceRelocationAuthorityApplicationPayload(
178
+ result.payload,
179
+ encodeServiceInstanceAuthorityPayload({ ...decoded, state: 'coldActivating' })
180
+ )
181
+ });
182
+ if (reincarnated.kind !== 'stored') {
183
+ throw createInternalFrameworkException(
184
+ reincarnated.kind === 'generationExhausted'
185
+ ? ZLinkFrameworkInternalErrorKind.InvalidOperation
186
+ : ZLinkFrameworkInternalErrorKind.SpotMoving,
187
+ `Instance Spot '${String(spotId)}' Closing authority changed before reincarnation.`
188
+ );
189
+ }
190
+ this.trackInstanceAuthority({
191
+ ...tracked,
192
+ objectGeneration: reincarnated.objectGeneration,
193
+ authorityOwnerGeneration: reincarnated.authorityOwnerGeneration,
194
+ storeVersion: reincarnated.storeVersion.value
195
+ });
196
+ this.invalidateSpotRoute?.(spotId);
197
+ try {
198
+ await initialize({ ...reincarnated, kind: 'snapshot', stableType: tracked.stableType });
199
+ const ready = await store.compareExchangeAuthority(key, reincarnated.storeVersion, {
200
+ kind: 'put',
201
+ generationTransition: 'preserve',
202
+ payload: replaceServiceRelocationAuthorityApplicationPayload(
203
+ reincarnated.payload,
204
+ encodeServiceInstanceAuthorityPayload({ ...decoded, state: 'ready' })
205
+ )
206
+ });
207
+ if (ready.kind !== 'stored') {
208
+ throw createInternalFrameworkException(
209
+ ready.kind === 'generationExhausted'
210
+ ? ZLinkFrameworkInternalErrorKind.InvalidOperation
211
+ : ZLinkFrameworkInternalErrorKind.SpotMoving,
212
+ `Instance Spot '${String(spotId)}' reincarnation authority changed before initialization completed.`
213
+ );
214
+ }
215
+ const latest = this.spots.get(canonical);
216
+ if (latest?.kind === 'authority' && latest.objectGeneration === ready.objectGeneration) {
217
+ latest.storeVersion = ready.storeVersion.value;
218
+ }
219
+ return { ...ready, kind: 'snapshot', stableType: tracked.stableType };
220
+ } catch (error) {
221
+ await this.release(meshName, spotId, reincarnated.objectGeneration);
222
+ throw error;
223
+ }
224
+ }
173
225
  };
174
226
  }
175
227
 
@@ -354,6 +406,11 @@ export interface ZLinkTrackedInstanceAuthority {
354
406
 
355
407
  export interface ZLinkInstanceClosingAuthority {
356
408
  release(): Promise<void>;
409
+ reincarnate?(
410
+ initialize: (
411
+ authority: ZLinkAuthoritySnapshot & { readonly stableType: string }
412
+ ) => Promise<void>
413
+ ): Promise<ZLinkAuthoritySnapshot & { readonly stableType: string }>;
357
414
  }
358
415
 
359
416
  interface TrackedLegacySpot {
@@ -1,3 +1,4 @@
1
+ import { ZlinkStreamContentType } from '@zlink-systems/stream-wire';
1
2
  import {
2
3
  ZLinkFrameworkInternalErrorKind,
3
4
  createInternalFrameworkException
@@ -31,6 +32,8 @@ import {
31
32
  matchEveryDeclaredMessageType
32
33
  } from '../../contracts/Configuration/CodecSerializerSelection';
33
34
 
35
+ const MAX_DECLARED_TYPE_SELECTIONS = 1024;
36
+
34
37
  export interface ZLinkSerializerRegistryLike {
35
38
  readonly serializers: ReadonlyMap<string, ZLinkMessageSerializer>;
36
39
  }
@@ -49,7 +52,12 @@ interface ZLinkSerializerSelectionPlan {
49
52
  }
50
53
 
51
54
  const noSerializer = Symbol('noSerializer');
52
- const JSON_CONTENT_TYPE = 'application/json';
55
+ const JSON_CONTENT_TYPE = ZlinkStreamContentType.Json;
56
+ const frameworkJsonReceiveCodec = Symbol('frameworkJsonReceiveCodec');
57
+ const defaultReceiveCodecs: ReadonlyMap<string, typeof frameworkJsonReceiveCodec> = new Map<
58
+ string,
59
+ typeof frameworkJsonReceiveCodec
60
+ >([[JSON_CONTENT_TYPE, frameworkJsonReceiveCodec]]);
53
61
 
54
62
  // Registration maps are created during host configuration and are immutable
55
63
  // for the runtime lifetime. Compile the candidate list and reverse content
@@ -84,9 +92,9 @@ export function encodeFrameworkPayload(
84
92
  return {
85
93
  message: rememberContentType(
86
94
  toRuntimeMessage(payload.toEncodedPayload()),
87
- 'application/octet-stream'
95
+ ZlinkStreamContentType.Raw
88
96
  ),
89
- contentType: 'application/octet-stream'
97
+ contentType: ZlinkStreamContentType.Raw
90
98
  };
91
99
  }
92
100
  declaredType = readZLinkMessageDeclaredType(payload);
@@ -141,7 +149,7 @@ export function decodeFrameworkPayloadMessage<T>(
141
149
  message: Message,
142
150
  registry?: ZLinkSerializerRegistryLike | ReadonlyMap<string, ZLinkMessageSerializer>,
143
151
  type?: Type<T>,
144
- contentType = JSON_CONTENT_TYPE,
152
+ contentType: string = JSON_CONTENT_TYPE,
145
153
  packetName?: string,
146
154
  contractPart: 'payload' | 'reply' = 'payload'
147
155
  ): T {
@@ -152,7 +160,7 @@ export function decodeFrameworkTypedPayloadMessage<T>(
152
160
  message: Message,
153
161
  registry?: ZLinkSerializerRegistryLike | ReadonlyMap<string, ZLinkMessageSerializer>,
154
162
  type?: Type<T>,
155
- contentType = JSON_CONTENT_TYPE,
163
+ contentType: string = JSON_CONTENT_TYPE,
156
164
  packetName?: string,
157
165
  contractPart: 'payload' | 'reply' = 'payload'
158
166
  ): T {
@@ -167,17 +175,10 @@ function decodeFrameworkPayload<T>(
167
175
  packetName: string | undefined,
168
176
  contractPart: 'payload' | 'reply'
169
177
  ): T {
170
- if (!isCanonicalCodecContentType(contentType)) {
171
- throw unsupportedContentType(contentType);
172
- }
173
- if (contentType !== JSON_CONTENT_TYPE) {
174
- const serializer = serializerMapOf(registry)?.get(contentType);
175
- if (serializer === undefined) throw unsupportedContentType(contentType);
178
+ const codec = receiveCodecFor(contentType, registry);
179
+ if (codec !== frameworkJsonReceiveCodec) {
176
180
  if (message.isEmpty()) return undefined as T;
177
- return serializer.deserialize(
178
- encodedPayloadFromOwned(message.data()),
179
- (type ?? Object) as Type<T>
180
- );
181
+ return codec.deserialize(encodedPayloadFromOwned(message.data()), (type ?? Object) as Type<T>);
181
182
  }
182
183
 
183
184
  if (message.isEmpty()) return undefined as T;
@@ -197,7 +198,7 @@ function decodeFrameworkPayload<T>(
197
198
  export function wrapFrameworkPayloadMessage(
198
199
  message: Message,
199
200
  registry?: ZLinkSerializerRegistryLike | ReadonlyMap<string, ZLinkMessageSerializer>,
200
- contentType = JSON_CONTENT_TYPE,
201
+ contentType: string = JSON_CONTENT_TYPE,
201
202
  packetName?: string,
202
203
  contractPart: 'payload' | 'reply' = 'payload'
203
204
  ): ZLinkMessage {
@@ -215,14 +216,10 @@ function decodeFrameworkEncodedPayload<T>(
215
216
  packetName: string | undefined,
216
217
  contractPart: 'payload' | 'reply'
217
218
  ): T {
218
- if (!isCanonicalCodecContentType(contentType)) {
219
- throw unsupportedContentType(contentType);
220
- }
221
- if (contentType !== JSON_CONTENT_TYPE) {
222
- const serializer = serializerMapOf(registry)?.get(contentType);
223
- if (serializer === undefined) throw unsupportedContentType(contentType);
219
+ const codec = receiveCodecFor(contentType, registry);
220
+ if (codec !== frameworkJsonReceiveCodec) {
224
221
  if (payload.isEmpty()) return undefined as T;
225
- return serializer.deserialize(payload, (type ?? Object) as Type<T>);
222
+ return codec.deserialize(payload, (type ?? Object) as Type<T>);
226
223
  }
227
224
  if (payload.isEmpty()) return undefined as T;
228
225
  const text = payload.getString('utf8');
@@ -241,6 +238,20 @@ function decodeFrameworkEncodedPayload<T>(
241
238
  }
242
239
  }
243
240
 
241
+ function receiveCodecFor(
242
+ contentType: string,
243
+ registry: ZLinkSerializerRegistryLike | ReadonlyMap<string, ZLinkMessageSerializer> | undefined
244
+ ): ZLinkMessageSerializer | typeof frameworkJsonReceiveCodec {
245
+ if (!isCanonicalCodecContentType(contentType)) {
246
+ throw unsupportedContentType(contentType);
247
+ }
248
+ const registeredCodec = serializerMapOf(registry)?.get(contentType);
249
+ if (registeredCodec !== undefined) return registeredCodec;
250
+ const defaultCodec = defaultReceiveCodecs.get(contentType);
251
+ if (defaultCodec !== undefined) return defaultCodec;
252
+ throw unsupportedContentType(contentType);
253
+ }
254
+
244
255
  function schemaForDecode(
245
256
  type: Type<unknown> | undefined,
246
257
  packetName: string | undefined,
@@ -316,7 +327,7 @@ function serializerSelectionPlanOf(
316
327
  return cached === noSerializer ? undefined : cached;
317
328
  }
318
329
  const selected = selectSerializerFromEntries(frozenEntries, declaredType);
319
- if (cachedBusinessTypeCount < 1024) {
330
+ if (cachedBusinessTypeCount < MAX_DECLARED_TYPE_SELECTIONS) {
320
331
  outboundByBusinessType.set(declaredType, selected ?? noSerializer);
321
332
  cachedBusinessTypeCount += 1;
322
333
  }
@@ -0,0 +1,58 @@
1
+ import { awaitWithAbort } from '../abort';
2
+ import {
3
+ createInternalFrameworkException,
4
+ ZLinkFrameworkInternalErrorKind
5
+ } from '../framework-errors-internal';
6
+
7
+ export function remainingRequestTimeout(
8
+ operation: string,
9
+ deadlineMs: number | undefined
10
+ ): number | undefined {
11
+ if (deadlineMs === undefined) return undefined;
12
+ const remaining = deadlineMs - performance.now();
13
+ if (remaining <= 0) {
14
+ throw createInternalFrameworkException(
15
+ ZLinkFrameworkInternalErrorKind.DeadlineExceeded,
16
+ `${operation} exceeded its deadline.`
17
+ );
18
+ }
19
+ return Math.max(1, Math.ceil(remaining));
20
+ }
21
+
22
+ /** Bounds caller waiting across outbound admission and reply; late completions stay observed. */
23
+ export async function waitRequestReply<T>(
24
+ reply: Promise<T>,
25
+ operation: string,
26
+ deadlineMs: number | undefined,
27
+ signal?: AbortSignal,
28
+ endWait?: () => void,
29
+ discardLateReply?: (reply: T) => void
30
+ ): Promise<T> {
31
+ let timer: ReturnType<typeof setTimeout> | undefined;
32
+ let waiting = reply;
33
+ if (deadlineMs !== undefined) {
34
+ const timeout = new Promise<never>((_resolve, reject) => {
35
+ const remaining = remainingRequestTimeout(operation, deadlineMs);
36
+ timer = setTimeout(
37
+ () =>
38
+ reject(
39
+ createInternalFrameworkException(
40
+ ZLinkFrameworkInternalErrorKind.DeadlineExceeded,
41
+ `${operation} exceeded its deadline.`
42
+ )
43
+ ),
44
+ remaining
45
+ );
46
+ });
47
+ waiting = Promise.race([reply, timeout]);
48
+ }
49
+ try {
50
+ return await awaitWithAbort(waiting, signal);
51
+ } catch (error) {
52
+ endWait?.();
53
+ if (discardLateReply !== undefined) void reply.then(discardLateReply, () => undefined);
54
+ throw error;
55
+ } finally {
56
+ clearTimeout(timer);
57
+ }
58
+ }
@@ -1,7 +1,10 @@
1
1
  import {
2
2
  ZLinkFrameworkInternalErrorKind,
3
- createInternalFrameworkException
3
+ createInternalFrameworkException,
4
+ requestResultToPublicErrorKind
4
5
  } from '../framework-errors-internal';
6
+ import { ZLinkFrameworkException } from '../../contracts';
7
+ import { RequestResult, SubmitResult } from '../backend/runtime-values';
5
8
  export enum ZLinkSubmitStatus {
6
9
  Submitted = 'submitted',
7
10
  Backpressured = 'backpressured',
@@ -15,6 +18,59 @@ export interface ZLinkSubmitResult {
15
18
  readonly status: ZLinkSubmitStatus;
16
19
  }
17
20
 
21
+ /** Projects immediate refusal and pending admission failure from their Core phase. */
22
+ export function submitToRequestResult(result: number, phase: 'submit' | 'completion'): number {
23
+ switch (result) {
24
+ case SubmitResult.Ok:
25
+ return RequestResult.Ok;
26
+ case SubmitResult.Backpressured:
27
+ return phase === 'submit' ? RequestResult.NotConnected : RequestResult.TimedOut;
28
+ case SubmitResult.NotConnected:
29
+ return RequestResult.NotConnected;
30
+ case SubmitResult.NotFound:
31
+ return phase === 'submit' ? RequestResult.NotFound : RequestResult.NotConnected;
32
+ case SubmitResult.NotAdmitted:
33
+ return RequestResult.Rejected;
34
+ case SubmitResult.InvalidHandle:
35
+ case SubmitResult.InvalidArgument:
36
+ case SubmitResult.ThreadViolation:
37
+ return RequestResult.InvalidArgument;
38
+ case SubmitResult.InvalidState:
39
+ return RequestResult.InvalidState;
40
+ case SubmitResult.NotSupported:
41
+ return RequestResult.NotSupported;
42
+ case SubmitResult.Terminated:
43
+ return RequestResult.Terminated;
44
+ default:
45
+ return RequestResult.InternalError;
46
+ }
47
+ }
48
+
49
+ export function classifySubmitResult(
50
+ result: number,
51
+ operation: string,
52
+ phase: 'submit' | 'completion' = 'submit'
53
+ ): ZLinkSubmitResult {
54
+ const terminal = submitToRequestResult(result, phase);
55
+ switch (terminal) {
56
+ case RequestResult.Ok:
57
+ return { status: ZLinkSubmitStatus.Submitted };
58
+ case RequestResult.TimedOut:
59
+ return { status: ZLinkSubmitStatus.TimedOut };
60
+ case RequestResult.NotFound:
61
+ return { status: ZLinkSubmitStatus.TargetNotFound };
62
+ case RequestResult.NotConnected:
63
+ return { status: ZLinkSubmitStatus.RouteNotConnected };
64
+ case RequestResult.Terminated:
65
+ return { status: ZLinkSubmitStatus.Shutdown };
66
+ default:
67
+ throw new ZLinkFrameworkException(
68
+ requestResultToPublicErrorKind(terminal),
69
+ `${operation} failed with submit result ${result}.`
70
+ );
71
+ }
72
+ }
73
+
18
74
  export function requireOneWayCompletion(
19
75
  result: ZLinkSubmitResult,
20
76
  operation: string,
@@ -24,12 +80,17 @@ export function requireOneWayCompletion(
24
80
  case ZLinkSubmitStatus.Submitted:
25
81
  return;
26
82
  case ZLinkSubmitStatus.TimedOut:
27
- case ZLinkSubmitStatus.Backpressured:
28
83
  throw createInternalFrameworkException(
29
84
  ZLinkFrameworkInternalErrorKind.DeadlineExceeded,
30
85
  `${operation} did not obtain admission before its deadline.`,
31
86
  true
32
87
  );
88
+ case ZLinkSubmitStatus.Backpressured:
89
+ throw createInternalFrameworkException(
90
+ ZLinkFrameworkInternalErrorKind.RouteNotConnected,
91
+ `${operation} has no admission wait token.`,
92
+ true
93
+ );
33
94
  case ZLinkSubmitStatus.TargetNotFound:
34
95
  throw createInternalFrameworkException(notFoundKind, `${operation} target was not found.`);
35
96
  case ZLinkSubmitStatus.RouteNotConnected:
@@ -50,6 +111,15 @@ export function requirePublishCompletion(result: ZLinkSubmitResult, operation: s
50
111
  requireOneWayCompletion(result, operation);
51
112
  }
52
113
 
114
+ export function requireClassicFanoutCompletion(result: ZLinkSubmitResult, operation: string): void {
115
+ requireOneWayCompletion(
116
+ result.status === ZLinkSubmitStatus.Backpressured
117
+ ? { status: ZLinkSubmitStatus.TimedOut }
118
+ : result,
119
+ operation
120
+ );
121
+ }
122
+
53
123
  export function throwAlreadySubmitted(operation: string): never {
54
124
  throw createInternalFrameworkException(
55
125
  ZLinkFrameworkInternalErrorKind.AlreadySubmitted,
@@ -4257,7 +4257,7 @@ function readChannelEntry(reader: Reader, context: ServiceWireDecoderContext, en
4257
4257
 
4258
4258
 
4259
4259
  value["weight"] = readU32(reader, context, value, flags);
4260
- if (numeric(value["weight"]) < 0n || numeric(value["weight"]) > 100n) fail("weight constraint");
4260
+ if (numeric(value["weight"]) < 0n || numeric(value["weight"]) > 10000n) fail("weight constraint");
4261
4261
 
4262
4262
 
4263
4263
 
@@ -4273,7 +4273,7 @@ function writeChannelEntry(input: ChannelEntry, writer: Writer, context: Service
4273
4273
 
4274
4274
  writeText8(value["channelName"], writer, context, value, flags);
4275
4275
  if (value["weight"] === undefined) fail("weight required");
4276
- if (numeric(value["weight"]) < 0n || numeric(value["weight"]) > 100n) fail("weight constraint");
4276
+ if (numeric(value["weight"]) < 0n || numeric(value["weight"]) > 10000n) fail("weight constraint");
4277
4277
 
4278
4278
  writeU32(value["weight"], writer, context, value, flags);
4279
4279
  }
@@ -4451,7 +4451,7 @@ function readDescriptorExtension(reader: Reader, context: ServiceWireDecoderCont
4451
4451
  item.done("objectRole"); break;
4452
4452
  case 8:
4453
4453
  if (value["placementWeight"] !== undefined) fail("descriptor-extension duplicate"); value["placementWeight"] = readU32(item, context, value, flags);
4454
- if (numeric(value["placementWeight"]) < 0n || numeric(value["placementWeight"]) > 100n) fail("placementWeight constraint");
4454
+ if (numeric(value["placementWeight"]) < 0n || numeric(value["placementWeight"]) > 10000n) fail("placementWeight constraint");
4455
4455
 
4456
4456
  item.done("placementWeight"); break;
4457
4457
  case 9:
@@ -4526,7 +4526,7 @@ function writeDescriptorExtension(input: DescriptorExtension, writer: Writer, co
4526
4526
  const item = new Writer(); writeObjectRole(value["objectRole"], item, context, value, flags); const itemBytes = item.result(); writeU8(7, body, context, value, flags); writeU32(itemBytes.length, body, context, value, flags); body.put(itemBytes);
4527
4527
  }
4528
4528
  if (value["placementWeight"] !== undefined) {
4529
- if (numeric(value["placementWeight"]) < 0n || numeric(value["placementWeight"]) > 100n) fail("placementWeight constraint");
4529
+ if (numeric(value["placementWeight"]) < 0n || numeric(value["placementWeight"]) > 10000n) fail("placementWeight constraint");
4530
4530
 
4531
4531
  const item = new Writer(); writeU32(value["placementWeight"], item, context, value, flags); const itemBytes = item.result(); writeU8(8, body, context, value, flags); writeU32(itemBytes.length, body, context, value, flags); body.put(itemBytes);
4532
4532
  }
@@ -4660,7 +4660,7 @@ function readClientServerAdmission(reader: Reader, context: ServiceWireDecoderCo
4660
4660
 
4661
4661
 
4662
4662
  value["weight"] = readU32(body, context, value, flags);
4663
- if (numeric(value["weight"]) < 0n || numeric(value["weight"]) > 100n) fail("weight constraint");
4663
+ if (numeric(value["weight"]) < 0n || numeric(value["weight"]) > 10000n) fail("weight constraint");
4664
4664
 
4665
4665
  value["runtimeState"] = readRuntimeState(body, context, value, flags);
4666
4666
 
@@ -4726,7 +4726,7 @@ function writeClientServerAdmission(input: ClientServerAdmission, writer: Writer
4726
4726
 
4727
4727
  writeNonzeroU64(numeric(value["descriptorRevision"]), body, context, value, flags);
4728
4728
  if (value["weight"] === undefined) fail("weight required");
4729
- if (numeric(value["weight"]) < 0n || numeric(value["weight"]) > 100n) fail("weight constraint");
4729
+ if (numeric(value["weight"]) < 0n || numeric(value["weight"]) > 10000n) fail("weight constraint");
4730
4730
 
4731
4731
  writeU32(value["weight"], body, context, value, flags);
4732
4732
  if (value["runtimeState"] === undefined) fail("runtimeState required");
@@ -6376,7 +6376,7 @@ function writeFrozenRecord(input: FrozenRecord, writer: Writer, context: Service
6376
6376
  export function decodeFrozenRecord(bytes: Uint8Array, context: ServiceWireDecoderContext): FrozenRecord { const reader = new Reader(bytes); const value = readFrozenRecord(reader, context, {}, 0); reader.done("frozen-record"); return value; }
6377
6377
  export function encodeFrozenRecord(value: FrozenRecord, context: ServiceWireDecoderContext): Uint8Array { const writer = new Writer(); writeFrozenRecord(value, writer, context, {}, 0); return writer.result(); }
6378
6378
 
6379
- export type InstanceRouteV1 = { readonly routeKind: "ready"; readonly targetNodeRid: Rid; readonly targetNodeGeneration: NonzeroU64; readonly targetSpotId: Text8; readonly authority: AuthorityGenerationFence } | { readonly routeKind: "coldActivation"; readonly targetNodeRid: Rid; readonly targetNodeGeneration: NonzeroU64; readonly targetSpotId: Text8; readonly targetMeshName: Text8; readonly stableType: Text8; readonly targetDescriptorVersion: Text8; readonly deadlineUnixMs: NonzeroU64 };
6379
+ export type InstanceRouteV1 = { readonly routeKind: "ready"; readonly targetNodeRid: Rid; readonly targetNodeGeneration: NonzeroU64; readonly targetSpotId: Text8; readonly authority: AuthorityGenerationFence; readonly instanceIntent: Bool8 } | { readonly routeKind: "coldActivation"; readonly targetNodeRid: Rid; readonly targetNodeGeneration: NonzeroU64; readonly targetSpotId: Text8; readonly targetMeshName: Text8; readonly stableType: Text8; readonly targetDescriptorVersion: Text8; readonly deadlineUnixMs: NonzeroU64 };
6380
6380
 
6381
6381
  function readInstanceRouteV1(reader: Reader, context: ServiceWireDecoderContext, enclosing: any, flags: number): InstanceRouteV1 {
6382
6382
  void context; void enclosing; void flags;
@@ -6396,6 +6396,9 @@ function readInstanceRouteV1(reader: Reader, context: ServiceWireDecoderContext,
6396
6396
  value["authority"] = readAuthorityGenerationFence(body, context, value, flags);
6397
6397
 
6398
6398
 
6399
+ value["instanceIntent"] = readBool8(body, context, value, flags);
6400
+
6401
+
6399
6402
  } else if (same(value["routeKind"], "coldActivation")) {
6400
6403
  value["targetNodeRid"] = readRid(body, context, value, flags);
6401
6404
 
@@ -6441,6 +6444,9 @@ function* readIncrementalInstanceRouteV1(reader: IncrementalInput, context: Serv
6441
6444
  value["authority"] = yield* readIncrementalAuthorityGenerationFence(body, context, value, flags);
6442
6445
 
6443
6446
 
6447
+ value["instanceIntent"] = yield* readIncrementalBool8(body, context, value, flags);
6448
+
6449
+
6444
6450
  } else if (same(value["routeKind"], "coldActivation")) {
6445
6451
  value["targetNodeRid"] = yield* readIncrementalRid(body, context, value, flags);
6446
6452
 
@@ -6491,8 +6497,12 @@ function writeInstanceRouteV1(input: InstanceRouteV1, writer: Writer, context: S
6491
6497
 
6492
6498
 
6493
6499
  writeAuthorityGenerationFence(value["authority"], body, context, value, flags);
6500
+ if (value["instanceIntent"] === undefined) fail("instanceIntent required");
6501
+
6502
+
6503
+ writeBool8(value["instanceIntent"], body, context, value, flags);
6494
6504
  } else if (same(value["routeKind"], "coldActivation")) {
6495
- if (value["authority"] !== undefined) fail("instance-route-v1 discriminator agreement");
6505
+ if (value["authority"] !== undefined || value["instanceIntent"] !== undefined) fail("instance-route-v1 discriminator agreement");
6496
6506
  if (value["targetNodeRid"] === undefined) fail("targetNodeRid required");
6497
6507
 
6498
6508
 
@@ -1,4 +1,4 @@
1
- // <auto-generated> DO NOT EDIT. schema-sha256: 6d5af5cdfeff1a66c4249f2cc3b93236fa0ba07d6458d7633ef3f45e77a27d4e
1
+ // <auto-generated> DO NOT EDIT. schema-sha256: 77748ba8f585cb70ad337fa3203b5f9b9aa7a89e7f95f7fdc20159c30987be0f
2
2
  export interface ServiceWireRouteFence { readonly id: string; readonly generation: bigint; readonly targetNodeRid: Uint8Array; readonly targetNodeGeneration: bigint; readonly expectedAuthorityOwnerGeneration: bigint; readonly expectedOwnerLeaseGeneration: bigint; }
3
3
  export interface ApplicationPayloadEnvelopeV1 { readonly packetName: string; readonly contentType: string; readonly payload: Uint8Array; }
4
4
  export interface ActorJoin28 { readonly correlation: bigint; readonly actor: ServiceWireRouteFence; readonly entry: boolean; readonly targetSpot: ServiceWireRouteFence; readonly payload?: ApplicationPayloadEnvelopeV1; }
@@ -1,5 +1,5 @@
1
1
  import type { RoutingId, ZLinkActor } from '../../contracts';
2
- import type { ZLinkDeferredJoinCompletion } from '../actors';
2
+ import type { ZLinkDeferredJoinCompletion, ZLinkRemoteBoundSessionTarget } from '../actors';
3
3
  import type { ZLinkActorHandoffPacket } from '../actors/actor-handoff';
4
4
  import { ZLinkStateLane } from '../execution/state-lane';
5
5
 
@@ -9,6 +9,8 @@ export interface ZLinkFormalRemoteActorTransfer {
9
9
  readonly transferId: string;
10
10
  readonly handoffBacklog: readonly ZLinkActorHandoffPacket[];
11
11
  readonly deferredJoinCompletion?: ZLinkDeferredJoinCompletion;
12
+ /** The Session seal this relocation carries until it publishes command 44. */
13
+ readonly sealedSession?: ZLinkRemoteBoundSessionTarget;
12
14
  readonly targetLifecycleCompleted: Promise<void>;
13
15
  readonly sourceLeaveSubmitted: Promise<boolean>;
14
16
  }
@@ -44,6 +46,7 @@ export class ZLinkFormalRemoteActorTransferRegistry {
44
46
  readonly transferId: string;
45
47
  readonly handoffBacklog: readonly ZLinkActorHandoffPacket[];
46
48
  readonly deferredJoinCompletion?: ZLinkDeferredJoinCompletion;
49
+ readonly sealedSession?: ZLinkRemoteBoundSessionTarget;
47
50
  }): ZLinkFormalRemoteActorTransfer {
48
51
  const existingByActor = this.transfers.get(input.actor.context.actorId)?.transfer;
49
52
  if (existingByActor !== undefined) {