effect 4.0.0-beta.99 → 4.0.0-rc.109
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +395 -0
- package/CLAUDE.md +395 -0
- package/README.md +19 -23
- package/ai-docs/README.md +44 -0
- package/ai-docs/package.json +36 -0
- package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
- package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
- package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
- package/ai-docs/src/01_effect/01_basics/index.md +5 -0
- package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
- package/ai-docs/src/01_effect/02_schema/index.md +7 -0
- package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
- package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
- package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
- package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
- package/ai-docs/src/01_effect/03_services/index.md +5 -0
- package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
- package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
- package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
- package/ai-docs/src/01_effect/04_errors/index.md +1 -0
- package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
- package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
- package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
- package/ai-docs/src/01_effect/05_resources/index.md +3 -0
- package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
- package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
- package/ai-docs/src/01_effect/06_running/index.md +1 -0
- package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
- package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
- package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
- package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
- package/ai-docs/src/03_stream/30_encoding.ts +165 -0
- package/ai-docs/src/03_stream/index.md +4 -0
- package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
- package/ai-docs/src/04_integration/index.md +5 -0
- package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
- package/ai-docs/src/05_batching/index.md +3 -0
- package/ai-docs/src/06_schedule/10_schedules.ts +110 -0
- package/ai-docs/src/06_schedule/index.md +3 -0
- package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
- package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
- package/ai-docs/src/07_datetime/index.md +5 -0
- package/ai-docs/src/08_observability/10_logging.ts +66 -0
- package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
- package/ai-docs/src/08_observability/index.md +7 -0
- package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
- package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
- package/ai-docs/src/09_testing/index.md +1 -0
- package/ai-docs/src/10_predicate/01_basics.ts +14 -0
- package/ai-docs/src/10_predicate/index.md +9 -0
- package/ai-docs/src/40_sql/10_basics.ts +175 -0
- package/ai-docs/src/40_sql/index.md +6 -0
- package/ai-docs/src/50_http-client/10_basics.ts +102 -0
- package/ai-docs/src/50_http-client/index.md +3 -0
- package/ai-docs/src/51_http-server/10_basics.ts +118 -0
- package/ai-docs/src/51_http-server/20_testing.ts +100 -0
- package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
- package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
- package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
- package/ai-docs/src/51_http-server/fixtures/api/Users.ts +107 -0
- package/ai-docs/src/51_http-server/fixtures/domain/User.ts +21 -0
- package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
- package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +37 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +80 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users.ts +183 -0
- package/ai-docs/src/51_http-server/index.md +3 -0
- package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
- package/ai-docs/src/60_child-process/index.md +3 -0
- package/ai-docs/src/70_cli/10_basics.ts +160 -0
- package/ai-docs/src/70_cli/index.md +5 -0
- package/ai-docs/src/71_ai/10_language-model.ts +156 -0
- package/ai-docs/src/71_ai/20_tools.ts +226 -0
- package/ai-docs/src/71_ai/30_chat.ts +158 -0
- package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
- package/ai-docs/src/71_ai/index.md +5 -0
- package/ai-docs/src/80_cluster/10_entities.ts +97 -0
- package/ai-docs/src/80_cluster/index.md +4 -0
- package/ai-docs/src/index.md +10 -0
- package/ai-docs/tsconfig.json +24 -0
- package/dist/Array.d.ts +971 -1037
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +462 -412
- 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.d.ts +3 -3
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +4 -3
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +409 -256
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +213 -134
- 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 +756 -769
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +588 -449
- 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 +226 -174
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +361 -267
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +229 -71
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +164 -95
- 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 +160 -277
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +179 -236
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +144 -176
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +227 -162
- 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 +24 -39
- 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 +18 -24
- 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 +110 -98
- 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 +157 -188
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +3157 -3360
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +1457 -1574
- 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 +39 -23
- 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 +52 -28
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +51 -27
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +86 -55
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +8 -29
- 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 +83 -147
- 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 +109 -75
- 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 +86 -60
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +154 -265
- 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 +24 -32
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +55 -60
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +106 -148
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +81 -62
- 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 +19 -18
- package/dist/Inspectable.d.ts.map +1 -1
- package/dist/Inspectable.js +20 -16
- 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 +241 -317
- 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 +46 -103
- 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 +319 -241
- 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 +362 -263
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +203 -181
- 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 +219 -468
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +209 -454
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +16 -5
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +10 -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 +202 -645
- 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 +63 -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 +132 -210
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +221 -324
- 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 +213 -393
- 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.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +1 -4
- 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 +166 -138
- 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 +361 -466
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +163 -216
- 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 -213
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +102 -213
- 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 +25 -19
- 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 +135 -218
- 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 +292 -1638
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +164 -805
- 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 +2056 -1269
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +2868 -1135
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +64 -72
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +698 -468
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +236 -188
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +281 -234
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +219 -190
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +303 -309
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +32 -2
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +170 -118
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +433 -1511
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +301 -2854
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +117 -77
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +139 -104
- 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 +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/ScopedRef.d.ts +3 -3
- package/dist/ScopedRef.d.ts.map +1 -1
- package/dist/ScopedRef.js +2 -2
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +101 -13
- 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 +118 -108
- 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 +18 -5
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +6 -3
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +2467 -2962
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +1154 -1413
- 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 +46 -54
- 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 +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 +2 -2
- 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 +98 -131
- 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 +161 -137
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +89 -114
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +75 -53
- 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 +127 -70
- 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.d.ts +0 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -8
- package/dist/index.js.map +1 -1
- package/dist/internal/array.js.map +1 -1
- package/dist/internal/core.js +4 -3
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +5 -1
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/doNotation.js.map +1 -1
- package/dist/internal/effect.js +254 -114
- 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 +52 -3
- package/dist/internal/executionPlan.js.map +1 -1
- package/dist/internal/hashMap.js +12 -8
- 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 +2 -2
- 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 +18 -13
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/record.d.ts +0 -3
- package/dist/internal/record.d.ts.map +1 -1
- package/dist/internal/record.js +10 -5
- package/dist/internal/record.js.map +1 -1
- package/dist/internal/redacted.js.map +1 -1
- package/dist/internal/references.js +3 -4
- 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 +15 -1
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/cause.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.d.ts +2 -0
- package/dist/internal/schema/fromJsonSchemaDocument.d.ts.map +1 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js +761 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -0
- package/dist/internal/schema/fromRepresentation.d.ts +2 -0
- package/dist/internal/schema/fromRepresentation.d.ts.map +1 -0
- package/dist/internal/schema/fromRepresentation.js +245 -0
- package/dist/internal/schema/fromRepresentation.js.map +1 -0
- 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 +29 -49
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/schema/toArbitrary.d.ts +2 -0
- package/dist/internal/schema/toArbitrary.d.ts.map +1 -0
- package/dist/internal/schema/{arbitrary.js → toArbitrary.js} +8 -83
- package/dist/internal/schema/toArbitrary.js.map +1 -0
- package/dist/internal/schema/toCodeDocument.d.ts +2 -0
- package/dist/internal/schema/toCodeDocument.d.ts.map +1 -0
- package/dist/internal/schema/toCodeDocument.js +438 -0
- package/dist/internal/schema/toCodeDocument.js.map +1 -0
- package/dist/internal/schema/toEquivalence.d.ts +2 -0
- package/dist/internal/schema/toEquivalence.d.ts.map +1 -0
- package/dist/internal/schema/{equivalence.js → toEquivalence.js} +15 -13
- package/dist/internal/schema/toEquivalence.js.map +1 -0
- package/dist/internal/schema/toJsonSchemaDocument.d.ts +2 -0
- package/dist/internal/schema/toJsonSchemaDocument.d.ts.map +1 -0
- package/dist/internal/schema/toJsonSchemaDocument.js +522 -0
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -0
- package/dist/internal/schema/toRepresentation.d.ts +2 -0
- package/dist/internal/schema/toRepresentation.d.ts.map +1 -0
- package/dist/internal/schema/toRepresentation.js +351 -0
- package/dist/internal/schema/toRepresentation.js.map +1 -0
- package/dist/internal/stackTraceLimit.js +3 -6
- 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 +24 -10
- package/dist/internal/trie.js.map +1 -1
- package/dist/internal/uuid.d.ts +3 -0
- package/dist/internal/uuid.d.ts.map +1 -0
- package/dist/internal/uuid.js +30 -0
- package/dist/internal/uuid.js.map +1 -0
- 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 +58 -29
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +79 -24
- 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 +31 -31
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +35 -34
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +121 -144
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +118 -140
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +22 -7
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +87 -317
- 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 +56 -52
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +1 -1
- package/dist/unstable/ai/EmbeddingModel.js +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 +111 -68
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +127 -83
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpProtocol.d.ts +116 -0
- package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/McpProtocol.js +32 -0
- package/dist/unstable/ai/McpProtocol.js.map +1 -0
- package/dist/unstable/ai/McpSchema.d.ts +378 -223
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +135 -87
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +89 -100
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +1037 -361
- 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 +33 -11
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +194 -378
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +131 -44
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +100 -36
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +47 -33
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +23 -18
- 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 +63 -44
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +59 -42
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +35 -9
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +32 -14
- 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 +15 -12
- package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
- package/dist/unstable/ai/internal/mcpCore.d.ts +7 -0
- package/dist/unstable/ai/internal/mcpCore.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpCore.js +152 -0
- package/dist/unstable/ai/internal/mcpCore.js.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2024_11_05.d.ts +2 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2024_11_05.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2024_11_05.js +259 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_03_26.d.ts +2 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_03_26.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_03_26.js +279 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_06_18.d.ts +2 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_06_18.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_06_18.js +281 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol.d.ts +2 -0
- package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol.js +153 -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 +47 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
- package/dist/unstable/ai/internal/mcpSchema/v2024_11_05.d.ts +1185 -0
- package/dist/unstable/ai/internal/mcpSchema/v2024_11_05.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpSchema/v2024_11_05.js +404 -0
- package/dist/unstable/ai/internal/mcpSchema/v2024_11_05.js.map +1 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_03_26.d.ts +825 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_03_26.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_03_26.js +138 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_03_26.js.map +1 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_06_18.d.ts +1462 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_06_18.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_06_18.js +309 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_06_18.js.map +1 -0
- package/dist/unstable/ai/internal/structured-output.d.ts +2 -0
- package/dist/unstable/ai/internal/structured-output.d.ts.map +1 -0
- package/dist/unstable/ai/internal/structured-output.js +315 -0
- package/dist/unstable/ai/internal/structured-output.js.map +1 -0
- package/dist/unstable/cli/Argument.d.ts +279 -72
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +113 -34
- 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 +126 -76
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +136 -76
- 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 +736 -115
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +282 -56
- 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 +299 -83
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +146 -60
- 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 +377 -162
- 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 +54 -31
- 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 +2 -2
- 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.d.ts +5 -3
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +21 -13
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/bash.js +69 -9
- package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.js +24 -18
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/unstable/cli/internal/completions/fish.js +5 -5
- 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.d.ts +0 -48
- package/dist/unstable/cli/internal/config.d.ts.map +1 -1
- package/dist/unstable/cli/internal/config.js +8 -10
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts.map +1 -1
- package/dist/unstable/cli/internal/help.js +4 -2
- 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 +5 -5
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cli/internal/wizard.js +2 -2
- package/dist/unstable/cli/internal/wizard.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.d.ts +3 -1
- package/dist/unstable/cluster/ClusterError.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterError.js +10 -8
- 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 +43 -21
- 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 +12 -12
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +9 -9
- 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 +7 -5
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js +8 -5
- 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 +4 -4
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityResource.js +14 -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.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.js +5 -4
- 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.d.ts +2 -2
- package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +8 -0
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/K8sTypes.d.ts +2327 -0
- package/dist/unstable/cluster/K8sTypes.d.ts.map +1 -0
- package/dist/unstable/cluster/K8sTypes.js +29 -0
- package/dist/unstable/cluster/K8sTypes.js.map +1 -0
- 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 +66 -22
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +56 -13
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +8 -0
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +17 -5
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runner.js +1 -1
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
- package/dist/unstable/cluster/RunnerAddress.js +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 +29 -23
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +3 -4
- package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.js +8 -7
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +11 -15
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +32 -22
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.js +1 -1
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +2 -2
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +293 -46
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +57 -5
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +11 -3
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
- package/dist/unstable/cluster/SingleRunner.d.ts +4 -2
- package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/SingleRunner.js +2 -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.d.ts +21 -9
- package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +130 -43
- 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 +141 -79
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/TestRunner.js.map +1 -1
- package/dist/unstable/cluster/index.d.ts +4 -0
- package/dist/unstable/cluster/index.d.ts.map +1 -1
- package/dist/unstable/cluster/index.js +4 -0
- package/dist/unstable/cluster/index.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +33 -13
- 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 +8 -2
- package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +17 -0
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/cluster/internal/shardLock.d.ts +2 -0
- package/dist/unstable/cluster/internal/shardLock.d.ts.map +1 -0
- package/dist/unstable/cluster/internal/shardLock.js +4 -0
- package/dist/unstable/cluster/internal/shardLock.js.map +1 -0
- package/dist/unstable/devtools/DevTools.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js +7 -2
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +20 -20
- package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js +8 -5
- 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/Ini.d.ts +20 -0
- package/dist/unstable/encoding/Ini.d.ts.map +1 -0
- package/dist/unstable/encoding/Ini.js +153 -0
- package/dist/unstable/encoding/Ini.js.map +1 -0
- package/dist/unstable/encoding/Msgpack.d.ts +2 -1
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +31 -19
- package/dist/unstable/encoding/Msgpack.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.js +7 -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 +72 -31
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/encoding/Toml.d.ts +19 -0
- package/dist/unstable/encoding/Toml.d.ts.map +1 -0
- package/dist/unstable/encoding/Toml.js +434 -0
- package/dist/unstable/encoding/Toml.js.map +1 -0
- package/dist/unstable/encoding/Yaml.d.ts +19 -0
- package/dist/unstable/encoding/Yaml.d.ts.map +1 -0
- package/dist/unstable/encoding/Yaml.js +461 -0
- package/dist/unstable/encoding/Yaml.js.map +1 -0
- package/dist/unstable/encoding/index.d.ts +12 -0
- package/dist/unstable/encoding/index.d.ts.map +1 -1
- package/dist/unstable/encoding/index.js +12 -0
- 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 +30 -17
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +30 -35
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +3 -3
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +18 -14
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +8 -7
- package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +16 -14
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +31 -31
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js +12 -8
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
- package/dist/unstable/eventlog/EventLogRemote.js +5 -5
- 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 +17 -8
- 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 +15 -7
- 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.d.ts +10 -0
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js +4 -7
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +3 -3
- 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 +54 -40
- 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 +1 -1
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/FindMyWay/internal/queryString.d.ts +11 -0
- package/dist/unstable/http/FindMyWay/internal/queryString.d.ts.map +1 -0
- package/dist/unstable/http/FindMyWay/internal/queryString.js +259 -0
- package/dist/unstable/http/FindMyWay/internal/queryString.js.map +1 -0
- package/dist/unstable/http/FindMyWay/internal/router.d.ts +2 -0
- package/dist/unstable/http/FindMyWay/internal/router.d.ts.map +1 -0
- package/dist/unstable/http/FindMyWay/internal/router.js +665 -0
- package/dist/unstable/http/FindMyWay/internal/router.js.map +1 -0
- package/dist/unstable/http/FindMyWay.d.ts +33 -8
- package/dist/unstable/http/FindMyWay.d.ts.map +1 -1
- package/dist/unstable/http/FindMyWay.js +4 -7
- package/dist/unstable/http/FindMyWay.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +2 -2
- package/dist/unstable/http/Headers.js +10 -10
- 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 +110 -47
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +79 -36
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.js +1 -1
- package/dist/unstable/http/HttpClientError.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +44 -0
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +16 -12
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
- package/dist/unstable/http/HttpClientResponse.js +3 -18
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +7 -9
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +14 -15
- 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 +53 -3
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +91 -92
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +79 -80
- 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.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +23 -15
- 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 +17 -5
- 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/HttpStatus.d.ts +99 -0
- package/dist/unstable/http/HttpStatus.d.ts.map +1 -0
- package/dist/unstable/http/HttpStatus.js +91 -0
- package/dist/unstable/http/HttpStatus.js.map +1 -0
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +28 -9
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +65 -35
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/MultipartParser/HeadersParser.d.ts +53 -0
- package/dist/unstable/http/MultipartParser/HeadersParser.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/HeadersParser.js +14 -0
- package/dist/unstable/http/MultipartParser/HeadersParser.js.map +1 -0
- package/dist/unstable/http/MultipartParser/Search.d.ts +11 -0
- package/dist/unstable/http/MultipartParser/Search.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/Search.js +14 -0
- package/dist/unstable/http/MultipartParser/Search.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.d.ts +5 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.js +82 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/headers.d.ts +3 -0
- package/dist/unstable/http/MultipartParser/internal/headers.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/headers.js +208 -0
- package/dist/unstable/http/MultipartParser/internal/headers.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.d.ts +8 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.js +241 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/search.d.ts +5 -0
- package/dist/unstable/http/MultipartParser/internal/search.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/search.js +120 -0
- package/dist/unstable/http/MultipartParser/internal/search.js.map +1 -0
- package/dist/unstable/http/MultipartParser.d.ts +98 -0
- package/dist/unstable/http/MultipartParser.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser.js +23 -0
- package/dist/unstable/http/MultipartParser.js.map +1 -0
- package/dist/unstable/http/Template.d.ts.map +1 -1
- package/dist/unstable/http/Template.js +3 -3
- 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 +26 -31
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.d.ts +5 -1
- package/dist/unstable/http/index.d.ts.map +1 -1
- package/dist/unstable/http/index.js +5 -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/httpBody.d.ts +2 -0
- package/dist/unstable/http/internal/httpBody.d.ts.map +1 -0
- package/dist/unstable/http/internal/httpBody.js +10 -0
- package/dist/unstable/http/internal/httpBody.js.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +9 -9
- 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 +82 -30
- 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 +89 -51
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +48 -46
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +73 -16
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +18 -18
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +30 -30
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
- package/dist/unstable/httpapi/HttpApiGroup.js +2 -2
- 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 +227 -71
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +176 -69
- 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 +21 -13
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +110 -57
- 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 +71 -2
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +86 -7
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -3
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +4 -4
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +11 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +31 -15
- 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.d.ts +4 -3
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +3 -3
- 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.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistable.js +2 -1
- 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.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +97 -86
- 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 +108 -22
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +47 -26
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +31 -47
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +2 -2
- package/dist/unstable/persistence/Redis.d.ts.map +1 -1
- package/dist/unstable/persistence/Redis.js +4 -4
- 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 +72 -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 +4 -2
- 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 +14 -13
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +131 -30
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +55 -43
- 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 +25 -4
- 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 +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 +26 -12
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +41 -23
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.js +2 -2
- package/dist/unstable/rpc/RpcClientError.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
- package/dist/unstable/rpc/RpcGroup.js +2 -2
- 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 +178 -97
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +13 -13
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +23 -18
- 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 +66 -51
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +39 -52
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +11 -12
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +28 -17
- 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 +12 -4
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +38 -17
- 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.d.ts +9 -1
- package/dist/unstable/sql/Migrator.d.ts.map +1 -1
- package/dist/unstable/sql/Migrator.js +15 -2
- 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 +11 -7
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.js.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +2 -2
- package/dist/unstable/sql/SqlError.js +15 -15
- 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.d.ts.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +33 -26
- 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.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +30 -27
- 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.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +13 -14
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +7 -7
- package/dist/unstable/workers/WorkerError.js +11 -11
- 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.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +13 -8
- 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 +26 -3
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +72 -6
- 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 +10 -16
- package/src/Array.ts +1068 -1070
- package/src/BigDecimal.ts +433 -756
- package/src/BigInt.ts +213 -269
- package/src/Boolean.ts +146 -188
- package/src/Brand.ts +4 -4
- package/src/Cache.ts +469 -851
- package/src/Cause.ts +167 -277
- package/src/Channel.ts +982 -831
- 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 +642 -335
- package/src/ConfigProvider.ts +267 -135
- package/src/Console.ts +289 -39
- package/src/Context.ts +336 -405
- package/src/Cron.ts +271 -219
- package/src/Crypto.ts +33 -63
- package/src/Data.ts +63 -82
- package/src/DateTime.ts +564 -660
- package/src/Deferred.ts +259 -258
- package/src/Duration.ts +244 -311
- package/src/Effect.ts +3241 -3410
- package/src/Encoding.ts +22 -40
- package/src/Equal.ts +59 -41
- package/src/Equivalence.ts +103 -105
- package/src/ErrorReporter.ts +52 -28
- package/src/ExecutionPlan.ts +91 -56
- package/src/Exit.ts +116 -192
- package/src/Fiber.ts +82 -149
- package/src/FiberHandle.ts +155 -107
- package/src/FiberMap.ts +225 -174
- package/src/FiberSet.ts +125 -83
- package/src/FileSystem.ts +156 -264
- package/src/Filter.ts +61 -33
- package/src/Formatter.ts +69 -76
- package/src/Function.ts +119 -151
- 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 +22 -20
- package/src/Iterable.ts +633 -797
- package/src/JsonPatch.ts +60 -113
- package/src/JsonPointer.ts +8 -8
- package/src/JsonSchema.ts +408 -251
- package/src/Latch.ts +23 -35
- package/src/Layer.ts +369 -268
- package/src/LayerMap.ts +49 -29
- package/src/LayerRef.ts +6 -2
- package/src/LogLevel.ts +114 -214
- package/src/Logger.ts +349 -701
- package/src/ManagedRuntime.ts +20 -5
- package/src/Match.ts +217 -252
- package/src/Metric.ts +520 -1092
- package/src/MutableHashMap.ts +218 -255
- package/src/MutableHashSet.ts +84 -89
- package/src/MutableList.ts +77 -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 +303 -441
- package/src/Option.ts +449 -813
- package/src/Order.ts +109 -109
- package/src/Ordering.ts +20 -23
- package/src/PartitionedSemaphore.ts +1 -4
- 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 +204 -165
- package/src/Random.ts +49 -74
- package/src/RcMap.ts +121 -63
- package/src/RcRef.ts +24 -13
- package/src/Record.ts +387 -487
- 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 -214
- package/src/RegExp.ts +10 -14
- package/src/Request.ts +36 -28
- package/src/RequestResolver.ts +202 -91
- package/src/Result.ts +314 -485
- package/src/Runtime.ts +50 -75
- package/src/Schedule.ts +311 -1737
- package/src/Scheduler.ts +20 -7
- package/src/Schema.ts +3475 -1913
- package/src/SchemaAST.ts +902 -573
- package/src/SchemaGetter.ts +351 -233
- package/src/SchemaIssue.ts +367 -334
- package/src/SchemaParser.ts +254 -148
- package/src/SchemaRepresentation.ts +732 -3414
- package/src/SchemaTransformation.ts +186 -97
- package/src/Scope.ts +123 -151
- package/src/ScopedCache.ts +1 -1
- package/src/ScopedRef.ts +6 -4
- package/src/Semaphore.ts +157 -54
- package/src/Sink.ts +129 -114
- package/src/Stdio.ts +24 -5
- package/src/Stream.ts +2745 -3173
- package/src/String.ts +275 -312
- package/src/Struct.ts +114 -118
- package/src/SubscriptionRef.ts +284 -252
- package/src/Symbol.ts +3 -3
- package/src/SynchronizedRef.ts +1 -1
- package/src/Terminal.ts +3 -3
- package/src/Tracer.ts +102 -55
- package/src/Trie.ts +287 -679
- package/src/Tuple.ts +99 -131
- 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 +215 -184
- package/src/TxReentrantLock.ts +136 -101
- package/src/TxRef.ts +51 -32
- package/src/TxSemaphore.ts +129 -95
- package/src/TxSubscriptionRef.ts +97 -70
- package/src/Types.ts +127 -70
- package/src/Unify.ts +45 -65
- package/src/Utils.ts +23 -16
- package/src/index.ts +0 -10
- package/src/internal/core.ts +6 -5
- package/src/internal/dateTime.ts +7 -1
- package/src/internal/effect.ts +319 -149
- package/src/internal/executionPlan.ts +106 -10
- package/src/internal/hashMap.ts +20 -14
- package/src/internal/matcher.ts +3 -3
- package/src/internal/persistence.ts +2 -0
- package/src/internal/rcRef.ts +24 -16
- package/src/internal/record.ts +11 -7
- package/src/internal/references.ts +3 -7
- package/src/internal/schedule.ts +4 -4
- package/src/internal/schema/annotations.ts +48 -1
- package/src/internal/schema/fromJsonSchemaDocument.ts +977 -0
- package/src/internal/schema/fromRepresentation.ts +339 -0
- package/src/internal/schema/parser.ts +22 -0
- package/src/internal/schema/schema.ts +46 -63
- package/src/internal/schema/{arbitrary.ts → toArbitrary.ts} +9 -81
- package/src/internal/schema/toCodeDocument.ts +572 -0
- package/src/internal/schema/{equivalence.ts → toEquivalence.ts} +12 -7
- package/src/internal/schema/toJsonSchemaDocument.ts +549 -0
- package/src/internal/schema/toRepresentation.ts +404 -0
- package/src/internal/stackTraceLimit.ts +3 -7
- package/src/internal/trie.ts +21 -12
- package/src/internal/uuid.ts +51 -0
- package/src/testing/FastCheck.ts +8 -7
- package/src/testing/TestClock.ts +103 -36
- package/src/testing/TestConsole.ts +32 -31
- package/src/testing/TestSchema.ts +40 -40
- package/src/unstable/ai/AiError.ts +119 -141
- package/src/unstable/ai/AnthropicStructuredOutput.ts +103 -334
- package/src/unstable/ai/Chat.ts +133 -98
- package/src/unstable/ai/EmbeddingModel.ts +1 -1
- package/src/unstable/ai/IdGenerator.ts +32 -28
- package/src/unstable/ai/LanguageModel.ts +141 -97
- package/src/unstable/ai/McpProtocol.ts +137 -0
- package/src/unstable/ai/McpSchema.ts +199 -100
- package/src/unstable/ai/McpServer.ts +1360 -455
- package/src/unstable/ai/Model.ts +9 -20
- package/src/unstable/ai/OpenAiStructuredOutput.ts +231 -396
- package/src/unstable/ai/Prompt.ts +212 -63
- package/src/unstable/ai/Response.ts +52 -38
- package/src/unstable/ai/Telemetry.ts +46 -13
- package/src/unstable/ai/Tokenizer.ts +14 -3
- package/src/unstable/ai/Tool.ts +81 -48
- package/src/unstable/ai/Toolkit.ts +45 -15
- package/src/unstable/ai/index.ts +5 -0
- package/src/unstable/ai/internal/codec-transformer.ts +13 -7
- package/src/unstable/ai/internal/mcpCore.ts +457 -0
- package/src/unstable/ai/internal/mcpProtocol/v2024_11_05.ts +321 -0
- package/src/unstable/ai/internal/mcpProtocol/v2025_03_26.ts +347 -0
- package/src/unstable/ai/internal/mcpProtocol/v2025_06_18.ts +361 -0
- package/src/unstable/ai/internal/mcpProtocol.ts +336 -0
- package/src/unstable/ai/internal/mcpProtocolRegistry.ts +102 -0
- package/src/unstable/ai/internal/mcpSchema/v2024_11_05.ts +521 -0
- package/src/unstable/ai/internal/mcpSchema/v2025_03_26.ts +204 -0
- package/src/unstable/ai/internal/mcpSchema/v2025_06_18.ts +404 -0
- package/src/unstable/ai/internal/structured-output.ts +453 -0
- package/src/unstable/cli/Argument.ts +279 -72
- package/src/unstable/cli/CliError.ts +159 -91
- package/src/unstable/cli/CliOutput.ts +44 -58
- package/src/unstable/cli/Command.ts +764 -124
- 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 +336 -100
- package/src/unstable/cli/Primitive.ts +383 -156
- package/src/unstable/cli/Prompt.ts +64 -34
- package/src/unstable/cli/internal/ansi.ts +2 -2
- package/src/unstable/cli/internal/command.ts +28 -15
- package/src/unstable/cli/internal/completions/bash.ts +59 -9
- package/src/unstable/cli/internal/completions/descriptor.ts +14 -20
- package/src/unstable/cli/internal/completions/fish.ts +5 -7
- package/src/unstable/cli/internal/config.ts +8 -10
- package/src/unstable/cli/internal/help.ts +4 -2
- package/src/unstable/cli/internal/lexer.ts +8 -2
- package/src/unstable/cli/internal/parser.ts +5 -5
- package/src/unstable/cli/internal/wizard.ts +2 -2
- package/src/unstable/cluster/ClusterError.ts +10 -8
- package/src/unstable/cluster/ClusterSchema.ts +8 -8
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +65 -39
- package/src/unstable/cluster/Entity.ts +23 -19
- package/src/unstable/cluster/EntityProxy.ts +16 -7
- package/src/unstable/cluster/EntityResource.ts +5 -5
- package/src/unstable/cluster/Envelope.ts +5 -4
- package/src/unstable/cluster/HttpRunner.ts +6 -4
- package/src/unstable/cluster/K8sHttpClient.ts +2 -2
- package/src/unstable/cluster/K8sTypes.ts +2467 -0
- package/src/unstable/cluster/Message.ts +9 -9
- package/src/unstable/cluster/MessageStorage.ts +106 -33
- package/src/unstable/cluster/Reply.ts +26 -7
- package/src/unstable/cluster/Runner.ts +1 -1
- package/src/unstable/cluster/RunnerAddress.ts +1 -1
- package/src/unstable/cluster/RunnerHealth.ts +1 -1
- package/src/unstable/cluster/RunnerServer.ts +45 -18
- package/src/unstable/cluster/RunnerStorage.ts +11 -9
- package/src/unstable/cluster/Runners.ts +48 -26
- package/src/unstable/cluster/ShardId.ts +1 -1
- package/src/unstable/cluster/Sharding.ts +360 -65
- package/src/unstable/cluster/ShardingConfig.ts +46 -4
- package/src/unstable/cluster/SingleRunner.ts +4 -2
- package/src/unstable/cluster/SingletonAddress.ts +1 -1
- package/src/unstable/cluster/Snowflake.ts +8 -8
- package/src/unstable/cluster/SqlMessageStorage.ts +212 -60
- package/src/unstable/cluster/SqlRunnerStorage.ts +223 -133
- package/src/unstable/cluster/index.ts +5 -0
- package/src/unstable/cluster/internal/entityManager.ts +72 -27
- package/src/unstable/cluster/internal/entityReaper.ts +2 -3
- package/src/unstable/cluster/internal/resourceMap.ts +13 -2
- package/src/unstable/cluster/internal/resourceRef.ts +27 -5
- package/src/unstable/cluster/internal/shardLock.ts +9 -0
- package/src/unstable/devtools/DevToolsClient.ts +3 -2
- package/src/unstable/devtools/DevToolsSchema.ts +10 -5
- package/src/unstable/encoding/Ini.ts +174 -0
- package/src/unstable/encoding/Msgpack.ts +61 -40
- package/src/unstable/encoding/Ndjson.ts +9 -1
- package/src/unstable/encoding/Sse.ts +109 -37
- package/src/unstable/encoding/Toml.ts +504 -0
- package/src/unstable/encoding/Yaml.ts +541 -0
- package/src/unstable/encoding/index.ts +15 -0
- package/src/unstable/eventlog/Event.ts +20 -20
- package/src/unstable/eventlog/EventGroup.ts +4 -4
- package/src/unstable/eventlog/EventJournal.ts +33 -25
- package/src/unstable/eventlog/EventLog.ts +24 -14
- package/src/unstable/eventlog/EventLogEncryption.ts +17 -18
- package/src/unstable/eventlog/EventLogMessage.ts +15 -9
- package/src/unstable/eventlog/EventLogRemote.ts +5 -5
- package/src/unstable/eventlog/EventLogServer.ts +41 -7
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +16 -8
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +15 -7
- package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
- package/src/unstable/eventlog/SqlEventJournal.ts +9 -7
- package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +1 -1
- package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +6 -3
- package/src/unstable/http/Cookies.ts +64 -45
- package/src/unstable/http/Etag.ts +1 -1
- package/src/unstable/http/FetchHttpClient.ts +4 -2
- package/src/unstable/http/FindMyWay/internal/queryString.ts +420 -0
- package/src/unstable/http/FindMyWay/internal/router.ts +950 -0
- package/src/unstable/http/FindMyWay.ts +65 -6
- package/src/unstable/http/Headers.ts +10 -10
- package/src/unstable/http/HttpBody.ts +20 -5
- package/src/unstable/http/HttpClient.ts +215 -78
- package/src/unstable/http/HttpClientError.ts +1 -1
- package/src/unstable/http/HttpClientRequest.ts +59 -12
- package/src/unstable/http/HttpClientResponse.ts +5 -21
- package/src/unstable/http/HttpEffect.ts +27 -26
- package/src/unstable/http/HttpMethod.ts +6 -9
- package/src/unstable/http/HttpMiddleware.ts +202 -39
- package/src/unstable/http/HttpPlatform.ts +129 -6
- package/src/unstable/http/HttpRouter.ts +110 -102
- package/src/unstable/http/HttpServer.ts +13 -13
- package/src/unstable/http/HttpServerError.ts +2 -2
- package/src/unstable/http/HttpServerRequest.ts +31 -17
- package/src/unstable/http/HttpServerResponse.ts +38 -6
- package/src/unstable/http/HttpStaticServer.ts +35 -7
- package/src/unstable/http/HttpStatus.ts +100 -0
- package/src/unstable/http/Multipart.ts +67 -36
- package/src/unstable/http/MultipartParser/HeadersParser.ts +68 -0
- package/src/unstable/http/MultipartParser/Search.ts +17 -0
- package/src/unstable/http/MultipartParser/internal/contentType.ts +103 -0
- package/src/unstable/http/MultipartParser/internal/headers.ts +244 -0
- package/src/unstable/http/MultipartParser/internal/multipart.ts +279 -0
- package/src/unstable/http/MultipartParser/internal/search.ts +167 -0
- package/src/unstable/http/MultipartParser.ts +115 -0
- package/src/unstable/http/Template.ts +7 -6
- package/src/unstable/http/Url.ts +33 -63
- package/src/unstable/http/UrlParams.ts +27 -32
- package/src/unstable/http/index.ts +6 -1
- package/src/unstable/http/internal/compression.ts +196 -0
- package/src/unstable/http/internal/httpBody.ts +15 -0
- package/src/unstable/httpapi/HttpApi.ts +10 -11
- package/src/unstable/httpapi/HttpApiBuilder.ts +154 -33
- package/src/unstable/httpapi/HttpApiClient.ts +142 -61
- package/src/unstable/httpapi/HttpApiEndpoint.ts +159 -71
- package/src/unstable/httpapi/HttpApiError.ts +46 -52
- package/src/unstable/httpapi/HttpApiGroup.ts +17 -17
- package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
- package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
- package/src/unstable/httpapi/HttpApiSchema.ts +362 -73
- package/src/unstable/httpapi/OpenApi.ts +153 -62
- package/src/unstable/observability/OtlpExporter.ts +130 -12
- package/src/unstable/observability/OtlpLogger.ts +8 -6
- package/src/unstable/observability/OtlpMetrics.ts +42 -21
- package/src/unstable/observability/OtlpResource.ts +26 -17
- package/src/unstable/observability/OtlpTracer.ts +9 -5
- 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 +11 -10
- package/src/unstable/persistence/PersistedQueue.ts +129 -108
- package/src/unstable/persistence/Persistence.ts +153 -26
- package/src/unstable/persistence/RateLimiter.ts +79 -45
- package/src/unstable/persistence/Redis.ts +5 -5
- package/src/unstable/process/ChildProcess.ts +72 -21
- package/src/unstable/process/ChildProcessSpawner.ts +22 -11
- package/src/unstable/reactivity/AsyncResult.ts +23 -18
- package/src/unstable/reactivity/Atom.ts +170 -56
- package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
- package/src/unstable/reactivity/AtomRegistry.ts +25 -4
- package/src/unstable/reactivity/AtomRpc.ts +5 -4
- package/src/unstable/reactivity/Hydration.ts +1 -1
- package/src/unstable/reactivity/Reactivity.ts +1 -1
- package/src/unstable/rpc/Rpc.ts +35 -33
- package/src/unstable/rpc/RpcClient.ts +66 -30
- package/src/unstable/rpc/RpcClientError.ts +2 -2
- package/src/unstable/rpc/RpcGroup.ts +9 -9
- 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 +168 -69
- package/src/unstable/rpc/RpcServer.ts +28 -22
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/schema/Model.ts +60 -58
- package/src/unstable/schema/VariantSchema.ts +51 -43
- package/src/unstable/socket/Socket.ts +42 -19
- package/src/unstable/sql/Migrator.ts +22 -9
- package/src/unstable/sql/SqlClient.ts +71 -60
- package/src/unstable/sql/SqlError.ts +15 -15
- package/src/unstable/sql/SqlModel.ts +2 -2
- package/src/unstable/sql/SqlResolver.ts +44 -33
- package/src/unstable/sql/Statement.ts +44 -37
- package/src/unstable/workers/Transferable.ts +1 -1
- package/src/unstable/workers/Worker.ts +15 -16
- package/src/unstable/workers/WorkerError.ts +12 -12
- 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 +18 -13
- package/src/unstable/workflow/DurableQueue.ts +22 -20
- package/src/unstable/workflow/Workflow.ts +23 -26
- package/src/unstable/workflow/WorkflowEngine.ts +111 -8
- package/src/unstable/workflow/WorkflowProxy.ts +4 -2
- package/dist/SchemaError.d.ts +0 -53
- package/dist/SchemaError.d.ts.map +0 -1
- package/dist/SchemaError.js +0 -61
- package/dist/SchemaError.js.map +0 -1
- package/dist/SchemaUtils.d.ts +0 -28
- package/dist/SchemaUtils.d.ts.map +0 -1
- package/dist/SchemaUtils.js +0 -45
- package/dist/SchemaUtils.js.map +0 -1
- package/dist/internal/schema/arbitrary.d.ts +0 -5
- package/dist/internal/schema/arbitrary.d.ts.map +0 -1
- package/dist/internal/schema/arbitrary.js.map +0 -1
- package/dist/internal/schema/equivalence.d.ts +0 -2
- package/dist/internal/schema/equivalence.d.ts.map +0 -1
- package/dist/internal/schema/equivalence.js.map +0 -1
- package/dist/internal/schema/representation.d.ts +0 -2
- package/dist/internal/schema/representation.d.ts.map +0 -1
- package/dist/internal/schema/representation.js +0 -865
- package/dist/internal/schema/representation.js.map +0 -1
- 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/dist/unstable/http/Multipasta/HeadersParser.d.ts +0 -14
- package/dist/unstable/http/Multipasta/HeadersParser.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/HeadersParser.js +0 -14
- package/dist/unstable/http/Multipasta/HeadersParser.js.map +0 -1
- package/dist/unstable/http/Multipasta/Node.d.ts +0 -14
- package/dist/unstable/http/Multipasta/Node.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/Node.js +0 -14
- package/dist/unstable/http/Multipasta/Node.js.map +0 -1
- package/dist/unstable/http/Multipasta/Search.d.ts +0 -14
- package/dist/unstable/http/Multipasta/Search.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/Search.js +0 -14
- package/dist/unstable/http/Multipasta/Search.js.map +0 -1
- package/dist/unstable/http/Multipasta/Web.d.ts +0 -14
- package/dist/unstable/http/Multipasta/Web.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/Web.js +0 -14
- package/dist/unstable/http/Multipasta/Web.js.map +0 -1
- package/dist/unstable/http/Multipasta.d.ts +0 -15
- package/dist/unstable/http/Multipasta.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta.js +0 -15
- package/dist/unstable/http/Multipasta.js.map +0 -1
- package/src/SchemaError.ts +0 -64
- package/src/SchemaUtils.ts +0 -51
- package/src/internal/schema/representation.ts +0 -795
- package/src/internal/version.ts +0 -2
- package/src/unstable/http/Multipasta/HeadersParser.ts +0 -14
- package/src/unstable/http/Multipasta/Node.ts +0 -14
- package/src/unstable/http/Multipasta/Search.ts +0 -14
- package/src/unstable/http/Multipasta/Web.ts +0 -14
- package/src/unstable/http/Multipasta.ts +0 -15
|
@@ -13,14 +13,18 @@
|
|
|
13
13
|
import * as Arr from "../../Array.js";
|
|
14
14
|
import * as Cause from "../../Cause.js";
|
|
15
15
|
import * as Context from "../../Context.js";
|
|
16
|
+
import * as Data from "../../Data.js";
|
|
16
17
|
import * as Effect from "../../Effect.js";
|
|
17
18
|
import * as Exit from "../../Exit.js";
|
|
18
19
|
import * as Fiber from "../../Fiber.js";
|
|
19
20
|
import * as Layer from "../../Layer.js";
|
|
21
|
+
import * as LogLevel from "../../LogLevel.js";
|
|
20
22
|
import * as Option from "../../Option.js";
|
|
23
|
+
import * as Predicate from "../../Predicate.js";
|
|
21
24
|
import * as Queue from "../../Queue.js";
|
|
22
25
|
import * as RcMap from "../../RcMap.js";
|
|
23
26
|
import { CurrentLogLevel } from "../../References.js";
|
|
27
|
+
import * as Result from "../../Result.js";
|
|
24
28
|
import * as Schema from "../../Schema.js";
|
|
25
29
|
import * as SchemaAST from "../../SchemaAST.js";
|
|
26
30
|
import * as Sink from "../../Sink.js";
|
|
@@ -33,11 +37,66 @@ import * as HttpServerRequest from "../http/HttpServerRequest.js";
|
|
|
33
37
|
import * as HttpServerResponse from "../http/HttpServerResponse.js";
|
|
34
38
|
import * as Rpc from "../rpc/Rpc.js";
|
|
35
39
|
import * as RpcClient from "../rpc/RpcClient.js";
|
|
40
|
+
import * as RpcGroup from "../rpc/RpcGroup.js";
|
|
36
41
|
import * as RpcMessage from "../rpc/RpcMessage.js";
|
|
37
42
|
import * as RpcSerialization from "../rpc/RpcSerialization.js";
|
|
38
43
|
import * as RpcServer from "../rpc/RpcServer.js";
|
|
39
|
-
import
|
|
44
|
+
import * as AiError from "./AiError.js";
|
|
45
|
+
import * as McpCore from "./internal/mcpCore.js";
|
|
46
|
+
import * as McpProtocolInternal from "./internal/mcpProtocol.js";
|
|
47
|
+
import * as McpProtocolRegistry from "./internal/mcpProtocolRegistry.js";
|
|
48
|
+
import * as McpSchema from "./McpSchema.js";
|
|
49
|
+
import { CallToolResult, Elicit, ElicitationDeclined, EnabledWhen, GetPromptResult, Initialize, InternalError, InvalidParams, InvalidRequest, isParam, McpServerClient, McpServerClientMiddleware, MethodNotFound, Ping, Prompt, Resource, ResourceTemplate, ServerNotificationRpcs, TextContent, Tool as McpTool, ToolJsonSchema } from "./McpSchema.js";
|
|
40
50
|
import * as Tool from "./Tool.js";
|
|
51
|
+
const internalState = /*#__PURE__*/new WeakMap();
|
|
52
|
+
const validateStructuredContent = (toolName, value) => Schema.is(Schema.Json)(value) ? Effect.succeed(value) : Effect.fail(new McpCore.ToolResultProjectionError({
|
|
53
|
+
name: toolName,
|
|
54
|
+
message: `Tool '${toolName}' returned structured content that is not valid JSON`
|
|
55
|
+
}));
|
|
56
|
+
const toInternalServerNotification = message => {
|
|
57
|
+
switch (message.tag) {
|
|
58
|
+
case "notifications/cancelled":
|
|
59
|
+
return McpCore.ServerNotification.Cancelled({
|
|
60
|
+
requestId: message.payload.requestId,
|
|
61
|
+
reason: message.payload.reason,
|
|
62
|
+
metadata: message.payload._meta
|
|
63
|
+
});
|
|
64
|
+
case "notifications/progress":
|
|
65
|
+
return McpCore.ServerNotification.Progress({
|
|
66
|
+
progressToken: message.payload.progressToken,
|
|
67
|
+
progress: message.payload.progress,
|
|
68
|
+
total: message.payload.total,
|
|
69
|
+
message: message.payload.message,
|
|
70
|
+
metadata: message.payload._meta
|
|
71
|
+
});
|
|
72
|
+
case "notifications/message":
|
|
73
|
+
return McpCore.ServerNotification.LoggingMessage({
|
|
74
|
+
level: message.payload.level,
|
|
75
|
+
logger: message.payload.logger,
|
|
76
|
+
data: message.payload.data,
|
|
77
|
+
metadata: message.payload._meta
|
|
78
|
+
});
|
|
79
|
+
case "notifications/resources/updated":
|
|
80
|
+
return McpCore.ServerNotification.ResourceUpdated({
|
|
81
|
+
uri: message.payload.uri,
|
|
82
|
+
metadata: message.payload._meta
|
|
83
|
+
});
|
|
84
|
+
case "notifications/resources/list_changed":
|
|
85
|
+
return McpCore.ServerNotification.ResourcesChanged({
|
|
86
|
+
metadata: message.payload?._meta
|
|
87
|
+
});
|
|
88
|
+
case "notifications/tools/list_changed":
|
|
89
|
+
return McpCore.ServerNotification.ToolsChanged({
|
|
90
|
+
metadata: message.payload?._meta
|
|
91
|
+
});
|
|
92
|
+
case "notifications/prompts/list_changed":
|
|
93
|
+
return McpCore.ServerNotification.PromptsChanged({
|
|
94
|
+
metadata: message.payload?._meta
|
|
95
|
+
});
|
|
96
|
+
default:
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
};
|
|
41
100
|
/**
|
|
42
101
|
* Service that stores and serves an MCP server's registered tools, resources,
|
|
43
102
|
* prompts, completions, and outgoing notifications.
|
|
@@ -47,7 +106,7 @@ import * as Tool from "./Tool.js";
|
|
|
47
106
|
* Handlers use this service to register capabilities and resolve incoming MCP
|
|
48
107
|
* requests.
|
|
49
108
|
*
|
|
50
|
-
* @category
|
|
109
|
+
* @category services
|
|
51
110
|
* @since 4.0.0
|
|
52
111
|
*/
|
|
53
112
|
export class McpServer extends /*#__PURE__*/Context.Service()("effect/ai/McpServer") {
|
|
@@ -57,14 +116,11 @@ export class McpServer extends /*#__PURE__*/Context.Service()("effect/ai/McpServ
|
|
|
57
116
|
* @since 4.0.0
|
|
58
117
|
*/
|
|
59
118
|
static make = /*#__PURE__*/Effect.gen(function* () {
|
|
60
|
-
const
|
|
119
|
+
const internalCore = yield* McpCore.make;
|
|
61
120
|
const tools = Arr.empty();
|
|
62
|
-
const toolMap = new Map();
|
|
63
121
|
const resources = [];
|
|
64
122
|
const resourceTemplates = [];
|
|
65
123
|
const prompts = [];
|
|
66
|
-
const promptMap = new Map();
|
|
67
|
-
const completionsMap = new Map();
|
|
68
124
|
const notificationsQueue = yield* Queue.make();
|
|
69
125
|
const listChangedHandles = new Map();
|
|
70
126
|
const notifications = yield* RpcClient.makeNoSerialization(ServerNotificationRpcs, {
|
|
@@ -74,15 +130,19 @@ export class McpServer extends /*#__PURE__*/Context.Service()("effect/ai/McpServ
|
|
|
74
130
|
if (message._tag !== "Request") {
|
|
75
131
|
return Effect.void;
|
|
76
132
|
}
|
|
133
|
+
const notification = toInternalServerNotification(message);
|
|
134
|
+
if (notification === undefined) {
|
|
135
|
+
return Effect.void;
|
|
136
|
+
}
|
|
77
137
|
if (message.tag.includes("list_changed")) {
|
|
78
138
|
if (!listChangedHandles.has(message.tag)) {
|
|
79
139
|
listChangedHandles.set(message.tag, setTimeout(() => {
|
|
80
|
-
Queue.offerUnsafe(notificationsQueue,
|
|
140
|
+
Queue.offerUnsafe(notificationsQueue, notification);
|
|
81
141
|
listChangedHandles.delete(message.tag);
|
|
82
142
|
}, 0));
|
|
83
143
|
}
|
|
84
144
|
} else {
|
|
85
|
-
Queue.offerUnsafe(notificationsQueue,
|
|
145
|
+
Queue.offerUnsafe(notificationsQueue, notification);
|
|
86
146
|
}
|
|
87
147
|
return notifications.write({
|
|
88
148
|
clientId: 0,
|
|
@@ -92,26 +152,59 @@ export class McpServer extends /*#__PURE__*/Context.Service()("effect/ai/McpServ
|
|
|
92
152
|
});
|
|
93
153
|
})
|
|
94
154
|
});
|
|
95
|
-
|
|
155
|
+
const service = McpServer.of({
|
|
96
156
|
notifications: notifications.client,
|
|
97
|
-
notificationsQueue,
|
|
98
157
|
initializedClients: new Set(),
|
|
99
158
|
get tools() {
|
|
100
159
|
return tools;
|
|
101
160
|
},
|
|
102
|
-
addTool: options => Effect.
|
|
103
|
-
tools.
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
return Effect.fail(new InvalidParams({
|
|
111
|
-
message: `Tool '${request.name}' not found`
|
|
112
|
-
}));
|
|
161
|
+
addTool: options => Effect.gen(function* () {
|
|
162
|
+
const existingIndex = tools.findIndex(({
|
|
163
|
+
tool
|
|
164
|
+
}) => tool.name === options.tool.name);
|
|
165
|
+
if (existingIndex === -1) {
|
|
166
|
+
tools.push(options);
|
|
167
|
+
} else {
|
|
168
|
+
tools[existingIndex] = options;
|
|
113
169
|
}
|
|
114
|
-
|
|
170
|
+
const enabledWhen = Context.getOrUndefined(options.annotations, EnabledWhen);
|
|
171
|
+
yield* internalCore.tools.register({
|
|
172
|
+
descriptor: new McpTool({
|
|
173
|
+
...options.tool,
|
|
174
|
+
title: options.tool.title ?? options.tool.annotations?.title
|
|
175
|
+
}),
|
|
176
|
+
isVisible: profile => enabledWhen === undefined || enabledWhen({
|
|
177
|
+
protocolVersion: profile.protocolVersion,
|
|
178
|
+
capabilities: profile.clientCapabilities,
|
|
179
|
+
clientInfo: profile.clientInfo
|
|
180
|
+
}),
|
|
181
|
+
handle: (call, invocation) => options.handle(call.arguments).pipe(Effect.provideService(McpServerClient, invocation.requestContext), Effect.catchTags({
|
|
182
|
+
InternalError: error => Effect.fail(new McpCore.ToolExecutionError({
|
|
183
|
+
name: options.tool.name,
|
|
184
|
+
message: error.message
|
|
185
|
+
})),
|
|
186
|
+
InvalidParams: error => Effect.fail(new McpCore.InvalidToolInput({
|
|
187
|
+
name: options.tool.name,
|
|
188
|
+
message: error.message
|
|
189
|
+
}))
|
|
190
|
+
}), Effect.flatMap(result => result.structuredContent === undefined ? Effect.succeed(result) : validateStructuredContent(options.tool.name, result.structuredContent).pipe(Effect.as(result))))
|
|
191
|
+
});
|
|
192
|
+
yield* notifications.client["notifications/tools/list_changed"]({});
|
|
193
|
+
}),
|
|
194
|
+
callTool: request => Effect.gen(function* () {
|
|
195
|
+
const client = yield* McpServerClient;
|
|
196
|
+
const result = yield* internalCore.tools.call(request, {
|
|
197
|
+
clientId: client.clientId,
|
|
198
|
+
protocol: {
|
|
199
|
+
protocolVersion: client.protocolVersion,
|
|
200
|
+
clientCapabilities: client.initializePayload.capabilities,
|
|
201
|
+
clientInfo: client.initializePayload.clientInfo
|
|
202
|
+
},
|
|
203
|
+
requestContext: client
|
|
204
|
+
}).pipe(Effect.mapError(error => new InvalidParams({
|
|
205
|
+
message: error._tag === "ToolNotFound" ? `Tool '${error.name}' not found` : error.message
|
|
206
|
+
})));
|
|
207
|
+
return result;
|
|
115
208
|
}),
|
|
116
209
|
get resources() {
|
|
117
210
|
return resources;
|
|
@@ -119,13 +212,28 @@ export class McpServer extends /*#__PURE__*/Context.Service()("effect/ai/McpServ
|
|
|
119
212
|
get resourceTemplates() {
|
|
120
213
|
return resourceTemplates;
|
|
121
214
|
},
|
|
122
|
-
addResource: options => Effect.
|
|
123
|
-
resources.
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
215
|
+
addResource: options => Effect.gen(function* () {
|
|
216
|
+
const existingIndex = resources.findIndex(({
|
|
217
|
+
resource
|
|
218
|
+
}) => resource.uri === options.resource.uri);
|
|
219
|
+
if (existingIndex === -1) {
|
|
220
|
+
resources.push(options);
|
|
221
|
+
} else {
|
|
222
|
+
resources[existingIndex] = options;
|
|
223
|
+
}
|
|
224
|
+
yield* internalCore.resources.register({
|
|
225
|
+
descriptor: options.resource,
|
|
226
|
+
isVisible: profile => {
|
|
227
|
+
const enabledWhen = Context.getOrUndefined(options.annotations, EnabledWhen);
|
|
228
|
+
return enabledWhen === undefined || enabledWhen({
|
|
229
|
+
protocolVersion: profile.protocolVersion,
|
|
230
|
+
capabilities: profile.clientCapabilities,
|
|
231
|
+
clientInfo: profile.clientInfo
|
|
232
|
+
});
|
|
233
|
+
},
|
|
234
|
+
read: invocation => options.handle.pipe(Effect.provideService(McpServerClient, invocation.requestContext))
|
|
127
235
|
});
|
|
128
|
-
|
|
236
|
+
yield* notifications.client["notifications/resources/list_changed"]({});
|
|
129
237
|
}),
|
|
130
238
|
addResourceTemplate: ({
|
|
131
239
|
annotations,
|
|
@@ -133,65 +241,143 @@ export class McpServer extends /*#__PURE__*/Context.Service()("effect/ai/McpServ
|
|
|
133
241
|
handle,
|
|
134
242
|
routerPath,
|
|
135
243
|
template
|
|
136
|
-
}) => Effect.
|
|
137
|
-
resourceTemplates.
|
|
138
|
-
template
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
244
|
+
}) => Effect.gen(function* () {
|
|
245
|
+
const existingIndex = resourceTemplates.findIndex(({
|
|
246
|
+
template: current
|
|
247
|
+
}) => current.uriTemplate === template.uriTemplate);
|
|
248
|
+
if (existingIndex === -1) {
|
|
249
|
+
resourceTemplates.push({
|
|
250
|
+
template,
|
|
251
|
+
annotations
|
|
252
|
+
});
|
|
253
|
+
} else {
|
|
254
|
+
resourceTemplates[existingIndex] = {
|
|
255
|
+
template,
|
|
256
|
+
annotations
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
const templateMatcher = makeUriMatcher();
|
|
260
|
+
templateMatcher.add(routerPath, true);
|
|
261
|
+
yield* internalCore.resources.registerTemplate({
|
|
262
|
+
descriptor: template,
|
|
263
|
+
isVisible: profile => {
|
|
264
|
+
const enabledWhen = Context.getOrUndefined(annotations, EnabledWhen);
|
|
265
|
+
return enabledWhen === undefined || enabledWhen({
|
|
266
|
+
protocolVersion: profile.protocolVersion,
|
|
267
|
+
capabilities: profile.clientCapabilities,
|
|
268
|
+
clientInfo: profile.clientInfo
|
|
269
|
+
});
|
|
270
|
+
},
|
|
271
|
+
match: uri => {
|
|
272
|
+
const match = templateMatcher.find(uri);
|
|
273
|
+
if (match === undefined) {
|
|
274
|
+
return undefined;
|
|
275
|
+
}
|
|
276
|
+
const params = [];
|
|
277
|
+
for (const key of Object.keys(match.params)) {
|
|
278
|
+
params[Number(key)] = match.params[key];
|
|
279
|
+
}
|
|
280
|
+
return params;
|
|
281
|
+
},
|
|
282
|
+
read: (uri, params, invocation) => handle(uri, Array.from(params)).pipe(Effect.provideService(McpServerClient, invocation.requestContext))
|
|
144
283
|
});
|
|
145
284
|
for (const [param, handle] of Object.entries(completions)) {
|
|
146
|
-
|
|
285
|
+
yield* internalCore.completions.register(`resource/${template.uriTemplate}/${param}`, request => handle(request.argument.value, request.context).pipe(Effect.map(result => ({
|
|
286
|
+
values: result.completion.values,
|
|
287
|
+
total: result.completion.total,
|
|
288
|
+
hasMore: result.completion.hasMore,
|
|
289
|
+
metadata: result._meta
|
|
290
|
+
}))));
|
|
147
291
|
}
|
|
148
|
-
|
|
292
|
+
yield* notifications.client["notifications/resources/list_changed"]({});
|
|
149
293
|
}),
|
|
150
|
-
findResource: uri => Effect.
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
294
|
+
findResource: uri => Effect.gen(function* () {
|
|
295
|
+
const client = yield* McpServerClient;
|
|
296
|
+
return yield* internalCore.resources.read(uri, {
|
|
297
|
+
clientId: client.clientId,
|
|
298
|
+
protocol: {
|
|
299
|
+
protocolVersion: client.protocolVersion,
|
|
300
|
+
clientCapabilities: client.clientCapabilities,
|
|
301
|
+
clientInfo: client.clientInfo,
|
|
302
|
+
requestMetadata: client.initializePayload._meta
|
|
303
|
+
},
|
|
304
|
+
requestContext: client
|
|
305
|
+
}).pipe(Effect.catchTag("ResourceNotFound", error => Effect.fail(new InvalidParams({
|
|
306
|
+
message: `Resource '${error.uri}' not found`
|
|
307
|
+
}))));
|
|
164
308
|
}),
|
|
165
309
|
get prompts() {
|
|
166
310
|
return prompts;
|
|
167
311
|
},
|
|
168
|
-
addPrompt: options => Effect.
|
|
169
|
-
prompts.
|
|
170
|
-
|
|
312
|
+
addPrompt: options => Effect.gen(function* () {
|
|
313
|
+
const existingIndex = prompts.findIndex(({
|
|
314
|
+
prompt
|
|
315
|
+
}) => prompt.name === options.prompt.name);
|
|
316
|
+
if (existingIndex === -1) {
|
|
317
|
+
prompts.push(options);
|
|
318
|
+
} else {
|
|
319
|
+
prompts[existingIndex] = options;
|
|
320
|
+
}
|
|
321
|
+
yield* internalCore.prompts.register({
|
|
322
|
+
descriptor: options.prompt,
|
|
323
|
+
isVisible: profile => {
|
|
324
|
+
const enabledWhen = Context.getOrUndefined(options.annotations, EnabledWhen);
|
|
325
|
+
return enabledWhen === undefined || enabledWhen({
|
|
326
|
+
protocolVersion: profile.protocolVersion,
|
|
327
|
+
capabilities: profile.clientCapabilities,
|
|
328
|
+
clientInfo: profile.clientInfo
|
|
329
|
+
});
|
|
330
|
+
},
|
|
331
|
+
get: (params, invocation) => options.handle(params).pipe(Effect.provideService(McpServerClient, invocation.requestContext))
|
|
332
|
+
});
|
|
171
333
|
for (const [param, handle] of Object.entries(options.completions)) {
|
|
172
|
-
|
|
334
|
+
yield* internalCore.completions.register(`prompt/${options.prompt.name}/${param}`, (request, invocation) => handle(request.argument.value, request.context).pipe(Effect.provideService(McpServerClient, invocation.requestContext), Effect.map(result => ({
|
|
335
|
+
values: result.completion.values,
|
|
336
|
+
total: result.completion.total,
|
|
337
|
+
hasMore: result.completion.hasMore,
|
|
338
|
+
metadata: result._meta
|
|
339
|
+
}))));
|
|
173
340
|
}
|
|
174
|
-
|
|
341
|
+
yield* notifications.client["notifications/prompts/list_changed"]({});
|
|
175
342
|
}),
|
|
176
343
|
getPromptResult: Effect.fnUntraced(function* ({
|
|
177
344
|
arguments: params,
|
|
178
345
|
name
|
|
179
346
|
}) {
|
|
180
|
-
const
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
return yield* handler(params ?? {});
|
|
347
|
+
const client = yield* McpServerClient;
|
|
348
|
+
return yield* internalCore.prompts.get(name, params ?? {}, McpProtocolInternal.invocationFromClient(client)).pipe(Effect.catchTag("PromptNotFound", () => new InvalidParams({
|
|
349
|
+
message: `Prompt '${name}' not found`
|
|
350
|
+
})));
|
|
187
351
|
}),
|
|
188
352
|
completion: Effect.fnUntraced(function* (complete) {
|
|
353
|
+
const client = yield* McpServerClient;
|
|
189
354
|
const ref = complete.ref;
|
|
190
|
-
const
|
|
191
|
-
|
|
192
|
-
|
|
355
|
+
const result = yield* internalCore.completions.complete({
|
|
356
|
+
reference: ref.type === "ref/resource" ? {
|
|
357
|
+
type: "resourceTemplate",
|
|
358
|
+
uriTemplate: ref.uri
|
|
359
|
+
} : {
|
|
360
|
+
type: "prompt",
|
|
361
|
+
name: ref.name
|
|
362
|
+
},
|
|
363
|
+
argument: complete.argument,
|
|
364
|
+
context: complete.context
|
|
365
|
+
}, McpProtocolInternal.invocationFromClient(client));
|
|
366
|
+
return {
|
|
367
|
+
_meta: result.metadata,
|
|
368
|
+
completion: {
|
|
369
|
+
values: result.values,
|
|
370
|
+
total: result.total,
|
|
371
|
+
hasMore: result.hasMore
|
|
372
|
+
}
|
|
373
|
+
};
|
|
193
374
|
})
|
|
194
375
|
});
|
|
376
|
+
internalState.set(service, {
|
|
377
|
+
core: internalCore,
|
|
378
|
+
notifications: notificationsQueue
|
|
379
|
+
});
|
|
380
|
+
return service;
|
|
195
381
|
});
|
|
196
382
|
/**
|
|
197
383
|
* Layer that provides the MCP server and client services.
|
|
@@ -200,10 +386,25 @@ export class McpServer extends /*#__PURE__*/Context.Service()("effect/ai/McpServ
|
|
|
200
386
|
*/
|
|
201
387
|
static layer = /*#__PURE__*/Layer.effect(McpServer)(McpServer.make);
|
|
202
388
|
}
|
|
203
|
-
const
|
|
204
|
-
const
|
|
205
|
-
const
|
|
206
|
-
const
|
|
389
|
+
const MCP_SESSION_ID_HEADER = "mcp-session-id";
|
|
390
|
+
const MCP_PROTOCOL_VERSION_HEADER = "mcp-protocol-version";
|
|
391
|
+
const MCP_INVALID_BATCH_METHOD = "invalid/json-rpc-batch";
|
|
392
|
+
const requestKey = requestId => `${typeof requestId}:${requestId}`;
|
|
393
|
+
class McpClientKey extends Data.Class {}
|
|
394
|
+
class McpProtocolState extends /*#__PURE__*/Context.Service()("effect/ai/McpServer/McpProtocolState") {}
|
|
395
|
+
const makeMcpProtocolState = /*#__PURE__*/Effect.fnUntraced(function* (protocols) {
|
|
396
|
+
// TODO: Replace the shared session map with an adapter-owned lifecycle strategy
|
|
397
|
+
// before v2026-07-28. The strategy must let sessionful revisions pin a profile
|
|
398
|
+
// after initialize while stateless revisions select and derive it per request.
|
|
399
|
+
return McpProtocolState.of({
|
|
400
|
+
sessions: {
|
|
401
|
+
bySessionId: new Map(),
|
|
402
|
+
byClientId: new Map()
|
|
403
|
+
},
|
|
404
|
+
protocolRegistry: yield* McpProtocolRegistry.make(protocols)
|
|
405
|
+
});
|
|
406
|
+
});
|
|
407
|
+
const layerMcpProtocolState = protocols => Layer.effect(McpProtocolState)(makeMcpProtocolState(protocols));
|
|
207
408
|
/**
|
|
208
409
|
* Runs an MCP server over the current `RpcServer.Protocol`.
|
|
209
410
|
*
|
|
@@ -213,29 +414,40 @@ const mcpProtocolVersionHeader = "mcp-protocol-version";
|
|
|
213
414
|
* tools, resources, and prompts, and forwards queued server notifications to
|
|
214
415
|
* initialized clients.
|
|
215
416
|
*
|
|
216
|
-
* @category
|
|
417
|
+
* @category running
|
|
217
418
|
* @since 4.0.0
|
|
218
419
|
*/
|
|
219
420
|
export const run = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
421
|
+
const protocolStateOption = yield* Effect.serviceOption(McpProtocolState);
|
|
422
|
+
const protocolState = Option.isSome(protocolStateOption) ? protocolStateOption.value : yield* makeMcpProtocolState(options.protocols);
|
|
423
|
+
return yield* runWithProtocolState(options, protocolState);
|
|
424
|
+
});
|
|
425
|
+
const runWithProtocolState = /*#__PURE__*/Effect.fnUntraced(function* (options, protocolState) {
|
|
426
|
+
const protocolRegistry = protocolState.protocolRegistry;
|
|
427
|
+
const serverScope = yield* Effect.scope;
|
|
220
428
|
const protocol = yield* RpcServer.Protocol;
|
|
221
429
|
const server = yield* McpServer;
|
|
430
|
+
const defaultLogLevel = yield* CurrentLogLevel;
|
|
222
431
|
const isHttp = Option.isSome(yield* Effect.serviceOption(HttpRouter.HttpRouter));
|
|
223
|
-
const
|
|
432
|
+
const sessions = protocolState.sessions;
|
|
433
|
+
const clientProtocols = new Map();
|
|
434
|
+
const activeRequests = new Map();
|
|
435
|
+
const clientProfiles = new Map();
|
|
224
436
|
const handlers = yield* Layer.build(layerHandlers(options, {
|
|
225
|
-
|
|
437
|
+
sessions,
|
|
438
|
+
protocolRegistry
|
|
226
439
|
}));
|
|
227
440
|
const clients = yield* RcMap.make({
|
|
228
|
-
lookup: Effect.fnUntraced(function* (
|
|
441
|
+
lookup: Effect.fnUntraced(function* (key) {
|
|
442
|
+
const selectedProtocol = protocolRegistry.select(key.profile.protocolVersion);
|
|
229
443
|
let write;
|
|
230
|
-
const
|
|
231
|
-
spanPrefix: "McpServer/Client"
|
|
232
|
-
}).pipe(Effect.provideServiceEffect(RpcClient.Protocol, RpcClient.Protocol.make(Effect.fnUntraced(function* (writeResponse) {
|
|
444
|
+
const reverseProtocol = yield* RpcClient.Protocol.make(Effect.fnUntraced(function* (writeResponse) {
|
|
233
445
|
let cid = 0;
|
|
234
446
|
write = message => writeResponse(cid, message);
|
|
235
447
|
return {
|
|
236
448
|
send(id, request, _transferables) {
|
|
237
449
|
cid = id;
|
|
238
|
-
return protocol.send(clientId, {
|
|
450
|
+
return protocol.send(key.clientId, {
|
|
239
451
|
...request,
|
|
240
452
|
headers: undefined,
|
|
241
453
|
traceId: undefined,
|
|
@@ -247,7 +459,8 @@ export const run = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
247
459
|
supportsTransferables: false,
|
|
248
460
|
supportsStructuredClone: false
|
|
249
461
|
};
|
|
250
|
-
}))
|
|
462
|
+
}));
|
|
463
|
+
const client = yield* selectedProtocol.makeReverseClient(key.profile).pipe(Effect.provideService(RpcClient.Protocol, reverseProtocol));
|
|
251
464
|
return {
|
|
252
465
|
client,
|
|
253
466
|
write
|
|
@@ -258,95 +471,291 @@ export const run = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
258
471
|
const clientMiddleware = McpServerClientMiddleware.of((effect, {
|
|
259
472
|
client,
|
|
260
473
|
headers,
|
|
474
|
+
payload,
|
|
261
475
|
rpc
|
|
262
476
|
}) => {
|
|
263
|
-
const
|
|
264
|
-
const isInitialize = rpc._tag
|
|
265
|
-
if (!isInitialize && !
|
|
477
|
+
const session = getClientSession(sessions, client.id, headers);
|
|
478
|
+
const isInitialize = rpc._tag.endsWith("/initialize");
|
|
479
|
+
if (!isInitialize && !session) {
|
|
266
480
|
const fiber = Fiber.getCurrent();
|
|
267
481
|
const httpRequest = Context.getOrUndefined(fiber.context, HttpServerRequest.HttpServerRequest);
|
|
268
482
|
if (httpRequest) {
|
|
269
483
|
appendPreResponseHandlerUnsafe(httpRequest, () => Effect.succeed(HttpServerResponse.empty({
|
|
270
|
-
status: 404
|
|
484
|
+
status: headers[MCP_SESSION_ID_HEADER] === undefined ? 400 : 404
|
|
271
485
|
})));
|
|
272
486
|
}
|
|
273
487
|
return Effect.die(new Error(`Mcp-Session-Id does not exist`));
|
|
274
488
|
}
|
|
275
|
-
|
|
489
|
+
const selectedProtocol = session?.protocol ?? protocolForInternalTag(protocolRegistry, rpc._tag);
|
|
490
|
+
// NOTE: RPC middleware erases the correlation between the initialize tag
|
|
491
|
+
// and its decoded payload. Restore it once after non-initialize requests
|
|
492
|
+
// without a session have been rejected above.
|
|
493
|
+
const initializePayload = session?.initializePayload ?? payload;
|
|
494
|
+
const profile = session?.negotiatedProfile ?? {
|
|
495
|
+
protocolVersion: selectedProtocol.protocolVersion,
|
|
496
|
+
clientCapabilities: initializePayload.capabilities,
|
|
497
|
+
clientInfo: initializePayload.clientInfo
|
|
498
|
+
};
|
|
499
|
+
clientProfiles.set(client.id, profile);
|
|
500
|
+
return Effect.provideService(Effect.provideService(effect, McpServerClient, McpServerClient.of({
|
|
276
501
|
clientId: client.id,
|
|
277
|
-
|
|
278
|
-
|
|
502
|
+
protocolVersion: session?.negotiatedProfile.protocolVersion ?? selectedProtocol.protocolVersion,
|
|
503
|
+
clientCapabilities: profile.clientCapabilities,
|
|
504
|
+
clientInfo: profile.clientInfo,
|
|
505
|
+
initializePayload,
|
|
506
|
+
getClient: RcMap.get(clients, new McpClientKey({
|
|
507
|
+
clientId: client.id,
|
|
508
|
+
profile
|
|
509
|
+
})).pipe(Effect.map(({
|
|
279
510
|
client
|
|
280
511
|
}) => client))
|
|
281
|
-
}));
|
|
512
|
+
})), CurrentLogLevel, effectLogLevel(session?.logLevel, defaultLogLevel));
|
|
282
513
|
});
|
|
283
514
|
const patchedProtocol = RpcServer.Protocol.of({
|
|
284
515
|
...protocol,
|
|
516
|
+
send: (clientId, response) => {
|
|
517
|
+
if (response._tag === "Exit") {
|
|
518
|
+
const requests = activeRequests.get(clientId);
|
|
519
|
+
const key = requestKey(response.requestId);
|
|
520
|
+
const cancelled = requests?.get(key);
|
|
521
|
+
if (requests !== undefined && requests.delete(key) && requests.size === 0) {
|
|
522
|
+
activeRequests.delete(clientId);
|
|
523
|
+
}
|
|
524
|
+
if (cancelled === true) {
|
|
525
|
+
return Effect.void;
|
|
526
|
+
}
|
|
527
|
+
if (response.exit._tag === "Failure" && !response.exit.cause.some(failure => failure._tag === "Fail")) {
|
|
528
|
+
return protocol.send(clientId, {
|
|
529
|
+
_tag: "Exit",
|
|
530
|
+
requestId: response.requestId,
|
|
531
|
+
exit: {
|
|
532
|
+
_tag: "Failure",
|
|
533
|
+
cause: [{
|
|
534
|
+
_tag: "Fail",
|
|
535
|
+
error: new InternalError({
|
|
536
|
+
message: "Internal error"
|
|
537
|
+
})
|
|
538
|
+
}]
|
|
539
|
+
}
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
return protocol.send(clientId, response);
|
|
544
|
+
},
|
|
285
545
|
run: f => protocol.run((clientId, request_) => {
|
|
546
|
+
const fiber = Fiber.getCurrent();
|
|
286
547
|
const request = request_;
|
|
548
|
+
const httpRequest = isHttp ? Context.getOrUndefined(fiber.context, HttpServerRequest.HttpServerRequest) : undefined;
|
|
549
|
+
if (httpRequest !== undefined && request._tag !== "Eof") {
|
|
550
|
+
appendPreResponseHandlerUnsafe(httpRequest, (_, response) => Effect.succeed(response.status === 200 && response.body._tag === "Uint8Array" && response.body.contentLength === 0 ? HttpServerResponse.empty({
|
|
551
|
+
headers: Headers.remove(response.headers, "content-type"),
|
|
552
|
+
status: 202
|
|
553
|
+
}) : response));
|
|
554
|
+
}
|
|
287
555
|
switch (request._tag) {
|
|
288
556
|
case "Request":
|
|
289
557
|
{
|
|
558
|
+
const headers = isHttp ? Context.getUnsafe(Fiber.getCurrent().context, HttpServerRequest.HttpServerRequest).headers : Headers.fromInput(request.headers);
|
|
559
|
+
const session = getClientSession(sessions, clientId, headers);
|
|
560
|
+
const selectedProtocol = session?.protocol ?? (request.tag === "initialize" ? protocolRegistry.select(getOfferedProtocolVersion(request.payload)) : protocolRegistry.protocols[0]);
|
|
561
|
+
// Selection happens before dated payload decoding. Once a
|
|
562
|
+
// session exists, all later messages reuse its pinned adapter.
|
|
563
|
+
clientProtocols.set(clientId, selectedProtocol);
|
|
564
|
+
if (request.tag === MCP_INVALID_BATCH_METHOD) {
|
|
565
|
+
return protocol.send(clientId, {
|
|
566
|
+
_tag: "Exit",
|
|
567
|
+
requestId: request.id,
|
|
568
|
+
exit: {
|
|
569
|
+
_tag: "Failure",
|
|
570
|
+
cause: [{
|
|
571
|
+
_tag: "Fail",
|
|
572
|
+
error: new InvalidRequest({
|
|
573
|
+
message: "JSON-RPC batches are not supported"
|
|
574
|
+
})
|
|
575
|
+
}]
|
|
576
|
+
}
|
|
577
|
+
});
|
|
578
|
+
}
|
|
290
579
|
if (isHttp) {
|
|
291
580
|
const fiber = Fiber.getCurrent();
|
|
292
581
|
const httpRequest = Context.getUnsafe(fiber.context, HttpServerRequest.HttpServerRequest);
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
appendPreResponseHandlerUnsafe(httpRequest, (_, res) => Effect.succeed(HttpServerResponse.setHeader(res, mcpProtocolVersionHeader, client.protocolVersion)));
|
|
582
|
+
if (session) {
|
|
583
|
+
appendPreResponseHandlerUnsafe(httpRequest, (_, res) => Effect.succeed(HttpServerResponse.setHeader(res, MCP_PROTOCOL_VERSION_HEADER, session.protocol.protocolVersion)));
|
|
296
584
|
}
|
|
297
585
|
}
|
|
298
|
-
const
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
586
|
+
const routedRequest = protocolRegistry.routeClientRequest(selectedProtocol, request);
|
|
587
|
+
const rpc = protocolRegistry.clientRpcs.requests.get(routedRequest.tag);
|
|
588
|
+
if (rpc && selectedProtocol.clientNotificationRpcs.requests.has(request.tag)) {
|
|
589
|
+
if (!session) {
|
|
590
|
+
if (httpRequest) {
|
|
591
|
+
appendPreResponseHandlerUnsafe(httpRequest, () => Effect.succeed(HttpServerResponse.empty({
|
|
592
|
+
status: headers[MCP_SESSION_ID_HEADER] === undefined ? 400 : 404
|
|
593
|
+
})));
|
|
594
|
+
}
|
|
595
|
+
return Effect.void;
|
|
305
596
|
}
|
|
306
|
-
const
|
|
307
|
-
return
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
597
|
+
const decode = selectedProtocol.payloadCodecs(rpc).decode(request.payload);
|
|
598
|
+
return decode.pipe(Effect.flatMap(payload => {
|
|
599
|
+
if (request.tag === "notifications/roots/list_changed" && session.initializePayload.capabilities.roots?.listChanged === true && httpRequest === undefined) {
|
|
600
|
+
return RcMap.get(clients, new McpClientKey({
|
|
601
|
+
clientId,
|
|
602
|
+
profile: session.negotiatedProfile
|
|
603
|
+
})).pipe(Effect.flatMap(({
|
|
604
|
+
client
|
|
605
|
+
}) => client.listRoots()), Effect.scoped, Effect.ignoreCause, Effect.forkIn(serverScope), Effect.asVoid);
|
|
606
|
+
}
|
|
607
|
+
if (request.tag === "notifications/cancelled") {
|
|
608
|
+
return selectedProtocol.normalizeCancellation(payload).pipe(Effect.flatMap(cancellation => {
|
|
609
|
+
const key = requestKey(cancellation.requestId);
|
|
610
|
+
const requests = activeRequests.get(clientId);
|
|
611
|
+
if (requests?.has(key) !== true) {
|
|
612
|
+
return Effect.void;
|
|
613
|
+
}
|
|
614
|
+
requests.set(key, true);
|
|
615
|
+
return f(clientId, {
|
|
616
|
+
_tag: "Interrupt",
|
|
617
|
+
requestId: String(cancellation.requestId)
|
|
618
|
+
});
|
|
619
|
+
}));
|
|
620
|
+
}
|
|
621
|
+
const handler = handlers.mapUnsafe.get(rpc.key);
|
|
622
|
+
return handler ? handler.handler(payload, {
|
|
623
|
+
rpc,
|
|
624
|
+
requestId: RpcMessage.RequestId(request.id),
|
|
625
|
+
client: new Rpc.ServerClient(clientId),
|
|
626
|
+
headers
|
|
627
|
+
}) : Effect.void;
|
|
628
|
+
}), Effect.ignoreCause);
|
|
313
629
|
}
|
|
314
|
-
|
|
630
|
+
if (!rpc) {
|
|
631
|
+
if (request.isNotification) {
|
|
632
|
+
return Effect.void;
|
|
633
|
+
}
|
|
634
|
+
return protocol.send(clientId, {
|
|
635
|
+
_tag: "Exit",
|
|
636
|
+
requestId: request.id,
|
|
637
|
+
exit: {
|
|
638
|
+
_tag: "Failure",
|
|
639
|
+
cause: [{
|
|
640
|
+
_tag: "Fail",
|
|
641
|
+
error: new MethodNotFound({
|
|
642
|
+
message: `Method not found: ${request.tag}`
|
|
643
|
+
})
|
|
644
|
+
}]
|
|
645
|
+
}
|
|
646
|
+
});
|
|
647
|
+
}
|
|
648
|
+
return selectedProtocol.payloadCodecs(rpc).decode(request.payload).pipe(Effect.matchEffect({
|
|
649
|
+
onSuccess: () => {
|
|
650
|
+
if (request.isNotification !== true) {
|
|
651
|
+
const requests = activeRequests.get(clientId) ?? new Map();
|
|
652
|
+
requests.set(requestKey(request.id), false);
|
|
653
|
+
activeRequests.set(clientId, requests);
|
|
654
|
+
}
|
|
655
|
+
return f(clientId, routedRequest);
|
|
656
|
+
},
|
|
657
|
+
onFailure: () => request.isNotification ? Effect.void : protocol.send(clientId, {
|
|
658
|
+
_tag: "Exit",
|
|
659
|
+
requestId: request.id,
|
|
660
|
+
exit: {
|
|
661
|
+
_tag: "Failure",
|
|
662
|
+
cause: [{
|
|
663
|
+
_tag: "Fail",
|
|
664
|
+
error: new InvalidParams({
|
|
665
|
+
message: "Invalid method parameters"
|
|
666
|
+
})
|
|
667
|
+
}]
|
|
668
|
+
}
|
|
669
|
+
})
|
|
670
|
+
}));
|
|
315
671
|
}
|
|
316
672
|
case "Ping":
|
|
317
673
|
case "Ack":
|
|
318
674
|
case "Interrupt":
|
|
675
|
+
return f(clientId, request);
|
|
319
676
|
case "Eof":
|
|
677
|
+
activeRequests.delete(clientId);
|
|
678
|
+
clientProtocols.delete(clientId);
|
|
679
|
+
clientProfiles.delete(clientId);
|
|
680
|
+
if (!isHttp) {
|
|
681
|
+
sessions.byClientId.delete(clientId);
|
|
682
|
+
}
|
|
320
683
|
return f(clientId, request);
|
|
321
684
|
case "Pong":
|
|
322
685
|
case "Exit":
|
|
323
686
|
case "Chunk":
|
|
324
687
|
case "ClientProtocolError":
|
|
325
688
|
case "Defect":
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
689
|
+
{
|
|
690
|
+
const selectedProtocol = getProtocolForClient(clientProtocols, clientId, protocolRegistry);
|
|
691
|
+
const profile = clientProfiles.get(clientId) ?? {
|
|
692
|
+
protocolVersion: selectedProtocol.protocolVersion,
|
|
693
|
+
clientCapabilities: {},
|
|
694
|
+
clientInfo: {
|
|
695
|
+
name: "unknown",
|
|
696
|
+
version: "unknown"
|
|
697
|
+
}
|
|
698
|
+
};
|
|
699
|
+
return RcMap.get(clients, new McpClientKey({
|
|
700
|
+
clientId,
|
|
701
|
+
profile
|
|
702
|
+
})).pipe(Effect.flatMap(({
|
|
703
|
+
write
|
|
704
|
+
}) => write(request)), Effect.scoped);
|
|
705
|
+
}
|
|
329
706
|
}
|
|
330
707
|
})
|
|
331
708
|
});
|
|
332
|
-
|
|
333
|
-
yield* Queue.take(server.notificationsQueue).pipe(Effect.flatMap(Effect.fnUntraced(function* (request) {
|
|
334
|
-
const encoded = yield* encodeNotification(request.payload);
|
|
335
|
-
const message = {
|
|
336
|
-
_tag: "Request",
|
|
337
|
-
tag: request.tag,
|
|
338
|
-
payload: encoded
|
|
339
|
-
};
|
|
709
|
+
yield* Queue.take(internalState.get(server).notifications).pipe(Effect.flatMap(Effect.fnUntraced(function* (notification) {
|
|
340
710
|
const clientIds = yield* patchedProtocol.clientIds;
|
|
711
|
+
for (const clientId of clientProtocols.keys()) {
|
|
712
|
+
if (!clientIds.has(clientId)) {
|
|
713
|
+
clientProtocols.delete(clientId);
|
|
714
|
+
clientProfiles.delete(clientId);
|
|
715
|
+
// HTTP client IDs are request-scoped; their UUID sessions outlive them.
|
|
716
|
+
if (!isHttp) {
|
|
717
|
+
sessions.byClientId.delete(clientId);
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
}
|
|
341
721
|
for (const clientId of server.initializedClients.keys()) {
|
|
342
722
|
if (!clientIds.has(clientId)) {
|
|
343
723
|
server.initializedClients.delete(clientId);
|
|
344
724
|
continue;
|
|
345
725
|
}
|
|
346
|
-
|
|
726
|
+
const selectedProtocol = clientProtocols.get(clientId);
|
|
727
|
+
if (!selectedProtocol) {
|
|
728
|
+
continue;
|
|
729
|
+
}
|
|
730
|
+
yield* Effect.gen(function* () {
|
|
731
|
+
const projected = yield* selectedProtocol.projectNotification(notification);
|
|
732
|
+
if (projected === undefined) {
|
|
733
|
+
return;
|
|
734
|
+
}
|
|
735
|
+
const session = sessions.byClientId.get(clientId);
|
|
736
|
+
if (notification._tag === "LoggingMessage" && !isMcpLogLevelEnabled(notification.level, session?.logLevel, defaultLogLevel)) {
|
|
737
|
+
return;
|
|
738
|
+
}
|
|
739
|
+
if (notification._tag === "ResourceUpdated" && session?.resourceSubscriptions?.has(notification.uri) !== true) {
|
|
740
|
+
return;
|
|
741
|
+
}
|
|
742
|
+
const rpc = selectedProtocol.serverNotificationRpcs.requests.get(projected.tag);
|
|
743
|
+
if (!rpc) {
|
|
744
|
+
return;
|
|
745
|
+
}
|
|
746
|
+
const encoded = yield* selectedProtocol.payloadCodecs(rpc).encode(projected.payload);
|
|
747
|
+
// TODO: Extend RpcServer.Protocol's outbound message contract with server-originated
|
|
748
|
+
// notifications so MCP does not need to treat this notification as an RPC response.
|
|
749
|
+
const message = {
|
|
750
|
+
_tag: "Request",
|
|
751
|
+
tag: projected.tag,
|
|
752
|
+
payload: encoded
|
|
753
|
+
};
|
|
754
|
+
yield* patchedProtocol.send(clientId, message);
|
|
755
|
+
}).pipe(Effect.catchCause(() => Effect.void));
|
|
347
756
|
}
|
|
348
757
|
})), Effect.catchCause(() => Effect.void), Effect.forever, Effect.forkScoped);
|
|
349
|
-
return yield* RpcServer.make(
|
|
758
|
+
return yield* RpcServer.make(protocolRegistry.clientRpcs, {
|
|
350
759
|
spanPrefix: "McpServer",
|
|
351
760
|
disableFatalDefects: true
|
|
352
761
|
}).pipe(Effect.provideService(RpcServer.Protocol, patchedProtocol), Effect.provideService(McpServerClientMiddleware, clientMiddleware), Effect.provide(handlers));
|
|
@@ -380,69 +789,90 @@ export const run = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
380
789
|
* @category layers
|
|
381
790
|
* @since 4.0.0
|
|
382
791
|
*/
|
|
383
|
-
export const layer = options =>
|
|
792
|
+
export const layer = options => layerWithProtocolState(options).pipe(Layer.provide(layerMcpProtocolState(options.protocols)));
|
|
793
|
+
const layerWithProtocolState = options => Layer.effectDiscard(Effect.gen(function* () {
|
|
794
|
+
const protocolState = yield* McpProtocolState;
|
|
795
|
+
yield* Effect.forkScoped(runWithProtocolState(options, protocolState));
|
|
796
|
+
})).pipe(Layer.provideMerge(McpServer.layer));
|
|
384
797
|
/**
|
|
385
|
-
*
|
|
386
|
-
*
|
|
387
|
-
* **
|
|
388
|
-
*
|
|
389
|
-
*
|
|
390
|
-
*
|
|
391
|
-
*
|
|
392
|
-
*
|
|
393
|
-
*
|
|
394
|
-
*
|
|
395
|
-
*
|
|
396
|
-
*
|
|
397
|
-
*
|
|
398
|
-
*
|
|
399
|
-
*
|
|
400
|
-
* completion: {
|
|
401
|
-
* id: (_) => Effect.succeed([1, 2, 3, 4, 5])
|
|
402
|
-
* },
|
|
403
|
-
* content: Effect.fn(function*(_uri, id) {
|
|
404
|
-
* return `# MCP Server Demo - ID: ${id}`
|
|
405
|
-
* })
|
|
406
|
-
* })
|
|
407
|
-
*
|
|
408
|
-
* // Define a test prompt with parameters
|
|
409
|
-
* const TestPrompt = McpServer.prompt({
|
|
410
|
-
* name: "Test Prompt",
|
|
411
|
-
* description: "A test prompt to demonstrate MCP server capabilities",
|
|
412
|
-
* parameters: {
|
|
413
|
-
* flightNumber: Schema.String
|
|
414
|
-
* },
|
|
415
|
-
* completion: {
|
|
416
|
-
* flightNumber: () => Effect.succeed(["FL123", "FL456", "FL789"])
|
|
417
|
-
* },
|
|
418
|
-
* content: ({ flightNumber }) =>
|
|
419
|
-
* Effect.succeed(`Get the booking details for flight number: ${flightNumber}`)
|
|
420
|
-
* })
|
|
421
|
-
*
|
|
422
|
-
* // Merge all the resources and prompts into a single server layer
|
|
423
|
-
* const ServerLayer = Layer.mergeAll(
|
|
424
|
-
* ReadmeTemplate,
|
|
425
|
-
* TestPrompt
|
|
426
|
-
* ).pipe(
|
|
427
|
-
* // Provide the MCP server implementation
|
|
428
|
-
* Layer.provide(McpServer.layerStdio({
|
|
429
|
-
* name: "Demo Server",
|
|
430
|
-
* version: "1.0.0",
|
|
431
|
-
* })),
|
|
432
|
-
* Layer.provide(NodeStdio.layer),
|
|
433
|
-
* Layer.provide(Layer.succeed(Logger.LogToStderr)(true))
|
|
434
|
-
* )
|
|
435
|
-
*
|
|
436
|
-
* Layer.launch(ServerLayer).pipe(NodeRuntime.runMain)
|
|
437
|
-
* ```
|
|
798
|
+
* Creates a layer that runs an MCP server over standard input and output.
|
|
799
|
+
*
|
|
800
|
+
* **When to use**
|
|
801
|
+
*
|
|
802
|
+
* Use when an MCP client launches the server as a subprocess and communicates
|
|
803
|
+
* through newline-delimited JSON-RPC messages.
|
|
804
|
+
*
|
|
805
|
+
* **Details**
|
|
806
|
+
*
|
|
807
|
+
* The selected protocol adapter controls the dated RPC schemas and JSON-RPC
|
|
808
|
+
* batch policy. The layer provides `McpServer` and `McpServerClient` and
|
|
809
|
+
* requires `Stdio`.
|
|
810
|
+
*
|
|
811
|
+
* @see {@link layer} for running over an existing `RpcServer.Protocol`
|
|
812
|
+
* @see {@link layerHttp} for the single-endpoint HTTP transport
|
|
438
813
|
*
|
|
439
814
|
* @category layers
|
|
440
815
|
* @since 4.0.0
|
|
441
816
|
*/
|
|
442
|
-
export const layerStdio = options => layer(options).pipe(Layer.provide(RpcServer.layerProtocolStdio), Layer.provide(RpcSerialization.
|
|
817
|
+
export const layerStdio = options => layer(options).pipe(Layer.provide(RpcServer.layerProtocolStdio), Layer.provide(Layer.succeed(RpcSerialization.RpcSerialization, mcpStdioSerialization(options.protocols))));
|
|
818
|
+
const mcpStdioSerialization = protocols => {
|
|
819
|
+
const serialization = RpcSerialization.jsonRpc({
|
|
820
|
+
contentType: "application/json-rpc"
|
|
821
|
+
});
|
|
822
|
+
return RpcSerialization.RpcSerialization.of({
|
|
823
|
+
contentType: serialization.contentType,
|
|
824
|
+
includesFraming: true,
|
|
825
|
+
makeUnsafe: () => {
|
|
826
|
+
const frames = RpcSerialization.ndjson.makeUnsafe();
|
|
827
|
+
const parser = serialization.makeUnsafe();
|
|
828
|
+
let selectedProtocol;
|
|
829
|
+
return {
|
|
830
|
+
decode: data => {
|
|
831
|
+
const decoded = [];
|
|
832
|
+
for (const frame of frames.decode(data)) {
|
|
833
|
+
if (Array.isArray(frame)) {
|
|
834
|
+
const acceptsBatch = selectedProtocol?.transport.acceptsJsonRpcBatches === true;
|
|
835
|
+
if (!acceptsBatch || frame.length === 0 || frame.some(isInitializeJsonRpcMessage)) {
|
|
836
|
+
decoded.push({
|
|
837
|
+
_tag: "Request",
|
|
838
|
+
id: null,
|
|
839
|
+
tag: MCP_INVALID_BATCH_METHOD,
|
|
840
|
+
payload: null,
|
|
841
|
+
headers: []
|
|
842
|
+
});
|
|
843
|
+
continue;
|
|
844
|
+
}
|
|
845
|
+
} else if (isInitializeJsonRpcMessage(frame)) {
|
|
846
|
+
const offered = getJsonRpcProtocolVersion(frame);
|
|
847
|
+
selectedProtocol = protocols.find(protocol => protocol.protocolVersion === offered) ?? protocols[0];
|
|
848
|
+
}
|
|
849
|
+
decoded.push(...parser.decode(JSON.stringify(frame)));
|
|
850
|
+
}
|
|
851
|
+
return decoded;
|
|
852
|
+
},
|
|
853
|
+
encode: response => {
|
|
854
|
+
const invalidBatchExit = decodeInvalidBatchExit(response);
|
|
855
|
+
if (Result.isSuccess(invalidBatchExit)) {
|
|
856
|
+
return JSON.stringify({
|
|
857
|
+
jsonrpc: "2.0",
|
|
858
|
+
id: null,
|
|
859
|
+
error: {
|
|
860
|
+
_tag: "Cause",
|
|
861
|
+
code: McpSchema.INVALID_REQUEST_ERROR_CODE,
|
|
862
|
+
message: "JSON-RPC batches are not supported",
|
|
863
|
+
data: invalidBatchExit.success.exit.cause
|
|
864
|
+
}
|
|
865
|
+
}) + "\n";
|
|
866
|
+
}
|
|
867
|
+
const encoded = parser.encode(response);
|
|
868
|
+
return encoded === undefined ? undefined : `${encoded}\n`;
|
|
869
|
+
}
|
|
870
|
+
};
|
|
871
|
+
}
|
|
872
|
+
});
|
|
873
|
+
};
|
|
443
874
|
/**
|
|
444
|
-
* Registers
|
|
445
|
-
* `HttpRouter`.
|
|
875
|
+
* Registers a Streamable HTTP MCP endpoint at `options.path`.
|
|
446
876
|
*
|
|
447
877
|
* **When to use**
|
|
448
878
|
*
|
|
@@ -450,8 +880,18 @@ export const layerStdio = options => layer(options).pipe(Layer.provide(RpcServer
|
|
|
450
880
|
*
|
|
451
881
|
* **Details**
|
|
452
882
|
*
|
|
453
|
-
*
|
|
454
|
-
*
|
|
883
|
+
* POST serves JSON-RPC and accepted notification-only requests return `202`.
|
|
884
|
+
* Unsupported protocol versions return `400`; methods without MCP handlers
|
|
885
|
+
* return `405`. Requests carrying an `Origin` header are rejected unless the
|
|
886
|
+
* exact origin appears in `allowedOrigins`; Origin-less non-browser clients
|
|
887
|
+
* remain valid. The surrounding HTTP server remains responsible for binding
|
|
888
|
+
* to an appropriate interface and installing authentication.
|
|
889
|
+
*
|
|
890
|
+
* `layerHttp` always implements the single-endpoint Streamable HTTP topology.
|
|
891
|
+
* Using `v2024_11_05` here is a custom compatibility transport for that
|
|
892
|
+
* revision's schema. It does not implement the historical two-endpoint
|
|
893
|
+
* HTTP+SSE transport, GET SSE, event resumption, session expiry, or client
|
|
894
|
+
* session termination.
|
|
455
895
|
*
|
|
456
896
|
* @see {@link layerStdio} for exposing the server over stdio
|
|
457
897
|
* @see {@link layer} for the base MCP server layer without a transport protocol
|
|
@@ -459,11 +899,177 @@ export const layerStdio = options => layer(options).pipe(Layer.provide(RpcServer
|
|
|
459
899
|
* @category layers
|
|
460
900
|
* @since 4.0.0
|
|
461
901
|
*/
|
|
462
|
-
export const layerHttp = options =>
|
|
902
|
+
export const layerHttp = options => {
|
|
903
|
+
const protocolState = layerMcpProtocolState(options.protocols);
|
|
904
|
+
const methodNotAllowedResponse = HttpServerResponse.empty({
|
|
905
|
+
status: 405,
|
|
906
|
+
headers: {
|
|
907
|
+
allow: "POST"
|
|
908
|
+
}
|
|
909
|
+
});
|
|
910
|
+
const methodNotAllowed = request => isAllowedMcpOrigin(request, options.allowedOrigins) ? Effect.succeed(methodNotAllowedResponse) : Effect.succeed(HttpServerResponse.empty({
|
|
911
|
+
status: 403
|
|
912
|
+
}));
|
|
913
|
+
const routes = Layer.mergeAll(HttpRouter.add("GET", options.path, methodNotAllowed), HttpRouter.add("PUT", options.path, methodNotAllowed), HttpRouter.add("PATCH", options.path, methodNotAllowed), HttpRouter.add("DELETE", options.path, methodNotAllowed), HttpRouter.add("OPTIONS", options.path, methodNotAllowed));
|
|
914
|
+
return Layer.merge(layerWithProtocolState(options), routes).pipe(Layer.provide(layerMcpProtocolHttp(options)), Layer.provide(protocolState), Layer.provide(RpcSerialization.layerJsonRpc()));
|
|
915
|
+
};
|
|
916
|
+
const layerMcpProtocolHttp = options => Layer.effect(RpcServer.Protocol)(Effect.gen(function* () {
|
|
917
|
+
const state = yield* McpProtocolState;
|
|
918
|
+
const {
|
|
919
|
+
httpEffect,
|
|
920
|
+
protocol
|
|
921
|
+
} = yield* RpcServer.makeProtocolWithHttpEffect;
|
|
922
|
+
const router = yield* HttpRouter.HttpRouter;
|
|
923
|
+
yield* router.add("POST", options.path, request => {
|
|
924
|
+
if (!isAllowedMcpOrigin(request, options.allowedOrigins)) {
|
|
925
|
+
return Effect.succeed(HttpServerResponse.empty({
|
|
926
|
+
status: 403
|
|
927
|
+
}));
|
|
928
|
+
}
|
|
929
|
+
if (mcpMediaTypes(request.headers["content-type"])[0] !== "application/json") {
|
|
930
|
+
return Effect.succeed(HttpServerResponse.empty({
|
|
931
|
+
status: 415
|
|
932
|
+
}));
|
|
933
|
+
}
|
|
934
|
+
const accepted = mcpMediaTypes(request.headers["accept"]);
|
|
935
|
+
if (!accepted.includes("application/json") || !accepted.includes("text/event-stream")) {
|
|
936
|
+
return Effect.succeed(HttpServerResponse.empty({
|
|
937
|
+
status: 406
|
|
938
|
+
}));
|
|
939
|
+
}
|
|
940
|
+
const protocolVersion = request.headers[MCP_PROTOCOL_VERSION_HEADER];
|
|
941
|
+
const sessionId = request.headers[MCP_SESSION_ID_HEADER];
|
|
942
|
+
const session = sessionId === undefined ? undefined : state.sessions.bySessionId.get(sessionId);
|
|
943
|
+
if (sessionId !== undefined && session === undefined) {
|
|
944
|
+
return Effect.succeed(HttpServerResponse.empty({
|
|
945
|
+
status: 404
|
|
946
|
+
}));
|
|
947
|
+
}
|
|
948
|
+
if (protocolVersion !== undefined && !state.protocolRegistry.protocols.some(protocol => protocol.protocolVersion === protocolVersion)) {
|
|
949
|
+
return Effect.succeed(HttpServerResponse.empty({
|
|
950
|
+
status: 400
|
|
951
|
+
}));
|
|
952
|
+
}
|
|
953
|
+
if (session?.protocol.transport.requiresVersionHeader === true && protocolVersion !== session.protocol.protocolVersion) {
|
|
954
|
+
return Effect.succeed(HttpServerResponse.empty({
|
|
955
|
+
status: 400
|
|
956
|
+
}));
|
|
957
|
+
}
|
|
958
|
+
return request.text.pipe(Effect.matchEffect({
|
|
959
|
+
onFailure: () => Effect.succeed(HttpServerResponse.jsonUnsafe({
|
|
960
|
+
jsonrpc: "2.0",
|
|
961
|
+
id: null,
|
|
962
|
+
error: new McpSchema.ParseError({
|
|
963
|
+
message: "Parse error"
|
|
964
|
+
})
|
|
965
|
+
})),
|
|
966
|
+
onSuccess: body => Effect.matchEffect(Schema.decodeUnknownEffect(Schema.UnknownFromJsonString)(body), {
|
|
967
|
+
onFailure: () => Effect.succeed(HttpServerResponse.jsonUnsafe({
|
|
968
|
+
jsonrpc: "2.0",
|
|
969
|
+
id: null,
|
|
970
|
+
error: new McpSchema.ParseError({
|
|
971
|
+
message: "Parse error"
|
|
972
|
+
})
|
|
973
|
+
})),
|
|
974
|
+
onSuccess: input => {
|
|
975
|
+
if (!Array.isArray(input)) {
|
|
976
|
+
const hasId = Predicate.hasProperty(input, "id");
|
|
977
|
+
const id = hasId && (typeof input.id === "string" || typeof input.id === "number") ? input.id : null;
|
|
978
|
+
const isJsonRpc = Predicate.hasProperty(input, "jsonrpc") && input.jsonrpc === "2.0";
|
|
979
|
+
const hasValidRequestId = !hasId || typeof input.id === "string" || typeof input.id === "number";
|
|
980
|
+
const isRequest = isJsonRpc && hasValidRequestId && Predicate.hasProperty(input, "method") && typeof input.method === "string";
|
|
981
|
+
const hasValidResponseId = hasId && (typeof input.id === "string" || typeof input.id === "number" || input.id === null);
|
|
982
|
+
const hasResult = Predicate.hasProperty(input, "result");
|
|
983
|
+
const hasError = Predicate.hasProperty(input, "error");
|
|
984
|
+
const isResponse = isJsonRpc && hasValidResponseId && hasResult !== hasError;
|
|
985
|
+
if (!isRequest && !isResponse) {
|
|
986
|
+
return Effect.succeed(HttpServerResponse.jsonUnsafe({
|
|
987
|
+
jsonrpc: "2.0",
|
|
988
|
+
id,
|
|
989
|
+
error: new InvalidRequest({
|
|
990
|
+
message: "Invalid Request"
|
|
991
|
+
})
|
|
992
|
+
}));
|
|
993
|
+
}
|
|
994
|
+
const isInitialize = isInitializeJsonRpcMessage(input);
|
|
995
|
+
if (isInitialize && sessionId !== undefined) {
|
|
996
|
+
return Effect.succeed(HttpServerResponse.empty({
|
|
997
|
+
status: 400
|
|
998
|
+
}));
|
|
999
|
+
}
|
|
1000
|
+
if (!isInitialize && isRequest && sessionId === undefined) {
|
|
1001
|
+
return Effect.succeed(HttpServerResponse.empty({
|
|
1002
|
+
status: 400
|
|
1003
|
+
}));
|
|
1004
|
+
}
|
|
1005
|
+
return httpEffect;
|
|
1006
|
+
}
|
|
1007
|
+
if (input.length === 0) {
|
|
1008
|
+
return Effect.succeed(HttpServerResponse.jsonUnsafe({
|
|
1009
|
+
jsonrpc: "2.0",
|
|
1010
|
+
id: null,
|
|
1011
|
+
error: new InvalidRequest({
|
|
1012
|
+
message: "Invalid Request"
|
|
1013
|
+
})
|
|
1014
|
+
}, {
|
|
1015
|
+
status: 400
|
|
1016
|
+
}));
|
|
1017
|
+
}
|
|
1018
|
+
if (input.some(isInitializeJsonRpcMessage) || session === undefined) {
|
|
1019
|
+
return Effect.succeed(HttpServerResponse.empty({
|
|
1020
|
+
status: 400
|
|
1021
|
+
}));
|
|
1022
|
+
}
|
|
1023
|
+
const selectedProtocol = session.protocol;
|
|
1024
|
+
return selectedProtocol.transport.acceptsJsonRpcBatches ? httpEffect : Effect.succeed(HttpServerResponse.empty({
|
|
1025
|
+
status: 400
|
|
1026
|
+
}));
|
|
1027
|
+
}
|
|
1028
|
+
})
|
|
1029
|
+
}));
|
|
1030
|
+
});
|
|
1031
|
+
return protocol;
|
|
1032
|
+
}));
|
|
1033
|
+
const isAllowedMcpOrigin = (request, allowedOrigins) => {
|
|
1034
|
+
const origin = request.headers["origin"];
|
|
1035
|
+
return origin === undefined || (allowedOrigins ?? []).includes(origin);
|
|
1036
|
+
};
|
|
1037
|
+
const mcpMediaTypes = header => header === undefined ? [] : header.split(",").flatMap(part => {
|
|
1038
|
+
const [mediaType, ...parameters] = part.split(";");
|
|
1039
|
+
const quality = parameters.map(parameter => parameter.trim().toLowerCase()).find(parameter => parameter.startsWith("q="));
|
|
1040
|
+
if (quality !== undefined) {
|
|
1041
|
+
const value = Number(quality.slice(2));
|
|
1042
|
+
if (!Number.isFinite(value) || value <= 0 || value > 1) {
|
|
1043
|
+
return [];
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
1046
|
+
return [mediaType.trim().toLowerCase()];
|
|
1047
|
+
});
|
|
1048
|
+
const InitializeJsonRpcMessage = /*#__PURE__*/Schema.Struct({
|
|
1049
|
+
method: /*#__PURE__*/Schema.Literal("initialize")
|
|
1050
|
+
});
|
|
1051
|
+
const isInitializeJsonRpcMessage = message => Result.isSuccess(Schema.decodeUnknownResult(InitializeJsonRpcMessage)(message));
|
|
1052
|
+
const JsonRpcProtocolVersion = /*#__PURE__*/Schema.Struct({
|
|
1053
|
+
params: /*#__PURE__*/Schema.Struct({
|
|
1054
|
+
protocolVersion: Schema.String
|
|
1055
|
+
})
|
|
1056
|
+
});
|
|
1057
|
+
const getJsonRpcProtocolVersion = message => {
|
|
1058
|
+
const decoded = Schema.decodeUnknownResult(JsonRpcProtocolVersion)(message);
|
|
1059
|
+
return Result.isSuccess(decoded) ? decoded.success.params.protocolVersion : undefined;
|
|
1060
|
+
};
|
|
1061
|
+
const INTERNAL_TOOL_ERROR_MESSAGE = "Tool execution failed due to an internal server error.";
|
|
1062
|
+
const toolErrorResult = message => new CallToolResult({
|
|
1063
|
+
isError: true,
|
|
1064
|
+
content: [{
|
|
1065
|
+
type: "text",
|
|
1066
|
+
text: message
|
|
1067
|
+
}]
|
|
1068
|
+
});
|
|
463
1069
|
/**
|
|
464
1070
|
* Registers a `Toolkit` with the `McpServer`.
|
|
465
1071
|
*
|
|
466
|
-
* @category
|
|
1072
|
+
* @category handlers
|
|
467
1073
|
* @since 4.0.0
|
|
468
1074
|
*/
|
|
469
1075
|
export const registerToolkit = /*#__PURE__*/Effect.fnUntraced(function* (toolkit) {
|
|
@@ -473,10 +1079,17 @@ export const registerToolkit = /*#__PURE__*/Effect.fnUntraced(function* (toolkit
|
|
|
473
1079
|
for (const tool of Object.values(built.tools)) {
|
|
474
1080
|
const annotations = tool.annotations;
|
|
475
1081
|
const toolMeta = Context.getOrUndefined(annotations, Tool.Meta);
|
|
1082
|
+
const isDeclaredFailure = Schema.is(tool.failureSchema);
|
|
1083
|
+
const outputJsonSchema = Tool.getJsonSchemaFromSchema(tool.successSchema);
|
|
1084
|
+
const outputSchema = outputJsonSchema.type === "object" ? yield* Schema.decodeUnknownEffect(ToolJsonSchema)(outputJsonSchema).pipe(Effect.orDie) : undefined;
|
|
1085
|
+
const inputSchema = yield* Schema.decodeUnknownEffect(ToolJsonSchema)(Tool.getJsonSchema(tool)).pipe(Effect.orDie);
|
|
476
1086
|
const mcpTool = new McpTool({
|
|
477
1087
|
name: tool.name,
|
|
478
1088
|
description: Tool.getDescription(tool),
|
|
479
|
-
inputSchema
|
|
1089
|
+
inputSchema,
|
|
1090
|
+
...(outputSchema === undefined ? {} : {
|
|
1091
|
+
outputSchema
|
|
1092
|
+
}),
|
|
480
1093
|
annotations: {
|
|
481
1094
|
...Context.getOption(tool.annotations, Tool.Title).pipe(Option.map(title => ({
|
|
482
1095
|
title
|
|
@@ -492,23 +1105,26 @@ export const registerToolkit = /*#__PURE__*/Effect.fnUntraced(function* (toolkit
|
|
|
492
1105
|
tool: mcpTool,
|
|
493
1106
|
annotations,
|
|
494
1107
|
handle(payload) {
|
|
495
|
-
return built.handle(tool.name, payload).pipe(Stream.unwrap, Stream.run(Sink.last()), Effect.flatMap(Effect.fromOption), Effect.provideContext(services), Effect.
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
1108
|
+
return built.handle(tool.name, payload ?? {}).pipe(Stream.unwrap, Stream.run(Sink.last()), Effect.flatMap(Effect.fromOption), Effect.provideContext(services), Effect.map(result => new CallToolResult({
|
|
1109
|
+
isError: false,
|
|
1110
|
+
structuredContent: typeof result.encodedResult === "object" ? result.encodedResult : undefined,
|
|
1111
|
+
content: result.encodedResult === undefined ? [] : [{
|
|
1112
|
+
type: "text",
|
|
1113
|
+
text: JSON.stringify(result.encodedResult)
|
|
1114
|
+
}]
|
|
1115
|
+
})), Effect.tapCause(Effect.logError), Effect.catch(error => {
|
|
1116
|
+
if (AiError.isAiError(error)) {
|
|
1117
|
+
const reason = error.reason;
|
|
1118
|
+
return reason._tag === "ToolParameterValidationError" ? Effect.fail(new InvalidParams({
|
|
1119
|
+
message: reason.message
|
|
1120
|
+
})) : Effect.succeed(toolErrorResult(INTERNAL_TOOL_ERROR_MESSAGE));
|
|
1121
|
+
}
|
|
1122
|
+
if (isDeclaredFailure(error)) {
|
|
1123
|
+
const message = error instanceof Error ? error.message : INTERNAL_TOOL_ERROR_MESSAGE;
|
|
1124
|
+
return Effect.succeed(toolErrorResult(message));
|
|
1125
|
+
}
|
|
1126
|
+
return Effect.succeed(toolErrorResult(INTERNAL_TOOL_ERROR_MESSAGE));
|
|
1127
|
+
}), Effect.catchDefect(() => Effect.succeed(toolErrorResult(INTERNAL_TOOL_ERROR_MESSAGE))));
|
|
512
1128
|
}
|
|
513
1129
|
});
|
|
514
1130
|
}
|
|
@@ -516,7 +1132,7 @@ export const registerToolkit = /*#__PURE__*/Effect.fnUntraced(function* (toolkit
|
|
|
516
1132
|
/**
|
|
517
1133
|
* Registers an `AiToolkit` with the `McpServer`.
|
|
518
1134
|
*
|
|
519
|
-
* @category
|
|
1135
|
+
* @category layers
|
|
520
1136
|
* @since 4.0.0
|
|
521
1137
|
*/
|
|
522
1138
|
export const toolkit = toolkit => Layer.effectDiscard(registerToolkit(toolkit)).pipe(Layer.provide(McpServer.layer));
|
|
@@ -531,7 +1147,7 @@ export const toolkit = toolkit => Layer.effectDiscard(registerToolkit(toolkit)).
|
|
|
531
1147
|
*
|
|
532
1148
|
* @see {@link resource} for the layer-based resource registration wrapper
|
|
533
1149
|
*
|
|
534
|
-
* @category
|
|
1150
|
+
* @category handlers
|
|
535
1151
|
* @since 4.0.0
|
|
536
1152
|
*/
|
|
537
1153
|
export const registerResource = function () {
|
|
@@ -570,10 +1186,10 @@ export const registerResource = function () {
|
|
|
570
1186
|
uriTemplate: uriPath,
|
|
571
1187
|
annotations: options
|
|
572
1188
|
});
|
|
573
|
-
const completions =
|
|
1189
|
+
const completions = Object.create(null);
|
|
574
1190
|
for (const [param, handle] of Object.entries(options.completion ?? {})) {
|
|
575
1191
|
const encodeArray = Schema.encodeUnknownEffect(Schema.Array(params[param]));
|
|
576
|
-
const handler = input => handle(input).pipe(Effect.flatMap(encodeArray), Effect.map(values => ({
|
|
1192
|
+
const handler = (input, context) => handle(input, context).pipe(Effect.flatMap(encodeArray), Effect.map(values => ({
|
|
577
1193
|
completion: {
|
|
578
1194
|
values: values,
|
|
579
1195
|
total: values.length,
|
|
@@ -612,7 +1228,7 @@ export const registerResource = function () {
|
|
|
612
1228
|
*
|
|
613
1229
|
* @see {@link registerResource} for the Effect-level resource registration API
|
|
614
1230
|
*
|
|
615
|
-
* @category
|
|
1231
|
+
* @category layers
|
|
616
1232
|
* @since 4.0.0
|
|
617
1233
|
*/
|
|
618
1234
|
export const resource = function () {
|
|
@@ -638,7 +1254,7 @@ export const resource = function () {
|
|
|
638
1254
|
*
|
|
639
1255
|
* @see {@link prompt} for the layer-based prompt registration wrapper
|
|
640
1256
|
*
|
|
641
|
-
* @category
|
|
1257
|
+
* @category handlers
|
|
642
1258
|
* @since 4.0.0
|
|
643
1259
|
*/
|
|
644
1260
|
export const registerPrompt = options => {
|
|
@@ -661,10 +1277,10 @@ export const registerPrompt = options => {
|
|
|
661
1277
|
return Effect.gen(function* () {
|
|
662
1278
|
const registry = yield* McpServer;
|
|
663
1279
|
const services = yield* Effect.context();
|
|
664
|
-
const completions =
|
|
1280
|
+
const completions = Object.create(null);
|
|
665
1281
|
for (const [param, handle] of Object.entries(completion)) {
|
|
666
1282
|
const encodeArray = Schema.encodeEffect(Schema.Array(props[param]));
|
|
667
|
-
const handler = input => handle(input).pipe(Effect.flatMap(encodeArray), Effect.map(values => ({
|
|
1283
|
+
const handler = (input, context) => handle(input, context).pipe(Effect.flatMap(encodeArray), Effect.map(values => ({
|
|
668
1284
|
completion: {
|
|
669
1285
|
values: values,
|
|
670
1286
|
total: values.length,
|
|
@@ -684,7 +1300,12 @@ export const registerPrompt = options => {
|
|
|
684
1300
|
annotations: options.annotations ?? Context.empty(),
|
|
685
1301
|
handle: params => decode(params).pipe(Effect.mapError(error => new InvalidParams({
|
|
686
1302
|
message: error.message
|
|
687
|
-
})), Effect.flatMap(params => options.content(params)
|
|
1303
|
+
})), Effect.flatMap(params => options.content(params).pipe(Effect.catchCause(cause => {
|
|
1304
|
+
const prettyError = Cause.prettyErrors(cause)[0];
|
|
1305
|
+
return Effect.fail(new InternalError({
|
|
1306
|
+
message: prettyError.message
|
|
1307
|
+
}));
|
|
1308
|
+
}))), Effect.map(messages => {
|
|
688
1309
|
messages = typeof messages === "string" ? [{
|
|
689
1310
|
role: "user",
|
|
690
1311
|
content: TextContent.make({
|
|
@@ -695,11 +1316,6 @@ export const registerPrompt = options => {
|
|
|
695
1316
|
messages,
|
|
696
1317
|
description: prompt.description
|
|
697
1318
|
});
|
|
698
|
-
}), Effect.catchCause(cause => {
|
|
699
|
-
const prettyError = Cause.prettyErrors(cause)[0];
|
|
700
|
-
return Effect.fail(new InternalError({
|
|
701
|
-
message: prettyError.message
|
|
702
|
-
}));
|
|
703
1319
|
}), Effect.provideContext(services))
|
|
704
1320
|
});
|
|
705
1321
|
});
|
|
@@ -719,7 +1335,7 @@ export const registerPrompt = options => {
|
|
|
719
1335
|
*
|
|
720
1336
|
* @see {@link registerPrompt} for the Effect-level prompt registration API
|
|
721
1337
|
*
|
|
722
|
-
* @category
|
|
1338
|
+
* @category layers
|
|
723
1339
|
* @since 4.0.0
|
|
724
1340
|
*/
|
|
725
1341
|
export const prompt = options => Layer.effectDiscard(registerPrompt(options)).pipe(Layer.provide(McpServer.layer));
|
|
@@ -732,7 +1348,7 @@ export const prompt = options => Layer.effectDiscard(registerPrompt(options)).pi
|
|
|
732
1348
|
* Accepted content is decoded with the supplied schema, declined requests fail
|
|
733
1349
|
* with `ElicitationDeclined`, and canceled requests interrupt the effect.
|
|
734
1350
|
*
|
|
735
|
-
* @category
|
|
1351
|
+
* @category accessors
|
|
736
1352
|
* @since 4.0.0
|
|
737
1353
|
*/
|
|
738
1354
|
export const elicit = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
@@ -745,7 +1361,7 @@ export const elicit = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
745
1361
|
message: options.message,
|
|
746
1362
|
requestedSchema: Tool.getJsonSchemaFromSchema(schema)
|
|
747
1363
|
});
|
|
748
|
-
const res = yield* client
|
|
1364
|
+
const res = yield* client.elicit(request).pipe(Effect.catchCause(cause => Effect.fail(new ElicitationDeclined({
|
|
749
1365
|
cause: Cause.squash(cause),
|
|
750
1366
|
request
|
|
751
1367
|
}))));
|
|
@@ -763,10 +1379,10 @@ export const elicit = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
763
1379
|
/**
|
|
764
1380
|
* Accesses the current client's capabilities.
|
|
765
1381
|
*
|
|
766
|
-
* @category
|
|
1382
|
+
* @category accessors
|
|
767
1383
|
* @since 4.0.0
|
|
768
1384
|
*/
|
|
769
|
-
export const clientCapabilities = /*#__PURE__*/McpServerClient.useSync(_ => _.
|
|
1385
|
+
export const clientCapabilities = /*#__PURE__*/McpServerClient.useSync(_ => _.clientCapabilities);
|
|
770
1386
|
// -----------------------------------------------------------------------------
|
|
771
1387
|
// Internal
|
|
772
1388
|
// -----------------------------------------------------------------------------
|
|
@@ -788,7 +1404,7 @@ const makeUriMatcher = () => {
|
|
|
788
1404
|
const compileUriTemplate = (segments, ...schemas) => {
|
|
789
1405
|
let routerPath = segments[0].replace(":", "::");
|
|
790
1406
|
let uriPath = segments[0];
|
|
791
|
-
const params =
|
|
1407
|
+
const params = Object.create(null);
|
|
792
1408
|
let pathSchema = Schema.Tuple([]);
|
|
793
1409
|
if (schemas.length > 0) {
|
|
794
1410
|
const arr = [];
|
|
@@ -812,137 +1428,143 @@ const compileUriTemplate = (segments, ...schemas) => {
|
|
|
812
1428
|
params
|
|
813
1429
|
};
|
|
814
1430
|
};
|
|
815
|
-
const
|
|
1431
|
+
const PingRpcs = /*#__PURE__*/RpcGroup.make(Ping).middleware(McpServerClientMiddleware);
|
|
1432
|
+
const layerHandlers = (serverInfo, options) => Layer.effectContext(Effect.gen(function* () {
|
|
816
1433
|
const server = yield* McpServer;
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
};
|
|
834
|
-
if (server.tools.length > 0) {
|
|
835
|
-
capabilities.tools = {
|
|
836
|
-
listChanged: true
|
|
837
|
-
};
|
|
838
|
-
}
|
|
839
|
-
if (server.resources.length > 0 || server.resourceTemplates.length > 0) {
|
|
840
|
-
capabilities.resources = {
|
|
841
|
-
listChanged: true,
|
|
842
|
-
subscribe: false
|
|
843
|
-
};
|
|
844
|
-
}
|
|
845
|
-
if (server.prompts.length > 0) {
|
|
846
|
-
capabilities.prompts = {
|
|
847
|
-
listChanged: true
|
|
1434
|
+
const defaultLogLevel = yield* CurrentLogLevel;
|
|
1435
|
+
const contextMap = new Map();
|
|
1436
|
+
const internalCore = internalState.get(server).core;
|
|
1437
|
+
const handlerTarget = options.protocolRegistry.handlerTarget(contextMap);
|
|
1438
|
+
for (const protocol of options.protocolRegistry.protocols) {
|
|
1439
|
+
const wireHandlers = PingRpcs.of({
|
|
1440
|
+
// Requests
|
|
1441
|
+
ping: () => Effect.succeed({})
|
|
1442
|
+
});
|
|
1443
|
+
yield* handlerTarget.install(protocol, PingRpcs, wireHandlers);
|
|
1444
|
+
const lifecycle = {
|
|
1445
|
+
initialize: Effect.fnUntraced(function* (protocolVersion, profile, clientId) {
|
|
1446
|
+
const presence = yield* internalCore.registrationPresence;
|
|
1447
|
+
let capabilities = {
|
|
1448
|
+
completions: true,
|
|
1449
|
+
logging: true
|
|
848
1450
|
};
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
1451
|
+
if (presence.tools) {
|
|
1452
|
+
capabilities = {
|
|
1453
|
+
...capabilities,
|
|
1454
|
+
tools: {
|
|
1455
|
+
listChanged: true
|
|
1456
|
+
}
|
|
1457
|
+
};
|
|
1458
|
+
}
|
|
1459
|
+
if (presence.resources) {
|
|
1460
|
+
capabilities = {
|
|
1461
|
+
...capabilities,
|
|
1462
|
+
resources: {
|
|
1463
|
+
listChanged: true,
|
|
1464
|
+
subscribe: true
|
|
1465
|
+
}
|
|
1466
|
+
};
|
|
864
1467
|
}
|
|
865
|
-
|
|
866
|
-
capabilities
|
|
867
|
-
|
|
868
|
-
|
|
1468
|
+
if (presence.prompts) {
|
|
1469
|
+
capabilities = {
|
|
1470
|
+
...capabilities,
|
|
1471
|
+
prompts: {
|
|
1472
|
+
listChanged: true
|
|
1473
|
+
}
|
|
1474
|
+
};
|
|
1475
|
+
}
|
|
1476
|
+
if (serverInfo.extensions) {
|
|
1477
|
+
capabilities = {
|
|
1478
|
+
...capabilities,
|
|
1479
|
+
extensions: serverInfo.extensions
|
|
1480
|
+
};
|
|
1481
|
+
}
|
|
1482
|
+
return yield* Effect.withFiber(fiber => {
|
|
1483
|
+
const httpRequest = Context.getOrUndefined(fiber.context, HttpServerRequest.HttpServerRequest);
|
|
1484
|
+
if (httpRequest !== undefined && capabilities.resources !== undefined) {
|
|
1485
|
+
capabilities = {
|
|
1486
|
+
...capabilities,
|
|
1487
|
+
resources: {
|
|
1488
|
+
...capabilities.resources,
|
|
1489
|
+
subscribe: false
|
|
1490
|
+
}
|
|
1491
|
+
};
|
|
1492
|
+
}
|
|
1493
|
+
const initializePayload = Initialize.payloadSchema.make({
|
|
1494
|
+
protocolVersion,
|
|
1495
|
+
capabilities: profile.clientCapabilities,
|
|
1496
|
+
clientInfo: profile.clientInfo,
|
|
1497
|
+
_meta: profile.requestMetadata
|
|
1498
|
+
});
|
|
1499
|
+
const session = {
|
|
1500
|
+
initializePayload,
|
|
1501
|
+
negotiatedProfile: profile,
|
|
1502
|
+
protocol,
|
|
1503
|
+
resourceSubscriptions: httpRequest === undefined && capabilities.resources?.subscribe === true ? new Set() : undefined,
|
|
1504
|
+
logLevel: {
|
|
1505
|
+
_tag: "Effect",
|
|
1506
|
+
level: defaultLogLevel
|
|
1507
|
+
}
|
|
1508
|
+
};
|
|
1509
|
+
if (httpRequest) {
|
|
1510
|
+
const sessionId = crypto.randomUUID();
|
|
1511
|
+
options.sessions.bySessionId.set(sessionId, session);
|
|
1512
|
+
appendPreResponseHandlerUnsafe(httpRequest, (_req, res) => Effect.succeed(HttpServerResponse.setHeaders(res, {
|
|
1513
|
+
[MCP_SESSION_ID_HEADER]: sessionId,
|
|
1514
|
+
[MCP_PROTOCOL_VERSION_HEADER]: protocol.protocolVersion
|
|
1515
|
+
})));
|
|
1516
|
+
} else {
|
|
1517
|
+
options.sessions.byClientId.set(clientId, session);
|
|
1518
|
+
}
|
|
1519
|
+
return Effect.succeed({
|
|
1520
|
+
capabilities,
|
|
1521
|
+
serverInfo: {
|
|
1522
|
+
name: serverInfo.name,
|
|
1523
|
+
version: serverInfo.version
|
|
1524
|
+
}
|
|
1525
|
+
});
|
|
869
1526
|
});
|
|
870
|
-
})
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
const initialized = getInitializedClient(options.clientSessions, client.id, headers);
|
|
912
|
-
return new ListResourcesResult({
|
|
913
|
-
resources: filterByClient(initialized, server.resources, "resource")
|
|
914
|
-
});
|
|
915
|
-
}),
|
|
916
|
-
"resources/read": ({
|
|
917
|
-
uri
|
|
918
|
-
}) => server.findResource(uri).pipe(Effect.provideService(CurrentLogLevel, currentLogLevel)),
|
|
919
|
-
"resources/subscribe": () => InternalError.notImplemented,
|
|
920
|
-
"resources/unsubscribe": () => InternalError.notImplemented,
|
|
921
|
-
"resources/templates/list": (_, {
|
|
922
|
-
client,
|
|
923
|
-
headers
|
|
924
|
-
}) => Effect.sync(() => {
|
|
925
|
-
const initialized = getInitializedClient(options.clientSessions, client.id, headers);
|
|
926
|
-
return new ListResourceTemplatesResult({
|
|
927
|
-
resourceTemplates: filterByClient(initialized, server.resourceTemplates, "template")
|
|
928
|
-
});
|
|
929
|
-
}),
|
|
930
|
-
"tools/call": r => server.callTool(r).pipe(Effect.provideService(CurrentLogLevel, currentLogLevel)),
|
|
931
|
-
"tools/list": (_, {
|
|
932
|
-
client,
|
|
933
|
-
headers
|
|
934
|
-
}) => Effect.sync(() => {
|
|
935
|
-
const initialized = getInitializedClient(options.clientSessions, client.id, headers);
|
|
936
|
-
return new ListToolsResult({
|
|
937
|
-
tools: filterByClient(initialized, server.tools, "tool")
|
|
938
|
-
});
|
|
939
|
-
}),
|
|
940
|
-
// Notifications
|
|
941
|
-
"notifications/cancelled": _ => Effect.void,
|
|
942
|
-
"notifications/initialized": _ => Effect.void,
|
|
943
|
-
"notifications/progress": _ => Effect.void,
|
|
944
|
-
"notifications/roots/list_changed": _ => Effect.void
|
|
945
|
-
});
|
|
1527
|
+
}),
|
|
1528
|
+
setLogLevel: Effect.fnUntraced(function* (level, clientId, headers) {
|
|
1529
|
+
const session = getClientSession(options.sessions, clientId, headers);
|
|
1530
|
+
if (session === undefined) {
|
|
1531
|
+
return;
|
|
1532
|
+
}
|
|
1533
|
+
session.logLevel = {
|
|
1534
|
+
_tag: "Mcp",
|
|
1535
|
+
level
|
|
1536
|
+
};
|
|
1537
|
+
}),
|
|
1538
|
+
subscribe: Effect.fnUntraced(function* (uri, clientId, headers) {
|
|
1539
|
+
const subscriptions = getClientSession(options.sessions, clientId, headers)?.resourceSubscriptions;
|
|
1540
|
+
if (subscriptions === undefined) {
|
|
1541
|
+
return yield* new McpProtocolInternal.ProtocolError({
|
|
1542
|
+
code: McpSchema.METHOD_NOT_FOUND_ERROR_CODE,
|
|
1543
|
+
message: "Resource subscriptions are not supported"
|
|
1544
|
+
});
|
|
1545
|
+
}
|
|
1546
|
+
subscriptions.add(uri);
|
|
1547
|
+
}),
|
|
1548
|
+
unsubscribe: Effect.fnUntraced(function* (uri, clientId, headers) {
|
|
1549
|
+
const subscriptions = getClientSession(options.sessions, clientId, headers)?.resourceSubscriptions;
|
|
1550
|
+
if (subscriptions === undefined) {
|
|
1551
|
+
return yield* new McpProtocolInternal.ProtocolError({
|
|
1552
|
+
code: McpSchema.METHOD_NOT_FOUND_ERROR_CODE,
|
|
1553
|
+
message: "Resource subscriptions are not supported"
|
|
1554
|
+
});
|
|
1555
|
+
}
|
|
1556
|
+
subscriptions.delete(uri);
|
|
1557
|
+
}),
|
|
1558
|
+
clientNotification: Effect.fnUntraced(function* (notification, clientId) {
|
|
1559
|
+
if (notification._tag === "Initialized") {
|
|
1560
|
+
server.initializedClients.add(clientId);
|
|
1561
|
+
}
|
|
1562
|
+
return;
|
|
1563
|
+
})
|
|
1564
|
+
};
|
|
1565
|
+
yield* protocol.installHandlers(internalCore, lifecycle, handlerTarget);
|
|
1566
|
+
}
|
|
1567
|
+
return Context.makeUnsafe(contextMap);
|
|
946
1568
|
}));
|
|
947
1569
|
const resolveResourceContent = (uri, content) => {
|
|
948
1570
|
if (typeof content === "string") {
|
|
@@ -962,25 +1584,79 @@ const resolveResourceContent = (uri, content) => {
|
|
|
962
1584
|
}
|
|
963
1585
|
return content;
|
|
964
1586
|
};
|
|
965
|
-
const
|
|
966
|
-
|
|
967
|
-
|
|
1587
|
+
const getClientSession = (sessions, clientId, headers) => {
|
|
1588
|
+
const sessionId = headers[MCP_SESSION_ID_HEADER];
|
|
1589
|
+
if (sessionId === undefined) {
|
|
1590
|
+
return sessions.byClientId.get(clientId);
|
|
968
1591
|
}
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
1592
|
+
return sessions.bySessionId.get(sessionId);
|
|
1593
|
+
};
|
|
1594
|
+
const InvalidBatchExit = /*#__PURE__*/Schema.Struct({
|
|
1595
|
+
_tag: /*#__PURE__*/Schema.Literal("Exit"),
|
|
1596
|
+
requestId: Schema.Null,
|
|
1597
|
+
exit: /*#__PURE__*/Schema.Struct({
|
|
1598
|
+
_tag: /*#__PURE__*/Schema.Literal("Failure"),
|
|
1599
|
+
cause: Schema.Unknown
|
|
1600
|
+
})
|
|
1601
|
+
});
|
|
1602
|
+
const decodeInvalidBatchExit = /*#__PURE__*/Schema.decodeUnknownResult(InvalidBatchExit);
|
|
1603
|
+
const mcpLogLevels = {
|
|
1604
|
+
debug: {
|
|
1605
|
+
effect: "Debug",
|
|
1606
|
+
order: 0
|
|
1607
|
+
},
|
|
1608
|
+
info: {
|
|
1609
|
+
effect: "Info",
|
|
1610
|
+
order: 1
|
|
1611
|
+
},
|
|
1612
|
+
notice: {
|
|
1613
|
+
effect: "Info",
|
|
1614
|
+
order: 2
|
|
1615
|
+
},
|
|
1616
|
+
warning: {
|
|
1617
|
+
effect: "Warn",
|
|
1618
|
+
order: 3
|
|
1619
|
+
},
|
|
1620
|
+
error: {
|
|
1621
|
+
effect: "Error",
|
|
1622
|
+
order: 4
|
|
1623
|
+
},
|
|
1624
|
+
critical: {
|
|
1625
|
+
effect: "Fatal",
|
|
1626
|
+
order: 5
|
|
1627
|
+
},
|
|
1628
|
+
alert: {
|
|
1629
|
+
effect: "Fatal",
|
|
1630
|
+
order: 6
|
|
1631
|
+
},
|
|
1632
|
+
emergency: {
|
|
1633
|
+
effect: "Fatal",
|
|
1634
|
+
order: 7
|
|
976
1635
|
}
|
|
977
|
-
return out;
|
|
978
1636
|
};
|
|
979
|
-
const
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
1637
|
+
const effectLogLevel = (logLevel, fallback) => logLevel?._tag === "Mcp" ? mcpLogLevels[logLevel.level].effect : logLevel?.level ?? fallback;
|
|
1638
|
+
const isMcpLogLevelEnabled = (level, minimum, fallback) => minimum?._tag === "Mcp" ? mcpLogLevels[level].order >= mcpLogLevels[minimum.level].order : LogLevel.isGreaterThanOrEqualTo(mcpLogLevels[level].effect, minimum?.level ?? fallback);
|
|
1639
|
+
const OfferedProtocolVersion = /*#__PURE__*/Schema.Struct({
|
|
1640
|
+
protocolVersion: Schema.String
|
|
1641
|
+
});
|
|
1642
|
+
const getOfferedProtocolVersion = payload => {
|
|
1643
|
+
const decoded = Schema.decodeUnknownResult(OfferedProtocolVersion)(payload);
|
|
1644
|
+
return Result.isSuccess(decoded) ? decoded.success.protocolVersion : "";
|
|
1645
|
+
};
|
|
1646
|
+
const protocolForInternalTag = (registry, tag) => {
|
|
1647
|
+
for (const protocol of registry.protocols) {
|
|
1648
|
+
const routed = registry.routeClientRequest(protocol, {
|
|
1649
|
+
_tag: "Request",
|
|
1650
|
+
id: 0,
|
|
1651
|
+
tag: "",
|
|
1652
|
+
payload: undefined,
|
|
1653
|
+
headers: []
|
|
1654
|
+
});
|
|
1655
|
+
if (tag.startsWith(routed.tag)) {
|
|
1656
|
+
return protocol;
|
|
1657
|
+
}
|
|
983
1658
|
}
|
|
984
|
-
return
|
|
1659
|
+
return registry.protocols[0];
|
|
985
1660
|
};
|
|
1661
|
+
const getProtocolForClient = (clientProtocols, clientId, registry) => clientProtocols.get(clientId) ?? registry.protocols[0];
|
|
986
1662
|
//# sourceMappingURL=McpServer.js.map
|