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

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