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/Telemetry.ts
CHANGED
|
@@ -27,50 +27,35 @@ import type * as Response from "./Response.ts"
|
|
|
27
27
|
*
|
|
28
28
|
* These attributes follow the OpenTelemetry generative AI semantic
|
|
29
29
|
* conventions:
|
|
30
|
-
* https://
|
|
30
|
+
* https://github.com/open-telemetry/semantic-conventions-genai
|
|
31
31
|
*
|
|
32
32
|
* @stability unstable
|
|
33
33
|
* @category models
|
|
34
34
|
* @since 4.0.0
|
|
35
35
|
*/
|
|
36
36
|
export type GenAITelemetryAttributes = Struct.Simplify<
|
|
37
|
-
& AttributesWithPrefix<
|
|
37
|
+
& AttributesWithPrefix<ProviderAttributes, "gen_ai.provider">
|
|
38
38
|
& AttributesWithPrefix<OperationAttributes, "gen_ai.operation">
|
|
39
|
-
& AttributesWithPrefix<
|
|
39
|
+
& AttributesWithPrefix<OutputAttributes, "gen_ai.output">
|
|
40
40
|
& AttributesWithPrefix<UsageAttributes, "gen_ai.usage">
|
|
41
41
|
& AttributesWithPrefix<RequestAttributes, "gen_ai.request">
|
|
42
42
|
& AttributesWithPrefix<ResponseAttributes, "gen_ai.response">
|
|
43
43
|
>
|
|
44
44
|
|
|
45
|
-
/**
|
|
46
|
-
* All telemetry attributes which are part of the GenAI specification.
|
|
47
|
-
*
|
|
48
|
-
* @stability unstable
|
|
49
|
-
* @category models
|
|
50
|
-
* @since 4.0.0
|
|
51
|
-
*/
|
|
52
|
-
export type AllAttributes =
|
|
53
|
-
& BaseAttributes
|
|
54
|
-
& OperationAttributes
|
|
55
|
-
& TokenAttributes
|
|
56
|
-
& UsageAttributes
|
|
57
|
-
& RequestAttributes
|
|
58
|
-
& ResponseAttributes
|
|
59
|
-
|
|
60
45
|
/**
|
|
61
46
|
* Telemetry attributes which are part of the GenAI specification and are
|
|
62
|
-
* namespaced by `gen_ai`.
|
|
47
|
+
* namespaced by `gen_ai.provider`.
|
|
63
48
|
*
|
|
64
49
|
* @stability unstable
|
|
65
50
|
* @category models
|
|
66
|
-
* @since 4.0.
|
|
51
|
+
* @since 4.0.2
|
|
67
52
|
*/
|
|
68
|
-
export interface
|
|
53
|
+
export interface ProviderAttributes {
|
|
69
54
|
/**
|
|
70
|
-
* The Generative AI
|
|
71
|
-
* instrumentation.
|
|
55
|
+
* The Generative AI provider as identified by the client or server
|
|
56
|
+
* instrumentation, written as `gen_ai.provider.name`.
|
|
72
57
|
*/
|
|
73
|
-
readonly
|
|
58
|
+
readonly name?: (string & {}) | WellKnownProviderName | null | undefined
|
|
74
59
|
}
|
|
75
60
|
|
|
76
61
|
/**
|
|
@@ -87,14 +72,17 @@ export interface OperationAttributes {
|
|
|
87
72
|
|
|
88
73
|
/**
|
|
89
74
|
* Telemetry attributes which are part of the GenAI specification and are
|
|
90
|
-
* namespaced by `gen_ai.
|
|
75
|
+
* namespaced by `gen_ai.output`.
|
|
91
76
|
*
|
|
92
77
|
* @stability unstable
|
|
93
78
|
* @category models
|
|
94
|
-
* @since 4.0.
|
|
79
|
+
* @since 4.0.2
|
|
95
80
|
*/
|
|
96
|
-
export interface
|
|
97
|
-
|
|
81
|
+
export interface OutputAttributes {
|
|
82
|
+
/**
|
|
83
|
+
* The output modality requested by the client.
|
|
84
|
+
*/
|
|
85
|
+
readonly type?: (string & {}) | WellKnownOutputType | null | undefined
|
|
98
86
|
}
|
|
99
87
|
|
|
100
88
|
/**
|
|
@@ -128,15 +116,15 @@ export interface RequestAttributes {
|
|
|
128
116
|
*/
|
|
129
117
|
readonly temperature?: number | null | undefined
|
|
130
118
|
/**
|
|
131
|
-
* The
|
|
119
|
+
* The top_k sampling setting for the GenAI request.
|
|
132
120
|
*/
|
|
133
121
|
readonly topK?: number | null | undefined
|
|
134
122
|
/**
|
|
135
|
-
* The
|
|
123
|
+
* The top_p sampling setting for the GenAI request.
|
|
136
124
|
*/
|
|
137
125
|
readonly topP?: number | null | undefined
|
|
138
126
|
/**
|
|
139
|
-
* The
|
|
127
|
+
* The maximum number of tokens the model may generate.
|
|
140
128
|
*/
|
|
141
129
|
readonly maxTokens?: number | null | undefined
|
|
142
130
|
/**
|
|
@@ -203,7 +191,18 @@ export interface ResponseAttributes {
|
|
|
203
191
|
export type WellKnownOperationName = "chat" | "embeddings" | "text_completion"
|
|
204
192
|
|
|
205
193
|
/**
|
|
206
|
-
* The `gen_ai.
|
|
194
|
+
* The `gen_ai.output.type` attribute has the following list of well-known
|
|
195
|
+
* values.
|
|
196
|
+
*
|
|
197
|
+
* @stability unstable
|
|
198
|
+
* @category models
|
|
199
|
+
* @since 4.0.2
|
|
200
|
+
*/
|
|
201
|
+
export type WellKnownOutputType = "text" | "json" | "image" | "speech"
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* The `gen_ai.provider.name` attribute has the following list of well-known
|
|
205
|
+
* values.
|
|
207
206
|
*
|
|
208
207
|
* **Details**
|
|
209
208
|
*
|
|
@@ -212,23 +211,25 @@ export type WellKnownOperationName = "chat" | "embeddings" | "text_completion"
|
|
|
212
211
|
*
|
|
213
212
|
* @stability unstable
|
|
214
213
|
* @category models
|
|
215
|
-
* @since 4.0.
|
|
214
|
+
* @since 4.0.2
|
|
216
215
|
*/
|
|
217
|
-
export type
|
|
216
|
+
export type WellKnownProviderName =
|
|
218
217
|
| "anthropic"
|
|
219
218
|
| "aws.bedrock"
|
|
220
|
-
| "
|
|
221
|
-
| "
|
|
219
|
+
| "azure.ai.inference"
|
|
220
|
+
| "azure.ai.openai"
|
|
222
221
|
| "cohere"
|
|
223
222
|
| "deepseek"
|
|
224
|
-
| "gemini"
|
|
223
|
+
| "gcp.gemini"
|
|
224
|
+
| "gcp.gen_ai"
|
|
225
|
+
| "gcp.vertex_ai"
|
|
225
226
|
| "groq"
|
|
226
227
|
| "ibm.watsonx.ai"
|
|
227
228
|
| "mistral_ai"
|
|
229
|
+
| "moonshot_ai"
|
|
228
230
|
| "openai"
|
|
229
231
|
| "perplexity"
|
|
230
|
-
| "
|
|
231
|
-
| "xai"
|
|
232
|
+
| "x_ai"
|
|
232
233
|
|
|
233
234
|
/**
|
|
234
235
|
* Utility type for prefixing attribute names with a namespace.
|
|
@@ -375,11 +376,11 @@ export const addSpanAttributes = (
|
|
|
375
376
|
}
|
|
376
377
|
}
|
|
377
378
|
|
|
378
|
-
const
|
|
379
|
+
const addSpanProviderAttributes = addSpanAttributes("gen_ai.provider", String.camelToSnake)<ProviderAttributes>
|
|
379
380
|
const addSpanOperationAttributes = addSpanAttributes("gen_ai.operation", String.camelToSnake)<OperationAttributes>
|
|
381
|
+
const addSpanOutputAttributes = addSpanAttributes("gen_ai.output", String.camelToSnake)<OutputAttributes>
|
|
380
382
|
const addSpanRequestAttributes = addSpanAttributes("gen_ai.request", String.camelToSnake)<RequestAttributes>
|
|
381
383
|
const addSpanResponseAttributes = addSpanAttributes("gen_ai.response", String.camelToSnake)<ResponseAttributes>
|
|
382
|
-
const addSpanTokenAttributes = addSpanAttributes("gen_ai.token", String.camelToSnake)<TokenAttributes>
|
|
383
384
|
const addSpanUsageAttributes = addSpanAttributes("gen_ai.usage", String.camelToSnake)<UsageAttributes>
|
|
384
385
|
|
|
385
386
|
/**
|
|
@@ -387,8 +388,7 @@ const addSpanUsageAttributes = addSpanAttributes("gen_ai.usage", String.camelToS
|
|
|
387
388
|
*
|
|
388
389
|
* **Details**
|
|
389
390
|
*
|
|
390
|
-
*
|
|
391
|
-
* telemetry coverage of AI operations.
|
|
391
|
+
* Groups attributes by their `gen_ai.*` namespace.
|
|
392
392
|
*
|
|
393
393
|
* **Example** (Configuring GenAI telemetry attributes)
|
|
394
394
|
*
|
|
@@ -396,7 +396,7 @@ const addSpanUsageAttributes = addSpanAttributes("gen_ai.usage", String.camelToS
|
|
|
396
396
|
* import type { Telemetry } from "effect/ai"
|
|
397
397
|
*
|
|
398
398
|
* const telemetryOptions: Telemetry.GenAITelemetryAttributeOptions = {
|
|
399
|
-
*
|
|
399
|
+
* provider: { name: "openai" },
|
|
400
400
|
* operation: {
|
|
401
401
|
* name: "chat"
|
|
402
402
|
* },
|
|
@@ -416,18 +416,26 @@ const addSpanUsageAttributes = addSpanAttributes("gen_ai.usage", String.camelToS
|
|
|
416
416
|
* }
|
|
417
417
|
* }
|
|
418
418
|
*
|
|
419
|
-
* const result = [telemetryOptions.
|
|
419
|
+
* const result = [telemetryOptions.provider?.name, telemetryOptions.usage?.inputTokens] // => ["openai", 50]
|
|
420
420
|
* ```
|
|
421
421
|
*
|
|
422
422
|
* @stability unstable
|
|
423
423
|
* @category options
|
|
424
424
|
* @since 4.0.0
|
|
425
425
|
*/
|
|
426
|
-
export type GenAITelemetryAttributeOptions =
|
|
426
|
+
export type GenAITelemetryAttributeOptions = {
|
|
427
|
+
/**
|
|
428
|
+
* Provider attributes (e.g., provider name).
|
|
429
|
+
*/
|
|
430
|
+
readonly provider?: ProviderAttributes | undefined
|
|
427
431
|
/**
|
|
428
432
|
* Operation-specific attributes (e.g., operation name).
|
|
429
433
|
*/
|
|
430
434
|
readonly operation?: OperationAttributes | undefined
|
|
435
|
+
/**
|
|
436
|
+
* Output attributes (e.g., requested output type).
|
|
437
|
+
*/
|
|
438
|
+
readonly output?: OutputAttributes | undefined
|
|
431
439
|
/**
|
|
432
440
|
* Request-specific attributes (e.g., model parameters).
|
|
433
441
|
*/
|
|
@@ -436,10 +444,6 @@ export type GenAITelemetryAttributeOptions = BaseAttributes & {
|
|
|
436
444
|
* Response-specific attributes (e.g., response metadata).
|
|
437
445
|
*/
|
|
438
446
|
readonly response?: ResponseAttributes | undefined
|
|
439
|
-
/**
|
|
440
|
-
* Token-specific attributes.
|
|
441
|
-
*/
|
|
442
|
-
readonly token?: TokenAttributes | undefined
|
|
443
447
|
/**
|
|
444
448
|
* Usage statistics attributes (e.g., token counts).
|
|
445
449
|
*/
|
|
@@ -451,7 +455,7 @@ export type GenAITelemetryAttributeOptions = BaseAttributes & {
|
|
|
451
455
|
*
|
|
452
456
|
* **When to use**
|
|
453
457
|
*
|
|
454
|
-
* Use when you need to write GenAI request, response,
|
|
458
|
+
* Use when you need to write GenAI request, response, or usage
|
|
455
459
|
* attributes onto an existing OpenTelemetry span.
|
|
456
460
|
*
|
|
457
461
|
* **Details**
|
|
@@ -473,7 +477,7 @@ export type GenAITelemetryAttributeOptions = BaseAttributes & {
|
|
|
473
477
|
* const span = yield* Effect.currentSpan
|
|
474
478
|
*
|
|
475
479
|
* Telemetry.addGenAIAnnotations(span, {
|
|
476
|
-
*
|
|
480
|
+
* provider: { name: "openai" },
|
|
477
481
|
* request: { model: "gpt-4", temperature: 0.7 },
|
|
478
482
|
* usage: { inputTokens: 100, outputTokens: 50 }
|
|
479
483
|
* })
|
|
@@ -493,7 +497,7 @@ export const addGenAIAnnotations: {
|
|
|
493
497
|
*
|
|
494
498
|
* **When to use**
|
|
495
499
|
*
|
|
496
|
-
* Use when you need to write GenAI request, response,
|
|
500
|
+
* Use when you need to write GenAI request, response, or usage
|
|
497
501
|
* attributes onto an existing OpenTelemetry span.
|
|
498
502
|
*
|
|
499
503
|
* **Details**
|
|
@@ -515,7 +519,7 @@ export const addGenAIAnnotations: {
|
|
|
515
519
|
* const span = yield* Effect.currentSpan
|
|
516
520
|
*
|
|
517
521
|
* Telemetry.addGenAIAnnotations(span, {
|
|
518
|
-
*
|
|
522
|
+
* provider: { name: "openai" },
|
|
519
523
|
* request: { model: "gpt-4", temperature: 0.7 },
|
|
520
524
|
* usage: { inputTokens: 100, outputTokens: 50 }
|
|
521
525
|
* })
|
|
@@ -535,7 +539,7 @@ export const addGenAIAnnotations: {
|
|
|
535
539
|
*
|
|
536
540
|
* **When to use**
|
|
537
541
|
*
|
|
538
|
-
* Use when you need to write GenAI request, response,
|
|
542
|
+
* Use when you need to write GenAI request, response, or usage
|
|
539
543
|
* attributes onto an existing OpenTelemetry span.
|
|
540
544
|
*
|
|
541
545
|
* **Details**
|
|
@@ -557,7 +561,7 @@ export const addGenAIAnnotations: {
|
|
|
557
561
|
* const span = yield* Effect.currentSpan
|
|
558
562
|
*
|
|
559
563
|
* Telemetry.addGenAIAnnotations(span, {
|
|
560
|
-
*
|
|
564
|
+
* provider: { name: "openai" },
|
|
561
565
|
* request: { model: "gpt-4", temperature: 0.7 },
|
|
562
566
|
* usage: { inputTokens: 100, outputTokens: 50 }
|
|
563
567
|
* })
|
|
@@ -573,11 +577,11 @@ export const addGenAIAnnotations: {
|
|
|
573
577
|
*/
|
|
574
578
|
(span: Span, options: GenAITelemetryAttributeOptions): void
|
|
575
579
|
} = dual(2, (span: Span, options: GenAITelemetryAttributeOptions) => {
|
|
576
|
-
|
|
580
|
+
if (Predicate.isNotNullish(options.provider)) addSpanProviderAttributes(span, options.provider)
|
|
577
581
|
if (Predicate.isNotNullish(options.operation)) addSpanOperationAttributes(span, options.operation)
|
|
582
|
+
if (Predicate.isNotNullish(options.output)) addSpanOutputAttributes(span, options.output)
|
|
578
583
|
if (Predicate.isNotNullish(options.request)) addSpanRequestAttributes(span, options.request)
|
|
579
584
|
if (Predicate.isNotNullish(options.response)) addSpanResponseAttributes(span, options.response)
|
|
580
|
-
if (Predicate.isNotNullish(options.token)) addSpanTokenAttributes(span, options.token)
|
|
581
585
|
if (Predicate.isNotNullish(options.usage)) addSpanUsageAttributes(span, options.usage)
|
|
582
586
|
})
|
|
583
587
|
|
|
@@ -53,6 +53,7 @@ const projectCapabilities = (
|
|
|
53
53
|
capabilities: McpCore.CanonicalServerCapabilities
|
|
54
54
|
): typeof McpSchema.ServerCapabilities.Type => ({
|
|
55
55
|
experimental: capabilities.experimental,
|
|
56
|
+
extensions: capabilities.extensions,
|
|
56
57
|
logging: capabilities.logging ? {} : undefined,
|
|
57
58
|
prompts: capabilities.prompts,
|
|
58
59
|
resources: capabilities.resources,
|
|
@@ -134,6 +134,7 @@ export const protocol = McpProtocol.make({
|
|
|
134
134
|
protocolVersion: McpSchema.protocolVersion,
|
|
135
135
|
capabilities: ({
|
|
136
136
|
experimental: result.capabilities.experimental,
|
|
137
|
+
extensions: result.capabilities.extensions,
|
|
137
138
|
logging: result.capabilities.logging ? {} : undefined,
|
|
138
139
|
completions: result.capabilities.completions ? {} : undefined,
|
|
139
140
|
prompts: result.capabilities.prompts,
|
|
@@ -150,6 +150,7 @@ export const protocol = McpProtocol.make({
|
|
|
150
150
|
protocolVersion: McpSchema.protocolVersion,
|
|
151
151
|
capabilities: ({
|
|
152
152
|
experimental: result.capabilities.experimental,
|
|
153
|
+
extensions: result.capabilities.extensions,
|
|
153
154
|
logging: result.capabilities.logging ? {} : undefined,
|
|
154
155
|
completions: result.capabilities.completions ? {} : undefined,
|
|
155
156
|
prompts: result.capabilities.prompts,
|
|
@@ -145,6 +145,7 @@ export const protocol = McpProtocol.make({
|
|
|
145
145
|
protocolVersion: McpSchema.protocolVersion,
|
|
146
146
|
capabilities: ({
|
|
147
147
|
experimental: result.capabilities.experimental,
|
|
148
|
+
extensions: result.capabilities.extensions,
|
|
148
149
|
logging: result.capabilities.logging ? {} : undefined,
|
|
149
150
|
completions: result.capabilities.completions ? {} : undefined,
|
|
150
151
|
prompts: result.capabilities.prompts,
|
|
@@ -17,6 +17,7 @@ import * as Predicate from "../../Predicate.ts"
|
|
|
17
17
|
import * as Result from "../../Result.ts"
|
|
18
18
|
import * as RpcGroup from "../../rpc/RpcGroup.ts"
|
|
19
19
|
import type * as RpcMessage from "../../rpc/RpcMessage.ts"
|
|
20
|
+
import type * as Scope from "../../Scope.ts"
|
|
20
21
|
import type * as PublicMcpProtocol from "../McpProtocol.ts"
|
|
21
22
|
import * as PublicMcpSchema from "../McpSchema.ts"
|
|
22
23
|
import type * as McpCore from "./mcpCore.ts"
|
|
@@ -175,6 +176,10 @@ export interface ServerRuntimeShape {
|
|
|
175
176
|
fallback: LogLevel.LogLevel
|
|
176
177
|
) => LogLevel.LogLevel
|
|
177
178
|
readonly disconnect: (clientId: number) => void
|
|
179
|
+
readonly terminateHttpSession: (headers: Headers.Headers) => Effect.Effect<HttpServerResponse.HttpServerResponse>
|
|
180
|
+
readonly onSessionTerminated: (
|
|
181
|
+
listener: (binding: RequestBinding) => Effect.Effect<void>
|
|
182
|
+
) => Effect.Effect<void, never, Scope.Scope>
|
|
178
183
|
readonly deliveryClientIds: () => Iterable<number>
|
|
179
184
|
readonly canDeliver: (
|
|
180
185
|
clientId: number,
|
|
@@ -228,9 +233,36 @@ export const make = Effect.fnUntraced(function*(
|
|
|
228
233
|
statelessProtocol = protocol
|
|
229
234
|
}
|
|
230
235
|
const registry = yield* McpProtocolRegistry.make(protocols)
|
|
231
|
-
const
|
|
236
|
+
const sessionTerminationListeners = new Set<(binding: RequestBinding) => Effect.Effect<void>>()
|
|
237
|
+
const unsupportedProtocolVersion = (requested: string) => ({
|
|
238
|
+
code: UNSUPPORTED_PROTOCOL_VERSION_ERROR_CODE,
|
|
239
|
+
message: `Unsupported protocol version '${requested}'`,
|
|
240
|
+
data: { supported: protocolVersions, requested }
|
|
241
|
+
})
|
|
242
|
+
const selectHttpSession = (headers: Headers.Headers, isInitialize: boolean): HttpProtocolSelection => {
|
|
232
243
|
const protocolVersion = headers[MCP_PROTOCOL_VERSION_HEADER]
|
|
233
244
|
const sessionId = headers[MCP_SESSION_ID_HEADER]
|
|
245
|
+
const binding = sessionId === undefined ? undefined : stateful?.resolveSessionId(sessionId)
|
|
246
|
+
if (sessionId !== undefined && binding === undefined) {
|
|
247
|
+
return { _tag: "Rejected", status: 404 }
|
|
248
|
+
}
|
|
249
|
+
if (!isInitialize && protocolVersion !== undefined) {
|
|
250
|
+
if (!protocolVersions.includes(protocolVersion)) {
|
|
251
|
+
return { _tag: "Rejected", status: 400, error: unsupportedProtocolVersion(protocolVersion) }
|
|
252
|
+
}
|
|
253
|
+
if (
|
|
254
|
+
binding?.protocol.runtime.transport.http.requiresVersionHeader === true &&
|
|
255
|
+
protocolVersion !== binding.protocol.protocolVersion
|
|
256
|
+
) {
|
|
257
|
+
return headerMismatch(
|
|
258
|
+
`MCP-Protocol-Version header '${protocolVersion}' does not match negotiated protocol version '${binding.protocol.protocolVersion}'`
|
|
259
|
+
)
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
return { _tag: "Accepted", binding, protocol: binding?.protocol }
|
|
263
|
+
}
|
|
264
|
+
const selectHttpProtocol = (headers: Headers.Headers, input: unknown): HttpProtocolSelection => {
|
|
265
|
+
const protocolVersion = headers[MCP_PROTOCOL_VERSION_HEADER]
|
|
234
266
|
const inputRecord = asRecord(input)
|
|
235
267
|
const metadata = asRecord(asRecord(inputRecord?.params)?._meta)
|
|
236
268
|
const claim = protocolVersionClaim(metadata)
|
|
@@ -272,18 +304,7 @@ export const make = Effect.fnUntraced(function*(
|
|
|
272
304
|
}
|
|
273
305
|
}
|
|
274
306
|
if (statelessProtocol === undefined || protocolVersion !== statelessProtocol.protocolVersion) {
|
|
275
|
-
return {
|
|
276
|
-
_tag: "Rejected",
|
|
277
|
-
status: 400,
|
|
278
|
-
error: {
|
|
279
|
-
code: UNSUPPORTED_PROTOCOL_VERSION_ERROR_CODE,
|
|
280
|
-
message: `Unsupported protocol version '${protocolVersion}'`,
|
|
281
|
-
data: {
|
|
282
|
-
supported: protocolVersions,
|
|
283
|
-
requested: protocolVersion
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
}
|
|
307
|
+
return { _tag: "Rejected", status: 400, error: unsupportedProtocolVersion(protocolVersion) }
|
|
287
308
|
}
|
|
288
309
|
const method = inputRecord?.method
|
|
289
310
|
if (typeof method !== "string" || headers[MCP_METHOD_HEADER] !== method) {
|
|
@@ -299,25 +320,7 @@ export const make = Effect.fnUntraced(function*(
|
|
|
299
320
|
}
|
|
300
321
|
return { _tag: "Accepted", binding: undefined, protocol: statelessProtocol }
|
|
301
322
|
}
|
|
302
|
-
|
|
303
|
-
if (sessionId !== undefined && binding === undefined) {
|
|
304
|
-
return { _tag: "Rejected", status: 404 }
|
|
305
|
-
}
|
|
306
|
-
if (
|
|
307
|
-
!isInitialize &&
|
|
308
|
-
protocolVersion !== undefined &&
|
|
309
|
-
!registry.protocols.some((protocol) => protocol.protocolVersion === protocolVersion)
|
|
310
|
-
) {
|
|
311
|
-
return { _tag: "Rejected", status: 400 }
|
|
312
|
-
}
|
|
313
|
-
if (
|
|
314
|
-
!isInitialize &&
|
|
315
|
-
binding?.protocol.runtime.transport.http.requiresVersionHeader === true &&
|
|
316
|
-
protocolVersion !== binding.protocol.protocolVersion
|
|
317
|
-
) {
|
|
318
|
-
return { _tag: "Rejected", status: 400 }
|
|
319
|
-
}
|
|
320
|
-
return { _tag: "Accepted", binding, protocol: binding?.protocol }
|
|
323
|
+
return selectHttpSession(headers, isInitialize)
|
|
321
324
|
}
|
|
322
325
|
return ServerRuntime.of({
|
|
323
326
|
protocols: registry.protocols,
|
|
@@ -362,11 +365,7 @@ export const make = Effect.fnUntraced(function*(
|
|
|
362
365
|
return yield* Effect.die("MCP stateless runtime invariant failed")
|
|
363
366
|
}
|
|
364
367
|
if (requestedVersion !== undefined && requestedVersion !== protocol.protocolVersion) {
|
|
365
|
-
return yield* new McpProtocol.ProtocolError(
|
|
366
|
-
code: UNSUPPORTED_PROTOCOL_VERSION_ERROR_CODE,
|
|
367
|
-
message: `Unsupported protocol version '${requestedVersion}'`,
|
|
368
|
-
data: { supported: protocolVersions, requested: requestedVersion }
|
|
369
|
-
})
|
|
368
|
+
return yield* new McpProtocol.ProtocolError(unsupportedProtocolVersion(requestedVersion))
|
|
370
369
|
}
|
|
371
370
|
const decodedProfile = yield* statelessDescriptor.profileFromRequestMetadata(metadata)
|
|
372
371
|
const profile: McpCore.NegotiatedProtocolProfile<string> = {
|
|
@@ -394,12 +393,14 @@ export const make = Effect.fnUntraced(function*(
|
|
|
394
393
|
})
|
|
395
394
|
if (Result.isFailure(parsed)) {
|
|
396
395
|
const version = headers[MCP_PROTOCOL_VERSION_HEADER]
|
|
397
|
-
if (version !== undefined && !
|
|
398
|
-
return reject(400)
|
|
396
|
+
if (version !== undefined && !protocolVersions.includes(version)) {
|
|
397
|
+
return reject(400, unsupportedProtocolVersion(version))
|
|
399
398
|
}
|
|
400
399
|
const admission = selectHttpProtocol(headers, undefined)
|
|
401
|
-
|
|
402
|
-
|
|
400
|
+
// Session and protocol-header errors take precedence over parse errors.
|
|
401
|
+
return admission._tag === "Rejected" &&
|
|
402
|
+
(admission.error === undefined || admission.error.code === PublicMcpSchema.HEADER_MISMATCH_ERROR_CODE)
|
|
403
|
+
? reject(admission.status, admission.error)
|
|
403
404
|
: reject(200, new PublicMcpSchema.ParseError({ message: "Parse error" }))
|
|
404
405
|
}
|
|
405
406
|
const input = parsed.success
|
|
@@ -444,8 +445,21 @@ export const make = Effect.fnUntraced(function*(
|
|
|
444
445
|
}
|
|
445
446
|
const isInitialize = Predicate.hasProperty(input, "method") && input.method === "initialize"
|
|
446
447
|
const hasSession = headers[MCP_SESSION_ID_HEADER] !== undefined
|
|
447
|
-
if (isInitialize
|
|
448
|
-
return reject(
|
|
448
|
+
if (isInitialize && hasSession) {
|
|
449
|
+
return reject(
|
|
450
|
+
400,
|
|
451
|
+
new PublicMcpSchema.InvalidRequest({ message: "initialize must not include an MCP-Session-Id header" }),
|
|
452
|
+
id
|
|
453
|
+
)
|
|
454
|
+
}
|
|
455
|
+
if (!isInitialize && !hasSession && admission.protocol?.runtime._tag !== "Stateless") {
|
|
456
|
+
return reject(
|
|
457
|
+
400,
|
|
458
|
+
stateful === undefined ? undefined : new PublicMcpSchema.InvalidRequest({
|
|
459
|
+
message: "MCP-Session-Id header is required; send initialize to start a session"
|
|
460
|
+
}),
|
|
461
|
+
id
|
|
462
|
+
)
|
|
449
463
|
}
|
|
450
464
|
if (
|
|
451
465
|
isRequest && admission.protocol?.runtime._tag === "Stateless" &&
|
|
@@ -464,6 +478,33 @@ export const make = Effect.fnUntraced(function*(
|
|
|
464
478
|
},
|
|
465
479
|
effectLogLevel: (clientId, headers, fallback) => stateful?.effectLogLevel(clientId, headers, fallback) ?? fallback,
|
|
466
480
|
disconnect: (clientId) => stateful?.disconnect(clientId),
|
|
481
|
+
terminateHttpSession: (headers) =>
|
|
482
|
+
Effect.suspend(() => {
|
|
483
|
+
const sessionId = headers[MCP_SESSION_ID_HEADER]
|
|
484
|
+
if (sessionId === undefined) {
|
|
485
|
+
return Effect.succeed(HttpServerResponse.empty({ status: 400 }))
|
|
486
|
+
}
|
|
487
|
+
const selection = selectHttpSession(headers, false)
|
|
488
|
+
if (selection._tag === "Rejected") {
|
|
489
|
+
return Effect.succeed(HttpServerResponse.empty({ status: selection.status }))
|
|
490
|
+
}
|
|
491
|
+
const binding = selection.binding!
|
|
492
|
+
stateful!.terminateSession(sessionId)
|
|
493
|
+
return Effect.as(
|
|
494
|
+
Effect.forEach(sessionTerminationListeners, (listener) => listener(binding), { discard: true }),
|
|
495
|
+
HttpServerResponse.empty({ status: 204 })
|
|
496
|
+
)
|
|
497
|
+
}),
|
|
498
|
+
onSessionTerminated: (listener) =>
|
|
499
|
+
Effect.acquireRelease(
|
|
500
|
+
Effect.sync(() => {
|
|
501
|
+
sessionTerminationListeners.add(listener)
|
|
502
|
+
}),
|
|
503
|
+
() =>
|
|
504
|
+
Effect.sync(() => {
|
|
505
|
+
sessionTerminationListeners.delete(listener)
|
|
506
|
+
})
|
|
507
|
+
),
|
|
467
508
|
deliveryClientIds: () => stateful?.initializedClientIds() ?? [],
|
|
468
509
|
canDeliver: (clientId, headers, notification, fallback) =>
|
|
469
510
|
stateful?.canDeliver(clientId, headers, notification, fallback) ?? true,
|
|
@@ -22,9 +22,9 @@ export const protocolVersion = "2024-11-05"
|
|
|
22
22
|
*/
|
|
23
23
|
export const optional = <S extends Schema.Constraint>(
|
|
24
24
|
schema: S
|
|
25
|
-
): Schema.decodeTo<Schema.optional<S
|
|
25
|
+
): Schema.decodeTo<Schema.toType<Schema.optional<S>>, Schema.optionalKey<S>> =>
|
|
26
26
|
Schema.optionalKey(schema).pipe(
|
|
27
|
-
Schema.decodeTo(Schema.optional(schema), {
|
|
27
|
+
Schema.decodeTo(Schema.toType(Schema.optional(schema)), {
|
|
28
28
|
decode: SchemaGetter.passthrough(),
|
|
29
29
|
encode: SchemaGetter.transformOptional(Option.flatMap(Option.fromUndefinedOr))
|
|
30
30
|
})
|
|
@@ -111,6 +111,7 @@ export const Implementation = Schema.Struct({
|
|
|
111
111
|
* @internal
|
|
112
112
|
*/
|
|
113
113
|
export const ClientCapabilities = Schema.Struct({
|
|
114
|
+
extensions: optional(Schema.Record(Schema.TemplateLiteral([Schema.String, "/", Schema.String]), Schema.Json)),
|
|
114
115
|
experimental: optional(Schema.Record(Schema.String, JsonObject)),
|
|
115
116
|
roots: optional(Schema.Struct({
|
|
116
117
|
listChanged: optional(Schema.Boolean)
|
|
@@ -122,6 +123,7 @@ export const ClientCapabilities = Schema.Struct({
|
|
|
122
123
|
* @internal
|
|
123
124
|
*/
|
|
124
125
|
export const ServerCapabilities = Schema.Struct({
|
|
126
|
+
extensions: optional(Schema.Record(Schema.TemplateLiteral([Schema.String, "/", Schema.String]), Schema.Json)),
|
|
125
127
|
experimental: optional(Schema.Record(Schema.String, JsonObject)),
|
|
126
128
|
logging: optional(JsonObject),
|
|
127
129
|
prompts: optional(Schema.Struct({
|
|
@@ -47,6 +47,7 @@ export interface StatefulRuntime {
|
|
|
47
47
|
readonly registerConnection: (clientId: number, registration: Registration) => Binding
|
|
48
48
|
readonly resolve: (clientId: number, headers: Headers.Headers) => Binding | undefined
|
|
49
49
|
readonly resolveSessionId: (sessionId: string) => Binding | undefined
|
|
50
|
+
readonly terminateSession: (sessionId: string) => boolean
|
|
50
51
|
readonly setLogLevel: (
|
|
51
52
|
level: PublicMcpSchema.LoggingLevel,
|
|
52
53
|
clientId: number,
|
|
@@ -123,6 +124,7 @@ export const make = (): StatefulRuntime => {
|
|
|
123
124
|
},
|
|
124
125
|
resolve: resolveSession,
|
|
125
126
|
resolveSessionId: (sessionId) => bySessionId.get(sessionId),
|
|
127
|
+
terminateSession: (sessionId) => bySessionId.delete(sessionId),
|
|
126
128
|
setLogLevel: (level, clientId, headers) =>
|
|
127
129
|
Effect.sync(() => {
|
|
128
130
|
const session = resolveSession(clientId, headers)
|
|
@@ -411,7 +411,7 @@ export const make = Effect.gen(function*() {
|
|
|
411
411
|
// Replays reuse the request id but track a fresh set of awaits.
|
|
412
412
|
let currentRun: {
|
|
413
413
|
readonly request: Entity.Request<any>
|
|
414
|
-
readonly
|
|
414
|
+
readonly instance: WorkflowEngine.WorkflowInstance["Service"]
|
|
415
415
|
} | undefined
|
|
416
416
|
// Concurrent wakes share one wait for the current run to publish its reply.
|
|
417
417
|
const resumeGate = Semaphore.makeUnsafe(1)
|
|
@@ -428,7 +428,7 @@ export const make = Effect.gen(function*() {
|
|
|
428
428
|
return {
|
|
429
429
|
run: (request: Entity.Request<any>) => {
|
|
430
430
|
const instance = WorkflowEngine.WorkflowInstance.initial(workflow, executionId)
|
|
431
|
-
currentRun = { request,
|
|
431
|
+
currentRun = { request, instance }
|
|
432
432
|
const parent = (request.payload as any)[payloadParentKey] as
|
|
433
433
|
| { workflowName: string; executionId: string }
|
|
434
434
|
| undefined
|
|
@@ -522,9 +522,13 @@ export const make = Effect.gen(function*() {
|
|
|
522
522
|
// registered yet, a later await will see the result just stored.
|
|
523
523
|
// Check when the wake runs and skip preemption too: interrupting
|
|
524
524
|
// a later await would require waiting for its reply before reset.
|
|
525
|
+
// A run completing its own deferred also reads it from the cache
|
|
526
|
+
// when it awaits later, so that completion never wakes the run.
|
|
525
527
|
const wake = Effect.suspend(() =>
|
|
526
|
-
currentRun && !currentRun.awaitedDeferreds.has(payload.name)
|
|
527
|
-
?
|
|
528
|
+
currentRun && !currentRun.instance.awaitedDeferreds.has(payload.name)
|
|
529
|
+
? currentRun.instance.completedDeferreds.has(payload.name)
|
|
530
|
+
? Effect.void
|
|
531
|
+
: ensureSuccess(resume(workflow, executionId))
|
|
528
532
|
: deferredState.deferredDone(executionId, payload.name).pipe(Effect.andThen(resumeCurrentRun))
|
|
529
533
|
)
|
|
530
534
|
// An asynchronous reply releases the RPC concurrency permit while
|
|
@@ -703,6 +707,16 @@ export const make = Effect.gen(function*() {
|
|
|
703
707
|
|
|
704
708
|
deferredDone: Effect.fnUntraced(
|
|
705
709
|
function*({ deferredName, executionId, exit, workflowName }) {
|
|
710
|
+
const instance = yield* Effect.serviceOption(WorkflowEngine.WorkflowInstance)
|
|
711
|
+
// Activities run with their own instance, so their completions still
|
|
712
|
+
// wake a run that suspended before reaching the await. An interrupt
|
|
713
|
+
// must wake the run even when it signals itself.
|
|
714
|
+
if (
|
|
715
|
+
Option.isSome(instance) && instance.value.executionId === executionId &&
|
|
716
|
+
deferredName !== InterruptSignal.name
|
|
717
|
+
) {
|
|
718
|
+
instance.value.completedDeferreds.add(deferredName)
|
|
719
|
+
}
|
|
706
720
|
const workflow = workflows.get(workflowName)
|
|
707
721
|
if (workflow) {
|
|
708
722
|
return yield* Effect.orDie(sendDiscard({
|
|
@@ -56,11 +56,21 @@ export const layer: Layer.Layer<
|
|
|
56
56
|
Effect.gen(function*() {
|
|
57
57
|
const fs = yield* FileSystem.FileSystem
|
|
58
58
|
const token = yield* fs.readFileString("/var/run/secrets/kubernetes.io/serviceaccount/token").pipe(
|
|
59
|
-
Effect.
|
|
59
|
+
Effect.map((token) => token.trim()),
|
|
60
|
+
Effect.option,
|
|
61
|
+
Effect.cachedWithTTL("1 minute")
|
|
60
62
|
)
|
|
61
63
|
return (yield* HttpClient.HttpClient).pipe(
|
|
62
64
|
HttpClient.mapRequest(HttpClientRequest.prependUrl("https://kubernetes.default.svc/api")),
|
|
63
|
-
|
|
65
|
+
HttpClient.mapRequestEffect((request) =>
|
|
66
|
+
Effect.map(
|
|
67
|
+
token,
|
|
68
|
+
Option.match({
|
|
69
|
+
onNone: () => request,
|
|
70
|
+
onSome: (token) => HttpClientRequest.bearerToken(request, token)
|
|
71
|
+
})
|
|
72
|
+
)
|
|
73
|
+
),
|
|
64
74
|
HttpClient.filterStatusOk,
|
|
65
75
|
HttpClient.retryTransient({
|
|
66
76
|
schedule: Schedule.spaced(5000)
|