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":"Sharding.js","names":[],"sources":["../../src/cluster/Sharding.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Sharding.js","names":[],"sources":["../../src/cluster/Sharding.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import * as Crypto from "../Crypto.ts";
2
2
  import * as Effect from "../Effect.ts";
3
3
  import * as Layer from "../Layer.ts";
4
+ import * as Migrator from "../sql/Migrator.ts";
4
5
  import * as SqlClient from "../sql/SqlClient.ts";
5
6
  import * as MessageStorage from "./MessageStorage.ts";
6
7
  import type { ShardingConfig } from "./ShardingConfig.ts";
@@ -45,38 +46,62 @@ export declare const make: (options?: {
45
46
  readonly prefix?: string | undefined;
46
47
  }) => Effect.Effect<MessageStorage.MessageStorage["Service"], never, SqlClient.SqlClient | Snowflake.Generator | Crypto.Crypto>;
47
48
  /**
48
- * Layer that provides SQL-backed `MessageStorage` using the default table prefix
49
- * and the default snowflake generator.
49
+ * Migration loader for the SQL message storage tables.
50
50
  *
51
- * **When to use**
51
+ * **Details**
52
52
  *
53
- * Use when a cluster should persist mailbox messages and replies in SQL using
54
- * the default `cluster` table prefix and the standard snowflake generator.
53
+ * History is recorded in `<prefix>_migrations`; the default
54
+ * prefix is `cluster`.
55
+ *
56
+ * @stability unstable
57
+ * @category migrations
58
+ * @since 4.1.0
59
+ */
60
+ export declare const migrations: (options?: {
61
+ readonly prefix?: string | undefined;
62
+ }) => Migrator.Loader;
63
+ /**
64
+ * Runs the SQL message storage migrations without providing storage.
55
65
  *
56
66
  * **Details**
57
67
  *
58
- * The layer runs the SQL migrations through `make`, provides `MessageStorage`,
59
- * and supplies `Snowflake.layerGenerator` internally. Callers still provide
60
- * `SqlClient`, `ShardingConfig`, and `Crypto.Crypto`, which is used to hash
61
- * message deduplication keys that would overflow the fixed-width
62
- * `message_id` column.
68
+ * Use an owner connection in a deploy step, then use `layerStorage` with a
69
+ * DML-only runtime connection. History is recorded in `<prefix>_migrations`.
70
+ * Migration errors become defects.
63
71
  *
64
- * **Gotchas**
72
+ * On PostgreSQL, use the role's `search_path` to select a schema. A
73
+ * schema-qualified prefix such as `app.cluster` produces an invalid index name.
65
74
  *
66
- * This layer always uses the `cluster` table prefix. Use `layerWith` before
67
- * deployment if you need a different stable prefix, because changing prefixes
68
- * later points the runtime at a different set of tables.
75
+ * @stability unstable
76
+ * @category layers
77
+ * @since 4.1.0
78
+ */
79
+ export declare const layerMigrations: (options: {
80
+ readonly prefix?: string | undefined;
81
+ }) => Layer.Layer<never, never, SqlClient.SqlClient>;
82
+ /**
83
+ * Provides SQL-backed `MessageStorage` without DDL or startup schema checks.
84
+ *
85
+ * **Details**
69
86
  *
70
- * @see {@link layerWith} for the same SQL storage layer with a custom table prefix
71
- * @see {@link make} for the lower-level service constructor that uses an existing `Snowflake.Generator`
87
+ * Run `layerMigrations` separately before using this layer.
88
+ * This layer supplies `Snowflake.layerGenerator` internally.
72
89
  *
73
90
  * @stability unstable
74
91
  * @category layers
75
- * @since 4.0.0
92
+ * @since 4.1.0
76
93
  */
77
- export declare const layer: Layer.Layer<MessageStorage.MessageStorage, never, SqlClient.SqlClient | ShardingConfig | Crypto.Crypto>;
94
+ export declare const layerStorage: (options: {
95
+ readonly prefix?: string | undefined;
96
+ }) => Layer.Layer<MessageStorage.MessageStorage, never, SqlClient.SqlClient | ShardingConfig | Crypto.Crypto>;
78
97
  /**
79
- * Layer that provides SQL-backed `MessageStorage` using a custom table prefix.
98
+ * Provides SQL-backed `MessageStorage` with a custom table prefix,
99
+ * running migrations first.
100
+ *
101
+ * **Details**
102
+ *
103
+ * Migration errors become defects. Use `layerMigrations` and `layerStorage`
104
+ * to migrate separately.
80
105
  *
81
106
  * @stability unstable
82
107
  * @category layers
@@ -85,4 +110,19 @@ export declare const layer: Layer.Layer<MessageStorage.MessageStorage, never, Sq
85
110
  export declare const layerWith: (options: {
86
111
  readonly prefix?: string | undefined;
87
112
  }) => Layer.Layer<MessageStorage.MessageStorage, never, SqlClient.SqlClient | ShardingConfig | Crypto.Crypto>;
113
+ /**
114
+ * Provides SQL-backed `MessageStorage` with the `cluster` table prefix,
115
+ * running migrations first and supplying `Snowflake.layerGenerator`.
116
+ *
117
+ * **Details**
118
+ *
119
+ * The connection needs DDL permissions. PostgreSQL takes an exclusive lock
120
+ * on the migration history table. Use `layerWith` for a custom prefix or
121
+ * `layerMigrations` and `layerStorage` to migrate separately.
122
+ *
123
+ * @stability unstable
124
+ * @category layers
125
+ * @since 4.0.0
126
+ */
127
+ export declare const layer: Layer.Layer<MessageStorage.MessageStorage, never, SqlClient.SqlClient | ShardingConfig | Crypto.Crypto>;
88
128
  //# sourceMappingURL=SqlMessageStorage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqlMessageStorage.d.ts","sourceRoot":"","sources":["../../src/cluster/SqlMessageStorage.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAKpC,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAOhD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAIrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAI3C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,KAAK,MAAM,CAAC,MAAM,CACjB,cAAc,CAAC,OAAO,EACtB,KAAK,EACL,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CA+sBf,CAAA;AAEtB;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,KAAK,MAAM,CAAC,MAAM,CACjB,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,EACxC,KAAK,EACL,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CACsB,CAAA;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,cAAc,CAAC,cAAc,EAC7B,KAAK,EACL,SAAS,CAAC,SAAS,GAAG,cAAc,GAAG,MAAM,CAAC,MAAM,CAGrD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,YAAa;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,KAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,GAAG,cAAc,GAAG,MAAM,CAAC,MAAM,CAGvG,CAAA"}
1
+ {"version":3,"file":"SqlMessageStorage.d.ts","sourceRoot":"","sources":["../../src/cluster/SqlMessageStorage.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAGpC,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAOhD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAIrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAI3C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,KAAK,MAAM,CAAC,MAAM,CACjB,cAAc,CAAC,OAAO,EACtB,KAAK,EACL,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CACsD,CAAA;AA+sB3F;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,KAAK,MAAM,CAAC,MAAM,CACjB,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,EACxC,KAAK,EACL,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CACsB,CAAA;AAEjF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,aAAc;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,KAAG,QAAQ,CAAC,MAoSZ,CAAA;AAUD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,YAAa;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,KAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,CAAuD,CAAA;AAExG;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,YAAa;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,KAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,GAAG,cAAc,GAAG,MAAM,CAAC,MAAM,CAMvG,CAAA;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,YAAa;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,KAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,GAAG,cAAc,GAAG,MAAM,CAAC,MAAM,CAGvG,CAAA;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,cAAc,CAAC,cAAc,EAC7B,KAAK,EACL,SAAS,CAAC,SAAS,GAAG,cAAc,GAAG,MAAM,CAAC,MAAM,CACrC,CAAA"}
@@ -8,6 +8,11 @@
8
8
  * storage constructor, layers, migrations, optional table prefixes, and the row
9
9
  * mapping needed by encoded message storage.
10
10
  *
11
+ * `layer`, `layerWith`, `make`, and `makeEncoded` run the migrations before
12
+ * building the storage. To run migrations with a different connection, such as
13
+ * a schema owner in a deploy step, use `layerMigrations` there and
14
+ * `layerStorage` in the runtime.
15
+ *
11
16
  * Request deduplication keys that exceed the 255-character `message_id`
12
17
  * column are hashed with the `Crypto` service before they are written, so
13
18
  * composed keys of any length are supported; shorter keys are stored as
@@ -23,7 +28,6 @@ import * as Effect from "../Effect.js";
23
28
  import * as Hex from "../encoding/Hex.js";
24
29
  import * as Layer from "../Layer.js";
25
30
  import * as Option from "../Option.js";
26
- import * as Schedule from "../Schedule.js";
27
31
  import * as Migrator from "../sql/Migrator.js";
28
32
  import * as SqlClient from "../sql/SqlClient.js";
29
33
  import { isSqlError } from "../sql/SqlError.js";
@@ -58,15 +62,12 @@ const withTracerDisabled = /*#__PURE__*/Effect.withTracerEnabled(false);
58
62
  * @category constructors
59
63
  * @since 4.0.0
60
64
  */
61
- export const makeEncoded = /*#__PURE__*/Effect.fnUntraced(function* (options) {
65
+ export const makeEncoded = options => Effect.andThen(runMessageMigrations(options), makeEncodedStorage(options));
66
+ const makeEncodedStorage = /*#__PURE__*/Effect.fnUntraced(function* (options) {
62
67
  const sql = (yield* SqlClient.SqlClient).withoutTransforms();
63
68
  const crypto = yield* Crypto.Crypto;
64
69
  const prefix = options?.prefix ?? "cluster";
65
70
  const table = name => `${prefix}_${name}`;
66
- yield* Effect.orDie(Migrator.make({})({
67
- loader: migrations(options),
68
- table: table("migrations")
69
- }));
70
71
  const messageKindAckChunk = sql.literal(String(messageKind.AckChunk));
71
72
  const messageKindInterrupt = sql.literal(String(messageKind.Interrupt));
72
73
  const replyKindWithExit = sql.literal(String(replyKind.WithExit));
@@ -573,52 +574,24 @@ export const makeEncoded = /*#__PURE__*/Effect.fnUntraced(function* (options) {
573
574
  */
574
575
  export const make = options => Effect.flatMap(makeEncoded(options), MessageStorage.makeEncoded);
575
576
  /**
576
- * Layer that provides SQL-backed `MessageStorage` using the default table prefix
577
- * and the default snowflake generator.
578
- *
579
- * **When to use**
580
- *
581
- * Use when a cluster should persist mailbox messages and replies in SQL using
582
- * the default `cluster` table prefix and the standard snowflake generator.
577
+ * Migration loader for the SQL message storage tables.
583
578
  *
584
579
  * **Details**
585
580
  *
586
- * The layer runs the SQL migrations through `make`, provides `MessageStorage`,
587
- * and supplies `Snowflake.layerGenerator` internally. Callers still provide
588
- * `SqlClient`, `ShardingConfig`, and `Crypto.Crypto`, which is used to hash
589
- * message deduplication keys that would overflow the fixed-width
590
- * `message_id` column.
591
- *
592
- * **Gotchas**
593
- *
594
- * This layer always uses the `cluster` table prefix. Use `layerWith` before
595
- * deployment if you need a different stable prefix, because changing prefixes
596
- * later points the runtime at a different set of tables.
597
- *
598
- * @see {@link layerWith} for the same SQL storage layer with a custom table prefix
599
- * @see {@link make} for the lower-level service constructor that uses an existing `Snowflake.Generator`
581
+ * History is recorded in `<prefix>_migrations`; the default
582
+ * prefix is `cluster`.
600
583
  *
601
584
  * @stability unstable
602
- * @category layers
603
- * @since 4.0.0
604
- */
605
- export const layer = /*#__PURE__*/Layer.effect(MessageStorage.MessageStorage, make()).pipe(/*#__PURE__*/Layer.provide(Snowflake.layerGenerator));
606
- /**
607
- * Layer that provides SQL-backed `MessageStorage` using a custom table prefix.
608
- *
609
- * @stability unstable
610
- * @category layers
611
- * @since 4.0.0
585
+ * @category migrations
586
+ * @since 4.1.0
612
587
  */
613
- export const layerWith = options => Layer.effect(MessageStorage.MessageStorage, make(options)).pipe(Layer.provide(Snowflake.layerGenerator));
614
- // -------------------------------------------------------------------------------------------------
615
- // internal
616
- // -------------------------------------------------------------------------------------------------
617
- const migrations = options => {
588
+ export const migrations = options => {
618
589
  const prefix = options?.prefix ?? "cluster";
619
590
  const table = name => `${prefix}_${name}`;
620
591
  const messagesTable = table("messages");
621
592
  const repliesTable = table("replies");
593
+ // The migrator serializes PostgreSQL DDL. Propagate errors: retrying in an
594
+ // aborted transaction cannot succeed.
622
595
  return Migrator.fromRecord({
623
596
  "0001_create_tables": Effect.gen(function* () {
624
597
  const sql = (yield* SqlClient.SqlClient).withoutTransforms();
@@ -698,7 +671,7 @@ const migrations = options => {
698
671
  deliver_at BIGINT,
699
672
  UNIQUE (message_id)
700
673
  )
701
- `.pipe(Effect.ignore),
674
+ `,
702
675
  orElse: () =>
703
676
  // sqlite
704
677
  sql`
@@ -754,12 +727,7 @@ const migrations = options => {
754
727
  CREATE INDEX IF NOT EXISTS ${sql(requestIdLookupIndex)}
755
728
  ON ${messagesTableSql} (request_id)
756
729
  `;
757
- }).pipe(sql.withTransaction, Effect.tapDefect(error => Effect.annotateLogs(Effect.logDebug("Failed to create indexes", error), {
758
- package: "@effect/cluster",
759
- module: "SqlMessageStorage"
760
- })), Effect.retry({
761
- schedule: Schedule.spaced(1000)
762
- })),
730
+ }),
763
731
  orElse: () =>
764
732
  // sqlite
765
733
  Effect.all([sql`
@@ -842,12 +810,7 @@ const migrations = options => {
842
810
  pg: () => sql`
843
811
  CREATE INDEX IF NOT EXISTS ${sql(replyLookupIndex)}
844
812
  ON ${repliesTableSql} (request_id, kind, acked);
845
- `.pipe(Effect.tapDefect(error => Effect.annotateLogs(Effect.logDebug("Failed to create indexes", error), {
846
- package: "@effect/cluster",
847
- module: "SqlMessageStorage"
848
- })), Effect.retry({
849
- schedule: Schedule.spaced(1000)
850
- })),
813
+ `,
851
814
  orElse: () =>
852
815
  // sqlite
853
816
  sql`
@@ -889,6 +852,72 @@ const migrations = options => {
889
852
  })
890
853
  });
891
854
  };
855
+ const runMessageMigrations = options => Migrator.make({})({
856
+ loader: migrations(options),
857
+ table: `${options?.prefix ?? "cluster"}_migrations`
858
+ }).pipe(Effect.asVoid, Effect.orDie);
859
+ /**
860
+ * Runs the SQL message storage migrations without providing storage.
861
+ *
862
+ * **Details**
863
+ *
864
+ * Use an owner connection in a deploy step, then use `layerStorage` with a
865
+ * DML-only runtime connection. History is recorded in `<prefix>_migrations`.
866
+ * Migration errors become defects.
867
+ *
868
+ * On PostgreSQL, use the role's `search_path` to select a schema. A
869
+ * schema-qualified prefix such as `app.cluster` produces an invalid index name.
870
+ *
871
+ * @stability unstable
872
+ * @category layers
873
+ * @since 4.1.0
874
+ */
875
+ export const layerMigrations = options => Layer.effectDiscard(runMessageMigrations(options));
876
+ /**
877
+ * Provides SQL-backed `MessageStorage` without DDL or startup schema checks.
878
+ *
879
+ * **Details**
880
+ *
881
+ * Run `layerMigrations` separately before using this layer.
882
+ * This layer supplies `Snowflake.layerGenerator` internally.
883
+ *
884
+ * @stability unstable
885
+ * @category layers
886
+ * @since 4.1.0
887
+ */
888
+ export const layerStorage = options => Layer.effect(MessageStorage.MessageStorage, Effect.flatMap(makeEncodedStorage(options), MessageStorage.makeEncoded)).pipe(Layer.provide(Snowflake.layerGenerator));
889
+ /**
890
+ * Provides SQL-backed `MessageStorage` with a custom table prefix,
891
+ * running migrations first.
892
+ *
893
+ * **Details**
894
+ *
895
+ * Migration errors become defects. Use `layerMigrations` and `layerStorage`
896
+ * to migrate separately.
897
+ *
898
+ * @stability unstable
899
+ * @category layers
900
+ * @since 4.0.0
901
+ */
902
+ export const layerWith = options => layerStorage(options).pipe(Layer.provide(layerMigrations(options)));
903
+ /**
904
+ * Provides SQL-backed `MessageStorage` with the `cluster` table prefix,
905
+ * running migrations first and supplying `Snowflake.layerGenerator`.
906
+ *
907
+ * **Details**
908
+ *
909
+ * The connection needs DDL permissions. PostgreSQL takes an exclusive lock
910
+ * on the migration history table. Use `layerWith` for a custom prefix or
911
+ * `layerMigrations` and `layerStorage` to migrate separately.
912
+ *
913
+ * @stability unstable
914
+ * @category layers
915
+ * @since 4.0.0
916
+ */
917
+ export const layer = /*#__PURE__*/layerWith({});
918
+ // -------------------------------------------------------------------------------------------------
919
+ // internal
920
+ // -------------------------------------------------------------------------------------------------
892
921
  const messageKind = {
893
922
  "Request": 0,
894
923
  "AckChunk": 1,