effect 4.0.0-beta.1 → 4.0.0-beta.11

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 (641) hide show
  1. package/dist/Cache.d.ts +2 -2
  2. package/dist/Cache.d.ts.map +1 -1
  3. package/dist/Cache.js +1 -1
  4. package/dist/Cache.js.map +1 -1
  5. package/dist/Cause.d.ts +1 -1
  6. package/dist/Cause.d.ts.map +1 -1
  7. package/dist/Channel.d.ts +7 -7
  8. package/dist/Channel.d.ts.map +1 -1
  9. package/dist/Channel.js +6 -4
  10. package/dist/Channel.js.map +1 -1
  11. package/dist/Combiner.d.ts +280 -13
  12. package/dist/Combiner.d.ts.map +1 -1
  13. package/dist/Combiner.js +198 -7
  14. package/dist/Combiner.js.map +1 -1
  15. package/dist/Config.d.ts +3 -3
  16. package/dist/Config.js +3 -3
  17. package/dist/Config.js.map +1 -1
  18. package/dist/ConfigProvider.d.ts +1 -1
  19. package/dist/Cron.d.ts +1 -1
  20. package/dist/Data.d.ts +534 -365
  21. package/dist/Data.d.ts.map +1 -1
  22. package/dist/Data.js +132 -79
  23. package/dist/Data.js.map +1 -1
  24. package/dist/DateTime.d.ts +23 -161
  25. package/dist/DateTime.d.ts.map +1 -1
  26. package/dist/DateTime.js +6 -51
  27. package/dist/DateTime.js.map +1 -1
  28. package/dist/Duration.d.ts +12 -12
  29. package/dist/Duration.d.ts.map +1 -1
  30. package/dist/Duration.js +12 -12
  31. package/dist/Duration.js.map +1 -1
  32. package/dist/Effect.d.ts +342 -248
  33. package/dist/Effect.d.ts.map +1 -1
  34. package/dist/Effect.js +119 -119
  35. package/dist/Effect.js.map +1 -1
  36. package/dist/Encoding.d.ts +194 -0
  37. package/dist/Encoding.d.ts.map +1 -0
  38. package/dist/Encoding.js +352 -0
  39. package/dist/Encoding.js.map +1 -0
  40. package/dist/Equal.d.ts +276 -109
  41. package/dist/Equal.d.ts.map +1 -1
  42. package/dist/Equal.js +124 -48
  43. package/dist/Equal.js.map +1 -1
  44. package/dist/ErrorReporter.d.ts +376 -0
  45. package/dist/ErrorReporter.d.ts.map +1 -0
  46. package/dist/ErrorReporter.js +246 -0
  47. package/dist/ErrorReporter.js.map +1 -0
  48. package/dist/FileSystem.d.ts +1 -1
  49. package/dist/FileSystem.d.ts.map +1 -1
  50. package/dist/FileSystem.js +5 -5
  51. package/dist/FileSystem.js.map +1 -1
  52. package/dist/Filter.d.ts +30 -1
  53. package/dist/Filter.d.ts.map +1 -1
  54. package/dist/Filter.js +15 -0
  55. package/dist/Filter.js.map +1 -1
  56. package/dist/Formatter.d.ts +131 -47
  57. package/dist/Formatter.d.ts.map +1 -1
  58. package/dist/Formatter.js +229 -51
  59. package/dist/Formatter.js.map +1 -1
  60. package/dist/Graph.d.ts +1 -1
  61. package/dist/Graph.d.ts.map +1 -1
  62. package/dist/Graph.js +2 -2
  63. package/dist/Graph.js.map +1 -1
  64. package/dist/JsonSchema.d.ts +299 -10
  65. package/dist/JsonSchema.d.ts.map +1 -1
  66. package/dist/JsonSchema.js +323 -4
  67. package/dist/JsonSchema.js.map +1 -1
  68. package/dist/Latch.d.ts +109 -0
  69. package/dist/Latch.d.ts.map +1 -0
  70. package/dist/Latch.js +72 -0
  71. package/dist/Latch.js.map +1 -0
  72. package/dist/LayerMap.d.ts +4 -4
  73. package/dist/LayerMap.d.ts.map +1 -1
  74. package/dist/LogLevel.d.ts +32 -0
  75. package/dist/LogLevel.d.ts.map +1 -1
  76. package/dist/LogLevel.js +28 -100
  77. package/dist/LogLevel.js.map +1 -1
  78. package/dist/Logger.d.ts +29 -95
  79. package/dist/Logger.d.ts.map +1 -1
  80. package/dist/Logger.js +2 -3
  81. package/dist/Logger.js.map +1 -1
  82. package/dist/Metric.d.ts +2 -2
  83. package/dist/Metric.d.ts.map +1 -1
  84. package/dist/Metric.js +1 -1
  85. package/dist/Metric.js.map +1 -1
  86. package/dist/Optic.d.ts +947 -18
  87. package/dist/Optic.d.ts.map +1 -1
  88. package/dist/Optic.js +454 -5
  89. package/dist/Optic.js.map +1 -1
  90. package/dist/Pipeable.d.ts +17 -0
  91. package/dist/Pipeable.d.ts.map +1 -1
  92. package/dist/Pipeable.js +19 -1
  93. package/dist/Pipeable.js.map +1 -1
  94. package/dist/PlatformError.d.ts +10 -9
  95. package/dist/PlatformError.d.ts.map +1 -1
  96. package/dist/PlatformError.js +2 -2
  97. package/dist/PlatformError.js.map +1 -1
  98. package/dist/Pool.d.ts +6 -4
  99. package/dist/Pool.d.ts.map +1 -1
  100. package/dist/Pool.js +7 -5
  101. package/dist/Pool.js.map +1 -1
  102. package/dist/PubSub.d.ts +3 -2
  103. package/dist/PubSub.d.ts.map +1 -1
  104. package/dist/PubSub.js +3 -2
  105. package/dist/PubSub.js.map +1 -1
  106. package/dist/Queue.d.ts.map +1 -1
  107. package/dist/Queue.js +0 -1
  108. package/dist/Queue.js.map +1 -1
  109. package/dist/Random.d.ts +18 -1
  110. package/dist/Random.d.ts.map +1 -1
  111. package/dist/Random.js +29 -12
  112. package/dist/Random.js.map +1 -1
  113. package/dist/RcMap.d.ts +2 -2
  114. package/dist/RcMap.d.ts.map +1 -1
  115. package/dist/RcMap.js +1 -1
  116. package/dist/RcMap.js.map +1 -1
  117. package/dist/RcRef.d.ts +1 -1
  118. package/dist/RcRef.d.ts.map +1 -1
  119. package/dist/Reducer.d.ts +166 -7
  120. package/dist/Reducer.d.ts.map +1 -1
  121. package/dist/Reducer.js +135 -1
  122. package/dist/Reducer.js.map +1 -1
  123. package/dist/References.d.ts +3 -3
  124. package/dist/References.d.ts.map +1 -1
  125. package/dist/Request.d.ts +1 -1
  126. package/dist/Request.d.ts.map +1 -1
  127. package/dist/Request.js +2 -1
  128. package/dist/Request.js.map +1 -1
  129. package/dist/RequestResolver.d.ts +6 -26
  130. package/dist/RequestResolver.d.ts.map +1 -1
  131. package/dist/RequestResolver.js +0 -20
  132. package/dist/RequestResolver.js.map +1 -1
  133. package/dist/Result.d.ts +12 -0
  134. package/dist/Result.d.ts.map +1 -1
  135. package/dist/Result.js +12 -0
  136. package/dist/Result.js.map +1 -1
  137. package/dist/Schedule.d.ts +33 -14
  138. package/dist/Schedule.d.ts.map +1 -1
  139. package/dist/Schedule.js +65 -24
  140. package/dist/Schedule.js.map +1 -1
  141. package/dist/Schema.d.ts +199 -49
  142. package/dist/Schema.d.ts.map +1 -1
  143. package/dist/Schema.js +386 -72
  144. package/dist/Schema.js.map +1 -1
  145. package/dist/SchemaAST.d.ts.map +1 -1
  146. package/dist/SchemaAST.js +2 -1
  147. package/dist/SchemaAST.js.map +1 -1
  148. package/dist/SchemaGetter.d.ts +2 -2
  149. package/dist/SchemaGetter.d.ts.map +1 -1
  150. package/dist/SchemaGetter.js +12 -14
  151. package/dist/SchemaGetter.js.map +1 -1
  152. package/dist/SchemaRepresentation.d.ts +44 -43
  153. package/dist/SchemaRepresentation.d.ts.map +1 -1
  154. package/dist/SchemaRepresentation.js +43 -24
  155. package/dist/SchemaRepresentation.js.map +1 -1
  156. package/dist/SchemaTransformation.d.ts +37 -0
  157. package/dist/SchemaTransformation.d.ts.map +1 -1
  158. package/dist/SchemaTransformation.js +80 -0
  159. package/dist/SchemaTransformation.js.map +1 -1
  160. package/dist/ScopedCache.d.ts +2 -2
  161. package/dist/ScopedCache.d.ts.map +1 -1
  162. package/dist/ScopedCache.js +1 -1
  163. package/dist/ScopedCache.js.map +1 -1
  164. package/dist/Semaphore.d.ts +211 -0
  165. package/dist/Semaphore.d.ts.map +1 -0
  166. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  167. package/dist/Semaphore.js.map +1 -0
  168. package/dist/Stream.d.ts +24 -24
  169. package/dist/Stream.d.ts.map +1 -1
  170. package/dist/Stream.js +12 -11
  171. package/dist/Stream.js.map +1 -1
  172. package/dist/Struct.d.ts +16 -0
  173. package/dist/Struct.d.ts.map +1 -1
  174. package/dist/Struct.js +22 -0
  175. package/dist/Struct.js.map +1 -1
  176. package/dist/SubscriptionRef.d.ts +2 -1
  177. package/dist/SubscriptionRef.d.ts.map +1 -1
  178. package/dist/SubscriptionRef.js +2 -1
  179. package/dist/SubscriptionRef.js.map +1 -1
  180. package/dist/SynchronizedRef.d.ts +2 -1
  181. package/dist/SynchronizedRef.d.ts.map +1 -1
  182. package/dist/SynchronizedRef.js +2 -1
  183. package/dist/SynchronizedRef.js.map +1 -1
  184. package/dist/Types.d.ts +14 -6
  185. package/dist/Types.d.ts.map +1 -1
  186. package/dist/index.d.ts +503 -19
  187. package/dist/index.d.ts.map +1 -1
  188. package/dist/index.js +503 -19
  189. package/dist/index.js.map +1 -1
  190. package/dist/internal/core.js +11 -3
  191. package/dist/internal/core.js.map +1 -1
  192. package/dist/internal/dateTime.js +3 -11
  193. package/dist/internal/dateTime.js.map +1 -1
  194. package/dist/internal/effect.js +85 -26
  195. package/dist/internal/effect.js.map +1 -1
  196. package/dist/internal/hashMap.js +2 -2
  197. package/dist/internal/hashMap.js.map +1 -1
  198. package/dist/internal/random.d.ts +2 -0
  199. package/dist/internal/random.d.ts.map +1 -0
  200. package/dist/internal/random.js +13 -0
  201. package/dist/internal/random.js.map +1 -0
  202. package/dist/internal/rcRef.js +3 -2
  203. package/dist/internal/rcRef.js.map +1 -1
  204. package/dist/testing/TestClock.d.ts +7 -6
  205. package/dist/testing/TestClock.d.ts.map +1 -1
  206. package/dist/testing/TestClock.js +6 -4
  207. package/dist/testing/TestClock.js.map +1 -1
  208. package/dist/testing/TestSchema.d.ts +6 -6
  209. package/dist/testing/TestSchema.d.ts.map +1 -1
  210. package/dist/unstable/ai/AiError.d.ts +48 -48
  211. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  212. package/dist/unstable/ai/Chat.d.ts +3 -3
  213. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  214. package/dist/unstable/ai/Chat.js +4 -3
  215. package/dist/unstable/ai/Chat.js.map +1 -1
  216. package/dist/unstable/ai/LanguageModel.d.ts +2 -2
  217. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  218. package/dist/unstable/ai/LanguageModel.js +41 -0
  219. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  220. package/dist/unstable/ai/McpSchema.d.ts +51 -51
  221. package/dist/unstable/ai/McpServer.d.ts +1 -1
  222. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  223. package/dist/unstable/ai/McpServer.js.map +1 -1
  224. package/dist/unstable/ai/Prompt.d.ts +20 -20
  225. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  226. package/dist/unstable/ai/Response.d.ts +26 -26
  227. package/dist/unstable/ai/Response.d.ts.map +1 -1
  228. package/dist/unstable/ai/Response.js +1 -1
  229. package/dist/unstable/ai/Response.js.map +1 -1
  230. package/dist/unstable/cli/CliError.d.ts +5 -5
  231. package/dist/unstable/cli/CliOutput.js +37 -6
  232. package/dist/unstable/cli/CliOutput.js.map +1 -1
  233. package/dist/unstable/cli/Command.d.ts +199 -7
  234. package/dist/unstable/cli/Command.d.ts.map +1 -1
  235. package/dist/unstable/cli/Command.js +116 -6
  236. package/dist/unstable/cli/Command.js.map +1 -1
  237. package/dist/unstable/cli/HelpDoc.d.ts +60 -2
  238. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  239. package/dist/unstable/cli/internal/command.d.ts +11 -1
  240. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  241. package/dist/unstable/cli/internal/command.js +33 -8
  242. package/dist/unstable/cli/internal/command.js.map +1 -1
  243. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
  244. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  245. package/dist/unstable/cli/internal/parser.js +10 -2
  246. package/dist/unstable/cli/internal/parser.js.map +1 -1
  247. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  248. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  249. package/dist/unstable/cluster/ClusterCron.js +1 -1
  250. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  251. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  252. package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
  253. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  254. package/dist/unstable/cluster/Entity.d.ts +5 -4
  255. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  256. package/dist/unstable/cluster/Entity.js.map +1 -1
  257. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  258. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  259. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  260. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  261. package/dist/unstable/cluster/K8sHttpClient.js +1 -1
  262. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  263. package/dist/unstable/cluster/Message.d.ts +10 -10
  264. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  265. package/dist/unstable/cluster/MessageStorage.js +2 -1
  266. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  267. package/dist/unstable/cluster/Reply.d.ts +6 -6
  268. package/dist/unstable/cluster/Runner.d.ts +1 -1
  269. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  270. package/dist/unstable/cluster/Runners.js +4 -3
  271. package/dist/unstable/cluster/Runners.js.map +1 -1
  272. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  273. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  274. package/dist/unstable/cluster/Sharding.js +8 -6
  275. package/dist/unstable/cluster/Sharding.js.map +1 -1
  276. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  277. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  278. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  279. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  280. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  281. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  282. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  283. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  284. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  285. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  286. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  287. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  288. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  289. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  290. package/dist/unstable/encoding/Sse.d.ts +4 -4
  291. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  292. package/dist/unstable/encoding/Sse.js.map +1 -1
  293. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  294. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  295. package/dist/unstable/eventlog/EventLog.js +2 -1
  296. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  297. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  298. package/dist/unstable/http/Cookies.d.ts +3 -3
  299. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  300. package/dist/unstable/http/Cookies.js +2 -2
  301. package/dist/unstable/http/Cookies.js.map +1 -1
  302. package/dist/unstable/http/Headers.d.ts.map +1 -1
  303. package/dist/unstable/http/Headers.js +27 -10
  304. package/dist/unstable/http/Headers.js.map +1 -1
  305. package/dist/unstable/http/HttpBody.d.ts +17 -2
  306. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  307. package/dist/unstable/http/HttpBody.js +28 -1
  308. package/dist/unstable/http/HttpBody.js.map +1 -1
  309. package/dist/unstable/http/HttpClient.d.ts +11 -11
  310. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  311. package/dist/unstable/http/HttpClient.js +4 -4
  312. package/dist/unstable/http/HttpClient.js.map +1 -1
  313. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  314. package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
  315. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  316. package/dist/unstable/http/HttpClientRequest.js +15 -3
  317. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  318. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  319. package/dist/unstable/http/HttpEffect.js +30 -33
  320. package/dist/unstable/http/HttpEffect.js.map +1 -1
  321. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  322. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  323. package/dist/unstable/http/HttpMethod.js +3 -3
  324. package/dist/unstable/http/HttpMethod.js.map +1 -1
  325. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  326. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  327. package/dist/unstable/http/HttpMiddleware.js +4 -9
  328. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  329. package/dist/unstable/http/HttpServerError.d.ts +14 -32
  330. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  331. package/dist/unstable/http/HttpServerError.js +11 -27
  332. package/dist/unstable/http/HttpServerError.js.map +1 -1
  333. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  334. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  335. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  336. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  337. package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
  338. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  339. package/dist/unstable/http/HttpServerResponse.js +3 -1
  340. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  341. package/dist/unstable/http/Multipart.d.ts +3 -3
  342. package/dist/unstable/http/UrlParams.d.ts +14 -6
  343. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  344. package/dist/unstable/http/UrlParams.js +1 -1
  345. package/dist/unstable/http/UrlParams.js.map +1 -1
  346. package/dist/unstable/httpapi/HttpApiBuilder.js +6 -6
  347. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  348. package/dist/unstable/httpapi/HttpApiClient.js +3 -3
  349. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  350. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +21 -39
  351. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  352. package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
  353. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  354. package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
  355. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  356. package/dist/unstable/httpapi/HttpApiError.js +29 -9
  357. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  358. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  359. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  360. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  361. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  362. package/dist/unstable/httpapi/OpenApi.js +18 -16
  363. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  364. package/dist/unstable/observability/Otlp.d.ts +12 -12
  365. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  366. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  367. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  368. package/dist/unstable/observability/OtlpExporter.js +1 -1
  369. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  370. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  371. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  372. package/dist/unstable/observability/OtlpLogger.js +7 -4
  373. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  374. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  375. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  376. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  377. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  378. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  379. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  380. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  381. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  382. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  383. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  384. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  385. package/dist/unstable/persistence/PersistedCache.js +2 -1
  386. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  387. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  388. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  389. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  390. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  391. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  392. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  393. package/dist/unstable/persistence/Persistence.js +2 -2
  394. package/dist/unstable/persistence/Persistence.js.map +1 -1
  395. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  396. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  397. package/dist/unstable/persistence/RateLimiter.js +1 -1
  398. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  399. package/dist/unstable/process/ChildProcess.d.ts +2 -2
  400. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  401. package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
  402. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  403. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  404. package/dist/unstable/reactivity/Atom.d.ts +6 -6
  405. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  406. package/dist/unstable/reactivity/Atom.js +15 -12
  407. package/dist/unstable/reactivity/Atom.js.map +1 -1
  408. package/dist/unstable/reactivity/AtomHttpApi.d.ts +6 -6
  409. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  410. package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
  411. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  412. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  413. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  414. package/dist/unstable/reactivity/AtomRegistry.js +22 -1
  415. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  416. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  417. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  418. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  419. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  420. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  421. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  422. package/dist/unstable/reactivity/Hydration.js +76 -0
  423. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  424. package/dist/unstable/reactivity/index.d.ts +4 -0
  425. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  426. package/dist/unstable/reactivity/index.js +4 -0
  427. package/dist/unstable/reactivity/index.js.map +1 -1
  428. package/dist/unstable/rpc/Rpc.d.ts +2 -2
  429. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  430. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  431. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  432. package/dist/unstable/rpc/RpcClient.js +6 -13
  433. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  434. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  435. package/dist/unstable/rpc/RpcServer.js +9 -3
  436. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  437. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  438. package/dist/unstable/rpc/Utils.js +2 -1
  439. package/dist/unstable/rpc/Utils.js.map +1 -1
  440. package/dist/unstable/schema/Model.d.ts +4 -4
  441. package/dist/unstable/schema/Model.d.ts.map +1 -1
  442. package/dist/unstable/schema/VariantSchema.d.ts +2 -2
  443. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  444. package/dist/unstable/schema/VariantSchema.js +13 -2
  445. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  446. package/dist/unstable/socket/Socket.d.ts +4 -4
  447. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  448. package/dist/unstable/socket/Socket.js +3 -2
  449. package/dist/unstable/socket/Socket.js.map +1 -1
  450. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  451. package/dist/unstable/sql/Migrator.d.ts +1 -1
  452. package/dist/unstable/sql/SqlError.d.ts +2 -2
  453. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  454. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  455. package/dist/unstable/sql/SqlSchema.d.ts +24 -1
  456. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  457. package/dist/unstable/sql/SqlSchema.js +24 -3
  458. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  459. package/dist/unstable/sql/Statement.js +0 -1
  460. package/dist/unstable/sql/Statement.js.map +1 -1
  461. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  462. package/dist/unstable/workers/Worker.js +2 -1
  463. package/dist/unstable/workers/Worker.js.map +1 -1
  464. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  465. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  466. package/dist/unstable/workflow/DurableClock.js +3 -3
  467. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  468. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  469. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  470. package/dist/unstable/workflow/Workflow.d.ts +2 -2
  471. package/dist/unstable/workflow/WorkflowEngine.d.ts +8 -1
  472. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  473. package/dist/unstable/workflow/WorkflowEngine.js +133 -1
  474. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  475. package/package.json +2 -2
  476. package/src/Cache.ts +3 -3
  477. package/src/Cause.ts +1 -1
  478. package/src/Channel.ts +15 -13
  479. package/src/Combiner.ts +280 -13
  480. package/src/Config.ts +3 -3
  481. package/src/Data.ts +538 -374
  482. package/src/DateTime.ts +24 -164
  483. package/src/Duration.ts +15 -15
  484. package/src/Effect.ts +378 -269
  485. package/src/Encoding.ts +879 -0
  486. package/src/Equal.ts +278 -111
  487. package/src/ErrorReporter.ts +459 -0
  488. package/src/FileSystem.ts +7 -8
  489. package/src/Filter.ts +48 -1
  490. package/src/Formatter.ts +253 -51
  491. package/src/Graph.ts +8 -5
  492. package/src/JsonSchema.ts +383 -10
  493. package/src/Latch.ts +112 -0
  494. package/src/LayerMap.ts +5 -5
  495. package/src/LogLevel.ts +37 -0
  496. package/src/Logger.ts +33 -100
  497. package/src/Metric.ts +4 -4
  498. package/src/Optic.ts +948 -19
  499. package/src/Pipeable.ts +32 -1
  500. package/src/PlatformError.ts +5 -5
  501. package/src/Pool.ts +13 -11
  502. package/src/PubSub.ts +10 -9
  503. package/src/Queue.ts +0 -1
  504. package/src/Random.ts +33 -14
  505. package/src/RcMap.ts +5 -5
  506. package/src/RcRef.ts +1 -1
  507. package/src/Reducer.ts +166 -7
  508. package/src/References.ts +4 -4
  509. package/src/Request.ts +3 -2
  510. package/src/RequestResolver.ts +9 -29
  511. package/src/Result.ts +13 -0
  512. package/src/Schedule.ts +279 -140
  513. package/src/Schema.ts +575 -113
  514. package/src/SchemaAST.ts +2 -1
  515. package/src/SchemaGetter.ts +12 -14
  516. package/src/SchemaRepresentation.ts +43 -24
  517. package/src/SchemaTransformation.ts +104 -0
  518. package/src/ScopedCache.ts +3 -3
  519. package/src/Semaphore.ts +356 -0
  520. package/src/Stream.ts +50 -49
  521. package/src/Struct.ts +26 -0
  522. package/src/SubscriptionRef.ts +3 -2
  523. package/src/SynchronizedRef.ts +3 -2
  524. package/src/Types.ts +12 -2
  525. package/src/index.ts +507 -20
  526. package/src/internal/core.ts +12 -5
  527. package/src/internal/dateTime.ts +9 -30
  528. package/src/internal/effect.ts +194 -51
  529. package/src/internal/hashMap.ts +2 -2
  530. package/src/internal/random.ts +20 -0
  531. package/src/internal/rcRef.ts +4 -3
  532. package/src/testing/TestClock.ts +13 -11
  533. package/src/testing/TestSchema.ts +8 -8
  534. package/src/unstable/ai/AiError.ts +2 -2
  535. package/src/unstable/ai/Chat.ts +12 -11
  536. package/src/unstable/ai/LanguageModel.ts +74 -3
  537. package/src/unstable/ai/McpServer.ts +2 -2
  538. package/src/unstable/ai/Prompt.ts +37 -37
  539. package/src/unstable/ai/Response.ts +25 -25
  540. package/src/unstable/cli/CliOutput.ts +45 -6
  541. package/src/unstable/cli/Command.ts +298 -11
  542. package/src/unstable/cli/HelpDoc.ts +68 -2
  543. package/src/unstable/cli/internal/command.ts +47 -11
  544. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
  545. package/src/unstable/cli/internal/parser.ts +11 -3
  546. package/src/unstable/cluster/ClusterCron.ts +2 -2
  547. package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
  548. package/src/unstable/cluster/Entity.ts +7 -6
  549. package/src/unstable/cluster/EntityResource.ts +4 -4
  550. package/src/unstable/cluster/Envelope.ts +1 -1
  551. package/src/unstable/cluster/K8sHttpClient.ts +1 -1
  552. package/src/unstable/cluster/MessageStorage.ts +3 -5
  553. package/src/unstable/cluster/Runners.ts +6 -5
  554. package/src/unstable/cluster/Sharding.ts +11 -9
  555. package/src/unstable/cluster/ShardingConfig.ts +10 -11
  556. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  557. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  558. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  559. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  560. package/src/unstable/encoding/Sse.ts +2 -4
  561. package/src/unstable/eventlog/EventLog.ts +2 -1
  562. package/src/unstable/http/Cookies.ts +3 -3
  563. package/src/unstable/http/Headers.ts +28 -13
  564. package/src/unstable/http/HttpBody.ts +42 -1
  565. package/src/unstable/http/HttpClient.ts +19 -19
  566. package/src/unstable/http/HttpClientRequest.ts +38 -13
  567. package/src/unstable/http/HttpEffect.ts +27 -30
  568. package/src/unstable/http/HttpMethod.ts +16 -4
  569. package/src/unstable/http/HttpMiddleware.ts +5 -10
  570. package/src/unstable/http/HttpServerError.ts +13 -27
  571. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  572. package/src/unstable/http/HttpServerResponse.ts +4 -2
  573. package/src/unstable/http/Multipart.ts +2 -2
  574. package/src/unstable/http/UrlParams.ts +20 -5
  575. package/src/unstable/httpapi/HttpApiBuilder.ts +6 -5
  576. package/src/unstable/httpapi/HttpApiClient.ts +3 -3
  577. package/src/unstable/httpapi/HttpApiEndpoint.ts +47 -72
  578. package/src/unstable/httpapi/HttpApiError.ts +30 -9
  579. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  580. package/src/unstable/httpapi/OpenApi.ts +18 -16
  581. package/src/unstable/observability/Otlp.ts +12 -12
  582. package/src/unstable/observability/OtlpExporter.ts +3 -3
  583. package/src/unstable/observability/OtlpLogger.ts +13 -9
  584. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  585. package/src/unstable/observability/OtlpTracer.ts +4 -4
  586. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  587. package/src/unstable/persistence/Persistable.ts +2 -2
  588. package/src/unstable/persistence/PersistedCache.ts +20 -9
  589. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  590. package/src/unstable/persistence/Persistence.ts +3 -3
  591. package/src/unstable/persistence/RateLimiter.ts +4 -4
  592. package/src/unstable/process/ChildProcess.ts +2 -2
  593. package/src/unstable/process/ChildProcessSpawner.ts +6 -0
  594. package/src/unstable/reactivity/Atom.ts +20 -18
  595. package/src/unstable/reactivity/AtomHttpApi.ts +19 -18
  596. package/src/unstable/reactivity/AtomRegistry.ts +29 -1
  597. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  598. package/src/unstable/reactivity/Hydration.ts +112 -0
  599. package/src/unstable/reactivity/index.ts +5 -0
  600. package/src/unstable/rpc/Rpc.ts +3 -3
  601. package/src/unstable/rpc/RpcClient.ts +12 -54
  602. package/src/unstable/rpc/RpcServer.ts +10 -4
  603. package/src/unstable/rpc/Utils.ts +2 -1
  604. package/src/unstable/schema/VariantSchema.ts +36 -7
  605. package/src/unstable/socket/Socket.ts +7 -6
  606. package/src/unstable/sql/SqlModel.ts +2 -2
  607. package/src/unstable/sql/SqlSchema.ts +62 -13
  608. package/src/unstable/sql/Statement.ts +0 -1
  609. package/src/unstable/workers/Worker.ts +2 -1
  610. package/src/unstable/workflow/DurableClock.ts +8 -8
  611. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  612. package/src/unstable/workflow/WorkflowEngine.ts +181 -2
  613. package/dist/PartitionedSemaphore.d.ts +0 -52
  614. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  615. package/dist/PartitionedSemaphore.js.map +0 -1
  616. package/dist/encoding/Base64.d.ts +0 -67
  617. package/dist/encoding/Base64.d.ts.map +0 -1
  618. package/dist/encoding/Base64.js +0 -146
  619. package/dist/encoding/Base64.js.map +0 -1
  620. package/dist/encoding/Base64Url.d.ts +0 -60
  621. package/dist/encoding/Base64Url.d.ts.map +0 -1
  622. package/dist/encoding/Base64Url.js +0 -89
  623. package/dist/encoding/Base64Url.js.map +0 -1
  624. package/dist/encoding/EncodingError.d.ts +0 -31
  625. package/dist/encoding/EncodingError.d.ts.map +0 -1
  626. package/dist/encoding/EncodingError.js +0 -22
  627. package/dist/encoding/EncodingError.js.map +0 -1
  628. package/dist/encoding/Hex.d.ts +0 -61
  629. package/dist/encoding/Hex.d.ts.map +0 -1
  630. package/dist/encoding/Hex.js +0 -115
  631. package/dist/encoding/Hex.js.map +0 -1
  632. package/dist/encoding/index.d.ts +0 -26
  633. package/dist/encoding/index.d.ts.map +0 -1
  634. package/dist/encoding/index.js +0 -27
  635. package/dist/encoding/index.js.map +0 -1
  636. package/src/PartitionedSemaphore.ts +0 -182
  637. package/src/encoding/Base64.ts +0 -366
  638. package/src/encoding/Base64Url.ts +0 -104
  639. package/src/encoding/EncodingError.ts +0 -35
  640. package/src/encoding/Hex.ts +0 -390
  641. package/src/encoding/index.ts +0 -31
@@ -453,9 +453,9 @@ export type ToolResultParts<Tools extends Record<string, Tool.Any>> = {
453
453
  * @since 1.0.0
454
454
  * @category schemas
455
455
  */
456
- export const ProviderMetadata: Schema.Record$<
456
+ export const ProviderMetadata: Schema.$Record<
457
457
  Schema.String,
458
- Schema.NullOr<Schema.Codec<Schema.Json, Schema.Json>>
458
+ Schema.NullOr<Schema.Codec<Schema.Json>>
459
459
  > = Schema.Record(Schema.String, Schema.NullOr(Schema.Json))
460
460
 
461
461
  /**
@@ -629,7 +629,7 @@ export const TextPart: Schema.Struct<{
629
629
  readonly text: Schema.String
630
630
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
631
631
  readonly metadata: Schema.withDecodingDefault<
632
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
632
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
633
633
  >
634
634
  }> = Schema.Struct({
635
635
  ...BasePart.fields,
@@ -689,7 +689,7 @@ export const TextStartPart: Schema.Struct<{
689
689
  readonly id: Schema.String
690
690
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
691
691
  readonly metadata: Schema.withDecodingDefault<
692
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
692
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
693
693
  >
694
694
  }> = Schema.Struct({
695
695
  ...BasePart.fields,
@@ -757,7 +757,7 @@ export const TextDeltaPart: Schema.Struct<{
757
757
  readonly delta: Schema.String
758
758
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
759
759
  readonly metadata: Schema.withDecodingDefault<
760
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
760
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
761
761
  >
762
762
  }> = Schema.Struct({
763
763
  ...BasePart.fields,
@@ -818,7 +818,7 @@ export const TextEndPart: Schema.Struct<{
818
818
  readonly id: Schema.String
819
819
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
820
820
  readonly metadata: Schema.withDecodingDefault<
821
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
821
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
822
822
  >
823
823
  }> = Schema.Struct({
824
824
  ...BasePart.fields,
@@ -889,7 +889,7 @@ export const ReasoningPart: Schema.Struct<{
889
889
  readonly text: Schema.String
890
890
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
891
891
  readonly metadata: Schema.withDecodingDefault<
892
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
892
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
893
893
  >
894
894
  }> = Schema.Struct({
895
895
  ...BasePart.fields,
@@ -949,7 +949,7 @@ export const ReasoningStartPart: Schema.Struct<{
949
949
  readonly id: Schema.String
950
950
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
951
951
  readonly metadata: Schema.withDecodingDefault<
952
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
952
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
953
953
  >
954
954
  }> = Schema.Struct({
955
955
  ...BasePart.fields,
@@ -1017,7 +1017,7 @@ export const ReasoningDeltaPart: Schema.Struct<{
1017
1017
  readonly delta: Schema.String
1018
1018
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
1019
1019
  readonly metadata: Schema.withDecodingDefault<
1020
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
1020
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
1021
1021
  >
1022
1022
  }> = Schema.Struct({
1023
1023
  ...BasePart.fields,
@@ -1078,7 +1078,7 @@ export const ReasoningEndPart: Schema.Struct<{
1078
1078
  readonly id: Schema.String
1079
1079
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
1080
1080
  readonly metadata: Schema.withDecodingDefault<
1081
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
1081
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
1082
1082
  >
1083
1083
  }> = Schema.Struct({
1084
1084
  ...BasePart.fields,
@@ -1159,7 +1159,7 @@ export const ToolParamsStartPart: Schema.Struct<{
1159
1159
  readonly providerExecuted: Schema.withDecodingDefaultKey<Schema.Boolean>
1160
1160
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
1161
1161
  readonly metadata: Schema.withDecodingDefault<
1162
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
1162
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
1163
1163
  >
1164
1164
  }> = Schema.Struct({
1165
1165
  ...BasePart.fields,
@@ -1234,7 +1234,7 @@ export const ToolParamsDeltaPart: Schema.Struct<{
1234
1234
  readonly delta: Schema.String
1235
1235
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
1236
1236
  readonly metadata: Schema.withDecodingDefault<
1237
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
1237
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
1238
1238
  >
1239
1239
  }> = Schema.Struct({
1240
1240
  ...BasePart.fields,
@@ -1299,7 +1299,7 @@ export const ToolParamsEndPart: Schema.Struct<{
1299
1299
  readonly id: Schema.String
1300
1300
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
1301
1301
  readonly metadata: Schema.withDecodingDefault<
1302
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
1302
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
1303
1303
  >
1304
1304
  }> = Schema.Struct({
1305
1305
  ...BasePart.fields,
@@ -1414,7 +1414,7 @@ export const ToolCallPart: <const Name extends string, Params extends Schema.Top
1414
1414
  readonly providerExecuted: Schema.withDecodingDefaultKey<Schema.Boolean>
1415
1415
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
1416
1416
  readonly metadata: Schema.withDecodingDefault<
1417
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
1417
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
1418
1418
  >
1419
1419
  }
1420
1420
  > = <const Name extends string, Params extends Schema.Top>(
@@ -1618,9 +1618,9 @@ export const ToolResultPart: <const Name extends string, Success extends Schema.
1618
1618
  readonly "~effect/ai/Content/Part": Schema.Literal<"~effect/ai/Content/Part">
1619
1619
  readonly result: Schema.Union<readonly [Success, Failure]>
1620
1620
  readonly providerExecuted: Schema.Boolean
1621
- readonly metadata: Schema.Record$<
1621
+ readonly metadata: Schema.$Record<
1622
1622
  Schema.String,
1623
- Schema.NullOr<Schema.Codec<Schema.Json, Schema.Json, never, never>>
1623
+ Schema.NullOr<Schema.Codec<Schema.Json>>
1624
1624
  >
1625
1625
  readonly encodedResult: Schema.toEncoded<Schema.Union<readonly [Success, Failure]>>
1626
1626
  readonly preliminary: Schema.Boolean
@@ -1635,7 +1635,7 @@ export const ToolResultPart: <const Name extends string, Success extends Schema.
1635
1635
  readonly result: Schema.toEncoded<Schema.Union<readonly [Success, Failure]>>
1636
1636
  readonly providerExecuted: Schema.optional<Schema.Boolean>
1637
1637
  readonly metadata: Schema.optional<
1638
- Schema.Record$<Schema.String, Schema.NullOr<Schema.Codec<Schema.Json, Schema.Json, never, never>>>
1638
+ Schema.$Record<Schema.String, Schema.NullOr<Schema.Codec<Schema.Json>>>
1639
1639
  >
1640
1640
  readonly preliminary: Schema.optional<Schema.Boolean>
1641
1641
  readonly id: Schema.String
@@ -1795,7 +1795,7 @@ export const ToolApprovalRequestPart: Schema.Struct<{
1795
1795
  readonly toolCallId: Schema.String
1796
1796
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
1797
1797
  readonly metadata: Schema.withDecodingDefault<
1798
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
1798
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
1799
1799
  >
1800
1800
  }> = Schema.Struct({
1801
1801
  ...BasePart.fields,
@@ -1888,7 +1888,7 @@ export const FilePart: Schema.Struct<{
1888
1888
  readonly data: Schema.Uint8ArrayFromBase64
1889
1889
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
1890
1890
  readonly metadata: Schema.withDecodingDefault<
1891
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
1891
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
1892
1892
  >
1893
1893
  }> = Schema.Struct({
1894
1894
  ...BasePart.fields,
@@ -1985,7 +1985,7 @@ export const DocumentSourcePart: Schema.Struct<{
1985
1985
  readonly fileName: Schema.optionalKey<Schema.String>
1986
1986
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
1987
1987
  readonly metadata: Schema.withDecodingDefault<
1988
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
1988
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
1989
1989
  >
1990
1990
  }> = Schema.Struct({
1991
1991
  ...BasePart.fields,
@@ -2076,7 +2076,7 @@ export const UrlSourcePart: Schema.Struct<{
2076
2076
  readonly title: Schema.String
2077
2077
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
2078
2078
  readonly metadata: Schema.withDecodingDefault<
2079
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
2079
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
2080
2080
  >
2081
2081
  }> = Schema.Struct({
2082
2082
  ...BasePart.fields,
@@ -2115,7 +2115,7 @@ export const UrlSourcePart: Schema.Struct<{
2115
2115
  * @category schemas
2116
2116
  */
2117
2117
  export const HttpRequestDetails = Schema.Struct({
2118
- method: Schema.Literals(["GET", "POST", "PATCH", "PUT", "DELETE", "HEAD", "OPTIONS"]),
2118
+ method: Schema.Literals(["GET", "POST", "PATCH", "PUT", "DELETE", "HEAD", "OPTIONS", "TRACE"]),
2119
2119
  url: Schema.String,
2120
2120
  urlParams: Schema.Array(Schema.Tuple([Schema.String, Schema.String])),
2121
2121
  hash: Schema.UndefinedOr(Schema.String),
@@ -2257,7 +2257,7 @@ export const ResponseMetadataPart: Schema.Struct<{
2257
2257
  readonly request: Schema.UndefinedOr<typeof HttpRequestDetails>
2258
2258
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
2259
2259
  readonly metadata: Schema.withDecodingDefault<
2260
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
2260
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
2261
2261
  >
2262
2262
  }> = Schema.Struct({
2263
2263
  ...BasePart.fields,
@@ -2464,7 +2464,7 @@ export const FinishPart: Schema.Struct<{
2464
2464
  readonly response: Schema.UndefinedOr<typeof HttpResponseDetails>
2465
2465
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
2466
2466
  readonly metadata: Schema.withDecodingDefault<
2467
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
2467
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
2468
2468
  >
2469
2469
  }> = Schema.Struct({
2470
2470
  ...BasePart.fields,
@@ -2527,7 +2527,7 @@ export const ErrorPart: Schema.Struct<{
2527
2527
  readonly error: Schema.Unknown
2528
2528
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
2529
2529
  readonly metadata: Schema.withDecodingDefault<
2530
- Schema.Record$<Schema.String, Schema.Codec<Schema.Json, Schema.Json>>
2530
+ Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
2531
2531
  >
2532
2532
  }> = Schema.Struct({
2533
2533
  ...BasePart.fields,
@@ -499,14 +499,53 @@ const formatHelpDocImpl = (doc: HelpDoc, colors: ColorFunctions): string => {
499
499
 
500
500
  // Subcommands section
501
501
  if (doc.subcommands && doc.subcommands.length > 0) {
502
- sections.push(colors.bold("SUBCOMMANDS"))
502
+ const ungrouped = doc.subcommands.find((group) => group.group === undefined)
503
+
504
+ if (ungrouped) {
505
+ sections.push(colors.bold("SUBCOMMANDS"))
506
+ sections.push(renderTable(
507
+ ungrouped.commands.map((sub) => ({
508
+ left: colors.cyan(sub.name),
509
+ right: sub.shortDescription ?? sub.description
510
+ })),
511
+ 20
512
+ ))
513
+ if (doc.subcommands.length > 1) {
514
+ sections.push("")
515
+ }
516
+ }
503
517
 
504
- const subcommandRows: Array<Row> = doc.subcommands.map((sub) => ({
505
- left: colors.cyan(sub.name),
506
- right: sub.description
507
- }))
518
+ for (const group of doc.subcommands) {
519
+ if (group.group === undefined) continue
520
+ sections.push(colors.bold(`${group.group}:`))
521
+ sections.push(renderTable(
522
+ group.commands.map((sub) => ({
523
+ left: colors.cyan(sub.name),
524
+ right: sub.shortDescription ?? sub.description
525
+ })),
526
+ 20
527
+ ))
528
+ sections.push("")
529
+ }
530
+ }
508
531
 
509
- sections.push(renderTable(subcommandRows, 20))
532
+ // Examples section
533
+ if (doc.examples && doc.examples.length > 0) {
534
+ sections.push(colors.bold("EXAMPLES"))
535
+
536
+ let first = true
537
+ let previousHadDescription = false
538
+ for (const example of doc.examples) {
539
+ if (example.description) {
540
+ if (!first) sections.push("")
541
+ sections.push(` ${colors.dim(`# ${example.description}`)}`)
542
+ } else if (previousHadDescription) {
543
+ sections.push("")
544
+ }
545
+ sections.push(` ${colors.cyan(example.command)}`)
546
+ first = false
547
+ previousHadDescription = !!example.description
548
+ }
510
549
  sections.push("")
511
550
  }
512
551
 
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @since 4.0.0
3
3
  */
4
+ import type { NonEmptyArray, NonEmptyReadonlyArray } from "../../Array.ts"
4
5
  import * as Console from "../../Console.ts"
5
6
  import * as Effect from "../../Effect.ts"
6
7
  import type * as FileSystem from "../../FileSystem.ts"
@@ -11,9 +12,9 @@ import type { Pipeable } from "../../Pipeable.ts"
11
12
  import * as Predicate from "../../Predicate.ts"
12
13
  import * as References from "../../References.ts"
13
14
  import * as Result from "../../Result.ts"
14
- import type * as ServiceMap from "../../ServiceMap.ts"
15
+ import * as ServiceMap from "../../ServiceMap.ts"
15
16
  import * as Terminal from "../../Terminal.ts"
16
- import type { Simplify } from "../../Types.ts"
17
+ import type { NoInfer, Simplify } from "../../Types.ts"
17
18
  import type { ChildProcessSpawner } from "../process/ChildProcessSpawner.ts"
18
19
  import * as CliError from "./CliError.ts"
19
20
  import * as CliOutput from "./CliOutput.ts"
@@ -94,16 +95,45 @@ export interface Command<Name extends string, Input, E = never, R = never> exten
94
95
  */
95
96
  readonly description: string | undefined
96
97
 
98
+ /**
99
+ * An optional short description used when listing subcommands.
100
+ */
101
+ readonly shortDescription: string | undefined
102
+
103
+ /**
104
+ * Optional usage examples for the command.
105
+ */
106
+ readonly examples: ReadonlyArray<Command.Example>
107
+
97
108
  /**
98
109
  * The subcommands available under this command.
99
110
  */
100
- readonly subcommands: ReadonlyArray<Command.Any>
111
+ readonly subcommands: ReadonlyArray<{
112
+ readonly group: string | undefined
113
+ readonly commands: NonEmptyReadonlyArray<Command.Any>
114
+ }>
115
+
116
+ /**
117
+ * Custom annotations associated with this command.
118
+ */
119
+ readonly annotations: ServiceMap.ServiceMap<never>
101
120
  }
102
121
 
103
122
  /**
104
123
  * @since 4.0.0
105
124
  */
106
125
  export declare namespace Command {
126
+ /**
127
+ * Represents a concrete usage example for a command.
128
+ *
129
+ * @since 4.0.0
130
+ * @category models
131
+ */
132
+ export interface Example {
133
+ readonly command: string
134
+ readonly description?: string | undefined
135
+ }
136
+
107
137
  /**
108
138
  * Configuration object for defining command flags, arguments, and nested structures.
109
139
  *
@@ -209,6 +239,25 @@ export declare namespace Command {
209
239
  * @category models
210
240
  */
211
241
  export type Any = Command<string, unknown, unknown, unknown>
242
+
243
+ /**
244
+ * A grouped set of subcommands used by `Command.withSubcommands`.
245
+ *
246
+ * @since 4.0.0
247
+ * @category models
248
+ */
249
+ export interface SubcommandGroup<Commands extends ReadonlyArray<Any> = ReadonlyArray<Any>> {
250
+ readonly group: string
251
+ readonly commands: Commands
252
+ }
253
+
254
+ /**
255
+ * Entry type accepted by `Command.withSubcommands`.
256
+ *
257
+ * @since 4.0.0
258
+ * @category models
259
+ */
260
+ export type SubcommandEntry = Any | SubcommandGroup<ReadonlyArray<Any>>
212
261
  }
213
262
 
214
263
  /**
@@ -644,6 +693,57 @@ export const withHandler: {
644
693
  handler: (value: A) => Effect.Effect<void, E, R>
645
694
  ): Command<Name, A, E, R> => makeCommand({ ...toImpl(self), handle: handler }))
646
695
 
696
+ interface SubcommandGroupInternal {
697
+ readonly group: string | undefined
698
+ readonly commands: NonEmptyReadonlyArray<Command.Any>
699
+ }
700
+
701
+ const normalizeSubcommandEntries = (
702
+ entries: ReadonlyArray<Command.SubcommandEntry>
703
+ ): {
704
+ readonly flat: ReadonlyArray<Command.Any>
705
+ readonly groups: ReadonlyArray<SubcommandGroupInternal>
706
+ } => {
707
+ const flat: Array<Command.Any> = []
708
+ const grouped = new Map<string | undefined, NonEmptyArray<Command.Any>>()
709
+
710
+ const addToGroup = (group: string | undefined, command: Command.Any): void => {
711
+ flat.push(command)
712
+ const existing = grouped.get(group)
713
+ if (existing) {
714
+ existing.push(command)
715
+ } else {
716
+ grouped.set(group, [command])
717
+ }
718
+ }
719
+
720
+ for (const entry of entries) {
721
+ if (isCommand(entry)) {
722
+ addToGroup(undefined, entry)
723
+ continue
724
+ }
725
+ for (const command of entry.commands) {
726
+ addToGroup(entry.group, command)
727
+ }
728
+ }
729
+
730
+ const groups: Array<SubcommandGroupInternal> = []
731
+ const ungroupedCommands = grouped.get(undefined)
732
+
733
+ if (ungroupedCommands && ungroupedCommands.length > 0) {
734
+ groups.push({ group: undefined, commands: ungroupedCommands })
735
+ }
736
+
737
+ for (const [group, commands] of grouped) {
738
+ if (group === undefined) {
739
+ continue
740
+ }
741
+ groups.push({ group, commands })
742
+ }
743
+
744
+ return { flat, groups }
745
+ }
746
+
647
747
  /**
648
748
  * Adds subcommands to a command, creating a hierarchical command structure.
649
749
  *
@@ -717,7 +817,7 @@ export const withSubcommands: {
717
817
  * @since 4.0.0
718
818
  * @category combinators
719
819
  */
720
- <const Subcommands extends ReadonlyArray<Command<any, any, any, any>>>(subcommands: Subcommands): <Name extends string, Input, E, R>(
820
+ <const Subcommands extends ReadonlyArray<Command.SubcommandEntry>>(subcommands: Subcommands): <Name extends string, Input, E, R>(
721
821
  self: Command<Name, Input, E, R>
722
822
  ) => Command<
723
823
  Name,
@@ -766,7 +866,7 @@ export const withSubcommands: {
766
866
  Input,
767
867
  E,
768
868
  R,
769
- const Subcommands extends ReadonlyArray<Command<any, any, any, any>>
869
+ const Subcommands extends ReadonlyArray<Command.SubcommandEntry>
770
870
  >(self: Command<Name, Input, E, R>, subcommands: Subcommands): Command<
771
871
  Name,
772
872
  Input,
@@ -778,7 +878,7 @@ export const withSubcommands: {
778
878
  Input,
779
879
  E,
780
880
  R,
781
- const Subcommands extends ReadonlyArray<Command<any, any, any, any>>
881
+ const Subcommands extends ReadonlyArray<Command.SubcommandEntry>
782
882
  >(
783
883
  self: Command<Name, Input, E, R>,
784
884
  subcommands: Subcommands
@@ -788,10 +888,11 @@ export const withSubcommands: {
788
888
  E | ExtractSubcommandErrors<Subcommands>,
789
889
  R | Exclude<ExtractSubcommandContext<Subcommands>, CommandContext<Name>>
790
890
  > => {
791
- checkForDuplicateFlags(self, subcommands)
891
+ const normalized = normalizeSubcommandEntries(subcommands)
892
+ checkForDuplicateFlags(self, normalized.flat)
792
893
 
793
894
  const impl = toImpl(self)
794
- const byName = new Map(subcommands.map((s) => [s.name, toImpl(s)] as const))
895
+ const byName = new Map(normalized.flat.map((s) => [s.name, toImpl(s)] as const))
795
896
 
796
897
  // Internal type for routing - not exposed in public type
797
898
  type SubcommandInfo = { readonly name: string; readonly result: unknown }
@@ -832,16 +933,22 @@ export const withSubcommands: {
832
933
  name: impl.name,
833
934
  config: impl.config,
834
935
  description: impl.description,
936
+ shortDescription: impl.shortDescription,
937
+ annotations: impl.annotations,
938
+ examples: impl.examples,
835
939
  service: impl.service,
836
- subcommands,
940
+ subcommands: normalized.groups,
837
941
  parse,
838
942
  handle
839
943
  })
840
944
  })
841
945
 
842
946
  // Type extractors for subcommand arrays - T[number] gives union of all elements
843
- type ExtractSubcommandErrors<T extends ReadonlyArray<Command<any, any, any, any>>> = Error<T[number]>
844
- type ExtractSubcommandContext<T extends ReadonlyArray<Command<any, any, any, any>>> = T[number] extends
947
+ type ExtractSubcommand<T> = T extends Command<any, any, any, any> ? T
948
+ : T extends Command.SubcommandGroup<infer Commands> ? Commands[number]
949
+ : never
950
+ type ExtractSubcommandErrors<T extends ReadonlyArray<Command.SubcommandEntry>> = Error<ExtractSubcommand<T[number]>>
951
+ type ExtractSubcommandContext<T extends ReadonlyArray<Command.SubcommandEntry>> = ExtractSubcommand<T[number]> extends
845
952
  Command<any, any, any, infer R> ? R : never
846
953
 
847
954
  /**
@@ -926,6 +1033,186 @@ export const withDescription: {
926
1033
  description: string
927
1034
  ) => makeCommand({ ...toImpl(self), description }))
928
1035
 
1036
+ /**
1037
+ * Sets a short description for a command.
1038
+ *
1039
+ * Short descriptions are used when listing subcommands in help output and
1040
+ * shell completions. If no short description is provided, the full
1041
+ * `description` is used as a fallback.
1042
+ *
1043
+ * @since 4.0.0
1044
+ * @category combinators
1045
+ */
1046
+ export const withShortDescription: {
1047
+ /**
1048
+ * Sets a short description for a command.
1049
+ *
1050
+ * Short descriptions are used when listing subcommands in help output and
1051
+ * shell completions. If no short description is provided, the full
1052
+ * `description` is used as a fallback.
1053
+ *
1054
+ * @since 4.0.0
1055
+ * @category combinators
1056
+ */
1057
+ (shortDescription: string): <const Name extends string, Input, E, R>(
1058
+ self: Command<Name, Input, E, R>
1059
+ ) => Command<Name, Input, E, R>
1060
+ /**
1061
+ * Sets a short description for a command.
1062
+ *
1063
+ * Short descriptions are used when listing subcommands in help output and
1064
+ * shell completions. If no short description is provided, the full
1065
+ * `description` is used as a fallback.
1066
+ *
1067
+ * @since 4.0.0
1068
+ * @category combinators
1069
+ */
1070
+ <const Name extends string, Input, E, R>(self: Command<Name, Input, E, R>, shortDescription: string): Command<Name, Input, E, R>
1071
+ } = dual(2, <const Name extends string, Input, E, R>(
1072
+ self: Command<Name, Input, E, R>,
1073
+ shortDescription: string
1074
+ ) => makeCommand({ ...toImpl(self), shortDescription }))
1075
+
1076
+ /**
1077
+ * Adds a custom annotation to a command.
1078
+ *
1079
+ * @since 4.0.0
1080
+ * @category combinators
1081
+ */
1082
+ export const annotate: {
1083
+ /**
1084
+ * Adds a custom annotation to a command.
1085
+ *
1086
+ * @since 4.0.0
1087
+ * @category combinators
1088
+ */
1089
+ <I, S>(service: ServiceMap.Service<I, S>, value: NoInfer<S>): <Name extends string, Input, E, R>(
1090
+ self: Command<Name, Input, E, R>
1091
+ ) => Command<Name, Input, E, R>
1092
+ /**
1093
+ * Adds a custom annotation to a command.
1094
+ *
1095
+ * @since 4.0.0
1096
+ * @category combinators
1097
+ */
1098
+ <Name extends string, Input, E, R, I, S>(
1099
+ self: Command<Name, Input, E, R>,
1100
+ service: ServiceMap.Service<I, S>,
1101
+ value: NoInfer<S>
1102
+ ): Command<Name, Input, E, R>
1103
+ } = dual(3, <Name extends string, Input, E, R, I, S>(
1104
+ self: Command<Name, Input, E, R>,
1105
+ service: ServiceMap.Service<I, S>,
1106
+ value: NoInfer<S>
1107
+ ) => {
1108
+ const impl = toImpl(self)
1109
+ return makeCommand({ ...impl, annotations: ServiceMap.add(impl.annotations, service, value) })
1110
+ })
1111
+
1112
+ /**
1113
+ * Merges a ServiceMap of annotations into a command.
1114
+ *
1115
+ * @since 4.0.0
1116
+ * @category combinators
1117
+ */
1118
+ export const annotateMerge: {
1119
+ /**
1120
+ * Merges a ServiceMap of annotations into a command.
1121
+ *
1122
+ * @since 4.0.0
1123
+ * @category combinators
1124
+ */
1125
+ <I>(annotations: ServiceMap.ServiceMap<I>): <Name extends string, Input, E, R>(
1126
+ self: Command<Name, Input, E, R>
1127
+ ) => Command<Name, Input, E, R>
1128
+ /**
1129
+ * Merges a ServiceMap of annotations into a command.
1130
+ *
1131
+ * @since 4.0.0
1132
+ * @category combinators
1133
+ */
1134
+ <Name extends string, Input, E, R, I>(self: Command<Name, Input, E, R>, annotations: ServiceMap.ServiceMap<I>): Command<Name, Input, E, R>
1135
+ } = dual(2, <Name extends string, Input, E, R, I>(
1136
+ self: Command<Name, Input, E, R>,
1137
+ annotations: ServiceMap.ServiceMap<I>
1138
+ ) => {
1139
+ const impl = toImpl(self)
1140
+ return makeCommand({ ...impl, annotations: ServiceMap.merge(impl.annotations, annotations) })
1141
+ })
1142
+
1143
+ /**
1144
+ * Sets usage examples for a command.
1145
+ *
1146
+ * Examples are exposed in structured `HelpDoc` data and rendered by the
1147
+ * default formatter in an `EXAMPLES` section.
1148
+ *
1149
+ * @example
1150
+ * ```ts
1151
+ * import { Command } from "effect/unstable/cli"
1152
+ *
1153
+ * const login = Command.make("login").pipe(
1154
+ * Command.withExamples([
1155
+ * { command: "myapp login", description: "Log in with browser OAuth" },
1156
+ * { command: "myapp login --token sbp_abc123", description: "Log in with a token" }
1157
+ * ])
1158
+ * )
1159
+ * ```
1160
+ *
1161
+ * @since 4.0.0
1162
+ * @category combinators
1163
+ */
1164
+ export const withExamples: {
1165
+ /**
1166
+ * Sets usage examples for a command.
1167
+ *
1168
+ * Examples are exposed in structured `HelpDoc` data and rendered by the
1169
+ * default formatter in an `EXAMPLES` section.
1170
+ *
1171
+ * @example
1172
+ * ```ts
1173
+ * import { Command } from "effect/unstable/cli"
1174
+ *
1175
+ * const login = Command.make("login").pipe(
1176
+ * Command.withExamples([
1177
+ * { command: "myapp login", description: "Log in with browser OAuth" },
1178
+ * { command: "myapp login --token sbp_abc123", description: "Log in with a token" }
1179
+ * ])
1180
+ * )
1181
+ * ```
1182
+ *
1183
+ * @since 4.0.0
1184
+ * @category combinators
1185
+ */
1186
+ (examples: ReadonlyArray<Command.Example>): <const Name extends string, Input, E, R>(
1187
+ self: Command<Name, Input, E, R>
1188
+ ) => Command<Name, Input, E, R>
1189
+ /**
1190
+ * Sets usage examples for a command.
1191
+ *
1192
+ * Examples are exposed in structured `HelpDoc` data and rendered by the
1193
+ * default formatter in an `EXAMPLES` section.
1194
+ *
1195
+ * @example
1196
+ * ```ts
1197
+ * import { Command } from "effect/unstable/cli"
1198
+ *
1199
+ * const login = Command.make("login").pipe(
1200
+ * Command.withExamples([
1201
+ * { command: "myapp login", description: "Log in with browser OAuth" },
1202
+ * { command: "myapp login --token sbp_abc123", description: "Log in with a token" }
1203
+ * ])
1204
+ * )
1205
+ * ```
1206
+ *
1207
+ * @since 4.0.0
1208
+ * @category combinators
1209
+ */
1210
+ <const Name extends string, Input, E, R>(self: Command<Name, Input, E, R>, examples: ReadonlyArray<Command.Example>): Command<Name, Input, E, R>
1211
+ } = dual(2, <const Name extends string, Input, E, R>(
1212
+ self: Command<Name, Input, E, R>,
1213
+ examples: ReadonlyArray<Command.Example>
1214
+ ) => makeCommand({ ...toImpl(self), examples }))
1215
+
929
1216
  /* ========================================================================== */
930
1217
  /* Providing Services */
931
1218
  /* ========================================================================== */