effect 4.0.0-beta.2 → 4.0.0-beta.21
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 +127 -299
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +102 -62
- package/dist/Array.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 +1 -1
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Channel.d.ts +116 -30
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +82 -37
- package/dist/Channel.js.map +1 -1
- package/dist/Chunk.d.ts +54 -247
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +36 -67
- 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 +165 -9
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +62 -7
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +1 -1
- package/dist/Cron.d.ts +1 -1
- package/dist/Data.d.ts +534 -365
- 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 +23 -161
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +6 -51
- package/dist/DateTime.js.map +1 -1
- package/dist/Duration.d.ts +12 -12
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +12 -12
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +829 -692
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +263 -251
- 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/ErrorReporter.d.ts +376 -0
- package/dist/ErrorReporter.d.ts.map +1 -0
- package/dist/ErrorReporter.js +246 -0
- package/dist/ErrorReporter.js.map +1 -0
- package/dist/Fiber.d.ts +2 -2
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js.map +1 -1
- package/dist/FileSystem.d.ts +1 -1
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +5 -5
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +30 -34
- 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/Graph.d.ts +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +5 -8
- package/dist/Graph.js.map +1 -1
- package/dist/HashMap.d.ts +15 -14
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +4 -4
- package/dist/HashMap.js.map +1 -1
- package/dist/Iterable.d.ts +40 -39
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +94 -22
- 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 +109 -0
- package/dist/Latch.d.ts.map +1 -0
- package/dist/Latch.js +72 -0
- package/dist/Latch.js.map +1 -0
- package/dist/Layer.d.ts +9 -9
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +4 -4
- package/dist/LayerMap.d.ts.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 +1 -1
- package/dist/ManagedRuntime.js +1 -1
- package/dist/Metric.d.ts +2 -2
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +1 -1
- package/dist/Metric.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 +22 -15
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +14 -7
- package/dist/Option.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 +3 -2
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +3 -2
- 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.map +1 -1
- package/dist/Queue.js +0 -1
- 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 +24 -120
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +21 -41
- 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 +3 -3
- package/dist/References.d.ts.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 +6 -26
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +0 -20
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Result.d.ts +12 -0
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +12 -0
- package/dist/Result.js.map +1 -1
- package/dist/Schedule.d.ts +47 -20
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +94 -34
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +266 -50
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +426 -74
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +7 -6
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +2 -2
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +12 -14
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaParser.d.ts +5 -0
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +10 -0
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +44 -43
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +43 -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 +159 -4
- 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 +211 -0
- package/dist/Semaphore.d.ts.map +1 -0
- package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
- package/dist/Semaphore.js.map +1 -0
- package/dist/ServiceMap.d.ts +39 -30
- package/dist/ServiceMap.d.ts.map +1 -1
- package/dist/ServiceMap.js +3 -3
- package/dist/ServiceMap.js.map +1 -1
- package/dist/Sink.d.ts +13 -13
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +53 -6
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +235 -423
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +124 -77
- package/dist/Stream.js.map +1 -1
- package/dist/Struct.d.ts +16 -0
- 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 +2 -1
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +2 -1
- 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/Trie.d.ts +18 -17
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +5 -5
- 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 +196 -0
- package/dist/TxDeferred.js.map +1 -0
- package/dist/TxHashMap.d.ts +84 -83
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +24 -24
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +35 -35
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +14 -14
- 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 +415 -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 +8 -8
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +7 -7
- 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 +84 -6
- package/dist/Types.d.ts.map +1 -1
- package/dist/index.d.ts +591 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +591 -20
- 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 +3 -11
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +263 -99
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/hashMap.js +5 -4
- package/dist/internal/hashMap.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/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/schema.js +1 -0
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/trie.js +5 -4
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/TestClock.d.ts +7 -6
- 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 +8 -8
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +128 -48
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +11 -12
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +3 -3
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +4 -3
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +4 -2
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +86 -14
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +163 -87
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +49 -12
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +1 -1
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +35 -7
- 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/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/Tool.d.ts +19 -3
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +14 -9
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +1 -1
- package/dist/unstable/ai/index.js +1 -1
- package/dist/unstable/cli/CliError.d.ts +5 -5
- package/dist/unstable/cli/CliOutput.js +59 -6
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +276 -19
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +234 -36
- package/dist/unstable/cli/Command.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 +70 -2
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/index.d.ts +4 -0
- package/dist/unstable/cli/index.d.ts.map +1 -1
- package/dist/unstable/cli/index.js +4 -0
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +17 -8
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +32 -23
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
- package/dist/unstable/cli/internal/completions/CommandDescriptor.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 +107 -0
- package/dist/unstable/cli/internal/help.js.map +1 -0
- package/dist/unstable/cli/internal/parser.js +29 -36
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -3
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +7 -6
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.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 +10 -10
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +2 -1
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +6 -6
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +4 -3
- package/dist/unstable/cluster/Runners.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 +9 -7
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +20 -20
- package/dist/unstable/cluster/ShardingConfig.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 +5 -4
- 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/DevToolsSchema.d.ts +36 -36
- package/dist/unstable/encoding/Msgpack.d.ts +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +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/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +2 -1
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
- package/dist/unstable/http/Cookies.d.ts +3 -3
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +2 -2
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +27 -10
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +17 -2
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +28 -1
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +37 -13
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +4 -4
- 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 +27 -11
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +15 -3
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +3 -8
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +42 -56
- package/dist/unstable/http/HttpEffect.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 +8 -17
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +20 -33
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +37 -44
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts.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 +2 -1
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +3 -1
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +3 -3
- package/dist/unstable/http/UrlParams.d.ts +14 -6
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +1 -1
- package/dist/unstable/http/UrlParams.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 +3 -3
- 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 +23 -12
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +7 -2
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +3 -3
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +31 -44
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +29 -9
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +3 -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 +4 -4
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- 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/HttpApiSecurity.d.ts +2 -2
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +32 -21
- 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 +1 -1
- 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/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/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 +10 -10
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +16 -13
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +8 -8
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
- 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 +24 -7
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +1 -1
- 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 +4 -4
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- 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 +6 -13
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +2 -2
- 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 +3 -3
- 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 +14 -0
- 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 +34 -9
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +0 -7
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +15 -15
- 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 +2 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +1 -1
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +3 -3
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +3 -3
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +4 -4
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +6 -5
- 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/SqlClient.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +14 -14
- package/dist/unstable/sql/SqlError.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.js +9 -3
- 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/SqlSchema.d.ts +16 -5
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +17 -7
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/Statement.js +0 -1
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +2 -1
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +3 -3
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +3 -3
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +2 -2
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +3 -3
- 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 +12 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +137 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +2 -2
- package/src/Array.ts +190 -342
- package/src/Cache.ts +9 -8
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +554 -138
- package/src/Chunk.ts +81 -268
- package/src/Combiner.ts +280 -13
- package/src/Config.ts +183 -21
- package/src/Data.ts +538 -374
- package/src/DateTime.ts +24 -164
- package/src/Duration.ts +15 -15
- package/src/Effect.ts +991 -800
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +278 -111
- package/src/ErrorReporter.ts +459 -0
- package/src/Fiber.ts +9 -2
- package/src/FileSystem.ts +7 -8
- package/src/Filter.ts +48 -58
- package/src/Formatter.ts +253 -51
- package/src/Graph.ts +24 -11
- package/src/HashMap.ts +15 -14
- package/src/Iterable.ts +105 -50
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +112 -0
- package/src/Layer.ts +11 -15
- package/src/LayerMap.ts +5 -5
- package/src/LogLevel.ts +37 -0
- package/src/Logger.ts +33 -100
- package/src/ManagedRuntime.ts +1 -1
- package/src/Metric.ts +4 -4
- package/src/Optic.ts +948 -19
- package/src/Option.ts +30 -20
- package/src/Pipeable.ts +32 -1
- package/src/PlatformError.ts +5 -5
- package/src/Pool.ts +13 -11
- package/src/PubSub.ts +10 -9
- package/src/Pull.ts +1 -1
- package/src/Queue.ts +0 -1
- package/src/Random.ts +51 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- package/src/Record.ts +43 -152
- package/src/Reducer.ts +166 -7
- package/src/References.ts +4 -4
- package/src/Request.ts +3 -2
- package/src/RequestResolver.ts +9 -29
- package/src/Result.ts +13 -0
- package/src/Schedule.ts +318 -160
- package/src/Schema.ts +661 -116
- package/src/SchemaAST.ts +7 -6
- package/src/SchemaGetter.ts +12 -14
- package/src/SchemaParser.ts +11 -0
- package/src/SchemaRepresentation.ts +43 -24
- package/src/SchemaTransformation.ts +189 -4
- package/src/ScopedCache.ts +3 -3
- package/src/Semaphore.ts +356 -0
- package/src/ServiceMap.ts +47 -38
- package/src/Sink.ts +78 -26
- package/src/Stream.ts +566 -601
- package/src/Struct.ts +26 -0
- package/src/SubscriptionRef.ts +3 -2
- package/src/SynchronizedRef.ts +3 -2
- package/src/Trie.ts +18 -17
- package/src/TxChunk.ts +72 -53
- package/src/TxDeferred.ts +394 -0
- package/src/TxHashMap.ts +332 -285
- package/src/TxHashSet.ts +111 -116
- package/src/TxPriorityQueue.ts +767 -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 +29 -32
- package/src/TxSubscriptionRef.ts +639 -0
- package/src/Types.ts +78 -2
- package/src/index.ts +600 -21
- package/src/internal/core.ts +12 -5
- package/src/internal/dateTime.ts +9 -30
- package/src/internal/effect.ts +744 -265
- package/src/internal/hashMap.ts +9 -7
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +4 -3
- package/src/internal/request.ts +2 -2
- package/src/internal/schema/annotations.ts +2 -0
- package/src/internal/schema/schema.ts +1 -0
- package/src/internal/trie.ts +16 -9
- package/src/testing/TestClock.ts +13 -11
- package/src/testing/TestSchema.ts +10 -10
- package/src/unstable/ai/AiError.ts +97 -44
- package/src/unstable/ai/Chat.ts +12 -11
- package/src/unstable/ai/LanguageModel.ts +129 -25
- package/src/unstable/ai/McpSchema.ts +59 -13
- package/src/unstable/ai/McpServer.ts +48 -9
- package/src/unstable/ai/Model.ts +40 -9
- package/src/unstable/ai/Prompt.ts +37 -37
- package/src/unstable/ai/Response.ts +25 -25
- package/src/unstable/ai/Tool.ts +19 -13
- package/src/unstable/ai/index.ts +1 -1
- package/src/unstable/cli/CliOutput.ts +75 -6
- package/src/unstable/cli/Command.ts +501 -60
- package/src/unstable/cli/GlobalFlag.ts +243 -0
- package/src/unstable/cli/HelpDoc.ts +80 -2
- package/src/unstable/cli/index.ts +5 -0
- package/src/unstable/cli/internal/command.ts +50 -34
- package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
- package/src/unstable/cli/internal/help.ts +146 -0
- package/src/unstable/cli/internal/parser.ts +33 -54
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -4
- package/src/unstable/cluster/Entity.ts +11 -10
- 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/MessageStorage.ts +3 -5
- package/src/unstable/cluster/Runners.ts +6 -5
- package/src/unstable/cluster/Sharding.ts +12 -10
- package/src/unstable/cluster/ShardingConfig.ts +30 -31
- package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
- package/src/unstable/cluster/internal/entityManager.ts +9 -8
- package/src/unstable/cluster/internal/entityReaper.ts +2 -1
- package/src/unstable/cluster/internal/resourceRef.ts +2 -1
- package/src/unstable/encoding/Sse.ts +3 -5
- package/src/unstable/eventlog/EventLog.ts +2 -1
- package/src/unstable/http/Cookies.ts +3 -3
- package/src/unstable/http/Headers.ts +28 -13
- package/src/unstable/http/HttpBody.ts +42 -1
- package/src/unstable/http/HttpClient.ts +58 -23
- package/src/unstable/http/HttpClientRequest.ts +38 -13
- package/src/unstable/http/HttpEffect.ts +46 -68
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/HttpMiddleware.ts +9 -24
- package/src/unstable/http/HttpServerError.ts +42 -45
- package/src/unstable/http/HttpServerRequest.ts +1 -1
- package/src/unstable/http/HttpServerRespondable.ts +6 -6
- package/src/unstable/http/HttpServerResponse.ts +4 -2
- package/src/unstable/http/Multipart.ts +2 -2
- package/src/unstable/http/UrlParams.ts +20 -5
- package/src/unstable/http/internal/preResponseHandler.ts +15 -0
- package/src/unstable/httpapi/HttpApi.ts +5 -5
- package/src/unstable/httpapi/HttpApiBuilder.ts +77 -21
- package/src/unstable/httpapi/HttpApiClient.ts +14 -6
- package/src/unstable/httpapi/HttpApiEndpoint.ts +67 -83
- package/src/unstable/httpapi/HttpApiError.ts +30 -9
- package/src/unstable/httpapi/HttpApiGroup.ts +6 -6
- package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -4
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
- package/src/unstable/httpapi/OpenApi.ts +41 -23
- package/src/unstable/observability/Otlp.ts +12 -12
- package/src/unstable/observability/OtlpExporter.ts +3 -3
- package/src/unstable/observability/OtlpLogger.ts +13 -9
- package/src/unstable/observability/OtlpMetrics.ts +4 -4
- package/src/unstable/observability/OtlpTracer.ts +4 -4
- package/src/unstable/persistence/KeyValueStore.ts +6 -6
- package/src/unstable/persistence/Persistable.ts +2 -2
- 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 +27 -25
- package/src/unstable/reactivity/AtomHttpApi.ts +21 -20
- package/src/unstable/reactivity/AtomRegistry.ts +31 -7
- package/src/unstable/reactivity/AtomRpc.ts +3 -3
- package/src/unstable/reactivity/Hydration.ts +112 -0
- package/src/unstable/reactivity/index.ts +5 -0
- package/src/unstable/rpc/Rpc.ts +6 -6
- package/src/unstable/rpc/RpcClient.ts +12 -54
- package/src/unstable/rpc/RpcGroup.ts +4 -4
- package/src/unstable/rpc/RpcMiddleware.ts +3 -3
- package/src/unstable/rpc/RpcSchema.ts +17 -0
- package/src/unstable/rpc/RpcSerialization.ts +44 -9
- package/src/unstable/rpc/RpcServer.ts +21 -30
- package/src/unstable/rpc/Utils.ts +2 -1
- package/src/unstable/schema/VariantSchema.ts +6 -6
- package/src/unstable/socket/Socket.ts +16 -17
- package/src/unstable/sql/SqlClient.ts +1 -1
- package/src/unstable/sql/SqlError.ts +11 -9
- package/src/unstable/sql/SqlModel.ts +5 -5
- package/src/unstable/sql/SqlSchema.ts +41 -25
- package/src/unstable/sql/Statement.ts +0 -1
- package/src/unstable/workers/Worker.ts +2 -1
- package/src/unstable/workflow/DurableClock.ts +8 -8
- package/src/unstable/workflow/DurableDeferred.ts +2 -2
- package/src/unstable/workflow/Workflow.ts +6 -2
- package/src/unstable/workflow/WorkflowEngine.ts +185 -2
- package/dist/PartitionedSemaphore.d.ts +0 -52
- package/dist/PartitionedSemaphore.d.ts.map +0 -1
- package/dist/PartitionedSemaphore.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/src/PartitionedSemaphore.ts +0 -182
- 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/ai/Chat.ts
CHANGED
|
@@ -53,6 +53,7 @@ import * as Option from "../../Option.ts"
|
|
|
53
53
|
import * as Predicate from "../../Predicate.ts"
|
|
54
54
|
import * as Ref from "../../Ref.ts"
|
|
55
55
|
import * as Schema from "../../Schema.ts"
|
|
56
|
+
import * as Semaphore from "../../Semaphore.ts"
|
|
56
57
|
import * as ServiceMap from "../../ServiceMap.ts"
|
|
57
58
|
import * as Stream from "../../Stream.ts"
|
|
58
59
|
import type { NoExcessProperties } from "../../Types.ts"
|
|
@@ -276,7 +277,7 @@ export interface Service {
|
|
|
276
277
|
*/
|
|
277
278
|
readonly generateObject: <
|
|
278
279
|
ObjectEncoded extends Record<string, any>,
|
|
279
|
-
ObjectSchema extends Schema.
|
|
280
|
+
ObjectSchema extends Schema.Encoder<ObjectEncoded, unknown>,
|
|
280
281
|
Options extends NoExcessProperties<LanguageModel.GenerateObjectOptions<any, ObjectSchema>, Options>,
|
|
281
282
|
Tools extends Record<string, Tool.Any> = {}
|
|
282
283
|
>(options: Options & LanguageModel.GenerateObjectOptions<Tools, ObjectSchema>) => Effect.Effect<
|
|
@@ -325,7 +326,7 @@ const encodeHistoryJson = Schema.encodeUnknownEffect(Schema.fromJsonString(Promp
|
|
|
325
326
|
export const empty: Effect.Effect<Service> = Effect.gen(function*() {
|
|
326
327
|
const history = yield* Ref.make(Prompt.empty)
|
|
327
328
|
const services = yield* Effect.services<never>()
|
|
328
|
-
const semaphore = yield*
|
|
329
|
+
const semaphore = yield* Semaphore.make(1)
|
|
329
330
|
|
|
330
331
|
const provideContext = <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
|
|
331
332
|
Effect.updateServices(effect, (existing) => ServiceMap.merge(services, existing))
|
|
@@ -627,7 +628,7 @@ export declare namespace Persistence {
|
|
|
627
628
|
* the persistence store, a `ChatNotFoundError` will be returned.
|
|
628
629
|
*/
|
|
629
630
|
readonly get: (chatId: string, options?: {
|
|
630
|
-
readonly timeToLive?: Duration.
|
|
631
|
+
readonly timeToLive?: Duration.Input | undefined
|
|
631
632
|
}) => Effect.Effect<Persisted, ChatNotFoundError | PersistenceError>
|
|
632
633
|
|
|
633
634
|
/**
|
|
@@ -637,7 +638,7 @@ export declare namespace Persistence {
|
|
|
637
638
|
* returned.
|
|
638
639
|
*/
|
|
639
640
|
readonly getOrCreate: (chatId: string, options?: {
|
|
640
|
-
readonly timeToLive?: Duration.
|
|
641
|
+
readonly timeToLive?: Duration.Input | undefined
|
|
641
642
|
}) => Effect.Effect<Persisted, AiError.AiError | PersistenceError>
|
|
642
643
|
}
|
|
643
644
|
}
|
|
@@ -680,7 +681,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
|
|
|
680
681
|
const store = yield* persistence.make(options.storeId)
|
|
681
682
|
|
|
682
683
|
const toPersisted = Effect.fnUntraced(
|
|
683
|
-
function*(chatId: string, chat: Service, ttl: Duration.
|
|
684
|
+
function*(chatId: string, chat: Service, ttl: Duration.Input | undefined) {
|
|
684
685
|
const idGenerator = yield* Effect.serviceOption(IdGenerator.IdGenerator).pipe(
|
|
685
686
|
Effect.map(Option.getOrElse(() => IdGenerator.defaultIdGenerator))
|
|
686
687
|
)
|
|
@@ -712,7 +713,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
|
|
|
712
713
|
yield* Ref.set(chat.history, history)
|
|
713
714
|
// Export the chat history
|
|
714
715
|
const exported = yield* Effect.orDie(chat.export)
|
|
715
|
-
const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.
|
|
716
|
+
const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.fromInput(ttl) : undefined
|
|
716
717
|
// Save the chat to the backing store
|
|
717
718
|
yield* store.set(chatId, exported as object, timeToLive)
|
|
718
719
|
}
|
|
@@ -748,13 +749,13 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
|
|
|
748
749
|
)
|
|
749
750
|
|
|
750
751
|
const createChat = Effect.fnUntraced(
|
|
751
|
-
function*(chatId: string, ttl: Duration.
|
|
752
|
+
function*(chatId: string, ttl: Duration.Input | undefined) {
|
|
752
753
|
// Create an empty chat
|
|
753
754
|
const chat = yield* empty
|
|
754
755
|
// Export the chat history
|
|
755
756
|
const history = yield* Effect.orDie(chat.export)
|
|
756
757
|
// Save the history for the newly created chat
|
|
757
|
-
const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.
|
|
758
|
+
const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.fromInput(ttl) : undefined
|
|
758
759
|
yield* store.set(chatId, history as object, timeToLive)
|
|
759
760
|
// Convert the chat to a persisted chat
|
|
760
761
|
return yield* toPersisted(chatId, chat, ttl)
|
|
@@ -762,7 +763,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
|
|
|
762
763
|
)
|
|
763
764
|
|
|
764
765
|
const getChat = Effect.fnUntraced(
|
|
765
|
-
function*(chatId: string, ttl: Duration.
|
|
766
|
+
function*(chatId: string, ttl: Duration.Input | undefined) {
|
|
766
767
|
// Create an empty chat
|
|
767
768
|
const chat = yield* empty
|
|
768
769
|
// Attempt to retrieve the previous history from the store
|
|
@@ -783,7 +784,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
|
|
|
783
784
|
|
|
784
785
|
const get = Effect.fnUntraced(
|
|
785
786
|
function*(chatId: string, options?: {
|
|
786
|
-
readonly timeToLive?: Duration.
|
|
787
|
+
readonly timeToLive?: Duration.Input | undefined
|
|
787
788
|
}) {
|
|
788
789
|
return yield* getChat(chatId, options?.timeToLive)
|
|
789
790
|
},
|
|
@@ -795,7 +796,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
|
|
|
795
796
|
|
|
796
797
|
const getOrCreate = Effect.fnUntraced(
|
|
797
798
|
function*(chatId: string, options?: {
|
|
798
|
-
readonly timeToLive?: Duration.
|
|
799
|
+
readonly timeToLive?: Duration.Input | undefined
|
|
799
800
|
}) {
|
|
800
801
|
return yield* getChat(chatId, options?.timeToLive).pipe(
|
|
801
802
|
Effect.catchTag("ChatNotFoundError", () => createChat(chatId, options?.timeToLive))
|
|
@@ -135,7 +135,7 @@ export interface Service {
|
|
|
135
135
|
*/
|
|
136
136
|
readonly generateObject: <
|
|
137
137
|
ObjectEncoded extends Record<string, any>,
|
|
138
|
-
StructuredOutputSchema extends Schema.
|
|
138
|
+
StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
|
|
139
139
|
Options extends NoExcessProperties<
|
|
140
140
|
GenerateObjectOptions<any, StructuredOutputSchema>,
|
|
141
141
|
Options
|
|
@@ -527,13 +527,16 @@ export type ExtractError<Options> = Options extends {
|
|
|
527
527
|
* @category utility types
|
|
528
528
|
*/
|
|
529
529
|
export type ExtractServices<Options> = Options extends {
|
|
530
|
-
readonly
|
|
531
|
-
}
|
|
530
|
+
readonly disableToolCallResolution: true
|
|
531
|
+
} ? never
|
|
532
|
+
: Options extends {
|
|
533
|
+
readonly toolkit: Toolkit.WithHandler<infer _Tools>
|
|
534
|
+
}
|
|
532
535
|
// Required for tool call execution
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
536
|
+
?
|
|
537
|
+
| Tool.ResultEncodingServices<_Tools[keyof _Tools]>
|
|
538
|
+
// Required for decoding large language model responses
|
|
539
|
+
| Tool.ResultDecodingServices<_Tools[keyof _Tools]>
|
|
537
540
|
: Options extends {
|
|
538
541
|
readonly toolkit: Effect.Yieldable<
|
|
539
542
|
Toolkit.Toolkit<infer _Tools>,
|
|
@@ -728,7 +731,7 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
728
731
|
|
|
729
732
|
const generateObject = <
|
|
730
733
|
ObjectEncoded extends Record<string, any>,
|
|
731
|
-
StructuredOutputSchema extends Schema.
|
|
734
|
+
StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
|
|
732
735
|
Options extends NoExcessProperties<
|
|
733
736
|
GenerateObjectOptions<any, StructuredOutputSchema>,
|
|
734
737
|
Options
|
|
@@ -949,9 +952,8 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
949
952
|
return content as Array<Response.Part<Tools>>
|
|
950
953
|
}
|
|
951
954
|
|
|
952
|
-
// Pre-resolve tool approvals before calling the LLM
|
|
955
|
+
// Pre-resolve pending tool approvals before calling the LLM
|
|
953
956
|
if (hasPendingApprovals) {
|
|
954
|
-
// Validate all approved tools exist in the toolkit
|
|
955
957
|
for (const approval of approved) {
|
|
956
958
|
if (approval.toolCall && !toolkit.tools[approval.toolCall.name]) {
|
|
957
959
|
return yield* AiError.make({
|
|
@@ -965,7 +967,6 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
965
967
|
}
|
|
966
968
|
}
|
|
967
969
|
|
|
968
|
-
// Execute approved tools and create denial results
|
|
969
970
|
const approvedResults = yield* executeApprovedToolCalls(
|
|
970
971
|
approved,
|
|
971
972
|
toolkit,
|
|
@@ -974,18 +975,29 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
974
975
|
const deniedResults = createDenialResults(denied)
|
|
975
976
|
const preResolvedResults = [...approvedResults, ...deniedResults]
|
|
976
977
|
|
|
977
|
-
// Add pre-resolved results to the prompt
|
|
978
978
|
if (preResolvedResults.length > 0) {
|
|
979
|
-
const toolMessage = Prompt.makeMessage("tool", {
|
|
980
|
-
content: preResolvedResults
|
|
981
|
-
})
|
|
982
979
|
providerOptions.prompt = Prompt.fromMessages([
|
|
983
980
|
...providerOptions.prompt.content,
|
|
984
|
-
|
|
981
|
+
Prompt.makeMessage("tool", { content: preResolvedResults })
|
|
985
982
|
])
|
|
986
983
|
}
|
|
987
984
|
}
|
|
988
985
|
|
|
986
|
+
// Strip all resolved approval artifacts (both current and from previous
|
|
987
|
+
// rounds) in a single pass before sending to the provider.
|
|
988
|
+
{
|
|
989
|
+
const { approved: allResolved, denied: allDenied } = collectToolApprovals(
|
|
990
|
+
providerOptions.prompt.content
|
|
991
|
+
)
|
|
992
|
+
if (allResolved.length > 0 || allDenied.length > 0) {
|
|
993
|
+
providerOptions.prompt = stripResolvedApprovals(
|
|
994
|
+
providerOptions.prompt,
|
|
995
|
+
allResolved,
|
|
996
|
+
allDenied
|
|
997
|
+
)
|
|
998
|
+
}
|
|
999
|
+
}
|
|
1000
|
+
|
|
989
1001
|
const tools = typeof toolChoice === "object" && "oneOf" in toolChoice
|
|
990
1002
|
? Object.values(toolkit.tools).filter((tool) => toolChoice.oneOf.includes(tool.name))
|
|
991
1003
|
: Object.values(toolkit.tools)
|
|
@@ -1130,9 +1142,10 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1130
1142
|
>
|
|
1131
1143
|
}
|
|
1132
1144
|
|
|
1133
|
-
// Pre-resolve tool approvals before calling the LLM
|
|
1145
|
+
// Pre-resolve pending tool approvals before calling the LLM
|
|
1146
|
+
let preResolvedStreamParts: Array<Response.StreamPart<Tools>> = []
|
|
1147
|
+
|
|
1134
1148
|
if (hasPendingApprovals) {
|
|
1135
|
-
// Validate all approved tools exist in the toolkit
|
|
1136
1149
|
for (const approval of pendingApproved) {
|
|
1137
1150
|
if (approval.toolCall && !toolkit.tools[approval.toolCall.name]) {
|
|
1138
1151
|
return yield* AiError.make({
|
|
@@ -1146,7 +1159,6 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1146
1159
|
}
|
|
1147
1160
|
}
|
|
1148
1161
|
|
|
1149
|
-
// Execute approved tools and create denial results
|
|
1150
1162
|
const approvedResults = yield* executeApprovedToolCalls(
|
|
1151
1163
|
pendingApproved,
|
|
1152
1164
|
toolkit,
|
|
@@ -1155,16 +1167,44 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1155
1167
|
const deniedResults = createDenialResults(pendingDenied)
|
|
1156
1168
|
const preResolvedResults = [...approvedResults, ...deniedResults]
|
|
1157
1169
|
|
|
1158
|
-
// Add pre-resolved results to the prompt
|
|
1159
1170
|
if (preResolvedResults.length > 0) {
|
|
1160
|
-
const toolMessage = Prompt.makeMessage("tool", {
|
|
1161
|
-
content: preResolvedResults
|
|
1162
|
-
})
|
|
1163
1171
|
providerOptions.prompt = Prompt.fromMessages([
|
|
1164
1172
|
...providerOptions.prompt.content,
|
|
1165
|
-
|
|
1173
|
+
Prompt.makeMessage("tool", { content: preResolvedResults })
|
|
1166
1174
|
])
|
|
1167
1175
|
}
|
|
1176
|
+
|
|
1177
|
+
// Emit pre-resolved tool-results as stream parts so Chat.streamText
|
|
1178
|
+
// persists them to history. This lets collectToolApprovals find them
|
|
1179
|
+
// on subsequent rounds and skip the now-resolved approvals.
|
|
1180
|
+
// Note: r.result is already encoded (from executeApprovedToolCalls /
|
|
1181
|
+
// createDenialResults), so it goes into both result and encodedResult.
|
|
1182
|
+
for (const r of preResolvedResults) {
|
|
1183
|
+
preResolvedStreamParts.push(
|
|
1184
|
+
Response.makePart("tool-result", {
|
|
1185
|
+
id: r.id,
|
|
1186
|
+
name: r.name,
|
|
1187
|
+
providerExecuted: false,
|
|
1188
|
+
preliminary: false,
|
|
1189
|
+
result: r.result,
|
|
1190
|
+
encodedResult: r.result,
|
|
1191
|
+
isFailure: r.isFailure
|
|
1192
|
+
}) as Response.StreamPart<Tools>
|
|
1193
|
+
)
|
|
1194
|
+
}
|
|
1195
|
+
}
|
|
1196
|
+
|
|
1197
|
+
// Strip all resolved approval artifacts (both current and from previous
|
|
1198
|
+
// rounds) in a single pass before sending to the provider.
|
|
1199
|
+
const { approved: allResolved, denied: allDenied } = collectToolApprovals(
|
|
1200
|
+
providerOptions.prompt.content
|
|
1201
|
+
)
|
|
1202
|
+
if (allResolved.length > 0 || allDenied.length > 0) {
|
|
1203
|
+
providerOptions.prompt = stripResolvedApprovals(
|
|
1204
|
+
providerOptions.prompt,
|
|
1205
|
+
allResolved,
|
|
1206
|
+
allDenied
|
|
1207
|
+
)
|
|
1168
1208
|
}
|
|
1169
1209
|
|
|
1170
1210
|
const tools = typeof toolChoice === "object" && "oneOf" in toolChoice
|
|
@@ -1201,6 +1241,13 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
1201
1241
|
| Schema.SchemaError
|
|
1202
1242
|
>()
|
|
1203
1243
|
|
|
1244
|
+
// Emit pre-resolved tool results so Chat.streamText persists them to
|
|
1245
|
+
// history. This ensures collectToolApprovals({ excludeResolved }) can
|
|
1246
|
+
// find the corresponding tool-results on future rounds.
|
|
1247
|
+
if (preResolvedStreamParts.length > 0) {
|
|
1248
|
+
yield* Queue.offerAll(queue, preResolvedStreamParts)
|
|
1249
|
+
}
|
|
1250
|
+
|
|
1204
1251
|
// FiberSet to track concurrent tool call handlers
|
|
1205
1252
|
const toolCallFibers = yield* FiberSet.make<void, AiError.AiError>()
|
|
1206
1253
|
|
|
@@ -1359,7 +1406,7 @@ export const generateText = <
|
|
|
1359
1406
|
*/
|
|
1360
1407
|
export const generateObject = <
|
|
1361
1408
|
ObjectEncoded extends Record<string, any>,
|
|
1362
|
-
StructuredOutputSchema extends Schema.
|
|
1409
|
+
StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
|
|
1363
1410
|
Options extends NoExcessProperties<
|
|
1364
1411
|
GenerateObjectOptions<any, StructuredOutputSchema>,
|
|
1365
1412
|
Options
|
|
@@ -1506,6 +1553,63 @@ const collectToolApprovals = (
|
|
|
1506
1553
|
return { approved, denied }
|
|
1507
1554
|
}
|
|
1508
1555
|
|
|
1556
|
+
/**
|
|
1557
|
+
* Strip resolved approval artifacts from the prompt before sending to the
|
|
1558
|
+
* provider. After pre-resolving approvals (executing approved tools and
|
|
1559
|
+
* creating denial results), the original `tool-approval-request` parts in
|
|
1560
|
+
* assistant messages and `tool-approval-response` parts in tool messages are
|
|
1561
|
+
* no longer needed. Leaving them in causes provider-specific errors (e.g.
|
|
1562
|
+
* OpenAI rejects `mcp_approval_response` items that reference approval
|
|
1563
|
+
* requests it never issued).
|
|
1564
|
+
*/
|
|
1565
|
+
const stripResolvedApprovals = (
|
|
1566
|
+
prompt: Prompt.Prompt,
|
|
1567
|
+
approved: ReadonlyArray<ApprovalResult>,
|
|
1568
|
+
denied: ReadonlyArray<ApprovalResult>
|
|
1569
|
+
): Prompt.Prompt => {
|
|
1570
|
+
const resolvedApprovalIds = new Set<string>()
|
|
1571
|
+
for (const a of approved) resolvedApprovalIds.add(a.approvalId)
|
|
1572
|
+
for (const d of denied) resolvedApprovalIds.add(d.approvalId)
|
|
1573
|
+
|
|
1574
|
+
const cleanedMessages: Array<Prompt.Message> = []
|
|
1575
|
+
|
|
1576
|
+
for (const message of prompt.content) {
|
|
1577
|
+
if (message.role === "assistant") {
|
|
1578
|
+
const filteredContent = message.content.filter(
|
|
1579
|
+
(part) =>
|
|
1580
|
+
part.type !== "tool-approval-request" ||
|
|
1581
|
+
!resolvedApprovalIds.has(part.approvalId)
|
|
1582
|
+
)
|
|
1583
|
+
if (filteredContent.length > 0) {
|
|
1584
|
+
cleanedMessages.push(
|
|
1585
|
+
Prompt.makeMessage("assistant", {
|
|
1586
|
+
content: filteredContent,
|
|
1587
|
+
options: message.options
|
|
1588
|
+
})
|
|
1589
|
+
)
|
|
1590
|
+
}
|
|
1591
|
+
} else if (message.role === "tool") {
|
|
1592
|
+
const filteredContent = message.content.filter(
|
|
1593
|
+
(part) =>
|
|
1594
|
+
part.type !== "tool-approval-response" ||
|
|
1595
|
+
!resolvedApprovalIds.has(part.approvalId)
|
|
1596
|
+
)
|
|
1597
|
+
if (filteredContent.length > 0) {
|
|
1598
|
+
cleanedMessages.push(
|
|
1599
|
+
Prompt.makeMessage("tool", {
|
|
1600
|
+
content: filteredContent,
|
|
1601
|
+
options: message.options
|
|
1602
|
+
})
|
|
1603
|
+
)
|
|
1604
|
+
}
|
|
1605
|
+
} else {
|
|
1606
|
+
cleanedMessages.push(message)
|
|
1607
|
+
}
|
|
1608
|
+
}
|
|
1609
|
+
|
|
1610
|
+
return Prompt.fromMessages(cleanedMessages)
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1509
1613
|
const isApprovalNeeded = Effect.fnUntraced(function*<T extends Tool.Any>(
|
|
1510
1614
|
tool: T,
|
|
1511
1615
|
toolCall: Response.ToolCallPartEncoded,
|
|
@@ -120,7 +120,7 @@ export class ResultMeta extends Schema.Opaque<ResultMeta>()(Schema.Struct({
|
|
|
120
120
|
* This result property is reserved by the protocol to allow clients and
|
|
121
121
|
* servers to attach additional metadata to their responses.
|
|
122
122
|
*/
|
|
123
|
-
_meta: optional(Schema.Record(Schema.String, Schema.
|
|
123
|
+
_meta: optional(Schema.Record(Schema.String, Schema.Json))
|
|
124
124
|
})) {}
|
|
125
125
|
|
|
126
126
|
/**
|
|
@@ -132,7 +132,7 @@ export class NotificationMeta extends Schema.Opaque<NotificationMeta>()(Schema.S
|
|
|
132
132
|
* This parameter name is reserved by MCP to allow clients and servers to
|
|
133
133
|
* attach additional metadata to their notifications.
|
|
134
134
|
*/
|
|
135
|
-
_meta: optional(Schema.Record(Schema.String, Schema.
|
|
135
|
+
_meta: optional(Schema.Record(Schema.String, Schema.Json))
|
|
136
136
|
})) {}
|
|
137
137
|
|
|
138
138
|
/**
|
|
@@ -240,6 +240,11 @@ export class ClientCapabilities extends Schema.Class<ClientCapabilities>(
|
|
|
240
240
|
* Experimental, non-standard capabilities that the client supports.
|
|
241
241
|
*/
|
|
242
242
|
experimental: optional(Schema.Record(Schema.String, Schema.Struct({}))),
|
|
243
|
+
/**
|
|
244
|
+
* Optional extensions capabilities advertised by the client.
|
|
245
|
+
* Keys are extension identifiers following <vendor-prefix>/<extension-name> (e.g. "io.modelcontextprotocol/ui").
|
|
246
|
+
*/
|
|
247
|
+
extensions: optional(Schema.Record(Schema.TemplateLiteral([Schema.String, "/", Schema.String]), Schema.Json)),
|
|
243
248
|
/**
|
|
244
249
|
* Present if the client supports listing roots.
|
|
245
250
|
*/
|
|
@@ -272,6 +277,11 @@ export class ServerCapabilities extends Schema.Opaque<ServerCapabilities>()(Sche
|
|
|
272
277
|
* Experimental, non-standard capabilities that the server supports.
|
|
273
278
|
*/
|
|
274
279
|
experimental: optional(Schema.Record(Schema.String, Schema.Struct({}))),
|
|
280
|
+
/**
|
|
281
|
+
* Optional extensions capabilities advertised by the server.
|
|
282
|
+
* Keys are extension identifiers following <vendor-prefix>/<extension-name> (e.g. "io.modelcontextprotocol/ui").
|
|
283
|
+
*/
|
|
284
|
+
extensions: optional(Schema.Record(Schema.TemplateLiteral([Schema.String, "/", Schema.String]), Schema.Json)),
|
|
275
285
|
/**
|
|
276
286
|
* Present if the server supports sending log messages to the client.
|
|
277
287
|
*/
|
|
@@ -321,8 +331,8 @@ export class ServerCapabilities extends Schema.Opaque<ServerCapabilities>()(Sche
|
|
|
321
331
|
* @since 4.0.0
|
|
322
332
|
* @category errors
|
|
323
333
|
*/
|
|
324
|
-
export class
|
|
325
|
-
"@effect/ai/McpSchema/
|
|
334
|
+
export class McpErrorBase extends Schema.Class<McpErrorBase>(
|
|
335
|
+
"@effect/ai/McpSchema/McpErrorBase"
|
|
326
336
|
)({
|
|
327
337
|
/**
|
|
328
338
|
* The error type that occurred.
|
|
@@ -371,7 +381,7 @@ export const PARSE_ERROR_CODE = -32700 as const
|
|
|
371
381
|
* @category errors
|
|
372
382
|
*/
|
|
373
383
|
export class ParseError extends Schema.ErrorClass<ParseError>("effect/ai/McpSchema/ParseError")({
|
|
374
|
-
...
|
|
384
|
+
...McpErrorBase.fields,
|
|
375
385
|
_tag: Schema.tag("ParseError"),
|
|
376
386
|
code: Schema.tag(PARSE_ERROR_CODE)
|
|
377
387
|
}) {}
|
|
@@ -381,7 +391,7 @@ export class ParseError extends Schema.ErrorClass<ParseError>("effect/ai/McpSche
|
|
|
381
391
|
* @category errors
|
|
382
392
|
*/
|
|
383
393
|
export class InvalidRequest extends Schema.ErrorClass<InvalidRequest>("effect/ai/McpSchema/InvalidRequest")({
|
|
384
|
-
...
|
|
394
|
+
...McpErrorBase.fields,
|
|
385
395
|
_tag: Schema.tag("InvalidRequest"),
|
|
386
396
|
code: Schema.tag(INVALID_REQUEST_ERROR_CODE)
|
|
387
397
|
}) {}
|
|
@@ -391,7 +401,7 @@ export class InvalidRequest extends Schema.ErrorClass<InvalidRequest>("effect/ai
|
|
|
391
401
|
* @category errors
|
|
392
402
|
*/
|
|
393
403
|
export class MethodNotFound extends Schema.ErrorClass<MethodNotFound>("effect/ai/McpSchema/MethodNotFound")({
|
|
394
|
-
...
|
|
404
|
+
...McpErrorBase.fields,
|
|
395
405
|
_tag: Schema.tag("MethodNotFound"),
|
|
396
406
|
code: Schema.tag(METHOD_NOT_FOUND_ERROR_CODE)
|
|
397
407
|
}) {}
|
|
@@ -401,7 +411,7 @@ export class MethodNotFound extends Schema.ErrorClass<MethodNotFound>("effect/ai
|
|
|
401
411
|
* @category errors
|
|
402
412
|
*/
|
|
403
413
|
export class InvalidParams extends Schema.ErrorClass<InvalidParams>("effect/ai/McpSchema/InvalidParams")({
|
|
404
|
-
...
|
|
414
|
+
...McpErrorBase.fields,
|
|
405
415
|
_tag: Schema.tag("InvalidParams"),
|
|
406
416
|
code: Schema.tag(INVALID_PARAMS_ERROR_CODE)
|
|
407
417
|
}) {}
|
|
@@ -411,13 +421,26 @@ export class InvalidParams extends Schema.ErrorClass<InvalidParams>("effect/ai/M
|
|
|
411
421
|
* @category errors
|
|
412
422
|
*/
|
|
413
423
|
export class InternalError extends Schema.ErrorClass<InternalError>("effect/ai/McpSchema/InternalError")({
|
|
414
|
-
...
|
|
424
|
+
...McpErrorBase.fields,
|
|
415
425
|
_tag: Schema.tag("InternalError"),
|
|
416
426
|
code: Schema.tag(INTERNAL_ERROR_CODE)
|
|
417
427
|
}) {
|
|
418
428
|
static readonly notImplemented = new InternalError({ message: "Not implemented" })
|
|
419
429
|
}
|
|
420
430
|
|
|
431
|
+
/**
|
|
432
|
+
* @since 4.0.0
|
|
433
|
+
* @category errors
|
|
434
|
+
*/
|
|
435
|
+
export const McpError = Schema.Union([
|
|
436
|
+
ParseError,
|
|
437
|
+
InvalidRequest,
|
|
438
|
+
MethodNotFound,
|
|
439
|
+
InvalidParams,
|
|
440
|
+
InternalError,
|
|
441
|
+
McpErrorBase
|
|
442
|
+
])
|
|
443
|
+
|
|
421
444
|
// =============================================================================
|
|
422
445
|
// Ping
|
|
423
446
|
// =============================================================================
|
|
@@ -615,7 +638,14 @@ export class Resource extends Schema.Class<Resource>(
|
|
|
615
638
|
* This can be used by Hosts to display file sizes and estimate context
|
|
616
639
|
* window usage.
|
|
617
640
|
*/
|
|
618
|
-
size: optional(Schema.Number)
|
|
641
|
+
size: optional(Schema.Number),
|
|
642
|
+
/**
|
|
643
|
+
* Optional additional metadata for the client.
|
|
644
|
+
*
|
|
645
|
+
* This parameter name is reserved by MCP to allow clients and servers to
|
|
646
|
+
* attach additional metadata to resources.
|
|
647
|
+
*/
|
|
648
|
+
_meta: optional(Schema.Record(Schema.String, Schema.Json))
|
|
619
649
|
}) {}
|
|
620
650
|
|
|
621
651
|
/**
|
|
@@ -656,7 +686,12 @@ export class ResourceTemplate extends Schema.Class<ResourceTemplate>(
|
|
|
656
686
|
/**
|
|
657
687
|
* Optional annotations for the client.
|
|
658
688
|
*/
|
|
659
|
-
annotations: optional(Annotations)
|
|
689
|
+
annotations: optional(Annotations),
|
|
690
|
+
|
|
691
|
+
/**
|
|
692
|
+
* Optional additional metadata for the client.
|
|
693
|
+
*/
|
|
694
|
+
_meta: optional(Schema.Record(Schema.String, Schema.Json))
|
|
660
695
|
}) {}
|
|
661
696
|
|
|
662
697
|
/**
|
|
@@ -673,7 +708,11 @@ export class ResourceContents extends Schema.Opaque<ResourceContents>()(Schema.S
|
|
|
673
708
|
/**
|
|
674
709
|
* The MIME type of this resource, if known.
|
|
675
710
|
*/
|
|
676
|
-
mimeType: optional(Schema.String)
|
|
711
|
+
mimeType: optional(Schema.String),
|
|
712
|
+
/**
|
|
713
|
+
* Optional additional metadata for the client.
|
|
714
|
+
*/
|
|
715
|
+
_meta: optional(Schema.Record(Schema.String, Schema.Json))
|
|
677
716
|
})) {}
|
|
678
717
|
|
|
679
718
|
/**
|
|
@@ -1183,7 +1222,14 @@ export class Tool extends Schema.Class<Tool>(
|
|
|
1183
1222
|
/**
|
|
1184
1223
|
* Optional additional tool information.
|
|
1185
1224
|
*/
|
|
1186
|
-
annotations: optional(ToolAnnotations)
|
|
1225
|
+
annotations: optional(ToolAnnotations),
|
|
1226
|
+
/**
|
|
1227
|
+
* Optional additional metadata for the client.
|
|
1228
|
+
*
|
|
1229
|
+
* This parameter name is reserved by MCP to allow clients and servers to
|
|
1230
|
+
* attach additional metadata to resources.
|
|
1231
|
+
*/
|
|
1232
|
+
_meta: optional(Schema.Record(Schema.String, Schema.Json))
|
|
1187
1233
|
}) {}
|
|
1188
1234
|
|
|
1189
1235
|
/**
|
|
@@ -9,6 +9,7 @@ import * as Layer from "../../Layer.ts"
|
|
|
9
9
|
import * as Option from "../../Option.ts"
|
|
10
10
|
import * as Queue from "../../Queue.ts"
|
|
11
11
|
import * as RcMap from "../../RcMap.ts"
|
|
12
|
+
import { CurrentLogLevel } from "../../References.ts"
|
|
12
13
|
import * as Schema from "../../Schema.ts"
|
|
13
14
|
import * as AST from "../../SchemaAST.ts"
|
|
14
15
|
import * as ServiceMap from "../../ServiceMap.ts"
|
|
@@ -548,6 +549,7 @@ export const registerToolkit: <Tools extends Record<string, Tool.Any>>(
|
|
|
548
549
|
>)
|
|
549
550
|
const services = yield* Effect.services<never>()
|
|
550
551
|
for (const tool of Object.values(built.tools)) {
|
|
552
|
+
const toolMeta = ServiceMap.getOrUndefined(tool.annotations, Tool.Meta)
|
|
551
553
|
const mcpTool = new McpTool({
|
|
552
554
|
name: tool.name,
|
|
553
555
|
description: Tool.getDescription(tool),
|
|
@@ -561,7 +563,8 @@ export const registerToolkit: <Tools extends Record<string, Tool.Any>>(
|
|
|
561
563
|
destructiveHint: ServiceMap.get(tool.annotations, Tool.Destructive),
|
|
562
564
|
idempotentHint: ServiceMap.get(tool.annotations, Tool.Idempotent),
|
|
563
565
|
openWorldHint: ServiceMap.get(tool.annotations, Tool.OpenWorld)
|
|
564
|
-
}
|
|
566
|
+
},
|
|
567
|
+
_meta: toolMeta
|
|
565
568
|
})
|
|
566
569
|
yield* registry.addTool({
|
|
567
570
|
tool: mcpTool,
|
|
@@ -992,14 +995,14 @@ export const prompt = <
|
|
|
992
995
|
* @since 4.0.0
|
|
993
996
|
* @category elicitation
|
|
994
997
|
*/
|
|
995
|
-
export const elicit: <S extends Schema.
|
|
998
|
+
export const elicit: <S extends Schema.Encoder<Record<string, unknown>, unknown>>(options: {
|
|
996
999
|
readonly message: string
|
|
997
1000
|
readonly schema: S
|
|
998
1001
|
}) => Effect.Effect<
|
|
999
1002
|
S["Type"],
|
|
1000
1003
|
ElicitationDeclined,
|
|
1001
1004
|
McpServerClient | S["DecodingServices"]
|
|
1002
|
-
> = Effect.fnUntraced(function*<S extends Schema.
|
|
1005
|
+
> = Effect.fnUntraced(function*<S extends Schema.Encoder<Record<string, unknown>, unknown>>(options: {
|
|
1003
1006
|
readonly message: string
|
|
1004
1007
|
readonly schema: S
|
|
1005
1008
|
}) {
|
|
@@ -1054,7 +1057,8 @@ const compileUriTemplate = (segments: TemplateStringsArray, ...schemas: Readonly
|
|
|
1054
1057
|
const key = String(i)
|
|
1055
1058
|
arr.push(toCodecStringTree)
|
|
1056
1059
|
routerPath += `:${key}${segment.replace(":", "::")}`
|
|
1057
|
-
const
|
|
1060
|
+
const schema = schemas[i]
|
|
1061
|
+
const paramName = isParam(schema) ? (schema as Param<string, Schema.Top>).name : `param${key}`
|
|
1058
1062
|
params[paramName] = toCodecStringTree
|
|
1059
1063
|
uriPath += `{${paramName}}${segment}`
|
|
1060
1064
|
}
|
|
@@ -1075,6 +1079,7 @@ const layerHandlers = (serverInfo: {
|
|
|
1075
1079
|
ClientRpcs.toLayer(
|
|
1076
1080
|
Effect.gen(function*() {
|
|
1077
1081
|
const server = yield* McpServer
|
|
1082
|
+
let currentLogLevel = yield* CurrentLogLevel
|
|
1078
1083
|
|
|
1079
1084
|
return ClientRpcs.of({
|
|
1080
1085
|
// Requests
|
|
@@ -1105,17 +1110,51 @@ const layerHandlers = (serverInfo: {
|
|
|
1105
1110
|
: LATEST_PROTOCOL_VERSION
|
|
1106
1111
|
})
|
|
1107
1112
|
},
|
|
1108
|
-
"completion/complete":
|
|
1109
|
-
|
|
1110
|
-
|
|
1113
|
+
"completion/complete": (r) =>
|
|
1114
|
+
server.completion(r).pipe(
|
|
1115
|
+
Effect.provideService(CurrentLogLevel, currentLogLevel)
|
|
1116
|
+
),
|
|
1117
|
+
"logging/setLevel": ({ level }) =>
|
|
1118
|
+
Effect.sync(() => {
|
|
1119
|
+
switch (level) {
|
|
1120
|
+
case "notice":
|
|
1121
|
+
case "info":
|
|
1122
|
+
currentLogLevel = "Info"
|
|
1123
|
+
break
|
|
1124
|
+
case "error":
|
|
1125
|
+
currentLogLevel = "Error"
|
|
1126
|
+
break
|
|
1127
|
+
case "debug":
|
|
1128
|
+
currentLogLevel = "Debug"
|
|
1129
|
+
break
|
|
1130
|
+
case "warning":
|
|
1131
|
+
currentLogLevel = "Warn"
|
|
1132
|
+
break
|
|
1133
|
+
case "critical":
|
|
1134
|
+
case "alert":
|
|
1135
|
+
case "emergency":
|
|
1136
|
+
currentLogLevel = "Fatal"
|
|
1137
|
+
break
|
|
1138
|
+
}
|
|
1139
|
+
}),
|
|
1140
|
+
"prompts/get": (r) =>
|
|
1141
|
+
server.getPromptResult(r).pipe(
|
|
1142
|
+
Effect.provideService(CurrentLogLevel, currentLogLevel)
|
|
1143
|
+
),
|
|
1111
1144
|
"prompts/list": () => Effect.sync(() => new ListPromptsResult({ prompts: server.prompts })),
|
|
1112
1145
|
"resources/list": () => Effect.sync(() => new ListResourcesResult({ resources: server.resources })),
|
|
1113
|
-
"resources/read": ({ uri }) =>
|
|
1146
|
+
"resources/read": ({ uri }) =>
|
|
1147
|
+
server.findResource(uri).pipe(
|
|
1148
|
+
Effect.provideService(CurrentLogLevel, currentLogLevel)
|
|
1149
|
+
),
|
|
1114
1150
|
"resources/subscribe": () => InternalError.notImplemented.asEffect(),
|
|
1115
1151
|
"resources/unsubscribe": () => InternalError.notImplemented.asEffect(),
|
|
1116
1152
|
"resources/templates/list": () =>
|
|
1117
1153
|
Effect.sync(() => new ListResourceTemplatesResult({ resourceTemplates: server.resourceTemplates })),
|
|
1118
|
-
"tools/call":
|
|
1154
|
+
"tools/call": (r) =>
|
|
1155
|
+
server.callTool(r).pipe(
|
|
1156
|
+
Effect.provideService(CurrentLogLevel, currentLogLevel)
|
|
1157
|
+
),
|
|
1119
1158
|
"tools/list": () => Effect.sync(() => new ListToolsResult({ tools: server.tools })),
|
|
1120
1159
|
|
|
1121
1160
|
// Notifications
|