effect 4.0.7 → 4.1.1
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/README.md +31 -1
- package/THIRD_PARTY_NOTICES.md +62 -0
- package/dist/BigDecimal.d.ts +139 -7
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +86 -14
- package/dist/BigDecimal.js.map +1 -1
- package/dist/Channel.d.ts +12 -6
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +9 -3
- package/dist/Channel.js.map +1 -1
- package/dist/Config.d.ts +7 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js.map +1 -1
- package/dist/Context.d.ts +18 -1
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +27 -8
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +81 -11
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +101 -26
- package/dist/Cron.js.map +1 -1
- package/dist/Duration.d.ts +78 -0
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +123 -0
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +164 -7
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +11 -1
- package/dist/Effect.js.map +1 -1
- package/dist/Equal.d.ts +2 -2
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +3 -3
- package/dist/Equal.js.map +1 -1
- package/dist/FileSystem.d.ts +59 -4
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +9 -2
- package/dist/FileSystem.js.map +1 -1
- package/dist/Glob.d.ts +165 -0
- package/dist/Glob.d.ts.map +1 -0
- package/dist/Glob.js +127 -0
- package/dist/Glob.js.map +1 -0
- package/dist/Hash.d.ts +3 -2
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +5 -4
- package/dist/Hash.js.map +1 -1
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +11 -8
- package/dist/Iterable.js.map +1 -1
- package/dist/Match.d.ts +86 -0
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +72 -0
- package/dist/Match.js.map +1 -1
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +5 -1
- package/dist/Path.js.map +1 -1
- package/dist/Pool.d.ts +51 -0
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +61 -10
- package/dist/Pool.js.map +1 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +3 -3
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +8 -2
- package/dist/RcMap.js.map +1 -1
- package/dist/Schedule.d.ts +18 -1
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +7 -2
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +668 -42
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +652 -1
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaGetter.d.ts +6 -1
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +22 -11
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +18 -2
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +20 -2
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +10 -5
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +8 -5
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +5 -7
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +130 -0
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +40 -0
- package/dist/Semaphore.js.map +1 -1
- package/dist/Stream.d.ts +13 -4
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +9 -0
- package/dist/Stream.js.map +1 -1
- package/dist/Terminal.d.ts +18 -1
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +1 -1
- package/dist/Terminal.js.map +1 -1
- package/dist/ai/AiError.d.ts +43 -116
- package/dist/ai/AiError.d.ts.map +1 -1
- package/dist/ai/AiError.js +53 -72
- package/dist/ai/AiError.js.map +1 -1
- package/dist/ai/Decision.d.ts +196 -15
- package/dist/ai/Decision.d.ts.map +1 -1
- package/dist/ai/Decision.js +130 -0
- package/dist/ai/Decision.js.map +1 -1
- package/dist/ai/DecisionModel.d.ts +54 -13
- package/dist/ai/DecisionModel.d.ts.map +1 -1
- package/dist/ai/DecisionModel.js +123 -12
- package/dist/ai/DecisionModel.js.map +1 -1
- package/dist/ai/McpClient.d.ts +171 -19
- package/dist/ai/McpClient.d.ts.map +1 -1
- package/dist/ai/McpClient.js +277 -66
- package/dist/ai/McpClient.js.map +1 -1
- package/dist/ai/McpSchema.d.ts +108 -0
- package/dist/ai/McpSchema.d.ts.map +1 -1
- package/dist/ai/McpSchema.js +99 -0
- package/dist/ai/McpSchema.js.map +1 -1
- package/dist/ai/McpServer.d.ts +744 -29
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +763 -136
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/McpTest.d.ts +130 -0
- package/dist/ai/McpTest.d.ts.map +1 -0
- package/dist/ai/McpTest.js +237 -0
- package/dist/ai/McpTest.js.map +1 -0
- package/dist/ai/Prompt.d.ts.map +1 -1
- package/dist/ai/Prompt.js +20 -11
- package/dist/ai/Prompt.js.map +1 -1
- package/dist/ai/Response.d.ts +1 -25
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js +1 -10
- package/dist/ai/Response.js.map +1 -1
- package/dist/ai/Tool.d.ts +19 -1
- package/dist/ai/Tool.d.ts.map +1 -1
- package/dist/ai/Tool.js +5 -7
- package/dist/ai/Tool.js.map +1 -1
- package/dist/ai/index.d.ts +5 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +5 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/internal/mcpCore.js +89 -15
- package/dist/ai/internal/mcpCore.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js +7 -6
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js +7 -6
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js +7 -6
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js +7 -6
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +60 -17
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js +25 -0
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +8 -6
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpSkills.d.ts +2 -0
- package/dist/ai/internal/mcpSkills.d.ts.map +1 -0
- package/dist/ai/internal/mcpSkills.js +428 -0
- package/dist/ai/internal/mcpSkills.js.map +1 -0
- package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
- package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
- package/dist/cli/Argument.d.ts +6 -0
- package/dist/cli/Argument.d.ts.map +1 -1
- package/dist/cli/Argument.js +2 -0
- package/dist/cli/Argument.js.map +1 -1
- package/dist/cli/CliOutput.d.ts +65 -1
- package/dist/cli/CliOutput.d.ts.map +1 -1
- package/dist/cli/CliOutput.js +94 -37
- package/dist/cli/CliOutput.js.map +1 -1
- package/dist/cli/Command.d.ts +23 -0
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +8 -0
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Flag.d.ts +107 -0
- package/dist/cli/Flag.d.ts.map +1 -1
- package/dist/cli/Flag.js +37 -0
- package/dist/cli/Flag.js.map +1 -1
- package/dist/cli/HelpDoc.d.ts +15 -1
- package/dist/cli/HelpDoc.d.ts.map +1 -1
- package/dist/cli/Param.d.ts +6 -0
- package/dist/cli/Param.d.ts.map +1 -1
- package/dist/cli/Param.js +2 -0
- package/dist/cli/Param.js.map +1 -1
- package/dist/cli/Primitive.d.ts +14 -0
- package/dist/cli/Primitive.d.ts.map +1 -1
- package/dist/cli/Primitive.js +15 -1
- package/dist/cli/Primitive.js.map +1 -1
- package/dist/cli/Prompt.d.ts +1 -0
- package/dist/cli/Prompt.d.ts.map +1 -1
- package/dist/cli/Prompt.js +1 -0
- package/dist/cli/Prompt.js.map +1 -1
- package/dist/cli/internal/help.d.ts.map +1 -1
- package/dist/cli/internal/help.js +17 -10
- package/dist/cli/internal/help.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +15 -5
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/Reply.d.ts +1 -1
- package/dist/cluster/Reply.d.ts.map +1 -1
- package/dist/cluster/Reply.js.map +1 -1
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +93 -28
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/ShardingConfig.d.ts +72 -6
- package/dist/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/cluster/ShardingConfig.js +4 -0
- package/dist/cluster/ShardingConfig.js.map +1 -1
- package/dist/cluster/SingleRunner.d.ts +3 -3
- package/dist/cluster/SingleRunner.d.ts.map +1 -1
- package/dist/cluster/SingleRunner.js +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts +37 -6
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +34 -7
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +23 -8
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +15 -7
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/crypto/Aead.d.ts +323 -0
- package/dist/crypto/Aead.d.ts.map +1 -0
- package/dist/crypto/Aead.js +331 -0
- package/dist/crypto/Aead.js.map +1 -0
- package/dist/crypto/Cipher.d.ts +236 -0
- package/dist/crypto/Cipher.d.ts.map +1 -0
- package/dist/crypto/Cipher.js +233 -0
- package/dist/crypto/Cipher.js.map +1 -0
- package/dist/crypto/CryptoError.d.ts +212 -0
- package/dist/crypto/CryptoError.d.ts.map +1 -0
- package/dist/crypto/CryptoError.js +202 -0
- package/dist/crypto/CryptoError.js.map +1 -0
- package/dist/crypto/Digest.d.ts +143 -0
- package/dist/crypto/Digest.d.ts.map +1 -0
- package/dist/crypto/Digest.js +146 -0
- package/dist/crypto/Digest.js.map +1 -0
- package/dist/crypto/Kdf.d.ts +220 -0
- package/dist/crypto/Kdf.d.ts.map +1 -0
- package/dist/crypto/Kdf.js +212 -0
- package/dist/crypto/Kdf.js.map +1 -0
- package/dist/crypto/KeyAgreement.d.ts +324 -0
- package/dist/crypto/KeyAgreement.d.ts.map +1 -0
- package/dist/crypto/KeyAgreement.js +303 -0
- package/dist/crypto/KeyAgreement.js.map +1 -0
- package/dist/crypto/KeyFormat.d.ts +341 -0
- package/dist/crypto/KeyFormat.d.ts.map +1 -0
- package/dist/crypto/KeyFormat.js +556 -0
- package/dist/crypto/KeyFormat.js.map +1 -0
- package/dist/crypto/KeyWrap.d.ts +390 -0
- package/dist/crypto/KeyWrap.d.ts.map +1 -0
- package/dist/crypto/KeyWrap.js +381 -0
- package/dist/crypto/KeyWrap.js.map +1 -0
- package/dist/crypto/Mac.d.ts +278 -0
- package/dist/crypto/Mac.d.ts.map +1 -0
- package/dist/crypto/Mac.js +288 -0
- package/dist/crypto/Mac.js.map +1 -0
- package/dist/crypto/SecureRandom.d.ts +340 -0
- package/dist/crypto/SecureRandom.d.ts.map +1 -0
- package/dist/crypto/SecureRandom.js +257 -0
- package/dist/crypto/SecureRandom.js.map +1 -0
- package/dist/crypto/Signature.d.ts +449 -0
- package/dist/crypto/Signature.d.ts.map +1 -0
- package/dist/crypto/Signature.js +484 -0
- package/dist/crypto/Signature.js.map +1 -0
- package/dist/crypto/WebCrypto.d.ts +80 -0
- package/dist/crypto/WebCrypto.d.ts.map +1 -0
- package/dist/crypto/WebCrypto.js +63 -0
- package/dist/crypto/WebCrypto.js.map +1 -0
- package/dist/crypto/index.d.ts +65 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +66 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/crypto/internal/asymmetric.d.ts +2 -0
- package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
- package/dist/crypto/internal/asymmetric.js +210 -0
- package/dist/crypto/internal/asymmetric.js.map +1 -0
- package/dist/crypto/internal/chacha.d.ts +46 -0
- package/dist/crypto/internal/chacha.d.ts.map +1 -0
- package/dist/crypto/internal/chacha.js +885 -0
- package/dist/crypto/internal/chacha.js.map +1 -0
- package/dist/crypto/internal/der.d.ts +6 -0
- package/dist/crypto/internal/der.d.ts.map +1 -0
- package/dist/crypto/internal/der.js +86 -0
- package/dist/crypto/internal/der.js.map +1 -0
- package/dist/crypto/internal/digest.d.ts +2 -0
- package/dist/crypto/internal/digest.d.ts.map +1 -0
- package/dist/crypto/internal/digest.js +15 -0
- package/dist/crypto/internal/digest.js.map +1 -0
- package/dist/crypto/internal/key.d.ts +2 -0
- package/dist/crypto/internal/key.d.ts.map +1 -0
- package/dist/crypto/internal/key.js +171 -0
- package/dist/crypto/internal/key.js.map +1 -0
- package/dist/crypto/internal/md5.d.ts +39 -0
- package/dist/crypto/internal/md5.d.ts.map +1 -0
- package/dist/crypto/internal/md5.js +179 -0
- package/dist/crypto/internal/md5.js.map +1 -0
- package/dist/crypto/internal/webCrypto.d.ts +2 -0
- package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
- package/dist/crypto/internal/webCrypto.js +111 -0
- package/dist/crypto/internal/webCrypto.js.map +1 -0
- package/dist/encoding/Base64Url.d.ts.map +1 -1
- package/dist/encoding/Base64Url.js +29 -5
- package/dist/encoding/Base64Url.js.map +1 -1
- package/dist/encoding/Csv.d.ts +608 -0
- package/dist/encoding/Csv.d.ts.map +1 -0
- package/dist/encoding/Csv.js +718 -0
- package/dist/encoding/Csv.js.map +1 -0
- package/dist/encoding/Hex.d.ts +3 -2
- package/dist/encoding/Hex.d.ts.map +1 -1
- package/dist/encoding/Hex.js +3 -2
- package/dist/encoding/Hex.js.map +1 -1
- package/dist/encoding/Ndjson.d.ts +5 -4
- package/dist/encoding/Ndjson.d.ts.map +1 -1
- package/dist/encoding/Ndjson.js +6 -5
- package/dist/encoding/Ndjson.js.map +1 -1
- package/dist/encoding/SchemaBinary.d.ts.map +1 -1
- package/dist/encoding/SchemaBinary.js +42 -4
- package/dist/encoding/SchemaBinary.js.map +1 -1
- package/dist/encoding/Sse.d.ts +3 -1
- package/dist/encoding/Sse.d.ts.map +1 -1
- package/dist/encoding/Sse.js +5 -3
- package/dist/encoding/Sse.js.map +1 -1
- package/dist/encoding/Toml.d.ts +17 -3
- package/dist/encoding/Toml.d.ts.map +1 -1
- package/dist/encoding/Toml.js +104 -16
- package/dist/encoding/Toml.js.map +1 -1
- package/dist/encoding/Yaml.d.ts +8 -1
- package/dist/encoding/Yaml.d.ts.map +1 -1
- package/dist/encoding/Yaml.js +54 -18
- package/dist/encoding/Yaml.js.map +1 -1
- package/dist/encoding/index.d.ts +5 -0
- package/dist/encoding/index.d.ts.map +1 -1
- package/dist/encoding/index.js +5 -0
- package/dist/encoding/index.js.map +1 -1
- package/dist/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/eventlog/EventJournal.js +6 -3
- package/dist/eventlog/EventJournal.js.map +1 -1
- package/dist/eventlog/EventLog.d.ts +126 -4
- package/dist/eventlog/EventLog.d.ts.map +1 -1
- package/dist/eventlog/EventLog.js +207 -12
- package/dist/eventlog/EventLog.js.map +1 -1
- package/dist/eventlog/EventLogEncryption.d.ts +41 -4
- package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/eventlog/EventLogEncryption.js +83 -64
- package/dist/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/eventlog/EventLogMessage.d.ts +279 -0
- package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/eventlog/EventLogMessage.js +217 -1
- package/dist/eventlog/EventLogMessage.js.map +1 -1
- package/dist/eventlog/EventLogRemote.d.ts +200 -28
- package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/eventlog/EventLogRemote.js +186 -16
- package/dist/eventlog/EventLogRemote.js.map +1 -1
- package/dist/eventlog/EventLogServer.d.ts +10 -1
- package/dist/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/eventlog/EventLogServer.js +45 -22
- package/dist/eventlog/EventLogServer.js.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.d.ts +336 -5
- package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.js +769 -14
- package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.d.ts +17 -0
- package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.js +14 -2
- package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/EventLogSessionAuth.d.ts +26 -3
- package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
- package/dist/eventlog/EventLogSessionAuth.js +63 -64
- package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/eventlog/EventRow.d.ts +4 -0
- package/dist/eventlog/EventRow.d.ts.map +1 -1
- package/dist/eventlog/EventRow.js +12 -2
- package/dist/eventlog/EventRow.js.map +1 -1
- package/dist/eventlog/SqlEventJournal.js +2 -2
- package/dist/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
- package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
- package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/internal/batches.d.ts +12 -0
- package/dist/eventlog/internal/batches.d.ts.map +1 -0
- package/dist/eventlog/internal/batches.js +26 -0
- package/dist/eventlog/internal/batches.js.map +1 -0
- package/dist/eventlog/internal/compaction.d.ts +38 -0
- package/dist/eventlog/internal/compaction.d.ts.map +1 -0
- package/dist/eventlog/internal/compaction.js +33 -0
- package/dist/eventlog/internal/compaction.js.map +1 -0
- package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
- package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
- package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
- package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
- package/dist/eventlog/internal/remoteCompaction.js +76 -0
- package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
- package/dist/graphql/GraphQLClient.d.ts +3 -1
- package/dist/graphql/GraphQLClient.d.ts.map +1 -1
- package/dist/graphql/GraphQLClient.js.map +1 -1
- package/dist/graphql/GraphQLClientError.d.ts +14 -9
- package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
- package/dist/graphql/GraphQLClientError.js +14 -21
- package/dist/graphql/GraphQLClientError.js.map +1 -1
- package/dist/graphql/GraphQLProtocol.d.ts +12 -3
- package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
- package/dist/graphql/GraphQLProtocol.js +4 -1
- package/dist/graphql/GraphQLProtocol.js.map +1 -1
- package/dist/http/Cookies.d.ts +172 -0
- package/dist/http/Cookies.d.ts.map +1 -1
- package/dist/http/Cookies.js +143 -1
- package/dist/http/Cookies.js.map +1 -1
- package/dist/http/FetchHttpClient.d.ts +26 -2
- package/dist/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/http/FetchHttpClient.js +78 -15
- package/dist/http/FetchHttpClient.js.map +1 -1
- package/dist/http/HttpClient.d.ts +268 -15
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +140 -7
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpClientRequest.d.ts +9 -5
- package/dist/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/http/HttpClientRequest.js +2 -3
- package/dist/http/HttpClientRequest.js.map +1 -1
- package/dist/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/http/HttpClientResponse.js +3 -2
- package/dist/http/HttpClientResponse.js.map +1 -1
- package/dist/http/HttpMethod.d.ts +7 -1
- package/dist/http/HttpMethod.d.ts.map +1 -1
- package/dist/http/HttpMethod.js +3 -8
- package/dist/http/HttpMethod.js.map +1 -1
- package/dist/http/HttpServerRequest.d.ts +5 -2
- package/dist/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/http/HttpServerRequest.js +44 -39
- package/dist/http/HttpServerRequest.js.map +1 -1
- package/dist/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/http/HttpServerResponse.js +3 -2
- package/dist/http/HttpServerResponse.js.map +1 -1
- package/dist/http/HttpTraceContext.d.ts +2 -1
- package/dist/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/http/HttpTraceContext.js +7 -5
- package/dist/http/HttpTraceContext.js.map +1 -1
- package/dist/http/ProblemDetails.d.ts +96 -0
- package/dist/http/ProblemDetails.d.ts.map +1 -0
- package/dist/http/ProblemDetails.js +98 -0
- package/dist/http/ProblemDetails.js.map +1 -0
- package/dist/http/index.d.ts +5 -0
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +5 -0
- package/dist/http/index.js.map +1 -1
- package/dist/http/internal/decompression.js +3 -2
- package/dist/http/internal/decompression.js.map +1 -1
- package/dist/http/internal/mimeTypes.d.ts +4 -1
- package/dist/http/internal/mimeTypes.d.ts.map +1 -1
- package/dist/http/internal/mimeTypes.js +4 -1
- package/dist/http/internal/mimeTypes.js.map +1 -1
- package/dist/http/internal/urlParams.js +8 -0
- package/dist/http/internal/urlParams.js.map +1 -1
- package/dist/http-api/HttpApiBuilder.js +19 -5
- package/dist/http-api/HttpApiBuilder.js.map +1 -1
- package/dist/http-api/HttpApiClient.d.ts +63 -0
- package/dist/http-api/HttpApiClient.d.ts.map +1 -1
- package/dist/http-api/HttpApiClient.js +51 -0
- package/dist/http-api/HttpApiClient.js.map +1 -1
- package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/http-api/HttpApiEndpoint.js +14 -5
- package/dist/http-api/HttpApiEndpoint.js.map +1 -1
- package/dist/http-api/HttpApiError.d.ts +185 -13
- package/dist/http-api/HttpApiError.d.ts.map +1 -1
- package/dist/http-api/HttpApiError.js +128 -0
- package/dist/http-api/HttpApiError.js.map +1 -1
- package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
- package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/http-api/HttpApiMiddleware.js +85 -1
- package/dist/http-api/HttpApiMiddleware.js.map +1 -1
- package/dist/http-api/HttpApiSchema.d.ts +76 -14
- package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
- package/dist/http-api/HttpApiSchema.js +54 -1
- package/dist/http-api/HttpApiSchema.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/internal/dateTime.js +49 -24
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +35 -14
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/glob.d.ts +2 -0
- package/dist/internal/glob.d.ts.map +1 -0
- package/dist/internal/glob.js +808 -0
- package/dist/internal/glob.js.map +1 -0
- package/dist/internal/graphql.js +21 -7
- package/dist/internal/graphql.js.map +1 -1
- package/dist/internal/graphqlHeaders.d.ts +7 -0
- package/dist/internal/graphqlHeaders.d.ts.map +1 -1
- package/dist/internal/graphqlHeaders.js +11 -0
- package/dist/internal/graphqlHeaders.js.map +1 -1
- package/dist/internal/matcher.js +10 -0
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/persistence.js +9 -0
- package/dist/internal/persistence.js.map +1 -1
- package/dist/internal/rcRef.js +4 -1
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/request.js +29 -42
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.js +7 -8
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js +6 -3
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/trie.js +42 -13
- package/dist/internal/trie.js.map +1 -1
- package/dist/internal/ulid.js +41 -0
- package/dist/internal/ulid.js.map +1 -1
- package/dist/internal/uuid.js +52 -8
- package/dist/internal/uuid.js.map +1 -1
- package/dist/internal/version.js +1 -1
- package/dist/jose/JoseError.d.ts +285 -0
- package/dist/jose/JoseError.d.ts.map +1 -0
- package/dist/jose/JoseError.js +269 -0
- package/dist/jose/JoseError.js.map +1 -0
- package/dist/jose/Jwe.d.ts +128 -0
- package/dist/jose/Jwe.d.ts.map +1 -0
- package/dist/jose/Jwe.js +134 -0
- package/dist/jose/Jwe.js.map +1 -0
- package/dist/jose/Jwk.d.ts +597 -0
- package/dist/jose/Jwk.d.ts.map +1 -0
- package/dist/jose/Jwk.js +503 -0
- package/dist/jose/Jwk.js.map +1 -0
- package/dist/jose/Jwks.d.ts +236 -0
- package/dist/jose/Jwks.d.ts.map +1 -0
- package/dist/jose/Jwks.js +306 -0
- package/dist/jose/Jwks.js.map +1 -0
- package/dist/jose/Jws.d.ts +177 -0
- package/dist/jose/Jws.d.ts.map +1 -0
- package/dist/jose/Jws.js +183 -0
- package/dist/jose/Jws.js.map +1 -0
- package/dist/jose/Jwt.d.ts +270 -0
- package/dist/jose/Jwt.d.ts.map +1 -0
- package/dist/jose/Jwt.js +293 -0
- package/dist/jose/Jwt.js.map +1 -0
- package/dist/jose/index.d.ts +51 -0
- package/dist/jose/index.d.ts.map +1 -0
- package/dist/jose/index.js +52 -0
- package/dist/jose/index.js.map +1 -0
- package/dist/jose/internal/compact.d.ts +2 -0
- package/dist/jose/internal/compact.d.ts.map +1 -0
- package/dist/jose/internal/compact.js +179 -0
- package/dist/jose/internal/compact.js.map +1 -0
- package/dist/net/Host.d.ts.map +1 -1
- package/dist/net/Host.js +5 -10
- package/dist/net/Host.js.map +1 -1
- package/dist/observability/Otlp.d.ts +15 -4
- package/dist/observability/Otlp.d.ts.map +1 -1
- package/dist/observability/Otlp.js +10 -0
- package/dist/observability/Otlp.js.map +1 -1
- package/dist/observability/OtlpResource.d.ts +7 -0
- package/dist/observability/OtlpResource.d.ts.map +1 -1
- package/dist/observability/OtlpResource.js +11 -1
- package/dist/observability/OtlpResource.js.map +1 -1
- package/dist/observability/OtlpSerialization.d.ts +1 -1
- package/dist/observability/OtlpSerialization.d.ts.map +1 -1
- package/dist/observability/OtlpSerialization.js +10 -4
- package/dist/observability/OtlpSerialization.js.map +1 -1
- package/dist/observability/internal/otlpProtobuf.js +3 -3
- package/dist/observability/internal/otlpProtobuf.js.map +1 -1
- package/dist/observability/internal/protobuf.js +6 -0
- package/dist/observability/internal/protobuf.js.map +1 -1
- package/dist/persistence/CircuitBreaker.d.ts +98 -38
- package/dist/persistence/CircuitBreaker.d.ts.map +1 -1
- package/dist/persistence/CircuitBreaker.js +67 -29
- package/dist/persistence/CircuitBreaker.js.map +1 -1
- package/dist/persistence/KeyValueStore.d.ts +47 -2
- package/dist/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/persistence/KeyValueStore.js +129 -18
- package/dist/persistence/KeyValueStore.js.map +1 -1
- package/dist/persistence/PersistedQueue.d.ts +9 -0
- package/dist/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/persistence/PersistedQueue.js +94 -52
- package/dist/persistence/PersistedQueue.js.map +1 -1
- package/dist/persistence/Persistence.d.ts +10 -4
- package/dist/persistence/Persistence.d.ts.map +1 -1
- package/dist/persistence/Persistence.js +18 -11
- package/dist/persistence/Persistence.js.map +1 -1
- package/dist/persistence/RateLimiter.d.ts +8 -0
- package/dist/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/persistence/RateLimiter.js +63 -12
- package/dist/persistence/RateLimiter.js.map +1 -1
- package/dist/persistence/index.d.ts +1 -1
- package/dist/persistence/index.js +1 -1
- package/dist/process/ChildProcess.d.ts +207 -67
- package/dist/process/ChildProcess.d.ts.map +1 -1
- package/dist/process/ChildProcess.js +56 -158
- package/dist/process/ChildProcess.js.map +1 -1
- package/dist/process/ChildProcessSpawner.d.ts +5 -0
- package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/process/ChildProcessSpawner.js.map +1 -1
- package/dist/process/CommandLine.d.ts +294 -0
- package/dist/process/CommandLine.d.ts.map +1 -0
- package/dist/process/CommandLine.js +481 -0
- package/dist/process/CommandLine.js.map +1 -0
- package/dist/process/index.d.ts +5 -0
- package/dist/process/index.d.ts.map +1 -1
- package/dist/process/index.js +5 -0
- package/dist/process/index.js.map +1 -1
- package/dist/reactivity/Atom.d.ts +2 -1
- package/dist/reactivity/Atom.d.ts.map +1 -1
- package/dist/reactivity/Atom.js +3 -4
- package/dist/reactivity/Atom.js.map +1 -1
- package/dist/reactivity/AtomRegistry.js +17 -7
- package/dist/reactivity/AtomRegistry.js.map +1 -1
- package/dist/rpc/Rpc.d.ts +1 -1
- package/dist/rpc/Rpc.d.ts.map +1 -1
- package/dist/rpc/Rpc.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +28 -1
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +78 -27
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcMessage.d.ts +13 -3
- package/dist/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/rpc/RpcMessage.js +1 -0
- package/dist/rpc/RpcMessage.js.map +1 -1
- package/dist/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/rpc/RpcSerialization.js +6 -0
- package/dist/rpc/RpcSerialization.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts +31 -0
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +139 -66
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/schema/Model.d.ts +14 -0
- package/dist/schema/Model.d.ts.map +1 -1
- package/dist/schema/Model.js +18 -3
- package/dist/schema/Model.js.map +1 -1
- package/dist/sql/Migrator.d.ts +9 -20
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +20 -53
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/MigratorFileSystem.d.ts +21 -0
- package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
- package/dist/sql/MigratorFileSystem.js +57 -0
- package/dist/sql/MigratorFileSystem.js.map +1 -0
- package/dist/sql/SqlClient.d.ts +38 -3
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +9 -12
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/Statement.d.ts +61 -9
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +24 -33
- package/dist/sql/Statement.js.map +1 -1
- package/dist/sql/index.js +1 -1
- package/dist/testing/index.d.ts +0 -5
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +0 -5
- package/dist/testing/index.js.map +1 -1
- package/dist/workflow/Workflow.d.ts +4 -0
- package/dist/workflow/Workflow.d.ts.map +1 -1
- package/dist/workflow/Workflow.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +5 -0
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/dist/workflow/internal/crypto.js +9 -8
- package/dist/workflow/internal/crypto.js.map +1 -1
- package/package.json +7 -1
- package/src/BigDecimal.ts +173 -16
- package/src/Channel.ts +17 -11
- package/src/Config.ts +7 -1
- package/src/Context.ts +34 -10
- package/src/Cron.ts +178 -29
- package/src/Duration.ts +140 -0
- package/src/Effect.ts +914 -85
- package/src/Equal.ts +3 -3
- package/src/FileSystem.ts +65 -4
- package/src/Glob.ts +205 -0
- package/src/Hash.ts +5 -4
- package/src/Iterable.ts +8 -5
- package/src/Match.ts +127 -0
- package/src/Path.ts +6 -1
- package/src/Pool.ts +75 -16
- package/src/Random.ts +3 -3
- package/src/RcMap.ts +5 -1
- package/src/Schedule.ts +26 -3
- package/src/Schema.ts +1191 -63
- package/src/SchemaGetter.ts +27 -11
- package/src/SchemaRepresentation.ts +23 -2
- package/src/SchemaTransformation.ts +10 -5
- package/src/ScopedCache.ts +5 -9
- package/src/Semaphore.ts +141 -0
- package/src/Stream.ts +15 -6
- package/src/Terminal.ts +19 -1
- package/src/ai/AiError.ts +56 -80
- package/src/ai/Decision.ts +257 -6
- package/src/ai/DecisionModel.ts +171 -28
- package/src/ai/McpClient.ts +488 -91
- package/src/ai/McpSchema.ts +119 -0
- package/src/ai/McpServer.ts +1525 -319
- package/src/ai/McpTest.ts +380 -0
- package/src/ai/Prompt.ts +16 -11
- package/src/ai/Response.ts +2 -22
- package/src/ai/Tool.ts +32 -18
- package/src/ai/index.ts +6 -0
- package/src/ai/internal/mcpCore.ts +243 -56
- package/src/ai/internal/mcpProtocol/v2024_11_05.ts +7 -8
- package/src/ai/internal/mcpProtocol/v2025_03_26.ts +7 -8
- package/src/ai/internal/mcpProtocol/v2025_06_18.ts +7 -8
- package/src/ai/internal/mcpProtocol/v2025_11_25.ts +7 -8
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +56 -17
- package/src/ai/internal/mcpProtocol.ts +44 -0
- package/src/ai/internal/mcpRuntime.ts +15 -8
- package/src/ai/internal/mcpSkills.ts +480 -0
- package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
- package/src/cli/Argument.ts +6 -0
- package/src/cli/CliOutput.ts +117 -49
- package/src/cli/Command.ts +23 -0
- package/src/cli/Flag.ts +107 -0
- package/src/cli/HelpDoc.ts +18 -1
- package/src/cli/Param.ts +6 -0
- package/src/cli/Primitive.ts +16 -1
- package/src/cli/Prompt.ts +1 -0
- package/src/cli/internal/help.ts +21 -9
- package/src/cluster/ClusterWorkflowEngine.ts +22 -8
- package/src/cluster/Reply.ts +1 -1
- package/src/cluster/Sharding.ts +96 -26
- package/src/cluster/ShardingConfig.ts +41 -3
- package/src/cluster/SingleRunner.ts +3 -3
- package/src/cluster/SqlMessageStorage.ts +49 -17
- package/src/cluster/SqlRunnerStorage.ts +37 -27
- package/src/cluster/internal/entityManager.ts +24 -10
- package/src/crypto/Aead.ts +517 -0
- package/src/crypto/Cipher.ts +326 -0
- package/src/crypto/CryptoError.ts +242 -0
- package/src/crypto/Digest.ts +167 -0
- package/src/crypto/Kdf.ts +315 -0
- package/src/crypto/KeyAgreement.ts +489 -0
- package/src/crypto/KeyFormat.ts +741 -0
- package/src/crypto/KeyWrap.ts +639 -0
- package/src/crypto/Mac.ts +386 -0
- package/src/crypto/SecureRandom.ts +459 -0
- package/src/crypto/Signature.ts +673 -0
- package/src/crypto/WebCrypto.ts +84 -0
- package/src/crypto/index.ts +78 -0
- package/src/crypto/internal/asymmetric.ts +330 -0
- package/src/crypto/internal/chacha.ts +1088 -0
- package/src/crypto/internal/der.ts +110 -0
- package/src/crypto/internal/digest.ts +16 -0
- package/src/crypto/internal/key.ts +242 -0
- package/src/crypto/internal/md5.ts +170 -0
- package/src/crypto/internal/webCrypto.ts +150 -0
- package/src/encoding/Base64Url.ts +32 -5
- package/src/encoding/Csv.ts +1298 -0
- package/src/encoding/Hex.ts +3 -2
- package/src/encoding/Ndjson.ts +6 -5
- package/src/encoding/SchemaBinary.ts +40 -4
- package/src/encoding/Sse.ts +5 -3
- package/src/encoding/Toml.ts +85 -20
- package/src/encoding/Yaml.ts +61 -18
- package/src/encoding/index.ts +6 -0
- package/src/eventlog/EventJournal.ts +4 -3
- package/src/eventlog/EventLog.ts +347 -15
- package/src/eventlog/EventLogEncryption.ts +118 -110
- package/src/eventlog/EventLogMessage.ts +273 -1
- package/src/eventlog/EventLogRemote.ts +367 -23
- package/src/eventlog/EventLogServer.ts +54 -20
- package/src/eventlog/EventLogServerEncrypted.ts +1135 -67
- package/src/eventlog/EventLogServerUnencrypted.ts +19 -2
- package/src/eventlog/EventLogSessionAuth.ts +82 -70
- package/src/eventlog/EventRow.ts +12 -3
- package/src/eventlog/SqlEventJournal.ts +2 -2
- package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
- package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
- package/src/eventlog/internal/batches.ts +30 -0
- package/src/eventlog/internal/compaction.ts +64 -0
- package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
- package/src/eventlog/internal/remoteCompaction.ts +92 -0
- package/src/graphql/GraphQLClient.ts +3 -1
- package/src/graphql/GraphQLClientError.ts +15 -22
- package/src/graphql/GraphQLProtocol.ts +12 -3
- package/src/http/Cookies.ts +281 -1
- package/src/http/FetchHttpClient.ts +88 -16
- package/src/http/HttpClient.ts +299 -33
- package/src/http/HttpClientRequest.ts +12 -9
- package/src/http/HttpClientResponse.ts +3 -2
- package/src/http/HttpMethod.ts +10 -2
- package/src/http/HttpServerRequest.ts +76 -53
- package/src/http/HttpServerResponse.ts +3 -2
- package/src/http/HttpTraceContext.ts +7 -4
- package/src/http/ProblemDetails.ts +149 -0
- package/src/http/index.ts +6 -0
- package/src/http/internal/decompression.ts +4 -4
- package/src/http/internal/mimeTypes.ts +4 -1
- package/src/http/internal/urlParams.ts +8 -0
- package/src/http-api/HttpApiBuilder.ts +24 -12
- package/src/http-api/HttpApiClient.ts +67 -1
- package/src/http-api/HttpApiEndpoint.ts +14 -5
- package/src/http-api/HttpApiError.ts +250 -0
- package/src/http-api/HttpApiMiddleware.ts +95 -1
- package/src/http-api/HttpApiSchema.ts +106 -15
- package/src/index.ts +6 -6
- package/src/internal/dateTime.ts +54 -24
- package/src/internal/effect.ts +40 -18
- package/src/internal/glob.ts +952 -0
- package/src/internal/graphql.ts +27 -9
- package/src/internal/graphqlHeaders.ts +13 -0
- package/src/internal/matcher.ts +17 -0
- package/src/internal/persistence.ts +11 -0
- package/src/internal/rcRef.ts +4 -1
- package/src/internal/request.ts +51 -58
- package/src/internal/schema/fromJsonSchemaDocument.ts +11 -10
- package/src/internal/schema/toCodeDocument.ts +7 -3
- package/src/internal/trie.ts +43 -14
- package/src/internal/ulid.ts +44 -0
- package/src/internal/uuid.ts +57 -16
- package/src/internal/version.ts +1 -1
- package/src/jose/JoseError.ts +329 -0
- package/src/jose/Jwe.ts +196 -0
- package/src/jose/Jwk.ts +777 -0
- package/src/jose/Jwks.ts +418 -0
- package/src/jose/Jws.ts +312 -0
- package/src/jose/Jwt.ts +493 -0
- package/src/jose/index.ts +58 -0
- package/src/jose/internal/compact.ts +195 -0
- package/src/net/Host.ts +5 -10
- package/src/observability/Otlp.ts +21 -4
- package/src/observability/OtlpResource.ts +9 -1
- package/src/observability/OtlpSerialization.ts +13 -5
- package/src/observability/internal/otlpProtobuf.ts +6 -6
- package/src/observability/internal/protobuf.ts +10 -0
- package/src/persistence/CircuitBreaker.ts +113 -48
- package/src/persistence/KeyValueStore.ts +219 -22
- package/src/persistence/PersistedQueue.ts +128 -59
- package/src/persistence/Persistence.ts +20 -13
- package/src/persistence/RateLimiter.ts +84 -15
- package/src/persistence/index.ts +1 -1
- package/src/process/ChildProcess.ts +255 -260
- package/src/process/ChildProcessSpawner.ts +5 -0
- package/src/process/CommandLine.ts +630 -0
- package/src/process/index.ts +6 -0
- package/src/reactivity/Atom.ts +5 -5
- package/src/reactivity/AtomRegistry.ts +20 -9
- package/src/rpc/Rpc.ts +3 -1
- package/src/rpc/RpcClient.ts +94 -38
- package/src/rpc/RpcMessage.ts +13 -3
- package/src/rpc/RpcSerialization.ts +3 -0
- package/src/rpc/RpcServer.ts +176 -78
- package/src/schema/Model.ts +26 -3
- package/src/sql/Migrator.ts +38 -80
- package/src/sql/MigratorFileSystem.ts +71 -0
- package/src/sql/SqlClient.ts +45 -24
- package/src/sql/Statement.ts +60 -29
- package/src/sql/index.ts +1 -1
- package/src/testing/index.ts +0 -6
- package/src/workflow/Workflow.ts +4 -0
- package/src/workflow/WorkflowEngine.ts +5 -0
- package/src/workflow/internal/crypto.ts +15 -11
- package/dist/Crypto.d.ts +0 -244
- package/dist/Crypto.d.ts.map +0 -1
- package/dist/Crypto.js +0 -139
- package/dist/Crypto.js.map +0 -1
- package/dist/testing/TestCrypto.d.ts +0 -73
- package/dist/testing/TestCrypto.d.ts.map +0 -1
- package/dist/testing/TestCrypto.js +0 -87
- package/dist/testing/TestCrypto.js.map +0 -1
- package/src/Crypto.ts +0 -347
- package/src/testing/TestCrypto.ts +0 -94
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import * as Arr from "../../Array.ts"
|
|
8
|
+
import * as Cause from "../../Cause.ts"
|
|
8
9
|
import * as Data from "../../Data.ts"
|
|
9
10
|
import * as Effect from "../../Effect.ts"
|
|
10
11
|
import type * as McpProtocol from "../McpProtocol.ts"
|
|
@@ -149,6 +150,20 @@ export class UnsupportedByProtocol extends Data.TaggedError("UnsupportedByProtoc
|
|
|
149
150
|
readonly feature: string
|
|
150
151
|
}> {}
|
|
151
152
|
|
|
153
|
+
/**
|
|
154
|
+
* A request rejected outside the handler, for example by MCP middleware.
|
|
155
|
+
* Adapters send it as a JSON-RPC error with its code, message and data, never
|
|
156
|
+
* as a tool result. `error` keeps the original failure for in-process callers.
|
|
157
|
+
*
|
|
158
|
+
* @internal
|
|
159
|
+
*/
|
|
160
|
+
export class RequestRejected extends Data.TaggedError("RequestRejected")<{
|
|
161
|
+
readonly code: number
|
|
162
|
+
readonly message: string
|
|
163
|
+
readonly data?: unknown
|
|
164
|
+
readonly error: McpSchema.McpErrorBase
|
|
165
|
+
}> {}
|
|
166
|
+
|
|
152
167
|
/**
|
|
153
168
|
* @internal
|
|
154
169
|
*/
|
|
@@ -157,6 +172,7 @@ export type ToolError =
|
|
|
157
172
|
| InvalidToolInput
|
|
158
173
|
| InvalidToolContinuation
|
|
159
174
|
| ToolExecutionError
|
|
175
|
+
| RequestRejected
|
|
160
176
|
|
|
161
177
|
/**
|
|
162
178
|
* @internal
|
|
@@ -166,12 +182,13 @@ export interface ToolRegistration {
|
|
|
166
182
|
// `tool.title ?? tool.annotations?.title` at the public boundary.
|
|
167
183
|
readonly descriptor: McpSchema.Tool
|
|
168
184
|
readonly isVisible: (profile: NegotiatedProtocolProfile<string>) => boolean
|
|
185
|
+
readonly visible?: Visible | undefined
|
|
169
186
|
readonly handle: (
|
|
170
187
|
call: typeof McpSchema.CallTool.payloadSchema.Type,
|
|
171
188
|
invocation: McpInvocation
|
|
172
189
|
) => Effect.Effect<
|
|
173
190
|
OperationOutcome<McpSchema.CallToolResult>,
|
|
174
|
-
InvalidToolInput | InvalidToolContinuation | ToolExecutionError,
|
|
191
|
+
ToolNotFound | InvalidToolInput | InvalidToolContinuation | ToolExecutionError | RequestRejected,
|
|
175
192
|
never
|
|
176
193
|
>
|
|
177
194
|
}
|
|
@@ -184,8 +201,13 @@ export interface Tools {
|
|
|
184
201
|
registration: ToolRegistration
|
|
185
202
|
) => Effect.Effect<void>
|
|
186
203
|
readonly list: (
|
|
204
|
+
invocation: McpInvocation
|
|
205
|
+
) => Effect.Effect<ReadonlyArray<McpSchema.Tool>, RequestRejected>
|
|
206
|
+
// Skips request-level visibility checks.
|
|
207
|
+
readonly find: (
|
|
208
|
+
name: string,
|
|
187
209
|
profile: NegotiatedProtocolProfile<string>
|
|
188
|
-
) =>
|
|
210
|
+
) => McpSchema.Tool | undefined
|
|
189
211
|
readonly call: (
|
|
190
212
|
call: typeof McpSchema.CallTool.payloadSchema.Type,
|
|
191
213
|
invocation: McpInvocation
|
|
@@ -198,9 +220,10 @@ export interface Tools {
|
|
|
198
220
|
export interface ResourceRegistration {
|
|
199
221
|
readonly descriptor: McpSchema.Resource
|
|
200
222
|
readonly isVisible: (profile: NegotiatedProtocolProfile<string>) => boolean
|
|
223
|
+
readonly visible?: Visible | undefined
|
|
201
224
|
readonly read: (
|
|
202
225
|
invocation: McpInvocation
|
|
203
|
-
) => Effect.Effect<McpSchema.ReadResourceResult, McpSchema.InternalError>
|
|
226
|
+
) => Effect.Effect<McpSchema.ReadResourceResult, ResourceNotFound | McpSchema.InternalError | RequestRejected>
|
|
204
227
|
}
|
|
205
228
|
|
|
206
229
|
/**
|
|
@@ -209,35 +232,125 @@ export interface ResourceRegistration {
|
|
|
209
232
|
export interface ResourceTemplateRegistration {
|
|
210
233
|
readonly descriptor: McpSchema.ResourceTemplate
|
|
211
234
|
readonly isVisible: (profile: NegotiatedProtocolProfile<string>) => boolean
|
|
235
|
+
readonly visible?: Visible | undefined
|
|
212
236
|
readonly match: (uri: string) => ReadonlyArray<string> | undefined
|
|
213
237
|
readonly read: (
|
|
214
238
|
uri: string,
|
|
215
239
|
params: ReadonlyArray<string>,
|
|
216
240
|
invocation: McpInvocation
|
|
217
|
-
) => Effect.Effect<
|
|
241
|
+
) => Effect.Effect<
|
|
242
|
+
McpSchema.ReadResourceResult,
|
|
243
|
+
ResourceNotFound | McpSchema.InvalidParams | McpSchema.InternalError | RequestRejected
|
|
244
|
+
>
|
|
218
245
|
}
|
|
219
246
|
|
|
220
247
|
/**
|
|
221
248
|
* @internal
|
|
222
249
|
*/
|
|
223
250
|
export interface Resources {
|
|
224
|
-
|
|
251
|
+
// Synchronous, so a caller can check skill ownership and register in one step.
|
|
252
|
+
readonly register: (registration: ResourceRegistration) => void
|
|
225
253
|
readonly registerTemplate: (registration: ResourceTemplateRegistration) => Effect.Effect<void>
|
|
226
254
|
readonly list: (
|
|
227
|
-
|
|
228
|
-
) => Effect.Effect<ReadonlyArray<McpSchema.Resource
|
|
255
|
+
invocation: McpInvocation
|
|
256
|
+
) => Effect.Effect<ReadonlyArray<McpSchema.Resource>, RequestRejected>
|
|
229
257
|
readonly listTemplates: (
|
|
230
|
-
|
|
231
|
-
) => Effect.Effect<ReadonlyArray<McpSchema.ResourceTemplate
|
|
258
|
+
invocation: McpInvocation
|
|
259
|
+
) => Effect.Effect<ReadonlyArray<McpSchema.ResourceTemplate>, RequestRejected>
|
|
232
260
|
readonly read: (
|
|
233
261
|
uri: string,
|
|
234
262
|
invocation: McpInvocation
|
|
235
263
|
) => Effect.Effect<
|
|
236
264
|
McpSchema.ReadResourceResult,
|
|
237
|
-
ResourceNotFound | McpSchema.InvalidParams | McpSchema.InternalError
|
|
265
|
+
ResourceNotFound | McpSchema.InvalidParams | McpSchema.InternalError | RequestRejected
|
|
238
266
|
>
|
|
239
267
|
}
|
|
240
268
|
|
|
269
|
+
/**
|
|
270
|
+
* A file of a skill, with the digest and size of the bytes it is served as.
|
|
271
|
+
*
|
|
272
|
+
* @internal
|
|
273
|
+
*/
|
|
274
|
+
export interface SkillResource {
|
|
275
|
+
readonly uri: string
|
|
276
|
+
readonly digest: string
|
|
277
|
+
readonly size: number
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/**
|
|
281
|
+
* A `skills/list` and `skills/get` entry. `resources` is `"dynamic"` for a
|
|
282
|
+
* skill whose content cannot carry stable digests.
|
|
283
|
+
*
|
|
284
|
+
* @internal
|
|
285
|
+
*/
|
|
286
|
+
export interface Skill {
|
|
287
|
+
readonly uri: string
|
|
288
|
+
readonly frontmatter: Readonly<Record<string, unknown>>
|
|
289
|
+
readonly resources: ReadonlyArray<SkillResource> | "dynamic"
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* A `resources/directory/read` child: a file, with the metadata
|
|
294
|
+
* `resources/list` gives it, or a subdirectory with the `inode/directory` MIME
|
|
295
|
+
* type.
|
|
296
|
+
*
|
|
297
|
+
* @internal
|
|
298
|
+
*/
|
|
299
|
+
export interface DirectoryChild {
|
|
300
|
+
readonly uri: string
|
|
301
|
+
readonly name: string
|
|
302
|
+
readonly description?: string | undefined
|
|
303
|
+
readonly mimeType: string
|
|
304
|
+
readonly size?: number | undefined
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* @internal
|
|
309
|
+
*/
|
|
310
|
+
export class SkillNotFound extends Data.TaggedError("SkillNotFound")<{
|
|
311
|
+
readonly uri: string
|
|
312
|
+
}> {}
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* @internal
|
|
316
|
+
*/
|
|
317
|
+
export class DirectoryNotFound extends Data.TaggedError("DirectoryNotFound")<{
|
|
318
|
+
readonly uri: string
|
|
319
|
+
}> {}
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* @internal
|
|
323
|
+
*/
|
|
324
|
+
export interface SkillRegistration {
|
|
325
|
+
readonly entry: Skill
|
|
326
|
+
readonly isVisible: (profile: NegotiatedProtocolProfile<string>) => boolean
|
|
327
|
+
readonly visible?: Visible | undefined
|
|
328
|
+
// Hides the skill's directories on `resources/directory/read`.
|
|
329
|
+
readonly visibleInDirectories?: Visible | undefined
|
|
330
|
+
readonly get: (invocation: McpInvocation) => Effect.Effect<Skill, SkillNotFound | RequestRejected>
|
|
331
|
+
// `undefined` when this skill has no directory at `uri`. Directories shared
|
|
332
|
+
// by several skills, such as a common path prefix, list the union of what
|
|
333
|
+
// each skill returns.
|
|
334
|
+
readonly directory: (uri: string) => ReadonlyArray<DirectoryChild> | undefined
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* @internal
|
|
339
|
+
*/
|
|
340
|
+
export interface Skills {
|
|
341
|
+
// Fails when the skill's directory overlaps another skill's, or one of its
|
|
342
|
+
// files is already registered as a resource.
|
|
343
|
+
readonly register: (registration: SkillRegistration) => Effect.Effect<void, Cause.IllegalArgumentError>
|
|
344
|
+
// Whether `uri` is a file of a registered skill, which only that skill may serve.
|
|
345
|
+
readonly ownsFile: (uri: string) => boolean
|
|
346
|
+
readonly list: (invocation: McpInvocation) => Effect.Effect<ReadonlyArray<Skill>, RequestRejected>
|
|
347
|
+
readonly get: (uri: string, invocation: McpInvocation) => Effect.Effect<Skill, SkillNotFound | RequestRejected>
|
|
348
|
+
readonly readDirectory: (
|
|
349
|
+
uri: string,
|
|
350
|
+
invocation: McpInvocation
|
|
351
|
+
) => Effect.Effect<ReadonlyArray<DirectoryChild>, DirectoryNotFound | RequestRejected>
|
|
352
|
+
}
|
|
353
|
+
|
|
241
354
|
/**
|
|
242
355
|
* @internal
|
|
243
356
|
*/
|
|
@@ -251,10 +364,14 @@ export class PromptNotFound extends Data.TaggedError("PromptNotFound")<{
|
|
|
251
364
|
export interface PromptRegistration {
|
|
252
365
|
readonly descriptor: McpSchema.Prompt
|
|
253
366
|
readonly isVisible: (profile: NegotiatedProtocolProfile<string>) => boolean
|
|
367
|
+
readonly visible?: Visible | undefined
|
|
254
368
|
readonly get: (
|
|
255
369
|
args: Readonly<Record<string, string>>,
|
|
256
370
|
invocation: McpInvocation
|
|
257
|
-
) => Effect.Effect<
|
|
371
|
+
) => Effect.Effect<
|
|
372
|
+
OperationOutcome<McpSchema.GetPromptResult>,
|
|
373
|
+
PromptNotFound | McpSchema.InvalidParams | McpSchema.InternalError | RequestRejected
|
|
374
|
+
>
|
|
258
375
|
}
|
|
259
376
|
|
|
260
377
|
/**
|
|
@@ -263,15 +380,15 @@ export interface PromptRegistration {
|
|
|
263
380
|
export interface Prompts {
|
|
264
381
|
readonly register: (registration: PromptRegistration) => Effect.Effect<void>
|
|
265
382
|
readonly list: (
|
|
266
|
-
|
|
267
|
-
) => Effect.Effect<ReadonlyArray<McpSchema.Prompt
|
|
383
|
+
invocation: McpInvocation
|
|
384
|
+
) => Effect.Effect<ReadonlyArray<McpSchema.Prompt>, RequestRejected>
|
|
268
385
|
readonly get: (
|
|
269
386
|
name: string,
|
|
270
387
|
args: Readonly<Record<string, string>>,
|
|
271
388
|
invocation: McpInvocation
|
|
272
389
|
) => Effect.Effect<
|
|
273
390
|
OperationOutcome<McpSchema.GetPromptResult>,
|
|
274
|
-
PromptNotFound | McpSchema.InvalidParams | McpSchema.InternalError
|
|
391
|
+
PromptNotFound | McpSchema.InvalidParams | McpSchema.InternalError | RequestRejected
|
|
275
392
|
>
|
|
276
393
|
}
|
|
277
394
|
|
|
@@ -314,12 +431,12 @@ export interface Completions {
|
|
|
314
431
|
complete: (
|
|
315
432
|
request: CompletionRequest,
|
|
316
433
|
invocation: McpInvocation
|
|
317
|
-
) => Effect.Effect<CompletionResult, McpSchema.InvalidParams | McpSchema.InternalError>
|
|
434
|
+
) => Effect.Effect<CompletionResult, McpSchema.InvalidParams | McpSchema.InternalError | RequestRejected>
|
|
318
435
|
) => Effect.Effect<void>
|
|
319
436
|
readonly complete: (
|
|
320
437
|
request: CompletionRequest,
|
|
321
438
|
invocation: McpInvocation
|
|
322
|
-
) => Effect.Effect<CompletionResult, McpSchema.InvalidParams | McpSchema.InternalError>
|
|
439
|
+
) => Effect.Effect<CompletionResult, McpSchema.InvalidParams | McpSchema.InternalError | RequestRejected>
|
|
323
440
|
}
|
|
324
441
|
|
|
325
442
|
/**
|
|
@@ -393,13 +510,30 @@ export interface McpCore {
|
|
|
393
510
|
readonly resources: Resources
|
|
394
511
|
readonly prompts: Prompts
|
|
395
512
|
readonly completions: Completions
|
|
513
|
+
readonly skills: Skills
|
|
396
514
|
readonly registrationPresence: Effect.Effect<{
|
|
397
515
|
readonly tools: boolean
|
|
398
516
|
readonly resources: boolean
|
|
399
517
|
readonly prompts: boolean
|
|
518
|
+
readonly skills: boolean
|
|
400
519
|
}>
|
|
401
520
|
}
|
|
402
521
|
|
|
522
|
+
/**
|
|
523
|
+
* Runs the request-level visibility checks of a registration on a list
|
|
524
|
+
* request, after `isVisible` passed.
|
|
525
|
+
*
|
|
526
|
+
* @internal
|
|
527
|
+
*/
|
|
528
|
+
export type Visible = (invocation: McpInvocation) => Effect.Effect<boolean, RequestRejected>
|
|
529
|
+
|
|
530
|
+
// Whether one skill directory contains the other, or both are the same.
|
|
531
|
+
const skillsOverlap = (a: string, b: string): boolean => {
|
|
532
|
+
const rootA = a.slice(0, -"/SKILL.md".length)
|
|
533
|
+
const rootB = b.slice(0, -"/SKILL.md".length)
|
|
534
|
+
return rootA === rootB || rootA.startsWith(`${rootB}/`) || rootB.startsWith(`${rootA}/`)
|
|
535
|
+
}
|
|
536
|
+
|
|
403
537
|
/**
|
|
404
538
|
* @internal
|
|
405
539
|
*/
|
|
@@ -408,29 +542,42 @@ export const make: Effect.Effect<McpCore> = Effect.sync(() => {
|
|
|
408
542
|
const resourceRegistrations: Array<ResourceRegistration> = []
|
|
409
543
|
const resourceTemplateRegistrations: Array<ResourceTemplateRegistration> = []
|
|
410
544
|
const promptRegistrations = new Map<string, PromptRegistration>()
|
|
545
|
+
const skillRegistrations = new Map<string, SkillRegistration>()
|
|
546
|
+
const skillFiles = new Set<string>()
|
|
411
547
|
const completionRegistrations = new Map<
|
|
412
548
|
string,
|
|
413
549
|
(
|
|
414
550
|
request: CompletionRequest,
|
|
415
551
|
invocation: McpInvocation
|
|
416
|
-
) => Effect.Effect<CompletionResult, McpSchema.InvalidParams | McpSchema.InternalError>
|
|
552
|
+
) => Effect.Effect<CompletionResult, McpSchema.InvalidParams | McpSchema.InternalError | RequestRejected>
|
|
417
553
|
>()
|
|
418
554
|
|
|
555
|
+
const filterList = <D>(
|
|
556
|
+
registrations: Iterable<{
|
|
557
|
+
readonly descriptor: D
|
|
558
|
+
readonly isVisible: ToolRegistration["isVisible"]
|
|
559
|
+
readonly visible?: Visible | undefined
|
|
560
|
+
}>,
|
|
561
|
+
invocation: McpInvocation
|
|
562
|
+
): Effect.Effect<ReadonlyArray<D>, RequestRejected> =>
|
|
563
|
+
Effect.map(
|
|
564
|
+
Effect.filter(
|
|
565
|
+
Arr.filter(registrations, (entry) => entry.isVisible(invocation.protocol)),
|
|
566
|
+
(entry) => entry.visible === undefined ? Effect.succeed(true) : entry.visible(invocation)
|
|
567
|
+
),
|
|
568
|
+
(entries) => entries.map((entry) => entry.descriptor)
|
|
569
|
+
)
|
|
570
|
+
|
|
419
571
|
const tools: Tools = {
|
|
420
572
|
register: (registration) =>
|
|
421
573
|
Effect.sync(() => {
|
|
422
574
|
registrations.set(registration.descriptor.name, registration)
|
|
423
575
|
}),
|
|
424
|
-
list: (
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
descriptors.push(registration.descriptor)
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
return descriptors
|
|
433
|
-
}),
|
|
576
|
+
list: (invocation) => filterList(registrations.values(), invocation),
|
|
577
|
+
find: (name, profile) => {
|
|
578
|
+
const registration = registrations.get(name)
|
|
579
|
+
return registration !== undefined && registration.isVisible(profile) ? registration.descriptor : undefined
|
|
580
|
+
},
|
|
434
581
|
call: (call, invocation) =>
|
|
435
582
|
Effect.suspend((): Effect.Effect<OperationOutcome<McpSchema.CallToolResult>, ToolError> => {
|
|
436
583
|
const registration = registrations.get(call.name)
|
|
@@ -445,15 +592,14 @@ export const make: Effect.Effect<McpCore> = Effect.sync(() => {
|
|
|
445
592
|
}
|
|
446
593
|
|
|
447
594
|
const resources: Resources = {
|
|
448
|
-
register: (registration) =>
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
}),
|
|
595
|
+
register: (registration) => {
|
|
596
|
+
const index = resourceRegistrations.findIndex((entry) => entry.descriptor.uri === registration.descriptor.uri)
|
|
597
|
+
if (index === -1) {
|
|
598
|
+
resourceRegistrations.push(registration)
|
|
599
|
+
} else {
|
|
600
|
+
resourceRegistrations[index] = registration
|
|
601
|
+
}
|
|
602
|
+
},
|
|
457
603
|
registerTemplate: (registration) =>
|
|
458
604
|
Effect.sync(() => {
|
|
459
605
|
const index = resourceTemplateRegistrations.findIndex(
|
|
@@ -465,18 +611,8 @@ export const make: Effect.Effect<McpCore> = Effect.sync(() => {
|
|
|
465
611
|
resourceTemplateRegistrations[index] = registration
|
|
466
612
|
}
|
|
467
613
|
}),
|
|
468
|
-
list: (
|
|
469
|
-
|
|
470
|
-
resourceRegistrations
|
|
471
|
-
.filter((entry) => entry.isVisible(profile))
|
|
472
|
-
.map((entry) => entry.descriptor)
|
|
473
|
-
),
|
|
474
|
-
listTemplates: (profile) =>
|
|
475
|
-
Effect.sync(() =>
|
|
476
|
-
resourceTemplateRegistrations
|
|
477
|
-
.filter((entry) => entry.isVisible(profile))
|
|
478
|
-
.map((entry) => entry.descriptor)
|
|
479
|
-
),
|
|
614
|
+
list: (invocation) => filterList(resourceRegistrations, invocation),
|
|
615
|
+
listTemplates: (invocation) => filterList(resourceTemplateRegistrations, invocation),
|
|
480
616
|
read: Effect.fnUntraced(function*(uri, invocation) {
|
|
481
617
|
const resource = resourceRegistrations.find((entry) => entry.descriptor.uri === uri)
|
|
482
618
|
if (resource !== undefined && resource.isVisible(invocation.protocol)) {
|
|
@@ -497,12 +633,7 @@ export const make: Effect.Effect<McpCore> = Effect.sync(() => {
|
|
|
497
633
|
Effect.sync(() => {
|
|
498
634
|
promptRegistrations.set(registration.descriptor.name, registration)
|
|
499
635
|
}),
|
|
500
|
-
list: (
|
|
501
|
-
Effect.sync(() =>
|
|
502
|
-
Array.from(promptRegistrations.values())
|
|
503
|
-
.filter((entry) => entry.isVisible(profile))
|
|
504
|
-
.map((entry) => entry.descriptor)
|
|
505
|
-
),
|
|
636
|
+
list: (invocation) => filterList(promptRegistrations.values(), invocation),
|
|
506
637
|
get: Effect.fnUntraced(function*(name, args, invocation) {
|
|
507
638
|
const registration = promptRegistrations.get(name)
|
|
508
639
|
if (registration === undefined || !registration.isVisible(invocation.protocol)) {
|
|
@@ -535,11 +666,67 @@ export const make: Effect.Effect<McpCore> = Effect.sync(() => {
|
|
|
535
666
|
})
|
|
536
667
|
}
|
|
537
668
|
|
|
669
|
+
const skills: Skills = {
|
|
670
|
+
register: (registration) =>
|
|
671
|
+
Effect.suspend(() => {
|
|
672
|
+
const { uri, resources } = registration.entry
|
|
673
|
+
const fail = (reason: string) => Effect.fail(new Cause.IllegalArgumentError(`Skill ${uri}: ${reason}`))
|
|
674
|
+
for (const other of skillRegistrations.keys()) {
|
|
675
|
+
if (skillsOverlap(uri, other)) return fail(`its directory overlaps the skill ${other}`)
|
|
676
|
+
}
|
|
677
|
+
const files = resources === "dynamic" ? [] : resources.map((resource) => resource.uri)
|
|
678
|
+
for (const file of files) {
|
|
679
|
+
if (resourceRegistrations.some((entry) => entry.descriptor.uri === file)) {
|
|
680
|
+
return fail(`${file} is already registered as a resource`)
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
skillRegistrations.set(uri, registration)
|
|
684
|
+
for (const file of files) skillFiles.add(file)
|
|
685
|
+
return Effect.void
|
|
686
|
+
}),
|
|
687
|
+
ownsFile: (uri) => skillFiles.has(uri),
|
|
688
|
+
list: (invocation) =>
|
|
689
|
+
filterList(
|
|
690
|
+
Array.from(skillRegistrations.values(), (registration) => ({
|
|
691
|
+
descriptor: registration.entry,
|
|
692
|
+
isVisible: registration.isVisible,
|
|
693
|
+
visible: registration.visible
|
|
694
|
+
})),
|
|
695
|
+
invocation
|
|
696
|
+
),
|
|
697
|
+
get: (uri, invocation) =>
|
|
698
|
+
Effect.suspend(() => {
|
|
699
|
+
const registration = skillRegistrations.get(uri)
|
|
700
|
+
return registration !== undefined && registration.isVisible(invocation.protocol)
|
|
701
|
+
? registration.get(invocation)
|
|
702
|
+
: Effect.fail(new SkillNotFound({ uri }))
|
|
703
|
+
}),
|
|
704
|
+
readDirectory: Effect.fnUntraced(function*(uri, invocation) {
|
|
705
|
+
const children = new Map<string, DirectoryChild>()
|
|
706
|
+
let found = false
|
|
707
|
+
for (const registration of skillRegistrations.values()) {
|
|
708
|
+
const own = registration.directory(uri)
|
|
709
|
+
if (own === undefined || !registration.isVisible(invocation.protocol)) continue
|
|
710
|
+
if (
|
|
711
|
+
registration.visibleInDirectories !== undefined &&
|
|
712
|
+
!(yield* registration.visibleInDirectories(invocation))
|
|
713
|
+
) continue
|
|
714
|
+
found = true
|
|
715
|
+
for (const child of own) children.set(child.uri, child)
|
|
716
|
+
}
|
|
717
|
+
if (!found) {
|
|
718
|
+
return yield* new DirectoryNotFound({ uri })
|
|
719
|
+
}
|
|
720
|
+
return Array.from(children.values()).sort((a, b) => a.uri < b.uri ? -1 : a.uri > b.uri ? 1 : 0)
|
|
721
|
+
})
|
|
722
|
+
}
|
|
723
|
+
|
|
538
724
|
const registrationPresence = Effect.sync(() => ({
|
|
539
725
|
tools: registrations.size > 0,
|
|
540
726
|
resources: resourceRegistrations.length > 0 || resourceTemplateRegistrations.length > 0,
|
|
541
|
-
prompts: promptRegistrations.size > 0
|
|
727
|
+
prompts: promptRegistrations.size > 0,
|
|
728
|
+
skills: skillRegistrations.size > 0
|
|
542
729
|
}))
|
|
543
730
|
|
|
544
|
-
return { tools, resources, prompts, completions, registrationPresence }
|
|
731
|
+
return { tools, resources, prompts, completions, skills, registrationPresence }
|
|
545
732
|
})
|
|
@@ -10,9 +10,10 @@ import * as McpCore from "../mcpCore.ts"
|
|
|
10
10
|
import * as McpProtocol from "../mcpProtocol.ts"
|
|
11
11
|
import * as McpRuntime from "../mcpRuntime.ts"
|
|
12
12
|
import * as McpSchema from "../mcpSchema/v2024_11_05.ts"
|
|
13
|
+
import * as McpSkills from "../mcpSkills.ts"
|
|
13
14
|
|
|
14
15
|
// Pings can arrive before initialize and do not require a client session.
|
|
15
|
-
const ClientRequestRpcs = McpSchema.ClientRequestRpcs.omit("ping").middleware(
|
|
16
|
+
const ClientRequestRpcs = McpSchema.ClientRequestRpcs.omit("ping").merge(McpSkills.LegacyRpcs).middleware(
|
|
16
17
|
PublicMcpSchema.McpServerClientMiddleware
|
|
17
18
|
).add(McpSchema.Ping)
|
|
18
19
|
|
|
@@ -124,6 +125,7 @@ export const protocol = McpProtocol.make({
|
|
|
124
125
|
handlerRpcs: AdapterRpcs,
|
|
125
126
|
makeHandlers: (core, lifecycle) =>
|
|
126
127
|
AdapterRpcs.of({
|
|
128
|
+
...McpSkills.legacyHandlers(core),
|
|
127
129
|
initialize: (request, { client }) =>
|
|
128
130
|
lifecycle.initialize(McpSchema.protocolVersion, profileFromInitialize(request), client.id).pipe(
|
|
129
131
|
Effect.map((result) =>
|
|
@@ -154,12 +156,10 @@ export const protocol = McpProtocol.make({
|
|
|
154
156
|
"notifications/roots/list_changed": (_, { client, headers }) =>
|
|
155
157
|
lifecycle.clientNotification(McpCore.ClientNotification.RootsChanged(), client.id, headers),
|
|
156
158
|
"resources/list": (_pageRequest) =>
|
|
157
|
-
|
|
159
|
+
McpProtocol.listForClient(core.resources.list)
|
|
158
160
|
.pipe(Effect.map((resources) => McpSchema.ListResourcesResult.make({ resources }))),
|
|
159
161
|
"resources/templates/list": (_pageRequest) =>
|
|
160
|
-
|
|
161
|
-
core.resources.listTemplates(McpProtocol.profileFromClient(request))
|
|
162
|
-
).pipe(
|
|
162
|
+
McpProtocol.listForClient(core.resources.listTemplates).pipe(
|
|
163
163
|
Effect.map((resourceTemplates) => McpSchema.ListResourceTemplatesResult.make({ resourceTemplates }))
|
|
164
164
|
),
|
|
165
165
|
"resources/read": Effect.fnUntraced(function*({ uri }) {
|
|
@@ -189,7 +189,7 @@ export const protocol = McpProtocol.make({
|
|
|
189
189
|
"resources/unsubscribe": ({ uri }, { client, headers }) =>
|
|
190
190
|
lifecycle.unsubscribe(uri, client.id, headers).pipe(Effect.as({})),
|
|
191
191
|
"prompts/list": () =>
|
|
192
|
-
|
|
192
|
+
McpProtocol.listForClient(core.prompts.list)
|
|
193
193
|
.pipe(
|
|
194
194
|
Effect.map((prompts) =>
|
|
195
195
|
McpSchema.ListPromptsResult.make({
|
|
@@ -249,8 +249,7 @@ export const protocol = McpProtocol.make({
|
|
|
249
249
|
})
|
|
250
250
|
}),
|
|
251
251
|
"tools/list": Effect.fnUntraced(function*() {
|
|
252
|
-
|
|
253
|
-
return yield* core.tools.list(McpProtocol.profileFromClient(request)).pipe(
|
|
252
|
+
return yield* McpProtocol.listForClient(core.tools.list).pipe(
|
|
254
253
|
Effect.map((tools) =>
|
|
255
254
|
McpSchema.ListToolsResult.make({
|
|
256
255
|
tools: tools.map((tool) =>
|
|
@@ -10,9 +10,10 @@ import * as McpCore from "../mcpCore.ts"
|
|
|
10
10
|
import * as McpProtocol from "../mcpProtocol.ts"
|
|
11
11
|
import * as McpRuntime from "../mcpRuntime.ts"
|
|
12
12
|
import * as McpSchema from "../mcpSchema/v2025_03_26.ts"
|
|
13
|
+
import * as McpSkills from "../mcpSkills.ts"
|
|
13
14
|
|
|
14
15
|
// Pings can arrive before initialize and do not require a client session.
|
|
15
|
-
const ClientRequestRpcs = McpSchema.ClientRequestRpcs.omit("ping").middleware(
|
|
16
|
+
const ClientRequestRpcs = McpSchema.ClientRequestRpcs.omit("ping").merge(McpSkills.LegacyRpcs).middleware(
|
|
16
17
|
PublicMcpSchema.McpServerClientMiddleware
|
|
17
18
|
).add(McpSchema.Ping)
|
|
18
19
|
|
|
@@ -127,6 +128,7 @@ export const protocol = McpProtocol.make({
|
|
|
127
128
|
handlerRpcs: AdapterRpcs,
|
|
128
129
|
makeHandlers: (core, lifecycle) =>
|
|
129
130
|
AdapterRpcs.of({
|
|
131
|
+
...McpSkills.legacyHandlers(core),
|
|
130
132
|
initialize: (request, { client }) =>
|
|
131
133
|
lifecycle.initialize(McpSchema.protocolVersion, profileFromInitialize(request), client.id).pipe(
|
|
132
134
|
Effect.map((result) =>
|
|
@@ -166,7 +168,7 @@ export const protocol = McpProtocol.make({
|
|
|
166
168
|
"notifications/roots/list_changed": (_, { client, headers }) =>
|
|
167
169
|
lifecycle.clientNotification(McpCore.ClientNotification.RootsChanged(), client.id, headers),
|
|
168
170
|
"resources/list": (_pageRequest) =>
|
|
169
|
-
|
|
171
|
+
McpProtocol.listForClient(core.resources.list)
|
|
170
172
|
.pipe(
|
|
171
173
|
Effect.map((resources) =>
|
|
172
174
|
McpSchema.ListResourcesResult.make({
|
|
@@ -182,9 +184,7 @@ export const protocol = McpProtocol.make({
|
|
|
182
184
|
)
|
|
183
185
|
),
|
|
184
186
|
"resources/templates/list": (_pageRequest) =>
|
|
185
|
-
|
|
186
|
-
core.resources.listTemplates(McpProtocol.profileFromClient(request))
|
|
187
|
-
).pipe(
|
|
187
|
+
McpProtocol.listForClient(core.resources.listTemplates).pipe(
|
|
188
188
|
Effect.map((resourceTemplates) =>
|
|
189
189
|
McpSchema.ListResourceTemplatesResult.make({
|
|
190
190
|
resourceTemplates: resourceTemplates.map((template) => ({
|
|
@@ -212,7 +212,7 @@ export const protocol = McpProtocol.make({
|
|
|
212
212
|
"resources/unsubscribe": ({ uri }, { client, headers }) =>
|
|
213
213
|
lifecycle.unsubscribe(uri, client.id, headers).pipe(Effect.as({})),
|
|
214
214
|
"prompts/list": (_pageRequest) =>
|
|
215
|
-
|
|
215
|
+
McpProtocol.listForClient(core.prompts.list)
|
|
216
216
|
.pipe(
|
|
217
217
|
Effect.map((prompts) =>
|
|
218
218
|
McpSchema.ListPromptsResult.make({
|
|
@@ -272,8 +272,7 @@ export const protocol = McpProtocol.make({
|
|
|
272
272
|
})
|
|
273
273
|
}),
|
|
274
274
|
"tools/list": Effect.fnUntraced(function*() {
|
|
275
|
-
const
|
|
276
|
-
const tools = yield* core.tools.list(McpProtocol.profileFromClient(request))
|
|
275
|
+
const tools = yield* McpProtocol.listForClient(core.tools.list)
|
|
277
276
|
return McpSchema.ListToolsResult.make({
|
|
278
277
|
tools: tools.map((tool) =>
|
|
279
278
|
McpSchema.Tool.make({
|
|
@@ -9,9 +9,10 @@ import * as McpCore from "../mcpCore.ts"
|
|
|
9
9
|
import * as McpProtocol from "../mcpProtocol.ts"
|
|
10
10
|
import * as McpRuntime from "../mcpRuntime.ts"
|
|
11
11
|
import * as McpSchema from "../mcpSchema/v2025_06_18.ts"
|
|
12
|
+
import * as McpSkills from "../mcpSkills.ts"
|
|
12
13
|
|
|
13
14
|
// Pings can arrive before initialize and do not require a client session.
|
|
14
|
-
const ClientRequestRpcs = McpSchema.ClientRequestRpcs.omit("ping").middleware(
|
|
15
|
+
const ClientRequestRpcs = McpSchema.ClientRequestRpcs.omit("ping").merge(McpSkills.LegacyRpcs).middleware(
|
|
15
16
|
PublicMcpSchema.McpServerClientMiddleware
|
|
16
17
|
).add(McpSchema.Ping)
|
|
17
18
|
|
|
@@ -143,6 +144,7 @@ export const protocol = McpProtocol.make({
|
|
|
143
144
|
handlerRpcs: AdapterRpcs,
|
|
144
145
|
makeHandlers: (core, lifecycle) =>
|
|
145
146
|
AdapterRpcs.of({
|
|
147
|
+
...McpSkills.legacyHandlers(core),
|
|
146
148
|
initialize: (request, { client }) =>
|
|
147
149
|
lifecycle.initialize(McpSchema.protocolVersion, profileFromInitialize(request), client.id).pipe(
|
|
148
150
|
Effect.map((result) =>
|
|
@@ -182,14 +184,12 @@ export const protocol = McpProtocol.make({
|
|
|
182
184
|
"notifications/roots/list_changed": (_, { client, headers }) =>
|
|
183
185
|
lifecycle.clientNotification(McpCore.ClientNotification.RootsChanged(), client.id, headers),
|
|
184
186
|
"resources/list": (_pageRequest) =>
|
|
185
|
-
|
|
187
|
+
McpProtocol.listForClient(core.resources.list)
|
|
186
188
|
.pipe(
|
|
187
189
|
Effect.map((resources) => McpSchema.ListResourcesResult.make({ resources }))
|
|
188
190
|
),
|
|
189
191
|
"resources/templates/list": (_pageRequest) =>
|
|
190
|
-
|
|
191
|
-
core.resources.listTemplates(McpProtocol.profileFromClient(request))
|
|
192
|
-
).pipe(
|
|
192
|
+
McpProtocol.listForClient(core.resources.listTemplates).pipe(
|
|
193
193
|
Effect.map((resourceTemplates) => McpSchema.ListResourceTemplatesResult.make({ resourceTemplates }))
|
|
194
194
|
),
|
|
195
195
|
"resources/read": Effect.fnUntraced(function*({ uri }) {
|
|
@@ -207,7 +207,7 @@ export const protocol = McpProtocol.make({
|
|
|
207
207
|
"resources/unsubscribe": ({ uri }, { client, headers }) =>
|
|
208
208
|
lifecycle.unsubscribe(uri, client.id, headers).pipe(Effect.as({})),
|
|
209
209
|
"prompts/list": (_pageRequest) =>
|
|
210
|
-
|
|
210
|
+
McpProtocol.listForClient(core.prompts.list)
|
|
211
211
|
.pipe(
|
|
212
212
|
Effect.map((prompts) => McpSchema.ListPromptsResult.make({ prompts }))
|
|
213
213
|
),
|
|
@@ -262,8 +262,7 @@ export const protocol = McpProtocol.make({
|
|
|
262
262
|
})
|
|
263
263
|
}),
|
|
264
264
|
"tools/list": Effect.fnUntraced(function*() {
|
|
265
|
-
const
|
|
266
|
-
const tools = yield* core.tools.list(McpProtocol.profileFromClient(request))
|
|
265
|
+
const tools = yield* McpProtocol.listForClient(core.tools.list)
|
|
267
266
|
return McpSchema.ListToolsResult.make({
|
|
268
267
|
tools: tools.map((tool) =>
|
|
269
268
|
McpSchema.Tool.make({
|