effect 4.0.2 → 4.0.4

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 (389) hide show
  1. package/AGENTS.md +24 -0
  2. package/CLAUDE.md +24 -0
  3. package/ai-docs/package.json +2 -2
  4. package/ai-docs/src/52_graphql/10_basics.ts +111 -0
  5. package/ai-docs/src/52_graphql/20_testing.ts +45 -0
  6. package/ai-docs/src/52_graphql/30_batching.ts +116 -0
  7. package/ai-docs/src/52_graphql/40_aliased-batching.ts +122 -0
  8. package/ai-docs/src/52_graphql/50_errors-and-retries.ts +74 -0
  9. package/ai-docs/src/52_graphql/index.md +6 -0
  10. package/dist/Context.d.ts.map +1 -1
  11. package/dist/Context.js +12 -3
  12. package/dist/Context.js.map +1 -1
  13. package/dist/Crypto.d.ts +33 -5
  14. package/dist/Crypto.d.ts.map +1 -1
  15. package/dist/Crypto.js +8 -2
  16. package/dist/Crypto.js.map +1 -1
  17. package/dist/DateTime.d.ts +9 -6
  18. package/dist/DateTime.d.ts.map +1 -1
  19. package/dist/DateTime.js +9 -6
  20. package/dist/DateTime.js.map +1 -1
  21. package/dist/Duration.d.ts +6 -6
  22. package/dist/Duration.d.ts.map +1 -1
  23. package/dist/Duration.js +27 -8
  24. package/dist/Duration.js.map +1 -1
  25. package/dist/FileSystem.d.ts +44 -2
  26. package/dist/FileSystem.d.ts.map +1 -1
  27. package/dist/FileSystem.js.map +1 -1
  28. package/dist/RequestResolver.d.ts.map +1 -1
  29. package/dist/RequestResolver.js +4 -10
  30. package/dist/RequestResolver.js.map +1 -1
  31. package/dist/Scheduler.d.ts +9 -0
  32. package/dist/Scheduler.d.ts.map +1 -1
  33. package/dist/Scheduler.js +9 -0
  34. package/dist/Scheduler.js.map +1 -1
  35. package/dist/Schema.d.ts +481 -1
  36. package/dist/Schema.d.ts.map +1 -1
  37. package/dist/Schema.js +362 -4
  38. package/dist/Schema.js.map +1 -1
  39. package/dist/SchemaGetter.d.ts +4 -0
  40. package/dist/SchemaGetter.d.ts.map +1 -1
  41. package/dist/SchemaGetter.js +52 -33
  42. package/dist/SchemaGetter.js.map +1 -1
  43. package/dist/Sink.d.ts.map +1 -1
  44. package/dist/Sink.js +38 -17
  45. package/dist/Sink.js.map +1 -1
  46. package/dist/Stdio.d.ts +7 -1
  47. package/dist/Stdio.d.ts.map +1 -1
  48. package/dist/Stdio.js +1 -0
  49. package/dist/Stdio.js.map +1 -1
  50. package/dist/Stream.d.ts +22 -11
  51. package/dist/Stream.d.ts.map +1 -1
  52. package/dist/Stream.js +21 -6
  53. package/dist/Stream.js.map +1 -1
  54. package/dist/Utils.js +8 -3
  55. package/dist/Utils.js.map +1 -1
  56. package/dist/ai/AnthropicStructuredOutput.js +0 -2
  57. package/dist/ai/AnthropicStructuredOutput.js.map +1 -1
  58. package/dist/ai/Chat.d.ts +2 -2
  59. package/dist/ai/Chat.d.ts.map +1 -1
  60. package/dist/ai/LanguageModel.d.ts +38 -7
  61. package/dist/ai/LanguageModel.d.ts.map +1 -1
  62. package/dist/ai/LanguageModel.js +25 -7
  63. package/dist/ai/LanguageModel.js.map +1 -1
  64. package/dist/ai/McpServer.d.ts +61 -0
  65. package/dist/ai/McpServer.d.ts.map +1 -1
  66. package/dist/ai/McpServer.js +196 -44
  67. package/dist/ai/McpServer.js.map +1 -1
  68. package/dist/ai/Prompt.d.ts.map +1 -1
  69. package/dist/ai/Prompt.js +28 -5
  70. package/dist/ai/Prompt.js.map +1 -1
  71. package/dist/ai/Response.d.ts +4 -3
  72. package/dist/ai/Response.d.ts.map +1 -1
  73. package/dist/ai/Response.js.map +1 -1
  74. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +5 -0
  75. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  76. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  77. package/dist/ai/internal/mcpRuntime.js +1 -0
  78. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  79. package/dist/cli/CliOutput.d.ts +27 -0
  80. package/dist/cli/CliOutput.d.ts.map +1 -1
  81. package/dist/cli/CliOutput.js +33 -10
  82. package/dist/cli/CliOutput.js.map +1 -1
  83. package/dist/cli/Command.d.ts.map +1 -1
  84. package/dist/cli/Command.js +6 -3
  85. package/dist/cli/Command.js.map +1 -1
  86. package/dist/cli/Completions.d.ts +3 -3
  87. package/dist/cli/Completions.d.ts.map +1 -1
  88. package/dist/cli/Completions.js +8 -5
  89. package/dist/cli/Completions.js.map +1 -1
  90. package/dist/cli/GlobalFlag.d.ts +5 -4
  91. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  92. package/dist/cli/GlobalFlag.js +3 -3
  93. package/dist/cli/GlobalFlag.js.map +1 -1
  94. package/dist/cli/Prompt.d.ts +17 -1
  95. package/dist/cli/Prompt.d.ts.map +1 -1
  96. package/dist/cli/Prompt.js +119 -114
  97. package/dist/cli/Prompt.js.map +1 -1
  98. package/dist/cli/internal/ansi.d.ts +0 -1
  99. package/dist/cli/internal/ansi.d.ts.map +1 -1
  100. package/dist/cli/internal/ansi.js +20 -3
  101. package/dist/cli/internal/ansi.js.map +1 -1
  102. package/dist/cli/internal/completions/powershell.d.ts +2 -0
  103. package/dist/cli/internal/completions/powershell.d.ts.map +1 -0
  104. package/dist/cli/internal/completions/powershell.js +273 -0
  105. package/dist/cli/internal/completions/powershell.js.map +1 -0
  106. package/dist/cli/internal/completions/zsh.js +3 -2
  107. package/dist/cli/internal/completions/zsh.js.map +1 -1
  108. package/dist/cli/internal/wizard.d.ts +3 -3
  109. package/dist/cli/internal/wizard.d.ts.map +1 -1
  110. package/dist/cli/internal/wizard.js +21 -18
  111. package/dist/cli/internal/wizard.js.map +1 -1
  112. package/dist/cluster/ClusterSchema.d.ts +28 -0
  113. package/dist/cluster/ClusterSchema.d.ts.map +1 -1
  114. package/dist/cluster/ClusterSchema.js +30 -0
  115. package/dist/cluster/ClusterSchema.js.map +1 -1
  116. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  117. package/dist/cluster/ClusterWorkflowEngine.js +56 -26
  118. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  119. package/dist/cluster/MessageStorage.d.ts +18 -3
  120. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  121. package/dist/cluster/MessageStorage.js +31 -11
  122. package/dist/cluster/MessageStorage.js.map +1 -1
  123. package/dist/cluster/Runners.d.ts.map +1 -1
  124. package/dist/cluster/Runners.js +8 -2
  125. package/dist/cluster/Runners.js.map +1 -1
  126. package/dist/cluster/Sharding.d.ts.map +1 -1
  127. package/dist/cluster/Sharding.js +187 -66
  128. package/dist/cluster/Sharding.js.map +1 -1
  129. package/dist/cluster/SqlMessageStorage.d.ts +59 -19
  130. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  131. package/dist/cluster/SqlMessageStorage.js +84 -55
  132. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  133. package/dist/cluster/SqlRunnerStorage.d.ts +68 -19
  134. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  135. package/dist/cluster/SqlRunnerStorage.js +191 -113
  136. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  137. package/dist/cluster/internal/entityManager.js +104 -37
  138. package/dist/cluster/internal/entityManager.js.map +1 -1
  139. package/dist/encoding/Sse.d.ts +6 -0
  140. package/dist/encoding/Sse.d.ts.map +1 -1
  141. package/dist/encoding/Sse.js +62 -70
  142. package/dist/encoding/Sse.js.map +1 -1
  143. package/dist/graphql/GraphQL.d.ts +349 -0
  144. package/dist/graphql/GraphQL.d.ts.map +1 -0
  145. package/dist/graphql/GraphQL.js +207 -0
  146. package/dist/graphql/GraphQL.js.map +1 -0
  147. package/dist/graphql/GraphQLClient.d.ts +562 -0
  148. package/dist/graphql/GraphQLClient.d.ts.map +1 -0
  149. package/dist/graphql/GraphQLClient.js +498 -0
  150. package/dist/graphql/GraphQLClient.js.map +1 -0
  151. package/dist/graphql/GraphQLClientError.d.ts +445 -0
  152. package/dist/graphql/GraphQLClientError.d.ts.map +1 -0
  153. package/dist/graphql/GraphQLClientError.js +479 -0
  154. package/dist/graphql/GraphQLClientError.js.map +1 -0
  155. package/dist/graphql/GraphQLGroup.d.ts +118 -0
  156. package/dist/graphql/GraphQLGroup.d.ts.map +1 -0
  157. package/dist/graphql/GraphQLGroup.js +109 -0
  158. package/dist/graphql/GraphQLGroup.js.map +1 -0
  159. package/dist/graphql/GraphQLMiddleware.d.ts +249 -0
  160. package/dist/graphql/GraphQLMiddleware.d.ts.map +1 -0
  161. package/dist/graphql/GraphQLMiddleware.js +130 -0
  162. package/dist/graphql/GraphQLMiddleware.js.map +1 -0
  163. package/dist/graphql/GraphQLProtocol.d.ts +731 -0
  164. package/dist/graphql/GraphQLProtocol.d.ts.map +1 -0
  165. package/dist/graphql/GraphQLProtocol.js +719 -0
  166. package/dist/graphql/GraphQLProtocol.js.map +1 -0
  167. package/dist/graphql/GraphQLResolver.d.ts +453 -0
  168. package/dist/graphql/GraphQLResolver.d.ts.map +1 -0
  169. package/dist/graphql/GraphQLResolver.js +552 -0
  170. package/dist/graphql/GraphQLResolver.js.map +1 -0
  171. package/dist/graphql/index.d.ts +40 -0
  172. package/dist/graphql/index.d.ts.map +1 -0
  173. package/dist/graphql/index.js +41 -0
  174. package/dist/graphql/index.js.map +1 -0
  175. package/dist/http/FindMyWay/internal/router.js +3 -6
  176. package/dist/http/FindMyWay/internal/router.js.map +1 -1
  177. package/dist/http/HttpClient.d.ts +21 -0
  178. package/dist/http/HttpClient.d.ts.map +1 -1
  179. package/dist/http/HttpClient.js +63 -12
  180. package/dist/http/HttpClient.js.map +1 -1
  181. package/dist/http/HttpEffect.d.ts.map +1 -1
  182. package/dist/http/HttpEffect.js +14 -7
  183. package/dist/http/HttpEffect.js.map +1 -1
  184. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  185. package/dist/http/HttpMiddleware.js +31 -32
  186. package/dist/http/HttpMiddleware.js.map +1 -1
  187. package/dist/http/HttpRouter.d.ts +35 -0
  188. package/dist/http/HttpRouter.d.ts.map +1 -1
  189. package/dist/http/HttpRouter.js +35 -0
  190. package/dist/http/HttpRouter.js.map +1 -1
  191. package/dist/http/HttpServerResponse.d.ts +8 -6
  192. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  193. package/dist/http/HttpServerResponse.js +27 -16
  194. package/dist/http/HttpServerResponse.js.map +1 -1
  195. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  196. package/dist/http/HttpTraceContext.js +4 -2
  197. package/dist/http/HttpTraceContext.js.map +1 -1
  198. package/dist/http/Multipart.d.ts.map +1 -1
  199. package/dist/http/Multipart.js +15 -1
  200. package/dist/http/Multipart.js.map +1 -1
  201. package/dist/http-api/HttpApiScalar.d.ts +5 -0
  202. package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
  203. package/dist/http-api/HttpApiScalar.js.map +1 -1
  204. package/dist/internal/dateTime.js +40 -35
  205. package/dist/internal/dateTime.js.map +1 -1
  206. package/dist/internal/effect.js +19 -9
  207. package/dist/internal/effect.js.map +1 -1
  208. package/dist/internal/graphql.d.ts +2 -0
  209. package/dist/internal/graphql.d.ts.map +1 -0
  210. package/dist/internal/graphql.js +195 -0
  211. package/dist/internal/graphql.js.map +1 -0
  212. package/dist/internal/graphqlHeaders.d.ts +4 -0
  213. package/dist/internal/graphqlHeaders.d.ts.map +1 -0
  214. package/dist/internal/graphqlHeaders.js +11 -0
  215. package/dist/internal/graphqlHeaders.js.map +1 -0
  216. package/dist/internal/request.js +20 -1
  217. package/dist/internal/request.js.map +1 -1
  218. package/dist/internal/schema/toCodeDocument.js +4 -1
  219. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  220. package/dist/internal/schema/toJsonSchemaDocument.js +29 -5
  221. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  222. package/dist/internal/version.js +1 -1
  223. package/dist/net/AddressResolver.d.ts +145 -0
  224. package/dist/net/AddressResolver.d.ts.map +1 -0
  225. package/dist/net/AddressResolver.js +114 -0
  226. package/dist/net/AddressResolver.js.map +1 -0
  227. package/dist/net/Dns.d.ts +596 -0
  228. package/dist/net/Dns.d.ts.map +1 -0
  229. package/dist/net/Dns.js +549 -0
  230. package/dist/net/Dns.js.map +1 -0
  231. package/dist/net/Host.d.ts +369 -0
  232. package/dist/net/Host.d.ts.map +1 -0
  233. package/dist/net/Host.js +397 -0
  234. package/dist/net/Host.js.map +1 -0
  235. package/dist/net/IpInterface.d.ts +76 -3
  236. package/dist/net/IpInterface.d.ts.map +1 -1
  237. package/dist/net/IpInterface.js +53 -4
  238. package/dist/net/IpInterface.js.map +1 -1
  239. package/dist/net/IpNetwork.d.ts +82 -8
  240. package/dist/net/IpNetwork.d.ts.map +1 -1
  241. package/dist/net/IpNetwork.js +60 -4
  242. package/dist/net/IpNetwork.js.map +1 -1
  243. package/dist/net/NetAddress.d.ts +396 -35
  244. package/dist/net/NetAddress.d.ts.map +1 -1
  245. package/dist/net/NetAddress.js +358 -34
  246. package/dist/net/NetAddress.js.map +1 -1
  247. package/dist/net/index.d.ts +15 -0
  248. package/dist/net/index.d.ts.map +1 -1
  249. package/dist/net/index.js +15 -0
  250. package/dist/net/index.js.map +1 -1
  251. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  252. package/dist/observability/OtlpMetrics.js +15 -21
  253. package/dist/observability/OtlpMetrics.js.map +1 -1
  254. package/dist/observability/PrometheusMetrics.js +1 -0
  255. package/dist/observability/PrometheusMetrics.js.map +1 -1
  256. package/dist/persistence/PersistedQueue.d.ts +32 -3
  257. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  258. package/dist/persistence/PersistedQueue.js +75 -16
  259. package/dist/persistence/PersistedQueue.js.map +1 -1
  260. package/dist/rpc/RpcClient.d.ts +22 -6
  261. package/dist/rpc/RpcClient.d.ts.map +1 -1
  262. package/dist/rpc/RpcClient.js +12 -5
  263. package/dist/rpc/RpcClient.js.map +1 -1
  264. package/dist/rpc/RpcServer.d.ts +6 -0
  265. package/dist/rpc/RpcServer.d.ts.map +1 -1
  266. package/dist/rpc/RpcServer.js +78 -29
  267. package/dist/rpc/RpcServer.js.map +1 -1
  268. package/dist/socket/DatagramSocket.d.ts +456 -0
  269. package/dist/socket/DatagramSocket.d.ts.map +1 -0
  270. package/dist/socket/DatagramSocket.js +535 -0
  271. package/dist/socket/DatagramSocket.js.map +1 -0
  272. package/dist/socket/Socket.d.ts +20 -1
  273. package/dist/socket/Socket.d.ts.map +1 -1
  274. package/dist/socket/Socket.js +9 -1
  275. package/dist/socket/Socket.js.map +1 -1
  276. package/dist/socket/index.d.ts +5 -0
  277. package/dist/socket/index.d.ts.map +1 -1
  278. package/dist/socket/index.js +5 -0
  279. package/dist/socket/index.js.map +1 -1
  280. package/dist/sql/Migrator.d.ts.map +1 -1
  281. package/dist/sql/Migrator.js +7 -2
  282. package/dist/sql/Migrator.js.map +1 -1
  283. package/dist/sql/SqlClient.d.ts +7 -1
  284. package/dist/sql/SqlClient.d.ts.map +1 -1
  285. package/dist/sql/SqlClient.js +31 -6
  286. package/dist/sql/SqlClient.js.map +1 -1
  287. package/dist/testing/TestCrypto.d.ts +73 -0
  288. package/dist/testing/TestCrypto.d.ts.map +1 -0
  289. package/dist/testing/TestCrypto.js +87 -0
  290. package/dist/testing/TestCrypto.js.map +1 -0
  291. package/dist/testing/index.d.ts +5 -0
  292. package/dist/testing/index.d.ts.map +1 -1
  293. package/dist/testing/index.js +5 -0
  294. package/dist/testing/index.js.map +1 -1
  295. package/dist/workflow/DurableDeferred.d.ts +54 -0
  296. package/dist/workflow/DurableDeferred.d.ts.map +1 -1
  297. package/dist/workflow/DurableDeferred.js +108 -50
  298. package/dist/workflow/DurableDeferred.js.map +1 -1
  299. package/dist/workflow/WorkflowEngine.d.ts +24 -2
  300. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  301. package/dist/workflow/WorkflowEngine.js +13 -3
  302. package/dist/workflow/WorkflowEngine.js.map +1 -1
  303. package/package.json +6 -3
  304. package/src/Context.ts +12 -3
  305. package/src/Crypto.ts +43 -9
  306. package/src/DateTime.ts +9 -6
  307. package/src/Duration.ts +36 -16
  308. package/src/FileSystem.ts +48 -2
  309. package/src/RequestResolver.ts +4 -10
  310. package/src/Scheduler.ts +9 -0
  311. package/src/Schema.ts +677 -5
  312. package/src/SchemaGetter.ts +47 -35
  313. package/src/Sink.ts +45 -18
  314. package/src/Stdio.ts +9 -2
  315. package/src/Stream.ts +44 -15
  316. package/src/Utils.ts +8 -5
  317. package/src/ai/AnthropicStructuredOutput.ts +2 -2
  318. package/src/ai/Chat.ts +2 -2
  319. package/src/ai/LanguageModel.ts +96 -24
  320. package/src/ai/McpServer.ts +288 -94
  321. package/src/ai/Prompt.ts +24 -10
  322. package/src/ai/Response.ts +6 -3
  323. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +5 -0
  324. package/src/ai/internal/mcpProtocol.ts +3 -0
  325. package/src/ai/internal/mcpRuntime.ts +2 -0
  326. package/src/cli/CliOutput.ts +33 -16
  327. package/src/cli/Command.ts +4 -3
  328. package/src/cli/Completions.ts +9 -6
  329. package/src/cli/GlobalFlag.ts +19 -11
  330. package/src/cli/Prompt.ts +159 -149
  331. package/src/cli/internal/ansi.ts +26 -3
  332. package/src/cli/internal/completions/powershell.ts +322 -0
  333. package/src/cli/internal/completions/zsh.ts +4 -2
  334. package/src/cli/internal/wizard.ts +34 -26
  335. package/src/cluster/ClusterSchema.ts +32 -0
  336. package/src/cluster/ClusterWorkflowEngine.ts +64 -36
  337. package/src/cluster/MessageStorage.ts +45 -14
  338. package/src/cluster/Runners.ts +8 -2
  339. package/src/cluster/Sharding.ts +219 -58
  340. package/src/cluster/SqlMessageStorage.ts +118 -84
  341. package/src/cluster/SqlRunnerStorage.ts +224 -128
  342. package/src/cluster/internal/entityManager.ts +151 -55
  343. package/src/encoding/Sse.ts +69 -79
  344. package/src/graphql/GraphQL.ts +494 -0
  345. package/src/graphql/GraphQLClient.ts +912 -0
  346. package/src/graphql/GraphQLClientError.ts +542 -0
  347. package/src/graphql/GraphQLGroup.ts +167 -0
  348. package/src/graphql/GraphQLMiddleware.ts +253 -0
  349. package/src/graphql/GraphQLProtocol.ts +1286 -0
  350. package/src/graphql/GraphQLResolver.ts +1010 -0
  351. package/src/graphql/index.ts +48 -0
  352. package/src/http/FindMyWay/internal/router.ts +4 -7
  353. package/src/http/HttpClient.ts +110 -12
  354. package/src/http/HttpEffect.ts +11 -5
  355. package/src/http/HttpMiddleware.ts +33 -34
  356. package/src/http/HttpRouter.ts +35 -0
  357. package/src/http/HttpServerResponse.ts +28 -16
  358. package/src/http/HttpTraceContext.ts +8 -2
  359. package/src/http/Multipart.ts +17 -1
  360. package/src/http-api/HttpApiScalar.ts +5 -0
  361. package/src/internal/dateTime.ts +13 -10
  362. package/src/internal/effect.ts +22 -15
  363. package/src/internal/graphql.ts +263 -0
  364. package/src/internal/graphqlHeaders.ts +11 -0
  365. package/src/internal/request.ts +31 -3
  366. package/src/internal/schema/toCodeDocument.ts +7 -1
  367. package/src/internal/schema/toJsonSchemaDocument.ts +34 -2
  368. package/src/internal/version.ts +1 -1
  369. package/src/net/AddressResolver.ts +222 -0
  370. package/src/net/Dns.ts +1035 -0
  371. package/src/net/Host.ts +544 -0
  372. package/src/net/IpInterface.ts +117 -7
  373. package/src/net/IpNetwork.ts +116 -17
  374. package/src/net/NetAddress.ts +620 -76
  375. package/src/net/index.ts +18 -0
  376. package/src/observability/OtlpMetrics.ts +12 -23
  377. package/src/observability/PrometheusMetrics.ts +1 -0
  378. package/src/persistence/PersistedQueue.ts +146 -53
  379. package/src/rpc/RpcClient.ts +41 -19
  380. package/src/rpc/RpcServer.ts +115 -40
  381. package/src/socket/DatagramSocket.ts +919 -0
  382. package/src/socket/Socket.ts +28 -2
  383. package/src/socket/index.ts +6 -0
  384. package/src/sql/Migrator.ts +21 -5
  385. package/src/sql/SqlClient.ts +39 -15
  386. package/src/testing/TestCrypto.ts +94 -0
  387. package/src/testing/index.ts +6 -0
  388. package/src/workflow/DurableDeferred.ts +160 -47
  389. package/src/workflow/WorkflowEngine.ts +50 -5
@@ -1 +1 @@
1
- {"version":3,"file":"Runners.js","names":[],"sources":["../../src/cluster/Runners.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;AAaA,OAAO,KAAK,OAAO,MAAM,eAAe;AACxC,OAAO,KAAK,MAAM,MAAM,cAAc;AACtC,OAAO,KAAK,IAAI,MAAM,YAAY;AAClC,OAAO,KAAK,KAAK,MAAM,aAAa;AACpC,OAAO,KAAK,KAAK,MAAM,aAAa;AACpC,OAAO,KAAK,MAAM,MAAM,cAAc;AACtC,OAAO,KAAK,KAAK,MAAM,aAAa;AACpC,OAAO,KAAK,KAAK,MAAM,aAAa;AACpC,OAAO,KAAK,GAAG,MAAM,eAAe;AACpC,OAAO,KAAK,UAAU,MAAM,qBAAqB;AAEjD,OAAO,KAAK,QAAQ,MAAM,oBAAoB;AAC9C,OAAO,KAAK,SAAS,MAAM,qBAAqB;AAEhD,OAAO,KAAK,MAAM,MAAM,cAAc;AAGtC,SAAS,wBAAwB,EAAE,yBAAyB,EAAE,WAAW,EAAE,iBAAiB,QAAQ,mBAAmB;AACvH,SAAS,SAAS,QAAQ,oBAAoB;AAC9C,OAAO,KAAK,QAAQ,MAAM,eAAe;AACzC,OAAO,KAAK,OAAO,MAAM,cAAc;AACvC,OAAO,KAAK,cAAc,MAAM,qBAAqB;AACrD,OAAO,KAAK,KAAK,MAAM,YAAY;AAEnC,SAAS,cAAc,QAAQ,qBAAqB;AACpD,OAAO,KAAK,SAAS,MAAM,gBAAgB;AAE3C;;;;;;;;;AASA,OAAM,MAAO,OAAQ,sBAAQ,OAAO,CAAC,OAAO,EAsFxC,CAAC,wBAAwB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,OAAO,MAAM,IAAI,gBAQb,MAAM,CAAC,UAAU,CAAC,WAAU,OAAO;EACrC,MAAM,OAAO,GAAG,OAAO,cAAc,CAAC,cAAc;EACpD,MAAM,YAAY,GAAG,OAAO,MAAM,CAAC,KAAK;EACxC,MAAM,YAAY,GAAG,OAAO,SAAS,CAAC,SAAS;EAC/C,MAAM,MAAM,GAAG,OAAO,cAAc;EACpC,MAAM;IAAE,QAAQ;IAAE,GAAG;EAAc,CAAE,GAAG,OAAO;EAE/C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA4C;EAE7E,SAAS,UAAU,CACjB,OAA8B,EAC9B,YAA8F;IAE9F,MAAM,GAAG,GAAG,OAAO,CAAC,GAA8B;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC;IACzD,IAAI,CAAC,SAAS,EAAE;MACd,OAAO,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;IACrC;IAEA,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB,EAAE;MACvC,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;MACnE,MAAM,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS;MACzD,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;MAC5C,IAAI,SAAS,EAAE;QACb,OAAO,GAAG,IAAI,OAAO,CAAC,gBAAgB,CAAC;UACrC,GAAG,OAAO;UACV,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS;SACnD,CAAC;MACJ;MACA,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CACvC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,EAC/C,MAAM,CAAC,OAAO,CACZ,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CACtG,CACF;IACH;IAEA;IACA;IACA;IACA;IACA;IACA,OAAO,MAAM,CAAC,OAAO,CACnB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,EAC7E,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;MAC/B,OAAO,EAAE,MAAM,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;MAC3C,SAAS,EAAE,CAAC;QAAE,iBAAiB;QAAE;MAAU,CAAE,KAAI;QAC/C;QACA;QACA,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;UACnF,OAAO,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3F;QACA,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;QAC7D,OAAO,YAAY,CACjB,IAAI,OAAO,CAAC,eAAe,CAAC;UAC1B,GAAG,OAAO;UACV,iBAAiB;UACjB,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC;YAC7B,GAAG,OAAO,CAAC,QAAQ;YACnB,SAAS,EAAE;WACZ,CAAC;UACF,OAAO,CAAC,KAAK;YACX,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;cAC7B,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;YACtD;YACA,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;UACzE;SACD,CAAC,EACF,IAAI,CACL;MACH;KACD,CAAC,CACH;EACH;EAQA,MAAM,eAAe,GAAG,IAAI,GAAG,EAA4C;EAC3E,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAqD;EAC3F,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CACxC,WAAU,OAAqC;IAC7C,IAAI,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3D,IAAI,KAAK,EAAE;MACT,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;MAC3B,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;MAC3C,OAAO,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK;IACrC,CAAC,MAAM;MACL,KAAK,GAAG;QACN,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QAC9B,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC;OAC5B;MACD,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;IACxD;IAEA,OAAO,IAAI,EAAE;MACX;MACA,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE;MACzB,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;MAC/D,YAAY,CAAC,UAAU,EAAE;MACzB,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK;MAExB;MACA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9B;QACA,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;UAC7B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;YACpC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;UAC/B;UACA,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE;UAC7B;QACF;QAEA,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE;QACzB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;UACpC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAC/B;QACA;QACA,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK;MAC1B;MACA,KAAK,CAAC,OAAO,GAAG,EAAE;IACpB;EACF,CAAC,EACD,CAAC,MAAM,EAAE,OAAO,KACd,MAAM,CAAC,QAAQ,CACb,MAAM,EACN,MAAM,CAAC,IAAI,CAAC,MAAK;IACf,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC7D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE;MACrC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;MAC/B;IACF;IACA,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAClD,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;EAC3D,CAAC,CAAC,CACH,CACJ;EAED,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;EAC5C,IAAI,OAAO,KAAK,cAAc,CAAC,IAAI,EAAE;IACnC,OAAO,MAAM,CAAC,GAAG,CAAC,aAAS;MACzB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuB;MAEpD,OAAO,IAAI,EAAE;QACX,OAAO,YAAY,CAAC,KAAK;QACzB,YAAY,CAAC,WAAW,EAAE;QAE1B,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAC7E,MAAM,CAAC,UAAU,CAAE,KAAK,IACtB,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;UAC1C,OAAO,EAAE,iBAAiB;UAC1B,MAAM,EAAE,SAAS;UACjB,KAAK,EAAE;SACR,CAAC,EACF,EAAE,CACH,CACF,CACF;QAED;QACA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;UACvC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;UACxB,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;UAClD,IAAI,CAAC,KAAK,EAAE;UACZ,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;UACzB,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;UAC9C,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAC1B;QAEA,aAAa,CAAC,OAAO,CAAE,KAAK,IAAK,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAC1D,aAAa,CAAC,KAAK,EAAE;MACvB;IACF,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAC5B;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,MAAK;MACzB,IAAI,sBAAsB,CAAC,IAAI,KAAK,CAAC,EAAE;QACrC,OAAO,YAAY,CAAC,KAAK;MAC3B;MACA,OAAO,YAAY,CAAC,IAAI;IAC1B,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAC5C,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAC5B;EACH;EAEA,OAAO,OAAO,CAAC,EAAE,CAAC;IAChB,GAAG,cAAc;IACjB,SAAS,CAAC,OAAO;MACf,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;MAC/B,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE;QACxC,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;MACjE;MACA,OAAO,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,CAC9C,MAAM,CAAC,OAAO,CAAE,OAAO,IAAK,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,EACjF,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAC5B,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAG,KAAK,IAAI;QAC5C,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB,EAAE;UACvC,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QAC1B;QACA,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,KAAK,CAAC,QAAQ,CAAC;UACjB,EAAE,EAAE,YAAY,CAAC,UAAU,EAAE;UAC7B,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS;UACrC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;SACrB,CAAC,CACH;MACH,CAAC,CAAC,CACH;IACH,CAAC;IACD,MAAM,CAAC,QAAQ;MACb,MAAM;QAAE,OAAO;QAAE;MAAO,CAAE,GAAG,QAAQ;MACrC,OAAO,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,KAAI;QAChD,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB,EAAE;UAClD,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjC,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;UACxD,OAAO,MAAM,CAAC,KAAK,CACjB,OAAO,CAAC,IAAI,CAAC;YACX,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK;YAC/B;WACD,CAAC,EACD,CAAC,IAAK,gBAAgB,CAAC,OAAO,CAAC,CACjC;QACH;QACA,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAClC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAC1C;MACH,CAAC,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,OAAO;MACjB,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,KAAI;QACxD,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB,EAAE;UAC1D,OAAO,MAAM,CAAC,QAAQ,CACpB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,EAC1D,2BAA2B,EAC3B,MAAM,MAAM,CAAC,IAAI,CAClB;QACH,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE;UACrD,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACpE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,EACrD,MAAM,CAAC,QAAQ,CAAC,2BAA2B,EAAE,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAC9E;QACH;QACA,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACpE,MAAM,CAAC,QAAQ,CAAC,2BAA2B,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,EAC/D,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAC1C;MACH,CAAC,CAAC;IACJ;GACD,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;AASA,OAAO,MAAM,QAAQ,gBAIjB,IAAI,CAAC;EACP,QAAQ,EAAE,MAAM,CAAC,WAAwC;EACzD,IAAI,EAAE,CAAC;IAAE;EAAO,CAAE,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC;EAAO,CAAE,CAAC,CAAC;EACxG,MAAM,EAAE,MAAM,MAAM,CAAC,IAAI;EACzB,IAAI,EAAE,MAAM,MAAM,CAAC,IAAI;EACvB,mBAAmB,EAAE,MAAM,MAAM,CAAC;CACnC,CAAC;AAEF;;;;;;;;AAQA,OAAO,MAAM,SAAS,gBAIlB,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,cAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;AAEnF,MAAM,SAAS,gBAIV,MAAM,CAAC,KAAK,CAAC,CAChB,yBAAyB,EACzB,WAAW,EACX,wBAAwB,CACzB,CAAC;AAEF;;;;;;;;AAQA,OAAM,MAAO,IAAK,sBAAQ,QAAQ,CAAC,IAAI,cACrC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,eAChB,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;EACjB,OAAO,EAAE;IACP,QAAQ,EAAE,QAAQ,CAAC,OAAO;IAC1B,SAAS,EAAE,MAAM,CAAC;GACnB;EACD,OAAO,EAAE,MAAM,CAAC,IAAI;EACpB,KAAK,EAAE;CACR,CAAC,eACF,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;EACjB,OAAO,EAAE;IACP,OAAO,EAAE,QAAQ,CAAC,cAAc;IAChC,SAAS,EAAE,MAAM,CAAC;GACnB;EACD,OAAO,EAAE,KAAK,CAAC,OAAO;EACtB,KAAK,EAAE;CACR,CAAC,eACF,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;EACjB,OAAO,EAAE;IACP,OAAO,EAAE,QAAQ,CAAC,cAAc;IAChC,SAAS,EAAE,MAAM,CAAC;GACnB;EACD,KAAK,EAAE,SAAS;EAChB,OAAO,EAAE,KAAK,CAAC,OAAO;EACtB,MAAM,EAAE;CACT,CAAC,eACF,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE;EACnB,OAAO,EAAE;IACP,QAAQ,eAAE,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/D,SAAS,EAAE,MAAM,CAAC;GACnB;EACD,KAAK,EAAE;CACR,CAAC,CACH;AAWD;;;;;;;;AAQA,OAAO,MAAM,aAAa,gBAItB,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;EAAE,UAAU,EAAE,SAAS;EAAE,cAAc,EAAE;AAAI,CAAE,CAAC;AAE1E;;;;;;;;;AASA,OAAO,MAAM,OAAO,gBAIhB,MAAM,CAAC,GAAG,CAAC,aAAS;EACtB,MAAM,cAAc,GAAG,OAAO,iBAAiB;EAC/C,MAAM,YAAY,GAAG,OAAO,SAAS,CAAC,SAAS;EAE/C,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC;IAChC,MAAM,EAAG,OAAsB,IAC7B,MAAM,CAAC,OAAO,CACZ,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAC3B,QAAQ,IACP,MAAM,CAAC,GAAG,CACR,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAClE,MAAM,KAAM;MAAE,MAAM;MAAE,QAAQ,EAAE,QAAQ,CAAC;IAAQ,CAAE,CAAC,CACtD,CACJ;IACH,cAAc,EAAE;GACjB,CAAC;EAEF,OAAO,OAAO,IAAI,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC,QAAQ;IACjC,IAAI,CAAC,OAAO;MACV,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CACrC,MAAM,CAAC,OAAO,CAAC,CAAC;QAAE;MAAM,CAAE,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,EAC7C,MAAM,CAAC,UAAU,CAAC,MAChB,MAAM,CAAC,OAAO,CACZ,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,EAClC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC;QAAE;MAAO,CAAE,CAAC,CAAC,CAChD,CACF,EACD,MAAM,CAAC,MAAM,CACd;IACH,CAAC;IACD,IAAI,CAAC;MAAE,OAAO;MAAE;IAAO,CAAE;MACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAA8B;MAClD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC;MAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB,EAAE;QACvC,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CACrC,MAAM,CAAC,OAAO,CAAC,CAAC;UAAE;QAAM,CAAE,KACxB,MAAM,CAAC,QAAQ,CAAC;UACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;UAC1B,SAAS,EAAE;SACZ,CAAC,CACH,EACD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC;UAAE;QAAO,CAAE,CAAC,CAAC,CAAC,CACzF;MACH;MACA;MACA;MACA,MAAM,aAAa,GAAI,MAAe,IACpC,WAAW,GACP,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC;QAAE;MAAO,CAAE,CAAC,CAAC,GAC/C,OAAO,CAAC,OAAO,CACf,IAAI,KAAK,CAAC,QAAQ,CAAC;QACjB,EAAE,EAAE,YAAY,CAAC,UAAU,EAAE;QAC7B,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS;QACrC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM;OACtB,CAAC,CACH;MACL,MAAM,gBAAgB,GAAI,KAAuB,IAC/C,OAAO,CAAC,OAAO,CACb,IAAI,KAAK,CAAC,QAAQ,CAAC;QACjB,EAAE,EAAE,YAAY,CAAC,UAAU,EAAE;QAC7B,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS;QACrC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;OACrB,CAAC,CACH;MACH,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC;MAC5D,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CACrC,MAAM,CAAC,OAAO,CAAC,CAAC;UAAE,MAAM;UAAE;QAAQ,CAAE,KAClC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;UAC9D,SAAS,EAAG,OAAO,IACjB,MAAM,CAAC,MAAM,CAAC;YACZ,OAAO;YACP,SAAS,EAAE;WACZ,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAE,KAAK,IACnB,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CACjE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EACtC,MAAM,CAAC,KAAK,CACb,CACF,EACD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAC/B,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC;YAAE;UAAO,CAAE,CAAC,CAAC,CAAC,EACxF,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAClC;UACH,SAAS,EAAE;SACZ,CAAC,CACH,EACD,MAAM,CAAC,MAAM,CACd;MACH;MACA,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CACrC,MAAM,CAAC,OAAO,CAAC,CAAC;QAAE,MAAM;QAAE;MAAQ,CAAE,KAClC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;QAC9D,SAAS,EAAG,OAAO,IACjB,MAAM,CAAC,MAAM,CAAC;UACZ,OAAO;UACP,SAAS,EAAE;SACZ,EAAE;UAAE,OAAO,EAAE;QAAI,CAAE,CAAC,CAAC,IAAI,CACxB,MAAM,CAAC,OAAO,CAAE,KAAK,IAAI;UACvB,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;UACtE,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAC3B,MAAM,CAAC,OAAO,CAAE,KAAK,IAAK,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EACtD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAC/B,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EACtC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAG,CAAC,IAAK,MAAM,CAAC,IAAI,CAAC,EAC3C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC;YAAE;UAAO,CAAE,CAAC,CAAC,CAAC,EACxF,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAClC;QACH,CAAC,CAAC,CACH;QACH,SAAS,EAAE;OACZ,CAAC,CACH,EACD,MAAM,CAAC,MAAM,CACd;IACH,CAAC;IACD,MAAM,CAAC;MAAE,OAAO;MAAE;IAAO,CAAE;MACzB,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QAC1B,OAAO,MAAM,CAAC,IAAI;MACpB;MACA,MAAM,GAAG,GAAG,OAAO,CAAC,GAA8B;MAClD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC;MAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ;MACjC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CACnD,MAAM,CAAC,OAAO,CAAC,CAAC;QAAE,MAAM;QAAE;MAAQ,CAAE,KAAI;QACtC,MAAM,MAAM,GACV,OAAO,CAAC,IAAI,KAAK,iBAAiB,GAC9B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,GACzD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAG,QAAQ,IACrC,MAAM,CAAC,MAAM,CAAC;UACZ,QAAQ;UACR,SAAS,EAAE;SACZ,CAAC,CAAC;MACP,CAAC,CAAC,EACF,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;MAAK,CAAE,CAAC,CAAC,CAAC,CACxG;MACD,OAAO,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM;IACrD,CAAC;IACD,mBAAmB,EAAG,OAAO,IAAK,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO;GACpE,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;AAQA,OAAO,MAAM,QAAQ,gBAIjB,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,cACrC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CACxC;AAED;;;;;;;;AAQA,OAAM,MAAO,iBAAkB,sBAAQ,OAAO,CAAC,OAAO,EAMnD,CAAC,0CAA0C,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Runners.js","names":[],"sources":["../../src/cluster/Runners.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Sharding.d.ts","sourceRoot":"","sources":["../../src/cluster/Sharding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Sharding.d.ts","sourceRoot":"","sources":["../../src/cluster/Sharding.ts"],"names":[],"mappings":"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"}
@@ -118,6 +118,13 @@ const make = /*#__PURE__*/Effect.gen(function* () {
118
118
  // the active shards are the ones that we have acquired the lock for
119
119
  const acquiredShards = MutableHashSet.empty();
120
120
  const activeShardsLatch = yield* Latch.make(false);
121
+ // open once shutdown starts handing every shard off
122
+ const handoffLatch = Latch.makeUnsafe(false);
123
+ // open once the handoff has released every shard lock
124
+ const handedOffLatch = Latch.makeUnsafe(false);
125
+ // serializes runner registration with unregistration, so a registration
126
+ // in flight cannot re-advertise a runner that is shutting down
127
+ const withRegistrationLock = Semaphore.makeUnsafe(1).withPermits(1);
121
128
  const events = yield* PubSub.unbounded();
122
129
  const getRegistrationEvents = Stream.fromPubSub(events);
123
130
  const isLocalRunner = address => {
@@ -131,6 +138,23 @@ const make = /*#__PURE__*/Effect.gen(function* () {
131
138
  function isEntityOnLocalShards(address) {
132
139
  return MutableHashSet.has(acquiredShards, address.shardId);
133
140
  }
141
+ function isAwaitingShardLock(shardId) {
142
+ return !MutableRef.get(isShutdown) && MutableHashSet.has(selfShards, shardId) && !MutableHashSet.has(acquiredShards, shardId);
143
+ }
144
+ // Requests for a shard assigned to this runner wait for its lock, for at most
145
+ // `shardLockExpiration`, instead of bouncing while the previous owner drains.
146
+ // Each notification opens the current latch and replaces it, so a waiter that
147
+ // checked its shard before a notification cannot miss it.
148
+ let shardLocksChanged = Latch.makeUnsafe(false);
149
+ const notifyShardLockWaiters = Effect.suspend(() => {
150
+ const latch = shardLocksChanged;
151
+ shardLocksChanged = Latch.makeUnsafe(false);
152
+ return latch.open;
153
+ });
154
+ const awaitShardLock = shardId => {
155
+ const loop = Effect.suspend(() => isAwaitingShardLock(shardId) ? Effect.andThen(shardLocksChanged.await, loop) : Effect.void);
156
+ return Effect.suspend(() => isAwaitingShardLock(shardId) ? Effect.asVoid(Effect.timeoutOption(loop, config.shardLockExpiration)) : Effect.void);
157
+ };
134
158
  yield* Scope.addFinalizer(shardingScope, Effect.logDebug("Shutdown complete").pipe(Effect.annotateLogs({
135
159
  module: "effect/cluster/Sharding"
136
160
  })));
@@ -141,6 +165,8 @@ const make = /*#__PURE__*/Effect.gen(function* () {
141
165
  // This should be shutdown last, when all entities have been shutdown, to
142
166
  // allow them to move to another runner.
143
167
  const releasingShards = MutableHashSet.empty();
168
+ // Hands every held shard off on shutdown, set when this is a runner
169
+ let handoff = Effect.void;
144
170
  // Shards whose entities must be force interrupted and locks fully released
145
171
  // before normal reacquisition.
146
172
  const forceReleasingShards = MutableHashSet.empty();
@@ -151,21 +177,40 @@ const make = /*#__PURE__*/Effect.gen(function* () {
151
177
  // the locks expire over time, so if this fails we ignore it
152
178
  return Effect.ignore(runnerStorage.releaseAll(selfAddress));
153
179
  });
154
- const releaseShardsMap = yield* FiberMap.make();
155
- let forcedShardReleaseRunning = false;
156
- // Interrupt the shards' entities, wait for lock health, run the storage
157
- // release, then clear the shards' bookkeeping.
158
- const runShardRelease = Effect.fnUntraced(function* (shardIds, force, release) {
180
+ // Shard releases fork into a child scope that closes after the shutdown
181
+ // handoff, as forks into the closing sharding scope never run.
182
+ const releaseScope = yield* Scope.fork(shardingScope);
183
+ // Interrupt the shards' entities on every entity manager that is open
184
+ const forkInterruptShards = Effect.fnUntraced(function* (shardIds, force) {
159
185
  const fibers = Arr.empty();
160
186
  for (const shardId of shardIds) {
161
187
  for (const state of entityManagers.values()) {
162
188
  if (state.status === "closed") continue;
163
- fibers.push(yield* Effect.forkScoped(state.manager.interruptShard(shardId, {
189
+ fibers.push(yield* Effect.forkIn(state.manager.interruptShard(shardId, {
164
190
  force
165
- })));
191
+ }), releaseScope, {
192
+ startImmediately: true
193
+ }));
166
194
  }
167
195
  }
168
- yield* Fiber.joinAll(fibers);
196
+ return fibers;
197
+ });
198
+ const releaseShardsMap = yield* FiberMap.make();
199
+ let forcedShardReleaseRunning = false;
200
+ // Called from the acquisition loop only, so no `acquire` is in flight
201
+ const checkHandedOff = () => {
202
+ if (handoffLatch.isOpen() && MutableHashSet.size(acquiredShards) === 0 && MutableHashSet.size(releasingShards) === 0 && !forcedShardReleasePending()) {
203
+ handedOffLatch.openUnsafe();
204
+ }
205
+ };
206
+ // Interrupt the shards' entities, wait for lock health, run the storage
207
+ // release, then clear the shards' bookkeeping.
208
+ const runShardRelease = Effect.fnUntraced(function* (shardIds, force, release) {
209
+ yield* Fiber.joinAll(yield* forkInterruptShards(shardIds, force));
210
+ // stop the singletons of shards that are no longer acquired, and wait
211
+ // for those on the released shards
212
+ yield* startSyncSingletons;
213
+ yield* awaitStoppingSingletons(shardIds);
169
214
  yield* shardLocksHealthyLatch.await;
170
215
  yield* release;
171
216
  for (const shardId of shardIds) {
@@ -179,6 +224,8 @@ const make = /*#__PURE__*/Effect.gen(function* () {
179
224
  interrupt: MutableRef.get(isShutdown)
180
225
  });
181
226
  }
227
+ // let the acquisition loop check whether the handoff has finished
228
+ if (handoffLatch.isOpen()) activeShardsLatch.openUnsafe();
182
229
  });
183
230
  const retryShardRelease = annotations => effect => effect.pipe(Effect.sandbox, Effect.tapError(cause => Effect.logDebug(`Could not release shards, retrying`, cause).pipe(Effect.annotateLogs({
184
231
  module: "effect/cluster/Sharding",
@@ -212,7 +259,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
212
259
  }), Effect.ensuring(Effect.sync(() => {
213
260
  forcedShardReleaseRunning = false;
214
261
  activeShardsLatch.openUnsafe();
215
- })), Effect.forkIn(shardingScope), Effect.asVoid);
262
+ })), Effect.forkIn(releaseScope), Effect.asVoid);
216
263
  });
217
264
  const releaseShards = Effect.gen(function* () {
218
265
  yield* releaseForcedShards;
@@ -227,9 +274,11 @@ const make = /*#__PURE__*/Effect.gen(function* () {
227
274
  while (true) {
228
275
  yield* activeShardsLatch.await;
229
276
  activeShardsLatch.closeUnsafe();
230
- // if a shard is no longer assigned to this runner, we release it
277
+ // if a shard is no longer assigned to this runner, or the runner is
278
+ // handing every shard off, we release it
279
+ const handingOff = handoffLatch.isOpen();
231
280
  for (const shardId of acquiredShards) {
232
- if (MutableHashSet.has(selfShards, shardId)) continue;
281
+ if (!handingOff && MutableHashSet.has(selfShards, shardId)) continue;
233
282
  MutableHashSet.remove(acquiredShards, shardId);
234
283
  MutableHashSet.add(releasingShards, shardId);
235
284
  }
@@ -237,6 +286,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
237
286
  yield* Effect.forkIn(syncSingletons, shardingScope);
238
287
  yield* releaseShards;
239
288
  }
289
+ checkHandedOff();
240
290
  if (!shardLocksHealthyLatch.isOpen()) {
241
291
  continue;
242
292
  }
@@ -245,6 +295,10 @@ const make = /*#__PURE__*/Effect.gen(function* () {
245
295
  if (forcedShardReleasePending()) {
246
296
  continue;
247
297
  }
298
+ // a runner that is shutting down takes no new shards
299
+ if (isShutdown.current) {
300
+ continue;
301
+ }
248
302
  // if a shard has been assigned to this runner, we acquire it
249
303
  const unacquiredShards = MutableHashSet.empty();
250
304
  for (const shardId of selfShards) {
@@ -272,12 +326,14 @@ const make = /*#__PURE__*/Effect.gen(function* () {
272
326
  MutableHashSet.add(acquiredShards, shardId);
273
327
  }
274
328
  if (acquired.length > 0) {
329
+ yield* notifyShardLockWaiters;
275
330
  yield* storageReadLatch.open;
276
331
  yield* Effect.forkIn(syncSingletons, shardingScope);
277
332
  // update metrics
278
333
  ClusterMetrics.shards.updateUnsafe(BigInt(MutableHashSet.size(acquiredShards)), Context.empty());
279
334
  }
280
- yield* Effect.sleep(1000);
335
+ // the shutdown handoff releases the shards acquired here without waiting
336
+ yield* Effect.raceFirst(Effect.sleep(1000), handoffLatch.await);
281
337
  activeShardsLatch.openUnsafe();
282
338
  }
283
339
  }).pipe(Effect.catchCause(cause => Effect.logWarning("Could not acquire/release shards", cause)), Effect.repeat(Schedule.spaced(config.entityMessagePollInterval)), Effect.annotateLogs({
@@ -297,20 +353,12 @@ const make = /*#__PURE__*/Effect.gen(function* () {
297
353
  ClusterMetrics.shards.updateUnsafe(BigInt(0), Context.empty());
298
354
  activeShardsLatch.openUnsafe();
299
355
  return Effect.gen(function* () {
356
+ yield* notifyShardLockWaiters;
300
357
  yield* Effect.logError("Shard lock storage is unhealthy", cause);
301
358
  yield* Effect.forkIn(syncSingletons, shardingScope, {
302
359
  startImmediately: true
303
360
  });
304
- for (const shardId of affectedShards) {
305
- for (const state of entityManagers.values()) {
306
- if (state.status === "closed") continue;
307
- yield* Effect.forkIn(state.manager.interruptShard(shardId, {
308
- force: true
309
- }), shardingScope, {
310
- startImmediately: true
311
- });
312
- }
313
- }
361
+ yield* forkInterruptShards(affectedShards, true);
314
362
  activeShardsLatch.openUnsafe();
315
363
  });
316
364
  });
@@ -355,6 +403,14 @@ const make = /*#__PURE__*/Effect.gen(function* () {
355
403
  yield* Effect.suspend(() => shardLocksHealthyLatch.isOpen() ? refreshShardLocks : probeShardLocks).pipe(Effect.repeat(Schedule.fixed(shardLockInterval)), Effect.forever, Effect.forkIn(shardingScope));
356
404
  // open the shard latch every poll interval
357
405
  yield* activeShardsLatch.open.pipe(Effect.delay(config.entityMessagePollInterval), Effect.forever, Effect.forkIn(shardingScope));
406
+ // Release every held shard through the per-shard path. Their entities are
407
+ // forced to stop, so the handoff does not wait out graceful termination.
408
+ // This is best effort: the wait is bounded, and if it times out, the final
409
+ // `releaseAll` attempts to release the remaining locks.
410
+ handoff = Effect.suspend(() => {
411
+ if (handoffLatch.openUnsafe()) activeShardsLatch.openUnsafe();
412
+ return forkInterruptShards([...acquiredShards, ...releasingShards], true);
413
+ }).pipe(Effect.andThen(Effect.timeoutOption(handedOffLatch.await, shardLockInterval)), Effect.asVoid);
358
414
  }
359
415
  // --- Storage inbox ---
360
416
  //
@@ -368,6 +424,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
368
424
  // & ack envelopes can still be processed.
369
425
  const storageReadLatch = yield* Latch.make(true);
370
426
  const openStorageReadLatch = constant(Effect.asVoid(storageReadLatch.open));
427
+ const pendingNotifications = new Map();
371
428
  const storageReadLock = Semaphore.makeUnsafe(1);
372
429
  const withStorageReadLock = storageReadLock.withPermits(1);
373
430
  // --- Entity residency ---
@@ -396,7 +453,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
396
453
  };
397
454
  if (storageEnabled && initialRunnerAddress) {
398
455
  const selfAddress = initialRunnerAddress;
399
- yield* Effect.gen(function* () {
456
+ const storageReadLoop = Effect.gen(function* () {
400
457
  yield* Effect.logDebug("Starting");
401
458
  yield* Effect.addFinalizer(() => Effect.logDebug("Shutting down"));
402
459
  let index = 0;
@@ -627,7 +684,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
627
684
  module: "effect/cluster/Sharding",
628
685
  fiber: "Storage read loop",
629
686
  runner: selfAddress
630
- }), Effect.forkIn(shardingScope));
687
+ }));
631
688
  // open the storage latch every poll interval
632
689
  yield* storageReadLatch.open.pipe(Effect.delay(config.entityMessagePollInterval), Effect.forever, Effect.forkIn(shardingScope));
633
690
  // Resume unprocessed messages for entities that reached a full mailbox.
@@ -715,37 +772,44 @@ const make = /*#__PURE__*/Effect.gen(function* () {
715
772
  runner: selfAddress,
716
773
  entity: address
717
774
  }), (effect, address) => Effect.ensuring(effect, Effect.sync(() => MutableHashMap.remove(entityResumptionState, address))), Effect.forkIn(shardingScope));
775
+ // fork after the state the loop reads has been initialized
776
+ yield* Effect.forkIn(storageReadLoop, shardingScope);
718
777
  }
719
778
  // --- Sending messages ---
720
- const sendLocal = message => Effect.suspend(function loop() {
779
+ const sendLocal = message => {
721
780
  const address = message.envelope.address;
722
- if (!isEntityOnLocalShards(address)) {
723
- return Effect.fail(new EntityNotAssignedToRunner({
724
- address
725
- }));
726
- }
727
- const state = entityManagers.get(address.entityType);
728
- if (!state) {
729
- return Effect.flatMap(waitForEntityManager(address.entityType), loop);
730
- } else if (state.status === "closed" || state.status === "closing" && message._tag === "IncomingRequest") {
731
- // if we are shutting down, we don't accept new requests
732
- return Effect.fail(new EntityNotAssignedToRunner({
733
- address
734
- }));
735
- }
736
- return message._tag === "IncomingRequest" || message._tag === "IncomingEnvelope" ? state.manager.send(message) : runnersService.sendLocal({
737
- message,
738
- send: state.manager.sendLocal,
739
- simulateRemoteSerialization: config.simulateRemoteSerialization
781
+ const isRequest = message._tag === "IncomingRequest" || message._tag === "OutgoingRequest";
782
+ const send = Effect.suspend(function loop() {
783
+ if (!isEntityOnLocalShards(address) && (
784
+ // Entities draining from a released shard still accept interrupts and acks
785
+ isRequest || !MutableHashSet.has(releasingShards, address.shardId))) {
786
+ return Effect.fail(new EntityNotAssignedToRunner({
787
+ address
788
+ }));
789
+ }
790
+ const state = entityManagers.get(address.entityType);
791
+ if (!state) {
792
+ return Effect.flatMap(waitForEntityManager(address.entityType), loop);
793
+ } else if (state.status === "closed" || state.status === "closing" && message._tag === "IncomingRequest") {
794
+ // if we are shutting down, we don't accept new requests
795
+ return Effect.fail(new EntityNotAssignedToRunner({
796
+ address
797
+ }));
798
+ }
799
+ return message._tag === "IncomingRequest" || message._tag === "IncomingEnvelope" ? state.manager.send(message) : runnersService.sendLocal({
800
+ message,
801
+ send: state.manager.sendLocal,
802
+ simulateRemoteSerialization: config.simulateRemoteSerialization
803
+ });
740
804
  });
741
- });
742
- const pendingNotifications = new Map();
805
+ return isRequest ? Effect.andThen(awaitShardLock(address.shardId), send) : send;
806
+ };
743
807
  const notifyLocal = (message, discard, options) => Effect.suspend(function loop() {
744
808
  const address = message.envelope.address;
745
809
  const state = entityManagers.get(address.entityType);
746
810
  if (!state) {
747
811
  return Effect.flatMap(waitForEntityManager(address.entityType), loop);
748
- } else if (state.status === "closed" || !isEntityOnLocalShards(address)) {
812
+ } else if (state.status === "closed") {
749
813
  return Effect.fail(new EntityNotAssignedToRunner({
750
814
  address
751
815
  }));
@@ -793,7 +857,10 @@ const make = /*#__PURE__*/Effect.gen(function* () {
793
857
  storageOnly: !isLocal
794
858
  });
795
859
  });
796
- function sendOutgoing(message, discard, retries) {
860
+ function sendOutgoing(message, discard, retries,
861
+ // The runner serving the request, for its interrupts and acks. Later
862
+ // attempts fall back to the current shard assignment.
863
+ runner) {
797
864
  const isPersisted = Context.get(message._tag === "OutgoingRequest" ? message.annotations : message.rpc.annotations, Persisted);
798
865
  const shouldFail = !discard && (message._tag === "OutgoingRequest" || message.envelope._tag === "AckChunk");
799
866
  const abandon = error => {
@@ -818,7 +885,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
818
885
  address
819
886
  }));
820
887
  }
821
- const maybeRunner = MutableHashMap.get(shardAssignments, address.shardId);
888
+ const maybeRunner = runner !== undefined ? Option.some(runner) : MutableHashMap.get(shardAssignments, address.shardId);
822
889
  const runnerIsLocal = Option.isSome(maybeRunner) && isLocalRunner(maybeRunner.value);
823
890
  if (isPersisted) {
824
891
  return runnerIsLocal ? notifyLocal(message, discard) : runnersService.notify({
@@ -830,6 +897,9 @@ const make = /*#__PURE__*/Effect.gen(function* () {
830
897
  return Effect.fail(new EntityNotAssignedToRunner({
831
898
  address
832
899
  }));
900
+ } else if (message._tag === "OutgoingRequest") {
901
+ const entry = clientRequests.get(message.envelope.requestId);
902
+ if (entry) entry.runner = maybeRunner.value;
833
903
  }
834
904
  return runnerIsLocal ? sendLocal(message) : discard ? runnersService.notify({
835
905
  address: maybeRunner,
@@ -886,9 +956,12 @@ const make = /*#__PURE__*/Effect.gen(function* () {
886
956
  while (true) {
887
957
  // Ensure the current runner is registered
888
958
  if (selfRunner && !isShutdown.current && !MutableHashMap.has(allRunners, selfRunner)) {
889
- yield* Effect.logDebug("Registering runner", selfRunner);
890
- const machineId = yield* withTimeout(runnerStorage.register(selfRunner, true));
891
- yield* snowflakeGen.setMachineId(machineId);
959
+ yield* withRegistrationLock(Effect.gen(function* () {
960
+ if (isShutdown.current) return;
961
+ yield* Effect.logDebug("Registering runner", selfRunner);
962
+ const machineId = yield* withTimeout(runnerStorage.register(selfRunner, true));
963
+ yield* snowflakeGen.setMachineId(machineId);
964
+ }));
892
965
  }
893
966
  const runners = yield* withTimeout(runnerStorage.getRunners);
894
967
  let changed = false;
@@ -957,6 +1030,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
957
1030
  });
958
1031
  yield* Effect.logDebug("New shard assignments", selfShards);
959
1032
  activeShardsLatch.openUnsafe();
1033
+ yield* notifyShardLockWaiters;
960
1034
  // update metrics
961
1035
  if (selfRunner) {
962
1036
  ClusterMetrics.runnersHealthy.updateUnsafe(BigInt(MutableHashSet.has(healthyRunners, selfRunner) ? 1 : 0), Context.empty());
@@ -1040,7 +1114,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
1040
1114
  replyId: entry.lastChunkId
1041
1115
  }),
1042
1116
  rpc: entry.rpc
1043
- }), false);
1117
+ }), false, undefined, entry.runner);
1044
1118
  }
1045
1119
  case "Interrupt":
1046
1120
  {
@@ -1066,7 +1140,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
1066
1140
  requestId
1067
1141
  }),
1068
1142
  rpc: entry.rpc
1069
- }), false, 3));
1143
+ }), false, 3, entry.runner));
1070
1144
  }
1071
1145
  }
1072
1146
  return Effect.void;
@@ -1139,6 +1213,41 @@ const make = /*#__PURE__*/Effect.gen(function* () {
1139
1213
  const singletons = new Map();
1140
1214
  const singletonFibers = yield* FiberMap.make();
1141
1215
  const withSingletonLock = Semaphore.makeUnsafe(1).withPermits(1);
1216
+ // Singletons that are stopping. They count as running, so they are not
1217
+ // restarted, and shard releases wait for them. Their teardown is awaited
1218
+ // without the singleton lock, as it can register or stop other singletons.
1219
+ const stoppingSingletons = MutableHashMap.empty();
1220
+ const isSingletonRegistered = address => {
1221
+ const map = singletons.get(address.shardId);
1222
+ return map !== undefined && MutableHashMap.has(map, address);
1223
+ };
1224
+ // Called with the singleton lock held. Starts stopping the singleton and
1225
+ // returns the wait for its teardown, to run without the lock.
1226
+ const stopSingletonUnsafe = (address, activeTeardown) => {
1227
+ const stopping = MutableHashMap.get(stoppingSingletons, address);
1228
+ if (Option.isSome(stopping)) return Fiber.join(stopping.value);
1229
+ const fiber = FiberMap.getUnsafe(singletonFibers, address);
1230
+ if (Option.isNone(fiber)) return Effect.void;
1231
+ const interrupt = Fiber.interrupt(fiber.value);
1232
+ const stop = Effect.runForkWith(services)(activeTeardown ? ActiveTeardown.aroundShard(address.shardId, interrupt) : interrupt);
1233
+ MutableHashMap.set(stoppingSingletons, address, stop);
1234
+ stop.addObserver(() => {
1235
+ MutableHashMap.remove(stoppingSingletons, address);
1236
+ // a registration made while the previous singleton was stopping
1237
+ if (isSingletonRegistered(address)) runFork(syncSingletons);
1238
+ });
1239
+ return Fiber.join(stop);
1240
+ };
1241
+ // Waits for the singletons of the given shards that are still stopping
1242
+ const awaitStoppingSingletons = shardIds => Effect.suspend(() => {
1243
+ const stops = Arr.empty();
1244
+ MutableHashMap.forEach(stoppingSingletons, (stop, address) => {
1245
+ if (shardIds.some(shardId => Equal.equals(shardId, address.shardId))) {
1246
+ stops.push(stop);
1247
+ }
1248
+ });
1249
+ return Fiber.joinAll(stops);
1250
+ });
1142
1251
  const registerSingleton = Effect.fnUntraced(function* (name, run, options) {
1143
1252
  const shardGroup = options?.shardGroup ?? "default";
1144
1253
  const address = new SingletonAddress({
@@ -1159,25 +1268,29 @@ const make = /*#__PURE__*/Effect.gen(function* () {
1159
1268
  yield* PubSub.publish(events, SingletonRegistered({
1160
1269
  address
1161
1270
  }));
1162
- // start if we are on the right shard
1163
- if (MutableHashSet.has(acquiredShards, address.shardId)) {
1271
+ // start if we are on the right shard, unless a previous registration of
1272
+ // this singleton is still stopping
1273
+ if (MutableHashSet.has(acquiredShards, address.shardId) && !MutableHashMap.has(stoppingSingletons, address)) {
1164
1274
  yield* Effect.logDebug("Starting singleton", address);
1165
1275
  yield* FiberMap.run(singletonFibers, address, wrappedRun);
1166
1276
  }
1167
- yield* Effect.addFinalizer(() => {
1168
- const map = singletons.get(address.shardId);
1169
- MutableHashMap.remove(map, address);
1170
- return FiberMap.remove(singletonFibers, address);
1171
- });
1277
+ yield* Effect.addFinalizer(() => withSingletonLock(Effect.sync(() => {
1278
+ MutableHashMap.remove(singletons.get(address.shardId), address);
1279
+ return stopSingletonUnsafe(address, false);
1280
+ })).pipe(Effect.flatten));
1172
1281
  }, withSingletonLock);
1173
- const syncSingletons = withSingletonLock(Effect.gen(function* () {
1282
+ // Starts and stops singletons to match the acquired shards, returning the
1283
+ // waits for the stopped singletons
1284
+ const startSyncSingletons = withSingletonLock(Effect.gen(function* () {
1285
+ const stops = Arr.empty();
1174
1286
  for (const [shardId, map] of singletons) {
1175
1287
  for (const [address, run] of map) {
1176
- const running = FiberMap.hasUnsafe(singletonFibers, address);
1288
+ const stopping = MutableHashMap.has(stoppingSingletons, address);
1289
+ const running = stopping || FiberMap.hasUnsafe(singletonFibers, address);
1177
1290
  const shouldBeRunning = MutableHashSet.has(acquiredShards, shardId);
1178
1291
  if (running && !shouldBeRunning) {
1179
- yield* Effect.logDebug("Stopping singleton", address);
1180
- yield* ActiveTeardown.aroundShard(address.shardId, FiberMap.remove(singletonFibers, address));
1292
+ if (!stopping) yield* Effect.logDebug("Stopping singleton", address);
1293
+ stops.push(stopSingletonUnsafe(address, true));
1181
1294
  } else if (!running && shouldBeRunning) {
1182
1295
  yield* Effect.logDebug("Starting singleton", address);
1183
1296
  yield* FiberMap.run(singletonFibers, address, run);
@@ -1185,6 +1298,12 @@ const make = /*#__PURE__*/Effect.gen(function* () {
1185
1298
  }
1186
1299
  }
1187
1300
  ClusterMetrics.singletons.updateUnsafe(BigInt(yield* FiberMap.size(singletonFibers)), Context.empty());
1301
+ return stops;
1302
+ }));
1303
+ const syncSingletons = Effect.flatMap(startSyncSingletons,
1304
+ // wait for the stopped singletons without the lock
1305
+ stops => Effect.all(stops, {
1306
+ discard: true
1188
1307
  }));
1189
1308
  // --- Entities ---
1190
1309
  const reaper = yield* EntityReaper;
@@ -1283,11 +1402,13 @@ const make = /*#__PURE__*/Effect.gen(function* () {
1283
1402
  }
1284
1403
  if (isShutdown.current) return;
1285
1404
  MutableRef.set(isShutdown, true);
1405
+ yield* notifyShardLockWaiters;
1286
1406
  if (selfRunner) {
1287
- yield* Effect.ignore(runnerStorage.unregister(selfRunner.address));
1407
+ yield* Effect.ignore(withRegistrationLock(runnerStorage.unregister(selfRunner.address)));
1288
1408
  }
1289
1409
  });
1290
- yield* Scope.addFinalizerExit(shardingScope, shutdown);
1410
+ // hand the shards off before the loops stop
1411
+ yield* Scope.addFinalizerExit(shardingScope, exit => Effect.andThen(shutdown(exit), handoff));
1291
1412
  const activeEntityCount = Effect.gen(function* () {
1292
1413
  let count = 0;
1293
1414
  for (const state of entityManagers.values()) {