effect 4.0.0-beta.101 → 4.0.0-beta.103

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 (1580) hide show
  1. package/dist/Array.d.ts +971 -1037
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +462 -412
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +433 -756
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +200 -325
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +207 -267
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +107 -135
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Boolean.d.ts +146 -188
  14. package/dist/Boolean.d.ts.map +1 -1
  15. package/dist/Boolean.js +64 -84
  16. package/dist/Boolean.js.map +1 -1
  17. package/dist/Brand.js.map +1 -1
  18. package/dist/Cache.d.ts +405 -254
  19. package/dist/Cache.d.ts.map +1 -1
  20. package/dist/Cache.js +166 -101
  21. package/dist/Cache.js.map +1 -1
  22. package/dist/Cause.d.ts +167 -277
  23. package/dist/Cause.d.ts.map +1 -1
  24. package/dist/Cause.js +122 -176
  25. package/dist/Cause.js.map +1 -1
  26. package/dist/Channel.d.ts +729 -768
  27. package/dist/Channel.d.ts.map +1 -1
  28. package/dist/Channel.js +541 -449
  29. package/dist/Channel.js.map +1 -1
  30. package/dist/ChannelSchema.d.ts +1 -1
  31. package/dist/ChannelSchema.d.ts.map +1 -1
  32. package/dist/ChannelSchema.js.map +1 -1
  33. package/dist/Chunk.d.ts +834 -1173
  34. package/dist/Chunk.d.ts.map +1 -1
  35. package/dist/Chunk.js +326 -439
  36. package/dist/Chunk.js.map +1 -1
  37. package/dist/Clock.d.ts +180 -49
  38. package/dist/Clock.d.ts.map +1 -1
  39. package/dist/Clock.js +96 -31
  40. package/dist/Clock.js.map +1 -1
  41. package/dist/Combiner.d.ts +20 -33
  42. package/dist/Combiner.d.ts.map +1 -1
  43. package/dist/Combiner.js +18 -30
  44. package/dist/Combiner.js.map +1 -1
  45. package/dist/Config.d.ts +226 -174
  46. package/dist/Config.d.ts.map +1 -1
  47. package/dist/Config.js +339 -267
  48. package/dist/Config.js.map +1 -1
  49. package/dist/ConfigProvider.d.ts +194 -68
  50. package/dist/ConfigProvider.d.ts.map +1 -1
  51. package/dist/ConfigProvider.js +122 -87
  52. package/dist/ConfigProvider.js.map +1 -1
  53. package/dist/Console.d.ts +233 -33
  54. package/dist/Console.d.ts.map +1 -1
  55. package/dist/Console.js +232 -32
  56. package/dist/Console.js.map +1 -1
  57. package/dist/Context.d.ts +151 -274
  58. package/dist/Context.d.ts.map +1 -1
  59. package/dist/Context.js +171 -214
  60. package/dist/Context.js.map +1 -1
  61. package/dist/Cron.d.ts +68 -77
  62. package/dist/Cron.d.ts.map +1 -1
  63. package/dist/Cron.js +57 -66
  64. package/dist/Cron.js.map +1 -1
  65. package/dist/Crypto.d.ts +13 -15
  66. package/dist/Crypto.d.ts.map +1 -1
  67. package/dist/Crypto.js +9 -10
  68. package/dist/Crypto.js.map +1 -1
  69. package/dist/Data.d.ts +60 -80
  70. package/dist/Data.d.ts.map +1 -1
  71. package/dist/Data.js +18 -24
  72. package/dist/Data.js.map +1 -1
  73. package/dist/DateTime.d.ts +562 -660
  74. package/dist/DateTime.d.ts.map +1 -1
  75. package/dist/DateTime.js +307 -362
  76. package/dist/DateTime.js.map +1 -1
  77. package/dist/Deferred.d.ts +253 -256
  78. package/dist/Deferred.d.ts.map +1 -1
  79. package/dist/Deferred.js +104 -96
  80. package/dist/Deferred.js.map +1 -1
  81. package/dist/Duration.d.ts +216 -308
  82. package/dist/Duration.d.ts.map +1 -1
  83. package/dist/Duration.js +132 -186
  84. package/dist/Duration.js.map +1 -1
  85. package/dist/Effect.d.ts +2897 -3342
  86. package/dist/Effect.d.ts.map +1 -1
  87. package/dist/Effect.js +1383 -1580
  88. package/dist/Effect.js.map +1 -1
  89. package/dist/Effectable.js.map +1 -1
  90. package/dist/Encoding.d.ts +22 -40
  91. package/dist/Encoding.d.ts.map +1 -1
  92. package/dist/Encoding.js +22 -40
  93. package/dist/Encoding.js.map +1 -1
  94. package/dist/Equal.d.ts +33 -37
  95. package/dist/Equal.d.ts.map +1 -1
  96. package/dist/Equal.js +29 -21
  97. package/dist/Equal.js.map +1 -1
  98. package/dist/Equivalence.d.ts +103 -105
  99. package/dist/Equivalence.d.ts.map +1 -1
  100. package/dist/Equivalence.js +77 -79
  101. package/dist/Equivalence.js.map +1 -1
  102. package/dist/ErrorReporter.d.ts +51 -27
  103. package/dist/ErrorReporter.d.ts.map +1 -1
  104. package/dist/ErrorReporter.js +50 -26
  105. package/dist/ErrorReporter.js.map +1 -1
  106. package/dist/ExecutionPlan.d.ts +13 -55
  107. package/dist/ExecutionPlan.d.ts.map +1 -1
  108. package/dist/ExecutionPlan.js +7 -28
  109. package/dist/ExecutionPlan.js.map +1 -1
  110. package/dist/Exit.d.ts +116 -192
  111. package/dist/Exit.d.ts.map +1 -1
  112. package/dist/Exit.js +82 -130
  113. package/dist/Exit.js.map +1 -1
  114. package/dist/Fiber.d.ts +82 -146
  115. package/dist/Fiber.d.ts.map +1 -1
  116. package/dist/Fiber.js +48 -87
  117. package/dist/Fiber.js.map +1 -1
  118. package/dist/FiberHandle.d.ts +152 -105
  119. package/dist/FiberHandle.d.ts.map +1 -1
  120. package/dist/FiberHandle.js +109 -75
  121. package/dist/FiberHandle.js.map +1 -1
  122. package/dist/FiberMap.d.ts +213 -168
  123. package/dist/FiberMap.d.ts.map +1 -1
  124. package/dist/FiberMap.js +114 -89
  125. package/dist/FiberMap.js.map +1 -1
  126. package/dist/FiberSet.d.ts +123 -81
  127. package/dist/FiberSet.d.ts.map +1 -1
  128. package/dist/FiberSet.js +85 -59
  129. package/dist/FiberSet.js.map +1 -1
  130. package/dist/FileSystem.d.ts +153 -264
  131. package/dist/FileSystem.d.ts.map +1 -1
  132. package/dist/FileSystem.js +42 -147
  133. package/dist/FileSystem.js.map +1 -1
  134. package/dist/Filter.d.ts +61 -33
  135. package/dist/Filter.d.ts.map +1 -1
  136. package/dist/Filter.js +26 -15
  137. package/dist/Filter.js.map +1 -1
  138. package/dist/Formatter.d.ts +25 -33
  139. package/dist/Formatter.d.ts.map +1 -1
  140. package/dist/Formatter.js +48 -49
  141. package/dist/Formatter.js.map +1 -1
  142. package/dist/Function.d.ts +76 -145
  143. package/dist/Function.d.ts.map +1 -1
  144. package/dist/Function.js +40 -57
  145. package/dist/Function.js.map +1 -1
  146. package/dist/Graph.d.ts +360 -714
  147. package/dist/Graph.d.ts.map +1 -1
  148. package/dist/Graph.js +168 -297
  149. package/dist/Graph.js.map +1 -1
  150. package/dist/HKT.d.ts +12 -6
  151. package/dist/HKT.d.ts.map +1 -1
  152. package/dist/Hash.d.ts +47 -83
  153. package/dist/Hash.d.ts.map +1 -1
  154. package/dist/Hash.js +46 -68
  155. package/dist/Hash.js.map +1 -1
  156. package/dist/HashMap.d.ts +319 -411
  157. package/dist/HashMap.d.ts.map +1 -1
  158. package/dist/HashMap.js +122 -166
  159. package/dist/HashMap.js.map +1 -1
  160. package/dist/HashRing.d.ts.map +1 -1
  161. package/dist/HashRing.js +1 -0
  162. package/dist/HashRing.js.map +1 -1
  163. package/dist/HashSet.d.ts +177 -284
  164. package/dist/HashSet.d.ts.map +1 -1
  165. package/dist/HashSet.js +68 -109
  166. package/dist/HashSet.js.map +1 -1
  167. package/dist/Inspectable.d.ts +12 -12
  168. package/dist/Inspectable.js +8 -8
  169. package/dist/Inspectable.js.map +1 -1
  170. package/dist/Iterable.d.ts +620 -786
  171. package/dist/Iterable.d.ts.map +1 -1
  172. package/dist/Iterable.js +230 -307
  173. package/dist/Iterable.js.map +1 -1
  174. package/dist/JsonPatch.d.ts +11 -13
  175. package/dist/JsonPatch.d.ts.map +1 -1
  176. package/dist/JsonPatch.js +46 -103
  177. package/dist/JsonPatch.js.map +1 -1
  178. package/dist/JsonPointer.d.ts +8 -8
  179. package/dist/JsonPointer.js +8 -8
  180. package/dist/JsonPointer.js.map +1 -1
  181. package/dist/JsonSchema.d.ts +98 -44
  182. package/dist/JsonSchema.d.ts.map +1 -1
  183. package/dist/JsonSchema.js +300 -239
  184. package/dist/JsonSchema.js.map +1 -1
  185. package/dist/Latch.d.ts +23 -35
  186. package/dist/Latch.d.ts.map +1 -1
  187. package/dist/Latch.js +16 -28
  188. package/dist/Latch.js.map +1 -1
  189. package/dist/Layer.d.ts +359 -260
  190. package/dist/Layer.d.ts.map +1 -1
  191. package/dist/Layer.js +195 -175
  192. package/dist/Layer.js.map +1 -1
  193. package/dist/LayerMap.d.ts +42 -29
  194. package/dist/LayerMap.d.ts.map +1 -1
  195. package/dist/LayerMap.js +31 -21
  196. package/dist/LayerMap.js.map +1 -1
  197. package/dist/LayerRef.d.ts +6 -2
  198. package/dist/LayerRef.d.ts.map +1 -1
  199. package/dist/LayerRef.js +6 -2
  200. package/dist/LayerRef.js.map +1 -1
  201. package/dist/LogLevel.d.ts +114 -214
  202. package/dist/LogLevel.d.ts.map +1 -1
  203. package/dist/LogLevel.js +41 -76
  204. package/dist/LogLevel.js.map +1 -1
  205. package/dist/Logger.d.ts +218 -467
  206. package/dist/Logger.d.ts.map +1 -1
  207. package/dist/Logger.js +207 -452
  208. package/dist/Logger.js.map +1 -1
  209. package/dist/ManagedRuntime.d.ts +16 -5
  210. package/dist/ManagedRuntime.d.ts.map +1 -1
  211. package/dist/ManagedRuntime.js +10 -5
  212. package/dist/ManagedRuntime.js.map +1 -1
  213. package/dist/Match.d.ts +217 -252
  214. package/dist/Match.d.ts.map +1 -1
  215. package/dist/Match.js +150 -183
  216. package/dist/Match.js.map +1 -1
  217. package/dist/Metric.d.ts +442 -993
  218. package/dist/Metric.d.ts.map +1 -1
  219. package/dist/Metric.js +202 -645
  220. package/dist/Metric.js.map +1 -1
  221. package/dist/MutableHashMap.d.ts +144 -173
  222. package/dist/MutableHashMap.d.ts.map +1 -1
  223. package/dist/MutableHashMap.js +68 -79
  224. package/dist/MutableHashMap.js.map +1 -1
  225. package/dist/MutableHashSet.d.ts +84 -89
  226. package/dist/MutableHashSet.d.ts.map +1 -1
  227. package/dist/MutableHashSet.js +44 -47
  228. package/dist/MutableHashSet.js.map +1 -1
  229. package/dist/MutableList.d.ts +71 -370
  230. package/dist/MutableList.d.ts.map +1 -1
  231. package/dist/MutableList.js +59 -284
  232. package/dist/MutableList.js.map +1 -1
  233. package/dist/MutableRef.d.ts +420 -243
  234. package/dist/MutableRef.d.ts.map +1 -1
  235. package/dist/MutableRef.js +209 -120
  236. package/dist/MutableRef.js.map +1 -1
  237. package/dist/Newtype.d.ts +21 -14
  238. package/dist/Newtype.d.ts.map +1 -1
  239. package/dist/Newtype.js +15 -13
  240. package/dist/Newtype.js.map +1 -1
  241. package/dist/NonEmptyIterable.d.ts +7 -137
  242. package/dist/NonEmptyIterable.d.ts.map +1 -1
  243. package/dist/NonEmptyIterable.js +5 -93
  244. package/dist/NonEmptyIterable.js.map +1 -1
  245. package/dist/Number.d.ts +196 -233
  246. package/dist/Number.d.ts.map +1 -1
  247. package/dist/Number.js +90 -109
  248. package/dist/Number.js.map +1 -1
  249. package/dist/Optic.d.ts +97 -189
  250. package/dist/Optic.d.ts.map +1 -1
  251. package/dist/Optic.js +190 -292
  252. package/dist/Optic.js.map +1 -1
  253. package/dist/Option.d.ts +447 -812
  254. package/dist/Option.d.ts.map +1 -1
  255. package/dist/Option.js +213 -393
  256. package/dist/Option.js.map +1 -1
  257. package/dist/Order.d.ts +109 -109
  258. package/dist/Order.js +91 -91
  259. package/dist/Order.js.map +1 -1
  260. package/dist/Ordering.d.ts +20 -23
  261. package/dist/Ordering.d.ts.map +1 -1
  262. package/dist/Ordering.js +8 -9
  263. package/dist/Ordering.js.map +1 -1
  264. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  265. package/dist/PartitionedSemaphore.js +1 -4
  266. package/dist/PartitionedSemaphore.js.map +1 -1
  267. package/dist/Path.d.ts +38 -41
  268. package/dist/Path.d.ts.map +1 -1
  269. package/dist/Path.js +3 -4
  270. package/dist/Path.js.map +1 -1
  271. package/dist/Pipeable.d.ts +6 -5
  272. package/dist/Pipeable.d.ts.map +1 -1
  273. package/dist/Pipeable.js +2 -2
  274. package/dist/Pipeable.js.map +1 -1
  275. package/dist/PlatformError.d.ts +4 -4
  276. package/dist/PlatformError.js +3 -3
  277. package/dist/PlatformError.js.map +1 -1
  278. package/dist/Pool.d.ts +4 -2
  279. package/dist/Pool.d.ts.map +1 -1
  280. package/dist/Pool.js +4 -2
  281. package/dist/Pool.js.map +1 -1
  282. package/dist/Predicate.d.ts +200 -181
  283. package/dist/Predicate.d.ts.map +1 -1
  284. package/dist/Predicate.js +100 -108
  285. package/dist/Predicate.js.map +1 -1
  286. package/dist/PrimaryKey.d.ts +7 -7
  287. package/dist/PrimaryKey.js +5 -5
  288. package/dist/PrimaryKey.js.map +1 -1
  289. package/dist/PubSub.d.ts +425 -494
  290. package/dist/PubSub.d.ts.map +1 -1
  291. package/dist/PubSub.js +373 -362
  292. package/dist/PubSub.js.map +1 -1
  293. package/dist/Pull.d.ts +24 -18
  294. package/dist/Pull.d.ts.map +1 -1
  295. package/dist/Pull.js +11 -9
  296. package/dist/Pull.js.map +1 -1
  297. package/dist/Queue.d.ts +200 -159
  298. package/dist/Queue.d.ts.map +1 -1
  299. package/dist/Queue.js +162 -132
  300. package/dist/Queue.js.map +1 -1
  301. package/dist/Random.d.ts +49 -74
  302. package/dist/Random.d.ts.map +1 -1
  303. package/dist/Random.js +35 -54
  304. package/dist/Random.js.map +1 -1
  305. package/dist/RcMap.d.ts +121 -63
  306. package/dist/RcMap.d.ts.map +1 -1
  307. package/dist/RcMap.js +42 -21
  308. package/dist/RcMap.js.map +1 -1
  309. package/dist/RcRef.d.ts +24 -13
  310. package/dist/RcRef.d.ts.map +1 -1
  311. package/dist/RcRef.js +15 -9
  312. package/dist/RcRef.js.map +1 -1
  313. package/dist/Record.d.ts +361 -466
  314. package/dist/Record.d.ts.map +1 -1
  315. package/dist/Record.js +163 -216
  316. package/dist/Record.js.map +1 -1
  317. package/dist/Redactable.d.ts +6 -2
  318. package/dist/Redactable.d.ts.map +1 -1
  319. package/dist/Redactable.js +7 -2
  320. package/dist/Redactable.js.map +1 -1
  321. package/dist/Redacted.d.ts +25 -25
  322. package/dist/Redacted.d.ts.map +1 -1
  323. package/dist/Redacted.js +19 -20
  324. package/dist/Redacted.js.map +1 -1
  325. package/dist/Reducer.d.ts +8 -15
  326. package/dist/Reducer.d.ts.map +1 -1
  327. package/dist/Reducer.js +6 -12
  328. package/dist/Reducer.js.map +1 -1
  329. package/dist/Ref.d.ts +95 -165
  330. package/dist/Ref.d.ts.map +1 -1
  331. package/dist/Ref.js +75 -122
  332. package/dist/Ref.js.map +1 -1
  333. package/dist/References.d.ts +102 -213
  334. package/dist/References.d.ts.map +1 -1
  335. package/dist/References.js +102 -213
  336. package/dist/References.js.map +1 -1
  337. package/dist/RegExp.d.ts +10 -14
  338. package/dist/RegExp.d.ts.map +1 -1
  339. package/dist/RegExp.js +10 -14
  340. package/dist/RegExp.js.map +1 -1
  341. package/dist/Request.d.ts +31 -21
  342. package/dist/Request.d.ts.map +1 -1
  343. package/dist/Request.js +25 -19
  344. package/dist/Request.js.map +1 -1
  345. package/dist/RequestResolver.d.ts +201 -90
  346. package/dist/RequestResolver.d.ts.map +1 -1
  347. package/dist/RequestResolver.js +87 -41
  348. package/dist/RequestResolver.js.map +1 -1
  349. package/dist/Resource.js.map +1 -1
  350. package/dist/Result.d.ts +302 -470
  351. package/dist/Result.d.ts.map +1 -1
  352. package/dist/Result.js +135 -218
  353. package/dist/Result.js.map +1 -1
  354. package/dist/Runtime.d.ts +50 -75
  355. package/dist/Runtime.d.ts.map +1 -1
  356. package/dist/Runtime.js +39 -60
  357. package/dist/Runtime.js.map +1 -1
  358. package/dist/Schedule.d.ts +290 -1636
  359. package/dist/Schedule.d.ts.map +1 -1
  360. package/dist/Schedule.js +162 -803
  361. package/dist/Schedule.js.map +1 -1
  362. package/dist/Scheduler.d.ts +5 -5
  363. package/dist/Scheduler.d.ts.map +1 -1
  364. package/dist/Scheduler.js +18 -6
  365. package/dist/Scheduler.js.map +1 -1
  366. package/dist/Schema.d.ts +1835 -1060
  367. package/dist/Schema.d.ts.map +1 -1
  368. package/dist/Schema.js +2708 -1050
  369. package/dist/Schema.js.map +1 -1
  370. package/dist/SchemaAST.d.ts +29 -52
  371. package/dist/SchemaAST.d.ts.map +1 -1
  372. package/dist/SchemaAST.js +537 -391
  373. package/dist/SchemaAST.js.map +1 -1
  374. package/dist/SchemaError.d.ts +7 -6
  375. package/dist/SchemaError.d.ts.map +1 -1
  376. package/dist/SchemaError.js +8 -7
  377. package/dist/SchemaError.js.map +1 -1
  378. package/dist/SchemaGetter.d.ts +230 -185
  379. package/dist/SchemaGetter.d.ts.map +1 -1
  380. package/dist/SchemaGetter.js +252 -209
  381. package/dist/SchemaGetter.js.map +1 -1
  382. package/dist/SchemaIssue.d.ts +62 -190
  383. package/dist/SchemaIssue.d.ts.map +1 -1
  384. package/dist/SchemaIssue.js +74 -266
  385. package/dist/SchemaIssue.js.map +1 -1
  386. package/dist/SchemaParser.d.ts +2 -2
  387. package/dist/SchemaParser.d.ts.map +1 -1
  388. package/dist/SchemaParser.js +123 -86
  389. package/dist/SchemaParser.js.map +1 -1
  390. package/dist/SchemaRepresentation.d.ts +398 -1513
  391. package/dist/SchemaRepresentation.d.ts.map +1 -1
  392. package/dist/SchemaRepresentation.js +290 -2854
  393. package/dist/SchemaRepresentation.js.map +1 -1
  394. package/dist/SchemaTransformation.d.ts +116 -76
  395. package/dist/SchemaTransformation.d.ts.map +1 -1
  396. package/dist/SchemaTransformation.js +123 -88
  397. package/dist/SchemaTransformation.js.map +1 -1
  398. package/dist/Scope.d.ts +123 -151
  399. package/dist/Scope.d.ts.map +1 -1
  400. package/dist/Scope.js +72 -92
  401. package/dist/Scope.js.map +1 -1
  402. package/dist/ScopedCache.js.map +1 -1
  403. package/dist/ScopedRef.d.ts +3 -3
  404. package/dist/ScopedRef.js +2 -2
  405. package/dist/ScopedRef.js.map +1 -1
  406. package/dist/Semaphore.d.ts +101 -13
  407. package/dist/Semaphore.d.ts.map +1 -1
  408. package/dist/Semaphore.js +78 -39
  409. package/dist/Semaphore.js.map +1 -1
  410. package/dist/Sink.d.ts +117 -107
  411. package/dist/Sink.d.ts.map +1 -1
  412. package/dist/Sink.js +107 -100
  413. package/dist/Sink.js.map +1 -1
  414. package/dist/Stdio.d.ts +1 -1
  415. package/dist/Stdio.js.map +1 -1
  416. package/dist/Stream.d.ts +2430 -2958
  417. package/dist/Stream.d.ts.map +1 -1
  418. package/dist/Stream.js +1124 -1397
  419. package/dist/Stream.js.map +1 -1
  420. package/dist/String.d.ts +262 -308
  421. package/dist/String.d.ts.map +1 -1
  422. package/dist/String.js +184 -215
  423. package/dist/String.js.map +1 -1
  424. package/dist/Struct.d.ts +109 -114
  425. package/dist/Struct.d.ts.map +1 -1
  426. package/dist/Struct.js +46 -54
  427. package/dist/Struct.js.map +1 -1
  428. package/dist/SubscriptionRef.d.ts +282 -250
  429. package/dist/SubscriptionRef.d.ts.map +1 -1
  430. package/dist/SubscriptionRef.js +104 -92
  431. package/dist/SubscriptionRef.js.map +1 -1
  432. package/dist/Symbol.d.ts +3 -3
  433. package/dist/Symbol.js +3 -3
  434. package/dist/Symbol.js.map +1 -1
  435. package/dist/SynchronizedRef.js.map +1 -1
  436. package/dist/Take.js.map +1 -1
  437. package/dist/Terminal.d.ts +2 -2
  438. package/dist/Terminal.js +1 -1
  439. package/dist/Terminal.js.map +1 -1
  440. package/dist/Tracer.d.ts +100 -54
  441. package/dist/Tracer.d.ts.map +1 -1
  442. package/dist/Tracer.js +41 -24
  443. package/dist/Tracer.js.map +1 -1
  444. package/dist/Trie.d.ts +287 -679
  445. package/dist/Trie.d.ts.map +1 -1
  446. package/dist/Trie.js +109 -251
  447. package/dist/Trie.js.map +1 -1
  448. package/dist/Tuple.d.ts +92 -127
  449. package/dist/Tuple.d.ts.map +1 -1
  450. package/dist/Tuple.js +42 -57
  451. package/dist/Tuple.js.map +1 -1
  452. package/dist/TxChunk.d.ts +201 -121
  453. package/dist/TxChunk.d.ts.map +1 -1
  454. package/dist/TxChunk.js +85 -56
  455. package/dist/TxChunk.js.map +1 -1
  456. package/dist/TxDeferred.d.ts +62 -46
  457. package/dist/TxDeferred.d.ts.map +1 -1
  458. package/dist/TxDeferred.js +30 -22
  459. package/dist/TxDeferred.js.map +1 -1
  460. package/dist/TxHashMap.d.ts +631 -779
  461. package/dist/TxHashMap.d.ts.map +1 -1
  462. package/dist/TxHashMap.js +268 -330
  463. package/dist/TxHashMap.js.map +1 -1
  464. package/dist/TxHashSet.d.ts +297 -236
  465. package/dist/TxHashSet.d.ts.map +1 -1
  466. package/dist/TxHashSet.js +130 -100
  467. package/dist/TxHashSet.js.map +1 -1
  468. package/dist/TxPriorityQueue.d.ts +126 -95
  469. package/dist/TxPriorityQueue.d.ts.map +1 -1
  470. package/dist/TxPriorityQueue.js +74 -56
  471. package/dist/TxPriorityQueue.js.map +1 -1
  472. package/dist/TxPubSub.d.ts +101 -88
  473. package/dist/TxPubSub.d.ts.map +1 -1
  474. package/dist/TxPubSub.js +87 -66
  475. package/dist/TxPubSub.js.map +1 -1
  476. package/dist/TxQueue.d.ts +200 -180
  477. package/dist/TxQueue.d.ts.map +1 -1
  478. package/dist/TxQueue.js +160 -136
  479. package/dist/TxQueue.js.map +1 -1
  480. package/dist/TxReentrantLock.d.ts +97 -66
  481. package/dist/TxReentrantLock.d.ts.map +1 -1
  482. package/dist/TxReentrantLock.js +67 -45
  483. package/dist/TxReentrantLock.js.map +1 -1
  484. package/dist/TxRef.d.ts +51 -32
  485. package/dist/TxRef.d.ts.map +1 -1
  486. package/dist/TxRef.js +23 -15
  487. package/dist/TxRef.js.map +1 -1
  488. package/dist/TxSemaphore.d.ts +129 -95
  489. package/dist/TxSemaphore.d.ts.map +1 -1
  490. package/dist/TxSemaphore.js +85 -70
  491. package/dist/TxSemaphore.js.map +1 -1
  492. package/dist/TxSubscriptionRef.d.ts +97 -70
  493. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  494. package/dist/TxSubscriptionRef.js +44 -34
  495. package/dist/TxSubscriptionRef.js.map +1 -1
  496. package/dist/Types.d.ts +127 -70
  497. package/dist/Types.d.ts.map +1 -1
  498. package/dist/UndefinedOr.js.map +1 -1
  499. package/dist/Unify.d.ts +45 -65
  500. package/dist/Unify.d.ts.map +1 -1
  501. package/dist/Unify.js +6 -9
  502. package/dist/Unify.js.map +1 -1
  503. package/dist/Utils.d.ts +23 -16
  504. package/dist/Utils.d.ts.map +1 -1
  505. package/dist/Utils.js +3 -7
  506. package/dist/Utils.js.map +1 -1
  507. package/dist/index.d.ts +0 -4
  508. package/dist/index.d.ts.map +1 -1
  509. package/dist/index.js +0 -4
  510. package/dist/index.js.map +1 -1
  511. package/dist/internal/array.js.map +1 -1
  512. package/dist/internal/core.js +3 -2
  513. package/dist/internal/core.js.map +1 -1
  514. package/dist/internal/dateTime.js +4 -0
  515. package/dist/internal/dateTime.js.map +1 -1
  516. package/dist/internal/doNotation.js.map +1 -1
  517. package/dist/internal/effect.js +141 -61
  518. package/dist/internal/effect.js.map +1 -1
  519. package/dist/internal/equal.js.map +1 -1
  520. package/dist/internal/errors.js.map +1 -1
  521. package/dist/internal/executionPlan.js.map +1 -1
  522. package/dist/internal/hashMap.js.map +1 -1
  523. package/dist/internal/hashSet.js.map +1 -1
  524. package/dist/internal/layer.js.map +1 -1
  525. package/dist/internal/matcher.js +1 -1
  526. package/dist/internal/matcher.js.map +1 -1
  527. package/dist/internal/metric.js.map +1 -1
  528. package/dist/internal/option.js.map +1 -1
  529. package/dist/internal/persistence.d.ts +2 -0
  530. package/dist/internal/persistence.d.ts.map +1 -0
  531. package/dist/internal/persistence.js +3 -0
  532. package/dist/internal/persistence.js.map +1 -0
  533. package/dist/internal/random.js.map +1 -1
  534. package/dist/internal/rcRef.js.map +1 -1
  535. package/dist/internal/record.d.ts +0 -3
  536. package/dist/internal/record.d.ts.map +1 -1
  537. package/dist/internal/record.js +10 -5
  538. package/dist/internal/record.js.map +1 -1
  539. package/dist/internal/redacted.js.map +1 -1
  540. package/dist/internal/references.js +3 -4
  541. package/dist/internal/references.js.map +1 -1
  542. package/dist/internal/request.js.map +1 -1
  543. package/dist/internal/result.js.map +1 -1
  544. package/dist/internal/schedule.js.map +1 -1
  545. package/dist/internal/schema/annotations.js +12 -0
  546. package/dist/internal/schema/annotations.js.map +1 -1
  547. package/dist/internal/schema/cause.js.map +1 -1
  548. package/dist/internal/schema/fromJsonSchemaDocument.d.ts +2 -0
  549. package/dist/internal/schema/fromJsonSchemaDocument.d.ts.map +1 -0
  550. package/dist/internal/schema/fromJsonSchemaDocument.js +745 -0
  551. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -0
  552. package/dist/internal/schema/fromRepresentation.d.ts +2 -0
  553. package/dist/internal/schema/fromRepresentation.d.ts.map +1 -0
  554. package/dist/internal/schema/fromRepresentation.js +245 -0
  555. package/dist/internal/schema/fromRepresentation.js.map +1 -0
  556. package/dist/internal/schema/parser.d.ts +14 -0
  557. package/dist/internal/schema/parser.d.ts.map +1 -0
  558. package/dist/internal/schema/parser.js +13 -0
  559. package/dist/internal/schema/parser.js.map +1 -0
  560. package/dist/internal/schema/schema.js +28 -40
  561. package/dist/internal/schema/schema.js.map +1 -1
  562. package/dist/internal/schema/{arbitrary.d.ts → toArbitrary.d.ts} +1 -1
  563. package/dist/internal/schema/toArbitrary.d.ts.map +1 -0
  564. package/dist/internal/schema/{arbitrary.js → toArbitrary.js} +8 -9
  565. package/dist/internal/schema/toArbitrary.js.map +1 -0
  566. package/dist/internal/schema/toCodeDocument.d.ts +2 -0
  567. package/dist/internal/schema/toCodeDocument.d.ts.map +1 -0
  568. package/dist/internal/schema/toCodeDocument.js +438 -0
  569. package/dist/internal/schema/toCodeDocument.js.map +1 -0
  570. package/dist/internal/schema/toEquivalence.d.ts +2 -0
  571. package/dist/internal/schema/toEquivalence.d.ts.map +1 -0
  572. package/dist/internal/schema/{equivalence.js → toEquivalence.js} +15 -13
  573. package/dist/internal/schema/toEquivalence.js.map +1 -0
  574. package/dist/internal/schema/toJsonSchemaDocument.d.ts +2 -0
  575. package/dist/internal/schema/toJsonSchemaDocument.d.ts.map +1 -0
  576. package/dist/internal/schema/toJsonSchemaDocument.js +508 -0
  577. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -0
  578. package/dist/internal/schema/toRepresentation.d.ts +2 -0
  579. package/dist/internal/schema/toRepresentation.d.ts.map +1 -0
  580. package/dist/internal/schema/toRepresentation.js +349 -0
  581. package/dist/internal/schema/toRepresentation.js.map +1 -0
  582. package/dist/internal/stackTraceLimit.js +3 -6
  583. package/dist/internal/stackTraceLimit.js.map +1 -1
  584. package/dist/internal/stream.js.map +1 -1
  585. package/dist/internal/tracer.js.map +1 -1
  586. package/dist/internal/trie.js +13 -9
  587. package/dist/internal/trie.js.map +1 -1
  588. package/dist/testing/FastCheck.d.ts +8 -7
  589. package/dist/testing/FastCheck.d.ts.map +1 -1
  590. package/dist/testing/FastCheck.js +8 -7
  591. package/dist/testing/FastCheck.js.map +1 -1
  592. package/dist/testing/TestClock.d.ts +57 -28
  593. package/dist/testing/TestClock.d.ts.map +1 -1
  594. package/dist/testing/TestClock.js +54 -19
  595. package/dist/testing/TestClock.js.map +1 -1
  596. package/dist/testing/TestConsole.d.ts +32 -31
  597. package/dist/testing/TestConsole.d.ts.map +1 -1
  598. package/dist/testing/TestConsole.js +24 -22
  599. package/dist/testing/TestConsole.js.map +1 -1
  600. package/dist/testing/TestSchema.d.ts +29 -29
  601. package/dist/testing/TestSchema.js +25 -25
  602. package/dist/testing/TestSchema.js.map +1 -1
  603. package/dist/testing/index.js.map +1 -1
  604. package/dist/unstable/ai/AiError.d.ts +121 -144
  605. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  606. package/dist/unstable/ai/AiError.js +99 -121
  607. package/dist/unstable/ai/AiError.js.map +1 -1
  608. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +22 -7
  609. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  610. package/dist/unstable/ai/AnthropicStructuredOutput.js +87 -317
  611. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  612. package/dist/unstable/ai/Chat.d.ts +132 -97
  613. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  614. package/dist/unstable/ai/Chat.js +55 -51
  615. package/dist/unstable/ai/Chat.js.map +1 -1
  616. package/dist/unstable/ai/EmbeddingModel.d.ts +1 -1
  617. package/dist/unstable/ai/EmbeddingModel.js +1 -1
  618. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  619. package/dist/unstable/ai/IdGenerator.d.ts +32 -28
  620. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  621. package/dist/unstable/ai/IdGenerator.js +26 -21
  622. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  623. package/dist/unstable/ai/LanguageModel.d.ts +111 -68
  624. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  625. package/dist/unstable/ai/LanguageModel.js +123 -81
  626. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  627. package/dist/unstable/ai/McpProtocol.d.ts +30 -0
  628. package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
  629. package/dist/unstable/ai/McpProtocol.js +20 -0
  630. package/dist/unstable/ai/McpProtocol.js.map +1 -0
  631. package/dist/unstable/ai/McpSchema.d.ts +316 -250
  632. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  633. package/dist/unstable/ai/McpSchema.js +71 -63
  634. package/dist/unstable/ai/McpSchema.js.map +1 -1
  635. package/dist/unstable/ai/McpServer.d.ts +71 -62
  636. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  637. package/dist/unstable/ai/McpServer.js +765 -245
  638. package/dist/unstable/ai/McpServer.js.map +1 -1
  639. package/dist/unstable/ai/Model.d.ts +8 -19
  640. package/dist/unstable/ai/Model.d.ts.map +1 -1
  641. package/dist/unstable/ai/Model.js +9 -20
  642. package/dist/unstable/ai/Model.js.map +1 -1
  643. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +33 -11
  644. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  645. package/dist/unstable/ai/OpenAiStructuredOutput.js +194 -378
  646. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  647. package/dist/unstable/ai/Prompt.d.ts +112 -38
  648. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  649. package/dist/unstable/ai/Prompt.js +53 -17
  650. package/dist/unstable/ai/Prompt.js.map +1 -1
  651. package/dist/unstable/ai/Response.d.ts +47 -33
  652. package/dist/unstable/ai/Response.d.ts.map +1 -1
  653. package/dist/unstable/ai/Response.js +23 -18
  654. package/dist/unstable/ai/Response.js.map +1 -1
  655. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  656. package/dist/unstable/ai/Telemetry.d.ts +46 -13
  657. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  658. package/dist/unstable/ai/Telemetry.js +18 -7
  659. package/dist/unstable/ai/Telemetry.js.map +1 -1
  660. package/dist/unstable/ai/Tokenizer.d.ts +14 -3
  661. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  662. package/dist/unstable/ai/Tokenizer.js +10 -2
  663. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  664. package/dist/unstable/ai/Tool.d.ts +63 -44
  665. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  666. package/dist/unstable/ai/Tool.js +59 -42
  667. package/dist/unstable/ai/Tool.js.map +1 -1
  668. package/dist/unstable/ai/Toolkit.d.ts +35 -9
  669. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  670. package/dist/unstable/ai/Toolkit.js +32 -14
  671. package/dist/unstable/ai/Toolkit.js.map +1 -1
  672. package/dist/unstable/ai/index.d.ts +4 -0
  673. package/dist/unstable/ai/index.d.ts.map +1 -1
  674. package/dist/unstable/ai/index.js +4 -0
  675. package/dist/unstable/ai/index.js.map +1 -1
  676. package/dist/unstable/ai/internal/codec-transformer.js +15 -12
  677. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  678. package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
  679. package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
  680. package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
  681. package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
  682. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
  683. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
  684. package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
  685. package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
  686. package/dist/unstable/ai/internal/structured-output.d.ts +2 -0
  687. package/dist/unstable/ai/internal/structured-output.d.ts.map +1 -0
  688. package/dist/unstable/ai/internal/structured-output.js +315 -0
  689. package/dist/unstable/ai/internal/structured-output.js.map +1 -0
  690. package/dist/unstable/cli/Argument.d.ts +273 -69
  691. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  692. package/dist/unstable/cli/Argument.js +111 -33
  693. package/dist/unstable/cli/Argument.js.map +1 -1
  694. package/dist/unstable/cli/CliConfig.js.map +1 -1
  695. package/dist/unstable/cli/CliError.d.ts +105 -74
  696. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  697. package/dist/unstable/cli/CliError.js +98 -63
  698. package/dist/unstable/cli/CliError.js.map +1 -1
  699. package/dist/unstable/cli/CliOutput.d.ts +35 -54
  700. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  701. package/dist/unstable/cli/CliOutput.js +26 -42
  702. package/dist/unstable/cli/CliOutput.js.map +1 -1
  703. package/dist/unstable/cli/Command.d.ts +705 -107
  704. package/dist/unstable/cli/Command.d.ts.map +1 -1
  705. package/dist/unstable/cli/Command.js +252 -47
  706. package/dist/unstable/cli/Command.js.map +1 -1
  707. package/dist/unstable/cli/Completions.js.map +1 -1
  708. package/dist/unstable/cli/Flag.d.ts +418 -138
  709. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  710. package/dist/unstable/cli/Flag.js +197 -71
  711. package/dist/unstable/cli/Flag.js.map +1 -1
  712. package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
  713. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  714. package/dist/unstable/cli/HelpDoc.d.ts +12 -4
  715. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  716. package/dist/unstable/cli/Param.d.ts +292 -78
  717. package/dist/unstable/cli/Param.d.ts.map +1 -1
  718. package/dist/unstable/cli/Param.js +131 -49
  719. package/dist/unstable/cli/Param.js.map +1 -1
  720. package/dist/unstable/cli/Primitive.d.ts +370 -149
  721. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  722. package/dist/unstable/cli/Primitive.js +345 -137
  723. package/dist/unstable/cli/Primitive.js.map +1 -1
  724. package/dist/unstable/cli/Prompt.d.ts +23 -14
  725. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  726. package/dist/unstable/cli/Prompt.js +23 -14
  727. package/dist/unstable/cli/Prompt.js.map +1 -1
  728. package/dist/unstable/cli/index.js.map +1 -1
  729. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  730. package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
  731. package/dist/unstable/cli/internal/command.d.ts +3 -1
  732. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  733. package/dist/unstable/cli/internal/command.js +11 -4
  734. package/dist/unstable/cli/internal/command.js.map +1 -1
  735. package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
  736. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  737. package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
  738. package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
  739. package/dist/unstable/cli/internal/config.d.ts +0 -48
  740. package/dist/unstable/cli/internal/config.d.ts.map +1 -1
  741. package/dist/unstable/cli/internal/config.js +8 -10
  742. package/dist/unstable/cli/internal/config.js.map +1 -1
  743. package/dist/unstable/cli/internal/help.js.map +1 -1
  744. package/dist/unstable/cli/internal/lexer.js +17 -7
  745. package/dist/unstable/cli/internal/lexer.js.map +1 -1
  746. package/dist/unstable/cli/internal/parser.js +2 -2
  747. package/dist/unstable/cli/internal/parser.js.map +1 -1
  748. package/dist/unstable/cli/internal/wizard.js.map +1 -1
  749. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  750. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  751. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  752. package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
  753. package/dist/unstable/cluster/ClusterSchema.js +8 -8
  754. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  755. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  756. package/dist/unstable/cluster/ClusterWorkflowEngine.js +6 -2
  757. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  758. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  759. package/dist/unstable/cluster/Entity.d.ts +10 -10
  760. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  761. package/dist/unstable/cluster/Entity.js +9 -9
  762. package/dist/unstable/cluster/Entity.js.map +1 -1
  763. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  764. package/dist/unstable/cluster/EntityId.js.map +1 -1
  765. package/dist/unstable/cluster/EntityProxy.d.ts +4 -2
  766. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  767. package/dist/unstable/cluster/EntityProxy.js +4 -2
  768. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  769. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  770. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  771. package/dist/unstable/cluster/EntityResource.js +2 -2
  772. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  773. package/dist/unstable/cluster/EntityType.js.map +1 -1
  774. package/dist/unstable/cluster/Envelope.d.ts +3 -3
  775. package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
  776. package/dist/unstable/cluster/Envelope.js +5 -4
  777. package/dist/unstable/cluster/Envelope.js.map +1 -1
  778. package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
  779. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  780. package/dist/unstable/cluster/HttpRunner.js +6 -4
  781. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  782. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  783. package/dist/unstable/cluster/MachineId.js.map +1 -1
  784. package/dist/unstable/cluster/Message.d.ts +9 -9
  785. package/dist/unstable/cluster/Message.js +6 -6
  786. package/dist/unstable/cluster/Message.js.map +1 -1
  787. package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
  788. package/dist/unstable/cluster/MessageStorage.js +5 -5
  789. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  790. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  791. package/dist/unstable/cluster/Reply.js +5 -5
  792. package/dist/unstable/cluster/Reply.js.map +1 -1
  793. package/dist/unstable/cluster/Runner.d.ts +1 -1
  794. package/dist/unstable/cluster/Runner.js +1 -1
  795. package/dist/unstable/cluster/Runner.js.map +1 -1
  796. package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
  797. package/dist/unstable/cluster/RunnerAddress.js +1 -1
  798. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  799. package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
  800. package/dist/unstable/cluster/RunnerHealth.js +1 -1
  801. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  802. package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
  803. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  804. package/dist/unstable/cluster/RunnerServer.js +16 -16
  805. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  806. package/dist/unstable/cluster/RunnerStorage.d.ts +2 -2
  807. package/dist/unstable/cluster/RunnerStorage.js +1 -1
  808. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  809. package/dist/unstable/cluster/Runners.d.ts +6 -6
  810. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  811. package/dist/unstable/cluster/Runners.js +19 -10
  812. package/dist/unstable/cluster/Runners.js.map +1 -1
  813. package/dist/unstable/cluster/ShardId.js +1 -1
  814. package/dist/unstable/cluster/ShardId.js.map +1 -1
  815. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  816. package/dist/unstable/cluster/Sharding.js +128 -26
  817. package/dist/unstable/cluster/Sharding.js.map +1 -1
  818. package/dist/unstable/cluster/ShardingConfig.d.ts +13 -5
  819. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  820. package/dist/unstable/cluster/ShardingConfig.js +3 -3
  821. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  822. package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
  823. package/dist/unstable/cluster/SingleRunner.d.ts +4 -2
  824. package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
  825. package/dist/unstable/cluster/SingleRunner.js +2 -1
  826. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  827. package/dist/unstable/cluster/Singleton.js.map +1 -1
  828. package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
  829. package/dist/unstable/cluster/SingletonAddress.js +1 -1
  830. package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
  831. package/dist/unstable/cluster/Snowflake.d.ts +8 -8
  832. package/dist/unstable/cluster/Snowflake.js +8 -8
  833. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  834. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  835. package/dist/unstable/cluster/SqlMessageStorage.d.ts +7 -4
  836. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  837. package/dist/unstable/cluster/SqlMessageStorage.js +56 -25
  838. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  839. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  840. package/dist/unstable/cluster/SqlRunnerStorage.js +127 -65
  841. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  842. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  843. package/dist/unstable/cluster/index.js.map +1 -1
  844. package/dist/unstable/cluster/internal/entityManager.js +24 -12
  845. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  846. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  847. package/dist/unstable/cluster/internal/hash.js.map +1 -1
  848. package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
  849. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  850. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  851. package/dist/unstable/cluster/internal/shardLock.d.ts +2 -0
  852. package/dist/unstable/cluster/internal/shardLock.d.ts.map +1 -0
  853. package/dist/unstable/cluster/internal/shardLock.js +4 -0
  854. package/dist/unstable/cluster/internal/shardLock.js.map +1 -0
  855. package/dist/unstable/devtools/DevTools.js.map +1 -1
  856. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  857. package/dist/unstable/devtools/DevToolsSchema.d.ts +20 -20
  858. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  859. package/dist/unstable/devtools/DevToolsSchema.js +8 -5
  860. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  861. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  862. package/dist/unstable/devtools/index.js.map +1 -1
  863. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  864. package/dist/unstable/encoding/Msgpack.js +6 -8
  865. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  866. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  867. package/dist/unstable/encoding/Sse.d.ts +72 -8
  868. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  869. package/dist/unstable/encoding/Sse.js +58 -8
  870. package/dist/unstable/encoding/Sse.js.map +1 -1
  871. package/dist/unstable/encoding/index.js.map +1 -1
  872. package/dist/unstable/eventlog/Event.d.ts +20 -20
  873. package/dist/unstable/eventlog/Event.js.map +1 -1
  874. package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
  875. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  876. package/dist/unstable/eventlog/EventJournal.d.ts +16 -16
  877. package/dist/unstable/eventlog/EventJournal.js +14 -14
  878. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  879. package/dist/unstable/eventlog/EventLog.d.ts +3 -3
  880. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  881. package/dist/unstable/eventlog/EventLog.js +18 -14
  882. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  883. package/dist/unstable/eventlog/EventLogEncryption.d.ts +2 -2
  884. package/dist/unstable/eventlog/EventLogEncryption.js +2 -2
  885. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  886. package/dist/unstable/eventlog/EventLogMessage.d.ts +6 -6
  887. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
  888. package/dist/unstable/eventlog/EventLogMessage.js +9 -4
  889. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  890. package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
  891. package/dist/unstable/eventlog/EventLogRemote.js +1 -1
  892. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  893. package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
  894. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  895. package/dist/unstable/eventlog/EventLogServer.js +45 -21
  896. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  897. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
  898. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  899. package/dist/unstable/eventlog/EventLogServerEncrypted.js +13 -5
  900. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  901. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
  902. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  903. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +14 -6
  904. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  905. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
  906. package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
  907. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  908. package/dist/unstable/eventlog/SqlEventJournal.js +2 -2
  909. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  910. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +1 -1
  911. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  912. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +3 -3
  913. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  914. package/dist/unstable/eventlog/index.js.map +1 -1
  915. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  916. package/dist/unstable/http/Cookies.d.ts +2 -2
  917. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  918. package/dist/unstable/http/Cookies.js +54 -40
  919. package/dist/unstable/http/Cookies.js.map +1 -1
  920. package/dist/unstable/http/Etag.d.ts +1 -1
  921. package/dist/unstable/http/Etag.js +1 -1
  922. package/dist/unstable/http/Etag.js.map +1 -1
  923. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  924. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  925. package/dist/unstable/http/Headers.d.ts +2 -2
  926. package/dist/unstable/http/Headers.js +10 -10
  927. package/dist/unstable/http/Headers.js.map +1 -1
  928. package/dist/unstable/http/HttpBody.d.ts +5 -3
  929. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  930. package/dist/unstable/http/HttpBody.js +11 -5
  931. package/dist/unstable/http/HttpBody.js.map +1 -1
  932. package/dist/unstable/http/HttpClient.d.ts +51 -44
  933. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  934. package/dist/unstable/http/HttpClient.js +46 -17
  935. package/dist/unstable/http/HttpClient.js.map +1 -1
  936. package/dist/unstable/http/HttpClientError.js.map +1 -1
  937. package/dist/unstable/http/HttpClientRequest.d.ts +44 -0
  938. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  939. package/dist/unstable/http/HttpClientRequest.js +16 -0
  940. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  941. package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
  942. package/dist/unstable/http/HttpClientResponse.js +2 -2
  943. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  944. package/dist/unstable/http/HttpEffect.d.ts +6 -6
  945. package/dist/unstable/http/HttpEffect.js +3 -3
  946. package/dist/unstable/http/HttpEffect.js.map +1 -1
  947. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  948. package/dist/unstable/http/HttpMethod.d.ts +6 -9
  949. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  950. package/dist/unstable/http/HttpMethod.js +6 -9
  951. package/dist/unstable/http/HttpMethod.js.map +1 -1
  952. package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
  953. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  954. package/dist/unstable/http/HttpMiddleware.js +164 -39
  955. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  956. package/dist/unstable/http/HttpPlatform.d.ts +76 -0
  957. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  958. package/dist/unstable/http/HttpPlatform.js +32 -0
  959. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  960. package/dist/unstable/http/HttpRouter.d.ts +88 -89
  961. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  962. package/dist/unstable/http/HttpRouter.js +78 -79
  963. package/dist/unstable/http/HttpRouter.js.map +1 -1
  964. package/dist/unstable/http/HttpServer.d.ts +13 -13
  965. package/dist/unstable/http/HttpServer.js +6 -6
  966. package/dist/unstable/http/HttpServer.js.map +1 -1
  967. package/dist/unstable/http/HttpServerError.d.ts +2 -2
  968. package/dist/unstable/http/HttpServerError.js +2 -2
  969. package/dist/unstable/http/HttpServerError.js.map +1 -1
  970. package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
  971. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  972. package/dist/unstable/http/HttpServerRequest.js +9 -8
  973. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  974. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  975. package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
  976. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  977. package/dist/unstable/http/HttpServerResponse.js +10 -0
  978. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  979. package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
  980. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  981. package/dist/unstable/http/HttpStaticServer.js +35 -7
  982. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  983. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  984. package/dist/unstable/http/Multipart.d.ts +6 -6
  985. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  986. package/dist/unstable/http/Multipart.js +22 -20
  987. package/dist/unstable/http/Multipart.js.map +1 -1
  988. package/dist/unstable/http/Template.js +1 -1
  989. package/dist/unstable/http/Template.js.map +1 -1
  990. package/dist/unstable/http/Url.d.ts +33 -63
  991. package/dist/unstable/http/Url.d.ts.map +1 -1
  992. package/dist/unstable/http/Url.js +14 -28
  993. package/dist/unstable/http/Url.js.map +1 -1
  994. package/dist/unstable/http/UrlParams.d.ts +10 -18
  995. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  996. package/dist/unstable/http/UrlParams.js +26 -31
  997. package/dist/unstable/http/UrlParams.js.map +1 -1
  998. package/dist/unstable/http/index.js.map +1 -1
  999. package/dist/unstable/http/internal/compression.d.ts +2 -0
  1000. package/dist/unstable/http/internal/compression.d.ts.map +1 -0
  1001. package/dist/unstable/http/internal/compression.js +155 -0
  1002. package/dist/unstable/http/internal/compression.js.map +1 -0
  1003. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
  1004. package/dist/unstable/httpapi/HttpApi.js +3 -3
  1005. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  1006. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
  1007. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  1008. package/dist/unstable/httpapi/HttpApiBuilder.js +10 -11
  1009. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  1010. package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
  1011. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  1012. package/dist/unstable/httpapi/HttpApiClient.js +16 -18
  1013. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  1014. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +42 -42
  1015. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  1016. package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
  1017. package/dist/unstable/httpapi/HttpApiError.js +13 -13
  1018. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  1019. package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
  1020. package/dist/unstable/httpapi/HttpApiGroup.js +1 -1
  1021. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  1022. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
  1023. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  1024. package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
  1025. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  1026. package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
  1027. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  1028. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  1029. package/dist/unstable/httpapi/HttpApiSchema.d.ts +6 -6
  1030. package/dist/unstable/httpapi/HttpApiSchema.js +4 -4
  1031. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  1032. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  1033. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  1034. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  1035. package/dist/unstable/httpapi/OpenApi.d.ts +13 -13
  1036. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  1037. package/dist/unstable/httpapi/OpenApi.js +50 -37
  1038. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  1039. package/dist/unstable/httpapi/index.js.map +1 -1
  1040. package/dist/unstable/httpapi/internal/html.js.map +1 -1
  1041. package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
  1042. package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
  1043. package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
  1044. package/dist/unstable/observability/Otlp.js.map +1 -1
  1045. package/dist/unstable/observability/OtlpExporter.d.ts +70 -1
  1046. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  1047. package/dist/unstable/observability/OtlpExporter.js +84 -6
  1048. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  1049. package/dist/unstable/observability/OtlpLogger.d.ts +4 -3
  1050. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  1051. package/dist/unstable/observability/OtlpLogger.js +2 -2
  1052. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  1053. package/dist/unstable/observability/OtlpMetrics.d.ts +11 -4
  1054. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  1055. package/dist/unstable/observability/OtlpMetrics.js +5 -2
  1056. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  1057. package/dist/unstable/observability/OtlpResource.d.ts +16 -7
  1058. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  1059. package/dist/unstable/observability/OtlpResource.js +21 -12
  1060. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  1061. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  1062. package/dist/unstable/observability/OtlpTracer.d.ts +4 -3
  1063. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  1064. package/dist/unstable/observability/OtlpTracer.js +2 -2
  1065. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  1066. package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
  1067. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  1068. package/dist/unstable/observability/PrometheusMetrics.js +10 -3
  1069. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  1070. package/dist/unstable/observability/index.js.map +1 -1
  1071. package/dist/unstable/observability/internal/otlpEnv.js +1 -1
  1072. package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
  1073. package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
  1074. package/dist/unstable/observability/internal/protobuf.js +3 -0
  1075. package/dist/unstable/observability/internal/protobuf.js.map +1 -1
  1076. package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
  1077. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  1078. package/dist/unstable/persistence/KeyValueStore.js +22 -13
  1079. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  1080. package/dist/unstable/persistence/Persistable.d.ts +8 -8
  1081. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  1082. package/dist/unstable/persistence/Persistable.js +2 -1
  1083. package/dist/unstable/persistence/Persistable.js.map +1 -1
  1084. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  1085. package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
  1086. package/dist/unstable/persistence/PersistedQueue.js +6 -6
  1087. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  1088. package/dist/unstable/persistence/Persistence.d.ts +3 -3
  1089. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  1090. package/dist/unstable/persistence/Persistence.js +91 -15
  1091. package/dist/unstable/persistence/Persistence.js.map +1 -1
  1092. package/dist/unstable/persistence/RateLimiter.d.ts +28 -17
  1093. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  1094. package/dist/unstable/persistence/RateLimiter.js +26 -15
  1095. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  1096. package/dist/unstable/persistence/Redis.d.ts +2 -2
  1097. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  1098. package/dist/unstable/persistence/Redis.js +3 -3
  1099. package/dist/unstable/persistence/Redis.js.map +1 -1
  1100. package/dist/unstable/persistence/index.js.map +1 -1
  1101. package/dist/unstable/process/ChildProcess.d.ts +64 -21
  1102. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  1103. package/dist/unstable/process/ChildProcess.js +14 -5
  1104. package/dist/unstable/process/ChildProcess.js.map +1 -1
  1105. package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
  1106. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1107. package/dist/unstable/process/ChildProcessSpawner.js +4 -2
  1108. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1109. package/dist/unstable/process/index.js.map +1 -1
  1110. package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
  1111. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  1112. package/dist/unstable/reactivity/AsyncResult.js +14 -13
  1113. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  1114. package/dist/unstable/reactivity/Atom.d.ts +105 -19
  1115. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1116. package/dist/unstable/reactivity/Atom.js +44 -12
  1117. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1118. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
  1119. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1120. package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
  1121. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1122. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  1123. package/dist/unstable/reactivity/AtomRegistry.js +25 -4
  1124. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1125. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  1126. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1127. package/dist/unstable/reactivity/AtomRpc.js +4 -1
  1128. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1129. package/dist/unstable/reactivity/Hydration.d.ts +1 -1
  1130. package/dist/unstable/reactivity/Hydration.js +1 -1
  1131. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  1132. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1133. package/dist/unstable/reactivity/index.js.map +1 -1
  1134. package/dist/unstable/rpc/Rpc.d.ts +35 -33
  1135. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1136. package/dist/unstable/rpc/Rpc.js +4 -2
  1137. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1138. package/dist/unstable/rpc/RpcClient.d.ts +12 -12
  1139. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1140. package/dist/unstable/rpc/RpcClient.js +14 -12
  1141. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1142. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  1143. package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
  1144. package/dist/unstable/rpc/RpcGroup.js +1 -1
  1145. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1146. package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
  1147. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  1148. package/dist/unstable/rpc/RpcMessage.js +6 -6
  1149. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  1150. package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
  1151. package/dist/unstable/rpc/RpcMiddleware.js +1 -1
  1152. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1153. package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
  1154. package/dist/unstable/rpc/RpcSchema.js +3 -3
  1155. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1156. package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
  1157. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1158. package/dist/unstable/rpc/RpcSerialization.js +175 -96
  1159. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1160. package/dist/unstable/rpc/RpcServer.d.ts +13 -13
  1161. package/dist/unstable/rpc/RpcServer.js +17 -13
  1162. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1163. package/dist/unstable/rpc/RpcTest.js.map +1 -1
  1164. package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
  1165. package/dist/unstable/rpc/RpcWorker.js +4 -4
  1166. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1167. package/dist/unstable/rpc/Utils.js.map +1 -1
  1168. package/dist/unstable/rpc/index.js.map +1 -1
  1169. package/dist/unstable/schema/Model.d.ts +52 -50
  1170. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1171. package/dist/unstable/schema/Model.js +35 -33
  1172. package/dist/unstable/schema/Model.js.map +1 -1
  1173. package/dist/unstable/schema/VariantSchema.d.ts +6 -7
  1174. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  1175. package/dist/unstable/schema/VariantSchema.js +15 -12
  1176. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1177. package/dist/unstable/schema/index.js.map +1 -1
  1178. package/dist/unstable/socket/Socket.d.ts +12 -4
  1179. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1180. package/dist/unstable/socket/Socket.js +10 -5
  1181. package/dist/unstable/socket/Socket.js.map +1 -1
  1182. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1183. package/dist/unstable/socket/index.js.map +1 -1
  1184. package/dist/unstable/sql/Migrator.js.map +1 -1
  1185. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  1186. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1187. package/dist/unstable/sql/SqlClient.js +2 -2
  1188. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1189. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1190. package/dist/unstable/sql/SqlError.d.ts +2 -2
  1191. package/dist/unstable/sql/SqlError.js +2 -2
  1192. package/dist/unstable/sql/SqlError.js.map +1 -1
  1193. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  1194. package/dist/unstable/sql/SqlModel.js +2 -2
  1195. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1196. package/dist/unstable/sql/SqlResolver.d.ts +5 -5
  1197. package/dist/unstable/sql/SqlResolver.js +2 -2
  1198. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1199. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1200. package/dist/unstable/sql/SqlStream.js.map +1 -1
  1201. package/dist/unstable/sql/Statement.d.ts +6 -6
  1202. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  1203. package/dist/unstable/sql/Statement.js +22 -21
  1204. package/dist/unstable/sql/Statement.js.map +1 -1
  1205. package/dist/unstable/sql/index.js.map +1 -1
  1206. package/dist/unstable/workers/Transferable.d.ts +1 -1
  1207. package/dist/unstable/workers/Transferable.js +1 -1
  1208. package/dist/unstable/workers/Transferable.js.map +1 -1
  1209. package/dist/unstable/workers/Worker.d.ts +2 -2
  1210. package/dist/unstable/workers/Worker.js +2 -2
  1211. package/dist/unstable/workers/Worker.js.map +1 -1
  1212. package/dist/unstable/workers/WorkerError.d.ts +7 -7
  1213. package/dist/unstable/workers/WorkerError.js +6 -6
  1214. package/dist/unstable/workers/WorkerError.js.map +1 -1
  1215. package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
  1216. package/dist/unstable/workers/WorkerRunner.js +1 -1
  1217. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1218. package/dist/unstable/workers/index.js.map +1 -1
  1219. package/dist/unstable/workflow/Activity.d.ts +2 -2
  1220. package/dist/unstable/workflow/Activity.js +2 -2
  1221. package/dist/unstable/workflow/Activity.js.map +1 -1
  1222. package/dist/unstable/workflow/DurableClock.d.ts +1 -1
  1223. package/dist/unstable/workflow/DurableClock.js +1 -1
  1224. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1225. package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
  1226. package/dist/unstable/workflow/DurableDeferred.js +5 -5
  1227. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1228. package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
  1229. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  1230. package/dist/unstable/workflow/DurableQueue.js +22 -20
  1231. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  1232. package/dist/unstable/workflow/Workflow.d.ts +21 -21
  1233. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1234. package/dist/unstable/workflow/Workflow.js +13 -14
  1235. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1236. package/dist/unstable/workflow/WorkflowEngine.d.ts +1 -1
  1237. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1238. package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
  1239. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  1240. package/dist/unstable/workflow/WorkflowProxy.js +4 -2
  1241. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  1242. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1243. package/dist/unstable/workflow/index.js.map +1 -1
  1244. package/dist/unstable/workflow/internal/crypto.js.map +1 -1
  1245. package/package.json +5 -6
  1246. package/src/Array.ts +1068 -1070
  1247. package/src/BigDecimal.ts +433 -756
  1248. package/src/BigInt.ts +213 -269
  1249. package/src/Boolean.ts +146 -188
  1250. package/src/Cache.ts +409 -255
  1251. package/src/Cause.ts +167 -277
  1252. package/src/Channel.ts +923 -830
  1253. package/src/ChannelSchema.ts +1 -1
  1254. package/src/Chunk.ts +841 -1181
  1255. package/src/Clock.ts +181 -49
  1256. package/src/Combiner.ts +20 -33
  1257. package/src/Config.ts +618 -334
  1258. package/src/ConfigProvider.ts +221 -127
  1259. package/src/Console.ts +289 -39
  1260. package/src/Context.ts +319 -378
  1261. package/src/Cron.ts +68 -77
  1262. package/src/Crypto.ts +13 -15
  1263. package/src/Data.ts +63 -82
  1264. package/src/DateTime.ts +564 -660
  1265. package/src/Deferred.ts +253 -256
  1266. package/src/Duration.ts +216 -308
  1267. package/src/Effect.ts +2958 -3390
  1268. package/src/Encoding.ts +22 -40
  1269. package/src/Equal.ts +49 -39
  1270. package/src/Equivalence.ts +103 -105
  1271. package/src/ErrorReporter.ts +51 -27
  1272. package/src/ExecutionPlan.ts +13 -55
  1273. package/src/Exit.ts +116 -192
  1274. package/src/Fiber.ts +81 -148
  1275. package/src/FiberHandle.ts +155 -107
  1276. package/src/FiberMap.ts +225 -174
  1277. package/src/FiberSet.ts +124 -82
  1278. package/src/FileSystem.ts +155 -263
  1279. package/src/Filter.ts +61 -33
  1280. package/src/Formatter.ts +54 -56
  1281. package/src/Function.ts +76 -145
  1282. package/src/Graph.ts +416 -770
  1283. package/src/HKT.ts +12 -6
  1284. package/src/Hash.ts +52 -83
  1285. package/src/HashMap.ts +319 -411
  1286. package/src/HashRing.ts +1 -0
  1287. package/src/HashSet.ts +177 -284
  1288. package/src/Inspectable.ts +12 -12
  1289. package/src/Iterable.ts +622 -787
  1290. package/src/JsonPatch.ts +60 -113
  1291. package/src/JsonPointer.ts +8 -8
  1292. package/src/JsonSchema.ts +405 -249
  1293. package/src/Latch.ts +23 -35
  1294. package/src/Layer.ts +359 -260
  1295. package/src/LayerMap.ts +49 -29
  1296. package/src/LayerRef.ts +6 -2
  1297. package/src/LogLevel.ts +114 -214
  1298. package/src/Logger.ts +347 -699
  1299. package/src/ManagedRuntime.ts +20 -5
  1300. package/src/Match.ts +217 -252
  1301. package/src/Metric.ts +520 -1092
  1302. package/src/MutableHashMap.ts +218 -255
  1303. package/src/MutableHashSet.ts +84 -89
  1304. package/src/MutableList.ts +73 -370
  1305. package/src/MutableRef.ts +420 -243
  1306. package/src/Newtype.ts +21 -14
  1307. package/src/NonEmptyIterable.ts +7 -137
  1308. package/src/Number.ts +196 -233
  1309. package/src/Optic.ts +246 -385
  1310. package/src/Option.ts +449 -813
  1311. package/src/Order.ts +109 -109
  1312. package/src/Ordering.ts +20 -23
  1313. package/src/PartitionedSemaphore.ts +1 -4
  1314. package/src/Path.ts +38 -41
  1315. package/src/Pipeable.ts +6 -5
  1316. package/src/PlatformError.ts +4 -4
  1317. package/src/Pool.ts +4 -2
  1318. package/src/Predicate.ts +200 -181
  1319. package/src/PrimaryKey.ts +7 -7
  1320. package/src/PubSub.ts +526 -552
  1321. package/src/Pull.ts +24 -18
  1322. package/src/Queue.ts +200 -159
  1323. package/src/Random.ts +49 -74
  1324. package/src/RcMap.ts +121 -63
  1325. package/src/RcRef.ts +24 -13
  1326. package/src/Record.ts +387 -487
  1327. package/src/Redactable.ts +10 -3
  1328. package/src/Redacted.ts +25 -25
  1329. package/src/Reducer.ts +8 -15
  1330. package/src/Ref.ts +221 -361
  1331. package/src/References.ts +102 -214
  1332. package/src/RegExp.ts +10 -14
  1333. package/src/Request.ts +36 -28
  1334. package/src/RequestResolver.ts +202 -91
  1335. package/src/Result.ts +314 -485
  1336. package/src/Runtime.ts +50 -75
  1337. package/src/Schedule.ts +308 -1734
  1338. package/src/Scheduler.ts +20 -7
  1339. package/src/Schema.ts +3156 -1634
  1340. package/src/SchemaAST.ts +676 -489
  1341. package/src/SchemaError.ts +8 -7
  1342. package/src/SchemaGetter.ts +277 -218
  1343. package/src/SchemaIssue.ts +90 -276
  1344. package/src/SchemaParser.ts +179 -116
  1345. package/src/SchemaRepresentation.ts +698 -3417
  1346. package/src/SchemaTransformation.ts +132 -91
  1347. package/src/Scope.ts +123 -151
  1348. package/src/ScopedRef.ts +4 -4
  1349. package/src/Semaphore.ts +157 -54
  1350. package/src/Sink.ts +128 -113
  1351. package/src/Stdio.ts +1 -1
  1352. package/src/Stream.ts +2665 -3142
  1353. package/src/String.ts +275 -312
  1354. package/src/Struct.ts +114 -118
  1355. package/src/SubscriptionRef.ts +284 -252
  1356. package/src/Symbol.ts +3 -3
  1357. package/src/Terminal.ts +2 -2
  1358. package/src/Tracer.ts +102 -55
  1359. package/src/Trie.ts +287 -679
  1360. package/src/Tuple.ts +92 -127
  1361. package/src/TxChunk.ts +201 -121
  1362. package/src/TxDeferred.ts +62 -46
  1363. package/src/TxHashMap.ts +645 -799
  1364. package/src/TxHashSet.ts +443 -356
  1365. package/src/TxPriorityQueue.ts +130 -98
  1366. package/src/TxPubSub.ts +107 -80
  1367. package/src/TxQueue.ts +214 -183
  1368. package/src/TxReentrantLock.ts +97 -66
  1369. package/src/TxRef.ts +51 -32
  1370. package/src/TxSemaphore.ts +129 -95
  1371. package/src/TxSubscriptionRef.ts +97 -70
  1372. package/src/Types.ts +127 -70
  1373. package/src/Unify.ts +45 -65
  1374. package/src/Utils.ts +23 -16
  1375. package/src/index.ts +0 -5
  1376. package/src/internal/core.ts +5 -4
  1377. package/src/internal/dateTime.ts +6 -0
  1378. package/src/internal/effect.ts +160 -79
  1379. package/src/internal/matcher.ts +1 -1
  1380. package/src/internal/persistence.ts +2 -0
  1381. package/src/internal/record.ts +11 -7
  1382. package/src/internal/references.ts +3 -7
  1383. package/src/internal/schema/annotations.ts +44 -0
  1384. package/src/internal/schema/fromJsonSchemaDocument.ts +959 -0
  1385. package/src/internal/schema/fromRepresentation.ts +339 -0
  1386. package/src/internal/schema/parser.ts +22 -0
  1387. package/src/internal/schema/schema.ts +45 -46
  1388. package/src/internal/schema/{arbitrary.ts → toArbitrary.ts} +8 -10
  1389. package/src/internal/schema/toCodeDocument.ts +572 -0
  1390. package/src/internal/schema/{equivalence.ts → toEquivalence.ts} +12 -7
  1391. package/src/internal/schema/toJsonSchemaDocument.ts +529 -0
  1392. package/src/internal/schema/toRepresentation.ts +386 -0
  1393. package/src/internal/stackTraceLimit.ts +3 -7
  1394. package/src/internal/trie.ts +10 -11
  1395. package/src/testing/FastCheck.ts +8 -7
  1396. package/src/testing/TestClock.ts +73 -31
  1397. package/src/testing/TestConsole.ts +32 -31
  1398. package/src/testing/TestSchema.ts +29 -29
  1399. package/src/unstable/ai/AiError.ts +100 -122
  1400. package/src/unstable/ai/AnthropicStructuredOutput.ts +103 -334
  1401. package/src/unstable/ai/Chat.ts +132 -97
  1402. package/src/unstable/ai/EmbeddingModel.ts +1 -1
  1403. package/src/unstable/ai/IdGenerator.ts +32 -28
  1404. package/src/unstable/ai/LanguageModel.ts +137 -95
  1405. package/src/unstable/ai/McpProtocol.ts +48 -0
  1406. package/src/unstable/ai/McpSchema.ts +75 -65
  1407. package/src/unstable/ai/McpServer.ts +1045 -303
  1408. package/src/unstable/ai/Model.ts +9 -20
  1409. package/src/unstable/ai/OpenAiStructuredOutput.ts +231 -396
  1410. package/src/unstable/ai/Prompt.ts +145 -43
  1411. package/src/unstable/ai/Response.ts +52 -38
  1412. package/src/unstable/ai/Telemetry.ts +46 -13
  1413. package/src/unstable/ai/Tokenizer.ts +14 -3
  1414. package/src/unstable/ai/Tool.ts +81 -48
  1415. package/src/unstable/ai/Toolkit.ts +45 -15
  1416. package/src/unstable/ai/index.ts +5 -0
  1417. package/src/unstable/ai/internal/codec-transformer.ts +13 -7
  1418. package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
  1419. package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
  1420. package/src/unstable/ai/internal/structured-output.ts +453 -0
  1421. package/src/unstable/cli/Argument.ts +273 -69
  1422. package/src/unstable/cli/CliError.ts +116 -77
  1423. package/src/unstable/cli/CliOutput.ts +44 -58
  1424. package/src/unstable/cli/Command.ts +709 -111
  1425. package/src/unstable/cli/Flag.ts +418 -138
  1426. package/src/unstable/cli/GlobalFlag.ts +1 -1
  1427. package/src/unstable/cli/HelpDoc.ts +12 -4
  1428. package/src/unstable/cli/Param.ts +295 -81
  1429. package/src/unstable/cli/Primitive.ts +371 -150
  1430. package/src/unstable/cli/Prompt.ts +28 -14
  1431. package/src/unstable/cli/internal/command.ts +13 -5
  1432. package/src/unstable/cli/internal/config.ts +8 -10
  1433. package/src/unstable/cli/internal/lexer.ts +8 -2
  1434. package/src/unstable/cli/internal/parser.ts +2 -2
  1435. package/src/unstable/cluster/ClusterSchema.ts +8 -8
  1436. package/src/unstable/cluster/ClusterWorkflowEngine.ts +8 -4
  1437. package/src/unstable/cluster/Entity.ts +16 -17
  1438. package/src/unstable/cluster/EntityProxy.ts +4 -2
  1439. package/src/unstable/cluster/EntityResource.ts +2 -2
  1440. package/src/unstable/cluster/Envelope.ts +5 -4
  1441. package/src/unstable/cluster/HttpRunner.ts +6 -4
  1442. package/src/unstable/cluster/Message.ts +9 -9
  1443. package/src/unstable/cluster/MessageStorage.ts +15 -15
  1444. package/src/unstable/cluster/Reply.ts +5 -7
  1445. package/src/unstable/cluster/Runner.ts +1 -1
  1446. package/src/unstable/cluster/RunnerAddress.ts +1 -1
  1447. package/src/unstable/cluster/RunnerHealth.ts +1 -1
  1448. package/src/unstable/cluster/RunnerServer.ts +41 -8
  1449. package/src/unstable/cluster/RunnerStorage.ts +2 -2
  1450. package/src/unstable/cluster/Runners.ts +23 -12
  1451. package/src/unstable/cluster/ShardId.ts +1 -1
  1452. package/src/unstable/cluster/Sharding.ts +168 -42
  1453. package/src/unstable/cluster/ShardingConfig.ts +8 -4
  1454. package/src/unstable/cluster/SingleRunner.ts +4 -2
  1455. package/src/unstable/cluster/SingletonAddress.ts +1 -1
  1456. package/src/unstable/cluster/Snowflake.ts +8 -8
  1457. package/src/unstable/cluster/SqlMessageStorage.ts +84 -36
  1458. package/src/unstable/cluster/SqlRunnerStorage.ts +205 -119
  1459. package/src/unstable/cluster/internal/entityManager.ts +42 -25
  1460. package/src/unstable/cluster/internal/shardLock.ts +9 -0
  1461. package/src/unstable/devtools/DevToolsSchema.ts +10 -5
  1462. package/src/unstable/encoding/Msgpack.ts +6 -8
  1463. package/src/unstable/encoding/Sse.ts +98 -16
  1464. package/src/unstable/eventlog/Event.ts +20 -20
  1465. package/src/unstable/eventlog/EventGroup.ts +4 -4
  1466. package/src/unstable/eventlog/EventJournal.ts +16 -16
  1467. package/src/unstable/eventlog/EventLog.ts +24 -14
  1468. package/src/unstable/eventlog/EventLogEncryption.ts +2 -2
  1469. package/src/unstable/eventlog/EventLogMessage.ts +12 -5
  1470. package/src/unstable/eventlog/EventLogRemote.ts +1 -1
  1471. package/src/unstable/eventlog/EventLogServer.ts +41 -7
  1472. package/src/unstable/eventlog/EventLogServerEncrypted.ts +13 -5
  1473. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +14 -6
  1474. package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
  1475. package/src/unstable/eventlog/SqlEventJournal.ts +2 -2
  1476. package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +1 -1
  1477. package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +6 -3
  1478. package/src/unstable/http/Cookies.ts +64 -45
  1479. package/src/unstable/http/Etag.ts +1 -1
  1480. package/src/unstable/http/FetchHttpClient.ts +3 -1
  1481. package/src/unstable/http/Headers.ts +10 -10
  1482. package/src/unstable/http/HttpBody.ts +20 -5
  1483. package/src/unstable/http/HttpClient.ts +83 -55
  1484. package/src/unstable/http/HttpClientRequest.ts +59 -0
  1485. package/src/unstable/http/HttpClientResponse.ts +4 -4
  1486. package/src/unstable/http/HttpEffect.ts +8 -8
  1487. package/src/unstable/http/HttpMethod.ts +6 -9
  1488. package/src/unstable/http/HttpMiddleware.ts +202 -39
  1489. package/src/unstable/http/HttpPlatform.ts +95 -0
  1490. package/src/unstable/http/HttpRouter.ts +102 -98
  1491. package/src/unstable/http/HttpServer.ts +13 -13
  1492. package/src/unstable/http/HttpServerError.ts +2 -2
  1493. package/src/unstable/http/HttpServerRequest.ts +9 -8
  1494. package/src/unstable/http/HttpServerResponse.ts +30 -0
  1495. package/src/unstable/http/HttpStaticServer.ts +35 -7
  1496. package/src/unstable/http/Multipart.ts +22 -19
  1497. package/src/unstable/http/Template.ts +1 -1
  1498. package/src/unstable/http/Url.ts +33 -63
  1499. package/src/unstable/http/UrlParams.ts +27 -32
  1500. package/src/unstable/http/internal/compression.ts +196 -0
  1501. package/src/unstable/httpapi/HttpApi.ts +3 -3
  1502. package/src/unstable/httpapi/HttpApiBuilder.ts +10 -9
  1503. package/src/unstable/httpapi/HttpApiClient.ts +19 -19
  1504. package/src/unstable/httpapi/HttpApiEndpoint.ts +42 -42
  1505. package/src/unstable/httpapi/HttpApiError.ts +13 -13
  1506. package/src/unstable/httpapi/HttpApiGroup.ts +16 -16
  1507. package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
  1508. package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
  1509. package/src/unstable/httpapi/HttpApiSchema.ts +6 -6
  1510. package/src/unstable/httpapi/OpenApi.ts +65 -41
  1511. package/src/unstable/observability/OtlpExporter.ts +126 -10
  1512. package/src/unstable/observability/OtlpLogger.ts +5 -5
  1513. package/src/unstable/observability/OtlpMetrics.ts +12 -5
  1514. package/src/unstable/observability/OtlpResource.ts +26 -17
  1515. package/src/unstable/observability/OtlpTracer.ts +8 -4
  1516. package/src/unstable/observability/PrometheusMetrics.ts +13 -4
  1517. package/src/unstable/observability/internal/otlpEnv.ts +1 -1
  1518. package/src/unstable/observability/internal/protobuf.ts +3 -0
  1519. package/src/unstable/persistence/KeyValueStore.ts +72 -49
  1520. package/src/unstable/persistence/Persistable.ts +11 -10
  1521. package/src/unstable/persistence/PersistedQueue.ts +6 -6
  1522. package/src/unstable/persistence/Persistence.ts +126 -19
  1523. package/src/unstable/persistence/RateLimiter.ts +28 -17
  1524. package/src/unstable/persistence/Redis.ts +4 -4
  1525. package/src/unstable/process/ChildProcess.ts +64 -21
  1526. package/src/unstable/process/ChildProcessSpawner.ts +22 -11
  1527. package/src/unstable/reactivity/AsyncResult.ts +16 -16
  1528. package/src/unstable/reactivity/Atom.ts +117 -22
  1529. package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
  1530. package/src/unstable/reactivity/AtomRegistry.ts +25 -4
  1531. package/src/unstable/reactivity/AtomRpc.ts +5 -4
  1532. package/src/unstable/reactivity/Hydration.ts +1 -1
  1533. package/src/unstable/rpc/Rpc.ts +35 -33
  1534. package/src/unstable/rpc/RpcClient.ts +18 -16
  1535. package/src/unstable/rpc/RpcGroup.ts +8 -8
  1536. package/src/unstable/rpc/RpcMessage.ts +31 -30
  1537. package/src/unstable/rpc/RpcMiddleware.ts +10 -10
  1538. package/src/unstable/rpc/RpcSchema.ts +4 -4
  1539. package/src/unstable/rpc/RpcSerialization.ts +167 -68
  1540. package/src/unstable/rpc/RpcServer.ts +18 -15
  1541. package/src/unstable/rpc/RpcWorker.ts +5 -5
  1542. package/src/unstable/schema/Model.ts +52 -50
  1543. package/src/unstable/schema/VariantSchema.ts +19 -29
  1544. package/src/unstable/socket/Socket.ts +18 -5
  1545. package/src/unstable/sql/SqlClient.ts +5 -6
  1546. package/src/unstable/sql/SqlError.ts +2 -2
  1547. package/src/unstable/sql/SqlModel.ts +2 -2
  1548. package/src/unstable/sql/SqlResolver.ts +5 -5
  1549. package/src/unstable/sql/Statement.ts +31 -29
  1550. package/src/unstable/workers/Transferable.ts +1 -1
  1551. package/src/unstable/workers/Worker.ts +2 -2
  1552. package/src/unstable/workers/WorkerError.ts +7 -7
  1553. package/src/unstable/workers/WorkerRunner.ts +1 -1
  1554. package/src/unstable/workflow/Activity.ts +2 -2
  1555. package/src/unstable/workflow/DurableClock.ts +1 -1
  1556. package/src/unstable/workflow/DurableDeferred.ts +10 -10
  1557. package/src/unstable/workflow/DurableQueue.ts +22 -20
  1558. package/src/unstable/workflow/Workflow.ts +23 -23
  1559. package/src/unstable/workflow/WorkflowEngine.ts +1 -1
  1560. package/src/unstable/workflow/WorkflowProxy.ts +4 -2
  1561. package/dist/SchemaUtils.d.ts +0 -28
  1562. package/dist/SchemaUtils.d.ts.map +0 -1
  1563. package/dist/SchemaUtils.js +0 -45
  1564. package/dist/SchemaUtils.js.map +0 -1
  1565. package/dist/internal/schema/arbitrary.d.ts.map +0 -1
  1566. package/dist/internal/schema/arbitrary.js.map +0 -1
  1567. package/dist/internal/schema/equivalence.d.ts +0 -2
  1568. package/dist/internal/schema/equivalence.d.ts.map +0 -1
  1569. package/dist/internal/schema/equivalence.js.map +0 -1
  1570. package/dist/internal/schema/representation.d.ts +0 -2
  1571. package/dist/internal/schema/representation.d.ts.map +0 -1
  1572. package/dist/internal/schema/representation.js +0 -865
  1573. package/dist/internal/schema/representation.js.map +0 -1
  1574. package/dist/internal/version.d.ts +0 -3
  1575. package/dist/internal/version.d.ts.map +0 -1
  1576. package/dist/internal/version.js +0 -2
  1577. package/dist/internal/version.js.map +0 -1
  1578. package/src/SchemaUtils.ts +0 -51
  1579. package/src/internal/schema/representation.ts +0 -795
  1580. package/src/internal/version.ts +0 -2
@@ -13,11 +13,14 @@
13
13
  import * as Arr from "../../Array.js";
14
14
  import * as Cause from "../../Cause.js";
15
15
  import * as Context from "../../Context.js";
16
+ import * as Data from "../../Data.js";
16
17
  import * as Effect from "../../Effect.js";
17
18
  import * as Exit from "../../Exit.js";
18
19
  import * as Fiber from "../../Fiber.js";
19
20
  import * as Layer from "../../Layer.js";
21
+ import * as LogLevel from "../../LogLevel.js";
20
22
  import * as Option from "../../Option.js";
23
+ import * as Predicate from "../../Predicate.js";
21
24
  import * as Queue from "../../Queue.js";
22
25
  import * as RcMap from "../../RcMap.js";
23
26
  import { CurrentLogLevel } from "../../References.js";
@@ -36,7 +39,9 @@ import * as RpcClient from "../rpc/RpcClient.js";
36
39
  import * as RpcMessage from "../rpc/RpcMessage.js";
37
40
  import * as RpcSerialization from "../rpc/RpcSerialization.js";
38
41
  import * as RpcServer from "../rpc/RpcServer.js";
39
- import { CallToolResult, ClientNotificationRpcs, ClientRpcs, CompleteResult, Elicit, ElicitationDeclined, EnabledWhen, GetPromptResult, InternalError, InvalidParams, isParam, ListPromptsResult, ListResourcesResult, ListResourceTemplatesResult, ListToolsResult, McpServerClient, McpServerClientMiddleware, Prompt, Resource, ResourceTemplate, ServerNotificationRpcs, ServerRequestRpcs, TextContent, Tool as McpTool } from "./McpSchema.js";
42
+ import * as AiError from "./AiError.js";
43
+ import * as McpProtocolRegistry from "./internal/mcpProtocolRegistry.js";
44
+ import { CallToolResult, CancelledNotification, ClientRpcs, Elicit, ElicitationDeclined, EnabledWhen, GetPromptResult, InternalError, INVALID_REQUEST_ERROR_CODE, InvalidParams, InvalidRequest, isParam, ListPromptsResult, ListResourcesResult, ListResourceTemplatesResult, ListToolsResult, LoggingMessageNotification, McpErrorBase, McpServerClient, McpServerClientMiddleware, MethodNotFound, ParseError, Prompt, Resource, ResourceTemplate, ResourceUpdatedNotification, ServerNotificationRpcs, TextContent, Tool as McpTool } from "./McpSchema.js";
40
45
  import * as Tool from "./Tool.js";
41
46
  /**
42
47
  * Service that stores and serves an MCP server's registered tools, resources,
@@ -47,7 +52,7 @@ import * as Tool from "./Tool.js";
47
52
  * Handlers use this service to register capabilities and resolve incoming MCP
48
53
  * requests.
49
54
  *
50
- * @category server
55
+ * @category services
51
56
  * @since 4.0.0
52
57
  */
53
58
  export class McpServer extends /*#__PURE__*/Context.Service()("effect/ai/McpServer") {
@@ -111,7 +116,9 @@ export class McpServer extends /*#__PURE__*/Context.Service()("effect/ai/McpServ
111
116
  message: `Tool '${request.name}' not found`
112
117
  }));
113
118
  }
114
- return handle(request.arguments);
119
+ return handle(request.arguments).pipe(Effect.catchDefect(() => Effect.fail(new InternalError({
120
+ message: "Internal error"
121
+ }))));
115
122
  }),
116
123
  get resources() {
117
124
  return resources;
@@ -150,9 +157,10 @@ export class McpServer extends /*#__PURE__*/Context.Service()("effect/ai/McpServ
150
157
  findResource: uri => Effect.suspend(() => {
151
158
  const match = matcher.find(uri);
152
159
  if (!match) {
153
- return Effect.succeed({
154
- contents: []
155
- });
160
+ return Effect.fail(new McpErrorBase({
161
+ code: -32002,
162
+ message: `Resource '${uri}' not found`
163
+ }));
156
164
  } else if (match.handler._tag === "Resource") {
157
165
  return match.handler.effect;
158
166
  }
@@ -189,7 +197,20 @@ export class McpServer extends /*#__PURE__*/Context.Service()("effect/ai/McpServ
189
197
  const ref = complete.ref;
190
198
  const key = ref.type === "ref/resource" ? `ref/resource/${ref.uri}/${complete.argument.name}` : `ref/prompt/${ref.name}/${complete.argument.name}`;
191
199
  const handler = completionsMap.get(key);
192
- return handler ? yield* handler(complete.argument.value) : CompleteResult.empty;
200
+ if (!handler) {
201
+ return yield* new InvalidParams({
202
+ message: "Unknown completion reference or argument"
203
+ });
204
+ }
205
+ const result = yield* handler(complete.argument.value, complete.context);
206
+ const values = Arr.take(result.completion.values, 100);
207
+ return {
208
+ completion: {
209
+ ...result.completion,
210
+ values,
211
+ hasMore: result.completion.hasMore === true || values.length < result.completion.values.length
212
+ }
213
+ };
193
214
  })
194
215
  });
195
216
  });
@@ -200,10 +221,23 @@ export class McpServer extends /*#__PURE__*/Context.Service()("effect/ai/McpServ
200
221
  */
201
222
  static layer = /*#__PURE__*/Layer.effect(McpServer)(McpServer.make);
202
223
  }
203
- const LATEST_PROTOCOL_VERSION = "2025-06-18";
204
- const SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-03-26", "2024-11-05", "2024-10-07"];
205
- const mcpSessionIdHeader = "mcp-session-id";
206
- const mcpProtocolVersionHeader = "mcp-protocol-version";
224
+ const MCP_SESSION_ID_HEADER = "mcp-session-id";
225
+ const MCP_PROTOCOL_VERSION_HEADER = "mcp-protocol-version";
226
+ const MCP_INVALID_BATCH_METHOD = "invalid/json-rpc-batch";
227
+ const decodeCancelledNotification = /*#__PURE__*/Schema.decodeUnknownEffect(/*#__PURE__*/Schema.toCodecJson(CancelledNotification.payloadSchema));
228
+ const requestKey = requestId => `${typeof requestId}:${requestId}`;
229
+ class McpClientKey extends Data.Class {}
230
+ class McpProtocolState extends /*#__PURE__*/Context.Service()("effect/ai/McpServer/McpProtocolState") {}
231
+ const makeMcpProtocolState = /*#__PURE__*/Effect.fnUntraced(function* (protocols) {
232
+ return McpProtocolState.of({
233
+ sessions: {
234
+ bySessionId: new Map(),
235
+ byClientId: new Map()
236
+ },
237
+ protocolRegistry: yield* McpProtocolRegistry.make(protocols)
238
+ });
239
+ });
240
+ const layerMcpProtocolState = protocols => Layer.effect(McpProtocolState)(makeMcpProtocolState(protocols));
207
241
  /**
208
242
  * Runs an MCP server over the current `RpcServer.Protocol`.
209
243
  *
@@ -213,21 +247,32 @@ const mcpProtocolVersionHeader = "mcp-protocol-version";
213
247
  * tools, resources, and prompts, and forwards queued server notifications to
214
248
  * initialized clients.
215
249
  *
216
- * @category constructors
250
+ * @category running
217
251
  * @since 4.0.0
218
252
  */
219
253
  export const run = /*#__PURE__*/Effect.fnUntraced(function* (options) {
254
+ const protocolStateOption = yield* Effect.serviceOption(McpProtocolState);
255
+ const protocolState = Option.isSome(protocolStateOption) ? protocolStateOption.value : yield* makeMcpProtocolState(options.protocols);
256
+ return yield* runWithProtocolState(options, protocolState);
257
+ });
258
+ const runWithProtocolState = /*#__PURE__*/Effect.fnUntraced(function* (options, protocolState) {
259
+ const serverScope = yield* Effect.scope;
260
+ const protocolRegistry = protocolState.protocolRegistry;
220
261
  const protocol = yield* RpcServer.Protocol;
221
262
  const server = yield* McpServer;
222
263
  const isHttp = Option.isSome(yield* Effect.serviceOption(HttpRouter.HttpRouter));
223
- const clientSessions = new Map();
264
+ const sessions = protocolState.sessions;
265
+ const clientProtocols = new Map();
266
+ const cancelledRequests = new Map();
224
267
  const handlers = yield* Layer.build(layerHandlers(options, {
225
- clientSessions
268
+ sessions,
269
+ protocolRegistry
226
270
  }));
227
271
  const clients = yield* RcMap.make({
228
- lookup: Effect.fnUntraced(function* (clientId) {
272
+ lookup: Effect.fnUntraced(function* (key) {
273
+ const selectedProtocol = protocolRegistry.select(key.protocolVersion);
229
274
  let write;
230
- const client = yield* RpcClient.make(ServerRequestRpcs, {
275
+ const client = yield* RpcClient.make(selectedProtocol.serverRequestRpcs, {
231
276
  spanPrefix: "McpServer/Client"
232
277
  }).pipe(Effect.provideServiceEffect(RpcClient.Protocol, RpcClient.Protocol.make(Effect.fnUntraced(function* (writeResponse) {
233
278
  let cid = 0;
@@ -235,7 +280,7 @@ export const run = /*#__PURE__*/Effect.fnUntraced(function* (options) {
235
280
  return {
236
281
  send(id, request, _transferables) {
237
282
  cid = id;
238
- return protocol.send(clientId, {
283
+ return protocol.send(key.clientId, {
239
284
  ...request,
240
285
  headers: undefined,
241
286
  traceId: undefined,
@@ -258,95 +303,237 @@ export const run = /*#__PURE__*/Effect.fnUntraced(function* (options) {
258
303
  const clientMiddleware = McpServerClientMiddleware.of((effect, {
259
304
  client,
260
305
  headers,
306
+ payload,
261
307
  rpc
262
308
  }) => {
263
- const initializePayload = getInitializedClient(clientSessions, client.id, headers);
264
- const isInitialize = rpc._tag === "initialize";
265
- if (!isInitialize && !initializePayload) {
309
+ const session = getClientSession(sessions, client.id, headers);
310
+ const isInitialize = rpc._tag.endsWith("/initialize");
311
+ if (!isInitialize && !session) {
266
312
  const fiber = Fiber.getCurrent();
267
313
  const httpRequest = Context.getOrUndefined(fiber.context, HttpServerRequest.HttpServerRequest);
268
314
  if (httpRequest) {
269
315
  appendPreResponseHandlerUnsafe(httpRequest, () => Effect.succeed(HttpServerResponse.empty({
270
- status: 404
316
+ status: headers[MCP_SESSION_ID_HEADER] === undefined ? 400 : 404
271
317
  })));
272
318
  }
273
319
  return Effect.die(new Error(`Mcp-Session-Id does not exist`));
274
320
  }
275
- return Effect.provideService(effect, McpServerClient, McpServerClient.of({
321
+ const selectedProtocol = session?.protocol ?? protocolForInternalTag(protocolRegistry, rpc._tag);
322
+ return effect.pipe(Effect.provideService(McpServerClient, McpServerClient.of({
276
323
  clientId: client.id,
277
- initializePayload: initializePayload,
278
- getClient: RcMap.get(clients, client.id).pipe(Effect.map(({
324
+ protocolVersion: selectedProtocol.protocolVersion,
325
+ initializePayload: session?.initializePayload ?? payload,
326
+ getClient: RcMap.get(clients, new McpClientKey({
327
+ clientId: client.id,
328
+ protocolVersion: selectedProtocol.protocolVersion
329
+ })).pipe(Effect.map(({
279
330
  client
280
331
  }) => client))
281
- }));
332
+ })), Effect.provideService(CurrentLogLevel, effectLogLevel(session?.logLevel)));
282
333
  });
283
334
  const patchedProtocol = RpcServer.Protocol.of({
284
335
  ...protocol,
336
+ send: (clientId, response) => {
337
+ if (response._tag === "Exit") {
338
+ const requests = cancelledRequests.get(clientId);
339
+ if (requests?.delete(requestKey(response.requestId)) === true) {
340
+ if (requests.size === 0) {
341
+ cancelledRequests.delete(clientId);
342
+ }
343
+ return Effect.void;
344
+ }
345
+ }
346
+ return protocol.send(clientId, response);
347
+ },
285
348
  run: f => protocol.run((clientId, request_) => {
349
+ const fiber = Fiber.getCurrent();
286
350
  const request = request_;
351
+ const httpRequest = isHttp ? Context.getOrUndefined(fiber.context, HttpServerRequest.HttpServerRequest) : undefined;
352
+ if (httpRequest !== undefined && request._tag !== "Eof") {
353
+ appendPreResponseHandlerUnsafe(httpRequest, (_, response) => Effect.succeed(response.status === 200 && response.body._tag === "Uint8Array" && response.body.contentLength === 0 ? HttpServerResponse.empty({
354
+ headers: Headers.remove(response.headers, "content-type"),
355
+ status: 202
356
+ }) : response));
357
+ }
287
358
  switch (request._tag) {
288
359
  case "Request":
289
360
  {
361
+ const headers = isHttp ? Context.getUnsafe(Fiber.getCurrent().context, HttpServerRequest.HttpServerRequest).headers : Headers.fromInput(request.headers);
362
+ const session = getClientSession(sessions, clientId, headers);
363
+ const selectedProtocol = session?.protocol ?? (request.tag === "initialize" ? protocolRegistry.select(getOfferedProtocolVersion(request.payload)) : protocolRegistry.protocols[0]);
364
+ clientProtocols.set(clientId, selectedProtocol);
365
+ if (request.tag === MCP_INVALID_BATCH_METHOD) {
366
+ return protocol.send(clientId, {
367
+ _tag: "Exit",
368
+ requestId: request.id,
369
+ exit: {
370
+ _tag: "Failure",
371
+ cause: [{
372
+ _tag: "Fail",
373
+ error: new InvalidRequest({
374
+ message: "JSON-RPC batches are not supported"
375
+ })
376
+ }]
377
+ }
378
+ });
379
+ }
290
380
  if (isHttp) {
291
381
  const fiber = Fiber.getCurrent();
292
382
  const httpRequest = Context.getUnsafe(fiber.context, HttpServerRequest.HttpServerRequest);
293
- const client = getInitializedClient(clientSessions, clientId, httpRequest.headers);
294
- if (client) {
295
- appendPreResponseHandlerUnsafe(httpRequest, (_, res) => Effect.succeed(HttpServerResponse.setHeader(res, mcpProtocolVersionHeader, client.protocolVersion)));
383
+ if (session) {
384
+ appendPreResponseHandlerUnsafe(httpRequest, (_, res) => Effect.succeed(HttpServerResponse.setHeader(res, MCP_PROTOCOL_VERSION_HEADER, session.protocol.protocolVersion)));
296
385
  }
297
386
  }
298
- const rpc = ClientNotificationRpcs.requests.get(request.tag);
299
- if (rpc) {
387
+ const routedRequest = protocolRegistry.routeClientRequest(selectedProtocol, request);
388
+ const rpc = protocolRegistry.clientRpcs.requests.get(routedRequest.tag);
389
+ if (rpc && selectedProtocol.clientNotificationRpcs.requests.has(request.tag)) {
390
+ if (!session) {
391
+ if (httpRequest) {
392
+ appendPreResponseHandlerUnsafe(httpRequest, () => Effect.succeed(HttpServerResponse.empty({
393
+ status: headers[MCP_SESSION_ID_HEADER] === undefined ? 400 : 404
394
+ })));
395
+ }
396
+ return Effect.void;
397
+ }
300
398
  if (request.tag === "notifications/cancelled") {
301
- return f(clientId, {
302
- _tag: "Interrupt",
303
- requestId: String(request.payload.requestId)
304
- });
399
+ return decodeCancelledNotification(request.payload).pipe(Effect.flatMap(({
400
+ requestId
401
+ }) => {
402
+ const requests = cancelledRequests.get(clientId) ?? new Set();
403
+ requests.add(requestKey(requestId));
404
+ cancelledRequests.set(clientId, requests);
405
+ return f(clientId, {
406
+ _tag: "Interrupt",
407
+ requestId: RpcMessage.RequestId(requestId)
408
+ });
409
+ }), Effect.catchCause(() => Effect.void));
410
+ }
411
+ return selectedProtocol.payloadCodecs(rpc).decode(request.payload).pipe(Effect.flatMap(payload => {
412
+ if (request.tag === "notifications/roots/list_changed" && session.initializePayload.capabilities.roots?.listChanged === true) {
413
+ if (httpRequest !== undefined) {
414
+ return Effect.void;
415
+ }
416
+ return RcMap.get(clients, new McpClientKey({
417
+ clientId,
418
+ protocolVersion: selectedProtocol.protocolVersion
419
+ })).pipe(Effect.flatMap(({
420
+ client
421
+ }) => client["roots/list"](undefined)), Effect.scoped, Effect.ignoreCause, Effect.forkIn(serverScope), Effect.asVoid);
422
+ }
423
+ const handler = handlers.mapUnsafe.get(rpc.key);
424
+ return handler ? handler.handler(payload, {
425
+ rpc,
426
+ requestId: RpcMessage.RequestId(request.id),
427
+ client: new Rpc.ServerClient(clientId),
428
+ headers
429
+ }) : Effect.void;
430
+ }), Effect.catchCause(() => Effect.void));
431
+ }
432
+ if (!rpc) {
433
+ if (request.isNotification) {
434
+ return Effect.void;
305
435
  }
306
- const handler = handlers.mapUnsafe.get(request.tag);
307
- return handler ? handler.handler(request.payload, {
308
- rpc,
309
- requestId: RpcMessage.RequestId(request.id),
310
- client: new Rpc.ServerClient(clientId),
311
- headers: Headers.fromInput(request.headers)
312
- }) : Effect.void;
436
+ return protocol.send(clientId, {
437
+ _tag: "Exit",
438
+ requestId: request.id,
439
+ exit: {
440
+ _tag: "Failure",
441
+ cause: [{
442
+ _tag: "Fail",
443
+ error: new MethodNotFound({
444
+ message: `Method not found: ${request.tag}`
445
+ })
446
+ }]
447
+ }
448
+ });
313
449
  }
314
- return f(clientId, request);
450
+ return selectedProtocol.payloadCodecs(rpc).decode(request.payload).pipe(Effect.matchEffect({
451
+ onSuccess: () => f(clientId, routedRequest),
452
+ onFailure: () => request.isNotification ? Effect.void : protocol.send(clientId, {
453
+ _tag: "Exit",
454
+ requestId: request.id,
455
+ exit: {
456
+ _tag: "Failure",
457
+ cause: [{
458
+ _tag: "Fail",
459
+ error: new InvalidParams({
460
+ message: "Invalid method parameters"
461
+ })
462
+ }]
463
+ }
464
+ })
465
+ }));
315
466
  }
316
467
  case "Ping":
317
468
  case "Ack":
318
469
  case "Interrupt":
470
+ return f(clientId, request);
319
471
  case "Eof":
472
+ cancelledRequests.delete(clientId);
320
473
  return f(clientId, request);
321
474
  case "Pong":
322
475
  case "Exit":
323
476
  case "Chunk":
324
477
  case "ClientProtocolError":
325
478
  case "Defect":
326
- return RcMap.get(clients, clientId).pipe(Effect.flatMap(({
479
+ return RcMap.get(clients, new McpClientKey({
480
+ clientId,
481
+ protocolVersion: getProtocolForClient(clientProtocols, clientId, protocolRegistry).protocolVersion
482
+ })).pipe(Effect.flatMap(({
327
483
  write
328
484
  }) => write(request)), Effect.scoped);
329
485
  }
330
486
  })
331
487
  });
332
- const encodeNotification = Schema.encodeUnknownEffect(Schema.Union(Array.from(ServerNotificationRpcs.requests.values(), rpc => rpc.payloadSchema)));
333
488
  yield* Queue.take(server.notificationsQueue).pipe(Effect.flatMap(Effect.fnUntraced(function* (request) {
334
- const encoded = yield* encodeNotification(request.payload);
335
- const message = {
336
- _tag: "Request",
337
- tag: request.tag,
338
- payload: encoded
339
- };
340
489
  const clientIds = yield* patchedProtocol.clientIds;
490
+ for (const clientId of clientProtocols.keys()) {
491
+ if (!clientIds.has(clientId)) {
492
+ clientProtocols.delete(clientId);
493
+ sessions.byClientId.delete(clientId);
494
+ }
495
+ }
341
496
  for (const clientId of server.initializedClients.keys()) {
342
497
  if (!clientIds.has(clientId)) {
343
498
  server.initializedClients.delete(clientId);
344
499
  continue;
345
500
  }
501
+ const selectedProtocol = clientProtocols.get(clientId);
502
+ if (!selectedProtocol) {
503
+ continue;
504
+ }
505
+ const rpc = selectedProtocol.serverNotificationRpcs.requests.get(request.tag);
506
+ if (!rpc) {
507
+ continue;
508
+ }
509
+ if (request.tag === "notifications/message") {
510
+ const {
511
+ level
512
+ } = yield* Schema.decodeUnknownEffect(LoggingMessageNotification.payloadSchema)(request.payload);
513
+ if (!isMcpLogLevelEnabled(level, sessions.byClientId.get(clientId)?.logLevel)) {
514
+ continue;
515
+ }
516
+ }
517
+ if (request.tag === "notifications/resources/updated") {
518
+ const {
519
+ uri
520
+ } = yield* Schema.decodeUnknownEffect(ResourceUpdatedNotification.payloadSchema)(request.payload);
521
+ if (sessions.byClientId.get(clientId)?.resourceSubscriptions?.has(uri) !== true) {
522
+ continue;
523
+ }
524
+ }
525
+ const encoded = yield* selectedProtocol.payloadCodecs(rpc).encode(request.payload);
526
+ // TODO: Extend RpcServer.Protocol's outbound message contract with server-originated
527
+ // notifications so MCP does not need to treat this notification as an RPC response.
528
+ const message = {
529
+ _tag: "Request",
530
+ tag: request.tag,
531
+ payload: encoded
532
+ };
346
533
  yield* patchedProtocol.send(clientId, message);
347
534
  }
348
535
  })), Effect.catchCause(() => Effect.void), Effect.forever, Effect.forkScoped);
349
- return yield* RpcServer.make(ClientRpcs, {
536
+ return yield* RpcServer.make(protocolRegistry.clientRpcs, {
350
537
  spanPrefix: "McpServer",
351
538
  disableFatalDefects: true
352
539
  }).pipe(Effect.provideService(RpcServer.Protocol, patchedProtocol), Effect.provideService(McpServerClientMiddleware, clientMiddleware), Effect.provide(handlers));
@@ -380,69 +567,130 @@ export const run = /*#__PURE__*/Effect.fnUntraced(function* (options) {
380
567
  * @category layers
381
568
  * @since 4.0.0
382
569
  */
383
- export const layer = options => Layer.effectDiscard(Effect.forkScoped(run(options))).pipe(Layer.provideMerge(McpServer.layer));
570
+ export const layer = options => layerWithProtocolState(options).pipe(Layer.provide(layerMcpProtocolState(options.protocols)));
571
+ const layerWithProtocolState = options => Layer.effectDiscard(Effect.gen(function* () {
572
+ const protocolState = yield* McpProtocolState;
573
+ yield* Effect.forkScoped(runWithProtocolState(options, protocolState));
574
+ })).pipe(Layer.provideMerge(McpServer.layer));
575
+ const StdioInitializeRequest = /*#__PURE__*/Schema.Struct({
576
+ method: /*#__PURE__*/Schema.Literal("initialize"),
577
+ params: /*#__PURE__*/Schema.Struct({
578
+ protocolVersion: Schema.String
579
+ })
580
+ });
581
+ const StdioInvalidBatchExit = /*#__PURE__*/Schema.Struct({
582
+ _tag: /*#__PURE__*/Schema.Literal("Exit"),
583
+ requestId: Schema.Null,
584
+ exit: /*#__PURE__*/Schema.Struct({
585
+ cause: Schema.Unknown
586
+ })
587
+ });
588
+ const decodeStdioInitializeRequest = /*#__PURE__*/Schema.decodeUnknownOption(StdioInitializeRequest);
589
+ const decodeStdioInvalidBatchExit = /*#__PURE__*/Schema.decodeUnknownOption(StdioInvalidBatchExit);
590
+ const makeStdioSerialization = protocols => RpcSerialization.RpcSerialization.of({
591
+ contentType: "application/json-rpc",
592
+ includesFraming: true,
593
+ makeUnsafe: () => {
594
+ const framing = RpcSerialization.ndjson.makeUnsafe();
595
+ const jsonRpc = RpcSerialization.jsonRpc().makeUnsafe();
596
+ const protocolsByVersion = new Map(protocols.map(protocol => [protocol.protocolVersion, protocol]));
597
+ let selectedProtocol = protocols[0];
598
+ return {
599
+ decode: data => {
600
+ const frames = framing.decode(data);
601
+ const messages = [];
602
+ for (const frame of frames) {
603
+ const entries = Array.isArray(frame) ? frame : [frame];
604
+ const initialize = Arr.findFirst(entries, entry => decodeStdioInitializeRequest(entry));
605
+ selectedProtocol = Option.match(initialize, {
606
+ onNone: () => selectedProtocol,
607
+ onSome: ({
608
+ params
609
+ }) => protocolsByVersion.get(params.protocolVersion) ?? protocols[0]
610
+ });
611
+ if (Array.isArray(frame) && !selectedProtocol.transport.acceptsJsonRpcBatches) {
612
+ messages.push({
613
+ _tag: "Request",
614
+ id: null,
615
+ tag: MCP_INVALID_BATCH_METHOD,
616
+ payload: null,
617
+ headers: []
618
+ });
619
+ } else {
620
+ messages.push(...jsonRpc.decode(JSON.stringify(frame)));
621
+ }
622
+ }
623
+ return messages;
624
+ },
625
+ encode: response => {
626
+ const invalidBatchExit = decodeStdioInvalidBatchExit(response);
627
+ if (Option.isSome(invalidBatchExit)) {
628
+ return framing.encode({
629
+ jsonrpc: "2.0",
630
+ id: null,
631
+ error: {
632
+ _tag: "Cause",
633
+ code: INVALID_REQUEST_ERROR_CODE,
634
+ message: "JSON-RPC batches are not supported",
635
+ data: invalidBatchExit.value.exit.cause
636
+ }
637
+ });
638
+ }
639
+ const encoded = jsonRpc.encode(response);
640
+ return encoded === undefined ? undefined : `${encoded}\n`;
641
+ }
642
+ };
643
+ }
644
+ });
384
645
  /**
385
646
  * Runs the McpServer, using stdio for input and output.
386
647
  *
387
- * **Example** (Running an MCP server over stdio)
648
+ * **Example** (Configuring an MCP server over stdio)
388
649
  *
389
- * ```ts
390
- * import { Effect, Layer, Logger, Schema } from "effect"
391
- * import { NodeRuntime, NodeStdio } from "@effect/platform-node"
392
- * import { McpSchema, McpServer } from "effect/unstable/ai"
650
+ * ```ts import.meta.vitest
651
+ * import { Effect, Layer, Schema } from "effect"
652
+ * import { McpProtocol, McpSchema, McpServer } from "effect/unstable/ai"
393
653
  *
394
654
  * const idParam = McpSchema.param("id", Schema.Number)
395
655
  *
396
- * // Define a resource template for a README file
397
656
  * const ReadmeTemplate = McpServer.resource`file://readme/${idParam}`({
398
657
  * name: "README Template",
399
- * // You can add auto-completion for the ID parameter
400
658
  * completion: {
401
- * id: (_) => Effect.succeed([1, 2, 3, 4, 5])
659
+ * id: () => Effect.succeed([1, 2, 3])
402
660
  * },
403
- * content: Effect.fn(function*(_uri, id) {
404
- * return `# MCP Server Demo - ID: ${id}`
405
- * })
661
+ * content: (_uri, id) => Effect.succeed(`# MCP Server Demo - ID: ${id}`)
406
662
  * })
407
663
  *
408
- * // Define a test prompt with parameters
409
664
  * const TestPrompt = McpServer.prompt({
410
665
  * name: "Test Prompt",
411
- * description: "A test prompt to demonstrate MCP server capabilities",
666
+ * description: "Looks up flight booking details",
412
667
  * parameters: {
413
668
  * flightNumber: Schema.String
414
669
  * },
415
670
  * completion: {
416
- * flightNumber: () => Effect.succeed(["FL123", "FL456", "FL789"])
671
+ * flightNumber: () => Effect.succeed(["FL123", "FL456"])
417
672
  * },
418
673
  * content: ({ flightNumber }) =>
419
674
  * Effect.succeed(`Get the booking details for flight number: ${flightNumber}`)
420
675
  * })
421
676
  *
422
- * // Merge all the resources and prompts into a single server layer
423
- * const ServerLayer = Layer.mergeAll(
424
- * ReadmeTemplate,
425
- * TestPrompt
426
- * ).pipe(
427
- * // Provide the MCP server implementation
677
+ * const ServerLayer = Layer.mergeAll(ReadmeTemplate, TestPrompt).pipe(
428
678
  * Layer.provide(McpServer.layerStdio({
429
679
  * name: "Demo Server",
430
680
  * version: "1.0.0",
431
- * })),
432
- * Layer.provide(NodeStdio.layer),
433
- * Layer.provide(Layer.succeed(Logger.LogToStderr)(true))
681
+ * protocols: [McpProtocol.v2025_06_18]
682
+ * }))
434
683
  * )
435
684
  *
436
- * Layer.launch(ServerLayer).pipe(NodeRuntime.runMain)
685
+ * Layer.isLayer(ServerLayer) // => true
437
686
  * ```
438
687
  *
439
688
  * @category layers
440
689
  * @since 4.0.0
441
690
  */
442
- export const layerStdio = options => layer(options).pipe(Layer.provide(RpcServer.layerProtocolStdio), Layer.provide(RpcSerialization.layerNdJsonRpc()));
691
+ export const layerStdio = options => layer(options).pipe(Layer.provide(RpcServer.layerProtocolStdio), Layer.provide(Layer.succeed(RpcSerialization.RpcSerialization)(makeStdioSerialization(options.protocols))));
443
692
  /**
444
- * Registers an HTTP POST JSON-RPC route at `options.path` on the current
445
- * `HttpRouter`.
693
+ * Registers a Streamable HTTP MCP endpoint at `options.path`.
446
694
  *
447
695
  * **When to use**
448
696
  *
@@ -450,8 +698,9 @@ export const layerStdio = options => layer(options).pipe(Layer.provide(RpcServer
450
698
  *
451
699
  * **Details**
452
700
  *
453
- * This layer composes `layer(options)`, `RpcServer.layerProtocolHttp(options)`,
454
- * and `RpcSerialization.layerJsonRpc()`.
701
+ * POST serves JSON-RPC and accepted notification-only requests return `202`.
702
+ * Unsupported protocol versions return `400`; methods without MCP handlers
703
+ * return `405`. Browser Origins are rejected unless listed in `allowedOrigins`.
455
704
  *
456
705
  * @see {@link layerStdio} for exposing the server over stdio
457
706
  * @see {@link layer} for the base MCP server layer without a transport protocol
@@ -459,11 +708,163 @@ export const layerStdio = options => layer(options).pipe(Layer.provide(RpcServer
459
708
  * @category layers
460
709
  * @since 4.0.0
461
710
  */
462
- export const layerHttp = options => layer(options).pipe(Layer.provide(RpcServer.layerProtocolHttp(options)), Layer.provide(RpcSerialization.layerJsonRpc()));
711
+ export const layerHttp = options => {
712
+ const protocolState = layerMcpProtocolState(options.protocols);
713
+ const methodNotAllowedResponse = HttpServerResponse.empty({
714
+ status: 405,
715
+ headers: {
716
+ allow: "POST"
717
+ }
718
+ });
719
+ const methodNotAllowed = request => Effect.succeed(request.headers.origin !== undefined && !options.allowedOrigins?.includes(request.headers.origin) ? HttpServerResponse.empty({
720
+ status: 403
721
+ }) : methodNotAllowedResponse);
722
+ const routes = Layer.mergeAll(HttpRouter.add("GET", options.path, methodNotAllowed), HttpRouter.add("PUT", options.path, methodNotAllowed), HttpRouter.add("PATCH", options.path, methodNotAllowed), HttpRouter.add("DELETE", options.path, methodNotAllowed), HttpRouter.add("OPTIONS", options.path, methodNotAllowed));
723
+ return Layer.merge(layerWithProtocolState(options), routes).pipe(Layer.provide(layerMcpProtocolHttp(options)), Layer.provide(protocolState), Layer.provide(RpcSerialization.layerJsonRpc()));
724
+ };
725
+ const layerMcpProtocolHttp = options => Layer.effect(RpcServer.Protocol)(Effect.gen(function* () {
726
+ const state = yield* McpProtocolState;
727
+ const {
728
+ httpEffect,
729
+ protocol
730
+ } = yield* RpcServer.makeProtocolWithHttpEffect;
731
+ const router = yield* HttpRouter.HttpRouter;
732
+ yield* router.add("POST", options.path, request => {
733
+ if (request.headers.origin !== undefined && !options.allowedOrigins?.includes(request.headers.origin)) {
734
+ return Effect.succeed(HttpServerResponse.empty({
735
+ status: 403
736
+ }));
737
+ }
738
+ const contentType = request.headers["content-type"]?.split(";", 1)[0]?.trim().toLowerCase();
739
+ if (contentType !== "application/json") {
740
+ return Effect.succeed(HttpServerResponse.empty({
741
+ status: 415
742
+ }));
743
+ }
744
+ const accepted = new Set();
745
+ for (const entry of request.headers.accept?.split(",") ?? []) {
746
+ const [mediaType, ...parameters] = entry.split(";").map(part => part.trim().toLowerCase());
747
+ let quality = 1;
748
+ for (const parameter of parameters) {
749
+ const [name, value] = parameter.split("=", 2).map(part => part.trim());
750
+ if (name === "q") {
751
+ quality = value === undefined ? Number.NaN : Number(value);
752
+ }
753
+ }
754
+ if (mediaType !== undefined && quality > 0 && quality <= 1) {
755
+ accepted.add(mediaType);
756
+ }
757
+ }
758
+ if (!accepted.has("application/json") || !accepted.has("text/event-stream")) {
759
+ return Effect.succeed(HttpServerResponse.empty({
760
+ status: 406
761
+ }));
762
+ }
763
+ const protocolVersion = request.headers[MCP_PROTOCOL_VERSION_HEADER];
764
+ if (protocolVersion !== undefined && !state.protocolRegistry.protocols.some(protocol => protocol.protocolVersion === protocolVersion)) {
765
+ return Effect.succeed(HttpServerResponse.empty({
766
+ status: 400
767
+ }));
768
+ }
769
+ return request.text.pipe(Effect.matchEffect({
770
+ onFailure: () => Effect.succeed(HttpServerResponse.jsonUnsafe({
771
+ jsonrpc: "2.0",
772
+ id: null,
773
+ error: new ParseError({
774
+ message: "Parse error"
775
+ })
776
+ })),
777
+ onSuccess: body => {
778
+ return Effect.match(Schema.decodeUnknownEffect(Schema.UnknownFromJsonString)(body), {
779
+ onFailure: () => ({
780
+ _tag: "Error",
781
+ id: null,
782
+ error: new ParseError({
783
+ message: "Parse error"
784
+ })
785
+ }),
786
+ onSuccess: input => {
787
+ if (Array.isArray(input)) {
788
+ const sessionId = request.headers[MCP_SESSION_ID_HEADER];
789
+ const session = sessionId === undefined ? undefined : state.sessions.bySessionId.get(sessionId);
790
+ let selectedProtocol = session?.protocol ?? state.protocolRegistry.protocols[0];
791
+ for (const entry of input) {
792
+ if (Predicate.hasProperty(entry, "method") && entry.method === "initialize" && Predicate.hasProperty(entry, "params") && Predicate.hasProperty(entry.params, "protocolVersion") && typeof entry.params.protocolVersion === "string") {
793
+ selectedProtocol = state.protocolRegistry.select(entry.params.protocolVersion);
794
+ break;
795
+ }
796
+ }
797
+ if (!selectedProtocol.transport.acceptsJsonRpcBatches) {
798
+ return {
799
+ _tag: "HttpError",
800
+ status: 400
801
+ };
802
+ }
803
+ }
804
+ const hasId = Predicate.hasProperty(input, "id");
805
+ const id = hasId && (typeof input.id === "string" || typeof input.id === "number") ? input.id : null;
806
+ const isJsonRpc = Predicate.hasProperty(input, "jsonrpc") && input.jsonrpc === "2.0";
807
+ const hasValidRequestId = hasId === false || typeof input.id === "string" || typeof input.id === "number";
808
+ const isRequest = isJsonRpc && hasValidRequestId && Predicate.hasProperty(input, "method") && typeof input.method === "string";
809
+ const hasValidResponseId = hasId && (typeof input.id === "string" || typeof input.id === "number" || input.id === null);
810
+ const hasResult = Predicate.hasProperty(input, "result");
811
+ const hasError = Predicate.hasProperty(input, "error");
812
+ const isResponse = isJsonRpc && hasValidResponseId && hasResult !== hasError;
813
+ const isInitialize = isRequest && input.method === "initialize";
814
+ const sessionId = request.headers[MCP_SESSION_ID_HEADER];
815
+ const session = sessionId === undefined ? undefined : state.sessions.bySessionId.get(sessionId);
816
+ if (isInitialize && sessionId !== undefined) {
817
+ return {
818
+ _tag: "HttpError",
819
+ status: session === undefined ? 404 : 400
820
+ };
821
+ }
822
+ if (!isInitialize && isRequest && session === undefined) {
823
+ return {
824
+ _tag: "HttpError",
825
+ status: sessionId === undefined ? 400 : 404
826
+ };
827
+ }
828
+ if (session !== undefined && session.protocol.transport.requiresVersionHeader && protocolVersion !== session.protocol.protocolVersion) {
829
+ return {
830
+ _tag: "HttpError",
831
+ status: 400
832
+ };
833
+ }
834
+ return isRequest || isResponse ? {
835
+ _tag: "Success"
836
+ } : {
837
+ _tag: "Error",
838
+ id,
839
+ error: new InvalidRequest({
840
+ message: "Invalid Request"
841
+ })
842
+ };
843
+ }
844
+ }).pipe(Effect.flatMap(decoded => decoded._tag === "HttpError" ? Effect.succeed(HttpServerResponse.empty({
845
+ status: decoded.status
846
+ })) : decoded._tag === "Error" ? Effect.succeed(HttpServerResponse.jsonUnsafe({
847
+ jsonrpc: "2.0",
848
+ id: decoded.id,
849
+ error: decoded.error
850
+ })) : httpEffect));
851
+ }
852
+ }));
853
+ });
854
+ return protocol;
855
+ }));
856
+ const INTERNAL_TOOL_ERROR_MESSAGE = "Tool execution failed due to an internal server error.";
857
+ const toolErrorResult = message => new CallToolResult({
858
+ isError: true,
859
+ content: [{
860
+ type: "text",
861
+ text: message
862
+ }]
863
+ });
463
864
  /**
464
865
  * Registers a `Toolkit` with the `McpServer`.
465
866
  *
466
- * @category tools
867
+ * @category handlers
467
868
  * @since 4.0.0
468
869
  */
469
870
  export const registerToolkit = /*#__PURE__*/Effect.fnUntraced(function* (toolkit) {
@@ -473,10 +874,15 @@ export const registerToolkit = /*#__PURE__*/Effect.fnUntraced(function* (toolkit
473
874
  for (const tool of Object.values(built.tools)) {
474
875
  const annotations = tool.annotations;
475
876
  const toolMeta = Context.getOrUndefined(annotations, Tool.Meta);
877
+ const isDeclaredFailure = Schema.is(tool.failureSchema);
878
+ const outputSchema = Tool.getJsonSchemaFromSchema(tool.successSchema);
476
879
  const mcpTool = new McpTool({
477
880
  name: tool.name,
478
881
  description: Tool.getDescription(tool),
479
882
  inputSchema: Tool.getJsonSchema(tool),
883
+ ...(outputSchema.type === "object" ? {
884
+ outputSchema
885
+ } : {}),
480
886
  annotations: {
481
887
  ...Context.getOption(tool.annotations, Tool.Title).pipe(Option.map(title => ({
482
888
  title
@@ -492,23 +898,26 @@ export const registerToolkit = /*#__PURE__*/Effect.fnUntraced(function* (toolkit
492
898
  tool: mcpTool,
493
899
  annotations,
494
900
  handle(payload) {
495
- return built.handle(tool.name, payload).pipe(Stream.unwrap, Stream.run(Sink.last()), Effect.flatMap(Effect.fromOption), Effect.provideContext(services), Effect.matchCause({
496
- onFailure: cause => new CallToolResult({
497
- isError: true,
498
- content: [{
499
- type: "text",
500
- text: Cause.pretty(cause)
501
- }]
502
- }),
503
- onSuccess: result => new CallToolResult({
504
- isError: false,
505
- structuredContent: typeof result.encodedResult === "object" ? result.encodedResult : undefined,
506
- content: [{
507
- type: "text",
508
- text: JSON.stringify(result.encodedResult)
509
- }]
510
- })
511
- }), Effect.tapCause(Effect.log));
901
+ return built.handle(tool.name, payload).pipe(Stream.unwrap, Stream.run(Sink.last()), Effect.flatMap(Effect.fromOption), Effect.provideContext(services), Effect.map(result => new CallToolResult({
902
+ isError: false,
903
+ structuredContent: typeof result.encodedResult === "object" ? result.encodedResult : undefined,
904
+ content: [{
905
+ type: "text",
906
+ text: JSON.stringify(result.encodedResult)
907
+ }]
908
+ })), Effect.tapCause(Effect.logError), Effect.catch(error => {
909
+ if (AiError.isAiError(error)) {
910
+ const reason = error.reason;
911
+ return reason._tag === "ToolParameterValidationError" ? Effect.fail(new InvalidParams({
912
+ message: reason.message
913
+ })) : Effect.succeed(toolErrorResult(INTERNAL_TOOL_ERROR_MESSAGE));
914
+ }
915
+ if (isDeclaredFailure(error)) {
916
+ const message = error instanceof Error ? error.message : INTERNAL_TOOL_ERROR_MESSAGE;
917
+ return Effect.succeed(toolErrorResult(message));
918
+ }
919
+ return Effect.succeed(toolErrorResult(INTERNAL_TOOL_ERROR_MESSAGE));
920
+ }), Effect.catchDefect(() => Effect.succeed(toolErrorResult(INTERNAL_TOOL_ERROR_MESSAGE))));
512
921
  }
513
922
  });
514
923
  }
@@ -516,7 +925,7 @@ export const registerToolkit = /*#__PURE__*/Effect.fnUntraced(function* (toolkit
516
925
  /**
517
926
  * Registers an `AiToolkit` with the `McpServer`.
518
927
  *
519
- * @category tools
928
+ * @category layers
520
929
  * @since 4.0.0
521
930
  */
522
931
  export const toolkit = toolkit => Layer.effectDiscard(registerToolkit(toolkit)).pipe(Layer.provide(McpServer.layer));
@@ -531,7 +940,7 @@ export const toolkit = toolkit => Layer.effectDiscard(registerToolkit(toolkit)).
531
940
  *
532
941
  * @see {@link resource} for the layer-based resource registration wrapper
533
942
  *
534
- * @category resources
943
+ * @category handlers
535
944
  * @since 4.0.0
536
945
  */
537
946
  export const registerResource = function () {
@@ -570,10 +979,10 @@ export const registerResource = function () {
570
979
  uriTemplate: uriPath,
571
980
  annotations: options
572
981
  });
573
- const completions = {};
982
+ const completions = Object.create(null);
574
983
  for (const [param, handle] of Object.entries(options.completion ?? {})) {
575
984
  const encodeArray = Schema.encodeUnknownEffect(Schema.Array(params[param]));
576
- const handler = input => handle(input).pipe(Effect.flatMap(encodeArray), Effect.map(values => ({
985
+ const handler = (input, context) => handle(input, context).pipe(Effect.flatMap(encodeArray), Effect.map(values => ({
577
986
  completion: {
578
987
  values: values,
579
988
  total: values.length,
@@ -612,7 +1021,7 @@ export const registerResource = function () {
612
1021
  *
613
1022
  * @see {@link registerResource} for the Effect-level resource registration API
614
1023
  *
615
- * @category resources
1024
+ * @category layers
616
1025
  * @since 4.0.0
617
1026
  */
618
1027
  export const resource = function () {
@@ -638,7 +1047,7 @@ export const resource = function () {
638
1047
  *
639
1048
  * @see {@link prompt} for the layer-based prompt registration wrapper
640
1049
  *
641
- * @category prompts
1050
+ * @category handlers
642
1051
  * @since 4.0.0
643
1052
  */
644
1053
  export const registerPrompt = options => {
@@ -661,10 +1070,10 @@ export const registerPrompt = options => {
661
1070
  return Effect.gen(function* () {
662
1071
  const registry = yield* McpServer;
663
1072
  const services = yield* Effect.context();
664
- const completions = {};
1073
+ const completions = Object.create(null);
665
1074
  for (const [param, handle] of Object.entries(completion)) {
666
1075
  const encodeArray = Schema.encodeEffect(Schema.Array(props[param]));
667
- const handler = input => handle(input).pipe(Effect.flatMap(encodeArray), Effect.map(values => ({
1076
+ const handler = (input, context) => handle(input, context).pipe(Effect.flatMap(encodeArray), Effect.map(values => ({
668
1077
  completion: {
669
1078
  values: values,
670
1079
  total: values.length,
@@ -684,7 +1093,7 @@ export const registerPrompt = options => {
684
1093
  annotations: options.annotations ?? Context.empty(),
685
1094
  handle: params => decode(params).pipe(Effect.mapError(error => new InvalidParams({
686
1095
  message: error.message
687
- })), Effect.flatMap(params => options.content(params)), Effect.map(messages => {
1096
+ })), Effect.flatMap(params => options.content(params).pipe(Effect.map(messages => {
688
1097
  messages = typeof messages === "string" ? [{
689
1098
  role: "user",
690
1099
  content: TextContent.make({
@@ -700,7 +1109,7 @@ export const registerPrompt = options => {
700
1109
  return Effect.fail(new InternalError({
701
1110
  message: prettyError.message
702
1111
  }));
703
- }), Effect.provideContext(services))
1112
+ }))), Effect.provideContext(services))
704
1113
  });
705
1114
  });
706
1115
  };
@@ -719,7 +1128,7 @@ export const registerPrompt = options => {
719
1128
  *
720
1129
  * @see {@link registerPrompt} for the Effect-level prompt registration API
721
1130
  *
722
- * @category prompts
1131
+ * @category layers
723
1132
  * @since 4.0.0
724
1133
  */
725
1134
  export const prompt = options => Layer.effectDiscard(registerPrompt(options)).pipe(Layer.provide(McpServer.layer));
@@ -732,7 +1141,7 @@ export const prompt = options => Layer.effectDiscard(registerPrompt(options)).pi
732
1141
  * Accepted content is decoded with the supplied schema, declined requests fail
733
1142
  * with `ElicitationDeclined`, and canceled requests interrupt the effect.
734
1143
  *
735
- * @category elicitation
1144
+ * @category accessors
736
1145
  * @since 4.0.0
737
1146
  */
738
1147
  export const elicit = /*#__PURE__*/Effect.fnUntraced(function* (options) {
@@ -763,7 +1172,7 @@ export const elicit = /*#__PURE__*/Effect.fnUntraced(function* (options) {
763
1172
  /**
764
1173
  * Accesses the current client's capabilities.
765
1174
  *
766
- * @category capabilities
1175
+ * @category accessors
767
1176
  * @since 4.0.0
768
1177
  */
769
1178
  export const clientCapabilities = /*#__PURE__*/McpServerClient.useSync(_ => _.initializePayload.capabilities);
@@ -788,7 +1197,7 @@ const makeUriMatcher = () => {
788
1197
  const compileUriTemplate = (segments, ...schemas) => {
789
1198
  let routerPath = segments[0].replace(":", "::");
790
1199
  let uriPath = segments[0];
791
- const params = {};
1200
+ const params = Object.create(null);
792
1201
  let pathSchema = Schema.Tuple([]);
793
1202
  if (schemas.length > 0) {
794
1203
  const arr = [];
@@ -812,138 +1221,196 @@ const compileUriTemplate = (segments, ...schemas) => {
812
1221
  params
813
1222
  };
814
1223
  };
815
- const layerHandlers = (serverInfo, options) => ClientRpcs.toLayer(Effect.gen(function* () {
1224
+ const layerHandlers = (serverInfo, options) => Layer.effectContext(Effect.gen(function* () {
816
1225
  const server = yield* McpServer;
817
- let currentLogLevel = yield* CurrentLogLevel;
818
- return ClientRpcs.of({
819
- // Requests
820
- ping: () => Effect.succeed({}),
821
- initialize(params, {
822
- client
823
- }) {
824
- const requestedVersion = SUPPORTED_PROTOCOL_VERSIONS.includes(params.protocolVersion) ? params.protocolVersion : LATEST_PROTOCOL_VERSION;
825
- if (requestedVersion !== params.protocolVersion) {
826
- params = {
827
- ...params,
828
- protocolVersion: requestedVersion
829
- };
830
- }
831
- const capabilities = {
832
- completions: {}
833
- };
834
- if (server.tools.length > 0) {
835
- capabilities.tools = {
836
- listChanged: true
837
- };
838
- }
839
- if (server.resources.length > 0 || server.resourceTemplates.length > 0) {
840
- capabilities.resources = {
841
- listChanged: true,
842
- subscribe: false
843
- };
844
- }
845
- if (server.prompts.length > 0) {
846
- capabilities.prompts = {
847
- listChanged: true
1226
+ const currentLogLevel = yield* CurrentLogLevel;
1227
+ const contextMap = new Map();
1228
+ for (const protocol of options.protocolRegistry.protocols) {
1229
+ const selectedProtocol = protocol;
1230
+ const wireHandlers = ClientRpcs.of({
1231
+ // Requests
1232
+ ping: () => Effect.succeed({}),
1233
+ initialize(params, {
1234
+ client
1235
+ }) {
1236
+ const capabilities = {
1237
+ completions: {},
1238
+ logging: {}
848
1239
  };
849
- }
850
- if (serverInfo.extensions) {
851
- capabilities.extensions = serverInfo.extensions;
852
- }
853
- return Effect.withFiber(fiber => {
854
- const httpRequest = Context.getOrUndefined(fiber.context, HttpServerRequest.HttpServerRequest);
855
- if (httpRequest) {
856
- const sessionId = crypto.randomUUID();
857
- options.clientSessions.set(sessionId, params);
858
- appendPreResponseHandlerUnsafe(httpRequest, (_req, res) => Effect.succeed(HttpServerResponse.setHeaders(res, {
859
- [mcpSessionIdHeader]: sessionId,
860
- [mcpProtocolVersionHeader]: requestedVersion
861
- })));
862
- } else {
863
- options.clientSessions.set(String(client.id), params);
1240
+ if (server.tools.length > 0) {
1241
+ capabilities.tools = {
1242
+ listChanged: true
1243
+ };
1244
+ }
1245
+ if (server.resources.length > 0 || server.resourceTemplates.length > 0) {
1246
+ capabilities.resources = {
1247
+ listChanged: true,
1248
+ subscribe: true
1249
+ };
1250
+ }
1251
+ if (server.prompts.length > 0) {
1252
+ capabilities.prompts = {
1253
+ listChanged: true
1254
+ };
864
1255
  }
865
- return Effect.succeed({
866
- capabilities,
867
- serverInfo,
868
- protocolVersion: requestedVersion
1256
+ if (serverInfo.extensions) {
1257
+ capabilities.extensions = serverInfo.extensions;
1258
+ }
1259
+ return Effect.withFiber(fiber => {
1260
+ const httpRequest = Context.getOrUndefined(fiber.context, HttpServerRequest.HttpServerRequest);
1261
+ if (httpRequest !== undefined && capabilities.resources !== undefined) {
1262
+ capabilities.resources.subscribe = false;
1263
+ }
1264
+ const session = {
1265
+ initializePayload: params,
1266
+ protocol: selectedProtocol,
1267
+ resourceSubscriptions: capabilities.resources?.subscribe === true ? new Set() : undefined,
1268
+ logLevel: {
1269
+ _tag: "Effect",
1270
+ level: currentLogLevel
1271
+ }
1272
+ };
1273
+ if (httpRequest) {
1274
+ const sessionId = crypto.randomUUID();
1275
+ options.sessions.bySessionId.set(sessionId, session);
1276
+ appendPreResponseHandlerUnsafe(httpRequest, (_req, res) => Effect.succeed(HttpServerResponse.setHeaders(res, {
1277
+ [MCP_SESSION_ID_HEADER]: sessionId,
1278
+ [MCP_PROTOCOL_VERSION_HEADER]: selectedProtocol.protocolVersion
1279
+ })));
1280
+ } else {
1281
+ options.sessions.byClientId.set(client.id, session);
1282
+ }
1283
+ return Effect.succeed({
1284
+ capabilities,
1285
+ serverInfo,
1286
+ protocolVersion: selectedProtocol.protocolVersion
1287
+ });
869
1288
  });
870
- });
871
- },
872
- "completion/complete": r => server.completion(r).pipe(Effect.provideService(CurrentLogLevel, currentLogLevel)),
873
- "logging/setLevel": ({
874
- level
875
- }) => Effect.sync(() => {
876
- switch (level) {
877
- case "notice":
878
- case "info":
879
- currentLogLevel = "Info";
880
- break;
881
- case "error":
882
- currentLogLevel = "Error";
883
- break;
884
- case "debug":
885
- currentLogLevel = "Debug";
886
- break;
887
- case "warning":
888
- currentLogLevel = "Warn";
889
- break;
890
- case "critical":
891
- case "alert":
892
- case "emergency":
893
- currentLogLevel = "Fatal";
894
- break;
895
- }
896
- }),
897
- "prompts/get": r => server.getPromptResult(r).pipe(Effect.provideService(CurrentLogLevel, currentLogLevel)),
898
- "prompts/list": (_, {
899
- client,
900
- headers
901
- }) => Effect.sync(() => {
902
- const initialized = getInitializedClient(options.clientSessions, client.id, headers);
903
- return new ListPromptsResult({
904
- prompts: filterByClient(initialized, server.prompts, "prompt")
905
- });
906
- }),
907
- "resources/list": (_, {
908
- client,
909
- headers
910
- }) => Effect.sync(() => {
911
- const initialized = getInitializedClient(options.clientSessions, client.id, headers);
912
- return new ListResourcesResult({
913
- resources: filterByClient(initialized, server.resources, "resource")
914
- });
915
- }),
916
- "resources/read": ({
917
- uri
918
- }) => server.findResource(uri).pipe(Effect.provideService(CurrentLogLevel, currentLogLevel)),
919
- "resources/subscribe": () => InternalError.notImplemented,
920
- "resources/unsubscribe": () => InternalError.notImplemented,
921
- "resources/templates/list": (_, {
922
- client,
923
- headers
924
- }) => Effect.sync(() => {
925
- const initialized = getInitializedClient(options.clientSessions, client.id, headers);
926
- return new ListResourceTemplatesResult({
927
- resourceTemplates: filterByClient(initialized, server.resourceTemplates, "template")
928
- });
929
- }),
930
- "tools/call": r => server.callTool(r).pipe(Effect.provideService(CurrentLogLevel, currentLogLevel)),
931
- "tools/list": (_, {
932
- client,
933
- headers
934
- }) => Effect.sync(() => {
935
- const initialized = getInitializedClient(options.clientSessions, client.id, headers);
936
- return new ListToolsResult({
937
- tools: filterByClient(initialized, server.tools, "tool")
938
- });
939
- }),
940
- // Notifications
941
- "notifications/cancelled": _ => Effect.void,
942
- "notifications/initialized": _ => Effect.void,
943
- "notifications/progress": _ => Effect.void,
944
- "notifications/roots/list_changed": _ => Effect.void
945
- });
1289
+ },
1290
+ "completion/complete": r => server.completion(r),
1291
+ "logging/setLevel": ({
1292
+ level
1293
+ }, {
1294
+ client,
1295
+ headers
1296
+ }) => Effect.sync(() => {
1297
+ const session = getClientSession(options.sessions, client.id, headers);
1298
+ if (session) {
1299
+ session.logLevel = {
1300
+ _tag: "Mcp",
1301
+ level
1302
+ };
1303
+ }
1304
+ return {};
1305
+ }),
1306
+ "prompts/get": r => server.getPromptResult(r),
1307
+ "prompts/list": (_, {
1308
+ client,
1309
+ headers
1310
+ }) => Effect.sync(() => {
1311
+ const initialized = getClientSession(options.sessions, client.id, headers)?.initializePayload;
1312
+ return new ListPromptsResult({
1313
+ prompts: filterByClient(initialized, server.prompts, "prompt")
1314
+ });
1315
+ }),
1316
+ "resources/list": (_, {
1317
+ client,
1318
+ headers
1319
+ }) => Effect.sync(() => {
1320
+ const initialized = getClientSession(options.sessions, client.id, headers)?.initializePayload;
1321
+ return new ListResourcesResult({
1322
+ resources: filterByClient(initialized, server.resources, "resource")
1323
+ });
1324
+ }),
1325
+ "resources/read": ({
1326
+ uri
1327
+ }) => server.findResource(uri),
1328
+ "resources/subscribe": ({
1329
+ uri
1330
+ }, {
1331
+ client,
1332
+ headers
1333
+ }) => Effect.gen(function* () {
1334
+ const subscriptions = getClientSession(options.sessions, client.id, headers)?.resourceSubscriptions;
1335
+ if (subscriptions === undefined) {
1336
+ return yield* new MethodNotFound({
1337
+ message: "Resource subscriptions are not supported"
1338
+ });
1339
+ }
1340
+ subscriptions.add(uri);
1341
+ return {};
1342
+ }),
1343
+ "resources/unsubscribe": ({
1344
+ uri
1345
+ }, {
1346
+ client,
1347
+ headers
1348
+ }) => Effect.gen(function* () {
1349
+ const subscriptions = getClientSession(options.sessions, client.id, headers)?.resourceSubscriptions;
1350
+ if (subscriptions === undefined) {
1351
+ return yield* new MethodNotFound({
1352
+ message: "Resource subscriptions are not supported"
1353
+ });
1354
+ }
1355
+ subscriptions.delete(uri);
1356
+ return {};
1357
+ }),
1358
+ "resources/templates/list": (_, {
1359
+ client,
1360
+ headers
1361
+ }) => Effect.sync(() => {
1362
+ const initialized = getClientSession(options.sessions, client.id, headers)?.initializePayload;
1363
+ return new ListResourceTemplatesResult({
1364
+ resourceTemplates: filterByClient(initialized, server.resourceTemplates, "template")
1365
+ });
1366
+ }),
1367
+ "tools/call": r => server.callTool(r),
1368
+ "tools/list": (_, {
1369
+ client,
1370
+ headers
1371
+ }) => Effect.sync(() => {
1372
+ const initialized = getClientSession(options.sessions, client.id, headers)?.initializePayload;
1373
+ return new ListToolsResult({
1374
+ tools: filterByClient(initialized, server.tools, "tool")
1375
+ });
1376
+ }),
1377
+ // Notifications
1378
+ "notifications/cancelled": _ => Effect.void,
1379
+ "notifications/initialized": (_, {
1380
+ client,
1381
+ headers
1382
+ }) => Effect.sync(() => {
1383
+ server.initializedClients.add(client.id);
1384
+ const session = getClientSession(options.sessions, client.id, headers);
1385
+ if (session) {
1386
+ options.sessions.byClientId.set(client.id, session);
1387
+ }
1388
+ }),
1389
+ "notifications/progress": _ => Effect.void,
1390
+ "notifications/roots/list_changed": _ => Effect.void
1391
+ });
1392
+ yield* addProtocolHandlers(options.protocolRegistry, selectedProtocol, selectedProtocol.clientRpcs, wireHandlers, contextMap);
1393
+ }
1394
+ return Context.makeUnsafe(contextMap);
946
1395
  }));
1396
+ const addProtocolHandlers = /*#__PURE__*/Effect.fnUntraced(function* (registry, protocol, clientRpcs, handlers, contextMap) {
1397
+ const handlerContext = yield* clientRpcs.toHandlers(handlers);
1398
+ for (const rpcDefinition of clientRpcs.requests.values()) {
1399
+ const routed = registry.routeClientRequest(protocol, {
1400
+ _tag: "Request",
1401
+ id: 0,
1402
+ tag: rpcDefinition._tag,
1403
+ payload: undefined,
1404
+ headers: []
1405
+ });
1406
+ const namespacedRpc = registry.clientRpcs.requests.get(routed.tag);
1407
+ const handler = handlerContext.mapUnsafe.get(rpcDefinition.key);
1408
+ if (namespacedRpc === undefined || handler === undefined) {
1409
+ return yield* Effect.die(`MCP handler registration invariant failed for ${routed.tag}`);
1410
+ }
1411
+ contextMap.set(namespacedRpc.key, handler);
1412
+ }
1413
+ });
947
1414
  const resolveResourceContent = (uri, content) => {
948
1415
  if (typeof content === "string") {
949
1416
  return {
@@ -976,11 +1443,64 @@ const filterByClient = (client, items, prop) => {
976
1443
  }
977
1444
  return out;
978
1445
  };
979
- const getInitializedClient = (sessions, clientId, headers) => {
980
- const sessionId = headers[mcpSessionIdHeader];
1446
+ const getClientSession = (sessions, clientId, headers) => {
1447
+ const sessionId = headers[MCP_SESSION_ID_HEADER];
981
1448
  if (sessionId === undefined) {
982
- return sessions.get(String(clientId));
1449
+ return sessions.byClientId.get(clientId);
1450
+ }
1451
+ return sessions.bySessionId.get(sessionId);
1452
+ };
1453
+ const mcpLogLevels = {
1454
+ debug: {
1455
+ effect: "Debug",
1456
+ order: 0
1457
+ },
1458
+ info: {
1459
+ effect: "Info",
1460
+ order: 1
1461
+ },
1462
+ notice: {
1463
+ effect: "Info",
1464
+ order: 2
1465
+ },
1466
+ warning: {
1467
+ effect: "Warn",
1468
+ order: 3
1469
+ },
1470
+ error: {
1471
+ effect: "Error",
1472
+ order: 4
1473
+ },
1474
+ critical: {
1475
+ effect: "Fatal",
1476
+ order: 5
1477
+ },
1478
+ alert: {
1479
+ effect: "Fatal",
1480
+ order: 6
1481
+ },
1482
+ emergency: {
1483
+ effect: "Fatal",
1484
+ order: 7
1485
+ }
1486
+ };
1487
+ const effectLogLevel = logLevel => logLevel?._tag === "Mcp" ? mcpLogLevels[logLevel.level].effect : logLevel?.level ?? "Info";
1488
+ const isMcpLogLevelEnabled = (level, minimum) => minimum?._tag === "Mcp" ? mcpLogLevels[level].order >= mcpLogLevels[minimum.level].order : LogLevel.isGreaterThanOrEqualTo(mcpLogLevels[level].effect, minimum?.level ?? "Info");
1489
+ const getOfferedProtocolVersion = payload => typeof payload === "object" && payload !== null && "protocolVersion" in payload && typeof payload.protocolVersion === "string" ? payload.protocolVersion : "";
1490
+ const protocolForInternalTag = (registry, tag) => {
1491
+ for (const protocol of registry.protocols) {
1492
+ const routed = registry.routeClientRequest(protocol, {
1493
+ _tag: "Request",
1494
+ id: 0,
1495
+ tag: "",
1496
+ payload: undefined,
1497
+ headers: []
1498
+ });
1499
+ if (tag.startsWith(routed.tag)) {
1500
+ return protocol;
1501
+ }
983
1502
  }
984
- return sessions.get(sessionId);
1503
+ return registry.protocols[0];
985
1504
  };
1505
+ const getProtocolForClient = (clientProtocols, clientId, registry) => clientProtocols.get(clientId) ?? registry.protocols[0];
986
1506
  //# sourceMappingURL=McpServer.js.map