effect 4.0.6 → 4.1.0

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.
Files changed (978) hide show
  1. package/README.md +1 -1
  2. package/dist/Arbitrary.d.ts +10 -2
  3. package/dist/Arbitrary.d.ts.map +1 -1
  4. package/dist/Arbitrary.js +2 -1
  5. package/dist/Arbitrary.js.map +1 -1
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +3 -0
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/Channel.d.ts +12 -6
  10. package/dist/Channel.d.ts.map +1 -1
  11. package/dist/Channel.js +30 -9
  12. package/dist/Channel.js.map +1 -1
  13. package/dist/Config.d.ts +7 -1
  14. package/dist/Config.d.ts.map +1 -1
  15. package/dist/Config.js.map +1 -1
  16. package/dist/Context.d.ts +18 -1
  17. package/dist/Context.d.ts.map +1 -1
  18. package/dist/Context.js +27 -8
  19. package/dist/Context.js.map +1 -1
  20. package/dist/Cron.d.ts +81 -11
  21. package/dist/Cron.d.ts.map +1 -1
  22. package/dist/Cron.js +101 -26
  23. package/dist/Cron.js.map +1 -1
  24. package/dist/Data.d.ts +54 -235
  25. package/dist/Data.d.ts.map +1 -1
  26. package/dist/Data.js.map +1 -1
  27. package/dist/Duration.d.ts +78 -0
  28. package/dist/Duration.d.ts.map +1 -1
  29. package/dist/Duration.js +123 -0
  30. package/dist/Duration.js.map +1 -1
  31. package/dist/Effect.d.ts +165 -8
  32. package/dist/Effect.d.ts.map +1 -1
  33. package/dist/Effect.js +12 -2
  34. package/dist/Effect.js.map +1 -1
  35. package/dist/Equal.d.ts.map +1 -1
  36. package/dist/Equal.js +8 -1
  37. package/dist/Equal.js.map +1 -1
  38. package/dist/Exit.d.ts +3 -3
  39. package/dist/Exit.d.ts.map +1 -1
  40. package/dist/Exit.js.map +1 -1
  41. package/dist/FileSystem.d.ts +59 -4
  42. package/dist/FileSystem.d.ts.map +1 -1
  43. package/dist/FileSystem.js +9 -2
  44. package/dist/FileSystem.js.map +1 -1
  45. package/dist/Formatter.d.ts.map +1 -1
  46. package/dist/Formatter.js +27 -13
  47. package/dist/Formatter.js.map +1 -1
  48. package/dist/Glob.d.ts +165 -0
  49. package/dist/Glob.d.ts.map +1 -0
  50. package/dist/Glob.js +127 -0
  51. package/dist/Glob.js.map +1 -0
  52. package/dist/Hash.d.ts.map +1 -1
  53. package/dist/Hash.js +4 -1
  54. package/dist/Hash.js.map +1 -1
  55. package/dist/JsonPatch.js +4 -0
  56. package/dist/JsonPatch.js.map +1 -1
  57. package/dist/JsonSchema.d.ts.map +1 -1
  58. package/dist/JsonSchema.js +13 -40
  59. package/dist/JsonSchema.js.map +1 -1
  60. package/dist/Match.d.ts +86 -0
  61. package/dist/Match.d.ts.map +1 -1
  62. package/dist/Match.js +72 -0
  63. package/dist/Match.js.map +1 -1
  64. package/dist/Metric.d.ts +3 -3
  65. package/dist/MutableList.d.ts +5 -2
  66. package/dist/MutableList.d.ts.map +1 -1
  67. package/dist/MutableList.js +7 -5
  68. package/dist/MutableList.js.map +1 -1
  69. package/dist/MutableRef.d.ts.map +1 -1
  70. package/dist/MutableRef.js +7 -0
  71. package/dist/MutableRef.js.map +1 -1
  72. package/dist/PartitionedSemaphore.d.ts +2 -1
  73. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  74. package/dist/PartitionedSemaphore.js +22 -12
  75. package/dist/PartitionedSemaphore.js.map +1 -1
  76. package/dist/Pool.d.ts +51 -0
  77. package/dist/Pool.d.ts.map +1 -1
  78. package/dist/Pool.js +136 -36
  79. package/dist/Pool.js.map +1 -1
  80. package/dist/PubSub.d.ts.map +1 -1
  81. package/dist/PubSub.js +5 -6
  82. package/dist/PubSub.js.map +1 -1
  83. package/dist/Random.d.ts.map +1 -1
  84. package/dist/Random.js +3 -3
  85. package/dist/Random.js.map +1 -1
  86. package/dist/RcMap.d.ts.map +1 -1
  87. package/dist/RcMap.js +8 -2
  88. package/dist/RcMap.js.map +1 -1
  89. package/dist/Ref.d.ts.map +1 -1
  90. package/dist/Ref.js +8 -0
  91. package/dist/Ref.js.map +1 -1
  92. package/dist/Schedule.d.ts +18 -1
  93. package/dist/Schedule.d.ts.map +1 -1
  94. package/dist/Schedule.js +8 -3
  95. package/dist/Schedule.js.map +1 -1
  96. package/dist/Schema.d.ts +690 -49
  97. package/dist/Schema.d.ts.map +1 -1
  98. package/dist/Schema.js +687 -28
  99. package/dist/Schema.js.map +1 -1
  100. package/dist/SchemaAST.d.ts +4 -2
  101. package/dist/SchemaAST.d.ts.map +1 -1
  102. package/dist/SchemaAST.js +14 -17
  103. package/dist/SchemaAST.js.map +1 -1
  104. package/dist/SchemaGetter.d.ts +6 -1
  105. package/dist/SchemaGetter.d.ts.map +1 -1
  106. package/dist/SchemaGetter.js +22 -11
  107. package/dist/SchemaGetter.js.map +1 -1
  108. package/dist/SchemaParser.d.ts.map +1 -1
  109. package/dist/SchemaParser.js +48 -22
  110. package/dist/SchemaParser.js.map +1 -1
  111. package/dist/SchemaRepresentation.d.ts +33 -10
  112. package/dist/SchemaRepresentation.d.ts.map +1 -1
  113. package/dist/SchemaRepresentation.js +39 -13
  114. package/dist/SchemaRepresentation.js.map +1 -1
  115. package/dist/SchemaTransformation.d.ts +12 -4
  116. package/dist/SchemaTransformation.d.ts.map +1 -1
  117. package/dist/SchemaTransformation.js +15 -5
  118. package/dist/SchemaTransformation.js.map +1 -1
  119. package/dist/ScopedCache.d.ts.map +1 -1
  120. package/dist/ScopedCache.js +5 -7
  121. package/dist/ScopedCache.js.map +1 -1
  122. package/dist/Semaphore.d.ts +130 -0
  123. package/dist/Semaphore.d.ts.map +1 -1
  124. package/dist/Semaphore.js +94 -35
  125. package/dist/Semaphore.js.map +1 -1
  126. package/dist/Sink.d.ts.map +1 -1
  127. package/dist/Sink.js +7 -2
  128. package/dist/Sink.js.map +1 -1
  129. package/dist/Stream.d.ts +13 -4
  130. package/dist/Stream.d.ts.map +1 -1
  131. package/dist/Stream.js +31 -10
  132. package/dist/Stream.js.map +1 -1
  133. package/dist/String.d.ts +3 -0
  134. package/dist/String.d.ts.map +1 -1
  135. package/dist/String.js +3 -0
  136. package/dist/String.js.map +1 -1
  137. package/dist/Terminal.d.ts +18 -1
  138. package/dist/Terminal.d.ts.map +1 -1
  139. package/dist/Terminal.js +1 -1
  140. package/dist/Terminal.js.map +1 -1
  141. package/dist/Tracer.d.ts +11 -1
  142. package/dist/Tracer.d.ts.map +1 -1
  143. package/dist/Tracer.js +6 -1
  144. package/dist/Tracer.js.map +1 -1
  145. package/dist/ai/AiError.d.ts +43 -116
  146. package/dist/ai/AiError.d.ts.map +1 -1
  147. package/dist/ai/AiError.js +53 -72
  148. package/dist/ai/AiError.js.map +1 -1
  149. package/dist/ai/Decision.d.ts +196 -15
  150. package/dist/ai/Decision.d.ts.map +1 -1
  151. package/dist/ai/Decision.js +130 -0
  152. package/dist/ai/Decision.js.map +1 -1
  153. package/dist/ai/DecisionModel.d.ts +54 -13
  154. package/dist/ai/DecisionModel.d.ts.map +1 -1
  155. package/dist/ai/DecisionModel.js +123 -12
  156. package/dist/ai/DecisionModel.js.map +1 -1
  157. package/dist/ai/LanguageModel.d.ts.map +1 -1
  158. package/dist/ai/LanguageModel.js +9 -0
  159. package/dist/ai/LanguageModel.js.map +1 -1
  160. package/dist/ai/McpSchema.d.ts +110 -110
  161. package/dist/ai/McpSchema.d.ts.map +1 -1
  162. package/dist/ai/McpServer.d.ts +630 -29
  163. package/dist/ai/McpServer.d.ts.map +1 -1
  164. package/dist/ai/McpServer.js +583 -131
  165. package/dist/ai/McpServer.js.map +1 -1
  166. package/dist/ai/McpTest.d.ts +130 -0
  167. package/dist/ai/McpTest.d.ts.map +1 -0
  168. package/dist/ai/McpTest.js +237 -0
  169. package/dist/ai/McpTest.js.map +1 -0
  170. package/dist/ai/Prompt.d.ts +52 -0
  171. package/dist/ai/Prompt.d.ts.map +1 -1
  172. package/dist/ai/Prompt.js +38 -0
  173. package/dist/ai/Prompt.js.map +1 -1
  174. package/dist/ai/Response.d.ts +17 -28
  175. package/dist/ai/Response.d.ts.map +1 -1
  176. package/dist/ai/Response.js +5 -10
  177. package/dist/ai/Response.js.map +1 -1
  178. package/dist/ai/Tool.d.ts +43 -1
  179. package/dist/ai/Tool.d.ts.map +1 -1
  180. package/dist/ai/Tool.js +5 -2
  181. package/dist/ai/Tool.js.map +1 -1
  182. package/dist/ai/Toolkit.d.ts.map +1 -1
  183. package/dist/ai/Toolkit.js +8 -1
  184. package/dist/ai/Toolkit.js.map +1 -1
  185. package/dist/ai/index.d.ts +5 -0
  186. package/dist/ai/index.d.ts.map +1 -1
  187. package/dist/ai/index.js +5 -0
  188. package/dist/ai/index.js.map +1 -1
  189. package/dist/ai/internal/mcpCore.js +17 -12
  190. package/dist/ai/internal/mcpCore.js.map +1 -1
  191. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +4 -5
  192. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  193. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +4 -5
  194. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  195. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +4 -5
  196. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  197. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +4 -5
  198. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  199. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +18 -10
  200. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  201. package/dist/ai/internal/mcpProtocol.js +13 -0
  202. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  203. package/dist/ai/internal/mcpRuntime.js +5 -3
  204. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  205. package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
  206. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  207. package/dist/cli/Argument.d.ts +21 -0
  208. package/dist/cli/Argument.d.ts.map +1 -1
  209. package/dist/cli/Argument.js +7 -0
  210. package/dist/cli/Argument.js.map +1 -1
  211. package/dist/cli/CliError.d.ts +78 -0
  212. package/dist/cli/CliError.d.ts.map +1 -1
  213. package/dist/cli/CliError.js +65 -3
  214. package/dist/cli/CliError.js.map +1 -1
  215. package/dist/cli/CliOutput.d.ts +220 -7
  216. package/dist/cli/CliOutput.d.ts.map +1 -1
  217. package/dist/cli/CliOutput.js +156 -43
  218. package/dist/cli/CliOutput.js.map +1 -1
  219. package/dist/cli/Command.d.ts +47 -16
  220. package/dist/cli/Command.d.ts.map +1 -1
  221. package/dist/cli/Command.js +67 -29
  222. package/dist/cli/Command.js.map +1 -1
  223. package/dist/cli/Completions.d.ts +58 -0
  224. package/dist/cli/Completions.d.ts.map +1 -1
  225. package/dist/cli/Completions.js +49 -9
  226. package/dist/cli/Completions.js.map +1 -1
  227. package/dist/cli/Flag.d.ts +122 -0
  228. package/dist/cli/Flag.d.ts.map +1 -1
  229. package/dist/cli/Flag.js +42 -0
  230. package/dist/cli/Flag.js.map +1 -1
  231. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  232. package/dist/cli/GlobalFlag.js +15 -7
  233. package/dist/cli/GlobalFlag.js.map +1 -1
  234. package/dist/cli/HelpDoc.d.ts +15 -1
  235. package/dist/cli/HelpDoc.d.ts.map +1 -1
  236. package/dist/cli/Param.d.ts +15 -0
  237. package/dist/cli/Param.d.ts.map +1 -1
  238. package/dist/cli/Param.js +23 -2
  239. package/dist/cli/Param.js.map +1 -1
  240. package/dist/cli/Primitive.d.ts +14 -0
  241. package/dist/cli/Primitive.d.ts.map +1 -1
  242. package/dist/cli/Primitive.js +15 -1
  243. package/dist/cli/Primitive.js.map +1 -1
  244. package/dist/cli/Prompt.d.ts +1 -0
  245. package/dist/cli/Prompt.d.ts.map +1 -1
  246. package/dist/cli/Prompt.js +1 -0
  247. package/dist/cli/Prompt.js.map +1 -1
  248. package/dist/cli/TerminalCapabilities.d.ts +3 -2
  249. package/dist/cli/TerminalCapabilities.d.ts.map +1 -1
  250. package/dist/cli/TerminalCapabilities.js +3 -1
  251. package/dist/cli/TerminalCapabilities.js.map +1 -1
  252. package/dist/cli/internal/completions/bash.js +73 -27
  253. package/dist/cli/internal/completions/bash.js.map +1 -1
  254. package/dist/cli/internal/help.d.ts.map +1 -1
  255. package/dist/cli/internal/help.js +17 -10
  256. package/dist/cli/internal/help.js.map +1 -1
  257. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  258. package/dist/cluster/ClusterWorkflowEngine.js +45 -10
  259. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  260. package/dist/cluster/MessageStorage.d.ts +23 -45
  261. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  262. package/dist/cluster/MessageStorage.js +6 -7
  263. package/dist/cluster/MessageStorage.js.map +1 -1
  264. package/dist/cluster/Sharding.d.ts.map +1 -1
  265. package/dist/cluster/Sharding.js +151 -49
  266. package/dist/cluster/Sharding.js.map +1 -1
  267. package/dist/cluster/ShardingConfig.d.ts +76 -0
  268. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  269. package/dist/cluster/ShardingConfig.js +4 -0
  270. package/dist/cluster/ShardingConfig.js.map +1 -1
  271. package/dist/cluster/SingleRunner.d.ts +3 -3
  272. package/dist/cluster/SingleRunner.d.ts.map +1 -1
  273. package/dist/cluster/SingleRunner.js +1 -1
  274. package/dist/cluster/Snowflake.d.ts.map +1 -1
  275. package/dist/cluster/Snowflake.js +3 -7
  276. package/dist/cluster/Snowflake.js.map +1 -1
  277. package/dist/cluster/SqlMessageStorage.d.ts +37 -6
  278. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  279. package/dist/cluster/SqlMessageStorage.js +34 -7
  280. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  281. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  282. package/dist/cluster/SqlRunnerStorage.js +109 -46
  283. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  284. package/dist/cluster/internal/entityManager.js +54 -20
  285. package/dist/cluster/internal/entityManager.js.map +1 -1
  286. package/dist/crypto/Aead.d.ts +322 -0
  287. package/dist/crypto/Aead.d.ts.map +1 -0
  288. package/dist/crypto/Aead.js +331 -0
  289. package/dist/crypto/Aead.js.map +1 -0
  290. package/dist/crypto/Cipher.d.ts +235 -0
  291. package/dist/crypto/Cipher.d.ts.map +1 -0
  292. package/dist/crypto/Cipher.js +233 -0
  293. package/dist/crypto/Cipher.js.map +1 -0
  294. package/dist/crypto/CryptoError.d.ts +212 -0
  295. package/dist/crypto/CryptoError.d.ts.map +1 -0
  296. package/dist/crypto/CryptoError.js +202 -0
  297. package/dist/crypto/CryptoError.js.map +1 -0
  298. package/dist/crypto/Digest.d.ts +143 -0
  299. package/dist/crypto/Digest.d.ts.map +1 -0
  300. package/dist/crypto/Digest.js +146 -0
  301. package/dist/crypto/Digest.js.map +1 -0
  302. package/dist/crypto/Kdf.d.ts +220 -0
  303. package/dist/crypto/Kdf.d.ts.map +1 -0
  304. package/dist/crypto/Kdf.js +212 -0
  305. package/dist/crypto/Kdf.js.map +1 -0
  306. package/dist/crypto/KeyAgreement.d.ts +323 -0
  307. package/dist/crypto/KeyAgreement.d.ts.map +1 -0
  308. package/dist/crypto/KeyAgreement.js +303 -0
  309. package/dist/crypto/KeyAgreement.js.map +1 -0
  310. package/dist/crypto/KeyFormat.d.ts +309 -0
  311. package/dist/crypto/KeyFormat.d.ts.map +1 -0
  312. package/dist/crypto/KeyFormat.js +556 -0
  313. package/dist/crypto/KeyFormat.js.map +1 -0
  314. package/dist/crypto/KeyWrap.d.ts +389 -0
  315. package/dist/crypto/KeyWrap.d.ts.map +1 -0
  316. package/dist/crypto/KeyWrap.js +381 -0
  317. package/dist/crypto/KeyWrap.js.map +1 -0
  318. package/dist/crypto/Mac.d.ts +277 -0
  319. package/dist/crypto/Mac.d.ts.map +1 -0
  320. package/dist/crypto/Mac.js +288 -0
  321. package/dist/crypto/Mac.js.map +1 -0
  322. package/dist/crypto/SecureRandom.d.ts +340 -0
  323. package/dist/crypto/SecureRandom.d.ts.map +1 -0
  324. package/dist/crypto/SecureRandom.js +257 -0
  325. package/dist/crypto/SecureRandom.js.map +1 -0
  326. package/dist/crypto/Signature.d.ts +448 -0
  327. package/dist/crypto/Signature.d.ts.map +1 -0
  328. package/dist/crypto/Signature.js +484 -0
  329. package/dist/crypto/Signature.js.map +1 -0
  330. package/dist/crypto/WebCrypto.d.ts +61 -0
  331. package/dist/crypto/WebCrypto.d.ts.map +1 -0
  332. package/dist/crypto/WebCrypto.js +63 -0
  333. package/dist/crypto/WebCrypto.js.map +1 -0
  334. package/dist/crypto/index.d.ts +65 -0
  335. package/dist/crypto/index.d.ts.map +1 -0
  336. package/dist/crypto/index.js +66 -0
  337. package/dist/crypto/index.js.map +1 -0
  338. package/dist/crypto/internal/asymmetric.d.ts +2 -0
  339. package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
  340. package/dist/crypto/internal/asymmetric.js +210 -0
  341. package/dist/crypto/internal/asymmetric.js.map +1 -0
  342. package/dist/crypto/internal/chacha.d.ts +46 -0
  343. package/dist/crypto/internal/chacha.d.ts.map +1 -0
  344. package/dist/crypto/internal/chacha.js +885 -0
  345. package/dist/crypto/internal/chacha.js.map +1 -0
  346. package/dist/crypto/internal/der.d.ts +6 -0
  347. package/dist/crypto/internal/der.d.ts.map +1 -0
  348. package/dist/crypto/internal/der.js +86 -0
  349. package/dist/crypto/internal/der.js.map +1 -0
  350. package/dist/crypto/internal/digest.d.ts +2 -0
  351. package/dist/crypto/internal/digest.d.ts.map +1 -0
  352. package/dist/crypto/internal/digest.js +15 -0
  353. package/dist/crypto/internal/digest.js.map +1 -0
  354. package/dist/crypto/internal/key.d.ts +2 -0
  355. package/dist/crypto/internal/key.d.ts.map +1 -0
  356. package/dist/crypto/internal/key.js +170 -0
  357. package/dist/crypto/internal/key.js.map +1 -0
  358. package/dist/crypto/internal/md5.d.ts +39 -0
  359. package/dist/crypto/internal/md5.d.ts.map +1 -0
  360. package/dist/crypto/internal/md5.js +179 -0
  361. package/dist/crypto/internal/md5.js.map +1 -0
  362. package/dist/crypto/internal/webCrypto.d.ts +2 -0
  363. package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
  364. package/dist/crypto/internal/webCrypto.js +111 -0
  365. package/dist/crypto/internal/webCrypto.js.map +1 -0
  366. package/dist/devtools/DevToolsClient.d.ts.map +1 -1
  367. package/dist/devtools/DevToolsClient.js +2 -0
  368. package/dist/devtools/DevToolsClient.js.map +1 -1
  369. package/dist/encoding/Base64.js +36 -0
  370. package/dist/encoding/Base64.js.map +1 -1
  371. package/dist/encoding/Base64Url.d.ts.map +1 -1
  372. package/dist/encoding/Base64Url.js +3 -2
  373. package/dist/encoding/Base64Url.js.map +1 -1
  374. package/dist/encoding/Csv.d.ts +608 -0
  375. package/dist/encoding/Csv.d.ts.map +1 -0
  376. package/dist/encoding/Csv.js +718 -0
  377. package/dist/encoding/Csv.js.map +1 -0
  378. package/dist/encoding/Hex.d.ts +3 -2
  379. package/dist/encoding/Hex.d.ts.map +1 -1
  380. package/dist/encoding/Hex.js +3 -2
  381. package/dist/encoding/Hex.js.map +1 -1
  382. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  383. package/dist/encoding/SchemaBinary.js +42 -4
  384. package/dist/encoding/SchemaBinary.js.map +1 -1
  385. package/dist/encoding/Sse.d.ts.map +1 -1
  386. package/dist/encoding/Sse.js +3 -3
  387. package/dist/encoding/Sse.js.map +1 -1
  388. package/dist/encoding/Toml.d.ts +17 -3
  389. package/dist/encoding/Toml.d.ts.map +1 -1
  390. package/dist/encoding/Toml.js +124 -31
  391. package/dist/encoding/Toml.js.map +1 -1
  392. package/dist/encoding/Yaml.d.ts +8 -1
  393. package/dist/encoding/Yaml.d.ts.map +1 -1
  394. package/dist/encoding/Yaml.js +54 -18
  395. package/dist/encoding/Yaml.js.map +1 -1
  396. package/dist/encoding/index.d.ts +5 -0
  397. package/dist/encoding/index.d.ts.map +1 -1
  398. package/dist/encoding/index.js +5 -0
  399. package/dist/encoding/index.js.map +1 -1
  400. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  401. package/dist/eventlog/EventJournal.js +6 -3
  402. package/dist/eventlog/EventJournal.js.map +1 -1
  403. package/dist/eventlog/EventLog.d.ts +119 -4
  404. package/dist/eventlog/EventLog.d.ts.map +1 -1
  405. package/dist/eventlog/EventLog.js +200 -12
  406. package/dist/eventlog/EventLog.js.map +1 -1
  407. package/dist/eventlog/EventLogEncryption.d.ts +41 -4
  408. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  409. package/dist/eventlog/EventLogEncryption.js +83 -64
  410. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  411. package/dist/eventlog/EventLogMessage.d.ts +279 -0
  412. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  413. package/dist/eventlog/EventLogMessage.js +217 -1
  414. package/dist/eventlog/EventLogMessage.js.map +1 -1
  415. package/dist/eventlog/EventLogRemote.d.ts +200 -28
  416. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  417. package/dist/eventlog/EventLogRemote.js +186 -16
  418. package/dist/eventlog/EventLogRemote.js.map +1 -1
  419. package/dist/eventlog/EventLogServer.d.ts +3 -0
  420. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  421. package/dist/eventlog/EventLogServer.js +18 -10
  422. package/dist/eventlog/EventLogServer.js.map +1 -1
  423. package/dist/eventlog/EventLogServerEncrypted.d.ts +326 -5
  424. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  425. package/dist/eventlog/EventLogServerEncrypted.js +769 -14
  426. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  427. package/dist/eventlog/EventLogSessionAuth.d.ts +5 -3
  428. package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  429. package/dist/eventlog/EventLogSessionAuth.js +41 -64
  430. package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
  431. package/dist/eventlog/EventRow.d.ts +4 -0
  432. package/dist/eventlog/EventRow.d.ts.map +1 -1
  433. package/dist/eventlog/EventRow.js +12 -2
  434. package/dist/eventlog/EventRow.js.map +1 -1
  435. package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
  436. package/dist/eventlog/SqlEventJournal.js +47 -27
  437. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  438. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
  439. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  440. package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
  441. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  442. package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
  443. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  444. package/dist/eventlog/internal/batches.d.ts +12 -0
  445. package/dist/eventlog/internal/batches.d.ts.map +1 -0
  446. package/dist/eventlog/internal/batches.js +26 -0
  447. package/dist/eventlog/internal/batches.js.map +1 -0
  448. package/dist/eventlog/internal/compaction.d.ts +38 -0
  449. package/dist/eventlog/internal/compaction.d.ts.map +1 -0
  450. package/dist/eventlog/internal/compaction.js +33 -0
  451. package/dist/eventlog/internal/compaction.js.map +1 -0
  452. package/dist/eventlog/internal/conflicts.d.ts +0 -1
  453. package/dist/eventlog/internal/conflicts.d.ts.map +1 -1
  454. package/dist/eventlog/internal/conflicts.js +0 -3
  455. package/dist/eventlog/internal/conflicts.js.map +1 -1
  456. package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
  457. package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  458. package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
  459. package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
  460. package/dist/eventlog/internal/remoteCompaction.js +76 -0
  461. package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
  462. package/dist/http/Cookies.d.ts +172 -0
  463. package/dist/http/Cookies.d.ts.map +1 -1
  464. package/dist/http/Cookies.js +153 -10
  465. package/dist/http/Cookies.js.map +1 -1
  466. package/dist/http/FetchHttpClient.d.ts +26 -2
  467. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  468. package/dist/http/FetchHttpClient.js +78 -15
  469. package/dist/http/FetchHttpClient.js.map +1 -1
  470. package/dist/http/HttpClient.d.ts +502 -8
  471. package/dist/http/HttpClient.d.ts.map +1 -1
  472. package/dist/http/HttpClient.js +296 -12
  473. package/dist/http/HttpClient.js.map +1 -1
  474. package/dist/http/HttpClientError.d.ts +8 -1
  475. package/dist/http/HttpClientError.d.ts.map +1 -1
  476. package/dist/http/HttpClientError.js +37 -1
  477. package/dist/http/HttpClientError.js.map +1 -1
  478. package/dist/http/HttpClientRequest.d.ts +9 -5
  479. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  480. package/dist/http/HttpClientRequest.js +3 -4
  481. package/dist/http/HttpClientRequest.js.map +1 -1
  482. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  483. package/dist/http/HttpClientResponse.js +3 -2
  484. package/dist/http/HttpClientResponse.js.map +1 -1
  485. package/dist/http/HttpMethod.d.ts +7 -1
  486. package/dist/http/HttpMethod.d.ts.map +1 -1
  487. package/dist/http/HttpMethod.js +3 -8
  488. package/dist/http/HttpMethod.js.map +1 -1
  489. package/dist/http/HttpMiddleware.d.ts +1 -1
  490. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  491. package/dist/http/HttpMiddleware.js +14 -16
  492. package/dist/http/HttpMiddleware.js.map +1 -1
  493. package/dist/http/HttpRouter.d.ts.map +1 -1
  494. package/dist/http/HttpRouter.js +2 -1
  495. package/dist/http/HttpRouter.js.map +1 -1
  496. package/dist/http/HttpServerError.js +2 -2
  497. package/dist/http/HttpServerError.js.map +1 -1
  498. package/dist/http/HttpServerRequest.d.ts +11 -3
  499. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  500. package/dist/http/HttpServerRequest.js +77 -25
  501. package/dist/http/HttpServerRequest.js.map +1 -1
  502. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  503. package/dist/http/HttpServerResponse.js +3 -2
  504. package/dist/http/HttpServerResponse.js.map +1 -1
  505. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  506. package/dist/http/HttpStaticServer.js +48 -21
  507. package/dist/http/HttpStaticServer.js.map +1 -1
  508. package/dist/http/HttpTraceContext.d.ts +2 -1
  509. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  510. package/dist/http/HttpTraceContext.js +7 -5
  511. package/dist/http/HttpTraceContext.js.map +1 -1
  512. package/dist/http/MultipartParser/internal/contentType.js +3 -3
  513. package/dist/http/ProblemDetails.d.ts +96 -0
  514. package/dist/http/ProblemDetails.d.ts.map +1 -0
  515. package/dist/http/ProblemDetails.js +98 -0
  516. package/dist/http/ProblemDetails.js.map +1 -0
  517. package/dist/http/UrlParams.d.ts +3 -1
  518. package/dist/http/UrlParams.d.ts.map +1 -1
  519. package/dist/http/UrlParams.js +4 -2
  520. package/dist/http/UrlParams.js.map +1 -1
  521. package/dist/http/index.d.ts +5 -0
  522. package/dist/http/index.d.ts.map +1 -1
  523. package/dist/http/index.js +5 -0
  524. package/dist/http/index.js.map +1 -1
  525. package/dist/http/internal/compression.js +4 -5
  526. package/dist/http/internal/compression.js.map +1 -1
  527. package/dist/http/internal/decompression.js +6 -2
  528. package/dist/http/internal/decompression.js.map +1 -1
  529. package/dist/http/internal/httpBody.js +8 -1
  530. package/dist/http/internal/httpBody.js.map +1 -1
  531. package/dist/http/internal/urlParams.js +33 -0
  532. package/dist/http/internal/urlParams.js.map +1 -1
  533. package/dist/http-api/HttpApi.d.ts +3 -6
  534. package/dist/http-api/HttpApi.d.ts.map +1 -1
  535. package/dist/http-api/HttpApi.js +3 -6
  536. package/dist/http-api/HttpApi.js.map +1 -1
  537. package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
  538. package/dist/http-api/HttpApiBuilder.js +43 -13
  539. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  540. package/dist/http-api/HttpApiClient.d.ts +140 -7
  541. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  542. package/dist/http-api/HttpApiClient.js +193 -44
  543. package/dist/http-api/HttpApiClient.js.map +1 -1
  544. package/dist/http-api/HttpApiEndpoint.d.ts +24 -7
  545. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  546. package/dist/http-api/HttpApiEndpoint.js +123 -32
  547. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  548. package/dist/http-api/HttpApiError.d.ts +185 -13
  549. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  550. package/dist/http-api/HttpApiError.js +128 -0
  551. package/dist/http-api/HttpApiError.js.map +1 -1
  552. package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
  553. package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
  554. package/dist/http-api/HttpApiMiddleware.js +85 -1
  555. package/dist/http-api/HttpApiMiddleware.js.map +1 -1
  556. package/dist/http-api/HttpApiSchema.d.ts +142 -33
  557. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  558. package/dist/http-api/HttpApiSchema.js +123 -59
  559. package/dist/http-api/HttpApiSchema.js.map +1 -1
  560. package/dist/http-api/HttpApiTest.d.ts.map +1 -1
  561. package/dist/http-api/HttpApiTest.js +3 -2
  562. package/dist/http-api/HttpApiTest.js.map +1 -1
  563. package/dist/http-api/OpenApi.d.ts.map +1 -1
  564. package/dist/http-api/OpenApi.js +25 -16
  565. package/dist/http-api/OpenApi.js.map +1 -1
  566. package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
  567. package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
  568. package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
  569. package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
  570. package/dist/index.d.ts +5 -5
  571. package/dist/index.d.ts.map +1 -1
  572. package/dist/index.js +5 -5
  573. package/dist/index.js.map +1 -1
  574. package/dist/internal/arbitrary/runner.d.ts.map +1 -1
  575. package/dist/internal/arbitrary/runner.js +120 -44
  576. package/dist/internal/arbitrary/runner.js.map +1 -1
  577. package/dist/internal/core.js +2 -0
  578. package/dist/internal/core.js.map +1 -1
  579. package/dist/internal/effect.js +46 -27
  580. package/dist/internal/effect.js.map +1 -1
  581. package/dist/internal/equal.js +14 -0
  582. package/dist/internal/equal.js.map +1 -1
  583. package/dist/internal/glob.d.ts +2 -0
  584. package/dist/internal/glob.d.ts.map +1 -0
  585. package/dist/internal/glob.js +630 -0
  586. package/dist/internal/glob.js.map +1 -0
  587. package/dist/internal/jsonSchema.d.ts +2 -0
  588. package/dist/internal/jsonSchema.d.ts.map +1 -0
  589. package/dist/internal/jsonSchema.js +28 -0
  590. package/dist/internal/jsonSchema.js.map +1 -0
  591. package/dist/internal/matcher.js +11 -1
  592. package/dist/internal/matcher.js.map +1 -1
  593. package/dist/internal/persistence.js +9 -0
  594. package/dist/internal/persistence.js.map +1 -1
  595. package/dist/internal/rcRef.js +4 -1
  596. package/dist/internal/rcRef.js.map +1 -1
  597. package/dist/internal/schema/compilerRegistry.js +4 -1
  598. package/dist/internal/schema/compilerRegistry.js.map +1 -1
  599. package/dist/internal/schema/content.d.ts +2 -0
  600. package/dist/internal/schema/content.d.ts.map +1 -0
  601. package/dist/internal/schema/content.js +13 -0
  602. package/dist/internal/schema/content.js.map +1 -0
  603. package/dist/internal/schema/fromJsonSchemaDocument.js +173 -185
  604. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  605. package/dist/internal/schema/fromRepresentation.js +2 -1
  606. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  607. package/dist/internal/schema/standardSchema.js +8 -2
  608. package/dist/internal/schema/standardSchema.js.map +1 -1
  609. package/dist/internal/schema/toCodeDocument.js +9 -6
  610. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  611. package/dist/internal/schema/toCodec.js +21 -24
  612. package/dist/internal/schema/toCodec.js.map +1 -1
  613. package/dist/internal/schema/toJsonSchemaDocument.js +205 -140
  614. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  615. package/dist/internal/schema/toRepresentation.js +107 -129
  616. package/dist/internal/schema/toRepresentation.js.map +1 -1
  617. package/dist/internal/sql.d.ts +2 -0
  618. package/dist/internal/sql.d.ts.map +1 -0
  619. package/dist/internal/sql.js +13 -0
  620. package/dist/internal/sql.js.map +1 -0
  621. package/dist/internal/trie.js +42 -13
  622. package/dist/internal/trie.js.map +1 -1
  623. package/dist/internal/ulid.js +41 -0
  624. package/dist/internal/ulid.js.map +1 -1
  625. package/dist/internal/uuid.js +52 -8
  626. package/dist/internal/uuid.js.map +1 -1
  627. package/dist/internal/version.js +1 -1
  628. package/dist/observability/Otlp.d.ts +15 -4
  629. package/dist/observability/Otlp.d.ts.map +1 -1
  630. package/dist/observability/Otlp.js +10 -0
  631. package/dist/observability/Otlp.js.map +1 -1
  632. package/dist/observability/OtlpProxy.d.ts +154 -0
  633. package/dist/observability/OtlpProxy.d.ts.map +1 -0
  634. package/dist/observability/OtlpProxy.js +235 -0
  635. package/dist/observability/OtlpProxy.js.map +1 -0
  636. package/dist/observability/OtlpResource.d.ts +7 -0
  637. package/dist/observability/OtlpResource.d.ts.map +1 -1
  638. package/dist/observability/OtlpResource.js +11 -1
  639. package/dist/observability/OtlpResource.js.map +1 -1
  640. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  641. package/dist/observability/OtlpTracer.js +4 -0
  642. package/dist/observability/OtlpTracer.js.map +1 -1
  643. package/dist/observability/index.d.ts +5 -0
  644. package/dist/observability/index.d.ts.map +1 -1
  645. package/dist/observability/index.js +5 -0
  646. package/dist/observability/index.js.map +1 -1
  647. package/dist/persistence/CircuitBreaker.d.ts +897 -0
  648. package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
  649. package/dist/persistence/CircuitBreaker.js +1165 -0
  650. package/dist/persistence/CircuitBreaker.js.map +1 -0
  651. package/dist/persistence/KeyValueStore.d.ts +47 -2
  652. package/dist/persistence/KeyValueStore.d.ts.map +1 -1
  653. package/dist/persistence/KeyValueStore.js +129 -18
  654. package/dist/persistence/KeyValueStore.js.map +1 -1
  655. package/dist/persistence/PersistedQueue.d.ts +9 -0
  656. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  657. package/dist/persistence/PersistedQueue.js +94 -52
  658. package/dist/persistence/PersistedQueue.js.map +1 -1
  659. package/dist/persistence/Persistence.d.ts +10 -4
  660. package/dist/persistence/Persistence.d.ts.map +1 -1
  661. package/dist/persistence/Persistence.js +18 -11
  662. package/dist/persistence/Persistence.js.map +1 -1
  663. package/dist/persistence/Redis.d.ts +78 -2
  664. package/dist/persistence/Redis.d.ts.map +1 -1
  665. package/dist/persistence/Redis.js +62 -7
  666. package/dist/persistence/Redis.js.map +1 -1
  667. package/dist/persistence/index.d.ts +5 -0
  668. package/dist/persistence/index.d.ts.map +1 -1
  669. package/dist/persistence/index.js +5 -0
  670. package/dist/persistence/index.js.map +1 -1
  671. package/dist/process/ChildProcess.d.ts +237 -71
  672. package/dist/process/ChildProcess.d.ts.map +1 -1
  673. package/dist/process/ChildProcess.js +56 -158
  674. package/dist/process/ChildProcess.js.map +1 -1
  675. package/dist/process/ChildProcessSpawner.d.ts +35 -0
  676. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  677. package/dist/process/ChildProcessSpawner.js +5 -2
  678. package/dist/process/ChildProcessSpawner.js.map +1 -1
  679. package/dist/process/CommandLine.d.ts +294 -0
  680. package/dist/process/CommandLine.d.ts.map +1 -0
  681. package/dist/process/CommandLine.js +481 -0
  682. package/dist/process/CommandLine.js.map +1 -0
  683. package/dist/process/index.d.ts +5 -0
  684. package/dist/process/index.d.ts.map +1 -1
  685. package/dist/process/index.js +5 -0
  686. package/dist/process/index.js.map +1 -1
  687. package/dist/reactivity/AsyncResult.d.ts +1 -1
  688. package/dist/reactivity/AsyncResult.d.ts.map +1 -1
  689. package/dist/reactivity/Atom.d.ts +2 -1
  690. package/dist/reactivity/Atom.d.ts.map +1 -1
  691. package/dist/reactivity/Atom.js +3 -4
  692. package/dist/reactivity/Atom.js.map +1 -1
  693. package/dist/reactivity/AtomRegistry.js.map +1 -1
  694. package/dist/rpc/RpcClient.d.ts +16 -1
  695. package/dist/rpc/RpcClient.d.ts.map +1 -1
  696. package/dist/rpc/RpcClient.js +59 -24
  697. package/dist/rpc/RpcClient.js.map +1 -1
  698. package/dist/rpc/RpcMessage.d.ts +10 -1
  699. package/dist/rpc/RpcMessage.d.ts.map +1 -1
  700. package/dist/rpc/RpcMessage.js +1 -0
  701. package/dist/rpc/RpcMessage.js.map +1 -1
  702. package/dist/rpc/RpcSerialization.d.ts +14 -0
  703. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  704. package/dist/rpc/RpcSerialization.js +26 -8
  705. package/dist/rpc/RpcSerialization.js.map +1 -1
  706. package/dist/rpc/RpcServer.d.ts +31 -0
  707. package/dist/rpc/RpcServer.d.ts.map +1 -1
  708. package/dist/rpc/RpcServer.js +139 -56
  709. package/dist/rpc/RpcServer.js.map +1 -1
  710. package/dist/rpc/RpcTest.d.ts +1 -0
  711. package/dist/rpc/RpcTest.d.ts.map +1 -1
  712. package/dist/rpc/RpcTest.js +1 -0
  713. package/dist/rpc/RpcTest.js.map +1 -1
  714. package/dist/schema/Model.d.ts +14 -0
  715. package/dist/schema/Model.d.ts.map +1 -1
  716. package/dist/schema/Model.js +18 -3
  717. package/dist/schema/Model.js.map +1 -1
  718. package/dist/sql/Migrator.d.ts +2 -20
  719. package/dist/sql/Migrator.d.ts.map +1 -1
  720. package/dist/sql/Migrator.js +13 -55
  721. package/dist/sql/Migrator.js.map +1 -1
  722. package/dist/sql/MigratorFileSystem.d.ts +21 -0
  723. package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
  724. package/dist/sql/MigratorFileSystem.js +57 -0
  725. package/dist/sql/MigratorFileSystem.js.map +1 -0
  726. package/dist/sql/SqlClient.d.ts +9 -4
  727. package/dist/sql/SqlClient.d.ts.map +1 -1
  728. package/dist/sql/SqlClient.js +13 -10
  729. package/dist/sql/SqlClient.js.map +1 -1
  730. package/dist/sql/SqlResolver.d.ts +4 -0
  731. package/dist/sql/SqlResolver.d.ts.map +1 -1
  732. package/dist/sql/SqlResolver.js +18 -4
  733. package/dist/sql/SqlResolver.js.map +1 -1
  734. package/dist/sql/Statement.d.ts +27 -6
  735. package/dist/sql/Statement.d.ts.map +1 -1
  736. package/dist/sql/Statement.js +21 -15
  737. package/dist/sql/Statement.js.map +1 -1
  738. package/dist/sql/index.js +1 -1
  739. package/dist/testing/index.d.ts +0 -5
  740. package/dist/testing/index.d.ts.map +1 -1
  741. package/dist/testing/index.js +0 -5
  742. package/dist/testing/index.js.map +1 -1
  743. package/dist/workflow/DurableDeferred.d.ts.map +1 -1
  744. package/dist/workflow/DurableDeferred.js +21 -2
  745. package/dist/workflow/DurableDeferred.js.map +1 -1
  746. package/dist/workflow/internal/crypto.js +9 -8
  747. package/dist/workflow/internal/crypto.js.map +1 -1
  748. package/package.json +3 -1
  749. package/src/Arbitrary.ts +10 -2
  750. package/src/BigDecimal.ts +3 -0
  751. package/src/Channel.ts +64 -29
  752. package/src/Config.ts +7 -1
  753. package/src/Context.ts +34 -10
  754. package/src/Cron.ts +178 -29
  755. package/src/Data.ts +60 -265
  756. package/src/Duration.ts +140 -0
  757. package/src/Effect.ts +915 -86
  758. package/src/Equal.ts +8 -1
  759. package/src/Exit.ts +3 -3
  760. package/src/FileSystem.ts +65 -4
  761. package/src/Formatter.ts +28 -13
  762. package/src/Glob.ts +205 -0
  763. package/src/Hash.ts +4 -1
  764. package/src/JsonPatch.ts +4 -0
  765. package/src/JsonSchema.ts +12 -40
  766. package/src/Match.ts +127 -0
  767. package/src/Metric.ts +3 -3
  768. package/src/MutableList.ts +7 -5
  769. package/src/MutableRef.ts +8 -1
  770. package/src/PartitionedSemaphore.ts +24 -13
  771. package/src/Pool.ts +182 -52
  772. package/src/PubSub.ts +5 -6
  773. package/src/Random.ts +3 -3
  774. package/src/RcMap.ts +5 -1
  775. package/src/Ref.ts +8 -0
  776. package/src/Schedule.ts +27 -4
  777. package/src/Schema.ts +1237 -87
  778. package/src/SchemaAST.ts +20 -20
  779. package/src/SchemaGetter.ts +27 -11
  780. package/src/SchemaParser.ts +51 -18
  781. package/src/SchemaRepresentation.ts +50 -34
  782. package/src/SchemaTransformation.ts +17 -5
  783. package/src/ScopedCache.ts +5 -9
  784. package/src/Semaphore.ts +208 -40
  785. package/src/Sink.ts +15 -2
  786. package/src/Stream.ts +48 -22
  787. package/src/String.ts +3 -0
  788. package/src/Terminal.ts +19 -1
  789. package/src/Tracer.ts +15 -1
  790. package/src/ai/AiError.ts +56 -80
  791. package/src/ai/Decision.ts +257 -6
  792. package/src/ai/DecisionModel.ts +171 -28
  793. package/src/ai/LanguageModel.ts +9 -0
  794. package/src/ai/McpServer.ts +1283 -299
  795. package/src/ai/McpTest.ts +380 -0
  796. package/src/ai/Prompt.ts +65 -0
  797. package/src/ai/Response.ts +36 -31
  798. package/src/ai/Tool.ts +65 -10
  799. package/src/ai/Toolkit.ts +4 -1
  800. package/src/ai/index.ts +6 -0
  801. package/src/ai/internal/mcpCore.ts +78 -44
  802. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +4 -7
  803. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +4 -7
  804. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +4 -7
  805. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +4 -7
  806. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +15 -10
  807. package/src/ai/internal/mcpProtocol.ts +29 -0
  808. package/src/ai/internal/mcpRuntime.ts +9 -5
  809. package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
  810. package/src/cli/Argument.ts +21 -0
  811. package/src/cli/CliError.ts +90 -3
  812. package/src/cli/CliOutput.ts +300 -55
  813. package/src/cli/Command.ts +76 -41
  814. package/src/cli/Completions.ts +51 -0
  815. package/src/cli/Flag.ts +122 -0
  816. package/src/cli/GlobalFlag.ts +6 -7
  817. package/src/cli/HelpDoc.ts +18 -1
  818. package/src/cli/Param.ts +35 -6
  819. package/src/cli/Primitive.ts +16 -1
  820. package/src/cli/Prompt.ts +1 -0
  821. package/src/cli/TerminalCapabilities.ts +6 -3
  822. package/src/cli/internal/completions/bash.ts +79 -29
  823. package/src/cli/internal/help.ts +21 -9
  824. package/src/cluster/ClusterWorkflowEngine.ts +46 -16
  825. package/src/cluster/MessageStorage.ts +19 -14
  826. package/src/cluster/Sharding.ts +176 -47
  827. package/src/cluster/ShardingConfig.ts +43 -0
  828. package/src/cluster/SingleRunner.ts +3 -3
  829. package/src/cluster/Snowflake.ts +3 -7
  830. package/src/cluster/SqlMessageStorage.ts +49 -17
  831. package/src/cluster/SqlRunnerStorage.ts +143 -70
  832. package/src/cluster/internal/entityManager.ts +75 -22
  833. package/src/crypto/Aead.ts +517 -0
  834. package/src/crypto/Cipher.ts +326 -0
  835. package/src/crypto/CryptoError.ts +242 -0
  836. package/src/crypto/Digest.ts +167 -0
  837. package/src/crypto/Kdf.ts +315 -0
  838. package/src/crypto/KeyAgreement.ts +489 -0
  839. package/src/crypto/KeyFormat.ts +712 -0
  840. package/src/crypto/KeyWrap.ts +639 -0
  841. package/src/crypto/Mac.ts +386 -0
  842. package/src/crypto/SecureRandom.ts +459 -0
  843. package/src/crypto/Signature.ts +673 -0
  844. package/src/crypto/WebCrypto.ts +64 -0
  845. package/src/crypto/index.ts +78 -0
  846. package/src/crypto/internal/asymmetric.ts +329 -0
  847. package/src/crypto/internal/chacha.ts +1088 -0
  848. package/src/crypto/internal/der.ts +110 -0
  849. package/src/crypto/internal/digest.ts +16 -0
  850. package/src/crypto/internal/key.ts +235 -0
  851. package/src/crypto/internal/md5.ts +170 -0
  852. package/src/crypto/internal/webCrypto.ts +150 -0
  853. package/src/devtools/DevToolsClient.ts +2 -0
  854. package/src/encoding/Base64.ts +38 -0
  855. package/src/encoding/Base64Url.ts +5 -2
  856. package/src/encoding/Csv.ts +1298 -0
  857. package/src/encoding/Hex.ts +3 -2
  858. package/src/encoding/SchemaBinary.ts +40 -4
  859. package/src/encoding/Sse.ts +4 -3
  860. package/src/encoding/Toml.ts +117 -35
  861. package/src/encoding/Yaml.ts +61 -18
  862. package/src/encoding/index.ts +6 -0
  863. package/src/eventlog/EventJournal.ts +4 -3
  864. package/src/eventlog/EventLog.ts +340 -15
  865. package/src/eventlog/EventLogEncryption.ts +118 -110
  866. package/src/eventlog/EventLogMessage.ts +273 -1
  867. package/src/eventlog/EventLogRemote.ts +367 -23
  868. package/src/eventlog/EventLogServer.ts +23 -8
  869. package/src/eventlog/EventLogServerEncrypted.ts +1130 -67
  870. package/src/eventlog/EventLogSessionAuth.ts +56 -70
  871. package/src/eventlog/EventRow.ts +12 -3
  872. package/src/eventlog/SqlEventJournal.ts +68 -45
  873. package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
  874. package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
  875. package/src/eventlog/internal/batches.ts +30 -0
  876. package/src/eventlog/internal/compaction.ts +64 -0
  877. package/src/eventlog/internal/conflicts.ts +0 -4
  878. package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
  879. package/src/eventlog/internal/remoteCompaction.ts +92 -0
  880. package/src/http/Cookies.ts +291 -12
  881. package/src/http/FetchHttpClient.ts +88 -16
  882. package/src/http/HttpClient.ts +636 -29
  883. package/src/http/HttpClientError.ts +35 -1
  884. package/src/http/HttpClientRequest.ts +21 -10
  885. package/src/http/HttpClientResponse.ts +3 -2
  886. package/src/http/HttpMethod.ts +10 -2
  887. package/src/http/HttpMiddleware.ts +15 -18
  888. package/src/http/HttpRouter.ts +2 -1
  889. package/src/http/HttpServerError.ts +2 -2
  890. package/src/http/HttpServerRequest.ts +101 -30
  891. package/src/http/HttpServerResponse.ts +3 -2
  892. package/src/http/HttpStaticServer.ts +51 -22
  893. package/src/http/HttpTraceContext.ts +7 -4
  894. package/src/http/MultipartParser/internal/contentType.ts +3 -3
  895. package/src/http/ProblemDetails.ts +149 -0
  896. package/src/http/UrlParams.ts +6 -1
  897. package/src/http/index.ts +6 -0
  898. package/src/http/internal/compression.ts +4 -5
  899. package/src/http/internal/decompression.ts +10 -4
  900. package/src/http/internal/httpBody.ts +10 -2
  901. package/src/http/internal/urlParams.ts +37 -0
  902. package/src/http-api/HttpApi.ts +3 -6
  903. package/src/http-api/HttpApiBuilder.ts +61 -19
  904. package/src/http-api/HttpApiClient.ts +284 -72
  905. package/src/http-api/HttpApiEndpoint.ts +135 -35
  906. package/src/http-api/HttpApiError.ts +250 -0
  907. package/src/http-api/HttpApiMiddleware.ts +95 -1
  908. package/src/http-api/HttpApiSchema.ts +236 -52
  909. package/src/http-api/HttpApiTest.ts +3 -2
  910. package/src/http-api/OpenApi.ts +20 -17
  911. package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
  912. package/src/index.ts +6 -6
  913. package/src/internal/arbitrary/runner.ts +133 -36
  914. package/src/internal/core.ts +2 -0
  915. package/src/internal/effect.ts +58 -34
  916. package/src/internal/equal.ts +17 -0
  917. package/src/internal/glob.ts +736 -0
  918. package/src/internal/jsonSchema.ts +27 -0
  919. package/src/internal/matcher.ts +18 -1
  920. package/src/internal/persistence.ts +11 -0
  921. package/src/internal/rcRef.ts +4 -1
  922. package/src/internal/schema/compilerRegistry.ts +6 -1
  923. package/src/internal/schema/content.ts +18 -0
  924. package/src/internal/schema/fromJsonSchemaDocument.ts +228 -190
  925. package/src/internal/schema/fromRepresentation.ts +2 -1
  926. package/src/internal/schema/standardSchema.ts +2 -2
  927. package/src/internal/schema/toCodeDocument.ts +11 -7
  928. package/src/internal/schema/toCodec.ts +26 -22
  929. package/src/internal/schema/toJsonSchemaDocument.ts +189 -167
  930. package/src/internal/schema/toRepresentation.ts +122 -140
  931. package/src/internal/sql.ts +14 -0
  932. package/src/internal/trie.ts +43 -14
  933. package/src/internal/ulid.ts +44 -0
  934. package/src/internal/uuid.ts +57 -16
  935. package/src/internal/version.ts +1 -1
  936. package/src/observability/Otlp.ts +21 -4
  937. package/src/observability/OtlpProxy.ts +314 -0
  938. package/src/observability/OtlpResource.ts +9 -1
  939. package/src/observability/OtlpTracer.ts +4 -0
  940. package/src/observability/index.ts +6 -0
  941. package/src/persistence/CircuitBreaker.ts +1678 -0
  942. package/src/persistence/KeyValueStore.ts +219 -22
  943. package/src/persistence/PersistedQueue.ts +128 -59
  944. package/src/persistence/Persistence.ts +20 -13
  945. package/src/persistence/Redis.ts +129 -8
  946. package/src/persistence/index.ts +6 -0
  947. package/src/process/ChildProcess.ts +285 -264
  948. package/src/process/ChildProcessSpawner.ts +46 -2
  949. package/src/process/CommandLine.ts +630 -0
  950. package/src/process/index.ts +6 -0
  951. package/src/reactivity/AsyncResult.ts +1 -1
  952. package/src/reactivity/Atom.ts +5 -5
  953. package/src/reactivity/AtomRegistry.ts +1 -1
  954. package/src/rpc/RpcClient.ts +75 -36
  955. package/src/rpc/RpcMessage.ts +10 -1
  956. package/src/rpc/RpcSerialization.ts +35 -9
  957. package/src/rpc/RpcServer.ts +176 -63
  958. package/src/rpc/RpcTest.ts +3 -0
  959. package/src/schema/Model.ts +26 -3
  960. package/src/sql/Migrator.ts +15 -69
  961. package/src/sql/MigratorFileSystem.ts +71 -0
  962. package/src/sql/SqlClient.ts +13 -20
  963. package/src/sql/SqlResolver.ts +23 -9
  964. package/src/sql/Statement.ts +38 -9
  965. package/src/sql/index.ts +1 -1
  966. package/src/testing/index.ts +0 -6
  967. package/src/workflow/DurableDeferred.ts +23 -6
  968. package/src/workflow/internal/crypto.ts +15 -11
  969. package/dist/Crypto.d.ts +0 -244
  970. package/dist/Crypto.d.ts.map +0 -1
  971. package/dist/Crypto.js +0 -139
  972. package/dist/Crypto.js.map +0 -1
  973. package/dist/testing/TestCrypto.d.ts +0 -73
  974. package/dist/testing/TestCrypto.d.ts.map +0 -1
  975. package/dist/testing/TestCrypto.js +0 -87
  976. package/dist/testing/TestCrypto.js.map +0 -1
  977. package/src/Crypto.ts +0 -347
  978. package/src/testing/TestCrypto.ts +0 -94
package/src/ai/Tool.ts CHANGED
@@ -290,6 +290,12 @@ export interface Tool<
290
290
  */
291
291
  readonly needsApproval?: boolean | NeedsApprovalFunction<any> | undefined
292
292
 
293
+ /**
294
+ * Maps a successful tool result to the content sent to the model in place
295
+ * of the encoded result. `setSuccess` removes the mapping.
296
+ */
297
+ readonly toModelOutput?: ((result: any) => ReadonlyArray<Prompt.ToolModelOutputPart>) | undefined
298
+
293
299
  /**
294
300
  * Set whether user approval is required before executing this tool.
295
301
  */
@@ -912,17 +918,36 @@ export type ResultEncoded<T> = SuccessEncoded<T> | FailureResultEncoded<T>
912
918
  * @category utility types
913
919
  * @since 4.0.0
914
920
  */
915
- export type HandlerServices<T> = T extends Tool<
921
+ export type HandlerServices<T> = SchemaServices<T> | Requirements<T>
922
+
923
+ /**
924
+ * A utility type to extract the request-level dependencies a `Tool` declares
925
+ * with `dependencies` or `Tool.addDependency`.
926
+ *
927
+ * @stability unstable
928
+ * @category utility types
929
+ * @since 4.0.0
930
+ */
931
+ export type Requirements<T> = T extends Tool<
932
+ infer _Name,
933
+ infer _Config,
934
+ infer _Requirements
935
+ > ? _Requirements
936
+ : never
937
+
938
+ /**
939
+ * A utility type to extract the services needed to decode the parameters of a
940
+ * `Tool` call and encode its result, whether success or failure.
941
+ *
942
+ * @stability unstable
943
+ * @category utility types
944
+ * @since 4.0.0
945
+ */
946
+ export type SchemaServices<T> = T extends Tool<
916
947
  infer _Name,
917
948
  infer _Config,
918
949
  infer _Requirements
919
- > ? // Parameters must be decoded when received from a model
920
- | _Config["parameters"]["DecodingServices"]
921
- // A tool call `result`, whether success or failure, is encoded and returned
922
- // as the `encodedResult` along with the `result`
923
- | ResultEncodingServices<T>
924
- // Per-request requirements
925
- | _Requirements
950
+ > ? _Config["parameters"]["DecodingServices"] | ResultEncodingServices<T>
926
951
  : never
927
952
 
928
953
  /**
@@ -955,6 +980,20 @@ export type ResultDecodingServices<T> = T extends Tool<
955
980
  > ? _Config["success"]["DecodingServices"] | _Config["failure"]["DecodingServices"]
956
981
  : never
957
982
 
983
+ /**
984
+ * Extracts the services required to decode tool parameters.
985
+ *
986
+ * @stability unstable
987
+ * @category utility types
988
+ * @since 4.0.0
989
+ */
990
+ export type ParametersDecodingServices<T> = T extends Tool<
991
+ infer _Name,
992
+ infer _Config,
993
+ infer _Requirements
994
+ > ? _Config["parameters"]["DecodingServices"]
995
+ : never
996
+
958
997
  /**
959
998
  * Extracts the services required to encode tool parameters.
960
999
  *
@@ -1016,6 +1055,10 @@ export interface HandlerResult<Tool extends Any> {
1016
1055
  * into subsequent requests to the large language model.
1017
1056
  */
1018
1057
  readonly encodedResult: unknown
1058
+ /**
1059
+ * The output of the tool's `toModelOutput` mapping for a successful result.
1060
+ */
1061
+ readonly modelOutput?: ReadonlyArray<Prompt.ToolModelOutputPart> | undefined
1019
1062
  /**
1020
1063
  * Whether the result of executing the tool call handler was an error or not.
1021
1064
  */
@@ -1117,7 +1160,7 @@ const Proto = {
1117
1160
  return clone(this, { parametersSchema, jsonSchema: undefined })
1118
1161
  },
1119
1162
  setSuccess(this: Any, successSchema: Schema.Constraint) {
1120
- return clone(this, { successSchema })
1163
+ return clone(this, { successSchema, toModelOutput: undefined })
1121
1164
  },
1122
1165
  setFailure(this: Any, failureSchema: Schema.Constraint) {
1123
1166
  return clone(this, { failureSchema })
@@ -1158,6 +1201,7 @@ const userDefinedProto = <
1158
1201
  readonly annotations: Context.Context<never>
1159
1202
  readonly failureMode: Mode
1160
1203
  readonly needsApproval?: NeedsApproval<Parameters> | undefined
1204
+ readonly toModelOutput?: ((result: any) => ReadonlyArray<Prompt.ToolModelOutputPart>) | undefined
1161
1205
  }): Tool<
1162
1206
  Name,
1163
1207
  {
@@ -1220,6 +1264,7 @@ const dynamicProto = <
1220
1264
  readonly annotations: Context.Context<never>
1221
1265
  readonly failureMode: Mode
1222
1266
  readonly needsApproval?: NeedsApproval<any> | undefined
1267
+ readonly toModelOutput?: ((result: any) => ReadonlyArray<Prompt.ToolModelOutputPart>) | undefined
1223
1268
  readonly jsonSchema: JsonSchema.JsonSchema | undefined
1224
1269
  }): Dynamic<
1225
1270
  Name,
@@ -1319,6 +1364,12 @@ export const make = <
1319
1364
  * dynamically determine if approval is needed.
1320
1365
  */
1321
1366
  readonly needsApproval?: NeedsApproval<Parameters> | undefined
1367
+ /**
1368
+ * Maps a successful tool result to the content sent to the model in place
1369
+ * of the encoded result, such as images or files. The application still
1370
+ * receives the typed result.
1371
+ */
1372
+ readonly toModelOutput?: ((result: Success["Type"]) => ReadonlyArray<Prompt.ToolModelOutputPart>) | undefined
1322
1373
  }): Tool<
1323
1374
  Name,
1324
1375
  {
@@ -1339,7 +1390,8 @@ export const make = <
1339
1390
  failureSchema,
1340
1391
  failureMode: options?.failureMode ?? "error",
1341
1392
  annotations: Context.empty(),
1342
- needsApproval: options?.needsApproval as any
1393
+ needsApproval: options?.needsApproval as any,
1394
+ toModelOutput: options?.toModelOutput
1343
1395
  }) as any
1344
1396
  }
1345
1397
 
@@ -1447,6 +1499,7 @@ export const dynamic: {
1447
1499
  readonly failure?: Schema.Constraint | undefined
1448
1500
  readonly failureMode?: FailureMode | undefined
1449
1501
  readonly needsApproval?: NeedsApproval<any> | undefined
1502
+ readonly toModelOutput?: ((result: any) => ReadonlyArray<Prompt.ToolModelOutputPart>) | undefined
1450
1503
  }
1451
1504
  >(name: Name, options?: Options): Dynamic<
1452
1505
  Name,
@@ -1471,6 +1524,7 @@ export const dynamic: {
1471
1524
  readonly failure?: Schema.Constraint | undefined
1472
1525
  readonly failureMode?: FailureMode | undefined
1473
1526
  readonly needsApproval?: NeedsApproval<any> | undefined
1527
+ readonly toModelOutput?: ((result: any) => ReadonlyArray<Prompt.ToolModelOutputPart>) | undefined
1474
1528
  }
1475
1529
  >(name: Name, options?: Options): any => {
1476
1530
  const successSchema = options?.success ?? Schema.Unknown
@@ -1488,6 +1542,7 @@ export const dynamic: {
1488
1542
  failureMode: options?.failureMode ?? "error",
1489
1543
  annotations: Context.empty(),
1490
1544
  needsApproval: options?.needsApproval,
1545
+ toModelOutput: options?.toModelOutput,
1491
1546
  jsonSchema
1492
1547
  })
1493
1548
  }
package/src/ai/Toolkit.ts CHANGED
@@ -525,7 +525,10 @@ const Proto = {
525
525
  ),
526
526
  Stream.mapEffect(Effect.fnUntraced(function*(output) {
527
527
  const encodedResult = yield* encodeResult(output.result, output.isFailure)
528
- return { ...output, encodedResult }
528
+ if (output.isFailure || output.preliminary || tool.toModelOutput === undefined) {
529
+ return { ...output, encodedResult }
530
+ }
531
+ return { ...output, encodedResult, modelOutput: tool.toModelOutput(output.result) }
529
532
  })),
530
533
  Stream.ensuring(Fiber.interrupt(fiber))
531
534
  ) satisfies Stream.Stream<Tool.HandlerResult<any>, any>
package/src/ai/index.ts CHANGED
@@ -83,6 +83,12 @@ export * as McpSchema from "./McpSchema.ts"
83
83
  */
84
84
  export * as McpServer from "./McpServer.ts"
85
85
 
86
+ /**
87
+ * @stability unstable
88
+ * @since 4.0.0
89
+ */
90
+ export * as McpTest from "./McpTest.ts"
91
+
86
92
  /**
87
93
  * @stability unstable
88
94
  * @since 4.0.0
@@ -149,6 +149,20 @@ export class UnsupportedByProtocol extends Data.TaggedError("UnsupportedByProtoc
149
149
  readonly feature: string
150
150
  }> {}
151
151
 
152
+ /**
153
+ * A request rejected outside the handler, for example by MCP middleware.
154
+ * Adapters send it as a JSON-RPC error with its code, message and data, never
155
+ * as a tool result. `error` keeps the original failure for in-process callers.
156
+ *
157
+ * @internal
158
+ */
159
+ export class RequestRejected extends Data.TaggedError("RequestRejected")<{
160
+ readonly code: number
161
+ readonly message: string
162
+ readonly data?: unknown
163
+ readonly error: McpSchema.McpErrorBase
164
+ }> {}
165
+
152
166
  /**
153
167
  * @internal
154
168
  */
@@ -157,6 +171,7 @@ export type ToolError =
157
171
  | InvalidToolInput
158
172
  | InvalidToolContinuation
159
173
  | ToolExecutionError
174
+ | RequestRejected
160
175
 
161
176
  /**
162
177
  * @internal
@@ -166,12 +181,13 @@ export interface ToolRegistration {
166
181
  // `tool.title ?? tool.annotations?.title` at the public boundary.
167
182
  readonly descriptor: McpSchema.Tool
168
183
  readonly isVisible: (profile: NegotiatedProtocolProfile<string>) => boolean
184
+ readonly visible?: Visible | undefined
169
185
  readonly handle: (
170
186
  call: typeof McpSchema.CallTool.payloadSchema.Type,
171
187
  invocation: McpInvocation
172
188
  ) => Effect.Effect<
173
189
  OperationOutcome<McpSchema.CallToolResult>,
174
- InvalidToolInput | InvalidToolContinuation | ToolExecutionError,
190
+ ToolNotFound | InvalidToolInput | InvalidToolContinuation | ToolExecutionError | RequestRejected,
175
191
  never
176
192
  >
177
193
  }
@@ -184,8 +200,13 @@ export interface Tools {
184
200
  registration: ToolRegistration
185
201
  ) => Effect.Effect<void>
186
202
  readonly list: (
203
+ invocation: McpInvocation
204
+ ) => Effect.Effect<ReadonlyArray<McpSchema.Tool>, RequestRejected>
205
+ // Skips request-level visibility checks.
206
+ readonly find: (
207
+ name: string,
187
208
  profile: NegotiatedProtocolProfile<string>
188
- ) => Effect.Effect<ReadonlyArray<McpSchema.Tool>>
209
+ ) => McpSchema.Tool | undefined
189
210
  readonly call: (
190
211
  call: typeof McpSchema.CallTool.payloadSchema.Type,
191
212
  invocation: McpInvocation
@@ -198,9 +219,10 @@ export interface Tools {
198
219
  export interface ResourceRegistration {
199
220
  readonly descriptor: McpSchema.Resource
200
221
  readonly isVisible: (profile: NegotiatedProtocolProfile<string>) => boolean
222
+ readonly visible?: Visible | undefined
201
223
  readonly read: (
202
224
  invocation: McpInvocation
203
- ) => Effect.Effect<McpSchema.ReadResourceResult, McpSchema.InternalError>
225
+ ) => Effect.Effect<McpSchema.ReadResourceResult, ResourceNotFound | McpSchema.InternalError | RequestRejected>
204
226
  }
205
227
 
206
228
  /**
@@ -209,12 +231,16 @@ export interface ResourceRegistration {
209
231
  export interface ResourceTemplateRegistration {
210
232
  readonly descriptor: McpSchema.ResourceTemplate
211
233
  readonly isVisible: (profile: NegotiatedProtocolProfile<string>) => boolean
234
+ readonly visible?: Visible | undefined
212
235
  readonly match: (uri: string) => ReadonlyArray<string> | undefined
213
236
  readonly read: (
214
237
  uri: string,
215
238
  params: ReadonlyArray<string>,
216
239
  invocation: McpInvocation
217
- ) => Effect.Effect<McpSchema.ReadResourceResult, McpSchema.InvalidParams | McpSchema.InternalError>
240
+ ) => Effect.Effect<
241
+ McpSchema.ReadResourceResult,
242
+ ResourceNotFound | McpSchema.InvalidParams | McpSchema.InternalError | RequestRejected
243
+ >
218
244
  }
219
245
 
220
246
  /**
@@ -224,17 +250,17 @@ export interface Resources {
224
250
  readonly register: (registration: ResourceRegistration) => Effect.Effect<void>
225
251
  readonly registerTemplate: (registration: ResourceTemplateRegistration) => Effect.Effect<void>
226
252
  readonly list: (
227
- profile: NegotiatedProtocolProfile<string>
228
- ) => Effect.Effect<ReadonlyArray<McpSchema.Resource>>
253
+ invocation: McpInvocation
254
+ ) => Effect.Effect<ReadonlyArray<McpSchema.Resource>, RequestRejected>
229
255
  readonly listTemplates: (
230
- profile: NegotiatedProtocolProfile<string>
231
- ) => Effect.Effect<ReadonlyArray<McpSchema.ResourceTemplate>>
256
+ invocation: McpInvocation
257
+ ) => Effect.Effect<ReadonlyArray<McpSchema.ResourceTemplate>, RequestRejected>
232
258
  readonly read: (
233
259
  uri: string,
234
260
  invocation: McpInvocation
235
261
  ) => Effect.Effect<
236
262
  McpSchema.ReadResourceResult,
237
- ResourceNotFound | McpSchema.InvalidParams | McpSchema.InternalError
263
+ ResourceNotFound | McpSchema.InvalidParams | McpSchema.InternalError | RequestRejected
238
264
  >
239
265
  }
240
266
 
@@ -251,10 +277,14 @@ export class PromptNotFound extends Data.TaggedError("PromptNotFound")<{
251
277
  export interface PromptRegistration {
252
278
  readonly descriptor: McpSchema.Prompt
253
279
  readonly isVisible: (profile: NegotiatedProtocolProfile<string>) => boolean
280
+ readonly visible?: Visible | undefined
254
281
  readonly get: (
255
282
  args: Readonly<Record<string, string>>,
256
283
  invocation: McpInvocation
257
- ) => Effect.Effect<OperationOutcome<McpSchema.GetPromptResult>, McpSchema.InvalidParams | McpSchema.InternalError>
284
+ ) => Effect.Effect<
285
+ OperationOutcome<McpSchema.GetPromptResult>,
286
+ PromptNotFound | McpSchema.InvalidParams | McpSchema.InternalError | RequestRejected
287
+ >
258
288
  }
259
289
 
260
290
  /**
@@ -263,15 +293,15 @@ export interface PromptRegistration {
263
293
  export interface Prompts {
264
294
  readonly register: (registration: PromptRegistration) => Effect.Effect<void>
265
295
  readonly list: (
266
- profile: NegotiatedProtocolProfile<string>
267
- ) => Effect.Effect<ReadonlyArray<McpSchema.Prompt>>
296
+ invocation: McpInvocation
297
+ ) => Effect.Effect<ReadonlyArray<McpSchema.Prompt>, RequestRejected>
268
298
  readonly get: (
269
299
  name: string,
270
300
  args: Readonly<Record<string, string>>,
271
301
  invocation: McpInvocation
272
302
  ) => Effect.Effect<
273
303
  OperationOutcome<McpSchema.GetPromptResult>,
274
- PromptNotFound | McpSchema.InvalidParams | McpSchema.InternalError
304
+ PromptNotFound | McpSchema.InvalidParams | McpSchema.InternalError | RequestRejected
275
305
  >
276
306
  }
277
307
 
@@ -314,12 +344,12 @@ export interface Completions {
314
344
  complete: (
315
345
  request: CompletionRequest,
316
346
  invocation: McpInvocation
317
- ) => Effect.Effect<CompletionResult, McpSchema.InvalidParams | McpSchema.InternalError>
347
+ ) => Effect.Effect<CompletionResult, McpSchema.InvalidParams | McpSchema.InternalError | RequestRejected>
318
348
  ) => Effect.Effect<void>
319
349
  readonly complete: (
320
350
  request: CompletionRequest,
321
351
  invocation: McpInvocation
322
- ) => Effect.Effect<CompletionResult, McpSchema.InvalidParams | McpSchema.InternalError>
352
+ ) => Effect.Effect<CompletionResult, McpSchema.InvalidParams | McpSchema.InternalError | RequestRejected>
323
353
  }
324
354
 
325
355
  /**
@@ -400,6 +430,14 @@ export interface McpCore {
400
430
  }>
401
431
  }
402
432
 
433
+ /**
434
+ * Runs the request-level visibility checks of a registration on a list
435
+ * request, after `isVisible` passed.
436
+ *
437
+ * @internal
438
+ */
439
+ export type Visible = (invocation: McpInvocation) => Effect.Effect<boolean, RequestRejected>
440
+
403
441
  /**
404
442
  * @internal
405
443
  */
@@ -413,24 +451,35 @@ export const make: Effect.Effect<McpCore> = Effect.sync(() => {
413
451
  (
414
452
  request: CompletionRequest,
415
453
  invocation: McpInvocation
416
- ) => Effect.Effect<CompletionResult, McpSchema.InvalidParams | McpSchema.InternalError>
454
+ ) => Effect.Effect<CompletionResult, McpSchema.InvalidParams | McpSchema.InternalError | RequestRejected>
417
455
  >()
418
456
 
457
+ const filterList = <D>(
458
+ registrations: Iterable<{
459
+ readonly descriptor: D
460
+ readonly isVisible: ToolRegistration["isVisible"]
461
+ readonly visible?: Visible | undefined
462
+ }>,
463
+ invocation: McpInvocation
464
+ ): Effect.Effect<ReadonlyArray<D>, RequestRejected> =>
465
+ Effect.map(
466
+ Effect.filter(
467
+ Arr.filter(registrations, (entry) => entry.isVisible(invocation.protocol)),
468
+ (entry) => entry.visible === undefined ? Effect.succeed(true) : entry.visible(invocation)
469
+ ),
470
+ (entries) => entries.map((entry) => entry.descriptor)
471
+ )
472
+
419
473
  const tools: Tools = {
420
474
  register: (registration) =>
421
475
  Effect.sync(() => {
422
476
  registrations.set(registration.descriptor.name, registration)
423
477
  }),
424
- list: (profile) =>
425
- Effect.sync(() => {
426
- const descriptors: Array<McpSchema.Tool> = []
427
- for (const registration of registrations.values()) {
428
- if (registration.isVisible(profile)) {
429
- descriptors.push(registration.descriptor)
430
- }
431
- }
432
- return descriptors
433
- }),
478
+ list: (invocation) => filterList(registrations.values(), invocation),
479
+ find: (name, profile) => {
480
+ const registration = registrations.get(name)
481
+ return registration !== undefined && registration.isVisible(profile) ? registration.descriptor : undefined
482
+ },
434
483
  call: (call, invocation) =>
435
484
  Effect.suspend((): Effect.Effect<OperationOutcome<McpSchema.CallToolResult>, ToolError> => {
436
485
  const registration = registrations.get(call.name)
@@ -465,18 +514,8 @@ export const make: Effect.Effect<McpCore> = Effect.sync(() => {
465
514
  resourceTemplateRegistrations[index] = registration
466
515
  }
467
516
  }),
468
- list: (profile) =>
469
- Effect.sync(() =>
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
- ),
517
+ list: (invocation) => filterList(resourceRegistrations, invocation),
518
+ listTemplates: (invocation) => filterList(resourceTemplateRegistrations, invocation),
480
519
  read: Effect.fnUntraced(function*(uri, invocation) {
481
520
  const resource = resourceRegistrations.find((entry) => entry.descriptor.uri === uri)
482
521
  if (resource !== undefined && resource.isVisible(invocation.protocol)) {
@@ -497,12 +536,7 @@ export const make: Effect.Effect<McpCore> = Effect.sync(() => {
497
536
  Effect.sync(() => {
498
537
  promptRegistrations.set(registration.descriptor.name, registration)
499
538
  }),
500
- list: (profile) =>
501
- Effect.sync(() =>
502
- Array.from(promptRegistrations.values())
503
- .filter((entry) => entry.isVisible(profile))
504
- .map((entry) => entry.descriptor)
505
- ),
539
+ list: (invocation) => filterList(promptRegistrations.values(), invocation),
506
540
  get: Effect.fnUntraced(function*(name, args, invocation) {
507
541
  const registration = promptRegistrations.get(name)
508
542
  if (registration === undefined || !registration.isVisible(invocation.protocol)) {
@@ -154,12 +154,10 @@ export const protocol = McpProtocol.make({
154
154
  "notifications/roots/list_changed": (_, { client, headers }) =>
155
155
  lifecycle.clientNotification(McpCore.ClientNotification.RootsChanged(), client.id, headers),
156
156
  "resources/list": (_pageRequest) =>
157
- PublicMcpSchema.McpServerClient.use((request) => core.resources.list(McpProtocol.profileFromClient(request)))
157
+ McpProtocol.listForClient(core.resources.list)
158
158
  .pipe(Effect.map((resources) => McpSchema.ListResourcesResult.make({ resources }))),
159
159
  "resources/templates/list": (_pageRequest) =>
160
- PublicMcpSchema.McpServerClient.use((request) =>
161
- core.resources.listTemplates(McpProtocol.profileFromClient(request))
162
- ).pipe(
160
+ McpProtocol.listForClient(core.resources.listTemplates).pipe(
163
161
  Effect.map((resourceTemplates) => McpSchema.ListResourceTemplatesResult.make({ resourceTemplates }))
164
162
  ),
165
163
  "resources/read": Effect.fnUntraced(function*({ uri }) {
@@ -189,7 +187,7 @@ export const protocol = McpProtocol.make({
189
187
  "resources/unsubscribe": ({ uri }, { client, headers }) =>
190
188
  lifecycle.unsubscribe(uri, client.id, headers).pipe(Effect.as({})),
191
189
  "prompts/list": () =>
192
- PublicMcpSchema.McpServerClient.use((request) => core.prompts.list(McpProtocol.profileFromClient(request)))
190
+ McpProtocol.listForClient(core.prompts.list)
193
191
  .pipe(
194
192
  Effect.map((prompts) =>
195
193
  McpSchema.ListPromptsResult.make({
@@ -249,8 +247,7 @@ export const protocol = McpProtocol.make({
249
247
  })
250
248
  }),
251
249
  "tools/list": Effect.fnUntraced(function*() {
252
- const request = yield* PublicMcpSchema.McpServerClient
253
- return yield* core.tools.list(McpProtocol.profileFromClient(request)).pipe(
250
+ return yield* McpProtocol.listForClient(core.tools.list).pipe(
254
251
  Effect.map((tools) =>
255
252
  McpSchema.ListToolsResult.make({
256
253
  tools: tools.map((tool) =>
@@ -166,7 +166,7 @@ export const protocol = McpProtocol.make({
166
166
  "notifications/roots/list_changed": (_, { client, headers }) =>
167
167
  lifecycle.clientNotification(McpCore.ClientNotification.RootsChanged(), client.id, headers),
168
168
  "resources/list": (_pageRequest) =>
169
- PublicMcpSchema.McpServerClient.use((request) => core.resources.list(McpProtocol.profileFromClient(request)))
169
+ McpProtocol.listForClient(core.resources.list)
170
170
  .pipe(
171
171
  Effect.map((resources) =>
172
172
  McpSchema.ListResourcesResult.make({
@@ -182,9 +182,7 @@ export const protocol = McpProtocol.make({
182
182
  )
183
183
  ),
184
184
  "resources/templates/list": (_pageRequest) =>
185
- PublicMcpSchema.McpServerClient.use((request) =>
186
- core.resources.listTemplates(McpProtocol.profileFromClient(request))
187
- ).pipe(
185
+ McpProtocol.listForClient(core.resources.listTemplates).pipe(
188
186
  Effect.map((resourceTemplates) =>
189
187
  McpSchema.ListResourceTemplatesResult.make({
190
188
  resourceTemplates: resourceTemplates.map((template) => ({
@@ -212,7 +210,7 @@ export const protocol = McpProtocol.make({
212
210
  "resources/unsubscribe": ({ uri }, { client, headers }) =>
213
211
  lifecycle.unsubscribe(uri, client.id, headers).pipe(Effect.as({})),
214
212
  "prompts/list": (_pageRequest) =>
215
- PublicMcpSchema.McpServerClient.use((request) => core.prompts.list(McpProtocol.profileFromClient(request)))
213
+ McpProtocol.listForClient(core.prompts.list)
216
214
  .pipe(
217
215
  Effect.map((prompts) =>
218
216
  McpSchema.ListPromptsResult.make({
@@ -272,8 +270,7 @@ export const protocol = McpProtocol.make({
272
270
  })
273
271
  }),
274
272
  "tools/list": Effect.fnUntraced(function*() {
275
- const request = yield* PublicMcpSchema.McpServerClient
276
- const tools = yield* core.tools.list(McpProtocol.profileFromClient(request))
273
+ const tools = yield* McpProtocol.listForClient(core.tools.list)
277
274
  return McpSchema.ListToolsResult.make({
278
275
  tools: tools.map((tool) =>
279
276
  McpSchema.Tool.make({
@@ -182,14 +182,12 @@ export const protocol = McpProtocol.make({
182
182
  "notifications/roots/list_changed": (_, { client, headers }) =>
183
183
  lifecycle.clientNotification(McpCore.ClientNotification.RootsChanged(), client.id, headers),
184
184
  "resources/list": (_pageRequest) =>
185
- PublicMcpSchema.McpServerClient.use((request) => core.resources.list(McpProtocol.profileFromClient(request)))
185
+ McpProtocol.listForClient(core.resources.list)
186
186
  .pipe(
187
187
  Effect.map((resources) => McpSchema.ListResourcesResult.make({ resources }))
188
188
  ),
189
189
  "resources/templates/list": (_pageRequest) =>
190
- PublicMcpSchema.McpServerClient.use((request) =>
191
- core.resources.listTemplates(McpProtocol.profileFromClient(request))
192
- ).pipe(
190
+ McpProtocol.listForClient(core.resources.listTemplates).pipe(
193
191
  Effect.map((resourceTemplates) => McpSchema.ListResourceTemplatesResult.make({ resourceTemplates }))
194
192
  ),
195
193
  "resources/read": Effect.fnUntraced(function*({ uri }) {
@@ -207,7 +205,7 @@ export const protocol = McpProtocol.make({
207
205
  "resources/unsubscribe": ({ uri }, { client, headers }) =>
208
206
  lifecycle.unsubscribe(uri, client.id, headers).pipe(Effect.as({})),
209
207
  "prompts/list": (_pageRequest) =>
210
- PublicMcpSchema.McpServerClient.use((request) => core.prompts.list(McpProtocol.profileFromClient(request)))
208
+ McpProtocol.listForClient(core.prompts.list)
211
209
  .pipe(
212
210
  Effect.map((prompts) => McpSchema.ListPromptsResult.make({ prompts }))
213
211
  ),
@@ -262,8 +260,7 @@ export const protocol = McpProtocol.make({
262
260
  })
263
261
  }),
264
262
  "tools/list": Effect.fnUntraced(function*() {
265
- const request = yield* PublicMcpSchema.McpServerClient
266
- const tools = yield* core.tools.list(McpProtocol.profileFromClient(request))
263
+ const tools = yield* McpProtocol.listForClient(core.tools.list)
267
264
  return McpSchema.ListToolsResult.make({
268
265
  tools: tools.map((tool) =>
269
266
  McpSchema.Tool.make({
@@ -177,7 +177,7 @@ export const protocol = McpProtocol.make({
177
177
  "notifications/roots/list_changed": (_, { client, headers }) =>
178
178
  lifecycle.clientNotification(McpCore.ClientNotification.RootsChanged(), client.id, headers),
179
179
  "resources/list": () =>
180
- PublicMcpSchema.McpServerClient.use((request) => core.resources.list(McpProtocol.profileFromClient(request)))
180
+ McpProtocol.listForClient(core.resources.list)
181
181
  .pipe(
182
182
  Effect.map((resources) =>
183
183
  McpSchema.ListResourcesResult.make({
@@ -186,9 +186,7 @@ export const protocol = McpProtocol.make({
186
186
  )
187
187
  ),
188
188
  "resources/templates/list": () =>
189
- PublicMcpSchema.McpServerClient.use((request) =>
190
- core.resources.listTemplates(McpProtocol.profileFromClient(request))
191
- ).pipe(
189
+ McpProtocol.listForClient(core.resources.listTemplates).pipe(
192
190
  Effect.map((resourceTemplates) =>
193
191
  McpSchema.ListResourceTemplatesResult.make({
194
192
  resourceTemplates: resourceTemplates.map((resourceTemplate) =>
@@ -226,7 +224,7 @@ export const protocol = McpProtocol.make({
226
224
  "resources/unsubscribe": ({ uri }, { client, headers }) =>
227
225
  lifecycle.unsubscribe(uri, client.id, headers).pipe(Effect.as({})),
228
226
  "prompts/list": () =>
229
- PublicMcpSchema.McpServerClient.use((request) => core.prompts.list(McpProtocol.profileFromClient(request)))
227
+ McpProtocol.listForClient(core.prompts.list)
230
228
  .pipe(
231
229
  Effect.map((prompts) =>
232
230
  McpSchema.ListPromptsResult.make({
@@ -285,8 +283,7 @@ export const protocol = McpProtocol.make({
285
283
  })
286
284
  }),
287
285
  "tools/list": Effect.fnUntraced(function*() {
288
- const request = yield* PublicMcpSchema.McpServerClient
289
- const tools = yield* core.tools.list(McpProtocol.profileFromClient(request))
286
+ const tools = yield* McpProtocol.listForClient(core.tools.list)
290
287
  return McpSchema.ListToolsResult.make({
291
288
  tools: tools.map((tool) =>
292
289
  McpSchema.Tool.make({
@@ -327,6 +327,11 @@ export const makeHandlers = (
327
327
  context.serverInfo.extensions,
328
328
  (value): value is Readonly<Record<string, unknown>> => Predicate.isReadonlyObject(value)
329
329
  )
330
+ // Project only the wire fields; structurally compatible hints can carry extra properties.
331
+ const cacheHint = (family: keyof McpProtocol.CacheHints) => {
332
+ const hint = context.serverInfo.cacheHints?.[family]
333
+ return hint === undefined ? privateStaleCache : { ttlMs: hint.ttlMs, cacheScope: hint.cacheScope }
334
+ }
330
335
  const getDiscovery = Effect.map(context.registrationPresence, (presence) => {
331
336
  const capabilities: Types.Mutable<typeof McpSchema.ServerCapabilities.Type> = { completions: {}, logging: {} }
332
337
  if (extensions !== undefined) capabilities.extensions = extensions
@@ -483,7 +488,7 @@ export const makeHandlers = (
483
488
  ) {
484
489
  const discovery = yield* getDiscovery
485
490
  const result = yield* projectCompleteResult({
486
- ...privateStaleCache,
491
+ ...cacheHint("discover"),
487
492
  supportedVersions: Array.from(discovery.supportedVersions),
488
493
  capabilities: discovery.capabilities,
489
494
  instructions: context.serverInfo.instructions
@@ -494,9 +499,9 @@ export const makeHandlers = (
494
499
  _request: typeof McpSchema.ListResources.payloadSchema.Type
495
500
  ) {
496
501
  const invocation = yield* getInvocation
497
- const resources = yield* core.resources.list(invocation.protocol)
502
+ const resources = yield* core.resources.list(invocation)
498
503
  const result = yield* projectCompleteResult({
499
- ...privateStaleCache,
504
+ ...cacheHint("resources"),
500
505
  resources: resources.map(projectResource)
501
506
  }, context.serverInfo)
502
507
  return yield* decodeListResourcesResult(result)
@@ -505,9 +510,9 @@ export const makeHandlers = (
505
510
  _request: typeof McpSchema.ListResourceTemplates.payloadSchema.Type
506
511
  ) {
507
512
  const invocation = yield* getInvocation
508
- const resourceTemplates = yield* core.resources.listTemplates(invocation.protocol)
513
+ const resourceTemplates = yield* core.resources.listTemplates(invocation)
509
514
  const result = yield* projectCompleteResult({
510
- ...privateStaleCache,
515
+ ...cacheHint("resourceTemplates"),
511
516
  resourceTemplates: resourceTemplates.map(projectResourceTemplate)
512
517
  }, context.serverInfo)
513
518
  return yield* decodeListResourceTemplatesResult(result)
@@ -537,10 +542,10 @@ export const makeHandlers = (
537
542
  )
538
543
  }
539
544
  const invocation = yield* getInvocation
540
- const prompts = yield* core.prompts.list(invocation.protocol)
545
+ const prompts = yield* core.prompts.list(invocation)
541
546
  const projectedPrompts = yield* Effect.forEach(prompts, projectPrompt)
542
547
  const result = yield* projectCompleteResult({
543
- ...privateStaleCache,
548
+ ...cacheHint("prompts"),
544
549
  prompts: projectedPrompts
545
550
  }, context.serverInfo)
546
551
  return yield* decodeListPromptsResult(result)
@@ -593,17 +598,17 @@ export const makeHandlers = (
593
598
  _request: typeof McpSchema.ListTools.payloadSchema.Type
594
599
  ) {
595
600
  const invocation = yield* getInvocation
596
- const tools = yield* core.tools.list(invocation.protocol)
601
+ const tools = yield* core.tools.list(invocation)
597
602
  const projectedTools = yield* Effect.forEach(tools, projectTool)
598
603
  const result = yield* projectCompleteResult({
599
- ...privateStaleCache,
604
+ ...cacheHint("tools"),
600
605
  tools: projectedTools
601
606
  }, context.serverInfo)
602
607
  return yield* decodeListToolsResult(result)
603
608
  }, Effect.mapError(projectError)),
604
609
  "tools/call": Effect.fnUntraced(function*(request: typeof McpSchema.CallTool.payloadSchema.Type) {
605
610
  const invocation = yield* getInputInvocation(request)
606
- const tool = (yield* core.tools.list(invocation.protocol)).find((tool) => tool.name === request.name)
611
+ const tool = core.tools.find(request.name, invocation.protocol)
607
612
  const httpRequest = yield* Effect.serviceOption(HttpServerRequest.HttpServerRequest)
608
613
 
609
614
  if (tool !== undefined && Option.isSome(httpRequest)) {