effect 4.0.0-beta.103 → 4.0.0-beta.105

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 (667) hide show
  1. package/AGENTS.md +381 -0
  2. package/CLAUDE.md +381 -0
  3. package/ai-docs/README.md +44 -0
  4. package/ai-docs/package.json +36 -0
  5. package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
  6. package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
  7. package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
  8. package/ai-docs/src/01_effect/01_basics/index.md +5 -0
  9. package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
  10. package/ai-docs/src/01_effect/02_schema/index.md +7 -0
  11. package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
  12. package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
  13. package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
  14. package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
  15. package/ai-docs/src/01_effect/03_services/index.md +5 -0
  16. package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
  17. package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
  18. package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
  19. package/ai-docs/src/01_effect/04_errors/index.md +1 -0
  20. package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
  21. package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
  22. package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
  23. package/ai-docs/src/01_effect/05_resources/index.md +3 -0
  24. package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
  25. package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
  26. package/ai-docs/src/01_effect/06_running/index.md +1 -0
  27. package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
  28. package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
  29. package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
  30. package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
  31. package/ai-docs/src/03_stream/30_encoding.ts +165 -0
  32. package/ai-docs/src/03_stream/index.md +4 -0
  33. package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
  34. package/ai-docs/src/04_integration/index.md +5 -0
  35. package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
  36. package/ai-docs/src/05_batching/index.md +3 -0
  37. package/ai-docs/src/06_schedule/10_schedules.ts +110 -0
  38. package/ai-docs/src/06_schedule/index.md +3 -0
  39. package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
  40. package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
  41. package/ai-docs/src/07_datetime/index.md +5 -0
  42. package/ai-docs/src/08_observability/10_logging.ts +66 -0
  43. package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
  44. package/ai-docs/src/08_observability/index.md +7 -0
  45. package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
  46. package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
  47. package/ai-docs/src/09_testing/index.md +1 -0
  48. package/ai-docs/src/10_predicate/01_basics.ts +14 -0
  49. package/ai-docs/src/10_predicate/index.md +9 -0
  50. package/ai-docs/src/50_http-client/10_basics.ts +102 -0
  51. package/ai-docs/src/50_http-client/index.md +3 -0
  52. package/ai-docs/src/51_http-server/10_basics.ts +116 -0
  53. package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
  54. package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
  55. package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
  56. package/ai-docs/src/51_http-server/fixtures/api/Users.ts +91 -0
  57. package/ai-docs/src/51_http-server/fixtures/domain/User.ts +12 -0
  58. package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
  59. package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +36 -0
  60. package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +71 -0
  61. package/ai-docs/src/51_http-server/fixtures/server/Users.ts +62 -0
  62. package/ai-docs/src/51_http-server/index.md +3 -0
  63. package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
  64. package/ai-docs/src/60_child-process/index.md +3 -0
  65. package/ai-docs/src/70_cli/10_basics.ts +136 -0
  66. package/ai-docs/src/70_cli/index.md +5 -0
  67. package/ai-docs/src/71_ai/10_language-model.ts +156 -0
  68. package/ai-docs/src/71_ai/20_tools.ts +226 -0
  69. package/ai-docs/src/71_ai/30_chat.ts +158 -0
  70. package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
  71. package/ai-docs/src/71_ai/index.md +5 -0
  72. package/ai-docs/src/80_cluster/10_entities.ts +97 -0
  73. package/ai-docs/src/80_cluster/index.md +4 -0
  74. package/ai-docs/src/index.md +10 -0
  75. package/ai-docs/tsconfig.json +24 -0
  76. package/dist/Brand.d.ts +3 -3
  77. package/dist/Brand.d.ts.map +1 -1
  78. package/dist/Brand.js +4 -3
  79. package/dist/Brand.js.map +1 -1
  80. package/dist/Cache.js +1 -1
  81. package/dist/Cache.js.map +1 -1
  82. package/dist/Channel.d.ts +1 -1
  83. package/dist/Channel.d.ts.map +1 -1
  84. package/dist/Channel.js.map +1 -1
  85. package/dist/Config.d.ts.map +1 -1
  86. package/dist/Config.js +30 -8
  87. package/dist/Config.js.map +1 -1
  88. package/dist/ConfigProvider.d.ts.map +1 -1
  89. package/dist/ConfigProvider.js +2 -1
  90. package/dist/ConfigProvider.js.map +1 -1
  91. package/dist/Context.d.ts +2 -3
  92. package/dist/Context.d.ts.map +1 -1
  93. package/dist/Context.js +1 -22
  94. package/dist/Context.js.map +1 -1
  95. package/dist/Cron.d.ts +31 -0
  96. package/dist/Cron.d.ts.map +1 -1
  97. package/dist/Cron.js +58 -2
  98. package/dist/Cron.js.map +1 -1
  99. package/dist/Crypto.d.ts.map +1 -1
  100. package/dist/Crypto.js +13 -5
  101. package/dist/Crypto.js.map +1 -1
  102. package/dist/Duration.d.ts.map +1 -1
  103. package/dist/Duration.js +12 -1
  104. package/dist/Duration.js.map +1 -1
  105. package/dist/Effect.d.ts +132 -14
  106. package/dist/Effect.d.ts.map +1 -1
  107. package/dist/Effect.js +38 -0
  108. package/dist/Effect.js.map +1 -1
  109. package/dist/Equal.d.ts.map +1 -1
  110. package/dist/Equal.js +10 -2
  111. package/dist/Equal.js.map +1 -1
  112. package/dist/ExecutionPlan.d.ts +73 -0
  113. package/dist/ExecutionPlan.d.ts.map +1 -1
  114. package/dist/ExecutionPlan.js +1 -1
  115. package/dist/ExecutionPlan.js.map +1 -1
  116. package/dist/FiberSet.js +1 -1
  117. package/dist/FileSystem.d.ts +2 -2
  118. package/dist/Function.d.ts +4 -3
  119. package/dist/Function.d.ts.map +1 -1
  120. package/dist/Function.js +5 -5
  121. package/dist/Function.js.map +1 -1
  122. package/dist/Iterable.d.ts.map +1 -1
  123. package/dist/Iterable.js +11 -10
  124. package/dist/Iterable.js.map +1 -1
  125. package/dist/Layer.d.ts.map +1 -1
  126. package/dist/Layer.js +7 -5
  127. package/dist/Layer.js.map +1 -1
  128. package/dist/Optic.d.ts +35 -21
  129. package/dist/Optic.d.ts.map +1 -1
  130. package/dist/Optic.js +33 -34
  131. package/dist/Optic.js.map +1 -1
  132. package/dist/Schedule.d.ts +8 -8
  133. package/dist/Schedule.d.ts.map +1 -1
  134. package/dist/Schedule.js +4 -4
  135. package/dist/Schedule.js.map +1 -1
  136. package/dist/Schema.d.ts +105 -57
  137. package/dist/Schema.d.ts.map +1 -1
  138. package/dist/Schema.js +105 -67
  139. package/dist/Schema.js.map +1 -1
  140. package/dist/SchemaAST.d.ts +33 -3
  141. package/dist/SchemaAST.d.ts.map +1 -1
  142. package/dist/SchemaAST.js +87 -63
  143. package/dist/SchemaAST.js.map +1 -1
  144. package/dist/SchemaError.d.ts +8 -8
  145. package/dist/SchemaError.d.ts.map +1 -1
  146. package/dist/SchemaError.js +7 -6
  147. package/dist/SchemaError.js.map +1 -1
  148. package/dist/SchemaGetter.d.ts +8 -5
  149. package/dist/SchemaGetter.d.ts.map +1 -1
  150. package/dist/SchemaGetter.js +41 -37
  151. package/dist/SchemaGetter.js.map +1 -1
  152. package/dist/SchemaIssue.d.ts +195 -38
  153. package/dist/SchemaIssue.d.ts.map +1 -1
  154. package/dist/SchemaIssue.js +243 -68
  155. package/dist/SchemaIssue.js.map +1 -1
  156. package/dist/SchemaParser.d.ts +30 -0
  157. package/dist/SchemaParser.d.ts.map +1 -1
  158. package/dist/SchemaParser.js +74 -62
  159. package/dist/SchemaParser.js.map +1 -1
  160. package/dist/SchemaTransformation.d.ts +2 -2
  161. package/dist/SchemaTransformation.d.ts.map +1 -1
  162. package/dist/SchemaTransformation.js +26 -26
  163. package/dist/SchemaTransformation.js.map +1 -1
  164. package/dist/ScopedCache.js +1 -1
  165. package/dist/ScopedCache.js.map +1 -1
  166. package/dist/Sink.d.ts +1 -1
  167. package/dist/Sink.d.ts.map +1 -1
  168. package/dist/Stdio.d.ts +17 -4
  169. package/dist/Stdio.d.ts.map +1 -1
  170. package/dist/Stdio.js +6 -3
  171. package/dist/Stdio.js.map +1 -1
  172. package/dist/Stream.d.ts +27 -4
  173. package/dist/Stream.d.ts.map +1 -1
  174. package/dist/Stream.js +27 -2
  175. package/dist/Stream.js.map +1 -1
  176. package/dist/SynchronizedRef.js +1 -1
  177. package/dist/SynchronizedRef.js.map +1 -1
  178. package/dist/Terminal.js +1 -1
  179. package/dist/Terminal.js.map +1 -1
  180. package/dist/Tuple.d.ts +6 -4
  181. package/dist/Tuple.d.ts.map +1 -1
  182. package/dist/Tuple.js.map +1 -1
  183. package/dist/TxReentrantLock.d.ts +0 -56
  184. package/dist/TxReentrantLock.d.ts.map +1 -1
  185. package/dist/TxReentrantLock.js +8 -8
  186. package/dist/TxReentrantLock.js.map +1 -1
  187. package/dist/internal/dateTime.js +1 -1
  188. package/dist/internal/dateTime.js.map +1 -1
  189. package/dist/internal/executionPlan.js +51 -3
  190. package/dist/internal/executionPlan.js.map +1 -1
  191. package/dist/internal/hashMap.js +12 -8
  192. package/dist/internal/hashMap.js.map +1 -1
  193. package/dist/internal/matcher.js +1 -1
  194. package/dist/internal/matcher.js.map +1 -1
  195. package/dist/internal/schedule.js.map +1 -1
  196. package/dist/internal/schema/annotations.js +2 -0
  197. package/dist/internal/schema/annotations.js.map +1 -1
  198. package/dist/internal/schema/schema.js +1 -9
  199. package/dist/internal/schema/schema.js.map +1 -1
  200. package/dist/internal/schema/toArbitrary.js +1 -1
  201. package/dist/internal/schema/toArbitrary.js.map +1 -1
  202. package/dist/internal/trie.js +13 -3
  203. package/dist/internal/trie.js.map +1 -1
  204. package/dist/testing/TestClock.d.ts.map +1 -1
  205. package/dist/testing/TestClock.js +11 -1
  206. package/dist/testing/TestClock.js.map +1 -1
  207. package/dist/testing/TestSchema.d.ts +2 -2
  208. package/dist/testing/TestSchema.d.ts.map +1 -1
  209. package/dist/testing/TestSchema.js +8 -7
  210. package/dist/testing/TestSchema.js.map +1 -1
  211. package/dist/unstable/ai/AiError.js +19 -19
  212. package/dist/unstable/ai/AiError.js.map +1 -1
  213. package/dist/unstable/ai/Chat.js +1 -1
  214. package/dist/unstable/ai/Chat.js.map +1 -1
  215. package/dist/unstable/ai/LanguageModel.js +4 -2
  216. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  217. package/dist/unstable/ai/McpSchema.d.ts +132 -132
  218. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  219. package/dist/unstable/ai/McpSchema.js +8 -8
  220. package/dist/unstable/ai/McpSchema.js.map +1 -1
  221. package/dist/unstable/ai/McpServer.js +1 -1
  222. package/dist/unstable/ai/McpServer.js.map +1 -1
  223. package/dist/unstable/ai/Prompt.d.ts +15 -3
  224. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  225. package/dist/unstable/ai/Prompt.js +10 -7
  226. package/dist/unstable/ai/Prompt.js.map +1 -1
  227. package/dist/unstable/cli/CliError.d.ts +3 -3
  228. package/dist/unstable/cli/CliError.js +11 -11
  229. package/dist/unstable/cli/CliError.js.map +1 -1
  230. package/dist/unstable/cli/Command.d.ts +9 -9
  231. package/dist/unstable/cli/Command.d.ts.map +1 -1
  232. package/dist/unstable/cli/Command.js +8 -6
  233. package/dist/unstable/cli/Command.js.map +1 -1
  234. package/dist/unstable/cli/Param.d.ts +7 -5
  235. package/dist/unstable/cli/Param.d.ts.map +1 -1
  236. package/dist/unstable/cli/Param.js +15 -11
  237. package/dist/unstable/cli/Param.js.map +1 -1
  238. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  239. package/dist/unstable/cli/Primitive.js +31 -24
  240. package/dist/unstable/cli/Primitive.js.map +1 -1
  241. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  242. package/dist/unstable/cli/Prompt.js +31 -17
  243. package/dist/unstable/cli/Prompt.js.map +1 -1
  244. package/dist/unstable/cli/internal/ansi.js +2 -2
  245. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  246. package/dist/unstable/cli/internal/command.d.ts +2 -2
  247. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  248. package/dist/unstable/cli/internal/command.js +10 -9
  249. package/dist/unstable/cli/internal/command.js.map +1 -1
  250. package/dist/unstable/cli/internal/completions/bash.js +69 -9
  251. package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
  252. package/dist/unstable/cli/internal/completions/descriptor.js +24 -18
  253. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  254. package/dist/unstable/cli/internal/completions/fish.js +5 -5
  255. package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
  256. package/dist/unstable/cli/internal/help.d.ts.map +1 -1
  257. package/dist/unstable/cli/internal/help.js +4 -2
  258. package/dist/unstable/cli/internal/help.js.map +1 -1
  259. package/dist/unstable/cli/internal/parser.js +3 -3
  260. package/dist/unstable/cli/internal/parser.js.map +1 -1
  261. package/dist/unstable/cli/internal/wizard.js +2 -2
  262. package/dist/unstable/cli/internal/wizard.js.map +1 -1
  263. package/dist/unstable/cluster/ClusterError.js +7 -7
  264. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  265. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  266. package/dist/unstable/cluster/ClusterWorkflowEngine.js +1 -1
  267. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  268. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  269. package/dist/unstable/cluster/MessageStorage.js +8 -1
  270. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  271. package/dist/unstable/cluster/Reply.d.ts +8 -0
  272. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  273. package/dist/unstable/cluster/Reply.js +16 -4
  274. package/dist/unstable/cluster/Reply.js.map +1 -1
  275. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  276. package/dist/unstable/cluster/RunnerServer.js +4 -2
  277. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  278. package/dist/unstable/cluster/RunnerStorage.d.ts +1 -2
  279. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  280. package/dist/unstable/cluster/RunnerStorage.js +7 -6
  281. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  282. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  283. package/dist/unstable/cluster/Sharding.js +22 -4
  284. package/dist/unstable/cluster/Sharding.js.map +1 -1
  285. package/dist/unstable/cluster/internal/entityManager.js +1 -1
  286. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  287. package/dist/unstable/cluster/internal/resourceMap.js +2 -2
  288. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  289. package/dist/unstable/cluster/internal/resourceRef.js +17 -0
  290. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  291. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  292. package/dist/unstable/devtools/DevToolsClient.js +7 -2
  293. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  294. package/dist/unstable/encoding/Ini.d.ts +20 -0
  295. package/dist/unstable/encoding/Ini.d.ts.map +1 -0
  296. package/dist/unstable/encoding/Ini.js +153 -0
  297. package/dist/unstable/encoding/Ini.js.map +1 -0
  298. package/dist/unstable/encoding/Msgpack.d.ts +2 -1
  299. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  300. package/dist/unstable/encoding/Msgpack.js +27 -13
  301. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  302. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  303. package/dist/unstable/encoding/Ndjson.js +7 -1
  304. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  305. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  306. package/dist/unstable/encoding/Sse.js +14 -23
  307. package/dist/unstable/encoding/Sse.js.map +1 -1
  308. package/dist/unstable/encoding/Toml.d.ts +19 -0
  309. package/dist/unstable/encoding/Toml.d.ts.map +1 -0
  310. package/dist/unstable/encoding/Toml.js +434 -0
  311. package/dist/unstable/encoding/Toml.js.map +1 -0
  312. package/dist/unstable/encoding/Yaml.d.ts +19 -0
  313. package/dist/unstable/encoding/Yaml.d.ts.map +1 -0
  314. package/dist/unstable/encoding/Yaml.js +461 -0
  315. package/dist/unstable/encoding/Yaml.js.map +1 -0
  316. package/dist/unstable/encoding/index.d.ts +12 -0
  317. package/dist/unstable/encoding/index.d.ts.map +1 -1
  318. package/dist/unstable/encoding/index.js +12 -0
  319. package/dist/unstable/encoding/index.js.map +1 -1
  320. package/dist/unstable/eventlog/EventJournal.d.ts +1 -1
  321. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  322. package/dist/unstable/eventlog/EventJournal.js +13 -5
  323. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  324. package/dist/unstable/eventlog/EventLogMessage.js +1 -1
  325. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  326. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +1 -1
  327. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  328. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
  329. package/dist/unstable/eventlog/SqlEventJournal.js +1 -4
  330. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  331. package/dist/unstable/http/FindMyWay/internal/queryString.d.ts +11 -0
  332. package/dist/unstable/http/FindMyWay/internal/queryString.d.ts.map +1 -0
  333. package/dist/unstable/http/FindMyWay/internal/queryString.js +259 -0
  334. package/dist/unstable/http/FindMyWay/internal/queryString.js.map +1 -0
  335. package/dist/unstable/http/FindMyWay/internal/router.d.ts +2 -0
  336. package/dist/unstable/http/FindMyWay/internal/router.d.ts.map +1 -0
  337. package/dist/unstable/http/FindMyWay/internal/router.js +665 -0
  338. package/dist/unstable/http/FindMyWay/internal/router.js.map +1 -0
  339. package/dist/unstable/http/FindMyWay.d.ts +33 -8
  340. package/dist/unstable/http/FindMyWay.d.ts.map +1 -1
  341. package/dist/unstable/http/FindMyWay.js +4 -7
  342. package/dist/unstable/http/FindMyWay.js.map +1 -1
  343. package/dist/unstable/http/HttpClient.d.ts +59 -3
  344. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  345. package/dist/unstable/http/HttpClient.js +33 -19
  346. package/dist/unstable/http/HttpClient.js.map +1 -1
  347. package/dist/unstable/http/HttpClientError.js +1 -1
  348. package/dist/unstable/http/HttpClientError.js.map +1 -1
  349. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  350. package/dist/unstable/http/HttpClientRequest.js +2 -14
  351. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  352. package/dist/unstable/http/HttpClientResponse.js +1 -16
  353. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  354. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  355. package/dist/unstable/http/HttpPlatform.js +21 -3
  356. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  357. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  358. package/dist/unstable/http/HttpServerRequest.js +7 -6
  359. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  360. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  361. package/dist/unstable/http/HttpServerResponse.js +8 -6
  362. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  363. package/dist/unstable/http/Multipart.d.ts +1 -1
  364. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  365. package/dist/unstable/http/Multipart.js +9 -2
  366. package/dist/unstable/http/Multipart.js.map +1 -1
  367. package/dist/unstable/http/MultipartParser/HeadersParser.d.ts +53 -0
  368. package/dist/unstable/http/MultipartParser/HeadersParser.d.ts.map +1 -0
  369. package/dist/unstable/http/MultipartParser/HeadersParser.js +14 -0
  370. package/dist/unstable/http/MultipartParser/HeadersParser.js.map +1 -0
  371. package/dist/unstable/http/MultipartParser/Search.d.ts +11 -0
  372. package/dist/unstable/http/MultipartParser/Search.d.ts.map +1 -0
  373. package/dist/unstable/http/MultipartParser/Search.js +14 -0
  374. package/dist/unstable/http/MultipartParser/Search.js.map +1 -0
  375. package/dist/unstable/http/MultipartParser/internal/contentType.d.ts +5 -0
  376. package/dist/unstable/http/MultipartParser/internal/contentType.d.ts.map +1 -0
  377. package/dist/unstable/http/MultipartParser/internal/contentType.js +82 -0
  378. package/dist/unstable/http/MultipartParser/internal/contentType.js.map +1 -0
  379. package/dist/unstable/http/MultipartParser/internal/headers.d.ts +3 -0
  380. package/dist/unstable/http/MultipartParser/internal/headers.d.ts.map +1 -0
  381. package/dist/unstable/http/MultipartParser/internal/headers.js +194 -0
  382. package/dist/unstable/http/MultipartParser/internal/headers.js.map +1 -0
  383. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts +8 -0
  384. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts.map +1 -0
  385. package/dist/unstable/http/MultipartParser/internal/multipart.js +226 -0
  386. package/dist/unstable/http/MultipartParser/internal/multipart.js.map +1 -0
  387. package/dist/unstable/http/MultipartParser/internal/search.d.ts +5 -0
  388. package/dist/unstable/http/MultipartParser/internal/search.d.ts.map +1 -0
  389. package/dist/unstable/http/MultipartParser/internal/search.js +120 -0
  390. package/dist/unstable/http/MultipartParser/internal/search.js.map +1 -0
  391. package/dist/unstable/http/MultipartParser.d.ts +98 -0
  392. package/dist/unstable/http/MultipartParser.d.ts.map +1 -0
  393. package/dist/unstable/http/MultipartParser.js +23 -0
  394. package/dist/unstable/http/MultipartParser.js.map +1 -0
  395. package/dist/unstable/http/Template.d.ts.map +1 -1
  396. package/dist/unstable/http/Template.js +2 -2
  397. package/dist/unstable/http/Template.js.map +1 -1
  398. package/dist/unstable/http/index.d.ts +1 -1
  399. package/dist/unstable/http/index.d.ts.map +1 -1
  400. package/dist/unstable/http/index.js +1 -1
  401. package/dist/unstable/http/index.js.map +1 -1
  402. package/dist/unstable/http/internal/httpBody.d.ts +2 -0
  403. package/dist/unstable/http/internal/httpBody.d.ts.map +1 -0
  404. package/dist/unstable/http/internal/httpBody.js +10 -0
  405. package/dist/unstable/http/internal/httpBody.js.map +1 -0
  406. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  407. package/dist/unstable/httpapi/HttpApi.js +5 -5
  408. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  409. package/dist/unstable/httpapi/HttpApiBuilder.js +73 -20
  410. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  411. package/dist/unstable/httpapi/HttpApiClient.d.ts +1 -1
  412. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  413. package/dist/unstable/httpapi/HttpApiClient.js +74 -34
  414. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  415. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +6 -4
  416. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  417. package/dist/unstable/httpapi/HttpApiEndpoint.js +73 -16
  418. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  419. package/dist/unstable/httpapi/HttpApiError.d.ts +5 -5
  420. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  421. package/dist/unstable/httpapi/HttpApiError.js +17 -17
  422. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  423. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +1 -1
  424. package/dist/unstable/httpapi/HttpApiMiddleware.js +1 -1
  425. package/dist/unstable/httpapi/HttpApiSchema.d.ts +219 -0
  426. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  427. package/dist/unstable/httpapi/HttpApiSchema.js +170 -0
  428. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  429. package/dist/unstable/httpapi/OpenApi.d.ts +8 -0
  430. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  431. package/dist/unstable/httpapi/OpenApi.js +45 -18
  432. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  433. package/dist/unstable/observability/OtlpExporter.d.ts +1 -1
  434. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  435. package/dist/unstable/observability/OtlpExporter.js +2 -1
  436. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  437. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  438. package/dist/unstable/observability/OtlpLogger.js +2 -2
  439. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  440. package/dist/unstable/observability/OtlpMetrics.d.ts +2 -2
  441. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  442. package/dist/unstable/observability/OtlpMetrics.js +28 -15
  443. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  444. package/dist/unstable/observability/OtlpTracer.js +1 -1
  445. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  446. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  447. package/dist/unstable/persistence/PersistedQueue.js +9 -9
  448. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  449. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  450. package/dist/unstable/persistence/Persistence.js +17 -7
  451. package/dist/unstable/persistence/Persistence.js.map +1 -1
  452. package/dist/unstable/persistence/RateLimiter.d.ts +22 -12
  453. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  454. package/dist/unstable/persistence/RateLimiter.js +15 -42
  455. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  456. package/dist/unstable/persistence/Redis.js +1 -1
  457. package/dist/unstable/persistence/Redis.js.map +1 -1
  458. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  459. package/dist/unstable/reactivity/AsyncResult.js +4 -4
  460. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  461. package/dist/unstable/reactivity/Atom.d.ts +26 -11
  462. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  463. package/dist/unstable/reactivity/Atom.js +9 -22
  464. package/dist/unstable/reactivity/Atom.js.map +1 -1
  465. package/dist/unstable/rpc/RpcClient.d.ts +14 -0
  466. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  467. package/dist/unstable/rpc/RpcClient.js +21 -10
  468. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  469. package/dist/unstable/rpc/RpcClientError.js +2 -2
  470. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  471. package/dist/unstable/rpc/RpcSerialization.js +3 -1
  472. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  473. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  474. package/dist/unstable/rpc/RpcServer.js +3 -2
  475. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  476. package/dist/unstable/schema/Model.d.ts +1 -1
  477. package/dist/unstable/schema/Model.d.ts.map +1 -1
  478. package/dist/unstable/schema/VariantSchema.d.ts +5 -5
  479. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  480. package/dist/unstable/schema/VariantSchema.js +17 -9
  481. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  482. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  483. package/dist/unstable/socket/Socket.js +28 -12
  484. package/dist/unstable/socket/Socket.js.map +1 -1
  485. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  486. package/dist/unstable/sql/SqlClient.js +7 -3
  487. package/dist/unstable/sql/SqlClient.js.map +1 -1
  488. package/dist/unstable/sql/SqlError.js +13 -13
  489. package/dist/unstable/sql/SqlError.js.map +1 -1
  490. package/dist/unstable/sql/SqlResolver.js +8 -6
  491. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  492. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  493. package/dist/unstable/sql/Statement.js +8 -6
  494. package/dist/unstable/sql/Statement.js.map +1 -1
  495. package/dist/unstable/workers/WorkerError.js +5 -5
  496. package/dist/unstable/workers/WorkerError.js.map +1 -1
  497. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  498. package/dist/unstable/workflow/Workflow.js +2 -2
  499. package/dist/unstable/workflow/Workflow.js.map +1 -1
  500. package/dist/unstable/workflow/WorkflowEngine.d.ts +1 -1
  501. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  502. package/dist/unstable/workflow/WorkflowEngine.js +3 -3
  503. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  504. package/package.json +6 -9
  505. package/src/Brand.ts +4 -4
  506. package/src/Cache.ts +1 -1
  507. package/src/Channel.ts +1 -1
  508. package/src/Config.ts +31 -8
  509. package/src/ConfigProvider.ts +4 -1
  510. package/src/Context.ts +6 -28
  511. package/src/Cron.ts +65 -2
  512. package/src/Crypto.ts +17 -8
  513. package/src/Duration.ts +16 -2
  514. package/src/Effect.ts +141 -17
  515. package/src/Equal.ts +10 -2
  516. package/src/ExecutionPlan.ts +78 -1
  517. package/src/FiberSet.ts +1 -1
  518. package/src/FileSystem.ts +2 -2
  519. package/src/Function.ts +6 -6
  520. package/src/Iterable.ts +11 -10
  521. package/src/Layer.ts +7 -5
  522. package/src/Optic.ts +59 -58
  523. package/src/Schedule.ts +13 -13
  524. package/src/Schema.ts +195 -112
  525. package/src/SchemaAST.ts +154 -85
  526. package/src/SchemaError.ts +9 -9
  527. package/src/SchemaGetter.ts +89 -30
  528. package/src/SchemaIssue.ts +285 -80
  529. package/src/SchemaParser.ts +126 -86
  530. package/src/SchemaTransformation.ts +66 -18
  531. package/src/ScopedCache.ts +1 -1
  532. package/src/Sink.ts +1 -1
  533. package/src/Stdio.ts +23 -4
  534. package/src/Stream.ts +77 -10
  535. package/src/SynchronizedRef.ts +1 -1
  536. package/src/Terminal.ts +1 -1
  537. package/src/Tuple.ts +7 -4
  538. package/src/TxReentrantLock.ts +39 -35
  539. package/src/internal/dateTime.ts +1 -1
  540. package/src/internal/executionPlan.ts +105 -10
  541. package/src/internal/hashMap.ts +20 -14
  542. package/src/internal/matcher.ts +2 -2
  543. package/src/internal/schedule.ts +4 -4
  544. package/src/internal/schema/annotations.ts +3 -0
  545. package/src/internal/schema/schema.ts +1 -17
  546. package/src/internal/schema/toArbitrary.ts +3 -1
  547. package/src/internal/trie.ts +12 -2
  548. package/src/testing/TestClock.ts +13 -1
  549. package/src/testing/TestSchema.ts +9 -9
  550. package/src/unstable/ai/AiError.ts +19 -19
  551. package/src/unstable/ai/Chat.ts +1 -1
  552. package/src/unstable/ai/LanguageModel.ts +4 -2
  553. package/src/unstable/ai/McpSchema.ts +17 -16
  554. package/src/unstable/ai/McpServer.ts +1 -1
  555. package/src/unstable/ai/Prompt.ts +35 -10
  556. package/src/unstable/cli/CliError.ts +12 -12
  557. package/src/unstable/cli/Command.ts +12 -10
  558. package/src/unstable/cli/Param.ts +41 -19
  559. package/src/unstable/cli/Primitive.ts +11 -5
  560. package/src/unstable/cli/Prompt.ts +36 -20
  561. package/src/unstable/cli/internal/ansi.ts +2 -2
  562. package/src/unstable/cli/internal/command.ts +15 -10
  563. package/src/unstable/cli/internal/completions/bash.ts +59 -9
  564. package/src/unstable/cli/internal/completions/descriptor.ts +14 -20
  565. package/src/unstable/cli/internal/completions/fish.ts +5 -7
  566. package/src/unstable/cli/internal/help.ts +4 -2
  567. package/src/unstable/cli/internal/parser.ts +3 -3
  568. package/src/unstable/cli/internal/wizard.ts +2 -2
  569. package/src/unstable/cluster/ClusterError.ts +7 -7
  570. package/src/unstable/cluster/ClusterWorkflowEngine.ts +4 -1
  571. package/src/unstable/cluster/MessageStorage.ts +9 -5
  572. package/src/unstable/cluster/Reply.ts +25 -4
  573. package/src/unstable/cluster/RunnerServer.ts +4 -10
  574. package/src/unstable/cluster/RunnerStorage.ts +9 -7
  575. package/src/unstable/cluster/Sharding.ts +35 -7
  576. package/src/unstable/cluster/internal/entityManager.ts +1 -1
  577. package/src/unstable/cluster/internal/resourceMap.ts +5 -2
  578. package/src/unstable/cluster/internal/resourceRef.ts +27 -5
  579. package/src/unstable/devtools/DevToolsClient.ts +3 -2
  580. package/src/unstable/encoding/Ini.ts +174 -0
  581. package/src/unstable/encoding/Msgpack.ts +59 -36
  582. package/src/unstable/encoding/Ndjson.ts +9 -1
  583. package/src/unstable/encoding/Sse.ts +11 -21
  584. package/src/unstable/encoding/Toml.ts +504 -0
  585. package/src/unstable/encoding/Yaml.ts +541 -0
  586. package/src/unstable/encoding/index.ts +15 -0
  587. package/src/unstable/eventlog/EventJournal.ts +14 -6
  588. package/src/unstable/eventlog/EventLogMessage.ts +1 -1
  589. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +1 -1
  590. package/src/unstable/eventlog/SqlEventJournal.ts +6 -4
  591. package/src/unstable/http/FindMyWay/internal/queryString.ts +420 -0
  592. package/src/unstable/http/FindMyWay/internal/router.ts +950 -0
  593. package/src/unstable/http/FindMyWay.ts +65 -6
  594. package/src/unstable/http/HttpClient.ts +132 -23
  595. package/src/unstable/http/HttpClientError.ts +1 -1
  596. package/src/unstable/http/HttpClientRequest.ts +2 -14
  597. package/src/unstable/http/HttpClientResponse.ts +1 -17
  598. package/src/unstable/http/HttpPlatform.ts +34 -6
  599. package/src/unstable/http/HttpServerRequest.ts +14 -6
  600. package/src/unstable/http/HttpServerResponse.ts +9 -7
  601. package/src/unstable/http/Multipart.ts +9 -2
  602. package/src/unstable/http/MultipartParser/HeadersParser.ts +68 -0
  603. package/src/unstable/http/MultipartParser/Search.ts +17 -0
  604. package/src/unstable/http/MultipartParser/internal/contentType.ts +103 -0
  605. package/src/unstable/http/MultipartParser/internal/headers.ts +615 -0
  606. package/src/unstable/http/MultipartParser/internal/multipart.ts +262 -0
  607. package/src/unstable/http/MultipartParser/internal/search.ts +167 -0
  608. package/src/unstable/http/MultipartParser.ts +115 -0
  609. package/src/unstable/http/Template.ts +6 -5
  610. package/src/unstable/http/index.ts +1 -1
  611. package/src/unstable/http/internal/httpBody.ts +15 -0
  612. package/src/unstable/httpapi/HttpApi.ts +6 -7
  613. package/src/unstable/httpapi/HttpApiBuilder.ts +142 -25
  614. package/src/unstable/httpapi/HttpApiClient.ts +130 -49
  615. package/src/unstable/httpapi/HttpApiEndpoint.ts +117 -29
  616. package/src/unstable/httpapi/HttpApiError.ts +33 -39
  617. package/src/unstable/httpapi/HttpApiMiddleware.ts +1 -1
  618. package/src/unstable/httpapi/HttpApiSchema.ts +353 -0
  619. package/src/unstable/httpapi/OpenApi.ts +70 -20
  620. package/src/unstable/observability/OtlpExporter.ts +4 -2
  621. package/src/unstable/observability/OtlpLogger.ts +3 -1
  622. package/src/unstable/observability/OtlpMetrics.ts +32 -18
  623. package/src/unstable/observability/OtlpTracer.ts +1 -1
  624. package/src/unstable/persistence/PersistedQueue.ts +12 -9
  625. package/src/unstable/persistence/Persistence.ts +27 -7
  626. package/src/unstable/persistence/RateLimiter.ts +54 -31
  627. package/src/unstable/persistence/Redis.ts +1 -1
  628. package/src/unstable/reactivity/AsyncResult.ts +11 -6
  629. package/src/unstable/reactivity/Atom.ts +44 -25
  630. package/src/unstable/rpc/RpcClient.ts +42 -13
  631. package/src/unstable/rpc/RpcClientError.ts +2 -2
  632. package/src/unstable/rpc/RpcSerialization.ts +1 -1
  633. package/src/unstable/rpc/RpcServer.ts +4 -2
  634. package/src/unstable/schema/VariantSchema.ts +36 -18
  635. package/src/unstable/socket/Socket.ts +24 -14
  636. package/src/unstable/sql/SqlClient.ts +65 -56
  637. package/src/unstable/sql/SqlError.ts +13 -13
  638. package/src/unstable/sql/SqlResolver.ts +8 -6
  639. package/src/unstable/sql/Statement.ts +13 -8
  640. package/src/unstable/workers/WorkerError.ts +5 -5
  641. package/src/unstable/workflow/Workflow.ts +2 -5
  642. package/src/unstable/workflow/WorkflowEngine.ts +8 -3
  643. package/dist/unstable/http/Multipasta/HeadersParser.d.ts +0 -14
  644. package/dist/unstable/http/Multipasta/HeadersParser.d.ts.map +0 -1
  645. package/dist/unstable/http/Multipasta/HeadersParser.js +0 -14
  646. package/dist/unstable/http/Multipasta/HeadersParser.js.map +0 -1
  647. package/dist/unstable/http/Multipasta/Node.d.ts +0 -14
  648. package/dist/unstable/http/Multipasta/Node.d.ts.map +0 -1
  649. package/dist/unstable/http/Multipasta/Node.js +0 -14
  650. package/dist/unstable/http/Multipasta/Node.js.map +0 -1
  651. package/dist/unstable/http/Multipasta/Search.d.ts +0 -14
  652. package/dist/unstable/http/Multipasta/Search.d.ts.map +0 -1
  653. package/dist/unstable/http/Multipasta/Search.js +0 -14
  654. package/dist/unstable/http/Multipasta/Search.js.map +0 -1
  655. package/dist/unstable/http/Multipasta/Web.d.ts +0 -14
  656. package/dist/unstable/http/Multipasta/Web.d.ts.map +0 -1
  657. package/dist/unstable/http/Multipasta/Web.js +0 -14
  658. package/dist/unstable/http/Multipasta/Web.js.map +0 -1
  659. package/dist/unstable/http/Multipasta.d.ts +0 -15
  660. package/dist/unstable/http/Multipasta.d.ts.map +0 -1
  661. package/dist/unstable/http/Multipasta.js +0 -15
  662. package/dist/unstable/http/Multipasta.js.map +0 -1
  663. package/src/unstable/http/Multipasta/HeadersParser.ts +0 -14
  664. package/src/unstable/http/Multipasta/Node.ts +0 -14
  665. package/src/unstable/http/Multipasta/Search.ts +0 -14
  666. package/src/unstable/http/Multipasta/Web.ts +0 -14
  667. package/src/unstable/http/Multipasta.ts +0 -15
@@ -115,7 +115,7 @@ export type CliError =
115
115
  * @category errors
116
116
  * @since 4.0.0
117
117
  */
118
- export class UnrecognizedOption extends Schema.TaggedErrorClass<UnrecognizedOption>(
118
+ export class UnrecognizedOption extends Schema.TaggedError<UnrecognizedOption>(
119
119
  `${TypeId}/UnrecognizedOption`
120
120
  )("UnrecognizedOption", {
121
121
  option: Schema.String,
@@ -168,7 +168,7 @@ export class UnrecognizedOption extends Schema.TaggedErrorClass<UnrecognizedOpti
168
168
  * @category errors
169
169
  * @since 4.0.0
170
170
  */
171
- export class DuplicateOption extends Schema.TaggedErrorClass<DuplicateOption>(
171
+ export class DuplicateOption extends Schema.TaggedError<DuplicateOption>(
172
172
  `${TypeId}/DuplicateOption`
173
173
  )("DuplicateOption", {
174
174
  option: Schema.String,
@@ -225,7 +225,7 @@ export class DuplicateOption extends Schema.TaggedErrorClass<DuplicateOption>(
225
225
  * @category errors
226
226
  * @since 4.0.0
227
227
  */
228
- export class MissingOption extends Schema.TaggedErrorClass<MissingOption>(
228
+ export class MissingOption extends Schema.TaggedError<MissingOption>(
229
229
  `${TypeId}/MissingOption`
230
230
  )("MissingOption", {
231
231
  option: Schema.String
@@ -278,7 +278,7 @@ export class MissingOption extends Schema.TaggedErrorClass<MissingOption>(
278
278
  * @category errors
279
279
  * @since 4.0.0
280
280
  */
281
- export class MissingArgument extends Schema.TaggedErrorClass<MissingArgument>(
281
+ export class MissingArgument extends Schema.TaggedError<MissingArgument>(
282
282
  `${TypeId}/MissingArgument`
283
283
  )("MissingArgument", {
284
284
  argument: Schema.String
@@ -319,7 +319,7 @@ export class MissingArgument extends Schema.TaggedErrorClass<MissingArgument>(
319
319
  * @category errors
320
320
  * @since 4.0.0
321
321
  */
322
- export class UnexpectedArgument extends Schema.TaggedErrorClass<UnexpectedArgument>(
322
+ export class UnexpectedArgument extends Schema.TaggedError<UnexpectedArgument>(
323
323
  `${TypeId}/UnexpectedArgument`
324
324
  )("UnexpectedArgument", {
325
325
  arguments: Schema.Array(Schema.String)
@@ -376,7 +376,7 @@ export class UnexpectedArgument extends Schema.TaggedErrorClass<UnexpectedArgume
376
376
  * @category errors
377
377
  * @since 4.0.0
378
378
  */
379
- export class InvalidValue extends Schema.TaggedErrorClass<InvalidValue>(
379
+ export class InvalidValue extends Schema.TaggedError<InvalidValue>(
380
380
  `${TypeId}/InvalidValue`
381
381
  )("InvalidValue", {
382
382
  option: Schema.String,
@@ -425,7 +425,7 @@ export class InvalidValue extends Schema.TaggedErrorClass<InvalidValue>(
425
425
  * suggestions: ["deploy", "destroy"]
426
426
  * })
427
427
  *
428
- * unknownSubcommandError._tag // => "UnknownSubcomand"
428
+ * unknownSubcommandError._tag // => "UnknownSubcommand"
429
429
  * unknownSubcommandError.subcommand // => "deplyo"
430
430
  * unknownSubcommandError.parent // => ["myapp"]
431
431
  *
@@ -440,15 +440,15 @@ export class InvalidValue extends Schema.TaggedErrorClass<InvalidValue>(
440
440
  * })
441
441
  *
442
442
  * const parseError = await Effect.runPromise(Effect.flip(parseSubcommand("deplyo")))
443
- * parseError._tag // => "UnknownSubcomand"
443
+ * parseError._tag // => "UnknownSubcommand"
444
444
  * ```
445
445
  *
446
446
  * @category errors
447
447
  * @since 4.0.0
448
448
  */
449
- export class UnknownSubcommand extends Schema.TaggedErrorClass<UnknownSubcommand>(
449
+ export class UnknownSubcommand extends Schema.TaggedError<UnknownSubcommand>(
450
450
  `${TypeId}/UnknownSubcommand`
451
- )("UnknownSubcomand", {
451
+ )("UnknownSubcommand", {
452
452
  subcommand: Schema.String,
453
453
  parent: Schema.optional(Schema.Array(Schema.String)),
454
454
  suggestions: Schema.Array(Schema.String)
@@ -513,7 +513,7 @@ export class UnknownSubcommand extends Schema.TaggedErrorClass<UnknownSubcommand
513
513
  * @category errors
514
514
  * @since 4.0.0
515
515
  */
516
- export class UserError extends Schema.TaggedErrorClass<UserError>(
516
+ export class UserError extends Schema.TaggedError<UserError>(
517
517
  `${TypeId}/UserError`
518
518
  )("UserError", {
519
519
  cause: Schema.Defect()
@@ -585,7 +585,7 @@ export type NonShowHelpErrors = typeof NonShowHelpErrors.Type
585
585
  * @category errors
586
586
  * @since 4.0.0
587
587
  */
588
- export class ShowHelp extends Schema.TaggedErrorClass<ShowHelp>(
588
+ export class ShowHelp extends Schema.TaggedError<ShowHelp>(
589
589
  `${TypeId}/ShowHelp`
590
590
  )("ShowHelp", {
591
591
  commandPath: Schema.Array(Schema.String),
@@ -165,11 +165,11 @@ export interface Command<in out Name extends string, in Input, out ContextInput
165
165
  readonly annotations: Context.Context<never>
166
166
 
167
167
  /**
168
- * Whether this command is hidden from parent help output, shell
169
- * completions, and unknown-subcommand suggestions. Hidden commands still
168
+ * Whether this command is omitted from parent help output, shell
169
+ * completions, and unknown-subcommand suggestions. Unlisted commands still
170
170
  * parse and execute normally when invoked by exact name.
171
171
  */
172
- readonly hidden: boolean
172
+ readonly unlisted: boolean
173
173
  }
174
174
 
175
175
  /**
@@ -352,7 +352,7 @@ export declare namespace Command {
352
352
  readonly commands: NonEmptyReadonlyArray<Command.Any>
353
353
  }>
354
354
  readonly annotations: Context.Context<never>
355
- readonly hidden: boolean
355
+ readonly unlisted: boolean
356
356
  }
357
357
 
358
358
  /**
@@ -1430,6 +1430,7 @@ export const withSubcommands: {
1430
1430
  description: impl.description,
1431
1431
  shortDescription: impl.shortDescription,
1432
1432
  alias: impl.alias,
1433
+ unlisted: impl.unlisted,
1433
1434
  annotations: impl.annotations,
1434
1435
  globalFlags: impl.globalFlags,
1435
1436
  examples: impl.examples,
@@ -1548,6 +1549,7 @@ export const withSharedFlags: {
1548
1549
  description: impl.description,
1549
1550
  shortDescription: impl.shortDescription,
1550
1551
  alias: impl.alias,
1552
+ unlisted: impl.unlisted,
1551
1553
  annotations: impl.annotations,
1552
1554
  globalFlags: impl.globalFlags,
1553
1555
  examples: impl.examples,
@@ -1886,7 +1888,7 @@ export const withAlias: {
1886
1888
  ) => makeCommand({ ...toImpl(self), alias }))
1887
1889
 
1888
1890
  /**
1889
- * Hides a subcommand from parent help output, shell completions, and
1891
+ * Omits a subcommand from parent help output, shell completions, and
1890
1892
  * "did you mean?" suggestions while keeping it fully invocable by exact name.
1891
1893
  *
1892
1894
  * **When to use**
@@ -1894,7 +1896,7 @@ export const withAlias: {
1894
1896
  * Use when experimental or internal subcommands should be accepted but not advertised on
1895
1897
  * the public CLI surface.
1896
1898
  *
1897
- * **Example** (Hiding a subcommand)
1899
+ * **Example** (Unlisting a subcommand)
1898
1900
  *
1899
1901
  * ```ts import.meta.vitest
1900
1902
  * import { Command } from "effect/unstable/cli"
@@ -1902,23 +1904,23 @@ export const withAlias: {
1902
1904
  * // `experimental` still runs when invoked as `mycli experimental`,
1903
1905
  * // but it does not appear under SUBCOMMANDS in `mycli --help`.
1904
1906
  * const experimental = Command.make("experimental").pipe(
1905
- * Command.withHidden
1907
+ * Command.unlisted
1906
1908
  * )
1907
1909
  *
1908
1910
  * const root = Command.make("mycli").pipe(
1909
1911
  * Command.withSubcommands([experimental])
1910
1912
  * )
1911
1913
  *
1912
- * root.subcommands[0].commands[0].hidden // => true
1914
+ * root.subcommands[0].commands[0].unlisted // => true
1913
1915
  * ```
1914
1916
  *
1915
1917
  * @category combinators
1916
1918
  * @since 4.0.0
1917
1919
  */
1918
- export const withHidden = <const Name extends string, Input, E, R, ContextInput>(
1920
+ export const unlisted = <const Name extends string, Input, E, R, ContextInput>(
1919
1921
  self: Command<Name, Input, ContextInput, E, R>
1920
1922
  ): Command<Name, Input, ContextInput, E, R> =>
1921
- makeCommand({ ...toImpl(self), hidden: true }) as Command<Name, Input, ContextInput, E, R>
1923
+ makeCommand({ ...toImpl(self), unlisted: true }) as Command<Name, Input, ContextInput, E, R>
1922
1924
 
1923
1925
  /**
1924
1926
  * Adds a custom annotation to a command.
@@ -12,7 +12,7 @@
12
12
  */
13
13
  import * as Config from "../../Config.ts"
14
14
  import * as Effect from "../../Effect.ts"
15
- import { dual, identity } from "../../Function.ts"
15
+ import { dual, identity, type LazyArg } from "../../Function.ts"
16
16
  import * as Option from "../../Option.ts"
17
17
  import { type Pipeable, pipeArguments } from "../../Pipeable.ts"
18
18
  import * as Predicate from "../../Predicate.ts"
@@ -226,7 +226,11 @@ export interface Transform<Kind extends ParamKind, in out A, out B> extends Para
226
226
  readonly _tag: "Transform"
227
227
  readonly kind: Kind
228
228
  readonly param: Param<Kind, A>
229
- readonly f: (parse: Parse<A>) => Parse<B>
229
+ readonly alternatives: ReadonlyArray<LazyArg<Param<Kind, unknown>>>
230
+ readonly f: (
231
+ parse: Parse<A>,
232
+ alternatives: ReadonlyArray<LazyArg<Parse<unknown>>>
233
+ ) => Parse<B>
230
234
  }
231
235
 
232
236
  /**
@@ -1209,15 +1213,22 @@ export const map: {
1209
1213
 
1210
1214
  const transform = <Kind extends ParamKind, A, B>(
1211
1215
  self: Param<Kind, A>,
1212
- f: (parse: Parse<A>) => Parse<B>
1213
- ) =>
1214
- Object.assign(Object.create(Proto), {
1216
+ f: (
1217
+ parse: Parse<A>,
1218
+ alternatives: ReadonlyArray<LazyArg<Parse<unknown>>>
1219
+ ) => Parse<B>,
1220
+ alternatives: ReadonlyArray<LazyArg<Param<Kind, unknown>>> = []
1221
+ ): Transform<Kind, A, B> => {
1222
+ const alternativeParsers = alternatives.map((alternative) => () => alternative().parse)
1223
+ return Object.assign(Object.create(Proto), {
1215
1224
  _tag: "Transform",
1216
1225
  kind: self.kind,
1217
1226
  param: self,
1227
+ alternatives,
1218
1228
  f,
1219
- parse: f(self.parse)
1229
+ parse: f(self.parse, alternativeParsers)
1220
1230
  })
1231
+ }
1221
1232
 
1222
1233
  /**
1223
1234
  * Transforms the parsed value of an option using an effectful mapping function.
@@ -2719,7 +2730,7 @@ export const orElse: {
2719
2730
  * @category combinators
2720
2731
  * @since 4.0.0
2721
2732
  */
2722
- <B, Kind extends ParamKind>(orElse: (error: CliError.CliError) => Param<Kind, B>): <A>(self: Param<Kind, A>) => Param<Kind, A | B>
2733
+ <B, Kind extends ParamKind>(orElse: LazyArg<Param<Kind, B>>): <A>(self: Param<Kind, A>) => Param<Kind, A | B>
2723
2734
  /**
2724
2735
  * Provides a fallback param to use if this param fails to parse.
2725
2736
  *
@@ -2737,14 +2748,16 @@ export const orElse: {
2737
2748
  * @category combinators
2738
2749
  * @since 4.0.0
2739
2750
  */
2740
- <Kind extends ParamKind, A, B>(self: Param<Kind, A>, orElse: (error: CliError.CliError) => Param<Kind, B>): Param<Kind, A | B>
2751
+ <Kind extends ParamKind, A, B>(self: Param<Kind, A>, orElse: LazyArg<Param<Kind, B>>): Param<Kind, A | B>
2741
2752
  } = dual(2, <Kind extends ParamKind, A, B>(
2742
2753
  self: Param<Kind, A>,
2743
- orElse: (error: CliError.CliError) => Param<Kind, B>
2754
+ orElse: LazyArg<Param<Kind, B>>
2744
2755
  ) =>
2745
2756
  transform(
2746
2757
  self,
2747
- (parse: Parse<A>): Parse<A | B> => (args: ParsedArgs) => Effect.catch(parse(args), (err) => orElse(err).parse(args))
2758
+ (parse: Parse<A>, alternatives): Parse<A | B> => (args: ParsedArgs) =>
2759
+ Effect.catch(parse(args), () => (alternatives[0]!() as Parse<B>)(args)),
2760
+ [orElse]
2748
2761
  ))
2749
2762
 
2750
2763
  /**
@@ -2796,7 +2809,7 @@ export const orElseResult: {
2796
2809
  * @category combinators
2797
2810
  * @since 4.0.0
2798
2811
  */
2799
- <Kind extends ParamKind, B>(orElse: (error: CliError.CliError) => Param<Kind, B>): <A>(self: Param<Kind, A>) => Param<Kind, Result.Result<A, B>>
2812
+ <Kind extends ParamKind, B>(orElse: LazyArg<Param<Kind, B>>): <A>(self: Param<Kind, A>) => Param<Kind, Result.Result<A, B>>
2800
2813
  /**
2801
2814
  * Provides a fallback param and returns a `Result` indicating which param
2802
2815
  * succeeded.
@@ -2821,22 +2834,23 @@ export const orElseResult: {
2821
2834
  * @category combinators
2822
2835
  * @since 4.0.0
2823
2836
  */
2824
- <Kind extends ParamKind, A, B>(self: Param<Kind, A>, orElse: (error: CliError.CliError) => Param<Kind, B>): Param<Kind, Result.Result<A, B>>
2837
+ <Kind extends ParamKind, A, B>(self: Param<Kind, A>, orElse: LazyArg<Param<Kind, B>>): Param<Kind, Result.Result<A, B>>
2825
2838
  } = dual(2, <Kind extends ParamKind, A, B>(
2826
2839
  self: Param<Kind, A>,
2827
- orElse: (error: CliError.CliError) => Param<Kind, B>
2840
+ orElse: LazyArg<Param<Kind, B>>
2828
2841
  ) => {
2829
2842
  return transform(
2830
2843
  self,
2831
- (parse: Parse<A>): Parse<Result.Result<A, B>> => (args: ParsedArgs) =>
2844
+ (parse: Parse<A>, alternatives): Parse<Result.Result<A, B>> => (args: ParsedArgs) =>
2832
2845
  Effect.catch(
2833
2846
  Effect.map(parse(args), ([leftover, value]) => [leftover, Result.succeed(value)] as const),
2834
- (err) =>
2847
+ () =>
2835
2848
  Effect.map(
2836
- orElse(err).parse(args),
2849
+ (alternatives[0]!() as Parse<B>)(args),
2837
2850
  ([leftover, value]) => [leftover, Result.fail(value)] as const
2838
2851
  )
2839
- )
2852
+ ),
2853
+ [orElse]
2840
2854
  )
2841
2855
  })
2842
2856
 
@@ -3053,7 +3067,12 @@ const transformSingle = <Kind extends ParamKind, A>(
3053
3067
  return matchParam(param, {
3054
3068
  Single: (single) => f(single),
3055
3069
  Map: (mapped) => map(transformSingle(mapped.param, f), mapped.f),
3056
- Transform: (mapped) => transform(transformSingle(mapped.param, f), mapped.f),
3070
+ Transform: (mapped) =>
3071
+ transform(
3072
+ transformSingle(mapped.param, f),
3073
+ mapped.f,
3074
+ mapped.alternatives.map((alternative) => () => transformSingle(alternative(), f))
3075
+ ),
3057
3076
  Optional: (p) => optional(transformSingle(p.param, f)) as Param<Kind, A>,
3058
3077
  Variadic: (p) =>
3059
3078
  variadic(transformSingle(p.param, f), {
@@ -3075,7 +3094,10 @@ export const extractSingleParams = <Kind extends ParamKind, A>(
3075
3094
  return matchParam(param, {
3076
3095
  Single: (single) => [single as Single<Kind, unknown>],
3077
3096
  Map: (mapped) => extractSingleParams(mapped.param),
3078
- Transform: (mapped) => extractSingleParams(mapped.param),
3097
+ Transform: (mapped) => [
3098
+ ...extractSingleParams(mapped.param),
3099
+ ...mapped.alternatives.flatMap((alternative) => extractSingleParams(alternative()))
3100
+ ],
3079
3101
  Optional: (optional) => extractSingleParams(optional.param),
3080
3102
  Variadic: (variadic) => extractSingleParams(variadic.param)
3081
3103
  })
@@ -10,9 +10,6 @@
10
10
  *
11
11
  * @since 4.0.0
12
12
  */
13
- import * as Ini from "ini"
14
- import * as Toml from "toml"
15
- import * as Yaml from "yaml"
16
13
  import * as Config from "../../Config.ts"
17
14
  import * as Effect from "../../Effect.ts"
18
15
  import * as FileSystem from "../../FileSystem.ts"
@@ -24,6 +21,9 @@ import * as Schema from "../../Schema.ts"
24
21
  import type { Formatter } from "../../SchemaIssue.ts"
25
22
  import type * as Struct from "../../Struct.ts"
26
23
  import type { Covariant } from "../../Types.ts"
24
+ import * as Ini from "../encoding/Ini.ts"
25
+ import * as Toml from "../encoding/Toml.ts"
26
+ import * as Yaml from "../encoding/Yaml.ts"
27
27
  import type { Environment } from "./Command.ts"
28
28
 
29
29
  const TypeId = "~effect/cli/Primitive"
@@ -479,8 +479,8 @@ export type PathType = "file" | "directory" | "either"
479
479
  export const path = (
480
480
  pathType: PathType,
481
481
  mustExist?: boolean
482
- ): Primitive<string> =>
483
- makePrimitive(
482
+ ): Primitive<string> => {
483
+ const primitive = makePrimitive(
484
484
  "Path",
485
485
  Effect.fnUntraced(function*(value) {
486
486
  const fs = yield* FileSystem.FileSystem
@@ -518,6 +518,8 @@ export const path = (
518
518
  return absolutePath
519
519
  })
520
520
  )
521
+ return Object.assign(primitive, { pathType })
522
+ }
521
523
 
522
524
  /**
523
525
  * Creates a primitive that wraps string input in `Redacted`.
@@ -984,3 +986,7 @@ export const getTypeName = <A>(primitive: Primitive<A>): string => {
984
986
  /** @internal */
985
987
  export const getChoiceKeys = (primitive: Primitive<unknown>): ReadonlyArray<string> | undefined =>
986
988
  primitive._tag === "Choice" ? (primitive as any).choiceKeys : undefined
989
+
990
+ /** @internal */
991
+ export const getPathType = (primitive: Primitive<unknown>): PathType | undefined =>
992
+ primitive._tag === "Path" ? (primitive as any).pathType : undefined
@@ -693,10 +693,13 @@ export const all: <
693
693
  if (arguments.length === 1) {
694
694
  if (isPrompt(arguments[0])) {
695
695
  return map(arguments[0], (x) => [x]) as any
696
- } else if (Array.isArray(arguments[0])) {
697
- return allTupled(arguments[0]) as any
696
+ } else if (Predicate.isIterable(arguments[0])) {
697
+ return allTupled(Arr.fromIterable(arguments[0] as Iterable<Prompt<any>>)) as any
698
698
  } else {
699
699
  const entries = Object.entries(arguments[0] as Readonly<{ [K: string]: Prompt<any> }>)
700
+ if (entries.length === 0) {
701
+ return succeed({}) as any
702
+ }
700
703
  let result = map(entries[0][1], (value) => ({ [entries[0][0]]: value }))
701
704
  if (entries.length === 1) {
702
705
  return result as any
@@ -1274,7 +1277,7 @@ export const multiSelect = <const A>(
1274
1277
  const initialSelected = new Set<number>()
1275
1278
  for (let i = 0; i < opts.choices.length; i++) {
1276
1279
  const choice = opts.choices[i] as SelectChoice<A>
1277
- if (choice.selected === true) {
1280
+ if (choice.selected === true && !choice.disabled) {
1278
1281
  initialSelected.add(i)
1279
1282
  }
1280
1283
  }
@@ -2057,6 +2060,9 @@ class Day extends DatePart {
2057
2060
  }
2058
2061
 
2059
2062
  private ordinalIndicator(day: number): string {
2063
+ if (day >= 11 && day <= 13) {
2064
+ return "th"
2065
+ }
2060
2066
  switch (day % 10) {
2061
2067
  case 1:
2062
2068
  return "st"
@@ -2115,7 +2121,7 @@ class Year extends DatePart {
2115
2121
  override toString() {
2116
2122
  const year = `${this.date.getFullYear()}`.padStart(4, "0")
2117
2123
  return this.token.length === 2
2118
- ? year.substring(-2)
2124
+ ? year.slice(-2)
2119
2125
  : year
2120
2126
  }
2121
2127
  }
@@ -2132,7 +2138,7 @@ class Meridiem extends DatePart {
2132
2138
  setValue(_value: string): void {}
2133
2139
 
2134
2140
  override toString() {
2135
- const meridiem = this.date.getHours() > 12 ? "pm" : "am"
2141
+ const meridiem = this.date.getHours() >= 12 ? "pm" : "am"
2136
2142
  return /A/.test(this.token)
2137
2143
  ? meridiem.toUpperCase()
2138
2144
  : meridiem;
@@ -2619,9 +2625,9 @@ const renderMultiSelectChoices = <A>(
2619
2625
  renderOptions?: RenderOptions | undefined
2620
2626
  ) => {
2621
2627
  const choices = options.choices
2622
- const totalChoices = choices.length
2623
- const selectedCount = state.selectedIndices.size
2624
- const allSelected = selectedCount === totalChoices
2628
+ const selectableCount = choices.filter((choice) => !choice.disabled).length
2629
+ const selectedCount = Array.from(state.selectedIndices).filter((index) => !choices[index].disabled).length
2630
+ const allSelected = selectedCount === selectableCount
2625
2631
 
2626
2632
  const selectAllText = allSelected
2627
2633
  ? options?.selectNone ?? "Select None"
@@ -2657,8 +2663,9 @@ const renderMultiSelectChoices = <A>(
2657
2663
  const annotatedCheckbox = isHighlighted && renderOptions?.plain !== true
2658
2664
  ? Ansi.annotate(checkbox, Ansi.cyanBright)
2659
2665
  : checkbox
2660
- const title = renderMultiSelectTitle(choice.title, isHighlighted, renderOptions)
2661
- const description = renderChoiceDescription(choice as SelectChoice<A>, isHighlighted, renderOptions)
2666
+ const selectChoice = choice as SelectChoice<A>
2667
+ const title = renderChoiceTitle(selectChoice, isHighlighted, renderOptions)
2668
+ const description = renderChoiceDescription(selectChoice, isHighlighted, renderOptions)
2662
2669
  documents.push(prefix + " " + annotatedCheckbox + " " + title + " " + description)
2663
2670
  }
2664
2671
  }
@@ -2707,16 +2714,20 @@ const processSpace = <A>(
2707
2714
  ) => {
2708
2715
  const selectedIndices = new Set(state.selectedIndices)
2709
2716
  if (state.index === 0) {
2710
- if (state.selectedIndices.size === options.choices.length) {
2717
+ const selectableCount = options.choices.filter((choice) => !choice.disabled).length
2718
+ const selectedCount = Array.from(state.selectedIndices).filter((index) => !options.choices[index].disabled).length
2719
+ if (selectedCount === selectableCount) {
2711
2720
  selectedIndices.clear()
2712
2721
  } else {
2713
2722
  for (let i = 0; i < options.choices.length; i++) {
2714
- selectedIndices.add(i)
2723
+ if (!options.choices[i].disabled) {
2724
+ selectedIndices.add(i)
2725
+ }
2715
2726
  }
2716
2727
  }
2717
2728
  } else if (state.index === 1) {
2718
2729
  for (let i = 0; i < options.choices.length; i++) {
2719
- if (state.selectedIndices.has(i)) {
2730
+ if (options.choices[i].disabled || state.selectedIndices.has(i)) {
2720
2731
  selectedIndices.delete(i)
2721
2732
  } else {
2722
2733
  selectedIndices.add(i)
@@ -2724,7 +2735,9 @@ const processSpace = <A>(
2724
2735
  }
2725
2736
  } else {
2726
2737
  const choiceIndex = state.index - metaOptionsCount
2727
- if (selectedIndices.has(choiceIndex)) {
2738
+ if (options.choices[choiceIndex].disabled) {
2739
+ return Effect.succeed(Action.Beep())
2740
+ } else if (selectedIndices.has(choiceIndex)) {
2728
2741
  selectedIndices.delete(choiceIndex)
2729
2742
  } else {
2730
2743
  selectedIndices.add(choiceIndex)
@@ -2764,7 +2777,8 @@ const handleMultiSelectProcess = <A>(options: SelectOptionsReq<A> & MultiSelectO
2764
2777
  }
2765
2778
  case "enter":
2766
2779
  case "return": {
2767
- const selectedCount = state.selectedIndices.size
2780
+ const selectedIndices = Array.from(state.selectedIndices).filter((index) => !options.choices[index].disabled)
2781
+ const selectedCount = selectedIndices.length
2768
2782
  if (options.min !== undefined && selectedCount < options.min) {
2769
2783
  return Effect.succeed(
2770
2784
  Action.NextFrame({ state: { ...state, error: Option.some(`At least ${options.min} are required`) } })
@@ -2775,9 +2789,7 @@ const handleMultiSelectProcess = <A>(options: SelectOptionsReq<A> & MultiSelectO
2775
2789
  Action.NextFrame({ state: { ...state, error: Option.some(`At most ${options.max} choices are allowed`) } })
2776
2790
  )
2777
2791
  }
2778
- const selectedValues = Array.from(state.selectedIndices).sort(EffectNumber.Order).map((index) =>
2779
- options.choices[index].value
2780
- )
2792
+ const selectedValues = selectedIndices.sort(EffectNumber.Order).map((index) => options.choices[index].value)
2781
2793
  return Effect.succeed(Action.Submit({ value: selectedValues }))
2782
2794
  }
2783
2795
  default: {
@@ -2933,10 +2945,14 @@ const defaultFloatProcessor = (input: string, state: NumberState) => {
2933
2945
  return Effect.succeed(Action.NextFrame({
2934
2946
  state: {
2935
2947
  ...state,
2936
- value: input === "." ? `${parsed}.` : `${parsed}`,
2948
+ value: input === "."
2949
+ ? `${parsed}.`
2950
+ : state.value.includes(".") && /^\d$/.test(input)
2951
+ ? state.value + input
2952
+ : `${parsed}`,
2937
2953
  error: Option.none()
2938
2954
  }
2939
- }))
2955
+ }));
2940
2956
  }
2941
2957
  }
2942
2958
 
@@ -79,9 +79,9 @@ export const combine = (...styles: Array<string>): Array<string> => styles
79
79
  /** @internal */
80
80
  export const cursorTo = (column: number, row?: number): string => {
81
81
  if (row === undefined) {
82
- return `\x1b${Math.max(column + 1, 0)} G`
82
+ return `${ESC}${Math.max(column + 1, 0)}G`
83
83
  }
84
- return `\x1b${row + 1}${SEP}${Math.max(column + 1, 0)} H`
84
+ return `${ESC}${row + 1}${SEP}${Math.max(column + 1, 0)}H`
85
85
  }
86
86
 
87
87
  /** @internal */
@@ -98,7 +98,7 @@ export const makeCommand = <const Name extends string, Input, E, R, ContextInput
98
98
  readonly description?: string | undefined
99
99
  readonly shortDescription?: string | undefined
100
100
  readonly alias?: string | undefined
101
- readonly hidden?: boolean | undefined
101
+ readonly unlisted?: boolean | undefined
102
102
  readonly examples?: ReadonlyArray<Command.Example> | undefined
103
103
  readonly subcommands?: ReadonlyArray<SubcommandGroup> | undefined
104
104
  readonly parse?: ((input: ParsedTokens) => Effect.Effect<Input, CliError.CliError, Environment>) | undefined
@@ -139,7 +139,8 @@ export const makeCommand = <const Name extends string, Input, E, R, ContextInput
139
139
  name: single.name,
140
140
  type: single.typeName ?? Primitive.getTypeName(single.primitiveType),
141
141
  description: single.description,
142
- required: !metadata.isOptional,
142
+ required: !metadata.isOptional &&
143
+ (!metadata.isVariadic || Option.exists(metadata.variadicMin, (min) => min > 0)),
143
144
  variadic: metadata.isVariadic
144
145
  })
145
146
  }
@@ -147,8 +148,8 @@ export const makeCommand = <const Name extends string, Input, E, R, ContextInput
147
148
 
148
149
  let usage = commandPath.length > 0 ? commandPath.join(" ") : options.name
149
150
  // Only render `<subcommand>` in usage when at least one visible subcommand
150
- // exists; an all-hidden subcommand tree should look like a leaf command.
151
- if (subcommands.some((group) => group.commands.some((c) => !c.hidden))) {
151
+ // exists; an all-unlisted subcommand tree should look like a leaf command.
152
+ if (subcommands.some((group) => group.commands.some((c) => !c.unlisted))) {
152
153
  usage += " <subcommand>"
153
154
  }
154
155
  usage += " [flags]"
@@ -159,21 +160,22 @@ export const makeCommand = <const Name extends string, Input, E, R, ContextInput
159
160
 
160
161
  for (const option of config.flags) {
161
162
  const singles = Param.extractSingleParams(option)
163
+ const metadata = Param.getParamMetadata(option)
162
164
  for (const single of singles) {
163
165
  // Hidden flags still parse on the command line but are omitted from
164
166
  // generated --help output.
165
167
  if (single.hidden) continue
166
- flags.push(toFlagDoc(single))
168
+ flags.push(toFlagDoc(single, metadata))
167
169
  }
168
170
  }
169
171
 
170
172
  const subcommandDocs: Array<SubcommandGroupDoc> = []
171
173
 
172
174
  for (const group of subcommands) {
173
- // Hidden subcommands still parse on the command line but are omitted
175
+ // Unlisted subcommands still parse on the command line but are omitted
174
176
  // from --help. Drop the whole group when nothing visible remains so we
175
177
  // don't render an empty heading.
176
- const visible = group.commands.filter((c) => !c.hidden)
178
+ const visible = group.commands.filter((c) => !c.unlisted)
177
179
  if (visible.length === 0) continue
178
180
  subcommandDocs.push({
179
181
  group: group.group,
@@ -206,7 +208,7 @@ export const makeCommand = <const Name extends string, Input, E, R, ContextInput
206
208
  annotations,
207
209
  globalFlags,
208
210
  subcommands,
209
- hidden: options.hidden ?? false,
211
+ unlisted: options.unlisted ?? false,
210
212
  config,
211
213
  contextConfig,
212
214
  service,
@@ -233,14 +235,17 @@ export const makeCommand = <const Name extends string, Input, E, R, ContextInput
233
235
  /**
234
236
  * Converts a single flag param into a FlagDoc for help display.
235
237
  */
236
- export const toFlagDoc = (single: Param.Single<typeof Param.flagKind, unknown>): FlagDoc => {
238
+ export const toFlagDoc = (
239
+ single: Param.Single<typeof Param.flagKind, unknown>,
240
+ metadata: ReturnType<typeof Param.getParamMetadata>
241
+ ): FlagDoc => {
237
242
  const formattedAliases = single.aliases.map((alias) => alias.length === 1 ? `-${alias}` : `--${alias}`)
238
243
  return {
239
244
  name: single.name,
240
245
  aliases: formattedAliases,
241
246
  type: single.typeName ?? Primitive.getTypeName(single.primitiveType),
242
247
  description: appendChoiceKeys(single.description, Primitive.getChoiceKeys(single.primitiveType)),
243
- required: single.primitiveType._tag !== "Boolean"
248
+ required: single.primitiveType._tag !== "Boolean" && !metadata.isOptional
244
249
  }
245
250
  }
246
251