effect 4.0.6 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (978) hide show
  1. package/README.md +1 -1
  2. package/dist/Arbitrary.d.ts +10 -2
  3. package/dist/Arbitrary.d.ts.map +1 -1
  4. package/dist/Arbitrary.js +2 -1
  5. package/dist/Arbitrary.js.map +1 -1
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +3 -0
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/Channel.d.ts +12 -6
  10. package/dist/Channel.d.ts.map +1 -1
  11. package/dist/Channel.js +30 -9
  12. package/dist/Channel.js.map +1 -1
  13. package/dist/Config.d.ts +7 -1
  14. package/dist/Config.d.ts.map +1 -1
  15. package/dist/Config.js.map +1 -1
  16. package/dist/Context.d.ts +18 -1
  17. package/dist/Context.d.ts.map +1 -1
  18. package/dist/Context.js +27 -8
  19. package/dist/Context.js.map +1 -1
  20. package/dist/Cron.d.ts +81 -11
  21. package/dist/Cron.d.ts.map +1 -1
  22. package/dist/Cron.js +101 -26
  23. package/dist/Cron.js.map +1 -1
  24. package/dist/Data.d.ts +54 -235
  25. package/dist/Data.d.ts.map +1 -1
  26. package/dist/Data.js.map +1 -1
  27. package/dist/Duration.d.ts +78 -0
  28. package/dist/Duration.d.ts.map +1 -1
  29. package/dist/Duration.js +123 -0
  30. package/dist/Duration.js.map +1 -1
  31. package/dist/Effect.d.ts +165 -8
  32. package/dist/Effect.d.ts.map +1 -1
  33. package/dist/Effect.js +12 -2
  34. package/dist/Effect.js.map +1 -1
  35. package/dist/Equal.d.ts.map +1 -1
  36. package/dist/Equal.js +8 -1
  37. package/dist/Equal.js.map +1 -1
  38. package/dist/Exit.d.ts +3 -3
  39. package/dist/Exit.d.ts.map +1 -1
  40. package/dist/Exit.js.map +1 -1
  41. package/dist/FileSystem.d.ts +59 -4
  42. package/dist/FileSystem.d.ts.map +1 -1
  43. package/dist/FileSystem.js +9 -2
  44. package/dist/FileSystem.js.map +1 -1
  45. package/dist/Formatter.d.ts.map +1 -1
  46. package/dist/Formatter.js +27 -13
  47. package/dist/Formatter.js.map +1 -1
  48. package/dist/Glob.d.ts +165 -0
  49. package/dist/Glob.d.ts.map +1 -0
  50. package/dist/Glob.js +127 -0
  51. package/dist/Glob.js.map +1 -0
  52. package/dist/Hash.d.ts.map +1 -1
  53. package/dist/Hash.js +4 -1
  54. package/dist/Hash.js.map +1 -1
  55. package/dist/JsonPatch.js +4 -0
  56. package/dist/JsonPatch.js.map +1 -1
  57. package/dist/JsonSchema.d.ts.map +1 -1
  58. package/dist/JsonSchema.js +13 -40
  59. package/dist/JsonSchema.js.map +1 -1
  60. package/dist/Match.d.ts +86 -0
  61. package/dist/Match.d.ts.map +1 -1
  62. package/dist/Match.js +72 -0
  63. package/dist/Match.js.map +1 -1
  64. package/dist/Metric.d.ts +3 -3
  65. package/dist/MutableList.d.ts +5 -2
  66. package/dist/MutableList.d.ts.map +1 -1
  67. package/dist/MutableList.js +7 -5
  68. package/dist/MutableList.js.map +1 -1
  69. package/dist/MutableRef.d.ts.map +1 -1
  70. package/dist/MutableRef.js +7 -0
  71. package/dist/MutableRef.js.map +1 -1
  72. package/dist/PartitionedSemaphore.d.ts +2 -1
  73. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  74. package/dist/PartitionedSemaphore.js +22 -12
  75. package/dist/PartitionedSemaphore.js.map +1 -1
  76. package/dist/Pool.d.ts +51 -0
  77. package/dist/Pool.d.ts.map +1 -1
  78. package/dist/Pool.js +136 -36
  79. package/dist/Pool.js.map +1 -1
  80. package/dist/PubSub.d.ts.map +1 -1
  81. package/dist/PubSub.js +5 -6
  82. package/dist/PubSub.js.map +1 -1
  83. package/dist/Random.d.ts.map +1 -1
  84. package/dist/Random.js +3 -3
  85. package/dist/Random.js.map +1 -1
  86. package/dist/RcMap.d.ts.map +1 -1
  87. package/dist/RcMap.js +8 -2
  88. package/dist/RcMap.js.map +1 -1
  89. package/dist/Ref.d.ts.map +1 -1
  90. package/dist/Ref.js +8 -0
  91. package/dist/Ref.js.map +1 -1
  92. package/dist/Schedule.d.ts +18 -1
  93. package/dist/Schedule.d.ts.map +1 -1
  94. package/dist/Schedule.js +8 -3
  95. package/dist/Schedule.js.map +1 -1
  96. package/dist/Schema.d.ts +690 -49
  97. package/dist/Schema.d.ts.map +1 -1
  98. package/dist/Schema.js +687 -28
  99. package/dist/Schema.js.map +1 -1
  100. package/dist/SchemaAST.d.ts +4 -2
  101. package/dist/SchemaAST.d.ts.map +1 -1
  102. package/dist/SchemaAST.js +14 -17
  103. package/dist/SchemaAST.js.map +1 -1
  104. package/dist/SchemaGetter.d.ts +6 -1
  105. package/dist/SchemaGetter.d.ts.map +1 -1
  106. package/dist/SchemaGetter.js +22 -11
  107. package/dist/SchemaGetter.js.map +1 -1
  108. package/dist/SchemaParser.d.ts.map +1 -1
  109. package/dist/SchemaParser.js +48 -22
  110. package/dist/SchemaParser.js.map +1 -1
  111. package/dist/SchemaRepresentation.d.ts +33 -10
  112. package/dist/SchemaRepresentation.d.ts.map +1 -1
  113. package/dist/SchemaRepresentation.js +39 -13
  114. package/dist/SchemaRepresentation.js.map +1 -1
  115. package/dist/SchemaTransformation.d.ts +12 -4
  116. package/dist/SchemaTransformation.d.ts.map +1 -1
  117. package/dist/SchemaTransformation.js +15 -5
  118. package/dist/SchemaTransformation.js.map +1 -1
  119. package/dist/ScopedCache.d.ts.map +1 -1
  120. package/dist/ScopedCache.js +5 -7
  121. package/dist/ScopedCache.js.map +1 -1
  122. package/dist/Semaphore.d.ts +130 -0
  123. package/dist/Semaphore.d.ts.map +1 -1
  124. package/dist/Semaphore.js +94 -35
  125. package/dist/Semaphore.js.map +1 -1
  126. package/dist/Sink.d.ts.map +1 -1
  127. package/dist/Sink.js +7 -2
  128. package/dist/Sink.js.map +1 -1
  129. package/dist/Stream.d.ts +13 -4
  130. package/dist/Stream.d.ts.map +1 -1
  131. package/dist/Stream.js +31 -10
  132. package/dist/Stream.js.map +1 -1
  133. package/dist/String.d.ts +3 -0
  134. package/dist/String.d.ts.map +1 -1
  135. package/dist/String.js +3 -0
  136. package/dist/String.js.map +1 -1
  137. package/dist/Terminal.d.ts +18 -1
  138. package/dist/Terminal.d.ts.map +1 -1
  139. package/dist/Terminal.js +1 -1
  140. package/dist/Terminal.js.map +1 -1
  141. package/dist/Tracer.d.ts +11 -1
  142. package/dist/Tracer.d.ts.map +1 -1
  143. package/dist/Tracer.js +6 -1
  144. package/dist/Tracer.js.map +1 -1
  145. package/dist/ai/AiError.d.ts +43 -116
  146. package/dist/ai/AiError.d.ts.map +1 -1
  147. package/dist/ai/AiError.js +53 -72
  148. package/dist/ai/AiError.js.map +1 -1
  149. package/dist/ai/Decision.d.ts +196 -15
  150. package/dist/ai/Decision.d.ts.map +1 -1
  151. package/dist/ai/Decision.js +130 -0
  152. package/dist/ai/Decision.js.map +1 -1
  153. package/dist/ai/DecisionModel.d.ts +54 -13
  154. package/dist/ai/DecisionModel.d.ts.map +1 -1
  155. package/dist/ai/DecisionModel.js +123 -12
  156. package/dist/ai/DecisionModel.js.map +1 -1
  157. package/dist/ai/LanguageModel.d.ts.map +1 -1
  158. package/dist/ai/LanguageModel.js +9 -0
  159. package/dist/ai/LanguageModel.js.map +1 -1
  160. package/dist/ai/McpSchema.d.ts +110 -110
  161. package/dist/ai/McpSchema.d.ts.map +1 -1
  162. package/dist/ai/McpServer.d.ts +630 -29
  163. package/dist/ai/McpServer.d.ts.map +1 -1
  164. package/dist/ai/McpServer.js +583 -131
  165. package/dist/ai/McpServer.js.map +1 -1
  166. package/dist/ai/McpTest.d.ts +130 -0
  167. package/dist/ai/McpTest.d.ts.map +1 -0
  168. package/dist/ai/McpTest.js +237 -0
  169. package/dist/ai/McpTest.js.map +1 -0
  170. package/dist/ai/Prompt.d.ts +52 -0
  171. package/dist/ai/Prompt.d.ts.map +1 -1
  172. package/dist/ai/Prompt.js +38 -0
  173. package/dist/ai/Prompt.js.map +1 -1
  174. package/dist/ai/Response.d.ts +17 -28
  175. package/dist/ai/Response.d.ts.map +1 -1
  176. package/dist/ai/Response.js +5 -10
  177. package/dist/ai/Response.js.map +1 -1
  178. package/dist/ai/Tool.d.ts +43 -1
  179. package/dist/ai/Tool.d.ts.map +1 -1
  180. package/dist/ai/Tool.js +5 -2
  181. package/dist/ai/Tool.js.map +1 -1
  182. package/dist/ai/Toolkit.d.ts.map +1 -1
  183. package/dist/ai/Toolkit.js +8 -1
  184. package/dist/ai/Toolkit.js.map +1 -1
  185. package/dist/ai/index.d.ts +5 -0
  186. package/dist/ai/index.d.ts.map +1 -1
  187. package/dist/ai/index.js +5 -0
  188. package/dist/ai/index.js.map +1 -1
  189. package/dist/ai/internal/mcpCore.js +17 -12
  190. package/dist/ai/internal/mcpCore.js.map +1 -1
  191. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +4 -5
  192. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  193. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +4 -5
  194. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  195. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +4 -5
  196. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  197. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +4 -5
  198. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  199. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +18 -10
  200. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  201. package/dist/ai/internal/mcpProtocol.js +13 -0
  202. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  203. package/dist/ai/internal/mcpRuntime.js +5 -3
  204. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  205. package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
  206. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  207. package/dist/cli/Argument.d.ts +21 -0
  208. package/dist/cli/Argument.d.ts.map +1 -1
  209. package/dist/cli/Argument.js +7 -0
  210. package/dist/cli/Argument.js.map +1 -1
  211. package/dist/cli/CliError.d.ts +78 -0
  212. package/dist/cli/CliError.d.ts.map +1 -1
  213. package/dist/cli/CliError.js +65 -3
  214. package/dist/cli/CliError.js.map +1 -1
  215. package/dist/cli/CliOutput.d.ts +220 -7
  216. package/dist/cli/CliOutput.d.ts.map +1 -1
  217. package/dist/cli/CliOutput.js +156 -43
  218. package/dist/cli/CliOutput.js.map +1 -1
  219. package/dist/cli/Command.d.ts +47 -16
  220. package/dist/cli/Command.d.ts.map +1 -1
  221. package/dist/cli/Command.js +67 -29
  222. package/dist/cli/Command.js.map +1 -1
  223. package/dist/cli/Completions.d.ts +58 -0
  224. package/dist/cli/Completions.d.ts.map +1 -1
  225. package/dist/cli/Completions.js +49 -9
  226. package/dist/cli/Completions.js.map +1 -1
  227. package/dist/cli/Flag.d.ts +122 -0
  228. package/dist/cli/Flag.d.ts.map +1 -1
  229. package/dist/cli/Flag.js +42 -0
  230. package/dist/cli/Flag.js.map +1 -1
  231. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  232. package/dist/cli/GlobalFlag.js +15 -7
  233. package/dist/cli/GlobalFlag.js.map +1 -1
  234. package/dist/cli/HelpDoc.d.ts +15 -1
  235. package/dist/cli/HelpDoc.d.ts.map +1 -1
  236. package/dist/cli/Param.d.ts +15 -0
  237. package/dist/cli/Param.d.ts.map +1 -1
  238. package/dist/cli/Param.js +23 -2
  239. package/dist/cli/Param.js.map +1 -1
  240. package/dist/cli/Primitive.d.ts +14 -0
  241. package/dist/cli/Primitive.d.ts.map +1 -1
  242. package/dist/cli/Primitive.js +15 -1
  243. package/dist/cli/Primitive.js.map +1 -1
  244. package/dist/cli/Prompt.d.ts +1 -0
  245. package/dist/cli/Prompt.d.ts.map +1 -1
  246. package/dist/cli/Prompt.js +1 -0
  247. package/dist/cli/Prompt.js.map +1 -1
  248. package/dist/cli/TerminalCapabilities.d.ts +3 -2
  249. package/dist/cli/TerminalCapabilities.d.ts.map +1 -1
  250. package/dist/cli/TerminalCapabilities.js +3 -1
  251. package/dist/cli/TerminalCapabilities.js.map +1 -1
  252. package/dist/cli/internal/completions/bash.js +73 -27
  253. package/dist/cli/internal/completions/bash.js.map +1 -1
  254. package/dist/cli/internal/help.d.ts.map +1 -1
  255. package/dist/cli/internal/help.js +17 -10
  256. package/dist/cli/internal/help.js.map +1 -1
  257. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  258. package/dist/cluster/ClusterWorkflowEngine.js +45 -10
  259. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  260. package/dist/cluster/MessageStorage.d.ts +23 -45
  261. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  262. package/dist/cluster/MessageStorage.js +6 -7
  263. package/dist/cluster/MessageStorage.js.map +1 -1
  264. package/dist/cluster/Sharding.d.ts.map +1 -1
  265. package/dist/cluster/Sharding.js +151 -49
  266. package/dist/cluster/Sharding.js.map +1 -1
  267. package/dist/cluster/ShardingConfig.d.ts +76 -0
  268. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  269. package/dist/cluster/ShardingConfig.js +4 -0
  270. package/dist/cluster/ShardingConfig.js.map +1 -1
  271. package/dist/cluster/SingleRunner.d.ts +3 -3
  272. package/dist/cluster/SingleRunner.d.ts.map +1 -1
  273. package/dist/cluster/SingleRunner.js +1 -1
  274. package/dist/cluster/Snowflake.d.ts.map +1 -1
  275. package/dist/cluster/Snowflake.js +3 -7
  276. package/dist/cluster/Snowflake.js.map +1 -1
  277. package/dist/cluster/SqlMessageStorage.d.ts +37 -6
  278. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  279. package/dist/cluster/SqlMessageStorage.js +34 -7
  280. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  281. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  282. package/dist/cluster/SqlRunnerStorage.js +109 -46
  283. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  284. package/dist/cluster/internal/entityManager.js +54 -20
  285. package/dist/cluster/internal/entityManager.js.map +1 -1
  286. package/dist/crypto/Aead.d.ts +322 -0
  287. package/dist/crypto/Aead.d.ts.map +1 -0
  288. package/dist/crypto/Aead.js +331 -0
  289. package/dist/crypto/Aead.js.map +1 -0
  290. package/dist/crypto/Cipher.d.ts +235 -0
  291. package/dist/crypto/Cipher.d.ts.map +1 -0
  292. package/dist/crypto/Cipher.js +233 -0
  293. package/dist/crypto/Cipher.js.map +1 -0
  294. package/dist/crypto/CryptoError.d.ts +212 -0
  295. package/dist/crypto/CryptoError.d.ts.map +1 -0
  296. package/dist/crypto/CryptoError.js +202 -0
  297. package/dist/crypto/CryptoError.js.map +1 -0
  298. package/dist/crypto/Digest.d.ts +143 -0
  299. package/dist/crypto/Digest.d.ts.map +1 -0
  300. package/dist/crypto/Digest.js +146 -0
  301. package/dist/crypto/Digest.js.map +1 -0
  302. package/dist/crypto/Kdf.d.ts +220 -0
  303. package/dist/crypto/Kdf.d.ts.map +1 -0
  304. package/dist/crypto/Kdf.js +212 -0
  305. package/dist/crypto/Kdf.js.map +1 -0
  306. package/dist/crypto/KeyAgreement.d.ts +323 -0
  307. package/dist/crypto/KeyAgreement.d.ts.map +1 -0
  308. package/dist/crypto/KeyAgreement.js +303 -0
  309. package/dist/crypto/KeyAgreement.js.map +1 -0
  310. package/dist/crypto/KeyFormat.d.ts +309 -0
  311. package/dist/crypto/KeyFormat.d.ts.map +1 -0
  312. package/dist/crypto/KeyFormat.js +556 -0
  313. package/dist/crypto/KeyFormat.js.map +1 -0
  314. package/dist/crypto/KeyWrap.d.ts +389 -0
  315. package/dist/crypto/KeyWrap.d.ts.map +1 -0
  316. package/dist/crypto/KeyWrap.js +381 -0
  317. package/dist/crypto/KeyWrap.js.map +1 -0
  318. package/dist/crypto/Mac.d.ts +277 -0
  319. package/dist/crypto/Mac.d.ts.map +1 -0
  320. package/dist/crypto/Mac.js +288 -0
  321. package/dist/crypto/Mac.js.map +1 -0
  322. package/dist/crypto/SecureRandom.d.ts +340 -0
  323. package/dist/crypto/SecureRandom.d.ts.map +1 -0
  324. package/dist/crypto/SecureRandom.js +257 -0
  325. package/dist/crypto/SecureRandom.js.map +1 -0
  326. package/dist/crypto/Signature.d.ts +448 -0
  327. package/dist/crypto/Signature.d.ts.map +1 -0
  328. package/dist/crypto/Signature.js +484 -0
  329. package/dist/crypto/Signature.js.map +1 -0
  330. package/dist/crypto/WebCrypto.d.ts +61 -0
  331. package/dist/crypto/WebCrypto.d.ts.map +1 -0
  332. package/dist/crypto/WebCrypto.js +63 -0
  333. package/dist/crypto/WebCrypto.js.map +1 -0
  334. package/dist/crypto/index.d.ts +65 -0
  335. package/dist/crypto/index.d.ts.map +1 -0
  336. package/dist/crypto/index.js +66 -0
  337. package/dist/crypto/index.js.map +1 -0
  338. package/dist/crypto/internal/asymmetric.d.ts +2 -0
  339. package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
  340. package/dist/crypto/internal/asymmetric.js +210 -0
  341. package/dist/crypto/internal/asymmetric.js.map +1 -0
  342. package/dist/crypto/internal/chacha.d.ts +46 -0
  343. package/dist/crypto/internal/chacha.d.ts.map +1 -0
  344. package/dist/crypto/internal/chacha.js +885 -0
  345. package/dist/crypto/internal/chacha.js.map +1 -0
  346. package/dist/crypto/internal/der.d.ts +6 -0
  347. package/dist/crypto/internal/der.d.ts.map +1 -0
  348. package/dist/crypto/internal/der.js +86 -0
  349. package/dist/crypto/internal/der.js.map +1 -0
  350. package/dist/crypto/internal/digest.d.ts +2 -0
  351. package/dist/crypto/internal/digest.d.ts.map +1 -0
  352. package/dist/crypto/internal/digest.js +15 -0
  353. package/dist/crypto/internal/digest.js.map +1 -0
  354. package/dist/crypto/internal/key.d.ts +2 -0
  355. package/dist/crypto/internal/key.d.ts.map +1 -0
  356. package/dist/crypto/internal/key.js +170 -0
  357. package/dist/crypto/internal/key.js.map +1 -0
  358. package/dist/crypto/internal/md5.d.ts +39 -0
  359. package/dist/crypto/internal/md5.d.ts.map +1 -0
  360. package/dist/crypto/internal/md5.js +179 -0
  361. package/dist/crypto/internal/md5.js.map +1 -0
  362. package/dist/crypto/internal/webCrypto.d.ts +2 -0
  363. package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
  364. package/dist/crypto/internal/webCrypto.js +111 -0
  365. package/dist/crypto/internal/webCrypto.js.map +1 -0
  366. package/dist/devtools/DevToolsClient.d.ts.map +1 -1
  367. package/dist/devtools/DevToolsClient.js +2 -0
  368. package/dist/devtools/DevToolsClient.js.map +1 -1
  369. package/dist/encoding/Base64.js +36 -0
  370. package/dist/encoding/Base64.js.map +1 -1
  371. package/dist/encoding/Base64Url.d.ts.map +1 -1
  372. package/dist/encoding/Base64Url.js +3 -2
  373. package/dist/encoding/Base64Url.js.map +1 -1
  374. package/dist/encoding/Csv.d.ts +608 -0
  375. package/dist/encoding/Csv.d.ts.map +1 -0
  376. package/dist/encoding/Csv.js +718 -0
  377. package/dist/encoding/Csv.js.map +1 -0
  378. package/dist/encoding/Hex.d.ts +3 -2
  379. package/dist/encoding/Hex.d.ts.map +1 -1
  380. package/dist/encoding/Hex.js +3 -2
  381. package/dist/encoding/Hex.js.map +1 -1
  382. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  383. package/dist/encoding/SchemaBinary.js +42 -4
  384. package/dist/encoding/SchemaBinary.js.map +1 -1
  385. package/dist/encoding/Sse.d.ts.map +1 -1
  386. package/dist/encoding/Sse.js +3 -3
  387. package/dist/encoding/Sse.js.map +1 -1
  388. package/dist/encoding/Toml.d.ts +17 -3
  389. package/dist/encoding/Toml.d.ts.map +1 -1
  390. package/dist/encoding/Toml.js +124 -31
  391. package/dist/encoding/Toml.js.map +1 -1
  392. package/dist/encoding/Yaml.d.ts +8 -1
  393. package/dist/encoding/Yaml.d.ts.map +1 -1
  394. package/dist/encoding/Yaml.js +54 -18
  395. package/dist/encoding/Yaml.js.map +1 -1
  396. package/dist/encoding/index.d.ts +5 -0
  397. package/dist/encoding/index.d.ts.map +1 -1
  398. package/dist/encoding/index.js +5 -0
  399. package/dist/encoding/index.js.map +1 -1
  400. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  401. package/dist/eventlog/EventJournal.js +6 -3
  402. package/dist/eventlog/EventJournal.js.map +1 -1
  403. package/dist/eventlog/EventLog.d.ts +119 -4
  404. package/dist/eventlog/EventLog.d.ts.map +1 -1
  405. package/dist/eventlog/EventLog.js +200 -12
  406. package/dist/eventlog/EventLog.js.map +1 -1
  407. package/dist/eventlog/EventLogEncryption.d.ts +41 -4
  408. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  409. package/dist/eventlog/EventLogEncryption.js +83 -64
  410. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  411. package/dist/eventlog/EventLogMessage.d.ts +279 -0
  412. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  413. package/dist/eventlog/EventLogMessage.js +217 -1
  414. package/dist/eventlog/EventLogMessage.js.map +1 -1
  415. package/dist/eventlog/EventLogRemote.d.ts +200 -28
  416. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  417. package/dist/eventlog/EventLogRemote.js +186 -16
  418. package/dist/eventlog/EventLogRemote.js.map +1 -1
  419. package/dist/eventlog/EventLogServer.d.ts +3 -0
  420. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  421. package/dist/eventlog/EventLogServer.js +18 -10
  422. package/dist/eventlog/EventLogServer.js.map +1 -1
  423. package/dist/eventlog/EventLogServerEncrypted.d.ts +326 -5
  424. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  425. package/dist/eventlog/EventLogServerEncrypted.js +769 -14
  426. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  427. package/dist/eventlog/EventLogSessionAuth.d.ts +5 -3
  428. package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  429. package/dist/eventlog/EventLogSessionAuth.js +41 -64
  430. package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
  431. package/dist/eventlog/EventRow.d.ts +4 -0
  432. package/dist/eventlog/EventRow.d.ts.map +1 -1
  433. package/dist/eventlog/EventRow.js +12 -2
  434. package/dist/eventlog/EventRow.js.map +1 -1
  435. package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
  436. package/dist/eventlog/SqlEventJournal.js +47 -27
  437. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  438. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
  439. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  440. package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
  441. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  442. package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
  443. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  444. package/dist/eventlog/internal/batches.d.ts +12 -0
  445. package/dist/eventlog/internal/batches.d.ts.map +1 -0
  446. package/dist/eventlog/internal/batches.js +26 -0
  447. package/dist/eventlog/internal/batches.js.map +1 -0
  448. package/dist/eventlog/internal/compaction.d.ts +38 -0
  449. package/dist/eventlog/internal/compaction.d.ts.map +1 -0
  450. package/dist/eventlog/internal/compaction.js +33 -0
  451. package/dist/eventlog/internal/compaction.js.map +1 -0
  452. package/dist/eventlog/internal/conflicts.d.ts +0 -1
  453. package/dist/eventlog/internal/conflicts.d.ts.map +1 -1
  454. package/dist/eventlog/internal/conflicts.js +0 -3
  455. package/dist/eventlog/internal/conflicts.js.map +1 -1
  456. package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
  457. package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  458. package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
  459. package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
  460. package/dist/eventlog/internal/remoteCompaction.js +76 -0
  461. package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
  462. package/dist/http/Cookies.d.ts +172 -0
  463. package/dist/http/Cookies.d.ts.map +1 -1
  464. package/dist/http/Cookies.js +153 -10
  465. package/dist/http/Cookies.js.map +1 -1
  466. package/dist/http/FetchHttpClient.d.ts +26 -2
  467. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  468. package/dist/http/FetchHttpClient.js +78 -15
  469. package/dist/http/FetchHttpClient.js.map +1 -1
  470. package/dist/http/HttpClient.d.ts +502 -8
  471. package/dist/http/HttpClient.d.ts.map +1 -1
  472. package/dist/http/HttpClient.js +296 -12
  473. package/dist/http/HttpClient.js.map +1 -1
  474. package/dist/http/HttpClientError.d.ts +8 -1
  475. package/dist/http/HttpClientError.d.ts.map +1 -1
  476. package/dist/http/HttpClientError.js +37 -1
  477. package/dist/http/HttpClientError.js.map +1 -1
  478. package/dist/http/HttpClientRequest.d.ts +9 -5
  479. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  480. package/dist/http/HttpClientRequest.js +3 -4
  481. package/dist/http/HttpClientRequest.js.map +1 -1
  482. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  483. package/dist/http/HttpClientResponse.js +3 -2
  484. package/dist/http/HttpClientResponse.js.map +1 -1
  485. package/dist/http/HttpMethod.d.ts +7 -1
  486. package/dist/http/HttpMethod.d.ts.map +1 -1
  487. package/dist/http/HttpMethod.js +3 -8
  488. package/dist/http/HttpMethod.js.map +1 -1
  489. package/dist/http/HttpMiddleware.d.ts +1 -1
  490. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  491. package/dist/http/HttpMiddleware.js +14 -16
  492. package/dist/http/HttpMiddleware.js.map +1 -1
  493. package/dist/http/HttpRouter.d.ts.map +1 -1
  494. package/dist/http/HttpRouter.js +2 -1
  495. package/dist/http/HttpRouter.js.map +1 -1
  496. package/dist/http/HttpServerError.js +2 -2
  497. package/dist/http/HttpServerError.js.map +1 -1
  498. package/dist/http/HttpServerRequest.d.ts +11 -3
  499. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  500. package/dist/http/HttpServerRequest.js +77 -25
  501. package/dist/http/HttpServerRequest.js.map +1 -1
  502. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  503. package/dist/http/HttpServerResponse.js +3 -2
  504. package/dist/http/HttpServerResponse.js.map +1 -1
  505. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  506. package/dist/http/HttpStaticServer.js +48 -21
  507. package/dist/http/HttpStaticServer.js.map +1 -1
  508. package/dist/http/HttpTraceContext.d.ts +2 -1
  509. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  510. package/dist/http/HttpTraceContext.js +7 -5
  511. package/dist/http/HttpTraceContext.js.map +1 -1
  512. package/dist/http/MultipartParser/internal/contentType.js +3 -3
  513. package/dist/http/ProblemDetails.d.ts +96 -0
  514. package/dist/http/ProblemDetails.d.ts.map +1 -0
  515. package/dist/http/ProblemDetails.js +98 -0
  516. package/dist/http/ProblemDetails.js.map +1 -0
  517. package/dist/http/UrlParams.d.ts +3 -1
  518. package/dist/http/UrlParams.d.ts.map +1 -1
  519. package/dist/http/UrlParams.js +4 -2
  520. package/dist/http/UrlParams.js.map +1 -1
  521. package/dist/http/index.d.ts +5 -0
  522. package/dist/http/index.d.ts.map +1 -1
  523. package/dist/http/index.js +5 -0
  524. package/dist/http/index.js.map +1 -1
  525. package/dist/http/internal/compression.js +4 -5
  526. package/dist/http/internal/compression.js.map +1 -1
  527. package/dist/http/internal/decompression.js +6 -2
  528. package/dist/http/internal/decompression.js.map +1 -1
  529. package/dist/http/internal/httpBody.js +8 -1
  530. package/dist/http/internal/httpBody.js.map +1 -1
  531. package/dist/http/internal/urlParams.js +33 -0
  532. package/dist/http/internal/urlParams.js.map +1 -1
  533. package/dist/http-api/HttpApi.d.ts +3 -6
  534. package/dist/http-api/HttpApi.d.ts.map +1 -1
  535. package/dist/http-api/HttpApi.js +3 -6
  536. package/dist/http-api/HttpApi.js.map +1 -1
  537. package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
  538. package/dist/http-api/HttpApiBuilder.js +43 -13
  539. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  540. package/dist/http-api/HttpApiClient.d.ts +140 -7
  541. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  542. package/dist/http-api/HttpApiClient.js +193 -44
  543. package/dist/http-api/HttpApiClient.js.map +1 -1
  544. package/dist/http-api/HttpApiEndpoint.d.ts +24 -7
  545. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  546. package/dist/http-api/HttpApiEndpoint.js +123 -32
  547. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  548. package/dist/http-api/HttpApiError.d.ts +185 -13
  549. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  550. package/dist/http-api/HttpApiError.js +128 -0
  551. package/dist/http-api/HttpApiError.js.map +1 -1
  552. package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
  553. package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
  554. package/dist/http-api/HttpApiMiddleware.js +85 -1
  555. package/dist/http-api/HttpApiMiddleware.js.map +1 -1
  556. package/dist/http-api/HttpApiSchema.d.ts +142 -33
  557. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  558. package/dist/http-api/HttpApiSchema.js +123 -59
  559. package/dist/http-api/HttpApiSchema.js.map +1 -1
  560. package/dist/http-api/HttpApiTest.d.ts.map +1 -1
  561. package/dist/http-api/HttpApiTest.js +3 -2
  562. package/dist/http-api/HttpApiTest.js.map +1 -1
  563. package/dist/http-api/OpenApi.d.ts.map +1 -1
  564. package/dist/http-api/OpenApi.js +25 -16
  565. package/dist/http-api/OpenApi.js.map +1 -1
  566. package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
  567. package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
  568. package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
  569. package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
  570. package/dist/index.d.ts +5 -5
  571. package/dist/index.d.ts.map +1 -1
  572. package/dist/index.js +5 -5
  573. package/dist/index.js.map +1 -1
  574. package/dist/internal/arbitrary/runner.d.ts.map +1 -1
  575. package/dist/internal/arbitrary/runner.js +120 -44
  576. package/dist/internal/arbitrary/runner.js.map +1 -1
  577. package/dist/internal/core.js +2 -0
  578. package/dist/internal/core.js.map +1 -1
  579. package/dist/internal/effect.js +46 -27
  580. package/dist/internal/effect.js.map +1 -1
  581. package/dist/internal/equal.js +14 -0
  582. package/dist/internal/equal.js.map +1 -1
  583. package/dist/internal/glob.d.ts +2 -0
  584. package/dist/internal/glob.d.ts.map +1 -0
  585. package/dist/internal/glob.js +630 -0
  586. package/dist/internal/glob.js.map +1 -0
  587. package/dist/internal/jsonSchema.d.ts +2 -0
  588. package/dist/internal/jsonSchema.d.ts.map +1 -0
  589. package/dist/internal/jsonSchema.js +28 -0
  590. package/dist/internal/jsonSchema.js.map +1 -0
  591. package/dist/internal/matcher.js +11 -1
  592. package/dist/internal/matcher.js.map +1 -1
  593. package/dist/internal/persistence.js +9 -0
  594. package/dist/internal/persistence.js.map +1 -1
  595. package/dist/internal/rcRef.js +4 -1
  596. package/dist/internal/rcRef.js.map +1 -1
  597. package/dist/internal/schema/compilerRegistry.js +4 -1
  598. package/dist/internal/schema/compilerRegistry.js.map +1 -1
  599. package/dist/internal/schema/content.d.ts +2 -0
  600. package/dist/internal/schema/content.d.ts.map +1 -0
  601. package/dist/internal/schema/content.js +13 -0
  602. package/dist/internal/schema/content.js.map +1 -0
  603. package/dist/internal/schema/fromJsonSchemaDocument.js +173 -185
  604. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  605. package/dist/internal/schema/fromRepresentation.js +2 -1
  606. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  607. package/dist/internal/schema/standardSchema.js +8 -2
  608. package/dist/internal/schema/standardSchema.js.map +1 -1
  609. package/dist/internal/schema/toCodeDocument.js +9 -6
  610. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  611. package/dist/internal/schema/toCodec.js +21 -24
  612. package/dist/internal/schema/toCodec.js.map +1 -1
  613. package/dist/internal/schema/toJsonSchemaDocument.js +205 -140
  614. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  615. package/dist/internal/schema/toRepresentation.js +107 -129
  616. package/dist/internal/schema/toRepresentation.js.map +1 -1
  617. package/dist/internal/sql.d.ts +2 -0
  618. package/dist/internal/sql.d.ts.map +1 -0
  619. package/dist/internal/sql.js +13 -0
  620. package/dist/internal/sql.js.map +1 -0
  621. package/dist/internal/trie.js +42 -13
  622. package/dist/internal/trie.js.map +1 -1
  623. package/dist/internal/ulid.js +41 -0
  624. package/dist/internal/ulid.js.map +1 -1
  625. package/dist/internal/uuid.js +52 -8
  626. package/dist/internal/uuid.js.map +1 -1
  627. package/dist/internal/version.js +1 -1
  628. package/dist/observability/Otlp.d.ts +15 -4
  629. package/dist/observability/Otlp.d.ts.map +1 -1
  630. package/dist/observability/Otlp.js +10 -0
  631. package/dist/observability/Otlp.js.map +1 -1
  632. package/dist/observability/OtlpProxy.d.ts +154 -0
  633. package/dist/observability/OtlpProxy.d.ts.map +1 -0
  634. package/dist/observability/OtlpProxy.js +235 -0
  635. package/dist/observability/OtlpProxy.js.map +1 -0
  636. package/dist/observability/OtlpResource.d.ts +7 -0
  637. package/dist/observability/OtlpResource.d.ts.map +1 -1
  638. package/dist/observability/OtlpResource.js +11 -1
  639. package/dist/observability/OtlpResource.js.map +1 -1
  640. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  641. package/dist/observability/OtlpTracer.js +4 -0
  642. package/dist/observability/OtlpTracer.js.map +1 -1
  643. package/dist/observability/index.d.ts +5 -0
  644. package/dist/observability/index.d.ts.map +1 -1
  645. package/dist/observability/index.js +5 -0
  646. package/dist/observability/index.js.map +1 -1
  647. package/dist/persistence/CircuitBreaker.d.ts +897 -0
  648. package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
  649. package/dist/persistence/CircuitBreaker.js +1165 -0
  650. package/dist/persistence/CircuitBreaker.js.map +1 -0
  651. package/dist/persistence/KeyValueStore.d.ts +47 -2
  652. package/dist/persistence/KeyValueStore.d.ts.map +1 -1
  653. package/dist/persistence/KeyValueStore.js +129 -18
  654. package/dist/persistence/KeyValueStore.js.map +1 -1
  655. package/dist/persistence/PersistedQueue.d.ts +9 -0
  656. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  657. package/dist/persistence/PersistedQueue.js +94 -52
  658. package/dist/persistence/PersistedQueue.js.map +1 -1
  659. package/dist/persistence/Persistence.d.ts +10 -4
  660. package/dist/persistence/Persistence.d.ts.map +1 -1
  661. package/dist/persistence/Persistence.js +18 -11
  662. package/dist/persistence/Persistence.js.map +1 -1
  663. package/dist/persistence/Redis.d.ts +78 -2
  664. package/dist/persistence/Redis.d.ts.map +1 -1
  665. package/dist/persistence/Redis.js +62 -7
  666. package/dist/persistence/Redis.js.map +1 -1
  667. package/dist/persistence/index.d.ts +5 -0
  668. package/dist/persistence/index.d.ts.map +1 -1
  669. package/dist/persistence/index.js +5 -0
  670. package/dist/persistence/index.js.map +1 -1
  671. package/dist/process/ChildProcess.d.ts +237 -71
  672. package/dist/process/ChildProcess.d.ts.map +1 -1
  673. package/dist/process/ChildProcess.js +56 -158
  674. package/dist/process/ChildProcess.js.map +1 -1
  675. package/dist/process/ChildProcessSpawner.d.ts +35 -0
  676. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  677. package/dist/process/ChildProcessSpawner.js +5 -2
  678. package/dist/process/ChildProcessSpawner.js.map +1 -1
  679. package/dist/process/CommandLine.d.ts +294 -0
  680. package/dist/process/CommandLine.d.ts.map +1 -0
  681. package/dist/process/CommandLine.js +481 -0
  682. package/dist/process/CommandLine.js.map +1 -0
  683. package/dist/process/index.d.ts +5 -0
  684. package/dist/process/index.d.ts.map +1 -1
  685. package/dist/process/index.js +5 -0
  686. package/dist/process/index.js.map +1 -1
  687. package/dist/reactivity/AsyncResult.d.ts +1 -1
  688. package/dist/reactivity/AsyncResult.d.ts.map +1 -1
  689. package/dist/reactivity/Atom.d.ts +2 -1
  690. package/dist/reactivity/Atom.d.ts.map +1 -1
  691. package/dist/reactivity/Atom.js +3 -4
  692. package/dist/reactivity/Atom.js.map +1 -1
  693. package/dist/reactivity/AtomRegistry.js.map +1 -1
  694. package/dist/rpc/RpcClient.d.ts +16 -1
  695. package/dist/rpc/RpcClient.d.ts.map +1 -1
  696. package/dist/rpc/RpcClient.js +59 -24
  697. package/dist/rpc/RpcClient.js.map +1 -1
  698. package/dist/rpc/RpcMessage.d.ts +10 -1
  699. package/dist/rpc/RpcMessage.d.ts.map +1 -1
  700. package/dist/rpc/RpcMessage.js +1 -0
  701. package/dist/rpc/RpcMessage.js.map +1 -1
  702. package/dist/rpc/RpcSerialization.d.ts +14 -0
  703. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  704. package/dist/rpc/RpcSerialization.js +26 -8
  705. package/dist/rpc/RpcSerialization.js.map +1 -1
  706. package/dist/rpc/RpcServer.d.ts +31 -0
  707. package/dist/rpc/RpcServer.d.ts.map +1 -1
  708. package/dist/rpc/RpcServer.js +139 -56
  709. package/dist/rpc/RpcServer.js.map +1 -1
  710. package/dist/rpc/RpcTest.d.ts +1 -0
  711. package/dist/rpc/RpcTest.d.ts.map +1 -1
  712. package/dist/rpc/RpcTest.js +1 -0
  713. package/dist/rpc/RpcTest.js.map +1 -1
  714. package/dist/schema/Model.d.ts +14 -0
  715. package/dist/schema/Model.d.ts.map +1 -1
  716. package/dist/schema/Model.js +18 -3
  717. package/dist/schema/Model.js.map +1 -1
  718. package/dist/sql/Migrator.d.ts +2 -20
  719. package/dist/sql/Migrator.d.ts.map +1 -1
  720. package/dist/sql/Migrator.js +13 -55
  721. package/dist/sql/Migrator.js.map +1 -1
  722. package/dist/sql/MigratorFileSystem.d.ts +21 -0
  723. package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
  724. package/dist/sql/MigratorFileSystem.js +57 -0
  725. package/dist/sql/MigratorFileSystem.js.map +1 -0
  726. package/dist/sql/SqlClient.d.ts +9 -4
  727. package/dist/sql/SqlClient.d.ts.map +1 -1
  728. package/dist/sql/SqlClient.js +13 -10
  729. package/dist/sql/SqlClient.js.map +1 -1
  730. package/dist/sql/SqlResolver.d.ts +4 -0
  731. package/dist/sql/SqlResolver.d.ts.map +1 -1
  732. package/dist/sql/SqlResolver.js +18 -4
  733. package/dist/sql/SqlResolver.js.map +1 -1
  734. package/dist/sql/Statement.d.ts +27 -6
  735. package/dist/sql/Statement.d.ts.map +1 -1
  736. package/dist/sql/Statement.js +21 -15
  737. package/dist/sql/Statement.js.map +1 -1
  738. package/dist/sql/index.js +1 -1
  739. package/dist/testing/index.d.ts +0 -5
  740. package/dist/testing/index.d.ts.map +1 -1
  741. package/dist/testing/index.js +0 -5
  742. package/dist/testing/index.js.map +1 -1
  743. package/dist/workflow/DurableDeferred.d.ts.map +1 -1
  744. package/dist/workflow/DurableDeferred.js +21 -2
  745. package/dist/workflow/DurableDeferred.js.map +1 -1
  746. package/dist/workflow/internal/crypto.js +9 -8
  747. package/dist/workflow/internal/crypto.js.map +1 -1
  748. package/package.json +3 -1
  749. package/src/Arbitrary.ts +10 -2
  750. package/src/BigDecimal.ts +3 -0
  751. package/src/Channel.ts +64 -29
  752. package/src/Config.ts +7 -1
  753. package/src/Context.ts +34 -10
  754. package/src/Cron.ts +178 -29
  755. package/src/Data.ts +60 -265
  756. package/src/Duration.ts +140 -0
  757. package/src/Effect.ts +915 -86
  758. package/src/Equal.ts +8 -1
  759. package/src/Exit.ts +3 -3
  760. package/src/FileSystem.ts +65 -4
  761. package/src/Formatter.ts +28 -13
  762. package/src/Glob.ts +205 -0
  763. package/src/Hash.ts +4 -1
  764. package/src/JsonPatch.ts +4 -0
  765. package/src/JsonSchema.ts +12 -40
  766. package/src/Match.ts +127 -0
  767. package/src/Metric.ts +3 -3
  768. package/src/MutableList.ts +7 -5
  769. package/src/MutableRef.ts +8 -1
  770. package/src/PartitionedSemaphore.ts +24 -13
  771. package/src/Pool.ts +182 -52
  772. package/src/PubSub.ts +5 -6
  773. package/src/Random.ts +3 -3
  774. package/src/RcMap.ts +5 -1
  775. package/src/Ref.ts +8 -0
  776. package/src/Schedule.ts +27 -4
  777. package/src/Schema.ts +1237 -87
  778. package/src/SchemaAST.ts +20 -20
  779. package/src/SchemaGetter.ts +27 -11
  780. package/src/SchemaParser.ts +51 -18
  781. package/src/SchemaRepresentation.ts +50 -34
  782. package/src/SchemaTransformation.ts +17 -5
  783. package/src/ScopedCache.ts +5 -9
  784. package/src/Semaphore.ts +208 -40
  785. package/src/Sink.ts +15 -2
  786. package/src/Stream.ts +48 -22
  787. package/src/String.ts +3 -0
  788. package/src/Terminal.ts +19 -1
  789. package/src/Tracer.ts +15 -1
  790. package/src/ai/AiError.ts +56 -80
  791. package/src/ai/Decision.ts +257 -6
  792. package/src/ai/DecisionModel.ts +171 -28
  793. package/src/ai/LanguageModel.ts +9 -0
  794. package/src/ai/McpServer.ts +1283 -299
  795. package/src/ai/McpTest.ts +380 -0
  796. package/src/ai/Prompt.ts +65 -0
  797. package/src/ai/Response.ts +36 -31
  798. package/src/ai/Tool.ts +65 -10
  799. package/src/ai/Toolkit.ts +4 -1
  800. package/src/ai/index.ts +6 -0
  801. package/src/ai/internal/mcpCore.ts +78 -44
  802. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +4 -7
  803. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +4 -7
  804. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +4 -7
  805. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +4 -7
  806. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +15 -10
  807. package/src/ai/internal/mcpProtocol.ts +29 -0
  808. package/src/ai/internal/mcpRuntime.ts +9 -5
  809. package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
  810. package/src/cli/Argument.ts +21 -0
  811. package/src/cli/CliError.ts +90 -3
  812. package/src/cli/CliOutput.ts +300 -55
  813. package/src/cli/Command.ts +76 -41
  814. package/src/cli/Completions.ts +51 -0
  815. package/src/cli/Flag.ts +122 -0
  816. package/src/cli/GlobalFlag.ts +6 -7
  817. package/src/cli/HelpDoc.ts +18 -1
  818. package/src/cli/Param.ts +35 -6
  819. package/src/cli/Primitive.ts +16 -1
  820. package/src/cli/Prompt.ts +1 -0
  821. package/src/cli/TerminalCapabilities.ts +6 -3
  822. package/src/cli/internal/completions/bash.ts +79 -29
  823. package/src/cli/internal/help.ts +21 -9
  824. package/src/cluster/ClusterWorkflowEngine.ts +46 -16
  825. package/src/cluster/MessageStorage.ts +19 -14
  826. package/src/cluster/Sharding.ts +176 -47
  827. package/src/cluster/ShardingConfig.ts +43 -0
  828. package/src/cluster/SingleRunner.ts +3 -3
  829. package/src/cluster/Snowflake.ts +3 -7
  830. package/src/cluster/SqlMessageStorage.ts +49 -17
  831. package/src/cluster/SqlRunnerStorage.ts +143 -70
  832. package/src/cluster/internal/entityManager.ts +75 -22
  833. package/src/crypto/Aead.ts +517 -0
  834. package/src/crypto/Cipher.ts +326 -0
  835. package/src/crypto/CryptoError.ts +242 -0
  836. package/src/crypto/Digest.ts +167 -0
  837. package/src/crypto/Kdf.ts +315 -0
  838. package/src/crypto/KeyAgreement.ts +489 -0
  839. package/src/crypto/KeyFormat.ts +712 -0
  840. package/src/crypto/KeyWrap.ts +639 -0
  841. package/src/crypto/Mac.ts +386 -0
  842. package/src/crypto/SecureRandom.ts +459 -0
  843. package/src/crypto/Signature.ts +673 -0
  844. package/src/crypto/WebCrypto.ts +64 -0
  845. package/src/crypto/index.ts +78 -0
  846. package/src/crypto/internal/asymmetric.ts +329 -0
  847. package/src/crypto/internal/chacha.ts +1088 -0
  848. package/src/crypto/internal/der.ts +110 -0
  849. package/src/crypto/internal/digest.ts +16 -0
  850. package/src/crypto/internal/key.ts +235 -0
  851. package/src/crypto/internal/md5.ts +170 -0
  852. package/src/crypto/internal/webCrypto.ts +150 -0
  853. package/src/devtools/DevToolsClient.ts +2 -0
  854. package/src/encoding/Base64.ts +38 -0
  855. package/src/encoding/Base64Url.ts +5 -2
  856. package/src/encoding/Csv.ts +1298 -0
  857. package/src/encoding/Hex.ts +3 -2
  858. package/src/encoding/SchemaBinary.ts +40 -4
  859. package/src/encoding/Sse.ts +4 -3
  860. package/src/encoding/Toml.ts +117 -35
  861. package/src/encoding/Yaml.ts +61 -18
  862. package/src/encoding/index.ts +6 -0
  863. package/src/eventlog/EventJournal.ts +4 -3
  864. package/src/eventlog/EventLog.ts +340 -15
  865. package/src/eventlog/EventLogEncryption.ts +118 -110
  866. package/src/eventlog/EventLogMessage.ts +273 -1
  867. package/src/eventlog/EventLogRemote.ts +367 -23
  868. package/src/eventlog/EventLogServer.ts +23 -8
  869. package/src/eventlog/EventLogServerEncrypted.ts +1130 -67
  870. package/src/eventlog/EventLogSessionAuth.ts +56 -70
  871. package/src/eventlog/EventRow.ts +12 -3
  872. package/src/eventlog/SqlEventJournal.ts +68 -45
  873. package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
  874. package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
  875. package/src/eventlog/internal/batches.ts +30 -0
  876. package/src/eventlog/internal/compaction.ts +64 -0
  877. package/src/eventlog/internal/conflicts.ts +0 -4
  878. package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
  879. package/src/eventlog/internal/remoteCompaction.ts +92 -0
  880. package/src/http/Cookies.ts +291 -12
  881. package/src/http/FetchHttpClient.ts +88 -16
  882. package/src/http/HttpClient.ts +636 -29
  883. package/src/http/HttpClientError.ts +35 -1
  884. package/src/http/HttpClientRequest.ts +21 -10
  885. package/src/http/HttpClientResponse.ts +3 -2
  886. package/src/http/HttpMethod.ts +10 -2
  887. package/src/http/HttpMiddleware.ts +15 -18
  888. package/src/http/HttpRouter.ts +2 -1
  889. package/src/http/HttpServerError.ts +2 -2
  890. package/src/http/HttpServerRequest.ts +101 -30
  891. package/src/http/HttpServerResponse.ts +3 -2
  892. package/src/http/HttpStaticServer.ts +51 -22
  893. package/src/http/HttpTraceContext.ts +7 -4
  894. package/src/http/MultipartParser/internal/contentType.ts +3 -3
  895. package/src/http/ProblemDetails.ts +149 -0
  896. package/src/http/UrlParams.ts +6 -1
  897. package/src/http/index.ts +6 -0
  898. package/src/http/internal/compression.ts +4 -5
  899. package/src/http/internal/decompression.ts +10 -4
  900. package/src/http/internal/httpBody.ts +10 -2
  901. package/src/http/internal/urlParams.ts +37 -0
  902. package/src/http-api/HttpApi.ts +3 -6
  903. package/src/http-api/HttpApiBuilder.ts +61 -19
  904. package/src/http-api/HttpApiClient.ts +284 -72
  905. package/src/http-api/HttpApiEndpoint.ts +135 -35
  906. package/src/http-api/HttpApiError.ts +250 -0
  907. package/src/http-api/HttpApiMiddleware.ts +95 -1
  908. package/src/http-api/HttpApiSchema.ts +236 -52
  909. package/src/http-api/HttpApiTest.ts +3 -2
  910. package/src/http-api/OpenApi.ts +20 -17
  911. package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
  912. package/src/index.ts +6 -6
  913. package/src/internal/arbitrary/runner.ts +133 -36
  914. package/src/internal/core.ts +2 -0
  915. package/src/internal/effect.ts +58 -34
  916. package/src/internal/equal.ts +17 -0
  917. package/src/internal/glob.ts +736 -0
  918. package/src/internal/jsonSchema.ts +27 -0
  919. package/src/internal/matcher.ts +18 -1
  920. package/src/internal/persistence.ts +11 -0
  921. package/src/internal/rcRef.ts +4 -1
  922. package/src/internal/schema/compilerRegistry.ts +6 -1
  923. package/src/internal/schema/content.ts +18 -0
  924. package/src/internal/schema/fromJsonSchemaDocument.ts +228 -190
  925. package/src/internal/schema/fromRepresentation.ts +2 -1
  926. package/src/internal/schema/standardSchema.ts +2 -2
  927. package/src/internal/schema/toCodeDocument.ts +11 -7
  928. package/src/internal/schema/toCodec.ts +26 -22
  929. package/src/internal/schema/toJsonSchemaDocument.ts +189 -167
  930. package/src/internal/schema/toRepresentation.ts +122 -140
  931. package/src/internal/sql.ts +14 -0
  932. package/src/internal/trie.ts +43 -14
  933. package/src/internal/ulid.ts +44 -0
  934. package/src/internal/uuid.ts +57 -16
  935. package/src/internal/version.ts +1 -1
  936. package/src/observability/Otlp.ts +21 -4
  937. package/src/observability/OtlpProxy.ts +314 -0
  938. package/src/observability/OtlpResource.ts +9 -1
  939. package/src/observability/OtlpTracer.ts +4 -0
  940. package/src/observability/index.ts +6 -0
  941. package/src/persistence/CircuitBreaker.ts +1678 -0
  942. package/src/persistence/KeyValueStore.ts +219 -22
  943. package/src/persistence/PersistedQueue.ts +128 -59
  944. package/src/persistence/Persistence.ts +20 -13
  945. package/src/persistence/Redis.ts +129 -8
  946. package/src/persistence/index.ts +6 -0
  947. package/src/process/ChildProcess.ts +285 -264
  948. package/src/process/ChildProcessSpawner.ts +46 -2
  949. package/src/process/CommandLine.ts +630 -0
  950. package/src/process/index.ts +6 -0
  951. package/src/reactivity/AsyncResult.ts +1 -1
  952. package/src/reactivity/Atom.ts +5 -5
  953. package/src/reactivity/AtomRegistry.ts +1 -1
  954. package/src/rpc/RpcClient.ts +75 -36
  955. package/src/rpc/RpcMessage.ts +10 -1
  956. package/src/rpc/RpcSerialization.ts +35 -9
  957. package/src/rpc/RpcServer.ts +176 -63
  958. package/src/rpc/RpcTest.ts +3 -0
  959. package/src/schema/Model.ts +26 -3
  960. package/src/sql/Migrator.ts +15 -69
  961. package/src/sql/MigratorFileSystem.ts +71 -0
  962. package/src/sql/SqlClient.ts +13 -20
  963. package/src/sql/SqlResolver.ts +23 -9
  964. package/src/sql/Statement.ts +38 -9
  965. package/src/sql/index.ts +1 -1
  966. package/src/testing/index.ts +0 -6
  967. package/src/workflow/DurableDeferred.ts +23 -6
  968. package/src/workflow/internal/crypto.ts +15 -11
  969. package/dist/Crypto.d.ts +0 -244
  970. package/dist/Crypto.d.ts.map +0 -1
  971. package/dist/Crypto.js +0 -139
  972. package/dist/Crypto.js.map +0 -1
  973. package/dist/testing/TestCrypto.d.ts +0 -73
  974. package/dist/testing/TestCrypto.d.ts.map +0 -1
  975. package/dist/testing/TestCrypto.js +0 -87
  976. package/dist/testing/TestCrypto.js.map +0 -1
  977. package/src/Crypto.ts +0 -347
  978. package/src/testing/TestCrypto.ts +0 -94
@@ -30,6 +30,7 @@ import * as Terminal from "../Terminal.ts"
30
30
  import type { Contravariant, Covariant, NoInfer, Simplify } from "../Types.ts"
31
31
  import * as CliConfig from "./CliConfig.ts"
32
32
  import * as CliError from "./CliError.ts"
33
+ import * as CliOutput from "./CliOutput.ts"
33
34
  import * as GlobalFlag from "./GlobalFlag.ts"
34
35
  import { checkForDuplicateFlags, makeCommand, makeParser, toImpl, TypeId } from "./internal/command.ts"
35
36
  import { mergeConfig, parseConfig } from "./internal/config.ts"
@@ -71,6 +72,7 @@ import * as Prompt from "./Prompt.ts"
71
72
  * Layer.succeed(Terminal.Terminal, Terminal.make({
72
73
  * columns: Effect.succeed(80),
73
74
  * rows: Effect.succeed(24),
75
+ * size: Effect.die("unused"),
74
76
  * readInput: Effect.die("unused"),
75
77
  * readLine: Effect.die("unused"),
76
78
  * display: () => Effect.void
@@ -460,6 +462,7 @@ export type Services<C> = C extends Command<
460
462
  * Layer.succeed(Terminal.Terminal, Terminal.make({
461
463
  * columns: Effect.succeed(80),
462
464
  * rows: Effect.succeed(24),
465
+ * size: Effect.die("unused"),
463
466
  * readInput: Effect.die("unused"),
464
467
  * readLine: Effect.die("unused"),
465
468
  * display: () => Effect.void
@@ -572,6 +575,7 @@ export const isCommand = (u: unknown): u is Command.Any => Predicate.hasProperty
572
575
  * Layer.succeed(Terminal.Terminal, Terminal.make({
573
576
  * columns: Effect.succeed(80),
574
577
  * rows: Effect.succeed(24),
578
+ * size: Effect.die("unused"),
575
579
  * readInput: Effect.die("unused"),
576
580
  * readLine: Effect.die("unused"),
577
581
  * display: () => Effect.void
@@ -666,6 +670,7 @@ export const make: {
666
670
  * Layer.succeed(Terminal.Terminal, Terminal.make({
667
671
  * columns: Effect.succeed(80),
668
672
  * rows: Effect.succeed(24),
673
+ * size: Effect.die("unused"),
669
674
  * readInput: Effect.die("unused"),
670
675
  * readLine: Effect.die("unused"),
671
676
  * display: () => Effect.void
@@ -761,6 +766,7 @@ export const make: {
761
766
  * Layer.succeed(Terminal.Terminal, Terminal.make({
762
767
  * columns: Effect.succeed(80),
763
768
  * rows: Effect.succeed(24),
769
+ * size: Effect.die("unused"),
764
770
  * readInput: Effect.die("unused"),
765
771
  * readLine: Effect.die("unused"),
766
772
  * display: () => Effect.void
@@ -856,6 +862,7 @@ export const make: {
856
862
  * Layer.succeed(Terminal.Terminal, Terminal.make({
857
863
  * columns: Effect.succeed(80),
858
864
  * rows: Effect.succeed(24),
865
+ * size: Effect.die("unused"),
859
866
  * readInput: Effect.die("unused"),
860
867
  * readLine: Effect.die("unused"),
861
868
  * display: () => Effect.void
@@ -960,6 +967,7 @@ export const make: {
960
967
  * Layer.succeed(Terminal.Terminal, Terminal.make({
961
968
  * columns: Effect.succeed(80),
962
969
  * rows: Effect.succeed(24),
970
+ * size: Effect.die("unused"),
963
971
  * readInput: Effect.die("unused"),
964
972
  * readLine: Effect.die("unused"),
965
973
  * display: () => Effect.void
@@ -1017,6 +1025,7 @@ export const withHandler: {
1017
1025
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1018
1026
  * columns: Effect.succeed(80),
1019
1027
  * rows: Effect.succeed(24),
1028
+ * size: Effect.die("unused"),
1020
1029
  * readInput: Effect.die("unused"),
1021
1030
  * readLine: Effect.die("unused"),
1022
1031
  * display: () => Effect.void
@@ -1076,6 +1085,7 @@ export const withHandler: {
1076
1085
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1077
1086
  * columns: Effect.succeed(80),
1078
1087
  * rows: Effect.succeed(24),
1088
+ * size: Effect.die("unused"),
1079
1089
  * readInput: Effect.die("unused"),
1080
1090
  * readLine: Effect.die("unused"),
1081
1091
  * display: () => Effect.void
@@ -1436,6 +1446,7 @@ const normalizeSubcommandEntries = (
1436
1446
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1437
1447
  * columns: Effect.succeed(80),
1438
1448
  * rows: Effect.succeed(24),
1449
+ * size: Effect.die("unused"),
1439
1450
  * readInput: Effect.die("unused"),
1440
1451
  * readLine: Effect.die("unused"),
1441
1452
  * display: () => Effect.void
@@ -1507,6 +1518,7 @@ export const withSubcommands: {
1507
1518
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1508
1519
  * columns: Effect.succeed(80),
1509
1520
  * rows: Effect.succeed(24),
1521
+ * size: Effect.die("unused"),
1510
1522
  * readInput: Effect.die("unused"),
1511
1523
  * readLine: Effect.die("unused"),
1512
1524
  * display: () => Effect.void
@@ -1586,6 +1598,7 @@ export const withSubcommands: {
1586
1598
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1587
1599
  * columns: Effect.succeed(80),
1588
1600
  * rows: Effect.succeed(24),
1601
+ * size: Effect.die("unused"),
1589
1602
  * readInput: Effect.die("unused"),
1590
1603
  * readLine: Effect.die("unused"),
1591
1604
  * display: () => Effect.void
@@ -1946,6 +1959,7 @@ type ExtractSubcommandContext<T extends ReadonlyArray<Command.SubcommandEntry>>
1946
1959
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1947
1960
  * columns: Effect.succeed(80),
1948
1961
  * rows: Effect.succeed(24),
1962
+ * size: Effect.die("unused"),
1949
1963
  * readInput: Effect.die("unused"),
1950
1964
  * readLine: Effect.die("unused"),
1951
1965
  * display: () => Effect.void
@@ -1999,6 +2013,7 @@ export const withDescription: {
1999
2013
  * Layer.succeed(Terminal.Terminal, Terminal.make({
2000
2014
  * columns: Effect.succeed(80),
2001
2015
  * rows: Effect.succeed(24),
2016
+ * size: Effect.die("unused"),
2002
2017
  * readInput: Effect.die("unused"),
2003
2018
  * readLine: Effect.die("unused"),
2004
2019
  * display: () => Effect.void
@@ -2054,6 +2069,7 @@ export const withDescription: {
2054
2069
  * Layer.succeed(Terminal.Terminal, Terminal.make({
2055
2070
  * columns: Effect.succeed(80),
2056
2071
  * rows: Effect.succeed(24),
2072
+ * size: Effect.die("unused"),
2057
2073
  * readInput: Effect.die("unused"),
2058
2074
  * readLine: Effect.die("unused"),
2059
2075
  * display: () => Effect.void
@@ -2587,6 +2603,7 @@ const mapHandler = <Name extends string, Input, E, R, ContextInput, E2, R2>(
2587
2603
  * Layer.succeed(Terminal.Terminal, Terminal.make({
2588
2604
  * columns: Effect.succeed(80),
2589
2605
  * rows: Effect.succeed(24),
2606
+ * size: Effect.die("unused"),
2590
2607
  * readInput: Effect.die("unused"),
2591
2608
  * readLine: Effect.die("unused"),
2592
2609
  * display: () => Effect.void
@@ -2650,6 +2667,7 @@ export const provide: {
2650
2667
  * Layer.succeed(Terminal.Terminal, Terminal.make({
2651
2668
  * columns: Effect.succeed(80),
2652
2669
  * rows: Effect.succeed(24),
2670
+ * size: Effect.die("unused"),
2653
2671
  * readInput: Effect.die("unused"),
2654
2672
  * readLine: Effect.die("unused"),
2655
2673
  * display: () => Effect.void
@@ -2720,6 +2738,7 @@ export const provide: {
2720
2738
  * Layer.succeed(Terminal.Terminal, Terminal.make({
2721
2739
  * columns: Effect.succeed(80),
2722
2740
  * rows: Effect.succeed(24),
2741
+ * size: Effect.die("unused"),
2723
2742
  * readInput: Effect.die("unused"),
2724
2743
  * readLine: Effect.die("unused"),
2725
2744
  * display: () => Effect.void
@@ -2981,6 +3000,7 @@ export const provideEffectDiscard: {
2981
3000
  * Layer.succeed(Terminal.Terminal, Terminal.make({
2982
3001
  * columns: Effect.succeed(80),
2983
3002
  * rows: Effect.succeed(24),
3003
+ * size: Effect.die("unused"),
2984
3004
  * readInput: Effect.die("unused"),
2985
3005
  * readLine: Effect.die("unused"),
2986
3006
  * display: () => Effect.void
@@ -3062,19 +3082,24 @@ const showHelp = <Name extends string, Input, E, R, ContextInput>(
3062
3082
  ): Effect.Effect<void, CliError.CliError, Environment> =>
3063
3083
  Effect.gen(function*() {
3064
3084
  const { builtIns } = yield* CliConfig.CliConfig
3065
- const formatter = yield* resolveFormatter
3066
- const helpDoc = yield* getHelpForCommandPath(command, error.commandPath, builtIns)
3067
- yield* Console.log(formatter.formatHelpDoc(helpDoc))
3068
- if (renderErrors && error.errors.length > 0) {
3069
- yield* Console.error(formatter.formatErrors(error.errors as any))
3070
- }
3085
+ const presenter = yield* CliOutput.Presenter
3086
+ const { commandPath, errors } = error
3087
+ const helpDoc = yield* getHelpForCommandPath(command, commandPath, builtIns)
3088
+ yield* presenter.present(
3089
+ renderErrors && errors.length > 0
3090
+ ? { _tag: "InvalidInvocation", commandPath, helpDoc, errors }
3091
+ : { _tag: "Help", reason: "Implicit", commandPath, helpDoc }
3092
+ )
3071
3093
  })
3072
3094
 
3073
- const showUserError = (error: CliError.UserError): Effect.Effect<void> =>
3095
+ const showUserError = (error: object, userMessage: string): Effect.Effect<void> =>
3074
3096
  Effect.gen(function*() {
3075
3097
  const formatter = yield* resolveFormatter
3076
- yield* Console.error(formatter.formatError(error))
3077
- error[Runtime.errorReported] = false
3098
+ const rendered = error instanceof CliError.UserError
3099
+ ? error
3100
+ : new CliError.UserError({ cause: error, userMessage })
3101
+ yield* Console.error(formatter.formatError(rendered))
3102
+ Object.assign(error, { [Runtime.errorReported]: false })
3078
3103
  })
3079
3104
 
3080
3105
  /**
@@ -3085,10 +3110,12 @@ const showUserError = (error: CliError.UserError): Effect.Effect<void> =>
3085
3110
  * Use when command-line arguments should come from `Stdio` at the application
3086
3111
  * entry point.
3087
3112
  *
3088
- * Help documents are always rendered. By default, parse error details and
3089
- * `CliError.UserError` failures are also rendered with the installed
3090
- * `CliOutput.Formatter` before the error is rethrown. Set `renderErrors` to
3091
- * `false` when the host application owns error rendering.
3113
+ * Help, version, and parse error output is written through
3114
+ * `CliOutput.Presenter`. Help documents are always presented. By default,
3115
+ * parse error details are also presented, and handler failures annotated with
3116
+ * `CliError.userMessage`, including `CliError.UserError`, are rendered with the
3117
+ * installed `CliOutput.Formatter` before the error is rethrown. Set
3118
+ * `renderErrors` to `false` when the host application owns error rendering.
3092
3119
  *
3093
3120
  * **Example** (Running commands with standard input)
3094
3121
  *
@@ -3106,6 +3133,7 @@ const showUserError = (error: CliError.UserError): Effect.Effect<void> =>
3106
3133
  * Layer.succeed(Terminal.Terminal, Terminal.make({
3107
3134
  * columns: Effect.succeed(80),
3108
3135
  * rows: Effect.succeed(24),
3136
+ * size: Effect.die("unused"),
3109
3137
  * readInput: Effect.die("unused"),
3110
3138
  * readLine: Effect.die("unused"),
3111
3139
  * display: () => Effect.void
@@ -3148,10 +3176,12 @@ export const run: {
3148
3176
  * Use when command-line arguments should come from `Stdio` at the application
3149
3177
  * entry point.
3150
3178
  *
3151
- * Help documents are always rendered. By default, parse error details and
3152
- * `CliError.UserError` failures are also rendered with the installed
3153
- * `CliOutput.Formatter` before the error is rethrown. Set `renderErrors` to
3154
- * `false` when the host application owns error rendering.
3179
+ * Help, version, and parse error output is written through
3180
+ * `CliOutput.Presenter`. Help documents are always presented. By default,
3181
+ * parse error details are also presented, and handler failures annotated with
3182
+ * `CliError.userMessage`, including `CliError.UserError`, are rendered with the
3183
+ * installed `CliOutput.Formatter` before the error is rethrown. Set
3184
+ * `renderErrors` to `false` when the host application owns error rendering.
3155
3185
  *
3156
3186
  * **Example** (Running commands with standard input)
3157
3187
  *
@@ -3169,6 +3199,7 @@ export const run: {
3169
3199
  * Layer.succeed(Terminal.Terminal, Terminal.make({
3170
3200
  * columns: Effect.succeed(80),
3171
3201
  * rows: Effect.succeed(24),
3202
+ * size: Effect.die("unused"),
3172
3203
  * readInput: Effect.die("unused"),
3173
3204
  * readLine: Effect.die("unused"),
3174
3205
  * display: () => Effect.void
@@ -3218,10 +3249,12 @@ export const run: {
3218
3249
  * Use when command-line arguments should come from `Stdio` at the application
3219
3250
  * entry point.
3220
3251
  *
3221
- * Help documents are always rendered. By default, parse error details and
3222
- * `CliError.UserError` failures are also rendered with the installed
3223
- * `CliOutput.Formatter` before the error is rethrown. Set `renderErrors` to
3224
- * `false` when the host application owns error rendering.
3252
+ * Help, version, and parse error output is written through
3253
+ * `CliOutput.Presenter`. Help documents are always presented. By default,
3254
+ * parse error details are also presented, and handler failures annotated with
3255
+ * `CliError.userMessage`, including `CliError.UserError`, are rendered with the
3256
+ * installed `CliOutput.Formatter` before the error is rethrown. Set
3257
+ * `renderErrors` to `false` when the host application owns error rendering.
3225
3258
  *
3226
3259
  * **Example** (Running commands with standard input)
3227
3260
  *
@@ -3239,6 +3272,7 @@ export const run: {
3239
3272
  * Layer.succeed(Terminal.Terminal, Terminal.make({
3240
3273
  * columns: Effect.succeed(80),
3241
3274
  * rows: Effect.succeed(24),
3275
+ * size: Effect.die("unused"),
3242
3276
  * readInput: Effect.die("unused"),
3243
3277
  * readLine: Effect.die("unused"),
3244
3278
  * display: () => Effect.void
@@ -3301,10 +3335,12 @@ export const run: {
3301
3335
  * Use when you need to test CLI applications or programmatically execute
3302
3336
  * commands with specific arguments.
3303
3337
  *
3304
- * Help documents are always rendered. By default, parse error details and
3305
- * `CliError.UserError` failures are also rendered with the installed
3306
- * `CliOutput.Formatter` before the error is rethrown. Set `renderErrors` to
3307
- * `false` when the host application owns error rendering.
3338
+ * Help, version, and parse error output is written through
3339
+ * `CliOutput.Presenter`. Help documents are always presented. By default,
3340
+ * parse error details are also presented, and handler failures annotated with
3341
+ * `CliError.userMessage`, including `CliError.UserError`, are rendered with the
3342
+ * installed `CliOutput.Formatter` before the error is rethrown. Set
3343
+ * `renderErrors` to `false` when the host application owns error rendering.
3308
3344
  *
3309
3345
  * **Example** (Running commands with explicit arguments)
3310
3346
  *
@@ -3320,6 +3356,7 @@ export const run: {
3320
3356
  * Layer.succeed(Terminal.Terminal, Terminal.make({
3321
3357
  * columns: Effect.succeed(80),
3322
3358
  * rows: Effect.succeed(24),
3359
+ * size: Effect.die("unused"),
3323
3360
  * readInput: Effect.die("unused"),
3324
3361
  * readLine: Effect.die("unused"),
3325
3362
  * display: () => Effect.void
@@ -3387,6 +3424,9 @@ export const runWith = <const Name extends string, Input, E, R, ContextInput>(
3387
3424
  // 3. Parse command arguments from remaining tokens
3388
3425
  const parsedArgs = yield* Parser.parseArgs({ tokens: remainder, trailingOperands }, command)
3389
3426
  const commandPath = [command.name, ...Parser.getCommandPath(parsedArgs)] as const
3427
+ const toShowHelp = Effect.mapError((error: CliError.CliError) =>
3428
+ error._tag === "ShowHelp" ? error : new CliError.ShowHelp({ commandPath, errors: [error] })
3429
+ )
3390
3430
  const handlerCtx: GlobalFlag.HandlerContext = { builtIns, command, commandPath, version: config.version }
3391
3431
  const activeFlags = getGlobalFlagsForCommandPath(command, commandPath, builtIns)
3392
3432
 
@@ -3409,7 +3449,7 @@ export const runWith = <const Name extends string, Input, E, R, ContextInput>(
3409
3449
  return entries !== undefined && entries.length > 0
3410
3450
  })
3411
3451
  if (!hasEntry) continue
3412
- const [, value] = yield* flag.flag.parse(emptyArgs)
3452
+ const [, value] = yield* flag.flag.parse(emptyArgs).pipe(toShowHelp)
3413
3453
  if (flag === GlobalFlag.Wizard) {
3414
3454
  const { colors } = yield* Prompt.Theme
3415
3455
  return yield* Effect.gen(function*() {
@@ -3442,23 +3482,17 @@ export const runWith = <const Name extends string, Input, E, R, ContextInput>(
3442
3482
  if (parsedArgs.errors && parsedArgs.errors.length > 0) {
3443
3483
  return yield* new CliError.ShowHelp({ commandPath, errors: parsedArgs.errors })
3444
3484
  }
3445
- const parseResult = yield* Effect.result(commandImpl.parse(parsedArgs))
3446
- if (parseResult._tag === "Failure") {
3447
- return yield* new CliError.ShowHelp({
3448
- commandPath,
3449
- errors: [parseResult.failure as CliError.NonShowHelpErrors]
3450
- })
3451
- }
3485
+ const input = yield* commandImpl.parse(parsedArgs).pipe(toShowHelp)
3452
3486
 
3453
3487
  // 7. Provide setting values
3454
- let program = commandImpl.handle(parseResult.success, [command.name])
3488
+ let program = commandImpl.handle(input, [command.name])
3455
3489
  const logLevel = activeFlags.includes(GlobalFlag.LogLevel)
3456
- ? (yield* GlobalFlag.LogLevel.flag.parse(emptyArgs))[1]
3490
+ ? (yield* GlobalFlag.LogLevel.flag.parse(emptyArgs).pipe(toShowHelp))[1]
3457
3491
  : Option.none()
3458
3492
  program = Effect.provideService(program, GlobalFlag.LogLevel, logLevel)
3459
3493
  for (const flag of activeFlags) {
3460
3494
  if (flag._tag !== "Setting" || flag === GlobalFlag.LogLevel) continue
3461
- const [, value] = yield* flag.flag.parse(emptyArgs)
3495
+ const [, value] = yield* flag.flag.parse(emptyArgs).pipe(toShowHelp)
3462
3496
  program = Effect.provideService(program, flag, value)
3463
3497
  }
3464
3498
 
@@ -3479,11 +3513,12 @@ export const runWith = <const Name extends string, Input, E, R, ContextInput>(
3479
3513
  (error) => Effect.andThen(showHelp(command, error, config.renderErrors !== false), Effect.fail(error))
3480
3514
  ),
3481
3515
  Effect.catchFilter(
3482
- (error) =>
3483
- config.renderErrors !== false && CliError.isCliError(error) && error._tag === "UserError"
3484
- ? Result.succeed(error)
3485
- : Result.fail(error),
3486
- (error) => Effect.andThen(showUserError(error), Effect.fail(error))
3516
+ (error) => {
3517
+ if (config.renderErrors === false || !Predicate.isObjectKeyword(error)) return Result.fail(error)
3518
+ const userMessage = CliError.getUserMessage(error)
3519
+ return userMessage === undefined ? Result.fail(error) : Result.succeed({ error, userMessage })
3520
+ },
3521
+ ({ error, userMessage }) => Effect.andThen(showUserError(error, userMessage), Effect.fail(error))
3487
3522
  ),
3488
3523
  Effect.catchFilter(
3489
3524
  (e) =>
@@ -7,7 +7,9 @@
7
7
  * @stability unstable
8
8
  * @since 4.0.0
9
9
  */
10
+ import type { Command } from "./Command.ts"
10
11
  import * as Bash from "./internal/completions/bash.ts"
12
+ import * as Descriptor from "./internal/completions/descriptor.ts"
11
13
  import * as Fish from "./internal/completions/fish.ts"
12
14
  import * as PowerShell from "./internal/completions/powershell.ts"
13
15
  import * as Zsh from "./internal/completions/zsh.ts"
@@ -106,6 +108,55 @@ export type ArgumentType =
106
108
  | { readonly _tag: "Choice"; readonly values: ReadonlyArray<string> }
107
109
  | { readonly _tag: "Path"; readonly pathType: "file" | "directory" | "either" }
108
110
 
111
+ /**
112
+ * Converts a command tree into a `CommandDescriptor` for completion script
113
+ * generation.
114
+ *
115
+ * **When to use**
116
+ *
117
+ * Use when you need to generate a completion script from an existing
118
+ * `Command`, for example in a build step, without running the CLI or
119
+ * capturing the output of the built-in `--completions` flag.
120
+ *
121
+ * **Details**
122
+ *
123
+ * Reads the command's flags, arguments, and subcommands, including flags
124
+ * shared with subcommands and aliases. Hidden flags and unlisted subcommands
125
+ * are omitted, matching `--help`. Command handlers are never run.
126
+ *
127
+ * **Example** (Generating a Zsh completion script at build time)
128
+ *
129
+ * ```ts import.meta.vitest
130
+ * import { Effect } from "effect"
131
+ * import { Command, Completions, Flag } from "effect/cli"
132
+ *
133
+ * const start = Command.make(
134
+ * "start",
135
+ * { port: Flag.Int("port") },
136
+ * ({ port }) => Effect.log(`Listening on ${port}`)
137
+ * )
138
+ *
139
+ * const cli = Command.make("server").pipe(
140
+ * Command.withSubcommands([start])
141
+ * )
142
+ *
143
+ * const script = Completions.generate(
144
+ * "server",
145
+ * "zsh",
146
+ * Completions.fromCommand(cli)
147
+ * )
148
+ *
149
+ * script.startsWith("#compdef server") // => true
150
+ * ```
151
+ *
152
+ * @see {@link generate} for turning the descriptor into a shell script
153
+ *
154
+ * @stability unstable
155
+ * @category constructors
156
+ * @since 4.0.7
157
+ */
158
+ export const fromCommand = (command: Command.Any): CommandDescriptor => Descriptor.fromCommand(command)
159
+
109
160
  /**
110
161
  * Generates a shell completion script for a command descriptor.
111
162
  *
package/src/cli/Flag.ts CHANGED
@@ -290,6 +290,7 @@ export const Directory = (name: string, options?: {
290
290
  * Layer.succeed(Terminal.Terminal, Terminal.make({
291
291
  * columns: Effect.succeed(80),
292
292
  * rows: Effect.succeed(24),
293
+ * size: Effect.die("unused"),
293
294
  * readInput: Effect.die("unused"),
294
295
  * readLine: Effect.die("unused"),
295
296
  * display: () => Effect.void
@@ -981,6 +982,7 @@ export const withHidden = <A>(self: Flag<A>): Flag<A> => Param.withHidden(self)
981
982
  * Layer.succeed(Terminal.Terminal, Terminal.make({
982
983
  * columns: Effect.succeed(80),
983
984
  * rows: Effect.succeed(24),
985
+ * size: Effect.die("unused"),
984
986
  * readInput: Effect.die("unused"),
985
987
  * readLine: Effect.die("unused"),
986
988
  * display: () => Effect.void
@@ -1155,6 +1157,11 @@ export const withFallbackConfig: {
1155
1157
  /**
1156
1158
  * Adds a fallback prompt that is shown when a required flag is missing.
1157
1159
  *
1160
+ * **Gotchas**
1161
+ *
1162
+ * When `TerminalCapabilities.canPrompt` is `false`, the prompt is skipped and
1163
+ * the original `MissingOption` error is returned.
1164
+ *
1158
1165
  * **Example** (Falling back to prompts)
1159
1166
  *
1160
1167
  * ```ts import.meta.vitest
@@ -1166,6 +1173,38 @@ export const withFallbackConfig: {
1166
1173
  * name.kind // => "flag"
1167
1174
  * ```
1168
1175
  *
1176
+ * **Example** (Showing an introduction before fallback prompts)
1177
+ *
1178
+ * The prompt can be built by an effect, which only runs when the prompt is
1179
+ * needed. Share a cached introduction between the prompt builders and
1180
+ * `Command.provideEffectDiscard`: it runs once, before the first prompt, and
1181
+ * also runs when every flag is supplied. Flags declared after the first
1182
+ * prompted flag may not have been validated yet when the introduction runs.
1183
+ *
1184
+ * ```ts import.meta.vitest
1185
+ * import { Console, Effect } from "effect"
1186
+ * import { Command, Flag, Prompt } from "effect/cli"
1187
+ *
1188
+ * const program = Effect.gen(function*() {
1189
+ * const intro = yield* Effect.cached(Console.log("Welcome to demo"))
1190
+ *
1191
+ * const ask = (name: string) =>
1192
+ * Flag.String(name).pipe(
1193
+ * Flag.withFallbackPrompt(
1194
+ * Effect.as(intro, Prompt.String({ message: `${name}?` }))
1195
+ * )
1196
+ * )
1197
+ *
1198
+ * const demo = Command.make(
1199
+ * "demo",
1200
+ * { name: ask("name"), dir: ask("dir") },
1201
+ * (input) => Console.log(input)
1202
+ * ).pipe(Command.provideEffectDiscard(intro))
1203
+ *
1204
+ * yield* Command.run(demo, { version: "1.0.0" })
1205
+ * })
1206
+ * ```
1207
+ *
1169
1208
  * @stability unstable
1170
1209
  * @category combinators
1171
1210
  * @since 4.0.0
@@ -1174,6 +1213,11 @@ export const withFallbackPrompt: {
1174
1213
  /**
1175
1214
  * Adds a fallback prompt that is shown when a required flag is missing.
1176
1215
  *
1216
+ * **Gotchas**
1217
+ *
1218
+ * When `TerminalCapabilities.canPrompt` is `false`, the prompt is skipped and
1219
+ * the original `MissingOption` error is returned.
1220
+ *
1177
1221
  * **Example** (Falling back to prompts)
1178
1222
  *
1179
1223
  * ```ts import.meta.vitest
@@ -1185,6 +1229,38 @@ export const withFallbackPrompt: {
1185
1229
  * name.kind // => "flag"
1186
1230
  * ```
1187
1231
  *
1232
+ * **Example** (Showing an introduction before fallback prompts)
1233
+ *
1234
+ * The prompt can be built by an effect, which only runs when the prompt is
1235
+ * needed. Share a cached introduction between the prompt builders and
1236
+ * `Command.provideEffectDiscard`: it runs once, before the first prompt, and
1237
+ * also runs when every flag is supplied. Flags declared after the first
1238
+ * prompted flag may not have been validated yet when the introduction runs.
1239
+ *
1240
+ * ```ts import.meta.vitest
1241
+ * import { Console, Effect } from "effect"
1242
+ * import { Command, Flag, Prompt } from "effect/cli"
1243
+ *
1244
+ * const program = Effect.gen(function*() {
1245
+ * const intro = yield* Effect.cached(Console.log("Welcome to demo"))
1246
+ *
1247
+ * const ask = (name: string) =>
1248
+ * Flag.String(name).pipe(
1249
+ * Flag.withFallbackPrompt(
1250
+ * Effect.as(intro, Prompt.String({ message: `${name}?` }))
1251
+ * )
1252
+ * )
1253
+ *
1254
+ * const demo = Command.make(
1255
+ * "demo",
1256
+ * { name: ask("name"), dir: ask("dir") },
1257
+ * (input) => Console.log(input)
1258
+ * ).pipe(Command.provideEffectDiscard(intro))
1259
+ *
1260
+ * yield* Command.run(demo, { version: "1.0.0" })
1261
+ * })
1262
+ * ```
1263
+ *
1188
1264
  * @stability unstable
1189
1265
  * @category combinators
1190
1266
  * @since 4.0.0
@@ -1193,6 +1269,11 @@ export const withFallbackPrompt: {
1193
1269
  /**
1194
1270
  * Adds a fallback prompt that is shown when a required flag is missing.
1195
1271
  *
1272
+ * **Gotchas**
1273
+ *
1274
+ * When `TerminalCapabilities.canPrompt` is `false`, the prompt is skipped and
1275
+ * the original `MissingOption` error is returned.
1276
+ *
1196
1277
  * **Example** (Falling back to prompts)
1197
1278
  *
1198
1279
  * ```ts import.meta.vitest
@@ -1204,6 +1285,38 @@ export const withFallbackPrompt: {
1204
1285
  * name.kind // => "flag"
1205
1286
  * ```
1206
1287
  *
1288
+ * **Example** (Showing an introduction before fallback prompts)
1289
+ *
1290
+ * The prompt can be built by an effect, which only runs when the prompt is
1291
+ * needed. Share a cached introduction between the prompt builders and
1292
+ * `Command.provideEffectDiscard`: it runs once, before the first prompt, and
1293
+ * also runs when every flag is supplied. Flags declared after the first
1294
+ * prompted flag may not have been validated yet when the introduction runs.
1295
+ *
1296
+ * ```ts import.meta.vitest
1297
+ * import { Console, Effect } from "effect"
1298
+ * import { Command, Flag, Prompt } from "effect/cli"
1299
+ *
1300
+ * const program = Effect.gen(function*() {
1301
+ * const intro = yield* Effect.cached(Console.log("Welcome to demo"))
1302
+ *
1303
+ * const ask = (name: string) =>
1304
+ * Flag.String(name).pipe(
1305
+ * Flag.withFallbackPrompt(
1306
+ * Effect.as(intro, Prompt.String({ message: `${name}?` }))
1307
+ * )
1308
+ * )
1309
+ *
1310
+ * const demo = Command.make(
1311
+ * "demo",
1312
+ * { name: ask("name"), dir: ask("dir") },
1313
+ * (input) => Console.log(input)
1314
+ * ).pipe(Command.provideEffectDiscard(intro))
1315
+ *
1316
+ * yield* Command.run(demo, { version: "1.0.0" })
1317
+ * })
1318
+ * ```
1319
+ *
1207
1320
  * @stability unstable
1208
1321
  * @category combinators
1209
1322
  * @since 4.0.0
@@ -1305,6 +1418,7 @@ export const map: {
1305
1418
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1306
1419
  * columns: Effect.succeed(80),
1307
1420
  * rows: Effect.succeed(24),
1421
+ * size: Effect.die("unused"),
1308
1422
  * readInput: Effect.die("unused"),
1309
1423
  * readLine: Effect.die("unused"),
1310
1424
  * display: () => Effect.void
@@ -1350,6 +1464,7 @@ export const mapEffect: {
1350
1464
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1351
1465
  * columns: Effect.succeed(80),
1352
1466
  * rows: Effect.succeed(24),
1467
+ * size: Effect.die("unused"),
1353
1468
  * readInput: Effect.die("unused"),
1354
1469
  * readLine: Effect.die("unused"),
1355
1470
  * display: () => Effect.void
@@ -1395,6 +1510,7 @@ export const mapEffect: {
1395
1510
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1396
1511
  * columns: Effect.succeed(80),
1397
1512
  * rows: Effect.succeed(24),
1513
+ * size: Effect.die("unused"),
1398
1514
  * readInput: Effect.die("unused"),
1399
1515
  * readLine: Effect.die("unused"),
1400
1516
  * display: () => Effect.void
@@ -1448,6 +1564,7 @@ export const mapEffect: {
1448
1564
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1449
1565
  * columns: Effect.succeed(80),
1450
1566
  * rows: Effect.succeed(24),
1567
+ * size: Effect.die("unused"),
1451
1568
  * readInput: Effect.die("unused"),
1452
1569
  * readLine: Effect.die("unused"),
1453
1570
  * display: () => Effect.void
@@ -1505,6 +1622,7 @@ export const mapTryCatch: {
1505
1622
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1506
1623
  * columns: Effect.succeed(80),
1507
1624
  * rows: Effect.succeed(24),
1625
+ * size: Effect.die("unused"),
1508
1626
  * readInput: Effect.die("unused"),
1509
1627
  * readLine: Effect.die("unused"),
1510
1628
  * display: () => Effect.void
@@ -1562,6 +1680,7 @@ export const mapTryCatch: {
1562
1680
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1563
1681
  * columns: Effect.succeed(80),
1564
1682
  * rows: Effect.succeed(24),
1683
+ * size: Effect.die("unused"),
1565
1684
  * readInput: Effect.die("unused"),
1566
1685
  * readLine: Effect.die("unused"),
1567
1686
  * display: () => Effect.void
@@ -2131,6 +2250,7 @@ export const orElse: {
2131
2250
  * Layer.succeed(Terminal.Terminal, Terminal.make({
2132
2251
  * columns: Effect.succeed(80),
2133
2252
  * rows: Effect.succeed(24),
2253
+ * size: Effect.die("unused"),
2134
2254
  * readInput: Effect.die("unused"),
2135
2255
  * readLine: Effect.die("unused"),
2136
2256
  * display: () => Effect.void
@@ -2179,6 +2299,7 @@ export const orElseResult: {
2179
2299
  * Layer.succeed(Terminal.Terminal, Terminal.make({
2180
2300
  * columns: Effect.succeed(80),
2181
2301
  * rows: Effect.succeed(24),
2302
+ * size: Effect.die("unused"),
2182
2303
  * readInput: Effect.die("unused"),
2183
2304
  * readLine: Effect.die("unused"),
2184
2305
  * display: () => Effect.void
@@ -2227,6 +2348,7 @@ export const orElseResult: {
2227
2348
  * Layer.succeed(Terminal.Terminal, Terminal.make({
2228
2349
  * columns: Effect.succeed(80),
2229
2350
  * rows: Effect.succeed(24),
2351
+ * size: Effect.die("unused"),
2230
2352
  * readInput: Effect.die("unused"),
2231
2353
  * readLine: Effect.die("unused"),
2232
2354
  * display: () => Effect.void