effect 4.0.1 → 4.0.3
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/ai-docs/package.json +2 -2
- package/ai-docs/tsconfig.json +2 -1
- package/dist/Array.d.ts +339 -0
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +143 -3
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +88 -0
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +44 -0
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +68 -0
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +36 -0
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +34 -0
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +18 -0
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.d.ts +9 -0
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +6 -0
- package/dist/Brand.js.map +1 -1
- package/dist/ByteSize.d.ts +86 -0
- package/dist/ByteSize.d.ts.map +1 -1
- package/dist/ByteSize.js +51 -0
- package/dist/ByteSize.js.map +1 -1
- package/dist/Cache.d.ts +38 -1
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +27 -7
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +82 -0
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +60 -0
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +327 -4
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +168 -8
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +11 -0
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js +6 -0
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +192 -0
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +78 -0
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +7 -0
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js +5 -0
- package/dist/Clock.js.map +1 -1
- package/dist/Combiner.d.ts +10 -0
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +8 -0
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +52 -12
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +55 -5
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +28 -0
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +19 -0
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +22 -0
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +20 -0
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +50 -0
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +24 -3
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +16 -0
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +26 -1
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +38 -5
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +11 -2
- package/dist/Crypto.js.map +1 -1
- package/dist/Data.d.ts +13 -0
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +5 -0
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +180 -6
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +98 -6
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +51 -0
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +22 -0
- package/dist/Deferred.js.map +1 -1
- package/dist/Differ.d.ts +2 -0
- package/dist/Differ.d.ts.map +1 -1
- package/dist/Differ.js +1 -0
- package/dist/Duration.d.ts +96 -6
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +80 -8
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +527 -0
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +240 -5
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.d.ts +4 -0
- package/dist/Effectable.d.ts.map +1 -1
- package/dist/Effectable.js +3 -0
- package/dist/Effectable.js.map +1 -1
- package/dist/Equal.d.ts +8 -0
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +9 -1
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +21 -0
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +16 -0
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +36 -0
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +11 -0
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +49 -8
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +7 -0
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +40 -0
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +27 -0
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +20 -0
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +11 -0
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +21 -0
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +21 -4
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +35 -0
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +19 -0
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +20 -0
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +14 -0
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +59 -2
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +8 -0
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +55 -0
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +28 -0
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +3 -0
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +39 -1
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +30 -0
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +20 -0
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +247 -12
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +149 -28
- package/dist/Graph.js.map +1 -1
- package/dist/HKT.d.ts +5 -0
- package/dist/HKT.d.ts.map +1 -1
- package/dist/Hash.d.ts +14 -0
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +12 -0
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +91 -0
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +39 -0
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts +17 -0
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +9 -0
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +49 -0
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js +19 -0
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +7 -0
- package/dist/Inspectable.d.ts.map +1 -1
- package/dist/Inspectable.js +6 -0
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +127 -0
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +51 -0
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +4 -0
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +3 -0
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +5 -0
- package/dist/JsonPointer.d.ts.map +1 -1
- package/dist/JsonPointer.js +5 -0
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +16 -0
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +11 -0
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +14 -0
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +10 -0
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +100 -0
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +45 -1
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +7 -0
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +4 -0
- package/dist/LayerMap.js.map +1 -1
- package/dist/LayerRef.d.ts +5 -0
- package/dist/LayerRef.d.ts.map +1 -1
- package/dist/LayerRef.js +3 -0
- package/dist/LayerRef.js.map +1 -1
- package/dist/LogLevel.d.ts +20 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +9 -0
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +25 -0
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +30 -4
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +5 -0
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +9 -1
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +51 -0
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +39 -0
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +59 -0
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +31 -0
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +32 -0
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +16 -0
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +16 -0
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +10 -0
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +20 -0
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +18 -0
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +31 -0
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +17 -0
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +9 -0
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +6 -0
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +4 -0
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +2 -0
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +61 -0
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +31 -0
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +41 -0
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +20 -0
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +134 -0
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +61 -0
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +29 -0
- package/dist/Order.d.ts.map +1 -1
- package/dist/Order.js +24 -0
- package/dist/Order.js.map +1 -1
- package/dist/Ordering.d.ts +7 -0
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +3 -0
- package/dist/Ordering.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +24 -0
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +47 -21
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +6 -0
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +4 -0
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +7 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +5 -0
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +8 -0
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +7 -0
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +19 -0
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +8 -1
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +84 -0
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +48 -0
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +5 -0
- package/dist/PrimaryKey.d.ts.map +1 -1
- package/dist/PrimaryKey.js +4 -0
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +67 -5
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +60 -8
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +20 -0
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +10 -0
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +60 -0
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +58 -8
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +13 -0
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +9 -0
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +23 -0
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +8 -0
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +6 -0
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js +3 -0
- package/dist/RcRef.js.map +1 -1
- package/dist/Record.d.ts +100 -0
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +43 -0
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +6 -0
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +4 -0
- package/dist/Redactable.js.map +1 -1
- package/dist/Redacted.d.ts +8 -0
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +6 -0
- package/dist/Redacted.js.map +1 -1
- package/dist/Reducer.d.ts +4 -0
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +3 -0
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +20 -0
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +16 -0
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +21 -0
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +19 -0
- package/dist/References.js.map +1 -1
- package/dist/RegExp.d.ts +3 -0
- package/dist/RegExp.d.ts.map +1 -1
- package/dist/RegExp.js +4 -0
- package/dist/RegExp.js.map +1 -1
- package/dist/Request.d.ts +32 -0
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +12 -0
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +42 -0
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +27 -6
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.d.ts +6 -0
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +6 -0
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +91 -0
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +41 -0
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +9 -0
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +7 -0
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +57 -0
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +32 -0
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +7 -0
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +5 -0
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +969 -2
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +635 -5
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +107 -0
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +81 -1
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +69 -2
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +63 -4
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +33 -0
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +18 -0
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +25 -0
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +26 -0
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +147 -0
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +99 -0
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +53 -0
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +46 -0
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +19 -0
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +12 -0
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +34 -0
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +26 -3
- package/dist/ScopedCache.js.map +1 -1
- package/dist/ScopedRef.d.ts +9 -0
- package/dist/ScopedRef.d.ts.map +1 -1
- package/dist/ScopedRef.js +6 -0
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +26 -0
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +10 -0
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +125 -1
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +75 -1
- package/dist/Sink.js.map +1 -1
- package/dist/StandardSchema.d.ts +1 -0
- package/dist/StandardSchema.d.ts.map +1 -1
- package/dist/StandardSchema.js +1 -0
- package/dist/Stdio.d.ts +14 -1
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +6 -0
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +569 -11
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +266 -18
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +87 -0
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +61 -0
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +46 -0
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +19 -0
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +65 -0
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +25 -0
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/Symbol.d.ts +2 -0
- package/dist/Symbol.d.ts.map +1 -1
- package/dist/Symbol.js +2 -0
- package/dist/Symbol.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +63 -0
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +24 -0
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Take.d.ts +3 -0
- package/dist/Take.d.ts.map +1 -1
- package/dist/Take.js +1 -0
- package/dist/Take.js.map +1 -1
- package/dist/Terminal.d.ts +8 -0
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +4 -0
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +23 -0
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +12 -0
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +68 -0
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +28 -0
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +38 -0
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +18 -0
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +52 -0
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +23 -0
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +15 -0
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxDeferred.js +8 -0
- package/dist/TxDeferred.js.map +1 -1
- package/dist/TxHashMap.d.ts +83 -0
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +52 -7
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +51 -0
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +29 -4
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +30 -0
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js +22 -1
- package/dist/TxPriorityQueue.js.map +1 -1
- package/dist/TxPubSub.d.ts +25 -0
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxPubSub.js +19 -0
- package/dist/TxPubSub.js.map +1 -1
- package/dist/TxQueue.d.ts +51 -0
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +30 -0
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +24 -0
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +32 -18
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/TxRef.d.ts +14 -0
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +7 -0
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +25 -0
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +29 -13
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +25 -0
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +12 -0
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +36 -0
- package/dist/Types.d.ts.map +1 -1
- package/dist/Types.js +1 -0
- package/dist/UndefinedOr.d.ts +15 -0
- package/dist/UndefinedOr.d.ts.map +1 -1
- package/dist/UndefinedOr.js +9 -0
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +15 -0
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js +2 -0
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +4 -0
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +1 -0
- package/dist/Utils.js.map +1 -1
- package/dist/Version.d.ts +26 -0
- package/dist/Version.d.ts.map +1 -0
- package/dist/Version.js +36 -0
- package/dist/Version.js.map +1 -0
- package/dist/ai/Chat.js +1 -1
- package/dist/ai/Chat.js.map +1 -1
- package/dist/ai/DecisionModel.d.ts +22 -0
- package/dist/ai/DecisionModel.d.ts.map +1 -1
- package/dist/ai/DecisionModel.js +22 -4
- package/dist/ai/DecisionModel.js.map +1 -1
- package/dist/ai/LanguageModel.d.ts.map +1 -1
- package/dist/ai/LanguageModel.js +14 -13
- package/dist/ai/LanguageModel.js.map +1 -1
- package/dist/ai/McpServer.d.ts +38 -11
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +276 -190
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/Telemetry.d.ts +49 -41
- package/dist/ai/Telemetry.d.ts.map +1 -1
- package/dist/ai/Telemetry.js +6 -8
- package/dist/ai/Telemetry.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +5 -0
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +80 -46
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpStatefulRuntime.js +1 -0
- package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
- package/dist/cli/CliOutput.d.ts +27 -0
- package/dist/cli/CliOutput.d.ts.map +1 -1
- package/dist/cli/CliOutput.js +33 -10
- package/dist/cli/CliOutput.js.map +1 -1
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +6 -3
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Completions.d.ts +3 -3
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js +8 -5
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/GlobalFlag.d.ts +5 -4
- package/dist/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/cli/GlobalFlag.js +3 -3
- package/dist/cli/GlobalFlag.js.map +1 -1
- package/dist/cli/Prompt.d.ts +17 -1
- package/dist/cli/Prompt.d.ts.map +1 -1
- package/dist/cli/Prompt.js +119 -114
- package/dist/cli/Prompt.js.map +1 -1
- package/dist/cli/internal/ansi.d.ts +0 -1
- package/dist/cli/internal/ansi.d.ts.map +1 -1
- package/dist/cli/internal/ansi.js +20 -3
- package/dist/cli/internal/ansi.js.map +1 -1
- package/dist/cli/internal/completions/powershell.d.ts +2 -0
- package/dist/cli/internal/completions/powershell.d.ts.map +1 -0
- package/dist/cli/internal/completions/powershell.js +273 -0
- package/dist/cli/internal/completions/powershell.js.map +1 -0
- package/dist/cli/internal/completions/zsh.js +3 -2
- package/dist/cli/internal/completions/zsh.js.map +1 -1
- package/dist/cli/internal/wizard.d.ts +3 -3
- package/dist/cli/internal/wizard.d.ts.map +1 -1
- package/dist/cli/internal/wizard.js +21 -18
- package/dist/cli/internal/wizard.js.map +1 -1
- package/dist/cluster/ClusterSchema.d.ts +28 -0
- package/dist/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/cluster/ClusterSchema.js +30 -0
- package/dist/cluster/ClusterSchema.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +10 -18
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/K8sHttpClient.d.ts.map +1 -1
- package/dist/cluster/K8sHttpClient.js +5 -2
- package/dist/cluster/K8sHttpClient.js.map +1 -1
- package/dist/cluster/MessageStorage.d.ts +18 -3
- package/dist/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/cluster/MessageStorage.js +31 -11
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Runners.d.ts.map +1 -1
- package/dist/cluster/Runners.js +8 -2
- package/dist/cluster/Runners.js.map +1 -1
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +181 -62
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts +59 -19
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +84 -55
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts +68 -19
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +191 -113
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +104 -37
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/encoding/Base64.d.ts +4 -0
- package/dist/encoding/Base64.d.ts.map +1 -1
- package/dist/encoding/Base64.js +4 -0
- package/dist/encoding/Base64.js.map +1 -1
- package/dist/encoding/Base64Url.d.ts +4 -0
- package/dist/encoding/Base64Url.d.ts.map +1 -1
- package/dist/encoding/Base64Url.js +4 -0
- package/dist/encoding/Base64Url.js.map +1 -1
- package/dist/encoding/EncodingError.d.ts +4 -0
- package/dist/encoding/EncodingError.d.ts.map +1 -1
- package/dist/encoding/EncodingError.js +4 -0
- package/dist/encoding/EncodingError.js.map +1 -1
- package/dist/encoding/Hex.d.ts +5 -0
- package/dist/encoding/Hex.d.ts.map +1 -1
- package/dist/encoding/Hex.js +5 -0
- package/dist/encoding/Hex.js.map +1 -1
- package/dist/encoding/Toml.js +2 -2
- package/dist/encoding/Toml.js.map +1 -1
- package/dist/encoding/Yaml.d.ts.map +1 -1
- package/dist/encoding/Yaml.js +6 -4
- package/dist/encoding/Yaml.js.map +1 -1
- package/dist/encoding/index.d.ts +4 -0
- package/dist/encoding/index.d.ts.map +1 -1
- package/dist/encoding/index.js +4 -0
- package/dist/encoding/index.js.map +1 -1
- package/dist/eventlog/SqlEventJournal.js +8 -4
- package/dist/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +27 -10
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.js +49 -7
- package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/http/FindMyWay/internal/router.js +3 -6
- package/dist/http/FindMyWay/internal/router.js.map +1 -1
- package/dist/http/Headers.d.ts +3 -1
- package/dist/http/Headers.d.ts.map +1 -1
- package/dist/http/Headers.js +4 -2
- package/dist/http/Headers.js.map +1 -1
- package/dist/http/HttpClient.d.ts +15 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +79 -23
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpClientResponse.js +3 -1
- package/dist/http/HttpClientResponse.js.map +1 -1
- package/dist/http/HttpEffect.d.ts +3 -0
- package/dist/http/HttpEffect.d.ts.map +1 -1
- package/dist/http/HttpEffect.js +5 -2
- package/dist/http/HttpEffect.js.map +1 -1
- package/dist/http/HttpMiddleware.d.ts +17 -0
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +56 -39
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpServer.d.ts +1 -1
- package/dist/http/HttpServer.d.ts.map +1 -1
- package/dist/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/http/HttpTraceContext.js +4 -2
- package/dist/http/HttpTraceContext.js.map +1 -1
- package/dist/http/internal/tracing.d.ts +2 -0
- package/dist/http/internal/tracing.d.ts.map +1 -0
- package/dist/http/internal/tracing.js +37 -0
- package/dist/http/internal/tracing.js.map +1 -0
- package/dist/http-api/HttpApiBuilder.js +2 -1
- package/dist/http-api/HttpApiBuilder.js.map +1 -1
- package/dist/http-api/HttpApiClient.d.ts +12 -3
- package/dist/http-api/HttpApiClient.d.ts.map +1 -1
- package/dist/http-api/HttpApiClient.js.map +1 -1
- package/dist/http-api/HttpApiError.d.ts +4 -3
- package/dist/http-api/HttpApiError.d.ts.map +1 -1
- package/dist/http-api/HttpApiError.js +7 -4
- package/dist/http-api/HttpApiError.js.map +1 -1
- package/dist/http-api/HttpApiSecurity.d.ts +8 -8
- package/dist/http-api/HttpApiSecurity.js +8 -8
- package/dist/index.d.ts +155 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +155 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/arbitrary/array.js +3 -3
- package/dist/internal/arbitrary/array.js.map +1 -1
- package/dist/internal/arbitrary/model.js +26 -11
- package/dist/internal/arbitrary/model.js.map +1 -1
- package/dist/internal/arbitrary/runner.js +8 -8
- package/dist/internal/arbitrary/runner.js.map +1 -1
- package/dist/internal/arbitrary/schema.js +4 -5
- package/dist/internal/arbitrary/schema.js.map +1 -1
- package/dist/internal/effect.js +53 -46
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/schedule.js +7 -5
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/standardSchema.js +2 -2
- package/dist/internal/schema/standardSchema.js.map +1 -1
- package/dist/internal/version.d.ts +2 -0
- package/dist/internal/version.d.ts.map +1 -0
- package/dist/internal/version.js +3 -0
- package/dist/internal/version.js.map +1 -0
- package/dist/net/AddressResolver.d.ts +145 -0
- package/dist/net/AddressResolver.d.ts.map +1 -0
- package/dist/net/AddressResolver.js +114 -0
- package/dist/net/AddressResolver.js.map +1 -0
- package/dist/net/Dns.d.ts +596 -0
- package/dist/net/Dns.d.ts.map +1 -0
- package/dist/net/Dns.js +549 -0
- package/dist/net/Dns.js.map +1 -0
- package/dist/net/Host.d.ts +320 -0
- package/dist/net/Host.d.ts.map +1 -0
- package/dist/net/Host.js +342 -0
- package/dist/net/Host.js.map +1 -0
- package/dist/net/IpInterface.d.ts +76 -3
- package/dist/net/IpInterface.d.ts.map +1 -1
- package/dist/net/IpInterface.js +53 -4
- package/dist/net/IpInterface.js.map +1 -1
- package/dist/net/IpNetwork.d.ts +82 -8
- package/dist/net/IpNetwork.d.ts.map +1 -1
- package/dist/net/IpNetwork.js +60 -4
- package/dist/net/IpNetwork.js.map +1 -1
- package/dist/net/NetAddress.d.ts +388 -35
- package/dist/net/NetAddress.d.ts.map +1 -1
- package/dist/net/NetAddress.js +350 -34
- package/dist/net/NetAddress.js.map +1 -1
- package/dist/net/index.d.ts +15 -0
- package/dist/net/index.d.ts.map +1 -1
- package/dist/net/index.js +15 -0
- package/dist/net/index.js.map +1 -1
- package/dist/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/observability/OtlpExporter.js +5 -6
- package/dist/observability/OtlpExporter.js.map +1 -1
- package/dist/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/observability/OtlpLogger.js +23 -27
- package/dist/observability/OtlpLogger.js.map +1 -1
- package/dist/observability/OtlpMetrics.d.ts +5 -3
- package/dist/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/observability/OtlpMetrics.js +36 -115
- package/dist/observability/OtlpMetrics.js.map +1 -1
- package/dist/observability/OtlpResource.d.ts +4 -3
- package/dist/observability/OtlpResource.d.ts.map +1 -1
- package/dist/observability/OtlpResource.js +20 -23
- package/dist/observability/OtlpResource.js.map +1 -1
- package/dist/observability/OtlpTracer.d.ts +1 -0
- package/dist/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/observability/OtlpTracer.js +32 -36
- package/dist/observability/OtlpTracer.js.map +1 -1
- package/dist/observability/PrometheusMetrics.js +1 -0
- package/dist/observability/PrometheusMetrics.js.map +1 -1
- package/dist/observability/internal/otlpProtobuf.js +32 -1
- package/dist/observability/internal/otlpProtobuf.js.map +1 -1
- package/dist/persistence/PersistedQueue.d.ts +32 -3
- package/dist/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/persistence/PersistedQueue.js +75 -16
- package/dist/persistence/PersistedQueue.js.map +1 -1
- package/dist/reactivity/AsyncResult.d.ts +1 -1
- package/dist/reactivity/Atom.d.ts +5 -5
- package/dist/reactivity/Atom.d.ts.map +1 -1
- package/dist/reactivity/Atom.js +9 -5
- package/dist/reactivity/Atom.js.map +1 -1
- package/dist/reactivity/AtomHttpApi.d.ts +2 -2
- package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/reactivity/AtomRegistry.d.ts +8 -0
- package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/reactivity/AtomRegistry.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +41 -7
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +50 -25
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts +6 -0
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +59 -40
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/rpc/internal/tracing.d.ts +2 -0
- package/dist/rpc/internal/tracing.d.ts.map +1 -0
- package/dist/rpc/internal/tracing.js +18 -0
- package/dist/rpc/internal/tracing.js.map +1 -0
- package/dist/schema/SchemaCompiler/runtime.js +9 -1
- package/dist/schema/SchemaCompiler/runtime.js.map +1 -1
- package/dist/socket/DatagramSocket.d.ts +456 -0
- package/dist/socket/DatagramSocket.d.ts.map +1 -0
- package/dist/socket/DatagramSocket.js +535 -0
- package/dist/socket/DatagramSocket.js.map +1 -0
- package/dist/socket/Socket.d.ts +14 -1
- package/dist/socket/Socket.d.ts.map +1 -1
- package/dist/socket/Socket.js +9 -1
- package/dist/socket/Socket.js.map +1 -1
- package/dist/socket/index.d.ts +5 -0
- package/dist/socket/index.d.ts.map +1 -1
- package/dist/socket/index.js +5 -0
- package/dist/socket/index.js.map +1 -1
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +7 -2
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/SqlClient.d.ts +7 -1
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +35 -10
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/Statement.d.ts +21 -1
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +55 -7
- package/dist/sql/Statement.js.map +1 -1
- package/dist/testing/TestClock.d.ts +8 -0
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +7 -0
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestConsole.d.ts +7 -0
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js +6 -0
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/TestCrypto.d.ts +73 -0
- package/dist/testing/TestCrypto.d.ts.map +1 -0
- package/dist/testing/TestCrypto.js +87 -0
- package/dist/testing/TestCrypto.js.map +1 -0
- package/dist/testing/index.d.ts +8 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +8 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/workflow/DurableDeferred.d.ts +54 -0
- package/dist/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/workflow/DurableDeferred.js +78 -49
- package/dist/workflow/DurableDeferred.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +2 -1
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +3 -3
- package/src/Array.ts +351 -3
- package/src/BigDecimal.ts +88 -0
- package/src/BigInt.ts +68 -0
- package/src/Boolean.ts +34 -0
- package/src/Brand.ts +10 -0
- package/src/ByteSize.ts +87 -0
- package/src/Cache.ts +50 -8
- package/src/Cause.ts +82 -0
- package/src/Channel.ts +368 -18
- package/src/ChannelSchema.ts +13 -0
- package/src/Chunk.ts +193 -0
- package/src/Clock.ts +7 -0
- package/src/Combiner.ts +10 -0
- package/src/Config.ts +82 -8
- package/src/ConfigProvider.ts +28 -0
- package/src/Console.ts +26 -0
- package/src/Context.ts +53 -3
- package/src/Cron.ts +32 -1
- package/src/Crypto.ts +48 -9
- package/src/Data.ts +13 -0
- package/src/DateTime.ts +180 -6
- package/src/Deferred.ts +51 -0
- package/src/Differ.ts +2 -0
- package/src/Duration.ts +126 -16
- package/src/Effect.ts +539 -5
- package/src/Effectable.ts +4 -0
- package/src/Equal.ts +12 -1
- package/src/Equivalence.ts +22 -0
- package/src/ErrorReporter.ts +36 -0
- package/src/ExecutionPlan.ts +58 -14
- package/src/Exit.ts +40 -0
- package/src/Fiber.ts +20 -0
- package/src/FiberHandle.ts +29 -4
- package/src/FiberMap.ts +38 -0
- package/src/FiberSet.ts +21 -0
- package/src/FileSystem.ts +64 -2
- package/src/Filter.ts +55 -0
- package/src/Formatter.ts +42 -1
- package/src/Function.ts +30 -0
- package/src/Graph.ts +317 -36
- package/src/HKT.ts +5 -0
- package/src/Hash.ts +15 -0
- package/src/HashMap.ts +91 -0
- package/src/HashRing.ts +18 -0
- package/src/HashSet.ts +53 -0
- package/src/Inspectable.ts +8 -0
- package/src/Iterable.ts +127 -0
- package/src/JsonPatch.ts +5 -0
- package/src/JsonPointer.ts +5 -0
- package/src/JsonSchema.ts +17 -0
- package/src/Latch.ts +14 -0
- package/src/Layer.ts +101 -1
- package/src/LayerMap.ts +7 -0
- package/src/LayerRef.ts +5 -0
- package/src/LogLevel.ts +20 -0
- package/src/Logger.ts +41 -5
- package/src/ManagedRuntime.ts +12 -1
- package/src/Match.ts +52 -0
- package/src/Metric.ts +69 -0
- package/src/MutableHashMap.ts +44 -0
- package/src/MutableHashSet.ts +17 -0
- package/src/MutableList.ts +21 -0
- package/src/MutableRef.ts +32 -0
- package/src/Newtype.ts +9 -0
- package/src/NonEmptyIterable.ts +4 -0
- package/src/Number.ts +61 -0
- package/src/Optic.ts +57 -0
- package/src/Option.ts +134 -0
- package/src/Order.ts +30 -0
- package/src/Ordering.ts +7 -0
- package/src/PartitionedSemaphore.ts +61 -22
- package/src/Path.ts +6 -0
- package/src/Pipeable.ts +7 -0
- package/src/PlatformError.ts +8 -0
- package/src/Pool.ts +20 -1
- package/src/Predicate.ts +85 -0
- package/src/PrimaryKey.ts +5 -0
- package/src/PubSub.ts +90 -9
- package/src/Pull.ts +20 -0
- package/src/Queue.ts +80 -10
- package/src/Random.ts +13 -0
- package/src/RcMap.ts +23 -0
- package/src/RcRef.ts +6 -0
- package/src/Record.ts +100 -0
- package/src/Redactable.ts +6 -0
- package/src/Redacted.ts +8 -0
- package/src/Reducer.ts +4 -0
- package/src/Ref.ts +42 -0
- package/src/References.ts +21 -0
- package/src/RegExp.ts +4 -0
- package/src/Request.ts +32 -0
- package/src/RequestResolver.ts +59 -10
- package/src/Resource.ts +7 -0
- package/src/Result.ts +93 -0
- package/src/Runtime.ts +10 -0
- package/src/Schedule.ts +61 -0
- package/src/Scheduler.ts +7 -0
- package/src/Schema.ts +1168 -9
- package/src/SchemaAST.ts +115 -1
- package/src/SchemaGetter.ts +80 -4
- package/src/SchemaIssue.ts +34 -0
- package/src/SchemaParser.ts +26 -0
- package/src/SchemaRepresentation.ts +148 -0
- package/src/SchemaTransformation.ts +53 -0
- package/src/Scope.ts +19 -0
- package/src/ScopedCache.ts +55 -3
- package/src/ScopedRef.ts +9 -0
- package/src/Semaphore.ts +26 -0
- package/src/Sink.ts +126 -2
- package/src/StandardSchema.ts +1 -0
- package/src/Stdio.ts +16 -2
- package/src/Stream.ts +633 -26
- package/src/String.ts +87 -0
- package/src/Struct.ts +46 -0
- package/src/SubscriptionRef.ts +65 -0
- package/src/Symbol.ts +2 -0
- package/src/SynchronizedRef.ts +63 -0
- package/src/Take.ts +3 -0
- package/src/Terminal.ts +8 -0
- package/src/Tracer.ts +23 -0
- package/src/Trie.ts +68 -0
- package/src/Tuple.ts +38 -0
- package/src/TxChunk.ts +52 -0
- package/src/TxDeferred.ts +15 -0
- package/src/TxHashMap.ts +97 -6
- package/src/TxHashSet.ts +83 -3
- package/src/TxPriorityQueue.ts +34 -2
- package/src/TxPubSub.ts +26 -0
- package/src/TxQueue.ts +51 -0
- package/src/TxReentrantLock.ts +53 -36
- package/src/TxRef.ts +14 -0
- package/src/TxSemaphore.ts +47 -31
- package/src/TxSubscriptionRef.ts +25 -0
- package/src/Types.ts +36 -0
- package/src/UndefinedOr.ts +15 -0
- package/src/Unify.ts +15 -0
- package/src/Utils.ts +4 -0
- package/src/Version.ts +38 -0
- package/src/ai/Chat.ts +1 -1
- package/src/ai/DecisionModel.ts +42 -1
- package/src/ai/LanguageModel.ts +16 -19
- package/src/ai/McpServer.ts +169 -58
- package/src/ai/Telemetry.ts +62 -58
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +5 -0
- package/src/ai/internal/mcpProtocol.ts +3 -0
- package/src/ai/internal/mcpRuntime.ts +86 -43
- package/src/ai/internal/mcpStatefulRuntime.ts +2 -0
- package/src/cli/CliOutput.ts +33 -16
- package/src/cli/Command.ts +4 -3
- package/src/cli/Completions.ts +9 -6
- package/src/cli/GlobalFlag.ts +19 -11
- package/src/cli/Prompt.ts +159 -149
- package/src/cli/internal/ansi.ts +26 -3
- package/src/cli/internal/completions/powershell.ts +322 -0
- package/src/cli/internal/completions/zsh.ts +4 -2
- package/src/cli/internal/wizard.ts +34 -26
- package/src/cluster/ClusterSchema.ts +32 -0
- package/src/cluster/ClusterWorkflowEngine.ts +13 -24
- package/src/cluster/K8sHttpClient.ts +12 -2
- package/src/cluster/MessageStorage.ts +45 -14
- package/src/cluster/Runners.ts +8 -2
- package/src/cluster/Sharding.ts +207 -49
- package/src/cluster/SqlMessageStorage.ts +118 -84
- package/src/cluster/SqlRunnerStorage.ts +224 -128
- package/src/cluster/internal/entityManager.ts +151 -55
- package/src/encoding/Base64.ts +4 -0
- package/src/encoding/Base64Url.ts +4 -0
- package/src/encoding/EncodingError.ts +5 -0
- package/src/encoding/Hex.ts +5 -0
- package/src/encoding/Toml.ts +2 -2
- package/src/encoding/Yaml.ts +8 -4
- package/src/encoding/index.ts +4 -0
- package/src/eventlog/SqlEventJournal.ts +18 -4
- package/src/eventlog/SqlEventLogServerUnencrypted.ts +282 -235
- package/src/http/FindMyWay/internal/router.ts +4 -7
- package/src/http/Headers.ts +8 -2
- package/src/http/HttpClient.ts +100 -29
- package/src/http/HttpClientResponse.ts +3 -1
- package/src/http/HttpEffect.ts +11 -2
- package/src/http/HttpMiddleware.ts +60 -45
- package/src/http/HttpServer.ts +1 -1
- package/src/http/HttpTraceContext.ts +8 -2
- package/src/http/internal/tracing.ts +52 -0
- package/src/http-api/HttpApiBuilder.ts +5 -1
- package/src/http-api/HttpApiClient.ts +13 -4
- package/src/http-api/HttpApiError.ts +8 -4
- package/src/http-api/HttpApiSecurity.ts +8 -8
- package/src/index.ts +156 -0
- package/src/internal/arbitrary/array.ts +3 -3
- package/src/internal/arbitrary/model.ts +37 -14
- package/src/internal/arbitrary/runner.ts +7 -7
- package/src/internal/arbitrary/schema.ts +4 -3
- package/src/internal/effect.ts +62 -58
- package/src/internal/schedule.ts +23 -17
- package/src/internal/schema/standardSchema.ts +2 -2
- package/src/internal/version.ts +2 -0
- package/src/net/AddressResolver.ts +222 -0
- package/src/net/Dns.ts +1035 -0
- package/src/net/Host.ts +472 -0
- package/src/net/IpInterface.ts +117 -7
- package/src/net/IpNetwork.ts +116 -17
- package/src/net/NetAddress.ts +611 -76
- package/src/net/index.ts +18 -0
- package/src/observability/OtlpExporter.ts +9 -6
- package/src/observability/OtlpLogger.ts +20 -21
- package/src/observability/OtlpMetrics.ts +46 -116
- package/src/observability/OtlpResource.ts +18 -27
- package/src/observability/OtlpTracer.ts +34 -40
- package/src/observability/PrometheusMetrics.ts +1 -0
- package/src/observability/internal/otlpProtobuf.ts +60 -0
- package/src/persistence/PersistedQueue.ts +146 -53
- package/src/reactivity/AsyncResult.ts +1 -1
- package/src/reactivity/Atom.ts +10 -6
- package/src/reactivity/AtomHttpApi.ts +2 -4
- package/src/reactivity/AtomRegistry.ts +7 -0
- package/src/rpc/RpcClient.ts +87 -41
- package/src/rpc/RpcServer.ts +85 -48
- package/src/rpc/internal/tracing.ts +22 -0
- package/src/schema/SchemaCompiler/runtime.ts +4 -1
- package/src/socket/DatagramSocket.ts +919 -0
- package/src/socket/Socket.ts +22 -2
- package/src/socket/index.ts +6 -0
- package/src/sql/Migrator.ts +21 -5
- package/src/sql/SqlClient.ts +43 -19
- package/src/sql/Statement.ts +59 -7
- package/src/testing/TestClock.ts +9 -0
- package/src/testing/TestConsole.ts +8 -0
- package/src/testing/TestCrypto.ts +94 -0
- package/src/testing/index.ts +9 -0
- package/src/workflow/DurableDeferred.ts +123 -48
- package/src/workflow/WorkflowEngine.ts +2 -1
package/src/ai/LanguageModel.ts
CHANGED
|
@@ -869,12 +869,7 @@ export const make: (params: {
|
|
|
869
869
|
> =>
|
|
870
870
|
Effect.useSpan(
|
|
871
871
|
"LanguageModel.generateText",
|
|
872
|
-
{
|
|
873
|
-
attributes: {
|
|
874
|
-
concurrency: options.concurrency,
|
|
875
|
-
toolChoice: options.toolChoice
|
|
876
|
-
}
|
|
877
|
-
},
|
|
872
|
+
{ kind: "client" },
|
|
878
873
|
Effect.fnUntraced(
|
|
879
874
|
function*(span) {
|
|
880
875
|
const spanTransformer = yield* getSpanTransformer
|
|
@@ -930,11 +925,8 @@ export const make: (params: {
|
|
|
930
925
|
return Effect.useSpan(
|
|
931
926
|
"LanguageModel.generateObject",
|
|
932
927
|
{
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
concurrency: options.concurrency,
|
|
936
|
-
toolChoice: options.toolChoice
|
|
937
|
-
}
|
|
928
|
+
kind: "client",
|
|
929
|
+
attributes: { "effect.ai.object_name": objectName }
|
|
938
930
|
},
|
|
939
931
|
Effect.fnUntraced(
|
|
940
932
|
function*(span) {
|
|
@@ -1006,12 +998,7 @@ export const make: (params: {
|
|
|
1006
998
|
Tools extends Record<string, Tool.Any>,
|
|
1007
999
|
Options extends NoExcessProperties<GenerateTextOptions<Tools>, Options>
|
|
1008
1000
|
>(options: Options & GenerateTextOptions<Tools>) {
|
|
1009
|
-
const span = yield* Effect.makeSpanScoped("LanguageModel.streamText", {
|
|
1010
|
-
attributes: {
|
|
1011
|
-
concurrency: options.concurrency,
|
|
1012
|
-
toolChoice: options.toolChoice
|
|
1013
|
-
}
|
|
1014
|
-
})
|
|
1001
|
+
const span = yield* Effect.makeSpanScoped("LanguageModel.streamText", { kind: "client" })
|
|
1015
1002
|
|
|
1016
1003
|
const providerOptions: Mutable<ProviderOptions> = {
|
|
1017
1004
|
prompt: Prompt.make(options.prompt),
|
|
@@ -1083,7 +1070,7 @@ export const make: (params: {
|
|
|
1083
1070
|
const tracker = Option.getOrUndefined(yield* Effect.serviceOption(ResponseIdTracker.ResponseIdTracker))
|
|
1084
1071
|
const toolChoice = options.toolChoice ?? "auto"
|
|
1085
1072
|
const concurrency = options.concurrency ?? "unbounded"
|
|
1086
|
-
providerOptions
|
|
1073
|
+
annotateRequestOptions(providerOptions, toolChoice, concurrency)
|
|
1087
1074
|
|
|
1088
1075
|
const generateWithNonIncrementalFallback = () => {
|
|
1089
1076
|
const requestOptions: ProviderOptions = {
|
|
@@ -1336,7 +1323,7 @@ export const make: (params: {
|
|
|
1336
1323
|
const tracker = Option.getOrUndefined(yield* Effect.serviceOption(ResponseIdTracker.ResponseIdTracker))
|
|
1337
1324
|
const toolChoice = options.toolChoice ?? "auto"
|
|
1338
1325
|
const concurrency = options.concurrency ?? "unbounded"
|
|
1339
|
-
providerOptions
|
|
1326
|
+
annotateRequestOptions(providerOptions, toolChoice, concurrency)
|
|
1340
1327
|
|
|
1341
1328
|
const streamWithNonIncrementalFallback = () => {
|
|
1342
1329
|
const requestOptions: ProviderOptions = {
|
|
@@ -2485,6 +2472,16 @@ const resolveToolkit = <Tools extends Record<string, Tool.Any>, E, R>(
|
|
|
2485
2472
|
? toolkit
|
|
2486
2473
|
: Effect.succeed(toolkit as unknown as Toolkit.WithHandler<Tools>)) as any
|
|
2487
2474
|
|
|
2475
|
+
const annotateRequestOptions = (
|
|
2476
|
+
{ responseFormat, span }: ProviderOptions,
|
|
2477
|
+
toolChoice: ToolChoice<any>,
|
|
2478
|
+
concurrency: Concurrency
|
|
2479
|
+
): void => {
|
|
2480
|
+
span.attribute("gen_ai.output.type", responseFormat.type)
|
|
2481
|
+
span.attribute("effect.ai.tool_choice", typeof toolChoice === "string" ? toolChoice : JSON.stringify(toolChoice))
|
|
2482
|
+
span.attribute("effect.ai.concurrency", concurrency)
|
|
2483
|
+
}
|
|
2484
|
+
|
|
2488
2485
|
/**
|
|
2489
2486
|
* @internal
|
|
2490
2487
|
*/
|
package/src/ai/McpServer.ts
CHANGED
|
@@ -94,6 +94,7 @@ type CompletionContext = typeof Complete.payloadSchema.Type["context"]
|
|
|
94
94
|
|
|
95
95
|
interface QueuedServerNotification {
|
|
96
96
|
readonly notification: McpCore.ServerNotification
|
|
97
|
+
listChangeRevision?: number | undefined
|
|
97
98
|
readonly targetClientId?: number | undefined
|
|
98
99
|
readonly delivered: Deferred.Deferred<void>
|
|
99
100
|
readonly requestContext?: McpRequestContext["Service"] | undefined
|
|
@@ -103,7 +104,7 @@ interface QueuedServerNotification {
|
|
|
103
104
|
const internalState = new WeakMap<object, {
|
|
104
105
|
readonly core: McpCore.McpCore
|
|
105
106
|
readonly notifications: Queue.Dequeue<QueuedServerNotification>
|
|
106
|
-
readonly notificationDelivery: { consumers: number }
|
|
107
|
+
readonly notificationDelivery: { consumers: number; listChangeRevision: number }
|
|
107
108
|
}>()
|
|
108
109
|
type ServerExtensions = NonNullable<ServerCapabilities["extensions"]>
|
|
109
110
|
type ServerNotificationRequest<
|
|
@@ -321,8 +322,8 @@ export class McpServer extends Context.Service<McpServer, {
|
|
|
321
322
|
readonly annotations: Context.Context<never>
|
|
322
323
|
}> = []
|
|
323
324
|
const notificationsQueue = yield* Queue.make<QueuedServerNotification>()
|
|
324
|
-
const notificationDelivery = { consumers: 0 }
|
|
325
|
-
const pendingListChanges = new
|
|
325
|
+
const notificationDelivery = { consumers: 0, listChangeRevision: 0 }
|
|
326
|
+
const pendingListChanges = new Map<string, QueuedServerNotification>()
|
|
326
327
|
const dispatcher = (yield* Scheduler).makeDispatcher()
|
|
327
328
|
const notifications = yield* RpcClient.makeNoSerialization(BroadcastServerNotificationRpcs, {
|
|
328
329
|
spanPrefix: "McpServer/Notifications",
|
|
@@ -337,7 +338,7 @@ export class McpServer extends Context.Service<McpServer, {
|
|
|
337
338
|
if (notification === undefined) {
|
|
338
339
|
return Effect.void
|
|
339
340
|
}
|
|
340
|
-
const queued = {
|
|
341
|
+
const queued: QueuedServerNotification = {
|
|
341
342
|
notification,
|
|
342
343
|
delivered,
|
|
343
344
|
requestContext: Context.getOrUndefined(fiber.context, McpRequestContext),
|
|
@@ -345,14 +346,19 @@ export class McpServer extends Context.Service<McpServer, {
|
|
|
345
346
|
}
|
|
346
347
|
let enqueued = false
|
|
347
348
|
if (message.tag.includes("list_changed")) {
|
|
348
|
-
|
|
349
|
+
const revision = ++notificationDelivery.listChangeRevision
|
|
350
|
+
const pending = pendingListChanges.get(message.tag)
|
|
351
|
+
if (pending !== undefined) {
|
|
352
|
+
// A coalesced change may be newer than an intervening subscription.
|
|
353
|
+
pending.listChangeRevision = revision
|
|
354
|
+
} else {
|
|
355
|
+
queued.listChangeRevision = revision
|
|
349
356
|
enqueued = true
|
|
350
|
-
|
|
357
|
+
pendingListChanges.set(message.tag, queued)
|
|
351
358
|
dispatcher.scheduleTask(() => {
|
|
352
|
-
Queue.offerUnsafe(notificationsQueue, queued)
|
|
353
359
|
pendingListChanges.delete(message.tag)
|
|
360
|
+
Queue.offerUnsafe(notificationsQueue, queued)
|
|
354
361
|
}, 0)
|
|
355
|
-
pendingListChanges.add(tag)
|
|
356
362
|
}
|
|
357
363
|
} else {
|
|
358
364
|
enqueued = true
|
|
@@ -651,11 +657,14 @@ const MCP_SESSION_ID_HEADER = "mcp-session-id"
|
|
|
651
657
|
const MCP_PROTOCOL_VERSION_HEADER = "mcp-protocol-version"
|
|
652
658
|
const MCP_INVALID_BATCH_METHOD = "invalid/json-rpc-batch"
|
|
653
659
|
const cancelledResponses = new WeakMap<object, string | number>()
|
|
660
|
+
const httpPostResponses = new WeakMap<HttpServerRequest.HttpServerRequest, { expected: number }>()
|
|
654
661
|
const requestKey = (requestId: string | number): string => `${typeof requestId}:${requestId}`
|
|
655
662
|
|
|
656
663
|
interface ActiveRequest {
|
|
664
|
+
readonly requestId: RpcMessage.RequestId
|
|
657
665
|
readonly prepared: McpRuntime.PreparedRequest
|
|
658
666
|
readonly cancelled: boolean
|
|
667
|
+
readonly httpPost: { expected: number } | undefined
|
|
659
668
|
}
|
|
660
669
|
|
|
661
670
|
class McpClientKey extends Data.Class<{
|
|
@@ -715,6 +724,7 @@ const runWithRuntime = Effect.fnUntraced(function*(
|
|
|
715
724
|
readonly websiteUrl?: string | undefined
|
|
716
725
|
readonly icons?: ReadonlyArray<McpSchema.Icon> | undefined
|
|
717
726
|
readonly extensions?: ServerExtensions | undefined
|
|
727
|
+
readonly allowSubscriptions?: boolean | undefined
|
|
718
728
|
},
|
|
719
729
|
runtime: McpRuntime.ServerRuntimeShape,
|
|
720
730
|
transport: "custom" | "http" | "stdio"
|
|
@@ -805,10 +815,13 @@ const runWithRuntime = Effect.fnUntraced(function*(
|
|
|
805
815
|
payload: { requestId, reason }
|
|
806
816
|
})
|
|
807
817
|
})
|
|
818
|
+
let writeFromClient!: (clientId: number, message: RpcMessage.FromClientEncoded) => Effect.Effect<void>
|
|
819
|
+
const { core, notificationDelivery, notifications } = internalState.get(server)!
|
|
808
820
|
const handlers = yield* runtime.installHandlers({
|
|
809
|
-
core
|
|
821
|
+
core,
|
|
810
822
|
subscribeServerNotifications: PubSub.subscribe(serverNotifications),
|
|
811
|
-
|
|
823
|
+
getListChangeRevision: () => notificationDelivery.listChangeRevision,
|
|
824
|
+
...(!protocol.supportsNotifications || options.allowSubscriptions === false ? {} : {
|
|
812
825
|
sendNotification,
|
|
813
826
|
markSubscriptionCancelled: (clientId: number, requestId: RpcMessage.RequestId) =>
|
|
814
827
|
Effect.sync(() => {
|
|
@@ -846,10 +859,13 @@ const runWithRuntime = Effect.fnUntraced(function*(
|
|
|
846
859
|
if (request._tag === "Interrupt") {
|
|
847
860
|
// A cancelled reverse request may never receive a reply.
|
|
848
861
|
removeReverseRequestClient(requestKey(request.requestId), key)
|
|
862
|
+
return sendNotification(key.profile.protocolVersion, key.clientId, {
|
|
863
|
+
tag: "notifications/cancelled",
|
|
864
|
+
payload: { requestId: request.requestId }
|
|
865
|
+
})
|
|
849
866
|
}
|
|
850
|
-
//
|
|
851
|
-
|
|
852
|
-
return protocol.send(key.clientId, request as any)
|
|
867
|
+
// Effect RPC control messages are not part of the MCP protocol.
|
|
868
|
+
return Effect.void
|
|
853
869
|
},
|
|
854
870
|
supportsAck: true,
|
|
855
871
|
supportsTransferables: false,
|
|
@@ -948,12 +964,13 @@ const runWithRuntime = Effect.fnUntraced(function*(
|
|
|
948
964
|
if (response._tag === "Exit") {
|
|
949
965
|
const requests = activeRequests.get(clientId)
|
|
950
966
|
const key = requestKey(response.requestId)
|
|
951
|
-
const
|
|
967
|
+
const active = requests?.get(key)
|
|
952
968
|
if (requests !== undefined && requests.delete(key) && requests.size === 0) {
|
|
953
969
|
activeRequests.delete(clientId)
|
|
954
970
|
}
|
|
955
|
-
if (cancelled === true) {
|
|
971
|
+
if (active?.cancelled === true) {
|
|
956
972
|
if (transport === "custom") return Effect.void
|
|
973
|
+
if (active.httpPost !== undefined) active.httpPost.expected--
|
|
957
974
|
cancelledResponses.set(response, response.requestId)
|
|
958
975
|
return protocol.send(clientId, response)
|
|
959
976
|
}
|
|
@@ -976,8 +993,9 @@ const runWithRuntime = Effect.fnUntraced(function*(
|
|
|
976
993
|
}
|
|
977
994
|
return protocol.send(clientId, response)
|
|
978
995
|
},
|
|
979
|
-
run: (f) =>
|
|
980
|
-
|
|
996
|
+
run: (f) => {
|
|
997
|
+
writeFromClient = f
|
|
998
|
+
return protocol.run((clientId, request_) => {
|
|
981
999
|
const fiber = Fiber.getCurrent()!
|
|
982
1000
|
const request = request_ as unknown as
|
|
983
1001
|
| RpcMessage.FromServerEncoded
|
|
@@ -1000,6 +1018,11 @@ const runWithRuntime = Effect.fnUntraced(function*(
|
|
|
1000
1018
|
}
|
|
1001
1019
|
switch (request._tag) {
|
|
1002
1020
|
case "Request": {
|
|
1021
|
+
if (httpRequest !== undefined && request.isNotification !== true) {
|
|
1022
|
+
const httpPost = httpPostResponses.get(httpRequest) ?? { expected: 0 }
|
|
1023
|
+
httpPost.expected++
|
|
1024
|
+
httpPostResponses.set(httpRequest, httpPost)
|
|
1025
|
+
}
|
|
1003
1026
|
const headers = isHttp
|
|
1004
1027
|
? Context.getUnsafe(
|
|
1005
1028
|
Fiber.getCurrent()!.context,
|
|
@@ -1045,11 +1068,13 @@ const runWithRuntime = Effect.fnUntraced(function*(
|
|
|
1045
1068
|
if (httpRequest !== undefined && session !== undefined) {
|
|
1046
1069
|
appendPreResponseHandlerUnsafe(httpRequest, (_, res) =>
|
|
1047
1070
|
Effect.succeed(
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1071
|
+
runtime.resolveRequest(clientId, headers) === undefined
|
|
1072
|
+
? HttpServerResponse.empty({ status: 404 })
|
|
1073
|
+
: HttpServerResponse.setHeader(
|
|
1074
|
+
res,
|
|
1075
|
+
MCP_PROTOCOL_VERSION_HEADER,
|
|
1076
|
+
session.protocol.protocolVersion
|
|
1077
|
+
)
|
|
1053
1078
|
))
|
|
1054
1079
|
}
|
|
1055
1080
|
const routedRequest = runtime.routeClientRequest(selectedProtocol, request)
|
|
@@ -1130,7 +1155,12 @@ const runWithRuntime = Effect.fnUntraced(function*(
|
|
|
1130
1155
|
}
|
|
1131
1156
|
if (request.isNotification !== true) {
|
|
1132
1157
|
const requests = activeRequests.get(clientId) ?? new Map<string, ActiveRequest>()
|
|
1133
|
-
requests.set(requestKey(request.id), {
|
|
1158
|
+
requests.set(requestKey(request.id), {
|
|
1159
|
+
requestId: RpcMessage.RequestId(request.id),
|
|
1160
|
+
prepared,
|
|
1161
|
+
cancelled: false,
|
|
1162
|
+
httpPost: httpRequest === undefined ? undefined : httpPostResponses.get(httpRequest)
|
|
1163
|
+
})
|
|
1134
1164
|
activeRequests.set(clientId, requests)
|
|
1135
1165
|
}
|
|
1136
1166
|
const handled = f(clientId, routedRequest)
|
|
@@ -1205,9 +1235,23 @@ const runWithRuntime = Effect.fnUntraced(function*(
|
|
|
1205
1235
|
}
|
|
1206
1236
|
}
|
|
1207
1237
|
})
|
|
1238
|
+
}
|
|
1208
1239
|
})
|
|
1240
|
+
if (isHttp) {
|
|
1241
|
+
// Stop requests that can no longer receive client replies after termination.
|
|
1242
|
+
yield* runtime.onSessionTerminated((binding) => {
|
|
1243
|
+
const interrupts: Array<Effect.Effect<void>> = []
|
|
1244
|
+
for (const [clientId, requests] of activeRequests) {
|
|
1245
|
+
for (const { prepared, requestId } of requests.values()) {
|
|
1246
|
+
if (prepared.binding === binding && cancelRequest(clientId, requestId)) {
|
|
1247
|
+
interrupts.push(writeFromClient(clientId, { _tag: "Interrupt", requestId }))
|
|
1248
|
+
}
|
|
1249
|
+
}
|
|
1250
|
+
}
|
|
1251
|
+
return Effect.all(interrupts, { discard: true })
|
|
1252
|
+
})
|
|
1253
|
+
}
|
|
1209
1254
|
|
|
1210
|
-
const { notificationDelivery, notifications } = internalState.get(server)!
|
|
1211
1255
|
yield* Effect.acquireRelease(
|
|
1212
1256
|
Effect.sync(() => {
|
|
1213
1257
|
notificationDelivery.consumers++
|
|
@@ -1220,9 +1264,9 @@ const runWithRuntime = Effect.fnUntraced(function*(
|
|
|
1220
1264
|
const notificationTails = new Map<number, Deferred.Deferred<void>>()
|
|
1221
1265
|
yield* Queue.take(notifications).pipe(
|
|
1222
1266
|
Effect.flatMap(Effect.fnUntraced(function*(queued) {
|
|
1223
|
-
const { delivered, notification, targetClientId, requestContext, requestHeaders } = queued
|
|
1267
|
+
const { delivered, listChangeRevision, notification, targetClientId, requestContext, requestHeaders } = queued
|
|
1224
1268
|
if (McpProtocolInternal.isSubscriptionServerNotification(notification)) {
|
|
1225
|
-
yield* PubSub.publish(serverNotifications, { notification, targetClientId })
|
|
1269
|
+
yield* PubSub.publish(serverNotifications, { notification, targetClientId, listChangeRevision })
|
|
1226
1270
|
}
|
|
1227
1271
|
const clientIds = yield* patchedProtocol.clientIds
|
|
1228
1272
|
for (const clientId of clientStates.keys()) {
|
|
@@ -1398,6 +1442,7 @@ const layerWithRuntime = (options: {
|
|
|
1398
1442
|
readonly websiteUrl?: string | undefined
|
|
1399
1443
|
readonly icons?: ReadonlyArray<McpSchema.Icon> | undefined
|
|
1400
1444
|
readonly extensions?: ServerExtensions | undefined
|
|
1445
|
+
readonly allowSubscriptions?: boolean | undefined
|
|
1401
1446
|
}, transport: "custom" | "http" | "stdio"): Layer.Layer<
|
|
1402
1447
|
McpServer | McpServerClient,
|
|
1403
1448
|
never,
|
|
@@ -1526,19 +1571,33 @@ const mcpStdioSerialization = (
|
|
|
1526
1571
|
* **Details**
|
|
1527
1572
|
*
|
|
1528
1573
|
* POST serves JSON-RPC and accepted notification-only requests return `202`.
|
|
1529
|
-
*
|
|
1530
|
-
* JSON-RPC errors with status `400
|
|
1531
|
-
* JSON-RPC method-not-found error with
|
|
1532
|
-
*
|
|
1533
|
-
*
|
|
1574
|
+
* Header mismatches, unsupported protocol versions, and invalid session-header
|
|
1575
|
+
* usage return JSON-RPC errors with status `400`.
|
|
1576
|
+
* Unknown modern RPC methods return a JSON-RPC method-not-found error with
|
|
1577
|
+
* status `404`. Session requests without `MCP-Protocol-Version` use the version
|
|
1578
|
+
* negotiated at initialization. Unsupported HTTP methods return `405`.
|
|
1579
|
+
* Requests with an `Origin` header are rejected unless the exact origin
|
|
1580
|
+
* appears in `allowedOrigins`; Origin-less non-browser clients
|
|
1534
1581
|
* remain valid. The surrounding HTTP server remains responsible for binding
|
|
1535
1582
|
* to an appropriate interface and installing authentication.
|
|
1536
1583
|
*
|
|
1584
|
+
* With `allowSessionTermination`, a DELETE carrying `Mcp-Session-Id` ends that
|
|
1585
|
+
* session with `204` and interrupts its in-flight requests; later requests with
|
|
1586
|
+
* that id get `404`. DELETE validates the session and `MCP-Protocol-Version`
|
|
1587
|
+
* headers like POST. Without the option, or when only sessionless revisions
|
|
1588
|
+
* such as `v2026_07_28` are configured, DELETE returns `405`. Any caller
|
|
1589
|
+
* holding a session id can end that session, so authenticate requests in the
|
|
1590
|
+
* surrounding router.
|
|
1591
|
+
*
|
|
1592
|
+
* Set `allowSubscriptions: false` to disable `v2026_07_28` subscriptions.
|
|
1593
|
+
* Discovery advertises `listChanged: false`, and `subscriptions/listen` returns
|
|
1594
|
+
* Method not found. Request-scoped progress and logs, legacy protocols, and
|
|
1595
|
+
* default subscription behavior are unchanged.
|
|
1596
|
+
*
|
|
1537
1597
|
* `layerHttp` always implements the single-endpoint Streamable HTTP topology.
|
|
1538
1598
|
* Using `v2024_11_05` here is a custom compatibility transport for that
|
|
1539
1599
|
* revision's schema. It does not implement the historical two-endpoint
|
|
1540
|
-
* HTTP+SSE transport, GET SSE, event resumption, session expiry
|
|
1541
|
-
* session termination.
|
|
1600
|
+
* HTTP+SSE transport, GET SSE, event resumption, or session expiry.
|
|
1542
1601
|
*
|
|
1543
1602
|
* @see {@link layerStdio} for exposing the server over stdio
|
|
1544
1603
|
* @see {@link layer} for the base MCP server layer without a transport protocol
|
|
@@ -1558,24 +1617,11 @@ export const layerHttp = (options: {
|
|
|
1558
1617
|
readonly protocols: Arr.NonEmptyReadonlyArray<McpProtocol.ProtocolAdapter>
|
|
1559
1618
|
readonly extensions?: ServerExtensions | undefined
|
|
1560
1619
|
readonly allowedOrigins?: ReadonlyArray<string> | undefined
|
|
1620
|
+
readonly allowSessionTermination?: boolean | undefined
|
|
1621
|
+
readonly allowSubscriptions?: boolean | undefined
|
|
1561
1622
|
}): Layer.Layer<McpServer | McpServerClient, Cause.IllegalArgumentError, HttpRouter.HttpRouter> => {
|
|
1562
1623
|
const runtime = McpRuntime.layer(options.protocols)
|
|
1563
|
-
|
|
1564
|
-
status: 405,
|
|
1565
|
-
headers: { allow: "POST" }
|
|
1566
|
-
})
|
|
1567
|
-
const methodNotAllowed = (request: HttpServerRequest.HttpServerRequest) =>
|
|
1568
|
-
isAllowedMcpOrigin(request, options.allowedOrigins)
|
|
1569
|
-
? Effect.succeed(methodNotAllowedResponse)
|
|
1570
|
-
: Effect.succeed(HttpServerResponse.empty({ status: 403 }))
|
|
1571
|
-
const routes = Layer.mergeAll(
|
|
1572
|
-
HttpRouter.add("GET", options.path, methodNotAllowed),
|
|
1573
|
-
HttpRouter.add("PUT", options.path, methodNotAllowed),
|
|
1574
|
-
HttpRouter.add("PATCH", options.path, methodNotAllowed),
|
|
1575
|
-
HttpRouter.add("DELETE", options.path, methodNotAllowed),
|
|
1576
|
-
HttpRouter.add("OPTIONS", options.path, methodNotAllowed)
|
|
1577
|
-
)
|
|
1578
|
-
return Layer.merge(layerWithRuntime(options, "http"), routes).pipe(
|
|
1624
|
+
return layerWithRuntime(options, "http").pipe(
|
|
1579
1625
|
Layer.provide(layerMcpProtocolHttp(options)),
|
|
1580
1626
|
Layer.provide(runtime),
|
|
1581
1627
|
Layer.provide(RpcSerialization.layerJsonRpc())
|
|
@@ -1585,6 +1631,7 @@ export const layerHttp = (options: {
|
|
|
1585
1631
|
const layerMcpProtocolHttp = (options: {
|
|
1586
1632
|
readonly path: HttpRouter.PathInput
|
|
1587
1633
|
readonly allowedOrigins?: ReadonlyArray<string> | undefined
|
|
1634
|
+
readonly allowSessionTermination?: boolean | undefined
|
|
1588
1635
|
}): Layer.Layer<
|
|
1589
1636
|
RpcServer.Protocol,
|
|
1590
1637
|
never,
|
|
@@ -1596,6 +1643,29 @@ const layerMcpProtocolHttp = (options: {
|
|
|
1596
1643
|
Effect.provideService(RpcSerialization.RpcSerialization, mcpHttpSerialization)
|
|
1597
1644
|
)
|
|
1598
1645
|
const router = yield* HttpRouter.HttpRouter
|
|
1646
|
+
const allowSessionTermination = options.allowSessionTermination === true &&
|
|
1647
|
+
runtime.protocols.some((protocol) => protocol.runtime._tag === "Stateful")
|
|
1648
|
+
const forbidden = Effect.succeed(HttpServerResponse.empty({ status: 403 }))
|
|
1649
|
+
const withAllowedOrigin = (
|
|
1650
|
+
handler: (request: HttpServerRequest.HttpServerRequest) => Effect.Effect<HttpServerResponse.HttpServerResponse>
|
|
1651
|
+
) =>
|
|
1652
|
+
(request: HttpServerRequest.HttpServerRequest) =>
|
|
1653
|
+
isAllowedMcpOrigin(request, options.allowedOrigins) ? handler(request) : forbidden
|
|
1654
|
+
const methodNotAllowedResponse = Effect.succeed(HttpServerResponse.empty({
|
|
1655
|
+
status: 405,
|
|
1656
|
+
headers: { allow: allowSessionTermination ? "POST, DELETE" : "POST" }
|
|
1657
|
+
}))
|
|
1658
|
+
const methodNotAllowed = withAllowedOrigin(() => methodNotAllowedResponse)
|
|
1659
|
+
for (const method of ["GET", "PUT", "PATCH", "OPTIONS"] as const) {
|
|
1660
|
+
yield* router.add(method, options.path, methodNotAllowed)
|
|
1661
|
+
}
|
|
1662
|
+
yield* router.add(
|
|
1663
|
+
"DELETE",
|
|
1664
|
+
options.path,
|
|
1665
|
+
allowSessionTermination
|
|
1666
|
+
? withAllowedOrigin((request) => runtime.terminateHttpSession(request.headers))
|
|
1667
|
+
: methodNotAllowed
|
|
1668
|
+
)
|
|
1599
1669
|
yield* router.add("POST", options.path, (request) => {
|
|
1600
1670
|
if (!isAllowedMcpOrigin(request, options.allowedOrigins)) {
|
|
1601
1671
|
return Effect.succeed(HttpServerResponse.empty({ status: 403 }))
|
|
@@ -1615,17 +1685,30 @@ const layerMcpProtocolHttp = (options: {
|
|
|
1615
1685
|
if (admission._tag === "Rejected") {
|
|
1616
1686
|
return admission.response
|
|
1617
1687
|
}
|
|
1618
|
-
const
|
|
1688
|
+
const toResponse = (response: HttpServerResponse.HttpServerResponse) => {
|
|
1619
1689
|
// Completed responses may already contain notifications followed by the result.
|
|
1620
1690
|
const hasMultipleMessages = response.body._tag === "Uint8Array" &&
|
|
1621
1691
|
response.body.body.subarray(0, -1).includes(10)
|
|
1622
1692
|
return admission.isSubscription || response.body._tag === "Stream" || hasMultipleMessages
|
|
1623
1693
|
? toServerSentEvents(response, admission.isSubscription)
|
|
1624
1694
|
: response
|
|
1695
|
+
}
|
|
1696
|
+
if (admission.acknowledge) {
|
|
1697
|
+
return yield* Effect.catchCause(
|
|
1698
|
+
Effect.map(httpEffect, toResponse),
|
|
1699
|
+
() => Effect.succeed(HttpServerResponse.empty({ status: 202 }))
|
|
1700
|
+
)
|
|
1701
|
+
}
|
|
1702
|
+
return yield* Effect.flatMap(httpEffect, (response) => {
|
|
1703
|
+
if (response.body._tag !== "Uint8Array" || response.body.body.length > 0) {
|
|
1704
|
+
return Effect.succeed(toResponse(response))
|
|
1705
|
+
}
|
|
1706
|
+
// Only fully cancelled request POSTs may return an empty SSE response.
|
|
1707
|
+
// https://modelcontextprotocol.io/specification/2025-11-25/basic/transports#sending-messages-to-the-server
|
|
1708
|
+
return httpPostResponses.get(request)?.expected === 0
|
|
1709
|
+
? Effect.succeed(HttpServerResponse.stream(Stream.empty, { contentType: "text/event-stream" }))
|
|
1710
|
+
: Effect.die(new Error("MCP request ended without writing its response"))
|
|
1625
1711
|
})
|
|
1626
|
-
return yield* admission.acknowledge
|
|
1627
|
-
? Effect.catchCause(response, () => Effect.succeed(HttpServerResponse.empty({ status: 202 })))
|
|
1628
|
-
: response
|
|
1629
1712
|
})
|
|
1630
1713
|
})
|
|
1631
1714
|
return protocol
|
|
@@ -1809,7 +1892,7 @@ export const registerToolkit: <Tools extends Record<string, Tool.Any>>(
|
|
|
1809
1892
|
) => Effect.Effect<
|
|
1810
1893
|
void,
|
|
1811
1894
|
never,
|
|
1812
|
-
McpServer | Tool.HandlersFor<Tools> | Exclude<Tool.HandlerServices<Tools>, McpRequestContext>
|
|
1895
|
+
McpServer | Tool.HandlersFor<Tools> | Exclude<Tool.HandlerServices<Tools[keyof Tools]>, McpRequestContext>
|
|
1813
1896
|
> = Effect.fnUntraced(function*<Tools extends Record<string, Tool.Any>>(
|
|
1814
1897
|
toolkit: Toolkit.Toolkit<Tools>
|
|
1815
1898
|
) {
|
|
@@ -1829,7 +1912,11 @@ export const registerToolkit: <Tools extends Record<string, Tool.Any>>(
|
|
|
1829
1912
|
}
|
|
1830
1913
|
return Context.makeUnsafe(services)
|
|
1831
1914
|
}))
|
|
1832
|
-
const services = omitRequestServices(
|
|
1915
|
+
const services = omitRequestServices(
|
|
1916
|
+
yield* Effect.context<
|
|
1917
|
+
Exclude<Tool.HandlerServices<Tools[keyof Tools]>, McpRequestContext>
|
|
1918
|
+
>()
|
|
1919
|
+
)
|
|
1833
1920
|
const reportCause = (cause: Cause.Cause<unknown>) => Effect.provideContext(ErrorReporter.report(cause), services)
|
|
1834
1921
|
// Interruption propagates; anything else is logged, reported and scrubbed.
|
|
1835
1922
|
const internalToolError = (cause: Cause.Cause<unknown>) => {
|
|
@@ -1973,7 +2060,7 @@ export const toolkit = <Tools extends Record<string, Tool.Any>>(
|
|
|
1973
2060
|
): Layer.Layer<
|
|
1974
2061
|
never,
|
|
1975
2062
|
never,
|
|
1976
|
-
Tool.HandlersFor<Tools> | Exclude<Tool.HandlerServices<Tools>, McpRequestContext>
|
|
2063
|
+
Tool.HandlersFor<Tools> | Exclude<Tool.HandlerServices<Tools[keyof Tools]>, McpRequestContext>
|
|
1977
2064
|
> =>
|
|
1978
2065
|
Layer.effectDiscard(registerToolkit(toolkit)).pipe(
|
|
1979
2066
|
Layer.provide(McpServer.layer)
|
|
@@ -1997,6 +2084,19 @@ export type ValidateCompletions<Completions, Keys extends string> =
|
|
|
1997
2084
|
: never
|
|
1998
2085
|
}
|
|
1999
2086
|
|
|
2087
|
+
/**
|
|
2088
|
+
* Utility type that collects the services required by the handlers of a
|
|
2089
|
+
* completion-handler record, including handlers declared as optional.
|
|
2090
|
+
*
|
|
2091
|
+
* @stability unstable
|
|
2092
|
+
* @category utility types
|
|
2093
|
+
* @since 4.0.0
|
|
2094
|
+
*/
|
|
2095
|
+
export type CompletionServices<Completions> = {
|
|
2096
|
+
[K in keyof Completions]-?: NonNullable<Completions[K]> extends (...args: any) => infer Ret ? Effect.Services<Ret>
|
|
2097
|
+
: never
|
|
2098
|
+
}[keyof Completions]
|
|
2099
|
+
|
|
2000
2100
|
/**
|
|
2001
2101
|
* Completion-handler map for a resource URI template.
|
|
2002
2102
|
*
|
|
@@ -2374,7 +2474,13 @@ export const registerPrompt = <
|
|
|
2374
2474
|
): Effect.Effect<
|
|
2375
2475
|
void,
|
|
2376
2476
|
never,
|
|
2377
|
-
Exclude<
|
|
2477
|
+
| Exclude<
|
|
2478
|
+
| Schema.Struct.DecodingServices<Params>
|
|
2479
|
+
| R
|
|
2480
|
+
| CompletionServices<Completions>,
|
|
2481
|
+
McpRequestContext
|
|
2482
|
+
>
|
|
2483
|
+
| McpServer
|
|
2378
2484
|
> => {
|
|
2379
2485
|
const args = Arr.empty<PromptArgument>()
|
|
2380
2486
|
const props: Record<string, Schema.Constraint> = options.parameters ?? {}
|
|
@@ -2512,7 +2618,12 @@ export const prompt = <
|
|
|
2512
2618
|
): Layer.Layer<
|
|
2513
2619
|
never,
|
|
2514
2620
|
never,
|
|
2515
|
-
Exclude<
|
|
2621
|
+
Exclude<
|
|
2622
|
+
| Schema.Struct.DecodingServices<Params>
|
|
2623
|
+
| R
|
|
2624
|
+
| CompletionServices<Completions>,
|
|
2625
|
+
McpRequestContext
|
|
2626
|
+
>
|
|
2516
2627
|
> =>
|
|
2517
2628
|
Layer.effectDiscard(registerPrompt(options)).pipe(
|
|
2518
2629
|
Layer.provide(McpServer.layer)
|