effect 4.0.0-beta.4 → 4.0.0-beta.40
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/dist/Array.d.ts +213 -385
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +149 -102
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +46 -45
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +35 -38
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +39 -32
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +32 -29
- package/dist/BigInt.js.map +1 -1
- package/dist/Brand.d.ts +1 -1
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +1 -1
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +2 -2
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +6 -5
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +33 -2
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +19 -0
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +130 -35
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +96 -45
- package/dist/Channel.js.map +1 -1
- package/dist/Chunk.d.ts +112 -304
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +56 -88
- package/dist/Chunk.js.map +1 -1
- package/dist/Combiner.d.ts +280 -13
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +198 -7
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +169 -9
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +69 -11
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +1 -1
- package/dist/Cron.d.ts +11 -7
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +120 -63
- package/dist/Cron.js.map +1 -1
- package/dist/Data.d.ts +535 -366
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +132 -79
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +72 -253
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +15 -60
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +7 -5
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +7 -5
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +62 -32
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +108 -78
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +1224 -951
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +398 -338
- package/dist/Effect.js.map +1 -1
- package/dist/Encoding.d.ts +194 -0
- package/dist/Encoding.d.ts.map +1 -0
- package/dist/Encoding.js +352 -0
- package/dist/Encoding.js.map +1 -0
- package/dist/Equal.d.ts +276 -109
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +124 -48
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +60 -3
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +70 -13
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +374 -0
- package/dist/ErrorReporter.d.ts.map +1 -0
- package/dist/ErrorReporter.js +245 -0
- package/dist/ErrorReporter.js.map +1 -0
- package/dist/Exit.d.ts +24 -12
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +8 -4
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +5 -3
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +9 -8
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +8 -7
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +20 -19
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +6 -6
- package/dist/FiberMap.js.map +1 -1
- package/dist/FileSystem.d.ts +18 -17
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +17 -13
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +34 -38
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +15 -13
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +131 -47
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +229 -51
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +1 -9
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +2 -10
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +65 -65
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +60 -62
- package/dist/Graph.js.map +1 -1
- package/dist/HashMap.d.ts +26 -19
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +7 -5
- package/dist/HashMap.js.map +1 -1
- package/dist/Iterable.d.ts +50 -50
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +106 -34
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonSchema.d.ts +299 -10
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +323 -4
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +175 -0
- package/dist/Latch.d.ts.map +1 -0
- package/dist/Latch.js +130 -0
- package/dist/Latch.js.map +1 -0
- package/dist/Layer.d.ts +306 -129
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +92 -47
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +9 -8
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +3 -3
- package/dist/LayerMap.js.map +1 -1
- package/dist/LogLevel.d.ts +32 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +28 -100
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +29 -95
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +2 -3
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +2 -2
- package/dist/ManagedRuntime.js +2 -2
- package/dist/Metric.d.ts +4 -6
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +3 -5
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +7 -0
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +8 -0
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +7 -0
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +8 -0
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/Newtype.d.ts +291 -0
- package/dist/Newtype.d.ts.map +1 -0
- package/dist/Newtype.js +161 -0
- package/dist/Newtype.js.map +1 -0
- package/dist/Number.d.ts +74 -18
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +34 -15
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +947 -18
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +454 -5
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +25 -16
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +15 -9
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +6 -1
- package/dist/Order.d.ts.map +1 -1
- package/dist/Order.js +19 -14
- package/dist/Order.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +146 -15
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +174 -61
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Pipeable.d.ts +17 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +19 -1
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +10 -9
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +2 -2
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +6 -4
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +7 -5
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts +8 -6
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +18 -10
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +1 -1
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +9 -6
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +7 -5
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +35 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +46 -12
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +2 -2
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +1 -1
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +1 -1
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/Record.d.ts +63 -160
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +37 -56
- package/dist/Record.js.map +1 -1
- package/dist/Reducer.d.ts +166 -7
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +135 -1
- package/dist/Reducer.js.map +1 -1
- package/dist/References.d.ts +242 -226
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +240 -247
- package/dist/References.js.map +1 -1
- package/dist/Request.d.ts +1 -1
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +2 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +25 -45
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +10 -30
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +2 -1
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +1 -1
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +1 -2
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +66 -0
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +79 -6
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +174 -291
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +160 -134
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +34 -123
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +31 -123
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +2722 -247
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +1947 -224
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +7 -2
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +131 -25
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +5 -5
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +18 -18
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaParser.d.ts +44 -54
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +55 -2
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +46 -45
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +49 -24
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +107 -3
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +173 -13
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.d.ts +2 -2
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +307 -0
- package/dist/Semaphore.d.ts.map +1 -0
- package/dist/Semaphore.js +222 -0
- package/dist/Semaphore.js.map +1 -0
- package/dist/ServiceMap.d.ts +67 -31
- package/dist/ServiceMap.d.ts.map +1 -1
- package/dist/ServiceMap.js +39 -24
- package/dist/ServiceMap.js.map +1 -1
- package/dist/Sink.d.ts +18 -15
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +53 -6
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +16 -4
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +18 -0
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +284 -431
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +189 -88
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +114 -47
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +29 -47
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +23 -7
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +22 -0
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +3 -3
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +85 -117
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +2 -1
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +2 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Terminal.d.ts +2 -1
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +5 -4
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +2 -1
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +44 -31
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +13 -9
- package/dist/Trie.js.map +1 -1
- package/dist/TxChunk.d.ts +37 -37
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +3 -3
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +328 -0
- package/dist/TxDeferred.d.ts.map +1 -0
- package/dist/TxDeferred.js +197 -0
- package/dist/TxDeferred.js.map +1 -0
- package/dist/TxHashMap.d.ts +159 -140
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +51 -44
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +36 -36
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +16 -15
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +609 -0
- package/dist/TxPriorityQueue.d.ts.map +1 -0
- package/dist/TxPriorityQueue.js +416 -0
- package/dist/TxPriorityQueue.js.map +1 -0
- package/dist/TxPubSub.d.ts +585 -0
- package/dist/TxPubSub.d.ts.map +1 -0
- package/dist/TxPubSub.js +521 -0
- package/dist/TxPubSub.js.map +1 -0
- package/dist/TxQueue.d.ts +32 -32
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +26 -26
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +523 -0
- package/dist/TxReentrantLock.d.ts.map +1 -0
- package/dist/TxReentrantLock.js +504 -0
- package/dist/TxReentrantLock.js.map +1 -0
- package/dist/TxRef.d.ts +34 -34
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +21 -14
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +170 -10
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +23 -8
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +508 -0
- package/dist/TxSubscriptionRef.d.ts.map +1 -0
- package/dist/TxSubscriptionRef.js +293 -0
- package/dist/TxSubscriptionRef.js.map +1 -0
- package/dist/Types.d.ts +80 -23
- package/dist/Types.d.ts.map +1 -1
- package/dist/Utils.d.ts +137 -65
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +38 -66
- package/dist/Utils.js.map +1 -1
- package/dist/index.d.ts +804 -53
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +804 -53
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js +11 -3
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +77 -71
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +281 -201
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/hashMap.js +7 -5
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/option.js +6 -0
- package/dist/internal/option.js.map +1 -1
- package/dist/internal/random.d.ts +2 -0
- package/dist/internal/random.d.ts.map +1 -0
- package/dist/internal/random.js +13 -0
- package/dist/internal/random.js.map +1 -0
- package/dist/internal/rcRef.js +3 -2
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/references.d.ts +2 -0
- package/dist/internal/references.d.ts.map +1 -0
- package/dist/internal/references.js +51 -0
- package/dist/internal/references.js.map +1 -0
- package/dist/internal/request.js +2 -2
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schema/annotations.js +2 -0
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/representation.js +47 -106
- package/dist/internal/schema/representation.js.map +1 -1
- package/dist/internal/schema/schema.js +1 -0
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/schema/to-codec.js +7 -10
- package/dist/internal/schema/to-codec.js.map +1 -1
- package/dist/internal/trie.js +8 -7
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/TestClock.d.ts +8 -7
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +6 -4
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +266 -32
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +296 -23
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.d.ts +64 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +64 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +136 -54
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +28 -23
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +4 -0
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +7 -8
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +38 -44
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +130 -0
- package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -0
- package/dist/unstable/ai/EmbeddingModel.js +127 -0
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -0
- package/dist/unstable/ai/LanguageModel.d.ts +53 -45
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +265 -143
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +183 -88
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +57 -12
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +66 -13
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +193 -51
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +25 -7
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +22 -6
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +4 -0
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +20 -20
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Response.d.ts +26 -26
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +1 -1
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.d.ts +38 -0
- package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -0
- package/dist/unstable/ai/ResponseIdTracker.js +68 -0
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -0
- package/dist/unstable/ai/Tool.d.ts +34 -4
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +28 -10
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +1 -1
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +4 -11
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +22 -1
- package/dist/unstable/ai/index.d.ts.map +1 -1
- package/dist/unstable/ai/index.js +22 -1
- package/dist/unstable/ai/index.js.map +1 -1
- package/dist/unstable/ai/internal/codec-transformer.js +0 -5
- package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +2 -4
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +1 -3
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +27 -60
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +25 -57
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +3 -2
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +65 -10
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +371 -58
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +328 -67
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.d.ts +16 -0
- package/dist/unstable/cli/Completions.d.ts.map +1 -0
- package/dist/unstable/cli/Completions.js +23 -0
- package/dist/unstable/cli/Completions.js.map +1 -0
- package/dist/unstable/cli/Flag.d.ts +2 -2
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +1 -1
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
- package/dist/unstable/cli/GlobalFlag.js +118 -0
- package/dist/unstable/cli/GlobalFlag.js.map +1 -0
- package/dist/unstable/cli/HelpDoc.d.ts +81 -11
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/Param.d.ts +4 -4
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +7 -7
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +2 -2
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +1 -1
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.js +258 -84
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.d.ts +8 -0
- package/dist/unstable/cli/index.d.ts.map +1 -1
- package/dist/unstable/cli/index.js +8 -0
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +40 -14
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +72 -46
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js +16 -4
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
- package/dist/unstable/cli/internal/config.js +42 -0
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts +33 -0
- package/dist/unstable/cli/internal/help.d.ts.map +1 -0
- package/dist/unstable/cli/internal/help.js +125 -0
- package/dist/unstable/cli/internal/help.js.map +1 -0
- package/dist/unstable/cli/internal/parser.js +61 -43
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +3 -2
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +29 -26
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js +1 -1
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +10 -8
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +7 -7
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityAddress.js +1 -1
- package/dist/unstable/cluster/EntityAddress.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +4 -4
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +14 -13
- package/dist/unstable/cluster/Message.d.ts.map +1 -1
- package/dist/unstable/cluster/Message.js +3 -2
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +10 -10
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +14 -13
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +8 -7
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +4 -3
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runner.d.ts.map +1 -1
- package/dist/unstable/cluster/Runner.js +1 -1
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.js +1 -1
- package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +9 -8
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +2 -1
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +11 -9
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.js +3 -3
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +2 -2
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +28 -20
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +26 -25
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +24 -24
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +19 -18
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +14 -14
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js +2 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +2 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js +4 -3
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +40 -40
- package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js +9 -2
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +9 -9
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +4 -4
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +1 -1
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
- package/dist/unstable/eventlog/EventJournal.js +2 -2
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +3 -2
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
- package/dist/unstable/eventlog/SqlEventLogJournal.js +2 -2
- package/dist/unstable/eventlog/SqlEventLogJournal.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +52 -7
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +27 -6
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts.map +1 -1
- package/dist/unstable/http/Etag.js +5 -1
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +19 -2
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +40 -11
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +1 -1
- package/dist/unstable/http/HttpClient.d.ts +117 -15
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +191 -13
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +7 -7
- package/dist/unstable/http/HttpClientRequest.d.ts +43 -15
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +131 -21
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +2 -1
- package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientResponse.js +6 -1
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +7 -5
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +46 -54
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.d.ts +3 -2
- package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +4 -4
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +3 -3
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +24 -32
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +3 -2
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +2 -1
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +7 -7
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpServer.js +2 -2
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +22 -34
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +39 -45
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +15 -3
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +301 -7
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
- package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js +5 -5
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +50 -3
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +236 -1
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +69 -0
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -0
- package/dist/unstable/http/HttpStaticServer.js +353 -0
- package/dist/unstable/http/HttpStaticServer.js.map +1 -0
- package/dist/unstable/http/HttpTraceContext.d.ts +3 -2
- package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js +27 -15
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +3 -3
- package/dist/unstable/http/Url.d.ts +604 -0
- package/dist/unstable/http/Url.d.ts.map +1 -0
- package/dist/unstable/http/Url.js +256 -0
- package/dist/unstable/http/Url.js.map +1 -0
- package/dist/unstable/http/UrlParams.d.ts +19 -10
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +6 -7
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.d.ts +8 -0
- package/dist/unstable/http/index.d.ts.map +1 -1
- package/dist/unstable/http/index.js +8 -0
- package/dist/unstable/http/index.js.map +1 -1
- package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
- package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js +10 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
- package/dist/unstable/httpapi/HttpApi.d.ts +4 -4
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +40 -27
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +83 -7
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +78 -10
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +207 -101
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +49 -43
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +31 -14
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +125 -32
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +4 -3
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +46 -15
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +32 -3
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +5 -0
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +20 -2
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +34 -26
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +12 -12
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +3 -3
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +7 -4
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +7 -3
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +6 -6
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +2 -2
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistable.js +1 -1
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +2 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +12 -11
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +1 -1
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +2 -2
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +1 -1
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +5 -128
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +1 -65
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +21 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +73 -12
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +108 -25
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +17 -15
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +45 -15
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +54 -11
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +9 -9
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +47 -21
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +39 -0
- package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
- package/dist/unstable/reactivity/Hydration.js +76 -0
- package/dist/unstable/reactivity/Hydration.js.map +1 -0
- package/dist/unstable/reactivity/index.d.ts +4 -0
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +4 -0
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +5 -5
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +4 -3
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +5 -26
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +10 -17
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +3 -5
- package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +8 -8
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.js +17 -2
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +39 -11
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +6 -10
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +20 -19
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +3 -2
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +22 -1
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +15 -0
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +6 -6
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +6 -6
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +6 -5
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +12 -9
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts +3 -3
- package/dist/unstable/sql/Migrator.d.ts +1 -1
- package/dist/unstable/sql/Migrator.d.ts.map +1 -1
- package/dist/unstable/sql/Migrator.js +2 -2
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +1 -1
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +237 -17
- package/dist/unstable/sql/SqlError.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.js +260 -4
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +3 -3
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +17 -8
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +17 -6
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +17 -7
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/Statement.js +0 -1
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +2 -1
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +3 -3
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +3 -3
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +8 -8
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +5 -4
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +1 -1
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +17 -5
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +153 -12
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +2 -2
- package/src/Array.ts +304 -447
- package/src/BigDecimal.ts +63 -66
- package/src/BigInt.ts +49 -41
- package/src/Brand.ts +1 -1
- package/src/Cache.ts +9 -8
- package/src/Cause.ts +37 -2
- package/src/Channel.ts +582 -154
- package/src/Chunk.ts +149 -331
- package/src/Combiner.ts +280 -13
- package/src/Config.ts +195 -25
- package/src/Cron.ts +155 -63
- package/src/Data.ts +539 -376
- package/src/DateTime.ts +75 -256
- package/src/Deferred.ts +8 -6
- package/src/Duration.ts +122 -66
- package/src/Effect.ts +1483 -1157
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +278 -111
- package/src/Equivalence.ts +114 -52
- package/src/ErrorReporter.ts +458 -0
- package/src/Exit.ts +24 -12
- package/src/Fiber.ts +12 -3
- package/src/FiberHandle.ts +10 -9
- package/src/FiberMap.ts +22 -22
- package/src/FileSystem.ts +34 -31
- package/src/Filter.ts +52 -63
- package/src/Formatter.ts +253 -51
- package/src/Function.ts +2 -10
- package/src/Graph.ts +131 -117
- package/src/HashMap.ts +26 -19
- package/src/Iterable.ts +117 -63
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +194 -0
- package/src/Layer.ts +393 -159
- package/src/LayerMap.ts +11 -9
- package/src/LogLevel.ts +37 -0
- package/src/Logger.ts +33 -100
- package/src/ManagedRuntime.ts +2 -2
- package/src/Metric.ts +6 -8
- package/src/MutableHashMap.ts +9 -0
- package/src/MutableHashSet.ts +9 -0
- package/src/Newtype.ts +308 -0
- package/src/Number.ts +85 -26
- package/src/Optic.ts +948 -19
- package/src/Option.ts +34 -24
- package/src/Order.ts +39 -32
- package/src/PartitionedSemaphore.ts +288 -56
- package/src/Pipeable.ts +32 -1
- package/src/PlatformError.ts +5 -5
- package/src/Pool.ts +13 -11
- package/src/PubSub.ts +30 -20
- package/src/Pull.ts +1 -1
- package/src/Queue.ts +11 -9
- package/src/Random.ts +51 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- package/src/Record.ts +94 -199
- package/src/Reducer.ts +166 -7
- package/src/References.ts +283 -287
- package/src/Request.ts +3 -2
- package/src/RequestResolver.ts +29 -49
- package/src/Resource.ts +2 -1
- package/src/Result.ts +2 -4
- package/src/Runtime.ts +102 -6
- package/src/Schedule.ts +458 -449
- package/src/Scheduler.ts +49 -126
- package/src/Schema.ts +3298 -392
- package/src/SchemaAST.ts +172 -33
- package/src/SchemaGetter.ts +19 -21
- package/src/SchemaParser.ts +92 -27
- package/src/SchemaRepresentation.ts +51 -26
- package/src/SchemaTransformation.ts +198 -13
- package/src/ScopedCache.ts +3 -3
- package/src/Semaphore.ts +444 -0
- package/src/ServiceMap.ts +133 -71
- package/src/Sink.ts +83 -28
- package/src/Stdio.ts +27 -4
- package/src/Stream.ts +687 -617
- package/src/String.ts +122 -69
- package/src/Struct.ts +33 -7
- package/src/SubscriptionRef.ts +101 -120
- package/src/SynchronizedRef.ts +3 -2
- package/src/Terminal.ts +2 -1
- package/src/Tracer.ts +6 -5
- package/src/Trie.ts +44 -31
- package/src/TxChunk.ts +72 -53
- package/src/TxDeferred.ts +394 -0
- package/src/TxHashMap.ts +409 -343
- package/src/TxHashSet.ts +113 -118
- package/src/TxPriorityQueue.ts +766 -0
- package/src/TxPubSub.ts +789 -0
- package/src/TxQueue.ts +241 -251
- package/src/TxReentrantLock.ts +753 -0
- package/src/TxRef.ts +50 -38
- package/src/TxSemaphore.ts +217 -44
- package/src/TxSubscriptionRef.ts +639 -0
- package/src/Types.ts +73 -19
- package/src/Utils.ts +137 -111
- package/src/index.ts +814 -54
- package/src/internal/core.ts +12 -5
- package/src/internal/dateTime.ts +91 -96
- package/src/internal/effect.ts +841 -432
- package/src/internal/hashMap.ts +12 -10
- package/src/internal/option.ts +7 -0
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +4 -3
- package/src/internal/references.ts +72 -0
- package/src/internal/request.ts +2 -2
- package/src/internal/schema/annotations.ts +2 -0
- package/src/internal/schema/representation.ts +45 -94
- package/src/internal/schema/schema.ts +1 -0
- package/src/internal/schema/to-codec.ts +7 -17
- package/src/internal/trie.ts +21 -15
- package/src/testing/TestClock.ts +13 -11
- package/src/testing/TestSchema.ts +332 -35
- package/src/testing/index.ts +64 -1
- package/src/unstable/ai/AiError.ts +111 -54
- package/src/unstable/ai/AnthropicStructuredOutput.ts +4 -0
- package/src/unstable/ai/Chat.ts +62 -74
- package/src/unstable/ai/EmbeddingModel.ts +209 -0
- package/src/unstable/ai/LanguageModel.ts +544 -230
- package/src/unstable/ai/McpSchema.ts +73 -13
- package/src/unstable/ai/McpServer.ts +271 -61
- package/src/unstable/ai/Model.ts +40 -9
- package/src/unstable/ai/OpenAiStructuredOutput.ts +4 -0
- package/src/unstable/ai/Prompt.ts +37 -37
- package/src/unstable/ai/Response.ts +25 -25
- package/src/unstable/ai/ResponseIdTracker.ts +97 -0
- package/src/unstable/ai/Tool.ts +42 -16
- package/src/unstable/ai/Toolkit.ts +5 -14
- package/src/unstable/ai/index.ts +24 -1
- package/src/unstable/ai/internal/codec-transformer.ts +0 -7
- package/src/unstable/cli/Argument.ts +2 -4
- package/src/unstable/cli/CliError.ts +47 -59
- package/src/unstable/cli/CliOutput.ts +85 -13
- package/src/unstable/cli/Command.ts +801 -192
- package/src/unstable/cli/Completions.ts +36 -0
- package/src/unstable/cli/Flag.ts +2 -2
- package/src/unstable/cli/GlobalFlag.ts +242 -0
- package/src/unstable/cli/HelpDoc.ts +91 -11
- package/src/unstable/cli/Param.ts +15 -11
- package/src/unstable/cli/Primitive.ts +2 -2
- package/src/unstable/cli/Prompt.ts +262 -100
- package/src/unstable/cli/index.ts +10 -0
- package/src/unstable/cli/internal/command.ts +109 -63
- package/src/unstable/cli/internal/completions/CommandDescriptor.ts +10 -4
- package/src/unstable/cli/internal/config.ts +49 -0
- package/src/unstable/cli/internal/help.ts +171 -0
- package/src/unstable/cli/internal/parser.ts +71 -63
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +40 -34
- package/src/unstable/cluster/DeliverAt.ts +1 -1
- package/src/unstable/cluster/Entity.ts +24 -22
- package/src/unstable/cluster/EntityAddress.ts +1 -1
- package/src/unstable/cluster/EntityResource.ts +4 -4
- package/src/unstable/cluster/Envelope.ts +1 -1
- package/src/unstable/cluster/K8sHttpClient.ts +5 -5
- package/src/unstable/cluster/Message.ts +6 -5
- package/src/unstable/cluster/MessageStorage.ts +29 -30
- package/src/unstable/cluster/Reply.ts +7 -4
- package/src/unstable/cluster/Runner.ts +1 -1
- package/src/unstable/cluster/RunnerAddress.ts +1 -1
- package/src/unstable/cluster/RunnerServer.ts +10 -13
- package/src/unstable/cluster/Runners.ts +14 -12
- package/src/unstable/cluster/ShardId.ts +2 -2
- package/src/unstable/cluster/Sharding.ts +36 -27
- package/src/unstable/cluster/ShardingConfig.ts +36 -37
- package/src/unstable/cluster/SqlMessageStorage.ts +21 -18
- package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
- package/src/unstable/cluster/internal/entityManager.ts +36 -29
- package/src/unstable/cluster/internal/entityReaper.ts +2 -1
- package/src/unstable/cluster/internal/resourceRef.ts +2 -1
- package/src/unstable/devtools/DevToolsClient.ts +23 -18
- package/src/unstable/devtools/DevToolsSchema.ts +16 -3
- package/src/unstable/encoding/Ndjson.ts +17 -17
- package/src/unstable/encoding/Sse.ts +3 -5
- package/src/unstable/eventlog/EventJournal.ts +2 -2
- package/src/unstable/eventlog/EventLog.ts +3 -2
- package/src/unstable/eventlog/SqlEventLogJournal.ts +2 -2
- package/src/unstable/http/Cookies.ts +94 -11
- package/src/unstable/http/Etag.ts +5 -3
- package/src/unstable/http/Headers.ts +68 -18
- package/src/unstable/http/HttpClient.ts +376 -34
- package/src/unstable/http/HttpClientRequest.ts +151 -39
- package/src/unstable/http/HttpClientResponse.ts +12 -6
- package/src/unstable/http/HttpEffect.ts +54 -68
- package/src/unstable/http/HttpIncomingMessage.ts +3 -2
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/HttpMiddleware.ts +25 -39
- package/src/unstable/http/HttpPlatform.ts +3 -2
- package/src/unstable/http/HttpRouter.ts +9 -9
- package/src/unstable/http/HttpServer.ts +3 -9
- package/src/unstable/http/HttpServerError.ts +45 -47
- package/src/unstable/http/HttpServerRequest.ts +407 -16
- package/src/unstable/http/HttpServerRespondable.ts +6 -6
- package/src/unstable/http/HttpServerResponse.ts +345 -7
- package/src/unstable/http/HttpStaticServer.ts +456 -0
- package/src/unstable/http/HttpTraceContext.ts +31 -17
- package/src/unstable/http/Multipart.ts +2 -2
- package/src/unstable/http/Url.ts +650 -0
- package/src/unstable/http/UrlParams.ts +31 -19
- package/src/unstable/http/index.ts +10 -0
- package/src/unstable/http/internal/preResponseHandler.ts +15 -0
- package/src/unstable/httpapi/HttpApi.ts +6 -6
- package/src/unstable/httpapi/HttpApiBuilder.ts +106 -41
- package/src/unstable/httpapi/HttpApiClient.ts +180 -28
- package/src/unstable/httpapi/HttpApiEndpoint.ts +216 -104
- package/src/unstable/httpapi/HttpApiError.ts +108 -30
- package/src/unstable/httpapi/HttpApiGroup.ts +7 -6
- package/src/unstable/httpapi/HttpApiMiddleware.ts +83 -22
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- package/src/unstable/httpapi/HttpApiSchema.ts +20 -2
- package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
- package/src/unstable/httpapi/OpenApi.ts +43 -29
- package/src/unstable/observability/Otlp.ts +12 -12
- package/src/unstable/observability/OtlpExporter.ts +8 -5
- package/src/unstable/observability/OtlpLogger.ts +13 -9
- package/src/unstable/observability/OtlpMetrics.ts +4 -4
- package/src/unstable/observability/OtlpTracer.ts +12 -8
- package/src/unstable/persistence/KeyValueStore.ts +6 -6
- package/src/unstable/persistence/Persistable.ts +3 -3
- package/src/unstable/persistence/PersistedCache.ts +20 -9
- package/src/unstable/persistence/PersistedQueue.ts +25 -24
- package/src/unstable/persistence/Persistence.ts +3 -3
- package/src/unstable/persistence/RateLimiter.ts +4 -4
- package/src/unstable/process/ChildProcess.ts +6 -208
- package/src/unstable/process/ChildProcessSpawner.ts +75 -14
- package/src/unstable/reactivity/Atom.ts +212 -54
- package/src/unstable/reactivity/AtomHttpApi.ts +81 -41
- package/src/unstable/reactivity/AtomRegistry.ts +66 -12
- package/src/unstable/reactivity/AtomRpc.ts +51 -20
- package/src/unstable/reactivity/Hydration.ts +112 -0
- package/src/unstable/reactivity/index.ts +5 -0
- package/src/unstable/rpc/Rpc.ts +11 -12
- package/src/unstable/rpc/RpcClient.ts +22 -63
- package/src/unstable/rpc/RpcGroup.ts +7 -7
- package/src/unstable/rpc/RpcMiddleware.ts +15 -9
- package/src/unstable/rpc/RpcSchema.ts +23 -5
- package/src/unstable/rpc/RpcSerialization.ts +49 -11
- package/src/unstable/rpc/RpcServer.ts +31 -35
- package/src/unstable/rpc/Utils.ts +3 -2
- package/src/unstable/schema/Model.ts +31 -0
- package/src/unstable/schema/VariantSchema.ts +10 -10
- package/src/unstable/socket/Socket.ts +31 -27
- package/src/unstable/sql/Migrator.ts +7 -5
- package/src/unstable/sql/SqlClient.ts +6 -4
- package/src/unstable/sql/SqlError.ts +365 -11
- package/src/unstable/sql/SqlModel.ts +5 -5
- package/src/unstable/sql/SqlResolver.ts +17 -7
- package/src/unstable/sql/SqlSchema.ts +42 -26
- package/src/unstable/sql/Statement.ts +0 -1
- package/src/unstable/workers/Worker.ts +2 -1
- package/src/unstable/workflow/DurableClock.ts +8 -8
- package/src/unstable/workflow/DurableDeferred.ts +8 -8
- package/src/unstable/workflow/Workflow.ts +7 -3
- package/src/unstable/workflow/WorkflowEngine.ts +211 -19
- package/dist/NullOr.d.ts +0 -149
- package/dist/NullOr.d.ts.map +0 -1
- package/dist/NullOr.js +0 -152
- package/dist/NullOr.js.map +0 -1
- package/dist/encoding/Base64.d.ts +0 -67
- package/dist/encoding/Base64.d.ts.map +0 -1
- package/dist/encoding/Base64.js +0 -146
- package/dist/encoding/Base64.js.map +0 -1
- package/dist/encoding/Base64Url.d.ts +0 -60
- package/dist/encoding/Base64Url.d.ts.map +0 -1
- package/dist/encoding/Base64Url.js +0 -89
- package/dist/encoding/Base64Url.js.map +0 -1
- package/dist/encoding/EncodingError.d.ts +0 -31
- package/dist/encoding/EncodingError.d.ts.map +0 -1
- package/dist/encoding/EncodingError.js +0 -22
- package/dist/encoding/EncodingError.js.map +0 -1
- package/dist/encoding/Hex.d.ts +0 -61
- package/dist/encoding/Hex.d.ts.map +0 -1
- package/dist/encoding/Hex.js +0 -115
- package/dist/encoding/Hex.js.map +0 -1
- package/dist/encoding/index.d.ts +0 -26
- package/dist/encoding/index.d.ts.map +0 -1
- package/dist/encoding/index.js +0 -27
- package/dist/encoding/index.js.map +0 -1
- package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
- package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
- package/dist/unstable/cli/internal/builtInFlags.js +0 -44
- package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
- package/dist/unstable/cli/internal/completions/Completions.d.ts +0 -2
- package/dist/unstable/cli/internal/completions/Completions.d.ts.map +0 -1
- package/dist/unstable/cli/internal/completions/Completions.js +0 -23
- package/dist/unstable/cli/internal/completions/Completions.js.map +0 -1
- package/src/NullOr.ts +0 -204
- package/src/encoding/Base64.ts +0 -366
- package/src/encoding/Base64Url.ts +0 -104
- package/src/encoding/EncodingError.ts +0 -35
- package/src/encoding/Hex.ts +0 -390
- package/src/encoding/index.ts +0 -31
- package/src/unstable/cli/internal/builtInFlags.ts +0 -78
- package/src/unstable/cli/internal/completions/Completions.ts +0 -31
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
import type * as Cause from "../../Cause.ts"
|
|
52
52
|
import * as Effect from "../../Effect.ts"
|
|
53
53
|
import * as FiberSet from "../../FiberSet.ts"
|
|
54
|
-
import { constFalse } from "../../Function.ts"
|
|
54
|
+
import { constFalse, identity, pipe } from "../../Function.ts"
|
|
55
55
|
import type * as JsonSchema from "../../JsonSchema.ts"
|
|
56
56
|
import * as Option from "../../Option.ts"
|
|
57
57
|
import * as Predicate from "../../Predicate.ts"
|
|
@@ -69,6 +69,7 @@ import { defaultIdGenerator, IdGenerator } from "./IdGenerator.ts"
|
|
|
69
69
|
import * as InternalCodecTransformer from "./internal/codec-transformer.ts"
|
|
70
70
|
import * as Prompt from "./Prompt.ts"
|
|
71
71
|
import * as Response from "./Response.ts"
|
|
72
|
+
import * as ResponseIdTracker from "./ResponseIdTracker.ts"
|
|
72
73
|
import type { SpanTransformer } from "./Telemetry.ts"
|
|
73
74
|
import { CurrentSpanTransformer } from "./Telemetry.ts"
|
|
74
75
|
import type * as Tool from "./Tool.ts"
|
|
@@ -135,7 +136,7 @@ export interface Service {
|
|
|
135
136
|
*/
|
|
136
137
|
readonly generateObject: <
|
|
137
138
|
ObjectEncoded extends Record<string, any>,
|
|
138
|
-
StructuredOutputSchema extends Schema.
|
|
139
|
+
StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
|
|
139
140
|
Options extends NoExcessProperties<
|
|
140
141
|
GenerateObjectOptions<any, StructuredOutputSchema>,
|
|
141
142
|
Options
|
|
@@ -180,22 +181,6 @@ export type CodecTransformer = <T, E, RD, RE>(schema: Schema.Codec<T, E, RD, RE>
|
|
|
180
181
|
readonly jsonSchema: JsonSchema.JsonSchema
|
|
181
182
|
}
|
|
182
183
|
|
|
183
|
-
/**
|
|
184
|
-
* A `ServiceMap.Reference` that holds the current `CodecTransformer` used by
|
|
185
|
-
* `LanguageModel.generateObject` to adapt structured output schemas for the
|
|
186
|
-
* active provider.
|
|
187
|
-
*
|
|
188
|
-
* By default, this is the identity function (no transformation). Provider
|
|
189
|
-
* packages (e.g. `@effect/ai-anthropic`) override this reference with a
|
|
190
|
-
* provider-specific transformer so that schemas are automatically rewritten
|
|
191
|
-
* before being sent to the model as well as before decoding the generated value.
|
|
192
|
-
*
|
|
193
|
-
* @since 4.0.0
|
|
194
|
-
* @category services
|
|
195
|
-
*/
|
|
196
|
-
export const CurrentCodecTransformer: ServiceMap.Reference<CodecTransformer> =
|
|
197
|
-
InternalCodecTransformer.CurrentCodecTransformer
|
|
198
|
-
|
|
199
184
|
/**
|
|
200
185
|
* The default codec transformer that passes schemas through without
|
|
201
186
|
* provider-specific rewrites.
|
|
@@ -221,15 +206,7 @@ export interface GenerateTextOptions<Tools extends Record<string, Tool.Any>> {
|
|
|
221
206
|
* A toolkit containing both the tools and the tool call handler to use to
|
|
222
207
|
* augment text generation.
|
|
223
208
|
*/
|
|
224
|
-
readonly toolkit?:
|
|
225
|
-
| Toolkit.WithHandler<Tools>
|
|
226
|
-
| Effect.Yieldable<
|
|
227
|
-
Toolkit.Toolkit<Tools>,
|
|
228
|
-
Toolkit.WithHandler<Tools>,
|
|
229
|
-
never,
|
|
230
|
-
any
|
|
231
|
-
>
|
|
232
|
-
| undefined
|
|
209
|
+
readonly toolkit?: ToolkitOption<Tools> | undefined
|
|
233
210
|
|
|
234
211
|
/**
|
|
235
212
|
* The tool choice mode for the language model.
|
|
@@ -483,6 +460,89 @@ export class GenerateObjectResponse<
|
|
|
483
460
|
// Utility Types
|
|
484
461
|
// =============================================================================
|
|
485
462
|
|
|
463
|
+
/**
|
|
464
|
+
* The supported toolkit option shapes for language model operations.
|
|
465
|
+
*
|
|
466
|
+
* @since 4.0.0
|
|
467
|
+
* @category utility types
|
|
468
|
+
*/
|
|
469
|
+
export type ToolkitOption<
|
|
470
|
+
Tools extends Record<string, Tool.Any>,
|
|
471
|
+
E = never,
|
|
472
|
+
R = any
|
|
473
|
+
> = Tools extends any ? (
|
|
474
|
+
| Toolkit.WithHandler<Tools>
|
|
475
|
+
| Effect.Yieldable<
|
|
476
|
+
Toolkit.Toolkit<Tools>,
|
|
477
|
+
Toolkit.WithHandler<Tools>,
|
|
478
|
+
E,
|
|
479
|
+
R
|
|
480
|
+
>
|
|
481
|
+
)
|
|
482
|
+
: never
|
|
483
|
+
|
|
484
|
+
type ExtractToolsFromToolkitOption<ToolkitValue> = ToolkitValue extends Toolkit.WithHandler<infer Tools> ? Tools
|
|
485
|
+
: ToolkitValue extends Effect.Yieldable<
|
|
486
|
+
Toolkit.Toolkit<infer Tools>,
|
|
487
|
+
Toolkit.WithHandler<infer _Tools>,
|
|
488
|
+
infer _E,
|
|
489
|
+
infer _R
|
|
490
|
+
> ? Tools
|
|
491
|
+
: never
|
|
492
|
+
|
|
493
|
+
/**
|
|
494
|
+
* Utility type that extracts the toolset from LanguageModel options.
|
|
495
|
+
*
|
|
496
|
+
* @since 4.0.0
|
|
497
|
+
* @category utility types
|
|
498
|
+
*/
|
|
499
|
+
export type ExtractTools<Options> = Options extends {
|
|
500
|
+
readonly toolkit: infer ToolkitValue
|
|
501
|
+
} ? ExtractToolsFromToolkitOption<Exclude<ToolkitValue, undefined>>
|
|
502
|
+
: {}
|
|
503
|
+
|
|
504
|
+
type ExtractErrorFromToolkitOption<ToolkitValue, DisableToolCallResolution extends boolean> = ToolkitValue extends
|
|
505
|
+
Toolkit.WithHandler<infer Tools> ?
|
|
506
|
+
| AiError.AiError
|
|
507
|
+
| (DisableToolCallResolution extends true ? never : Tool.HandlerError<Tools[keyof Tools]>)
|
|
508
|
+
: ToolkitValue extends Effect.Yieldable<
|
|
509
|
+
Toolkit.Toolkit<infer Tools>,
|
|
510
|
+
Toolkit.WithHandler<infer _Tools>,
|
|
511
|
+
infer E,
|
|
512
|
+
infer _R
|
|
513
|
+
> ? AiError.AiError | E | (DisableToolCallResolution extends true ? never : Tool.HandlerError<Tools[keyof Tools]>)
|
|
514
|
+
: AiError.AiError
|
|
515
|
+
|
|
516
|
+
type ExtractServicesFromToolkitOption<ToolkitValue> = ToolkitValue extends Toolkit.WithHandler<infer Tools> ?
|
|
517
|
+
| Tool.HandlerServices<Tools[keyof Tools]>
|
|
518
|
+
| Tool.ResultDecodingServices<Tools[keyof Tools]>
|
|
519
|
+
: ToolkitValue extends Effect.Yieldable<
|
|
520
|
+
Toolkit.Toolkit<infer Tools>,
|
|
521
|
+
Toolkit.WithHandler<infer _Tools>,
|
|
522
|
+
infer _E,
|
|
523
|
+
infer R
|
|
524
|
+
> ?
|
|
525
|
+
| Tool.HandlerServices<Tools[keyof Tools]>
|
|
526
|
+
| Tool.ResultDecodingServices<Tools[keyof Tools]>
|
|
527
|
+
| R
|
|
528
|
+
: never
|
|
529
|
+
|
|
530
|
+
type ExtractToolkitResolutionError<ToolkitValue> = ToolkitValue extends Effect.Yieldable<
|
|
531
|
+
Toolkit.Toolkit<infer _Tools>,
|
|
532
|
+
Toolkit.WithHandler<infer _Tools>,
|
|
533
|
+
infer E,
|
|
534
|
+
infer _R
|
|
535
|
+
> ? E
|
|
536
|
+
: never
|
|
537
|
+
|
|
538
|
+
type ExtractToolkitResolutionServices<ToolkitValue> = ToolkitValue extends Effect.Yieldable<
|
|
539
|
+
Toolkit.Toolkit<infer _Tools>,
|
|
540
|
+
Toolkit.WithHandler<infer _Tools>,
|
|
541
|
+
infer _E,
|
|
542
|
+
infer R
|
|
543
|
+
> ? R
|
|
544
|
+
: never
|
|
545
|
+
|
|
486
546
|
/**
|
|
487
547
|
* Utility type that extracts the error type from LanguageModel options.
|
|
488
548
|
*
|
|
@@ -493,29 +553,15 @@ export class GenerateObjectResponse<
|
|
|
493
553
|
* @category utility types
|
|
494
554
|
*/
|
|
495
555
|
export type ExtractError<Options> = Options extends {
|
|
496
|
-
readonly toolkit: Toolkit.WithHandler<infer _Tools>
|
|
497
556
|
readonly disableToolCallResolution: true
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
readonly toolkit: Effect.Yieldable<
|
|
501
|
-
Toolkit.Toolkit<infer _Tools>,
|
|
502
|
-
Toolkit.WithHandler<infer _Tools>,
|
|
503
|
-
infer _E,
|
|
504
|
-
infer _R
|
|
505
|
-
>
|
|
506
|
-
readonly disableToolCallResolution: true
|
|
507
|
-
} ? AiError.AiError | _E
|
|
557
|
+
readonly toolkit: infer ToolkitValue
|
|
558
|
+
} ? ExtractErrorFromToolkitOption<Exclude<ToolkitValue, undefined>, true>
|
|
508
559
|
: Options extends {
|
|
509
|
-
readonly toolkit:
|
|
510
|
-
} ?
|
|
560
|
+
readonly toolkit: infer ToolkitValue
|
|
561
|
+
} ? ExtractErrorFromToolkitOption<Exclude<ToolkitValue, undefined>, false>
|
|
511
562
|
: Options extends {
|
|
512
|
-
readonly
|
|
513
|
-
|
|
514
|
-
Toolkit.WithHandler<infer _Tools>,
|
|
515
|
-
infer _E,
|
|
516
|
-
infer _R
|
|
517
|
-
>
|
|
518
|
-
} ? AiError.AiError | Tool.HandlerError<_Tools[keyof _Tools]> | _E
|
|
563
|
+
readonly disableToolCallResolution: true
|
|
564
|
+
} ? AiError.AiError
|
|
519
565
|
: AiError.AiError
|
|
520
566
|
|
|
521
567
|
/**
|
|
@@ -527,27 +573,11 @@ export type ExtractError<Options> = Options extends {
|
|
|
527
573
|
* @category utility types
|
|
528
574
|
*/
|
|
529
575
|
export type ExtractServices<Options> = Options extends {
|
|
530
|
-
readonly
|
|
531
|
-
}
|
|
532
|
-
// Required for tool call execution
|
|
533
|
-
?
|
|
534
|
-
| Tool.ResultEncodingServices<_Tools[keyof _Tools]>
|
|
535
|
-
// Required for decoding large language model responses
|
|
536
|
-
| Tool.ResultDecodingServices<_Tools[keyof _Tools]>
|
|
576
|
+
readonly disableToolCallResolution: true
|
|
577
|
+
} ? never
|
|
537
578
|
: Options extends {
|
|
538
|
-
readonly toolkit:
|
|
539
|
-
|
|
540
|
-
Toolkit.WithHandler<infer _Tools>,
|
|
541
|
-
infer _E,
|
|
542
|
-
infer _R
|
|
543
|
-
>
|
|
544
|
-
}
|
|
545
|
-
// Required for tool call execution
|
|
546
|
-
?
|
|
547
|
-
| Tool.ResultEncodingServices<_Tools[keyof _Tools]>
|
|
548
|
-
// Required for decoding large language model responses
|
|
549
|
-
| Tool.ResultDecodingServices<_Tools[keyof _Tools]>
|
|
550
|
-
| _R
|
|
579
|
+
readonly toolkit: infer Toolkit
|
|
580
|
+
} ? ExtractServicesFromToolkitOption<Exclude<Toolkit, undefined>>
|
|
551
581
|
: never
|
|
552
582
|
|
|
553
583
|
// =============================================================================
|
|
@@ -619,15 +649,28 @@ export interface ProviderOptions {
|
|
|
619
649
|
* The span to use to trace interactions with the large language model.
|
|
620
650
|
*/
|
|
621
651
|
readonly span: Span
|
|
652
|
+
|
|
653
|
+
/**
|
|
654
|
+
* The previous response identifier for incremental provider calls.
|
|
655
|
+
*/
|
|
656
|
+
readonly previousResponseId: string | undefined
|
|
657
|
+
|
|
658
|
+
/**
|
|
659
|
+
* The prompt reduced to messages not yet seen by the provider.
|
|
660
|
+
*/
|
|
661
|
+
readonly incrementalPrompt: Prompt.Prompt | undefined
|
|
622
662
|
}
|
|
623
663
|
|
|
624
664
|
/**
|
|
625
|
-
*
|
|
665
|
+
* Creates a LanguageModel service from provider-specific implementations.
|
|
666
|
+
*
|
|
667
|
+
* This constructor takes provider-specific implementations for text generation
|
|
668
|
+
* and streaming text generation and returns a LanguageModel service.
|
|
626
669
|
*
|
|
627
670
|
* @since 4.0.0
|
|
628
|
-
* @category
|
|
671
|
+
* @category constructors
|
|
629
672
|
*/
|
|
630
|
-
export
|
|
673
|
+
export const make: (params: {
|
|
631
674
|
/**
|
|
632
675
|
* A method which requests text generation from the large language model
|
|
633
676
|
* provider.
|
|
@@ -648,19 +691,14 @@ export interface ConstructorParams {
|
|
|
648
691
|
readonly streamText: (
|
|
649
692
|
options: ProviderOptions
|
|
650
693
|
) => Stream.Stream<Response.StreamPartEncoded, AiError.AiError, IdGenerator>
|
|
651
|
-
}
|
|
652
694
|
|
|
653
|
-
/**
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
*
|
|
659
|
-
|
|
660
|
-
* @category constructors
|
|
661
|
-
*/
|
|
662
|
-
export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effect.fnUntraced(function*(params) {
|
|
663
|
-
const codecTransformer = yield* InternalCodecTransformer.CurrentCodecTransformer
|
|
695
|
+
/**
|
|
696
|
+
* A function that transforms a `Schema.Codec` into a provider-compatible form
|
|
697
|
+
* for structured output generation.
|
|
698
|
+
*/
|
|
699
|
+
readonly codecTransformer?: CodecTransformer | undefined
|
|
700
|
+
}) => Effect.Effect<Service> = Effect.fnUntraced(function*(params) {
|
|
701
|
+
const codecTransformer = params.codecTransformer ?? defaultCodecTransformer
|
|
664
702
|
|
|
665
703
|
const parentSpanTransformer = yield* Effect.serviceOption(
|
|
666
704
|
CurrentSpanTransformer
|
|
@@ -700,7 +738,9 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
700
738
|
tools: [],
|
|
701
739
|
toolChoice: "none",
|
|
702
740
|
responseFormat: { type: "text" },
|
|
703
|
-
span
|
|
741
|
+
span,
|
|
742
|
+
previousResponseId: undefined,
|
|
743
|
+
incrementalPrompt: undefined
|
|
704
744
|
}
|
|
705
745
|
const content = yield* generateContent(options, providerOptions)
|
|
706
746
|
|
|
@@ -721,14 +761,13 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
721
761
|
})
|
|
722
762
|
)),
|
|
723
763
|
(effect, span) => Effect.withParentSpan(effect, span, { captureStackTrace: false }),
|
|
724
|
-
Effect.provideService(IdGenerator, idGenerator)
|
|
725
|
-
Effect.provideService(InternalCodecTransformer.CurrentCodecTransformer, codecTransformer)
|
|
764
|
+
Effect.provideService(IdGenerator, idGenerator)
|
|
726
765
|
)
|
|
727
766
|
) as any
|
|
728
767
|
|
|
729
768
|
const generateObject = <
|
|
730
769
|
ObjectEncoded extends Record<string, any>,
|
|
731
|
-
StructuredOutputSchema extends Schema.
|
|
770
|
+
StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
|
|
732
771
|
Options extends NoExcessProperties<
|
|
733
772
|
GenerateObjectOptions<any, StructuredOutputSchema>,
|
|
734
773
|
Options
|
|
@@ -764,7 +803,9 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
764
803
|
objectName,
|
|
765
804
|
schema: options.schema
|
|
766
805
|
},
|
|
767
|
-
span
|
|
806
|
+
span,
|
|
807
|
+
previousResponseId: undefined,
|
|
808
|
+
incrementalPrompt: undefined
|
|
768
809
|
}
|
|
769
810
|
|
|
770
811
|
const content = yield* generateContent(options, providerOptions)
|
|
@@ -800,8 +841,7 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
800
841
|
})
|
|
801
842
|
)),
|
|
802
843
|
(effect, span) => Effect.withParentSpan(effect, span, { captureStackTrace: false }),
|
|
803
|
-
Effect.provideService(IdGenerator, idGenerator)
|
|
804
|
-
Effect.provideService(InternalCodecTransformer.CurrentCodecTransformer, codecTransformer)
|
|
844
|
+
Effect.provideService(IdGenerator, idGenerator)
|
|
805
845
|
)
|
|
806
846
|
) as any
|
|
807
847
|
}
|
|
@@ -832,7 +872,9 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
832
872
|
tools: [],
|
|
833
873
|
toolChoice: "none",
|
|
834
874
|
responseFormat: { type: "text" },
|
|
835
|
-
span
|
|
875
|
+
span,
|
|
876
|
+
previousResponseId: undefined,
|
|
877
|
+
incrementalPrompt: undefined
|
|
836
878
|
}
|
|
837
879
|
|
|
838
880
|
// Resolve the content stream for the request
|
|
@@ -872,8 +914,7 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
872
914
|
})
|
|
873
915
|
: error
|
|
874
916
|
),
|
|
875
|
-
Stream.provideService(IdGenerator, idGenerator)
|
|
876
|
-
Stream.provideService(InternalCodecTransformer.CurrentCodecTransformer, codecTransformer)
|
|
917
|
+
Stream.provideService(IdGenerator, idGenerator)
|
|
877
918
|
) as any
|
|
878
919
|
|
|
879
920
|
const generateContent: <
|
|
@@ -893,8 +934,27 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
893
934
|
options: Options & GenerateTextOptions<Tools>,
|
|
894
935
|
providerOptions: Mutable<ProviderOptions>
|
|
895
936
|
) {
|
|
937
|
+
const tracker = Option.getOrUndefined(yield* Effect.serviceOption(ResponseIdTracker.ResponseIdTracker))
|
|
896
938
|
const toolChoice = options.toolChoice ?? "auto"
|
|
897
939
|
|
|
940
|
+
const generateWithNonIncrementalFallback = () => {
|
|
941
|
+
const requestOptions: ProviderOptions = {
|
|
942
|
+
...providerOptions
|
|
943
|
+
}
|
|
944
|
+
const fallbackPrompt = requestOptions.prompt
|
|
945
|
+
const fallbackOptions: ProviderOptions = {
|
|
946
|
+
...requestOptions,
|
|
947
|
+
prompt: fallbackPrompt,
|
|
948
|
+
incrementalPrompt: undefined,
|
|
949
|
+
previousResponseId: undefined
|
|
950
|
+
}
|
|
951
|
+
return requestOptions.incrementalPrompt
|
|
952
|
+
? params.generateText(requestOptions).pipe(
|
|
953
|
+
Effect.catchReason("AiError", "InvalidRequestError", (_) => params.generateText(fallbackOptions))
|
|
954
|
+
)
|
|
955
|
+
: params.generateText(requestOptions)
|
|
956
|
+
}
|
|
957
|
+
|
|
898
958
|
// Check for pending approvals that need resolution
|
|
899
959
|
const { approved, denied } = collectToolApprovals(
|
|
900
960
|
providerOptions.prompt.content,
|
|
@@ -916,11 +976,24 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
916
976
|
})
|
|
917
977
|
})
|
|
918
978
|
}
|
|
979
|
+
if (tracker) {
|
|
980
|
+
const prepared = tracker.prepareUnsafe(providerOptions.prompt)
|
|
981
|
+
if (Option.isSome(prepared)) {
|
|
982
|
+
providerOptions.previousResponseId = prepared.value.previousResponseId
|
|
983
|
+
providerOptions.incrementalPrompt = prepared.value.prompt
|
|
984
|
+
}
|
|
985
|
+
}
|
|
919
986
|
const ResponseSchema = Schema.mutable(
|
|
920
987
|
Schema.Array(Response.Part(Toolkit.empty))
|
|
921
988
|
)
|
|
922
|
-
const rawContent = yield*
|
|
989
|
+
const rawContent = yield* generateWithNonIncrementalFallback()
|
|
923
990
|
const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
|
|
991
|
+
if (tracker) {
|
|
992
|
+
const responseMetadata = content.find((part) => part.type === "response-metadata")
|
|
993
|
+
if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
|
|
994
|
+
tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
|
|
995
|
+
}
|
|
996
|
+
}
|
|
924
997
|
return content as Array<Response.Part<Tools>>
|
|
925
998
|
}
|
|
926
999
|
|
|
@@ -941,17 +1014,29 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
941
1014
|
})
|
|
942
1015
|
})
|
|
943
1016
|
}
|
|
1017
|
+
if (tracker) {
|
|
1018
|
+
const prepared = tracker.prepareUnsafe(providerOptions.prompt)
|
|
1019
|
+
if (Option.isSome(prepared)) {
|
|
1020
|
+
providerOptions.previousResponseId = prepared.value.previousResponseId
|
|
1021
|
+
providerOptions.incrementalPrompt = prepared.value.prompt
|
|
1022
|
+
}
|
|
1023
|
+
}
|
|
944
1024
|
const ResponseSchema = Schema.mutable(
|
|
945
1025
|
Schema.Array(Response.Part(Toolkit.empty))
|
|
946
1026
|
)
|
|
947
|
-
const rawContent = yield*
|
|
1027
|
+
const rawContent = yield* generateWithNonIncrementalFallback()
|
|
948
1028
|
const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
|
|
1029
|
+
if (tracker) {
|
|
1030
|
+
const responseMetadata = content.find((part) => part.type === "response-metadata")
|
|
1031
|
+
if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
|
|
1032
|
+
tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
949
1035
|
return content as Array<Response.Part<Tools>>
|
|
950
1036
|
}
|
|
951
1037
|
|
|
952
|
-
// Pre-resolve tool approvals before calling the LLM
|
|
1038
|
+
// Pre-resolve pending tool approvals before calling the LLM
|
|
953
1039
|
if (hasPendingApprovals) {
|
|
954
|
-
// Validate all approved tools exist in the toolkit
|
|
955
1040
|
for (const approval of approved) {
|
|
956
1041
|
if (approval.toolCall && !toolkit.tools[approval.toolCall.name]) {
|
|
957
1042
|
return yield* AiError.make({
|
|
@@ -965,7 +1050,6 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
965
1050
|
}
|
|
966
1051
|
}
|
|
967
1052
|
|
|
968
|
-
// Execute approved tools and create denial results
|
|
969
1053
|
const approvedResults = yield* executeApprovedToolCalls(
|
|
970
1054
|
approved,
|
|
971
1055
|
toolkit,
|
|
@@ -974,24 +1058,43 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
974
1058
|
const deniedResults = createDenialResults(denied)
|
|
975
1059
|
const preResolvedResults = [...approvedResults, ...deniedResults]
|
|
976
1060
|
|
|
977
|
-
// Add pre-resolved results to the prompt
|
|
978
1061
|
if (preResolvedResults.length > 0) {
|
|
979
|
-
const toolMessage = Prompt.makeMessage("tool", {
|
|
980
|
-
content: preResolvedResults
|
|
981
|
-
})
|
|
982
1062
|
providerOptions.prompt = Prompt.fromMessages([
|
|
983
1063
|
...providerOptions.prompt.content,
|
|
984
|
-
|
|
1064
|
+
Prompt.makeMessage("tool", { content: preResolvedResults })
|
|
985
1065
|
])
|
|
986
1066
|
}
|
|
987
1067
|
}
|
|
988
1068
|
|
|
1069
|
+
// Strip all resolved approval artifacts (both current and from previous
|
|
1070
|
+
// rounds) in a single pass before sending to the provider.
|
|
1071
|
+
{
|
|
1072
|
+
const { approved: allResolved, denied: allDenied } = collectToolApprovals(
|
|
1073
|
+
providerOptions.prompt.content
|
|
1074
|
+
)
|
|
1075
|
+
if (allResolved.length > 0 || allDenied.length > 0) {
|
|
1076
|
+
providerOptions.prompt = stripResolvedApprovals(
|
|
1077
|
+
providerOptions.prompt,
|
|
1078
|
+
allResolved,
|
|
1079
|
+
allDenied
|
|
1080
|
+
)
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
|
|
989
1084
|
const tools = typeof toolChoice === "object" && "oneOf" in toolChoice
|
|
990
1085
|
? Object.values(toolkit.tools).filter((tool) => toolChoice.oneOf.includes(tool.name))
|
|
991
1086
|
: Object.values(toolkit.tools)
|
|
992
1087
|
providerOptions.tools = tools
|
|
993
1088
|
providerOptions.toolChoice = toolChoice
|
|
994
1089
|
|
|
1090
|
+
if (tracker) {
|
|
1091
|
+
const prepared = tracker.prepareUnsafe(providerOptions.prompt)
|
|
1092
|
+
if (Option.isSome(prepared)) {
|
|
1093
|
+
providerOptions.previousResponseId = prepared.value.previousResponseId
|
|
1094
|
+
providerOptions.incrementalPrompt = prepared.value.prompt
|
|
1095
|
+
}
|
|
1096
|
+
}
|
|
1097
|
+
|
|
995
1098
|
// Construct the response schema with the tools from the toolkit
|
|
996
1099
|
const ResponseSchema = Schema.mutable(
|
|
997
1100
|
Schema.Array(Response.Part(toolkit))
|
|
@@ -1000,12 +1103,18 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1000
1103
|
// If tool call resolution is disabled, return the response without
|
|
1001
1104
|
// resolving the tool calls that were generated
|
|
1002
1105
|
if (options.disableToolCallResolution === true) {
|
|
1003
|
-
const rawContent = yield*
|
|
1106
|
+
const rawContent = yield* generateWithNonIncrementalFallback()
|
|
1004
1107
|
const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
|
|
1108
|
+
if (tracker) {
|
|
1109
|
+
const responseMetadata = content.find((part) => part.type === "response-metadata")
|
|
1110
|
+
if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
|
|
1111
|
+
tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
|
|
1112
|
+
}
|
|
1113
|
+
}
|
|
1005
1114
|
return content as Array<Response.Part<Tools>>
|
|
1006
1115
|
}
|
|
1007
1116
|
|
|
1008
|
-
const rawContent = yield*
|
|
1117
|
+
const rawContent = yield* generateWithNonIncrementalFallback()
|
|
1009
1118
|
|
|
1010
1119
|
// Resolve the generated tool calls
|
|
1011
1120
|
const toolResults = yield* resolveToolCalls(
|
|
@@ -1024,6 +1133,13 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1024
1133
|
|
|
1025
1134
|
const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
|
|
1026
1135
|
|
|
1136
|
+
if (tracker) {
|
|
1137
|
+
const responseMetadata = content.find((part) => part.type === "response-metadata")
|
|
1138
|
+
if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
|
|
1139
|
+
tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
|
|
1140
|
+
}
|
|
1141
|
+
}
|
|
1142
|
+
|
|
1027
1143
|
// Return the content merged with the tool call results
|
|
1028
1144
|
return [...content, ...toolResults] as Array<Response.Part<Tools>>
|
|
1029
1145
|
})
|
|
@@ -1040,21 +1156,11 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1040
1156
|
AiError.AiError | Schema.SchemaError,
|
|
1041
1157
|
IdGenerator
|
|
1042
1158
|
>,
|
|
1043
|
-
Options extends {
|
|
1044
|
-
|
|
1045
|
-
Toolkit.WithHandler<Tools>,
|
|
1046
|
-
infer _E,
|
|
1047
|
-
infer _R
|
|
1048
|
-
>
|
|
1049
|
-
} ? _E
|
|
1159
|
+
Options extends { readonly toolkit: infer ToolkitValue } ?
|
|
1160
|
+
ExtractToolkitResolutionError<Exclude<ToolkitValue, undefined>>
|
|
1050
1161
|
: never,
|
|
1051
|
-
Options extends {
|
|
1052
|
-
|
|
1053
|
-
Toolkit.WithHandler<Tools>,
|
|
1054
|
-
infer _E,
|
|
1055
|
-
infer _R
|
|
1056
|
-
>
|
|
1057
|
-
} ? _R
|
|
1162
|
+
Options extends { readonly toolkit: infer ToolkitValue } ?
|
|
1163
|
+
ExtractToolkitResolutionServices<Exclude<ToolkitValue, undefined>>
|
|
1058
1164
|
: never
|
|
1059
1165
|
> = Effect.fnUntraced(function*<
|
|
1060
1166
|
Tools extends Record<string, Tool.Any>,
|
|
@@ -1063,8 +1169,27 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1063
1169
|
options: Options & GenerateTextOptions<Tools>,
|
|
1064
1170
|
providerOptions: Mutable<ProviderOptions>
|
|
1065
1171
|
) {
|
|
1172
|
+
const tracker = Option.getOrUndefined(yield* Effect.serviceOption(ResponseIdTracker.ResponseIdTracker))
|
|
1066
1173
|
const toolChoice = options.toolChoice ?? "auto"
|
|
1067
1174
|
|
|
1175
|
+
const streamWithNonIncrementalFallback = () => {
|
|
1176
|
+
const requestOptions: ProviderOptions = {
|
|
1177
|
+
...providerOptions
|
|
1178
|
+
}
|
|
1179
|
+
const fallbackPrompt = requestOptions.prompt
|
|
1180
|
+
const fallbackOptions: ProviderOptions = {
|
|
1181
|
+
...requestOptions,
|
|
1182
|
+
prompt: fallbackPrompt,
|
|
1183
|
+
incrementalPrompt: undefined,
|
|
1184
|
+
previousResponseId: undefined
|
|
1185
|
+
}
|
|
1186
|
+
return requestOptions.incrementalPrompt
|
|
1187
|
+
? params.streamText(requestOptions).pipe(
|
|
1188
|
+
Stream.catchReason("AiError", "InvalidRequestError", (_) => params.streamText(fallbackOptions))
|
|
1189
|
+
)
|
|
1190
|
+
: params.streamText(requestOptions)
|
|
1191
|
+
}
|
|
1192
|
+
|
|
1068
1193
|
// Check for pending approvals that need resolution
|
|
1069
1194
|
const { approved: pendingApproved, denied: pendingDenied } = collectToolApprovals(providerOptions.prompt.content, {
|
|
1070
1195
|
excludeResolved: true
|
|
@@ -1085,23 +1210,40 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1085
1210
|
})
|
|
1086
1211
|
})
|
|
1087
1212
|
}
|
|
1213
|
+
if (tracker) {
|
|
1214
|
+
const prepared = tracker.prepareUnsafe(providerOptions.prompt)
|
|
1215
|
+
if (Option.isSome(prepared)) {
|
|
1216
|
+
providerOptions.previousResponseId = prepared.value.previousResponseId
|
|
1217
|
+
providerOptions.incrementalPrompt = prepared.value.prompt
|
|
1218
|
+
}
|
|
1219
|
+
}
|
|
1088
1220
|
const schema = Schema.NonEmptyArray(Response.StreamPart(Toolkit.empty))
|
|
1089
1221
|
const decodeParts = Schema.decodeEffect(schema)
|
|
1090
|
-
return
|
|
1091
|
-
|
|
1092
|
-
.
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1222
|
+
return pipe(
|
|
1223
|
+
streamWithNonIncrementalFallback(),
|
|
1224
|
+
Stream.mapArrayEffect((parts) =>
|
|
1225
|
+
decodeParts(parts).pipe(
|
|
1226
|
+
tracker ?
|
|
1227
|
+
Effect.tap((decodedParts) => {
|
|
1228
|
+
for (const part of decodedParts) {
|
|
1229
|
+
if (part.type === "response-metadata" && Predicate.isNotUndefined(part.id)) {
|
|
1230
|
+
tracker.markParts(providerOptions.prompt.content, part.id)
|
|
1231
|
+
}
|
|
1232
|
+
}
|
|
1233
|
+
return Effect.void
|
|
1234
|
+
}) :
|
|
1235
|
+
identity
|
|
1236
|
+
)
|
|
1237
|
+
)
|
|
1238
|
+
) as Stream.Stream<
|
|
1239
|
+
Response.StreamPart<Tools>,
|
|
1240
|
+
AiError.AiError | Schema.SchemaError,
|
|
1241
|
+
IdGenerator
|
|
1242
|
+
>
|
|
1099
1243
|
}
|
|
1100
1244
|
|
|
1101
1245
|
// If there is a toolkit resolve and apply it to the provider options
|
|
1102
|
-
const toolkit =
|
|
1103
|
-
? yield* options.toolkit
|
|
1104
|
-
: options.toolkit
|
|
1246
|
+
const toolkit = yield* resolveToolkit<Tools, any, any>(options.toolkit)
|
|
1105
1247
|
|
|
1106
1248
|
// If the toolkit is empty, return immediately
|
|
1107
1249
|
if (Object.values(toolkit.tools).length === 0) {
|
|
@@ -1117,22 +1259,42 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1117
1259
|
})
|
|
1118
1260
|
})
|
|
1119
1261
|
}
|
|
1262
|
+
if (tracker) {
|
|
1263
|
+
const prepared = tracker.prepareUnsafe(providerOptions.prompt)
|
|
1264
|
+
if (Option.isSome(prepared)) {
|
|
1265
|
+
providerOptions.previousResponseId = prepared.value.previousResponseId
|
|
1266
|
+
providerOptions.incrementalPrompt = prepared.value.prompt
|
|
1267
|
+
}
|
|
1268
|
+
}
|
|
1120
1269
|
const schema = Schema.NonEmptyArray(Response.StreamPart(Toolkit.empty))
|
|
1121
1270
|
const decodeParts = Schema.decodeEffect(schema)
|
|
1122
|
-
return
|
|
1123
|
-
|
|
1124
|
-
.
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1271
|
+
return pipe(
|
|
1272
|
+
streamWithNonIncrementalFallback(),
|
|
1273
|
+
Stream.mapArrayEffect((parts) =>
|
|
1274
|
+
decodeParts(parts).pipe(
|
|
1275
|
+
tracker ?
|
|
1276
|
+
Effect.tap((decodedParts) => {
|
|
1277
|
+
for (const part of decodedParts) {
|
|
1278
|
+
if (part.type === "response-metadata" && part.id) {
|
|
1279
|
+
tracker.markParts(providerOptions.prompt.content, part.id)
|
|
1280
|
+
}
|
|
1281
|
+
}
|
|
1282
|
+
return Effect.void
|
|
1283
|
+
}) :
|
|
1284
|
+
identity
|
|
1285
|
+
)
|
|
1286
|
+
)
|
|
1287
|
+
) as Stream.Stream<
|
|
1288
|
+
Response.StreamPart<Tools>,
|
|
1289
|
+
AiError.AiError | Schema.SchemaError,
|
|
1290
|
+
IdGenerator
|
|
1291
|
+
>
|
|
1131
1292
|
}
|
|
1132
1293
|
|
|
1133
|
-
// Pre-resolve tool approvals before calling the LLM
|
|
1294
|
+
// Pre-resolve pending tool approvals before calling the LLM
|
|
1295
|
+
let preResolvedStreamParts: Array<Response.StreamPart<Tools>> = []
|
|
1296
|
+
|
|
1134
1297
|
if (hasPendingApprovals) {
|
|
1135
|
-
// Validate all approved tools exist in the toolkit
|
|
1136
1298
|
for (const approval of pendingApproved) {
|
|
1137
1299
|
if (approval.toolCall && !toolkit.tools[approval.toolCall.name]) {
|
|
1138
1300
|
return yield* AiError.make({
|
|
@@ -1146,7 +1308,6 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1146
1308
|
}
|
|
1147
1309
|
}
|
|
1148
1310
|
|
|
1149
|
-
// Execute approved tools and create denial results
|
|
1150
1311
|
const approvedResults = yield* executeApprovedToolCalls(
|
|
1151
1312
|
pendingApproved,
|
|
1152
1313
|
toolkit,
|
|
@@ -1155,16 +1316,44 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1155
1316
|
const deniedResults = createDenialResults(pendingDenied)
|
|
1156
1317
|
const preResolvedResults = [...approvedResults, ...deniedResults]
|
|
1157
1318
|
|
|
1158
|
-
// Add pre-resolved results to the prompt
|
|
1159
1319
|
if (preResolvedResults.length > 0) {
|
|
1160
|
-
const toolMessage = Prompt.makeMessage("tool", {
|
|
1161
|
-
content: preResolvedResults
|
|
1162
|
-
})
|
|
1163
1320
|
providerOptions.prompt = Prompt.fromMessages([
|
|
1164
1321
|
...providerOptions.prompt.content,
|
|
1165
|
-
|
|
1322
|
+
Prompt.makeMessage("tool", { content: preResolvedResults })
|
|
1166
1323
|
])
|
|
1167
1324
|
}
|
|
1325
|
+
|
|
1326
|
+
// Emit pre-resolved tool-results as stream parts so Chat.streamText
|
|
1327
|
+
// persists them to history. This lets collectToolApprovals find them
|
|
1328
|
+
// on subsequent rounds and skip the now-resolved approvals.
|
|
1329
|
+
// Note: r.result is already encoded (from executeApprovedToolCalls /
|
|
1330
|
+
// createDenialResults), so it goes into both result and encodedResult.
|
|
1331
|
+
for (const r of preResolvedResults) {
|
|
1332
|
+
preResolvedStreamParts.push(
|
|
1333
|
+
Response.makePart("tool-result", {
|
|
1334
|
+
id: r.id,
|
|
1335
|
+
name: r.name,
|
|
1336
|
+
providerExecuted: false,
|
|
1337
|
+
preliminary: false,
|
|
1338
|
+
result: r.result,
|
|
1339
|
+
encodedResult: r.result,
|
|
1340
|
+
isFailure: r.isFailure
|
|
1341
|
+
}) as Response.StreamPart<Tools>
|
|
1342
|
+
)
|
|
1343
|
+
}
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
// Strip all resolved approval artifacts (both current and from previous
|
|
1347
|
+
// rounds) in a single pass before sending to the provider.
|
|
1348
|
+
const { approved: allResolved, denied: allDenied } = collectToolApprovals(
|
|
1349
|
+
providerOptions.prompt.content
|
|
1350
|
+
)
|
|
1351
|
+
if (allResolved.length > 0 || allDenied.length > 0) {
|
|
1352
|
+
providerOptions.prompt = stripResolvedApprovals(
|
|
1353
|
+
providerOptions.prompt,
|
|
1354
|
+
allResolved,
|
|
1355
|
+
allDenied
|
|
1356
|
+
)
|
|
1168
1357
|
}
|
|
1169
1358
|
|
|
1170
1359
|
const tools = typeof toolChoice === "object" && "oneOf" in toolChoice
|
|
@@ -1173,20 +1362,39 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1173
1362
|
providerOptions.tools = tools
|
|
1174
1363
|
providerOptions.toolChoice = toolChoice
|
|
1175
1364
|
|
|
1365
|
+
if (tracker) {
|
|
1366
|
+
const prepared = tracker.prepareUnsafe(providerOptions.prompt)
|
|
1367
|
+
if (Option.isSome(prepared)) {
|
|
1368
|
+
providerOptions.previousResponseId = prepared.value.previousResponseId
|
|
1369
|
+
providerOptions.incrementalPrompt = prepared.value.prompt
|
|
1370
|
+
}
|
|
1371
|
+
}
|
|
1372
|
+
|
|
1176
1373
|
// If tool call resolution is disabled, return the response without
|
|
1177
1374
|
// resolving the tool calls that were generated
|
|
1178
1375
|
if (options.disableToolCallResolution === true) {
|
|
1179
1376
|
const schema = Schema.NonEmptyArray(Response.StreamPart(toolkit))
|
|
1180
1377
|
const decodeParts = Schema.decodeEffect(schema)
|
|
1181
|
-
return
|
|
1182
|
-
.
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1378
|
+
return streamWithNonIncrementalFallback().pipe(
|
|
1379
|
+
Stream.mapArrayEffect((parts) =>
|
|
1380
|
+
decodeParts(parts).pipe(
|
|
1381
|
+
tracker ?
|
|
1382
|
+
Effect.tap((decodedParts) => {
|
|
1383
|
+
for (const part of decodedParts) {
|
|
1384
|
+
if (part.type === "response-metadata" && Predicate.isNotUndefined(part.id)) {
|
|
1385
|
+
tracker.markParts(providerOptions.prompt.content, part.id)
|
|
1386
|
+
}
|
|
1387
|
+
}
|
|
1388
|
+
return Effect.void
|
|
1389
|
+
}) :
|
|
1390
|
+
identity
|
|
1391
|
+
)
|
|
1392
|
+
)
|
|
1393
|
+
) as Stream.Stream<
|
|
1394
|
+
Response.StreamPart<Tools>,
|
|
1395
|
+
AiError.AiError | Schema.SchemaError,
|
|
1396
|
+
IdGenerator
|
|
1397
|
+
>
|
|
1190
1398
|
}
|
|
1191
1399
|
|
|
1192
1400
|
const ResponseSchema = Schema.NonEmptyArray(Response.StreamPart(toolkit))
|
|
@@ -1196,59 +1404,81 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1196
1404
|
const queue = yield* Queue.make<
|
|
1197
1405
|
Response.StreamPart<Tools>,
|
|
1198
1406
|
| AiError.AiError
|
|
1199
|
-
| AiError.AiErrorReason
|
|
1200
1407
|
| Cause.Done
|
|
1201
1408
|
| Schema.SchemaError
|
|
1202
1409
|
>()
|
|
1410
|
+
const deferredFinishParts: Array<Response.StreamPart<Tools>> = []
|
|
1411
|
+
|
|
1412
|
+
// Emit pre-resolved tool results so Chat.streamText persists them to
|
|
1413
|
+
// history. This ensures collectToolApprovals({ excludeResolved }) can
|
|
1414
|
+
// find the corresponding tool-results on future rounds.
|
|
1415
|
+
if (preResolvedStreamParts.length > 0) {
|
|
1416
|
+
yield* Queue.offerAll(queue, preResolvedStreamParts)
|
|
1417
|
+
}
|
|
1203
1418
|
|
|
1204
1419
|
// FiberSet to track concurrent tool call handlers
|
|
1205
1420
|
const toolCallFibers = yield* FiberSet.make<void, AiError.AiError>()
|
|
1206
1421
|
|
|
1207
1422
|
// Helper function to handle tool calls with approval logic
|
|
1208
|
-
const handleToolCall = (part: Response.ToolCallPartEncoded)
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1423
|
+
const handleToolCall = Effect.fnUntraced(function*(part: Response.ToolCallPartEncoded) {
|
|
1424
|
+
const tool = toolkit.tools[part.name]
|
|
1425
|
+
if (!tool) return
|
|
1426
|
+
|
|
1427
|
+
const needsApproval = yield* isApprovalNeeded(
|
|
1428
|
+
tool,
|
|
1429
|
+
part,
|
|
1430
|
+
providerOptions.prompt.content
|
|
1431
|
+
)
|
|
1214
1432
|
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1433
|
+
if (needsApproval) {
|
|
1434
|
+
const idGen = yield* IdGenerator
|
|
1435
|
+
const approvalId = yield* idGen.generateId()
|
|
1436
|
+
const approvalPart = Response.makePart("tool-approval-request", {
|
|
1437
|
+
approvalId,
|
|
1438
|
+
toolCallId: part.id
|
|
1439
|
+
}) as Response.StreamPart<Tools>
|
|
1440
|
+
yield* Queue.offer(queue, approvalPart)
|
|
1441
|
+
return
|
|
1442
|
+
}
|
|
1220
1443
|
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
const
|
|
1225
|
-
|
|
1226
|
-
|
|
1444
|
+
yield* toolkit.handle(part.name, part.params as any).pipe(
|
|
1445
|
+
Stream.unwrap,
|
|
1446
|
+
Stream.runForEach((result) => {
|
|
1447
|
+
const toolResultPart = Response.makePart("tool-result", {
|
|
1448
|
+
id: part.id,
|
|
1449
|
+
name: part.name,
|
|
1450
|
+
providerExecuted: false,
|
|
1451
|
+
...result
|
|
1227
1452
|
}) as Response.StreamPart<Tools>
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
yield* toolkit.handle(part.name, part.params as any).pipe(
|
|
1233
|
-
Stream.unwrap,
|
|
1234
|
-
Stream.runForEach((result) => {
|
|
1235
|
-
const toolResultPart = Response.makePart("tool-result", {
|
|
1236
|
-
id: part.id,
|
|
1237
|
-
name: part.name,
|
|
1238
|
-
providerExecuted: false,
|
|
1239
|
-
...result
|
|
1240
|
-
}) as Response.StreamPart<Tools>
|
|
1241
|
-
return Queue.offer(queue, toolResultPart)
|
|
1242
|
-
})
|
|
1243
|
-
)
|
|
1244
|
-
})
|
|
1453
|
+
return Queue.offer(queue, toolResultPart)
|
|
1454
|
+
})
|
|
1455
|
+
)
|
|
1456
|
+
})
|
|
1245
1457
|
|
|
1246
|
-
yield*
|
|
1458
|
+
yield* streamWithNonIncrementalFallback().pipe(
|
|
1247
1459
|
Stream.runForEachArray(
|
|
1248
1460
|
Effect.fnUntraced(function*(chunk) {
|
|
1249
1461
|
const parts = yield* decodeParts(chunk)
|
|
1250
|
-
|
|
1251
|
-
|
|
1462
|
+
if (tracker) {
|
|
1463
|
+
for (const part of parts) {
|
|
1464
|
+
if (part.type === "response-metadata" && part.id) {
|
|
1465
|
+
tracker.markParts(providerOptions.prompt.content, part.id)
|
|
1466
|
+
}
|
|
1467
|
+
}
|
|
1468
|
+
}
|
|
1469
|
+
// Defer finish parts until all tool handlers complete. This guarantees
|
|
1470
|
+
// tool results are emitted before finish in streaming mode.
|
|
1471
|
+
const immediateParts: Array<Response.StreamPart<Tools>> = []
|
|
1472
|
+
for (const part of parts) {
|
|
1473
|
+
if (part.type === "finish") {
|
|
1474
|
+
deferredFinishParts.push(part)
|
|
1475
|
+
} else {
|
|
1476
|
+
immediateParts.push(part)
|
|
1477
|
+
}
|
|
1478
|
+
}
|
|
1479
|
+
if (immediateParts.length > 0) {
|
|
1480
|
+
yield* Queue.offerAll(queue, immediateParts)
|
|
1481
|
+
}
|
|
1252
1482
|
// Fork tool call handlers - use the raw chunk for encoded params
|
|
1253
1483
|
for (const part of chunk) {
|
|
1254
1484
|
if (part.type === "tool-call" && part.providerExecuted !== true) {
|
|
@@ -1266,6 +1496,9 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1266
1496
|
FiberSet.awaitEmpty(toolCallFibers)
|
|
1267
1497
|
)
|
|
1268
1498
|
),
|
|
1499
|
+
Effect.andThen(
|
|
1500
|
+
Queue.offerAll(queue, deferredFinishParts)
|
|
1501
|
+
),
|
|
1269
1502
|
// And then end the queue
|
|
1270
1503
|
Effect.andThen(Queue.end(queue)),
|
|
1271
1504
|
Effect.tapCause((cause) => Queue.failCause(queue, cause)),
|
|
@@ -1310,20 +1543,27 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1310
1543
|
* @since 4.0.0
|
|
1311
1544
|
* @category text generation
|
|
1312
1545
|
*/
|
|
1313
|
-
export
|
|
1314
|
-
Options extends NoExcessProperties<GenerateTextOptions<any>, Options
|
|
1315
|
-
Tools extends Record<string, Tool.Any> = {}
|
|
1546
|
+
export function generateText<
|
|
1547
|
+
Options extends NoExcessProperties<GenerateTextOptions<any>, Options>
|
|
1316
1548
|
>(
|
|
1317
|
-
options: Options & GenerateTextOptions<
|
|
1549
|
+
options: Options & GenerateTextOptions<ExtractTools<Options>>
|
|
1318
1550
|
): Effect.Effect<
|
|
1319
|
-
GenerateTextResponse<
|
|
1551
|
+
GenerateTextResponse<ExtractTools<Options>>,
|
|
1320
1552
|
ExtractError<Options>,
|
|
1321
1553
|
LanguageModel | ExtractServices<Options>
|
|
1322
|
-
>
|
|
1323
|
-
|
|
1554
|
+
>
|
|
1555
|
+
export function generateText(
|
|
1556
|
+
options: GenerateTextOptions<any>
|
|
1557
|
+
): Effect.Effect<
|
|
1558
|
+
GenerateTextResponse<any>,
|
|
1559
|
+
AiError.AiError,
|
|
1560
|
+
LanguageModel
|
|
1561
|
+
> {
|
|
1562
|
+
return Effect.flatMap(
|
|
1324
1563
|
Effect.service(LanguageModel),
|
|
1325
|
-
(model) => model.generateText(options)
|
|
1564
|
+
(model) => model.generateText(options as any)
|
|
1326
1565
|
)
|
|
1566
|
+
}
|
|
1327
1567
|
|
|
1328
1568
|
/**
|
|
1329
1569
|
* Generate a structured object from a schema using a language model.
|
|
@@ -1357,25 +1597,32 @@ export const generateText = <
|
|
|
1357
1597
|
* @since 4.0.0
|
|
1358
1598
|
* @category object generation
|
|
1359
1599
|
*/
|
|
1360
|
-
export
|
|
1600
|
+
export function generateObject<
|
|
1361
1601
|
ObjectEncoded extends Record<string, any>,
|
|
1362
|
-
StructuredOutputSchema extends Schema.
|
|
1602
|
+
StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
|
|
1363
1603
|
Options extends NoExcessProperties<
|
|
1364
1604
|
GenerateObjectOptions<any, StructuredOutputSchema>,
|
|
1365
1605
|
Options
|
|
1366
|
-
|
|
1367
|
-
Tools extends Record<string, Tool.Any> = {}
|
|
1606
|
+
>
|
|
1368
1607
|
>(
|
|
1369
|
-
options: Options & GenerateObjectOptions<
|
|
1608
|
+
options: Options & GenerateObjectOptions<ExtractTools<Options>, StructuredOutputSchema>
|
|
1370
1609
|
): Effect.Effect<
|
|
1371
|
-
GenerateObjectResponse<
|
|
1610
|
+
GenerateObjectResponse<ExtractTools<Options>, StructuredOutputSchema["Type"]>,
|
|
1372
1611
|
ExtractError<Options>,
|
|
1373
1612
|
ExtractServices<Options> | StructuredOutputSchema["DecodingServices"] | LanguageModel
|
|
1374
|
-
>
|
|
1375
|
-
|
|
1613
|
+
>
|
|
1614
|
+
export function generateObject(
|
|
1615
|
+
options: GenerateObjectOptions<any, Schema.Top>
|
|
1616
|
+
): Effect.Effect<
|
|
1617
|
+
GenerateObjectResponse<any, any>,
|
|
1618
|
+
AiError.AiError,
|
|
1619
|
+
LanguageModel
|
|
1620
|
+
> {
|
|
1621
|
+
return Effect.flatMap(
|
|
1376
1622
|
Effect.service(LanguageModel),
|
|
1377
|
-
(model) => model.generateObject(options)
|
|
1378
|
-
)
|
|
1623
|
+
(model) => model.generateObject(options as any)
|
|
1624
|
+
) as any
|
|
1625
|
+
}
|
|
1379
1626
|
|
|
1380
1627
|
/**
|
|
1381
1628
|
* Generate text using a language model with streaming output.
|
|
@@ -1401,20 +1648,27 @@ export const generateObject = <
|
|
|
1401
1648
|
* @since 4.0.0
|
|
1402
1649
|
* @category text generation
|
|
1403
1650
|
*/
|
|
1404
|
-
export
|
|
1405
|
-
Options extends NoExcessProperties<GenerateTextOptions<any>, Options
|
|
1406
|
-
Tools extends Record<string, Tool.Any> = {}
|
|
1651
|
+
export function streamText<
|
|
1652
|
+
Options extends NoExcessProperties<GenerateTextOptions<any>, Options>
|
|
1407
1653
|
>(
|
|
1408
|
-
options: Options & GenerateTextOptions<
|
|
1654
|
+
options: Options & GenerateTextOptions<ExtractTools<Options>>
|
|
1409
1655
|
): Stream.Stream<
|
|
1410
|
-
Response.StreamPart<
|
|
1656
|
+
Response.StreamPart<ExtractTools<Options>>,
|
|
1411
1657
|
ExtractError<Options>,
|
|
1412
1658
|
ExtractServices<Options> | LanguageModel
|
|
1413
|
-
>
|
|
1414
|
-
|
|
1659
|
+
>
|
|
1660
|
+
export function streamText(
|
|
1661
|
+
options: GenerateTextOptions<any>
|
|
1662
|
+
): Stream.Stream<
|
|
1663
|
+
Response.StreamPart<any>,
|
|
1664
|
+
AiError.AiError,
|
|
1665
|
+
LanguageModel
|
|
1666
|
+
> {
|
|
1667
|
+
return Stream.unwrap(Effect.map(
|
|
1415
1668
|
Effect.service(LanguageModel),
|
|
1416
|
-
(model) => model.streamText(options)
|
|
1417
|
-
))
|
|
1669
|
+
(model) => model.streamText(options as any)
|
|
1670
|
+
)) as any
|
|
1671
|
+
}
|
|
1418
1672
|
|
|
1419
1673
|
// =============================================================================
|
|
1420
1674
|
// Tool Approval Helpers
|
|
@@ -1506,6 +1760,63 @@ const collectToolApprovals = (
|
|
|
1506
1760
|
return { approved, denied }
|
|
1507
1761
|
}
|
|
1508
1762
|
|
|
1763
|
+
/**
|
|
1764
|
+
* Strip resolved approval artifacts from the prompt before sending to the
|
|
1765
|
+
* provider. After pre-resolving approvals (executing approved tools and
|
|
1766
|
+
* creating denial results), the original `tool-approval-request` parts in
|
|
1767
|
+
* assistant messages and `tool-approval-response` parts in tool messages are
|
|
1768
|
+
* no longer needed. Leaving them in causes provider-specific errors (e.g.
|
|
1769
|
+
* OpenAI rejects `mcp_approval_response` items that reference approval
|
|
1770
|
+
* requests it never issued).
|
|
1771
|
+
*/
|
|
1772
|
+
const stripResolvedApprovals = (
|
|
1773
|
+
prompt: Prompt.Prompt,
|
|
1774
|
+
approved: ReadonlyArray<ApprovalResult>,
|
|
1775
|
+
denied: ReadonlyArray<ApprovalResult>
|
|
1776
|
+
): Prompt.Prompt => {
|
|
1777
|
+
const resolvedApprovalIds = new Set<string>()
|
|
1778
|
+
for (const a of approved) resolvedApprovalIds.add(a.approvalId)
|
|
1779
|
+
for (const d of denied) resolvedApprovalIds.add(d.approvalId)
|
|
1780
|
+
|
|
1781
|
+
const cleanedMessages: Array<Prompt.Message> = []
|
|
1782
|
+
|
|
1783
|
+
for (const message of prompt.content) {
|
|
1784
|
+
if (message.role === "assistant") {
|
|
1785
|
+
const filteredContent = message.content.filter(
|
|
1786
|
+
(part) =>
|
|
1787
|
+
part.type !== "tool-approval-request" ||
|
|
1788
|
+
!resolvedApprovalIds.has(part.approvalId)
|
|
1789
|
+
)
|
|
1790
|
+
if (filteredContent.length > 0) {
|
|
1791
|
+
cleanedMessages.push(
|
|
1792
|
+
Prompt.makeMessage("assistant", {
|
|
1793
|
+
content: filteredContent,
|
|
1794
|
+
options: message.options
|
|
1795
|
+
})
|
|
1796
|
+
)
|
|
1797
|
+
}
|
|
1798
|
+
} else if (message.role === "tool") {
|
|
1799
|
+
const filteredContent = message.content.filter(
|
|
1800
|
+
(part) =>
|
|
1801
|
+
part.type !== "tool-approval-response" ||
|
|
1802
|
+
!resolvedApprovalIds.has(part.approvalId)
|
|
1803
|
+
)
|
|
1804
|
+
if (filteredContent.length > 0) {
|
|
1805
|
+
cleanedMessages.push(
|
|
1806
|
+
Prompt.makeMessage("tool", {
|
|
1807
|
+
content: filteredContent,
|
|
1808
|
+
options: message.options
|
|
1809
|
+
})
|
|
1810
|
+
)
|
|
1811
|
+
}
|
|
1812
|
+
} else {
|
|
1813
|
+
cleanedMessages.push(message)
|
|
1814
|
+
}
|
|
1815
|
+
}
|
|
1816
|
+
|
|
1817
|
+
return Prompt.fromMessages(cleanedMessages)
|
|
1818
|
+
}
|
|
1819
|
+
|
|
1509
1820
|
const isApprovalNeeded = Effect.fnUntraced(function*<T extends Tool.Any>(
|
|
1510
1821
|
tool: T,
|
|
1511
1822
|
toolCall: Response.ToolCallPartEncoded,
|
|
@@ -1734,11 +2045,11 @@ const resolveToolCalls = <Tools extends Record<string, Tool.Any>>(
|
|
|
1734
2045
|
// =============================================================================
|
|
1735
2046
|
|
|
1736
2047
|
const resolveToolkit = <Tools extends Record<string, Tool.Any>, E, R>(
|
|
1737
|
-
toolkit:
|
|
1738
|
-
| Toolkit.WithHandler<Tools>
|
|
1739
|
-
| Effect.Yieldable<Toolkit.Toolkit<any>, Toolkit.WithHandler<Tools>, E, R>
|
|
2048
|
+
toolkit: ToolkitOption<Tools, E, R>
|
|
1740
2049
|
): Effect.Effect<Toolkit.WithHandler<Tools>, E, R> =>
|
|
1741
|
-
"asEffect" in toolkit
|
|
2050
|
+
("asEffect" in toolkit
|
|
2051
|
+
? toolkit.asEffect()
|
|
2052
|
+
: Effect.succeed(toolkit as unknown as Toolkit.WithHandler<Tools>)) as any
|
|
1742
2053
|
|
|
1743
2054
|
/** @internal */
|
|
1744
2055
|
export const getObjectName = <StructuredOutputSchema extends Schema.Top>(
|
|
@@ -1761,29 +2072,32 @@ export const getObjectName = <StructuredOutputSchema extends Schema.Top>(
|
|
|
1761
2072
|
const resolveStructuredOutput = Effect.fnUntraced(function*<
|
|
1762
2073
|
StructuredOutputSchema extends Schema.Top
|
|
1763
2074
|
>(response: ReadonlyArray<Response.AllParts<any>>, schema: StructuredOutputSchema) {
|
|
1764
|
-
const
|
|
2075
|
+
const texts: Array<string> = []
|
|
1765
2076
|
for (const part of response) {
|
|
1766
2077
|
if (part.type === "text") {
|
|
1767
|
-
|
|
2078
|
+
texts.push(part.text)
|
|
1768
2079
|
}
|
|
1769
2080
|
}
|
|
1770
2081
|
|
|
2082
|
+
const text = texts.join("")
|
|
2083
|
+
|
|
1771
2084
|
if (text.length === 0) {
|
|
1772
2085
|
return yield* AiError.make({
|
|
1773
2086
|
module: "LanguageModel",
|
|
1774
2087
|
method: "generateObject",
|
|
1775
2088
|
reason: new AiError.StructuredOutputError({
|
|
1776
|
-
description: "No text content in response"
|
|
2089
|
+
description: "No text content in response",
|
|
2090
|
+
responseText: text
|
|
1777
2091
|
})
|
|
1778
2092
|
})
|
|
1779
2093
|
}
|
|
1780
2094
|
|
|
1781
2095
|
const decode = Schema.decodeEffect(Schema.fromJsonString(schema))
|
|
1782
|
-
return yield* Effect.mapError(decode(text
|
|
2096
|
+
return yield* Effect.mapError(decode(text), (error) =>
|
|
1783
2097
|
AiError.make({
|
|
1784
2098
|
module: "LanguageModel",
|
|
1785
2099
|
method: "generateObject",
|
|
1786
|
-
reason: AiError.StructuredOutputError.fromSchemaError(error)
|
|
2100
|
+
reason: AiError.StructuredOutputError.fromSchemaError(error, text)
|
|
1787
2101
|
}))
|
|
1788
2102
|
})
|
|
1789
2103
|
|