effect 4.0.0-beta.4 → 4.0.0-beta.41
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 +82 -45
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +87 -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 +1225 -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 +93 -48
- 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.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +21 -9
- package/dist/ManagedRuntime.js.map +1 -1
- 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 +76 -52
- package/dist/ServiceMap.d.ts.map +1 -1
- package/dist/ServiceMap.js +45 -29
- 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 +806 -55
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +806 -55
- 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 +284 -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 +75 -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 +35 -7
- 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 +117 -47
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +258 -59
- 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 +259 -85
- 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/ClusterSchema.d.ts +18 -0
- package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.js +21 -1
- package/dist/unstable/cluster/ClusterSchema.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 +35 -29
- 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 +8 -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 +18 -15
- package/dist/unstable/cluster/Message.d.ts.map +1 -1
- package/dist/unstable/cluster/Message.js +15 -7
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +33 -10
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +36 -20
- 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 +51 -39
- 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 +25 -19
- 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 +24 -18
- 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 +6 -3
- 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 +1 -0
- 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 +6 -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 +53 -43
- 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/Activity.d.ts +5 -0
- package/dist/unstable/workflow/Activity.d.ts.map +1 -1
- package/dist/unstable/workflow/Activity.js +13 -0
- package/dist/unstable/workflow/Activity.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 +117 -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 +1484 -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 +394 -160
- package/src/LayerMap.ts +11 -9
- package/src/LogLevel.ts +37 -0
- package/src/Logger.ts +33 -100
- package/src/ManagedRuntime.ts +35 -22
- 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 +144 -97
- 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 +816 -56
- package/src/internal/core.ts +12 -5
- package/src/internal/dateTime.ts +91 -96
- package/src/internal/effect.ts +844 -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 +73 -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 +134 -85
- package/src/unstable/ai/EmbeddingModel.ts +209 -0
- package/src/unstable/ai/LanguageModel.ts +683 -253
- 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 +265 -101
- 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/ClusterSchema.ts +29 -1
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +62 -37
- package/src/unstable/cluster/DeliverAt.ts +1 -1
- package/src/unstable/cluster/Entity.ts +25 -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 +28 -15
- package/src/unstable/cluster/MessageStorage.ts +66 -36
- 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 +66 -49
- package/src/unstable/cluster/ShardingConfig.ts +36 -37
- package/src/unstable/cluster/SqlMessageStorage.ts +31 -19
- package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
- package/src/unstable/cluster/internal/entityManager.ts +50 -34
- 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 +21 -3
- package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
- package/src/unstable/httpapi/OpenApi.ts +44 -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 +12 -12
- package/src/unstable/rpc/RpcClient.ts +67 -96
- 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/Activity.ts +23 -0
- 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"
|
|
@@ -119,23 +120,49 @@ export interface Service {
|
|
|
119
120
|
/**
|
|
120
121
|
* Generate text using the language model.
|
|
121
122
|
*/
|
|
122
|
-
readonly generateText:
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
123
|
+
readonly generateText: {
|
|
124
|
+
// No toolkit: force `{}` instead of falling back to `Record<string, Tool.Any>`.
|
|
125
|
+
<Options extends NoExcessProperties<GenerateTextOptionsWithoutToolkit, Options>>(
|
|
126
|
+
options: Options & GenerateTextOptionsWithoutToolkit
|
|
127
|
+
): Effect.Effect<
|
|
128
|
+
GenerateTextResponse<{}>,
|
|
129
|
+
ExtractError<Options>,
|
|
130
|
+
ExtractServices<Options>
|
|
131
|
+
>
|
|
132
|
+
// Generic toolkit: preserve caller-supplied `Tools` in helpers like `<Tools>(toolkit: WithHandler<Tools>) => ...`.
|
|
133
|
+
<
|
|
134
|
+
Tools extends Record<string, Tool.Any>,
|
|
135
|
+
Options extends NoExcessProperties<
|
|
136
|
+
GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> },
|
|
137
|
+
Options
|
|
138
|
+
>
|
|
139
|
+
>(
|
|
140
|
+
options: Options & GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> }
|
|
141
|
+
): Effect.Effect<
|
|
142
|
+
GenerateTextResponse<Tools>,
|
|
143
|
+
ExtractError<Options>,
|
|
144
|
+
ExtractServices<Options>
|
|
145
|
+
>
|
|
146
|
+
// Toolkit unions: recover distributive `ExtractTools<Options>` inference for `toolkitA | toolkitB` call sites.
|
|
147
|
+
<
|
|
148
|
+
Options extends {
|
|
149
|
+
readonly toolkit: ToolkitOption<any>
|
|
150
|
+
} & NoExcessProperties<GenerateTextOptions<any>, Options>
|
|
151
|
+
>(
|
|
152
|
+
options: Options & GenerateTextOptions<ExtractTools<Options>> & { readonly toolkit: Options["toolkit"] }
|
|
153
|
+
): Effect.Effect<
|
|
154
|
+
GenerateTextResponse<ExtractTools<Options>>,
|
|
155
|
+
ExtractError<Options>,
|
|
156
|
+
ExtractServices<Options>
|
|
157
|
+
>
|
|
158
|
+
}
|
|
132
159
|
|
|
133
160
|
/**
|
|
134
161
|
* Generate a structured object from a schema using the language model.
|
|
135
162
|
*/
|
|
136
163
|
readonly generateObject: <
|
|
137
164
|
ObjectEncoded extends Record<string, any>,
|
|
138
|
-
StructuredOutputSchema extends Schema.
|
|
165
|
+
StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
|
|
139
166
|
Options extends NoExcessProperties<
|
|
140
167
|
GenerateObjectOptions<any, StructuredOutputSchema>,
|
|
141
168
|
Options
|
|
@@ -152,16 +179,42 @@ export interface Service {
|
|
|
152
179
|
/**
|
|
153
180
|
* Generate text using the language model with streaming output.
|
|
154
181
|
*/
|
|
155
|
-
readonly streamText:
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
182
|
+
readonly streamText: {
|
|
183
|
+
// No toolkit: force `{}` instead of falling back to `Record<string, Tool.Any>`.
|
|
184
|
+
<Options extends NoExcessProperties<GenerateTextOptionsWithoutToolkit, Options>>(
|
|
185
|
+
options: Options & GenerateTextOptionsWithoutToolkit
|
|
186
|
+
): Stream.Stream<
|
|
187
|
+
Response.StreamPart<{}>,
|
|
188
|
+
ExtractError<Options>,
|
|
189
|
+
ExtractServices<Options>
|
|
190
|
+
>
|
|
191
|
+
// Generic toolkit: preserve caller-supplied `Tools` in helpers like `<Tools>(toolkit: WithHandler<Tools>) => ...`.
|
|
192
|
+
<
|
|
193
|
+
Tools extends Record<string, Tool.Any>,
|
|
194
|
+
Options extends NoExcessProperties<
|
|
195
|
+
GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> },
|
|
196
|
+
Options
|
|
197
|
+
>
|
|
198
|
+
>(
|
|
199
|
+
options: Options & GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> }
|
|
200
|
+
): Stream.Stream<
|
|
201
|
+
Response.StreamPart<Tools>,
|
|
202
|
+
ExtractError<Options>,
|
|
203
|
+
ExtractServices<Options>
|
|
204
|
+
>
|
|
205
|
+
// Toolkit unions: recover distributive `ExtractTools<Options>` inference for `toolkitA | toolkitB` call sites.
|
|
206
|
+
<
|
|
207
|
+
Options extends {
|
|
208
|
+
readonly toolkit: ToolkitOption<any>
|
|
209
|
+
} & NoExcessProperties<GenerateTextOptions<any>, Options>
|
|
210
|
+
>(
|
|
211
|
+
options: Options & GenerateTextOptions<ExtractTools<Options>> & { readonly toolkit: Options["toolkit"] }
|
|
212
|
+
): Stream.Stream<
|
|
213
|
+
Response.StreamPart<ExtractTools<Options>>,
|
|
214
|
+
ExtractError<Options>,
|
|
215
|
+
ExtractServices<Options>
|
|
216
|
+
>
|
|
217
|
+
}
|
|
165
218
|
}
|
|
166
219
|
|
|
167
220
|
/**
|
|
@@ -180,22 +233,6 @@ export type CodecTransformer = <T, E, RD, RE>(schema: Schema.Codec<T, E, RD, RE>
|
|
|
180
233
|
readonly jsonSchema: JsonSchema.JsonSchema
|
|
181
234
|
}
|
|
182
235
|
|
|
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
236
|
/**
|
|
200
237
|
* The default codec transformer that passes schemas through without
|
|
201
238
|
* provider-specific rewrites.
|
|
@@ -221,15 +258,7 @@ export interface GenerateTextOptions<Tools extends Record<string, Tool.Any>> {
|
|
|
221
258
|
* A toolkit containing both the tools and the tool call handler to use to
|
|
222
259
|
* augment text generation.
|
|
223
260
|
*/
|
|
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
|
|
261
|
+
readonly toolkit?: ToolkitInput<Tools> | undefined
|
|
233
262
|
|
|
234
263
|
/**
|
|
235
264
|
* The tool choice mode for the language model.
|
|
@@ -269,6 +298,10 @@ export interface GenerateTextOptions<Tools extends Record<string, Tool.Any>> {
|
|
|
269
298
|
readonly disableToolCallResolution?: boolean | undefined
|
|
270
299
|
}
|
|
271
300
|
|
|
301
|
+
type GenerateTextOptionsWithoutToolkit = Omit<GenerateTextOptions<{}>, "toolkit"> & {
|
|
302
|
+
readonly toolkit?: undefined
|
|
303
|
+
}
|
|
304
|
+
|
|
272
305
|
/**
|
|
273
306
|
* Configuration options for structured object generation.
|
|
274
307
|
*
|
|
@@ -483,6 +516,113 @@ export class GenerateObjectResponse<
|
|
|
483
516
|
// Utility Types
|
|
484
517
|
// =============================================================================
|
|
485
518
|
|
|
519
|
+
/**
|
|
520
|
+
* The supported toolkit option shapes for language model operations.
|
|
521
|
+
*
|
|
522
|
+
* @since 4.0.0
|
|
523
|
+
* @category utility types
|
|
524
|
+
*/
|
|
525
|
+
export type ToolkitOption<
|
|
526
|
+
Tools extends Record<string, Tool.Any>,
|
|
527
|
+
E = never,
|
|
528
|
+
R = any
|
|
529
|
+
> = Tools extends any ? (
|
|
530
|
+
| Toolkit.WithHandler<Tools>
|
|
531
|
+
| Effect.Yieldable<
|
|
532
|
+
Toolkit.Toolkit<Tools>,
|
|
533
|
+
Toolkit.WithHandler<Tools>,
|
|
534
|
+
E,
|
|
535
|
+
R
|
|
536
|
+
>
|
|
537
|
+
)
|
|
538
|
+
: never
|
|
539
|
+
|
|
540
|
+
/**
|
|
541
|
+
* The supported toolkit input shapes for language model operation options.
|
|
542
|
+
*
|
|
543
|
+
* Unlike `ToolkitOption`, this type does not distribute over unions. It is
|
|
544
|
+
* intended for call-site assignability, while `ToolkitOption` remains the
|
|
545
|
+
* distributive helper used for extraction and inference.
|
|
546
|
+
*
|
|
547
|
+
* @since 4.0.0
|
|
548
|
+
* @category utility types
|
|
549
|
+
*/
|
|
550
|
+
export type ToolkitInput<
|
|
551
|
+
Tools extends Record<string, Tool.Any>,
|
|
552
|
+
E = never,
|
|
553
|
+
R = any
|
|
554
|
+
> =
|
|
555
|
+
| ToolkitOption<Tools, E, R>
|
|
556
|
+
| Toolkit.WithHandler<Tools>
|
|
557
|
+
| Effect.Yieldable<
|
|
558
|
+
Toolkit.Toolkit<Tools>,
|
|
559
|
+
Toolkit.WithHandler<Tools>,
|
|
560
|
+
E,
|
|
561
|
+
R
|
|
562
|
+
>
|
|
563
|
+
|
|
564
|
+
type ExtractToolsFromToolkitOption<ToolkitValue> = ToolkitValue extends Toolkit.WithHandler<infer Tools> ? Tools
|
|
565
|
+
: ToolkitValue extends Effect.Yieldable<
|
|
566
|
+
Toolkit.Toolkit<infer Tools>,
|
|
567
|
+
Toolkit.WithHandler<infer _Tools>,
|
|
568
|
+
infer _E,
|
|
569
|
+
infer _R
|
|
570
|
+
> ? Tools
|
|
571
|
+
: never
|
|
572
|
+
|
|
573
|
+
/**
|
|
574
|
+
* Utility type that extracts the toolset from LanguageModel options.
|
|
575
|
+
*
|
|
576
|
+
* @since 4.0.0
|
|
577
|
+
* @category utility types
|
|
578
|
+
*/
|
|
579
|
+
export type ExtractTools<Options> = Options extends {
|
|
580
|
+
readonly toolkit: infer ToolkitValue
|
|
581
|
+
} ? ExtractToolsFromToolkitOption<Exclude<ToolkitValue, undefined>>
|
|
582
|
+
: {}
|
|
583
|
+
|
|
584
|
+
type ExtractErrorFromToolkitOption<ToolkitValue, DisableToolCallResolution extends boolean> = ToolkitValue extends
|
|
585
|
+
Toolkit.WithHandler<infer Tools> ?
|
|
586
|
+
| AiError.AiError
|
|
587
|
+
| (DisableToolCallResolution extends true ? never : Tool.HandlerError<Tools[keyof Tools]>)
|
|
588
|
+
: ToolkitValue extends Effect.Yieldable<
|
|
589
|
+
Toolkit.Toolkit<infer Tools>,
|
|
590
|
+
Toolkit.WithHandler<infer _Tools>,
|
|
591
|
+
infer E,
|
|
592
|
+
infer _R
|
|
593
|
+
> ? AiError.AiError | E | (DisableToolCallResolution extends true ? never : Tool.HandlerError<Tools[keyof Tools]>)
|
|
594
|
+
: AiError.AiError
|
|
595
|
+
|
|
596
|
+
type ExtractServicesFromToolkitOption<ToolkitValue> = ToolkitValue extends Toolkit.WithHandler<infer Tools> ?
|
|
597
|
+
| Tool.HandlerServices<Tools[keyof Tools]>
|
|
598
|
+
| Tool.ResultDecodingServices<Tools[keyof Tools]>
|
|
599
|
+
: ToolkitValue extends Effect.Yieldable<
|
|
600
|
+
Toolkit.Toolkit<infer Tools>,
|
|
601
|
+
Toolkit.WithHandler<infer _Tools>,
|
|
602
|
+
infer _E,
|
|
603
|
+
infer R
|
|
604
|
+
> ?
|
|
605
|
+
| Tool.HandlerServices<Tools[keyof Tools]>
|
|
606
|
+
| Tool.ResultDecodingServices<Tools[keyof Tools]>
|
|
607
|
+
| R
|
|
608
|
+
: never
|
|
609
|
+
|
|
610
|
+
type ExtractToolkitResolutionError<ToolkitValue> = ToolkitValue extends Effect.Yieldable<
|
|
611
|
+
Toolkit.Toolkit<infer _Tools>,
|
|
612
|
+
Toolkit.WithHandler<infer _Tools>,
|
|
613
|
+
infer E,
|
|
614
|
+
infer _R
|
|
615
|
+
> ? E
|
|
616
|
+
: never
|
|
617
|
+
|
|
618
|
+
type ExtractToolkitResolutionServices<ToolkitValue> = ToolkitValue extends Effect.Yieldable<
|
|
619
|
+
Toolkit.Toolkit<infer _Tools>,
|
|
620
|
+
Toolkit.WithHandler<infer _Tools>,
|
|
621
|
+
infer _E,
|
|
622
|
+
infer R
|
|
623
|
+
> ? R
|
|
624
|
+
: never
|
|
625
|
+
|
|
486
626
|
/**
|
|
487
627
|
* Utility type that extracts the error type from LanguageModel options.
|
|
488
628
|
*
|
|
@@ -493,29 +633,15 @@ export class GenerateObjectResponse<
|
|
|
493
633
|
* @category utility types
|
|
494
634
|
*/
|
|
495
635
|
export type ExtractError<Options> = Options extends {
|
|
496
|
-
readonly toolkit: Toolkit.WithHandler<infer _Tools>
|
|
497
636
|
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
|
|
637
|
+
readonly toolkit: infer ToolkitValue
|
|
638
|
+
} ? ExtractErrorFromToolkitOption<Exclude<ToolkitValue, undefined>, true>
|
|
508
639
|
: Options extends {
|
|
509
|
-
readonly toolkit:
|
|
510
|
-
} ?
|
|
640
|
+
readonly toolkit: infer ToolkitValue
|
|
641
|
+
} ? ExtractErrorFromToolkitOption<Exclude<ToolkitValue, undefined>, false>
|
|
511
642
|
: 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
|
|
643
|
+
readonly disableToolCallResolution: true
|
|
644
|
+
} ? AiError.AiError
|
|
519
645
|
: AiError.AiError
|
|
520
646
|
|
|
521
647
|
/**
|
|
@@ -527,27 +653,11 @@ export type ExtractError<Options> = Options extends {
|
|
|
527
653
|
* @category utility types
|
|
528
654
|
*/
|
|
529
655
|
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]>
|
|
656
|
+
readonly disableToolCallResolution: true
|
|
657
|
+
} ? never
|
|
537
658
|
: 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
|
|
659
|
+
readonly toolkit: infer Toolkit
|
|
660
|
+
} ? ExtractServicesFromToolkitOption<Exclude<Toolkit, undefined>>
|
|
551
661
|
: never
|
|
552
662
|
|
|
553
663
|
// =============================================================================
|
|
@@ -619,15 +729,28 @@ export interface ProviderOptions {
|
|
|
619
729
|
* The span to use to trace interactions with the large language model.
|
|
620
730
|
*/
|
|
621
731
|
readonly span: Span
|
|
732
|
+
|
|
733
|
+
/**
|
|
734
|
+
* The previous response identifier for incremental provider calls.
|
|
735
|
+
*/
|
|
736
|
+
readonly previousResponseId: string | undefined
|
|
737
|
+
|
|
738
|
+
/**
|
|
739
|
+
* The prompt reduced to messages not yet seen by the provider.
|
|
740
|
+
*/
|
|
741
|
+
readonly incrementalPrompt: Prompt.Prompt | undefined
|
|
622
742
|
}
|
|
623
743
|
|
|
624
744
|
/**
|
|
625
|
-
*
|
|
745
|
+
* Creates a LanguageModel service from provider-specific implementations.
|
|
746
|
+
*
|
|
747
|
+
* This constructor takes provider-specific implementations for text generation
|
|
748
|
+
* and streaming text generation and returns a LanguageModel service.
|
|
626
749
|
*
|
|
627
750
|
* @since 4.0.0
|
|
628
|
-
* @category
|
|
751
|
+
* @category constructors
|
|
629
752
|
*/
|
|
630
|
-
export
|
|
753
|
+
export const make: (params: {
|
|
631
754
|
/**
|
|
632
755
|
* A method which requests text generation from the large language model
|
|
633
756
|
* provider.
|
|
@@ -648,19 +771,14 @@ export interface ConstructorParams {
|
|
|
648
771
|
readonly streamText: (
|
|
649
772
|
options: ProviderOptions
|
|
650
773
|
) => Stream.Stream<Response.StreamPartEncoded, AiError.AiError, IdGenerator>
|
|
651
|
-
}
|
|
652
774
|
|
|
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
|
|
775
|
+
/**
|
|
776
|
+
* A function that transforms a `Schema.Codec` into a provider-compatible form
|
|
777
|
+
* for structured output generation.
|
|
778
|
+
*/
|
|
779
|
+
readonly codecTransformer?: CodecTransformer | undefined
|
|
780
|
+
}) => Effect.Effect<Service> = Effect.fnUntraced(function*(params) {
|
|
781
|
+
const codecTransformer = params.codecTransformer ?? defaultCodecTransformer
|
|
664
782
|
|
|
665
783
|
const parentSpanTransformer = yield* Effect.serviceOption(
|
|
666
784
|
CurrentSpanTransformer
|
|
@@ -700,7 +818,9 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
700
818
|
tools: [],
|
|
701
819
|
toolChoice: "none",
|
|
702
820
|
responseFormat: { type: "text" },
|
|
703
|
-
span
|
|
821
|
+
span,
|
|
822
|
+
previousResponseId: undefined,
|
|
823
|
+
incrementalPrompt: undefined
|
|
704
824
|
}
|
|
705
825
|
const content = yield* generateContent(options, providerOptions)
|
|
706
826
|
|
|
@@ -721,14 +841,13 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
721
841
|
})
|
|
722
842
|
)),
|
|
723
843
|
(effect, span) => Effect.withParentSpan(effect, span, { captureStackTrace: false }),
|
|
724
|
-
Effect.provideService(IdGenerator, idGenerator)
|
|
725
|
-
Effect.provideService(InternalCodecTransformer.CurrentCodecTransformer, codecTransformer)
|
|
844
|
+
Effect.provideService(IdGenerator, idGenerator)
|
|
726
845
|
)
|
|
727
846
|
) as any
|
|
728
847
|
|
|
729
848
|
const generateObject = <
|
|
730
849
|
ObjectEncoded extends Record<string, any>,
|
|
731
|
-
StructuredOutputSchema extends Schema.
|
|
850
|
+
StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
|
|
732
851
|
Options extends NoExcessProperties<
|
|
733
852
|
GenerateObjectOptions<any, StructuredOutputSchema>,
|
|
734
853
|
Options
|
|
@@ -764,7 +883,9 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
764
883
|
objectName,
|
|
765
884
|
schema: options.schema
|
|
766
885
|
},
|
|
767
|
-
span
|
|
886
|
+
span,
|
|
887
|
+
previousResponseId: undefined,
|
|
888
|
+
incrementalPrompt: undefined
|
|
768
889
|
}
|
|
769
890
|
|
|
770
891
|
const content = yield* generateContent(options, providerOptions)
|
|
@@ -800,8 +921,7 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
800
921
|
})
|
|
801
922
|
)),
|
|
802
923
|
(effect, span) => Effect.withParentSpan(effect, span, { captureStackTrace: false }),
|
|
803
|
-
Effect.provideService(IdGenerator, idGenerator)
|
|
804
|
-
Effect.provideService(InternalCodecTransformer.CurrentCodecTransformer, codecTransformer)
|
|
924
|
+
Effect.provideService(IdGenerator, idGenerator)
|
|
805
925
|
)
|
|
806
926
|
) as any
|
|
807
927
|
}
|
|
@@ -832,7 +952,9 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
832
952
|
tools: [],
|
|
833
953
|
toolChoice: "none",
|
|
834
954
|
responseFormat: { type: "text" },
|
|
835
|
-
span
|
|
955
|
+
span,
|
|
956
|
+
previousResponseId: undefined,
|
|
957
|
+
incrementalPrompt: undefined
|
|
836
958
|
}
|
|
837
959
|
|
|
838
960
|
// Resolve the content stream for the request
|
|
@@ -872,8 +994,7 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
872
994
|
})
|
|
873
995
|
: error
|
|
874
996
|
),
|
|
875
|
-
Stream.provideService(IdGenerator, idGenerator)
|
|
876
|
-
Stream.provideService(InternalCodecTransformer.CurrentCodecTransformer, codecTransformer)
|
|
997
|
+
Stream.provideService(IdGenerator, idGenerator)
|
|
877
998
|
) as any
|
|
878
999
|
|
|
879
1000
|
const generateContent: <
|
|
@@ -893,8 +1014,27 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
893
1014
|
options: Options & GenerateTextOptions<Tools>,
|
|
894
1015
|
providerOptions: Mutable<ProviderOptions>
|
|
895
1016
|
) {
|
|
1017
|
+
const tracker = Option.getOrUndefined(yield* Effect.serviceOption(ResponseIdTracker.ResponseIdTracker))
|
|
896
1018
|
const toolChoice = options.toolChoice ?? "auto"
|
|
897
1019
|
|
|
1020
|
+
const generateWithNonIncrementalFallback = () => {
|
|
1021
|
+
const requestOptions: ProviderOptions = {
|
|
1022
|
+
...providerOptions
|
|
1023
|
+
}
|
|
1024
|
+
const fallbackPrompt = requestOptions.prompt
|
|
1025
|
+
const fallbackOptions: ProviderOptions = {
|
|
1026
|
+
...requestOptions,
|
|
1027
|
+
prompt: fallbackPrompt,
|
|
1028
|
+
incrementalPrompt: undefined,
|
|
1029
|
+
previousResponseId: undefined
|
|
1030
|
+
}
|
|
1031
|
+
return requestOptions.incrementalPrompt
|
|
1032
|
+
? params.generateText(requestOptions).pipe(
|
|
1033
|
+
Effect.catchReason("AiError", "InvalidRequestError", (_) => params.generateText(fallbackOptions))
|
|
1034
|
+
)
|
|
1035
|
+
: params.generateText(requestOptions)
|
|
1036
|
+
}
|
|
1037
|
+
|
|
898
1038
|
// Check for pending approvals that need resolution
|
|
899
1039
|
const { approved, denied } = collectToolApprovals(
|
|
900
1040
|
providerOptions.prompt.content,
|
|
@@ -916,11 +1056,24 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
916
1056
|
})
|
|
917
1057
|
})
|
|
918
1058
|
}
|
|
1059
|
+
if (tracker) {
|
|
1060
|
+
const prepared = tracker.prepareUnsafe(providerOptions.prompt)
|
|
1061
|
+
if (Option.isSome(prepared)) {
|
|
1062
|
+
providerOptions.previousResponseId = prepared.value.previousResponseId
|
|
1063
|
+
providerOptions.incrementalPrompt = prepared.value.prompt
|
|
1064
|
+
}
|
|
1065
|
+
}
|
|
919
1066
|
const ResponseSchema = Schema.mutable(
|
|
920
1067
|
Schema.Array(Response.Part(Toolkit.empty))
|
|
921
1068
|
)
|
|
922
|
-
const rawContent = yield*
|
|
1069
|
+
const rawContent = yield* generateWithNonIncrementalFallback()
|
|
923
1070
|
const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
|
|
1071
|
+
if (tracker) {
|
|
1072
|
+
const responseMetadata = content.find((part) => part.type === "response-metadata")
|
|
1073
|
+
if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
|
|
1074
|
+
tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
|
|
1075
|
+
}
|
|
1076
|
+
}
|
|
924
1077
|
return content as Array<Response.Part<Tools>>
|
|
925
1078
|
}
|
|
926
1079
|
|
|
@@ -941,17 +1094,29 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
941
1094
|
})
|
|
942
1095
|
})
|
|
943
1096
|
}
|
|
1097
|
+
if (tracker) {
|
|
1098
|
+
const prepared = tracker.prepareUnsafe(providerOptions.prompt)
|
|
1099
|
+
if (Option.isSome(prepared)) {
|
|
1100
|
+
providerOptions.previousResponseId = prepared.value.previousResponseId
|
|
1101
|
+
providerOptions.incrementalPrompt = prepared.value.prompt
|
|
1102
|
+
}
|
|
1103
|
+
}
|
|
944
1104
|
const ResponseSchema = Schema.mutable(
|
|
945
1105
|
Schema.Array(Response.Part(Toolkit.empty))
|
|
946
1106
|
)
|
|
947
|
-
const rawContent = yield*
|
|
1107
|
+
const rawContent = yield* generateWithNonIncrementalFallback()
|
|
948
1108
|
const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
|
|
1109
|
+
if (tracker) {
|
|
1110
|
+
const responseMetadata = content.find((part) => part.type === "response-metadata")
|
|
1111
|
+
if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
|
|
1112
|
+
tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
|
|
1113
|
+
}
|
|
1114
|
+
}
|
|
949
1115
|
return content as Array<Response.Part<Tools>>
|
|
950
1116
|
}
|
|
951
1117
|
|
|
952
|
-
// Pre-resolve tool approvals before calling the LLM
|
|
1118
|
+
// Pre-resolve pending tool approvals before calling the LLM
|
|
953
1119
|
if (hasPendingApprovals) {
|
|
954
|
-
// Validate all approved tools exist in the toolkit
|
|
955
1120
|
for (const approval of approved) {
|
|
956
1121
|
if (approval.toolCall && !toolkit.tools[approval.toolCall.name]) {
|
|
957
1122
|
return yield* AiError.make({
|
|
@@ -965,7 +1130,6 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
965
1130
|
}
|
|
966
1131
|
}
|
|
967
1132
|
|
|
968
|
-
// Execute approved tools and create denial results
|
|
969
1133
|
const approvedResults = yield* executeApprovedToolCalls(
|
|
970
1134
|
approved,
|
|
971
1135
|
toolkit,
|
|
@@ -974,24 +1138,43 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
974
1138
|
const deniedResults = createDenialResults(denied)
|
|
975
1139
|
const preResolvedResults = [...approvedResults, ...deniedResults]
|
|
976
1140
|
|
|
977
|
-
// Add pre-resolved results to the prompt
|
|
978
1141
|
if (preResolvedResults.length > 0) {
|
|
979
|
-
const toolMessage = Prompt.makeMessage("tool", {
|
|
980
|
-
content: preResolvedResults
|
|
981
|
-
})
|
|
982
1142
|
providerOptions.prompt = Prompt.fromMessages([
|
|
983
1143
|
...providerOptions.prompt.content,
|
|
984
|
-
|
|
1144
|
+
Prompt.makeMessage("tool", { content: preResolvedResults })
|
|
985
1145
|
])
|
|
986
1146
|
}
|
|
987
1147
|
}
|
|
988
1148
|
|
|
1149
|
+
// Strip all resolved approval artifacts (both current and from previous
|
|
1150
|
+
// rounds) in a single pass before sending to the provider.
|
|
1151
|
+
{
|
|
1152
|
+
const { approved: allResolved, denied: allDenied } = collectToolApprovals(
|
|
1153
|
+
providerOptions.prompt.content
|
|
1154
|
+
)
|
|
1155
|
+
if (allResolved.length > 0 || allDenied.length > 0) {
|
|
1156
|
+
providerOptions.prompt = stripResolvedApprovals(
|
|
1157
|
+
providerOptions.prompt,
|
|
1158
|
+
allResolved,
|
|
1159
|
+
allDenied
|
|
1160
|
+
)
|
|
1161
|
+
}
|
|
1162
|
+
}
|
|
1163
|
+
|
|
989
1164
|
const tools = typeof toolChoice === "object" && "oneOf" in toolChoice
|
|
990
1165
|
? Object.values(toolkit.tools).filter((tool) => toolChoice.oneOf.includes(tool.name))
|
|
991
1166
|
: Object.values(toolkit.tools)
|
|
992
1167
|
providerOptions.tools = tools
|
|
993
1168
|
providerOptions.toolChoice = toolChoice
|
|
994
1169
|
|
|
1170
|
+
if (tracker) {
|
|
1171
|
+
const prepared = tracker.prepareUnsafe(providerOptions.prompt)
|
|
1172
|
+
if (Option.isSome(prepared)) {
|
|
1173
|
+
providerOptions.previousResponseId = prepared.value.previousResponseId
|
|
1174
|
+
providerOptions.incrementalPrompt = prepared.value.prompt
|
|
1175
|
+
}
|
|
1176
|
+
}
|
|
1177
|
+
|
|
995
1178
|
// Construct the response schema with the tools from the toolkit
|
|
996
1179
|
const ResponseSchema = Schema.mutable(
|
|
997
1180
|
Schema.Array(Response.Part(toolkit))
|
|
@@ -1000,12 +1183,18 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1000
1183
|
// If tool call resolution is disabled, return the response without
|
|
1001
1184
|
// resolving the tool calls that were generated
|
|
1002
1185
|
if (options.disableToolCallResolution === true) {
|
|
1003
|
-
const rawContent = yield*
|
|
1186
|
+
const rawContent = yield* generateWithNonIncrementalFallback()
|
|
1004
1187
|
const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
|
|
1188
|
+
if (tracker) {
|
|
1189
|
+
const responseMetadata = content.find((part) => part.type === "response-metadata")
|
|
1190
|
+
if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
|
|
1191
|
+
tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
|
|
1192
|
+
}
|
|
1193
|
+
}
|
|
1005
1194
|
return content as Array<Response.Part<Tools>>
|
|
1006
1195
|
}
|
|
1007
1196
|
|
|
1008
|
-
const rawContent = yield*
|
|
1197
|
+
const rawContent = yield* generateWithNonIncrementalFallback()
|
|
1009
1198
|
|
|
1010
1199
|
// Resolve the generated tool calls
|
|
1011
1200
|
const toolResults = yield* resolveToolCalls(
|
|
@@ -1024,6 +1213,13 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1024
1213
|
|
|
1025
1214
|
const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
|
|
1026
1215
|
|
|
1216
|
+
if (tracker) {
|
|
1217
|
+
const responseMetadata = content.find((part) => part.type === "response-metadata")
|
|
1218
|
+
if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
|
|
1219
|
+
tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
|
|
1220
|
+
}
|
|
1221
|
+
}
|
|
1222
|
+
|
|
1027
1223
|
// Return the content merged with the tool call results
|
|
1028
1224
|
return [...content, ...toolResults] as Array<Response.Part<Tools>>
|
|
1029
1225
|
})
|
|
@@ -1040,21 +1236,11 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1040
1236
|
AiError.AiError | Schema.SchemaError,
|
|
1041
1237
|
IdGenerator
|
|
1042
1238
|
>,
|
|
1043
|
-
Options extends {
|
|
1044
|
-
|
|
1045
|
-
Toolkit.WithHandler<Tools>,
|
|
1046
|
-
infer _E,
|
|
1047
|
-
infer _R
|
|
1048
|
-
>
|
|
1049
|
-
} ? _E
|
|
1239
|
+
Options extends { readonly toolkit: infer ToolkitValue } ?
|
|
1240
|
+
ExtractToolkitResolutionError<Exclude<ToolkitValue, undefined>>
|
|
1050
1241
|
: never,
|
|
1051
|
-
Options extends {
|
|
1052
|
-
|
|
1053
|
-
Toolkit.WithHandler<Tools>,
|
|
1054
|
-
infer _E,
|
|
1055
|
-
infer _R
|
|
1056
|
-
>
|
|
1057
|
-
} ? _R
|
|
1242
|
+
Options extends { readonly toolkit: infer ToolkitValue } ?
|
|
1243
|
+
ExtractToolkitResolutionServices<Exclude<ToolkitValue, undefined>>
|
|
1058
1244
|
: never
|
|
1059
1245
|
> = Effect.fnUntraced(function*<
|
|
1060
1246
|
Tools extends Record<string, Tool.Any>,
|
|
@@ -1063,8 +1249,27 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1063
1249
|
options: Options & GenerateTextOptions<Tools>,
|
|
1064
1250
|
providerOptions: Mutable<ProviderOptions>
|
|
1065
1251
|
) {
|
|
1252
|
+
const tracker = Option.getOrUndefined(yield* Effect.serviceOption(ResponseIdTracker.ResponseIdTracker))
|
|
1066
1253
|
const toolChoice = options.toolChoice ?? "auto"
|
|
1067
1254
|
|
|
1255
|
+
const streamWithNonIncrementalFallback = () => {
|
|
1256
|
+
const requestOptions: ProviderOptions = {
|
|
1257
|
+
...providerOptions
|
|
1258
|
+
}
|
|
1259
|
+
const fallbackPrompt = requestOptions.prompt
|
|
1260
|
+
const fallbackOptions: ProviderOptions = {
|
|
1261
|
+
...requestOptions,
|
|
1262
|
+
prompt: fallbackPrompt,
|
|
1263
|
+
incrementalPrompt: undefined,
|
|
1264
|
+
previousResponseId: undefined
|
|
1265
|
+
}
|
|
1266
|
+
return requestOptions.incrementalPrompt
|
|
1267
|
+
? params.streamText(requestOptions).pipe(
|
|
1268
|
+
Stream.catchReason("AiError", "InvalidRequestError", (_) => params.streamText(fallbackOptions))
|
|
1269
|
+
)
|
|
1270
|
+
: params.streamText(requestOptions)
|
|
1271
|
+
}
|
|
1272
|
+
|
|
1068
1273
|
// Check for pending approvals that need resolution
|
|
1069
1274
|
const { approved: pendingApproved, denied: pendingDenied } = collectToolApprovals(providerOptions.prompt.content, {
|
|
1070
1275
|
excludeResolved: true
|
|
@@ -1085,23 +1290,40 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1085
1290
|
})
|
|
1086
1291
|
})
|
|
1087
1292
|
}
|
|
1293
|
+
if (tracker) {
|
|
1294
|
+
const prepared = tracker.prepareUnsafe(providerOptions.prompt)
|
|
1295
|
+
if (Option.isSome(prepared)) {
|
|
1296
|
+
providerOptions.previousResponseId = prepared.value.previousResponseId
|
|
1297
|
+
providerOptions.incrementalPrompt = prepared.value.prompt
|
|
1298
|
+
}
|
|
1299
|
+
}
|
|
1088
1300
|
const schema = Schema.NonEmptyArray(Response.StreamPart(Toolkit.empty))
|
|
1089
1301
|
const decodeParts = Schema.decodeEffect(schema)
|
|
1090
|
-
return
|
|
1091
|
-
|
|
1092
|
-
.
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1302
|
+
return pipe(
|
|
1303
|
+
streamWithNonIncrementalFallback(),
|
|
1304
|
+
Stream.mapArrayEffect((parts) =>
|
|
1305
|
+
decodeParts(parts).pipe(
|
|
1306
|
+
tracker ?
|
|
1307
|
+
Effect.tap((decodedParts) => {
|
|
1308
|
+
for (const part of decodedParts) {
|
|
1309
|
+
if (part.type === "response-metadata" && Predicate.isNotUndefined(part.id)) {
|
|
1310
|
+
tracker.markParts(providerOptions.prompt.content, part.id)
|
|
1311
|
+
}
|
|
1312
|
+
}
|
|
1313
|
+
return Effect.void
|
|
1314
|
+
}) :
|
|
1315
|
+
identity
|
|
1316
|
+
)
|
|
1317
|
+
)
|
|
1318
|
+
) as Stream.Stream<
|
|
1319
|
+
Response.StreamPart<Tools>,
|
|
1320
|
+
AiError.AiError | Schema.SchemaError,
|
|
1321
|
+
IdGenerator
|
|
1322
|
+
>
|
|
1099
1323
|
}
|
|
1100
1324
|
|
|
1101
1325
|
// If there is a toolkit resolve and apply it to the provider options
|
|
1102
|
-
const toolkit =
|
|
1103
|
-
? yield* options.toolkit
|
|
1104
|
-
: options.toolkit
|
|
1326
|
+
const toolkit = yield* resolveToolkit<Tools, any, any>(options.toolkit)
|
|
1105
1327
|
|
|
1106
1328
|
// If the toolkit is empty, return immediately
|
|
1107
1329
|
if (Object.values(toolkit.tools).length === 0) {
|
|
@@ -1117,22 +1339,42 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1117
1339
|
})
|
|
1118
1340
|
})
|
|
1119
1341
|
}
|
|
1342
|
+
if (tracker) {
|
|
1343
|
+
const prepared = tracker.prepareUnsafe(providerOptions.prompt)
|
|
1344
|
+
if (Option.isSome(prepared)) {
|
|
1345
|
+
providerOptions.previousResponseId = prepared.value.previousResponseId
|
|
1346
|
+
providerOptions.incrementalPrompt = prepared.value.prompt
|
|
1347
|
+
}
|
|
1348
|
+
}
|
|
1120
1349
|
const schema = Schema.NonEmptyArray(Response.StreamPart(Toolkit.empty))
|
|
1121
1350
|
const decodeParts = Schema.decodeEffect(schema)
|
|
1122
|
-
return
|
|
1123
|
-
|
|
1124
|
-
.
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1351
|
+
return pipe(
|
|
1352
|
+
streamWithNonIncrementalFallback(),
|
|
1353
|
+
Stream.mapArrayEffect((parts) =>
|
|
1354
|
+
decodeParts(parts).pipe(
|
|
1355
|
+
tracker ?
|
|
1356
|
+
Effect.tap((decodedParts) => {
|
|
1357
|
+
for (const part of decodedParts) {
|
|
1358
|
+
if (part.type === "response-metadata" && part.id) {
|
|
1359
|
+
tracker.markParts(providerOptions.prompt.content, part.id)
|
|
1360
|
+
}
|
|
1361
|
+
}
|
|
1362
|
+
return Effect.void
|
|
1363
|
+
}) :
|
|
1364
|
+
identity
|
|
1365
|
+
)
|
|
1366
|
+
)
|
|
1367
|
+
) as Stream.Stream<
|
|
1368
|
+
Response.StreamPart<Tools>,
|
|
1369
|
+
AiError.AiError | Schema.SchemaError,
|
|
1370
|
+
IdGenerator
|
|
1371
|
+
>
|
|
1131
1372
|
}
|
|
1132
1373
|
|
|
1133
|
-
// Pre-resolve tool approvals before calling the LLM
|
|
1374
|
+
// Pre-resolve pending tool approvals before calling the LLM
|
|
1375
|
+
let preResolvedStreamParts: Array<Response.StreamPart<Tools>> = []
|
|
1376
|
+
|
|
1134
1377
|
if (hasPendingApprovals) {
|
|
1135
|
-
// Validate all approved tools exist in the toolkit
|
|
1136
1378
|
for (const approval of pendingApproved) {
|
|
1137
1379
|
if (approval.toolCall && !toolkit.tools[approval.toolCall.name]) {
|
|
1138
1380
|
return yield* AiError.make({
|
|
@@ -1146,7 +1388,6 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1146
1388
|
}
|
|
1147
1389
|
}
|
|
1148
1390
|
|
|
1149
|
-
// Execute approved tools and create denial results
|
|
1150
1391
|
const approvedResults = yield* executeApprovedToolCalls(
|
|
1151
1392
|
pendingApproved,
|
|
1152
1393
|
toolkit,
|
|
@@ -1155,16 +1396,44 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1155
1396
|
const deniedResults = createDenialResults(pendingDenied)
|
|
1156
1397
|
const preResolvedResults = [...approvedResults, ...deniedResults]
|
|
1157
1398
|
|
|
1158
|
-
// Add pre-resolved results to the prompt
|
|
1159
1399
|
if (preResolvedResults.length > 0) {
|
|
1160
|
-
const toolMessage = Prompt.makeMessage("tool", {
|
|
1161
|
-
content: preResolvedResults
|
|
1162
|
-
})
|
|
1163
1400
|
providerOptions.prompt = Prompt.fromMessages([
|
|
1164
1401
|
...providerOptions.prompt.content,
|
|
1165
|
-
|
|
1402
|
+
Prompt.makeMessage("tool", { content: preResolvedResults })
|
|
1166
1403
|
])
|
|
1167
1404
|
}
|
|
1405
|
+
|
|
1406
|
+
// Emit pre-resolved tool-results as stream parts so Chat.streamText
|
|
1407
|
+
// persists them to history. This lets collectToolApprovals find them
|
|
1408
|
+
// on subsequent rounds and skip the now-resolved approvals.
|
|
1409
|
+
// Note: r.result is already encoded (from executeApprovedToolCalls /
|
|
1410
|
+
// createDenialResults), so it goes into both result and encodedResult.
|
|
1411
|
+
for (const r of preResolvedResults) {
|
|
1412
|
+
preResolvedStreamParts.push(
|
|
1413
|
+
Response.makePart("tool-result", {
|
|
1414
|
+
id: r.id,
|
|
1415
|
+
name: r.name,
|
|
1416
|
+
providerExecuted: false,
|
|
1417
|
+
preliminary: false,
|
|
1418
|
+
result: r.result,
|
|
1419
|
+
encodedResult: r.result,
|
|
1420
|
+
isFailure: r.isFailure
|
|
1421
|
+
}) as Response.StreamPart<Tools>
|
|
1422
|
+
)
|
|
1423
|
+
}
|
|
1424
|
+
}
|
|
1425
|
+
|
|
1426
|
+
// Strip all resolved approval artifacts (both current and from previous
|
|
1427
|
+
// rounds) in a single pass before sending to the provider.
|
|
1428
|
+
const { approved: allResolved, denied: allDenied } = collectToolApprovals(
|
|
1429
|
+
providerOptions.prompt.content
|
|
1430
|
+
)
|
|
1431
|
+
if (allResolved.length > 0 || allDenied.length > 0) {
|
|
1432
|
+
providerOptions.prompt = stripResolvedApprovals(
|
|
1433
|
+
providerOptions.prompt,
|
|
1434
|
+
allResolved,
|
|
1435
|
+
allDenied
|
|
1436
|
+
)
|
|
1168
1437
|
}
|
|
1169
1438
|
|
|
1170
1439
|
const tools = typeof toolChoice === "object" && "oneOf" in toolChoice
|
|
@@ -1173,20 +1442,39 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1173
1442
|
providerOptions.tools = tools
|
|
1174
1443
|
providerOptions.toolChoice = toolChoice
|
|
1175
1444
|
|
|
1445
|
+
if (tracker) {
|
|
1446
|
+
const prepared = tracker.prepareUnsafe(providerOptions.prompt)
|
|
1447
|
+
if (Option.isSome(prepared)) {
|
|
1448
|
+
providerOptions.previousResponseId = prepared.value.previousResponseId
|
|
1449
|
+
providerOptions.incrementalPrompt = prepared.value.prompt
|
|
1450
|
+
}
|
|
1451
|
+
}
|
|
1452
|
+
|
|
1176
1453
|
// If tool call resolution is disabled, return the response without
|
|
1177
1454
|
// resolving the tool calls that were generated
|
|
1178
1455
|
if (options.disableToolCallResolution === true) {
|
|
1179
1456
|
const schema = Schema.NonEmptyArray(Response.StreamPart(toolkit))
|
|
1180
1457
|
const decodeParts = Schema.decodeEffect(schema)
|
|
1181
|
-
return
|
|
1182
|
-
.
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1458
|
+
return streamWithNonIncrementalFallback().pipe(
|
|
1459
|
+
Stream.mapArrayEffect((parts) =>
|
|
1460
|
+
decodeParts(parts).pipe(
|
|
1461
|
+
tracker ?
|
|
1462
|
+
Effect.tap((decodedParts) => {
|
|
1463
|
+
for (const part of decodedParts) {
|
|
1464
|
+
if (part.type === "response-metadata" && Predicate.isNotUndefined(part.id)) {
|
|
1465
|
+
tracker.markParts(providerOptions.prompt.content, part.id)
|
|
1466
|
+
}
|
|
1467
|
+
}
|
|
1468
|
+
return Effect.void
|
|
1469
|
+
}) :
|
|
1470
|
+
identity
|
|
1471
|
+
)
|
|
1472
|
+
)
|
|
1473
|
+
) as Stream.Stream<
|
|
1474
|
+
Response.StreamPart<Tools>,
|
|
1475
|
+
AiError.AiError | Schema.SchemaError,
|
|
1476
|
+
IdGenerator
|
|
1477
|
+
>
|
|
1190
1478
|
}
|
|
1191
1479
|
|
|
1192
1480
|
const ResponseSchema = Schema.NonEmptyArray(Response.StreamPart(toolkit))
|
|
@@ -1196,59 +1484,81 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1196
1484
|
const queue = yield* Queue.make<
|
|
1197
1485
|
Response.StreamPart<Tools>,
|
|
1198
1486
|
| AiError.AiError
|
|
1199
|
-
| AiError.AiErrorReason
|
|
1200
1487
|
| Cause.Done
|
|
1201
1488
|
| Schema.SchemaError
|
|
1202
1489
|
>()
|
|
1490
|
+
const deferredFinishParts: Array<Response.StreamPart<Tools>> = []
|
|
1491
|
+
|
|
1492
|
+
// Emit pre-resolved tool results so Chat.streamText persists them to
|
|
1493
|
+
// history. This ensures collectToolApprovals({ excludeResolved }) can
|
|
1494
|
+
// find the corresponding tool-results on future rounds.
|
|
1495
|
+
if (preResolvedStreamParts.length > 0) {
|
|
1496
|
+
yield* Queue.offerAll(queue, preResolvedStreamParts)
|
|
1497
|
+
}
|
|
1203
1498
|
|
|
1204
1499
|
// FiberSet to track concurrent tool call handlers
|
|
1205
1500
|
const toolCallFibers = yield* FiberSet.make<void, AiError.AiError>()
|
|
1206
1501
|
|
|
1207
1502
|
// Helper function to handle tool calls with approval logic
|
|
1208
|
-
const handleToolCall = (part: Response.ToolCallPartEncoded)
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1503
|
+
const handleToolCall = Effect.fnUntraced(function*(part: Response.ToolCallPartEncoded) {
|
|
1504
|
+
const tool = toolkit.tools[part.name]
|
|
1505
|
+
if (!tool) return
|
|
1506
|
+
|
|
1507
|
+
const needsApproval = yield* isApprovalNeeded(
|
|
1508
|
+
tool,
|
|
1509
|
+
part,
|
|
1510
|
+
providerOptions.prompt.content
|
|
1511
|
+
)
|
|
1214
1512
|
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1513
|
+
if (needsApproval) {
|
|
1514
|
+
const idGen = yield* IdGenerator
|
|
1515
|
+
const approvalId = yield* idGen.generateId()
|
|
1516
|
+
const approvalPart = Response.makePart("tool-approval-request", {
|
|
1517
|
+
approvalId,
|
|
1518
|
+
toolCallId: part.id
|
|
1519
|
+
}) as Response.StreamPart<Tools>
|
|
1520
|
+
yield* Queue.offer(queue, approvalPart)
|
|
1521
|
+
return
|
|
1522
|
+
}
|
|
1220
1523
|
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
const
|
|
1225
|
-
|
|
1226
|
-
|
|
1524
|
+
yield* toolkit.handle(part.name, part.params as any).pipe(
|
|
1525
|
+
Stream.unwrap,
|
|
1526
|
+
Stream.runForEach((result) => {
|
|
1527
|
+
const toolResultPart = Response.makePart("tool-result", {
|
|
1528
|
+
id: part.id,
|
|
1529
|
+
name: part.name,
|
|
1530
|
+
providerExecuted: false,
|
|
1531
|
+
...result
|
|
1227
1532
|
}) 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
|
-
})
|
|
1533
|
+
return Queue.offer(queue, toolResultPart)
|
|
1534
|
+
})
|
|
1535
|
+
)
|
|
1536
|
+
})
|
|
1245
1537
|
|
|
1246
|
-
yield*
|
|
1538
|
+
yield* streamWithNonIncrementalFallback().pipe(
|
|
1247
1539
|
Stream.runForEachArray(
|
|
1248
1540
|
Effect.fnUntraced(function*(chunk) {
|
|
1249
1541
|
const parts = yield* decodeParts(chunk)
|
|
1250
|
-
|
|
1251
|
-
|
|
1542
|
+
if (tracker) {
|
|
1543
|
+
for (const part of parts) {
|
|
1544
|
+
if (part.type === "response-metadata" && part.id) {
|
|
1545
|
+
tracker.markParts(providerOptions.prompt.content, part.id)
|
|
1546
|
+
}
|
|
1547
|
+
}
|
|
1548
|
+
}
|
|
1549
|
+
// Defer finish parts until all tool handlers complete. This guarantees
|
|
1550
|
+
// tool results are emitted before finish in streaming mode.
|
|
1551
|
+
const immediateParts: Array<Response.StreamPart<Tools>> = []
|
|
1552
|
+
for (const part of parts) {
|
|
1553
|
+
if (part.type === "finish") {
|
|
1554
|
+
deferredFinishParts.push(part)
|
|
1555
|
+
} else {
|
|
1556
|
+
immediateParts.push(part)
|
|
1557
|
+
}
|
|
1558
|
+
}
|
|
1559
|
+
if (immediateParts.length > 0) {
|
|
1560
|
+
yield* Queue.offerAll(queue, immediateParts)
|
|
1561
|
+
}
|
|
1252
1562
|
// Fork tool call handlers - use the raw chunk for encoded params
|
|
1253
1563
|
for (const part of chunk) {
|
|
1254
1564
|
if (part.type === "tool-call" && part.providerExecuted !== true) {
|
|
@@ -1266,6 +1576,9 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1266
1576
|
FiberSet.awaitEmpty(toolCallFibers)
|
|
1267
1577
|
)
|
|
1268
1578
|
),
|
|
1579
|
+
Effect.andThen(
|
|
1580
|
+
Queue.offerAll(queue, deferredFinishParts)
|
|
1581
|
+
),
|
|
1269
1582
|
// And then end the queue
|
|
1270
1583
|
Effect.andThen(Queue.end(queue)),
|
|
1271
1584
|
Effect.tapCause((cause) => Queue.failCause(queue, cause)),
|
|
@@ -1276,9 +1589,9 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1276
1589
|
}) as any
|
|
1277
1590
|
|
|
1278
1591
|
return {
|
|
1279
|
-
generateText,
|
|
1592
|
+
generateText: generateText as Service["generateText"],
|
|
1280
1593
|
generateObject,
|
|
1281
|
-
streamText
|
|
1594
|
+
streamText: streamText as Service["streamText"]
|
|
1282
1595
|
} as const
|
|
1283
1596
|
})
|
|
1284
1597
|
|
|
@@ -1310,19 +1623,48 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1310
1623
|
* @since 4.0.0
|
|
1311
1624
|
* @category text generation
|
|
1312
1625
|
*/
|
|
1313
|
-
export const generateText
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
>
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1626
|
+
export const generateText: {
|
|
1627
|
+
// No toolkit: force `{}` instead of falling back to `Record<string, Tool.Any>`.
|
|
1628
|
+
<
|
|
1629
|
+
Options extends NoExcessProperties<GenerateTextOptionsWithoutToolkit, Options>
|
|
1630
|
+
>(
|
|
1631
|
+
options: Options & GenerateTextOptionsWithoutToolkit
|
|
1632
|
+
): Effect.Effect<
|
|
1633
|
+
GenerateTextResponse<{}>,
|
|
1634
|
+
ExtractError<Options>,
|
|
1635
|
+
LanguageModel | ExtractServices<Options>
|
|
1636
|
+
>
|
|
1637
|
+
// Generic toolkit: preserve caller-supplied `Tools` in helpers like `<Tools>(toolkit: WithHandler<Tools>) => ...`.
|
|
1638
|
+
<
|
|
1639
|
+
Tools extends Record<string, Tool.Any>,
|
|
1640
|
+
Options extends NoExcessProperties<GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> }, Options>
|
|
1641
|
+
>(
|
|
1642
|
+
options: Options & GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> }
|
|
1643
|
+
): Effect.Effect<
|
|
1644
|
+
GenerateTextResponse<Tools>,
|
|
1645
|
+
ExtractError<Options>,
|
|
1646
|
+
LanguageModel | ExtractServices<Options>
|
|
1647
|
+
>
|
|
1648
|
+
// Toolkit unions: recover distributive `ExtractTools<Options>` inference for `toolkitA | toolkitB` call sites.
|
|
1649
|
+
<
|
|
1650
|
+
Options extends {
|
|
1651
|
+
readonly toolkit: ToolkitOption<any>
|
|
1652
|
+
} & NoExcessProperties<GenerateTextOptions<any>, Options>
|
|
1653
|
+
>(
|
|
1654
|
+
options: Options & GenerateTextOptions<ExtractTools<Options>> & { readonly toolkit: Options["toolkit"] }
|
|
1655
|
+
): Effect.Effect<
|
|
1656
|
+
GenerateTextResponse<ExtractTools<Options>>,
|
|
1657
|
+
ExtractError<Options>,
|
|
1658
|
+
ExtractServices<Options> | LanguageModel
|
|
1659
|
+
>
|
|
1660
|
+
} = (options: GenerateTextOptions<any>): Effect.Effect<
|
|
1661
|
+
GenerateTextResponse<any>,
|
|
1662
|
+
AiError.AiError,
|
|
1663
|
+
LanguageModel
|
|
1322
1664
|
> =>
|
|
1323
1665
|
Effect.flatMap(
|
|
1324
1666
|
Effect.service(LanguageModel),
|
|
1325
|
-
(model) => model.generateText(options)
|
|
1667
|
+
(model) => model.generateText(options as any)
|
|
1326
1668
|
)
|
|
1327
1669
|
|
|
1328
1670
|
/**
|
|
@@ -1359,23 +1701,22 @@ export const generateText = <
|
|
|
1359
1701
|
*/
|
|
1360
1702
|
export const generateObject = <
|
|
1361
1703
|
ObjectEncoded extends Record<string, any>,
|
|
1362
|
-
StructuredOutputSchema extends Schema.
|
|
1704
|
+
StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
|
|
1363
1705
|
Options extends NoExcessProperties<
|
|
1364
1706
|
GenerateObjectOptions<any, StructuredOutputSchema>,
|
|
1365
1707
|
Options
|
|
1366
|
-
|
|
1367
|
-
Tools extends Record<string, Tool.Any> = {}
|
|
1708
|
+
>
|
|
1368
1709
|
>(
|
|
1369
|
-
options: Options & GenerateObjectOptions<
|
|
1710
|
+
options: Options & GenerateObjectOptions<ExtractTools<Options>, StructuredOutputSchema>
|
|
1370
1711
|
): Effect.Effect<
|
|
1371
|
-
GenerateObjectResponse<
|
|
1712
|
+
GenerateObjectResponse<ExtractTools<Options>, StructuredOutputSchema["Type"]>,
|
|
1372
1713
|
ExtractError<Options>,
|
|
1373
1714
|
ExtractServices<Options> | StructuredOutputSchema["DecodingServices"] | LanguageModel
|
|
1374
1715
|
> =>
|
|
1375
1716
|
Effect.flatMap(
|
|
1376
1717
|
Effect.service(LanguageModel),
|
|
1377
|
-
(model) => model.generateObject(options)
|
|
1378
|
-
)
|
|
1718
|
+
(model) => model.generateObject(options as any)
|
|
1719
|
+
) as any
|
|
1379
1720
|
|
|
1380
1721
|
/**
|
|
1381
1722
|
* Generate text using a language model with streaming output.
|
|
@@ -1401,20 +1742,49 @@ export const generateObject = <
|
|
|
1401
1742
|
* @since 4.0.0
|
|
1402
1743
|
* @category text generation
|
|
1403
1744
|
*/
|
|
1404
|
-
export const streamText
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
>
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1745
|
+
export const streamText: {
|
|
1746
|
+
// No toolkit: force `{}` instead of falling back to `Record<string, Tool.Any>`.
|
|
1747
|
+
<
|
|
1748
|
+
Options extends NoExcessProperties<GenerateTextOptionsWithoutToolkit, Options>
|
|
1749
|
+
>(
|
|
1750
|
+
options: Options & GenerateTextOptionsWithoutToolkit
|
|
1751
|
+
): Stream.Stream<
|
|
1752
|
+
Response.StreamPart<{}>,
|
|
1753
|
+
ExtractError<Options>,
|
|
1754
|
+
ExtractServices<Options> | LanguageModel
|
|
1755
|
+
>
|
|
1756
|
+
// Generic toolkit: preserve caller-supplied `Tools` in helpers like `<Tools>(toolkit: WithHandler<Tools>) => ...`.
|
|
1757
|
+
<
|
|
1758
|
+
Tools extends Record<string, Tool.Any>,
|
|
1759
|
+
Options extends NoExcessProperties<GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> }, Options>
|
|
1760
|
+
>(
|
|
1761
|
+
options: Options & GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> }
|
|
1762
|
+
): Stream.Stream<
|
|
1763
|
+
Response.StreamPart<Tools>,
|
|
1764
|
+
ExtractError<Options>,
|
|
1765
|
+
ExtractServices<Options> | LanguageModel
|
|
1766
|
+
>
|
|
1767
|
+
// Toolkit unions: recover distributive `ExtractTools<Options>` inference for `toolkitA | toolkitB` call sites.
|
|
1768
|
+
<
|
|
1769
|
+
Options extends {
|
|
1770
|
+
readonly toolkit: ToolkitOption<any>
|
|
1771
|
+
} & NoExcessProperties<GenerateTextOptions<any>, Options>
|
|
1772
|
+
>(
|
|
1773
|
+
options: Options & GenerateTextOptions<ExtractTools<Options>> & { readonly toolkit: Options["toolkit"] }
|
|
1774
|
+
): Stream.Stream<
|
|
1775
|
+
Response.StreamPart<ExtractTools<Options>>,
|
|
1776
|
+
ExtractError<Options>,
|
|
1777
|
+
ExtractServices<Options> | LanguageModel
|
|
1778
|
+
>
|
|
1779
|
+
} = (options: GenerateTextOptions<any>): Stream.Stream<
|
|
1780
|
+
Response.StreamPart<{}>,
|
|
1781
|
+
AiError.AiError,
|
|
1782
|
+
LanguageModel
|
|
1413
1783
|
> =>
|
|
1414
1784
|
Stream.unwrap(Effect.map(
|
|
1415
1785
|
Effect.service(LanguageModel),
|
|
1416
|
-
(model) => model.streamText(options)
|
|
1417
|
-
))
|
|
1786
|
+
(model) => model.streamText(options as any)
|
|
1787
|
+
)) as any
|
|
1418
1788
|
|
|
1419
1789
|
// =============================================================================
|
|
1420
1790
|
// Tool Approval Helpers
|
|
@@ -1506,6 +1876,63 @@ const collectToolApprovals = (
|
|
|
1506
1876
|
return { approved, denied }
|
|
1507
1877
|
}
|
|
1508
1878
|
|
|
1879
|
+
/**
|
|
1880
|
+
* Strip resolved approval artifacts from the prompt before sending to the
|
|
1881
|
+
* provider. After pre-resolving approvals (executing approved tools and
|
|
1882
|
+
* creating denial results), the original `tool-approval-request` parts in
|
|
1883
|
+
* assistant messages and `tool-approval-response` parts in tool messages are
|
|
1884
|
+
* no longer needed. Leaving them in causes provider-specific errors (e.g.
|
|
1885
|
+
* OpenAI rejects `mcp_approval_response` items that reference approval
|
|
1886
|
+
* requests it never issued).
|
|
1887
|
+
*/
|
|
1888
|
+
const stripResolvedApprovals = (
|
|
1889
|
+
prompt: Prompt.Prompt,
|
|
1890
|
+
approved: ReadonlyArray<ApprovalResult>,
|
|
1891
|
+
denied: ReadonlyArray<ApprovalResult>
|
|
1892
|
+
): Prompt.Prompt => {
|
|
1893
|
+
const resolvedApprovalIds = new Set<string>()
|
|
1894
|
+
for (const a of approved) resolvedApprovalIds.add(a.approvalId)
|
|
1895
|
+
for (const d of denied) resolvedApprovalIds.add(d.approvalId)
|
|
1896
|
+
|
|
1897
|
+
const cleanedMessages: Array<Prompt.Message> = []
|
|
1898
|
+
|
|
1899
|
+
for (const message of prompt.content) {
|
|
1900
|
+
if (message.role === "assistant") {
|
|
1901
|
+
const filteredContent = message.content.filter(
|
|
1902
|
+
(part) =>
|
|
1903
|
+
part.type !== "tool-approval-request" ||
|
|
1904
|
+
!resolvedApprovalIds.has(part.approvalId)
|
|
1905
|
+
)
|
|
1906
|
+
if (filteredContent.length > 0) {
|
|
1907
|
+
cleanedMessages.push(
|
|
1908
|
+
Prompt.makeMessage("assistant", {
|
|
1909
|
+
content: filteredContent,
|
|
1910
|
+
options: message.options
|
|
1911
|
+
})
|
|
1912
|
+
)
|
|
1913
|
+
}
|
|
1914
|
+
} else if (message.role === "tool") {
|
|
1915
|
+
const filteredContent = message.content.filter(
|
|
1916
|
+
(part) =>
|
|
1917
|
+
part.type !== "tool-approval-response" ||
|
|
1918
|
+
!resolvedApprovalIds.has(part.approvalId)
|
|
1919
|
+
)
|
|
1920
|
+
if (filteredContent.length > 0) {
|
|
1921
|
+
cleanedMessages.push(
|
|
1922
|
+
Prompt.makeMessage("tool", {
|
|
1923
|
+
content: filteredContent,
|
|
1924
|
+
options: message.options
|
|
1925
|
+
})
|
|
1926
|
+
)
|
|
1927
|
+
}
|
|
1928
|
+
} else {
|
|
1929
|
+
cleanedMessages.push(message)
|
|
1930
|
+
}
|
|
1931
|
+
}
|
|
1932
|
+
|
|
1933
|
+
return Prompt.fromMessages(cleanedMessages)
|
|
1934
|
+
}
|
|
1935
|
+
|
|
1509
1936
|
const isApprovalNeeded = Effect.fnUntraced(function*<T extends Tool.Any>(
|
|
1510
1937
|
tool: T,
|
|
1511
1938
|
toolCall: Response.ToolCallPartEncoded,
|
|
@@ -1734,11 +2161,11 @@ const resolveToolCalls = <Tools extends Record<string, Tool.Any>>(
|
|
|
1734
2161
|
// =============================================================================
|
|
1735
2162
|
|
|
1736
2163
|
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>
|
|
2164
|
+
toolkit: ToolkitInput<Tools, E, R>
|
|
1740
2165
|
): Effect.Effect<Toolkit.WithHandler<Tools>, E, R> =>
|
|
1741
|
-
"asEffect" in toolkit
|
|
2166
|
+
("asEffect" in toolkit
|
|
2167
|
+
? toolkit.asEffect()
|
|
2168
|
+
: Effect.succeed(toolkit as unknown as Toolkit.WithHandler<Tools>)) as any
|
|
1742
2169
|
|
|
1743
2170
|
/** @internal */
|
|
1744
2171
|
export const getObjectName = <StructuredOutputSchema extends Schema.Top>(
|
|
@@ -1761,29 +2188,32 @@ export const getObjectName = <StructuredOutputSchema extends Schema.Top>(
|
|
|
1761
2188
|
const resolveStructuredOutput = Effect.fnUntraced(function*<
|
|
1762
2189
|
StructuredOutputSchema extends Schema.Top
|
|
1763
2190
|
>(response: ReadonlyArray<Response.AllParts<any>>, schema: StructuredOutputSchema) {
|
|
1764
|
-
const
|
|
2191
|
+
const texts: Array<string> = []
|
|
1765
2192
|
for (const part of response) {
|
|
1766
2193
|
if (part.type === "text") {
|
|
1767
|
-
|
|
2194
|
+
texts.push(part.text)
|
|
1768
2195
|
}
|
|
1769
2196
|
}
|
|
1770
2197
|
|
|
2198
|
+
const text = texts.join("")
|
|
2199
|
+
|
|
1771
2200
|
if (text.length === 0) {
|
|
1772
2201
|
return yield* AiError.make({
|
|
1773
2202
|
module: "LanguageModel",
|
|
1774
2203
|
method: "generateObject",
|
|
1775
2204
|
reason: new AiError.StructuredOutputError({
|
|
1776
|
-
description: "No text content in response"
|
|
2205
|
+
description: "No text content in response",
|
|
2206
|
+
responseText: text
|
|
1777
2207
|
})
|
|
1778
2208
|
})
|
|
1779
2209
|
}
|
|
1780
2210
|
|
|
1781
2211
|
const decode = Schema.decodeEffect(Schema.fromJsonString(schema))
|
|
1782
|
-
return yield* Effect.mapError(decode(text
|
|
2212
|
+
return yield* Effect.mapError(decode(text), (error) =>
|
|
1783
2213
|
AiError.make({
|
|
1784
2214
|
module: "LanguageModel",
|
|
1785
2215
|
method: "generateObject",
|
|
1786
|
-
reason: AiError.StructuredOutputError.fromSchemaError(error)
|
|
2216
|
+
reason: AiError.StructuredOutputError.fromSchemaError(error, text)
|
|
1787
2217
|
}))
|
|
1788
2218
|
})
|
|
1789
2219
|
|