effect 4.0.0-beta.98 → 4.0.0-rc.108

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 (1848) hide show
  1. package/AGENTS.md +381 -0
  2. package/CLAUDE.md +381 -0
  3. package/README.md +13 -20
  4. package/ai-docs/README.md +44 -0
  5. package/ai-docs/package.json +36 -0
  6. package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
  7. package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
  8. package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
  9. package/ai-docs/src/01_effect/01_basics/index.md +5 -0
  10. package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
  11. package/ai-docs/src/01_effect/02_schema/index.md +7 -0
  12. package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
  13. package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
  14. package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
  15. package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
  16. package/ai-docs/src/01_effect/03_services/index.md +5 -0
  17. package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
  18. package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
  19. package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
  20. package/ai-docs/src/01_effect/04_errors/index.md +1 -0
  21. package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
  22. package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
  23. package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
  24. package/ai-docs/src/01_effect/05_resources/index.md +3 -0
  25. package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
  26. package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
  27. package/ai-docs/src/01_effect/06_running/index.md +1 -0
  28. package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
  29. package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
  30. package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
  31. package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
  32. package/ai-docs/src/03_stream/30_encoding.ts +165 -0
  33. package/ai-docs/src/03_stream/index.md +4 -0
  34. package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
  35. package/ai-docs/src/04_integration/index.md +5 -0
  36. package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
  37. package/ai-docs/src/05_batching/index.md +3 -0
  38. package/ai-docs/src/06_schedule/10_schedules.ts +110 -0
  39. package/ai-docs/src/06_schedule/index.md +3 -0
  40. package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
  41. package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
  42. package/ai-docs/src/07_datetime/index.md +5 -0
  43. package/ai-docs/src/08_observability/10_logging.ts +66 -0
  44. package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
  45. package/ai-docs/src/08_observability/index.md +7 -0
  46. package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
  47. package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
  48. package/ai-docs/src/09_testing/index.md +1 -0
  49. package/ai-docs/src/10_predicate/01_basics.ts +14 -0
  50. package/ai-docs/src/10_predicate/index.md +9 -0
  51. package/ai-docs/src/50_http-client/10_basics.ts +102 -0
  52. package/ai-docs/src/50_http-client/index.md +3 -0
  53. package/ai-docs/src/51_http-server/10_basics.ts +116 -0
  54. package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
  55. package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
  56. package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
  57. package/ai-docs/src/51_http-server/fixtures/api/Users.ts +91 -0
  58. package/ai-docs/src/51_http-server/fixtures/domain/User.ts +12 -0
  59. package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
  60. package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +36 -0
  61. package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +71 -0
  62. package/ai-docs/src/51_http-server/fixtures/server/Users.ts +62 -0
  63. package/ai-docs/src/51_http-server/index.md +3 -0
  64. package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
  65. package/ai-docs/src/60_child-process/index.md +3 -0
  66. package/ai-docs/src/70_cli/10_basics.ts +136 -0
  67. package/ai-docs/src/70_cli/index.md +5 -0
  68. package/ai-docs/src/71_ai/10_language-model.ts +156 -0
  69. package/ai-docs/src/71_ai/20_tools.ts +226 -0
  70. package/ai-docs/src/71_ai/30_chat.ts +158 -0
  71. package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
  72. package/ai-docs/src/71_ai/index.md +5 -0
  73. package/ai-docs/src/80_cluster/10_entities.ts +97 -0
  74. package/ai-docs/src/80_cluster/index.md +4 -0
  75. package/ai-docs/src/index.md +10 -0
  76. package/ai-docs/tsconfig.json +24 -0
  77. package/dist/Array.d.ts +971 -1037
  78. package/dist/Array.d.ts.map +1 -1
  79. package/dist/Array.js +463 -413
  80. package/dist/Array.js.map +1 -1
  81. package/dist/BigDecimal.d.ts +433 -756
  82. package/dist/BigDecimal.d.ts.map +1 -1
  83. package/dist/BigDecimal.js +200 -325
  84. package/dist/BigDecimal.js.map +1 -1
  85. package/dist/BigInt.d.ts +207 -267
  86. package/dist/BigInt.d.ts.map +1 -1
  87. package/dist/BigInt.js +107 -135
  88. package/dist/BigInt.js.map +1 -1
  89. package/dist/Boolean.d.ts +146 -188
  90. package/dist/Boolean.d.ts.map +1 -1
  91. package/dist/Boolean.js +64 -84
  92. package/dist/Boolean.js.map +1 -1
  93. package/dist/Brand.d.ts +3 -3
  94. package/dist/Brand.d.ts.map +1 -1
  95. package/dist/Brand.js +4 -3
  96. package/dist/Brand.js.map +1 -1
  97. package/dist/Cache.d.ts +409 -256
  98. package/dist/Cache.d.ts.map +1 -1
  99. package/dist/Cache.js +213 -134
  100. package/dist/Cache.js.map +1 -1
  101. package/dist/Cause.d.ts +167 -277
  102. package/dist/Cause.d.ts.map +1 -1
  103. package/dist/Cause.js +122 -176
  104. package/dist/Cause.js.map +1 -1
  105. package/dist/Channel.d.ts +756 -769
  106. package/dist/Channel.d.ts.map +1 -1
  107. package/dist/Channel.js +588 -449
  108. package/dist/Channel.js.map +1 -1
  109. package/dist/ChannelSchema.d.ts +1 -1
  110. package/dist/ChannelSchema.d.ts.map +1 -1
  111. package/dist/ChannelSchema.js.map +1 -1
  112. package/dist/Chunk.d.ts +834 -1173
  113. package/dist/Chunk.d.ts.map +1 -1
  114. package/dist/Chunk.js +326 -439
  115. package/dist/Chunk.js.map +1 -1
  116. package/dist/Clock.d.ts +180 -49
  117. package/dist/Clock.d.ts.map +1 -1
  118. package/dist/Clock.js +96 -31
  119. package/dist/Clock.js.map +1 -1
  120. package/dist/Combiner.d.ts +20 -33
  121. package/dist/Combiner.d.ts.map +1 -1
  122. package/dist/Combiner.js +18 -30
  123. package/dist/Combiner.js.map +1 -1
  124. package/dist/Config.d.ts +226 -174
  125. package/dist/Config.d.ts.map +1 -1
  126. package/dist/Config.js +361 -267
  127. package/dist/Config.js.map +1 -1
  128. package/dist/ConfigProvider.d.ts +229 -71
  129. package/dist/ConfigProvider.d.ts.map +1 -1
  130. package/dist/ConfigProvider.js +164 -95
  131. package/dist/ConfigProvider.js.map +1 -1
  132. package/dist/Console.d.ts +233 -33
  133. package/dist/Console.d.ts.map +1 -1
  134. package/dist/Console.js +232 -32
  135. package/dist/Console.js.map +1 -1
  136. package/dist/Context.d.ts +153 -277
  137. package/dist/Context.d.ts.map +1 -1
  138. package/dist/Context.js +172 -236
  139. package/dist/Context.js.map +1 -1
  140. package/dist/Cron.d.ts +144 -176
  141. package/dist/Cron.d.ts.map +1 -1
  142. package/dist/Cron.js +227 -162
  143. package/dist/Cron.js.map +1 -1
  144. package/dist/Crypto.d.ts +13 -15
  145. package/dist/Crypto.d.ts.map +1 -1
  146. package/dist/Crypto.js +22 -15
  147. package/dist/Crypto.js.map +1 -1
  148. package/dist/Data.d.ts +60 -80
  149. package/dist/Data.d.ts.map +1 -1
  150. package/dist/Data.js +18 -24
  151. package/dist/Data.js.map +1 -1
  152. package/dist/DateTime.d.ts +562 -660
  153. package/dist/DateTime.d.ts.map +1 -1
  154. package/dist/DateTime.js +307 -362
  155. package/dist/DateTime.js.map +1 -1
  156. package/dist/Deferred.d.ts +253 -256
  157. package/dist/Deferred.d.ts.map +1 -1
  158. package/dist/Deferred.js +110 -98
  159. package/dist/Deferred.js.map +1 -1
  160. package/dist/Duration.d.ts +216 -308
  161. package/dist/Duration.d.ts.map +1 -1
  162. package/dist/Duration.js +157 -188
  163. package/dist/Duration.js.map +1 -1
  164. package/dist/Effect.d.ts +3142 -3345
  165. package/dist/Effect.d.ts.map +1 -1
  166. package/dist/Effect.js +1452 -1570
  167. package/dist/Effect.js.map +1 -1
  168. package/dist/Effectable.js.map +1 -1
  169. package/dist/Encoding.d.ts +22 -40
  170. package/dist/Encoding.d.ts.map +1 -1
  171. package/dist/Encoding.js +22 -40
  172. package/dist/Encoding.js.map +1 -1
  173. package/dist/Equal.d.ts +33 -37
  174. package/dist/Equal.d.ts.map +1 -1
  175. package/dist/Equal.js +39 -23
  176. package/dist/Equal.js.map +1 -1
  177. package/dist/Equivalence.d.ts +103 -105
  178. package/dist/Equivalence.d.ts.map +1 -1
  179. package/dist/Equivalence.js +77 -79
  180. package/dist/Equivalence.js.map +1 -1
  181. package/dist/ErrorReporter.d.ts +51 -27
  182. package/dist/ErrorReporter.d.ts.map +1 -1
  183. package/dist/ErrorReporter.js +50 -26
  184. package/dist/ErrorReporter.js.map +1 -1
  185. package/dist/ExecutionPlan.d.ts +86 -55
  186. package/dist/ExecutionPlan.d.ts.map +1 -1
  187. package/dist/ExecutionPlan.js +8 -29
  188. package/dist/ExecutionPlan.js.map +1 -1
  189. package/dist/Exit.d.ts +116 -192
  190. package/dist/Exit.d.ts.map +1 -1
  191. package/dist/Exit.js +82 -130
  192. package/dist/Exit.js.map +1 -1
  193. package/dist/Fiber.d.ts +83 -147
  194. package/dist/Fiber.d.ts.map +1 -1
  195. package/dist/Fiber.js +48 -87
  196. package/dist/Fiber.js.map +1 -1
  197. package/dist/FiberHandle.d.ts +152 -105
  198. package/dist/FiberHandle.d.ts.map +1 -1
  199. package/dist/FiberHandle.js +109 -75
  200. package/dist/FiberHandle.js.map +1 -1
  201. package/dist/FiberMap.d.ts +213 -168
  202. package/dist/FiberMap.d.ts.map +1 -1
  203. package/dist/FiberMap.js +114 -89
  204. package/dist/FiberMap.js.map +1 -1
  205. package/dist/FiberSet.d.ts +123 -81
  206. package/dist/FiberSet.d.ts.map +1 -1
  207. package/dist/FiberSet.js +86 -60
  208. package/dist/FiberSet.js.map +1 -1
  209. package/dist/FileSystem.d.ts +154 -265
  210. package/dist/FileSystem.d.ts.map +1 -1
  211. package/dist/FileSystem.js +42 -147
  212. package/dist/FileSystem.js.map +1 -1
  213. package/dist/Filter.d.ts +61 -33
  214. package/dist/Filter.d.ts.map +1 -1
  215. package/dist/Filter.js +26 -15
  216. package/dist/Filter.js.map +1 -1
  217. package/dist/Formatter.d.ts +24 -32
  218. package/dist/Formatter.d.ts.map +1 -1
  219. package/dist/Formatter.js +55 -60
  220. package/dist/Formatter.js.map +1 -1
  221. package/dist/Function.d.ts +106 -148
  222. package/dist/Function.d.ts.map +1 -1
  223. package/dist/Function.js +81 -62
  224. package/dist/Function.js.map +1 -1
  225. package/dist/Graph.d.ts +1412 -775
  226. package/dist/Graph.d.ts.map +1 -1
  227. package/dist/Graph.js +1180 -561
  228. package/dist/Graph.js.map +1 -1
  229. package/dist/HKT.d.ts +12 -6
  230. package/dist/HKT.d.ts.map +1 -1
  231. package/dist/Hash.d.ts +47 -83
  232. package/dist/Hash.d.ts.map +1 -1
  233. package/dist/Hash.js +46 -68
  234. package/dist/Hash.js.map +1 -1
  235. package/dist/HashMap.d.ts +319 -411
  236. package/dist/HashMap.d.ts.map +1 -1
  237. package/dist/HashMap.js +122 -166
  238. package/dist/HashMap.js.map +1 -1
  239. package/dist/HashRing.d.ts.map +1 -1
  240. package/dist/HashRing.js +1 -0
  241. package/dist/HashRing.js.map +1 -1
  242. package/dist/HashSet.d.ts +177 -284
  243. package/dist/HashSet.d.ts.map +1 -1
  244. package/dist/HashSet.js +68 -109
  245. package/dist/HashSet.js.map +1 -1
  246. package/dist/Inspectable.d.ts +19 -18
  247. package/dist/Inspectable.d.ts.map +1 -1
  248. package/dist/Inspectable.js +20 -16
  249. package/dist/Inspectable.js.map +1 -1
  250. package/dist/Iterable.d.ts +620 -786
  251. package/dist/Iterable.d.ts.map +1 -1
  252. package/dist/Iterable.js +282 -318
  253. package/dist/Iterable.js.map +1 -1
  254. package/dist/JsonPatch.d.ts +11 -13
  255. package/dist/JsonPatch.d.ts.map +1 -1
  256. package/dist/JsonPatch.js +46 -103
  257. package/dist/JsonPatch.js.map +1 -1
  258. package/dist/JsonPointer.d.ts +8 -8
  259. package/dist/JsonPointer.js +8 -8
  260. package/dist/JsonPointer.js.map +1 -1
  261. package/dist/JsonSchema.d.ts +98 -44
  262. package/dist/JsonSchema.d.ts.map +1 -1
  263. package/dist/JsonSchema.js +319 -241
  264. package/dist/JsonSchema.js.map +1 -1
  265. package/dist/Latch.d.ts +23 -35
  266. package/dist/Latch.d.ts.map +1 -1
  267. package/dist/Latch.js +16 -28
  268. package/dist/Latch.js.map +1 -1
  269. package/dist/Layer.d.ts +359 -260
  270. package/dist/Layer.d.ts.map +1 -1
  271. package/dist/Layer.js +202 -180
  272. package/dist/Layer.js.map +1 -1
  273. package/dist/LayerMap.d.ts +42 -29
  274. package/dist/LayerMap.d.ts.map +1 -1
  275. package/dist/LayerMap.js +31 -21
  276. package/dist/LayerMap.js.map +1 -1
  277. package/dist/LayerRef.d.ts +6 -2
  278. package/dist/LayerRef.d.ts.map +1 -1
  279. package/dist/LayerRef.js +6 -2
  280. package/dist/LayerRef.js.map +1 -1
  281. package/dist/LogLevel.d.ts +114 -214
  282. package/dist/LogLevel.d.ts.map +1 -1
  283. package/dist/LogLevel.js +41 -76
  284. package/dist/LogLevel.js.map +1 -1
  285. package/dist/Logger.d.ts +218 -467
  286. package/dist/Logger.d.ts.map +1 -1
  287. package/dist/Logger.js +208 -453
  288. package/dist/Logger.js.map +1 -1
  289. package/dist/ManagedRuntime.d.ts +16 -5
  290. package/dist/ManagedRuntime.d.ts.map +1 -1
  291. package/dist/ManagedRuntime.js +10 -5
  292. package/dist/ManagedRuntime.js.map +1 -1
  293. package/dist/Match.d.ts +217 -252
  294. package/dist/Match.d.ts.map +1 -1
  295. package/dist/Match.js +150 -183
  296. package/dist/Match.js.map +1 -1
  297. package/dist/Metric.d.ts +442 -993
  298. package/dist/Metric.d.ts.map +1 -1
  299. package/dist/Metric.js +202 -645
  300. package/dist/Metric.js.map +1 -1
  301. package/dist/MutableHashMap.d.ts +144 -173
  302. package/dist/MutableHashMap.d.ts.map +1 -1
  303. package/dist/MutableHashMap.js +68 -79
  304. package/dist/MutableHashMap.js.map +1 -1
  305. package/dist/MutableHashSet.d.ts +84 -89
  306. package/dist/MutableHashSet.d.ts.map +1 -1
  307. package/dist/MutableHashSet.js +44 -47
  308. package/dist/MutableHashSet.js.map +1 -1
  309. package/dist/MutableList.d.ts +71 -370
  310. package/dist/MutableList.d.ts.map +1 -1
  311. package/dist/MutableList.js +63 -284
  312. package/dist/MutableList.js.map +1 -1
  313. package/dist/MutableRef.d.ts +420 -243
  314. package/dist/MutableRef.d.ts.map +1 -1
  315. package/dist/MutableRef.js +209 -120
  316. package/dist/MutableRef.js.map +1 -1
  317. package/dist/Newtype.d.ts +21 -14
  318. package/dist/Newtype.d.ts.map +1 -1
  319. package/dist/Newtype.js +15 -13
  320. package/dist/Newtype.js.map +1 -1
  321. package/dist/NonEmptyIterable.d.ts +7 -137
  322. package/dist/NonEmptyIterable.d.ts.map +1 -1
  323. package/dist/NonEmptyIterable.js +5 -93
  324. package/dist/NonEmptyIterable.js.map +1 -1
  325. package/dist/Number.d.ts +196 -233
  326. package/dist/Number.d.ts.map +1 -1
  327. package/dist/Number.js +90 -109
  328. package/dist/Number.js.map +1 -1
  329. package/dist/Optic.d.ts +132 -210
  330. package/dist/Optic.d.ts.map +1 -1
  331. package/dist/Optic.js +221 -324
  332. package/dist/Optic.js.map +1 -1
  333. package/dist/Option.d.ts +447 -812
  334. package/dist/Option.d.ts.map +1 -1
  335. package/dist/Option.js +213 -393
  336. package/dist/Option.js.map +1 -1
  337. package/dist/Order.d.ts +109 -109
  338. package/dist/Order.js +91 -91
  339. package/dist/Order.js.map +1 -1
  340. package/dist/Ordering.d.ts +20 -23
  341. package/dist/Ordering.d.ts.map +1 -1
  342. package/dist/Ordering.js +8 -9
  343. package/dist/Ordering.js.map +1 -1
  344. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  345. package/dist/PartitionedSemaphore.js +1 -4
  346. package/dist/PartitionedSemaphore.js.map +1 -1
  347. package/dist/Path.d.ts +38 -41
  348. package/dist/Path.d.ts.map +1 -1
  349. package/dist/Path.js +3 -4
  350. package/dist/Path.js.map +1 -1
  351. package/dist/Pipeable.d.ts +6 -5
  352. package/dist/Pipeable.d.ts.map +1 -1
  353. package/dist/Pipeable.js +2 -2
  354. package/dist/Pipeable.js.map +1 -1
  355. package/dist/PlatformError.d.ts +4 -4
  356. package/dist/PlatformError.js +3 -3
  357. package/dist/PlatformError.js.map +1 -1
  358. package/dist/Pool.d.ts +4 -2
  359. package/dist/Pool.d.ts.map +1 -1
  360. package/dist/Pool.js +4 -2
  361. package/dist/Pool.js.map +1 -1
  362. package/dist/Predicate.d.ts +200 -181
  363. package/dist/Predicate.d.ts.map +1 -1
  364. package/dist/Predicate.js +100 -108
  365. package/dist/Predicate.js.map +1 -1
  366. package/dist/PrimaryKey.d.ts +7 -7
  367. package/dist/PrimaryKey.js +5 -5
  368. package/dist/PrimaryKey.js.map +1 -1
  369. package/dist/PubSub.d.ts +425 -494
  370. package/dist/PubSub.d.ts.map +1 -1
  371. package/dist/PubSub.js +373 -362
  372. package/dist/PubSub.js.map +1 -1
  373. package/dist/Pull.d.ts +24 -18
  374. package/dist/Pull.d.ts.map +1 -1
  375. package/dist/Pull.js +11 -9
  376. package/dist/Pull.js.map +1 -1
  377. package/dist/Queue.d.ts +200 -159
  378. package/dist/Queue.d.ts.map +1 -1
  379. package/dist/Queue.js +166 -138
  380. package/dist/Queue.js.map +1 -1
  381. package/dist/Random.d.ts +49 -74
  382. package/dist/Random.d.ts.map +1 -1
  383. package/dist/Random.js +35 -54
  384. package/dist/Random.js.map +1 -1
  385. package/dist/RcMap.d.ts +121 -63
  386. package/dist/RcMap.d.ts.map +1 -1
  387. package/dist/RcMap.js +42 -21
  388. package/dist/RcMap.js.map +1 -1
  389. package/dist/RcRef.d.ts +24 -13
  390. package/dist/RcRef.d.ts.map +1 -1
  391. package/dist/RcRef.js +15 -9
  392. package/dist/RcRef.js.map +1 -1
  393. package/dist/Record.d.ts +361 -466
  394. package/dist/Record.d.ts.map +1 -1
  395. package/dist/Record.js +163 -216
  396. package/dist/Record.js.map +1 -1
  397. package/dist/Redactable.d.ts +6 -2
  398. package/dist/Redactable.d.ts.map +1 -1
  399. package/dist/Redactable.js +7 -2
  400. package/dist/Redactable.js.map +1 -1
  401. package/dist/Redacted.d.ts +25 -25
  402. package/dist/Redacted.d.ts.map +1 -1
  403. package/dist/Redacted.js +19 -20
  404. package/dist/Redacted.js.map +1 -1
  405. package/dist/Reducer.d.ts +8 -15
  406. package/dist/Reducer.d.ts.map +1 -1
  407. package/dist/Reducer.js +6 -12
  408. package/dist/Reducer.js.map +1 -1
  409. package/dist/Ref.d.ts +95 -165
  410. package/dist/Ref.d.ts.map +1 -1
  411. package/dist/Ref.js +75 -122
  412. package/dist/Ref.js.map +1 -1
  413. package/dist/References.d.ts +102 -213
  414. package/dist/References.d.ts.map +1 -1
  415. package/dist/References.js +102 -213
  416. package/dist/References.js.map +1 -1
  417. package/dist/RegExp.d.ts +10 -14
  418. package/dist/RegExp.d.ts.map +1 -1
  419. package/dist/RegExp.js +10 -14
  420. package/dist/RegExp.js.map +1 -1
  421. package/dist/Request.d.ts +31 -21
  422. package/dist/Request.d.ts.map +1 -1
  423. package/dist/Request.js +25 -19
  424. package/dist/Request.js.map +1 -1
  425. package/dist/RequestResolver.d.ts +201 -90
  426. package/dist/RequestResolver.d.ts.map +1 -1
  427. package/dist/RequestResolver.js +87 -41
  428. package/dist/RequestResolver.js.map +1 -1
  429. package/dist/Resource.js.map +1 -1
  430. package/dist/Result.d.ts +302 -470
  431. package/dist/Result.d.ts.map +1 -1
  432. package/dist/Result.js +135 -218
  433. package/dist/Result.js.map +1 -1
  434. package/dist/Runtime.d.ts +50 -75
  435. package/dist/Runtime.d.ts.map +1 -1
  436. package/dist/Runtime.js +39 -60
  437. package/dist/Runtime.js.map +1 -1
  438. package/dist/Schedule.d.ts +292 -1638
  439. package/dist/Schedule.d.ts.map +1 -1
  440. package/dist/Schedule.js +164 -805
  441. package/dist/Schedule.js.map +1 -1
  442. package/dist/Scheduler.d.ts +5 -5
  443. package/dist/Scheduler.d.ts.map +1 -1
  444. package/dist/Scheduler.js +18 -6
  445. package/dist/Scheduler.js.map +1 -1
  446. package/dist/Schema.d.ts +2056 -1269
  447. package/dist/Schema.d.ts.map +1 -1
  448. package/dist/Schema.js +2869 -1136
  449. package/dist/Schema.js.map +1 -1
  450. package/dist/SchemaAST.d.ts +64 -72
  451. package/dist/SchemaAST.d.ts.map +1 -1
  452. package/dist/SchemaAST.js +698 -468
  453. package/dist/SchemaAST.js.map +1 -1
  454. package/dist/SchemaGetter.d.ts +236 -188
  455. package/dist/SchemaGetter.d.ts.map +1 -1
  456. package/dist/SchemaGetter.js +281 -234
  457. package/dist/SchemaGetter.js.map +1 -1
  458. package/dist/SchemaIssue.d.ts +219 -190
  459. package/dist/SchemaIssue.d.ts.map +1 -1
  460. package/dist/SchemaIssue.js +303 -309
  461. package/dist/SchemaIssue.js.map +1 -1
  462. package/dist/SchemaParser.d.ts +32 -2
  463. package/dist/SchemaParser.d.ts.map +1 -1
  464. package/dist/SchemaParser.js +170 -118
  465. package/dist/SchemaParser.js.map +1 -1
  466. package/dist/SchemaRepresentation.d.ts +433 -1511
  467. package/dist/SchemaRepresentation.d.ts.map +1 -1
  468. package/dist/SchemaRepresentation.js +301 -2854
  469. package/dist/SchemaRepresentation.js.map +1 -1
  470. package/dist/SchemaTransformation.d.ts +117 -77
  471. package/dist/SchemaTransformation.d.ts.map +1 -1
  472. package/dist/SchemaTransformation.js +139 -104
  473. package/dist/SchemaTransformation.js.map +1 -1
  474. package/dist/Scope.d.ts +123 -151
  475. package/dist/Scope.d.ts.map +1 -1
  476. package/dist/Scope.js +72 -92
  477. package/dist/Scope.js.map +1 -1
  478. package/dist/ScopedCache.js +1 -1
  479. package/dist/ScopedCache.js.map +1 -1
  480. package/dist/ScopedRef.d.ts +3 -3
  481. package/dist/ScopedRef.d.ts.map +1 -1
  482. package/dist/ScopedRef.js +2 -2
  483. package/dist/ScopedRef.js.map +1 -1
  484. package/dist/Semaphore.d.ts +101 -13
  485. package/dist/Semaphore.d.ts.map +1 -1
  486. package/dist/Semaphore.js +78 -39
  487. package/dist/Semaphore.js.map +1 -1
  488. package/dist/Sink.d.ts +118 -108
  489. package/dist/Sink.d.ts.map +1 -1
  490. package/dist/Sink.js +107 -100
  491. package/dist/Sink.js.map +1 -1
  492. package/dist/Stdio.d.ts +18 -5
  493. package/dist/Stdio.d.ts.map +1 -1
  494. package/dist/Stdio.js +6 -3
  495. package/dist/Stdio.js.map +1 -1
  496. package/dist/Stream.d.ts +2467 -2962
  497. package/dist/Stream.d.ts.map +1 -1
  498. package/dist/Stream.js +1154 -1413
  499. package/dist/Stream.js.map +1 -1
  500. package/dist/String.d.ts +262 -308
  501. package/dist/String.d.ts.map +1 -1
  502. package/dist/String.js +184 -215
  503. package/dist/String.js.map +1 -1
  504. package/dist/Struct.d.ts +109 -114
  505. package/dist/Struct.d.ts.map +1 -1
  506. package/dist/Struct.js +46 -54
  507. package/dist/Struct.js.map +1 -1
  508. package/dist/SubscriptionRef.d.ts +282 -250
  509. package/dist/SubscriptionRef.d.ts.map +1 -1
  510. package/dist/SubscriptionRef.js +104 -92
  511. package/dist/SubscriptionRef.js.map +1 -1
  512. package/dist/Symbol.d.ts +3 -3
  513. package/dist/Symbol.js +3 -3
  514. package/dist/Symbol.js.map +1 -1
  515. package/dist/SynchronizedRef.js +1 -1
  516. package/dist/SynchronizedRef.js.map +1 -1
  517. package/dist/Take.js.map +1 -1
  518. package/dist/Terminal.d.ts +2 -2
  519. package/dist/Terminal.js +2 -2
  520. package/dist/Terminal.js.map +1 -1
  521. package/dist/Tracer.d.ts +100 -54
  522. package/dist/Tracer.d.ts.map +1 -1
  523. package/dist/Tracer.js +41 -24
  524. package/dist/Tracer.js.map +1 -1
  525. package/dist/Trie.d.ts +287 -679
  526. package/dist/Trie.d.ts.map +1 -1
  527. package/dist/Trie.js +109 -251
  528. package/dist/Trie.js.map +1 -1
  529. package/dist/Tuple.d.ts +98 -131
  530. package/dist/Tuple.d.ts.map +1 -1
  531. package/dist/Tuple.js +42 -57
  532. package/dist/Tuple.js.map +1 -1
  533. package/dist/TxChunk.d.ts +201 -121
  534. package/dist/TxChunk.d.ts.map +1 -1
  535. package/dist/TxChunk.js +85 -56
  536. package/dist/TxChunk.js.map +1 -1
  537. package/dist/TxDeferred.d.ts +62 -46
  538. package/dist/TxDeferred.d.ts.map +1 -1
  539. package/dist/TxDeferred.js +30 -22
  540. package/dist/TxDeferred.js.map +1 -1
  541. package/dist/TxHashMap.d.ts +631 -779
  542. package/dist/TxHashMap.d.ts.map +1 -1
  543. package/dist/TxHashMap.js +268 -330
  544. package/dist/TxHashMap.js.map +1 -1
  545. package/dist/TxHashSet.d.ts +297 -236
  546. package/dist/TxHashSet.d.ts.map +1 -1
  547. package/dist/TxHashSet.js +130 -100
  548. package/dist/TxHashSet.js.map +1 -1
  549. package/dist/TxPriorityQueue.d.ts +126 -95
  550. package/dist/TxPriorityQueue.d.ts.map +1 -1
  551. package/dist/TxPriorityQueue.js +74 -56
  552. package/dist/TxPriorityQueue.js.map +1 -1
  553. package/dist/TxPubSub.d.ts +101 -88
  554. package/dist/TxPubSub.d.ts.map +1 -1
  555. package/dist/TxPubSub.js +87 -66
  556. package/dist/TxPubSub.js.map +1 -1
  557. package/dist/TxQueue.d.ts +200 -180
  558. package/dist/TxQueue.d.ts.map +1 -1
  559. package/dist/TxQueue.js +161 -137
  560. package/dist/TxQueue.js.map +1 -1
  561. package/dist/TxReentrantLock.d.ts +89 -114
  562. package/dist/TxReentrantLock.d.ts.map +1 -1
  563. package/dist/TxReentrantLock.js +75 -53
  564. package/dist/TxReentrantLock.js.map +1 -1
  565. package/dist/TxRef.d.ts +51 -32
  566. package/dist/TxRef.d.ts.map +1 -1
  567. package/dist/TxRef.js +23 -15
  568. package/dist/TxRef.js.map +1 -1
  569. package/dist/TxSemaphore.d.ts +129 -95
  570. package/dist/TxSemaphore.d.ts.map +1 -1
  571. package/dist/TxSemaphore.js +85 -70
  572. package/dist/TxSemaphore.js.map +1 -1
  573. package/dist/TxSubscriptionRef.d.ts +97 -70
  574. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  575. package/dist/TxSubscriptionRef.js +44 -34
  576. package/dist/TxSubscriptionRef.js.map +1 -1
  577. package/dist/Types.d.ts +127 -70
  578. package/dist/Types.d.ts.map +1 -1
  579. package/dist/UndefinedOr.js.map +1 -1
  580. package/dist/Unify.d.ts +45 -65
  581. package/dist/Unify.d.ts.map +1 -1
  582. package/dist/Unify.js +6 -9
  583. package/dist/Unify.js.map +1 -1
  584. package/dist/Utils.d.ts +23 -16
  585. package/dist/Utils.d.ts.map +1 -1
  586. package/dist/Utils.js +3 -7
  587. package/dist/Utils.js.map +1 -1
  588. package/dist/index.d.ts +0 -8
  589. package/dist/index.d.ts.map +1 -1
  590. package/dist/index.js +0 -8
  591. package/dist/index.js.map +1 -1
  592. package/dist/internal/array.js.map +1 -1
  593. package/dist/internal/core.js +4 -3
  594. package/dist/internal/core.js.map +1 -1
  595. package/dist/internal/dateTime.js +5 -1
  596. package/dist/internal/dateTime.js.map +1 -1
  597. package/dist/internal/doNotation.js.map +1 -1
  598. package/dist/internal/effect.js +261 -111
  599. package/dist/internal/effect.js.map +1 -1
  600. package/dist/internal/equal.js.map +1 -1
  601. package/dist/internal/errors.js.map +1 -1
  602. package/dist/internal/executionPlan.js +52 -3
  603. package/dist/internal/executionPlan.js.map +1 -1
  604. package/dist/internal/hashMap.js +12 -8
  605. package/dist/internal/hashMap.js.map +1 -1
  606. package/dist/internal/hashSet.js.map +1 -1
  607. package/dist/internal/layer.js.map +1 -1
  608. package/dist/internal/matcher.js +2 -2
  609. package/dist/internal/matcher.js.map +1 -1
  610. package/dist/internal/metric.js.map +1 -1
  611. package/dist/internal/option.js.map +1 -1
  612. package/dist/internal/persistence.d.ts +2 -0
  613. package/dist/internal/persistence.d.ts.map +1 -0
  614. package/dist/internal/persistence.js +3 -0
  615. package/dist/internal/persistence.js.map +1 -0
  616. package/dist/internal/random.js.map +1 -1
  617. package/dist/internal/rcRef.js +18 -13
  618. package/dist/internal/rcRef.js.map +1 -1
  619. package/dist/internal/record.d.ts +0 -3
  620. package/dist/internal/record.d.ts.map +1 -1
  621. package/dist/internal/record.js +10 -5
  622. package/dist/internal/record.js.map +1 -1
  623. package/dist/internal/redacted.js.map +1 -1
  624. package/dist/internal/references.js +3 -4
  625. package/dist/internal/references.js.map +1 -1
  626. package/dist/internal/request.js.map +1 -1
  627. package/dist/internal/result.js.map +1 -1
  628. package/dist/internal/schedule.js.map +1 -1
  629. package/dist/internal/schema/annotations.js +15 -1
  630. package/dist/internal/schema/annotations.js.map +1 -1
  631. package/dist/internal/schema/cause.js.map +1 -1
  632. package/dist/internal/schema/fromJsonSchemaDocument.d.ts +2 -0
  633. package/dist/internal/schema/fromJsonSchemaDocument.d.ts.map +1 -0
  634. package/dist/internal/schema/fromJsonSchemaDocument.js +761 -0
  635. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -0
  636. package/dist/internal/schema/fromRepresentation.d.ts +2 -0
  637. package/dist/internal/schema/fromRepresentation.d.ts.map +1 -0
  638. package/dist/internal/schema/fromRepresentation.js +245 -0
  639. package/dist/internal/schema/fromRepresentation.js.map +1 -0
  640. package/dist/internal/schema/parser.d.ts +14 -0
  641. package/dist/internal/schema/parser.d.ts.map +1 -0
  642. package/dist/internal/schema/parser.js +13 -0
  643. package/dist/internal/schema/parser.js.map +1 -0
  644. package/dist/internal/schema/schema.js +29 -49
  645. package/dist/internal/schema/schema.js.map +1 -1
  646. package/dist/internal/schema/toArbitrary.d.ts +2 -0
  647. package/dist/internal/schema/toArbitrary.d.ts.map +1 -0
  648. package/dist/internal/schema/{arbitrary.js → toArbitrary.js} +8 -83
  649. package/dist/internal/schema/toArbitrary.js.map +1 -0
  650. package/dist/internal/schema/toCodeDocument.d.ts +2 -0
  651. package/dist/internal/schema/toCodeDocument.d.ts.map +1 -0
  652. package/dist/internal/schema/toCodeDocument.js +438 -0
  653. package/dist/internal/schema/toCodeDocument.js.map +1 -0
  654. package/dist/internal/schema/toEquivalence.d.ts +2 -0
  655. package/dist/internal/schema/toEquivalence.d.ts.map +1 -0
  656. package/dist/internal/schema/{equivalence.js → toEquivalence.js} +15 -13
  657. package/dist/internal/schema/toEquivalence.js.map +1 -0
  658. package/dist/internal/schema/toJsonSchemaDocument.d.ts +2 -0
  659. package/dist/internal/schema/toJsonSchemaDocument.d.ts.map +1 -0
  660. package/dist/internal/schema/toJsonSchemaDocument.js +522 -0
  661. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -0
  662. package/dist/internal/schema/toRepresentation.d.ts +2 -0
  663. package/dist/internal/schema/toRepresentation.d.ts.map +1 -0
  664. package/dist/internal/schema/toRepresentation.js +351 -0
  665. package/dist/internal/schema/toRepresentation.js.map +1 -0
  666. package/dist/internal/stackTraceLimit.js +3 -6
  667. package/dist/internal/stackTraceLimit.js.map +1 -1
  668. package/dist/internal/stream.js.map +1 -1
  669. package/dist/internal/tracer.js.map +1 -1
  670. package/dist/internal/trie.js +24 -10
  671. package/dist/internal/trie.js.map +1 -1
  672. package/dist/testing/FastCheck.d.ts +8 -7
  673. package/dist/testing/FastCheck.d.ts.map +1 -1
  674. package/dist/testing/FastCheck.js +8 -7
  675. package/dist/testing/FastCheck.js.map +1 -1
  676. package/dist/testing/TestClock.d.ts +57 -28
  677. package/dist/testing/TestClock.d.ts.map +1 -1
  678. package/dist/testing/TestClock.js +65 -20
  679. package/dist/testing/TestClock.js.map +1 -1
  680. package/dist/testing/TestConsole.d.ts +32 -31
  681. package/dist/testing/TestConsole.d.ts.map +1 -1
  682. package/dist/testing/TestConsole.js +24 -22
  683. package/dist/testing/TestConsole.js.map +1 -1
  684. package/dist/testing/TestSchema.d.ts +31 -31
  685. package/dist/testing/TestSchema.d.ts.map +1 -1
  686. package/dist/testing/TestSchema.js +35 -34
  687. package/dist/testing/TestSchema.js.map +1 -1
  688. package/dist/testing/index.js.map +1 -1
  689. package/dist/unstable/ai/AiError.d.ts +121 -144
  690. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  691. package/dist/unstable/ai/AiError.js +118 -140
  692. package/dist/unstable/ai/AiError.js.map +1 -1
  693. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +22 -7
  694. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  695. package/dist/unstable/ai/AnthropicStructuredOutput.js +87 -317
  696. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  697. package/dist/unstable/ai/Chat.d.ts +132 -97
  698. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  699. package/dist/unstable/ai/Chat.js +56 -52
  700. package/dist/unstable/ai/Chat.js.map +1 -1
  701. package/dist/unstable/ai/EmbeddingModel.d.ts +1 -1
  702. package/dist/unstable/ai/EmbeddingModel.js +1 -1
  703. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  704. package/dist/unstable/ai/IdGenerator.d.ts +32 -28
  705. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  706. package/dist/unstable/ai/IdGenerator.js +26 -21
  707. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  708. package/dist/unstable/ai/LanguageModel.d.ts +111 -68
  709. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  710. package/dist/unstable/ai/LanguageModel.js +127 -83
  711. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  712. package/dist/unstable/ai/McpProtocol.d.ts +30 -0
  713. package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
  714. package/dist/unstable/ai/McpProtocol.js +20 -0
  715. package/dist/unstable/ai/McpProtocol.js.map +1 -0
  716. package/dist/unstable/ai/McpSchema.d.ts +198 -132
  717. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  718. package/dist/unstable/ai/McpSchema.js +79 -71
  719. package/dist/unstable/ai/McpSchema.js.map +1 -1
  720. package/dist/unstable/ai/McpServer.d.ts +71 -62
  721. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  722. package/dist/unstable/ai/McpServer.js +777 -245
  723. package/dist/unstable/ai/McpServer.js.map +1 -1
  724. package/dist/unstable/ai/Model.d.ts +8 -19
  725. package/dist/unstable/ai/Model.d.ts.map +1 -1
  726. package/dist/unstable/ai/Model.js +9 -20
  727. package/dist/unstable/ai/Model.js.map +1 -1
  728. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +33 -11
  729. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  730. package/dist/unstable/ai/OpenAiStructuredOutput.js +194 -378
  731. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  732. package/dist/unstable/ai/Prompt.d.ts +131 -44
  733. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  734. package/dist/unstable/ai/Prompt.js +100 -36
  735. package/dist/unstable/ai/Prompt.js.map +1 -1
  736. package/dist/unstable/ai/Response.d.ts +47 -33
  737. package/dist/unstable/ai/Response.d.ts.map +1 -1
  738. package/dist/unstable/ai/Response.js +23 -18
  739. package/dist/unstable/ai/Response.js.map +1 -1
  740. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  741. package/dist/unstable/ai/Telemetry.d.ts +46 -13
  742. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  743. package/dist/unstable/ai/Telemetry.js +18 -7
  744. package/dist/unstable/ai/Telemetry.js.map +1 -1
  745. package/dist/unstable/ai/Tokenizer.d.ts +14 -3
  746. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  747. package/dist/unstable/ai/Tokenizer.js +10 -2
  748. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  749. package/dist/unstable/ai/Tool.d.ts +63 -44
  750. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  751. package/dist/unstable/ai/Tool.js +70 -55
  752. package/dist/unstable/ai/Tool.js.map +1 -1
  753. package/dist/unstable/ai/Toolkit.d.ts +35 -9
  754. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  755. package/dist/unstable/ai/Toolkit.js +32 -14
  756. package/dist/unstable/ai/Toolkit.js.map +1 -1
  757. package/dist/unstable/ai/index.d.ts +4 -0
  758. package/dist/unstable/ai/index.d.ts.map +1 -1
  759. package/dist/unstable/ai/index.js +4 -0
  760. package/dist/unstable/ai/index.js.map +1 -1
  761. package/dist/unstable/ai/internal/codec-transformer.js +15 -12
  762. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  763. package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
  764. package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
  765. package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
  766. package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
  767. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
  768. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
  769. package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
  770. package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
  771. package/dist/unstable/ai/internal/structured-output.d.ts +2 -0
  772. package/dist/unstable/ai/internal/structured-output.d.ts.map +1 -0
  773. package/dist/unstable/ai/internal/structured-output.js +315 -0
  774. package/dist/unstable/ai/internal/structured-output.js.map +1 -0
  775. package/dist/unstable/cli/Argument.d.ts +279 -72
  776. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  777. package/dist/unstable/cli/Argument.js +113 -34
  778. package/dist/unstable/cli/Argument.js.map +1 -1
  779. package/dist/unstable/cli/CliConfig.d.ts +76 -0
  780. package/dist/unstable/cli/CliConfig.d.ts.map +1 -0
  781. package/dist/unstable/cli/CliConfig.js +63 -0
  782. package/dist/unstable/cli/CliConfig.js.map +1 -0
  783. package/dist/unstable/cli/CliError.d.ts +126 -76
  784. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  785. package/dist/unstable/cli/CliError.js +138 -75
  786. package/dist/unstable/cli/CliError.js.map +1 -1
  787. package/dist/unstable/cli/CliOutput.d.ts +35 -54
  788. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  789. package/dist/unstable/cli/CliOutput.js +26 -42
  790. package/dist/unstable/cli/CliOutput.js.map +1 -1
  791. package/dist/unstable/cli/Command.d.ts +765 -109
  792. package/dist/unstable/cli/Command.d.ts.map +1 -1
  793. package/dist/unstable/cli/Command.js +335 -52
  794. package/dist/unstable/cli/Command.js.map +1 -1
  795. package/dist/unstable/cli/Completions.js.map +1 -1
  796. package/dist/unstable/cli/Flag.d.ts +418 -138
  797. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  798. package/dist/unstable/cli/Flag.js +197 -71
  799. package/dist/unstable/cli/Flag.js.map +1 -1
  800. package/dist/unstable/cli/GlobalFlag.d.ts +24 -3
  801. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
  802. package/dist/unstable/cli/GlobalFlag.js +20 -4
  803. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  804. package/dist/unstable/cli/HelpDoc.d.ts +12 -4
  805. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  806. package/dist/unstable/cli/Param.d.ts +299 -83
  807. package/dist/unstable/cli/Param.d.ts.map +1 -1
  808. package/dist/unstable/cli/Param.js +152 -62
  809. package/dist/unstable/cli/Param.js.map +1 -1
  810. package/dist/unstable/cli/Primitive.d.ts +370 -149
  811. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  812. package/dist/unstable/cli/Primitive.js +377 -162
  813. package/dist/unstable/cli/Primitive.js.map +1 -1
  814. package/dist/unstable/cli/Prompt.d.ts +23 -14
  815. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  816. package/dist/unstable/cli/Prompt.js +54 -31
  817. package/dist/unstable/cli/Prompt.js.map +1 -1
  818. package/dist/unstable/cli/index.d.ts +4 -0
  819. package/dist/unstable/cli/index.d.ts.map +1 -1
  820. package/dist/unstable/cli/index.js +4 -0
  821. package/dist/unstable/cli/index.js.map +1 -1
  822. package/dist/unstable/cli/internal/ansi.d.ts.map +1 -1
  823. package/dist/unstable/cli/internal/ansi.js +4 -2
  824. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  825. package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
  826. package/dist/unstable/cli/internal/command.d.ts +5 -3
  827. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  828. package/dist/unstable/cli/internal/command.js +21 -13
  829. package/dist/unstable/cli/internal/command.js.map +1 -1
  830. package/dist/unstable/cli/internal/completions/bash.js +69 -9
  831. package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
  832. package/dist/unstable/cli/internal/completions/descriptor.js +24 -18
  833. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  834. package/dist/unstable/cli/internal/completions/fish.js +5 -5
  835. package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
  836. package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
  837. package/dist/unstable/cli/internal/config.d.ts +0 -48
  838. package/dist/unstable/cli/internal/config.d.ts.map +1 -1
  839. package/dist/unstable/cli/internal/config.js +8 -10
  840. package/dist/unstable/cli/internal/config.js.map +1 -1
  841. package/dist/unstable/cli/internal/help.d.ts.map +1 -1
  842. package/dist/unstable/cli/internal/help.js +4 -2
  843. package/dist/unstable/cli/internal/help.js.map +1 -1
  844. package/dist/unstable/cli/internal/lexer.js +17 -7
  845. package/dist/unstable/cli/internal/lexer.js.map +1 -1
  846. package/dist/unstable/cli/internal/parser.js +16 -7
  847. package/dist/unstable/cli/internal/parser.js.map +1 -1
  848. package/dist/unstable/cli/internal/wizard.d.ts +13 -0
  849. package/dist/unstable/cli/internal/wizard.d.ts.map +1 -0
  850. package/dist/unstable/cli/internal/wizard.js +212 -0
  851. package/dist/unstable/cli/internal/wizard.js.map +1 -0
  852. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  853. package/dist/unstable/cluster/ClusterError.js +7 -7
  854. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  855. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  856. package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
  857. package/dist/unstable/cluster/ClusterSchema.js +8 -8
  858. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  859. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  860. package/dist/unstable/cluster/ClusterWorkflowEngine.js +32 -16
  861. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  862. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  863. package/dist/unstable/cluster/Entity.d.ts +12 -12
  864. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  865. package/dist/unstable/cluster/Entity.js +9 -9
  866. package/dist/unstable/cluster/Entity.js.map +1 -1
  867. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  868. package/dist/unstable/cluster/EntityId.js.map +1 -1
  869. package/dist/unstable/cluster/EntityProxy.d.ts +7 -5
  870. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  871. package/dist/unstable/cluster/EntityProxy.js +8 -5
  872. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  873. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  874. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  875. package/dist/unstable/cluster/EntityResource.js +2 -2
  876. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  877. package/dist/unstable/cluster/EntityType.js.map +1 -1
  878. package/dist/unstable/cluster/Envelope.d.ts +3 -3
  879. package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
  880. package/dist/unstable/cluster/Envelope.js +5 -4
  881. package/dist/unstable/cluster/Envelope.js.map +1 -1
  882. package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
  883. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  884. package/dist/unstable/cluster/HttpRunner.js +6 -4
  885. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  886. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  887. package/dist/unstable/cluster/MachineId.js.map +1 -1
  888. package/dist/unstable/cluster/Message.d.ts +9 -9
  889. package/dist/unstable/cluster/Message.js +6 -6
  890. package/dist/unstable/cluster/Message.js.map +1 -1
  891. package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
  892. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  893. package/dist/unstable/cluster/MessageStorage.js +13 -6
  894. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  895. package/dist/unstable/cluster/Reply.d.ts +8 -0
  896. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  897. package/dist/unstable/cluster/Reply.js +17 -5
  898. package/dist/unstable/cluster/Reply.js.map +1 -1
  899. package/dist/unstable/cluster/Runner.d.ts +1 -1
  900. package/dist/unstable/cluster/Runner.js +1 -1
  901. package/dist/unstable/cluster/Runner.js.map +1 -1
  902. package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
  903. package/dist/unstable/cluster/RunnerAddress.js +1 -1
  904. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  905. package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
  906. package/dist/unstable/cluster/RunnerHealth.js +1 -1
  907. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  908. package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
  909. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  910. package/dist/unstable/cluster/RunnerServer.js +29 -23
  911. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  912. package/dist/unstable/cluster/RunnerStorage.d.ts +3 -4
  913. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  914. package/dist/unstable/cluster/RunnerStorage.js +9 -8
  915. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  916. package/dist/unstable/cluster/Runners.d.ts +11 -15
  917. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  918. package/dist/unstable/cluster/Runners.js +32 -22
  919. package/dist/unstable/cluster/Runners.js.map +1 -1
  920. package/dist/unstable/cluster/ShardId.js +1 -1
  921. package/dist/unstable/cluster/ShardId.js.map +1 -1
  922. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  923. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  924. package/dist/unstable/cluster/Sharding.js +164 -31
  925. package/dist/unstable/cluster/Sharding.js.map +1 -1
  926. package/dist/unstable/cluster/ShardingConfig.d.ts +13 -5
  927. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  928. package/dist/unstable/cluster/ShardingConfig.js +3 -3
  929. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  930. package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
  931. package/dist/unstable/cluster/SingleRunner.d.ts +4 -2
  932. package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
  933. package/dist/unstable/cluster/SingleRunner.js +2 -1
  934. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  935. package/dist/unstable/cluster/Singleton.js.map +1 -1
  936. package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
  937. package/dist/unstable/cluster/SingletonAddress.js +1 -1
  938. package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
  939. package/dist/unstable/cluster/Snowflake.d.ts +8 -8
  940. package/dist/unstable/cluster/Snowflake.js +8 -8
  941. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  942. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  943. package/dist/unstable/cluster/SqlMessageStorage.d.ts +7 -4
  944. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  945. package/dist/unstable/cluster/SqlMessageStorage.js +56 -25
  946. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  947. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  948. package/dist/unstable/cluster/SqlRunnerStorage.js +141 -79
  949. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  950. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  951. package/dist/unstable/cluster/index.js.map +1 -1
  952. package/dist/unstable/cluster/internal/entityManager.js +25 -13
  953. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  954. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  955. package/dist/unstable/cluster/internal/hash.js.map +1 -1
  956. package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
  957. package/dist/unstable/cluster/internal/resourceMap.js +2 -2
  958. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  959. package/dist/unstable/cluster/internal/resourceRef.js +17 -0
  960. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  961. package/dist/unstable/cluster/internal/shardLock.d.ts +2 -0
  962. package/dist/unstable/cluster/internal/shardLock.d.ts.map +1 -0
  963. package/dist/unstable/cluster/internal/shardLock.js +4 -0
  964. package/dist/unstable/cluster/internal/shardLock.js.map +1 -0
  965. package/dist/unstable/devtools/DevTools.js.map +1 -1
  966. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  967. package/dist/unstable/devtools/DevToolsClient.js +7 -2
  968. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  969. package/dist/unstable/devtools/DevToolsSchema.d.ts +20 -20
  970. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  971. package/dist/unstable/devtools/DevToolsSchema.js +8 -5
  972. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  973. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  974. package/dist/unstable/devtools/index.js.map +1 -1
  975. package/dist/unstable/encoding/Ini.d.ts +20 -0
  976. package/dist/unstable/encoding/Ini.d.ts.map +1 -0
  977. package/dist/unstable/encoding/Ini.js +153 -0
  978. package/dist/unstable/encoding/Ini.js.map +1 -0
  979. package/dist/unstable/encoding/Msgpack.d.ts +2 -1
  980. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  981. package/dist/unstable/encoding/Msgpack.js +31 -19
  982. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  983. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  984. package/dist/unstable/encoding/Ndjson.js +7 -1
  985. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  986. package/dist/unstable/encoding/Sse.d.ts +72 -8
  987. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  988. package/dist/unstable/encoding/Sse.js +72 -31
  989. package/dist/unstable/encoding/Sse.js.map +1 -1
  990. package/dist/unstable/encoding/Toml.d.ts +19 -0
  991. package/dist/unstable/encoding/Toml.d.ts.map +1 -0
  992. package/dist/unstable/encoding/Toml.js +434 -0
  993. package/dist/unstable/encoding/Toml.js.map +1 -0
  994. package/dist/unstable/encoding/Yaml.d.ts +19 -0
  995. package/dist/unstable/encoding/Yaml.d.ts.map +1 -0
  996. package/dist/unstable/encoding/Yaml.js +461 -0
  997. package/dist/unstable/encoding/Yaml.js.map +1 -0
  998. package/dist/unstable/encoding/index.d.ts +12 -0
  999. package/dist/unstable/encoding/index.d.ts.map +1 -1
  1000. package/dist/unstable/encoding/index.js +12 -0
  1001. package/dist/unstable/encoding/index.js.map +1 -1
  1002. package/dist/unstable/eventlog/Event.d.ts +20 -20
  1003. package/dist/unstable/eventlog/Event.js.map +1 -1
  1004. package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
  1005. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  1006. package/dist/unstable/eventlog/EventJournal.d.ts +17 -17
  1007. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  1008. package/dist/unstable/eventlog/EventJournal.js +27 -19
  1009. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  1010. package/dist/unstable/eventlog/EventLog.d.ts +3 -3
  1011. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  1012. package/dist/unstable/eventlog/EventLog.js +18 -14
  1013. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  1014. package/dist/unstable/eventlog/EventLogEncryption.d.ts +8 -7
  1015. package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
  1016. package/dist/unstable/eventlog/EventLogEncryption.js +16 -14
  1017. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  1018. package/dist/unstable/eventlog/EventLogMessage.d.ts +31 -31
  1019. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
  1020. package/dist/unstable/eventlog/EventLogMessage.js +12 -8
  1021. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  1022. package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
  1023. package/dist/unstable/eventlog/EventLogRemote.js +5 -5
  1024. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  1025. package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
  1026. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  1027. package/dist/unstable/eventlog/EventLogServer.js +45 -21
  1028. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  1029. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
  1030. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  1031. package/dist/unstable/eventlog/EventLogServerEncrypted.js +16 -7
  1032. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  1033. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
  1034. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  1035. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +15 -7
  1036. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  1037. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
  1038. package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
  1039. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  1040. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
  1041. package/dist/unstable/eventlog/SqlEventJournal.js +3 -6
  1042. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  1043. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +1 -1
  1044. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  1045. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +3 -3
  1046. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  1047. package/dist/unstable/eventlog/index.js.map +1 -1
  1048. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  1049. package/dist/unstable/http/Cookies.d.ts +2 -2
  1050. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  1051. package/dist/unstable/http/Cookies.js +54 -40
  1052. package/dist/unstable/http/Cookies.js.map +1 -1
  1053. package/dist/unstable/http/Etag.d.ts +1 -1
  1054. package/dist/unstable/http/Etag.js +1 -1
  1055. package/dist/unstable/http/Etag.js.map +1 -1
  1056. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  1057. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  1058. package/dist/unstable/http/FindMyWay/internal/queryString.d.ts +11 -0
  1059. package/dist/unstable/http/FindMyWay/internal/queryString.d.ts.map +1 -0
  1060. package/dist/unstable/http/FindMyWay/internal/queryString.js +259 -0
  1061. package/dist/unstable/http/FindMyWay/internal/queryString.js.map +1 -0
  1062. package/dist/unstable/http/FindMyWay/internal/router.d.ts +2 -0
  1063. package/dist/unstable/http/FindMyWay/internal/router.d.ts.map +1 -0
  1064. package/dist/unstable/http/FindMyWay/internal/router.js +665 -0
  1065. package/dist/unstable/http/FindMyWay/internal/router.js.map +1 -0
  1066. package/dist/unstable/http/FindMyWay.d.ts +33 -8
  1067. package/dist/unstable/http/FindMyWay.d.ts.map +1 -1
  1068. package/dist/unstable/http/FindMyWay.js +4 -7
  1069. package/dist/unstable/http/FindMyWay.js.map +1 -1
  1070. package/dist/unstable/http/Headers.d.ts +2 -2
  1071. package/dist/unstable/http/Headers.js +10 -10
  1072. package/dist/unstable/http/Headers.js.map +1 -1
  1073. package/dist/unstable/http/HttpBody.d.ts +5 -3
  1074. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  1075. package/dist/unstable/http/HttpBody.js +11 -5
  1076. package/dist/unstable/http/HttpBody.js.map +1 -1
  1077. package/dist/unstable/http/HttpClient.d.ts +110 -47
  1078. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  1079. package/dist/unstable/http/HttpClient.js +79 -36
  1080. package/dist/unstable/http/HttpClient.js.map +1 -1
  1081. package/dist/unstable/http/HttpClientError.js +1 -1
  1082. package/dist/unstable/http/HttpClientError.js.map +1 -1
  1083. package/dist/unstable/http/HttpClientRequest.d.ts +44 -0
  1084. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  1085. package/dist/unstable/http/HttpClientRequest.js +16 -12
  1086. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  1087. package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
  1088. package/dist/unstable/http/HttpClientResponse.js +3 -18
  1089. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  1090. package/dist/unstable/http/HttpEffect.d.ts +7 -9
  1091. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  1092. package/dist/unstable/http/HttpEffect.js +7 -8
  1093. package/dist/unstable/http/HttpEffect.js.map +1 -1
  1094. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  1095. package/dist/unstable/http/HttpMethod.d.ts +6 -9
  1096. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  1097. package/dist/unstable/http/HttpMethod.js +6 -9
  1098. package/dist/unstable/http/HttpMethod.js.map +1 -1
  1099. package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
  1100. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  1101. package/dist/unstable/http/HttpMiddleware.js +164 -39
  1102. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  1103. package/dist/unstable/http/HttpPlatform.d.ts +76 -0
  1104. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  1105. package/dist/unstable/http/HttpPlatform.js +53 -3
  1106. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  1107. package/dist/unstable/http/HttpRouter.d.ts +91 -92
  1108. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  1109. package/dist/unstable/http/HttpRouter.js +78 -79
  1110. package/dist/unstable/http/HttpRouter.js.map +1 -1
  1111. package/dist/unstable/http/HttpServer.d.ts +13 -13
  1112. package/dist/unstable/http/HttpServer.js +6 -6
  1113. package/dist/unstable/http/HttpServer.js.map +1 -1
  1114. package/dist/unstable/http/HttpServerError.d.ts +2 -2
  1115. package/dist/unstable/http/HttpServerError.js +2 -2
  1116. package/dist/unstable/http/HttpServerError.js.map +1 -1
  1117. package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
  1118. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  1119. package/dist/unstable/http/HttpServerRequest.js +23 -15
  1120. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  1121. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  1122. package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
  1123. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  1124. package/dist/unstable/http/HttpServerResponse.js +17 -5
  1125. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  1126. package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
  1127. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  1128. package/dist/unstable/http/HttpStaticServer.js +35 -7
  1129. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  1130. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  1131. package/dist/unstable/http/Multipart.d.ts +28 -9
  1132. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  1133. package/dist/unstable/http/Multipart.js +68 -36
  1134. package/dist/unstable/http/Multipart.js.map +1 -1
  1135. package/dist/unstable/http/MultipartParser/HeadersParser.d.ts +53 -0
  1136. package/dist/unstable/http/MultipartParser/HeadersParser.d.ts.map +1 -0
  1137. package/dist/unstable/http/MultipartParser/HeadersParser.js +14 -0
  1138. package/dist/unstable/http/MultipartParser/HeadersParser.js.map +1 -0
  1139. package/dist/unstable/http/MultipartParser/Search.d.ts +11 -0
  1140. package/dist/unstable/http/MultipartParser/Search.d.ts.map +1 -0
  1141. package/dist/unstable/http/MultipartParser/Search.js +14 -0
  1142. package/dist/unstable/http/MultipartParser/Search.js.map +1 -0
  1143. package/dist/unstable/http/MultipartParser/internal/contentType.d.ts +5 -0
  1144. package/dist/unstable/http/MultipartParser/internal/contentType.d.ts.map +1 -0
  1145. package/dist/unstable/http/MultipartParser/internal/contentType.js +82 -0
  1146. package/dist/unstable/http/MultipartParser/internal/contentType.js.map +1 -0
  1147. package/dist/unstable/http/MultipartParser/internal/headers.d.ts +3 -0
  1148. package/dist/unstable/http/MultipartParser/internal/headers.d.ts.map +1 -0
  1149. package/dist/unstable/http/MultipartParser/internal/headers.js +208 -0
  1150. package/dist/unstable/http/MultipartParser/internal/headers.js.map +1 -0
  1151. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts +8 -0
  1152. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts.map +1 -0
  1153. package/dist/unstable/http/MultipartParser/internal/multipart.js +241 -0
  1154. package/dist/unstable/http/MultipartParser/internal/multipart.js.map +1 -0
  1155. package/dist/unstable/http/MultipartParser/internal/search.d.ts +5 -0
  1156. package/dist/unstable/http/MultipartParser/internal/search.d.ts.map +1 -0
  1157. package/dist/unstable/http/MultipartParser/internal/search.js +120 -0
  1158. package/dist/unstable/http/MultipartParser/internal/search.js.map +1 -0
  1159. package/dist/unstable/http/MultipartParser.d.ts +98 -0
  1160. package/dist/unstable/http/MultipartParser.d.ts.map +1 -0
  1161. package/dist/unstable/http/MultipartParser.js +23 -0
  1162. package/dist/unstable/http/MultipartParser.js.map +1 -0
  1163. package/dist/unstable/http/Template.d.ts.map +1 -1
  1164. package/dist/unstable/http/Template.js +3 -3
  1165. package/dist/unstable/http/Template.js.map +1 -1
  1166. package/dist/unstable/http/Url.d.ts +33 -63
  1167. package/dist/unstable/http/Url.d.ts.map +1 -1
  1168. package/dist/unstable/http/Url.js +14 -28
  1169. package/dist/unstable/http/Url.js.map +1 -1
  1170. package/dist/unstable/http/UrlParams.d.ts +10 -18
  1171. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  1172. package/dist/unstable/http/UrlParams.js +26 -31
  1173. package/dist/unstable/http/UrlParams.js.map +1 -1
  1174. package/dist/unstable/http/index.d.ts +1 -1
  1175. package/dist/unstable/http/index.d.ts.map +1 -1
  1176. package/dist/unstable/http/index.js +1 -1
  1177. package/dist/unstable/http/index.js.map +1 -1
  1178. package/dist/unstable/http/internal/compression.d.ts +2 -0
  1179. package/dist/unstable/http/internal/compression.d.ts.map +1 -0
  1180. package/dist/unstable/http/internal/compression.js +155 -0
  1181. package/dist/unstable/http/internal/compression.js.map +1 -0
  1182. package/dist/unstable/http/internal/httpBody.d.ts +2 -0
  1183. package/dist/unstable/http/internal/httpBody.d.ts.map +1 -0
  1184. package/dist/unstable/http/internal/httpBody.js +10 -0
  1185. package/dist/unstable/http/internal/httpBody.js.map +1 -0
  1186. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
  1187. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  1188. package/dist/unstable/httpapi/HttpApi.js +9 -9
  1189. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  1190. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +2 -2
  1191. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  1192. package/dist/unstable/httpapi/HttpApiBuilder.js +82 -30
  1193. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  1194. package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
  1195. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  1196. package/dist/unstable/httpapi/HttpApiClient.js +89 -51
  1197. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  1198. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +48 -46
  1199. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  1200. package/dist/unstable/httpapi/HttpApiEndpoint.js +73 -16
  1201. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  1202. package/dist/unstable/httpapi/HttpApiError.d.ts +18 -18
  1203. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  1204. package/dist/unstable/httpapi/HttpApiError.js +30 -30
  1205. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  1206. package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
  1207. package/dist/unstable/httpapi/HttpApiGroup.js +2 -2
  1208. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  1209. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
  1210. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  1211. package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
  1212. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  1213. package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
  1214. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  1215. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  1216. package/dist/unstable/httpapi/HttpApiSchema.d.ts +225 -6
  1217. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  1218. package/dist/unstable/httpapi/HttpApiSchema.js +174 -4
  1219. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  1220. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  1221. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  1222. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  1223. package/dist/unstable/httpapi/OpenApi.d.ts +21 -13
  1224. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  1225. package/dist/unstable/httpapi/OpenApi.js +110 -57
  1226. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  1227. package/dist/unstable/httpapi/index.js.map +1 -1
  1228. package/dist/unstable/httpapi/internal/html.js.map +1 -1
  1229. package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
  1230. package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
  1231. package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
  1232. package/dist/unstable/observability/Otlp.js.map +1 -1
  1233. package/dist/unstable/observability/OtlpExporter.d.ts +71 -2
  1234. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  1235. package/dist/unstable/observability/OtlpExporter.js +86 -7
  1236. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  1237. package/dist/unstable/observability/OtlpLogger.d.ts +4 -3
  1238. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  1239. package/dist/unstable/observability/OtlpLogger.js +4 -4
  1240. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  1241. package/dist/unstable/observability/OtlpMetrics.d.ts +11 -4
  1242. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  1243. package/dist/unstable/observability/OtlpMetrics.js +31 -15
  1244. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  1245. package/dist/unstable/observability/OtlpResource.d.ts +16 -7
  1246. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  1247. package/dist/unstable/observability/OtlpResource.js +21 -12
  1248. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  1249. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  1250. package/dist/unstable/observability/OtlpTracer.d.ts +4 -3
  1251. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  1252. package/dist/unstable/observability/OtlpTracer.js +3 -3
  1253. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  1254. package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
  1255. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  1256. package/dist/unstable/observability/PrometheusMetrics.js +10 -3
  1257. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  1258. package/dist/unstable/observability/index.js.map +1 -1
  1259. package/dist/unstable/observability/internal/otlpEnv.js +1 -1
  1260. package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
  1261. package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
  1262. package/dist/unstable/observability/internal/protobuf.js +3 -0
  1263. package/dist/unstable/observability/internal/protobuf.js.map +1 -1
  1264. package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
  1265. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  1266. package/dist/unstable/persistence/KeyValueStore.js +22 -13
  1267. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  1268. package/dist/unstable/persistence/Persistable.d.ts +8 -8
  1269. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  1270. package/dist/unstable/persistence/Persistable.js +2 -1
  1271. package/dist/unstable/persistence/Persistable.js.map +1 -1
  1272. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  1273. package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
  1274. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  1275. package/dist/unstable/persistence/PersistedQueue.js +15 -15
  1276. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  1277. package/dist/unstable/persistence/Persistence.d.ts +3 -3
  1278. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  1279. package/dist/unstable/persistence/Persistence.js +108 -22
  1280. package/dist/unstable/persistence/Persistence.js.map +1 -1
  1281. package/dist/unstable/persistence/RateLimiter.d.ts +47 -26
  1282. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  1283. package/dist/unstable/persistence/RateLimiter.js +31 -47
  1284. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  1285. package/dist/unstable/persistence/Redis.d.ts +2 -2
  1286. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  1287. package/dist/unstable/persistence/Redis.js +9 -7
  1288. package/dist/unstable/persistence/Redis.js.map +1 -1
  1289. package/dist/unstable/persistence/index.js.map +1 -1
  1290. package/dist/unstable/process/ChildProcess.d.ts +72 -21
  1291. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  1292. package/dist/unstable/process/ChildProcess.js +14 -5
  1293. package/dist/unstable/process/ChildProcess.js.map +1 -1
  1294. package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
  1295. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1296. package/dist/unstable/process/ChildProcessSpawner.js +4 -2
  1297. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1298. package/dist/unstable/process/index.js.map +1 -1
  1299. package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
  1300. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  1301. package/dist/unstable/reactivity/AsyncResult.js +14 -13
  1302. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  1303. package/dist/unstable/reactivity/Atom.d.ts +131 -30
  1304. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1305. package/dist/unstable/reactivity/Atom.js +53 -34
  1306. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1307. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
  1308. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1309. package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
  1310. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1311. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  1312. package/dist/unstable/reactivity/AtomRegistry.js +25 -4
  1313. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1314. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  1315. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1316. package/dist/unstable/reactivity/AtomRpc.js +4 -1
  1317. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1318. package/dist/unstable/reactivity/Hydration.d.ts +1 -1
  1319. package/dist/unstable/reactivity/Hydration.js +1 -1
  1320. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  1321. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1322. package/dist/unstable/reactivity/index.js.map +1 -1
  1323. package/dist/unstable/rpc/Rpc.d.ts +35 -33
  1324. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1325. package/dist/unstable/rpc/Rpc.js +4 -2
  1326. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1327. package/dist/unstable/rpc/RpcClient.d.ts +26 -12
  1328. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1329. package/dist/unstable/rpc/RpcClient.js +40 -22
  1330. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1331. package/dist/unstable/rpc/RpcClientError.js +2 -2
  1332. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  1333. package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
  1334. package/dist/unstable/rpc/RpcGroup.js +1 -1
  1335. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1336. package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
  1337. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  1338. package/dist/unstable/rpc/RpcMessage.js +6 -6
  1339. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  1340. package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
  1341. package/dist/unstable/rpc/RpcMiddleware.js +1 -1
  1342. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1343. package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
  1344. package/dist/unstable/rpc/RpcSchema.js +3 -3
  1345. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1346. package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
  1347. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1348. package/dist/unstable/rpc/RpcSerialization.js +177 -96
  1349. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1350. package/dist/unstable/rpc/RpcServer.d.ts +13 -13
  1351. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  1352. package/dist/unstable/rpc/RpcServer.js +20 -15
  1353. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1354. package/dist/unstable/rpc/RpcTest.js.map +1 -1
  1355. package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
  1356. package/dist/unstable/rpc/RpcWorker.js +4 -4
  1357. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1358. package/dist/unstable/rpc/Utils.js.map +1 -1
  1359. package/dist/unstable/rpc/index.js.map +1 -1
  1360. package/dist/unstable/schema/Model.d.ts +53 -51
  1361. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1362. package/dist/unstable/schema/Model.js +35 -33
  1363. package/dist/unstable/schema/Model.js.map +1 -1
  1364. package/dist/unstable/schema/VariantSchema.d.ts +11 -12
  1365. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  1366. package/dist/unstable/schema/VariantSchema.js +28 -17
  1367. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1368. package/dist/unstable/schema/index.js.map +1 -1
  1369. package/dist/unstable/socket/Socket.d.ts +12 -4
  1370. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1371. package/dist/unstable/socket/Socket.js +38 -17
  1372. package/dist/unstable/socket/Socket.js.map +1 -1
  1373. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1374. package/dist/unstable/socket/index.js.map +1 -1
  1375. package/dist/unstable/sql/Migrator.d.ts +9 -1
  1376. package/dist/unstable/sql/Migrator.d.ts.map +1 -1
  1377. package/dist/unstable/sql/Migrator.js +15 -2
  1378. package/dist/unstable/sql/Migrator.js.map +1 -1
  1379. package/dist/unstable/sql/SqlClient.d.ts +2 -3
  1380. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1381. package/dist/unstable/sql/SqlClient.js +8 -4
  1382. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1383. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1384. package/dist/unstable/sql/SqlError.d.ts +2 -2
  1385. package/dist/unstable/sql/SqlError.js +15 -15
  1386. package/dist/unstable/sql/SqlError.js.map +1 -1
  1387. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  1388. package/dist/unstable/sql/SqlModel.js +2 -2
  1389. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1390. package/dist/unstable/sql/SqlResolver.d.ts +5 -5
  1391. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  1392. package/dist/unstable/sql/SqlResolver.js +30 -24
  1393. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1394. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1395. package/dist/unstable/sql/SqlStream.js.map +1 -1
  1396. package/dist/unstable/sql/Statement.d.ts +6 -6
  1397. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  1398. package/dist/unstable/sql/Statement.js +30 -27
  1399. package/dist/unstable/sql/Statement.js.map +1 -1
  1400. package/dist/unstable/sql/index.js.map +1 -1
  1401. package/dist/unstable/workers/Transferable.d.ts +1 -1
  1402. package/dist/unstable/workers/Transferable.js +1 -1
  1403. package/dist/unstable/workers/Transferable.js.map +1 -1
  1404. package/dist/unstable/workers/Worker.d.ts +2 -2
  1405. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  1406. package/dist/unstable/workers/Worker.js +13 -14
  1407. package/dist/unstable/workers/Worker.js.map +1 -1
  1408. package/dist/unstable/workers/WorkerError.d.ts +7 -7
  1409. package/dist/unstable/workers/WorkerError.js +11 -11
  1410. package/dist/unstable/workers/WorkerError.js.map +1 -1
  1411. package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
  1412. package/dist/unstable/workers/WorkerRunner.js +1 -1
  1413. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1414. package/dist/unstable/workers/index.js.map +1 -1
  1415. package/dist/unstable/workflow/Activity.d.ts +2 -2
  1416. package/dist/unstable/workflow/Activity.js +2 -2
  1417. package/dist/unstable/workflow/Activity.js.map +1 -1
  1418. package/dist/unstable/workflow/DurableClock.d.ts +1 -1
  1419. package/dist/unstable/workflow/DurableClock.js +1 -1
  1420. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1421. package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
  1422. package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
  1423. package/dist/unstable/workflow/DurableDeferred.js +13 -8
  1424. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1425. package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
  1426. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  1427. package/dist/unstable/workflow/DurableQueue.js +22 -20
  1428. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  1429. package/dist/unstable/workflow/Workflow.d.ts +21 -21
  1430. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1431. package/dist/unstable/workflow/Workflow.js +13 -14
  1432. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1433. package/dist/unstable/workflow/WorkflowEngine.d.ts +26 -3
  1434. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  1435. package/dist/unstable/workflow/WorkflowEngine.js +72 -6
  1436. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1437. package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
  1438. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  1439. package/dist/unstable/workflow/WorkflowProxy.js +4 -2
  1440. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  1441. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1442. package/dist/unstable/workflow/index.js.map +1 -1
  1443. package/dist/unstable/workflow/internal/crypto.js.map +1 -1
  1444. package/package.json +12 -16
  1445. package/src/Array.ts +1069 -1071
  1446. package/src/BigDecimal.ts +433 -756
  1447. package/src/BigInt.ts +213 -269
  1448. package/src/Boolean.ts +146 -188
  1449. package/src/Brand.ts +4 -4
  1450. package/src/Cache.ts +469 -851
  1451. package/src/Cause.ts +167 -277
  1452. package/src/Channel.ts +982 -831
  1453. package/src/ChannelSchema.ts +1 -1
  1454. package/src/Chunk.ts +841 -1181
  1455. package/src/Clock.ts +181 -49
  1456. package/src/Combiner.ts +20 -33
  1457. package/src/Config.ts +642 -335
  1458. package/src/ConfigProvider.ts +267 -135
  1459. package/src/Console.ts +289 -39
  1460. package/src/Context.ts +323 -404
  1461. package/src/Cron.ts +271 -219
  1462. package/src/Crypto.ts +30 -23
  1463. package/src/Data.ts +63 -82
  1464. package/src/DateTime.ts +564 -660
  1465. package/src/Deferred.ts +259 -258
  1466. package/src/Duration.ts +244 -311
  1467. package/src/Effect.ts +3215 -3394
  1468. package/src/Encoding.ts +22 -40
  1469. package/src/Equal.ts +59 -41
  1470. package/src/Equivalence.ts +103 -105
  1471. package/src/ErrorReporter.ts +51 -27
  1472. package/src/ExecutionPlan.ts +91 -56
  1473. package/src/Exit.ts +116 -192
  1474. package/src/Fiber.ts +82 -149
  1475. package/src/FiberHandle.ts +155 -107
  1476. package/src/FiberMap.ts +225 -174
  1477. package/src/FiberSet.ts +125 -83
  1478. package/src/FileSystem.ts +156 -264
  1479. package/src/Filter.ts +61 -33
  1480. package/src/Formatter.ts +69 -76
  1481. package/src/Function.ts +119 -151
  1482. package/src/Graph.ts +3258 -1102
  1483. package/src/HKT.ts +12 -6
  1484. package/src/Hash.ts +52 -83
  1485. package/src/HashMap.ts +319 -411
  1486. package/src/HashRing.ts +1 -0
  1487. package/src/HashSet.ts +177 -284
  1488. package/src/Inspectable.ts +22 -20
  1489. package/src/Iterable.ts +665 -799
  1490. package/src/JsonPatch.ts +60 -113
  1491. package/src/JsonPointer.ts +8 -8
  1492. package/src/JsonSchema.ts +408 -251
  1493. package/src/Latch.ts +23 -35
  1494. package/src/Layer.ts +366 -265
  1495. package/src/LayerMap.ts +49 -29
  1496. package/src/LayerRef.ts +6 -2
  1497. package/src/LogLevel.ts +114 -214
  1498. package/src/Logger.ts +348 -700
  1499. package/src/ManagedRuntime.ts +20 -5
  1500. package/src/Match.ts +217 -252
  1501. package/src/Metric.ts +520 -1092
  1502. package/src/MutableHashMap.ts +218 -255
  1503. package/src/MutableHashSet.ts +84 -89
  1504. package/src/MutableList.ts +77 -370
  1505. package/src/MutableRef.ts +420 -243
  1506. package/src/Newtype.ts +21 -14
  1507. package/src/NonEmptyIterable.ts +7 -137
  1508. package/src/Number.ts +196 -233
  1509. package/src/Optic.ts +303 -441
  1510. package/src/Option.ts +449 -813
  1511. package/src/Order.ts +109 -109
  1512. package/src/Ordering.ts +20 -23
  1513. package/src/PartitionedSemaphore.ts +1 -4
  1514. package/src/Path.ts +38 -41
  1515. package/src/Pipeable.ts +6 -5
  1516. package/src/PlatformError.ts +4 -4
  1517. package/src/Pool.ts +4 -2
  1518. package/src/Predicate.ts +200 -181
  1519. package/src/PrimaryKey.ts +7 -7
  1520. package/src/PubSub.ts +526 -552
  1521. package/src/Pull.ts +24 -18
  1522. package/src/Queue.ts +204 -165
  1523. package/src/Random.ts +49 -74
  1524. package/src/RcMap.ts +121 -63
  1525. package/src/RcRef.ts +24 -13
  1526. package/src/Record.ts +387 -487
  1527. package/src/Redactable.ts +10 -3
  1528. package/src/Redacted.ts +25 -25
  1529. package/src/Reducer.ts +8 -15
  1530. package/src/Ref.ts +221 -361
  1531. package/src/References.ts +102 -214
  1532. package/src/RegExp.ts +10 -14
  1533. package/src/Request.ts +36 -28
  1534. package/src/RequestResolver.ts +202 -91
  1535. package/src/Result.ts +314 -485
  1536. package/src/Runtime.ts +50 -75
  1537. package/src/Schedule.ts +311 -1737
  1538. package/src/Scheduler.ts +20 -7
  1539. package/src/Schema.ts +3476 -1914
  1540. package/src/SchemaAST.ts +902 -573
  1541. package/src/SchemaGetter.ts +351 -233
  1542. package/src/SchemaIssue.ts +367 -334
  1543. package/src/SchemaParser.ts +254 -148
  1544. package/src/SchemaRepresentation.ts +732 -3414
  1545. package/src/SchemaTransformation.ts +186 -97
  1546. package/src/Scope.ts +123 -151
  1547. package/src/ScopedCache.ts +1 -1
  1548. package/src/ScopedRef.ts +6 -4
  1549. package/src/Semaphore.ts +157 -54
  1550. package/src/Sink.ts +129 -114
  1551. package/src/Stdio.ts +24 -5
  1552. package/src/Stream.ts +2745 -3173
  1553. package/src/String.ts +275 -312
  1554. package/src/Struct.ts +114 -118
  1555. package/src/SubscriptionRef.ts +284 -252
  1556. package/src/Symbol.ts +3 -3
  1557. package/src/SynchronizedRef.ts +1 -1
  1558. package/src/Terminal.ts +3 -3
  1559. package/src/Tracer.ts +102 -55
  1560. package/src/Trie.ts +287 -679
  1561. package/src/Tuple.ts +99 -131
  1562. package/src/TxChunk.ts +201 -121
  1563. package/src/TxDeferred.ts +62 -46
  1564. package/src/TxHashMap.ts +645 -799
  1565. package/src/TxHashSet.ts +443 -356
  1566. package/src/TxPriorityQueue.ts +130 -98
  1567. package/src/TxPubSub.ts +107 -80
  1568. package/src/TxQueue.ts +215 -184
  1569. package/src/TxReentrantLock.ts +136 -101
  1570. package/src/TxRef.ts +51 -32
  1571. package/src/TxSemaphore.ts +129 -95
  1572. package/src/TxSubscriptionRef.ts +97 -70
  1573. package/src/Types.ts +127 -70
  1574. package/src/Unify.ts +45 -65
  1575. package/src/Utils.ts +23 -16
  1576. package/src/index.ts +0 -10
  1577. package/src/internal/core.ts +6 -5
  1578. package/src/internal/dateTime.ts +7 -1
  1579. package/src/internal/effect.ts +313 -137
  1580. package/src/internal/executionPlan.ts +106 -10
  1581. package/src/internal/hashMap.ts +20 -14
  1582. package/src/internal/matcher.ts +3 -3
  1583. package/src/internal/persistence.ts +2 -0
  1584. package/src/internal/rcRef.ts +24 -16
  1585. package/src/internal/record.ts +11 -7
  1586. package/src/internal/references.ts +3 -7
  1587. package/src/internal/schedule.ts +4 -4
  1588. package/src/internal/schema/annotations.ts +48 -1
  1589. package/src/internal/schema/fromJsonSchemaDocument.ts +977 -0
  1590. package/src/internal/schema/fromRepresentation.ts +339 -0
  1591. package/src/internal/schema/parser.ts +22 -0
  1592. package/src/internal/schema/schema.ts +46 -63
  1593. package/src/internal/schema/{arbitrary.ts → toArbitrary.ts} +9 -81
  1594. package/src/internal/schema/toCodeDocument.ts +572 -0
  1595. package/src/internal/schema/{equivalence.ts → toEquivalence.ts} +12 -7
  1596. package/src/internal/schema/toJsonSchemaDocument.ts +549 -0
  1597. package/src/internal/schema/toRepresentation.ts +404 -0
  1598. package/src/internal/stackTraceLimit.ts +3 -7
  1599. package/src/internal/trie.ts +21 -12
  1600. package/src/testing/FastCheck.ts +8 -7
  1601. package/src/testing/TestClock.ts +86 -32
  1602. package/src/testing/TestConsole.ts +32 -31
  1603. package/src/testing/TestSchema.ts +40 -40
  1604. package/src/unstable/ai/AiError.ts +119 -141
  1605. package/src/unstable/ai/AnthropicStructuredOutput.ts +103 -334
  1606. package/src/unstable/ai/Chat.ts +133 -98
  1607. package/src/unstable/ai/EmbeddingModel.ts +1 -1
  1608. package/src/unstable/ai/IdGenerator.ts +32 -28
  1609. package/src/unstable/ai/LanguageModel.ts +141 -97
  1610. package/src/unstable/ai/McpProtocol.ts +48 -0
  1611. package/src/unstable/ai/McpSchema.ts +92 -81
  1612. package/src/unstable/ai/McpServer.ts +1057 -303
  1613. package/src/unstable/ai/Model.ts +9 -20
  1614. package/src/unstable/ai/OpenAiStructuredOutput.ts +231 -396
  1615. package/src/unstable/ai/Prompt.ts +212 -63
  1616. package/src/unstable/ai/Response.ts +52 -38
  1617. package/src/unstable/ai/Telemetry.ts +46 -13
  1618. package/src/unstable/ai/Tokenizer.ts +14 -3
  1619. package/src/unstable/ai/Tool.ts +94 -64
  1620. package/src/unstable/ai/Toolkit.ts +45 -15
  1621. package/src/unstable/ai/index.ts +5 -0
  1622. package/src/unstable/ai/internal/codec-transformer.ts +13 -7
  1623. package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
  1624. package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
  1625. package/src/unstable/ai/internal/structured-output.ts +453 -0
  1626. package/src/unstable/cli/Argument.ts +279 -72
  1627. package/src/unstable/cli/CliConfig.ts +85 -0
  1628. package/src/unstable/cli/CliError.ts +161 -90
  1629. package/src/unstable/cli/CliOutput.ts +44 -58
  1630. package/src/unstable/cli/Command.ts +839 -123
  1631. package/src/unstable/cli/Flag.ts +418 -138
  1632. package/src/unstable/cli/GlobalFlag.ts +34 -6
  1633. package/src/unstable/cli/HelpDoc.ts +12 -4
  1634. package/src/unstable/cli/Param.ts +351 -103
  1635. package/src/unstable/cli/Primitive.ts +383 -156
  1636. package/src/unstable/cli/Prompt.ts +64 -34
  1637. package/src/unstable/cli/index.ts +5 -0
  1638. package/src/unstable/cli/internal/ansi.ts +5 -2
  1639. package/src/unstable/cli/internal/command.ts +28 -15
  1640. package/src/unstable/cli/internal/completions/bash.ts +59 -9
  1641. package/src/unstable/cli/internal/completions/descriptor.ts +14 -20
  1642. package/src/unstable/cli/internal/completions/fish.ts +5 -7
  1643. package/src/unstable/cli/internal/config.ts +8 -10
  1644. package/src/unstable/cli/internal/help.ts +4 -2
  1645. package/src/unstable/cli/internal/lexer.ts +8 -2
  1646. package/src/unstable/cli/internal/parser.ts +19 -7
  1647. package/src/unstable/cli/internal/wizard.ts +283 -0
  1648. package/src/unstable/cluster/ClusterError.ts +7 -7
  1649. package/src/unstable/cluster/ClusterSchema.ts +8 -8
  1650. package/src/unstable/cluster/ClusterWorkflowEngine.ts +36 -20
  1651. package/src/unstable/cluster/Entity.ts +23 -19
  1652. package/src/unstable/cluster/EntityProxy.ts +16 -7
  1653. package/src/unstable/cluster/EntityResource.ts +2 -2
  1654. package/src/unstable/cluster/Envelope.ts +5 -4
  1655. package/src/unstable/cluster/HttpRunner.ts +6 -4
  1656. package/src/unstable/cluster/Message.ts +9 -9
  1657. package/src/unstable/cluster/MessageStorage.ts +24 -20
  1658. package/src/unstable/cluster/Reply.ts +26 -7
  1659. package/src/unstable/cluster/Runner.ts +1 -1
  1660. package/src/unstable/cluster/RunnerAddress.ts +1 -1
  1661. package/src/unstable/cluster/RunnerHealth.ts +1 -1
  1662. package/src/unstable/cluster/RunnerServer.ts +45 -18
  1663. package/src/unstable/cluster/RunnerStorage.ts +12 -10
  1664. package/src/unstable/cluster/Runners.ts +48 -26
  1665. package/src/unstable/cluster/ShardId.ts +1 -1
  1666. package/src/unstable/cluster/Sharding.ts +223 -55
  1667. package/src/unstable/cluster/ShardingConfig.ts +8 -4
  1668. package/src/unstable/cluster/SingleRunner.ts +4 -2
  1669. package/src/unstable/cluster/SingletonAddress.ts +1 -1
  1670. package/src/unstable/cluster/Snowflake.ts +8 -8
  1671. package/src/unstable/cluster/SqlMessageStorage.ts +84 -36
  1672. package/src/unstable/cluster/SqlRunnerStorage.ts +223 -133
  1673. package/src/unstable/cluster/internal/entityManager.ts +43 -26
  1674. package/src/unstable/cluster/internal/resourceMap.ts +5 -2
  1675. package/src/unstable/cluster/internal/resourceRef.ts +27 -5
  1676. package/src/unstable/cluster/internal/shardLock.ts +9 -0
  1677. package/src/unstable/devtools/DevToolsClient.ts +3 -2
  1678. package/src/unstable/devtools/DevToolsSchema.ts +10 -5
  1679. package/src/unstable/encoding/Ini.ts +174 -0
  1680. package/src/unstable/encoding/Msgpack.ts +61 -40
  1681. package/src/unstable/encoding/Ndjson.ts +9 -1
  1682. package/src/unstable/encoding/Sse.ts +109 -37
  1683. package/src/unstable/encoding/Toml.ts +504 -0
  1684. package/src/unstable/encoding/Yaml.ts +541 -0
  1685. package/src/unstable/encoding/index.ts +15 -0
  1686. package/src/unstable/eventlog/Event.ts +20 -20
  1687. package/src/unstable/eventlog/EventGroup.ts +4 -4
  1688. package/src/unstable/eventlog/EventJournal.ts +30 -22
  1689. package/src/unstable/eventlog/EventLog.ts +24 -14
  1690. package/src/unstable/eventlog/EventLogEncryption.ts +17 -18
  1691. package/src/unstable/eventlog/EventLogMessage.ts +15 -9
  1692. package/src/unstable/eventlog/EventLogRemote.ts +5 -5
  1693. package/src/unstable/eventlog/EventLogServer.ts +41 -7
  1694. package/src/unstable/eventlog/EventLogServerEncrypted.ts +15 -7
  1695. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +15 -7
  1696. package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
  1697. package/src/unstable/eventlog/SqlEventJournal.ts +8 -6
  1698. package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +1 -1
  1699. package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +6 -3
  1700. package/src/unstable/http/Cookies.ts +64 -45
  1701. package/src/unstable/http/Etag.ts +1 -1
  1702. package/src/unstable/http/FetchHttpClient.ts +3 -1
  1703. package/src/unstable/http/FindMyWay/internal/queryString.ts +420 -0
  1704. package/src/unstable/http/FindMyWay/internal/router.ts +950 -0
  1705. package/src/unstable/http/FindMyWay.ts +65 -6
  1706. package/src/unstable/http/Headers.ts +10 -10
  1707. package/src/unstable/http/HttpBody.ts +20 -5
  1708. package/src/unstable/http/HttpClient.ts +215 -78
  1709. package/src/unstable/http/HttpClientError.ts +1 -1
  1710. package/src/unstable/http/HttpClientRequest.ts +59 -12
  1711. package/src/unstable/http/HttpClientResponse.ts +5 -21
  1712. package/src/unstable/http/HttpEffect.ts +20 -19
  1713. package/src/unstable/http/HttpMethod.ts +6 -9
  1714. package/src/unstable/http/HttpMiddleware.ts +202 -39
  1715. package/src/unstable/http/HttpPlatform.ts +129 -6
  1716. package/src/unstable/http/HttpRouter.ts +109 -101
  1717. package/src/unstable/http/HttpServer.ts +13 -13
  1718. package/src/unstable/http/HttpServerError.ts +2 -2
  1719. package/src/unstable/http/HttpServerRequest.ts +31 -17
  1720. package/src/unstable/http/HttpServerResponse.ts +38 -6
  1721. package/src/unstable/http/HttpStaticServer.ts +35 -7
  1722. package/src/unstable/http/Multipart.ts +70 -37
  1723. package/src/unstable/http/MultipartParser/HeadersParser.ts +68 -0
  1724. package/src/unstable/http/MultipartParser/Search.ts +17 -0
  1725. package/src/unstable/http/MultipartParser/internal/contentType.ts +103 -0
  1726. package/src/unstable/http/MultipartParser/internal/headers.ts +244 -0
  1727. package/src/unstable/http/MultipartParser/internal/multipart.ts +279 -0
  1728. package/src/unstable/http/MultipartParser/internal/search.ts +167 -0
  1729. package/src/unstable/http/MultipartParser.ts +115 -0
  1730. package/src/unstable/http/Template.ts +7 -6
  1731. package/src/unstable/http/Url.ts +33 -63
  1732. package/src/unstable/http/UrlParams.ts +27 -32
  1733. package/src/unstable/http/index.ts +1 -1
  1734. package/src/unstable/http/internal/compression.ts +196 -0
  1735. package/src/unstable/http/internal/httpBody.ts +15 -0
  1736. package/src/unstable/httpapi/HttpApi.ts +10 -11
  1737. package/src/unstable/httpapi/HttpApiBuilder.ts +155 -34
  1738. package/src/unstable/httpapi/HttpApiClient.ts +142 -61
  1739. package/src/unstable/httpapi/HttpApiEndpoint.ts +159 -71
  1740. package/src/unstable/httpapi/HttpApiError.ts +46 -52
  1741. package/src/unstable/httpapi/HttpApiGroup.ts +17 -17
  1742. package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
  1743. package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
  1744. package/src/unstable/httpapi/HttpApiSchema.ts +359 -6
  1745. package/src/unstable/httpapi/OpenApi.ts +153 -62
  1746. package/src/unstable/observability/OtlpExporter.ts +130 -12
  1747. package/src/unstable/observability/OtlpLogger.ts +8 -6
  1748. package/src/unstable/observability/OtlpMetrics.ts +42 -21
  1749. package/src/unstable/observability/OtlpResource.ts +26 -17
  1750. package/src/unstable/observability/OtlpTracer.ts +9 -5
  1751. package/src/unstable/observability/PrometheusMetrics.ts +13 -4
  1752. package/src/unstable/observability/internal/otlpEnv.ts +1 -1
  1753. package/src/unstable/observability/internal/protobuf.ts +3 -0
  1754. package/src/unstable/persistence/KeyValueStore.ts +72 -49
  1755. package/src/unstable/persistence/Persistable.ts +11 -10
  1756. package/src/unstable/persistence/PersistedQueue.ts +18 -15
  1757. package/src/unstable/persistence/Persistence.ts +153 -26
  1758. package/src/unstable/persistence/RateLimiter.ts +79 -45
  1759. package/src/unstable/persistence/Redis.ts +14 -9
  1760. package/src/unstable/process/ChildProcess.ts +72 -21
  1761. package/src/unstable/process/ChildProcessSpawner.ts +22 -11
  1762. package/src/unstable/reactivity/AsyncResult.ts +23 -18
  1763. package/src/unstable/reactivity/Atom.ts +161 -47
  1764. package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
  1765. package/src/unstable/reactivity/AtomRegistry.ts +25 -4
  1766. package/src/unstable/reactivity/AtomRpc.ts +5 -4
  1767. package/src/unstable/reactivity/Hydration.ts +1 -1
  1768. package/src/unstable/rpc/Rpc.ts +35 -33
  1769. package/src/unstable/rpc/RpcClient.ts +65 -29
  1770. package/src/unstable/rpc/RpcClientError.ts +2 -2
  1771. package/src/unstable/rpc/RpcGroup.ts +8 -8
  1772. package/src/unstable/rpc/RpcMessage.ts +31 -30
  1773. package/src/unstable/rpc/RpcMiddleware.ts +10 -10
  1774. package/src/unstable/rpc/RpcSchema.ts +4 -4
  1775. package/src/unstable/rpc/RpcSerialization.ts +167 -68
  1776. package/src/unstable/rpc/RpcServer.ts +22 -17
  1777. package/src/unstable/rpc/RpcWorker.ts +5 -5
  1778. package/src/unstable/schema/Model.ts +52 -50
  1779. package/src/unstable/schema/VariantSchema.ts +51 -43
  1780. package/src/unstable/socket/Socket.ts +42 -19
  1781. package/src/unstable/sql/Migrator.ts +22 -9
  1782. package/src/unstable/sql/SqlClient.ts +65 -58
  1783. package/src/unstable/sql/SqlError.ts +15 -15
  1784. package/src/unstable/sql/SqlModel.ts +2 -2
  1785. package/src/unstable/sql/SqlResolver.ts +41 -31
  1786. package/src/unstable/sql/Statement.ts +44 -37
  1787. package/src/unstable/workers/Transferable.ts +1 -1
  1788. package/src/unstable/workers/Worker.ts +15 -16
  1789. package/src/unstable/workers/WorkerError.ts +12 -12
  1790. package/src/unstable/workers/WorkerRunner.ts +1 -1
  1791. package/src/unstable/workflow/Activity.ts +2 -2
  1792. package/src/unstable/workflow/DurableClock.ts +1 -1
  1793. package/src/unstable/workflow/DurableDeferred.ts +18 -13
  1794. package/src/unstable/workflow/DurableQueue.ts +22 -20
  1795. package/src/unstable/workflow/Workflow.ts +23 -26
  1796. package/src/unstable/workflow/WorkflowEngine.ts +111 -8
  1797. package/src/unstable/workflow/WorkflowProxy.ts +4 -2
  1798. package/dist/SchemaError.d.ts +0 -53
  1799. package/dist/SchemaError.d.ts.map +0 -1
  1800. package/dist/SchemaError.js +0 -61
  1801. package/dist/SchemaError.js.map +0 -1
  1802. package/dist/SchemaUtils.d.ts +0 -28
  1803. package/dist/SchemaUtils.d.ts.map +0 -1
  1804. package/dist/SchemaUtils.js +0 -45
  1805. package/dist/SchemaUtils.js.map +0 -1
  1806. package/dist/internal/schema/arbitrary.d.ts +0 -5
  1807. package/dist/internal/schema/arbitrary.d.ts.map +0 -1
  1808. package/dist/internal/schema/arbitrary.js.map +0 -1
  1809. package/dist/internal/schema/equivalence.d.ts +0 -2
  1810. package/dist/internal/schema/equivalence.d.ts.map +0 -1
  1811. package/dist/internal/schema/equivalence.js.map +0 -1
  1812. package/dist/internal/schema/representation.d.ts +0 -2
  1813. package/dist/internal/schema/representation.d.ts.map +0 -1
  1814. package/dist/internal/schema/representation.js +0 -865
  1815. package/dist/internal/schema/representation.js.map +0 -1
  1816. package/dist/internal/version.d.ts +0 -3
  1817. package/dist/internal/version.d.ts.map +0 -1
  1818. package/dist/internal/version.js +0 -2
  1819. package/dist/internal/version.js.map +0 -1
  1820. package/dist/unstable/http/Multipasta/HeadersParser.d.ts +0 -14
  1821. package/dist/unstable/http/Multipasta/HeadersParser.d.ts.map +0 -1
  1822. package/dist/unstable/http/Multipasta/HeadersParser.js +0 -14
  1823. package/dist/unstable/http/Multipasta/HeadersParser.js.map +0 -1
  1824. package/dist/unstable/http/Multipasta/Node.d.ts +0 -14
  1825. package/dist/unstable/http/Multipasta/Node.d.ts.map +0 -1
  1826. package/dist/unstable/http/Multipasta/Node.js +0 -14
  1827. package/dist/unstable/http/Multipasta/Node.js.map +0 -1
  1828. package/dist/unstable/http/Multipasta/Search.d.ts +0 -14
  1829. package/dist/unstable/http/Multipasta/Search.d.ts.map +0 -1
  1830. package/dist/unstable/http/Multipasta/Search.js +0 -14
  1831. package/dist/unstable/http/Multipasta/Search.js.map +0 -1
  1832. package/dist/unstable/http/Multipasta/Web.d.ts +0 -14
  1833. package/dist/unstable/http/Multipasta/Web.d.ts.map +0 -1
  1834. package/dist/unstable/http/Multipasta/Web.js +0 -14
  1835. package/dist/unstable/http/Multipasta/Web.js.map +0 -1
  1836. package/dist/unstable/http/Multipasta.d.ts +0 -15
  1837. package/dist/unstable/http/Multipasta.d.ts.map +0 -1
  1838. package/dist/unstable/http/Multipasta.js +0 -15
  1839. package/dist/unstable/http/Multipasta.js.map +0 -1
  1840. package/src/SchemaError.ts +0 -64
  1841. package/src/SchemaUtils.ts +0 -51
  1842. package/src/internal/schema/representation.ts +0 -795
  1843. package/src/internal/version.ts +0 -2
  1844. package/src/unstable/http/Multipasta/HeadersParser.ts +0 -14
  1845. package/src/unstable/http/Multipasta/Node.ts +0 -14
  1846. package/src/unstable/http/Multipasta/Search.ts +0 -14
  1847. package/src/unstable/http/Multipasta/Web.ts +0 -14
  1848. package/src/unstable/http/Multipasta.ts +0 -15
@@ -22,10 +22,12 @@ import type * as Path from "../../Path.ts"
22
22
  import * as Predicate from "../../Predicate.ts"
23
23
  import * as References from "../../References.ts"
24
24
  import * as Result from "../../Result.ts"
25
+ import * as Runtime from "../../Runtime.ts"
25
26
  import * as Stdio from "../../Stdio.ts"
26
27
  import * as Terminal from "../../Terminal.ts"
27
28
  import type { Contravariant, Covariant, NoInfer, Simplify } from "../../Types.ts"
28
29
  import type { ChildProcessSpawner } from "../process/ChildProcessSpawner.ts"
30
+ import * as CliConfig from "./CliConfig.ts"
29
31
  import * as CliError from "./CliError.ts"
30
32
  import * as CliOutput from "./CliOutput.ts"
31
33
  import * as GlobalFlag from "./GlobalFlag.ts"
@@ -34,7 +36,9 @@ import { mergeConfig, parseConfig } from "./internal/config.ts"
34
36
  import { getGlobalFlagsForCommandPath, getGlobalFlagsForCommandTree, getHelpForCommandPath } from "./internal/help.ts"
35
37
  import * as Lexer from "./internal/lexer.ts"
36
38
  import * as Parser from "./internal/parser.ts"
39
+ import * as Wizard from "./internal/wizard.ts"
37
40
  import * as Param from "./Param.ts"
41
+ import * as Prompt from "./Prompt.ts"
38
42
 
39
43
  /* ========================================================================== */
40
44
  /* Public Types */
@@ -54,9 +58,27 @@ import * as Param from "./Param.ts"
54
58
  *
55
59
  * **Example** (Defining CLI commands)
56
60
  *
57
- * ```ts
58
- * import { Console } from "effect"
61
+ * ```ts import.meta.vitest
62
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
59
63
  * import { Argument, Command, Flag } from "effect/unstable/cli"
64
+ * import { ChildProcessSpawner } from "effect/unstable/process"
65
+ *
66
+ * const CliTestLayer = Layer.mergeAll(
67
+ * FileSystem.layerNoop({}),
68
+ * Path.layer,
69
+ * Stdio.layerTest({}),
70
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
71
+ * columns: Effect.succeed(80),
72
+ * rows: Effect.succeed(24),
73
+ * readInput: Effect.die("unused"),
74
+ * readLine: Effect.die("unused"),
75
+ * display: () => Effect.void
76
+ * })),
77
+ * Layer.succeed(
78
+ * ChildProcessSpawner.ChildProcessSpawner,
79
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
80
+ * )
81
+ * )
60
82
  *
61
83
  * // Simple command with no configuration
62
84
  * const version: Command.Command<"version", {}, {}, never, never> = Command.make(
@@ -81,9 +103,15 @@ import * as Param from "./Param.ts"
81
103
  * })
82
104
  *
83
105
  * // Command with handler
106
+ * const output: Array<string> = []
84
107
  * const greet = Command.make("greet", {
85
108
  * name: Flag.string("name")
86
- * }, (config) => Console.log(`Hello, ${config.name}!`))
109
+ * }, (config) => Effect.sync(() => output.push(`Hello, ${config.name}!`)).pipe(Effect.asVoid))
110
+ *
111
+ * await Effect.runPromise(
112
+ * Command.runWith(greet, { version: "1.0.0" })(["--name", "Alice"]).pipe(Effect.provide(CliTestLayer))
113
+ * )
114
+ * output // => ["Hello, Alice!"]
87
115
  * ```
88
116
  *
89
117
  * @category models
@@ -138,11 +166,11 @@ export interface Command<in out Name extends string, in Input, out ContextInput
138
166
  readonly annotations: Context.Context<never>
139
167
 
140
168
  /**
141
- * Whether this command is hidden from parent help output, shell
142
- * completions, and unknown-subcommand suggestions. Hidden commands still
169
+ * Whether this command is omitted from parent help output, shell
170
+ * completions, and unknown-subcommand suggestions. Unlisted commands still
143
171
  * parse and execute normally when invoked by exact name.
144
172
  */
145
- readonly hidden: boolean
173
+ readonly unlisted: boolean
146
174
  }
147
175
 
148
176
  /**
@@ -191,19 +219,19 @@ export declare namespace Command {
191
219
  *
192
220
  * **Example** (Configuring command input)
193
221
  *
194
- * ```ts
222
+ * ```ts import.meta.vitest
195
223
  * import { Argument, Flag } from "effect/unstable/cli"
196
224
  * import type { Command as CliCommand } from "effect/unstable/cli"
197
225
  *
198
226
  * // Simple flat configuration
199
- * const simpleConfig: CliCommand.Command.Config = {
227
+ * const simpleConfig = {
200
228
  * name: Flag.string("name"),
201
229
  * age: Flag.integer("age"),
202
230
  * file: Argument.string("file")
203
- * }
231
+ * } satisfies CliCommand.Command.Config
204
232
  *
205
233
  * // Nested configuration for organization
206
- * const nestedConfig: CliCommand.Command.Config = {
234
+ * const nestedConfig = {
207
235
  * user: {
208
236
  * name: Flag.string("name"),
209
237
  * email: Flag.string("email")
@@ -212,7 +240,9 @@ export declare namespace Command {
212
240
  * host: Flag.string("host"),
213
241
  * port: Flag.integer("port")
214
242
  * }
215
- * }
243
+ * } satisfies CliCommand.Command.Config
244
+ *
245
+ * [simpleConfig.name.kind, nestedConfig.server.port.kind] // => ["flag", "flag"]
216
246
  * ```
217
247
  *
218
248
  * @category models
@@ -258,7 +288,7 @@ export declare namespace Command {
258
288
  *
259
289
  * **Example** (Inferring command input)
260
290
  *
261
- * ```ts
291
+ * ```ts import.meta.vitest
262
292
  * import { Flag } from "effect/unstable/cli"
263
293
  * import type { Command as CliCommand } from "effect/unstable/cli"
264
294
  *
@@ -278,6 +308,12 @@ export declare namespace Command {
278
308
  * // readonly port: number
279
309
  * // }
280
310
  * // }
311
+ *
312
+ * const inferred: Result = {
313
+ * name: "Alice",
314
+ * server: { host: "localhost", port: 8080 }
315
+ * }
316
+ * inferred // => { name: "Alice", server: { host: "localhost", port: 8080 } }
281
317
  * ```
282
318
  *
283
319
  * @category models
@@ -317,7 +353,7 @@ export declare namespace Command {
317
353
  readonly commands: NonEmptyReadonlyArray<Command.Any>
318
354
  }>
319
355
  readonly annotations: Context.Context<never>
320
- readonly hidden: boolean
356
+ readonly unlisted: boolean
321
357
  }
322
358
 
323
359
  /**
@@ -369,6 +405,21 @@ export type Error<C> = C extends Command<
369
405
  > ? _Error :
370
406
  never
371
407
 
408
+ /**
409
+ * A utility type to extract the required services type from a `Command`.
410
+ *
411
+ * @category utility types
412
+ * @since 4.0.0
413
+ */
414
+ export type Services<C> = C extends Command<
415
+ infer _Name,
416
+ infer _Input,
417
+ infer _ContextInput,
418
+ infer _Error,
419
+ infer _Requirements
420
+ > ? _Requirements :
421
+ never
422
+
372
423
  /**
373
424
  * Service context for a specific command, enabling subcommands to access their parent's parsed configuration.
374
425
  *
@@ -381,9 +432,27 @@ export type Error<C> = C extends Command<
381
432
  *
382
433
  * **Example** (Accessing parent command context)
383
434
  *
384
- * ```ts
385
- * import { Console, Effect } from "effect"
435
+ * ```ts import.meta.vitest
436
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
386
437
  * import { Command, Flag } from "effect/unstable/cli"
438
+ * import { ChildProcessSpawner } from "effect/unstable/process"
439
+ *
440
+ * const CliTestLayer = Layer.mergeAll(
441
+ * FileSystem.layerNoop({}),
442
+ * Path.layer,
443
+ * Stdio.layerTest({}),
444
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
445
+ * columns: Effect.succeed(80),
446
+ * rows: Effect.succeed(24),
447
+ * readInput: Effect.die("unused"),
448
+ * readLine: Effect.die("unused"),
449
+ * display: () => Effect.void
450
+ * })),
451
+ * Layer.succeed(
452
+ * ChildProcessSpawner.ChildProcessSpawner,
453
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
454
+ * )
455
+ * )
387
456
  *
388
457
  * const parent = Command.make("app").pipe(
389
458
  * Command.withSharedFlags({
@@ -392,19 +461,31 @@ export type Error<C> = C extends Command<
392
461
  * })
393
462
  * )
394
463
  *
464
+ * const output: Array<string> = []
395
465
  * const child = Command.make("deploy", {
396
466
  * target: Flag.string("target")
397
467
  * }, (config) =>
398
468
  * Effect.gen(function*() {
399
469
  * // Access parent's config by yielding the parent command
400
470
  * const parentConfig = yield* parent
401
- * yield* Console.log(`Verbose: ${parentConfig.verbose}`)
402
- * yield* Console.log(`Config: ${parentConfig.config}`)
403
- * yield* Console.log(`Target: ${config.target}`)
471
+ * yield* Effect.sync(() => output.push(`Verbose: ${parentConfig.verbose}`))
472
+ * yield* Effect.sync(() => output.push(`Config: ${parentConfig.config}`))
473
+ * yield* Effect.sync(() => output.push(`Target: ${config.target}`))
404
474
  * }))
405
475
  *
406
476
  * const app = parent.pipe(Command.withSubcommands([child]))
407
- * // Usage: app --verbose --config prod.json deploy --target staging
477
+ *
478
+ * await Effect.runPromise(
479
+ * Command.runWith(app, { version: "1.0.0" })([
480
+ * "--verbose",
481
+ * "--config",
482
+ * "prod.json",
483
+ * "deploy",
484
+ * "--target",
485
+ * "staging"
486
+ * ]).pipe(Effect.provide(CliTestLayer))
487
+ * )
488
+ * output // => ["Verbose: true", "Config: prod.json", "Target: staging"]
408
489
  * ```
409
490
  *
410
491
  * @category models
@@ -460,9 +541,27 @@ export const isCommand = (u: unknown): u is Command.Any => Predicate.hasProperty
460
541
  *
461
542
  * **Example** (Creating commands)
462
543
  *
463
- * ```ts
464
- * import { Console, Effect } from "effect"
544
+ * ```ts import.meta.vitest
545
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
465
546
  * import { Argument, Command, Flag } from "effect/unstable/cli"
547
+ * import { ChildProcessSpawner } from "effect/unstable/process"
548
+ *
549
+ * const CliTestLayer = Layer.mergeAll(
550
+ * FileSystem.layerNoop({}),
551
+ * Path.layer,
552
+ * Stdio.layerTest({}),
553
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
554
+ * columns: Effect.succeed(80),
555
+ * rows: Effect.succeed(24),
556
+ * readInput: Effect.die("unused"),
557
+ * readLine: Effect.die("unused"),
558
+ * display: () => Effect.void
559
+ * })),
560
+ * Layer.succeed(
561
+ * ChildProcessSpawner.ChildProcessSpawner,
562
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
563
+ * )
564
+ * )
466
565
  *
467
566
  * // Simple command with no configuration
468
567
  * const version = Command.make("version")
@@ -487,19 +586,29 @@ export const isCommand = (u: unknown): u is Command.Any => Predicate.hasProperty
487
586
  * })
488
587
  *
489
588
  * // Command with handler
589
+ * const output: Array<string> = []
490
590
  * const deployWithHandler = Command.make("deploy", {
491
591
  * environment: Flag.string("env"),
492
592
  * force: Flag.boolean("force")
493
593
  * }, (config) =>
494
594
  * Effect.gen(function*() {
495
- * yield* Console.log(`Starting deployment to ${config.environment}`)
595
+ * yield* Effect.sync(() => output.push(`Starting deployment to ${config.environment}`))
496
596
  *
497
597
  * if (!config.force && config.environment === "production") {
498
598
  * return yield* Effect.fail("Production deployments require --force flag")
499
599
  * }
500
600
  *
501
- * yield* Console.log("Deployment completed successfully")
601
+ * yield* Effect.sync(() => output.push("Deployment completed successfully"))
502
602
  * }))
603
+ *
604
+ * await Effect.runPromise(
605
+ * Command.runWith(deployWithHandler, { version: "1.0.0" })([
606
+ * "--env",
607
+ * "staging",
608
+ * "--force"
609
+ * ]).pipe(Effect.provide(CliTestLayer))
610
+ * )
611
+ * output // => ["Starting deployment to staging", "Deployment completed successfully"]
503
612
  * ```
504
613
  *
505
614
  * @category constructors
@@ -522,9 +631,27 @@ export const make: {
522
631
  *
523
632
  * **Example** (Creating commands)
524
633
  *
525
- * ```ts
526
- * import { Console, Effect } from "effect"
634
+ * ```ts import.meta.vitest
635
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
527
636
  * import { Argument, Command, Flag } from "effect/unstable/cli"
637
+ * import { ChildProcessSpawner } from "effect/unstable/process"
638
+ *
639
+ * const CliTestLayer = Layer.mergeAll(
640
+ * FileSystem.layerNoop({}),
641
+ * Path.layer,
642
+ * Stdio.layerTest({}),
643
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
644
+ * columns: Effect.succeed(80),
645
+ * rows: Effect.succeed(24),
646
+ * readInput: Effect.die("unused"),
647
+ * readLine: Effect.die("unused"),
648
+ * display: () => Effect.void
649
+ * })),
650
+ * Layer.succeed(
651
+ * ChildProcessSpawner.ChildProcessSpawner,
652
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
653
+ * )
654
+ * )
528
655
  *
529
656
  * // Simple command with no configuration
530
657
  * const version = Command.make("version")
@@ -549,19 +676,29 @@ export const make: {
549
676
  * })
550
677
  *
551
678
  * // Command with handler
679
+ * const output: Array<string> = []
552
680
  * const deployWithHandler = Command.make("deploy", {
553
681
  * environment: Flag.string("env"),
554
682
  * force: Flag.boolean("force")
555
683
  * }, (config) =>
556
684
  * Effect.gen(function*() {
557
- * yield* Console.log(`Starting deployment to ${config.environment}`)
685
+ * yield* Effect.sync(() => output.push(`Starting deployment to ${config.environment}`))
558
686
  *
559
687
  * if (!config.force && config.environment === "production") {
560
688
  * return yield* Effect.fail("Production deployments require --force flag")
561
689
  * }
562
690
  *
563
- * yield* Console.log("Deployment completed successfully")
691
+ * yield* Effect.sync(() => output.push("Deployment completed successfully"))
564
692
  * }))
693
+ *
694
+ * await Effect.runPromise(
695
+ * Command.runWith(deployWithHandler, { version: "1.0.0" })([
696
+ * "--env",
697
+ * "staging",
698
+ * "--force"
699
+ * ]).pipe(Effect.provide(CliTestLayer))
700
+ * )
701
+ * output // => ["Starting deployment to staging", "Deployment completed successfully"]
565
702
  * ```
566
703
  *
567
704
  * @category constructors
@@ -585,9 +722,27 @@ export const make: {
585
722
  *
586
723
  * **Example** (Creating commands)
587
724
  *
588
- * ```ts
589
- * import { Console, Effect } from "effect"
725
+ * ```ts import.meta.vitest
726
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
590
727
  * import { Argument, Command, Flag } from "effect/unstable/cli"
728
+ * import { ChildProcessSpawner } from "effect/unstable/process"
729
+ *
730
+ * const CliTestLayer = Layer.mergeAll(
731
+ * FileSystem.layerNoop({}),
732
+ * Path.layer,
733
+ * Stdio.layerTest({}),
734
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
735
+ * columns: Effect.succeed(80),
736
+ * rows: Effect.succeed(24),
737
+ * readInput: Effect.die("unused"),
738
+ * readLine: Effect.die("unused"),
739
+ * display: () => Effect.void
740
+ * })),
741
+ * Layer.succeed(
742
+ * ChildProcessSpawner.ChildProcessSpawner,
743
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
744
+ * )
745
+ * )
591
746
  *
592
747
  * // Simple command with no configuration
593
748
  * const version = Command.make("version")
@@ -612,19 +767,29 @@ export const make: {
612
767
  * })
613
768
  *
614
769
  * // Command with handler
770
+ * const output: Array<string> = []
615
771
  * const deployWithHandler = Command.make("deploy", {
616
772
  * environment: Flag.string("env"),
617
773
  * force: Flag.boolean("force")
618
774
  * }, (config) =>
619
775
  * Effect.gen(function*() {
620
- * yield* Console.log(`Starting deployment to ${config.environment}`)
776
+ * yield* Effect.sync(() => output.push(`Starting deployment to ${config.environment}`))
621
777
  *
622
778
  * if (!config.force && config.environment === "production") {
623
779
  * return yield* Effect.fail("Production deployments require --force flag")
624
780
  * }
625
781
  *
626
- * yield* Console.log("Deployment completed successfully")
782
+ * yield* Effect.sync(() => output.push("Deployment completed successfully"))
627
783
  * }))
784
+ *
785
+ * await Effect.runPromise(
786
+ * Command.runWith(deployWithHandler, { version: "1.0.0" })([
787
+ * "--env",
788
+ * "staging",
789
+ * "--force"
790
+ * ]).pipe(Effect.provide(CliTestLayer))
791
+ * )
792
+ * output // => ["Starting deployment to staging", "Deployment completed successfully"]
628
793
  * ```
629
794
  *
630
795
  * @category constructors
@@ -648,9 +813,27 @@ export const make: {
648
813
  *
649
814
  * **Example** (Creating commands)
650
815
  *
651
- * ```ts
652
- * import { Console, Effect } from "effect"
816
+ * ```ts import.meta.vitest
817
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
653
818
  * import { Argument, Command, Flag } from "effect/unstable/cli"
819
+ * import { ChildProcessSpawner } from "effect/unstable/process"
820
+ *
821
+ * const CliTestLayer = Layer.mergeAll(
822
+ * FileSystem.layerNoop({}),
823
+ * Path.layer,
824
+ * Stdio.layerTest({}),
825
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
826
+ * columns: Effect.succeed(80),
827
+ * rows: Effect.succeed(24),
828
+ * readInput: Effect.die("unused"),
829
+ * readLine: Effect.die("unused"),
830
+ * display: () => Effect.void
831
+ * })),
832
+ * Layer.succeed(
833
+ * ChildProcessSpawner.ChildProcessSpawner,
834
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
835
+ * )
836
+ * )
654
837
  *
655
838
  * // Simple command with no configuration
656
839
  * const version = Command.make("version")
@@ -675,19 +858,29 @@ export const make: {
675
858
  * })
676
859
  *
677
860
  * // Command with handler
861
+ * const output: Array<string> = []
678
862
  * const deployWithHandler = Command.make("deploy", {
679
863
  * environment: Flag.string("env"),
680
864
  * force: Flag.boolean("force")
681
865
  * }, (config) =>
682
866
  * Effect.gen(function*() {
683
- * yield* Console.log(`Starting deployment to ${config.environment}`)
867
+ * yield* Effect.sync(() => output.push(`Starting deployment to ${config.environment}`))
684
868
  *
685
869
  * if (!config.force && config.environment === "production") {
686
870
  * return yield* Effect.fail("Production deployments require --force flag")
687
871
  * }
688
872
  *
689
- * yield* Console.log("Deployment completed successfully")
873
+ * yield* Effect.sync(() => output.push("Deployment completed successfully"))
690
874
  * }))
875
+ *
876
+ * await Effect.runPromise(
877
+ * Command.runWith(deployWithHandler, { version: "1.0.0" })([
878
+ * "--env",
879
+ * "staging",
880
+ * "--force"
881
+ * ]).pipe(Effect.provide(CliTestLayer))
882
+ * )
883
+ * output // => ["Starting deployment to staging", "Deployment completed successfully"]
691
884
  * ```
692
885
  *
693
886
  * @category constructors
@@ -720,9 +913,27 @@ export const make: {
720
913
  *
721
914
  * **Example** (Adding command handlers)
722
915
  *
723
- * ```ts
724
- * import { Console } from "effect"
916
+ * ```ts import.meta.vitest
917
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
725
918
  * import { Command, Flag } from "effect/unstable/cli"
919
+ * import { ChildProcessSpawner } from "effect/unstable/process"
920
+ *
921
+ * const CliTestLayer = Layer.mergeAll(
922
+ * FileSystem.layerNoop({}),
923
+ * Path.layer,
924
+ * Stdio.layerTest({}),
925
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
926
+ * columns: Effect.succeed(80),
927
+ * rows: Effect.succeed(24),
928
+ * readInput: Effect.die("unused"),
929
+ * readLine: Effect.die("unused"),
930
+ * display: () => Effect.void
931
+ * })),
932
+ * Layer.succeed(
933
+ * ChildProcessSpawner.ChildProcessSpawner,
934
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
935
+ * )
936
+ * )
726
937
  *
727
938
  * // Command without initial handler
728
939
  * const greet = Command.make("greet", {
@@ -730,11 +941,19 @@ export const make: {
730
941
  * })
731
942
  *
732
943
  * // Add handler later
944
+ * const output: Array<string> = []
733
945
  * const greetWithHandler = greet.pipe(
734
946
  * Command.withHandler((config: { readonly name: string }) =>
735
- * Console.log(`Hello, ${config.name}!`)
947
+ * Effect.sync(() => output.push(`Hello, ${config.name}!`)).pipe(Effect.asVoid)
736
948
  * )
737
949
  * )
950
+ *
951
+ * await Effect.runPromise(
952
+ * Command.runWith(greetWithHandler, { version: "1.0.0" })(["--name", "Alice"]).pipe(
953
+ * Effect.provide(CliTestLayer)
954
+ * )
955
+ * )
956
+ * output // => ["Hello, Alice!"]
738
957
  * ```
739
958
  *
740
959
  * @category combinators
@@ -750,9 +969,27 @@ export const withHandler: {
750
969
  *
751
970
  * **Example** (Adding command handlers)
752
971
  *
753
- * ```ts
754
- * import { Console } from "effect"
972
+ * ```ts import.meta.vitest
973
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
755
974
  * import { Command, Flag } from "effect/unstable/cli"
975
+ * import { ChildProcessSpawner } from "effect/unstable/process"
976
+ *
977
+ * const CliTestLayer = Layer.mergeAll(
978
+ * FileSystem.layerNoop({}),
979
+ * Path.layer,
980
+ * Stdio.layerTest({}),
981
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
982
+ * columns: Effect.succeed(80),
983
+ * rows: Effect.succeed(24),
984
+ * readInput: Effect.die("unused"),
985
+ * readLine: Effect.die("unused"),
986
+ * display: () => Effect.void
987
+ * })),
988
+ * Layer.succeed(
989
+ * ChildProcessSpawner.ChildProcessSpawner,
990
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
991
+ * )
992
+ * )
756
993
  *
757
994
  * // Command without initial handler
758
995
  * const greet = Command.make("greet", {
@@ -760,11 +997,19 @@ export const withHandler: {
760
997
  * })
761
998
  *
762
999
  * // Add handler later
1000
+ * const output: Array<string> = []
763
1001
  * const greetWithHandler = greet.pipe(
764
1002
  * Command.withHandler((config: { readonly name: string }) =>
765
- * Console.log(`Hello, ${config.name}!`)
1003
+ * Effect.sync(() => output.push(`Hello, ${config.name}!`)).pipe(Effect.asVoid)
766
1004
  * )
767
1005
  * )
1006
+ *
1007
+ * await Effect.runPromise(
1008
+ * Command.runWith(greetWithHandler, { version: "1.0.0" })(["--name", "Alice"]).pipe(
1009
+ * Effect.provide(CliTestLayer)
1010
+ * )
1011
+ * )
1012
+ * output // => ["Hello, Alice!"]
768
1013
  * ```
769
1014
  *
770
1015
  * @category combinators
@@ -782,9 +1027,27 @@ export const withHandler: {
782
1027
  *
783
1028
  * **Example** (Adding command handlers)
784
1029
  *
785
- * ```ts
786
- * import { Console } from "effect"
1030
+ * ```ts import.meta.vitest
1031
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
787
1032
  * import { Command, Flag } from "effect/unstable/cli"
1033
+ * import { ChildProcessSpawner } from "effect/unstable/process"
1034
+ *
1035
+ * const CliTestLayer = Layer.mergeAll(
1036
+ * FileSystem.layerNoop({}),
1037
+ * Path.layer,
1038
+ * Stdio.layerTest({}),
1039
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
1040
+ * columns: Effect.succeed(80),
1041
+ * rows: Effect.succeed(24),
1042
+ * readInput: Effect.die("unused"),
1043
+ * readLine: Effect.die("unused"),
1044
+ * display: () => Effect.void
1045
+ * })),
1046
+ * Layer.succeed(
1047
+ * ChildProcessSpawner.ChildProcessSpawner,
1048
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
1049
+ * )
1050
+ * )
788
1051
  *
789
1052
  * // Command without initial handler
790
1053
  * const greet = Command.make("greet", {
@@ -792,11 +1055,19 @@ export const withHandler: {
792
1055
  * })
793
1056
  *
794
1057
  * // Add handler later
1058
+ * const output: Array<string> = []
795
1059
  * const greetWithHandler = greet.pipe(
796
1060
  * Command.withHandler((config: { readonly name: string }) =>
797
- * Console.log(`Hello, ${config.name}!`)
1061
+ * Effect.sync(() => output.push(`Hello, ${config.name}!`)).pipe(Effect.asVoid)
1062
+ * )
1063
+ * )
1064
+ *
1065
+ * await Effect.runPromise(
1066
+ * Command.runWith(greetWithHandler, { version: "1.0.0" })(["--name", "Alice"]).pipe(
1067
+ * Effect.provide(CliTestLayer)
798
1068
  * )
799
1069
  * )
1070
+ * output // => ["Hello, Alice!"]
800
1071
  * ```
801
1072
  *
802
1073
  * @category combinators
@@ -874,9 +1145,27 @@ const normalizeSubcommandEntries = (
874
1145
  *
875
1146
  * **Example** (Adding subcommands)
876
1147
  *
877
- * ```ts
878
- * import { Console, Effect } from "effect"
1148
+ * ```ts import.meta.vitest
1149
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
879
1150
  * import { Command, Flag } from "effect/unstable/cli"
1151
+ * import { ChildProcessSpawner } from "effect/unstable/process"
1152
+ *
1153
+ * const CliTestLayer = Layer.mergeAll(
1154
+ * FileSystem.layerNoop({}),
1155
+ * Path.layer,
1156
+ * Stdio.layerTest({}),
1157
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
1158
+ * columns: Effect.succeed(80),
1159
+ * rows: Effect.succeed(24),
1160
+ * readInput: Effect.die("unused"),
1161
+ * readLine: Effect.die("unused"),
1162
+ * display: () => Effect.void
1163
+ * })),
1164
+ * Layer.succeed(
1165
+ * ChildProcessSpawner.ChildProcessSpawner,
1166
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
1167
+ * )
1168
+ * )
880
1169
  *
881
1170
  * // Parent command with shared flags
882
1171
  * const git = Command.make("git").pipe(
@@ -886,19 +1175,29 @@ const normalizeSubcommandEntries = (
886
1175
  * )
887
1176
  *
888
1177
  * // Subcommand that accesses parent config
1178
+ * const output: Array<string> = []
889
1179
  * const clone = Command.make("clone", {
890
1180
  * repository: Flag.string("repo")
891
1181
  * }, (config) =>
892
1182
  * Effect.gen(function*() {
893
1183
  * const parent = yield* git // Access parent's parsed config
894
1184
  * if (parent.verbose) {
895
- * yield* Console.log("Verbose mode enabled")
1185
+ * yield* Effect.sync(() => output.push("Verbose mode enabled"))
896
1186
  * }
897
- * yield* Console.log(`Cloning ${config.repository}`)
1187
+ * yield* Effect.sync(() => output.push(`Cloning ${config.repository}`))
898
1188
  * }))
899
1189
  *
900
1190
  * const app = git.pipe(Command.withSubcommands([clone]))
901
- * // Usage: git --verbose clone --repo github.com/foo/bar
1191
+ *
1192
+ * await Effect.runPromise(
1193
+ * Command.runWith(app, { version: "1.0.0" })([
1194
+ * "--verbose",
1195
+ * "clone",
1196
+ * "--repo",
1197
+ * "github.com/foo/bar"
1198
+ * ]).pipe(Effect.provide(CliTestLayer))
1199
+ * )
1200
+ * output // => ["Verbose mode enabled", "Cloning github.com/foo/bar"]
902
1201
  * ```
903
1202
  *
904
1203
  * @category combinators
@@ -916,9 +1215,27 @@ export const withSubcommands: {
916
1215
  *
917
1216
  * **Example** (Adding subcommands)
918
1217
  *
919
- * ```ts
920
- * import { Console, Effect } from "effect"
1218
+ * ```ts import.meta.vitest
1219
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
921
1220
  * import { Command, Flag } from "effect/unstable/cli"
1221
+ * import { ChildProcessSpawner } from "effect/unstable/process"
1222
+ *
1223
+ * const CliTestLayer = Layer.mergeAll(
1224
+ * FileSystem.layerNoop({}),
1225
+ * Path.layer,
1226
+ * Stdio.layerTest({}),
1227
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
1228
+ * columns: Effect.succeed(80),
1229
+ * rows: Effect.succeed(24),
1230
+ * readInput: Effect.die("unused"),
1231
+ * readLine: Effect.die("unused"),
1232
+ * display: () => Effect.void
1233
+ * })),
1234
+ * Layer.succeed(
1235
+ * ChildProcessSpawner.ChildProcessSpawner,
1236
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
1237
+ * )
1238
+ * )
922
1239
  *
923
1240
  * // Parent command with shared flags
924
1241
  * const git = Command.make("git").pipe(
@@ -928,19 +1245,29 @@ export const withSubcommands: {
928
1245
  * )
929
1246
  *
930
1247
  * // Subcommand that accesses parent config
1248
+ * const output: Array<string> = []
931
1249
  * const clone = Command.make("clone", {
932
1250
  * repository: Flag.string("repo")
933
1251
  * }, (config) =>
934
1252
  * Effect.gen(function*() {
935
1253
  * const parent = yield* git // Access parent's parsed config
936
1254
  * if (parent.verbose) {
937
- * yield* Console.log("Verbose mode enabled")
1255
+ * yield* Effect.sync(() => output.push("Verbose mode enabled"))
938
1256
  * }
939
- * yield* Console.log(`Cloning ${config.repository}`)
1257
+ * yield* Effect.sync(() => output.push(`Cloning ${config.repository}`))
940
1258
  * }))
941
1259
  *
942
1260
  * const app = git.pipe(Command.withSubcommands([clone]))
943
- * // Usage: git --verbose clone --repo github.com/foo/bar
1261
+ *
1262
+ * await Effect.runPromise(
1263
+ * Command.runWith(app, { version: "1.0.0" })([
1264
+ * "--verbose",
1265
+ * "clone",
1266
+ * "--repo",
1267
+ * "github.com/foo/bar"
1268
+ * ]).pipe(Effect.provide(CliTestLayer))
1269
+ * )
1270
+ * output // => ["Verbose mode enabled", "Cloning github.com/foo/bar"]
944
1271
  * ```
945
1272
  *
946
1273
  * @category combinators
@@ -966,9 +1293,27 @@ export const withSubcommands: {
966
1293
  *
967
1294
  * **Example** (Adding subcommands)
968
1295
  *
969
- * ```ts
970
- * import { Console, Effect } from "effect"
1296
+ * ```ts import.meta.vitest
1297
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
971
1298
  * import { Command, Flag } from "effect/unstable/cli"
1299
+ * import { ChildProcessSpawner } from "effect/unstable/process"
1300
+ *
1301
+ * const CliTestLayer = Layer.mergeAll(
1302
+ * FileSystem.layerNoop({}),
1303
+ * Path.layer,
1304
+ * Stdio.layerTest({}),
1305
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
1306
+ * columns: Effect.succeed(80),
1307
+ * rows: Effect.succeed(24),
1308
+ * readInput: Effect.die("unused"),
1309
+ * readLine: Effect.die("unused"),
1310
+ * display: () => Effect.void
1311
+ * })),
1312
+ * Layer.succeed(
1313
+ * ChildProcessSpawner.ChildProcessSpawner,
1314
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
1315
+ * )
1316
+ * )
972
1317
  *
973
1318
  * // Parent command with shared flags
974
1319
  * const git = Command.make("git").pipe(
@@ -978,19 +1323,29 @@ export const withSubcommands: {
978
1323
  * )
979
1324
  *
980
1325
  * // Subcommand that accesses parent config
1326
+ * const output: Array<string> = []
981
1327
  * const clone = Command.make("clone", {
982
1328
  * repository: Flag.string("repo")
983
1329
  * }, (config) =>
984
1330
  * Effect.gen(function*() {
985
1331
  * const parent = yield* git // Access parent's parsed config
986
1332
  * if (parent.verbose) {
987
- * yield* Console.log("Verbose mode enabled")
1333
+ * yield* Effect.sync(() => output.push("Verbose mode enabled"))
988
1334
  * }
989
- * yield* Console.log(`Cloning ${config.repository}`)
1335
+ * yield* Effect.sync(() => output.push(`Cloning ${config.repository}`))
990
1336
  * }))
991
1337
  *
992
1338
  * const app = git.pipe(Command.withSubcommands([clone]))
993
- * // Usage: git --verbose clone --repo github.com/foo/bar
1339
+ *
1340
+ * await Effect.runPromise(
1341
+ * Command.runWith(app, { version: "1.0.0" })([
1342
+ * "--verbose",
1343
+ * "clone",
1344
+ * "--repo",
1345
+ * "github.com/foo/bar"
1346
+ * ]).pipe(Effect.provide(CliTestLayer))
1347
+ * )
1348
+ * output // => ["Verbose mode enabled", "Cloning github.com/foo/bar"]
994
1349
  * ```
995
1350
  *
996
1351
  * @category combinators
@@ -1050,7 +1405,7 @@ export const withSubcommands: {
1050
1405
 
1051
1406
  const context = yield* impl.parseContext(raw)
1052
1407
  const result = yield* sub.parse(raw.subcommand.value.parsedInput)
1053
- return Object.assign({}, context, { [SubcommandStateSymbol]: { name: sub.name, result } }) as NextInput
1408
+ return { ...context, [SubcommandStateSymbol]: { name: sub.name, result } } as NextInput
1054
1409
  })
1055
1410
 
1056
1411
  const handle = Effect.fnUntraced(function*(input: NextInput, path: ReadonlyArray<string>) {
@@ -1076,6 +1431,7 @@ export const withSubcommands: {
1076
1431
  description: impl.description,
1077
1432
  shortDescription: impl.shortDescription,
1078
1433
  alias: impl.alias,
1434
+ unlisted: impl.unlisted,
1079
1435
  annotations: impl.annotations,
1080
1436
  globalFlags: impl.globalFlags,
1081
1437
  examples: impl.examples,
@@ -1166,20 +1522,20 @@ export const withSharedFlags: {
1166
1522
  type NextInput = Simplify<Input & SharedInput>
1167
1523
  type NextContextInput = Simplify<ContextInput & SharedInput>
1168
1524
 
1169
- const parseShared = makeParser(sharedConfig) as (
1525
+ const parseShared = makeParser(sharedConfig, { allowLeftovers: true }) as (
1170
1526
  input: ParsedTokens
1171
1527
  ) => Effect.Effect<SharedInput, CliError.CliError, Environment>
1172
1528
 
1173
1529
  const parse = Effect.fnUntraced(function*(raw: ParsedTokens) {
1174
1530
  const base = yield* impl.parse(raw)
1175
1531
  const shared = yield* parseShared(raw)
1176
- return Object.assign({}, base, shared) as NextInput
1532
+ return { ...(base as object), ...(shared as object) } as NextInput
1177
1533
  })
1178
1534
 
1179
1535
  const parseContext = Effect.fnUntraced(function*(raw: ParsedTokens) {
1180
1536
  const base = yield* impl.parseContext(raw)
1181
1537
  const shared = yield* parseShared(raw)
1182
- return Object.assign({}, base, shared) as NextContextInput
1538
+ return { ...(base as object), ...(shared as object) } as NextContextInput
1183
1539
  })
1184
1540
 
1185
1541
  const handle = (
@@ -1194,6 +1550,7 @@ export const withSharedFlags: {
1194
1550
  description: impl.description,
1195
1551
  shortDescription: impl.shortDescription,
1196
1552
  alias: impl.alias,
1553
+ unlisted: impl.unlisted,
1197
1554
  annotations: impl.annotations,
1198
1555
  globalFlags: impl.globalFlags,
1199
1556
  examples: impl.examples,
@@ -1277,8 +1634,7 @@ type ExtractSubcommand<T> = T extends Command<infer _Name, infer _Input, infer _
1277
1634
  : T extends Command.SubcommandGroup<infer Commands> ? Commands[number]
1278
1635
  : never
1279
1636
  type ExtractSubcommandErrors<T extends ReadonlyArray<Command.SubcommandEntry>> = Error<ExtractSubcommand<T[number]>>
1280
- type ExtractSubcommandContext<T extends ReadonlyArray<Command.SubcommandEntry>> = ExtractSubcommand<T[number]> extends
1281
- Command<infer _Name, infer _Input, infer _CI, infer _E, infer _R> ? _R : never
1637
+ type ExtractSubcommandContext<T extends ReadonlyArray<Command.SubcommandEntry>> = Services<ExtractSubcommand<T[number]>>
1282
1638
 
1283
1639
  /**
1284
1640
  * Sets the description for a command.
@@ -1290,18 +1646,42 @@ type ExtractSubcommandContext<T extends ReadonlyArray<Command.SubcommandEntry>>
1290
1646
  *
1291
1647
  * **Example** (Setting descriptions)
1292
1648
  *
1293
- * ```ts
1294
- * import { Console, Effect } from "effect"
1649
+ * ```ts import.meta.vitest
1650
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
1295
1651
  * import { Command, Flag } from "effect/unstable/cli"
1652
+ * import { ChildProcessSpawner } from "effect/unstable/process"
1653
+ *
1654
+ * const CliTestLayer = Layer.mergeAll(
1655
+ * FileSystem.layerNoop({}),
1656
+ * Path.layer,
1657
+ * Stdio.layerTest({}),
1658
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
1659
+ * columns: Effect.succeed(80),
1660
+ * rows: Effect.succeed(24),
1661
+ * readInput: Effect.die("unused"),
1662
+ * readLine: Effect.die("unused"),
1663
+ * display: () => Effect.void
1664
+ * })),
1665
+ * Layer.succeed(
1666
+ * ChildProcessSpawner.ChildProcessSpawner,
1667
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
1668
+ * )
1669
+ * )
1296
1670
  *
1671
+ * const output: Array<string> = []
1297
1672
  * const deploy = Command.make("deploy", {
1298
1673
  * environment: Flag.string("env")
1299
1674
  * }, (config) =>
1300
1675
  * Effect.gen(function*() {
1301
- * yield* Console.log(`Deploying to ${config.environment}`)
1676
+ * yield* Effect.sync(() => output.push(`Deploying to ${config.environment}`))
1302
1677
  * })).pipe(
1303
1678
  * Command.withDescription("Deploy the application to a specified environment")
1304
1679
  * )
1680
+ *
1681
+ * await Effect.runPromise(
1682
+ * Command.runWith(deploy, { version: "1.0.0" })(["--env", "staging"]).pipe(Effect.provide(CliTestLayer))
1683
+ * )
1684
+ * output // => ["Deploying to staging"]
1305
1685
  * ```
1306
1686
  *
1307
1687
  * @category combinators
@@ -1318,18 +1698,42 @@ export const withDescription: {
1318
1698
  *
1319
1699
  * **Example** (Setting descriptions)
1320
1700
  *
1321
- * ```ts
1322
- * import { Console, Effect } from "effect"
1701
+ * ```ts import.meta.vitest
1702
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
1323
1703
  * import { Command, Flag } from "effect/unstable/cli"
1704
+ * import { ChildProcessSpawner } from "effect/unstable/process"
1705
+ *
1706
+ * const CliTestLayer = Layer.mergeAll(
1707
+ * FileSystem.layerNoop({}),
1708
+ * Path.layer,
1709
+ * Stdio.layerTest({}),
1710
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
1711
+ * columns: Effect.succeed(80),
1712
+ * rows: Effect.succeed(24),
1713
+ * readInput: Effect.die("unused"),
1714
+ * readLine: Effect.die("unused"),
1715
+ * display: () => Effect.void
1716
+ * })),
1717
+ * Layer.succeed(
1718
+ * ChildProcessSpawner.ChildProcessSpawner,
1719
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
1720
+ * )
1721
+ * )
1324
1722
  *
1723
+ * const output: Array<string> = []
1325
1724
  * const deploy = Command.make("deploy", {
1326
1725
  * environment: Flag.string("env")
1327
1726
  * }, (config) =>
1328
1727
  * Effect.gen(function*() {
1329
- * yield* Console.log(`Deploying to ${config.environment}`)
1728
+ * yield* Effect.sync(() => output.push(`Deploying to ${config.environment}`))
1330
1729
  * })).pipe(
1331
1730
  * Command.withDescription("Deploy the application to a specified environment")
1332
1731
  * )
1732
+ *
1733
+ * await Effect.runPromise(
1734
+ * Command.runWith(deploy, { version: "1.0.0" })(["--env", "staging"]).pipe(Effect.provide(CliTestLayer))
1735
+ * )
1736
+ * output // => ["Deploying to staging"]
1333
1737
  * ```
1334
1738
  *
1335
1739
  * @category combinators
@@ -1348,18 +1752,42 @@ export const withDescription: {
1348
1752
  *
1349
1753
  * **Example** (Setting descriptions)
1350
1754
  *
1351
- * ```ts
1352
- * import { Console, Effect } from "effect"
1755
+ * ```ts import.meta.vitest
1756
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
1353
1757
  * import { Command, Flag } from "effect/unstable/cli"
1758
+ * import { ChildProcessSpawner } from "effect/unstable/process"
1759
+ *
1760
+ * const CliTestLayer = Layer.mergeAll(
1761
+ * FileSystem.layerNoop({}),
1762
+ * Path.layer,
1763
+ * Stdio.layerTest({}),
1764
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
1765
+ * columns: Effect.succeed(80),
1766
+ * rows: Effect.succeed(24),
1767
+ * readInput: Effect.die("unused"),
1768
+ * readLine: Effect.die("unused"),
1769
+ * display: () => Effect.void
1770
+ * })),
1771
+ * Layer.succeed(
1772
+ * ChildProcessSpawner.ChildProcessSpawner,
1773
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
1774
+ * )
1775
+ * )
1354
1776
  *
1777
+ * const output: Array<string> = []
1355
1778
  * const deploy = Command.make("deploy", {
1356
1779
  * environment: Flag.string("env")
1357
1780
  * }, (config) =>
1358
1781
  * Effect.gen(function*() {
1359
- * yield* Console.log(`Deploying to ${config.environment}`)
1782
+ * yield* Effect.sync(() => output.push(`Deploying to ${config.environment}`))
1360
1783
  * })).pipe(
1361
1784
  * Command.withDescription("Deploy the application to a specified environment")
1362
1785
  * )
1786
+ *
1787
+ * await Effect.runPromise(
1788
+ * Command.runWith(deploy, { version: "1.0.0" })(["--env", "staging"]).pipe(Effect.provide(CliTestLayer))
1789
+ * )
1790
+ * output // => ["Deploying to staging"]
1363
1791
  * ```
1364
1792
  *
1365
1793
  * @category combinators
@@ -1461,7 +1889,7 @@ export const withAlias: {
1461
1889
  ) => makeCommand({ ...toImpl(self), alias }))
1462
1890
 
1463
1891
  /**
1464
- * Hides a subcommand from parent help output, shell completions, and
1892
+ * Omits a subcommand from parent help output, shell completions, and
1465
1893
  * "did you mean?" suggestions while keeping it fully invocable by exact name.
1466
1894
  *
1467
1895
  * **When to use**
@@ -1469,29 +1897,31 @@ export const withAlias: {
1469
1897
  * Use when experimental or internal subcommands should be accepted but not advertised on
1470
1898
  * the public CLI surface.
1471
1899
  *
1472
- * **Example** (Hiding a subcommand)
1900
+ * **Example** (Unlisting a subcommand)
1473
1901
  *
1474
- * ```ts
1902
+ * ```ts import.meta.vitest
1475
1903
  * import { Command } from "effect/unstable/cli"
1476
1904
  *
1477
1905
  * // `experimental` still runs when invoked as `mycli experimental`,
1478
1906
  * // but it does not appear under SUBCOMMANDS in `mycli --help`.
1479
1907
  * const experimental = Command.make("experimental").pipe(
1480
- * Command.withHidden
1908
+ * Command.unlisted
1481
1909
  * )
1482
1910
  *
1483
1911
  * const root = Command.make("mycli").pipe(
1484
1912
  * Command.withSubcommands([experimental])
1485
1913
  * )
1914
+ *
1915
+ * root.subcommands[0].commands[0].unlisted // => true
1486
1916
  * ```
1487
1917
  *
1488
1918
  * @category combinators
1489
1919
  * @since 4.0.0
1490
1920
  */
1491
- export const withHidden = <const Name extends string, Input, E, R, ContextInput>(
1921
+ export const unlisted = <const Name extends string, Input, E, R, ContextInput>(
1492
1922
  self: Command<Name, Input, ContextInput, E, R>
1493
1923
  ): Command<Name, Input, ContextInput, E, R> =>
1494
- makeCommand({ ...toImpl(self), hidden: true }) as Command<Name, Input, ContextInput, E, R>
1924
+ makeCommand({ ...toImpl(self), unlisted: true }) as Command<Name, Input, ContextInput, E, R>
1495
1925
 
1496
1926
  /**
1497
1927
  * Adds a custom annotation to a command.
@@ -1672,7 +2102,7 @@ export const annotateMerge: {
1672
2102
  *
1673
2103
  * **Example** (Adding usage examples)
1674
2104
  *
1675
- * ```ts
2105
+ * ```ts import.meta.vitest
1676
2106
  * import { Command } from "effect/unstable/cli"
1677
2107
  *
1678
2108
  * const login = Command.make("login").pipe(
@@ -1681,6 +2111,8 @@ export const annotateMerge: {
1681
2111
  * { command: "myapp login --token sbp_abc123", description: "Log in with a token" }
1682
2112
  * ])
1683
2113
  * )
2114
+ *
2115
+ * login.examples.map((example) => example.command) // => ["myapp login", "myapp login --token sbp_abc123"]
1684
2116
  * ```
1685
2117
  *
1686
2118
  * @category combinators
@@ -1697,7 +2129,7 @@ export const withExamples: {
1697
2129
  *
1698
2130
  * **Example** (Adding usage examples)
1699
2131
  *
1700
- * ```ts
2132
+ * ```ts import.meta.vitest
1701
2133
  * import { Command } from "effect/unstable/cli"
1702
2134
  *
1703
2135
  * const login = Command.make("login").pipe(
@@ -1706,6 +2138,8 @@ export const withExamples: {
1706
2138
  * { command: "myapp login --token sbp_abc123", description: "Log in with a token" }
1707
2139
  * ])
1708
2140
  * )
2141
+ *
2142
+ * login.examples.map((example) => example.command) // => ["myapp login", "myapp login --token sbp_abc123"]
1709
2143
  * ```
1710
2144
  *
1711
2145
  * @category combinators
@@ -1724,7 +2158,7 @@ export const withExamples: {
1724
2158
  *
1725
2159
  * **Example** (Adding usage examples)
1726
2160
  *
1727
- * ```ts
2161
+ * ```ts import.meta.vitest
1728
2162
  * import { Command } from "effect/unstable/cli"
1729
2163
  *
1730
2164
  * const login = Command.make("login").pipe(
@@ -1733,6 +2167,8 @@ export const withExamples: {
1733
2167
  * { command: "myapp login --token sbp_abc123", description: "Log in with a token" }
1734
2168
  * ])
1735
2169
  * )
2170
+ *
2171
+ * login.examples.map((example) => example.command) // => ["myapp login", "myapp login --token sbp_abc123"]
1736
2172
  * ```
1737
2173
  *
1738
2174
  * @category combinators
@@ -1766,16 +2202,35 @@ const mapHandler = <Name extends string, Input, E, R, ContextInput, E2, R2>(
1766
2202
  *
1767
2203
  * **Example** (Providing command services)
1768
2204
  *
1769
- * ```ts
1770
- * import { Effect, FileSystem, PlatformError } from "effect"
2205
+ * ```ts import.meta.vitest
2206
+ * import { Effect, FileSystem, Layer, Path, PlatformError, Stdio, Terminal } from "effect"
1771
2207
  * import { Command, Flag } from "effect/unstable/cli"
2208
+ * import { ChildProcessSpawner } from "effect/unstable/process"
2209
+ *
2210
+ * const CliTestLayer = Layer.mergeAll(
2211
+ * FileSystem.layerNoop({}),
2212
+ * Path.layer,
2213
+ * Stdio.layerTest({}),
2214
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
2215
+ * columns: Effect.succeed(80),
2216
+ * rows: Effect.succeed(24),
2217
+ * readInput: Effect.die("unused"),
2218
+ * readLine: Effect.die("unused"),
2219
+ * display: () => Effect.void
2220
+ * })),
2221
+ * Layer.succeed(
2222
+ * ChildProcessSpawner.ChildProcessSpawner,
2223
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
2224
+ * )
2225
+ * )
1772
2226
  *
2227
+ * const output: Array<string> = []
1773
2228
  * const deploy = Command.make("deploy", {
1774
2229
  * env: Flag.string("env")
1775
2230
  * }, (config) =>
1776
2231
  * Effect.gen(function*() {
1777
2232
  * const fs = yield* FileSystem.FileSystem
1778
- * // Use fs...
2233
+ * yield* Effect.sync(() => output.push(`Using file system for ${config.env}`))
1779
2234
  * })).pipe(
1780
2235
  * // Provide FileSystem based on the --env flag
1781
2236
  * Command.provide((config) =>
@@ -1792,6 +2247,11 @@ const mapHandler = <Name extends string, Input, E, R, ContextInput, E2, R2>(
1792
2247
  * })
1793
2248
  * )
1794
2249
  * )
2250
+ *
2251
+ * await Effect.runPromise(
2252
+ * Command.runWith(deploy, { version: "1.0.0" })(["--env", "local"]).pipe(Effect.provide(CliTestLayer))
2253
+ * )
2254
+ * output // => ["Using file system for local"]
1795
2255
  * ```
1796
2256
  *
1797
2257
  * @category providing services
@@ -1804,16 +2264,35 @@ export const provide: {
1804
2264
  *
1805
2265
  * **Example** (Providing command services)
1806
2266
  *
1807
- * ```ts
1808
- * import { Effect, FileSystem, PlatformError } from "effect"
2267
+ * ```ts import.meta.vitest
2268
+ * import { Effect, FileSystem, Layer, Path, PlatformError, Stdio, Terminal } from "effect"
1809
2269
  * import { Command, Flag } from "effect/unstable/cli"
2270
+ * import { ChildProcessSpawner } from "effect/unstable/process"
2271
+ *
2272
+ * const CliTestLayer = Layer.mergeAll(
2273
+ * FileSystem.layerNoop({}),
2274
+ * Path.layer,
2275
+ * Stdio.layerTest({}),
2276
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
2277
+ * columns: Effect.succeed(80),
2278
+ * rows: Effect.succeed(24),
2279
+ * readInput: Effect.die("unused"),
2280
+ * readLine: Effect.die("unused"),
2281
+ * display: () => Effect.void
2282
+ * })),
2283
+ * Layer.succeed(
2284
+ * ChildProcessSpawner.ChildProcessSpawner,
2285
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
2286
+ * )
2287
+ * )
1810
2288
  *
2289
+ * const output: Array<string> = []
1811
2290
  * const deploy = Command.make("deploy", {
1812
2291
  * env: Flag.string("env")
1813
2292
  * }, (config) =>
1814
2293
  * Effect.gen(function*() {
1815
2294
  * const fs = yield* FileSystem.FileSystem
1816
- * // Use fs...
2295
+ * yield* Effect.sync(() => output.push(`Using file system for ${config.env}`))
1817
2296
  * })).pipe(
1818
2297
  * // Provide FileSystem based on the --env flag
1819
2298
  * Command.provide((config) =>
@@ -1830,6 +2309,11 @@ export const provide: {
1830
2309
  * })
1831
2310
  * )
1832
2311
  * )
2312
+ *
2313
+ * await Effect.runPromise(
2314
+ * Command.runWith(deploy, { version: "1.0.0" })(["--env", "local"]).pipe(Effect.provide(CliTestLayer))
2315
+ * )
2316
+ * output // => ["Using file system for local"]
1833
2317
  * ```
1834
2318
  *
1835
2319
  * @category providing services
@@ -1849,16 +2333,35 @@ export const provide: {
1849
2333
  *
1850
2334
  * **Example** (Providing command services)
1851
2335
  *
1852
- * ```ts
1853
- * import { Effect, FileSystem, PlatformError } from "effect"
2336
+ * ```ts import.meta.vitest
2337
+ * import { Effect, FileSystem, Layer, Path, PlatformError, Stdio, Terminal } from "effect"
1854
2338
  * import { Command, Flag } from "effect/unstable/cli"
2339
+ * import { ChildProcessSpawner } from "effect/unstable/process"
2340
+ *
2341
+ * const CliTestLayer = Layer.mergeAll(
2342
+ * FileSystem.layerNoop({}),
2343
+ * Path.layer,
2344
+ * Stdio.layerTest({}),
2345
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
2346
+ * columns: Effect.succeed(80),
2347
+ * rows: Effect.succeed(24),
2348
+ * readInput: Effect.die("unused"),
2349
+ * readLine: Effect.die("unused"),
2350
+ * display: () => Effect.void
2351
+ * })),
2352
+ * Layer.succeed(
2353
+ * ChildProcessSpawner.ChildProcessSpawner,
2354
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
2355
+ * )
2356
+ * )
1855
2357
  *
2358
+ * const output: Array<string> = []
1856
2359
  * const deploy = Command.make("deploy", {
1857
2360
  * env: Flag.string("env")
1858
2361
  * }, (config) =>
1859
2362
  * Effect.gen(function*() {
1860
2363
  * const fs = yield* FileSystem.FileSystem
1861
- * // Use fs...
2364
+ * yield* Effect.sync(() => output.push(`Using file system for ${config.env}`))
1862
2365
  * })).pipe(
1863
2366
  * // Provide FileSystem based on the --env flag
1864
2367
  * Command.provide((config) =>
@@ -1875,6 +2378,11 @@ export const provide: {
1875
2378
  * })
1876
2379
  * )
1877
2380
  * )
2381
+ *
2382
+ * await Effect.runPromise(
2383
+ * Command.runWith(deploy, { version: "1.0.0" })(["--env", "local"]).pipe(Effect.provide(CliTestLayer))
2384
+ * )
2385
+ * output // => ["Using file system for local"]
1878
2386
  * ```
1879
2387
  *
1880
2388
  * @category providing services
@@ -2066,6 +2574,61 @@ export const provideEffectDiscard: {
2066
2574
  /* Execution */
2067
2575
  /* ========================================================================== */
2068
2576
 
2577
+ /**
2578
+ * Interactively constructs command-line arguments for a command.
2579
+ *
2580
+ * **Details**
2581
+ *
2582
+ * The returned arguments include the command name and can be inspected,
2583
+ * modified, or passed to another command runner by the caller.
2584
+ *
2585
+ * **Example** (Constructing command arguments)
2586
+ *
2587
+ * ```ts import.meta.vitest
2588
+ * import { Console, Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
2589
+ * import { Command } from "effect/unstable/cli"
2590
+ * import { ChildProcessSpawner } from "effect/unstable/process"
2591
+ *
2592
+ * const CliTestLayer = Layer.mergeAll(
2593
+ * FileSystem.layerNoop({}),
2594
+ * Path.layer,
2595
+ * Stdio.layerTest({}),
2596
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
2597
+ * columns: Effect.succeed(80),
2598
+ * rows: Effect.succeed(24),
2599
+ * readInput: Effect.die("unused"),
2600
+ * readLine: Effect.die("unused"),
2601
+ * display: () => Effect.void
2602
+ * })),
2603
+ * Layer.succeed(
2604
+ * ChildProcessSpawner.ChildProcessSpawner,
2605
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
2606
+ * )
2607
+ * )
2608
+ *
2609
+ * const command = Command.make("app")
2610
+ * const silentConsole: Console.Console = Object.assign(Object.create(console), {
2611
+ * log: () => {}
2612
+ * })
2613
+ *
2614
+ * const program = Command.wizard(command).pipe(
2615
+ * Effect.provideService(Console.Console, silentConsole),
2616
+ * Effect.provide(CliTestLayer)
2617
+ * )
2618
+ *
2619
+ * await Effect.runPromise(program) // => ["app"]
2620
+ * ```
2621
+ *
2622
+ * @category running
2623
+ * @since 4.0.0
2624
+ */
2625
+ export const wizard = <Name extends string, Input, E, R, ContextInput>(
2626
+ command: Command<Name, Input, ContextInput, E, R>,
2627
+ options?: {
2628
+ readonly prefix?: ReadonlyArray<string> | undefined
2629
+ } | undefined
2630
+ ): Effect.Effect<Array<string>, CliError.CliError | Terminal.QuitError, Environment> => Wizard.run(command, options)
2631
+
2069
2632
  const getOutOfScopeGlobalFlagErrors = (
2070
2633
  allFlags: ReadonlyArray<GlobalFlag.GlobalFlag<any>>,
2071
2634
  activeFlags: ReadonlyArray<GlobalFlag.GlobalFlag<any>>,
@@ -2107,17 +2670,26 @@ const getOutOfScopeGlobalFlagErrors = (
2107
2670
 
2108
2671
  const showHelp = <Name extends string, Input, E, R, ContextInput>(
2109
2672
  command: Command<Name, Input, ContextInput, E, R>,
2110
- error: CliError.ShowHelp
2673
+ error: CliError.ShowHelp,
2674
+ renderErrors: boolean
2111
2675
  ): Effect.Effect<void, CliError.CliError, Environment> =>
2112
2676
  Effect.gen(function*() {
2677
+ const { builtIns } = yield* CliConfig.CliConfig
2113
2678
  const formatter = yield* CliOutput.Formatter
2114
- const helpDoc = yield* getHelpForCommandPath(command, error.commandPath, GlobalFlag.BuiltIns)
2679
+ const helpDoc = yield* getHelpForCommandPath(command, error.commandPath, builtIns)
2115
2680
  yield* Console.log(formatter.formatHelpDoc(helpDoc))
2116
- if (error.errors.length > 0) {
2681
+ if (renderErrors && error.errors.length > 0) {
2117
2682
  yield* Console.error(formatter.formatErrors(error.errors as any))
2118
2683
  }
2119
2684
  })
2120
2685
 
2686
+ const showUserError = (error: CliError.UserError): Effect.Effect<void> =>
2687
+ Effect.gen(function*() {
2688
+ const formatter = yield* CliOutput.Formatter
2689
+ yield* Console.error(formatter.formatError(error))
2690
+ error[Runtime.errorReported] = false
2691
+ })
2692
+
2121
2693
  /**
2122
2694
  * Runs a command using the arguments supplied by the `Stdio` service.
2123
2695
  *
@@ -2126,28 +2698,57 @@ const showHelp = <Name extends string, Input, E, R, ContextInput>(
2126
2698
  * Use when command-line arguments should come from `Stdio` at the application
2127
2699
  * entry point.
2128
2700
  *
2701
+ * Help documents are always rendered. By default, parse error details and
2702
+ * `CliError.UserError` failures are also rendered with the installed
2703
+ * `CliOutput.Formatter` before the error is rethrown. Set `renderErrors` to
2704
+ * `false` when the host application owns error rendering.
2705
+ *
2129
2706
  * **Example** (Running commands with standard input)
2130
2707
  *
2131
- * ```ts
2132
- * import { Console, Effect } from "effect"
2708
+ * ```ts import.meta.vitest
2709
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
2133
2710
  * import { Command, Flag } from "effect/unstable/cli"
2711
+ * import { ChildProcessSpawner } from "effect/unstable/process"
2712
+ *
2713
+ * const CliTestLayer = Layer.mergeAll(
2714
+ * FileSystem.layerNoop({}),
2715
+ * Path.layer,
2716
+ * Stdio.layerTest({
2717
+ * args: Effect.succeed(["--name", "Alice"])
2718
+ * }),
2719
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
2720
+ * columns: Effect.succeed(80),
2721
+ * rows: Effect.succeed(24),
2722
+ * readInput: Effect.die("unused"),
2723
+ * readLine: Effect.die("unused"),
2724
+ * display: () => Effect.void
2725
+ * })),
2726
+ * Layer.succeed(
2727
+ * ChildProcessSpawner.ChildProcessSpawner,
2728
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
2729
+ * )
2730
+ * )
2134
2731
  *
2732
+ * const output: Array<string> = []
2135
2733
  * const greetCommand = Command.make("greet", {
2136
2734
  * name: Flag.string("name")
2137
2735
  * }, (config) =>
2138
2736
  * Effect.gen(function*() {
2139
- * yield* Console.log(`Hello, ${config.name}!`)
2737
+ * yield* Effect.sync(() => output.push(`Hello, ${config.name}!`))
2140
2738
  * }))
2141
2739
  *
2142
2740
  * // Automatically gets args from the Stdio service
2143
2741
  * const program = Command.run(greetCommand, {
2144
2742
  * version: "1.0.0"
2145
2743
  * })
2744
+ *
2745
+ * await Effect.runPromise(program.pipe(Effect.provide(CliTestLayer)))
2746
+ * output // => ["Hello, Alice!"]
2146
2747
  * ```
2147
2748
  *
2148
2749
  * @see {@link runWith} for running a command with an explicit argument array
2149
2750
  *
2150
- * @category command execution
2751
+ * @category running
2151
2752
  * @since 4.0.0
2152
2753
  */
2153
2754
  export const run: {
@@ -2159,33 +2760,63 @@ export const run: {
2159
2760
  * Use when command-line arguments should come from `Stdio` at the application
2160
2761
  * entry point.
2161
2762
  *
2763
+ * Help documents are always rendered. By default, parse error details and
2764
+ * `CliError.UserError` failures are also rendered with the installed
2765
+ * `CliOutput.Formatter` before the error is rethrown. Set `renderErrors` to
2766
+ * `false` when the host application owns error rendering.
2767
+ *
2162
2768
  * **Example** (Running commands with standard input)
2163
2769
  *
2164
- * ```ts
2165
- * import { Console, Effect } from "effect"
2770
+ * ```ts import.meta.vitest
2771
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
2166
2772
  * import { Command, Flag } from "effect/unstable/cli"
2773
+ * import { ChildProcessSpawner } from "effect/unstable/process"
2774
+ *
2775
+ * const CliTestLayer = Layer.mergeAll(
2776
+ * FileSystem.layerNoop({}),
2777
+ * Path.layer,
2778
+ * Stdio.layerTest({
2779
+ * args: Effect.succeed(["--name", "Alice"])
2780
+ * }),
2781
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
2782
+ * columns: Effect.succeed(80),
2783
+ * rows: Effect.succeed(24),
2784
+ * readInput: Effect.die("unused"),
2785
+ * readLine: Effect.die("unused"),
2786
+ * display: () => Effect.void
2787
+ * })),
2788
+ * Layer.succeed(
2789
+ * ChildProcessSpawner.ChildProcessSpawner,
2790
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
2791
+ * )
2792
+ * )
2167
2793
  *
2794
+ * const output: Array<string> = []
2168
2795
  * const greetCommand = Command.make("greet", {
2169
2796
  * name: Flag.string("name")
2170
2797
  * }, (config) =>
2171
2798
  * Effect.gen(function*() {
2172
- * yield* Console.log(`Hello, ${config.name}!`)
2799
+ * yield* Effect.sync(() => output.push(`Hello, ${config.name}!`))
2173
2800
  * }))
2174
2801
  *
2175
2802
  * // Automatically gets args from the Stdio service
2176
2803
  * const program = Command.run(greetCommand, {
2177
2804
  * version: "1.0.0"
2178
2805
  * })
2806
+ *
2807
+ * await Effect.runPromise(program.pipe(Effect.provide(CliTestLayer)))
2808
+ * output // => ["Hello, Alice!"]
2179
2809
  * ```
2180
2810
  *
2181
2811
  * @see {@link runWith} for running a command with an explicit argument array
2182
2812
  *
2183
- * @category command execution
2813
+ * @category running
2184
2814
  * @since 4.0.0
2185
2815
  */
2186
2816
  (
2187
2817
  config: {
2188
2818
  readonly version: string
2819
+ readonly renderErrors?: boolean | undefined
2189
2820
  }
2190
2821
  ): <Name extends string, Input, E, R, ContextInput>(
2191
2822
  command: Command<Name, Input, ContextInput, E, R>
@@ -2198,40 +2829,71 @@ export const run: {
2198
2829
  * Use when command-line arguments should come from `Stdio` at the application
2199
2830
  * entry point.
2200
2831
  *
2832
+ * Help documents are always rendered. By default, parse error details and
2833
+ * `CliError.UserError` failures are also rendered with the installed
2834
+ * `CliOutput.Formatter` before the error is rethrown. Set `renderErrors` to
2835
+ * `false` when the host application owns error rendering.
2836
+ *
2201
2837
  * **Example** (Running commands with standard input)
2202
2838
  *
2203
- * ```ts
2204
- * import { Console, Effect } from "effect"
2839
+ * ```ts import.meta.vitest
2840
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
2205
2841
  * import { Command, Flag } from "effect/unstable/cli"
2842
+ * import { ChildProcessSpawner } from "effect/unstable/process"
2843
+ *
2844
+ * const CliTestLayer = Layer.mergeAll(
2845
+ * FileSystem.layerNoop({}),
2846
+ * Path.layer,
2847
+ * Stdio.layerTest({
2848
+ * args: Effect.succeed(["--name", "Alice"])
2849
+ * }),
2850
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
2851
+ * columns: Effect.succeed(80),
2852
+ * rows: Effect.succeed(24),
2853
+ * readInput: Effect.die("unused"),
2854
+ * readLine: Effect.die("unused"),
2855
+ * display: () => Effect.void
2856
+ * })),
2857
+ * Layer.succeed(
2858
+ * ChildProcessSpawner.ChildProcessSpawner,
2859
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
2860
+ * )
2861
+ * )
2206
2862
  *
2863
+ * const output: Array<string> = []
2207
2864
  * const greetCommand = Command.make("greet", {
2208
2865
  * name: Flag.string("name")
2209
2866
  * }, (config) =>
2210
2867
  * Effect.gen(function*() {
2211
- * yield* Console.log(`Hello, ${config.name}!`)
2868
+ * yield* Effect.sync(() => output.push(`Hello, ${config.name}!`))
2212
2869
  * }))
2213
2870
  *
2214
2871
  * // Automatically gets args from the Stdio service
2215
2872
  * const program = Command.run(greetCommand, {
2216
2873
  * version: "1.0.0"
2217
2874
  * })
2875
+ *
2876
+ * await Effect.runPromise(program.pipe(Effect.provide(CliTestLayer)))
2877
+ * output // => ["Hello, Alice!"]
2218
2878
  * ```
2219
2879
  *
2220
2880
  * @see {@link runWith} for running a command with an explicit argument array
2221
2881
  *
2222
- * @category command execution
2882
+ * @category running
2223
2883
  * @since 4.0.0
2224
2884
  */
2225
2885
  <Name extends string, Input, E, R, ContextInput>(
2226
2886
  command: Command<Name, Input, ContextInput, E, R>,
2227
2887
  config: {
2228
2888
  readonly version: string
2889
+ readonly renderErrors?: boolean | undefined
2229
2890
  }
2230
2891
  ): Effect.Effect<void, E | CliError.CliError, R | Environment>
2231
2892
  } = dual(2, <Name extends string, Input, E, R, ContextInput>(
2232
2893
  command: Command<Name, Input, ContextInput, E, R>,
2233
2894
  config: {
2234
2895
  readonly version: string
2896
+ readonly renderErrors?: boolean | undefined
2235
2897
  }
2236
2898
  ) =>
2237
2899
  Stdio.Stdio.use(({ args }) =>
@@ -2249,19 +2911,43 @@ export const run: {
2249
2911
  * Use when you need to test CLI applications or programmatically execute
2250
2912
  * commands with specific arguments.
2251
2913
  *
2914
+ * Help documents are always rendered. By default, parse error details and
2915
+ * `CliError.UserError` failures are also rendered with the installed
2916
+ * `CliOutput.Formatter` before the error is rethrown. Set `renderErrors` to
2917
+ * `false` when the host application owns error rendering.
2918
+ *
2252
2919
  * **Example** (Running commands with explicit arguments)
2253
2920
  *
2254
- * ```ts
2255
- * import { Console, Effect } from "effect"
2921
+ * ```ts import.meta.vitest
2922
+ * import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
2256
2923
  * import { Command, Flag } from "effect/unstable/cli"
2924
+ * import { ChildProcessSpawner } from "effect/unstable/process"
2925
+ *
2926
+ * const CliTestLayer = Layer.mergeAll(
2927
+ * FileSystem.layerNoop({}),
2928
+ * Path.layer,
2929
+ * Stdio.layerTest({}),
2930
+ * Layer.succeed(Terminal.Terminal, Terminal.make({
2931
+ * columns: Effect.succeed(80),
2932
+ * rows: Effect.succeed(24),
2933
+ * readInput: Effect.die("unused"),
2934
+ * readLine: Effect.die("unused"),
2935
+ * display: () => Effect.void
2936
+ * })),
2937
+ * Layer.succeed(
2938
+ * ChildProcessSpawner.ChildProcessSpawner,
2939
+ * ChildProcessSpawner.make(() => Effect.die("unused"))
2940
+ * )
2941
+ * )
2257
2942
  *
2943
+ * const output: Array<string> = []
2258
2944
  * const greet = Command.make("greet", {
2259
2945
  * name: Flag.string("name"),
2260
2946
  * count: Flag.integer("count").pipe(Flag.withDefault(1))
2261
2947
  * }, (config) =>
2262
2948
  * Effect.gen(function*() {
2263
2949
  * for (let i = 0; i < config.count; i++) {
2264
- * yield* Console.log(`Hello, ${config.name}!`)
2950
+ * yield* Effect.sync(() => output.push(`Hello, ${config.name}!`))
2265
2951
  * }
2266
2952
  * }))
2267
2953
  *
@@ -2269,24 +2955,21 @@ export const run: {
2269
2955
  * const testProgram = Effect.gen(function*() {
2270
2956
  * const runCommand = Command.runWith(greet, { version: "1.0.0" })
2271
2957
  *
2272
- * // Test normal execution
2273
2958
  * yield* runCommand(["--name", "Alice", "--count", "2"])
2274
- *
2275
- * // Test help display
2276
- * yield* runCommand(["--help"])
2277
- *
2278
- * // Test version display
2279
- * yield* runCommand(["--version"])
2280
2959
  * })
2960
+ *
2961
+ * await Effect.runPromise(testProgram.pipe(Effect.provide(CliTestLayer)))
2962
+ * output // => ["Hello, Alice!", "Hello, Alice!"]
2281
2963
  * ```
2282
2964
  *
2283
- * @category command execution
2965
+ * @category running
2284
2966
  * @since 4.0.0
2285
2967
  */
2286
2968
  export const runWith = <const Name extends string, Input, E, R, ContextInput>(
2287
2969
  command: Command<Name, Input, ContextInput, E, R>,
2288
2970
  config: {
2289
2971
  readonly version: string
2972
+ readonly renderErrors?: boolean | undefined
2290
2973
  }
2291
2974
  ): (
2292
2975
  input: ReadonlyArray<string>
@@ -2294,10 +2977,11 @@ export const runWith = <const Name extends string, Input, E, R, ContextInput>(
2294
2977
  const commandImpl = toImpl(command)
2295
2978
  return Effect.fnUntraced(
2296
2979
  function*(args: ReadonlyArray<string>) {
2980
+ const { builtIns } = yield* CliConfig.CliConfig
2297
2981
  const { tokens, trailingOperands } = Lexer.lex(args)
2298
2982
 
2299
2983
  // 1. Collect known global flags from the command tree
2300
- const allFlags = getGlobalFlagsForCommandTree(command, GlobalFlag.BuiltIns)
2984
+ const allFlags = getGlobalFlagsForCommandTree(command, builtIns)
2301
2985
 
2302
2986
  // 2. Extract global flag tokens
2303
2987
  const allFlagParams = allFlags.flatMap((f) => Param.extractSingleParams(f.flag))
@@ -2312,8 +2996,8 @@ export const runWith = <const Name extends string, Input, E, R, ContextInput>(
2312
2996
  // 3. Parse command arguments from remaining tokens
2313
2997
  const parsedArgs = yield* Parser.parseArgs({ tokens: remainder, trailingOperands }, command)
2314
2998
  const commandPath = [command.name, ...Parser.getCommandPath(parsedArgs)] as const
2315
- const handlerCtx: GlobalFlag.HandlerContext = { command, commandPath, version: config.version }
2316
- const activeFlags = getGlobalFlagsForCommandPath(command, commandPath, GlobalFlag.BuiltIns)
2999
+ const handlerCtx: GlobalFlag.HandlerContext = { builtIns, command, commandPath, version: config.version }
3000
+ const activeFlags = getGlobalFlagsForCommandPath(command, commandPath, builtIns)
2317
3001
 
2318
3002
  // 4. Reject globals that were passed outside the active command scope
2319
3003
  const outOfScopeErrors = getOutOfScopeGlobalFlagErrors(allFlags, activeFlags, flagMap, commandPath)
@@ -2335,6 +3019,29 @@ export const runWith = <const Name extends string, Input, E, R, ContextInput>(
2335
3019
  })
2336
3020
  if (!hasEntry) continue
2337
3021
  const [, value] = yield* flag.flag.parse(emptyArgs)
3022
+ if (flag === GlobalFlag.Wizard) {
3023
+ return yield* Effect.gen(function*() {
3024
+ yield* Console.log(Wizard.renderIntroduction(command.name, config.version, command.description))
3025
+ const prefix = [
3026
+ command.name,
3027
+ ...args.filter((arg) => arg !== "--wizard" && !arg.startsWith("--wizard="))
3028
+ ]
3029
+ const wizardArgs = yield* Wizard.run(command, { commandPath, prefix })
3030
+ yield* Console.log(Wizard.renderCompletion(wizardArgs))
3031
+ const shouldRun = yield* Prompt.run(Prompt.toggle({
3032
+ message: "Run this command?",
3033
+ initial: true,
3034
+ active: "yes",
3035
+ inactive: "no"
3036
+ }))
3037
+ if (shouldRun) {
3038
+ yield* Console.log()
3039
+ yield* runWith(command, { ...config, renderErrors: false })(wizardArgs.slice(1))
3040
+ }
3041
+ }).pipe(
3042
+ Effect.catchTag("QuitError", () => Console.log(Wizard.renderQuit()))
3043
+ )
3044
+ }
2338
3045
  yield* flag.run(value, handlerCtx)
2339
3046
  return
2340
3047
  }
@@ -2353,7 +3060,9 @@ export const runWith = <const Name extends string, Input, E, R, ContextInput>(
2353
3060
 
2354
3061
  // 7. Provide setting values
2355
3062
  let program = commandImpl.handle(parseResult.success, [command.name])
2356
- const [, logLevel] = yield* GlobalFlag.LogLevel.flag.parse(emptyArgs)
3063
+ const logLevel = activeFlags.includes(GlobalFlag.LogLevel)
3064
+ ? (yield* GlobalFlag.LogLevel.flag.parse(emptyArgs))[1]
3065
+ : Option.none()
2357
3066
  program = Effect.provideService(program, GlobalFlag.LogLevel, logLevel)
2358
3067
  for (const flag of activeFlags) {
2359
3068
  if (flag._tag !== "Setting" || flag === GlobalFlag.LogLevel) continue
@@ -2375,7 +3084,14 @@ export const runWith = <const Name extends string, Input, E, R, ContextInput>(
2375
3084
  CliError.isCliError(error) && error._tag === "ShowHelp"
2376
3085
  ? Result.succeed(error)
2377
3086
  : Result.fail(error),
2378
- (error) => Effect.andThen(showHelp(command, error), Effect.fail(error))
3087
+ (error) => Effect.andThen(showHelp(command, error, config.renderErrors !== false), Effect.fail(error))
3088
+ ),
3089
+ Effect.catchFilter(
3090
+ (error) =>
3091
+ config.renderErrors !== false && CliError.isCliError(error) && error._tag === "UserError"
3092
+ ? Result.succeed(error)
3093
+ : Result.fail(error),
3094
+ (error) => Effect.andThen(showUserError(error), Effect.fail(error))
2379
3095
  ),
2380
3096
  Effect.catchFilter(
2381
3097
  (e) =>