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