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