effect 4.0.0 → 4.0.2
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 +47 -23
- 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 +61 -1
- 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 +21 -0
- 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 +5 -0
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +3 -0
- 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 +171 -0
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +89 -0
- 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 +90 -0
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +53 -0
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +677 -22
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +251 -10
- 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 +15 -0
- 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 +22 -5
- 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 +28 -5
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +42 -42
- 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 +24 -1
- 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 +496 -1
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +280 -1
- 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 +50 -19
- 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 +7 -0
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +5 -0
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +603 -6
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +316 -57
- 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 +8 -0
- package/dist/ai/LanguageModel.d.ts.map +1 -1
- package/dist/ai/LanguageModel.js +27 -15
- package/dist/ai/LanguageModel.js.map +1 -1
- package/dist/ai/McpSchema.d.ts +508 -508
- package/dist/ai/McpSchema.d.ts.map +1 -1
- package/dist/ai/McpSchema.js +1 -1
- package/dist/ai/McpSchema.js.map +1 -1
- package/dist/ai/McpServer.d.ts +32 -11
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +224 -172
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js +22 -12
- package/dist/ai/Response.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/v2024_11_05.js +1 -0
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -0
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js +1 -0
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js +1 -0
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +79 -46
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2024_11_05.js +3 -1
- package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpStatefulRuntime.js +1 -0
- package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +11 -2
- 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/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +14 -7
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +21 -12
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +30 -44
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +63 -62
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/cluster/internal/interruptors.js +8 -0
- package/dist/cluster/internal/interruptors.js.map +1 -1
- package/dist/cluster/internal/resourceMap.js +39 -14
- package/dist/cluster/internal/resourceMap.js.map +1 -1
- package/dist/cluster/internal/resourceRef.js +168 -87
- package/dist/cluster/internal/resourceRef.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/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 +9 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +40 -21
- 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 +58 -40
- 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/HttpStaticServer.d.ts.map +1 -1
- package/dist/http/HttpStaticServer.js +14 -0
- package/dist/http/HttpStaticServer.js.map +1 -1
- package/dist/http/HttpTraceContext.d.ts +1 -1
- package/dist/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/http/HttpTraceContext.js +4 -4
- 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 -2
- package/dist/http-api/HttpApiError.d.ts.map +1 -1
- package/dist/http-api/HttpApiError.js +7 -3
- 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/core.js +43 -2
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +1 -1
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +104 -120
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/rcRef.js +59 -23
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/schedule.js +7 -5
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.js +11 -8
- package/dist/internal/schema/fromJsonSchemaDocument.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/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 +21 -94
- 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/internal/otlpProtobuf.js +32 -1
- package/dist/observability/internal/otlpProtobuf.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 +21 -3
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +58 -34
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +20 -23
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/rpc/Utils.d.ts +2 -3
- package/dist/rpc/Utils.d.ts.map +1 -1
- package/dist/rpc/Utils.js +3 -4
- package/dist/rpc/Utils.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/sql/SqlClient.js +4 -4
- 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/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +3 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts +2 -0
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +1 -0
- 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 +72 -24
- package/src/Cause.ts +83 -1
- 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 +50 -0
- package/src/Cron.ts +32 -1
- package/src/Crypto.ts +5 -0
- package/src/Data.ts +13 -0
- package/src/DateTime.ts +171 -0
- package/src/Deferred.ts +51 -0
- package/src/Differ.ts +2 -0
- package/src/Duration.ts +90 -0
- package/src/Effect.ts +692 -27
- 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 +16 -0
- 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 +32 -5
- 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 +48 -37
- 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 +49 -2
- 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 +499 -4
- 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 +82 -19
- 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 +7 -0
- package/src/Stream.ts +780 -103
- 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 +43 -21
- package/src/ai/McpSchema.ts +3 -3
- package/src/ai/McpServer.ts +119 -39
- package/src/ai/Response.ts +27 -12
- package/src/ai/Telemetry.ts +62 -58
- package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -0
- package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -0
- package/src/ai/internal/mcpProtocol/v2025_06_18.ts +1 -0
- package/src/ai/internal/mcpProtocol/v2025_11_25.ts +1 -0
- package/src/ai/internal/mcpRuntime.ts +84 -43
- package/src/ai/internal/mcpSchema/v2024_11_05.ts +4 -2
- package/src/ai/internal/mcpStatefulRuntime.ts +2 -0
- package/src/cluster/ClusterWorkflowEngine.ts +18 -4
- package/src/cluster/K8sHttpClient.ts +12 -2
- package/src/cluster/Sharding.ts +24 -24
- package/src/cluster/SqlMessageStorage.ts +26 -13
- package/src/cluster/SqlRunnerStorage.ts +85 -113
- package/src/cluster/internal/entityManager.ts +68 -80
- package/src/cluster/internal/interruptors.ts +13 -0
- package/src/cluster/internal/resourceMap.ts +55 -17
- package/src/cluster/internal/resourceRef.ts +189 -96
- 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/Headers.ts +8 -2
- package/src/http/HttpClient.ts +44 -27
- package/src/http/HttpClientResponse.ts +3 -1
- package/src/http/HttpEffect.ts +11 -2
- package/src/http/HttpMiddleware.ts +67 -46
- package/src/http/HttpServer.ts +1 -1
- package/src/http/HttpStaticServer.ts +16 -0
- package/src/http/HttpTraceContext.ts +8 -4
- 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 -3
- 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/core.ts +56 -2
- package/src/internal/dateTime.ts +3 -1
- package/src/internal/effect.ts +156 -156
- package/src/internal/rcRef.ts +83 -33
- package/src/internal/schedule.ts +23 -17
- package/src/internal/schema/fromJsonSchemaDocument.ts +5 -3
- package/src/internal/schema/standardSchema.ts +2 -2
- package/src/internal/version.ts +2 -0
- package/src/observability/OtlpExporter.ts +9 -6
- package/src/observability/OtlpLogger.ts +20 -21
- package/src/observability/OtlpMetrics.ts +34 -93
- package/src/observability/OtlpResource.ts +18 -27
- package/src/observability/OtlpTracer.ts +34 -40
- package/src/observability/internal/otlpProtobuf.ts +60 -0
- 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 +74 -46
- package/src/rpc/RpcServer.ts +28 -25
- package/src/rpc/Utils.ts +4 -10
- package/src/rpc/internal/tracing.ts +22 -0
- package/src/schema/SchemaCompiler/runtime.ts +4 -1
- package/src/sql/SqlClient.ts +4 -4
- package/src/sql/Statement.ts +59 -7
- package/src/testing/TestClock.ts +9 -0
- package/src/testing/TestConsole.ts +8 -0
- package/src/testing/index.ts +3 -0
- package/src/workflow/WorkflowEngine.ts +4 -0
package/src/ai/LanguageModel.ts
CHANGED
|
@@ -107,6 +107,13 @@ export const TypeId: TypeId = "~effect/ai/LanguageModel"
|
|
|
107
107
|
export interface LanguageModel {
|
|
108
108
|
readonly [TypeId]: TypeId
|
|
109
109
|
|
|
110
|
+
/**
|
|
111
|
+
* Whether the effective provider configuration supports system messages in
|
|
112
|
+
* history. Evaluate in the request's context to respect scoped overrides.
|
|
113
|
+
* Placement restrictions may apply; an absent capability means unknown support.
|
|
114
|
+
*/
|
|
115
|
+
readonly supportsSystemMessagesInHistory?: Effect.Effect<boolean> | undefined
|
|
116
|
+
|
|
110
117
|
/**
|
|
111
118
|
* Generate text using the language model.
|
|
112
119
|
*/
|
|
@@ -833,6 +840,9 @@ export const make: (params: {
|
|
|
833
840
|
* for structured output generation.
|
|
834
841
|
*/
|
|
835
842
|
readonly codecTransformer?: CodecTransformer | undefined
|
|
843
|
+
|
|
844
|
+
/** Whether the effective provider configuration supports system messages in history. */
|
|
845
|
+
readonly supportsSystemMessagesInHistory?: Effect.Effect<boolean> | undefined
|
|
836
846
|
}) => Effect.Effect<LanguageModel> = Effect.fnUntraced(function*(params) {
|
|
837
847
|
const codecTransformer = params.codecTransformer ?? defaultCodecTransformer
|
|
838
848
|
|
|
@@ -859,12 +869,7 @@ export const make: (params: {
|
|
|
859
869
|
> =>
|
|
860
870
|
Effect.useSpan(
|
|
861
871
|
"LanguageModel.generateText",
|
|
862
|
-
{
|
|
863
|
-
attributes: {
|
|
864
|
-
concurrency: options.concurrency,
|
|
865
|
-
toolChoice: options.toolChoice
|
|
866
|
-
}
|
|
867
|
-
},
|
|
872
|
+
{ kind: "client" },
|
|
868
873
|
Effect.fnUntraced(
|
|
869
874
|
function*(span) {
|
|
870
875
|
const spanTransformer = yield* getSpanTransformer
|
|
@@ -920,11 +925,8 @@ export const make: (params: {
|
|
|
920
925
|
return Effect.useSpan(
|
|
921
926
|
"LanguageModel.generateObject",
|
|
922
927
|
{
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
concurrency: options.concurrency,
|
|
926
|
-
toolChoice: options.toolChoice
|
|
927
|
-
}
|
|
928
|
+
kind: "client",
|
|
929
|
+
attributes: { "effect.ai.object_name": objectName }
|
|
928
930
|
},
|
|
929
931
|
Effect.fnUntraced(
|
|
930
932
|
function*(span) {
|
|
@@ -996,12 +998,7 @@ export const make: (params: {
|
|
|
996
998
|
Tools extends Record<string, Tool.Any>,
|
|
997
999
|
Options extends NoExcessProperties<GenerateTextOptions<Tools>, Options>
|
|
998
1000
|
>(options: Options & GenerateTextOptions<Tools>) {
|
|
999
|
-
const span = yield* Effect.makeSpanScoped("LanguageModel.streamText", {
|
|
1000
|
-
attributes: {
|
|
1001
|
-
concurrency: options.concurrency,
|
|
1002
|
-
toolChoice: options.toolChoice
|
|
1003
|
-
}
|
|
1004
|
-
})
|
|
1001
|
+
const span = yield* Effect.makeSpanScoped("LanguageModel.streamText", { kind: "client" })
|
|
1005
1002
|
|
|
1006
1003
|
const providerOptions: Mutable<ProviderOptions> = {
|
|
1007
1004
|
prompt: Prompt.make(options.prompt),
|
|
@@ -1073,7 +1070,7 @@ export const make: (params: {
|
|
|
1073
1070
|
const tracker = Option.getOrUndefined(yield* Effect.serviceOption(ResponseIdTracker.ResponseIdTracker))
|
|
1074
1071
|
const toolChoice = options.toolChoice ?? "auto"
|
|
1075
1072
|
const concurrency = options.concurrency ?? "unbounded"
|
|
1076
|
-
providerOptions
|
|
1073
|
+
annotateRequestOptions(providerOptions, toolChoice, concurrency)
|
|
1077
1074
|
|
|
1078
1075
|
const generateWithNonIncrementalFallback = () => {
|
|
1079
1076
|
const requestOptions: ProviderOptions = {
|
|
@@ -1326,7 +1323,7 @@ export const make: (params: {
|
|
|
1326
1323
|
const tracker = Option.getOrUndefined(yield* Effect.serviceOption(ResponseIdTracker.ResponseIdTracker))
|
|
1327
1324
|
const toolChoice = options.toolChoice ?? "auto"
|
|
1328
1325
|
const concurrency = options.concurrency ?? "unbounded"
|
|
1329
|
-
providerOptions
|
|
1326
|
+
annotateRequestOptions(providerOptions, toolChoice, concurrency)
|
|
1330
1327
|
|
|
1331
1328
|
const streamWithNonIncrementalFallback = () => {
|
|
1332
1329
|
const requestOptions: ProviderOptions = {
|
|
@@ -1749,6 +1746,7 @@ export const make: (params: {
|
|
|
1749
1746
|
|
|
1750
1747
|
return LanguageModel.of({
|
|
1751
1748
|
[TypeId]: TypeId,
|
|
1749
|
+
supportsSystemMessagesInHistory: params.supportsSystemMessagesInHistory,
|
|
1752
1750
|
generateText: generateText as LanguageModel["generateText"],
|
|
1753
1751
|
generateObject: generateObject as LanguageModel["generateObject"],
|
|
1754
1752
|
streamText: streamText as LanguageModel["streamText"]
|
|
@@ -2417,18 +2415,32 @@ const resolveToolCalls = <Tools extends Record<string, Tool.Any>>(
|
|
|
2417
2415
|
// Utilities
|
|
2418
2416
|
// =============================================================================
|
|
2419
2417
|
|
|
2418
|
+
// Stable parameter-mode copies let Response reuse each tool's part schemas.
|
|
2419
|
+
const parameterModeTools = new WeakMap<Tool.Any, { encoded?: Tool.Any; opaque?: Tool.Any }>()
|
|
2420
|
+
|
|
2421
|
+
const withParameterMode = (tool: Tool.Any, mode: "encoded" | "opaque"): Tool.Any => {
|
|
2422
|
+
let tools = parameterModeTools.get(tool)
|
|
2423
|
+
if (tools === undefined) {
|
|
2424
|
+
tools = {}
|
|
2425
|
+
parameterModeTools.set(tool, tools)
|
|
2426
|
+
}
|
|
2427
|
+
return tools[mode] ??= tool.setParameters(
|
|
2428
|
+
mode === "encoded" ? Schema.toEncoded(tool.parametersSchema) : Schema.Unknown
|
|
2429
|
+
)
|
|
2430
|
+
}
|
|
2431
|
+
|
|
2420
2432
|
const makeToolkitWithEncodedParameters = <Tools extends Record<string, Tool.Any>>(
|
|
2421
2433
|
toolkit: Toolkit.WithHandler<Tools>
|
|
2422
2434
|
): Toolkit.Any =>
|
|
2423
2435
|
Toolkit.make(
|
|
2424
|
-
...Object.values(toolkit.tools).map((tool) =>
|
|
2436
|
+
...Object.values(toolkit.tools).map((tool) => withParameterMode(tool, "encoded"))
|
|
2425
2437
|
)
|
|
2426
2438
|
|
|
2427
2439
|
const makeToolkitWithOpaqueParameters = <Tools extends Record<string, Tool.Any>>(
|
|
2428
2440
|
toolkit: Toolkit.WithHandler<Tools>
|
|
2429
2441
|
): Toolkit.Any =>
|
|
2430
2442
|
Toolkit.make(
|
|
2431
|
-
...Object.values(toolkit.tools).map((tool) => tool
|
|
2443
|
+
...Object.values(toolkit.tools).map((tool) => withParameterMode(tool, "opaque"))
|
|
2432
2444
|
)
|
|
2433
2445
|
|
|
2434
2446
|
// Provider-executed tools bypass Toolkit, so validate their parameters here.
|
|
@@ -2460,6 +2472,16 @@ const resolveToolkit = <Tools extends Record<string, Tool.Any>, E, R>(
|
|
|
2460
2472
|
? toolkit
|
|
2461
2473
|
: Effect.succeed(toolkit as unknown as Toolkit.WithHandler<Tools>)) as any
|
|
2462
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
|
+
|
|
2463
2485
|
/**
|
|
2464
2486
|
* @internal
|
|
2465
2487
|
*/
|
package/src/ai/McpSchema.ts
CHANGED
|
@@ -86,10 +86,10 @@ export const optionalWithDefault = <S extends Schema.Constraint & Schema.Without
|
|
|
86
86
|
*/
|
|
87
87
|
export const optional = <S extends Schema.Constraint>(
|
|
88
88
|
schema: S
|
|
89
|
-
): Schema.decodeTo<Schema.optional<S
|
|
89
|
+
): Schema.decodeTo<Schema.toType<Schema.optional<S>>, Schema.optionalKey<S>> =>
|
|
90
90
|
Schema.optionalKey(schema).pipe(
|
|
91
|
-
Schema.decodeTo(Schema.optional(schema), {
|
|
92
|
-
decode: SchemaGetter.passthrough()
|
|
91
|
+
Schema.decodeTo(Schema.toType(Schema.optional(schema)), {
|
|
92
|
+
decode: SchemaGetter.passthrough(),
|
|
93
93
|
encode: SchemaGetter.transformOptional(Option.flatMap(Option.fromUndefinedOr))
|
|
94
94
|
})
|
|
95
95
|
)
|
package/src/ai/McpServer.ts
CHANGED
|
@@ -654,6 +654,7 @@ const cancelledResponses = new WeakMap<object, string | number>()
|
|
|
654
654
|
const requestKey = (requestId: string | number): string => `${typeof requestId}:${requestId}`
|
|
655
655
|
|
|
656
656
|
interface ActiveRequest {
|
|
657
|
+
readonly requestId: RpcMessage.RequestId
|
|
657
658
|
readonly prepared: McpRuntime.PreparedRequest
|
|
658
659
|
readonly cancelled: boolean
|
|
659
660
|
}
|
|
@@ -805,6 +806,7 @@ const runWithRuntime = Effect.fnUntraced(function*(
|
|
|
805
806
|
payload: { requestId, reason }
|
|
806
807
|
})
|
|
807
808
|
})
|
|
809
|
+
let writeFromClient!: (clientId: number, message: RpcMessage.FromClientEncoded) => Effect.Effect<void>
|
|
808
810
|
const handlers = yield* runtime.installHandlers({
|
|
809
811
|
core: internalState.get(server)!.core,
|
|
810
812
|
subscribeServerNotifications: PubSub.subscribe(serverNotifications),
|
|
@@ -976,8 +978,9 @@ const runWithRuntime = Effect.fnUntraced(function*(
|
|
|
976
978
|
}
|
|
977
979
|
return protocol.send(clientId, response)
|
|
978
980
|
},
|
|
979
|
-
run: (f) =>
|
|
980
|
-
|
|
981
|
+
run: (f) => {
|
|
982
|
+
writeFromClient = f
|
|
983
|
+
return protocol.run((clientId, request_) => {
|
|
981
984
|
const fiber = Fiber.getCurrent()!
|
|
982
985
|
const request = request_ as unknown as
|
|
983
986
|
| RpcMessage.FromServerEncoded
|
|
@@ -1045,11 +1048,13 @@ const runWithRuntime = Effect.fnUntraced(function*(
|
|
|
1045
1048
|
if (httpRequest !== undefined && session !== undefined) {
|
|
1046
1049
|
appendPreResponseHandlerUnsafe(httpRequest, (_, res) =>
|
|
1047
1050
|
Effect.succeed(
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1051
|
+
runtime.resolveRequest(clientId, headers) === undefined
|
|
1052
|
+
? HttpServerResponse.empty({ status: 404 })
|
|
1053
|
+
: HttpServerResponse.setHeader(
|
|
1054
|
+
res,
|
|
1055
|
+
MCP_PROTOCOL_VERSION_HEADER,
|
|
1056
|
+
session.protocol.protocolVersion
|
|
1057
|
+
)
|
|
1053
1058
|
))
|
|
1054
1059
|
}
|
|
1055
1060
|
const routedRequest = runtime.routeClientRequest(selectedProtocol, request)
|
|
@@ -1130,7 +1135,11 @@ const runWithRuntime = Effect.fnUntraced(function*(
|
|
|
1130
1135
|
}
|
|
1131
1136
|
if (request.isNotification !== true) {
|
|
1132
1137
|
const requests = activeRequests.get(clientId) ?? new Map<string, ActiveRequest>()
|
|
1133
|
-
requests.set(requestKey(request.id), {
|
|
1138
|
+
requests.set(requestKey(request.id), {
|
|
1139
|
+
requestId: RpcMessage.RequestId(request.id),
|
|
1140
|
+
prepared,
|
|
1141
|
+
cancelled: false
|
|
1142
|
+
})
|
|
1134
1143
|
activeRequests.set(clientId, requests)
|
|
1135
1144
|
}
|
|
1136
1145
|
const handled = f(clientId, routedRequest)
|
|
@@ -1205,7 +1214,22 @@ const runWithRuntime = Effect.fnUntraced(function*(
|
|
|
1205
1214
|
}
|
|
1206
1215
|
}
|
|
1207
1216
|
})
|
|
1217
|
+
}
|
|
1208
1218
|
})
|
|
1219
|
+
if (isHttp) {
|
|
1220
|
+
// Stop requests that can no longer receive client replies after termination.
|
|
1221
|
+
yield* runtime.onSessionTerminated((binding) => {
|
|
1222
|
+
const interrupts: Array<Effect.Effect<void>> = []
|
|
1223
|
+
for (const [clientId, requests] of activeRequests) {
|
|
1224
|
+
for (const { prepared, requestId } of requests.values()) {
|
|
1225
|
+
if (prepared.binding === binding && cancelRequest(clientId, requestId)) {
|
|
1226
|
+
interrupts.push(writeFromClient(clientId, { _tag: "Interrupt", requestId }))
|
|
1227
|
+
}
|
|
1228
|
+
}
|
|
1229
|
+
}
|
|
1230
|
+
return Effect.all(interrupts, { discard: true })
|
|
1231
|
+
})
|
|
1232
|
+
}
|
|
1209
1233
|
|
|
1210
1234
|
const { notificationDelivery, notifications } = internalState.get(server)!
|
|
1211
1235
|
yield* Effect.acquireRelease(
|
|
@@ -1526,19 +1550,28 @@ const mcpStdioSerialization = (
|
|
|
1526
1550
|
* **Details**
|
|
1527
1551
|
*
|
|
1528
1552
|
* 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
|
-
*
|
|
1553
|
+
* Header mismatches, unsupported protocol versions, and invalid session-header
|
|
1554
|
+
* usage return JSON-RPC errors with status `400`.
|
|
1555
|
+
* Unknown modern RPC methods return a JSON-RPC method-not-found error with
|
|
1556
|
+
* status `404`. Session requests without `MCP-Protocol-Version` use the version
|
|
1557
|
+
* negotiated at initialization. Unsupported HTTP methods return `405`.
|
|
1558
|
+
* Requests with an `Origin` header are rejected unless the exact origin
|
|
1559
|
+
* appears in `allowedOrigins`; Origin-less non-browser clients
|
|
1534
1560
|
* remain valid. The surrounding HTTP server remains responsible for binding
|
|
1535
1561
|
* to an appropriate interface and installing authentication.
|
|
1536
1562
|
*
|
|
1563
|
+
* With `allowSessionTermination`, a DELETE carrying `Mcp-Session-Id` ends that
|
|
1564
|
+
* session with `204` and interrupts its in-flight requests; later requests with
|
|
1565
|
+
* that id get `404`. DELETE validates the session and `MCP-Protocol-Version`
|
|
1566
|
+
* headers like POST. Without the option, or when only sessionless revisions
|
|
1567
|
+
* such as `v2026_07_28` are configured, DELETE returns `405`. Any caller
|
|
1568
|
+
* holding a session id can end that session, so authenticate requests in the
|
|
1569
|
+
* surrounding router.
|
|
1570
|
+
*
|
|
1537
1571
|
* `layerHttp` always implements the single-endpoint Streamable HTTP topology.
|
|
1538
1572
|
* Using `v2024_11_05` here is a custom compatibility transport for that
|
|
1539
1573
|
* revision's schema. It does not implement the historical two-endpoint
|
|
1540
|
-
* HTTP+SSE transport, GET SSE, event resumption, session expiry
|
|
1541
|
-
* session termination.
|
|
1574
|
+
* HTTP+SSE transport, GET SSE, event resumption, or session expiry.
|
|
1542
1575
|
*
|
|
1543
1576
|
* @see {@link layerStdio} for exposing the server over stdio
|
|
1544
1577
|
* @see {@link layer} for the base MCP server layer without a transport protocol
|
|
@@ -1558,24 +1591,10 @@ export const layerHttp = (options: {
|
|
|
1558
1591
|
readonly protocols: Arr.NonEmptyReadonlyArray<McpProtocol.ProtocolAdapter>
|
|
1559
1592
|
readonly extensions?: ServerExtensions | undefined
|
|
1560
1593
|
readonly allowedOrigins?: ReadonlyArray<string> | undefined
|
|
1594
|
+
readonly allowSessionTermination?: boolean | undefined
|
|
1561
1595
|
}): Layer.Layer<McpServer | McpServerClient, Cause.IllegalArgumentError, HttpRouter.HttpRouter> => {
|
|
1562
1596
|
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(
|
|
1597
|
+
return layerWithRuntime(options, "http").pipe(
|
|
1579
1598
|
Layer.provide(layerMcpProtocolHttp(options)),
|
|
1580
1599
|
Layer.provide(runtime),
|
|
1581
1600
|
Layer.provide(RpcSerialization.layerJsonRpc())
|
|
@@ -1585,6 +1604,7 @@ export const layerHttp = (options: {
|
|
|
1585
1604
|
const layerMcpProtocolHttp = (options: {
|
|
1586
1605
|
readonly path: HttpRouter.PathInput
|
|
1587
1606
|
readonly allowedOrigins?: ReadonlyArray<string> | undefined
|
|
1607
|
+
readonly allowSessionTermination?: boolean | undefined
|
|
1588
1608
|
}): Layer.Layer<
|
|
1589
1609
|
RpcServer.Protocol,
|
|
1590
1610
|
never,
|
|
@@ -1596,6 +1616,29 @@ const layerMcpProtocolHttp = (options: {
|
|
|
1596
1616
|
Effect.provideService(RpcSerialization.RpcSerialization, mcpHttpSerialization)
|
|
1597
1617
|
)
|
|
1598
1618
|
const router = yield* HttpRouter.HttpRouter
|
|
1619
|
+
const allowSessionTermination = options.allowSessionTermination === true &&
|
|
1620
|
+
runtime.protocols.some((protocol) => protocol.runtime._tag === "Stateful")
|
|
1621
|
+
const forbidden = Effect.succeed(HttpServerResponse.empty({ status: 403 }))
|
|
1622
|
+
const withAllowedOrigin = (
|
|
1623
|
+
handler: (request: HttpServerRequest.HttpServerRequest) => Effect.Effect<HttpServerResponse.HttpServerResponse>
|
|
1624
|
+
) =>
|
|
1625
|
+
(request: HttpServerRequest.HttpServerRequest) =>
|
|
1626
|
+
isAllowedMcpOrigin(request, options.allowedOrigins) ? handler(request) : forbidden
|
|
1627
|
+
const methodNotAllowedResponse = Effect.succeed(HttpServerResponse.empty({
|
|
1628
|
+
status: 405,
|
|
1629
|
+
headers: { allow: allowSessionTermination ? "POST, DELETE" : "POST" }
|
|
1630
|
+
}))
|
|
1631
|
+
const methodNotAllowed = withAllowedOrigin(() => methodNotAllowedResponse)
|
|
1632
|
+
for (const method of ["GET", "PUT", "PATCH", "OPTIONS"] as const) {
|
|
1633
|
+
yield* router.add(method, options.path, methodNotAllowed)
|
|
1634
|
+
}
|
|
1635
|
+
yield* router.add(
|
|
1636
|
+
"DELETE",
|
|
1637
|
+
options.path,
|
|
1638
|
+
allowSessionTermination
|
|
1639
|
+
? withAllowedOrigin((request) => runtime.terminateHttpSession(request.headers))
|
|
1640
|
+
: methodNotAllowed
|
|
1641
|
+
)
|
|
1599
1642
|
yield* router.add("POST", options.path, (request) => {
|
|
1600
1643
|
if (!isAllowedMcpOrigin(request, options.allowedOrigins)) {
|
|
1601
1644
|
return Effect.succeed(HttpServerResponse.empty({ status: 403 }))
|
|
@@ -1620,7 +1663,7 @@ const layerMcpProtocolHttp = (options: {
|
|
|
1620
1663
|
const hasMultipleMessages = response.body._tag === "Uint8Array" &&
|
|
1621
1664
|
response.body.body.subarray(0, -1).includes(10)
|
|
1622
1665
|
return admission.isSubscription || response.body._tag === "Stream" || hasMultipleMessages
|
|
1623
|
-
? toServerSentEvents(response)
|
|
1666
|
+
? toServerSentEvents(response, admission.isSubscription)
|
|
1624
1667
|
: response
|
|
1625
1668
|
})
|
|
1626
1669
|
return yield* admission.acknowledge
|
|
@@ -1713,7 +1756,7 @@ function mcpJsonRpcSerialization(options?: {
|
|
|
1713
1756
|
})
|
|
1714
1757
|
}
|
|
1715
1758
|
|
|
1716
|
-
const toServerSentEvents = (response: HttpServerResponse.HttpServerResponse) => {
|
|
1759
|
+
const toServerSentEvents = (response: HttpServerResponse.HttpServerResponse, keepAlive: boolean) => {
|
|
1717
1760
|
const encoder = new TextEncoder()
|
|
1718
1761
|
const decoder = new TextDecoder()
|
|
1719
1762
|
const frame = (data: Uint8Array) =>
|
|
@@ -1726,7 +1769,16 @@ const toServerSentEvents = (response: HttpServerResponse.HttpServerResponse) =>
|
|
|
1726
1769
|
contentType: "text/event-stream"
|
|
1727
1770
|
}
|
|
1728
1771
|
if (response.body._tag === "Stream") {
|
|
1729
|
-
|
|
1772
|
+
const events = response.body.stream.pipe(Stream.map(frame))
|
|
1773
|
+
if (!keepAlive) {
|
|
1774
|
+
return HttpServerResponse.stream(events, options)
|
|
1775
|
+
}
|
|
1776
|
+
// Keep a native timer pending so workerd does not treat idle subscriptions as hung requests.
|
|
1777
|
+
const keepAliveComments = Stream.tick("15 seconds").pipe(
|
|
1778
|
+
Stream.drop(1),
|
|
1779
|
+
Stream.map(() => encoder.encode(": keepalive\n\n"))
|
|
1780
|
+
)
|
|
1781
|
+
return HttpServerResponse.stream(Stream.merge(events, keepAliveComments, { haltStrategy: "left" }), options)
|
|
1730
1782
|
}
|
|
1731
1783
|
if (response.body._tag === "Uint8Array") {
|
|
1732
1784
|
return HttpServerResponse.uint8Array(frame(response.body.body), options)
|
|
@@ -1800,7 +1852,7 @@ export const registerToolkit: <Tools extends Record<string, Tool.Any>>(
|
|
|
1800
1852
|
) => Effect.Effect<
|
|
1801
1853
|
void,
|
|
1802
1854
|
never,
|
|
1803
|
-
McpServer | Tool.HandlersFor<Tools> | Exclude<Tool.HandlerServices<Tools>, McpRequestContext>
|
|
1855
|
+
McpServer | Tool.HandlersFor<Tools> | Exclude<Tool.HandlerServices<Tools[keyof Tools]>, McpRequestContext>
|
|
1804
1856
|
> = Effect.fnUntraced(function*<Tools extends Record<string, Tool.Any>>(
|
|
1805
1857
|
toolkit: Toolkit.Toolkit<Tools>
|
|
1806
1858
|
) {
|
|
@@ -1820,7 +1872,11 @@ export const registerToolkit: <Tools extends Record<string, Tool.Any>>(
|
|
|
1820
1872
|
}
|
|
1821
1873
|
return Context.makeUnsafe(services)
|
|
1822
1874
|
}))
|
|
1823
|
-
const services = omitRequestServices(
|
|
1875
|
+
const services = omitRequestServices(
|
|
1876
|
+
yield* Effect.context<
|
|
1877
|
+
Exclude<Tool.HandlerServices<Tools[keyof Tools]>, McpRequestContext>
|
|
1878
|
+
>()
|
|
1879
|
+
)
|
|
1824
1880
|
const reportCause = (cause: Cause.Cause<unknown>) => Effect.provideContext(ErrorReporter.report(cause), services)
|
|
1825
1881
|
// Interruption propagates; anything else is logged, reported and scrubbed.
|
|
1826
1882
|
const internalToolError = (cause: Cause.Cause<unknown>) => {
|
|
@@ -1964,7 +2020,7 @@ export const toolkit = <Tools extends Record<string, Tool.Any>>(
|
|
|
1964
2020
|
): Layer.Layer<
|
|
1965
2021
|
never,
|
|
1966
2022
|
never,
|
|
1967
|
-
Tool.HandlersFor<Tools> | Exclude<Tool.HandlerServices<Tools>, McpRequestContext>
|
|
2023
|
+
Tool.HandlersFor<Tools> | Exclude<Tool.HandlerServices<Tools[keyof Tools]>, McpRequestContext>
|
|
1968
2024
|
> =>
|
|
1969
2025
|
Layer.effectDiscard(registerToolkit(toolkit)).pipe(
|
|
1970
2026
|
Layer.provide(McpServer.layer)
|
|
@@ -1988,6 +2044,19 @@ export type ValidateCompletions<Completions, Keys extends string> =
|
|
|
1988
2044
|
: never
|
|
1989
2045
|
}
|
|
1990
2046
|
|
|
2047
|
+
/**
|
|
2048
|
+
* Utility type that collects the services required by the handlers of a
|
|
2049
|
+
* completion-handler record, including handlers declared as optional.
|
|
2050
|
+
*
|
|
2051
|
+
* @stability unstable
|
|
2052
|
+
* @category utility types
|
|
2053
|
+
* @since 4.0.0
|
|
2054
|
+
*/
|
|
2055
|
+
export type CompletionServices<Completions> = {
|
|
2056
|
+
[K in keyof Completions]-?: NonNullable<Completions[K]> extends (...args: any) => infer Ret ? Effect.Services<Ret>
|
|
2057
|
+
: never
|
|
2058
|
+
}[keyof Completions]
|
|
2059
|
+
|
|
1991
2060
|
/**
|
|
1992
2061
|
* Completion-handler map for a resource URI template.
|
|
1993
2062
|
*
|
|
@@ -2365,7 +2434,13 @@ export const registerPrompt = <
|
|
|
2365
2434
|
): Effect.Effect<
|
|
2366
2435
|
void,
|
|
2367
2436
|
never,
|
|
2368
|
-
Exclude<
|
|
2437
|
+
| Exclude<
|
|
2438
|
+
| Schema.Struct.DecodingServices<Params>
|
|
2439
|
+
| R
|
|
2440
|
+
| CompletionServices<Completions>,
|
|
2441
|
+
McpRequestContext
|
|
2442
|
+
>
|
|
2443
|
+
| McpServer
|
|
2369
2444
|
> => {
|
|
2370
2445
|
const args = Arr.empty<PromptArgument>()
|
|
2371
2446
|
const props: Record<string, Schema.Constraint> = options.parameters ?? {}
|
|
@@ -2503,7 +2578,12 @@ export const prompt = <
|
|
|
2503
2578
|
): Layer.Layer<
|
|
2504
2579
|
never,
|
|
2505
2580
|
never,
|
|
2506
|
-
Exclude<
|
|
2581
|
+
Exclude<
|
|
2582
|
+
| Schema.Struct.DecodingServices<Params>
|
|
2583
|
+
| R
|
|
2584
|
+
| CompletionServices<Completions>,
|
|
2585
|
+
McpRequestContext
|
|
2586
|
+
>
|
|
2507
2587
|
> =>
|
|
2508
2588
|
Layer.effectDiscard(registerPrompt(options)).pipe(
|
|
2509
2589
|
Layer.provide(McpServer.layer)
|
package/src/ai/Response.ts
CHANGED
|
@@ -152,6 +152,24 @@ export type AllPartsEncoded =
|
|
|
152
152
|
| FinishPartEncoded
|
|
153
153
|
| ErrorPartEncoded
|
|
154
154
|
|
|
155
|
+
// Tools are immutable, so response schemas can share their per-tool parts.
|
|
156
|
+
const toolPartSchemaCache = new WeakMap<Tool.Any, {
|
|
157
|
+
readonly toolCall: Schema.Top
|
|
158
|
+
readonly toolResult: Schema.Top
|
|
159
|
+
}>()
|
|
160
|
+
|
|
161
|
+
const toolPartSchemas = (tool: Tool.Any) => {
|
|
162
|
+
let parts = toolPartSchemaCache.get(tool)
|
|
163
|
+
if (parts === undefined) {
|
|
164
|
+
parts = {
|
|
165
|
+
toolCall: ToolCallPart(tool.name, tool.parametersSchema),
|
|
166
|
+
toolResult: ToolResultPart(tool.name, tool.successSchema, Tool.failureResultSchema(tool))
|
|
167
|
+
}
|
|
168
|
+
toolPartSchemaCache.set(tool, parts)
|
|
169
|
+
}
|
|
170
|
+
return parts
|
|
171
|
+
}
|
|
172
|
+
|
|
155
173
|
/**
|
|
156
174
|
* Creates a Schema for all response parts based on a toolkit.
|
|
157
175
|
*
|
|
@@ -192,10 +210,9 @@ export const AllParts = <T extends Toolkit.Any | Toolkit.WithHandler<any>>(
|
|
|
192
210
|
const toolCalls: Array<Schema.Top> = []
|
|
193
211
|
const toolResults: Array<Schema.Top> = []
|
|
194
212
|
for (const tool of Object.values(toolkit.tools as Record<string, Tool.Any>)) {
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
toolResults.push(toolResult)
|
|
213
|
+
const parts = toolPartSchemas(tool)
|
|
214
|
+
toolCalls.push(parts.toolCall)
|
|
215
|
+
toolResults.push(parts.toolResult)
|
|
199
216
|
}
|
|
200
217
|
return Schema.Union([
|
|
201
218
|
TextPart,
|
|
@@ -287,10 +304,9 @@ export const Part = <T extends Toolkit.Any | Toolkit.WithHandler<any>>(
|
|
|
287
304
|
const toolCalls: Array<Schema.Top> = []
|
|
288
305
|
const toolResults: Array<Schema.Top> = []
|
|
289
306
|
for (const tool of Object.values(toolkit.tools as Record<string, Tool.Any>)) {
|
|
290
|
-
const
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
toolResults.push(toolResult)
|
|
307
|
+
const parts = toolPartSchemas(tool)
|
|
308
|
+
toolCalls.push(parts.toolCall)
|
|
309
|
+
toolResults.push(parts.toolResult)
|
|
294
310
|
}
|
|
295
311
|
return Schema.Union([
|
|
296
312
|
TextPart,
|
|
@@ -385,10 +401,9 @@ export const StreamPart = <T extends Toolkit.Any | Toolkit.WithHandler<any>>(
|
|
|
385
401
|
const toolCalls: Array<Schema.Top> = []
|
|
386
402
|
const toolResults: Array<Schema.Top> = []
|
|
387
403
|
for (const tool of Object.values(toolkit.tools as Record<string, Tool.Any>)) {
|
|
388
|
-
const
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
toolResults.push(toolResult)
|
|
404
|
+
const parts = toolPartSchemas(tool)
|
|
405
|
+
toolCalls.push(parts.toolCall)
|
|
406
|
+
toolResults.push(parts.toolResult)
|
|
392
407
|
}
|
|
393
408
|
return Schema.Union([
|
|
394
409
|
TextStartPart,
|