effect 4.0.0-beta.99 → 4.0.0-rc.108

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 (1835) hide show
  1. package/AGENTS.md +381 -0
  2. package/CLAUDE.md +381 -0
  3. package/README.md +14 -19
  4. package/ai-docs/README.md +44 -0
  5. package/ai-docs/package.json +36 -0
  6. package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
  7. package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
  8. package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
  9. package/ai-docs/src/01_effect/01_basics/index.md +5 -0
  10. package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
  11. package/ai-docs/src/01_effect/02_schema/index.md +7 -0
  12. package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
  13. package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
  14. package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
  15. package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
  16. package/ai-docs/src/01_effect/03_services/index.md +5 -0
  17. package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
  18. package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
  19. package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
  20. package/ai-docs/src/01_effect/04_errors/index.md +1 -0
  21. package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
  22. package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
  23. package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
  24. package/ai-docs/src/01_effect/05_resources/index.md +3 -0
  25. package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
  26. package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
  27. package/ai-docs/src/01_effect/06_running/index.md +1 -0
  28. package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
  29. package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
  30. package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
  31. package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
  32. package/ai-docs/src/03_stream/30_encoding.ts +165 -0
  33. package/ai-docs/src/03_stream/index.md +4 -0
  34. package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
  35. package/ai-docs/src/04_integration/index.md +5 -0
  36. package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
  37. package/ai-docs/src/05_batching/index.md +3 -0
  38. package/ai-docs/src/06_schedule/10_schedules.ts +110 -0
  39. package/ai-docs/src/06_schedule/index.md +3 -0
  40. package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
  41. package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
  42. package/ai-docs/src/07_datetime/index.md +5 -0
  43. package/ai-docs/src/08_observability/10_logging.ts +66 -0
  44. package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
  45. package/ai-docs/src/08_observability/index.md +7 -0
  46. package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
  47. package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
  48. package/ai-docs/src/09_testing/index.md +1 -0
  49. package/ai-docs/src/10_predicate/01_basics.ts +14 -0
  50. package/ai-docs/src/10_predicate/index.md +9 -0
  51. package/ai-docs/src/50_http-client/10_basics.ts +102 -0
  52. package/ai-docs/src/50_http-client/index.md +3 -0
  53. package/ai-docs/src/51_http-server/10_basics.ts +116 -0
  54. package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
  55. package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
  56. package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
  57. package/ai-docs/src/51_http-server/fixtures/api/Users.ts +91 -0
  58. package/ai-docs/src/51_http-server/fixtures/domain/User.ts +12 -0
  59. package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
  60. package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +36 -0
  61. package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +71 -0
  62. package/ai-docs/src/51_http-server/fixtures/server/Users.ts +62 -0
  63. package/ai-docs/src/51_http-server/index.md +3 -0
  64. package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
  65. package/ai-docs/src/60_child-process/index.md +3 -0
  66. package/ai-docs/src/70_cli/10_basics.ts +136 -0
  67. package/ai-docs/src/70_cli/index.md +5 -0
  68. package/ai-docs/src/71_ai/10_language-model.ts +156 -0
  69. package/ai-docs/src/71_ai/20_tools.ts +226 -0
  70. package/ai-docs/src/71_ai/30_chat.ts +158 -0
  71. package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
  72. package/ai-docs/src/71_ai/index.md +5 -0
  73. package/ai-docs/src/80_cluster/10_entities.ts +97 -0
  74. package/ai-docs/src/80_cluster/index.md +4 -0
  75. package/ai-docs/src/index.md +10 -0
  76. package/ai-docs/tsconfig.json +24 -0
  77. package/dist/Array.d.ts +971 -1037
  78. package/dist/Array.d.ts.map +1 -1
  79. package/dist/Array.js +462 -412
  80. package/dist/Array.js.map +1 -1
  81. package/dist/BigDecimal.d.ts +433 -756
  82. package/dist/BigDecimal.d.ts.map +1 -1
  83. package/dist/BigDecimal.js +200 -325
  84. package/dist/BigDecimal.js.map +1 -1
  85. package/dist/BigInt.d.ts +207 -267
  86. package/dist/BigInt.d.ts.map +1 -1
  87. package/dist/BigInt.js +107 -135
  88. package/dist/BigInt.js.map +1 -1
  89. package/dist/Boolean.d.ts +146 -188
  90. package/dist/Boolean.d.ts.map +1 -1
  91. package/dist/Boolean.js +64 -84
  92. package/dist/Boolean.js.map +1 -1
  93. package/dist/Brand.d.ts +3 -3
  94. package/dist/Brand.d.ts.map +1 -1
  95. package/dist/Brand.js +4 -3
  96. package/dist/Brand.js.map +1 -1
  97. package/dist/Cache.d.ts +409 -256
  98. package/dist/Cache.d.ts.map +1 -1
  99. package/dist/Cache.js +213 -134
  100. package/dist/Cache.js.map +1 -1
  101. package/dist/Cause.d.ts +167 -277
  102. package/dist/Cause.d.ts.map +1 -1
  103. package/dist/Cause.js +122 -176
  104. package/dist/Cause.js.map +1 -1
  105. package/dist/Channel.d.ts +756 -769
  106. package/dist/Channel.d.ts.map +1 -1
  107. package/dist/Channel.js +588 -449
  108. package/dist/Channel.js.map +1 -1
  109. package/dist/ChannelSchema.d.ts +1 -1
  110. package/dist/ChannelSchema.d.ts.map +1 -1
  111. package/dist/ChannelSchema.js.map +1 -1
  112. package/dist/Chunk.d.ts +834 -1173
  113. package/dist/Chunk.d.ts.map +1 -1
  114. package/dist/Chunk.js +326 -439
  115. package/dist/Chunk.js.map +1 -1
  116. package/dist/Clock.d.ts +180 -49
  117. package/dist/Clock.d.ts.map +1 -1
  118. package/dist/Clock.js +96 -31
  119. package/dist/Clock.js.map +1 -1
  120. package/dist/Combiner.d.ts +20 -33
  121. package/dist/Combiner.d.ts.map +1 -1
  122. package/dist/Combiner.js +18 -30
  123. package/dist/Combiner.js.map +1 -1
  124. package/dist/Config.d.ts +226 -174
  125. package/dist/Config.d.ts.map +1 -1
  126. package/dist/Config.js +361 -267
  127. package/dist/Config.js.map +1 -1
  128. package/dist/ConfigProvider.d.ts +229 -71
  129. package/dist/ConfigProvider.d.ts.map +1 -1
  130. package/dist/ConfigProvider.js +164 -95
  131. package/dist/ConfigProvider.js.map +1 -1
  132. package/dist/Console.d.ts +233 -33
  133. package/dist/Console.d.ts.map +1 -1
  134. package/dist/Console.js +232 -32
  135. package/dist/Console.js.map +1 -1
  136. package/dist/Context.d.ts +153 -277
  137. package/dist/Context.d.ts.map +1 -1
  138. package/dist/Context.js +172 -236
  139. package/dist/Context.js.map +1 -1
  140. package/dist/Cron.d.ts +144 -176
  141. package/dist/Cron.d.ts.map +1 -1
  142. package/dist/Cron.js +227 -162
  143. package/dist/Cron.js.map +1 -1
  144. package/dist/Crypto.d.ts +13 -15
  145. package/dist/Crypto.d.ts.map +1 -1
  146. package/dist/Crypto.js +22 -15
  147. package/dist/Crypto.js.map +1 -1
  148. package/dist/Data.d.ts +60 -80
  149. package/dist/Data.d.ts.map +1 -1
  150. package/dist/Data.js +18 -24
  151. package/dist/Data.js.map +1 -1
  152. package/dist/DateTime.d.ts +562 -660
  153. package/dist/DateTime.d.ts.map +1 -1
  154. package/dist/DateTime.js +307 -362
  155. package/dist/DateTime.js.map +1 -1
  156. package/dist/Deferred.d.ts +253 -256
  157. package/dist/Deferred.d.ts.map +1 -1
  158. package/dist/Deferred.js +110 -98
  159. package/dist/Deferred.js.map +1 -1
  160. package/dist/Duration.d.ts +216 -308
  161. package/dist/Duration.d.ts.map +1 -1
  162. package/dist/Duration.js +157 -188
  163. package/dist/Duration.js.map +1 -1
  164. package/dist/Effect.d.ts +3142 -3345
  165. package/dist/Effect.d.ts.map +1 -1
  166. package/dist/Effect.js +1452 -1570
  167. package/dist/Effect.js.map +1 -1
  168. package/dist/Effectable.js.map +1 -1
  169. package/dist/Encoding.d.ts +22 -40
  170. package/dist/Encoding.d.ts.map +1 -1
  171. package/dist/Encoding.js +22 -40
  172. package/dist/Encoding.js.map +1 -1
  173. package/dist/Equal.d.ts +33 -37
  174. package/dist/Equal.d.ts.map +1 -1
  175. package/dist/Equal.js +39 -23
  176. package/dist/Equal.js.map +1 -1
  177. package/dist/Equivalence.d.ts +103 -105
  178. package/dist/Equivalence.d.ts.map +1 -1
  179. package/dist/Equivalence.js +77 -79
  180. package/dist/Equivalence.js.map +1 -1
  181. package/dist/ErrorReporter.d.ts +51 -27
  182. package/dist/ErrorReporter.d.ts.map +1 -1
  183. package/dist/ErrorReporter.js +50 -26
  184. package/dist/ErrorReporter.js.map +1 -1
  185. package/dist/ExecutionPlan.d.ts +86 -55
  186. package/dist/ExecutionPlan.d.ts.map +1 -1
  187. package/dist/ExecutionPlan.js +8 -29
  188. package/dist/ExecutionPlan.js.map +1 -1
  189. package/dist/Exit.d.ts +116 -192
  190. package/dist/Exit.d.ts.map +1 -1
  191. package/dist/Exit.js +82 -130
  192. package/dist/Exit.js.map +1 -1
  193. package/dist/Fiber.d.ts +83 -147
  194. package/dist/Fiber.d.ts.map +1 -1
  195. package/dist/Fiber.js +48 -87
  196. package/dist/Fiber.js.map +1 -1
  197. package/dist/FiberHandle.d.ts +152 -105
  198. package/dist/FiberHandle.d.ts.map +1 -1
  199. package/dist/FiberHandle.js +109 -75
  200. package/dist/FiberHandle.js.map +1 -1
  201. package/dist/FiberMap.d.ts +213 -168
  202. package/dist/FiberMap.d.ts.map +1 -1
  203. package/dist/FiberMap.js +114 -89
  204. package/dist/FiberMap.js.map +1 -1
  205. package/dist/FiberSet.d.ts +123 -81
  206. package/dist/FiberSet.d.ts.map +1 -1
  207. package/dist/FiberSet.js +86 -60
  208. package/dist/FiberSet.js.map +1 -1
  209. package/dist/FileSystem.d.ts +154 -265
  210. package/dist/FileSystem.d.ts.map +1 -1
  211. package/dist/FileSystem.js +42 -147
  212. package/dist/FileSystem.js.map +1 -1
  213. package/dist/Filter.d.ts +61 -33
  214. package/dist/Filter.d.ts.map +1 -1
  215. package/dist/Filter.js +26 -15
  216. package/dist/Filter.js.map +1 -1
  217. package/dist/Formatter.d.ts +24 -32
  218. package/dist/Formatter.d.ts.map +1 -1
  219. package/dist/Formatter.js +55 -60
  220. package/dist/Formatter.js.map +1 -1
  221. package/dist/Function.d.ts +106 -148
  222. package/dist/Function.d.ts.map +1 -1
  223. package/dist/Function.js +81 -62
  224. package/dist/Function.js.map +1 -1
  225. package/dist/Graph.d.ts +360 -714
  226. package/dist/Graph.d.ts.map +1 -1
  227. package/dist/Graph.js +168 -297
  228. package/dist/Graph.js.map +1 -1
  229. package/dist/HKT.d.ts +12 -6
  230. package/dist/HKT.d.ts.map +1 -1
  231. package/dist/Hash.d.ts +47 -83
  232. package/dist/Hash.d.ts.map +1 -1
  233. package/dist/Hash.js +46 -68
  234. package/dist/Hash.js.map +1 -1
  235. package/dist/HashMap.d.ts +319 -411
  236. package/dist/HashMap.d.ts.map +1 -1
  237. package/dist/HashMap.js +122 -166
  238. package/dist/HashMap.js.map +1 -1
  239. package/dist/HashRing.d.ts.map +1 -1
  240. package/dist/HashRing.js +1 -0
  241. package/dist/HashRing.js.map +1 -1
  242. package/dist/HashSet.d.ts +177 -284
  243. package/dist/HashSet.d.ts.map +1 -1
  244. package/dist/HashSet.js +68 -109
  245. package/dist/HashSet.js.map +1 -1
  246. package/dist/Inspectable.d.ts +19 -18
  247. package/dist/Inspectable.d.ts.map +1 -1
  248. package/dist/Inspectable.js +20 -16
  249. package/dist/Inspectable.js.map +1 -1
  250. package/dist/Iterable.d.ts +620 -786
  251. package/dist/Iterable.d.ts.map +1 -1
  252. package/dist/Iterable.js +241 -317
  253. package/dist/Iterable.js.map +1 -1
  254. package/dist/JsonPatch.d.ts +11 -13
  255. package/dist/JsonPatch.d.ts.map +1 -1
  256. package/dist/JsonPatch.js +46 -103
  257. package/dist/JsonPatch.js.map +1 -1
  258. package/dist/JsonPointer.d.ts +8 -8
  259. package/dist/JsonPointer.js +8 -8
  260. package/dist/JsonPointer.js.map +1 -1
  261. package/dist/JsonSchema.d.ts +98 -44
  262. package/dist/JsonSchema.d.ts.map +1 -1
  263. package/dist/JsonSchema.js +319 -241
  264. package/dist/JsonSchema.js.map +1 -1
  265. package/dist/Latch.d.ts +23 -35
  266. package/dist/Latch.d.ts.map +1 -1
  267. package/dist/Latch.js +16 -28
  268. package/dist/Latch.js.map +1 -1
  269. package/dist/Layer.d.ts +359 -260
  270. package/dist/Layer.d.ts.map +1 -1
  271. package/dist/Layer.js +202 -180
  272. package/dist/Layer.js.map +1 -1
  273. package/dist/LayerMap.d.ts +42 -29
  274. package/dist/LayerMap.d.ts.map +1 -1
  275. package/dist/LayerMap.js +31 -21
  276. package/dist/LayerMap.js.map +1 -1
  277. package/dist/LayerRef.d.ts +6 -2
  278. package/dist/LayerRef.d.ts.map +1 -1
  279. package/dist/LayerRef.js +6 -2
  280. package/dist/LayerRef.js.map +1 -1
  281. package/dist/LogLevel.d.ts +114 -214
  282. package/dist/LogLevel.d.ts.map +1 -1
  283. package/dist/LogLevel.js +41 -76
  284. package/dist/LogLevel.js.map +1 -1
  285. package/dist/Logger.d.ts +218 -467
  286. package/dist/Logger.d.ts.map +1 -1
  287. package/dist/Logger.js +208 -453
  288. package/dist/Logger.js.map +1 -1
  289. package/dist/ManagedRuntime.d.ts +16 -5
  290. package/dist/ManagedRuntime.d.ts.map +1 -1
  291. package/dist/ManagedRuntime.js +10 -5
  292. package/dist/ManagedRuntime.js.map +1 -1
  293. package/dist/Match.d.ts +217 -252
  294. package/dist/Match.d.ts.map +1 -1
  295. package/dist/Match.js +150 -183
  296. package/dist/Match.js.map +1 -1
  297. package/dist/Metric.d.ts +442 -993
  298. package/dist/Metric.d.ts.map +1 -1
  299. package/dist/Metric.js +202 -645
  300. package/dist/Metric.js.map +1 -1
  301. package/dist/MutableHashMap.d.ts +144 -173
  302. package/dist/MutableHashMap.d.ts.map +1 -1
  303. package/dist/MutableHashMap.js +68 -79
  304. package/dist/MutableHashMap.js.map +1 -1
  305. package/dist/MutableHashSet.d.ts +84 -89
  306. package/dist/MutableHashSet.d.ts.map +1 -1
  307. package/dist/MutableHashSet.js +44 -47
  308. package/dist/MutableHashSet.js.map +1 -1
  309. package/dist/MutableList.d.ts +71 -370
  310. package/dist/MutableList.d.ts.map +1 -1
  311. package/dist/MutableList.js +63 -284
  312. package/dist/MutableList.js.map +1 -1
  313. package/dist/MutableRef.d.ts +420 -243
  314. package/dist/MutableRef.d.ts.map +1 -1
  315. package/dist/MutableRef.js +209 -120
  316. package/dist/MutableRef.js.map +1 -1
  317. package/dist/Newtype.d.ts +21 -14
  318. package/dist/Newtype.d.ts.map +1 -1
  319. package/dist/Newtype.js +15 -13
  320. package/dist/Newtype.js.map +1 -1
  321. package/dist/NonEmptyIterable.d.ts +7 -137
  322. package/dist/NonEmptyIterable.d.ts.map +1 -1
  323. package/dist/NonEmptyIterable.js +5 -93
  324. package/dist/NonEmptyIterable.js.map +1 -1
  325. package/dist/Number.d.ts +196 -233
  326. package/dist/Number.d.ts.map +1 -1
  327. package/dist/Number.js +90 -109
  328. package/dist/Number.js.map +1 -1
  329. package/dist/Optic.d.ts +132 -210
  330. package/dist/Optic.d.ts.map +1 -1
  331. package/dist/Optic.js +221 -324
  332. package/dist/Optic.js.map +1 -1
  333. package/dist/Option.d.ts +447 -812
  334. package/dist/Option.d.ts.map +1 -1
  335. package/dist/Option.js +213 -393
  336. package/dist/Option.js.map +1 -1
  337. package/dist/Order.d.ts +109 -109
  338. package/dist/Order.js +91 -91
  339. package/dist/Order.js.map +1 -1
  340. package/dist/Ordering.d.ts +20 -23
  341. package/dist/Ordering.d.ts.map +1 -1
  342. package/dist/Ordering.js +8 -9
  343. package/dist/Ordering.js.map +1 -1
  344. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  345. package/dist/PartitionedSemaphore.js +1 -4
  346. package/dist/PartitionedSemaphore.js.map +1 -1
  347. package/dist/Path.d.ts +38 -41
  348. package/dist/Path.d.ts.map +1 -1
  349. package/dist/Path.js +3 -4
  350. package/dist/Path.js.map +1 -1
  351. package/dist/Pipeable.d.ts +6 -5
  352. package/dist/Pipeable.d.ts.map +1 -1
  353. package/dist/Pipeable.js +2 -2
  354. package/dist/Pipeable.js.map +1 -1
  355. package/dist/PlatformError.d.ts +4 -4
  356. package/dist/PlatformError.js +3 -3
  357. package/dist/PlatformError.js.map +1 -1
  358. package/dist/Pool.d.ts +4 -2
  359. package/dist/Pool.d.ts.map +1 -1
  360. package/dist/Pool.js +4 -2
  361. package/dist/Pool.js.map +1 -1
  362. package/dist/Predicate.d.ts +200 -181
  363. package/dist/Predicate.d.ts.map +1 -1
  364. package/dist/Predicate.js +100 -108
  365. package/dist/Predicate.js.map +1 -1
  366. package/dist/PrimaryKey.d.ts +7 -7
  367. package/dist/PrimaryKey.js +5 -5
  368. package/dist/PrimaryKey.js.map +1 -1
  369. package/dist/PubSub.d.ts +425 -494
  370. package/dist/PubSub.d.ts.map +1 -1
  371. package/dist/PubSub.js +373 -362
  372. package/dist/PubSub.js.map +1 -1
  373. package/dist/Pull.d.ts +24 -18
  374. package/dist/Pull.d.ts.map +1 -1
  375. package/dist/Pull.js +11 -9
  376. package/dist/Pull.js.map +1 -1
  377. package/dist/Queue.d.ts +200 -159
  378. package/dist/Queue.d.ts.map +1 -1
  379. package/dist/Queue.js +166 -138
  380. package/dist/Queue.js.map +1 -1
  381. package/dist/Random.d.ts +49 -74
  382. package/dist/Random.d.ts.map +1 -1
  383. package/dist/Random.js +35 -54
  384. package/dist/Random.js.map +1 -1
  385. package/dist/RcMap.d.ts +121 -63
  386. package/dist/RcMap.d.ts.map +1 -1
  387. package/dist/RcMap.js +42 -21
  388. package/dist/RcMap.js.map +1 -1
  389. package/dist/RcRef.d.ts +24 -13
  390. package/dist/RcRef.d.ts.map +1 -1
  391. package/dist/RcRef.js +15 -9
  392. package/dist/RcRef.js.map +1 -1
  393. package/dist/Record.d.ts +361 -466
  394. package/dist/Record.d.ts.map +1 -1
  395. package/dist/Record.js +163 -216
  396. package/dist/Record.js.map +1 -1
  397. package/dist/Redactable.d.ts +6 -2
  398. package/dist/Redactable.d.ts.map +1 -1
  399. package/dist/Redactable.js +7 -2
  400. package/dist/Redactable.js.map +1 -1
  401. package/dist/Redacted.d.ts +25 -25
  402. package/dist/Redacted.d.ts.map +1 -1
  403. package/dist/Redacted.js +19 -20
  404. package/dist/Redacted.js.map +1 -1
  405. package/dist/Reducer.d.ts +8 -15
  406. package/dist/Reducer.d.ts.map +1 -1
  407. package/dist/Reducer.js +6 -12
  408. package/dist/Reducer.js.map +1 -1
  409. package/dist/Ref.d.ts +95 -165
  410. package/dist/Ref.d.ts.map +1 -1
  411. package/dist/Ref.js +75 -122
  412. package/dist/Ref.js.map +1 -1
  413. package/dist/References.d.ts +102 -213
  414. package/dist/References.d.ts.map +1 -1
  415. package/dist/References.js +102 -213
  416. package/dist/References.js.map +1 -1
  417. package/dist/RegExp.d.ts +10 -14
  418. package/dist/RegExp.d.ts.map +1 -1
  419. package/dist/RegExp.js +10 -14
  420. package/dist/RegExp.js.map +1 -1
  421. package/dist/Request.d.ts +31 -21
  422. package/dist/Request.d.ts.map +1 -1
  423. package/dist/Request.js +25 -19
  424. package/dist/Request.js.map +1 -1
  425. package/dist/RequestResolver.d.ts +201 -90
  426. package/dist/RequestResolver.d.ts.map +1 -1
  427. package/dist/RequestResolver.js +87 -41
  428. package/dist/RequestResolver.js.map +1 -1
  429. package/dist/Resource.js.map +1 -1
  430. package/dist/Result.d.ts +302 -470
  431. package/dist/Result.d.ts.map +1 -1
  432. package/dist/Result.js +135 -218
  433. package/dist/Result.js.map +1 -1
  434. package/dist/Runtime.d.ts +50 -75
  435. package/dist/Runtime.d.ts.map +1 -1
  436. package/dist/Runtime.js +39 -60
  437. package/dist/Runtime.js.map +1 -1
  438. package/dist/Schedule.d.ts +292 -1638
  439. package/dist/Schedule.d.ts.map +1 -1
  440. package/dist/Schedule.js +164 -805
  441. package/dist/Schedule.js.map +1 -1
  442. package/dist/Scheduler.d.ts +5 -5
  443. package/dist/Scheduler.d.ts.map +1 -1
  444. package/dist/Scheduler.js +18 -6
  445. package/dist/Scheduler.js.map +1 -1
  446. package/dist/Schema.d.ts +2056 -1269
  447. package/dist/Schema.d.ts.map +1 -1
  448. package/dist/Schema.js +2868 -1135
  449. package/dist/Schema.js.map +1 -1
  450. package/dist/SchemaAST.d.ts +64 -72
  451. package/dist/SchemaAST.d.ts.map +1 -1
  452. package/dist/SchemaAST.js +698 -468
  453. package/dist/SchemaAST.js.map +1 -1
  454. package/dist/SchemaGetter.d.ts +236 -188
  455. package/dist/SchemaGetter.d.ts.map +1 -1
  456. package/dist/SchemaGetter.js +281 -234
  457. package/dist/SchemaGetter.js.map +1 -1
  458. package/dist/SchemaIssue.d.ts +219 -190
  459. package/dist/SchemaIssue.d.ts.map +1 -1
  460. package/dist/SchemaIssue.js +303 -309
  461. package/dist/SchemaIssue.js.map +1 -1
  462. package/dist/SchemaParser.d.ts +32 -2
  463. package/dist/SchemaParser.d.ts.map +1 -1
  464. package/dist/SchemaParser.js +170 -118
  465. package/dist/SchemaParser.js.map +1 -1
  466. package/dist/SchemaRepresentation.d.ts +433 -1511
  467. package/dist/SchemaRepresentation.d.ts.map +1 -1
  468. package/dist/SchemaRepresentation.js +301 -2854
  469. package/dist/SchemaRepresentation.js.map +1 -1
  470. package/dist/SchemaTransformation.d.ts +117 -77
  471. package/dist/SchemaTransformation.d.ts.map +1 -1
  472. package/dist/SchemaTransformation.js +139 -104
  473. package/dist/SchemaTransformation.js.map +1 -1
  474. package/dist/Scope.d.ts +123 -151
  475. package/dist/Scope.d.ts.map +1 -1
  476. package/dist/Scope.js +72 -92
  477. package/dist/Scope.js.map +1 -1
  478. package/dist/ScopedCache.js +1 -1
  479. package/dist/ScopedCache.js.map +1 -1
  480. package/dist/ScopedRef.d.ts +3 -3
  481. package/dist/ScopedRef.d.ts.map +1 -1
  482. package/dist/ScopedRef.js +2 -2
  483. package/dist/ScopedRef.js.map +1 -1
  484. package/dist/Semaphore.d.ts +101 -13
  485. package/dist/Semaphore.d.ts.map +1 -1
  486. package/dist/Semaphore.js +78 -39
  487. package/dist/Semaphore.js.map +1 -1
  488. package/dist/Sink.d.ts +118 -108
  489. package/dist/Sink.d.ts.map +1 -1
  490. package/dist/Sink.js +107 -100
  491. package/dist/Sink.js.map +1 -1
  492. package/dist/Stdio.d.ts +18 -5
  493. package/dist/Stdio.d.ts.map +1 -1
  494. package/dist/Stdio.js +6 -3
  495. package/dist/Stdio.js.map +1 -1
  496. package/dist/Stream.d.ts +2467 -2962
  497. package/dist/Stream.d.ts.map +1 -1
  498. package/dist/Stream.js +1154 -1413
  499. package/dist/Stream.js.map +1 -1
  500. package/dist/String.d.ts +262 -308
  501. package/dist/String.d.ts.map +1 -1
  502. package/dist/String.js +184 -215
  503. package/dist/String.js.map +1 -1
  504. package/dist/Struct.d.ts +109 -114
  505. package/dist/Struct.d.ts.map +1 -1
  506. package/dist/Struct.js +46 -54
  507. package/dist/Struct.js.map +1 -1
  508. package/dist/SubscriptionRef.d.ts +282 -250
  509. package/dist/SubscriptionRef.d.ts.map +1 -1
  510. package/dist/SubscriptionRef.js +104 -92
  511. package/dist/SubscriptionRef.js.map +1 -1
  512. package/dist/Symbol.d.ts +3 -3
  513. package/dist/Symbol.js +3 -3
  514. package/dist/Symbol.js.map +1 -1
  515. package/dist/SynchronizedRef.js +1 -1
  516. package/dist/SynchronizedRef.js.map +1 -1
  517. package/dist/Take.js.map +1 -1
  518. package/dist/Terminal.d.ts +2 -2
  519. package/dist/Terminal.js +2 -2
  520. package/dist/Terminal.js.map +1 -1
  521. package/dist/Tracer.d.ts +100 -54
  522. package/dist/Tracer.d.ts.map +1 -1
  523. package/dist/Tracer.js +41 -24
  524. package/dist/Tracer.js.map +1 -1
  525. package/dist/Trie.d.ts +287 -679
  526. package/dist/Trie.d.ts.map +1 -1
  527. package/dist/Trie.js +109 -251
  528. package/dist/Trie.js.map +1 -1
  529. package/dist/Tuple.d.ts +98 -131
  530. package/dist/Tuple.d.ts.map +1 -1
  531. package/dist/Tuple.js +42 -57
  532. package/dist/Tuple.js.map +1 -1
  533. package/dist/TxChunk.d.ts +201 -121
  534. package/dist/TxChunk.d.ts.map +1 -1
  535. package/dist/TxChunk.js +85 -56
  536. package/dist/TxChunk.js.map +1 -1
  537. package/dist/TxDeferred.d.ts +62 -46
  538. package/dist/TxDeferred.d.ts.map +1 -1
  539. package/dist/TxDeferred.js +30 -22
  540. package/dist/TxDeferred.js.map +1 -1
  541. package/dist/TxHashMap.d.ts +631 -779
  542. package/dist/TxHashMap.d.ts.map +1 -1
  543. package/dist/TxHashMap.js +268 -330
  544. package/dist/TxHashMap.js.map +1 -1
  545. package/dist/TxHashSet.d.ts +297 -236
  546. package/dist/TxHashSet.d.ts.map +1 -1
  547. package/dist/TxHashSet.js +130 -100
  548. package/dist/TxHashSet.js.map +1 -1
  549. package/dist/TxPriorityQueue.d.ts +126 -95
  550. package/dist/TxPriorityQueue.d.ts.map +1 -1
  551. package/dist/TxPriorityQueue.js +74 -56
  552. package/dist/TxPriorityQueue.js.map +1 -1
  553. package/dist/TxPubSub.d.ts +101 -88
  554. package/dist/TxPubSub.d.ts.map +1 -1
  555. package/dist/TxPubSub.js +87 -66
  556. package/dist/TxPubSub.js.map +1 -1
  557. package/dist/TxQueue.d.ts +200 -180
  558. package/dist/TxQueue.d.ts.map +1 -1
  559. package/dist/TxQueue.js +161 -137
  560. package/dist/TxQueue.js.map +1 -1
  561. package/dist/TxReentrantLock.d.ts +89 -114
  562. package/dist/TxReentrantLock.d.ts.map +1 -1
  563. package/dist/TxReentrantLock.js +75 -53
  564. package/dist/TxReentrantLock.js.map +1 -1
  565. package/dist/TxRef.d.ts +51 -32
  566. package/dist/TxRef.d.ts.map +1 -1
  567. package/dist/TxRef.js +23 -15
  568. package/dist/TxRef.js.map +1 -1
  569. package/dist/TxSemaphore.d.ts +129 -95
  570. package/dist/TxSemaphore.d.ts.map +1 -1
  571. package/dist/TxSemaphore.js +85 -70
  572. package/dist/TxSemaphore.js.map +1 -1
  573. package/dist/TxSubscriptionRef.d.ts +97 -70
  574. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  575. package/dist/TxSubscriptionRef.js +44 -34
  576. package/dist/TxSubscriptionRef.js.map +1 -1
  577. package/dist/Types.d.ts +127 -70
  578. package/dist/Types.d.ts.map +1 -1
  579. package/dist/UndefinedOr.js.map +1 -1
  580. package/dist/Unify.d.ts +45 -65
  581. package/dist/Unify.d.ts.map +1 -1
  582. package/dist/Unify.js +6 -9
  583. package/dist/Unify.js.map +1 -1
  584. package/dist/Utils.d.ts +23 -16
  585. package/dist/Utils.d.ts.map +1 -1
  586. package/dist/Utils.js +3 -7
  587. package/dist/Utils.js.map +1 -1
  588. package/dist/index.d.ts +0 -8
  589. package/dist/index.d.ts.map +1 -1
  590. package/dist/index.js +0 -8
  591. package/dist/index.js.map +1 -1
  592. package/dist/internal/array.js.map +1 -1
  593. package/dist/internal/core.js +4 -3
  594. package/dist/internal/core.js.map +1 -1
  595. package/dist/internal/dateTime.js +5 -1
  596. package/dist/internal/dateTime.js.map +1 -1
  597. package/dist/internal/doNotation.js.map +1 -1
  598. package/dist/internal/effect.js +252 -108
  599. package/dist/internal/effect.js.map +1 -1
  600. package/dist/internal/equal.js.map +1 -1
  601. package/dist/internal/errors.js.map +1 -1
  602. package/dist/internal/executionPlan.js +52 -3
  603. package/dist/internal/executionPlan.js.map +1 -1
  604. package/dist/internal/hashMap.js +12 -8
  605. package/dist/internal/hashMap.js.map +1 -1
  606. package/dist/internal/hashSet.js.map +1 -1
  607. package/dist/internal/layer.js.map +1 -1
  608. package/dist/internal/matcher.js +2 -2
  609. package/dist/internal/matcher.js.map +1 -1
  610. package/dist/internal/metric.js.map +1 -1
  611. package/dist/internal/option.js.map +1 -1
  612. package/dist/internal/persistence.d.ts +2 -0
  613. package/dist/internal/persistence.d.ts.map +1 -0
  614. package/dist/internal/persistence.js +3 -0
  615. package/dist/internal/persistence.js.map +1 -0
  616. package/dist/internal/random.js.map +1 -1
  617. package/dist/internal/rcRef.js +18 -13
  618. package/dist/internal/rcRef.js.map +1 -1
  619. package/dist/internal/record.d.ts +0 -3
  620. package/dist/internal/record.d.ts.map +1 -1
  621. package/dist/internal/record.js +10 -5
  622. package/dist/internal/record.js.map +1 -1
  623. package/dist/internal/redacted.js.map +1 -1
  624. package/dist/internal/references.js +3 -4
  625. package/dist/internal/references.js.map +1 -1
  626. package/dist/internal/request.js.map +1 -1
  627. package/dist/internal/result.js.map +1 -1
  628. package/dist/internal/schedule.js.map +1 -1
  629. package/dist/internal/schema/annotations.js +15 -1
  630. package/dist/internal/schema/annotations.js.map +1 -1
  631. package/dist/internal/schema/cause.js.map +1 -1
  632. package/dist/internal/schema/fromJsonSchemaDocument.d.ts +2 -0
  633. package/dist/internal/schema/fromJsonSchemaDocument.d.ts.map +1 -0
  634. package/dist/internal/schema/fromJsonSchemaDocument.js +761 -0
  635. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -0
  636. package/dist/internal/schema/fromRepresentation.d.ts +2 -0
  637. package/dist/internal/schema/fromRepresentation.d.ts.map +1 -0
  638. package/dist/internal/schema/fromRepresentation.js +245 -0
  639. package/dist/internal/schema/fromRepresentation.js.map +1 -0
  640. package/dist/internal/schema/parser.d.ts +14 -0
  641. package/dist/internal/schema/parser.d.ts.map +1 -0
  642. package/dist/internal/schema/parser.js +13 -0
  643. package/dist/internal/schema/parser.js.map +1 -0
  644. package/dist/internal/schema/schema.js +29 -49
  645. package/dist/internal/schema/schema.js.map +1 -1
  646. package/dist/internal/schema/toArbitrary.d.ts +2 -0
  647. package/dist/internal/schema/toArbitrary.d.ts.map +1 -0
  648. package/dist/internal/schema/{arbitrary.js → toArbitrary.js} +8 -83
  649. package/dist/internal/schema/toArbitrary.js.map +1 -0
  650. package/dist/internal/schema/toCodeDocument.d.ts +2 -0
  651. package/dist/internal/schema/toCodeDocument.d.ts.map +1 -0
  652. package/dist/internal/schema/toCodeDocument.js +438 -0
  653. package/dist/internal/schema/toCodeDocument.js.map +1 -0
  654. package/dist/internal/schema/toEquivalence.d.ts +2 -0
  655. package/dist/internal/schema/toEquivalence.d.ts.map +1 -0
  656. package/dist/internal/schema/{equivalence.js → toEquivalence.js} +15 -13
  657. package/dist/internal/schema/toEquivalence.js.map +1 -0
  658. package/dist/internal/schema/toJsonSchemaDocument.d.ts +2 -0
  659. package/dist/internal/schema/toJsonSchemaDocument.d.ts.map +1 -0
  660. package/dist/internal/schema/toJsonSchemaDocument.js +522 -0
  661. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -0
  662. package/dist/internal/schema/toRepresentation.d.ts +2 -0
  663. package/dist/internal/schema/toRepresentation.d.ts.map +1 -0
  664. package/dist/internal/schema/toRepresentation.js +351 -0
  665. package/dist/internal/schema/toRepresentation.js.map +1 -0
  666. package/dist/internal/stackTraceLimit.js +3 -6
  667. package/dist/internal/stackTraceLimit.js.map +1 -1
  668. package/dist/internal/stream.js.map +1 -1
  669. package/dist/internal/tracer.js.map +1 -1
  670. package/dist/internal/trie.js +24 -10
  671. package/dist/internal/trie.js.map +1 -1
  672. package/dist/testing/FastCheck.d.ts +8 -7
  673. package/dist/testing/FastCheck.d.ts.map +1 -1
  674. package/dist/testing/FastCheck.js +8 -7
  675. package/dist/testing/FastCheck.js.map +1 -1
  676. package/dist/testing/TestClock.d.ts +57 -28
  677. package/dist/testing/TestClock.d.ts.map +1 -1
  678. package/dist/testing/TestClock.js +65 -20
  679. package/dist/testing/TestClock.js.map +1 -1
  680. package/dist/testing/TestConsole.d.ts +32 -31
  681. package/dist/testing/TestConsole.d.ts.map +1 -1
  682. package/dist/testing/TestConsole.js +24 -22
  683. package/dist/testing/TestConsole.js.map +1 -1
  684. package/dist/testing/TestSchema.d.ts +31 -31
  685. package/dist/testing/TestSchema.d.ts.map +1 -1
  686. package/dist/testing/TestSchema.js +35 -34
  687. package/dist/testing/TestSchema.js.map +1 -1
  688. package/dist/testing/index.js.map +1 -1
  689. package/dist/unstable/ai/AiError.d.ts +121 -144
  690. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  691. package/dist/unstable/ai/AiError.js +118 -140
  692. package/dist/unstable/ai/AiError.js.map +1 -1
  693. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +22 -7
  694. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  695. package/dist/unstable/ai/AnthropicStructuredOutput.js +87 -317
  696. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  697. package/dist/unstable/ai/Chat.d.ts +132 -97
  698. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  699. package/dist/unstable/ai/Chat.js +56 -52
  700. package/dist/unstable/ai/Chat.js.map +1 -1
  701. package/dist/unstable/ai/EmbeddingModel.d.ts +1 -1
  702. package/dist/unstable/ai/EmbeddingModel.js +1 -1
  703. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  704. package/dist/unstable/ai/IdGenerator.d.ts +32 -28
  705. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  706. package/dist/unstable/ai/IdGenerator.js +26 -21
  707. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  708. package/dist/unstable/ai/LanguageModel.d.ts +111 -68
  709. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  710. package/dist/unstable/ai/LanguageModel.js +127 -83
  711. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  712. package/dist/unstable/ai/McpProtocol.d.ts +30 -0
  713. package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
  714. package/dist/unstable/ai/McpProtocol.js +20 -0
  715. package/dist/unstable/ai/McpProtocol.js.map +1 -0
  716. package/dist/unstable/ai/McpSchema.d.ts +320 -254
  717. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  718. package/dist/unstable/ai/McpSchema.js +79 -71
  719. package/dist/unstable/ai/McpSchema.js.map +1 -1
  720. package/dist/unstable/ai/McpServer.d.ts +71 -62
  721. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  722. package/dist/unstable/ai/McpServer.js +777 -245
  723. package/dist/unstable/ai/McpServer.js.map +1 -1
  724. package/dist/unstable/ai/Model.d.ts +8 -19
  725. package/dist/unstable/ai/Model.d.ts.map +1 -1
  726. package/dist/unstable/ai/Model.js +9 -20
  727. package/dist/unstable/ai/Model.js.map +1 -1
  728. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +33 -11
  729. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  730. package/dist/unstable/ai/OpenAiStructuredOutput.js +194 -378
  731. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  732. package/dist/unstable/ai/Prompt.d.ts +131 -44
  733. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  734. package/dist/unstable/ai/Prompt.js +100 -36
  735. package/dist/unstable/ai/Prompt.js.map +1 -1
  736. package/dist/unstable/ai/Response.d.ts +47 -33
  737. package/dist/unstable/ai/Response.d.ts.map +1 -1
  738. package/dist/unstable/ai/Response.js +23 -18
  739. package/dist/unstable/ai/Response.js.map +1 -1
  740. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  741. package/dist/unstable/ai/Telemetry.d.ts +46 -13
  742. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  743. package/dist/unstable/ai/Telemetry.js +18 -7
  744. package/dist/unstable/ai/Telemetry.js.map +1 -1
  745. package/dist/unstable/ai/Tokenizer.d.ts +14 -3
  746. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  747. package/dist/unstable/ai/Tokenizer.js +10 -2
  748. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  749. package/dist/unstable/ai/Tool.d.ts +63 -44
  750. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  751. package/dist/unstable/ai/Tool.js +59 -42
  752. package/dist/unstable/ai/Tool.js.map +1 -1
  753. package/dist/unstable/ai/Toolkit.d.ts +35 -9
  754. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  755. package/dist/unstable/ai/Toolkit.js +32 -14
  756. package/dist/unstable/ai/Toolkit.js.map +1 -1
  757. package/dist/unstable/ai/index.d.ts +4 -0
  758. package/dist/unstable/ai/index.d.ts.map +1 -1
  759. package/dist/unstable/ai/index.js +4 -0
  760. package/dist/unstable/ai/index.js.map +1 -1
  761. package/dist/unstable/ai/internal/codec-transformer.js +15 -12
  762. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  763. package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
  764. package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
  765. package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
  766. package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
  767. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
  768. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
  769. package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
  770. package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
  771. package/dist/unstable/ai/internal/structured-output.d.ts +2 -0
  772. package/dist/unstable/ai/internal/structured-output.d.ts.map +1 -0
  773. package/dist/unstable/ai/internal/structured-output.js +315 -0
  774. package/dist/unstable/ai/internal/structured-output.js.map +1 -0
  775. package/dist/unstable/cli/Argument.d.ts +279 -72
  776. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  777. package/dist/unstable/cli/Argument.js +113 -34
  778. package/dist/unstable/cli/Argument.js.map +1 -1
  779. package/dist/unstable/cli/CliConfig.js.map +1 -1
  780. package/dist/unstable/cli/CliError.d.ts +126 -76
  781. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  782. package/dist/unstable/cli/CliError.js +136 -76
  783. package/dist/unstable/cli/CliError.js.map +1 -1
  784. package/dist/unstable/cli/CliOutput.d.ts +35 -54
  785. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  786. package/dist/unstable/cli/CliOutput.js +26 -42
  787. package/dist/unstable/cli/CliOutput.js.map +1 -1
  788. package/dist/unstable/cli/Command.d.ts +736 -115
  789. package/dist/unstable/cli/Command.d.ts.map +1 -1
  790. package/dist/unstable/cli/Command.js +282 -56
  791. package/dist/unstable/cli/Command.js.map +1 -1
  792. package/dist/unstable/cli/Completions.js.map +1 -1
  793. package/dist/unstable/cli/Flag.d.ts +418 -138
  794. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  795. package/dist/unstable/cli/Flag.js +197 -71
  796. package/dist/unstable/cli/Flag.js.map +1 -1
  797. package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
  798. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  799. package/dist/unstable/cli/HelpDoc.d.ts +12 -4
  800. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  801. package/dist/unstable/cli/Param.d.ts +299 -83
  802. package/dist/unstable/cli/Param.d.ts.map +1 -1
  803. package/dist/unstable/cli/Param.js +146 -60
  804. package/dist/unstable/cli/Param.js.map +1 -1
  805. package/dist/unstable/cli/Primitive.d.ts +370 -149
  806. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  807. package/dist/unstable/cli/Primitive.js +377 -162
  808. package/dist/unstable/cli/Primitive.js.map +1 -1
  809. package/dist/unstable/cli/Prompt.d.ts +23 -14
  810. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  811. package/dist/unstable/cli/Prompt.js +54 -31
  812. package/dist/unstable/cli/Prompt.js.map +1 -1
  813. package/dist/unstable/cli/index.js.map +1 -1
  814. package/dist/unstable/cli/internal/ansi.js +2 -2
  815. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  816. package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
  817. package/dist/unstable/cli/internal/command.d.ts +5 -3
  818. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  819. package/dist/unstable/cli/internal/command.js +21 -13
  820. package/dist/unstable/cli/internal/command.js.map +1 -1
  821. package/dist/unstable/cli/internal/completions/bash.js +69 -9
  822. package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
  823. package/dist/unstable/cli/internal/completions/descriptor.js +24 -18
  824. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  825. package/dist/unstable/cli/internal/completions/fish.js +5 -5
  826. package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
  827. package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
  828. package/dist/unstable/cli/internal/config.d.ts +0 -48
  829. package/dist/unstable/cli/internal/config.d.ts.map +1 -1
  830. package/dist/unstable/cli/internal/config.js +8 -10
  831. package/dist/unstable/cli/internal/config.js.map +1 -1
  832. package/dist/unstable/cli/internal/help.d.ts.map +1 -1
  833. package/dist/unstable/cli/internal/help.js +4 -2
  834. package/dist/unstable/cli/internal/help.js.map +1 -1
  835. package/dist/unstable/cli/internal/lexer.js +17 -7
  836. package/dist/unstable/cli/internal/lexer.js.map +1 -1
  837. package/dist/unstable/cli/internal/parser.js +5 -5
  838. package/dist/unstable/cli/internal/parser.js.map +1 -1
  839. package/dist/unstable/cli/internal/wizard.js +2 -2
  840. package/dist/unstable/cli/internal/wizard.js.map +1 -1
  841. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  842. package/dist/unstable/cluster/ClusterError.js +7 -7
  843. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  844. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  845. package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
  846. package/dist/unstable/cluster/ClusterSchema.js +8 -8
  847. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  848. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  849. package/dist/unstable/cluster/ClusterWorkflowEngine.js +32 -16
  850. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  851. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  852. package/dist/unstable/cluster/Entity.d.ts +12 -12
  853. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  854. package/dist/unstable/cluster/Entity.js +9 -9
  855. package/dist/unstable/cluster/Entity.js.map +1 -1
  856. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  857. package/dist/unstable/cluster/EntityId.js.map +1 -1
  858. package/dist/unstable/cluster/EntityProxy.d.ts +7 -5
  859. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  860. package/dist/unstable/cluster/EntityProxy.js +8 -5
  861. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  862. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  863. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  864. package/dist/unstable/cluster/EntityResource.js +2 -2
  865. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  866. package/dist/unstable/cluster/EntityType.js.map +1 -1
  867. package/dist/unstable/cluster/Envelope.d.ts +3 -3
  868. package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
  869. package/dist/unstable/cluster/Envelope.js +5 -4
  870. package/dist/unstable/cluster/Envelope.js.map +1 -1
  871. package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
  872. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  873. package/dist/unstable/cluster/HttpRunner.js +6 -4
  874. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  875. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  876. package/dist/unstable/cluster/MachineId.js.map +1 -1
  877. package/dist/unstable/cluster/Message.d.ts +9 -9
  878. package/dist/unstable/cluster/Message.js +6 -6
  879. package/dist/unstable/cluster/Message.js.map +1 -1
  880. package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
  881. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  882. package/dist/unstable/cluster/MessageStorage.js +13 -6
  883. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  884. package/dist/unstable/cluster/Reply.d.ts +8 -0
  885. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  886. package/dist/unstable/cluster/Reply.js +17 -5
  887. package/dist/unstable/cluster/Reply.js.map +1 -1
  888. package/dist/unstable/cluster/Runner.d.ts +1 -1
  889. package/dist/unstable/cluster/Runner.js +1 -1
  890. package/dist/unstable/cluster/Runner.js.map +1 -1
  891. package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
  892. package/dist/unstable/cluster/RunnerAddress.js +1 -1
  893. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  894. package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
  895. package/dist/unstable/cluster/RunnerHealth.js +1 -1
  896. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  897. package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
  898. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  899. package/dist/unstable/cluster/RunnerServer.js +29 -23
  900. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  901. package/dist/unstable/cluster/RunnerStorage.d.ts +3 -4
  902. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  903. package/dist/unstable/cluster/RunnerStorage.js +8 -7
  904. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  905. package/dist/unstable/cluster/Runners.d.ts +11 -15
  906. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  907. package/dist/unstable/cluster/Runners.js +32 -22
  908. package/dist/unstable/cluster/Runners.js.map +1 -1
  909. package/dist/unstable/cluster/ShardId.js +1 -1
  910. package/dist/unstable/cluster/ShardId.js.map +1 -1
  911. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  912. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  913. package/dist/unstable/cluster/Sharding.js +164 -31
  914. package/dist/unstable/cluster/Sharding.js.map +1 -1
  915. package/dist/unstable/cluster/ShardingConfig.d.ts +13 -5
  916. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  917. package/dist/unstable/cluster/ShardingConfig.js +3 -3
  918. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  919. package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
  920. package/dist/unstable/cluster/SingleRunner.d.ts +4 -2
  921. package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
  922. package/dist/unstable/cluster/SingleRunner.js +2 -1
  923. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  924. package/dist/unstable/cluster/Singleton.js.map +1 -1
  925. package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
  926. package/dist/unstable/cluster/SingletonAddress.js +1 -1
  927. package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
  928. package/dist/unstable/cluster/Snowflake.d.ts +8 -8
  929. package/dist/unstable/cluster/Snowflake.js +8 -8
  930. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  931. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  932. package/dist/unstable/cluster/SqlMessageStorage.d.ts +7 -4
  933. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  934. package/dist/unstable/cluster/SqlMessageStorage.js +56 -25
  935. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  936. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  937. package/dist/unstable/cluster/SqlRunnerStorage.js +141 -79
  938. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  939. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  940. package/dist/unstable/cluster/index.js.map +1 -1
  941. package/dist/unstable/cluster/internal/entityManager.js +25 -13
  942. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  943. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  944. package/dist/unstable/cluster/internal/hash.js.map +1 -1
  945. package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
  946. package/dist/unstable/cluster/internal/resourceMap.js +2 -2
  947. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  948. package/dist/unstable/cluster/internal/resourceRef.js +17 -0
  949. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  950. package/dist/unstable/cluster/internal/shardLock.d.ts +2 -0
  951. package/dist/unstable/cluster/internal/shardLock.d.ts.map +1 -0
  952. package/dist/unstable/cluster/internal/shardLock.js +4 -0
  953. package/dist/unstable/cluster/internal/shardLock.js.map +1 -0
  954. package/dist/unstable/devtools/DevTools.js.map +1 -1
  955. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  956. package/dist/unstable/devtools/DevToolsClient.js +7 -2
  957. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  958. package/dist/unstable/devtools/DevToolsSchema.d.ts +20 -20
  959. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  960. package/dist/unstable/devtools/DevToolsSchema.js +8 -5
  961. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  962. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  963. package/dist/unstable/devtools/index.js.map +1 -1
  964. package/dist/unstable/encoding/Ini.d.ts +20 -0
  965. package/dist/unstable/encoding/Ini.d.ts.map +1 -0
  966. package/dist/unstable/encoding/Ini.js +153 -0
  967. package/dist/unstable/encoding/Ini.js.map +1 -0
  968. package/dist/unstable/encoding/Msgpack.d.ts +2 -1
  969. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  970. package/dist/unstable/encoding/Msgpack.js +31 -19
  971. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  972. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  973. package/dist/unstable/encoding/Ndjson.js +7 -1
  974. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  975. package/dist/unstable/encoding/Sse.d.ts +72 -8
  976. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  977. package/dist/unstable/encoding/Sse.js +72 -31
  978. package/dist/unstable/encoding/Sse.js.map +1 -1
  979. package/dist/unstable/encoding/Toml.d.ts +19 -0
  980. package/dist/unstable/encoding/Toml.d.ts.map +1 -0
  981. package/dist/unstable/encoding/Toml.js +434 -0
  982. package/dist/unstable/encoding/Toml.js.map +1 -0
  983. package/dist/unstable/encoding/Yaml.d.ts +19 -0
  984. package/dist/unstable/encoding/Yaml.d.ts.map +1 -0
  985. package/dist/unstable/encoding/Yaml.js +461 -0
  986. package/dist/unstable/encoding/Yaml.js.map +1 -0
  987. package/dist/unstable/encoding/index.d.ts +12 -0
  988. package/dist/unstable/encoding/index.d.ts.map +1 -1
  989. package/dist/unstable/encoding/index.js +12 -0
  990. package/dist/unstable/encoding/index.js.map +1 -1
  991. package/dist/unstable/eventlog/Event.d.ts +20 -20
  992. package/dist/unstable/eventlog/Event.js.map +1 -1
  993. package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
  994. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  995. package/dist/unstable/eventlog/EventJournal.d.ts +17 -17
  996. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  997. package/dist/unstable/eventlog/EventJournal.js +27 -19
  998. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  999. package/dist/unstable/eventlog/EventLog.d.ts +3 -3
  1000. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  1001. package/dist/unstable/eventlog/EventLog.js +18 -14
  1002. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  1003. package/dist/unstable/eventlog/EventLogEncryption.d.ts +8 -7
  1004. package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
  1005. package/dist/unstable/eventlog/EventLogEncryption.js +16 -14
  1006. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  1007. package/dist/unstable/eventlog/EventLogMessage.d.ts +31 -31
  1008. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
  1009. package/dist/unstable/eventlog/EventLogMessage.js +12 -8
  1010. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  1011. package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
  1012. package/dist/unstable/eventlog/EventLogRemote.js +5 -5
  1013. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  1014. package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
  1015. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  1016. package/dist/unstable/eventlog/EventLogServer.js +45 -21
  1017. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  1018. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
  1019. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  1020. package/dist/unstable/eventlog/EventLogServerEncrypted.js +16 -7
  1021. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  1022. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
  1023. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  1024. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +15 -7
  1025. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  1026. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
  1027. package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
  1028. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  1029. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
  1030. package/dist/unstable/eventlog/SqlEventJournal.js +3 -6
  1031. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  1032. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +1 -1
  1033. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  1034. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +3 -3
  1035. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  1036. package/dist/unstable/eventlog/index.js.map +1 -1
  1037. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  1038. package/dist/unstable/http/Cookies.d.ts +2 -2
  1039. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  1040. package/dist/unstable/http/Cookies.js +54 -40
  1041. package/dist/unstable/http/Cookies.js.map +1 -1
  1042. package/dist/unstable/http/Etag.d.ts +1 -1
  1043. package/dist/unstable/http/Etag.js +1 -1
  1044. package/dist/unstable/http/Etag.js.map +1 -1
  1045. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  1046. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  1047. package/dist/unstable/http/FindMyWay/internal/queryString.d.ts +11 -0
  1048. package/dist/unstable/http/FindMyWay/internal/queryString.d.ts.map +1 -0
  1049. package/dist/unstable/http/FindMyWay/internal/queryString.js +259 -0
  1050. package/dist/unstable/http/FindMyWay/internal/queryString.js.map +1 -0
  1051. package/dist/unstable/http/FindMyWay/internal/router.d.ts +2 -0
  1052. package/dist/unstable/http/FindMyWay/internal/router.d.ts.map +1 -0
  1053. package/dist/unstable/http/FindMyWay/internal/router.js +665 -0
  1054. package/dist/unstable/http/FindMyWay/internal/router.js.map +1 -0
  1055. package/dist/unstable/http/FindMyWay.d.ts +33 -8
  1056. package/dist/unstable/http/FindMyWay.d.ts.map +1 -1
  1057. package/dist/unstable/http/FindMyWay.js +4 -7
  1058. package/dist/unstable/http/FindMyWay.js.map +1 -1
  1059. package/dist/unstable/http/Headers.d.ts +2 -2
  1060. package/dist/unstable/http/Headers.js +10 -10
  1061. package/dist/unstable/http/Headers.js.map +1 -1
  1062. package/dist/unstable/http/HttpBody.d.ts +5 -3
  1063. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  1064. package/dist/unstable/http/HttpBody.js +11 -5
  1065. package/dist/unstable/http/HttpBody.js.map +1 -1
  1066. package/dist/unstable/http/HttpClient.d.ts +110 -47
  1067. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  1068. package/dist/unstable/http/HttpClient.js +79 -36
  1069. package/dist/unstable/http/HttpClient.js.map +1 -1
  1070. package/dist/unstable/http/HttpClientError.js +1 -1
  1071. package/dist/unstable/http/HttpClientError.js.map +1 -1
  1072. package/dist/unstable/http/HttpClientRequest.d.ts +44 -0
  1073. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  1074. package/dist/unstable/http/HttpClientRequest.js +16 -12
  1075. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  1076. package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
  1077. package/dist/unstable/http/HttpClientResponse.js +3 -18
  1078. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  1079. package/dist/unstable/http/HttpEffect.d.ts +7 -9
  1080. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  1081. package/dist/unstable/http/HttpEffect.js +7 -8
  1082. package/dist/unstable/http/HttpEffect.js.map +1 -1
  1083. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  1084. package/dist/unstable/http/HttpMethod.d.ts +6 -9
  1085. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  1086. package/dist/unstable/http/HttpMethod.js +6 -9
  1087. package/dist/unstable/http/HttpMethod.js.map +1 -1
  1088. package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
  1089. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  1090. package/dist/unstable/http/HttpMiddleware.js +164 -39
  1091. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  1092. package/dist/unstable/http/HttpPlatform.d.ts +76 -0
  1093. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  1094. package/dist/unstable/http/HttpPlatform.js +53 -3
  1095. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  1096. package/dist/unstable/http/HttpRouter.d.ts +91 -92
  1097. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  1098. package/dist/unstable/http/HttpRouter.js +78 -79
  1099. package/dist/unstable/http/HttpRouter.js.map +1 -1
  1100. package/dist/unstable/http/HttpServer.d.ts +13 -13
  1101. package/dist/unstable/http/HttpServer.js +6 -6
  1102. package/dist/unstable/http/HttpServer.js.map +1 -1
  1103. package/dist/unstable/http/HttpServerError.d.ts +2 -2
  1104. package/dist/unstable/http/HttpServerError.js +2 -2
  1105. package/dist/unstable/http/HttpServerError.js.map +1 -1
  1106. package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
  1107. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  1108. package/dist/unstable/http/HttpServerRequest.js +23 -15
  1109. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  1110. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  1111. package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
  1112. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  1113. package/dist/unstable/http/HttpServerResponse.js +17 -5
  1114. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  1115. package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
  1116. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  1117. package/dist/unstable/http/HttpStaticServer.js +35 -7
  1118. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  1119. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  1120. package/dist/unstable/http/Multipart.d.ts +28 -9
  1121. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  1122. package/dist/unstable/http/Multipart.js +65 -35
  1123. package/dist/unstable/http/Multipart.js.map +1 -1
  1124. package/dist/unstable/http/MultipartParser/HeadersParser.d.ts +53 -0
  1125. package/dist/unstable/http/MultipartParser/HeadersParser.d.ts.map +1 -0
  1126. package/dist/unstable/http/MultipartParser/HeadersParser.js +14 -0
  1127. package/dist/unstable/http/MultipartParser/HeadersParser.js.map +1 -0
  1128. package/dist/unstable/http/MultipartParser/Search.d.ts +11 -0
  1129. package/dist/unstable/http/MultipartParser/Search.d.ts.map +1 -0
  1130. package/dist/unstable/http/MultipartParser/Search.js +14 -0
  1131. package/dist/unstable/http/MultipartParser/Search.js.map +1 -0
  1132. package/dist/unstable/http/MultipartParser/internal/contentType.d.ts +5 -0
  1133. package/dist/unstable/http/MultipartParser/internal/contentType.d.ts.map +1 -0
  1134. package/dist/unstable/http/MultipartParser/internal/contentType.js +82 -0
  1135. package/dist/unstable/http/MultipartParser/internal/contentType.js.map +1 -0
  1136. package/dist/unstable/http/MultipartParser/internal/headers.d.ts +3 -0
  1137. package/dist/unstable/http/MultipartParser/internal/headers.d.ts.map +1 -0
  1138. package/dist/unstable/http/MultipartParser/internal/headers.js +208 -0
  1139. package/dist/unstable/http/MultipartParser/internal/headers.js.map +1 -0
  1140. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts +8 -0
  1141. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts.map +1 -0
  1142. package/dist/unstable/http/MultipartParser/internal/multipart.js +241 -0
  1143. package/dist/unstable/http/MultipartParser/internal/multipart.js.map +1 -0
  1144. package/dist/unstable/http/MultipartParser/internal/search.d.ts +5 -0
  1145. package/dist/unstable/http/MultipartParser/internal/search.d.ts.map +1 -0
  1146. package/dist/unstable/http/MultipartParser/internal/search.js +120 -0
  1147. package/dist/unstable/http/MultipartParser/internal/search.js.map +1 -0
  1148. package/dist/unstable/http/MultipartParser.d.ts +98 -0
  1149. package/dist/unstable/http/MultipartParser.d.ts.map +1 -0
  1150. package/dist/unstable/http/MultipartParser.js +23 -0
  1151. package/dist/unstable/http/MultipartParser.js.map +1 -0
  1152. package/dist/unstable/http/Template.d.ts.map +1 -1
  1153. package/dist/unstable/http/Template.js +3 -3
  1154. package/dist/unstable/http/Template.js.map +1 -1
  1155. package/dist/unstable/http/Url.d.ts +33 -63
  1156. package/dist/unstable/http/Url.d.ts.map +1 -1
  1157. package/dist/unstable/http/Url.js +14 -28
  1158. package/dist/unstable/http/Url.js.map +1 -1
  1159. package/dist/unstable/http/UrlParams.d.ts +10 -18
  1160. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  1161. package/dist/unstable/http/UrlParams.js +26 -31
  1162. package/dist/unstable/http/UrlParams.js.map +1 -1
  1163. package/dist/unstable/http/index.d.ts +1 -1
  1164. package/dist/unstable/http/index.d.ts.map +1 -1
  1165. package/dist/unstable/http/index.js +1 -1
  1166. package/dist/unstable/http/index.js.map +1 -1
  1167. package/dist/unstable/http/internal/compression.d.ts +2 -0
  1168. package/dist/unstable/http/internal/compression.d.ts.map +1 -0
  1169. package/dist/unstable/http/internal/compression.js +155 -0
  1170. package/dist/unstable/http/internal/compression.js.map +1 -0
  1171. package/dist/unstable/http/internal/httpBody.d.ts +2 -0
  1172. package/dist/unstable/http/internal/httpBody.d.ts.map +1 -0
  1173. package/dist/unstable/http/internal/httpBody.js +10 -0
  1174. package/dist/unstable/http/internal/httpBody.js.map +1 -0
  1175. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
  1176. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  1177. package/dist/unstable/httpapi/HttpApi.js +9 -9
  1178. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  1179. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
  1180. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  1181. package/dist/unstable/httpapi/HttpApiBuilder.js +82 -30
  1182. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  1183. package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
  1184. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  1185. package/dist/unstable/httpapi/HttpApiClient.js +89 -51
  1186. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  1187. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +48 -46
  1188. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  1189. package/dist/unstable/httpapi/HttpApiEndpoint.js +73 -16
  1190. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  1191. package/dist/unstable/httpapi/HttpApiError.d.ts +18 -18
  1192. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  1193. package/dist/unstable/httpapi/HttpApiError.js +30 -30
  1194. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  1195. package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
  1196. package/dist/unstable/httpapi/HttpApiGroup.js +2 -2
  1197. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  1198. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
  1199. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  1200. package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
  1201. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  1202. package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
  1203. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  1204. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  1205. package/dist/unstable/httpapi/HttpApiSchema.d.ts +225 -6
  1206. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  1207. package/dist/unstable/httpapi/HttpApiSchema.js +174 -4
  1208. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  1209. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  1210. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  1211. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  1212. package/dist/unstable/httpapi/OpenApi.d.ts +21 -13
  1213. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  1214. package/dist/unstable/httpapi/OpenApi.js +110 -57
  1215. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  1216. package/dist/unstable/httpapi/index.js.map +1 -1
  1217. package/dist/unstable/httpapi/internal/html.js.map +1 -1
  1218. package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
  1219. package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
  1220. package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
  1221. package/dist/unstable/observability/Otlp.js.map +1 -1
  1222. package/dist/unstable/observability/OtlpExporter.d.ts +71 -2
  1223. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  1224. package/dist/unstable/observability/OtlpExporter.js +86 -7
  1225. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  1226. package/dist/unstable/observability/OtlpLogger.d.ts +4 -3
  1227. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  1228. package/dist/unstable/observability/OtlpLogger.js +4 -4
  1229. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  1230. package/dist/unstable/observability/OtlpMetrics.d.ts +11 -4
  1231. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  1232. package/dist/unstable/observability/OtlpMetrics.js +31 -15
  1233. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  1234. package/dist/unstable/observability/OtlpResource.d.ts +16 -7
  1235. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  1236. package/dist/unstable/observability/OtlpResource.js +21 -12
  1237. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  1238. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  1239. package/dist/unstable/observability/OtlpTracer.d.ts +4 -3
  1240. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  1241. package/dist/unstable/observability/OtlpTracer.js +3 -3
  1242. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  1243. package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
  1244. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  1245. package/dist/unstable/observability/PrometheusMetrics.js +10 -3
  1246. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  1247. package/dist/unstable/observability/index.js.map +1 -1
  1248. package/dist/unstable/observability/internal/otlpEnv.js +1 -1
  1249. package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
  1250. package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
  1251. package/dist/unstable/observability/internal/protobuf.js +3 -0
  1252. package/dist/unstable/observability/internal/protobuf.js.map +1 -1
  1253. package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
  1254. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  1255. package/dist/unstable/persistence/KeyValueStore.js +22 -13
  1256. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  1257. package/dist/unstable/persistence/Persistable.d.ts +8 -8
  1258. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  1259. package/dist/unstable/persistence/Persistable.js +2 -1
  1260. package/dist/unstable/persistence/Persistable.js.map +1 -1
  1261. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  1262. package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
  1263. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  1264. package/dist/unstable/persistence/PersistedQueue.js +15 -15
  1265. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  1266. package/dist/unstable/persistence/Persistence.d.ts +3 -3
  1267. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  1268. package/dist/unstable/persistence/Persistence.js +108 -22
  1269. package/dist/unstable/persistence/Persistence.js.map +1 -1
  1270. package/dist/unstable/persistence/RateLimiter.d.ts +47 -26
  1271. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  1272. package/dist/unstable/persistence/RateLimiter.js +31 -47
  1273. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  1274. package/dist/unstable/persistence/Redis.d.ts +2 -2
  1275. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  1276. package/dist/unstable/persistence/Redis.js +4 -4
  1277. package/dist/unstable/persistence/Redis.js.map +1 -1
  1278. package/dist/unstable/persistence/index.js.map +1 -1
  1279. package/dist/unstable/process/ChildProcess.d.ts +72 -21
  1280. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  1281. package/dist/unstable/process/ChildProcess.js +14 -5
  1282. package/dist/unstable/process/ChildProcess.js.map +1 -1
  1283. package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
  1284. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1285. package/dist/unstable/process/ChildProcessSpawner.js +4 -2
  1286. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1287. package/dist/unstable/process/index.js.map +1 -1
  1288. package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
  1289. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  1290. package/dist/unstable/reactivity/AsyncResult.js +14 -13
  1291. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  1292. package/dist/unstable/reactivity/Atom.d.ts +131 -30
  1293. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1294. package/dist/unstable/reactivity/Atom.js +53 -34
  1295. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1296. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
  1297. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1298. package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
  1299. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1300. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  1301. package/dist/unstable/reactivity/AtomRegistry.js +25 -4
  1302. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1303. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  1304. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1305. package/dist/unstable/reactivity/AtomRpc.js +4 -1
  1306. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1307. package/dist/unstable/reactivity/Hydration.d.ts +1 -1
  1308. package/dist/unstable/reactivity/Hydration.js +1 -1
  1309. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  1310. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1311. package/dist/unstable/reactivity/index.js.map +1 -1
  1312. package/dist/unstable/rpc/Rpc.d.ts +35 -33
  1313. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1314. package/dist/unstable/rpc/Rpc.js +4 -2
  1315. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1316. package/dist/unstable/rpc/RpcClient.d.ts +26 -12
  1317. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1318. package/dist/unstable/rpc/RpcClient.js +40 -22
  1319. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1320. package/dist/unstable/rpc/RpcClientError.js +2 -2
  1321. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  1322. package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
  1323. package/dist/unstable/rpc/RpcGroup.js +1 -1
  1324. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1325. package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
  1326. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  1327. package/dist/unstable/rpc/RpcMessage.js +6 -6
  1328. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  1329. package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
  1330. package/dist/unstable/rpc/RpcMiddleware.js +1 -1
  1331. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1332. package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
  1333. package/dist/unstable/rpc/RpcSchema.js +3 -3
  1334. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1335. package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
  1336. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1337. package/dist/unstable/rpc/RpcSerialization.js +177 -96
  1338. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1339. package/dist/unstable/rpc/RpcServer.d.ts +13 -13
  1340. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  1341. package/dist/unstable/rpc/RpcServer.js +20 -15
  1342. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1343. package/dist/unstable/rpc/RpcTest.js.map +1 -1
  1344. package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
  1345. package/dist/unstable/rpc/RpcWorker.js +4 -4
  1346. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1347. package/dist/unstable/rpc/Utils.js.map +1 -1
  1348. package/dist/unstable/rpc/index.js.map +1 -1
  1349. package/dist/unstable/schema/Model.d.ts +53 -51
  1350. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1351. package/dist/unstable/schema/Model.js +35 -33
  1352. package/dist/unstable/schema/Model.js.map +1 -1
  1353. package/dist/unstable/schema/VariantSchema.d.ts +11 -12
  1354. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  1355. package/dist/unstable/schema/VariantSchema.js +28 -17
  1356. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1357. package/dist/unstable/schema/index.js.map +1 -1
  1358. package/dist/unstable/socket/Socket.d.ts +12 -4
  1359. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1360. package/dist/unstable/socket/Socket.js +38 -17
  1361. package/dist/unstable/socket/Socket.js.map +1 -1
  1362. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1363. package/dist/unstable/socket/index.js.map +1 -1
  1364. package/dist/unstable/sql/Migrator.d.ts +9 -1
  1365. package/dist/unstable/sql/Migrator.d.ts.map +1 -1
  1366. package/dist/unstable/sql/Migrator.js +15 -2
  1367. package/dist/unstable/sql/Migrator.js.map +1 -1
  1368. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  1369. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1370. package/dist/unstable/sql/SqlClient.js +8 -4
  1371. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1372. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1373. package/dist/unstable/sql/SqlError.d.ts +2 -2
  1374. package/dist/unstable/sql/SqlError.js +15 -15
  1375. package/dist/unstable/sql/SqlError.js.map +1 -1
  1376. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  1377. package/dist/unstable/sql/SqlModel.js +2 -2
  1378. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1379. package/dist/unstable/sql/SqlResolver.d.ts +5 -5
  1380. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  1381. package/dist/unstable/sql/SqlResolver.js +30 -24
  1382. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1383. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1384. package/dist/unstable/sql/SqlStream.js.map +1 -1
  1385. package/dist/unstable/sql/Statement.d.ts +6 -6
  1386. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  1387. package/dist/unstable/sql/Statement.js +30 -27
  1388. package/dist/unstable/sql/Statement.js.map +1 -1
  1389. package/dist/unstable/sql/index.js.map +1 -1
  1390. package/dist/unstable/workers/Transferable.d.ts +1 -1
  1391. package/dist/unstable/workers/Transferable.js +1 -1
  1392. package/dist/unstable/workers/Transferable.js.map +1 -1
  1393. package/dist/unstable/workers/Worker.d.ts +2 -2
  1394. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  1395. package/dist/unstable/workers/Worker.js +13 -14
  1396. package/dist/unstable/workers/Worker.js.map +1 -1
  1397. package/dist/unstable/workers/WorkerError.d.ts +7 -7
  1398. package/dist/unstable/workers/WorkerError.js +11 -11
  1399. package/dist/unstable/workers/WorkerError.js.map +1 -1
  1400. package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
  1401. package/dist/unstable/workers/WorkerRunner.js +1 -1
  1402. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1403. package/dist/unstable/workers/index.js.map +1 -1
  1404. package/dist/unstable/workflow/Activity.d.ts +2 -2
  1405. package/dist/unstable/workflow/Activity.js +2 -2
  1406. package/dist/unstable/workflow/Activity.js.map +1 -1
  1407. package/dist/unstable/workflow/DurableClock.d.ts +1 -1
  1408. package/dist/unstable/workflow/DurableClock.js +1 -1
  1409. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1410. package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
  1411. package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
  1412. package/dist/unstable/workflow/DurableDeferred.js +13 -8
  1413. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1414. package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
  1415. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  1416. package/dist/unstable/workflow/DurableQueue.js +22 -20
  1417. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  1418. package/dist/unstable/workflow/Workflow.d.ts +21 -21
  1419. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1420. package/dist/unstable/workflow/Workflow.js +13 -14
  1421. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1422. package/dist/unstable/workflow/WorkflowEngine.d.ts +26 -3
  1423. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  1424. package/dist/unstable/workflow/WorkflowEngine.js +72 -6
  1425. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1426. package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
  1427. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  1428. package/dist/unstable/workflow/WorkflowProxy.js +4 -2
  1429. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  1430. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1431. package/dist/unstable/workflow/index.js.map +1 -1
  1432. package/dist/unstable/workflow/internal/crypto.js.map +1 -1
  1433. package/package.json +10 -14
  1434. package/src/Array.ts +1068 -1070
  1435. package/src/BigDecimal.ts +433 -756
  1436. package/src/BigInt.ts +213 -269
  1437. package/src/Boolean.ts +146 -188
  1438. package/src/Brand.ts +4 -4
  1439. package/src/Cache.ts +469 -851
  1440. package/src/Cause.ts +167 -277
  1441. package/src/Channel.ts +982 -831
  1442. package/src/ChannelSchema.ts +1 -1
  1443. package/src/Chunk.ts +841 -1181
  1444. package/src/Clock.ts +181 -49
  1445. package/src/Combiner.ts +20 -33
  1446. package/src/Config.ts +642 -335
  1447. package/src/ConfigProvider.ts +267 -135
  1448. package/src/Console.ts +289 -39
  1449. package/src/Context.ts +323 -404
  1450. package/src/Cron.ts +271 -219
  1451. package/src/Crypto.ts +30 -23
  1452. package/src/Data.ts +63 -82
  1453. package/src/DateTime.ts +564 -660
  1454. package/src/Deferred.ts +259 -258
  1455. package/src/Duration.ts +244 -311
  1456. package/src/Effect.ts +3215 -3394
  1457. package/src/Encoding.ts +22 -40
  1458. package/src/Equal.ts +59 -41
  1459. package/src/Equivalence.ts +103 -105
  1460. package/src/ErrorReporter.ts +51 -27
  1461. package/src/ExecutionPlan.ts +91 -56
  1462. package/src/Exit.ts +116 -192
  1463. package/src/Fiber.ts +82 -149
  1464. package/src/FiberHandle.ts +155 -107
  1465. package/src/FiberMap.ts +225 -174
  1466. package/src/FiberSet.ts +125 -83
  1467. package/src/FileSystem.ts +156 -264
  1468. package/src/Filter.ts +61 -33
  1469. package/src/Formatter.ts +69 -76
  1470. package/src/Function.ts +119 -151
  1471. package/src/Graph.ts +416 -770
  1472. package/src/HKT.ts +12 -6
  1473. package/src/Hash.ts +52 -83
  1474. package/src/HashMap.ts +319 -411
  1475. package/src/HashRing.ts +1 -0
  1476. package/src/HashSet.ts +177 -284
  1477. package/src/Inspectable.ts +22 -20
  1478. package/src/Iterable.ts +633 -797
  1479. package/src/JsonPatch.ts +60 -113
  1480. package/src/JsonPointer.ts +8 -8
  1481. package/src/JsonSchema.ts +408 -251
  1482. package/src/Latch.ts +23 -35
  1483. package/src/Layer.ts +366 -265
  1484. package/src/LayerMap.ts +49 -29
  1485. package/src/LayerRef.ts +6 -2
  1486. package/src/LogLevel.ts +114 -214
  1487. package/src/Logger.ts +348 -700
  1488. package/src/ManagedRuntime.ts +20 -5
  1489. package/src/Match.ts +217 -252
  1490. package/src/Metric.ts +520 -1092
  1491. package/src/MutableHashMap.ts +218 -255
  1492. package/src/MutableHashSet.ts +84 -89
  1493. package/src/MutableList.ts +77 -370
  1494. package/src/MutableRef.ts +420 -243
  1495. package/src/Newtype.ts +21 -14
  1496. package/src/NonEmptyIterable.ts +7 -137
  1497. package/src/Number.ts +196 -233
  1498. package/src/Optic.ts +303 -441
  1499. package/src/Option.ts +449 -813
  1500. package/src/Order.ts +109 -109
  1501. package/src/Ordering.ts +20 -23
  1502. package/src/PartitionedSemaphore.ts +1 -4
  1503. package/src/Path.ts +38 -41
  1504. package/src/Pipeable.ts +6 -5
  1505. package/src/PlatformError.ts +4 -4
  1506. package/src/Pool.ts +4 -2
  1507. package/src/Predicate.ts +200 -181
  1508. package/src/PrimaryKey.ts +7 -7
  1509. package/src/PubSub.ts +526 -552
  1510. package/src/Pull.ts +24 -18
  1511. package/src/Queue.ts +204 -165
  1512. package/src/Random.ts +49 -74
  1513. package/src/RcMap.ts +121 -63
  1514. package/src/RcRef.ts +24 -13
  1515. package/src/Record.ts +387 -487
  1516. package/src/Redactable.ts +10 -3
  1517. package/src/Redacted.ts +25 -25
  1518. package/src/Reducer.ts +8 -15
  1519. package/src/Ref.ts +221 -361
  1520. package/src/References.ts +102 -214
  1521. package/src/RegExp.ts +10 -14
  1522. package/src/Request.ts +36 -28
  1523. package/src/RequestResolver.ts +202 -91
  1524. package/src/Result.ts +314 -485
  1525. package/src/Runtime.ts +50 -75
  1526. package/src/Schedule.ts +311 -1737
  1527. package/src/Scheduler.ts +20 -7
  1528. package/src/Schema.ts +3475 -1913
  1529. package/src/SchemaAST.ts +902 -573
  1530. package/src/SchemaGetter.ts +351 -233
  1531. package/src/SchemaIssue.ts +367 -334
  1532. package/src/SchemaParser.ts +254 -148
  1533. package/src/SchemaRepresentation.ts +732 -3414
  1534. package/src/SchemaTransformation.ts +186 -97
  1535. package/src/Scope.ts +123 -151
  1536. package/src/ScopedCache.ts +1 -1
  1537. package/src/ScopedRef.ts +6 -4
  1538. package/src/Semaphore.ts +157 -54
  1539. package/src/Sink.ts +129 -114
  1540. package/src/Stdio.ts +24 -5
  1541. package/src/Stream.ts +2745 -3173
  1542. package/src/String.ts +275 -312
  1543. package/src/Struct.ts +114 -118
  1544. package/src/SubscriptionRef.ts +284 -252
  1545. package/src/Symbol.ts +3 -3
  1546. package/src/SynchronizedRef.ts +1 -1
  1547. package/src/Terminal.ts +3 -3
  1548. package/src/Tracer.ts +102 -55
  1549. package/src/Trie.ts +287 -679
  1550. package/src/Tuple.ts +99 -131
  1551. package/src/TxChunk.ts +201 -121
  1552. package/src/TxDeferred.ts +62 -46
  1553. package/src/TxHashMap.ts +645 -799
  1554. package/src/TxHashSet.ts +443 -356
  1555. package/src/TxPriorityQueue.ts +130 -98
  1556. package/src/TxPubSub.ts +107 -80
  1557. package/src/TxQueue.ts +215 -184
  1558. package/src/TxReentrantLock.ts +136 -101
  1559. package/src/TxRef.ts +51 -32
  1560. package/src/TxSemaphore.ts +129 -95
  1561. package/src/TxSubscriptionRef.ts +97 -70
  1562. package/src/Types.ts +127 -70
  1563. package/src/Unify.ts +45 -65
  1564. package/src/Utils.ts +23 -16
  1565. package/src/index.ts +0 -10
  1566. package/src/internal/core.ts +6 -5
  1567. package/src/internal/dateTime.ts +7 -1
  1568. package/src/internal/effect.ts +304 -134
  1569. package/src/internal/executionPlan.ts +106 -10
  1570. package/src/internal/hashMap.ts +20 -14
  1571. package/src/internal/matcher.ts +3 -3
  1572. package/src/internal/persistence.ts +2 -0
  1573. package/src/internal/rcRef.ts +24 -16
  1574. package/src/internal/record.ts +11 -7
  1575. package/src/internal/references.ts +3 -7
  1576. package/src/internal/schedule.ts +4 -4
  1577. package/src/internal/schema/annotations.ts +48 -1
  1578. package/src/internal/schema/fromJsonSchemaDocument.ts +977 -0
  1579. package/src/internal/schema/fromRepresentation.ts +339 -0
  1580. package/src/internal/schema/parser.ts +22 -0
  1581. package/src/internal/schema/schema.ts +46 -63
  1582. package/src/internal/schema/{arbitrary.ts → toArbitrary.ts} +9 -81
  1583. package/src/internal/schema/toCodeDocument.ts +572 -0
  1584. package/src/internal/schema/{equivalence.ts → toEquivalence.ts} +12 -7
  1585. package/src/internal/schema/toJsonSchemaDocument.ts +549 -0
  1586. package/src/internal/schema/toRepresentation.ts +404 -0
  1587. package/src/internal/stackTraceLimit.ts +3 -7
  1588. package/src/internal/trie.ts +21 -12
  1589. package/src/testing/FastCheck.ts +8 -7
  1590. package/src/testing/TestClock.ts +86 -32
  1591. package/src/testing/TestConsole.ts +32 -31
  1592. package/src/testing/TestSchema.ts +40 -40
  1593. package/src/unstable/ai/AiError.ts +119 -141
  1594. package/src/unstable/ai/AnthropicStructuredOutput.ts +103 -334
  1595. package/src/unstable/ai/Chat.ts +133 -98
  1596. package/src/unstable/ai/EmbeddingModel.ts +1 -1
  1597. package/src/unstable/ai/IdGenerator.ts +32 -28
  1598. package/src/unstable/ai/LanguageModel.ts +141 -97
  1599. package/src/unstable/ai/McpProtocol.ts +48 -0
  1600. package/src/unstable/ai/McpSchema.ts +92 -81
  1601. package/src/unstable/ai/McpServer.ts +1057 -303
  1602. package/src/unstable/ai/Model.ts +9 -20
  1603. package/src/unstable/ai/OpenAiStructuredOutput.ts +231 -396
  1604. package/src/unstable/ai/Prompt.ts +212 -63
  1605. package/src/unstable/ai/Response.ts +52 -38
  1606. package/src/unstable/ai/Telemetry.ts +46 -13
  1607. package/src/unstable/ai/Tokenizer.ts +14 -3
  1608. package/src/unstable/ai/Tool.ts +81 -48
  1609. package/src/unstable/ai/Toolkit.ts +45 -15
  1610. package/src/unstable/ai/index.ts +5 -0
  1611. package/src/unstable/ai/internal/codec-transformer.ts +13 -7
  1612. package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
  1613. package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
  1614. package/src/unstable/ai/internal/structured-output.ts +453 -0
  1615. package/src/unstable/cli/Argument.ts +279 -72
  1616. package/src/unstable/cli/CliError.ts +159 -91
  1617. package/src/unstable/cli/CliOutput.ts +44 -58
  1618. package/src/unstable/cli/Command.ts +764 -124
  1619. package/src/unstable/cli/Flag.ts +418 -138
  1620. package/src/unstable/cli/GlobalFlag.ts +1 -1
  1621. package/src/unstable/cli/HelpDoc.ts +12 -4
  1622. package/src/unstable/cli/Param.ts +336 -100
  1623. package/src/unstable/cli/Primitive.ts +383 -156
  1624. package/src/unstable/cli/Prompt.ts +64 -34
  1625. package/src/unstable/cli/internal/ansi.ts +2 -2
  1626. package/src/unstable/cli/internal/command.ts +28 -15
  1627. package/src/unstable/cli/internal/completions/bash.ts +59 -9
  1628. package/src/unstable/cli/internal/completions/descriptor.ts +14 -20
  1629. package/src/unstable/cli/internal/completions/fish.ts +5 -7
  1630. package/src/unstable/cli/internal/config.ts +8 -10
  1631. package/src/unstable/cli/internal/help.ts +4 -2
  1632. package/src/unstable/cli/internal/lexer.ts +8 -2
  1633. package/src/unstable/cli/internal/parser.ts +5 -5
  1634. package/src/unstable/cli/internal/wizard.ts +2 -2
  1635. package/src/unstable/cluster/ClusterError.ts +7 -7
  1636. package/src/unstable/cluster/ClusterSchema.ts +8 -8
  1637. package/src/unstable/cluster/ClusterWorkflowEngine.ts +36 -20
  1638. package/src/unstable/cluster/Entity.ts +23 -19
  1639. package/src/unstable/cluster/EntityProxy.ts +16 -7
  1640. package/src/unstable/cluster/EntityResource.ts +2 -2
  1641. package/src/unstable/cluster/Envelope.ts +5 -4
  1642. package/src/unstable/cluster/HttpRunner.ts +6 -4
  1643. package/src/unstable/cluster/Message.ts +9 -9
  1644. package/src/unstable/cluster/MessageStorage.ts +24 -20
  1645. package/src/unstable/cluster/Reply.ts +26 -7
  1646. package/src/unstable/cluster/Runner.ts +1 -1
  1647. package/src/unstable/cluster/RunnerAddress.ts +1 -1
  1648. package/src/unstable/cluster/RunnerHealth.ts +1 -1
  1649. package/src/unstable/cluster/RunnerServer.ts +45 -18
  1650. package/src/unstable/cluster/RunnerStorage.ts +11 -9
  1651. package/src/unstable/cluster/Runners.ts +48 -26
  1652. package/src/unstable/cluster/ShardId.ts +1 -1
  1653. package/src/unstable/cluster/Sharding.ts +223 -55
  1654. package/src/unstable/cluster/ShardingConfig.ts +8 -4
  1655. package/src/unstable/cluster/SingleRunner.ts +4 -2
  1656. package/src/unstable/cluster/SingletonAddress.ts +1 -1
  1657. package/src/unstable/cluster/Snowflake.ts +8 -8
  1658. package/src/unstable/cluster/SqlMessageStorage.ts +84 -36
  1659. package/src/unstable/cluster/SqlRunnerStorage.ts +223 -133
  1660. package/src/unstable/cluster/internal/entityManager.ts +43 -26
  1661. package/src/unstable/cluster/internal/resourceMap.ts +5 -2
  1662. package/src/unstable/cluster/internal/resourceRef.ts +27 -5
  1663. package/src/unstable/cluster/internal/shardLock.ts +9 -0
  1664. package/src/unstable/devtools/DevToolsClient.ts +3 -2
  1665. package/src/unstable/devtools/DevToolsSchema.ts +10 -5
  1666. package/src/unstable/encoding/Ini.ts +174 -0
  1667. package/src/unstable/encoding/Msgpack.ts +61 -40
  1668. package/src/unstable/encoding/Ndjson.ts +9 -1
  1669. package/src/unstable/encoding/Sse.ts +109 -37
  1670. package/src/unstable/encoding/Toml.ts +504 -0
  1671. package/src/unstable/encoding/Yaml.ts +541 -0
  1672. package/src/unstable/encoding/index.ts +15 -0
  1673. package/src/unstable/eventlog/Event.ts +20 -20
  1674. package/src/unstable/eventlog/EventGroup.ts +4 -4
  1675. package/src/unstable/eventlog/EventJournal.ts +30 -22
  1676. package/src/unstable/eventlog/EventLog.ts +24 -14
  1677. package/src/unstable/eventlog/EventLogEncryption.ts +17 -18
  1678. package/src/unstable/eventlog/EventLogMessage.ts +15 -9
  1679. package/src/unstable/eventlog/EventLogRemote.ts +5 -5
  1680. package/src/unstable/eventlog/EventLogServer.ts +41 -7
  1681. package/src/unstable/eventlog/EventLogServerEncrypted.ts +15 -7
  1682. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +15 -7
  1683. package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
  1684. package/src/unstable/eventlog/SqlEventJournal.ts +8 -6
  1685. package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +1 -1
  1686. package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +6 -3
  1687. package/src/unstable/http/Cookies.ts +64 -45
  1688. package/src/unstable/http/Etag.ts +1 -1
  1689. package/src/unstable/http/FetchHttpClient.ts +3 -1
  1690. package/src/unstable/http/FindMyWay/internal/queryString.ts +420 -0
  1691. package/src/unstable/http/FindMyWay/internal/router.ts +950 -0
  1692. package/src/unstable/http/FindMyWay.ts +65 -6
  1693. package/src/unstable/http/Headers.ts +10 -10
  1694. package/src/unstable/http/HttpBody.ts +20 -5
  1695. package/src/unstable/http/HttpClient.ts +215 -78
  1696. package/src/unstable/http/HttpClientError.ts +1 -1
  1697. package/src/unstable/http/HttpClientRequest.ts +59 -12
  1698. package/src/unstable/http/HttpClientResponse.ts +5 -21
  1699. package/src/unstable/http/HttpEffect.ts +20 -19
  1700. package/src/unstable/http/HttpMethod.ts +6 -9
  1701. package/src/unstable/http/HttpMiddleware.ts +202 -39
  1702. package/src/unstable/http/HttpPlatform.ts +129 -6
  1703. package/src/unstable/http/HttpRouter.ts +109 -101
  1704. package/src/unstable/http/HttpServer.ts +13 -13
  1705. package/src/unstable/http/HttpServerError.ts +2 -2
  1706. package/src/unstable/http/HttpServerRequest.ts +31 -17
  1707. package/src/unstable/http/HttpServerResponse.ts +38 -6
  1708. package/src/unstable/http/HttpStaticServer.ts +35 -7
  1709. package/src/unstable/http/Multipart.ts +67 -36
  1710. package/src/unstable/http/MultipartParser/HeadersParser.ts +68 -0
  1711. package/src/unstable/http/MultipartParser/Search.ts +17 -0
  1712. package/src/unstable/http/MultipartParser/internal/contentType.ts +103 -0
  1713. package/src/unstable/http/MultipartParser/internal/headers.ts +244 -0
  1714. package/src/unstable/http/MultipartParser/internal/multipart.ts +279 -0
  1715. package/src/unstable/http/MultipartParser/internal/search.ts +167 -0
  1716. package/src/unstable/http/MultipartParser.ts +115 -0
  1717. package/src/unstable/http/Template.ts +7 -6
  1718. package/src/unstable/http/Url.ts +33 -63
  1719. package/src/unstable/http/UrlParams.ts +27 -32
  1720. package/src/unstable/http/index.ts +1 -1
  1721. package/src/unstable/http/internal/compression.ts +196 -0
  1722. package/src/unstable/http/internal/httpBody.ts +15 -0
  1723. package/src/unstable/httpapi/HttpApi.ts +10 -11
  1724. package/src/unstable/httpapi/HttpApiBuilder.ts +154 -33
  1725. package/src/unstable/httpapi/HttpApiClient.ts +142 -61
  1726. package/src/unstable/httpapi/HttpApiEndpoint.ts +159 -71
  1727. package/src/unstable/httpapi/HttpApiError.ts +46 -52
  1728. package/src/unstable/httpapi/HttpApiGroup.ts +17 -17
  1729. package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
  1730. package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
  1731. package/src/unstable/httpapi/HttpApiSchema.ts +359 -6
  1732. package/src/unstable/httpapi/OpenApi.ts +153 -62
  1733. package/src/unstable/observability/OtlpExporter.ts +130 -12
  1734. package/src/unstable/observability/OtlpLogger.ts +8 -6
  1735. package/src/unstable/observability/OtlpMetrics.ts +42 -21
  1736. package/src/unstable/observability/OtlpResource.ts +26 -17
  1737. package/src/unstable/observability/OtlpTracer.ts +9 -5
  1738. package/src/unstable/observability/PrometheusMetrics.ts +13 -4
  1739. package/src/unstable/observability/internal/otlpEnv.ts +1 -1
  1740. package/src/unstable/observability/internal/protobuf.ts +3 -0
  1741. package/src/unstable/persistence/KeyValueStore.ts +72 -49
  1742. package/src/unstable/persistence/Persistable.ts +11 -10
  1743. package/src/unstable/persistence/PersistedQueue.ts +18 -15
  1744. package/src/unstable/persistence/Persistence.ts +153 -26
  1745. package/src/unstable/persistence/RateLimiter.ts +79 -45
  1746. package/src/unstable/persistence/Redis.ts +5 -5
  1747. package/src/unstable/process/ChildProcess.ts +72 -21
  1748. package/src/unstable/process/ChildProcessSpawner.ts +22 -11
  1749. package/src/unstable/reactivity/AsyncResult.ts +23 -18
  1750. package/src/unstable/reactivity/Atom.ts +161 -47
  1751. package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
  1752. package/src/unstable/reactivity/AtomRegistry.ts +25 -4
  1753. package/src/unstable/reactivity/AtomRpc.ts +5 -4
  1754. package/src/unstable/reactivity/Hydration.ts +1 -1
  1755. package/src/unstable/rpc/Rpc.ts +35 -33
  1756. package/src/unstable/rpc/RpcClient.ts +65 -29
  1757. package/src/unstable/rpc/RpcClientError.ts +2 -2
  1758. package/src/unstable/rpc/RpcGroup.ts +8 -8
  1759. package/src/unstable/rpc/RpcMessage.ts +31 -30
  1760. package/src/unstable/rpc/RpcMiddleware.ts +10 -10
  1761. package/src/unstable/rpc/RpcSchema.ts +4 -4
  1762. package/src/unstable/rpc/RpcSerialization.ts +167 -68
  1763. package/src/unstable/rpc/RpcServer.ts +22 -17
  1764. package/src/unstable/rpc/RpcWorker.ts +5 -5
  1765. package/src/unstable/schema/Model.ts +52 -50
  1766. package/src/unstable/schema/VariantSchema.ts +51 -43
  1767. package/src/unstable/socket/Socket.ts +42 -19
  1768. package/src/unstable/sql/Migrator.ts +22 -9
  1769. package/src/unstable/sql/SqlClient.ts +64 -56
  1770. package/src/unstable/sql/SqlError.ts +15 -15
  1771. package/src/unstable/sql/SqlModel.ts +2 -2
  1772. package/src/unstable/sql/SqlResolver.ts +41 -31
  1773. package/src/unstable/sql/Statement.ts +44 -37
  1774. package/src/unstable/workers/Transferable.ts +1 -1
  1775. package/src/unstable/workers/Worker.ts +15 -16
  1776. package/src/unstable/workers/WorkerError.ts +12 -12
  1777. package/src/unstable/workers/WorkerRunner.ts +1 -1
  1778. package/src/unstable/workflow/Activity.ts +2 -2
  1779. package/src/unstable/workflow/DurableClock.ts +1 -1
  1780. package/src/unstable/workflow/DurableDeferred.ts +18 -13
  1781. package/src/unstable/workflow/DurableQueue.ts +22 -20
  1782. package/src/unstable/workflow/Workflow.ts +23 -26
  1783. package/src/unstable/workflow/WorkflowEngine.ts +111 -8
  1784. package/src/unstable/workflow/WorkflowProxy.ts +4 -2
  1785. package/dist/SchemaError.d.ts +0 -53
  1786. package/dist/SchemaError.d.ts.map +0 -1
  1787. package/dist/SchemaError.js +0 -61
  1788. package/dist/SchemaError.js.map +0 -1
  1789. package/dist/SchemaUtils.d.ts +0 -28
  1790. package/dist/SchemaUtils.d.ts.map +0 -1
  1791. package/dist/SchemaUtils.js +0 -45
  1792. package/dist/SchemaUtils.js.map +0 -1
  1793. package/dist/internal/schema/arbitrary.d.ts +0 -5
  1794. package/dist/internal/schema/arbitrary.d.ts.map +0 -1
  1795. package/dist/internal/schema/arbitrary.js.map +0 -1
  1796. package/dist/internal/schema/equivalence.d.ts +0 -2
  1797. package/dist/internal/schema/equivalence.d.ts.map +0 -1
  1798. package/dist/internal/schema/equivalence.js.map +0 -1
  1799. package/dist/internal/schema/representation.d.ts +0 -2
  1800. package/dist/internal/schema/representation.d.ts.map +0 -1
  1801. package/dist/internal/schema/representation.js +0 -865
  1802. package/dist/internal/schema/representation.js.map +0 -1
  1803. package/dist/internal/version.d.ts +0 -3
  1804. package/dist/internal/version.d.ts.map +0 -1
  1805. package/dist/internal/version.js +0 -2
  1806. package/dist/internal/version.js.map +0 -1
  1807. package/dist/unstable/http/Multipasta/HeadersParser.d.ts +0 -14
  1808. package/dist/unstable/http/Multipasta/HeadersParser.d.ts.map +0 -1
  1809. package/dist/unstable/http/Multipasta/HeadersParser.js +0 -14
  1810. package/dist/unstable/http/Multipasta/HeadersParser.js.map +0 -1
  1811. package/dist/unstable/http/Multipasta/Node.d.ts +0 -14
  1812. package/dist/unstable/http/Multipasta/Node.d.ts.map +0 -1
  1813. package/dist/unstable/http/Multipasta/Node.js +0 -14
  1814. package/dist/unstable/http/Multipasta/Node.js.map +0 -1
  1815. package/dist/unstable/http/Multipasta/Search.d.ts +0 -14
  1816. package/dist/unstable/http/Multipasta/Search.d.ts.map +0 -1
  1817. package/dist/unstable/http/Multipasta/Search.js +0 -14
  1818. package/dist/unstable/http/Multipasta/Search.js.map +0 -1
  1819. package/dist/unstable/http/Multipasta/Web.d.ts +0 -14
  1820. package/dist/unstable/http/Multipasta/Web.d.ts.map +0 -1
  1821. package/dist/unstable/http/Multipasta/Web.js +0 -14
  1822. package/dist/unstable/http/Multipasta/Web.js.map +0 -1
  1823. package/dist/unstable/http/Multipasta.d.ts +0 -15
  1824. package/dist/unstable/http/Multipasta.d.ts.map +0 -1
  1825. package/dist/unstable/http/Multipasta.js +0 -15
  1826. package/dist/unstable/http/Multipasta.js.map +0 -1
  1827. package/src/SchemaError.ts +0 -64
  1828. package/src/SchemaUtils.ts +0 -51
  1829. package/src/internal/schema/representation.ts +0 -795
  1830. package/src/internal/version.ts +0 -2
  1831. package/src/unstable/http/Multipasta/HeadersParser.ts +0 -14
  1832. package/src/unstable/http/Multipasta/Node.ts +0 -14
  1833. package/src/unstable/http/Multipasta/Search.ts +0 -14
  1834. package/src/unstable/http/Multipasta/Web.ts +0 -14
  1835. package/src/unstable/http/Multipasta.ts +0 -15
@@ -13,11 +13,14 @@
13
13
  import * as Arr from "../../Array.ts"
14
14
  import * as Cause from "../../Cause.ts"
15
15
  import * as Context from "../../Context.ts"
16
+ import * as Data from "../../Data.ts"
16
17
  import * as Effect from "../../Effect.ts"
17
18
  import * as Exit from "../../Exit.ts"
18
19
  import * as Fiber from "../../Fiber.ts"
19
20
  import * as Layer from "../../Layer.ts"
21
+ import * as LogLevel from "../../LogLevel.ts"
20
22
  import * as Option from "../../Option.ts"
23
+ import * as Predicate from "../../Predicate.ts"
21
24
  import * as Queue from "../../Queue.ts"
22
25
  import * as RcMap from "../../RcMap.ts"
23
26
  import { CurrentLogLevel } from "../../References.ts"
@@ -39,29 +42,37 @@ import type * as RpcGroup from "../rpc/RpcGroup.ts"
39
42
  import * as RpcMessage from "../rpc/RpcMessage.ts"
40
43
  import * as RpcSerialization from "../rpc/RpcSerialization.ts"
41
44
  import * as RpcServer from "../rpc/RpcServer.ts"
45
+ import * as AiError from "./AiError.ts"
46
+ import * as McpProtocolRegistry from "./internal/mcpProtocolRegistry.ts"
47
+ import type * as McpProtocol from "./McpProtocol.ts"
42
48
  import {
43
49
  CallToolResult,
44
- ClientNotificationRpcs,
50
+ CancelledNotification,
45
51
  ClientRpcs,
46
- CompleteResult,
47
52
  Elicit,
48
53
  ElicitationDeclined,
49
54
  EnabledWhen,
50
55
  GetPromptResult,
51
56
  InternalError,
57
+ INVALID_REQUEST_ERROR_CODE,
52
58
  InvalidParams,
59
+ InvalidRequest,
53
60
  isParam,
54
61
  ListPromptsResult,
55
62
  ListResourcesResult,
56
63
  ListResourceTemplatesResult,
57
64
  ListToolsResult,
65
+ LoggingMessageNotification,
66
+ McpErrorBase,
58
67
  McpServerClient,
59
68
  McpServerClientMiddleware,
69
+ MethodNotFound,
70
+ ParseError,
60
71
  Prompt,
61
72
  Resource,
62
73
  ResourceTemplate,
74
+ ResourceUpdatedNotification,
63
75
  ServerNotificationRpcs,
64
- ServerRequestRpcs,
65
76
  TextContent,
66
77
  Tool as McpTool
67
78
  } from "./McpSchema.ts"
@@ -69,8 +80,10 @@ import type {
69
80
  CallTool,
70
81
  ClientCapabilities,
71
82
  Complete,
83
+ CompleteResult,
72
84
  GetPrompt,
73
85
  Initialize,
86
+ LoggingLevel,
74
87
  Param,
75
88
  PromptArgument,
76
89
  PromptMessage,
@@ -80,6 +93,8 @@ import type {
80
93
  import * as Tool from "./Tool.ts"
81
94
  import type * as Toolkit from "./Toolkit.ts"
82
95
 
96
+ type CompletionContext = typeof Complete.payloadSchema.Type["context"]
97
+
83
98
  /**
84
99
  * Service that stores and serves an MCP server's registered tools, resources,
85
100
  * prompts, completions, and outgoing notifications.
@@ -89,7 +104,7 @@ import type * as Toolkit from "./Toolkit.ts"
89
104
  * Handlers use this service to register capabilities and resolve incoming MCP
90
105
  * requests.
91
106
  *
92
- * @category server
107
+ * @category services
93
108
  * @since 4.0.0
94
109
  */
95
110
  export class McpServer extends Context.Service<McpServer, {
@@ -104,7 +119,7 @@ export class McpServer extends Context.Service<McpServer, {
104
119
  readonly addTool: (options: {
105
120
  readonly tool: McpTool
106
121
  readonly annotations: Context.Context<never>
107
- readonly handle: (payload: any) => Effect.Effect<CallToolResult, never, McpServerClient>
122
+ readonly handle: (payload: any) => Effect.Effect<CallToolResult, InternalError | InvalidParams, McpServerClient>
108
123
  }) => Effect.Effect<void>
109
124
  readonly callTool: (
110
125
  requests: typeof CallTool.payloadSchema.Type
@@ -129,17 +144,27 @@ export class McpServer extends Context.Service<McpServer, {
129
144
  readonly template: ResourceTemplate
130
145
  readonly annotations: Context.Context<never>
131
146
  readonly routerPath: string
132
- readonly completions: Record<string, (input: string) => Effect.Effect<CompleteResult, InternalError>>
147
+ readonly completions: Record<
148
+ string,
149
+ (
150
+ input: string,
151
+ context: CompletionContext
152
+ ) => Effect.Effect<CompleteResult, InternalError>
153
+ >
133
154
  readonly handle: (
134
155
  uri: string,
135
156
  params: Array<string>
136
- ) => Effect.Effect<typeof ReadResourceResult.Type, InvalidParams | InternalError, McpServerClient>
157
+ ) => Effect.Effect<
158
+ typeof ReadResourceResult.Type,
159
+ InvalidParams | InternalError,
160
+ McpServerClient
161
+ >
137
162
  }
138
163
  ) => Effect.Effect<void>
139
164
 
140
165
  readonly findResource: (
141
166
  uri: string
142
- ) => Effect.Effect<typeof ReadResourceResult.Type, InvalidParams | InternalError, McpServerClient>
167
+ ) => Effect.Effect<typeof ReadResourceResult.Type, McpErrorBase | InvalidParams | InternalError, McpServerClient>
143
168
 
144
169
  readonly prompts: ReadonlyArray<{
145
170
  readonly prompt: Prompt
@@ -150,7 +175,10 @@ export class McpServer extends Context.Service<McpServer, {
150
175
  readonly annotations: Context.Context<never>
151
176
  readonly completions: Record<
152
177
  string,
153
- (input: string) => Effect.Effect<CompleteResult, InternalError, McpServerClient>
178
+ (
179
+ input: string,
180
+ context: CompletionContext
181
+ ) => Effect.Effect<CompleteResult, InternalError, McpServerClient>
154
182
  >
155
183
  readonly handle: (
156
184
  params: Record<string, string>
@@ -162,7 +190,7 @@ export class McpServer extends Context.Service<McpServer, {
162
190
 
163
191
  readonly completion: (
164
192
  complete: typeof Complete.payloadSchema.Type
165
- ) => Effect.Effect<CompleteResult, InternalError, McpServerClient>
193
+ ) => Effect.Effect<CompleteResult, InvalidParams | InternalError, McpServerClient>
166
194
  }>()("effect/ai/McpServer") {
167
195
  /**
168
196
  * Builds an MCP server service from registered tools, prompts, resources, and completions.
@@ -176,7 +204,11 @@ export class McpServer extends Context.Service<McpServer, {
176
204
  readonly handle: (
177
205
  uri: string,
178
206
  params: Array<string>
179
- ) => Effect.Effect<typeof ReadResourceResult.Type, InternalError | InvalidParams, McpServerClient>
207
+ ) => Effect.Effect<
208
+ typeof ReadResourceResult.Type,
209
+ InternalError | InvalidParams,
210
+ McpServerClient
211
+ >
180
212
  } | {
181
213
  readonly _tag: "Resource"
182
214
  readonly effect: Effect.Effect<typeof ReadResourceResult.Type, InternalError, McpServerClient>
@@ -186,7 +218,10 @@ export class McpServer extends Context.Service<McpServer, {
186
218
  readonly tool: McpTool
187
219
  readonly annotations: Context.Context<never>
188
220
  }>()
189
- const toolMap = new Map<string, (payload: any) => Effect.Effect<CallToolResult, InternalError, McpServerClient>>()
221
+ const toolMap = new Map<
222
+ string,
223
+ (payload: any) => Effect.Effect<CallToolResult, InternalError | InvalidParams, McpServerClient>
224
+ >()
190
225
  const resources: Array<{
191
226
  readonly resource: Resource
192
227
  readonly annotations: Context.Context<never>
@@ -205,7 +240,10 @@ export class McpServer extends Context.Service<McpServer, {
205
240
  >()
206
241
  const completionsMap = new Map<
207
242
  string,
208
- (input: string) => Effect.Effect<CompleteResult, InternalError, McpServerClient>
243
+ (
244
+ input: string,
245
+ context: CompletionContext
246
+ ) => Effect.Effect<CompleteResult, InternalError, McpServerClient>
209
247
  >()
210
248
  const notificationsQueue = yield* Queue.make<RpcMessage.Request<any>>()
211
249
  const listChangedHandles = new Map<string, any>()
@@ -258,7 +296,9 @@ export class McpServer extends Context.Service<McpServer, {
258
296
  if (!handle) {
259
297
  return Effect.fail(new InvalidParams({ message: `Tool '${request.name}' not found` }))
260
298
  }
261
- return handle(request.arguments)
299
+ return handle(request.arguments).pipe(
300
+ Effect.catchDefect(() => Effect.fail(new InternalError({ message: "Internal error" })))
301
+ )
262
302
  }),
263
303
  get resources() {
264
304
  return resources
@@ -285,7 +325,7 @@ export class McpServer extends Context.Service<McpServer, {
285
325
  Effect.suspend(() => {
286
326
  const match = matcher.find(uri)
287
327
  if (!match) {
288
- return Effect.succeed({ contents: [] })
328
+ return Effect.fail(new McpErrorBase({ code: -32002, message: `Resource '${uri}' not found` }))
289
329
  } else if (match.handler._tag === "Resource") {
290
330
  return match.handler.effect
291
331
  }
@@ -320,7 +360,19 @@ export class McpServer extends Context.Service<McpServer, {
320
360
  ? `ref/resource/${ref.uri}/${complete.argument.name}`
321
361
  : `ref/prompt/${ref.name}/${complete.argument.name}`
322
362
  const handler = completionsMap.get(key)
323
- return handler ? yield* handler(complete.argument.value) : CompleteResult.empty
363
+ if (!handler) {
364
+ return yield* new InvalidParams({ message: "Unknown completion reference or argument" })
365
+ }
366
+ const result = yield* handler(complete.argument.value, complete.context)
367
+ const values = Arr.take(result.completion.values, 100)
368
+ return {
369
+ completion: {
370
+ ...result.completion,
371
+ values,
372
+ hasMore: result.completion.hasMore === true ||
373
+ values.length < result.completion.values.length
374
+ }
375
+ }
324
376
  })
325
377
  })
326
378
  })
@@ -333,15 +385,63 @@ export class McpServer extends Context.Service<McpServer, {
333
385
  static readonly layer: Layer.Layer<McpServer | McpServerClient> = Layer.effect(McpServer)(McpServer.make) as any
334
386
  }
335
387
 
336
- const LATEST_PROTOCOL_VERSION = "2025-06-18"
337
- const SUPPORTED_PROTOCOL_VERSIONS = [
338
- LATEST_PROTOCOL_VERSION,
339
- "2025-03-26",
340
- "2024-11-05",
341
- "2024-10-07"
342
- ]
343
- const mcpSessionIdHeader = "mcp-session-id"
344
- const mcpProtocolVersionHeader = "mcp-protocol-version"
388
+ const MCP_SESSION_ID_HEADER = "mcp-session-id"
389
+ const MCP_PROTOCOL_VERSION_HEADER = "mcp-protocol-version"
390
+ const MCP_INVALID_BATCH_METHOD = "invalid/json-rpc-batch"
391
+ const decodeCancelledNotification = Schema.decodeUnknownEffect(
392
+ Schema.toCodecJson(CancelledNotification.payloadSchema)
393
+ )
394
+
395
+ const requestKey = (requestId: string | number): string => `${typeof requestId}:${requestId}`
396
+
397
+ type SessionLogLevel =
398
+ | {
399
+ readonly _tag: "Effect"
400
+ readonly level: LogLevel.LogLevel
401
+ }
402
+ | {
403
+ readonly _tag: "Mcp"
404
+ readonly level: LoggingLevel
405
+ }
406
+
407
+ interface Session {
408
+ readonly initializePayload: typeof Initialize.payloadSchema.Type
409
+ readonly protocol: McpProtocol.ProtocolAdapter
410
+ readonly resourceSubscriptions: Set<string> | undefined
411
+ logLevel: SessionLogLevel
412
+ }
413
+
414
+ interface Sessions {
415
+ readonly bySessionId: Map<string, Session>
416
+ readonly byClientId: Map<number, Session>
417
+ }
418
+
419
+ class McpClientKey extends Data.Class<{
420
+ readonly clientId: number
421
+ readonly protocolVersion: string
422
+ }> {}
423
+
424
+ class McpProtocolState extends Context.Service<McpProtocolState, {
425
+ readonly sessions: Sessions
426
+ readonly protocolRegistry: McpProtocolRegistry.ProtocolRegistry<McpProtocol.ProtocolAdapter>
427
+ }>()("effect/ai/McpServer/McpProtocolState") {}
428
+
429
+ const makeMcpProtocolState = Effect.fnUntraced(function*(
430
+ protocols: Arr.NonEmptyReadonlyArray<McpProtocol.ProtocolAdapter>
431
+ ) {
432
+ return McpProtocolState.of({
433
+ sessions: {
434
+ bySessionId: new Map(),
435
+ byClientId: new Map()
436
+ },
437
+ protocolRegistry: yield* McpProtocolRegistry.make(protocols)
438
+ })
439
+ })
440
+
441
+ const layerMcpProtocolState = (
442
+ protocols: Arr.NonEmptyReadonlyArray<McpProtocol.ProtocolAdapter>
443
+ ): Layer.Layer<McpProtocolState, Cause.IllegalArgumentError> =>
444
+ Layer.effect(McpProtocolState)(makeMcpProtocolState(protocols))
345
445
 
346
446
  /**
347
447
  * Runs an MCP server over the current `RpcServer.Protocol`.
@@ -352,31 +452,54 @@ const mcpProtocolVersionHeader = "mcp-protocol-version"
352
452
  * tools, resources, and prompts, and forwards queued server notifications to
353
453
  * initialized clients.
354
454
  *
355
- * @category constructors
455
+ * @category running
356
456
  * @since 4.0.0
357
457
  */
358
458
  export const run: (options: {
359
459
  readonly name: string
360
460
  readonly version: string
461
+ readonly protocols: Arr.NonEmptyReadonlyArray<McpProtocol.ProtocolAdapter>
361
462
  readonly extensions?: Record<`${string}/${string}`, unknown> | undefined
362
463
  }) => Effect.Effect<
363
464
  never,
364
- never,
465
+ Cause.IllegalArgumentError,
365
466
  McpServer | RpcServer.Protocol
366
467
  > = Effect.fnUntraced(function*(options: {
367
468
  readonly name: string
368
469
  readonly version: string
470
+ readonly protocols: Arr.NonEmptyReadonlyArray<McpProtocol.ProtocolAdapter>
471
+ readonly extensions?: Record<`${string}/${string}`, unknown> | undefined
369
472
  }) {
473
+ const protocolStateOption = yield* Effect.serviceOption(McpProtocolState)
474
+ const protocolState = Option.isSome(protocolStateOption)
475
+ ? protocolStateOption.value
476
+ : yield* makeMcpProtocolState(options.protocols)
477
+ return yield* runWithProtocolState(options, protocolState)
478
+ })
479
+
480
+ const runWithProtocolState = Effect.fnUntraced(function*(options: {
481
+ readonly name: string
482
+ readonly version: string
483
+ readonly extensions?: Record<`${string}/${string}`, unknown> | undefined
484
+ }, protocolState: McpProtocolState["Service"]) {
485
+ const serverScope = yield* Effect.scope
486
+ const protocolRegistry = protocolState.protocolRegistry
370
487
  const protocol = yield* RpcServer.Protocol
371
488
  const server = yield* McpServer
372
489
  const isHttp = Option.isSome(yield* Effect.serviceOption(HttpRouter.HttpRouter))
373
- const clientSessions = new Map<string, typeof Initialize.payloadSchema.Type>()
374
- const handlers = yield* Layer.build(layerHandlers(options, { clientSessions }))
490
+ const sessions = protocolState.sessions
491
+ const clientProtocols = new Map<number, McpProtocol.ProtocolAdapter>()
492
+ const activeRequests = new Map<number, Map<string, boolean>>()
493
+ const handlers = yield* Layer.build(layerHandlers(options, {
494
+ sessions,
495
+ protocolRegistry
496
+ }))
375
497
 
376
498
  const clients = yield* RcMap.make({
377
- lookup: Effect.fnUntraced(function*(clientId: number) {
499
+ lookup: Effect.fnUntraced(function*(key: McpClientKey) {
500
+ const selectedProtocol = protocolRegistry.select(key.protocolVersion)
378
501
  let write!: (message: RpcMessage.FromServerEncoded) => Effect.Effect<void>
379
- const client = yield* RpcClient.make(ServerRequestRpcs, {
502
+ const client = yield* RpcClient.make(selectedProtocol.serverRequestRpcs, {
380
503
  spanPrefix: "McpServer/Client"
381
504
  }).pipe(
382
505
  Effect.provideServiceEffect(
@@ -387,7 +510,7 @@ export const run: (options: {
387
510
  return {
388
511
  send(id, request, _transferables) {
389
512
  cid = id
390
- return protocol.send(clientId, {
513
+ return protocol.send(key.clientId, {
391
514
  ...request,
392
515
  headers: undefined,
393
516
  traceId: undefined,
@@ -408,84 +531,253 @@ export const run: (options: {
408
531
  idleTimeToLive: 10000
409
532
  })
410
533
 
411
- const clientMiddleware = McpServerClientMiddleware.of((effect, { client, headers, rpc }) => {
412
- const initializePayload = getInitializedClient(clientSessions, client.id, headers)
413
- const isInitialize = rpc._tag === "initialize"
414
- if (!isInitialize && !initializePayload) {
534
+ const clientMiddleware = McpServerClientMiddleware.of((effect, { client, headers, payload, rpc }) => {
535
+ const session = getClientSession(sessions, client.id, headers)
536
+ const isInitialize = rpc._tag.endsWith("/initialize")
537
+ if (!isInitialize && !session) {
415
538
  const fiber = Fiber.getCurrent()!
416
539
  const httpRequest = Context.getOrUndefined(fiber.context, HttpServerRequest.HttpServerRequest)
417
540
  if (httpRequest) {
418
541
  appendPreResponseHandlerUnsafe(
419
542
  httpRequest,
420
- () => Effect.succeed(HttpServerResponse.empty({ status: 404 }))
543
+ () =>
544
+ Effect.succeed(
545
+ HttpServerResponse.empty({
546
+ status: headers[MCP_SESSION_ID_HEADER] === undefined ? 400 : 404
547
+ })
548
+ )
421
549
  )
422
550
  }
423
551
  return Effect.die(new Error(`Mcp-Session-Id does not exist`))
424
552
  }
425
- return Effect.provideService(
426
- effect,
427
- McpServerClient,
428
- McpServerClient.of({
429
- clientId: client.id,
430
- initializePayload: initializePayload!,
431
- getClient: RcMap.get(clients, client.id).pipe(
432
- Effect.map(({ client }) => client)
433
- )
434
- })
553
+ const selectedProtocol = session?.protocol ?? protocolForInternalTag(protocolRegistry, rpc._tag)
554
+ return effect.pipe(
555
+ Effect.provideService(
556
+ McpServerClient,
557
+ McpServerClient.of({
558
+ clientId: client.id,
559
+ protocolVersion: selectedProtocol.protocolVersion,
560
+ initializePayload: session?.initializePayload ?? payload as typeof Initialize.payloadSchema.Type,
561
+ getClient: RcMap.get(
562
+ clients,
563
+ new McpClientKey({
564
+ clientId: client.id,
565
+ protocolVersion: selectedProtocol.protocolVersion
566
+ })
567
+ ).pipe(
568
+ Effect.map(({ client }) => client)
569
+ )
570
+ })
571
+ ),
572
+ Effect.provideService(CurrentLogLevel, effectLogLevel(session?.logLevel))
435
573
  )
436
574
  })
437
575
 
438
576
  const patchedProtocol = RpcServer.Protocol.of({
439
577
  ...protocol,
578
+ send: (clientId, response) => {
579
+ if (response._tag === "Exit") {
580
+ const requests = activeRequests.get(clientId)
581
+ const key = requestKey(response.requestId)
582
+ const cancelled = requests?.get(key)
583
+ if (requests !== undefined && requests.delete(key) && requests.size === 0) {
584
+ activeRequests.delete(clientId)
585
+ }
586
+ if (cancelled === true) {
587
+ return Effect.void
588
+ }
589
+ }
590
+ return protocol.send(clientId, response)
591
+ },
440
592
  run: (f) =>
441
593
  protocol.run((clientId, request_) => {
442
- const request = request_ as any as
594
+ const fiber = Fiber.getCurrent()!
595
+ const request = request_ as unknown as
443
596
  | RpcMessage.FromServerEncoded
444
597
  | RpcMessage.FromClientEncoded
598
+ const httpRequest = isHttp
599
+ ? Context.getOrUndefined(fiber.context, HttpServerRequest.HttpServerRequest)
600
+ : undefined
601
+ if (httpRequest !== undefined && request._tag !== "Eof") {
602
+ appendPreResponseHandlerUnsafe(httpRequest, (_, response) =>
603
+ Effect.succeed(
604
+ response.status === 200 &&
605
+ response.body._tag === "Uint8Array" &&
606
+ response.body.contentLength === 0
607
+ ? HttpServerResponse.empty({
608
+ headers: Headers.remove(response.headers, "content-type"),
609
+ status: 202
610
+ })
611
+ : response
612
+ ))
613
+ }
445
614
  switch (request._tag) {
446
615
  case "Request": {
616
+ const headers = isHttp
617
+ ? Context.getUnsafe(
618
+ Fiber.getCurrent()!.context,
619
+ HttpServerRequest.HttpServerRequest
620
+ ).headers
621
+ : Headers.fromInput(request.headers)
622
+ const session = getClientSession(sessions, clientId, headers)
623
+ const selectedProtocol = session?.protocol ??
624
+ (request.tag === "initialize"
625
+ ? protocolRegistry.select(getOfferedProtocolVersion(request.payload))
626
+ : protocolRegistry.protocols[0])
627
+ clientProtocols.set(clientId, selectedProtocol)
628
+ if (request.tag === MCP_INVALID_BATCH_METHOD) {
629
+ return protocol.send(clientId, {
630
+ _tag: "Exit",
631
+ requestId: request.id,
632
+ exit: {
633
+ _tag: "Failure",
634
+ cause: [{
635
+ _tag: "Fail",
636
+ error: new InvalidRequest({ message: "JSON-RPC batches are not supported" })
637
+ }]
638
+ }
639
+ })
640
+ }
447
641
  if (isHttp) {
448
642
  const fiber = Fiber.getCurrent()!
449
643
  const httpRequest = Context.getUnsafe(fiber.context, HttpServerRequest.HttpServerRequest)
450
- const client = getInitializedClient(clientSessions, clientId, httpRequest.headers)
451
- if (client) {
644
+ if (session) {
452
645
  appendPreResponseHandlerUnsafe(httpRequest, (_, res) =>
453
646
  Effect.succeed(
454
- HttpServerResponse.setHeader(res, mcpProtocolVersionHeader, client.protocolVersion)
647
+ HttpServerResponse.setHeader(
648
+ res,
649
+ MCP_PROTOCOL_VERSION_HEADER,
650
+ session.protocol.protocolVersion
651
+ )
455
652
  ))
456
653
  }
457
654
  }
458
- const rpc = ClientNotificationRpcs.requests.get(request.tag)
459
- if (rpc) {
655
+ const routedRequest = protocolRegistry.routeClientRequest(selectedProtocol, request)
656
+ const rpc = protocolRegistry.clientRpcs.requests.get(routedRequest.tag)
657
+ if (rpc && selectedProtocol.clientNotificationRpcs.requests.has(request.tag)) {
658
+ if (!session) {
659
+ if (httpRequest) {
660
+ appendPreResponseHandlerUnsafe(
661
+ httpRequest,
662
+ () =>
663
+ Effect.succeed(
664
+ HttpServerResponse.empty({
665
+ status: headers[MCP_SESSION_ID_HEADER] === undefined ? 400 : 404
666
+ })
667
+ )
668
+ )
669
+ }
670
+ return Effect.void
671
+ }
460
672
  if (request.tag === "notifications/cancelled") {
461
- return f(clientId, {
462
- _tag: "Interrupt",
463
- requestId: String((request.payload as any).requestId)
464
- })
673
+ return decodeCancelledNotification(request.payload).pipe(
674
+ Effect.flatMap(({ requestId }) => {
675
+ const key = requestKey(requestId)
676
+ const requests = activeRequests.get(clientId)
677
+ if (requests?.has(key) !== true) {
678
+ return Effect.void
679
+ }
680
+ requests.set(key, true)
681
+ return f(clientId, {
682
+ _tag: "Interrupt",
683
+ requestId: RpcMessage.RequestId(requestId)
684
+ })
685
+ }),
686
+ Effect.catchCause(() => Effect.void)
687
+ )
465
688
  }
466
- const handler = handlers.mapUnsafe.get(request.tag) as Rpc.Handler<string>
467
- return handler
468
- ? handler.handler(request.payload, {
469
- rpc,
470
- requestId: RpcMessage.RequestId(request.id),
471
- client: new Rpc.ServerClient(clientId),
472
- headers: Headers.fromInput(request.headers)
473
- }) as any as Effect.Effect<void>
474
- : Effect.void
689
+ return selectedProtocol.payloadCodecs(rpc).decode(request.payload).pipe(
690
+ Effect.flatMap((payload) => {
691
+ if (
692
+ request.tag === "notifications/roots/list_changed" &&
693
+ session.initializePayload.capabilities.roots?.listChanged === true
694
+ ) {
695
+ if (httpRequest !== undefined) {
696
+ return Effect.void
697
+ }
698
+ return RcMap.get(
699
+ clients,
700
+ new McpClientKey({
701
+ clientId,
702
+ protocolVersion: selectedProtocol.protocolVersion
703
+ })
704
+ ).pipe(
705
+ Effect.flatMap(({ client }) => client["roots/list"](undefined)),
706
+ Effect.scoped,
707
+ Effect.ignoreCause,
708
+ Effect.forkIn(serverScope),
709
+ Effect.asVoid
710
+ )
711
+ }
712
+ const handler = handlers.mapUnsafe.get(rpc.key) as Rpc.Handler<string> | undefined
713
+ return handler
714
+ ? handler.handler(payload, {
715
+ rpc,
716
+ requestId: RpcMessage.RequestId(request.id),
717
+ client: new Rpc.ServerClient(clientId),
718
+ headers
719
+ }) as any as Effect.Effect<void>
720
+ : Effect.void
721
+ }),
722
+ Effect.catchCause(() => Effect.void)
723
+ )
475
724
  }
476
- return f(clientId, request)
725
+ if (!rpc) {
726
+ if (request.isNotification) {
727
+ return Effect.void
728
+ }
729
+ return protocol.send(clientId, {
730
+ _tag: "Exit",
731
+ requestId: request.id,
732
+ exit: {
733
+ _tag: "Failure",
734
+ cause: [{ _tag: "Fail", error: new MethodNotFound({ message: `Method not found: ${request.tag}` }) }]
735
+ }
736
+ })
737
+ }
738
+ return selectedProtocol.payloadCodecs(rpc).decode(request.payload).pipe(
739
+ Effect.matchEffect({
740
+ onSuccess: () => {
741
+ if (request.isNotification !== true) {
742
+ const requests = activeRequests.get(clientId) ?? new Map<string, boolean>()
743
+ requests.set(requestKey(request.id), false)
744
+ activeRequests.set(clientId, requests)
745
+ }
746
+ return f(clientId, routedRequest)
747
+ },
748
+ onFailure: () =>
749
+ request.isNotification
750
+ ? Effect.void
751
+ : protocol.send(clientId, {
752
+ _tag: "Exit",
753
+ requestId: request.id,
754
+ exit: {
755
+ _tag: "Failure",
756
+ cause: [{ _tag: "Fail", error: new InvalidParams({ message: "Invalid method parameters" }) }]
757
+ }
758
+ })
759
+ })
760
+ )
477
761
  }
478
762
  case "Ping":
479
763
  case "Ack":
480
764
  case "Interrupt":
765
+ return f(clientId, request)
481
766
  case "Eof":
767
+ activeRequests.delete(clientId)
482
768
  return f(clientId, request)
483
769
  case "Pong":
484
770
  case "Exit":
485
771
  case "Chunk":
486
772
  case "ClientProtocolError":
487
773
  case "Defect":
488
- return RcMap.get(clients, clientId).pipe(
774
+ return RcMap.get(
775
+ clients,
776
+ new McpClientKey({
777
+ clientId,
778
+ protocolVersion: getProtocolForClient(clientProtocols, clientId, protocolRegistry).protocolVersion
779
+ })
780
+ ).pipe(
489
781
  Effect.flatMap(({ write }) => write(request)),
490
782
  Effect.scoped
491
783
  )
@@ -493,23 +785,52 @@ export const run: (options: {
493
785
  })
494
786
  })
495
787
 
496
- const encodeNotification = Schema.encodeUnknownEffect(
497
- Schema.Union(Array.from(ServerNotificationRpcs.requests.values(), (rpc) => rpc.payloadSchema))
498
- )
499
788
  yield* Queue.take(server.notificationsQueue).pipe(
500
789
  Effect.flatMap(Effect.fnUntraced(function*(request) {
501
- const encoded = yield* encodeNotification(request.payload)
502
- const message: RpcMessage.RequestEncoded = {
503
- _tag: "Request",
504
- tag: request.tag,
505
- payload: encoded
506
- } as any
507
790
  const clientIds = yield* patchedProtocol.clientIds
791
+ for (const clientId of clientProtocols.keys()) {
792
+ if (!clientIds.has(clientId)) {
793
+ clientProtocols.delete(clientId)
794
+ sessions.byClientId.delete(clientId)
795
+ }
796
+ }
508
797
  for (const clientId of server.initializedClients.keys()) {
509
798
  if (!clientIds.has(clientId)) {
510
799
  server.initializedClients.delete(clientId)
511
800
  continue
512
801
  }
802
+ const selectedProtocol = clientProtocols.get(clientId)
803
+ if (!selectedProtocol) {
804
+ continue
805
+ }
806
+ const rpc = selectedProtocol.serverNotificationRpcs.requests.get(request.tag)
807
+ if (!rpc) {
808
+ continue
809
+ }
810
+ if (request.tag === "notifications/message") {
811
+ const { level } = yield* Schema.decodeUnknownEffect(
812
+ LoggingMessageNotification.payloadSchema
813
+ )(request.payload)
814
+ if (!isMcpLogLevelEnabled(level, sessions.byClientId.get(clientId)?.logLevel)) {
815
+ continue
816
+ }
817
+ }
818
+ if (request.tag === "notifications/resources/updated") {
819
+ const { uri } = yield* Schema.decodeUnknownEffect(
820
+ ResourceUpdatedNotification.payloadSchema
821
+ )(request.payload)
822
+ if (sessions.byClientId.get(clientId)?.resourceSubscriptions?.has(uri) !== true) {
823
+ continue
824
+ }
825
+ }
826
+ const encoded = yield* selectedProtocol.payloadCodecs(rpc).encode(request.payload)
827
+ // TODO: Extend RpcServer.Protocol's outbound message contract with server-originated
828
+ // notifications so MCP does not need to treat this notification as an RPC response.
829
+ const message: RpcMessage.RequestEncoded = {
830
+ _tag: "Request",
831
+ tag: request.tag,
832
+ payload: encoded
833
+ } as any
513
834
  yield* patchedProtocol.send(clientId, message as any)
514
835
  }
515
836
  })),
@@ -518,7 +839,7 @@ export const run: (options: {
518
839
  Effect.forkScoped
519
840
  )
520
841
 
521
- return yield* RpcServer.make(ClientRpcs, {
842
+ return yield* RpcServer.make(protocolRegistry.clientRpcs, {
522
843
  spanPrefix: "McpServer",
523
844
  disableFatalDefects: true
524
845
  }).pipe(
@@ -560,65 +881,145 @@ export const run: (options: {
560
881
  export const layer = (options: {
561
882
  readonly name: string
562
883
  readonly version: string
884
+ readonly protocols: Arr.NonEmptyReadonlyArray<McpProtocol.ProtocolAdapter>
563
885
  readonly extensions?: Record<`${string}/${string}`, unknown> | undefined
564
- }): Layer.Layer<McpServer | McpServerClient, never, RpcServer.Protocol> =>
565
- Layer.effectDiscard(Effect.forkScoped(run(options))).pipe(
886
+ }): Layer.Layer<McpServer | McpServerClient, Cause.IllegalArgumentError, RpcServer.Protocol> =>
887
+ layerWithProtocolState(options).pipe(
888
+ Layer.provide(layerMcpProtocolState(options.protocols))
889
+ )
890
+
891
+ const layerWithProtocolState = (options: {
892
+ readonly name: string
893
+ readonly version: string
894
+ readonly extensions?: Record<`${string}/${string}`, unknown> | undefined
895
+ }): Layer.Layer<McpServer | McpServerClient, never, RpcServer.Protocol | McpProtocolState> =>
896
+ Layer.effectDiscard(
897
+ Effect.gen(function*() {
898
+ const protocolState = yield* McpProtocolState
899
+ yield* Effect.forkScoped(runWithProtocolState(options, protocolState))
900
+ })
901
+ ).pipe(
566
902
  Layer.provideMerge(McpServer.layer)
567
903
  )
568
904
 
905
+ const StdioInitializeRequest = Schema.Struct({
906
+ method: Schema.Literal("initialize"),
907
+ params: Schema.Struct({
908
+ protocolVersion: Schema.String
909
+ })
910
+ })
911
+
912
+ const StdioInvalidBatchExit = Schema.Struct({
913
+ _tag: Schema.Literal("Exit"),
914
+ requestId: Schema.Null,
915
+ exit: Schema.Struct({
916
+ cause: Schema.Unknown
917
+ })
918
+ })
919
+
920
+ const decodeStdioInitializeRequest = Schema.decodeUnknownOption(StdioInitializeRequest)
921
+ const decodeStdioInvalidBatchExit = Schema.decodeUnknownOption(StdioInvalidBatchExit)
922
+
923
+ const makeStdioSerialization = (
924
+ protocols: Arr.NonEmptyReadonlyArray<McpProtocol.ProtocolAdapter>
925
+ ): RpcSerialization.RpcSerialization["Service"] =>
926
+ RpcSerialization.RpcSerialization.of({
927
+ contentType: "application/json-rpc",
928
+ includesFraming: true,
929
+ makeUnsafe: () => {
930
+ const framing = RpcSerialization.ndjson.makeUnsafe()
931
+ const jsonRpc = RpcSerialization.jsonRpc().makeUnsafe()
932
+ const protocolsByVersion = new Map<string, McpProtocol.ProtocolAdapter>(
933
+ protocols.map((protocol) => [protocol.protocolVersion, protocol])
934
+ )
935
+ let selectedProtocol = protocols[0]
936
+ return {
937
+ decode: (data) => {
938
+ const frames = framing.decode(data)
939
+ const messages: Array<unknown> = []
940
+ for (const frame of frames) {
941
+ const entries = Array.isArray(frame) ? frame : [frame]
942
+ const initialize = Arr.findFirst(entries, (entry) => decodeStdioInitializeRequest(entry))
943
+ selectedProtocol = Option.match(initialize, {
944
+ onNone: () => selectedProtocol,
945
+ onSome: ({ params }) => protocolsByVersion.get(params.protocolVersion) ?? protocols[0]
946
+ })
947
+ if (Array.isArray(frame) && !selectedProtocol.transport.acceptsJsonRpcBatches) {
948
+ messages.push({
949
+ _tag: "Request",
950
+ id: null,
951
+ tag: MCP_INVALID_BATCH_METHOD,
952
+ payload: null,
953
+ headers: []
954
+ })
955
+ } else {
956
+ messages.push(...jsonRpc.decode(JSON.stringify(frame)))
957
+ }
958
+ }
959
+ return messages
960
+ },
961
+ encode: (response) => {
962
+ const invalidBatchExit = decodeStdioInvalidBatchExit(response)
963
+ if (Option.isSome(invalidBatchExit)) {
964
+ return framing.encode({
965
+ jsonrpc: "2.0",
966
+ id: null,
967
+ error: {
968
+ _tag: "Cause",
969
+ code: INVALID_REQUEST_ERROR_CODE,
970
+ message: "JSON-RPC batches are not supported",
971
+ data: invalidBatchExit.value.exit.cause
972
+ }
973
+ })
974
+ }
975
+ const encoded = jsonRpc.encode(response)
976
+ return encoded === undefined ? undefined : `${encoded}\n`
977
+ }
978
+ }
979
+ }
980
+ })
981
+
569
982
  /**
570
983
  * Runs the McpServer, using stdio for input and output.
571
984
  *
572
- * **Example** (Running an MCP server over stdio)
985
+ * **Example** (Configuring an MCP server over stdio)
573
986
  *
574
- * ```ts
575
- * import { Effect, Layer, Logger, Schema } from "effect"
576
- * import { NodeRuntime, NodeStdio } from "@effect/platform-node"
577
- * import { McpSchema, McpServer } from "effect/unstable/ai"
987
+ * ```ts import.meta.vitest
988
+ * import { Effect, Layer, Schema } from "effect"
989
+ * import { McpProtocol, McpSchema, McpServer } from "effect/unstable/ai"
578
990
  *
579
991
  * const idParam = McpSchema.param("id", Schema.Number)
580
992
  *
581
- * // Define a resource template for a README file
582
993
  * const ReadmeTemplate = McpServer.resource`file://readme/${idParam}`({
583
994
  * name: "README Template",
584
- * // You can add auto-completion for the ID parameter
585
995
  * completion: {
586
- * id: (_) => Effect.succeed([1, 2, 3, 4, 5])
996
+ * id: () => Effect.succeed([1, 2, 3])
587
997
  * },
588
- * content: Effect.fn(function*(_uri, id) {
589
- * return `# MCP Server Demo - ID: ${id}`
590
- * })
998
+ * content: (_uri, id) => Effect.succeed(`# MCP Server Demo - ID: ${id}`)
591
999
  * })
592
1000
  *
593
- * // Define a test prompt with parameters
594
1001
  * const TestPrompt = McpServer.prompt({
595
1002
  * name: "Test Prompt",
596
- * description: "A test prompt to demonstrate MCP server capabilities",
1003
+ * description: "Looks up flight booking details",
597
1004
  * parameters: {
598
1005
  * flightNumber: Schema.String
599
1006
  * },
600
1007
  * completion: {
601
- * flightNumber: () => Effect.succeed(["FL123", "FL456", "FL789"])
1008
+ * flightNumber: () => Effect.succeed(["FL123", "FL456"])
602
1009
  * },
603
1010
  * content: ({ flightNumber }) =>
604
1011
  * Effect.succeed(`Get the booking details for flight number: ${flightNumber}`)
605
1012
  * })
606
1013
  *
607
- * // Merge all the resources and prompts into a single server layer
608
- * const ServerLayer = Layer.mergeAll(
609
- * ReadmeTemplate,
610
- * TestPrompt
611
- * ).pipe(
612
- * // Provide the MCP server implementation
1014
+ * const ServerLayer = Layer.mergeAll(ReadmeTemplate, TestPrompt).pipe(
613
1015
  * Layer.provide(McpServer.layerStdio({
614
1016
  * name: "Demo Server",
615
1017
  * version: "1.0.0",
616
- * })),
617
- * Layer.provide(NodeStdio.layer),
618
- * Layer.provide(Layer.succeed(Logger.LogToStderr)(true))
1018
+ * protocols: [McpProtocol.v2025_06_18]
1019
+ * }))
619
1020
  * )
620
1021
  *
621
- * Layer.launch(ServerLayer).pipe(NodeRuntime.runMain)
1022
+ * Layer.isLayer(ServerLayer) // => true
622
1023
  * ```
623
1024
  *
624
1025
  * @category layers
@@ -627,16 +1028,18 @@ export const layer = (options: {
627
1028
  export const layerStdio = (options: {
628
1029
  readonly name: string
629
1030
  readonly version: string
1031
+ readonly protocols: Arr.NonEmptyReadonlyArray<McpProtocol.ProtocolAdapter>
630
1032
  readonly extensions?: Record<`${string}/${string}`, unknown> | undefined
631
- }): Layer.Layer<McpServer | McpServerClient, never, Stdio> =>
1033
+ }): Layer.Layer<McpServer | McpServerClient, Cause.IllegalArgumentError, Stdio> =>
632
1034
  layer(options).pipe(
633
1035
  Layer.provide(RpcServer.layerProtocolStdio),
634
- Layer.provide(RpcSerialization.layerNdJsonRpc())
1036
+ Layer.provide(
1037
+ Layer.succeed(RpcSerialization.RpcSerialization)(makeStdioSerialization(options.protocols))
1038
+ )
635
1039
  )
636
1040
 
637
1041
  /**
638
- * Registers an HTTP POST JSON-RPC route at `options.path` on the current
639
- * `HttpRouter`.
1042
+ * Registers a Streamable HTTP MCP endpoint at `options.path`.
640
1043
  *
641
1044
  * **When to use**
642
1045
  *
@@ -644,8 +1047,9 @@ export const layerStdio = (options: {
644
1047
  *
645
1048
  * **Details**
646
1049
  *
647
- * This layer composes `layer(options)`, `RpcServer.layerProtocolHttp(options)`,
648
- * and `RpcSerialization.layerJsonRpc()`.
1050
+ * POST serves JSON-RPC and accepted notification-only requests return `202`.
1051
+ * Unsupported protocol versions return `400`; methods without MCP handlers
1052
+ * return `405`. Browser Origins are rejected unless listed in `allowedOrigins`.
649
1053
  *
650
1054
  * @see {@link layerStdio} for exposing the server over stdio
651
1055
  * @see {@link layer} for the base MCP server layer without a transport protocol
@@ -657,17 +1061,201 @@ export const layerHttp = (options: {
657
1061
  readonly name: string
658
1062
  readonly version: string
659
1063
  readonly path: HttpRouter.PathInput
1064
+ readonly protocols: Arr.NonEmptyReadonlyArray<McpProtocol.ProtocolAdapter>
1065
+ readonly allowedOrigins?: ReadonlyArray<string> | undefined
660
1066
  readonly extensions?: Record<`${string}/${string}`, unknown> | undefined
661
- }): Layer.Layer<McpServer | McpServerClient, never, HttpRouter.HttpRouter> =>
662
- layer(options).pipe(
663
- Layer.provide(RpcServer.layerProtocolHttp(options)),
1067
+ }): Layer.Layer<McpServer | McpServerClient, Cause.IllegalArgumentError, HttpRouter.HttpRouter> => {
1068
+ const protocolState = layerMcpProtocolState(options.protocols)
1069
+ const methodNotAllowedResponse = HttpServerResponse.empty({
1070
+ status: 405,
1071
+ headers: { allow: "POST" }
1072
+ })
1073
+ const methodNotAllowed = (request: HttpServerRequest.HttpServerRequest) =>
1074
+ Effect.succeed(
1075
+ request.headers.origin !== undefined &&
1076
+ !options.allowedOrigins?.includes(request.headers.origin)
1077
+ ? HttpServerResponse.empty({ status: 403 })
1078
+ : methodNotAllowedResponse
1079
+ )
1080
+ const routes = Layer.mergeAll(
1081
+ HttpRouter.add("GET", options.path, methodNotAllowed),
1082
+ HttpRouter.add("PUT", options.path, methodNotAllowed),
1083
+ HttpRouter.add("PATCH", options.path, methodNotAllowed),
1084
+ HttpRouter.add("DELETE", options.path, methodNotAllowed),
1085
+ HttpRouter.add("OPTIONS", options.path, methodNotAllowed)
1086
+ )
1087
+ return Layer.merge(layerWithProtocolState(options), routes).pipe(
1088
+ Layer.provide(layerMcpProtocolHttp(options)),
1089
+ Layer.provide(protocolState),
664
1090
  Layer.provide(RpcSerialization.layerJsonRpc())
665
1091
  )
1092
+ }
1093
+
1094
+ const layerMcpProtocolHttp = (options: {
1095
+ readonly path: HttpRouter.PathInput
1096
+ readonly allowedOrigins?: ReadonlyArray<string> | undefined
1097
+ }): Layer.Layer<
1098
+ RpcServer.Protocol,
1099
+ never,
1100
+ McpProtocolState | RpcSerialization.RpcSerialization | HttpRouter.HttpRouter
1101
+ > =>
1102
+ Layer.effect(RpcServer.Protocol)(Effect.gen(function*() {
1103
+ const state = yield* McpProtocolState
1104
+ const { httpEffect, protocol } = yield* RpcServer.makeProtocolWithHttpEffect
1105
+ const router = yield* HttpRouter.HttpRouter
1106
+ yield* router.add("POST", options.path, (request) => {
1107
+ if (
1108
+ request.headers.origin !== undefined &&
1109
+ !options.allowedOrigins?.includes(request.headers.origin)
1110
+ ) {
1111
+ return Effect.succeed(HttpServerResponse.empty({ status: 403 }))
1112
+ }
1113
+ const contentType = request.headers["content-type"]?.split(";", 1)[0]?.trim().toLowerCase()
1114
+ if (contentType !== "application/json") {
1115
+ return Effect.succeed(HttpServerResponse.empty({ status: 415 }))
1116
+ }
1117
+ const accepted = new Set<string>()
1118
+ for (const entry of request.headers.accept?.split(",") ?? []) {
1119
+ const [mediaType, ...parameters] = entry.split(";").map((part) => part.trim().toLowerCase())
1120
+ let quality = 1
1121
+ for (const parameter of parameters) {
1122
+ const [name, value] = parameter.split("=", 2).map((part) => part.trim())
1123
+ if (name === "q") {
1124
+ quality = value === undefined ? Number.NaN : Number(value)
1125
+ }
1126
+ }
1127
+ if (mediaType !== undefined && quality > 0 && quality <= 1) {
1128
+ accepted.add(mediaType)
1129
+ }
1130
+ }
1131
+ if (!accepted.has("application/json") || !accepted.has("text/event-stream")) {
1132
+ return Effect.succeed(HttpServerResponse.empty({ status: 406 }))
1133
+ }
1134
+ const protocolVersion = request.headers[MCP_PROTOCOL_VERSION_HEADER]
1135
+ if (
1136
+ protocolVersion !== undefined &&
1137
+ !state.protocolRegistry.protocols.some((protocol) => protocol.protocolVersion === protocolVersion)
1138
+ ) {
1139
+ return Effect.succeed(HttpServerResponse.empty({ status: 400 }))
1140
+ }
1141
+ return request.text.pipe(
1142
+ Effect.matchEffect({
1143
+ onFailure: () =>
1144
+ Effect.succeed(
1145
+ HttpServerResponse.jsonUnsafe({
1146
+ jsonrpc: "2.0",
1147
+ id: null,
1148
+ error: new ParseError({
1149
+ message: "Parse error"
1150
+ })
1151
+ })
1152
+ ),
1153
+ onSuccess: (body) => {
1154
+ return Effect.match(Schema.decodeUnknownEffect(Schema.UnknownFromJsonString)(body), {
1155
+ onFailure: () => ({
1156
+ _tag: "Error" as const,
1157
+ id: null,
1158
+ error: new ParseError({ message: "Parse error" })
1159
+ }),
1160
+ onSuccess: (input) => {
1161
+ if (Array.isArray(input)) {
1162
+ const sessionId = request.headers[MCP_SESSION_ID_HEADER]
1163
+ const session = sessionId === undefined ? undefined : state.sessions.bySessionId.get(sessionId)
1164
+ let selectedProtocol = session?.protocol ?? state.protocolRegistry.protocols[0]
1165
+ for (const entry of input) {
1166
+ if (
1167
+ Predicate.hasProperty(entry, "method") &&
1168
+ entry.method === "initialize" &&
1169
+ Predicate.hasProperty(entry, "params") &&
1170
+ Predicate.hasProperty(entry.params, "protocolVersion") &&
1171
+ typeof entry.params.protocolVersion === "string"
1172
+ ) {
1173
+ selectedProtocol = state.protocolRegistry.select(entry.params.protocolVersion)
1174
+ break
1175
+ }
1176
+ }
1177
+ if (!selectedProtocol.transport.acceptsJsonRpcBatches) {
1178
+ return { _tag: "HttpError" as const, status: 400 }
1179
+ }
1180
+ }
1181
+ const hasId = Predicate.hasProperty(input, "id")
1182
+ const id = hasId && (typeof input.id === "string" || typeof input.id === "number")
1183
+ ? input.id
1184
+ : null
1185
+ const isJsonRpc = Predicate.hasProperty(input, "jsonrpc") && input.jsonrpc === "2.0"
1186
+ const hasValidRequestId = hasId === false || typeof input.id === "string" ||
1187
+ typeof input.id === "number"
1188
+ const isRequest = isJsonRpc && hasValidRequestId &&
1189
+ Predicate.hasProperty(input, "method") && typeof input.method === "string"
1190
+ const hasValidResponseId = hasId &&
1191
+ (typeof input.id === "string" || typeof input.id === "number" || input.id === null)
1192
+ const hasResult = Predicate.hasProperty(input, "result")
1193
+ const hasError = Predicate.hasProperty(input, "error")
1194
+ const isResponse = isJsonRpc && hasValidResponseId && hasResult !== hasError
1195
+ const isInitialize = isRequest && input.method === "initialize"
1196
+ const sessionId = request.headers[MCP_SESSION_ID_HEADER]
1197
+ const session = sessionId === undefined ? undefined : state.sessions.bySessionId.get(sessionId)
1198
+ if (isInitialize && sessionId !== undefined) {
1199
+ return {
1200
+ _tag: "HttpError" as const,
1201
+ status: session === undefined ? 404 : 400
1202
+ }
1203
+ }
1204
+ if (!isInitialize && isRequest && session === undefined) {
1205
+ return {
1206
+ _tag: "HttpError" as const,
1207
+ status: sessionId === undefined ? 400 : 404
1208
+ }
1209
+ }
1210
+ if (
1211
+ session !== undefined &&
1212
+ session.protocol.transport.requiresVersionHeader &&
1213
+ protocolVersion !== session.protocol.protocolVersion
1214
+ ) {
1215
+ return { _tag: "HttpError" as const, status: 400 }
1216
+ }
1217
+ return isRequest || isResponse
1218
+ ? { _tag: "Success" as const }
1219
+ : {
1220
+ _tag: "Error" as const,
1221
+ id,
1222
+ error: new InvalidRequest({ message: "Invalid Request" })
1223
+ }
1224
+ }
1225
+ }).pipe(
1226
+ Effect.flatMap((decoded) =>
1227
+ decoded._tag === "HttpError"
1228
+ ? Effect.succeed(HttpServerResponse.empty({ status: decoded.status }))
1229
+ : decoded._tag === "Error"
1230
+ ? Effect.succeed(
1231
+ HttpServerResponse.jsonUnsafe({
1232
+ jsonrpc: "2.0",
1233
+ id: decoded.id,
1234
+ error: decoded.error
1235
+ })
1236
+ )
1237
+ : httpEffect
1238
+ )
1239
+ )
1240
+ }
1241
+ })
1242
+ )
1243
+ })
1244
+ return protocol
1245
+ }))
1246
+
1247
+ const INTERNAL_TOOL_ERROR_MESSAGE = "Tool execution failed due to an internal server error."
1248
+
1249
+ const toolErrorResult = (message: string): CallToolResult =>
1250
+ new CallToolResult({
1251
+ isError: true,
1252
+ content: [{ type: "text", text: message }]
1253
+ })
666
1254
 
667
1255
  /**
668
1256
  * Registers a `Toolkit` with the `McpServer`.
669
1257
  *
670
- * @category tools
1258
+ * @category handlers
671
1259
  * @since 4.0.0
672
1260
  */
673
1261
  export const registerToolkit: <Tools extends Record<string, Tool.Any>>(
@@ -689,10 +1277,13 @@ export const registerToolkit: <Tools extends Record<string, Tool.Any>>(
689
1277
  for (const tool of Object.values(built.tools)) {
690
1278
  const annotations = tool.annotations
691
1279
  const toolMeta = Context.getOrUndefined(annotations, Tool.Meta)
1280
+ const isDeclaredFailure = Schema.is(tool.failureSchema)
1281
+ const outputSchema = Tool.getJsonSchemaFromSchema(tool.successSchema)
692
1282
  const mcpTool = new McpTool({
693
1283
  name: tool.name,
694
1284
  description: Tool.getDescription(tool),
695
1285
  inputSchema: Tool.getJsonSchema(tool),
1286
+ ...(outputSchema.type === "object" ? { outputSchema } : {}),
696
1287
  annotations: {
697
1288
  ...(Context.getOption(tool.annotations, Tool.Title).pipe(
698
1289
  Option.map((title) => ({ title })),
@@ -709,32 +1300,41 @@ export const registerToolkit: <Tools extends Record<string, Tool.Any>>(
709
1300
  tool: mcpTool,
710
1301
  annotations,
711
1302
  handle(payload) {
712
- return built.handle(tool.name as any, payload).pipe(
1303
+ return built.handle(tool.name as keyof Tools, payload).pipe(
713
1304
  Stream.unwrap,
714
1305
  Stream.run(Sink.last()),
715
1306
  Effect.flatMap(Effect.fromOption),
716
- Effect.provideContext(services as Context.Context<any>),
717
- Effect.matchCause({
718
- onFailure: (cause) =>
719
- new CallToolResult({
720
- isError: true,
721
- content: [{
722
- type: "text",
723
- text: Cause.pretty(cause)
724
- }]
725
- }),
726
- onSuccess: (result: any) =>
727
- new CallToolResult({
728
- isError: false,
729
- structuredContent: typeof result.encodedResult === "object" ? result.encodedResult : undefined,
730
- content: [{
731
- type: "text",
732
- text: JSON.stringify(result.encodedResult)
733
- }]
734
- })
1307
+ Effect.provideContext(
1308
+ services as Context.Context<Tool.HandlerServices<Tools[keyof Tools]>>
1309
+ ),
1310
+ Effect.map((result) =>
1311
+ new CallToolResult({
1312
+ isError: false,
1313
+ structuredContent: typeof result.encodedResult === "object" ? result.encodedResult : undefined,
1314
+ content: result.encodedResult === undefined ? [] : [{
1315
+ type: "text",
1316
+ text: JSON.stringify(result.encodedResult)
1317
+ }]
1318
+ })
1319
+ ),
1320
+ Effect.tapCause(Effect.logError),
1321
+ Effect.catch((error) => {
1322
+ if (AiError.isAiError(error)) {
1323
+ const reason = (error as AiError.AiError).reason
1324
+ return reason._tag === "ToolParameterValidationError"
1325
+ ? Effect.fail(new InvalidParams({ message: reason.message }))
1326
+ : Effect.succeed(toolErrorResult(INTERNAL_TOOL_ERROR_MESSAGE))
1327
+ }
1328
+ if (isDeclaredFailure(error)) {
1329
+ const message = error instanceof Error
1330
+ ? error.message
1331
+ : INTERNAL_TOOL_ERROR_MESSAGE
1332
+ return Effect.succeed(toolErrorResult(message))
1333
+ }
1334
+ return Effect.succeed(toolErrorResult(INTERNAL_TOOL_ERROR_MESSAGE))
735
1335
  }),
736
- Effect.tapCause(Effect.log)
737
- ) as any
1336
+ Effect.catchDefect(() => Effect.succeed(toolErrorResult(INTERNAL_TOOL_ERROR_MESSAGE)))
1337
+ )
738
1338
  }
739
1339
  })
740
1340
  }
@@ -743,7 +1343,7 @@ export const registerToolkit: <Tools extends Record<string, Tool.Any>>(
743
1343
  /**
744
1344
  * Registers an `AiToolkit` with the `McpServer`.
745
1345
  *
746
- * @category tools
1346
+ * @category layers
747
1347
  * @since 4.0.0
748
1348
  */
749
1349
  export const toolkit = <Tools extends Record<string, Tool.Any>>(
@@ -767,7 +1367,11 @@ export const toolkit = <Tools extends Record<string, Tool.Any>>(
767
1367
  export type ValidateCompletions<Completions, Keys extends string> =
768
1368
  & Completions
769
1369
  & {
770
- readonly [K in keyof Completions]: K extends Keys ? (input: string) => any : never
1370
+ readonly [K in keyof Completions]: K extends Keys ? (
1371
+ input: string,
1372
+ context: CompletionContext
1373
+ ) => any
1374
+ : never
771
1375
  }
772
1376
 
773
1377
  /**
@@ -786,7 +1390,10 @@ export type ResourceCompletions<Schemas extends ReadonlyArray<Schema.Constraint>
786
1390
  readonly [
787
1391
  K in Extract<keyof Schemas, `${number}`> as Schemas[K] extends Param<infer Id, infer _S> ? Id
788
1392
  : `param${K}`
789
- ]: (input: string) => Effect.Effect<Array<Schemas[K]["Type"]>, any, any>
1393
+ ]: (
1394
+ input: string,
1395
+ context: CompletionContext
1396
+ ) => Effect.Effect<Array<Schemas[K]["Type"]>, any, any>
790
1397
  }
791
1398
 
792
1399
  /**
@@ -800,7 +1407,7 @@ export type ResourceCompletions<Schemas extends ReadonlyArray<Schema.Constraint>
800
1407
  *
801
1408
  * @see {@link resource} for the layer-based resource registration wrapper
802
1409
  *
803
- * @category resources
1410
+ * @category handlers
804
1411
  * @since 4.0.0
805
1412
  */
806
1413
  export const registerResource: {
@@ -815,7 +1422,7 @@ export const registerResource: {
815
1422
  *
816
1423
  * @see {@link resource} for the layer-based resource registration wrapper
817
1424
  *
818
- * @category resources
1425
+ * @category handlers
819
1426
  * @since 4.0.0
820
1427
  */
821
1428
  <E, R>(
@@ -845,7 +1452,7 @@ export const registerResource: {
845
1452
  *
846
1453
  * @see {@link resource} for the layer-based resource registration wrapper
847
1454
  *
848
- * @category resources
1455
+ * @category handlers
849
1456
  * @since 4.0.0
850
1457
  */
851
1458
  <const Schemas extends ReadonlyArray<Schema.Constraint>>(segments: TemplateStringsArray, ...schemas: Schemas): <
@@ -923,7 +1530,15 @@ export const registerResource: {
923
1530
  readonly mimeType?: string | undefined
924
1531
  readonly audience?: ReadonlyArray<"user" | "assistant"> | undefined
925
1532
  readonly priority?: number | undefined
926
- readonly completion?: Record<string, (input: string) => Effect.Effect<any>> | undefined
1533
+ readonly completion?:
1534
+ | Record<
1535
+ string,
1536
+ (
1537
+ input: string,
1538
+ context: CompletionContext
1539
+ ) => Effect.Effect<any>
1540
+ >
1541
+ | undefined
927
1542
  readonly content: (uri: string, ...params: Array<any>) => Effect.Effect<
928
1543
  typeof ReadResourceResult.Type | string | Uint8Array,
929
1544
  E,
@@ -939,11 +1554,20 @@ export const registerResource: {
939
1554
  uriTemplate: uriPath,
940
1555
  annotations: options!
941
1556
  })
942
- const completions: Record<string, (input: string) => Effect.Effect<CompleteResult, InternalError>> = {}
1557
+ const completions: Record<
1558
+ string,
1559
+ (
1560
+ input: string,
1561
+ context: CompletionContext
1562
+ ) => Effect.Effect<CompleteResult, InternalError>
1563
+ > = Object.create(null)
943
1564
  for (const [param, handle] of Object.entries(options.completion ?? {})) {
944
1565
  const encodeArray = Schema.encodeUnknownEffect(Schema.Array(params[param]))
945
- const handler = (input: string) =>
946
- handle(input).pipe(
1566
+ const handler = (
1567
+ input: string,
1568
+ context: CompletionContext
1569
+ ) =>
1570
+ handle(input, context).pipe(
947
1571
  Effect.flatMap(encodeArray),
948
1572
  Effect.map((values) => ({
949
1573
  completion: {
@@ -992,7 +1616,7 @@ export const registerResource: {
992
1616
  *
993
1617
  * @see {@link registerResource} for the Effect-level resource registration API
994
1618
  *
995
- * @category resources
1619
+ * @category layers
996
1620
  * @since 4.0.0
997
1621
  */
998
1622
  export const resource: {
@@ -1005,7 +1629,7 @@ export const resource: {
1005
1629
  *
1006
1630
  * @see {@link registerResource} for the Effect-level resource registration API
1007
1631
  *
1008
- * @category resources
1632
+ * @category layers
1009
1633
  * @since 4.0.0
1010
1634
  */
1011
1635
  <E, R>(
@@ -1032,7 +1656,7 @@ export const resource: {
1032
1656
  *
1033
1657
  * @see {@link registerResource} for the Effect-level resource registration API
1034
1658
  *
1035
- * @category resources
1659
+ * @category layers
1036
1660
  * @since 4.0.0
1037
1661
  */
1038
1662
  <const Schemas extends ReadonlyArray<Schema.Constraint>>(segments: TemplateStringsArray, ...schemas: Schemas): <
@@ -1091,7 +1715,7 @@ export const resource: {
1091
1715
  *
1092
1716
  * @see {@link prompt} for the layer-based prompt registration wrapper
1093
1717
  *
1094
- * @category prompts
1718
+ * @category handlers
1095
1719
  * @since 4.0.0
1096
1720
  */
1097
1721
  export const registerPrompt = <
@@ -1099,7 +1723,10 @@ export const registerPrompt = <
1099
1723
  R,
1100
1724
  Params extends Schema.Struct.Fields = {},
1101
1725
  const Completions extends {
1102
- readonly [K in keyof Params]?: (input: string) => Effect.Effect<Array<Params[K]>, any, any>
1726
+ readonly [K in keyof Params]?: (
1727
+ input: string,
1728
+ context: CompletionContext
1729
+ ) => Effect.Effect<Array<Params[K]>, any, any>
1103
1730
  } = {}
1104
1731
  >(
1105
1732
  options: {
@@ -1128,18 +1755,30 @@ export const registerPrompt = <
1128
1755
  const decode = options.parameters
1129
1756
  ? Schema.decodeEffect(Schema.Struct(props))
1130
1757
  : () => Effect.succeed({} as Params)
1131
- const completion: Record<string, (input: string) => Effect.Effect<any>> = options.completion ?? {}
1758
+ const completion: Record<
1759
+ string,
1760
+ (
1761
+ input: string,
1762
+ context: CompletionContext
1763
+ ) => Effect.Effect<any>
1764
+ > = options.completion ?? {}
1132
1765
  return Effect.gen(function*() {
1133
1766
  const registry = yield* McpServer
1134
1767
  const services = yield* Effect.context<Exclude<R | Schema.Struct.DecodingServices<Params>, McpServerClient>>()
1135
1768
  const completions: Record<
1136
1769
  string,
1137
- (input: string) => Effect.Effect<CompleteResult, InternalError, McpServerClient>
1138
- > = {}
1770
+ (
1771
+ input: string,
1772
+ context: CompletionContext
1773
+ ) => Effect.Effect<CompleteResult, InternalError, McpServerClient>
1774
+ > = Object.create(null)
1139
1775
  for (const [param, handle] of Object.entries(completion)) {
1140
1776
  const encodeArray = Schema.encodeEffect(Schema.Array(props[param]))
1141
- const handler = (input: string) =>
1142
- handle(input).pipe(
1777
+ const handler = (
1778
+ input: string,
1779
+ context: CompletionContext
1780
+ ) =>
1781
+ handle(input, context).pipe(
1143
1782
  Effect.flatMap(encodeArray),
1144
1783
  Effect.map((values) => ({
1145
1784
  completion: {
@@ -1163,20 +1802,23 @@ export const registerPrompt = <
1163
1802
  handle: (params) =>
1164
1803
  decode(params).pipe(
1165
1804
  Effect.mapError((error) => new InvalidParams({ message: error.message })),
1166
- Effect.flatMap((params) => options.content(params as any)),
1167
- Effect.map((messages) => {
1168
- messages = typeof messages === "string" ?
1169
- [{
1170
- role: "user",
1171
- content: TextContent.make({ text: messages })
1172
- }] :
1173
- messages
1174
- return new GetPromptResult({ messages, description: prompt.description })
1175
- }),
1176
- Effect.catchCause((cause) => {
1177
- const prettyError = Cause.prettyErrors(cause)[0]
1178
- return Effect.fail(new InternalError({ message: prettyError.message }))
1179
- }),
1805
+ Effect.flatMap((params) =>
1806
+ options.content(params as any).pipe(
1807
+ Effect.map((messages) => {
1808
+ messages = typeof messages === "string" ?
1809
+ [{
1810
+ role: "user",
1811
+ content: TextContent.make({ text: messages })
1812
+ }] :
1813
+ messages
1814
+ return new GetPromptResult({ messages, description: prompt.description })
1815
+ }),
1816
+ Effect.catchCause((cause) => {
1817
+ const prettyError = Cause.prettyErrors(cause)[0]
1818
+ return Effect.fail(new InternalError({ message: prettyError.message }))
1819
+ })
1820
+ )
1821
+ ),
1180
1822
  Effect.provideContext(services as Context.Context<unknown>)
1181
1823
  )
1182
1824
  })
@@ -1198,7 +1840,7 @@ export const registerPrompt = <
1198
1840
  *
1199
1841
  * @see {@link registerPrompt} for the Effect-level prompt registration API
1200
1842
  *
1201
- * @category prompts
1843
+ * @category layers
1202
1844
  * @since 4.0.0
1203
1845
  */
1204
1846
  export const prompt = <
@@ -1206,7 +1848,10 @@ export const prompt = <
1206
1848
  R,
1207
1849
  Params extends Schema.Struct.Fields = {},
1208
1850
  const Completions extends {
1209
- readonly [K in keyof Params]?: (input: string) => Effect.Effect<Array<Params[K]["Type"]>, any, any>
1851
+ readonly [K in keyof Params]?: (
1852
+ input: string,
1853
+ context: CompletionContext
1854
+ ) => Effect.Effect<Array<Params[K]["Type"]>, any, any>
1210
1855
  } = {}
1211
1856
  >(
1212
1857
  options: {
@@ -1233,7 +1878,7 @@ export const prompt = <
1233
1878
  * Accepted content is decoded with the supplied schema, declined requests fail
1234
1879
  * with `ElicitationDeclined`, and canceled requests interrupt the effect.
1235
1880
  *
1236
- * @category elicitation
1881
+ * @category accessors
1237
1882
  * @since 4.0.0
1238
1883
  */
1239
1884
  export const elicit: <S extends Schema.ConstraintEncoder<Record<string, unknown>, unknown>>(options: {
@@ -1270,7 +1915,7 @@ export const elicit: <S extends Schema.ConstraintEncoder<Record<string, unknown>
1270
1915
  /**
1271
1916
  * Accesses the current client's capabilities.
1272
1917
  *
1273
- * @category capabilities
1918
+ * @category accessors
1274
1919
  * @since 4.0.0
1275
1920
  */
1276
1921
  export const clientCapabilities: Effect.Effect<
@@ -1300,7 +1945,7 @@ const makeUriMatcher = <A>() => {
1300
1945
  const compileUriTemplate = (segments: TemplateStringsArray, ...schemas: ReadonlyArray<Schema.Constraint>) => {
1301
1946
  let routerPath = segments[0].replace(":", "::")
1302
1947
  let uriPath = segments[0]
1303
- const params: Record<string, Schema.Top> = {}
1948
+ const params: Record<string, Schema.Top> = Object.create(null)
1304
1949
  let pathSchema = Schema.Tuple([]) as Schema.Top
1305
1950
  if (schemas.length > 0) {
1306
1951
  const arr: Array<Schema.Top> = []
@@ -1330,141 +1975,190 @@ const layerHandlers = (serverInfo: {
1330
1975
  readonly version: string
1331
1976
  readonly extensions?: Record<`${string}/${string}`, unknown> | undefined
1332
1977
  }, options: {
1333
- readonly clientSessions: Map<string, typeof Initialize.payloadSchema.Type>
1978
+ readonly sessions: Sessions
1979
+ readonly protocolRegistry: McpProtocolRegistry.ProtocolRegistry<McpProtocol.ProtocolAdapter>
1334
1980
  }) =>
1335
- ClientRpcs.toLayer(
1981
+ Layer.effectContext(
1336
1982
  Effect.gen(function*() {
1337
1983
  const server = yield* McpServer
1338
- let currentLogLevel = yield* CurrentLogLevel
1339
-
1340
- return ClientRpcs.of({
1341
- // Requests
1342
- ping: () => Effect.succeed({}),
1343
- initialize(params, { client }) {
1344
- const requestedVersion = SUPPORTED_PROTOCOL_VERSIONS.includes(params.protocolVersion)
1345
- ? params.protocolVersion
1346
- : LATEST_PROTOCOL_VERSION
1347
- if (requestedVersion !== params.protocolVersion) {
1348
- params = {
1349
- ...params,
1350
- protocolVersion: requestedVersion
1984
+ const currentLogLevel = yield* CurrentLogLevel
1985
+ const contextMap = new Map<string, unknown>()
1986
+
1987
+ for (const protocol of options.protocolRegistry.protocols) {
1988
+ const selectedProtocol = protocol
1989
+ const wireHandlers = ClientRpcs.of({
1990
+ // Requests
1991
+ ping: () => Effect.succeed({}),
1992
+ initialize(params, { client }) {
1993
+ const capabilities: Types.DeepMutable<typeof ServerCapabilities.Type> = {
1994
+ completions: {},
1995
+ logging: {}
1351
1996
  }
1352
- }
1353
- const capabilities: Types.DeepMutable<typeof ServerCapabilities.Type> = {
1354
- completions: {}
1355
- }
1356
- if (server.tools.length > 0) {
1357
- capabilities.tools = { listChanged: true }
1358
- }
1359
- if (server.resources.length > 0 || server.resourceTemplates.length > 0) {
1360
- capabilities.resources = {
1361
- listChanged: true,
1362
- subscribe: false
1997
+ if (server.tools.length > 0) {
1998
+ capabilities.tools = { listChanged: true }
1363
1999
  }
1364
- }
1365
- if (server.prompts.length > 0) {
1366
- capabilities.prompts = { listChanged: true }
1367
- }
1368
- if (serverInfo.extensions) {
1369
- capabilities.extensions = serverInfo.extensions as any
1370
- }
1371
- return Effect.withFiber((fiber) => {
1372
- const httpRequest = Context.getOrUndefined(fiber.context, HttpServerRequest.HttpServerRequest)
1373
- if (httpRequest) {
1374
- const sessionId = crypto.randomUUID()
1375
- options.clientSessions.set(sessionId, params)
1376
- appendPreResponseHandlerUnsafe(httpRequest, (_req, res) =>
1377
- Effect.succeed(HttpServerResponse.setHeaders(res, {
1378
- [mcpSessionIdHeader]: sessionId,
1379
- [mcpProtocolVersionHeader]: requestedVersion
1380
- })))
1381
- } else {
1382
- options.clientSessions.set(String(client.id), params)
2000
+ if (server.resources.length > 0 || server.resourceTemplates.length > 0) {
2001
+ capabilities.resources = {
2002
+ listChanged: true,
2003
+ subscribe: true
2004
+ }
1383
2005
  }
1384
- return Effect.succeed({
1385
- capabilities,
1386
- serverInfo,
1387
- protocolVersion: requestedVersion
1388
- })
1389
- })
1390
- },
1391
- "completion/complete": (r) =>
1392
- server.completion(r).pipe(
1393
- Effect.provideService(CurrentLogLevel, currentLogLevel)
1394
- ),
1395
- "logging/setLevel": ({ level }) =>
1396
- Effect.sync(() => {
1397
- switch (level) {
1398
- case "notice":
1399
- case "info":
1400
- currentLogLevel = "Info"
1401
- break
1402
- case "error":
1403
- currentLogLevel = "Error"
1404
- break
1405
- case "debug":
1406
- currentLogLevel = "Debug"
1407
- break
1408
- case "warning":
1409
- currentLogLevel = "Warn"
1410
- break
1411
- case "critical":
1412
- case "alert":
1413
- case "emergency":
1414
- currentLogLevel = "Fatal"
1415
- break
2006
+ if (server.prompts.length > 0) {
2007
+ capabilities.prompts = { listChanged: true }
1416
2008
  }
1417
- }),
1418
- "prompts/get": (r) =>
1419
- server.getPromptResult(r).pipe(
1420
- Effect.provideService(CurrentLogLevel, currentLogLevel)
1421
- ),
1422
- "prompts/list": (_, { client, headers }) =>
1423
- Effect.sync(() => {
1424
- const initialized = getInitializedClient(options.clientSessions, client.id, headers)
1425
- return new ListPromptsResult({ prompts: filterByClient(initialized, server.prompts, "prompt") })
1426
- }),
1427
- "resources/list": (_, { client, headers }) =>
1428
- Effect.sync(() => {
1429
- const initialized = getInitializedClient(options.clientSessions, client.id, headers)
1430
- return new ListResourcesResult({ resources: filterByClient(initialized, server.resources, "resource") })
1431
- }),
1432
- "resources/read": ({ uri }) =>
1433
- server.findResource(uri).pipe(
1434
- Effect.provideService(CurrentLogLevel, currentLogLevel)
1435
- ),
1436
- "resources/subscribe": () =>
1437
- InternalError.notImplemented,
1438
- "resources/unsubscribe": () =>
1439
- InternalError.notImplemented,
1440
- "resources/templates/list": (_, { client, headers }) =>
1441
- Effect.sync(() => {
1442
- const initialized = getInitializedClient(options.clientSessions, client.id, headers)
1443
- return new ListResourceTemplatesResult({
1444
- resourceTemplates: filterByClient(initialized, server.resourceTemplates, "template")
1445
- })
1446
- }),
1447
- "tools/call": (r) =>
1448
- server.callTool(r).pipe(
1449
- Effect.provideService(CurrentLogLevel, currentLogLevel)
1450
- ),
1451
- "tools/list": (_, { client, headers }) =>
1452
- Effect.sync(() => {
1453
- const initialized = getInitializedClient(options.clientSessions, client.id, headers)
1454
- return new ListToolsResult({
1455
- tools: filterByClient(initialized, server.tools, "tool")
2009
+ if (serverInfo.extensions) {
2010
+ capabilities.extensions = serverInfo.extensions as any
2011
+ }
2012
+ return Effect.withFiber((fiber) => {
2013
+ const httpRequest = Context.getOrUndefined(fiber.context, HttpServerRequest.HttpServerRequest)
2014
+ if (httpRequest !== undefined && capabilities.resources !== undefined) {
2015
+ capabilities.resources.subscribe = false
2016
+ }
2017
+ const session: Session = {
2018
+ initializePayload: params,
2019
+ protocol: selectedProtocol,
2020
+ resourceSubscriptions: capabilities.resources?.subscribe === true ? new Set() : undefined,
2021
+ logLevel: { _tag: "Effect", level: currentLogLevel }
2022
+ }
2023
+ if (httpRequest) {
2024
+ const sessionId = crypto.randomUUID()
2025
+ options.sessions.bySessionId.set(sessionId, session)
2026
+ appendPreResponseHandlerUnsafe(httpRequest, (_req, res) =>
2027
+ Effect.succeed(HttpServerResponse.setHeaders(res, {
2028
+ [MCP_SESSION_ID_HEADER]: sessionId,
2029
+ [MCP_PROTOCOL_VERSION_HEADER]: selectedProtocol.protocolVersion
2030
+ })))
2031
+ } else {
2032
+ options.sessions.byClientId.set(client.id, session)
2033
+ }
2034
+ return Effect.succeed({
2035
+ capabilities,
2036
+ serverInfo,
2037
+ protocolVersion: selectedProtocol.protocolVersion
2038
+ })
1456
2039
  })
1457
- }),
2040
+ },
2041
+ "completion/complete": (r) =>
2042
+ server.completion(r),
2043
+ "logging/setLevel": ({ level }, { client, headers }) =>
2044
+ Effect.sync(() => {
2045
+ const session = getClientSession(options.sessions, client.id, headers)
2046
+ if (session) {
2047
+ session.logLevel = { _tag: "Mcp", level }
2048
+ }
2049
+ return {}
2050
+ }),
2051
+ "prompts/get": (r) =>
2052
+ server.getPromptResult(r),
2053
+ "prompts/list": (_, { client, headers }) =>
2054
+ Effect.sync(() => {
2055
+ const initialized = getClientSession(options.sessions, client.id, headers)?.initializePayload
2056
+ return new ListPromptsResult({ prompts: filterByClient(initialized, server.prompts, "prompt") })
2057
+ }),
2058
+ "resources/list": (_, { client, headers }) =>
2059
+ Effect.sync(() => {
2060
+ const initialized = getClientSession(options.sessions, client.id, headers)?.initializePayload
2061
+ return new ListResourcesResult({ resources: filterByClient(initialized, server.resources, "resource") })
2062
+ }),
2063
+ "resources/read": ({ uri }) => server.findResource(uri),
2064
+ "resources/subscribe": ({ uri }, { client, headers }) =>
2065
+ Effect.gen(function*() {
2066
+ const subscriptions = getClientSession(
2067
+ options.sessions,
2068
+ client.id,
2069
+ headers
2070
+ )?.resourceSubscriptions
2071
+ if (subscriptions === undefined) {
2072
+ return yield* new MethodNotFound({
2073
+ message: "Resource subscriptions are not supported"
2074
+ })
2075
+ }
2076
+ subscriptions.add(uri)
2077
+ return {}
2078
+ }),
2079
+ "resources/unsubscribe": ({ uri }, { client, headers }) =>
2080
+ Effect.gen(function*() {
2081
+ const subscriptions = getClientSession(
2082
+ options.sessions,
2083
+ client.id,
2084
+ headers
2085
+ )?.resourceSubscriptions
2086
+ if (subscriptions === undefined) {
2087
+ return yield* new MethodNotFound({
2088
+ message: "Resource subscriptions are not supported"
2089
+ })
2090
+ }
2091
+ subscriptions.delete(uri)
2092
+ return {}
2093
+ }),
2094
+ "resources/templates/list": (_, { client, headers }) =>
2095
+ Effect.sync(() => {
2096
+ const initialized = getClientSession(options.sessions, client.id, headers)?.initializePayload
2097
+ return new ListResourceTemplatesResult({
2098
+ resourceTemplates: filterByClient(initialized, server.resourceTemplates, "template")
2099
+ })
2100
+ }),
2101
+ "tools/call": (r) => server.callTool(r),
2102
+ "tools/list": (_, { client, headers }) =>
2103
+ Effect.sync(() => {
2104
+ const initialized = getClientSession(options.sessions, client.id, headers)?.initializePayload
2105
+ return new ListToolsResult({
2106
+ tools: filterByClient(initialized, server.tools, "tool")
2107
+ })
2108
+ }),
1458
2109
 
1459
- // Notifications
1460
- "notifications/cancelled": (_) => Effect.void,
1461
- "notifications/initialized": (_) => Effect.void,
1462
- "notifications/progress": (_) => Effect.void,
1463
- "notifications/roots/list_changed": (_) => Effect.void
1464
- })
2110
+ // Notifications
2111
+ "notifications/cancelled": (_) => Effect.void,
2112
+ "notifications/initialized": (_, { client, headers }) =>
2113
+ Effect.sync(() => {
2114
+ server.initializedClients.add(client.id)
2115
+ const session = getClientSession(options.sessions, client.id, headers)
2116
+ if (session) {
2117
+ options.sessions.byClientId.set(client.id, session)
2118
+ }
2119
+ }),
2120
+ "notifications/progress": (_) => Effect.void,
2121
+ "notifications/roots/list_changed": (_) => Effect.void
2122
+ })
2123
+ yield* addProtocolHandlers(
2124
+ options.protocolRegistry,
2125
+ selectedProtocol,
2126
+ selectedProtocol.clientRpcs,
2127
+ wireHandlers,
2128
+ contextMap
2129
+ )
2130
+ }
2131
+ return Context.makeUnsafe(contextMap)
1465
2132
  })
1466
2133
  )
1467
2134
 
2135
+ const addProtocolHandlers = Effect.fnUntraced(function*<
2136
+ ClientRpcs extends Rpc.Any
2137
+ >(
2138
+ registry: McpProtocolRegistry.ProtocolRegistry<McpProtocol.ProtocolAdapter>,
2139
+ protocol: McpProtocol.ProtocolAdapter,
2140
+ clientRpcs: RpcGroup.RpcGroup<ClientRpcs>,
2141
+ handlers: RpcGroup.HandlersFrom<ClientRpcs>,
2142
+ contextMap: Map<string, unknown>
2143
+ ) {
2144
+ const handlerContext = yield* clientRpcs.toHandlers(handlers)
2145
+ for (const rpcDefinition of clientRpcs.requests.values()) {
2146
+ const routed = registry.routeClientRequest(protocol, {
2147
+ _tag: "Request",
2148
+ id: 0,
2149
+ tag: rpcDefinition._tag,
2150
+ payload: undefined,
2151
+ headers: []
2152
+ })
2153
+ const namespacedRpc = registry.clientRpcs.requests.get(routed.tag)
2154
+ const handler = handlerContext.mapUnsafe.get(rpcDefinition.key)
2155
+ if (namespacedRpc === undefined || handler === undefined) {
2156
+ return yield* Effect.die(`MCP handler registration invariant failed for ${routed.tag}`)
2157
+ }
2158
+ contextMap.set(namespacedRpc.key, handler)
2159
+ }
2160
+ })
2161
+
1468
2162
  const resolveResourceContent = (
1469
2163
  uri: string,
1470
2164
  content: typeof ReadResourceResult.Type | string | Uint8Array
@@ -1511,14 +2205,74 @@ const filterByClient = <
1511
2205
  return out
1512
2206
  }
1513
2207
 
1514
- const getInitializedClient = (
1515
- sessions: Map<string, typeof Initialize.payloadSchema.Type>,
2208
+ const getClientSession = (
2209
+ sessions: Sessions,
1516
2210
  clientId: number,
1517
2211
  headers: Headers.Headers
1518
2212
  ) => {
1519
- const sessionId = headers[mcpSessionIdHeader]
2213
+ const sessionId = headers[MCP_SESSION_ID_HEADER]
1520
2214
  if (sessionId === undefined) {
1521
- return sessions.get(String(clientId))
2215
+ return sessions.byClientId.get(clientId)
1522
2216
  }
1523
- return sessions.get(sessionId)
2217
+ return sessions.bySessionId.get(sessionId)
2218
+ }
2219
+
2220
+ const mcpLogLevels: Record<LoggingLevel, {
2221
+ readonly effect: LogLevel.LogLevel
2222
+ readonly order: number
2223
+ }> = {
2224
+ debug: { effect: "Debug", order: 0 },
2225
+ info: { effect: "Info", order: 1 },
2226
+ notice: { effect: "Info", order: 2 },
2227
+ warning: { effect: "Warn", order: 3 },
2228
+ error: { effect: "Error", order: 4 },
2229
+ critical: { effect: "Fatal", order: 5 },
2230
+ alert: { effect: "Fatal", order: 6 },
2231
+ emergency: { effect: "Fatal", order: 7 }
1524
2232
  }
2233
+
2234
+ const effectLogLevel = (logLevel: SessionLogLevel | undefined): LogLevel.LogLevel =>
2235
+ logLevel?._tag === "Mcp" ? mcpLogLevels[logLevel.level].effect : logLevel?.level ?? "Info"
2236
+
2237
+ const isMcpLogLevelEnabled = (
2238
+ level: LoggingLevel,
2239
+ minimum: SessionLogLevel | undefined
2240
+ ): boolean =>
2241
+ minimum?._tag === "Mcp"
2242
+ ? mcpLogLevels[level].order >= mcpLogLevels[minimum.level].order
2243
+ : LogLevel.isGreaterThanOrEqualTo(mcpLogLevels[level].effect, minimum?.level ?? "Info")
2244
+
2245
+ const getOfferedProtocolVersion = (payload: unknown): string =>
2246
+ typeof payload === "object" &&
2247
+ payload !== null &&
2248
+ "protocolVersion" in payload &&
2249
+ typeof payload.protocolVersion === "string"
2250
+ ? payload.protocolVersion
2251
+ : ""
2252
+
2253
+ const protocolForInternalTag = (
2254
+ registry: McpProtocolRegistry.ProtocolRegistry<McpProtocol.ProtocolAdapter>,
2255
+ tag: string
2256
+ ): McpProtocol.ProtocolAdapter => {
2257
+ for (const protocol of registry.protocols) {
2258
+ const routed = registry.routeClientRequest(protocol, {
2259
+ _tag: "Request",
2260
+ id: 0,
2261
+ tag: "",
2262
+ payload: undefined,
2263
+ headers: []
2264
+ })
2265
+ if (tag.startsWith(routed.tag)) {
2266
+ return protocol
2267
+ }
2268
+ }
2269
+ return registry.protocols[0]
2270
+ }
2271
+
2272
+ const getProtocolForClient = (
2273
+ clientProtocols: Map<number, McpProtocol.ProtocolAdapter>,
2274
+ clientId: number,
2275
+ registry: McpProtocolRegistry.ProtocolRegistry<McpProtocol.ProtocolAdapter>
2276
+ ): McpProtocol.ProtocolAdapter =>
2277
+ clientProtocols.get(clientId) ??
2278
+ registry.protocols[0]