effect 4.0.0-beta.4 → 4.0.0-beta.40

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 (1222) hide show
  1. package/dist/Array.d.ts +213 -385
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +149 -102
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +46 -45
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +35 -38
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +39 -32
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +32 -29
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Brand.d.ts +1 -1
  14. package/dist/Brand.d.ts.map +1 -1
  15. package/dist/Brand.js +1 -1
  16. package/dist/Brand.js.map +1 -1
  17. package/dist/Cache.d.ts +2 -2
  18. package/dist/Cache.d.ts.map +1 -1
  19. package/dist/Cache.js +6 -5
  20. package/dist/Cache.js.map +1 -1
  21. package/dist/Cause.d.ts +33 -2
  22. package/dist/Cause.d.ts.map +1 -1
  23. package/dist/Cause.js +19 -0
  24. package/dist/Cause.js.map +1 -1
  25. package/dist/Channel.d.ts +130 -35
  26. package/dist/Channel.d.ts.map +1 -1
  27. package/dist/Channel.js +96 -45
  28. package/dist/Channel.js.map +1 -1
  29. package/dist/Chunk.d.ts +112 -304
  30. package/dist/Chunk.d.ts.map +1 -1
  31. package/dist/Chunk.js +56 -88
  32. package/dist/Chunk.js.map +1 -1
  33. package/dist/Combiner.d.ts +280 -13
  34. package/dist/Combiner.d.ts.map +1 -1
  35. package/dist/Combiner.js +198 -7
  36. package/dist/Combiner.js.map +1 -1
  37. package/dist/Config.d.ts +169 -9
  38. package/dist/Config.d.ts.map +1 -1
  39. package/dist/Config.js +69 -11
  40. package/dist/Config.js.map +1 -1
  41. package/dist/ConfigProvider.d.ts +1 -1
  42. package/dist/Cron.d.ts +11 -7
  43. package/dist/Cron.d.ts.map +1 -1
  44. package/dist/Cron.js +120 -63
  45. package/dist/Cron.js.map +1 -1
  46. package/dist/Data.d.ts +535 -366
  47. package/dist/Data.d.ts.map +1 -1
  48. package/dist/Data.js +132 -79
  49. package/dist/Data.js.map +1 -1
  50. package/dist/DateTime.d.ts +72 -253
  51. package/dist/DateTime.d.ts.map +1 -1
  52. package/dist/DateTime.js +15 -60
  53. package/dist/DateTime.js.map +1 -1
  54. package/dist/Deferred.d.ts +7 -5
  55. package/dist/Deferred.d.ts.map +1 -1
  56. package/dist/Deferred.js +7 -5
  57. package/dist/Deferred.js.map +1 -1
  58. package/dist/Duration.d.ts +62 -32
  59. package/dist/Duration.d.ts.map +1 -1
  60. package/dist/Duration.js +108 -78
  61. package/dist/Duration.js.map +1 -1
  62. package/dist/Effect.d.ts +1224 -951
  63. package/dist/Effect.d.ts.map +1 -1
  64. package/dist/Effect.js +398 -338
  65. package/dist/Effect.js.map +1 -1
  66. package/dist/Encoding.d.ts +194 -0
  67. package/dist/Encoding.d.ts.map +1 -0
  68. package/dist/Encoding.js +352 -0
  69. package/dist/Encoding.js.map +1 -0
  70. package/dist/Equal.d.ts +276 -109
  71. package/dist/Equal.d.ts.map +1 -1
  72. package/dist/Equal.js +124 -48
  73. package/dist/Equal.js.map +1 -1
  74. package/dist/Equivalence.d.ts +60 -3
  75. package/dist/Equivalence.d.ts.map +1 -1
  76. package/dist/Equivalence.js +70 -13
  77. package/dist/Equivalence.js.map +1 -1
  78. package/dist/ErrorReporter.d.ts +374 -0
  79. package/dist/ErrorReporter.d.ts.map +1 -0
  80. package/dist/ErrorReporter.js +245 -0
  81. package/dist/ErrorReporter.js.map +1 -0
  82. package/dist/Exit.d.ts +24 -12
  83. package/dist/Exit.d.ts.map +1 -1
  84. package/dist/Exit.js +8 -4
  85. package/dist/Exit.js.map +1 -1
  86. package/dist/Fiber.d.ts +5 -3
  87. package/dist/Fiber.d.ts.map +1 -1
  88. package/dist/Fiber.js.map +1 -1
  89. package/dist/FiberHandle.d.ts +9 -8
  90. package/dist/FiberHandle.d.ts.map +1 -1
  91. package/dist/FiberHandle.js +8 -7
  92. package/dist/FiberHandle.js.map +1 -1
  93. package/dist/FiberMap.d.ts +20 -19
  94. package/dist/FiberMap.d.ts.map +1 -1
  95. package/dist/FiberMap.js +6 -6
  96. package/dist/FiberMap.js.map +1 -1
  97. package/dist/FileSystem.d.ts +18 -17
  98. package/dist/FileSystem.d.ts.map +1 -1
  99. package/dist/FileSystem.js +17 -13
  100. package/dist/FileSystem.js.map +1 -1
  101. package/dist/Filter.d.ts +34 -38
  102. package/dist/Filter.d.ts.map +1 -1
  103. package/dist/Filter.js +15 -13
  104. package/dist/Filter.js.map +1 -1
  105. package/dist/Formatter.d.ts +131 -47
  106. package/dist/Formatter.d.ts.map +1 -1
  107. package/dist/Formatter.js +229 -51
  108. package/dist/Formatter.js.map +1 -1
  109. package/dist/Function.d.ts +1 -9
  110. package/dist/Function.d.ts.map +1 -1
  111. package/dist/Function.js +2 -10
  112. package/dist/Function.js.map +1 -1
  113. package/dist/Graph.d.ts +65 -65
  114. package/dist/Graph.d.ts.map +1 -1
  115. package/dist/Graph.js +60 -62
  116. package/dist/Graph.js.map +1 -1
  117. package/dist/HashMap.d.ts +26 -19
  118. package/dist/HashMap.d.ts.map +1 -1
  119. package/dist/HashMap.js +7 -5
  120. package/dist/HashMap.js.map +1 -1
  121. package/dist/Iterable.d.ts +50 -50
  122. package/dist/Iterable.d.ts.map +1 -1
  123. package/dist/Iterable.js +106 -34
  124. package/dist/Iterable.js.map +1 -1
  125. package/dist/JsonSchema.d.ts +299 -10
  126. package/dist/JsonSchema.d.ts.map +1 -1
  127. package/dist/JsonSchema.js +323 -4
  128. package/dist/JsonSchema.js.map +1 -1
  129. package/dist/Latch.d.ts +175 -0
  130. package/dist/Latch.d.ts.map +1 -0
  131. package/dist/Latch.js +130 -0
  132. package/dist/Latch.js.map +1 -0
  133. package/dist/Layer.d.ts +306 -129
  134. package/dist/Layer.d.ts.map +1 -1
  135. package/dist/Layer.js +92 -47
  136. package/dist/Layer.js.map +1 -1
  137. package/dist/LayerMap.d.ts +9 -8
  138. package/dist/LayerMap.d.ts.map +1 -1
  139. package/dist/LayerMap.js +3 -3
  140. package/dist/LayerMap.js.map +1 -1
  141. package/dist/LogLevel.d.ts +32 -0
  142. package/dist/LogLevel.d.ts.map +1 -1
  143. package/dist/LogLevel.js +28 -100
  144. package/dist/LogLevel.js.map +1 -1
  145. package/dist/Logger.d.ts +29 -95
  146. package/dist/Logger.d.ts.map +1 -1
  147. package/dist/Logger.js +2 -3
  148. package/dist/Logger.js.map +1 -1
  149. package/dist/ManagedRuntime.d.ts +2 -2
  150. package/dist/ManagedRuntime.js +2 -2
  151. package/dist/Metric.d.ts +4 -6
  152. package/dist/Metric.d.ts.map +1 -1
  153. package/dist/Metric.js +3 -5
  154. package/dist/Metric.js.map +1 -1
  155. package/dist/MutableHashMap.d.ts +7 -0
  156. package/dist/MutableHashMap.d.ts.map +1 -1
  157. package/dist/MutableHashMap.js +8 -0
  158. package/dist/MutableHashMap.js.map +1 -1
  159. package/dist/MutableHashSet.d.ts +7 -0
  160. package/dist/MutableHashSet.d.ts.map +1 -1
  161. package/dist/MutableHashSet.js +8 -0
  162. package/dist/MutableHashSet.js.map +1 -1
  163. package/dist/Newtype.d.ts +291 -0
  164. package/dist/Newtype.d.ts.map +1 -0
  165. package/dist/Newtype.js +161 -0
  166. package/dist/Newtype.js.map +1 -0
  167. package/dist/Number.d.ts +74 -18
  168. package/dist/Number.d.ts.map +1 -1
  169. package/dist/Number.js +34 -15
  170. package/dist/Number.js.map +1 -1
  171. package/dist/Optic.d.ts +947 -18
  172. package/dist/Optic.d.ts.map +1 -1
  173. package/dist/Optic.js +454 -5
  174. package/dist/Optic.js.map +1 -1
  175. package/dist/Option.d.ts +25 -16
  176. package/dist/Option.d.ts.map +1 -1
  177. package/dist/Option.js +15 -9
  178. package/dist/Option.js.map +1 -1
  179. package/dist/Order.d.ts +6 -1
  180. package/dist/Order.d.ts.map +1 -1
  181. package/dist/Order.js +19 -14
  182. package/dist/Order.js.map +1 -1
  183. package/dist/PartitionedSemaphore.d.ts +146 -15
  184. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  185. package/dist/PartitionedSemaphore.js +174 -61
  186. package/dist/PartitionedSemaphore.js.map +1 -1
  187. package/dist/Pipeable.d.ts +17 -0
  188. package/dist/Pipeable.d.ts.map +1 -1
  189. package/dist/Pipeable.js +19 -1
  190. package/dist/Pipeable.js.map +1 -1
  191. package/dist/PlatformError.d.ts +10 -9
  192. package/dist/PlatformError.d.ts.map +1 -1
  193. package/dist/PlatformError.js +2 -2
  194. package/dist/PlatformError.js.map +1 -1
  195. package/dist/Pool.d.ts +6 -4
  196. package/dist/Pool.d.ts.map +1 -1
  197. package/dist/Pool.js +7 -5
  198. package/dist/Pool.js.map +1 -1
  199. package/dist/PubSub.d.ts +8 -6
  200. package/dist/PubSub.d.ts.map +1 -1
  201. package/dist/PubSub.js +18 -10
  202. package/dist/PubSub.js.map +1 -1
  203. package/dist/Pull.d.ts.map +1 -1
  204. package/dist/Pull.js +1 -1
  205. package/dist/Pull.js.map +1 -1
  206. package/dist/Queue.d.ts +9 -6
  207. package/dist/Queue.d.ts.map +1 -1
  208. package/dist/Queue.js +7 -5
  209. package/dist/Queue.js.map +1 -1
  210. package/dist/Random.d.ts +35 -1
  211. package/dist/Random.d.ts.map +1 -1
  212. package/dist/Random.js +46 -12
  213. package/dist/Random.js.map +1 -1
  214. package/dist/RcMap.d.ts +2 -2
  215. package/dist/RcMap.d.ts.map +1 -1
  216. package/dist/RcMap.js +1 -1
  217. package/dist/RcMap.js.map +1 -1
  218. package/dist/RcRef.d.ts +1 -1
  219. package/dist/RcRef.d.ts.map +1 -1
  220. package/dist/Record.d.ts +63 -160
  221. package/dist/Record.d.ts.map +1 -1
  222. package/dist/Record.js +37 -56
  223. package/dist/Record.js.map +1 -1
  224. package/dist/Reducer.d.ts +166 -7
  225. package/dist/Reducer.d.ts.map +1 -1
  226. package/dist/Reducer.js +135 -1
  227. package/dist/Reducer.js.map +1 -1
  228. package/dist/References.d.ts +242 -226
  229. package/dist/References.d.ts.map +1 -1
  230. package/dist/References.js +240 -247
  231. package/dist/References.js.map +1 -1
  232. package/dist/Request.d.ts +1 -1
  233. package/dist/Request.d.ts.map +1 -1
  234. package/dist/Request.js +2 -1
  235. package/dist/Request.js.map +1 -1
  236. package/dist/RequestResolver.d.ts +25 -45
  237. package/dist/RequestResolver.d.ts.map +1 -1
  238. package/dist/RequestResolver.js +10 -30
  239. package/dist/RequestResolver.js.map +1 -1
  240. package/dist/Resource.d.ts.map +1 -1
  241. package/dist/Resource.js +2 -1
  242. package/dist/Resource.js.map +1 -1
  243. package/dist/Result.d.ts +1 -1
  244. package/dist/Result.d.ts.map +1 -1
  245. package/dist/Result.js +1 -2
  246. package/dist/Result.js.map +1 -1
  247. package/dist/Runtime.d.ts +66 -0
  248. package/dist/Runtime.d.ts.map +1 -1
  249. package/dist/Runtime.js +79 -6
  250. package/dist/Runtime.js.map +1 -1
  251. package/dist/Schedule.d.ts +174 -291
  252. package/dist/Schedule.d.ts.map +1 -1
  253. package/dist/Schedule.js +160 -134
  254. package/dist/Schedule.js.map +1 -1
  255. package/dist/Scheduler.d.ts +34 -123
  256. package/dist/Scheduler.d.ts.map +1 -1
  257. package/dist/Scheduler.js +31 -123
  258. package/dist/Scheduler.js.map +1 -1
  259. package/dist/Schema.d.ts +2722 -247
  260. package/dist/Schema.d.ts.map +1 -1
  261. package/dist/Schema.js +1947 -224
  262. package/dist/Schema.js.map +1 -1
  263. package/dist/SchemaAST.d.ts +7 -2
  264. package/dist/SchemaAST.d.ts.map +1 -1
  265. package/dist/SchemaAST.js +131 -25
  266. package/dist/SchemaAST.js.map +1 -1
  267. package/dist/SchemaGetter.d.ts +5 -5
  268. package/dist/SchemaGetter.d.ts.map +1 -1
  269. package/dist/SchemaGetter.js +18 -18
  270. package/dist/SchemaGetter.js.map +1 -1
  271. package/dist/SchemaParser.d.ts +44 -54
  272. package/dist/SchemaParser.d.ts.map +1 -1
  273. package/dist/SchemaParser.js +55 -2
  274. package/dist/SchemaParser.js.map +1 -1
  275. package/dist/SchemaRepresentation.d.ts +46 -45
  276. package/dist/SchemaRepresentation.d.ts.map +1 -1
  277. package/dist/SchemaRepresentation.js +49 -24
  278. package/dist/SchemaRepresentation.js.map +1 -1
  279. package/dist/SchemaTransformation.d.ts +107 -3
  280. package/dist/SchemaTransformation.d.ts.map +1 -1
  281. package/dist/SchemaTransformation.js +173 -13
  282. package/dist/SchemaTransformation.js.map +1 -1
  283. package/dist/ScopedCache.d.ts +2 -2
  284. package/dist/ScopedCache.d.ts.map +1 -1
  285. package/dist/ScopedCache.js +1 -1
  286. package/dist/ScopedCache.js.map +1 -1
  287. package/dist/Semaphore.d.ts +307 -0
  288. package/dist/Semaphore.d.ts.map +1 -0
  289. package/dist/Semaphore.js +222 -0
  290. package/dist/Semaphore.js.map +1 -0
  291. package/dist/ServiceMap.d.ts +67 -31
  292. package/dist/ServiceMap.d.ts.map +1 -1
  293. package/dist/ServiceMap.js +39 -24
  294. package/dist/ServiceMap.js.map +1 -1
  295. package/dist/Sink.d.ts +18 -15
  296. package/dist/Sink.d.ts.map +1 -1
  297. package/dist/Sink.js +53 -6
  298. package/dist/Sink.js.map +1 -1
  299. package/dist/Stdio.d.ts +16 -4
  300. package/dist/Stdio.d.ts.map +1 -1
  301. package/dist/Stdio.js +18 -0
  302. package/dist/Stdio.js.map +1 -1
  303. package/dist/Stream.d.ts +284 -431
  304. package/dist/Stream.d.ts.map +1 -1
  305. package/dist/Stream.js +189 -88
  306. package/dist/Stream.js.map +1 -1
  307. package/dist/String.d.ts +114 -47
  308. package/dist/String.d.ts.map +1 -1
  309. package/dist/String.js +29 -47
  310. package/dist/String.js.map +1 -1
  311. package/dist/Struct.d.ts +23 -7
  312. package/dist/Struct.d.ts.map +1 -1
  313. package/dist/Struct.js +22 -0
  314. package/dist/Struct.js.map +1 -1
  315. package/dist/SubscriptionRef.d.ts +3 -3
  316. package/dist/SubscriptionRef.d.ts.map +1 -1
  317. package/dist/SubscriptionRef.js +85 -117
  318. package/dist/SubscriptionRef.js.map +1 -1
  319. package/dist/SynchronizedRef.d.ts +2 -1
  320. package/dist/SynchronizedRef.d.ts.map +1 -1
  321. package/dist/SynchronizedRef.js +2 -1
  322. package/dist/SynchronizedRef.js.map +1 -1
  323. package/dist/Terminal.d.ts +2 -1
  324. package/dist/Terminal.d.ts.map +1 -1
  325. package/dist/Terminal.js.map +1 -1
  326. package/dist/Tracer.d.ts +5 -4
  327. package/dist/Tracer.d.ts.map +1 -1
  328. package/dist/Tracer.js +2 -1
  329. package/dist/Tracer.js.map +1 -1
  330. package/dist/Trie.d.ts +44 -31
  331. package/dist/Trie.d.ts.map +1 -1
  332. package/dist/Trie.js +13 -9
  333. package/dist/Trie.js.map +1 -1
  334. package/dist/TxChunk.d.ts +37 -37
  335. package/dist/TxChunk.d.ts.map +1 -1
  336. package/dist/TxChunk.js +3 -3
  337. package/dist/TxChunk.js.map +1 -1
  338. package/dist/TxDeferred.d.ts +328 -0
  339. package/dist/TxDeferred.d.ts.map +1 -0
  340. package/dist/TxDeferred.js +197 -0
  341. package/dist/TxDeferred.js.map +1 -0
  342. package/dist/TxHashMap.d.ts +159 -140
  343. package/dist/TxHashMap.d.ts.map +1 -1
  344. package/dist/TxHashMap.js +51 -44
  345. package/dist/TxHashMap.js.map +1 -1
  346. package/dist/TxHashSet.d.ts +36 -36
  347. package/dist/TxHashSet.d.ts.map +1 -1
  348. package/dist/TxHashSet.js +16 -15
  349. package/dist/TxHashSet.js.map +1 -1
  350. package/dist/TxPriorityQueue.d.ts +609 -0
  351. package/dist/TxPriorityQueue.d.ts.map +1 -0
  352. package/dist/TxPriorityQueue.js +416 -0
  353. package/dist/TxPriorityQueue.js.map +1 -0
  354. package/dist/TxPubSub.d.ts +585 -0
  355. package/dist/TxPubSub.d.ts.map +1 -0
  356. package/dist/TxPubSub.js +521 -0
  357. package/dist/TxPubSub.js.map +1 -0
  358. package/dist/TxQueue.d.ts +32 -32
  359. package/dist/TxQueue.d.ts.map +1 -1
  360. package/dist/TxQueue.js +26 -26
  361. package/dist/TxQueue.js.map +1 -1
  362. package/dist/TxReentrantLock.d.ts +523 -0
  363. package/dist/TxReentrantLock.d.ts.map +1 -0
  364. package/dist/TxReentrantLock.js +504 -0
  365. package/dist/TxReentrantLock.js.map +1 -0
  366. package/dist/TxRef.d.ts +34 -34
  367. package/dist/TxRef.d.ts.map +1 -1
  368. package/dist/TxRef.js +21 -14
  369. package/dist/TxRef.js.map +1 -1
  370. package/dist/TxSemaphore.d.ts +170 -10
  371. package/dist/TxSemaphore.d.ts.map +1 -1
  372. package/dist/TxSemaphore.js +23 -8
  373. package/dist/TxSemaphore.js.map +1 -1
  374. package/dist/TxSubscriptionRef.d.ts +508 -0
  375. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  376. package/dist/TxSubscriptionRef.js +293 -0
  377. package/dist/TxSubscriptionRef.js.map +1 -0
  378. package/dist/Types.d.ts +80 -23
  379. package/dist/Types.d.ts.map +1 -1
  380. package/dist/Utils.d.ts +137 -65
  381. package/dist/Utils.d.ts.map +1 -1
  382. package/dist/Utils.js +38 -66
  383. package/dist/Utils.js.map +1 -1
  384. package/dist/index.d.ts +804 -53
  385. package/dist/index.d.ts.map +1 -1
  386. package/dist/index.js +804 -53
  387. package/dist/index.js.map +1 -1
  388. package/dist/internal/core.js +11 -3
  389. package/dist/internal/core.js.map +1 -1
  390. package/dist/internal/dateTime.js +77 -71
  391. package/dist/internal/dateTime.js.map +1 -1
  392. package/dist/internal/effect.js +281 -201
  393. package/dist/internal/effect.js.map +1 -1
  394. package/dist/internal/hashMap.js +7 -5
  395. package/dist/internal/hashMap.js.map +1 -1
  396. package/dist/internal/option.js +6 -0
  397. package/dist/internal/option.js.map +1 -1
  398. package/dist/internal/random.d.ts +2 -0
  399. package/dist/internal/random.d.ts.map +1 -0
  400. package/dist/internal/random.js +13 -0
  401. package/dist/internal/random.js.map +1 -0
  402. package/dist/internal/rcRef.js +3 -2
  403. package/dist/internal/rcRef.js.map +1 -1
  404. package/dist/internal/references.d.ts +2 -0
  405. package/dist/internal/references.d.ts.map +1 -0
  406. package/dist/internal/references.js +51 -0
  407. package/dist/internal/references.js.map +1 -0
  408. package/dist/internal/request.js +2 -2
  409. package/dist/internal/request.js.map +1 -1
  410. package/dist/internal/schema/annotations.js +2 -0
  411. package/dist/internal/schema/annotations.js.map +1 -1
  412. package/dist/internal/schema/representation.js +47 -106
  413. package/dist/internal/schema/representation.js.map +1 -1
  414. package/dist/internal/schema/schema.js +1 -0
  415. package/dist/internal/schema/schema.js.map +1 -1
  416. package/dist/internal/schema/to-codec.js +7 -10
  417. package/dist/internal/schema/to-codec.js.map +1 -1
  418. package/dist/internal/trie.js +8 -7
  419. package/dist/internal/trie.js.map +1 -1
  420. package/dist/testing/TestClock.d.ts +8 -7
  421. package/dist/testing/TestClock.d.ts.map +1 -1
  422. package/dist/testing/TestClock.js +6 -4
  423. package/dist/testing/TestClock.js.map +1 -1
  424. package/dist/testing/TestSchema.d.ts +266 -32
  425. package/dist/testing/TestSchema.d.ts.map +1 -1
  426. package/dist/testing/TestSchema.js +296 -23
  427. package/dist/testing/TestSchema.js.map +1 -1
  428. package/dist/testing/index.d.ts +64 -1
  429. package/dist/testing/index.d.ts.map +1 -1
  430. package/dist/testing/index.js +64 -1
  431. package/dist/testing/index.js.map +1 -1
  432. package/dist/unstable/ai/AiError.d.ts +136 -54
  433. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  434. package/dist/unstable/ai/AiError.js +28 -23
  435. package/dist/unstable/ai/AiError.js.map +1 -1
  436. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  437. package/dist/unstable/ai/AnthropicStructuredOutput.js +4 -0
  438. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  439. package/dist/unstable/ai/Chat.d.ts +7 -8
  440. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  441. package/dist/unstable/ai/Chat.js +38 -44
  442. package/dist/unstable/ai/Chat.js.map +1 -1
  443. package/dist/unstable/ai/EmbeddingModel.d.ts +130 -0
  444. package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -0
  445. package/dist/unstable/ai/EmbeddingModel.js +127 -0
  446. package/dist/unstable/ai/EmbeddingModel.js.map +1 -0
  447. package/dist/unstable/ai/LanguageModel.d.ts +53 -45
  448. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  449. package/dist/unstable/ai/LanguageModel.js +265 -143
  450. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  451. package/dist/unstable/ai/McpSchema.d.ts +183 -88
  452. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  453. package/dist/unstable/ai/McpSchema.js +57 -12
  454. package/dist/unstable/ai/McpSchema.js.map +1 -1
  455. package/dist/unstable/ai/McpServer.d.ts +66 -13
  456. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  457. package/dist/unstable/ai/McpServer.js +193 -51
  458. package/dist/unstable/ai/McpServer.js.map +1 -1
  459. package/dist/unstable/ai/Model.d.ts +25 -7
  460. package/dist/unstable/ai/Model.d.ts.map +1 -1
  461. package/dist/unstable/ai/Model.js +22 -6
  462. package/dist/unstable/ai/Model.js.map +1 -1
  463. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  464. package/dist/unstable/ai/OpenAiStructuredOutput.js +4 -0
  465. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  466. package/dist/unstable/ai/Prompt.d.ts +20 -20
  467. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  468. package/dist/unstable/ai/Response.d.ts +26 -26
  469. package/dist/unstable/ai/Response.d.ts.map +1 -1
  470. package/dist/unstable/ai/Response.js +1 -1
  471. package/dist/unstable/ai/Response.js.map +1 -1
  472. package/dist/unstable/ai/ResponseIdTracker.d.ts +38 -0
  473. package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -0
  474. package/dist/unstable/ai/ResponseIdTracker.js +68 -0
  475. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -0
  476. package/dist/unstable/ai/Tool.d.ts +34 -4
  477. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  478. package/dist/unstable/ai/Tool.js +28 -10
  479. package/dist/unstable/ai/Tool.js.map +1 -1
  480. package/dist/unstable/ai/Toolkit.d.ts +1 -1
  481. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  482. package/dist/unstable/ai/Toolkit.js +4 -11
  483. package/dist/unstable/ai/Toolkit.js.map +1 -1
  484. package/dist/unstable/ai/index.d.ts +22 -1
  485. package/dist/unstable/ai/index.d.ts.map +1 -1
  486. package/dist/unstable/ai/index.js +22 -1
  487. package/dist/unstable/ai/index.js.map +1 -1
  488. package/dist/unstable/ai/internal/codec-transformer.js +0 -5
  489. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  490. package/dist/unstable/cli/Argument.d.ts +2 -4
  491. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  492. package/dist/unstable/cli/Argument.js +1 -3
  493. package/dist/unstable/cli/Argument.js.map +1 -1
  494. package/dist/unstable/cli/CliError.d.ts +27 -60
  495. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  496. package/dist/unstable/cli/CliError.js +25 -57
  497. package/dist/unstable/cli/CliError.js.map +1 -1
  498. package/dist/unstable/cli/CliOutput.d.ts +3 -2
  499. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  500. package/dist/unstable/cli/CliOutput.js +65 -10
  501. package/dist/unstable/cli/CliOutput.js.map +1 -1
  502. package/dist/unstable/cli/Command.d.ts +371 -58
  503. package/dist/unstable/cli/Command.d.ts.map +1 -1
  504. package/dist/unstable/cli/Command.js +328 -67
  505. package/dist/unstable/cli/Command.js.map +1 -1
  506. package/dist/unstable/cli/Completions.d.ts +16 -0
  507. package/dist/unstable/cli/Completions.d.ts.map +1 -0
  508. package/dist/unstable/cli/Completions.js +23 -0
  509. package/dist/unstable/cli/Completions.js.map +1 -0
  510. package/dist/unstable/cli/Flag.d.ts +2 -2
  511. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  512. package/dist/unstable/cli/Flag.js +1 -1
  513. package/dist/unstable/cli/Flag.js.map +1 -1
  514. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  515. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  516. package/dist/unstable/cli/GlobalFlag.js +118 -0
  517. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  518. package/dist/unstable/cli/HelpDoc.d.ts +81 -11
  519. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  520. package/dist/unstable/cli/Param.d.ts +4 -4
  521. package/dist/unstable/cli/Param.d.ts.map +1 -1
  522. package/dist/unstable/cli/Param.js +7 -7
  523. package/dist/unstable/cli/Param.js.map +1 -1
  524. package/dist/unstable/cli/Primitive.d.ts +2 -2
  525. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  526. package/dist/unstable/cli/Primitive.js +1 -1
  527. package/dist/unstable/cli/Primitive.js.map +1 -1
  528. package/dist/unstable/cli/Prompt.js +258 -84
  529. package/dist/unstable/cli/Prompt.js.map +1 -1
  530. package/dist/unstable/cli/index.d.ts +8 -0
  531. package/dist/unstable/cli/index.d.ts.map +1 -1
  532. package/dist/unstable/cli/index.js +8 -0
  533. package/dist/unstable/cli/index.js.map +1 -1
  534. package/dist/unstable/cli/internal/command.d.ts +40 -14
  535. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  536. package/dist/unstable/cli/internal/command.js +72 -46
  537. package/dist/unstable/cli/internal/command.js.map +1 -1
  538. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +16 -4
  539. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  540. package/dist/unstable/cli/internal/config.js +42 -0
  541. package/dist/unstable/cli/internal/config.js.map +1 -1
  542. package/dist/unstable/cli/internal/help.d.ts +33 -0
  543. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  544. package/dist/unstable/cli/internal/help.js +125 -0
  545. package/dist/unstable/cli/internal/help.js.map +1 -0
  546. package/dist/unstable/cli/internal/parser.js +61 -43
  547. package/dist/unstable/cli/internal/parser.js.map +1 -1
  548. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  549. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  550. package/dist/unstable/cluster/ClusterCron.js +1 -1
  551. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  552. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +3 -2
  553. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  554. package/dist/unstable/cluster/ClusterWorkflowEngine.js +29 -26
  555. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  556. package/dist/unstable/cluster/DeliverAt.js +1 -1
  557. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  558. package/dist/unstable/cluster/Entity.d.ts +10 -8
  559. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  560. package/dist/unstable/cluster/Entity.js +7 -7
  561. package/dist/unstable/cluster/Entity.js.map +1 -1
  562. package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
  563. package/dist/unstable/cluster/EntityAddress.js +1 -1
  564. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  565. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  566. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  567. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  568. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  569. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  570. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  571. package/dist/unstable/cluster/Message.d.ts +14 -13
  572. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  573. package/dist/unstable/cluster/Message.js +3 -2
  574. package/dist/unstable/cluster/Message.js.map +1 -1
  575. package/dist/unstable/cluster/MessageStorage.d.ts +10 -10
  576. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  577. package/dist/unstable/cluster/MessageStorage.js +14 -13
  578. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  579. package/dist/unstable/cluster/Reply.d.ts +8 -7
  580. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  581. package/dist/unstable/cluster/Reply.js +4 -3
  582. package/dist/unstable/cluster/Reply.js.map +1 -1
  583. package/dist/unstable/cluster/Runner.d.ts +1 -1
  584. package/dist/unstable/cluster/Runner.d.ts.map +1 -1
  585. package/dist/unstable/cluster/Runner.js +1 -1
  586. package/dist/unstable/cluster/Runner.js.map +1 -1
  587. package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
  588. package/dist/unstable/cluster/RunnerAddress.js +1 -1
  589. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  590. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  591. package/dist/unstable/cluster/RunnerServer.js +9 -8
  592. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  593. package/dist/unstable/cluster/Runners.d.ts +2 -1
  594. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  595. package/dist/unstable/cluster/Runners.js +11 -9
  596. package/dist/unstable/cluster/Runners.js.map +1 -1
  597. package/dist/unstable/cluster/ShardId.js +3 -3
  598. package/dist/unstable/cluster/ShardId.js.map +1 -1
  599. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  600. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  601. package/dist/unstable/cluster/Sharding.js +28 -20
  602. package/dist/unstable/cluster/Sharding.js.map +1 -1
  603. package/dist/unstable/cluster/ShardingConfig.d.ts +26 -25
  604. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  605. package/dist/unstable/cluster/ShardingConfig.js +24 -24
  606. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  607. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  608. package/dist/unstable/cluster/SqlMessageStorage.js +19 -18
  609. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  610. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  611. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  612. package/dist/unstable/cluster/internal/entityManager.js +14 -14
  613. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  614. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  615. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  616. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  617. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  618. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  619. package/dist/unstable/devtools/DevToolsClient.js +4 -3
  620. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  621. package/dist/unstable/devtools/DevToolsSchema.d.ts +40 -40
  622. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  623. package/dist/unstable/devtools/DevToolsSchema.js +9 -2
  624. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  625. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  626. package/dist/unstable/encoding/Ndjson.d.ts +9 -9
  627. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  628. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  629. package/dist/unstable/encoding/Sse.d.ts +4 -4
  630. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  631. package/dist/unstable/encoding/Sse.js +1 -1
  632. package/dist/unstable/encoding/Sse.js.map +1 -1
  633. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  634. package/dist/unstable/eventlog/EventJournal.js +2 -2
  635. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  636. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  637. package/dist/unstable/eventlog/EventLog.js +3 -2
  638. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  639. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  640. package/dist/unstable/eventlog/SqlEventLogJournal.js +2 -2
  641. package/dist/unstable/eventlog/SqlEventLogJournal.js.map +1 -1
  642. package/dist/unstable/http/Cookies.d.ts +52 -7
  643. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  644. package/dist/unstable/http/Cookies.js +27 -6
  645. package/dist/unstable/http/Cookies.js.map +1 -1
  646. package/dist/unstable/http/Etag.d.ts.map +1 -1
  647. package/dist/unstable/http/Etag.js +5 -1
  648. package/dist/unstable/http/Etag.js.map +1 -1
  649. package/dist/unstable/http/Headers.d.ts +19 -2
  650. package/dist/unstable/http/Headers.d.ts.map +1 -1
  651. package/dist/unstable/http/Headers.js +40 -11
  652. package/dist/unstable/http/Headers.js.map +1 -1
  653. package/dist/unstable/http/HttpBody.d.ts +1 -1
  654. package/dist/unstable/http/HttpClient.d.ts +117 -15
  655. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  656. package/dist/unstable/http/HttpClient.js +191 -13
  657. package/dist/unstable/http/HttpClient.js.map +1 -1
  658. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  659. package/dist/unstable/http/HttpClientRequest.d.ts +43 -15
  660. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  661. package/dist/unstable/http/HttpClientRequest.js +131 -21
  662. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  663. package/dist/unstable/http/HttpClientResponse.d.ts +2 -1
  664. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  665. package/dist/unstable/http/HttpClientResponse.js +6 -1
  666. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  667. package/dist/unstable/http/HttpEffect.d.ts +7 -5
  668. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  669. package/dist/unstable/http/HttpEffect.js +46 -54
  670. package/dist/unstable/http/HttpEffect.js.map +1 -1
  671. package/dist/unstable/http/HttpIncomingMessage.d.ts +3 -2
  672. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  673. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  674. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  675. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  676. package/dist/unstable/http/HttpMethod.js +3 -3
  677. package/dist/unstable/http/HttpMethod.js.map +1 -1
  678. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  679. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  680. package/dist/unstable/http/HttpMiddleware.js +24 -32
  681. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  682. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  683. package/dist/unstable/http/HttpPlatform.js +3 -2
  684. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  685. package/dist/unstable/http/HttpRouter.d.ts +2 -1
  686. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  687. package/dist/unstable/http/HttpRouter.js +7 -7
  688. package/dist/unstable/http/HttpRouter.js.map +1 -1
  689. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  690. package/dist/unstable/http/HttpServer.js +2 -2
  691. package/dist/unstable/http/HttpServer.js.map +1 -1
  692. package/dist/unstable/http/HttpServerError.d.ts +22 -34
  693. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  694. package/dist/unstable/http/HttpServerError.js +39 -45
  695. package/dist/unstable/http/HttpServerError.js.map +1 -1
  696. package/dist/unstable/http/HttpServerRequest.d.ts +15 -3
  697. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  698. package/dist/unstable/http/HttpServerRequest.js +301 -7
  699. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  700. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  701. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  702. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  703. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  704. package/dist/unstable/http/HttpServerResponse.d.ts +50 -3
  705. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  706. package/dist/unstable/http/HttpServerResponse.js +236 -1
  707. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  708. package/dist/unstable/http/HttpStaticServer.d.ts +69 -0
  709. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -0
  710. package/dist/unstable/http/HttpStaticServer.js +353 -0
  711. package/dist/unstable/http/HttpStaticServer.js.map +1 -0
  712. package/dist/unstable/http/HttpTraceContext.d.ts +3 -2
  713. package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
  714. package/dist/unstable/http/HttpTraceContext.js +27 -15
  715. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  716. package/dist/unstable/http/Multipart.d.ts +3 -3
  717. package/dist/unstable/http/Url.d.ts +604 -0
  718. package/dist/unstable/http/Url.d.ts.map +1 -0
  719. package/dist/unstable/http/Url.js +256 -0
  720. package/dist/unstable/http/Url.js.map +1 -0
  721. package/dist/unstable/http/UrlParams.d.ts +19 -10
  722. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  723. package/dist/unstable/http/UrlParams.js +6 -7
  724. package/dist/unstable/http/UrlParams.js.map +1 -1
  725. package/dist/unstable/http/index.d.ts +8 -0
  726. package/dist/unstable/http/index.d.ts.map +1 -1
  727. package/dist/unstable/http/index.js +8 -0
  728. package/dist/unstable/http/index.js.map +1 -1
  729. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  730. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  731. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  732. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  733. package/dist/unstable/httpapi/HttpApi.d.ts +4 -4
  734. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  735. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  736. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  737. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  738. package/dist/unstable/httpapi/HttpApiBuilder.js +40 -27
  739. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  740. package/dist/unstable/httpapi/HttpApiClient.d.ts +83 -7
  741. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  742. package/dist/unstable/httpapi/HttpApiClient.js +78 -10
  743. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  744. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +207 -101
  745. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  746. package/dist/unstable/httpapi/HttpApiEndpoint.js +49 -43
  747. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  748. package/dist/unstable/httpapi/HttpApiError.d.ts +31 -14
  749. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  750. package/dist/unstable/httpapi/HttpApiError.js +125 -32
  751. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  752. package/dist/unstable/httpapi/HttpApiGroup.d.ts +4 -3
  753. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  754. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  755. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +46 -15
  756. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  757. package/dist/unstable/httpapi/HttpApiMiddleware.js +32 -3
  758. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  759. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  760. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  761. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  762. package/dist/unstable/httpapi/HttpApiSchema.d.ts +5 -0
  763. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  764. package/dist/unstable/httpapi/HttpApiSchema.js +20 -2
  765. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  766. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  767. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  768. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  769. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  770. package/dist/unstable/httpapi/OpenApi.js +34 -26
  771. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  772. package/dist/unstable/observability/Otlp.d.ts +12 -12
  773. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  774. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  775. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  776. package/dist/unstable/observability/OtlpExporter.js +3 -3
  777. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  778. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  779. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  780. package/dist/unstable/observability/OtlpLogger.js +7 -4
  781. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  782. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  783. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  784. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  785. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  786. package/dist/unstable/observability/OtlpTracer.js +7 -3
  787. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  788. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  789. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  790. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  791. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  792. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  793. package/dist/unstable/persistence/Persistable.js +1 -1
  794. package/dist/unstable/persistence/Persistable.js.map +1 -1
  795. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  796. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  797. package/dist/unstable/persistence/PersistedCache.js +2 -1
  798. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  799. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  800. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  801. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  802. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  803. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  804. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  805. package/dist/unstable/persistence/Persistence.js +2 -2
  806. package/dist/unstable/persistence/Persistence.js.map +1 -1
  807. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  808. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  809. package/dist/unstable/persistence/RateLimiter.js +1 -1
  810. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  811. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  812. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  813. package/dist/unstable/process/ChildProcess.js +1 -65
  814. package/dist/unstable/process/ChildProcess.js.map +1 -1
  815. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  816. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  817. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  818. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  819. package/dist/unstable/reactivity/Atom.d.ts +73 -12
  820. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  821. package/dist/unstable/reactivity/Atom.js +108 -25
  822. package/dist/unstable/reactivity/Atom.js.map +1 -1
  823. package/dist/unstable/reactivity/AtomHttpApi.d.ts +17 -15
  824. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  825. package/dist/unstable/reactivity/AtomHttpApi.js +45 -15
  826. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  827. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  828. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  829. package/dist/unstable/reactivity/AtomRegistry.js +54 -11
  830. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  831. package/dist/unstable/reactivity/AtomRpc.d.ts +9 -9
  832. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  833. package/dist/unstable/reactivity/AtomRpc.js +47 -21
  834. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  835. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  836. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  837. package/dist/unstable/reactivity/Hydration.js +76 -0
  838. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  839. package/dist/unstable/reactivity/index.d.ts +4 -0
  840. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  841. package/dist/unstable/reactivity/index.js +4 -0
  842. package/dist/unstable/reactivity/index.js.map +1 -1
  843. package/dist/unstable/rpc/Rpc.d.ts +5 -5
  844. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  845. package/dist/unstable/rpc/Rpc.js +4 -3
  846. package/dist/unstable/rpc/Rpc.js.map +1 -1
  847. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  848. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  849. package/dist/unstable/rpc/RpcClient.js +10 -17
  850. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  851. package/dist/unstable/rpc/RpcGroup.d.ts +3 -5
  852. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  853. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  854. package/dist/unstable/rpc/RpcMiddleware.d.ts +8 -8
  855. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  856. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  857. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  858. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  859. package/dist/unstable/rpc/RpcSchema.js +17 -2
  860. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  861. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  862. package/dist/unstable/rpc/RpcSerialization.js +39 -11
  863. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  864. package/dist/unstable/rpc/RpcServer.d.ts +6 -10
  865. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  866. package/dist/unstable/rpc/RpcServer.js +20 -19
  867. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  868. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  869. package/dist/unstable/rpc/Utils.js +3 -2
  870. package/dist/unstable/rpc/Utils.js.map +1 -1
  871. package/dist/unstable/schema/Model.d.ts +22 -1
  872. package/dist/unstable/schema/Model.d.ts.map +1 -1
  873. package/dist/unstable/schema/Model.js +15 -0
  874. package/dist/unstable/schema/Model.js.map +1 -1
  875. package/dist/unstable/schema/VariantSchema.d.ts +6 -6
  876. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  877. package/dist/unstable/schema/VariantSchema.js +6 -6
  878. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  879. package/dist/unstable/socket/Socket.d.ts +6 -5
  880. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  881. package/dist/unstable/socket/Socket.js +12 -9
  882. package/dist/unstable/socket/Socket.js.map +1 -1
  883. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  884. package/dist/unstable/sql/Migrator.d.ts +1 -1
  885. package/dist/unstable/sql/Migrator.d.ts.map +1 -1
  886. package/dist/unstable/sql/Migrator.js +2 -2
  887. package/dist/unstable/sql/Migrator.js.map +1 -1
  888. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  889. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  890. package/dist/unstable/sql/SqlClient.js +1 -1
  891. package/dist/unstable/sql/SqlClient.js.map +1 -1
  892. package/dist/unstable/sql/SqlError.d.ts +237 -17
  893. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  894. package/dist/unstable/sql/SqlError.js +260 -4
  895. package/dist/unstable/sql/SqlError.js.map +1 -1
  896. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  897. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  898. package/dist/unstable/sql/SqlModel.js +3 -3
  899. package/dist/unstable/sql/SqlModel.js.map +1 -1
  900. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  901. package/dist/unstable/sql/SqlResolver.js +17 -8
  902. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  903. package/dist/unstable/sql/SqlSchema.d.ts +17 -6
  904. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  905. package/dist/unstable/sql/SqlSchema.js +17 -7
  906. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  907. package/dist/unstable/sql/Statement.js +0 -1
  908. package/dist/unstable/sql/Statement.js.map +1 -1
  909. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  910. package/dist/unstable/workers/Worker.js +2 -1
  911. package/dist/unstable/workers/Worker.js.map +1 -1
  912. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  913. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  914. package/dist/unstable/workflow/DurableClock.js +3 -3
  915. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  916. package/dist/unstable/workflow/DurableDeferred.js +8 -8
  917. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  918. package/dist/unstable/workflow/Workflow.d.ts +5 -4
  919. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  920. package/dist/unstable/workflow/Workflow.js +1 -1
  921. package/dist/unstable/workflow/Workflow.js.map +1 -1
  922. package/dist/unstable/workflow/WorkflowEngine.d.ts +17 -5
  923. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  924. package/dist/unstable/workflow/WorkflowEngine.js +153 -12
  925. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  926. package/package.json +2 -2
  927. package/src/Array.ts +304 -447
  928. package/src/BigDecimal.ts +63 -66
  929. package/src/BigInt.ts +49 -41
  930. package/src/Brand.ts +1 -1
  931. package/src/Cache.ts +9 -8
  932. package/src/Cause.ts +37 -2
  933. package/src/Channel.ts +582 -154
  934. package/src/Chunk.ts +149 -331
  935. package/src/Combiner.ts +280 -13
  936. package/src/Config.ts +195 -25
  937. package/src/Cron.ts +155 -63
  938. package/src/Data.ts +539 -376
  939. package/src/DateTime.ts +75 -256
  940. package/src/Deferred.ts +8 -6
  941. package/src/Duration.ts +122 -66
  942. package/src/Effect.ts +1483 -1157
  943. package/src/Encoding.ts +879 -0
  944. package/src/Equal.ts +278 -111
  945. package/src/Equivalence.ts +114 -52
  946. package/src/ErrorReporter.ts +458 -0
  947. package/src/Exit.ts +24 -12
  948. package/src/Fiber.ts +12 -3
  949. package/src/FiberHandle.ts +10 -9
  950. package/src/FiberMap.ts +22 -22
  951. package/src/FileSystem.ts +34 -31
  952. package/src/Filter.ts +52 -63
  953. package/src/Formatter.ts +253 -51
  954. package/src/Function.ts +2 -10
  955. package/src/Graph.ts +131 -117
  956. package/src/HashMap.ts +26 -19
  957. package/src/Iterable.ts +117 -63
  958. package/src/JsonSchema.ts +383 -10
  959. package/src/Latch.ts +194 -0
  960. package/src/Layer.ts +393 -159
  961. package/src/LayerMap.ts +11 -9
  962. package/src/LogLevel.ts +37 -0
  963. package/src/Logger.ts +33 -100
  964. package/src/ManagedRuntime.ts +2 -2
  965. package/src/Metric.ts +6 -8
  966. package/src/MutableHashMap.ts +9 -0
  967. package/src/MutableHashSet.ts +9 -0
  968. package/src/Newtype.ts +308 -0
  969. package/src/Number.ts +85 -26
  970. package/src/Optic.ts +948 -19
  971. package/src/Option.ts +34 -24
  972. package/src/Order.ts +39 -32
  973. package/src/PartitionedSemaphore.ts +288 -56
  974. package/src/Pipeable.ts +32 -1
  975. package/src/PlatformError.ts +5 -5
  976. package/src/Pool.ts +13 -11
  977. package/src/PubSub.ts +30 -20
  978. package/src/Pull.ts +1 -1
  979. package/src/Queue.ts +11 -9
  980. package/src/Random.ts +51 -14
  981. package/src/RcMap.ts +5 -5
  982. package/src/RcRef.ts +1 -1
  983. package/src/Record.ts +94 -199
  984. package/src/Reducer.ts +166 -7
  985. package/src/References.ts +283 -287
  986. package/src/Request.ts +3 -2
  987. package/src/RequestResolver.ts +29 -49
  988. package/src/Resource.ts +2 -1
  989. package/src/Result.ts +2 -4
  990. package/src/Runtime.ts +102 -6
  991. package/src/Schedule.ts +458 -449
  992. package/src/Scheduler.ts +49 -126
  993. package/src/Schema.ts +3298 -392
  994. package/src/SchemaAST.ts +172 -33
  995. package/src/SchemaGetter.ts +19 -21
  996. package/src/SchemaParser.ts +92 -27
  997. package/src/SchemaRepresentation.ts +51 -26
  998. package/src/SchemaTransformation.ts +198 -13
  999. package/src/ScopedCache.ts +3 -3
  1000. package/src/Semaphore.ts +444 -0
  1001. package/src/ServiceMap.ts +133 -71
  1002. package/src/Sink.ts +83 -28
  1003. package/src/Stdio.ts +27 -4
  1004. package/src/Stream.ts +687 -617
  1005. package/src/String.ts +122 -69
  1006. package/src/Struct.ts +33 -7
  1007. package/src/SubscriptionRef.ts +101 -120
  1008. package/src/SynchronizedRef.ts +3 -2
  1009. package/src/Terminal.ts +2 -1
  1010. package/src/Tracer.ts +6 -5
  1011. package/src/Trie.ts +44 -31
  1012. package/src/TxChunk.ts +72 -53
  1013. package/src/TxDeferred.ts +394 -0
  1014. package/src/TxHashMap.ts +409 -343
  1015. package/src/TxHashSet.ts +113 -118
  1016. package/src/TxPriorityQueue.ts +766 -0
  1017. package/src/TxPubSub.ts +789 -0
  1018. package/src/TxQueue.ts +241 -251
  1019. package/src/TxReentrantLock.ts +753 -0
  1020. package/src/TxRef.ts +50 -38
  1021. package/src/TxSemaphore.ts +217 -44
  1022. package/src/TxSubscriptionRef.ts +639 -0
  1023. package/src/Types.ts +73 -19
  1024. package/src/Utils.ts +137 -111
  1025. package/src/index.ts +814 -54
  1026. package/src/internal/core.ts +12 -5
  1027. package/src/internal/dateTime.ts +91 -96
  1028. package/src/internal/effect.ts +841 -432
  1029. package/src/internal/hashMap.ts +12 -10
  1030. package/src/internal/option.ts +7 -0
  1031. package/src/internal/random.ts +20 -0
  1032. package/src/internal/rcRef.ts +4 -3
  1033. package/src/internal/references.ts +72 -0
  1034. package/src/internal/request.ts +2 -2
  1035. package/src/internal/schema/annotations.ts +2 -0
  1036. package/src/internal/schema/representation.ts +45 -94
  1037. package/src/internal/schema/schema.ts +1 -0
  1038. package/src/internal/schema/to-codec.ts +7 -17
  1039. package/src/internal/trie.ts +21 -15
  1040. package/src/testing/TestClock.ts +13 -11
  1041. package/src/testing/TestSchema.ts +332 -35
  1042. package/src/testing/index.ts +64 -1
  1043. package/src/unstable/ai/AiError.ts +111 -54
  1044. package/src/unstable/ai/AnthropicStructuredOutput.ts +4 -0
  1045. package/src/unstable/ai/Chat.ts +62 -74
  1046. package/src/unstable/ai/EmbeddingModel.ts +209 -0
  1047. package/src/unstable/ai/LanguageModel.ts +544 -230
  1048. package/src/unstable/ai/McpSchema.ts +73 -13
  1049. package/src/unstable/ai/McpServer.ts +271 -61
  1050. package/src/unstable/ai/Model.ts +40 -9
  1051. package/src/unstable/ai/OpenAiStructuredOutput.ts +4 -0
  1052. package/src/unstable/ai/Prompt.ts +37 -37
  1053. package/src/unstable/ai/Response.ts +25 -25
  1054. package/src/unstable/ai/ResponseIdTracker.ts +97 -0
  1055. package/src/unstable/ai/Tool.ts +42 -16
  1056. package/src/unstable/ai/Toolkit.ts +5 -14
  1057. package/src/unstable/ai/index.ts +24 -1
  1058. package/src/unstable/ai/internal/codec-transformer.ts +0 -7
  1059. package/src/unstable/cli/Argument.ts +2 -4
  1060. package/src/unstable/cli/CliError.ts +47 -59
  1061. package/src/unstable/cli/CliOutput.ts +85 -13
  1062. package/src/unstable/cli/Command.ts +801 -192
  1063. package/src/unstable/cli/Completions.ts +36 -0
  1064. package/src/unstable/cli/Flag.ts +2 -2
  1065. package/src/unstable/cli/GlobalFlag.ts +242 -0
  1066. package/src/unstable/cli/HelpDoc.ts +91 -11
  1067. package/src/unstable/cli/Param.ts +15 -11
  1068. package/src/unstable/cli/Primitive.ts +2 -2
  1069. package/src/unstable/cli/Prompt.ts +262 -100
  1070. package/src/unstable/cli/index.ts +10 -0
  1071. package/src/unstable/cli/internal/command.ts +109 -63
  1072. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +10 -4
  1073. package/src/unstable/cli/internal/config.ts +49 -0
  1074. package/src/unstable/cli/internal/help.ts +171 -0
  1075. package/src/unstable/cli/internal/parser.ts +71 -63
  1076. package/src/unstable/cluster/ClusterCron.ts +2 -2
  1077. package/src/unstable/cluster/ClusterWorkflowEngine.ts +40 -34
  1078. package/src/unstable/cluster/DeliverAt.ts +1 -1
  1079. package/src/unstable/cluster/Entity.ts +24 -22
  1080. package/src/unstable/cluster/EntityAddress.ts +1 -1
  1081. package/src/unstable/cluster/EntityResource.ts +4 -4
  1082. package/src/unstable/cluster/Envelope.ts +1 -1
  1083. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  1084. package/src/unstable/cluster/Message.ts +6 -5
  1085. package/src/unstable/cluster/MessageStorage.ts +29 -30
  1086. package/src/unstable/cluster/Reply.ts +7 -4
  1087. package/src/unstable/cluster/Runner.ts +1 -1
  1088. package/src/unstable/cluster/RunnerAddress.ts +1 -1
  1089. package/src/unstable/cluster/RunnerServer.ts +10 -13
  1090. package/src/unstable/cluster/Runners.ts +14 -12
  1091. package/src/unstable/cluster/ShardId.ts +2 -2
  1092. package/src/unstable/cluster/Sharding.ts +36 -27
  1093. package/src/unstable/cluster/ShardingConfig.ts +36 -37
  1094. package/src/unstable/cluster/SqlMessageStorage.ts +21 -18
  1095. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  1096. package/src/unstable/cluster/internal/entityManager.ts +36 -29
  1097. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  1098. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  1099. package/src/unstable/devtools/DevToolsClient.ts +23 -18
  1100. package/src/unstable/devtools/DevToolsSchema.ts +16 -3
  1101. package/src/unstable/encoding/Ndjson.ts +17 -17
  1102. package/src/unstable/encoding/Sse.ts +3 -5
  1103. package/src/unstable/eventlog/EventJournal.ts +2 -2
  1104. package/src/unstable/eventlog/EventLog.ts +3 -2
  1105. package/src/unstable/eventlog/SqlEventLogJournal.ts +2 -2
  1106. package/src/unstable/http/Cookies.ts +94 -11
  1107. package/src/unstable/http/Etag.ts +5 -3
  1108. package/src/unstable/http/Headers.ts +68 -18
  1109. package/src/unstable/http/HttpClient.ts +376 -34
  1110. package/src/unstable/http/HttpClientRequest.ts +151 -39
  1111. package/src/unstable/http/HttpClientResponse.ts +12 -6
  1112. package/src/unstable/http/HttpEffect.ts +54 -68
  1113. package/src/unstable/http/HttpIncomingMessage.ts +3 -2
  1114. package/src/unstable/http/HttpMethod.ts +16 -4
  1115. package/src/unstable/http/HttpMiddleware.ts +25 -39
  1116. package/src/unstable/http/HttpPlatform.ts +3 -2
  1117. package/src/unstable/http/HttpRouter.ts +9 -9
  1118. package/src/unstable/http/HttpServer.ts +3 -9
  1119. package/src/unstable/http/HttpServerError.ts +45 -47
  1120. package/src/unstable/http/HttpServerRequest.ts +407 -16
  1121. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  1122. package/src/unstable/http/HttpServerResponse.ts +345 -7
  1123. package/src/unstable/http/HttpStaticServer.ts +456 -0
  1124. package/src/unstable/http/HttpTraceContext.ts +31 -17
  1125. package/src/unstable/http/Multipart.ts +2 -2
  1126. package/src/unstable/http/Url.ts +650 -0
  1127. package/src/unstable/http/UrlParams.ts +31 -19
  1128. package/src/unstable/http/index.ts +10 -0
  1129. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  1130. package/src/unstable/httpapi/HttpApi.ts +6 -6
  1131. package/src/unstable/httpapi/HttpApiBuilder.ts +106 -41
  1132. package/src/unstable/httpapi/HttpApiClient.ts +180 -28
  1133. package/src/unstable/httpapi/HttpApiEndpoint.ts +216 -104
  1134. package/src/unstable/httpapi/HttpApiError.ts +108 -30
  1135. package/src/unstable/httpapi/HttpApiGroup.ts +7 -6
  1136. package/src/unstable/httpapi/HttpApiMiddleware.ts +83 -22
  1137. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  1138. package/src/unstable/httpapi/HttpApiSchema.ts +20 -2
  1139. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  1140. package/src/unstable/httpapi/OpenApi.ts +43 -29
  1141. package/src/unstable/observability/Otlp.ts +12 -12
  1142. package/src/unstable/observability/OtlpExporter.ts +8 -5
  1143. package/src/unstable/observability/OtlpLogger.ts +13 -9
  1144. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  1145. package/src/unstable/observability/OtlpTracer.ts +12 -8
  1146. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  1147. package/src/unstable/persistence/Persistable.ts +3 -3
  1148. package/src/unstable/persistence/PersistedCache.ts +20 -9
  1149. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  1150. package/src/unstable/persistence/Persistence.ts +3 -3
  1151. package/src/unstable/persistence/RateLimiter.ts +4 -4
  1152. package/src/unstable/process/ChildProcess.ts +6 -208
  1153. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  1154. package/src/unstable/reactivity/Atom.ts +212 -54
  1155. package/src/unstable/reactivity/AtomHttpApi.ts +81 -41
  1156. package/src/unstable/reactivity/AtomRegistry.ts +66 -12
  1157. package/src/unstable/reactivity/AtomRpc.ts +51 -20
  1158. package/src/unstable/reactivity/Hydration.ts +112 -0
  1159. package/src/unstable/reactivity/index.ts +5 -0
  1160. package/src/unstable/rpc/Rpc.ts +11 -12
  1161. package/src/unstable/rpc/RpcClient.ts +22 -63
  1162. package/src/unstable/rpc/RpcGroup.ts +7 -7
  1163. package/src/unstable/rpc/RpcMiddleware.ts +15 -9
  1164. package/src/unstable/rpc/RpcSchema.ts +23 -5
  1165. package/src/unstable/rpc/RpcSerialization.ts +49 -11
  1166. package/src/unstable/rpc/RpcServer.ts +31 -35
  1167. package/src/unstable/rpc/Utils.ts +3 -2
  1168. package/src/unstable/schema/Model.ts +31 -0
  1169. package/src/unstable/schema/VariantSchema.ts +10 -10
  1170. package/src/unstable/socket/Socket.ts +31 -27
  1171. package/src/unstable/sql/Migrator.ts +7 -5
  1172. package/src/unstable/sql/SqlClient.ts +6 -4
  1173. package/src/unstable/sql/SqlError.ts +365 -11
  1174. package/src/unstable/sql/SqlModel.ts +5 -5
  1175. package/src/unstable/sql/SqlResolver.ts +17 -7
  1176. package/src/unstable/sql/SqlSchema.ts +42 -26
  1177. package/src/unstable/sql/Statement.ts +0 -1
  1178. package/src/unstable/workers/Worker.ts +2 -1
  1179. package/src/unstable/workflow/DurableClock.ts +8 -8
  1180. package/src/unstable/workflow/DurableDeferred.ts +8 -8
  1181. package/src/unstable/workflow/Workflow.ts +7 -3
  1182. package/src/unstable/workflow/WorkflowEngine.ts +211 -19
  1183. package/dist/NullOr.d.ts +0 -149
  1184. package/dist/NullOr.d.ts.map +0 -1
  1185. package/dist/NullOr.js +0 -152
  1186. package/dist/NullOr.js.map +0 -1
  1187. package/dist/encoding/Base64.d.ts +0 -67
  1188. package/dist/encoding/Base64.d.ts.map +0 -1
  1189. package/dist/encoding/Base64.js +0 -146
  1190. package/dist/encoding/Base64.js.map +0 -1
  1191. package/dist/encoding/Base64Url.d.ts +0 -60
  1192. package/dist/encoding/Base64Url.d.ts.map +0 -1
  1193. package/dist/encoding/Base64Url.js +0 -89
  1194. package/dist/encoding/Base64Url.js.map +0 -1
  1195. package/dist/encoding/EncodingError.d.ts +0 -31
  1196. package/dist/encoding/EncodingError.d.ts.map +0 -1
  1197. package/dist/encoding/EncodingError.js +0 -22
  1198. package/dist/encoding/EncodingError.js.map +0 -1
  1199. package/dist/encoding/Hex.d.ts +0 -61
  1200. package/dist/encoding/Hex.d.ts.map +0 -1
  1201. package/dist/encoding/Hex.js +0 -115
  1202. package/dist/encoding/Hex.js.map +0 -1
  1203. package/dist/encoding/index.d.ts +0 -26
  1204. package/dist/encoding/index.d.ts.map +0 -1
  1205. package/dist/encoding/index.js +0 -27
  1206. package/dist/encoding/index.js.map +0 -1
  1207. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  1208. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  1209. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  1210. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  1211. package/dist/unstable/cli/internal/completions/Completions.d.ts +0 -2
  1212. package/dist/unstable/cli/internal/completions/Completions.d.ts.map +0 -1
  1213. package/dist/unstable/cli/internal/completions/Completions.js +0 -23
  1214. package/dist/unstable/cli/internal/completions/Completions.js.map +0 -1
  1215. package/src/NullOr.ts +0 -204
  1216. package/src/encoding/Base64.ts +0 -366
  1217. package/src/encoding/Base64Url.ts +0 -104
  1218. package/src/encoding/EncodingError.ts +0 -35
  1219. package/src/encoding/Hex.ts +0 -390
  1220. package/src/encoding/index.ts +0 -31
  1221. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
  1222. package/src/unstable/cli/internal/completions/Completions.ts +0 -31
package/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@ absurd,
9
9
  /**
10
10
  * @since 2.0.0
11
11
  */
12
- coerceUnsafe,
12
+ cast,
13
13
  /**
14
14
  * @since 2.0.0
15
15
  */
@@ -428,6 +428,65 @@ export * as Chunk from "./Chunk.ts";
428
428
  */
429
429
  export * as Clock from "./Clock.ts";
430
430
  /**
431
+ * A module for combining two values of the same type into one.
432
+ *
433
+ * A `Combiner<A>` wraps a single binary function `(self: A, that: A) => A`.
434
+ * It describes *how* two values merge but carries no initial/empty value
435
+ * (for that, see {@link Reducer} which extends `Combiner` with an
436
+ * `initialValue`).
437
+ *
438
+ * ## Mental model
439
+ *
440
+ * - **Combiner** – an object with a `combine(self, that)` method that returns
441
+ * a value of the same type.
442
+ * - **Argument order** – `self` is the "left" / accumulator side, `that` is
443
+ * the "right" / incoming side.
444
+ * - **No identity element** – unlike a monoid, a `Combiner` does not require
445
+ * a neutral element. Use {@link Reducer} when you need one.
446
+ * - **Purity** – all combiners produced by this module are pure; they never
447
+ * mutate their arguments.
448
+ * - **Composability** – combiners can be lifted into `Option`, `Struct`,
449
+ * `Tuple`, and other container types via helpers in those modules.
450
+ *
451
+ * ## Common tasks
452
+ *
453
+ * - Create a combiner from any binary function → {@link make}
454
+ * - Swap argument order → {@link flip}
455
+ * - Pick the smaller / larger of two values → {@link min} / {@link max}
456
+ * - Always keep the first or last value → {@link first} / {@link last}
457
+ * - Ignore both values and return a fixed result → {@link constant}
458
+ * - Insert a separator between combined values → {@link intercalate}
459
+ *
460
+ * ## Gotchas
461
+ *
462
+ * - `min` and `max` require an `Order<A>`, not a raw comparator. Import from
463
+ * e.g. `Number.Order` or `String.Order`.
464
+ * - `intercalate` is curried: call it with the separator first, then pass the
465
+ * base combiner.
466
+ * - A `Reducer` (which adds `initialValue`) is also a valid `Combiner` — you
467
+ * can pass a `Reducer` anywhere a `Combiner` is expected.
468
+ *
469
+ * ## Quickstart
470
+ *
471
+ * **Example** (combining strings with a separator)
472
+ *
473
+ * ```ts
474
+ * import { Combiner, String } from "effect"
475
+ *
476
+ * const csv = Combiner.intercalate(",")(String.ReducerConcat)
477
+ *
478
+ * console.log(csv.combine("a", "b"))
479
+ * // Output: "a,b"
480
+ *
481
+ * console.log(csv.combine(csv.combine("a", "b"), "c"))
482
+ * // Output: "a,b,c"
483
+ * ```
484
+ *
485
+ * ## See also
486
+ *
487
+ * - {@link make} – the primary constructor
488
+ * - {@link Combiner} – the core interface
489
+ *
431
490
  * @since 4.0.0
432
491
  */
433
492
  export * as Combiner from "./Combiner.ts";
@@ -663,15 +722,75 @@ export * as Console from "./Console.ts";
663
722
  */
664
723
  export * as Cron from "./Cron.ts";
665
724
  /**
666
- * This module provides utilities for creating data types with structural equality
667
- * semantics. Unlike regular JavaScript objects, `Data` types support value-based
668
- * equality comparison using the `Equal` module.
725
+ * Immutable data constructors with discriminated-union support.
726
+ *
727
+ * The `Data` module provides base classes and factory functions for creating
728
+ * immutable value types with a `_tag` field for discriminated unions.
729
+ * It is the recommended way to define domain models, error types, and
730
+ * lightweight ADTs in Effect applications.
731
+ *
732
+ * ## Mental model
733
+ *
734
+ * - **`Class`** — base class for plain immutable data. Extend it with a type
735
+ * parameter to declare the fields. Instances are `Pipeable`.
736
+ * - **`TaggedClass`** — like `Class` but automatically adds a `readonly _tag`
737
+ * string literal field. Useful for single-variant types or ad-hoc tagged
738
+ * values.
739
+ * - **`TaggedEnum`** (type) + **`taggedEnum`** (value) — define a multi-variant
740
+ * discriminated union from a simple record. `taggedEnum()` returns per-variant
741
+ * constructors plus `$is` / `$match` helpers.
742
+ * - **`Error`** — like `Class` but extends `Cause.YieldableError`, so instances
743
+ * can be yielded inside `Effect.gen` to fail the effect.
744
+ * - **`TaggedError`** — like `TaggedClass` but extends `Cause.YieldableError`.
745
+ * Works with `Effect.catchTag` for tag-based error recovery.
746
+ *
747
+ * ## Common tasks
748
+ *
749
+ * - Define a simple value class → {@link Class}
750
+ * - Define a value class with a `_tag` → {@link TaggedClass}
751
+ * - Define a discriminated union with constructors → {@link TaggedEnum} + {@link taggedEnum}
752
+ * - Define a yieldable error → {@link Error}
753
+ * - Define a yieldable tagged error → {@link TaggedError}
754
+ * - Type-guard a tagged value → `$is` from {@link taggedEnum}
755
+ * - Pattern-match on a tagged union → `$match` from {@link taggedEnum}
756
+ *
757
+ * ## Gotchas
758
+ *
759
+ * - Variant records passed to `TaggedEnum` must **not** contain a `_tag` key;
760
+ * the `_tag` is added automatically from the record key.
761
+ * - When a class has no fields, the constructor argument is optional (`void`).
762
+ * - `taggedEnum()` creates **plain objects**, not class instances. If you need
763
+ * class-based variants, use `TaggedClass` or `TaggedError` instead.
764
+ * - `TaggedEnum.WithGenerics` supports up to 4 generic type parameters.
765
+ *
766
+ * ## Quickstart
767
+ *
768
+ * **Example** (tagged union with pattern matching)
669
769
  *
670
- * The main benefits of using `Data` types are:
671
- * - **Structural equality**: Two `Data` objects are equal if their contents are equal
672
- * - **Immutability**: `Data` types are designed to be immutable
673
- * - **Type safety**: Constructors ensure type safety and consistency
674
- * - **Effect integration**: Error types work seamlessly with Effect's error handling
770
+ * ```ts
771
+ * import { Data } from "effect"
772
+ *
773
+ * type Shape = Data.TaggedEnum<{
774
+ * Circle: { readonly radius: number }
775
+ * Rect: { readonly width: number; readonly height: number }
776
+ * }>
777
+ * const { Circle, Rect, $match } = Data.taggedEnum<Shape>()
778
+ *
779
+ * const area = $match({
780
+ * Circle: ({ radius }) => Math.PI * radius ** 2,
781
+ * Rect: ({ width, height }) => width * height
782
+ * })
783
+ *
784
+ * console.log(area(Circle({ radius: 5 })))
785
+ * // 78.53981633974483
786
+ * console.log(area(Rect({ width: 3, height: 4 })))
787
+ * // 12
788
+ * ```
789
+ *
790
+ * @see {@link Class} — plain immutable data class
791
+ * @see {@link TaggedEnum} — discriminated union type
792
+ * @see {@link taggedEnum} — discriminated union constructors
793
+ * @see {@link TaggedError} — yieldable tagged error class
675
794
  *
676
795
  * @since 2.0.0
677
796
  */
@@ -811,12 +930,14 @@ export * as Duration from "./Duration.ts";
811
930
  *
812
931
  * @example
813
932
  * ```ts
814
- * import { Effect } from "effect"
933
+ * import { Data, Effect } from "effect"
934
+ *
935
+ * class DiscountRateError extends Data.TaggedError("DiscountRateError")<{}> {}
815
936
  *
816
937
  * // Effect that may fail
817
938
  * const divide = (a: number, b: number) =>
818
939
  * b === 0
819
- * ? Effect.fail(new Error("Division by zero"))
940
+ * ? Effect.fail(new DiscountRateError())
820
941
  * : Effect.succeed(a / b)
821
942
  *
822
943
  * // Error handling
@@ -839,9 +960,79 @@ export * as Duration from "./Duration.ts";
839
960
  */
840
961
  export * as Effect from "./Effect.ts";
841
962
  /**
842
- * This module provides functionality for defining and working with equality between values.
843
- * It includes the `Equal` interface for types that can determine equality with other values
844
- * of the same type, and utilities for comparing values.
963
+ * Encoding & decoding for Base64 (RFC4648), Base64Url, and Hex.
964
+ *
965
+ * @since 4.0.0
966
+ */
967
+ export * as Encoding from "./Encoding.ts";
968
+ /**
969
+ * Structural and custom equality for Effect values.
970
+ *
971
+ * The `Equal` module provides deep structural comparison for primitives, plain
972
+ * objects, arrays, Maps, Sets, Dates, and RegExps. Types that implement the
973
+ * {@link Equal} interface can supply their own comparison logic while staying
974
+ * compatible with the rest of the ecosystem (HashMap, HashSet, etc.).
975
+ *
976
+ * ## Mental model
977
+ *
978
+ * - **Structural equality** — two values are equal when their contents match,
979
+ * not when they share the same reference.
980
+ * - **Hash-first shortcut** — before comparing fields, the module checks
981
+ * {@link Hash.hash}. If the hashes differ the objects are unequal without
982
+ * further traversal.
983
+ * - **Equal interface** — any object that implements both {@link symbol} (the
984
+ * equality method) and `Hash.symbol` (the hash method) can define custom
985
+ * comparison logic.
986
+ * - **Caching** — comparison results for object pairs are cached in a WeakMap.
987
+ * This makes repeated checks fast but **requires immutability** after the
988
+ * first comparison.
989
+ * - **By-reference opt-out** — {@link byReference} and {@link byReferenceUnsafe}
990
+ * let you switch individual objects back to reference equality when you need
991
+ * mutable identity semantics.
992
+ *
993
+ * ## Common tasks
994
+ *
995
+ * - Compare two values → {@link equals}
996
+ * - Check if a value implements `Equal` → {@link isEqual}
997
+ * - Use `equals` where an `Equivalence` is expected → {@link asEquivalence}
998
+ * - Implement custom equality on a class → implement {@link Equal} (see
999
+ * example on the interface)
1000
+ * - Opt an object out of structural equality → {@link byReference} /
1001
+ * {@link byReferenceUnsafe}
1002
+ *
1003
+ * ## Gotchas
1004
+ *
1005
+ * - Objects **must be treated as immutable** after their first equality check.
1006
+ * Results are cached; mutating an object afterwards yields stale results.
1007
+ * - `NaN` is considered equal to `NaN` (unlike `===`).
1008
+ * - Functions without an `Equal` implementation are compared by reference.
1009
+ * - Map and Set comparisons are order-independent but O(n²) in size.
1010
+ * - If only one of two objects implements `Equal`, they are never equal.
1011
+ *
1012
+ * ## Quickstart
1013
+ *
1014
+ * **Example** (basic structural comparison)
1015
+ *
1016
+ * ```ts
1017
+ * import { Equal } from "effect"
1018
+ *
1019
+ * // Primitives
1020
+ * console.log(Equal.equals(1, 1)) // true
1021
+ * console.log(Equal.equals("a", "b")) // false
1022
+ *
1023
+ * // Objects and arrays
1024
+ * console.log(Equal.equals({ x: 1 }, { x: 1 })) // true
1025
+ * console.log(Equal.equals([1, 2], [1, 2])) // true
1026
+ *
1027
+ * // Curried form
1028
+ * const is42 = Equal.equals(42)
1029
+ * console.log(is42(42)) // true
1030
+ * console.log(is42(0)) // false
1031
+ * ```
1032
+ *
1033
+ * @see {@link equals} — the main comparison function
1034
+ * @see {@link Equal} — the interface for custom equality
1035
+ * @see {@link Hash} — the companion hashing module
845
1036
  *
846
1037
  * @since 2.0.0
847
1038
  */
@@ -900,6 +1091,57 @@ export * as Equal from "./Equal.ts";
900
1091
  * @since 2.0.0
901
1092
  */
902
1093
  export * as Equivalence from "./Equivalence.ts";
1094
+ /**
1095
+ * Pluggable error reporting for Effect programs.
1096
+ *
1097
+ * Reporting is triggered by `Effect.withErrorReporting`,
1098
+ * `ErrorReporter.report`, or built-in reporting boundaries in the HTTP and
1099
+ * RPC server modules.
1100
+ *
1101
+ * Each reporter receives a structured callback with the failing `Cause`, a
1102
+ * pretty-printed `Error`, severity, and any extra attributes attached to the
1103
+ * original error — making it straightforward to forward failures to Sentry,
1104
+ * Datadog, or a custom logging backend.
1105
+ *
1106
+ * Use the annotation symbols (`ignore`, `severity`, `attributes`) on your
1107
+ * error classes to control reporting behavior per-error.
1108
+ *
1109
+ * @example
1110
+ * ```ts
1111
+ * import { Data, Effect, ErrorReporter } from "effect"
1112
+ *
1113
+ * // A reporter that logs to the console
1114
+ * const consoleReporter = ErrorReporter.make(({ error, severity }) => {
1115
+ * console.error(`[${severity}]`, error.message)
1116
+ * })
1117
+ *
1118
+ * // An error that should be ignored by reporters
1119
+ * class NotFoundError extends Data.TaggedError("NotFoundError")<{}> {
1120
+ * readonly [ErrorReporter.ignore] = true
1121
+ * }
1122
+ *
1123
+ * // An error with custom severity and attributes
1124
+ * class RateLimitError extends Data.TaggedError("RateLimitError")<{
1125
+ * readonly retryAfter: number
1126
+ * }> {
1127
+ * readonly [ErrorReporter.severity] = "Warn" as const
1128
+ * readonly [ErrorReporter.attributes] = {
1129
+ * retryAfter: this.retryAfter
1130
+ * }
1131
+ * }
1132
+ *
1133
+ * // Opt in to error reporting with Effect.withErrorReporting
1134
+ * const program = Effect.gen(function*() {
1135
+ * return yield* new RateLimitError({ retryAfter: 60 })
1136
+ * }).pipe(
1137
+ * Effect.withErrorReporting,
1138
+ * Effect.provide(ErrorReporter.layer([consoleReporter]))
1139
+ * )
1140
+ * ```
1141
+ *
1142
+ * @since 4.0.0
1143
+ */
1144
+ export * as ErrorReporter from "./ErrorReporter.ts";
903
1145
  /**
904
1146
  * @since 3.16.0
905
1147
  */
@@ -1093,6 +1335,57 @@ export * as FileSystem from "./FileSystem.ts";
1093
1335
  */
1094
1336
  export * as Filter from "./Filter.ts";
1095
1337
  /**
1338
+ * Utilities for converting arbitrary JavaScript values into human-readable
1339
+ * strings, with support for circular references, redaction, and common JS
1340
+ * types that `JSON.stringify` handles poorly.
1341
+ *
1342
+ * Mental model:
1343
+ * - A `Formatter<Value, Format>` is a callable `(value: Value) => Format`.
1344
+ * - {@link format} is the general-purpose pretty-printer: it handles
1345
+ * primitives, arrays, objects, `BigInt`, `Symbol`, `Date`, `RegExp`,
1346
+ * `Set`, `Map`, class instances, and circular references.
1347
+ * - {@link formatJson} is a safe `JSON.stringify` wrapper that silently
1348
+ * drops circular references and applies redaction.
1349
+ * - Both functions accept a `space` option for indentation control.
1350
+ *
1351
+ * Common tasks:
1352
+ * - Pretty-print any value for debugging / logging -> {@link format}
1353
+ * - Serialize to JSON safely (no circular throws) -> {@link formatJson}
1354
+ * - Format a single object property key -> {@link formatPropertyKey}
1355
+ * - Format a property path like `["a"]["b"]` -> {@link formatPath}
1356
+ * - Format a `Date` to ISO string safely -> {@link formatDate}
1357
+ *
1358
+ * Gotchas:
1359
+ * - {@link format} output is **not** valid JSON; use {@link formatJson} when
1360
+ * you need parseable JSON.
1361
+ * - {@link format} calls `toString()` on objects by default; pass
1362
+ * `ignoreToString: true` to disable.
1363
+ * - {@link formatJson} silently omits circular references (the key is
1364
+ * dropped from the output).
1365
+ * - Values implementing the `Redactable` protocol are automatically
1366
+ * redacted by both {@link format} and {@link formatJson}.
1367
+ *
1368
+ * **Example** (Pretty-print a value)
1369
+ *
1370
+ * ```ts
1371
+ * import { Formatter } from "effect"
1372
+ *
1373
+ * const obj = { name: "Alice", scores: [100, 97] }
1374
+ * console.log(Formatter.format(obj))
1375
+ * // {"name":"Alice","scores":[100,97]}
1376
+ *
1377
+ * console.log(Formatter.format(obj, { space: 2 }))
1378
+ * // {
1379
+ * // "name": "Alice",
1380
+ * // "scores": [
1381
+ * // 100,
1382
+ * // 97
1383
+ * // ]
1384
+ * // }
1385
+ * ```
1386
+ *
1387
+ * See also: {@link Formatter}, {@link format}, {@link formatJson}
1388
+ *
1096
1389
  * @since 4.0.0
1097
1390
  */
1098
1391
  export * as Formatter from "./Formatter.ts";
@@ -1217,7 +1510,7 @@ export * as Inspectable from "./Inspectable.ts";
1217
1510
  *
1218
1511
  * @example
1219
1512
  * ```ts
1220
- * import { Iterable } from "effect"
1513
+ * import { Iterable, Option } from "effect"
1221
1514
  *
1222
1515
  * // Create iterables
1223
1516
  * const numbers = Iterable.range(1, 5)
@@ -1227,7 +1520,7 @@ export * as Inspectable from "./Inspectable.ts";
1227
1520
  * console.log(Array.from(filtered)) // [6, 8, 10]
1228
1521
  *
1229
1522
  * // Infinite iterables
1230
- * const fibonacci = Iterable.unfold([0, 1], ([a, b]) => [a, [b, a + b]])
1523
+ * const fibonacci = Iterable.unfold([0, 1], ([a, b]) => Option.some([a, [b, a + b]]))
1231
1524
  * const first10 = Iterable.take(fibonacci, 10)
1232
1525
  * console.log(Array.from(first10)) // [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
1233
1526
  * ```
@@ -1345,9 +1638,96 @@ export * as JsonPatch from "./JsonPatch.ts";
1345
1638
  */
1346
1639
  export * as JsonPointer from "./JsonPointer.ts";
1347
1640
  /**
1641
+ * Convert JSON Schema documents between dialects (Draft-07, Draft-2020-12,
1642
+ * OpenAPI 3.0, OpenAPI 3.1). All dialects are normalized to an internal
1643
+ * `Document<"draft-2020-12">` representation before optional conversion to
1644
+ * an output dialect.
1645
+ *
1646
+ * ## Mental model
1647
+ *
1648
+ * - **JsonSchema** — a plain object with string keys; represents any single
1649
+ * JSON Schema node.
1650
+ * - **Dialect** — one of `"draft-07"`, `"draft-2020-12"`, `"openapi-3.1"`,
1651
+ * or `"openapi-3.0"`.
1652
+ * - **Document** — a structured container holding a root `schema`, its
1653
+ * companion `definitions`, and the target `dialect`. Definitions are
1654
+ * stored separately from the root schema so they can be relocated when
1655
+ * converting between dialects.
1656
+ * - **MultiDocument** — same as `Document` but carries multiple root
1657
+ * schemas (at least one). Useful when generating several schemas that
1658
+ * share a single definitions pool.
1659
+ * - **Definitions** — a `Record<string, JsonSchema>` keyed by definition
1660
+ * name. The ref pointer prefix depends on the dialect.
1661
+ * - **`from*` functions** — parse a raw JSON Schema object into the
1662
+ * canonical `Document<"draft-2020-12">`.
1663
+ * - **`to*` functions** — convert from the canonical representation to a
1664
+ * specific output dialect.
1665
+ *
1666
+ * ## Common tasks
1667
+ *
1668
+ * - Parse a Draft-07 schema → {@link fromSchemaDraft07}
1669
+ * - Parse a Draft-2020-12 schema → {@link fromSchemaDraft2020_12}
1670
+ * - Parse an OpenAPI 3.1 schema → {@link fromSchemaOpenApi3_1}
1671
+ * - Parse an OpenAPI 3.0 schema → {@link fromSchemaOpenApi3_0}
1672
+ * - Convert to Draft-07 output → {@link toDocumentDraft07}
1673
+ * - Convert to OpenAPI 3.1 output → {@link toMultiDocumentOpenApi3_1}
1674
+ * - Resolve a `$ref` against definitions → {@link resolve$ref}
1675
+ * - Inline the root `$ref` of a document → {@link resolveTopLevel$ref}
1676
+ *
1677
+ * ## Gotchas
1678
+ *
1679
+ * - All `from*` functions normalize to `Document<"draft-2020-12">`
1680
+ * regardless of the input dialect.
1681
+ * - Unsupported or unrecognized JSON Schema keywords are silently dropped
1682
+ * during conversion.
1683
+ * - Draft-07 tuple syntax (`items` as array + `additionalItems`) is
1684
+ * converted to 2020-12 form (`prefixItems` + `items`), and vice-versa.
1685
+ * - OpenAPI 3.0 `nullable: true` is expanded into `type` arrays or
1686
+ * `anyOf` unions. The `nullable` keyword is removed.
1687
+ * - OpenAPI 3.0 singular `example` is converted to `examples` (array).
1688
+ * - {@link resolve$ref} only looks up the last segment of the ref path in
1689
+ * the definitions map; it does not follow arbitrary JSON Pointer paths.
1690
+ *
1691
+ * ## Quickstart
1692
+ *
1693
+ * **Example** (Parse a Draft-07 schema and convert to Draft-07 output)
1694
+ *
1695
+ * ```ts
1696
+ * import { JsonSchema } from "effect"
1697
+ *
1698
+ * const raw: JsonSchema.JsonSchema = {
1699
+ * type: "object",
1700
+ * properties: {
1701
+ * name: { type: "string" }
1702
+ * },
1703
+ * required: ["name"]
1704
+ * }
1705
+ *
1706
+ * // Parse into canonical form
1707
+ * const doc = JsonSchema.fromSchemaDraft07(raw)
1708
+ *
1709
+ * // Convert back to Draft-07
1710
+ * const draft07 = JsonSchema.toDocumentDraft07(doc)
1711
+ *
1712
+ * console.log(draft07.dialect) // "draft-07"
1713
+ * console.log(draft07.schema) // { type: "object", properties: { name: { type: "string" } }, required: ["name"] }
1714
+ * ```
1715
+ *
1716
+ * ## See also
1717
+ *
1718
+ * - {@link Document}
1719
+ * - {@link MultiDocument}
1720
+ * - {@link fromSchemaDraft07}
1721
+ * - {@link toDocumentDraft07}
1722
+ * - {@link resolve$ref}
1723
+ *
1348
1724
  * @since 4.0.0
1349
1725
  */
1350
1726
  export * as JsonSchema from "./JsonSchema.ts";
1727
+ /**
1728
+ * @since 3.8.0
1729
+ */
1730
+ export * as Latch from "./Latch.ts";
1351
1731
  /**
1352
1732
  * A `Layer<ROut, E, RIn>` describes how to build one or more services in your
1353
1733
  * application. Services can be injected into effects via
@@ -1870,6 +2250,72 @@ export * as MutableList from "./MutableList.ts";
1870
2250
  * @category data-structures
1871
2251
  */
1872
2252
  export * as MutableRef from "./MutableRef.ts";
2253
+ /**
2254
+ * Lightweight wrapper types that prevent accidental mixing of structurally
2255
+ * identical values (e.g. `UserId` vs `OrderId`, both `string` at runtime).
2256
+ *
2257
+ * **Mental model**
2258
+ *
2259
+ * - **Newtype** — a compile-time wrapper around a **carrier** type (the
2260
+ * underlying primitive or object). At runtime the value is unchanged; the
2261
+ * tag exists only in the type system.
2262
+ * - **Key** — a unique string literal that distinguishes one newtype from
2263
+ * another (e.g. `"Label"`, `"UserId"`).
2264
+ * - **Carrier** — the underlying type the newtype wraps (e.g. `string`,
2265
+ * `number`).
2266
+ * - **Iso** — a lossless two-way conversion between a newtype and its carrier,
2267
+ * created with {@link makeIso}. Use `iso.set(carrier)` to wrap and
2268
+ * `iso.get(newtype)` to unwrap.
2269
+ *
2270
+ * **Common tasks**
2271
+ *
2272
+ * - Define a newtype → declare an `interface` extending
2273
+ * `Newtype.Newtype<Key, Carrier>`
2274
+ * - Wrap / unwrap values → {@link makeIso} (returns an `Optic.Iso`)
2275
+ * - Unwrap only → {@link value}
2276
+ * - Lift an `Equivalence` → {@link makeEquivalence}
2277
+ * - Lift an `Order` → {@link makeOrder}
2278
+ * - Lift a `Combiner` → {@link makeCombiner}
2279
+ * - Lift a `Reducer` → {@link makeReducer}
2280
+ *
2281
+ * **Gotchas**
2282
+ *
2283
+ * - Newtypes are **purely compile-time**. There is zero runtime overhead;
2284
+ * `value` and `makeIso` use identity casts.
2285
+ * - Two newtypes sharing the same key string will be assignable to each other.
2286
+ * Choose unique key strings.
2287
+ * - A newtype value is **not** assignable to its carrier type without
2288
+ * explicitly unwrapping via {@link value} or an iso.
2289
+ *
2290
+ * **Quickstart**
2291
+ *
2292
+ * **Example** (defining and using a newtype)
2293
+ *
2294
+ * ```ts
2295
+ * import { Newtype } from "effect"
2296
+ *
2297
+ * // 1. Define a newtype
2298
+ * interface Label extends Newtype.Newtype<"Label", string> {}
2299
+ *
2300
+ * // 2. Create an iso for wrapping/unwrapping
2301
+ * const labelIso = Newtype.makeIso<Label>()
2302
+ *
2303
+ * // 3. Wrap a raw string
2304
+ * const myLabel: Label = labelIso.set("hello")
2305
+ *
2306
+ * // 4. Unwrap back to string
2307
+ * const raw: string = labelIso.get(myLabel) // "hello"
2308
+ * ```
2309
+ *
2310
+ * **See also**
2311
+ *
2312
+ * - {@link Newtype} (the tagged interface)
2313
+ * - {@link makeIso} (wrap and unwrap)
2314
+ * - {@link value} (unwrap only)
2315
+ *
2316
+ * @since 4.0.0
2317
+ */
2318
+ export * as Newtype from "./Newtype.ts";
1873
2319
  /**
1874
2320
  * @since 2.0.0
1875
2321
  *
@@ -2001,36 +2447,6 @@ export * as MutableRef from "./MutableRef.ts";
2001
2447
  * ```
2002
2448
  */
2003
2449
  export * as NonEmptyIterable from "./NonEmptyIterable.ts";
2004
- /**
2005
- * This module provides small, allocation-free utilities for working with values of type
2006
- * `A | null`, where `null` means "no value".
2007
- *
2008
- * Why not `Option<A>`?
2009
- * In TypeScript, `Option<A>` is often unnecessary. If `null` already models absence
2010
- * in your domain, using `A | null` keeps types simple, avoids extra wrappers, and
2011
- * reduces overhead. The key is that `A` itself must not include `null`; in this
2012
- * module `null` is reserved to mean "no value".
2013
- *
2014
- * When to use `A | null`:
2015
- * - Absence can be represented by `null` in your domain model.
2016
- * - You do not need to distinguish between "no value" and "value is null".
2017
- * - You want straightforward ergonomics and zero extra allocations.
2018
- *
2019
- * When to prefer `Option<A>`:
2020
- * - You must distinguish `None` from `Some(null)` (that is, `null` is a valid
2021
- * payload and carries meaning on its own).
2022
- * - You need a tagged representation for serialization or pattern matching across
2023
- * boundaries where `null` would be ambiguous.
2024
- * - You want the richer `Option` API and are comfortable with the extra wrapper.
2025
- *
2026
- * Lawfulness note:
2027
- * All helpers treat `null` as absence. Do not use these utilities with payloads
2028
- * where `A` can itself be `null`, or you will lose information. If you need to
2029
- * carry `null` as a valid payload, use `Option<A>` instead.
2030
- *
2031
- * @since 4.0.0
2032
- */
2033
- export * as NullOr from "./NullOr.ts";
2034
2450
  /**
2035
2451
  * This module provides utility functions and type class instances for working with the `number` type in TypeScript.
2036
2452
  * It includes functions for basic arithmetic operations.
@@ -2039,11 +2455,100 @@ export * as NullOr from "./NullOr.ts";
2039
2455
  */
2040
2456
  export * as Number from "./Number.ts";
2041
2457
  /**
2042
- * Design: "pretty good" persistency.
2043
- * Real updates copy only the path; unrelated branches keep referential identity.
2044
- * No-op updates may still allocate a new root/parents — callers must not rely on identity for no-ops.
2458
+ * Composable, immutable accessors for reading and updating nested data
2459
+ * structures without mutation.
2460
+ *
2461
+ * **Mental model**
2462
+ *
2463
+ * - **Optic** — a first-class reference to a piece inside a larger structure.
2464
+ * Compose optics to reach deeply nested values.
2465
+ * - **Iso** — lossless two-way conversion (`get`/`set`) between `S` and `A`.
2466
+ * Extends both {@link Lens} and {@link Prism}.
2467
+ * - **Lens** — focuses on exactly one part of `S`. `get` always succeeds;
2468
+ * `replace` needs the original `S` to produce the updated whole.
2469
+ * - **Prism** — focuses on a part that may not be present (e.g. a union
2470
+ * variant). `getResult` can fail; `set` builds a new `S` from `A` alone.
2471
+ * - **Optional** — the most general optic: both reading and writing can fail.
2472
+ * - **Traversal** — focuses on zero or more elements of an array-like
2473
+ * structure. Technically `Optional<S, ReadonlyArray<A>>`.
2474
+ * - **Hierarchy** (strongest → weakest):
2475
+ * `Iso > Lens | Prism > Optional`. Composing a weaker optic with any other
2476
+ * produces the weaker kind.
2477
+ *
2478
+ * **Common tasks**
2479
+ *
2480
+ * - Start a chain → {@link id} (identity iso)
2481
+ * - Drill into a struct key → `.key("name")` / `.optionalKey("name")`
2482
+ * - Drill into a key that may not exist → `.at("name")`
2483
+ * - Narrow a tagged union → `.tag("MyVariant")`
2484
+ * - Narrow by type guard → `.refine(guard)`
2485
+ * - Add validation → `.check(Schema.isGreaterThan(0))`
2486
+ * - Filter out `undefined` → `.notUndefined()`
2487
+ * - Pick/omit struct keys → `.pick(["a","b"])` / `.omit(["c"])`
2488
+ * - Traverse array elements → `.forEach(el => el.key("field"))`
2489
+ * - Build an iso → {@link makeIso}
2490
+ * - Build a lens → {@link makeLens}
2491
+ * - Build a prism → {@link makePrism}, {@link fromChecks}
2492
+ * - Build an optional → {@link makeOptional}
2493
+ * - Focus into `Option.Some` → {@link some}
2494
+ * - Focus into `Result.Success`/`Failure` → {@link success}, {@link failure}
2495
+ * - Convert record ↔ entries → {@link entries}
2496
+ * - Extract all traversal elements → {@link getAll}
2497
+ *
2498
+ * **Gotchas**
2499
+ *
2500
+ * - Updates are structurally persistent: only nodes on the path are cloned.
2501
+ * Unrelated branches keep referential identity. However, **no-op updates
2502
+ * may still allocate** a new root — do not rely on reference identity to
2503
+ * detect no-ops.
2504
+ * - `replace` silently returns the original `S` when the optic cannot focus
2505
+ * (e.g. wrong tag). Use `replaceResult` for explicit failure.
2506
+ * - `modify` also returns the original `S` on focus failure — it never throws.
2507
+ * - `.key()` and `.optionalKey()` do not work on union types (compile error).
2508
+ * - Only plain objects (`Object.prototype` or `null` prototype) and arrays can
2509
+ * be cloned. Class instances cause a runtime error on `replace`/`modify`.
2510
+ *
2511
+ * **Quickstart**
2512
+ *
2513
+ * **Example** (reading and updating nested state)
2514
+ *
2515
+ * ```ts
2516
+ * import { Optic } from "effect"
2517
+ *
2518
+ * type State = { user: { name: string; age: number } }
2519
+ *
2520
+ * const _age = Optic.id<State>().key("user").key("age")
2521
+ *
2522
+ * const s1: State = { user: { name: "Alice", age: 30 } }
2523
+ *
2524
+ * // Read
2525
+ * console.log(_age.get(s1))
2526
+ * // Output: 30
2527
+ *
2528
+ * // Update immutably
2529
+ * const s2 = _age.replace(31, s1)
2530
+ * console.log(s2)
2531
+ * // Output: { user: { name: "Alice", age: 31 } }
2532
+ *
2533
+ * // Modify with a function
2534
+ * const s3 = _age.modify((n) => n + 1)(s1)
2535
+ * console.log(s3)
2536
+ * // Output: { user: { name: "Alice", age: 31 } }
2537
+ *
2538
+ * // Referential identity is preserved for unrelated branches
2539
+ * console.log(s2.user !== s1.user)
2540
+ * // Output: true (on the path)
2541
+ * ```
2542
+ *
2543
+ * **See also**
2544
+ *
2545
+ * - {@link id} — entry point for optic chains
2546
+ * - {@link Lens} / {@link Prism} / {@link Optional} — core optic types
2547
+ * - {@link Traversal} / {@link getAll} — multi-focus optics
2548
+ * - {@link some} / {@link success} / {@link failure} — built-in prisms
2045
2549
  *
2046
2550
  * @since 4.0.0
2551
+ * @module
2047
2552
  */
2048
2553
  export * as Optic from "./Optic.ts";
2049
2554
  /**
@@ -2079,7 +2584,7 @@ export * as Optic from "./Optic.ts";
2079
2584
  * **Gotchas**
2080
2585
  *
2081
2586
  * - `Option.some(null)` is a valid `Some`; use {@link fromNullishOr} to treat `null`/`undefined` as `None`
2082
- * - {@link filterMap} is an alias for {@link flatMap}
2587
+ * - {@link filterMap} uses a `Filter` callback that returns `Result`
2083
2588
  * - {@link getOrThrow} throws a generic `Error`; prefer {@link getOrThrowWith} for custom errors
2084
2589
  * - `None` is a singleton; compare with {@link isNone}, not `===`
2085
2590
  * - When yielded in `Effect.gen`, a `None` becomes a `NoSuchElementError` defect
@@ -2202,8 +2707,7 @@ export * as Order from "./Order.ts";
2202
2707
  */
2203
2708
  export * as Ordering from "./Ordering.ts";
2204
2709
  /**
2205
- * @since 3.19.4
2206
- * @experimental
2710
+ * @since 4.0.0
2207
2711
  */
2208
2712
  export * as PartitionedSemaphore from "./PartitionedSemaphore.ts";
2209
2713
  /**
@@ -2367,6 +2871,71 @@ export * as Redactable from "./Redactable.ts";
2367
2871
  */
2368
2872
  export * as Redacted from "./Redacted.ts";
2369
2873
  /**
2874
+ * A module for reducing collections of values into a single result.
2875
+ *
2876
+ * A `Reducer<A>` extends {@link Combiner.Combiner} by adding an
2877
+ * `initialValue` (identity element) and a `combineAll` method that folds an
2878
+ * entire collection. Think `Array.prototype.reduce`, but packaged as a
2879
+ * reusable, composable value.
2880
+ *
2881
+ * ## Mental model
2882
+ *
2883
+ * - **Reducer** – a {@link Combiner.Combiner} plus an `initialValue` and a
2884
+ * `combineAll` method.
2885
+ * - **initialValue** – the neutral/identity element. Combining any value with
2886
+ * `initialValue` should return the original value unchanged (e.g. `0` for
2887
+ * addition, `""` for string concatenation).
2888
+ * - **combineAll** – folds an `Iterable<A>` starting from `initialValue`.
2889
+ * When omitted from {@link make}, a default left-to-right fold is used.
2890
+ * - **Purity** – all reducers produced by this module are pure; they never
2891
+ * mutate their arguments.
2892
+ * - **Composability** – reducers can be lifted into `Option`, `Struct`,
2893
+ * `Tuple`, `Record`, and other container types via helpers in those modules.
2894
+ * - **Subtype of Combiner** – every `Reducer` is also a valid
2895
+ * `Combiner`, so you can pass a `Reducer` anywhere a `Combiner` is
2896
+ * expected.
2897
+ *
2898
+ * ## Common tasks
2899
+ *
2900
+ * - Create a reducer from a combine function and initial value → {@link make}
2901
+ * - Swap argument order → {@link flip}
2902
+ * - Combine two values without an initial value → use {@link Combiner.Combiner}
2903
+ * instead
2904
+ *
2905
+ * ## Gotchas
2906
+ *
2907
+ * - `combineAll` on an empty iterable returns `initialValue`, not an error.
2908
+ * - The default `combineAll` folds left-to-right. If your `combine` is not
2909
+ * associative, order matters. Pass a custom `combineAll` to {@link make} if
2910
+ * you need different traversal or short-circuiting.
2911
+ * - A `Reducer` is also a valid `Combiner` — but a `Combiner` is *not* a
2912
+ * `Reducer` (it lacks `initialValue`).
2913
+ *
2914
+ * ## Quickstart
2915
+ *
2916
+ * **Example** (summing a list of numbers)
2917
+ *
2918
+ * ```ts
2919
+ * import { Reducer } from "effect"
2920
+ *
2921
+ * const Sum = Reducer.make<number>((a, b) => a + b, 0)
2922
+ *
2923
+ * console.log(Sum.combine(3, 4))
2924
+ * // Output: 7
2925
+ *
2926
+ * console.log(Sum.combineAll([1, 2, 3, 4]))
2927
+ * // Output: 10
2928
+ *
2929
+ * console.log(Sum.combineAll([]))
2930
+ * // Output: 0
2931
+ * ```
2932
+ *
2933
+ * ## See also
2934
+ *
2935
+ * - {@link make} – the primary constructor
2936
+ * - {@link Reducer} – the core interface
2937
+ * - {@link Combiner.Combiner} – the parent interface (no `initialValue`)
2938
+ *
2370
2939
  * @since 4.0.0
2371
2940
  */
2372
2941
  export * as Reducer from "./Reducer.ts";
@@ -2557,7 +3126,7 @@ export * as Runtime from "./Runtime.ts";
2557
3126
  *
2558
3127
  * // Retry with exponential backoff
2559
3128
  * const retryPolicy = Schedule.exponential("100 millis", 2.0)
2560
- * .pipe(Schedule.compose(Schedule.recurs(3)))
3129
+ * .pipe(Schedule.both(Schedule.recurs(3)))
2561
3130
  *
2562
3131
  * const program = Effect.gen(function*() {
2563
3132
  * // This will retry up to 3 times with exponential backoff
@@ -2580,6 +3149,88 @@ export * as Schedule from "./Schedule.ts";
2580
3149
  */
2581
3150
  export * as Scheduler from "./Scheduler.ts";
2582
3151
  /**
3152
+ * Define data shapes, validate unknown input, and transform values between formats.
3153
+ *
3154
+ * ## Mental model
3155
+ *
3156
+ * - **Schema** — a description of a data shape. Every schema carries a decoded
3157
+ * *Type* (the value you work with) and an *Encoded* representation (the
3158
+ * serialized form, e.g. JSON).
3159
+ * - **Decoding** — turning unknown external data (API responses, form
3160
+ * submissions, config files) into typed, validated values.
3161
+ * - **Encoding** — turning typed values back into a serializable format.
3162
+ * - **Codec** — a schema that tracks both Type and Encoded, so it can decode
3163
+ * *and* encode. Most concrete schemas are Codecs.
3164
+ * - **Check / Filter** — a constraint attached to a schema (e.g. `isMinLength`,
3165
+ * `isGreaterThan`). Attach them with `.check(...)`.
3166
+ * - **Transformation** — a pair of functions (decode + encode) that convert
3167
+ * values between two schemas. Created with {@link decodeTo} / {@link encodeTo}.
3168
+ * - **Annotation** — metadata attached to a schema (title, description, custom
3169
+ * keys). Attach with `.annotate(...)`.
3170
+ *
3171
+ * ## Common tasks
3172
+ *
3173
+ * - Define a struct: {@link Struct}
3174
+ * - Define a union: {@link Union}, {@link TaggedUnion}, {@link Literals}
3175
+ * - Define an array: {@link Array}, {@link NonEmptyArray}
3176
+ * - Define a record: {@link Record}
3177
+ * - Define a tuple: {@link Tuple}, {@link TupleWithRest}
3178
+ * - Validate unknown data synchronously: {@link decodeUnknownSync}
3179
+ * - Validate unknown data (Effect): {@link decodeUnknownEffect}
3180
+ * - Encode a value: {@link encodeUnknownSync}, {@link encodeUnknownEffect}
3181
+ * - Type guard: {@link is}
3182
+ * - Assertion: {@link asserts}
3183
+ * - Add constraints: `.check(...)` with filters like {@link isMinLength},
3184
+ * {@link isGreaterThan}, {@link isPattern}, {@link isUUID}
3185
+ * - Transform between schemas: {@link decodeTo}, {@link encodeTo}
3186
+ * - Add a default for missing keys: {@link withDecodingDefault}, {@link withDecodingDefaultKey}
3187
+ * - Create branded types: {@link brand}
3188
+ * - Define classes with validation: {@link Class}, {@link TaggedClass}
3189
+ * - Define error classes: {@link ErrorClass}, {@link TaggedErrorClass}
3190
+ * - Generate JSON Schema: {@link toJsonSchemaDocument}
3191
+ * - Generate test data: {@link toArbitrary}
3192
+ * - Derive equivalence: {@link toEquivalence}
3193
+ *
3194
+ * ## Gotchas
3195
+ *
3196
+ * - `Schema.optional` creates `T | undefined` (key can be missing *or*
3197
+ * `undefined`). Use `Schema.optionalKey` for exact optional properties.
3198
+ * - `decodeTo` is curried: use `from.pipe(Schema.decodeTo(to, ...))`.
3199
+ * - `decodeUnknownSync` throws on failure. Use `decodeUnknownExit` or
3200
+ * `decodeUnknownOption` for non-throwing alternatives.
3201
+ * - Filters do not change the TypeScript type. Use {@link refine} or
3202
+ * {@link brand} to narrow the type.
3203
+ * - Recursive schemas require {@link suspend} to avoid infinite loops.
3204
+ *
3205
+ * ## Quickstart
3206
+ *
3207
+ * **Example** (Validate a user object)
3208
+ *
3209
+ * ```ts
3210
+ * import { Schema } from "effect"
3211
+ *
3212
+ * const User = Schema.Struct({
3213
+ * name: Schema.String.check(Schema.isMinLength(1)),
3214
+ * age: Schema.Number.check(Schema.isGreaterThanOrEqualTo(0)),
3215
+ * email: Schema.optionalKey(Schema.String)
3216
+ * })
3217
+ *
3218
+ * // Decode unknown input — throws on failure
3219
+ * const user = Schema.decodeUnknownSync(User)({
3220
+ * name: "Alice",
3221
+ * age: 30
3222
+ * })
3223
+ *
3224
+ * console.log(user)
3225
+ * // { name: "Alice", age: 30 }
3226
+ * ```
3227
+ *
3228
+ * @see {@link Schema} — type-level view tracking only the decoded Type
3229
+ * @see {@link Codec} — type-level view tracking both Type and Encoded
3230
+ * @see {@link Struct} — define object shapes
3231
+ * @see {@link decodeUnknownSync} — synchronous validation
3232
+ * @see {@link decodeTo} — schema transformations
3233
+ *
2583
3234
  * @since 4.0.0
2584
3235
  */
2585
3236
  export * as Schema from "./Schema.ts";
@@ -3031,6 +3682,10 @@ export * as ScopedCache from "./ScopedCache.ts";
3031
3682
  * @since 2.0.0
3032
3683
  */
3033
3684
  export * as ScopedRef from "./ScopedRef.ts";
3685
+ /**
3686
+ * @since 2.0.0
3687
+ */
3688
+ export * as Semaphore from "./Semaphore.ts";
3034
3689
  /**
3035
3690
  * This module provides a data structure called `ServiceMap` that can be used
3036
3691
  * for dependency injection in effectful programs. It is essentially a table
@@ -3265,6 +3920,13 @@ export * as Tuple from "./Tuple.ts";
3265
3920
  * @since 4.0.0
3266
3921
  */
3267
3922
  export * as TxChunk from "./TxChunk.ts";
3923
+ /**
3924
+ * A transactional deferred value — a write-once cell that can be read within transactions.
3925
+ * Readers retry until a value is set; once set, the value is immutable.
3926
+ *
3927
+ * @since 4.0.0
3928
+ */
3929
+ export * as TxDeferred from "./TxDeferred.ts";
3268
3930
  /**
3269
3931
  * @since 2.0.0
3270
3932
  */
@@ -3273,6 +3935,23 @@ export * as TxHashMap from "./TxHashMap.ts";
3273
3935
  * @since 2.0.0
3274
3936
  */
3275
3937
  export * as TxHashSet from "./TxHashSet.ts";
3938
+ /**
3939
+ * A transactional priority queue. Elements are dequeued in order determined by the
3940
+ * provided `Order` instance. All operations participate in the STM transaction system.
3941
+ *
3942
+ * @since 4.0.0
3943
+ */
3944
+ export * as TxPriorityQueue from "./TxPriorityQueue.ts";
3945
+ /**
3946
+ * TxPubSub is a transactional publish/subscribe hub that provides Software Transactional Memory
3947
+ * (STM) semantics for message broadcasting. Publishers broadcast messages to all current
3948
+ * subscribers, with each subscriber receiving its own copy of every published message.
3949
+ *
3950
+ * Supports multiple queue strategies: bounded, unbounded, dropping, and sliding.
3951
+ *
3952
+ * @since 4.0.0
3953
+ */
3954
+ export * as TxPubSub from "./TxPubSub.ts";
3276
3955
  /**
3277
3956
  * TxQueue is a transactional queue data structure that provides Software Transactional Memory (STM)
3278
3957
  * semantics for queue operations. It uses TxRef for transactional state management and supports
@@ -3285,6 +3964,15 @@ export * as TxHashSet from "./TxHashSet.ts";
3285
3964
  * @since 4.0.0
3286
3965
  */
3287
3966
  export * as TxQueue from "./TxQueue.ts";
3967
+ /**
3968
+ * TxReentrantLock is a transactional read/write lock with reentrant semantics using Software
3969
+ * Transactional Memory (STM). Multiple readers can hold the lock concurrently, OR a single
3970
+ * writer can hold exclusive access. A fiber holding a write lock may acquire additional
3971
+ * read or write locks (reentrancy).
3972
+ *
3973
+ * @since 4.0.0
3974
+ */
3975
+ export * as TxReentrantLock from "./TxReentrantLock.ts";
3288
3976
  /**
3289
3977
  * TxRef is a transactional value, it can be read and modified within the body of a transaction.
3290
3978
  *
@@ -3300,6 +3988,13 @@ export * as TxRef from "./TxRef.ts";
3300
3988
  * @since 4.0.0
3301
3989
  */
3302
3990
  export * as TxSemaphore from "./TxSemaphore.ts";
3991
+ /**
3992
+ * TxSubscriptionRef is a TxRef that allows subscribing to all committed changes. Subscribers
3993
+ * receive the current value followed by every subsequent update via a transactional queue.
3994
+ *
3995
+ * @since 4.0.0
3996
+ */
3997
+ export * as TxSubscriptionRef from "./TxSubscriptionRef.ts";
3303
3998
  /**
3304
3999
  * Type-level utility types for TypeScript.
3305
4000
  *
@@ -3390,6 +4085,62 @@ export * as UndefinedOr from "./UndefinedOr.ts";
3390
4085
  */
3391
4086
  export * as Unify from "./Unify.ts";
3392
4087
  /**
4088
+ * Internal utilities for the Effect ecosystem's generator-based syntax and
4089
+ * higher-kinded type machinery.
4090
+ *
4091
+ * ## Mental model
4092
+ *
4093
+ * - **SingleShotGen** — an `IterableIterator` wrapper that yields its value
4094
+ * exactly once. Used internally by `[Symbol.iterator]()` on Effect, Option,
4095
+ * Result, and other yieldable types so they work inside generator functions.
4096
+ * - **Gen** — a type-level signature for generator-based monadic composition
4097
+ * (`gen` functions). Parametric over any `TypeLambda` so each module
4098
+ * (Effect, Option, Result, ...) can expose its own `gen` with correct types.
4099
+ * - **Variance** — a type-level marker that encodes the variance (covariant,
4100
+ * contravariant, invariant) of a `TypeLambda`'s type parameters.
4101
+ * Used by {@link Gen} for type inference.
4102
+ *
4103
+ * ## Common tasks
4104
+ *
4105
+ * - Make a type yieldable in generators -> implement `[Symbol.iterator]()` returning a {@link SingleShotGen}
4106
+ * - Define a generator-based API for a new TypeLambda -> type it as {@link Gen}`<MyTypeLambda>`
4107
+ * - Encode variance for a higher-kinded type -> use {@link Variance}
4108
+ *
4109
+ * ## Gotchas
4110
+ *
4111
+ * - {@link SingleShotGen} yields its value only on the first `.next()` call.
4112
+ * Calling `.next()` again returns `{ done: true }`. Iterating the same
4113
+ * instance twice will skip the value on the second pass; call
4114
+ * `[Symbol.iterator]()` to get a fresh iterator.
4115
+ * - {@link Gen} and {@link Variance} are pure type-level constructs — they
4116
+ * have no runtime representation.
4117
+ *
4118
+ * ## Quickstart
4119
+ *
4120
+ * **Example** (Using SingleShotGen to make a type yieldable)
4121
+ *
4122
+ * ```ts
4123
+ * import { Utils } from "effect"
4124
+ *
4125
+ * class MyWrapper<A> {
4126
+ * constructor(readonly value: A) {}
4127
+ * [Symbol.iterator]() {
4128
+ * return new Utils.SingleShotGen<MyWrapper<A>, A>(this)
4129
+ * }
4130
+ * }
4131
+ *
4132
+ * const w = new MyWrapper(42)
4133
+ * const iter = w[Symbol.iterator]()
4134
+ * console.log(iter.next(undefined as any))
4135
+ * // { value: MyWrapper { value: 42 }, done: false }
4136
+ * console.log(iter.next(42))
4137
+ * // { value: 42, done: true }
4138
+ * ```
4139
+ *
4140
+ * @see {@link SingleShotGen}
4141
+ * @see {@link Gen}
4142
+ * @see {@link Variance}
4143
+ *
3393
4144
  * @since 2.0.0
3394
4145
  */
3395
4146
  export * as Utils from "./Utils.ts";