effect 4.0.0-beta.2 → 4.0.0-beta.21

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 (881) hide show
  1. package/dist/Array.d.ts +127 -299
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +102 -62
  4. package/dist/Array.js.map +1 -1
  5. package/dist/Cache.d.ts +2 -2
  6. package/dist/Cache.d.ts.map +1 -1
  7. package/dist/Cache.js +6 -5
  8. package/dist/Cache.js.map +1 -1
  9. package/dist/Cause.d.ts +1 -1
  10. package/dist/Cause.d.ts.map +1 -1
  11. package/dist/Channel.d.ts +116 -30
  12. package/dist/Channel.d.ts.map +1 -1
  13. package/dist/Channel.js +82 -37
  14. package/dist/Channel.js.map +1 -1
  15. package/dist/Chunk.d.ts +54 -247
  16. package/dist/Chunk.d.ts.map +1 -1
  17. package/dist/Chunk.js +36 -67
  18. package/dist/Chunk.js.map +1 -1
  19. package/dist/Combiner.d.ts +280 -13
  20. package/dist/Combiner.d.ts.map +1 -1
  21. package/dist/Combiner.js +198 -7
  22. package/dist/Combiner.js.map +1 -1
  23. package/dist/Config.d.ts +165 -9
  24. package/dist/Config.d.ts.map +1 -1
  25. package/dist/Config.js +62 -7
  26. package/dist/Config.js.map +1 -1
  27. package/dist/ConfigProvider.d.ts +1 -1
  28. package/dist/Cron.d.ts +1 -1
  29. package/dist/Data.d.ts +534 -365
  30. package/dist/Data.d.ts.map +1 -1
  31. package/dist/Data.js +132 -79
  32. package/dist/Data.js.map +1 -1
  33. package/dist/DateTime.d.ts +23 -161
  34. package/dist/DateTime.d.ts.map +1 -1
  35. package/dist/DateTime.js +6 -51
  36. package/dist/DateTime.js.map +1 -1
  37. package/dist/Duration.d.ts +12 -12
  38. package/dist/Duration.d.ts.map +1 -1
  39. package/dist/Duration.js +12 -12
  40. package/dist/Duration.js.map +1 -1
  41. package/dist/Effect.d.ts +829 -692
  42. package/dist/Effect.d.ts.map +1 -1
  43. package/dist/Effect.js +263 -251
  44. package/dist/Effect.js.map +1 -1
  45. package/dist/Encoding.d.ts +194 -0
  46. package/dist/Encoding.d.ts.map +1 -0
  47. package/dist/Encoding.js +352 -0
  48. package/dist/Encoding.js.map +1 -0
  49. package/dist/Equal.d.ts +276 -109
  50. package/dist/Equal.d.ts.map +1 -1
  51. package/dist/Equal.js +124 -48
  52. package/dist/Equal.js.map +1 -1
  53. package/dist/ErrorReporter.d.ts +376 -0
  54. package/dist/ErrorReporter.d.ts.map +1 -0
  55. package/dist/ErrorReporter.js +246 -0
  56. package/dist/ErrorReporter.js.map +1 -0
  57. package/dist/Fiber.d.ts +2 -2
  58. package/dist/Fiber.d.ts.map +1 -1
  59. package/dist/Fiber.js.map +1 -1
  60. package/dist/FileSystem.d.ts +1 -1
  61. package/dist/FileSystem.d.ts.map +1 -1
  62. package/dist/FileSystem.js +5 -5
  63. package/dist/FileSystem.js.map +1 -1
  64. package/dist/Filter.d.ts +30 -34
  65. package/dist/Filter.d.ts.map +1 -1
  66. package/dist/Filter.js +15 -13
  67. package/dist/Filter.js.map +1 -1
  68. package/dist/Formatter.d.ts +131 -47
  69. package/dist/Formatter.d.ts.map +1 -1
  70. package/dist/Formatter.js +229 -51
  71. package/dist/Formatter.js.map +1 -1
  72. package/dist/Graph.d.ts +1 -1
  73. package/dist/Graph.d.ts.map +1 -1
  74. package/dist/Graph.js +5 -8
  75. package/dist/Graph.js.map +1 -1
  76. package/dist/HashMap.d.ts +15 -14
  77. package/dist/HashMap.d.ts.map +1 -1
  78. package/dist/HashMap.js +4 -4
  79. package/dist/HashMap.js.map +1 -1
  80. package/dist/Iterable.d.ts +40 -39
  81. package/dist/Iterable.d.ts.map +1 -1
  82. package/dist/Iterable.js +94 -22
  83. package/dist/Iterable.js.map +1 -1
  84. package/dist/JsonSchema.d.ts +299 -10
  85. package/dist/JsonSchema.d.ts.map +1 -1
  86. package/dist/JsonSchema.js +323 -4
  87. package/dist/JsonSchema.js.map +1 -1
  88. package/dist/Latch.d.ts +109 -0
  89. package/dist/Latch.d.ts.map +1 -0
  90. package/dist/Latch.js +72 -0
  91. package/dist/Latch.js.map +1 -0
  92. package/dist/Layer.d.ts +9 -9
  93. package/dist/Layer.d.ts.map +1 -1
  94. package/dist/Layer.js.map +1 -1
  95. package/dist/LayerMap.d.ts +4 -4
  96. package/dist/LayerMap.d.ts.map +1 -1
  97. package/dist/LogLevel.d.ts +32 -0
  98. package/dist/LogLevel.d.ts.map +1 -1
  99. package/dist/LogLevel.js +28 -100
  100. package/dist/LogLevel.js.map +1 -1
  101. package/dist/Logger.d.ts +29 -95
  102. package/dist/Logger.d.ts.map +1 -1
  103. package/dist/Logger.js +2 -3
  104. package/dist/Logger.js.map +1 -1
  105. package/dist/ManagedRuntime.d.ts +1 -1
  106. package/dist/ManagedRuntime.js +1 -1
  107. package/dist/Metric.d.ts +2 -2
  108. package/dist/Metric.d.ts.map +1 -1
  109. package/dist/Metric.js +1 -1
  110. package/dist/Metric.js.map +1 -1
  111. package/dist/Optic.d.ts +947 -18
  112. package/dist/Optic.d.ts.map +1 -1
  113. package/dist/Optic.js +454 -5
  114. package/dist/Optic.js.map +1 -1
  115. package/dist/Option.d.ts +22 -15
  116. package/dist/Option.d.ts.map +1 -1
  117. package/dist/Option.js +14 -7
  118. package/dist/Option.js.map +1 -1
  119. package/dist/Pipeable.d.ts +17 -0
  120. package/dist/Pipeable.d.ts.map +1 -1
  121. package/dist/Pipeable.js +19 -1
  122. package/dist/Pipeable.js.map +1 -1
  123. package/dist/PlatformError.d.ts +10 -9
  124. package/dist/PlatformError.d.ts.map +1 -1
  125. package/dist/PlatformError.js +2 -2
  126. package/dist/PlatformError.js.map +1 -1
  127. package/dist/Pool.d.ts +6 -4
  128. package/dist/Pool.d.ts.map +1 -1
  129. package/dist/Pool.js +7 -5
  130. package/dist/Pool.js.map +1 -1
  131. package/dist/PubSub.d.ts +3 -2
  132. package/dist/PubSub.d.ts.map +1 -1
  133. package/dist/PubSub.js +3 -2
  134. package/dist/PubSub.js.map +1 -1
  135. package/dist/Pull.d.ts.map +1 -1
  136. package/dist/Pull.js +1 -1
  137. package/dist/Pull.js.map +1 -1
  138. package/dist/Queue.d.ts.map +1 -1
  139. package/dist/Queue.js +0 -1
  140. package/dist/Queue.js.map +1 -1
  141. package/dist/Random.d.ts +35 -1
  142. package/dist/Random.d.ts.map +1 -1
  143. package/dist/Random.js +46 -12
  144. package/dist/Random.js.map +1 -1
  145. package/dist/RcMap.d.ts +2 -2
  146. package/dist/RcMap.d.ts.map +1 -1
  147. package/dist/RcMap.js +1 -1
  148. package/dist/RcMap.js.map +1 -1
  149. package/dist/RcRef.d.ts +1 -1
  150. package/dist/RcRef.d.ts.map +1 -1
  151. package/dist/Record.d.ts +24 -120
  152. package/dist/Record.d.ts.map +1 -1
  153. package/dist/Record.js +21 -41
  154. package/dist/Record.js.map +1 -1
  155. package/dist/Reducer.d.ts +166 -7
  156. package/dist/Reducer.d.ts.map +1 -1
  157. package/dist/Reducer.js +135 -1
  158. package/dist/Reducer.js.map +1 -1
  159. package/dist/References.d.ts +3 -3
  160. package/dist/References.d.ts.map +1 -1
  161. package/dist/Request.d.ts +1 -1
  162. package/dist/Request.d.ts.map +1 -1
  163. package/dist/Request.js +2 -1
  164. package/dist/Request.js.map +1 -1
  165. package/dist/RequestResolver.d.ts +6 -26
  166. package/dist/RequestResolver.d.ts.map +1 -1
  167. package/dist/RequestResolver.js +0 -20
  168. package/dist/RequestResolver.js.map +1 -1
  169. package/dist/Result.d.ts +12 -0
  170. package/dist/Result.d.ts.map +1 -1
  171. package/dist/Result.js +12 -0
  172. package/dist/Result.js.map +1 -1
  173. package/dist/Schedule.d.ts +47 -20
  174. package/dist/Schedule.d.ts.map +1 -1
  175. package/dist/Schedule.js +94 -34
  176. package/dist/Schedule.js.map +1 -1
  177. package/dist/Schema.d.ts +266 -50
  178. package/dist/Schema.d.ts.map +1 -1
  179. package/dist/Schema.js +426 -74
  180. package/dist/Schema.js.map +1 -1
  181. package/dist/SchemaAST.d.ts.map +1 -1
  182. package/dist/SchemaAST.js +7 -6
  183. package/dist/SchemaAST.js.map +1 -1
  184. package/dist/SchemaGetter.d.ts +2 -2
  185. package/dist/SchemaGetter.d.ts.map +1 -1
  186. package/dist/SchemaGetter.js +12 -14
  187. package/dist/SchemaGetter.js.map +1 -1
  188. package/dist/SchemaParser.d.ts +5 -0
  189. package/dist/SchemaParser.d.ts.map +1 -1
  190. package/dist/SchemaParser.js +10 -0
  191. package/dist/SchemaParser.js.map +1 -1
  192. package/dist/SchemaRepresentation.d.ts +44 -43
  193. package/dist/SchemaRepresentation.d.ts.map +1 -1
  194. package/dist/SchemaRepresentation.js +43 -24
  195. package/dist/SchemaRepresentation.js.map +1 -1
  196. package/dist/SchemaTransformation.d.ts +107 -3
  197. package/dist/SchemaTransformation.d.ts.map +1 -1
  198. package/dist/SchemaTransformation.js +159 -4
  199. package/dist/SchemaTransformation.js.map +1 -1
  200. package/dist/ScopedCache.d.ts +2 -2
  201. package/dist/ScopedCache.d.ts.map +1 -1
  202. package/dist/ScopedCache.js +1 -1
  203. package/dist/ScopedCache.js.map +1 -1
  204. package/dist/Semaphore.d.ts +211 -0
  205. package/dist/Semaphore.d.ts.map +1 -0
  206. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  207. package/dist/Semaphore.js.map +1 -0
  208. package/dist/ServiceMap.d.ts +39 -30
  209. package/dist/ServiceMap.d.ts.map +1 -1
  210. package/dist/ServiceMap.js +3 -3
  211. package/dist/ServiceMap.js.map +1 -1
  212. package/dist/Sink.d.ts +13 -13
  213. package/dist/Sink.d.ts.map +1 -1
  214. package/dist/Sink.js +53 -6
  215. package/dist/Sink.js.map +1 -1
  216. package/dist/Stream.d.ts +235 -423
  217. package/dist/Stream.d.ts.map +1 -1
  218. package/dist/Stream.js +124 -77
  219. package/dist/Stream.js.map +1 -1
  220. package/dist/Struct.d.ts +16 -0
  221. package/dist/Struct.d.ts.map +1 -1
  222. package/dist/Struct.js +22 -0
  223. package/dist/Struct.js.map +1 -1
  224. package/dist/SubscriptionRef.d.ts +2 -1
  225. package/dist/SubscriptionRef.d.ts.map +1 -1
  226. package/dist/SubscriptionRef.js +2 -1
  227. package/dist/SubscriptionRef.js.map +1 -1
  228. package/dist/SynchronizedRef.d.ts +2 -1
  229. package/dist/SynchronizedRef.d.ts.map +1 -1
  230. package/dist/SynchronizedRef.js +2 -1
  231. package/dist/SynchronizedRef.js.map +1 -1
  232. package/dist/Trie.d.ts +18 -17
  233. package/dist/Trie.d.ts.map +1 -1
  234. package/dist/Trie.js +5 -5
  235. package/dist/Trie.js.map +1 -1
  236. package/dist/TxChunk.d.ts +37 -37
  237. package/dist/TxChunk.d.ts.map +1 -1
  238. package/dist/TxChunk.js +3 -3
  239. package/dist/TxChunk.js.map +1 -1
  240. package/dist/TxDeferred.d.ts +328 -0
  241. package/dist/TxDeferred.d.ts.map +1 -0
  242. package/dist/TxDeferred.js +196 -0
  243. package/dist/TxDeferred.js.map +1 -0
  244. package/dist/TxHashMap.d.ts +84 -83
  245. package/dist/TxHashMap.d.ts.map +1 -1
  246. package/dist/TxHashMap.js +24 -24
  247. package/dist/TxHashMap.js.map +1 -1
  248. package/dist/TxHashSet.d.ts +35 -35
  249. package/dist/TxHashSet.d.ts.map +1 -1
  250. package/dist/TxHashSet.js +14 -14
  251. package/dist/TxHashSet.js.map +1 -1
  252. package/dist/TxPriorityQueue.d.ts +609 -0
  253. package/dist/TxPriorityQueue.d.ts.map +1 -0
  254. package/dist/TxPriorityQueue.js +415 -0
  255. package/dist/TxPriorityQueue.js.map +1 -0
  256. package/dist/TxPubSub.d.ts +585 -0
  257. package/dist/TxPubSub.d.ts.map +1 -0
  258. package/dist/TxPubSub.js +521 -0
  259. package/dist/TxPubSub.js.map +1 -0
  260. package/dist/TxQueue.d.ts +32 -32
  261. package/dist/TxQueue.d.ts.map +1 -1
  262. package/dist/TxQueue.js +26 -26
  263. package/dist/TxQueue.js.map +1 -1
  264. package/dist/TxReentrantLock.d.ts +523 -0
  265. package/dist/TxReentrantLock.d.ts.map +1 -0
  266. package/dist/TxReentrantLock.js +504 -0
  267. package/dist/TxReentrantLock.js.map +1 -0
  268. package/dist/TxRef.d.ts +34 -34
  269. package/dist/TxRef.d.ts.map +1 -1
  270. package/dist/TxRef.js +21 -14
  271. package/dist/TxRef.js.map +1 -1
  272. package/dist/TxSemaphore.d.ts +8 -8
  273. package/dist/TxSemaphore.d.ts.map +1 -1
  274. package/dist/TxSemaphore.js +7 -7
  275. package/dist/TxSemaphore.js.map +1 -1
  276. package/dist/TxSubscriptionRef.d.ts +508 -0
  277. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  278. package/dist/TxSubscriptionRef.js +293 -0
  279. package/dist/TxSubscriptionRef.js.map +1 -0
  280. package/dist/Types.d.ts +84 -6
  281. package/dist/Types.d.ts.map +1 -1
  282. package/dist/index.d.ts +591 -20
  283. package/dist/index.d.ts.map +1 -1
  284. package/dist/index.js +591 -20
  285. package/dist/index.js.map +1 -1
  286. package/dist/internal/core.js +11 -3
  287. package/dist/internal/core.js.map +1 -1
  288. package/dist/internal/dateTime.js +3 -11
  289. package/dist/internal/dateTime.js.map +1 -1
  290. package/dist/internal/effect.js +263 -99
  291. package/dist/internal/effect.js.map +1 -1
  292. package/dist/internal/hashMap.js +5 -4
  293. package/dist/internal/hashMap.js.map +1 -1
  294. package/dist/internal/random.d.ts +2 -0
  295. package/dist/internal/random.d.ts.map +1 -0
  296. package/dist/internal/random.js +13 -0
  297. package/dist/internal/random.js.map +1 -0
  298. package/dist/internal/rcRef.js +3 -2
  299. package/dist/internal/rcRef.js.map +1 -1
  300. package/dist/internal/request.js +2 -2
  301. package/dist/internal/request.js.map +1 -1
  302. package/dist/internal/schema/annotations.js +2 -0
  303. package/dist/internal/schema/annotations.js.map +1 -1
  304. package/dist/internal/schema/schema.js +1 -0
  305. package/dist/internal/schema/schema.js.map +1 -1
  306. package/dist/internal/trie.js +5 -4
  307. package/dist/internal/trie.js.map +1 -1
  308. package/dist/testing/TestClock.d.ts +7 -6
  309. package/dist/testing/TestClock.d.ts.map +1 -1
  310. package/dist/testing/TestClock.js +6 -4
  311. package/dist/testing/TestClock.js.map +1 -1
  312. package/dist/testing/TestSchema.d.ts +8 -8
  313. package/dist/testing/TestSchema.d.ts.map +1 -1
  314. package/dist/testing/TestSchema.js.map +1 -1
  315. package/dist/unstable/ai/AiError.d.ts +128 -48
  316. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  317. package/dist/unstable/ai/AiError.js +11 -12
  318. package/dist/unstable/ai/AiError.js.map +1 -1
  319. package/dist/unstable/ai/Chat.d.ts +3 -3
  320. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  321. package/dist/unstable/ai/Chat.js +4 -3
  322. package/dist/unstable/ai/Chat.js.map +1 -1
  323. package/dist/unstable/ai/LanguageModel.d.ts +4 -2
  324. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  325. package/dist/unstable/ai/LanguageModel.js +86 -14
  326. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  327. package/dist/unstable/ai/McpSchema.d.ts +163 -87
  328. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  329. package/dist/unstable/ai/McpSchema.js +49 -12
  330. package/dist/unstable/ai/McpSchema.js.map +1 -1
  331. package/dist/unstable/ai/McpServer.d.ts +1 -1
  332. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  333. package/dist/unstable/ai/McpServer.js +35 -7
  334. package/dist/unstable/ai/McpServer.js.map +1 -1
  335. package/dist/unstable/ai/Model.d.ts +25 -7
  336. package/dist/unstable/ai/Model.d.ts.map +1 -1
  337. package/dist/unstable/ai/Model.js +22 -6
  338. package/dist/unstable/ai/Model.js.map +1 -1
  339. package/dist/unstable/ai/Prompt.d.ts +20 -20
  340. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  341. package/dist/unstable/ai/Response.d.ts +26 -26
  342. package/dist/unstable/ai/Response.d.ts.map +1 -1
  343. package/dist/unstable/ai/Response.js +1 -1
  344. package/dist/unstable/ai/Response.js.map +1 -1
  345. package/dist/unstable/ai/Tool.d.ts +19 -3
  346. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  347. package/dist/unstable/ai/Tool.js +14 -9
  348. package/dist/unstable/ai/Tool.js.map +1 -1
  349. package/dist/unstable/ai/index.d.ts +1 -1
  350. package/dist/unstable/ai/index.js +1 -1
  351. package/dist/unstable/cli/CliError.d.ts +5 -5
  352. package/dist/unstable/cli/CliOutput.js +59 -6
  353. package/dist/unstable/cli/CliOutput.js.map +1 -1
  354. package/dist/unstable/cli/Command.d.ts +276 -19
  355. package/dist/unstable/cli/Command.d.ts.map +1 -1
  356. package/dist/unstable/cli/Command.js +234 -36
  357. package/dist/unstable/cli/Command.js.map +1 -1
  358. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  359. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  360. package/dist/unstable/cli/GlobalFlag.js +118 -0
  361. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  362. package/dist/unstable/cli/HelpDoc.d.ts +70 -2
  363. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  364. package/dist/unstable/cli/index.d.ts +4 -0
  365. package/dist/unstable/cli/index.d.ts.map +1 -1
  366. package/dist/unstable/cli/index.js +4 -0
  367. package/dist/unstable/cli/index.js.map +1 -1
  368. package/dist/unstable/cli/internal/command.d.ts +17 -8
  369. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  370. package/dist/unstable/cli/internal/command.js +32 -23
  371. package/dist/unstable/cli/internal/command.js.map +1 -1
  372. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
  373. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  374. package/dist/unstable/cli/internal/help.d.ts +33 -0
  375. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  376. package/dist/unstable/cli/internal/help.js +107 -0
  377. package/dist/unstable/cli/internal/help.js.map +1 -0
  378. package/dist/unstable/cli/internal/parser.js +29 -36
  379. package/dist/unstable/cli/internal/parser.js.map +1 -1
  380. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  381. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  382. package/dist/unstable/cluster/ClusterCron.js +1 -1
  383. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  384. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  385. package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -3
  386. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  387. package/dist/unstable/cluster/Entity.d.ts +7 -6
  388. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  389. package/dist/unstable/cluster/Entity.js.map +1 -1
  390. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  391. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  392. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  393. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  394. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  395. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  396. package/dist/unstable/cluster/Message.d.ts +10 -10
  397. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  398. package/dist/unstable/cluster/MessageStorage.js +2 -1
  399. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  400. package/dist/unstable/cluster/Reply.d.ts +6 -6
  401. package/dist/unstable/cluster/Runner.d.ts +1 -1
  402. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  403. package/dist/unstable/cluster/Runners.js +4 -3
  404. package/dist/unstable/cluster/Runners.js.map +1 -1
  405. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  406. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  407. package/dist/unstable/cluster/Sharding.js +9 -7
  408. package/dist/unstable/cluster/Sharding.js.map +1 -1
  409. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  410. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  411. package/dist/unstable/cluster/ShardingConfig.js +20 -20
  412. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  413. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  414. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  415. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  416. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  417. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  418. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  419. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  420. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  421. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  422. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  423. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  424. package/dist/unstable/encoding/Sse.d.ts +4 -4
  425. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  426. package/dist/unstable/encoding/Sse.js +1 -1
  427. package/dist/unstable/encoding/Sse.js.map +1 -1
  428. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  429. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  430. package/dist/unstable/eventlog/EventLog.js +2 -1
  431. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  432. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  433. package/dist/unstable/http/Cookies.d.ts +3 -3
  434. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  435. package/dist/unstable/http/Cookies.js +2 -2
  436. package/dist/unstable/http/Cookies.js.map +1 -1
  437. package/dist/unstable/http/Headers.d.ts.map +1 -1
  438. package/dist/unstable/http/Headers.js +27 -10
  439. package/dist/unstable/http/Headers.js.map +1 -1
  440. package/dist/unstable/http/HttpBody.d.ts +17 -2
  441. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  442. package/dist/unstable/http/HttpBody.js +28 -1
  443. package/dist/unstable/http/HttpBody.js.map +1 -1
  444. package/dist/unstable/http/HttpClient.d.ts +37 -13
  445. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  446. package/dist/unstable/http/HttpClient.js +4 -4
  447. package/dist/unstable/http/HttpClient.js.map +1 -1
  448. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  449. package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
  450. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  451. package/dist/unstable/http/HttpClientRequest.js +15 -3
  452. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  453. package/dist/unstable/http/HttpEffect.d.ts +3 -8
  454. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  455. package/dist/unstable/http/HttpEffect.js +42 -56
  456. package/dist/unstable/http/HttpEffect.js.map +1 -1
  457. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  458. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  459. package/dist/unstable/http/HttpMethod.js +3 -3
  460. package/dist/unstable/http/HttpMethod.js.map +1 -1
  461. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  462. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  463. package/dist/unstable/http/HttpMiddleware.js +8 -17
  464. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  465. package/dist/unstable/http/HttpServerError.d.ts +20 -33
  466. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  467. package/dist/unstable/http/HttpServerError.js +37 -44
  468. package/dist/unstable/http/HttpServerError.js.map +1 -1
  469. package/dist/unstable/http/HttpServerRequest.d.ts +1 -1
  470. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  471. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  472. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  473. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  474. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  475. package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
  476. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  477. package/dist/unstable/http/HttpServerResponse.js +3 -1
  478. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  479. package/dist/unstable/http/Multipart.d.ts +3 -3
  480. package/dist/unstable/http/UrlParams.d.ts +14 -6
  481. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  482. package/dist/unstable/http/UrlParams.js +1 -1
  483. package/dist/unstable/http/UrlParams.js.map +1 -1
  484. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  485. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  486. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  487. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  488. package/dist/unstable/httpapi/HttpApi.d.ts +3 -3
  489. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  490. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  491. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  492. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  493. package/dist/unstable/httpapi/HttpApiBuilder.js +23 -12
  494. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  495. package/dist/unstable/httpapi/HttpApiClient.d.ts +7 -2
  496. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  497. package/dist/unstable/httpapi/HttpApiClient.js +3 -3
  498. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  499. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +31 -44
  500. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  501. package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
  502. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  503. package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
  504. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  505. package/dist/unstable/httpapi/HttpApiError.js +29 -9
  506. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  507. package/dist/unstable/httpapi/HttpApiGroup.d.ts +3 -3
  508. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  509. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  510. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +4 -4
  511. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  512. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  513. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  514. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  515. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  516. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  517. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  518. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  519. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  520. package/dist/unstable/httpapi/OpenApi.js +32 -21
  521. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  522. package/dist/unstable/observability/Otlp.d.ts +12 -12
  523. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  524. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  525. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  526. package/dist/unstable/observability/OtlpExporter.js +1 -1
  527. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  528. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  529. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  530. package/dist/unstable/observability/OtlpLogger.js +7 -4
  531. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  532. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  533. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  534. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  535. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  536. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  537. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  538. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  539. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  540. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  541. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  542. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  543. package/dist/unstable/persistence/PersistedCache.js +2 -1
  544. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  545. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  546. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  547. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  548. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  549. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  550. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  551. package/dist/unstable/persistence/Persistence.js +2 -2
  552. package/dist/unstable/persistence/Persistence.js.map +1 -1
  553. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  554. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  555. package/dist/unstable/persistence/RateLimiter.js +1 -1
  556. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  557. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  558. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  559. package/dist/unstable/process/ChildProcess.js +1 -65
  560. package/dist/unstable/process/ChildProcess.js.map +1 -1
  561. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  562. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  563. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  564. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  565. package/dist/unstable/reactivity/Atom.d.ts +10 -10
  566. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  567. package/dist/unstable/reactivity/Atom.js +16 -13
  568. package/dist/unstable/reactivity/Atom.js.map +1 -1
  569. package/dist/unstable/reactivity/AtomHttpApi.d.ts +8 -8
  570. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  571. package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
  572. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  573. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  574. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  575. package/dist/unstable/reactivity/AtomRegistry.js +24 -7
  576. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  577. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  578. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  579. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  580. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  581. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  582. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  583. package/dist/unstable/reactivity/Hydration.js +76 -0
  584. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  585. package/dist/unstable/reactivity/index.d.ts +4 -0
  586. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  587. package/dist/unstable/reactivity/index.js +4 -0
  588. package/dist/unstable/reactivity/index.js.map +1 -1
  589. package/dist/unstable/rpc/Rpc.d.ts +4 -4
  590. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  591. package/dist/unstable/rpc/Rpc.js.map +1 -1
  592. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  593. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  594. package/dist/unstable/rpc/RpcClient.js +6 -13
  595. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  596. package/dist/unstable/rpc/RpcGroup.d.ts +2 -2
  597. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  598. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  599. package/dist/unstable/rpc/RpcMiddleware.d.ts +3 -3
  600. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  601. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  602. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  603. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  604. package/dist/unstable/rpc/RpcSchema.js +14 -0
  605. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  606. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  607. package/dist/unstable/rpc/RpcSerialization.js +34 -9
  608. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  609. package/dist/unstable/rpc/RpcServer.d.ts +0 -7
  610. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  611. package/dist/unstable/rpc/RpcServer.js +15 -15
  612. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  613. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  614. package/dist/unstable/rpc/Utils.js +2 -1
  615. package/dist/unstable/rpc/Utils.js.map +1 -1
  616. package/dist/unstable/schema/Model.d.ts +1 -1
  617. package/dist/unstable/schema/Model.d.ts.map +1 -1
  618. package/dist/unstable/schema/VariantSchema.d.ts +3 -3
  619. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  620. package/dist/unstable/schema/VariantSchema.js +3 -3
  621. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  622. package/dist/unstable/socket/Socket.d.ts +4 -4
  623. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  624. package/dist/unstable/socket/Socket.js +6 -5
  625. package/dist/unstable/socket/Socket.js.map +1 -1
  626. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  627. package/dist/unstable/sql/Migrator.d.ts +1 -1
  628. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  629. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  630. package/dist/unstable/sql/SqlError.d.ts +14 -14
  631. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  632. package/dist/unstable/sql/SqlError.js +9 -3
  633. package/dist/unstable/sql/SqlError.js.map +1 -1
  634. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  635. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  636. package/dist/unstable/sql/SqlModel.js +3 -3
  637. package/dist/unstable/sql/SqlModel.js.map +1 -1
  638. package/dist/unstable/sql/SqlSchema.d.ts +16 -5
  639. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  640. package/dist/unstable/sql/SqlSchema.js +17 -7
  641. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  642. package/dist/unstable/sql/Statement.js +0 -1
  643. package/dist/unstable/sql/Statement.js.map +1 -1
  644. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  645. package/dist/unstable/workers/Worker.js +2 -1
  646. package/dist/unstable/workers/Worker.js.map +1 -1
  647. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  648. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  649. package/dist/unstable/workflow/DurableClock.js +3 -3
  650. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  651. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  652. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  653. package/dist/unstable/workflow/Workflow.d.ts +3 -3
  654. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  655. package/dist/unstable/workflow/Workflow.js +1 -1
  656. package/dist/unstable/workflow/Workflow.js.map +1 -1
  657. package/dist/unstable/workflow/WorkflowEngine.d.ts +12 -1
  658. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  659. package/dist/unstable/workflow/WorkflowEngine.js +137 -1
  660. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  661. package/package.json +2 -2
  662. package/src/Array.ts +190 -342
  663. package/src/Cache.ts +9 -8
  664. package/src/Cause.ts +1 -1
  665. package/src/Channel.ts +554 -138
  666. package/src/Chunk.ts +81 -268
  667. package/src/Combiner.ts +280 -13
  668. package/src/Config.ts +183 -21
  669. package/src/Data.ts +538 -374
  670. package/src/DateTime.ts +24 -164
  671. package/src/Duration.ts +15 -15
  672. package/src/Effect.ts +991 -800
  673. package/src/Encoding.ts +879 -0
  674. package/src/Equal.ts +278 -111
  675. package/src/ErrorReporter.ts +459 -0
  676. package/src/Fiber.ts +9 -2
  677. package/src/FileSystem.ts +7 -8
  678. package/src/Filter.ts +48 -58
  679. package/src/Formatter.ts +253 -51
  680. package/src/Graph.ts +24 -11
  681. package/src/HashMap.ts +15 -14
  682. package/src/Iterable.ts +105 -50
  683. package/src/JsonSchema.ts +383 -10
  684. package/src/Latch.ts +112 -0
  685. package/src/Layer.ts +11 -15
  686. package/src/LayerMap.ts +5 -5
  687. package/src/LogLevel.ts +37 -0
  688. package/src/Logger.ts +33 -100
  689. package/src/ManagedRuntime.ts +1 -1
  690. package/src/Metric.ts +4 -4
  691. package/src/Optic.ts +948 -19
  692. package/src/Option.ts +30 -20
  693. package/src/Pipeable.ts +32 -1
  694. package/src/PlatformError.ts +5 -5
  695. package/src/Pool.ts +13 -11
  696. package/src/PubSub.ts +10 -9
  697. package/src/Pull.ts +1 -1
  698. package/src/Queue.ts +0 -1
  699. package/src/Random.ts +51 -14
  700. package/src/RcMap.ts +5 -5
  701. package/src/RcRef.ts +1 -1
  702. package/src/Record.ts +43 -152
  703. package/src/Reducer.ts +166 -7
  704. package/src/References.ts +4 -4
  705. package/src/Request.ts +3 -2
  706. package/src/RequestResolver.ts +9 -29
  707. package/src/Result.ts +13 -0
  708. package/src/Schedule.ts +318 -160
  709. package/src/Schema.ts +661 -116
  710. package/src/SchemaAST.ts +7 -6
  711. package/src/SchemaGetter.ts +12 -14
  712. package/src/SchemaParser.ts +11 -0
  713. package/src/SchemaRepresentation.ts +43 -24
  714. package/src/SchemaTransformation.ts +189 -4
  715. package/src/ScopedCache.ts +3 -3
  716. package/src/Semaphore.ts +356 -0
  717. package/src/ServiceMap.ts +47 -38
  718. package/src/Sink.ts +78 -26
  719. package/src/Stream.ts +566 -601
  720. package/src/Struct.ts +26 -0
  721. package/src/SubscriptionRef.ts +3 -2
  722. package/src/SynchronizedRef.ts +3 -2
  723. package/src/Trie.ts +18 -17
  724. package/src/TxChunk.ts +72 -53
  725. package/src/TxDeferred.ts +394 -0
  726. package/src/TxHashMap.ts +332 -285
  727. package/src/TxHashSet.ts +111 -116
  728. package/src/TxPriorityQueue.ts +767 -0
  729. package/src/TxPubSub.ts +789 -0
  730. package/src/TxQueue.ts +241 -251
  731. package/src/TxReentrantLock.ts +753 -0
  732. package/src/TxRef.ts +50 -38
  733. package/src/TxSemaphore.ts +29 -32
  734. package/src/TxSubscriptionRef.ts +639 -0
  735. package/src/Types.ts +78 -2
  736. package/src/index.ts +600 -21
  737. package/src/internal/core.ts +12 -5
  738. package/src/internal/dateTime.ts +9 -30
  739. package/src/internal/effect.ts +744 -265
  740. package/src/internal/hashMap.ts +9 -7
  741. package/src/internal/random.ts +20 -0
  742. package/src/internal/rcRef.ts +4 -3
  743. package/src/internal/request.ts +2 -2
  744. package/src/internal/schema/annotations.ts +2 -0
  745. package/src/internal/schema/schema.ts +1 -0
  746. package/src/internal/trie.ts +16 -9
  747. package/src/testing/TestClock.ts +13 -11
  748. package/src/testing/TestSchema.ts +10 -10
  749. package/src/unstable/ai/AiError.ts +97 -44
  750. package/src/unstable/ai/Chat.ts +12 -11
  751. package/src/unstable/ai/LanguageModel.ts +129 -25
  752. package/src/unstable/ai/McpSchema.ts +59 -13
  753. package/src/unstable/ai/McpServer.ts +48 -9
  754. package/src/unstable/ai/Model.ts +40 -9
  755. package/src/unstable/ai/Prompt.ts +37 -37
  756. package/src/unstable/ai/Response.ts +25 -25
  757. package/src/unstable/ai/Tool.ts +19 -13
  758. package/src/unstable/ai/index.ts +1 -1
  759. package/src/unstable/cli/CliOutput.ts +75 -6
  760. package/src/unstable/cli/Command.ts +501 -60
  761. package/src/unstable/cli/GlobalFlag.ts +243 -0
  762. package/src/unstable/cli/HelpDoc.ts +80 -2
  763. package/src/unstable/cli/index.ts +5 -0
  764. package/src/unstable/cli/internal/command.ts +50 -34
  765. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
  766. package/src/unstable/cli/internal/help.ts +146 -0
  767. package/src/unstable/cli/internal/parser.ts +33 -54
  768. package/src/unstable/cluster/ClusterCron.ts +2 -2
  769. package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -4
  770. package/src/unstable/cluster/Entity.ts +11 -10
  771. package/src/unstable/cluster/EntityResource.ts +4 -4
  772. package/src/unstable/cluster/Envelope.ts +1 -1
  773. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  774. package/src/unstable/cluster/MessageStorage.ts +3 -5
  775. package/src/unstable/cluster/Runners.ts +6 -5
  776. package/src/unstable/cluster/Sharding.ts +12 -10
  777. package/src/unstable/cluster/ShardingConfig.ts +30 -31
  778. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  779. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  780. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  781. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  782. package/src/unstable/encoding/Sse.ts +3 -5
  783. package/src/unstable/eventlog/EventLog.ts +2 -1
  784. package/src/unstable/http/Cookies.ts +3 -3
  785. package/src/unstable/http/Headers.ts +28 -13
  786. package/src/unstable/http/HttpBody.ts +42 -1
  787. package/src/unstable/http/HttpClient.ts +58 -23
  788. package/src/unstable/http/HttpClientRequest.ts +38 -13
  789. package/src/unstable/http/HttpEffect.ts +46 -68
  790. package/src/unstable/http/HttpMethod.ts +16 -4
  791. package/src/unstable/http/HttpMiddleware.ts +9 -24
  792. package/src/unstable/http/HttpServerError.ts +42 -45
  793. package/src/unstable/http/HttpServerRequest.ts +1 -1
  794. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  795. package/src/unstable/http/HttpServerResponse.ts +4 -2
  796. package/src/unstable/http/Multipart.ts +2 -2
  797. package/src/unstable/http/UrlParams.ts +20 -5
  798. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  799. package/src/unstable/httpapi/HttpApi.ts +5 -5
  800. package/src/unstable/httpapi/HttpApiBuilder.ts +77 -21
  801. package/src/unstable/httpapi/HttpApiClient.ts +14 -6
  802. package/src/unstable/httpapi/HttpApiEndpoint.ts +67 -83
  803. package/src/unstable/httpapi/HttpApiError.ts +30 -9
  804. package/src/unstable/httpapi/HttpApiGroup.ts +6 -6
  805. package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -4
  806. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  807. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  808. package/src/unstable/httpapi/OpenApi.ts +41 -23
  809. package/src/unstable/observability/Otlp.ts +12 -12
  810. package/src/unstable/observability/OtlpExporter.ts +3 -3
  811. package/src/unstable/observability/OtlpLogger.ts +13 -9
  812. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  813. package/src/unstable/observability/OtlpTracer.ts +4 -4
  814. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  815. package/src/unstable/persistence/Persistable.ts +2 -2
  816. package/src/unstable/persistence/PersistedCache.ts +20 -9
  817. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  818. package/src/unstable/persistence/Persistence.ts +3 -3
  819. package/src/unstable/persistence/RateLimiter.ts +4 -4
  820. package/src/unstable/process/ChildProcess.ts +6 -208
  821. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  822. package/src/unstable/reactivity/Atom.ts +27 -25
  823. package/src/unstable/reactivity/AtomHttpApi.ts +21 -20
  824. package/src/unstable/reactivity/AtomRegistry.ts +31 -7
  825. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  826. package/src/unstable/reactivity/Hydration.ts +112 -0
  827. package/src/unstable/reactivity/index.ts +5 -0
  828. package/src/unstable/rpc/Rpc.ts +6 -6
  829. package/src/unstable/rpc/RpcClient.ts +12 -54
  830. package/src/unstable/rpc/RpcGroup.ts +4 -4
  831. package/src/unstable/rpc/RpcMiddleware.ts +3 -3
  832. package/src/unstable/rpc/RpcSchema.ts +17 -0
  833. package/src/unstable/rpc/RpcSerialization.ts +44 -9
  834. package/src/unstable/rpc/RpcServer.ts +21 -30
  835. package/src/unstable/rpc/Utils.ts +2 -1
  836. package/src/unstable/schema/VariantSchema.ts +6 -6
  837. package/src/unstable/socket/Socket.ts +16 -17
  838. package/src/unstable/sql/SqlClient.ts +1 -1
  839. package/src/unstable/sql/SqlError.ts +11 -9
  840. package/src/unstable/sql/SqlModel.ts +5 -5
  841. package/src/unstable/sql/SqlSchema.ts +41 -25
  842. package/src/unstable/sql/Statement.ts +0 -1
  843. package/src/unstable/workers/Worker.ts +2 -1
  844. package/src/unstable/workflow/DurableClock.ts +8 -8
  845. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  846. package/src/unstable/workflow/Workflow.ts +6 -2
  847. package/src/unstable/workflow/WorkflowEngine.ts +185 -2
  848. package/dist/PartitionedSemaphore.d.ts +0 -52
  849. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  850. package/dist/PartitionedSemaphore.js.map +0 -1
  851. package/dist/encoding/Base64.d.ts +0 -67
  852. package/dist/encoding/Base64.d.ts.map +0 -1
  853. package/dist/encoding/Base64.js +0 -146
  854. package/dist/encoding/Base64.js.map +0 -1
  855. package/dist/encoding/Base64Url.d.ts +0 -60
  856. package/dist/encoding/Base64Url.d.ts.map +0 -1
  857. package/dist/encoding/Base64Url.js +0 -89
  858. package/dist/encoding/Base64Url.js.map +0 -1
  859. package/dist/encoding/EncodingError.d.ts +0 -31
  860. package/dist/encoding/EncodingError.d.ts.map +0 -1
  861. package/dist/encoding/EncodingError.js +0 -22
  862. package/dist/encoding/EncodingError.js.map +0 -1
  863. package/dist/encoding/Hex.d.ts +0 -61
  864. package/dist/encoding/Hex.d.ts.map +0 -1
  865. package/dist/encoding/Hex.js +0 -115
  866. package/dist/encoding/Hex.js.map +0 -1
  867. package/dist/encoding/index.d.ts +0 -26
  868. package/dist/encoding/index.d.ts.map +0 -1
  869. package/dist/encoding/index.js +0 -27
  870. package/dist/encoding/index.js.map +0 -1
  871. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  872. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  873. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  874. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  875. package/src/PartitionedSemaphore.ts +0 -182
  876. package/src/encoding/Base64.ts +0 -366
  877. package/src/encoding/Base64Url.ts +0 -104
  878. package/src/encoding/EncodingError.ts +0 -35
  879. package/src/encoding/Hex.ts +0 -390
  880. package/src/encoding/index.ts +0 -31
  881. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
@@ -1,29 +1,31 @@
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"
7
8
  import { dual } from "../../Function.ts"
8
9
  import type * as Layer from "../../Layer.ts"
10
+ import * as Option from "../../Option.ts"
9
11
  import type * as Path from "../../Path.ts"
10
12
  import type { Pipeable } from "../../Pipeable.ts"
11
13
  import * as Predicate from "../../Predicate.ts"
12
14
  import * as References from "../../References.ts"
13
15
  import * as Result from "../../Result.ts"
14
- import type * as ServiceMap from "../../ServiceMap.ts"
16
+ import * as ServiceMap from "../../ServiceMap.ts"
15
17
  import * as Terminal from "../../Terminal.ts"
16
- import type { Simplify } from "../../Types.ts"
18
+ import type { NoInfer, Simplify } from "../../Types.ts"
17
19
  import type { ChildProcessSpawner } from "../process/ChildProcessSpawner.ts"
18
20
  import * as CliError from "./CliError.ts"
19
21
  import * as CliOutput from "./CliOutput.ts"
20
- import { checkForDuplicateFlags, getHelpForCommandPath, makeCommand, toImpl, TypeId } from "./internal/command.ts"
21
- import * as CommandDescriptor from "./internal/completions/CommandDescriptor.ts"
22
- import * as Completions from "./internal/completions/Completions.ts"
22
+ import * as GlobalFlag from "./GlobalFlag.ts"
23
+ import { checkForDuplicateFlags, makeCommand, toImpl, TypeId } from "./internal/command.ts"
23
24
  import { parseConfig } from "./internal/config.ts"
25
+ import { getGlobalFlagsForCommandPath, getGlobalFlagsForCommandTree, getHelpForCommandPath } from "./internal/help.ts"
24
26
  import * as Lexer from "./internal/lexer.ts"
25
27
  import * as Parser from "./internal/parser.ts"
26
- import type * as Param from "./Param.ts"
28
+ import * as Param from "./Param.ts"
27
29
 
28
30
  /* ========================================================================== */
29
31
  /* Public Types */
@@ -94,16 +96,50 @@ export interface Command<Name extends string, Input, E = never, R = never> exten
94
96
  */
95
97
  readonly description: string | undefined
96
98
 
99
+ /**
100
+ * An optional short description used when listing subcommands.
101
+ */
102
+ readonly shortDescription: string | undefined
103
+
104
+ /**
105
+ * An optional alias that can be used as a shorter command name.
106
+ */
107
+ readonly alias: string | undefined
108
+
109
+ /**
110
+ * Optional usage examples for the command.
111
+ */
112
+ readonly examples: ReadonlyArray<Command.Example>
113
+
97
114
  /**
98
115
  * The subcommands available under this command.
99
116
  */
100
- readonly subcommands: ReadonlyArray<Command.Any>
117
+ readonly subcommands: ReadonlyArray<{
118
+ readonly group: string | undefined
119
+ readonly commands: NonEmptyReadonlyArray<Command.Any>
120
+ }>
121
+
122
+ /**
123
+ * Custom annotations associated with this command.
124
+ */
125
+ readonly annotations: ServiceMap.ServiceMap<never>
101
126
  }
102
127
 
103
128
  /**
104
129
  * @since 4.0.0
105
130
  */
106
131
  export declare namespace Command {
132
+ /**
133
+ * Represents a concrete usage example for a command.
134
+ *
135
+ * @since 4.0.0
136
+ * @category models
137
+ */
138
+ export interface Example {
139
+ readonly command: string
140
+ readonly description?: string | undefined
141
+ }
142
+
107
143
  /**
108
144
  * Configuration object for defining command flags, arguments, and nested structures.
109
145
  *
@@ -209,6 +245,25 @@ export declare namespace Command {
209
245
  * @category models
210
246
  */
211
247
  export type Any = Command<string, unknown, unknown, unknown>
248
+
249
+ /**
250
+ * A grouped set of subcommands used by `Command.withSubcommands`.
251
+ *
252
+ * @since 4.0.0
253
+ * @category models
254
+ */
255
+ export interface SubcommandGroup<Commands extends ReadonlyArray<Any> = ReadonlyArray<Any>> {
256
+ readonly group: string
257
+ readonly commands: Commands
258
+ }
259
+
260
+ /**
261
+ * Entry type accepted by `Command.withSubcommands`.
262
+ *
263
+ * @since 4.0.0
264
+ * @category models
265
+ */
266
+ export type SubcommandEntry = Any | SubcommandGroup<ReadonlyArray<Any>>
212
267
  }
213
268
 
214
269
  /**
@@ -533,7 +588,7 @@ export const make: {
533
588
  name: Name,
534
589
  config: Config,
535
590
  handler: (config: Command.Config.Infer<Config>) => Effect.Effect<void, E, R>
536
- ): Command<Name, Command.Config.Infer<Config>, E, R>
591
+ ): Command<Name, Command.Config.Infer<Config>, E, Exclude<R, GlobalFlag.BuiltInSettingContext>>
537
592
  } = ((
538
593
  name: string,
539
594
  config?: Command.Config,
@@ -606,7 +661,7 @@ export const withHandler: {
606
661
  */
607
662
  <A, R, E>(handler: (value: A) => Effect.Effect<void, E, R>): <Name extends string, XR, XE>(
608
663
  self: Command<Name, A, XE, XR>
609
- ) => Command<Name, A, E, R>
664
+ ) => Command<Name, A, E, Exclude<R, GlobalFlag.BuiltInSettingContext>>
610
665
  /* ========================================================================== */
611
666
  /* Combinators */
612
667
  /* ========================================================================== */
@@ -638,11 +693,63 @@ export const withHandler: {
638
693
  <Name extends string, A, XR, XE, R, E>(
639
694
  self: Command<Name, A, XE, XR>,
640
695
  handler: (value: A) => Effect.Effect<void, E, R>
641
- ): Command<Name, A, E, R>
696
+ ): Command<Name, A, E, Exclude<R, GlobalFlag.BuiltInSettingContext>>
642
697
  } = dual(2, <Name extends string, A, XR, XE, R, E>(
643
698
  self: Command<Name, A, XE, XR>,
644
699
  handler: (value: A) => Effect.Effect<void, E, R>
645
- ): Command<Name, A, E, R> => makeCommand({ ...toImpl(self), handle: handler }))
700
+ ): Command<Name, A, E, Exclude<R, GlobalFlag.BuiltInSettingContext>> =>
701
+ makeCommand({ ...toImpl(self), handle: handler }))
702
+
703
+ interface SubcommandGroupInternal {
704
+ readonly group: string | undefined
705
+ readonly commands: NonEmptyReadonlyArray<Command.Any>
706
+ }
707
+
708
+ const normalizeSubcommandEntries = (
709
+ entries: ReadonlyArray<Command.SubcommandEntry>
710
+ ): {
711
+ readonly flat: ReadonlyArray<Command.Any>
712
+ readonly groups: ReadonlyArray<SubcommandGroupInternal>
713
+ } => {
714
+ const flat: Array<Command.Any> = []
715
+ const grouped = new Map<string | undefined, NonEmptyArray<Command.Any>>()
716
+
717
+ const addToGroup = (group: string | undefined, command: Command.Any): void => {
718
+ flat.push(command)
719
+ const existing = grouped.get(group)
720
+ if (existing) {
721
+ existing.push(command)
722
+ } else {
723
+ grouped.set(group, [command])
724
+ }
725
+ }
726
+
727
+ for (const entry of entries) {
728
+ if (isCommand(entry)) {
729
+ addToGroup(undefined, entry)
730
+ continue
731
+ }
732
+ for (const command of entry.commands) {
733
+ addToGroup(entry.group, command)
734
+ }
735
+ }
736
+
737
+ const groups: Array<SubcommandGroupInternal> = []
738
+ const ungroupedCommands = grouped.get(undefined)
739
+
740
+ if (ungroupedCommands && ungroupedCommands.length > 0) {
741
+ groups.push({ group: undefined, commands: ungroupedCommands })
742
+ }
743
+
744
+ for (const [group, commands] of grouped) {
745
+ if (group === undefined) {
746
+ continue
747
+ }
748
+ groups.push({ group, commands })
749
+ }
750
+
751
+ return { flat, groups }
752
+ }
646
753
 
647
754
  /**
648
755
  * Adds subcommands to a command, creating a hierarchical command structure.
@@ -717,7 +824,7 @@ export const withSubcommands: {
717
824
  * @since 4.0.0
718
825
  * @category combinators
719
826
  */
720
- <const Subcommands extends ReadonlyArray<Command<any, any, any, any>>>(subcommands: Subcommands): <Name extends string, Input, E, R>(
827
+ <const Subcommands extends ReadonlyArray<Command.SubcommandEntry>>(subcommands: Subcommands): <Name extends string, Input, E, R>(
721
828
  self: Command<Name, Input, E, R>
722
829
  ) => Command<
723
830
  Name,
@@ -766,7 +873,7 @@ export const withSubcommands: {
766
873
  Input,
767
874
  E,
768
875
  R,
769
- const Subcommands extends ReadonlyArray<Command<any, any, any, any>>
876
+ const Subcommands extends ReadonlyArray<Command.SubcommandEntry>
770
877
  >(self: Command<Name, Input, E, R>, subcommands: Subcommands): Command<
771
878
  Name,
772
879
  Input,
@@ -778,7 +885,7 @@ export const withSubcommands: {
778
885
  Input,
779
886
  E,
780
887
  R,
781
- const Subcommands extends ReadonlyArray<Command<any, any, any, any>>
888
+ const Subcommands extends ReadonlyArray<Command.SubcommandEntry>
782
889
  >(
783
890
  self: Command<Name, Input, E, R>,
784
891
  subcommands: Subcommands
@@ -788,10 +895,11 @@ export const withSubcommands: {
788
895
  E | ExtractSubcommandErrors<Subcommands>,
789
896
  R | Exclude<ExtractSubcommandContext<Subcommands>, CommandContext<Name>>
790
897
  > => {
791
- checkForDuplicateFlags(self, subcommands)
898
+ const normalized = normalizeSubcommandEntries(subcommands)
899
+ checkForDuplicateFlags(self, normalized.flat)
792
900
 
793
901
  const impl = toImpl(self)
794
- const byName = new Map(subcommands.map((s) => [s.name, toImpl(s)] as const))
902
+ const byName = new Map(normalized.flat.map((s) => [s.name, toImpl(s)] as const))
795
903
 
796
904
  // Internal type for routing - not exposed in public type
797
905
  type SubcommandInfo = { readonly name: string; readonly result: unknown }
@@ -832,16 +940,69 @@ export const withSubcommands: {
832
940
  name: impl.name,
833
941
  config: impl.config,
834
942
  description: impl.description,
943
+ shortDescription: impl.shortDescription,
944
+ alias: impl.alias,
945
+ annotations: impl.annotations,
946
+ globalFlags: impl.globalFlags,
947
+ examples: impl.examples,
835
948
  service: impl.service,
836
- subcommands,
949
+ subcommands: normalized.groups,
837
950
  parse,
838
951
  handle
839
952
  })
840
953
  })
841
954
 
955
+ /**
956
+ * Declares global flags for a command scope.
957
+ *
958
+ * Declared global flags apply to the command and all of its descendants.
959
+ *
960
+ * @since 4.0.0
961
+ * @category combinators
962
+ */
963
+ export const withGlobalFlags: {
964
+ /**
965
+ * Declares global flags for a command scope.
966
+ *
967
+ * Declared global flags apply to the command and all of its descendants.
968
+ *
969
+ * @since 4.0.0
970
+ * @category combinators
971
+ */
972
+ <const GlobalFlags extends ReadonlyArray<GlobalFlag.GlobalFlag<any>>>(globalFlags: GlobalFlags): <Name extends string, Input, E, R>(
973
+ self: Command<Name, Input, E, R>
974
+ ) => Command<Name, Input, E, Exclude<R, ExtractGlobalFlagContext<GlobalFlags>>>
975
+ /**
976
+ * Declares global flags for a command scope.
977
+ *
978
+ * Declared global flags apply to the command and all of its descendants.
979
+ *
980
+ * @since 4.0.0
981
+ * @category combinators
982
+ */
983
+ <Name extends string, Input, E, R, const GlobalFlags extends ReadonlyArray<GlobalFlag.GlobalFlag<any>>>(self: Command<Name, Input, E, R>, globalFlags: GlobalFlags): Command<Name, Input, E, Exclude<R, ExtractGlobalFlagContext<GlobalFlags>>>
984
+ } = dual(
985
+ 2,
986
+ <Name extends string, Input, E, R, const GlobalFlags extends ReadonlyArray<GlobalFlag.GlobalFlag<any>>>(
987
+ self: Command<Name, Input, E, R>,
988
+ globalFlags: GlobalFlags
989
+ ): Command<Name, Input, E, Exclude<R, ExtractGlobalFlagContext<GlobalFlags>>> => {
990
+ const impl = toImpl(self)
991
+ const next = Array.from(new Set([...impl.globalFlags, ...globalFlags]))
992
+ return makeCommand({ ...impl, globalFlags: next })
993
+ }
994
+ )
995
+
842
996
  // 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
997
+ type ExtractGlobalFlagContext<T extends ReadonlyArray<GlobalFlag.GlobalFlag<any>>> = T[number] extends infer F
998
+ ? F extends GlobalFlag.Setting<infer Id, any> ? GlobalFlag.Setting.Identifier<Id>
999
+ : never
1000
+ : never
1001
+ type ExtractSubcommand<T> = T extends Command<any, any, any, any> ? T
1002
+ : T extends Command.SubcommandGroup<infer Commands> ? Commands[number]
1003
+ : never
1004
+ type ExtractSubcommandErrors<T extends ReadonlyArray<Command.SubcommandEntry>> = Error<ExtractSubcommand<T[number]>>
1005
+ type ExtractSubcommandContext<T extends ReadonlyArray<Command.SubcommandEntry>> = ExtractSubcommand<T[number]> extends
845
1006
  Command<any, any, any, infer R> ? R : never
846
1007
 
847
1008
  /**
@@ -926,6 +1087,223 @@ export const withDescription: {
926
1087
  description: string
927
1088
  ) => makeCommand({ ...toImpl(self), description }))
928
1089
 
1090
+ /**
1091
+ * Sets a short description for a command.
1092
+ *
1093
+ * Short descriptions are used when listing subcommands in help output and
1094
+ * shell completions. If no short description is provided, the full
1095
+ * `description` is used as a fallback.
1096
+ *
1097
+ * @since 4.0.0
1098
+ * @category combinators
1099
+ */
1100
+ export const withShortDescription: {
1101
+ /**
1102
+ * Sets a short description for a command.
1103
+ *
1104
+ * Short descriptions are used when listing subcommands in help output and
1105
+ * shell completions. If no short description is provided, the full
1106
+ * `description` is used as a fallback.
1107
+ *
1108
+ * @since 4.0.0
1109
+ * @category combinators
1110
+ */
1111
+ (shortDescription: string): <const Name extends string, Input, E, R>(
1112
+ self: Command<Name, Input, E, R>
1113
+ ) => Command<Name, Input, E, R>
1114
+ /**
1115
+ * Sets a short description for a command.
1116
+ *
1117
+ * Short descriptions are used when listing subcommands in help output and
1118
+ * shell completions. If no short description is provided, the full
1119
+ * `description` is used as a fallback.
1120
+ *
1121
+ * @since 4.0.0
1122
+ * @category combinators
1123
+ */
1124
+ <const Name extends string, Input, E, R>(self: Command<Name, Input, E, R>, shortDescription: string): Command<Name, Input, E, R>
1125
+ } = dual(2, <const Name extends string, Input, E, R>(
1126
+ self: Command<Name, Input, E, R>,
1127
+ shortDescription: string
1128
+ ) => makeCommand({ ...toImpl(self), shortDescription }))
1129
+
1130
+ /**
1131
+ * Sets an alias for a command.
1132
+ *
1133
+ * Aliases are accepted as alternate subcommand names during parsing and are
1134
+ * shown in help output as `name, alias`.
1135
+ *
1136
+ * @since 4.0.0
1137
+ * @category combinators
1138
+ */
1139
+ export const withAlias: {
1140
+ /**
1141
+ * Sets an alias for a command.
1142
+ *
1143
+ * Aliases are accepted as alternate subcommand names during parsing and are
1144
+ * shown in help output as `name, alias`.
1145
+ *
1146
+ * @since 4.0.0
1147
+ * @category combinators
1148
+ */
1149
+ (alias: string): <const Name extends string, Input, E, R>(
1150
+ self: Command<Name, Input, E, R>
1151
+ ) => Command<Name, Input, E, R>
1152
+ /**
1153
+ * Sets an alias for a command.
1154
+ *
1155
+ * Aliases are accepted as alternate subcommand names during parsing and are
1156
+ * shown in help output as `name, alias`.
1157
+ *
1158
+ * @since 4.0.0
1159
+ * @category combinators
1160
+ */
1161
+ <const Name extends string, Input, E, R>(self: Command<Name, Input, E, R>, alias: string): Command<Name, Input, E, R>
1162
+ } = dual(2, <const Name extends string, Input, E, R>(
1163
+ self: Command<Name, Input, E, R>,
1164
+ alias: string
1165
+ ) => makeCommand({ ...toImpl(self), alias }))
1166
+
1167
+ /**
1168
+ * Adds a custom annotation to a command.
1169
+ *
1170
+ * @since 4.0.0
1171
+ * @category combinators
1172
+ */
1173
+ export const annotate: {
1174
+ /**
1175
+ * Adds a custom annotation to a command.
1176
+ *
1177
+ * @since 4.0.0
1178
+ * @category combinators
1179
+ */
1180
+ <I, S>(service: ServiceMap.Key<I, S>, value: NoInfer<S>): <Name extends string, Input, E, R>(
1181
+ self: Command<Name, Input, E, R>
1182
+ ) => Command<Name, Input, E, R>
1183
+ /**
1184
+ * Adds a custom annotation to a command.
1185
+ *
1186
+ * @since 4.0.0
1187
+ * @category combinators
1188
+ */
1189
+ <Name extends string, Input, E, R, I, S>(
1190
+ self: Command<Name, Input, E, R>,
1191
+ service: ServiceMap.Key<I, S>,
1192
+ value: NoInfer<S>
1193
+ ): Command<Name, Input, E, R>
1194
+ } = dual(3, <Name extends string, Input, E, R, I, S>(
1195
+ self: Command<Name, Input, E, R>,
1196
+ service: ServiceMap.Key<I, S>,
1197
+ value: NoInfer<S>
1198
+ ) => {
1199
+ const impl = toImpl(self)
1200
+ return makeCommand({ ...impl, annotations: ServiceMap.add(impl.annotations, service, value) })
1201
+ })
1202
+
1203
+ /**
1204
+ * Merges a ServiceMap of annotations into a command.
1205
+ *
1206
+ * @since 4.0.0
1207
+ * @category combinators
1208
+ */
1209
+ export const annotateMerge: {
1210
+ /**
1211
+ * Merges a ServiceMap of annotations into a command.
1212
+ *
1213
+ * @since 4.0.0
1214
+ * @category combinators
1215
+ */
1216
+ <I>(annotations: ServiceMap.ServiceMap<I>): <Name extends string, Input, E, R>(
1217
+ self: Command<Name, Input, E, R>
1218
+ ) => Command<Name, Input, E, R>
1219
+ /**
1220
+ * Merges a ServiceMap of annotations into a command.
1221
+ *
1222
+ * @since 4.0.0
1223
+ * @category combinators
1224
+ */
1225
+ <Name extends string, Input, E, R, I>(self: Command<Name, Input, E, R>, annotations: ServiceMap.ServiceMap<I>): Command<Name, Input, E, R>
1226
+ } = dual(2, <Name extends string, Input, E, R, I>(
1227
+ self: Command<Name, Input, E, R>,
1228
+ annotations: ServiceMap.ServiceMap<I>
1229
+ ) => {
1230
+ const impl = toImpl(self)
1231
+ return makeCommand({ ...impl, annotations: ServiceMap.merge(impl.annotations, annotations) })
1232
+ })
1233
+
1234
+ /**
1235
+ * Sets usage examples for a command.
1236
+ *
1237
+ * Examples are exposed in structured `HelpDoc` data and rendered by the
1238
+ * default formatter in an `EXAMPLES` section.
1239
+ *
1240
+ * @example
1241
+ * ```ts
1242
+ * import { Command } from "effect/unstable/cli"
1243
+ *
1244
+ * const login = Command.make("login").pipe(
1245
+ * Command.withExamples([
1246
+ * { command: "myapp login", description: "Log in with browser OAuth" },
1247
+ * { command: "myapp login --token sbp_abc123", description: "Log in with a token" }
1248
+ * ])
1249
+ * )
1250
+ * ```
1251
+ *
1252
+ * @since 4.0.0
1253
+ * @category combinators
1254
+ */
1255
+ export const withExamples: {
1256
+ /**
1257
+ * Sets usage examples for a command.
1258
+ *
1259
+ * Examples are exposed in structured `HelpDoc` data and rendered by the
1260
+ * default formatter in an `EXAMPLES` section.
1261
+ *
1262
+ * @example
1263
+ * ```ts
1264
+ * import { Command } from "effect/unstable/cli"
1265
+ *
1266
+ * const login = Command.make("login").pipe(
1267
+ * Command.withExamples([
1268
+ * { command: "myapp login", description: "Log in with browser OAuth" },
1269
+ * { command: "myapp login --token sbp_abc123", description: "Log in with a token" }
1270
+ * ])
1271
+ * )
1272
+ * ```
1273
+ *
1274
+ * @since 4.0.0
1275
+ * @category combinators
1276
+ */
1277
+ (examples: ReadonlyArray<Command.Example>): <const Name extends string, Input, E, R>(
1278
+ self: Command<Name, Input, E, R>
1279
+ ) => Command<Name, Input, E, R>
1280
+ /**
1281
+ * Sets usage examples for a command.
1282
+ *
1283
+ * Examples are exposed in structured `HelpDoc` data and rendered by the
1284
+ * default formatter in an `EXAMPLES` section.
1285
+ *
1286
+ * @example
1287
+ * ```ts
1288
+ * import { Command } from "effect/unstable/cli"
1289
+ *
1290
+ * const login = Command.make("login").pipe(
1291
+ * Command.withExamples([
1292
+ * { command: "myapp login", description: "Log in with browser OAuth" },
1293
+ * { command: "myapp login --token sbp_abc123", description: "Log in with a token" }
1294
+ * ])
1295
+ * )
1296
+ * ```
1297
+ *
1298
+ * @since 4.0.0
1299
+ * @category combinators
1300
+ */
1301
+ <const Name extends string, Input, E, R>(self: Command<Name, Input, E, R>, examples: ReadonlyArray<Command.Example>): Command<Name, Input, E, R>
1302
+ } = dual(2, <const Name extends string, Input, E, R>(
1303
+ self: Command<Name, Input, E, R>,
1304
+ examples: ReadonlyArray<Command.Example>
1305
+ ) => makeCommand({ ...toImpl(self), examples }))
1306
+
929
1307
  /* ========================================================================== */
930
1308
  /* Providing Services */
931
1309
  /* ========================================================================== */
@@ -1088,10 +1466,7 @@ export const provideSync: {
1088
1466
  * @since 4.0.0
1089
1467
  * @category providing services
1090
1468
  */
1091
- <I, S, Input>(
1092
- service: ServiceMap.Service<I, S>,
1093
- implementation: S | ((input: Input) => S)
1094
- ): <const Name extends string, E, R>(
1469
+ <I, S, Input>(service: ServiceMap.Key<I, S>, implementation: S | ((input: Input) => S)): <const Name extends string, E, R>(
1095
1470
  self: Command<Name, Input, E, R>
1096
1471
  ) => Command<Name, Input, E, Exclude<R, I>>
1097
1472
  /**
@@ -1103,12 +1478,12 @@ export const provideSync: {
1103
1478
  */
1104
1479
  <const Name extends string, Input, E, R, I, S>(
1105
1480
  self: Command<Name, Input, E, R>,
1106
- service: ServiceMap.Service<I, S>,
1481
+ service: ServiceMap.Key<I, S>,
1107
1482
  implementation: S | ((input: Input) => S)
1108
1483
  ): Command<Name, Input, E, Exclude<R, I>>
1109
1484
  } = dual(3, <const Name extends string, Input, E, R, I, S>(
1110
1485
  self: Command<Name, Input, E, R>,
1111
- service: ServiceMap.Service<I, S>,
1486
+ service: ServiceMap.Key<I, S>,
1112
1487
  implementation: S | ((input: Input) => S)
1113
1488
  ) =>
1114
1489
  mapHandler(self, (handler, input) =>
@@ -1134,7 +1509,7 @@ export const provideEffect: {
1134
1509
  * @category providing services
1135
1510
  */
1136
1511
  <I, S, Input, R2, E2>(
1137
- service: ServiceMap.Service<I, S>,
1512
+ service: ServiceMap.Key<I, S>,
1138
1513
  effect: Effect.Effect<S, E2, R2> | ((input: Input) => Effect.Effect<S, E2, R2>)
1139
1514
  ): <const Name extends string, E, R>(
1140
1515
  self: Command<Name, Input, E, R>
@@ -1148,12 +1523,12 @@ export const provideEffect: {
1148
1523
  */
1149
1524
  <const Name extends string, Input, E, R, I, S, R2, E2>(
1150
1525
  self: Command<Name, Input, E, R>,
1151
- service: ServiceMap.Service<I, S>,
1526
+ service: ServiceMap.Key<I, S>,
1152
1527
  effect: Effect.Effect<S, E2, R2> | ((input: Input) => Effect.Effect<S, E2, R2>)
1153
1528
  ): Command<Name, Input, E | E2, Exclude<R, I> | R2>
1154
1529
  } = dual(3, <const Name extends string, Input, E, R, I, S, R2, E2>(
1155
1530
  self: Command<Name, Input, E, R>,
1156
- service: ServiceMap.Service<I, S>,
1531
+ service: ServiceMap.Key<I, S>,
1157
1532
  effect: Effect.Effect<S, E2, R2> | ((input: Input) => Effect.Effect<S, E2, R2>)
1158
1533
  ) =>
1159
1534
  mapHandler(
@@ -1203,6 +1578,45 @@ export const provideEffectDiscard: {
1203
1578
  /* Execution */
1204
1579
  /* ========================================================================== */
1205
1580
 
1581
+ const getOutOfScopeGlobalFlagErrors = (
1582
+ allFlags: ReadonlyArray<GlobalFlag.GlobalFlag<any>>,
1583
+ activeFlags: ReadonlyArray<GlobalFlag.GlobalFlag<any>>,
1584
+ flagMap: Record<string, ReadonlyArray<string>>,
1585
+ commandPath: ReadonlyArray<string>
1586
+ ): ReadonlyArray<CliError.CliError> => {
1587
+ const activeSet = new Set(activeFlags)
1588
+ const errors: Array<CliError.CliError> = []
1589
+ const seen = new Set<string>()
1590
+
1591
+ for (const flag of allFlags) {
1592
+ if (activeSet.has(flag)) {
1593
+ continue
1594
+ }
1595
+
1596
+ const singles = Param.extractSingleParams(flag.flag)
1597
+ for (const single of singles) {
1598
+ const entries = flagMap[single.name]
1599
+ if (!entries || entries.length === 0) {
1600
+ continue
1601
+ }
1602
+ const option = `--${single.name}`
1603
+ if (seen.has(option)) {
1604
+ continue
1605
+ }
1606
+ seen.add(option)
1607
+ errors.push(
1608
+ new CliError.UnrecognizedOption({
1609
+ option,
1610
+ suggestions: [],
1611
+ command: commandPath
1612
+ })
1613
+ )
1614
+ }
1615
+ }
1616
+
1617
+ return errors
1618
+ }
1619
+
1206
1620
  const showHelp = <Name extends string, Input, E, R>(
1207
1621
  command: Command<Name, Input, E, R>,
1208
1622
  commandPath: ReadonlyArray<string>,
@@ -1210,7 +1624,7 @@ const showHelp = <Name extends string, Input, E, R>(
1210
1624
  ): Effect.Effect<void, never, Environment> =>
1211
1625
  Effect.gen(function*() {
1212
1626
  const formatter = yield* CliOutput.Formatter
1213
- const helpDoc = getHelpForCommandPath(command, commandPath)
1627
+ const helpDoc = yield* getHelpForCommandPath(command, commandPath, GlobalFlag.BuiltIns)
1214
1628
  yield* Console.log(formatter.formatHelpDoc(helpDoc))
1215
1629
  if (errors && errors.length > 0) {
1216
1630
  yield* Console.error(formatter.formatErrors(errors))
@@ -1266,12 +1680,13 @@ export const run: {
1266
1680
  * @since 4.0.0
1267
1681
  * @category command execution
1268
1682
  */
1269
- <Name extends string, Input, E, R>(
1270
- command: Command<Name, Input, E, R>,
1683
+ (
1271
1684
  config: {
1272
1685
  readonly version: string
1273
1686
  }
1274
- ): Effect.Effect<void, E | CliError.CliError, R | Environment>
1687
+ ): <Name extends string, Input, E, R>(
1688
+ command: Command<Name, Input, E, R>
1689
+ ) => Effect.Effect<void, E | CliError.CliError, R | Environment>
1275
1690
  /**
1276
1691
  * Runs a command with the provided input arguments.
1277
1692
  *
@@ -1296,13 +1711,12 @@ export const run: {
1296
1711
  * @since 4.0.0
1297
1712
  * @category command execution
1298
1713
  */
1299
- (
1714
+ <Name extends string, Input, E, R>(
1715
+ command: Command<Name, Input, E, R>,
1300
1716
  config: {
1301
1717
  readonly version: string
1302
1718
  }
1303
- ): <Name extends string, Input, E, R>(
1304
- command: Command<Name, Input, E, R>
1305
- ) => Effect.Effect<void, E | CliError.CliError, R | Environment>
1719
+ ): Effect.Effect<void, E | CliError.CliError, R | Environment>
1306
1720
  } = dual(2, <Name extends string, Input, E, R>(
1307
1721
  command: Command<Name, Input, E, R>,
1308
1722
  config: {
@@ -1365,29 +1779,45 @@ export const runWith = <const Name extends string, Input, E, R>(
1365
1779
  const commandImpl = toImpl(command)
1366
1780
  return Effect.fnUntraced(
1367
1781
  function*(args: ReadonlyArray<string>) {
1368
- // Lex and extract built-in flags
1369
1782
  const { tokens, trailingOperands } = Lexer.lex(args)
1370
- const { completions, help, logLevel, remainder, version } = yield* Parser.extractBuiltInOptions(tokens)
1783
+
1784
+ // 1. Collect known global flags from the command tree
1785
+ const allFlags = getGlobalFlagsForCommandTree(command, GlobalFlag.BuiltIns)
1786
+
1787
+ // 2. Extract global flag tokens
1788
+ const allFlagParams = allFlags.flatMap((f) => Param.extractSingleParams(f.flag))
1789
+ const globalRegistry = Parser.createFlagRegistry(allFlagParams.filter(Param.isFlagParam))
1790
+ const { flagMap, remainder } = Parser.consumeKnownFlags(tokens, globalRegistry)
1791
+ const emptyArgs: Param.ParsedArgs = { flags: flagMap, arguments: [] }
1792
+
1793
+ // 3. Parse command arguments from remaining tokens
1371
1794
  const parsedArgs = yield* Parser.parseArgs({ tokens: remainder, trailingOperands }, command)
1372
1795
  const commandPath = [command.name, ...Parser.getCommandPath(parsedArgs)] as const
1373
- const formatter = yield* CliOutput.Formatter
1796
+ const handlerCtx: GlobalFlag.HandlerContext = { command, commandPath, version: config.version }
1797
+ const activeFlags = getGlobalFlagsForCommandPath(command, commandPath, GlobalFlag.BuiltIns)
1374
1798
 
1375
- // Handle built-in flags (early exits)
1376
- if (help) {
1377
- yield* Console.log(formatter.formatHelpDoc(getHelpForCommandPath(command, commandPath)))
1378
- return
1379
- }
1380
- if (completions !== undefined) {
1381
- const descriptor = CommandDescriptor.fromCommand(command)
1382
- yield* Console.log(Completions.generate(command.name, completions, descriptor))
1383
- return
1799
+ // 4. Reject globals that were passed outside the active command scope
1800
+ const outOfScopeErrors = getOutOfScopeGlobalFlagErrors(allFlags, activeFlags, flagMap, commandPath)
1801
+ if (outOfScopeErrors.length > 0) {
1802
+ const parseErrors = parsedArgs.errors ?? []
1803
+ return yield* showHelp(command, commandPath, [...outOfScopeErrors, ...parseErrors])
1384
1804
  }
1385
- if (version) {
1386
- yield* Console.log(formatter.formatVersion(command.name, config.version))
1805
+
1806
+ // 5. Process action flags — first present action wins, then exit
1807
+ for (const flag of activeFlags) {
1808
+ if (flag._tag !== "Action") continue
1809
+ const singles = Param.extractSingleParams(flag.flag)
1810
+ const hasEntry = singles.some((s) => {
1811
+ const entries = flagMap[s.name]
1812
+ return entries !== undefined && entries.length > 0
1813
+ })
1814
+ if (!hasEntry) continue
1815
+ const [, value] = yield* flag.flag.parse(emptyArgs)
1816
+ yield* flag.run(value, handlerCtx)
1387
1817
  return
1388
1818
  }
1389
1819
 
1390
- // Handle parsing errors
1820
+ // 6. Handle parsing errors
1391
1821
  if (parsedArgs.errors && parsedArgs.errors.length > 0) {
1392
1822
  return yield* showHelp(command, commandPath, parsedArgs.errors)
1393
1823
  }
@@ -1395,24 +1825,35 @@ export const runWith = <const Name extends string, Input, E, R>(
1395
1825
  if (parseResult._tag === "Failure") {
1396
1826
  return yield* showHelp(command, commandPath, [parseResult.failure])
1397
1827
  }
1398
- const parsed = parseResult.success
1399
1828
 
1400
- // Create and run the execution program
1401
- const program = commandImpl.handle(parsed, [command.name])
1402
- const withLogLevel = logLevel !== undefined
1403
- ? Effect.provideService(program, References.MinimumLogLevel, logLevel)
1404
- : program
1829
+ // 7. Provide setting values
1830
+ let program = commandImpl.handle(parseResult.success, [command.name])
1831
+ for (const flag of activeFlags) {
1832
+ if (flag._tag !== "Setting") continue
1833
+ const [, value] = yield* flag.flag.parse(emptyArgs)
1834
+ program = Effect.provideService(program, flag, value)
1835
+ }
1836
+
1837
+ const [, logLevel] = yield* GlobalFlag.LogLevel.flag.parse(emptyArgs)
1838
+ program = Effect.provideService(program, GlobalFlag.LogLevel, logLevel)
1839
+
1840
+ // 8. Apply built-in setting behavior
1841
+ const services = Option.match(logLevel, {
1842
+ onNone: () => ServiceMap.empty(),
1843
+ onSome: (level) => ServiceMap.make(References.MinimumLogLevel, level)
1844
+ })
1405
1845
 
1406
- yield* withLogLevel
1846
+ // 9. Run command handler with composed context
1847
+ yield* Effect.provideServices(program, services)
1407
1848
  },
1408
- Effect.catchIf(
1849
+ Effect.catchFilter(
1409
1850
  ((error: any) =>
1410
1851
  CliError.isCliError(error) && error._tag === "ShowHelp"
1411
1852
  ? Result.succeed(error)
1412
1853
  : Result.fail(error)) as any,
1413
1854
  (error: any) => showHelp(command, error.commandPath)
1414
1855
  ),
1415
- Effect.catchIf(
1856
+ Effect.catchFilter(
1416
1857
  (e) =>
1417
1858
  Terminal.isQuitError(e)
1418
1859
  ? Result.succeed(e)