effect 4.0.1 → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai-docs/package.json +2 -2
- package/ai-docs/tsconfig.json +2 -1
- package/dist/Array.d.ts +339 -0
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +143 -3
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +88 -0
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +44 -0
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +68 -0
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +36 -0
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +34 -0
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +18 -0
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.d.ts +9 -0
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +6 -0
- package/dist/Brand.js.map +1 -1
- package/dist/ByteSize.d.ts +86 -0
- package/dist/ByteSize.d.ts.map +1 -1
- package/dist/ByteSize.js +51 -0
- package/dist/ByteSize.js.map +1 -1
- package/dist/Cache.d.ts +38 -1
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +27 -7
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +82 -0
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +60 -0
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +327 -4
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +168 -8
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +11 -0
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js +6 -0
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +192 -0
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +78 -0
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +7 -0
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js +5 -0
- package/dist/Clock.js.map +1 -1
- package/dist/Combiner.d.ts +10 -0
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +8 -0
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +52 -12
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +55 -5
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +28 -0
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +19 -0
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +22 -0
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +20 -0
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +50 -0
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +24 -3
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +16 -0
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +26 -1
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +38 -5
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +11 -2
- package/dist/Crypto.js.map +1 -1
- package/dist/Data.d.ts +13 -0
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +5 -0
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +180 -6
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +98 -6
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +51 -0
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +22 -0
- package/dist/Deferred.js.map +1 -1
- package/dist/Differ.d.ts +2 -0
- package/dist/Differ.d.ts.map +1 -1
- package/dist/Differ.js +1 -0
- package/dist/Duration.d.ts +96 -6
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +80 -8
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +527 -0
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +240 -5
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.d.ts +4 -0
- package/dist/Effectable.d.ts.map +1 -1
- package/dist/Effectable.js +3 -0
- package/dist/Effectable.js.map +1 -1
- package/dist/Equal.d.ts +8 -0
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +9 -1
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +21 -0
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +16 -0
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +36 -0
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +11 -0
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +49 -8
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +7 -0
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +40 -0
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +27 -0
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +20 -0
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +11 -0
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +21 -0
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +21 -4
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +35 -0
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +19 -0
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +20 -0
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +14 -0
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +59 -2
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +8 -0
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +55 -0
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +28 -0
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +3 -0
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +39 -1
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +30 -0
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +20 -0
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +247 -12
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +149 -28
- package/dist/Graph.js.map +1 -1
- package/dist/HKT.d.ts +5 -0
- package/dist/HKT.d.ts.map +1 -1
- package/dist/Hash.d.ts +14 -0
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +12 -0
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +91 -0
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +39 -0
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts +17 -0
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +9 -0
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +49 -0
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js +19 -0
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +7 -0
- package/dist/Inspectable.d.ts.map +1 -1
- package/dist/Inspectable.js +6 -0
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +127 -0
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +51 -0
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +4 -0
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +3 -0
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +5 -0
- package/dist/JsonPointer.d.ts.map +1 -1
- package/dist/JsonPointer.js +5 -0
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +16 -0
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +11 -0
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +14 -0
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +10 -0
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +100 -0
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +45 -1
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +7 -0
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +4 -0
- package/dist/LayerMap.js.map +1 -1
- package/dist/LayerRef.d.ts +5 -0
- package/dist/LayerRef.d.ts.map +1 -1
- package/dist/LayerRef.js +3 -0
- package/dist/LayerRef.js.map +1 -1
- package/dist/LogLevel.d.ts +20 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +9 -0
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +25 -0
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +30 -4
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +5 -0
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +9 -1
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +51 -0
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +39 -0
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +59 -0
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +31 -0
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +32 -0
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +16 -0
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +16 -0
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +10 -0
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +20 -0
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +18 -0
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +31 -0
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +17 -0
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +9 -0
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +6 -0
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +4 -0
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +2 -0
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +61 -0
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +31 -0
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +41 -0
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +20 -0
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +134 -0
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +61 -0
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +29 -0
- package/dist/Order.d.ts.map +1 -1
- package/dist/Order.js +24 -0
- package/dist/Order.js.map +1 -1
- package/dist/Ordering.d.ts +7 -0
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +3 -0
- package/dist/Ordering.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +24 -0
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +47 -21
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +6 -0
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +4 -0
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +7 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +5 -0
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +8 -0
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +7 -0
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +19 -0
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +8 -1
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +84 -0
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +48 -0
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +5 -0
- package/dist/PrimaryKey.d.ts.map +1 -1
- package/dist/PrimaryKey.js +4 -0
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +67 -5
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +60 -8
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +20 -0
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +10 -0
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +60 -0
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +58 -8
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +13 -0
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +9 -0
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +23 -0
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +8 -0
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +6 -0
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js +3 -0
- package/dist/RcRef.js.map +1 -1
- package/dist/Record.d.ts +100 -0
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +43 -0
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +6 -0
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +4 -0
- package/dist/Redactable.js.map +1 -1
- package/dist/Redacted.d.ts +8 -0
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +6 -0
- package/dist/Redacted.js.map +1 -1
- package/dist/Reducer.d.ts +4 -0
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +3 -0
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +20 -0
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +16 -0
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +21 -0
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +19 -0
- package/dist/References.js.map +1 -1
- package/dist/RegExp.d.ts +3 -0
- package/dist/RegExp.d.ts.map +1 -1
- package/dist/RegExp.js +4 -0
- package/dist/RegExp.js.map +1 -1
- package/dist/Request.d.ts +32 -0
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +12 -0
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +42 -0
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +27 -6
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.d.ts +6 -0
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +6 -0
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +91 -0
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +41 -0
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +9 -0
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +7 -0
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +57 -0
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +32 -0
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +7 -0
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +5 -0
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +969 -2
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +635 -5
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +107 -0
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +81 -1
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +69 -2
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +63 -4
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +33 -0
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +18 -0
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +25 -0
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +26 -0
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +147 -0
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +99 -0
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +53 -0
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +46 -0
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +19 -0
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +12 -0
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +34 -0
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +26 -3
- package/dist/ScopedCache.js.map +1 -1
- package/dist/ScopedRef.d.ts +9 -0
- package/dist/ScopedRef.d.ts.map +1 -1
- package/dist/ScopedRef.js +6 -0
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +26 -0
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +10 -0
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +125 -1
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +75 -1
- package/dist/Sink.js.map +1 -1
- package/dist/StandardSchema.d.ts +1 -0
- package/dist/StandardSchema.d.ts.map +1 -1
- package/dist/StandardSchema.js +1 -0
- package/dist/Stdio.d.ts +14 -1
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +6 -0
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +569 -11
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +266 -18
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +87 -0
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +61 -0
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +46 -0
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +19 -0
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +65 -0
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +25 -0
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/Symbol.d.ts +2 -0
- package/dist/Symbol.d.ts.map +1 -1
- package/dist/Symbol.js +2 -0
- package/dist/Symbol.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +63 -0
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +24 -0
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Take.d.ts +3 -0
- package/dist/Take.d.ts.map +1 -1
- package/dist/Take.js +1 -0
- package/dist/Take.js.map +1 -1
- package/dist/Terminal.d.ts +8 -0
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +4 -0
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +23 -0
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +12 -0
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +68 -0
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +28 -0
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +38 -0
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +18 -0
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +52 -0
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +23 -0
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +15 -0
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxDeferred.js +8 -0
- package/dist/TxDeferred.js.map +1 -1
- package/dist/TxHashMap.d.ts +83 -0
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +52 -7
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +51 -0
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +29 -4
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +30 -0
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js +22 -1
- package/dist/TxPriorityQueue.js.map +1 -1
- package/dist/TxPubSub.d.ts +25 -0
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxPubSub.js +19 -0
- package/dist/TxPubSub.js.map +1 -1
- package/dist/TxQueue.d.ts +51 -0
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +30 -0
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +24 -0
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +32 -18
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/TxRef.d.ts +14 -0
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +7 -0
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +25 -0
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +29 -13
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +25 -0
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +12 -0
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +36 -0
- package/dist/Types.d.ts.map +1 -1
- package/dist/Types.js +1 -0
- package/dist/UndefinedOr.d.ts +15 -0
- package/dist/UndefinedOr.d.ts.map +1 -1
- package/dist/UndefinedOr.js +9 -0
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +15 -0
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js +2 -0
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +4 -0
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +1 -0
- package/dist/Utils.js.map +1 -1
- package/dist/Version.d.ts +26 -0
- package/dist/Version.d.ts.map +1 -0
- package/dist/Version.js +36 -0
- package/dist/Version.js.map +1 -0
- package/dist/ai/Chat.js +1 -1
- package/dist/ai/Chat.js.map +1 -1
- package/dist/ai/DecisionModel.d.ts +22 -0
- package/dist/ai/DecisionModel.d.ts.map +1 -1
- package/dist/ai/DecisionModel.js +22 -4
- package/dist/ai/DecisionModel.js.map +1 -1
- package/dist/ai/LanguageModel.d.ts.map +1 -1
- package/dist/ai/LanguageModel.js +14 -13
- package/dist/ai/LanguageModel.js.map +1 -1
- package/dist/ai/McpServer.d.ts +38 -11
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +276 -190
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/Telemetry.d.ts +49 -41
- package/dist/ai/Telemetry.d.ts.map +1 -1
- package/dist/ai/Telemetry.js +6 -8
- package/dist/ai/Telemetry.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +5 -0
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +80 -46
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpStatefulRuntime.js +1 -0
- package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
- package/dist/cli/CliOutput.d.ts +27 -0
- package/dist/cli/CliOutput.d.ts.map +1 -1
- package/dist/cli/CliOutput.js +33 -10
- package/dist/cli/CliOutput.js.map +1 -1
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +6 -3
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Completions.d.ts +3 -3
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js +8 -5
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/GlobalFlag.d.ts +5 -4
- package/dist/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/cli/GlobalFlag.js +3 -3
- package/dist/cli/GlobalFlag.js.map +1 -1
- package/dist/cli/Prompt.d.ts +17 -1
- package/dist/cli/Prompt.d.ts.map +1 -1
- package/dist/cli/Prompt.js +119 -114
- package/dist/cli/Prompt.js.map +1 -1
- package/dist/cli/internal/ansi.d.ts +0 -1
- package/dist/cli/internal/ansi.d.ts.map +1 -1
- package/dist/cli/internal/ansi.js +20 -3
- package/dist/cli/internal/ansi.js.map +1 -1
- package/dist/cli/internal/completions/powershell.d.ts +2 -0
- package/dist/cli/internal/completions/powershell.d.ts.map +1 -0
- package/dist/cli/internal/completions/powershell.js +273 -0
- package/dist/cli/internal/completions/powershell.js.map +1 -0
- package/dist/cli/internal/completions/zsh.js +3 -2
- package/dist/cli/internal/completions/zsh.js.map +1 -1
- package/dist/cli/internal/wizard.d.ts +3 -3
- package/dist/cli/internal/wizard.d.ts.map +1 -1
- package/dist/cli/internal/wizard.js +21 -18
- package/dist/cli/internal/wizard.js.map +1 -1
- package/dist/cluster/ClusterSchema.d.ts +28 -0
- package/dist/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/cluster/ClusterSchema.js +30 -0
- package/dist/cluster/ClusterSchema.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +10 -18
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/K8sHttpClient.d.ts.map +1 -1
- package/dist/cluster/K8sHttpClient.js +5 -2
- package/dist/cluster/K8sHttpClient.js.map +1 -1
- package/dist/cluster/MessageStorage.d.ts +18 -3
- package/dist/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/cluster/MessageStorage.js +31 -11
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Runners.d.ts.map +1 -1
- package/dist/cluster/Runners.js +8 -2
- package/dist/cluster/Runners.js.map +1 -1
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +181 -62
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts +59 -19
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +84 -55
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts +68 -19
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +191 -113
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +104 -37
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/encoding/Base64.d.ts +4 -0
- package/dist/encoding/Base64.d.ts.map +1 -1
- package/dist/encoding/Base64.js +4 -0
- package/dist/encoding/Base64.js.map +1 -1
- package/dist/encoding/Base64Url.d.ts +4 -0
- package/dist/encoding/Base64Url.d.ts.map +1 -1
- package/dist/encoding/Base64Url.js +4 -0
- package/dist/encoding/Base64Url.js.map +1 -1
- package/dist/encoding/EncodingError.d.ts +4 -0
- package/dist/encoding/EncodingError.d.ts.map +1 -1
- package/dist/encoding/EncodingError.js +4 -0
- package/dist/encoding/EncodingError.js.map +1 -1
- package/dist/encoding/Hex.d.ts +5 -0
- package/dist/encoding/Hex.d.ts.map +1 -1
- package/dist/encoding/Hex.js +5 -0
- package/dist/encoding/Hex.js.map +1 -1
- package/dist/encoding/Toml.js +2 -2
- package/dist/encoding/Toml.js.map +1 -1
- package/dist/encoding/Yaml.d.ts.map +1 -1
- package/dist/encoding/Yaml.js +6 -4
- package/dist/encoding/Yaml.js.map +1 -1
- package/dist/encoding/index.d.ts +4 -0
- package/dist/encoding/index.d.ts.map +1 -1
- package/dist/encoding/index.js +4 -0
- package/dist/encoding/index.js.map +1 -1
- package/dist/eventlog/SqlEventJournal.js +8 -4
- package/dist/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +27 -10
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.js +49 -7
- package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/http/FindMyWay/internal/router.js +3 -6
- package/dist/http/FindMyWay/internal/router.js.map +1 -1
- package/dist/http/Headers.d.ts +3 -1
- package/dist/http/Headers.d.ts.map +1 -1
- package/dist/http/Headers.js +4 -2
- package/dist/http/Headers.js.map +1 -1
- package/dist/http/HttpClient.d.ts +15 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +79 -23
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpClientResponse.js +3 -1
- package/dist/http/HttpClientResponse.js.map +1 -1
- package/dist/http/HttpEffect.d.ts +3 -0
- package/dist/http/HttpEffect.d.ts.map +1 -1
- package/dist/http/HttpEffect.js +5 -2
- package/dist/http/HttpEffect.js.map +1 -1
- package/dist/http/HttpMiddleware.d.ts +17 -0
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +56 -39
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpServer.d.ts +1 -1
- package/dist/http/HttpServer.d.ts.map +1 -1
- package/dist/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/http/HttpTraceContext.js +4 -2
- package/dist/http/HttpTraceContext.js.map +1 -1
- package/dist/http/internal/tracing.d.ts +2 -0
- package/dist/http/internal/tracing.d.ts.map +1 -0
- package/dist/http/internal/tracing.js +37 -0
- package/dist/http/internal/tracing.js.map +1 -0
- package/dist/http-api/HttpApiBuilder.js +2 -1
- package/dist/http-api/HttpApiBuilder.js.map +1 -1
- package/dist/http-api/HttpApiClient.d.ts +12 -3
- package/dist/http-api/HttpApiClient.d.ts.map +1 -1
- package/dist/http-api/HttpApiClient.js.map +1 -1
- package/dist/http-api/HttpApiError.d.ts +4 -3
- package/dist/http-api/HttpApiError.d.ts.map +1 -1
- package/dist/http-api/HttpApiError.js +7 -4
- package/dist/http-api/HttpApiError.js.map +1 -1
- package/dist/http-api/HttpApiSecurity.d.ts +8 -8
- package/dist/http-api/HttpApiSecurity.js +8 -8
- package/dist/index.d.ts +155 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +155 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/arbitrary/array.js +3 -3
- package/dist/internal/arbitrary/array.js.map +1 -1
- package/dist/internal/arbitrary/model.js +26 -11
- package/dist/internal/arbitrary/model.js.map +1 -1
- package/dist/internal/arbitrary/runner.js +8 -8
- package/dist/internal/arbitrary/runner.js.map +1 -1
- package/dist/internal/arbitrary/schema.js +4 -5
- package/dist/internal/arbitrary/schema.js.map +1 -1
- package/dist/internal/effect.js +53 -46
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/schedule.js +7 -5
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/standardSchema.js +2 -2
- package/dist/internal/schema/standardSchema.js.map +1 -1
- package/dist/internal/version.d.ts +2 -0
- package/dist/internal/version.d.ts.map +1 -0
- package/dist/internal/version.js +3 -0
- package/dist/internal/version.js.map +1 -0
- package/dist/net/AddressResolver.d.ts +145 -0
- package/dist/net/AddressResolver.d.ts.map +1 -0
- package/dist/net/AddressResolver.js +114 -0
- package/dist/net/AddressResolver.js.map +1 -0
- package/dist/net/Dns.d.ts +596 -0
- package/dist/net/Dns.d.ts.map +1 -0
- package/dist/net/Dns.js +549 -0
- package/dist/net/Dns.js.map +1 -0
- package/dist/net/Host.d.ts +320 -0
- package/dist/net/Host.d.ts.map +1 -0
- package/dist/net/Host.js +342 -0
- package/dist/net/Host.js.map +1 -0
- package/dist/net/IpInterface.d.ts +76 -3
- package/dist/net/IpInterface.d.ts.map +1 -1
- package/dist/net/IpInterface.js +53 -4
- package/dist/net/IpInterface.js.map +1 -1
- package/dist/net/IpNetwork.d.ts +82 -8
- package/dist/net/IpNetwork.d.ts.map +1 -1
- package/dist/net/IpNetwork.js +60 -4
- package/dist/net/IpNetwork.js.map +1 -1
- package/dist/net/NetAddress.d.ts +388 -35
- package/dist/net/NetAddress.d.ts.map +1 -1
- package/dist/net/NetAddress.js +350 -34
- package/dist/net/NetAddress.js.map +1 -1
- package/dist/net/index.d.ts +15 -0
- package/dist/net/index.d.ts.map +1 -1
- package/dist/net/index.js +15 -0
- package/dist/net/index.js.map +1 -1
- package/dist/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/observability/OtlpExporter.js +5 -6
- package/dist/observability/OtlpExporter.js.map +1 -1
- package/dist/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/observability/OtlpLogger.js +23 -27
- package/dist/observability/OtlpLogger.js.map +1 -1
- package/dist/observability/OtlpMetrics.d.ts +5 -3
- package/dist/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/observability/OtlpMetrics.js +36 -115
- package/dist/observability/OtlpMetrics.js.map +1 -1
- package/dist/observability/OtlpResource.d.ts +4 -3
- package/dist/observability/OtlpResource.d.ts.map +1 -1
- package/dist/observability/OtlpResource.js +20 -23
- package/dist/observability/OtlpResource.js.map +1 -1
- package/dist/observability/OtlpTracer.d.ts +1 -0
- package/dist/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/observability/OtlpTracer.js +32 -36
- package/dist/observability/OtlpTracer.js.map +1 -1
- package/dist/observability/PrometheusMetrics.js +1 -0
- package/dist/observability/PrometheusMetrics.js.map +1 -1
- package/dist/observability/internal/otlpProtobuf.js +32 -1
- package/dist/observability/internal/otlpProtobuf.js.map +1 -1
- package/dist/persistence/PersistedQueue.d.ts +32 -3
- package/dist/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/persistence/PersistedQueue.js +75 -16
- package/dist/persistence/PersistedQueue.js.map +1 -1
- package/dist/reactivity/AsyncResult.d.ts +1 -1
- package/dist/reactivity/Atom.d.ts +5 -5
- package/dist/reactivity/Atom.d.ts.map +1 -1
- package/dist/reactivity/Atom.js +9 -5
- package/dist/reactivity/Atom.js.map +1 -1
- package/dist/reactivity/AtomHttpApi.d.ts +2 -2
- package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/reactivity/AtomRegistry.d.ts +8 -0
- package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/reactivity/AtomRegistry.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +41 -7
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +50 -25
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts +6 -0
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +59 -40
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/rpc/internal/tracing.d.ts +2 -0
- package/dist/rpc/internal/tracing.d.ts.map +1 -0
- package/dist/rpc/internal/tracing.js +18 -0
- package/dist/rpc/internal/tracing.js.map +1 -0
- package/dist/schema/SchemaCompiler/runtime.js +9 -1
- package/dist/schema/SchemaCompiler/runtime.js.map +1 -1
- package/dist/socket/DatagramSocket.d.ts +456 -0
- package/dist/socket/DatagramSocket.d.ts.map +1 -0
- package/dist/socket/DatagramSocket.js +535 -0
- package/dist/socket/DatagramSocket.js.map +1 -0
- package/dist/socket/Socket.d.ts +14 -1
- package/dist/socket/Socket.d.ts.map +1 -1
- package/dist/socket/Socket.js +9 -1
- package/dist/socket/Socket.js.map +1 -1
- package/dist/socket/index.d.ts +5 -0
- package/dist/socket/index.d.ts.map +1 -1
- package/dist/socket/index.js +5 -0
- package/dist/socket/index.js.map +1 -1
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +7 -2
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/SqlClient.d.ts +7 -1
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +35 -10
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/Statement.d.ts +21 -1
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +55 -7
- package/dist/sql/Statement.js.map +1 -1
- package/dist/testing/TestClock.d.ts +8 -0
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +7 -0
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestConsole.d.ts +7 -0
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js +6 -0
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/TestCrypto.d.ts +73 -0
- package/dist/testing/TestCrypto.d.ts.map +1 -0
- package/dist/testing/TestCrypto.js +87 -0
- package/dist/testing/TestCrypto.js.map +1 -0
- package/dist/testing/index.d.ts +8 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +8 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/workflow/DurableDeferred.d.ts +54 -0
- package/dist/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/workflow/DurableDeferred.js +78 -49
- package/dist/workflow/DurableDeferred.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +2 -1
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +3 -3
- package/src/Array.ts +351 -3
- package/src/BigDecimal.ts +88 -0
- package/src/BigInt.ts +68 -0
- package/src/Boolean.ts +34 -0
- package/src/Brand.ts +10 -0
- package/src/ByteSize.ts +87 -0
- package/src/Cache.ts +50 -8
- package/src/Cause.ts +82 -0
- package/src/Channel.ts +368 -18
- package/src/ChannelSchema.ts +13 -0
- package/src/Chunk.ts +193 -0
- package/src/Clock.ts +7 -0
- package/src/Combiner.ts +10 -0
- package/src/Config.ts +82 -8
- package/src/ConfigProvider.ts +28 -0
- package/src/Console.ts +26 -0
- package/src/Context.ts +53 -3
- package/src/Cron.ts +32 -1
- package/src/Crypto.ts +48 -9
- package/src/Data.ts +13 -0
- package/src/DateTime.ts +180 -6
- package/src/Deferred.ts +51 -0
- package/src/Differ.ts +2 -0
- package/src/Duration.ts +126 -16
- package/src/Effect.ts +539 -5
- package/src/Effectable.ts +4 -0
- package/src/Equal.ts +12 -1
- package/src/Equivalence.ts +22 -0
- package/src/ErrorReporter.ts +36 -0
- package/src/ExecutionPlan.ts +58 -14
- package/src/Exit.ts +40 -0
- package/src/Fiber.ts +20 -0
- package/src/FiberHandle.ts +29 -4
- package/src/FiberMap.ts +38 -0
- package/src/FiberSet.ts +21 -0
- package/src/FileSystem.ts +64 -2
- package/src/Filter.ts +55 -0
- package/src/Formatter.ts +42 -1
- package/src/Function.ts +30 -0
- package/src/Graph.ts +317 -36
- package/src/HKT.ts +5 -0
- package/src/Hash.ts +15 -0
- package/src/HashMap.ts +91 -0
- package/src/HashRing.ts +18 -0
- package/src/HashSet.ts +53 -0
- package/src/Inspectable.ts +8 -0
- package/src/Iterable.ts +127 -0
- package/src/JsonPatch.ts +5 -0
- package/src/JsonPointer.ts +5 -0
- package/src/JsonSchema.ts +17 -0
- package/src/Latch.ts +14 -0
- package/src/Layer.ts +101 -1
- package/src/LayerMap.ts +7 -0
- package/src/LayerRef.ts +5 -0
- package/src/LogLevel.ts +20 -0
- package/src/Logger.ts +41 -5
- package/src/ManagedRuntime.ts +12 -1
- package/src/Match.ts +52 -0
- package/src/Metric.ts +69 -0
- package/src/MutableHashMap.ts +44 -0
- package/src/MutableHashSet.ts +17 -0
- package/src/MutableList.ts +21 -0
- package/src/MutableRef.ts +32 -0
- package/src/Newtype.ts +9 -0
- package/src/NonEmptyIterable.ts +4 -0
- package/src/Number.ts +61 -0
- package/src/Optic.ts +57 -0
- package/src/Option.ts +134 -0
- package/src/Order.ts +30 -0
- package/src/Ordering.ts +7 -0
- package/src/PartitionedSemaphore.ts +61 -22
- package/src/Path.ts +6 -0
- package/src/Pipeable.ts +7 -0
- package/src/PlatformError.ts +8 -0
- package/src/Pool.ts +20 -1
- package/src/Predicate.ts +85 -0
- package/src/PrimaryKey.ts +5 -0
- package/src/PubSub.ts +90 -9
- package/src/Pull.ts +20 -0
- package/src/Queue.ts +80 -10
- package/src/Random.ts +13 -0
- package/src/RcMap.ts +23 -0
- package/src/RcRef.ts +6 -0
- package/src/Record.ts +100 -0
- package/src/Redactable.ts +6 -0
- package/src/Redacted.ts +8 -0
- package/src/Reducer.ts +4 -0
- package/src/Ref.ts +42 -0
- package/src/References.ts +21 -0
- package/src/RegExp.ts +4 -0
- package/src/Request.ts +32 -0
- package/src/RequestResolver.ts +59 -10
- package/src/Resource.ts +7 -0
- package/src/Result.ts +93 -0
- package/src/Runtime.ts +10 -0
- package/src/Schedule.ts +61 -0
- package/src/Scheduler.ts +7 -0
- package/src/Schema.ts +1168 -9
- package/src/SchemaAST.ts +115 -1
- package/src/SchemaGetter.ts +80 -4
- package/src/SchemaIssue.ts +34 -0
- package/src/SchemaParser.ts +26 -0
- package/src/SchemaRepresentation.ts +148 -0
- package/src/SchemaTransformation.ts +53 -0
- package/src/Scope.ts +19 -0
- package/src/ScopedCache.ts +55 -3
- package/src/ScopedRef.ts +9 -0
- package/src/Semaphore.ts +26 -0
- package/src/Sink.ts +126 -2
- package/src/StandardSchema.ts +1 -0
- package/src/Stdio.ts +16 -2
- package/src/Stream.ts +633 -26
- package/src/String.ts +87 -0
- package/src/Struct.ts +46 -0
- package/src/SubscriptionRef.ts +65 -0
- package/src/Symbol.ts +2 -0
- package/src/SynchronizedRef.ts +63 -0
- package/src/Take.ts +3 -0
- package/src/Terminal.ts +8 -0
- package/src/Tracer.ts +23 -0
- package/src/Trie.ts +68 -0
- package/src/Tuple.ts +38 -0
- package/src/TxChunk.ts +52 -0
- package/src/TxDeferred.ts +15 -0
- package/src/TxHashMap.ts +97 -6
- package/src/TxHashSet.ts +83 -3
- package/src/TxPriorityQueue.ts +34 -2
- package/src/TxPubSub.ts +26 -0
- package/src/TxQueue.ts +51 -0
- package/src/TxReentrantLock.ts +53 -36
- package/src/TxRef.ts +14 -0
- package/src/TxSemaphore.ts +47 -31
- package/src/TxSubscriptionRef.ts +25 -0
- package/src/Types.ts +36 -0
- package/src/UndefinedOr.ts +15 -0
- package/src/Unify.ts +15 -0
- package/src/Utils.ts +4 -0
- package/src/Version.ts +38 -0
- package/src/ai/Chat.ts +1 -1
- package/src/ai/DecisionModel.ts +42 -1
- package/src/ai/LanguageModel.ts +16 -19
- package/src/ai/McpServer.ts +169 -58
- package/src/ai/Telemetry.ts +62 -58
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +5 -0
- package/src/ai/internal/mcpProtocol.ts +3 -0
- package/src/ai/internal/mcpRuntime.ts +86 -43
- package/src/ai/internal/mcpStatefulRuntime.ts +2 -0
- package/src/cli/CliOutput.ts +33 -16
- package/src/cli/Command.ts +4 -3
- package/src/cli/Completions.ts +9 -6
- package/src/cli/GlobalFlag.ts +19 -11
- package/src/cli/Prompt.ts +159 -149
- package/src/cli/internal/ansi.ts +26 -3
- package/src/cli/internal/completions/powershell.ts +322 -0
- package/src/cli/internal/completions/zsh.ts +4 -2
- package/src/cli/internal/wizard.ts +34 -26
- package/src/cluster/ClusterSchema.ts +32 -0
- package/src/cluster/ClusterWorkflowEngine.ts +13 -24
- package/src/cluster/K8sHttpClient.ts +12 -2
- package/src/cluster/MessageStorage.ts +45 -14
- package/src/cluster/Runners.ts +8 -2
- package/src/cluster/Sharding.ts +207 -49
- package/src/cluster/SqlMessageStorage.ts +118 -84
- package/src/cluster/SqlRunnerStorage.ts +224 -128
- package/src/cluster/internal/entityManager.ts +151 -55
- package/src/encoding/Base64.ts +4 -0
- package/src/encoding/Base64Url.ts +4 -0
- package/src/encoding/EncodingError.ts +5 -0
- package/src/encoding/Hex.ts +5 -0
- package/src/encoding/Toml.ts +2 -2
- package/src/encoding/Yaml.ts +8 -4
- package/src/encoding/index.ts +4 -0
- package/src/eventlog/SqlEventJournal.ts +18 -4
- package/src/eventlog/SqlEventLogServerUnencrypted.ts +282 -235
- package/src/http/FindMyWay/internal/router.ts +4 -7
- package/src/http/Headers.ts +8 -2
- package/src/http/HttpClient.ts +100 -29
- package/src/http/HttpClientResponse.ts +3 -1
- package/src/http/HttpEffect.ts +11 -2
- package/src/http/HttpMiddleware.ts +60 -45
- package/src/http/HttpServer.ts +1 -1
- package/src/http/HttpTraceContext.ts +8 -2
- package/src/http/internal/tracing.ts +52 -0
- package/src/http-api/HttpApiBuilder.ts +5 -1
- package/src/http-api/HttpApiClient.ts +13 -4
- package/src/http-api/HttpApiError.ts +8 -4
- package/src/http-api/HttpApiSecurity.ts +8 -8
- package/src/index.ts +156 -0
- package/src/internal/arbitrary/array.ts +3 -3
- package/src/internal/arbitrary/model.ts +37 -14
- package/src/internal/arbitrary/runner.ts +7 -7
- package/src/internal/arbitrary/schema.ts +4 -3
- package/src/internal/effect.ts +62 -58
- package/src/internal/schedule.ts +23 -17
- package/src/internal/schema/standardSchema.ts +2 -2
- package/src/internal/version.ts +2 -0
- package/src/net/AddressResolver.ts +222 -0
- package/src/net/Dns.ts +1035 -0
- package/src/net/Host.ts +472 -0
- package/src/net/IpInterface.ts +117 -7
- package/src/net/IpNetwork.ts +116 -17
- package/src/net/NetAddress.ts +611 -76
- package/src/net/index.ts +18 -0
- package/src/observability/OtlpExporter.ts +9 -6
- package/src/observability/OtlpLogger.ts +20 -21
- package/src/observability/OtlpMetrics.ts +46 -116
- package/src/observability/OtlpResource.ts +18 -27
- package/src/observability/OtlpTracer.ts +34 -40
- package/src/observability/PrometheusMetrics.ts +1 -0
- package/src/observability/internal/otlpProtobuf.ts +60 -0
- package/src/persistence/PersistedQueue.ts +146 -53
- package/src/reactivity/AsyncResult.ts +1 -1
- package/src/reactivity/Atom.ts +10 -6
- package/src/reactivity/AtomHttpApi.ts +2 -4
- package/src/reactivity/AtomRegistry.ts +7 -0
- package/src/rpc/RpcClient.ts +87 -41
- package/src/rpc/RpcServer.ts +85 -48
- package/src/rpc/internal/tracing.ts +22 -0
- package/src/schema/SchemaCompiler/runtime.ts +4 -1
- package/src/socket/DatagramSocket.ts +919 -0
- package/src/socket/Socket.ts +22 -2
- package/src/socket/index.ts +6 -0
- package/src/sql/Migrator.ts +21 -5
- package/src/sql/SqlClient.ts +43 -19
- package/src/sql/Statement.ts +59 -7
- package/src/testing/TestClock.ts +9 -0
- package/src/testing/TestConsole.ts +8 -0
- package/src/testing/TestCrypto.ts +94 -0
- package/src/testing/index.ts +9 -0
- package/src/workflow/DurableDeferred.ts +123 -48
- package/src/workflow/WorkflowEngine.ts +2 -1
package/src/ai/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
|
|
|
@@ -386,6 +386,8 @@ export const makeHandlers = (
|
|
|
386
386
|
}
|
|
387
387
|
const presence = yield* context.registrationPresence
|
|
388
388
|
const eventsScope = yield* Scope.fork(yield* Effect.scope)
|
|
389
|
+
// Ignore changes emitted before this subscription, even if delivery was deferred.
|
|
390
|
+
const listChangeRevision = context.getListChangeRevision?.() ?? 0
|
|
389
391
|
const events = yield* Scope.provide(context.subscribeServerNotifications, eventsScope)
|
|
390
392
|
const honored = {
|
|
391
393
|
...(presence.tools && request.notifications.toolsListChanged === true
|
|
@@ -410,6 +412,9 @@ export const makeHandlers = (
|
|
|
410
412
|
yield* Effect.gen(function*() {
|
|
411
413
|
while (true) {
|
|
412
414
|
const event = yield* PubSub.take(events)
|
|
415
|
+
if (event.listChangeRevision !== undefined && event.listChangeRevision <= listChangeRevision) {
|
|
416
|
+
continue
|
|
417
|
+
}
|
|
413
418
|
if (event.targetClientId !== undefined && event.targetClientId !== client.id) {
|
|
414
419
|
continue
|
|
415
420
|
}
|
|
@@ -382,6 +382,8 @@ export interface HandlerInstallationContext {
|
|
|
382
382
|
never,
|
|
383
383
|
Scope.Scope
|
|
384
384
|
>
|
|
385
|
+
/** Current list-change revision; subscriptions ignore changes emitted at or before it. */
|
|
386
|
+
readonly getListChangeRevision?: (() => number) | undefined
|
|
385
387
|
readonly sendNotification?: (
|
|
386
388
|
protocolVersion: string,
|
|
387
389
|
clientId: number,
|
|
@@ -419,6 +421,7 @@ export interface HandlerInstallationContext {
|
|
|
419
421
|
*/
|
|
420
422
|
export interface CanonicalServerNotification {
|
|
421
423
|
readonly notification: SubscriptionServerNotification
|
|
424
|
+
readonly listChangeRevision?: number | undefined
|
|
422
425
|
readonly targetClientId?: number | undefined
|
|
423
426
|
}
|
|
424
427
|
|
|
@@ -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"
|
|
@@ -122,6 +123,7 @@ export type HttpAdmission =
|
|
|
122
123
|
*/
|
|
123
124
|
export interface HandlerInstallationOptions {
|
|
124
125
|
readonly core: McpCore.McpCore
|
|
126
|
+
readonly getListChangeRevision?: () => number
|
|
125
127
|
readonly subscribeServerNotifications: McpProtocol.HandlerInstallationContext["subscribeServerNotifications"]
|
|
126
128
|
readonly sendNotification?: NonNullable<McpProtocol.HandlerInstallationContext["sendNotification"]>
|
|
127
129
|
readonly markSubscriptionCancelled?: NonNullable<
|
|
@@ -175,6 +177,10 @@ export interface ServerRuntimeShape {
|
|
|
175
177
|
fallback: LogLevel.LogLevel
|
|
176
178
|
) => LogLevel.LogLevel
|
|
177
179
|
readonly disconnect: (clientId: number) => void
|
|
180
|
+
readonly terminateHttpSession: (headers: Headers.Headers) => Effect.Effect<HttpServerResponse.HttpServerResponse>
|
|
181
|
+
readonly onSessionTerminated: (
|
|
182
|
+
listener: (binding: RequestBinding) => Effect.Effect<void>
|
|
183
|
+
) => Effect.Effect<void, never, Scope.Scope>
|
|
178
184
|
readonly deliveryClientIds: () => Iterable<number>
|
|
179
185
|
readonly canDeliver: (
|
|
180
186
|
clientId: number,
|
|
@@ -228,9 +234,36 @@ export const make = Effect.fnUntraced(function*(
|
|
|
228
234
|
statelessProtocol = protocol
|
|
229
235
|
}
|
|
230
236
|
const registry = yield* McpProtocolRegistry.make(protocols)
|
|
231
|
-
const
|
|
237
|
+
const sessionTerminationListeners = new Set<(binding: RequestBinding) => Effect.Effect<void>>()
|
|
238
|
+
const unsupportedProtocolVersion = (requested: string) => ({
|
|
239
|
+
code: UNSUPPORTED_PROTOCOL_VERSION_ERROR_CODE,
|
|
240
|
+
message: `Unsupported protocol version '${requested}'`,
|
|
241
|
+
data: { supported: protocolVersions, requested }
|
|
242
|
+
})
|
|
243
|
+
const selectHttpSession = (headers: Headers.Headers, isInitialize: boolean): HttpProtocolSelection => {
|
|
232
244
|
const protocolVersion = headers[MCP_PROTOCOL_VERSION_HEADER]
|
|
233
245
|
const sessionId = headers[MCP_SESSION_ID_HEADER]
|
|
246
|
+
const binding = sessionId === undefined ? undefined : stateful?.resolveSessionId(sessionId)
|
|
247
|
+
if (sessionId !== undefined && binding === undefined) {
|
|
248
|
+
return { _tag: "Rejected", status: 404 }
|
|
249
|
+
}
|
|
250
|
+
if (!isInitialize && protocolVersion !== undefined) {
|
|
251
|
+
if (!protocolVersions.includes(protocolVersion)) {
|
|
252
|
+
return { _tag: "Rejected", status: 400, error: unsupportedProtocolVersion(protocolVersion) }
|
|
253
|
+
}
|
|
254
|
+
if (
|
|
255
|
+
binding?.protocol.runtime.transport.http.requiresVersionHeader === true &&
|
|
256
|
+
protocolVersion !== binding.protocol.protocolVersion
|
|
257
|
+
) {
|
|
258
|
+
return headerMismatch(
|
|
259
|
+
`MCP-Protocol-Version header '${protocolVersion}' does not match negotiated protocol version '${binding.protocol.protocolVersion}'`
|
|
260
|
+
)
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
return { _tag: "Accepted", binding, protocol: binding?.protocol }
|
|
264
|
+
}
|
|
265
|
+
const selectHttpProtocol = (headers: Headers.Headers, input: unknown): HttpProtocolSelection => {
|
|
266
|
+
const protocolVersion = headers[MCP_PROTOCOL_VERSION_HEADER]
|
|
234
267
|
const inputRecord = asRecord(input)
|
|
235
268
|
const metadata = asRecord(asRecord(inputRecord?.params)?._meta)
|
|
236
269
|
const claim = protocolVersionClaim(metadata)
|
|
@@ -272,18 +305,7 @@ export const make = Effect.fnUntraced(function*(
|
|
|
272
305
|
}
|
|
273
306
|
}
|
|
274
307
|
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
|
-
}
|
|
308
|
+
return { _tag: "Rejected", status: 400, error: unsupportedProtocolVersion(protocolVersion) }
|
|
287
309
|
}
|
|
288
310
|
const method = inputRecord?.method
|
|
289
311
|
if (typeof method !== "string" || headers[MCP_METHOD_HEADER] !== method) {
|
|
@@ -299,25 +321,7 @@ export const make = Effect.fnUntraced(function*(
|
|
|
299
321
|
}
|
|
300
322
|
return { _tag: "Accepted", binding: undefined, protocol: statelessProtocol }
|
|
301
323
|
}
|
|
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 }
|
|
324
|
+
return selectHttpSession(headers, isInitialize)
|
|
321
325
|
}
|
|
322
326
|
return ServerRuntime.of({
|
|
323
327
|
protocols: registry.protocols,
|
|
@@ -362,11 +366,7 @@ export const make = Effect.fnUntraced(function*(
|
|
|
362
366
|
return yield* Effect.die("MCP stateless runtime invariant failed")
|
|
363
367
|
}
|
|
364
368
|
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
|
-
})
|
|
369
|
+
return yield* new McpProtocol.ProtocolError(unsupportedProtocolVersion(requestedVersion))
|
|
370
370
|
}
|
|
371
371
|
const decodedProfile = yield* statelessDescriptor.profileFromRequestMetadata(metadata)
|
|
372
372
|
const profile: McpCore.NegotiatedProtocolProfile<string> = {
|
|
@@ -394,12 +394,14 @@ export const make = Effect.fnUntraced(function*(
|
|
|
394
394
|
})
|
|
395
395
|
if (Result.isFailure(parsed)) {
|
|
396
396
|
const version = headers[MCP_PROTOCOL_VERSION_HEADER]
|
|
397
|
-
if (version !== undefined && !
|
|
398
|
-
return reject(400)
|
|
397
|
+
if (version !== undefined && !protocolVersions.includes(version)) {
|
|
398
|
+
return reject(400, unsupportedProtocolVersion(version))
|
|
399
399
|
}
|
|
400
400
|
const admission = selectHttpProtocol(headers, undefined)
|
|
401
|
-
|
|
402
|
-
|
|
401
|
+
// Session and protocol-header errors take precedence over parse errors.
|
|
402
|
+
return admission._tag === "Rejected" &&
|
|
403
|
+
(admission.error === undefined || admission.error.code === PublicMcpSchema.HEADER_MISMATCH_ERROR_CODE)
|
|
404
|
+
? reject(admission.status, admission.error)
|
|
403
405
|
: reject(200, new PublicMcpSchema.ParseError({ message: "Parse error" }))
|
|
404
406
|
}
|
|
405
407
|
const input = parsed.success
|
|
@@ -444,8 +446,21 @@ export const make = Effect.fnUntraced(function*(
|
|
|
444
446
|
}
|
|
445
447
|
const isInitialize = Predicate.hasProperty(input, "method") && input.method === "initialize"
|
|
446
448
|
const hasSession = headers[MCP_SESSION_ID_HEADER] !== undefined
|
|
447
|
-
if (isInitialize
|
|
448
|
-
return reject(
|
|
449
|
+
if (isInitialize && hasSession) {
|
|
450
|
+
return reject(
|
|
451
|
+
400,
|
|
452
|
+
new PublicMcpSchema.InvalidRequest({ message: "initialize must not include an MCP-Session-Id header" }),
|
|
453
|
+
id
|
|
454
|
+
)
|
|
455
|
+
}
|
|
456
|
+
if (!isInitialize && !hasSession && admission.protocol?.runtime._tag !== "Stateless") {
|
|
457
|
+
return reject(
|
|
458
|
+
400,
|
|
459
|
+
stateful === undefined ? undefined : new PublicMcpSchema.InvalidRequest({
|
|
460
|
+
message: "MCP-Session-Id header is required; send initialize to start a session"
|
|
461
|
+
}),
|
|
462
|
+
id
|
|
463
|
+
)
|
|
449
464
|
}
|
|
450
465
|
if (
|
|
451
466
|
isRequest && admission.protocol?.runtime._tag === "Stateless" &&
|
|
@@ -464,6 +479,33 @@ export const make = Effect.fnUntraced(function*(
|
|
|
464
479
|
},
|
|
465
480
|
effectLogLevel: (clientId, headers, fallback) => stateful?.effectLogLevel(clientId, headers, fallback) ?? fallback,
|
|
466
481
|
disconnect: (clientId) => stateful?.disconnect(clientId),
|
|
482
|
+
terminateHttpSession: (headers) =>
|
|
483
|
+
Effect.suspend(() => {
|
|
484
|
+
const sessionId = headers[MCP_SESSION_ID_HEADER]
|
|
485
|
+
if (sessionId === undefined) {
|
|
486
|
+
return Effect.succeed(HttpServerResponse.empty({ status: 400 }))
|
|
487
|
+
}
|
|
488
|
+
const selection = selectHttpSession(headers, false)
|
|
489
|
+
if (selection._tag === "Rejected") {
|
|
490
|
+
return Effect.succeed(HttpServerResponse.empty({ status: selection.status }))
|
|
491
|
+
}
|
|
492
|
+
const binding = selection.binding!
|
|
493
|
+
stateful!.terminateSession(sessionId)
|
|
494
|
+
return Effect.as(
|
|
495
|
+
Effect.forEach(sessionTerminationListeners, (listener) => listener(binding), { discard: true }),
|
|
496
|
+
HttpServerResponse.empty({ status: 204 })
|
|
497
|
+
)
|
|
498
|
+
}),
|
|
499
|
+
onSessionTerminated: (listener) =>
|
|
500
|
+
Effect.acquireRelease(
|
|
501
|
+
Effect.sync(() => {
|
|
502
|
+
sessionTerminationListeners.add(listener)
|
|
503
|
+
}),
|
|
504
|
+
() =>
|
|
505
|
+
Effect.sync(() => {
|
|
506
|
+
sessionTerminationListeners.delete(listener)
|
|
507
|
+
})
|
|
508
|
+
),
|
|
467
509
|
deliveryClientIds: () => stateful?.initializedClientIds() ?? [],
|
|
468
510
|
canDeliver: (clientId, headers, notification, fallback) =>
|
|
469
511
|
stateful?.canDeliver(clientId, headers, notification, fallback) ?? true,
|
|
@@ -471,6 +513,7 @@ export const make = Effect.fnUntraced(function*(
|
|
|
471
513
|
const contextMap = new Map<string, unknown>()
|
|
472
514
|
const installationContext: McpProtocol.HandlerInstallationContext = {
|
|
473
515
|
subscribeServerNotifications: options.subscribeServerNotifications,
|
|
516
|
+
getListChangeRevision: options.getListChangeRevision,
|
|
474
517
|
...(options.sendNotification === undefined ? {} : { sendNotification: options.sendNotification }),
|
|
475
518
|
...(options.markSubscriptionCancelled === undefined
|
|
476
519
|
? {}
|
|
@@ -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)
|
package/src/cli/CliOutput.ts
CHANGED
|
@@ -16,6 +16,7 @@ import * as Layer from "../Layer.ts"
|
|
|
16
16
|
import * as Option from "../Option.ts"
|
|
17
17
|
import type * as CliError from "./CliError.ts"
|
|
18
18
|
import type { HelpDoc } from "./HelpDoc.ts"
|
|
19
|
+
import * as Ansi from "./internal/ansi.ts"
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
22
|
* Defines the service interface for formatting CLI output including help, errors, and version info.
|
|
@@ -306,17 +307,7 @@ const escapeControlCharacters = (text: string): string =>
|
|
|
306
307
|
* @since 4.0.0
|
|
307
308
|
*/
|
|
308
309
|
export const defaultFormatter = (options?: { colors?: boolean }): Formatter => {
|
|
309
|
-
const
|
|
310
|
-
const hasProcess = typeof globalProcess === "object" && globalProcess !== null
|
|
311
|
-
|
|
312
|
-
const useColor = options?.colors !== undefined
|
|
313
|
-
? options.colors
|
|
314
|
-
// Auto-detect based on environment
|
|
315
|
-
: (hasProcess &&
|
|
316
|
-
typeof globalProcess.stdout === "object" &&
|
|
317
|
-
globalProcess.stdout !== null &&
|
|
318
|
-
globalProcess.stdout.isTTY === true &&
|
|
319
|
-
!globalProcess.env?.NO_COLOR)
|
|
310
|
+
const useColor = options?.colors ?? Ansi.detectColors()
|
|
320
311
|
|
|
321
312
|
// Color palette using ANSI escape codes
|
|
322
313
|
const colors = useColor
|
|
@@ -390,7 +381,7 @@ const stripAnsi = (text: string): string => {
|
|
|
390
381
|
}
|
|
391
382
|
|
|
392
383
|
/**
|
|
393
|
-
*
|
|
384
|
+
* Segments text into grapheme clusters.
|
|
394
385
|
* @internal
|
|
395
386
|
*/
|
|
396
387
|
const graphemeSegmenter = new Intl.Segmenter(undefined, { granularity: "grapheme" })
|
|
@@ -424,7 +415,33 @@ const graphemeWidth = (grapheme: string): number => {
|
|
|
424
415
|
return isFullWidthCodePoint(visible.codePointAt(0)!) ? 2 : 1
|
|
425
416
|
}
|
|
426
417
|
|
|
427
|
-
|
|
418
|
+
/**
|
|
419
|
+
* Measures the number of terminal cells a string occupies.
|
|
420
|
+
*
|
|
421
|
+
* **Details**
|
|
422
|
+
*
|
|
423
|
+
* Uses the same measurement as built-in help and table rendering. ANSI styling
|
|
424
|
+
* is stripped before measuring graphemes: zero-width graphemes count as `0`,
|
|
425
|
+
* emoji presentation sequences and fullwidth characters as `2`, and other
|
|
426
|
+
* graphemes as `1`.
|
|
427
|
+
*
|
|
428
|
+
* **Example** (Measuring terminal-cell widths)
|
|
429
|
+
*
|
|
430
|
+
* ```ts import.meta.vitest
|
|
431
|
+
* import { CliOutput } from "effect/cli"
|
|
432
|
+
*
|
|
433
|
+
* CliOutput.displayWidth("file") // => 4
|
|
434
|
+
* CliOutput.displayWidth("ファイル") // => 8
|
|
435
|
+
* CliOutput.displayWidth("é") // => 1
|
|
436
|
+
* CliOutput.displayWidth("1️⃣") // => 2
|
|
437
|
+
* CliOutput.displayWidth("\u001B[1mbold\u001B[0m") // => 4
|
|
438
|
+
* ```
|
|
439
|
+
*
|
|
440
|
+
* @stability unstable
|
|
441
|
+
* @category measuring
|
|
442
|
+
* @since 4.0.3
|
|
443
|
+
*/
|
|
444
|
+
export const displayWidth = (text: string): number => {
|
|
428
445
|
let length = 0
|
|
429
446
|
for (const { segment } of graphemeSegmenter.segment(stripAnsi(text))) {
|
|
430
447
|
length += graphemeWidth(segment)
|
|
@@ -437,7 +454,7 @@ const visualLength = (text: string): number => {
|
|
|
437
454
|
* @internal
|
|
438
455
|
*/
|
|
439
456
|
const pad = (s: string, width: number) => {
|
|
440
|
-
const actualLength =
|
|
457
|
+
const actualLength = displayWidth(s)
|
|
441
458
|
const padding = Math.max(0, width - actualLength)
|
|
442
459
|
return s + " ".repeat(padding)
|
|
443
460
|
}
|
|
@@ -456,9 +473,9 @@ interface Row {
|
|
|
456
473
|
* @internal
|
|
457
474
|
*/
|
|
458
475
|
const renderTable = (rows: ReadonlyArray<Row>, widthCap?: number) => {
|
|
459
|
-
const maxColumn = Math.max(...rows.map((r) =>
|
|
476
|
+
const maxColumn = Math.max(...rows.map((r) => displayWidth(r.left))) + 4
|
|
460
477
|
const col = widthCap === undefined ? maxColumn : Math.min(maxColumn, widthCap)
|
|
461
|
-
return rows.map(({ left, right }) => ` ${pad(left, Math.max(col,
|
|
478
|
+
return rows.map(({ left, right }) => ` ${pad(left, Math.max(col, displayWidth(left) + 1))}${right}`).join("\n")
|
|
462
479
|
}
|
|
463
480
|
|
|
464
481
|
const formatSubcommandName = (name: string, alias: string | undefined): string => alias ? `${name}, ${alias}` : name
|
package/src/cli/Command.ts
CHANGED
|
@@ -3104,14 +3104,15 @@ export const runWith = <const Name extends string, Input, E, R, ContextInput>(
|
|
|
3104
3104
|
if (!hasEntry) continue
|
|
3105
3105
|
const [, value] = yield* flag.flag.parse(emptyArgs)
|
|
3106
3106
|
if (flag === GlobalFlag.Wizard) {
|
|
3107
|
+
const { colors } = yield* Prompt.Theme
|
|
3107
3108
|
return yield* Effect.gen(function*() {
|
|
3108
|
-
yield* Console.log(Wizard.renderIntroduction(command.name, config.version, command.description))
|
|
3109
|
+
yield* Console.log(Wizard.renderIntroduction(command.name, config.version, command.description, colors))
|
|
3109
3110
|
const prefix = [
|
|
3110
3111
|
command.name,
|
|
3111
3112
|
...args.filter((arg) => arg !== "--wizard" && !arg.startsWith("--wizard="))
|
|
3112
3113
|
]
|
|
3113
3114
|
const wizardResult = yield* Wizard.run(command, { commandPath, prefix })
|
|
3114
|
-
yield* Console.log(Wizard.renderCompletion(wizardResult.displayArgs))
|
|
3115
|
+
yield* Console.log(Wizard.renderCompletion(wizardResult.displayArgs, colors))
|
|
3115
3116
|
const shouldRun = yield* Prompt.run(Prompt.Toggle({
|
|
3116
3117
|
message: "Run this command?",
|
|
3117
3118
|
initial: true,
|
|
@@ -3123,7 +3124,7 @@ export const runWith = <const Name extends string, Input, E, R, ContextInput>(
|
|
|
3123
3124
|
yield* runWith(command, { ...config, renderErrors: false })(wizardResult.args.slice(1))
|
|
3124
3125
|
}
|
|
3125
3126
|
}).pipe(
|
|
3126
|
-
Effect.catchTag("QuitError", () => Console.log(Wizard.renderQuit()))
|
|
3127
|
+
Effect.catchTag("QuitError", () => Console.log(Wizard.renderQuit(colors)))
|
|
3127
3128
|
)
|
|
3128
3129
|
}
|
|
3129
3130
|
yield* flag.run(value, handlerCtx)
|