effect 4.0.0-beta.2 → 4.0.0-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (881) hide show
  1. package/dist/Array.d.ts +127 -299
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +102 -62
  4. package/dist/Array.js.map +1 -1
  5. package/dist/Cache.d.ts +2 -2
  6. package/dist/Cache.d.ts.map +1 -1
  7. package/dist/Cache.js +6 -5
  8. package/dist/Cache.js.map +1 -1
  9. package/dist/Cause.d.ts +1 -1
  10. package/dist/Cause.d.ts.map +1 -1
  11. package/dist/Channel.d.ts +116 -30
  12. package/dist/Channel.d.ts.map +1 -1
  13. package/dist/Channel.js +82 -37
  14. package/dist/Channel.js.map +1 -1
  15. package/dist/Chunk.d.ts +54 -247
  16. package/dist/Chunk.d.ts.map +1 -1
  17. package/dist/Chunk.js +36 -67
  18. package/dist/Chunk.js.map +1 -1
  19. package/dist/Combiner.d.ts +280 -13
  20. package/dist/Combiner.d.ts.map +1 -1
  21. package/dist/Combiner.js +198 -7
  22. package/dist/Combiner.js.map +1 -1
  23. package/dist/Config.d.ts +165 -9
  24. package/dist/Config.d.ts.map +1 -1
  25. package/dist/Config.js +62 -7
  26. package/dist/Config.js.map +1 -1
  27. package/dist/ConfigProvider.d.ts +1 -1
  28. package/dist/Cron.d.ts +1 -1
  29. package/dist/Data.d.ts +534 -365
  30. package/dist/Data.d.ts.map +1 -1
  31. package/dist/Data.js +132 -79
  32. package/dist/Data.js.map +1 -1
  33. package/dist/DateTime.d.ts +23 -161
  34. package/dist/DateTime.d.ts.map +1 -1
  35. package/dist/DateTime.js +6 -51
  36. package/dist/DateTime.js.map +1 -1
  37. package/dist/Duration.d.ts +12 -12
  38. package/dist/Duration.d.ts.map +1 -1
  39. package/dist/Duration.js +12 -12
  40. package/dist/Duration.js.map +1 -1
  41. package/dist/Effect.d.ts +829 -692
  42. package/dist/Effect.d.ts.map +1 -1
  43. package/dist/Effect.js +263 -251
  44. package/dist/Effect.js.map +1 -1
  45. package/dist/Encoding.d.ts +194 -0
  46. package/dist/Encoding.d.ts.map +1 -0
  47. package/dist/Encoding.js +352 -0
  48. package/dist/Encoding.js.map +1 -0
  49. package/dist/Equal.d.ts +276 -109
  50. package/dist/Equal.d.ts.map +1 -1
  51. package/dist/Equal.js +124 -48
  52. package/dist/Equal.js.map +1 -1
  53. package/dist/ErrorReporter.d.ts +376 -0
  54. package/dist/ErrorReporter.d.ts.map +1 -0
  55. package/dist/ErrorReporter.js +246 -0
  56. package/dist/ErrorReporter.js.map +1 -0
  57. package/dist/Fiber.d.ts +2 -2
  58. package/dist/Fiber.d.ts.map +1 -1
  59. package/dist/Fiber.js.map +1 -1
  60. package/dist/FileSystem.d.ts +1 -1
  61. package/dist/FileSystem.d.ts.map +1 -1
  62. package/dist/FileSystem.js +5 -5
  63. package/dist/FileSystem.js.map +1 -1
  64. package/dist/Filter.d.ts +30 -34
  65. package/dist/Filter.d.ts.map +1 -1
  66. package/dist/Filter.js +15 -13
  67. package/dist/Filter.js.map +1 -1
  68. package/dist/Formatter.d.ts +131 -47
  69. package/dist/Formatter.d.ts.map +1 -1
  70. package/dist/Formatter.js +229 -51
  71. package/dist/Formatter.js.map +1 -1
  72. package/dist/Graph.d.ts +1 -1
  73. package/dist/Graph.d.ts.map +1 -1
  74. package/dist/Graph.js +5 -8
  75. package/dist/Graph.js.map +1 -1
  76. package/dist/HashMap.d.ts +15 -14
  77. package/dist/HashMap.d.ts.map +1 -1
  78. package/dist/HashMap.js +4 -4
  79. package/dist/HashMap.js.map +1 -1
  80. package/dist/Iterable.d.ts +40 -39
  81. package/dist/Iterable.d.ts.map +1 -1
  82. package/dist/Iterable.js +94 -22
  83. package/dist/Iterable.js.map +1 -1
  84. package/dist/JsonSchema.d.ts +299 -10
  85. package/dist/JsonSchema.d.ts.map +1 -1
  86. package/dist/JsonSchema.js +323 -4
  87. package/dist/JsonSchema.js.map +1 -1
  88. package/dist/Latch.d.ts +109 -0
  89. package/dist/Latch.d.ts.map +1 -0
  90. package/dist/Latch.js +72 -0
  91. package/dist/Latch.js.map +1 -0
  92. package/dist/Layer.d.ts +9 -9
  93. package/dist/Layer.d.ts.map +1 -1
  94. package/dist/Layer.js.map +1 -1
  95. package/dist/LayerMap.d.ts +4 -4
  96. package/dist/LayerMap.d.ts.map +1 -1
  97. package/dist/LogLevel.d.ts +32 -0
  98. package/dist/LogLevel.d.ts.map +1 -1
  99. package/dist/LogLevel.js +28 -100
  100. package/dist/LogLevel.js.map +1 -1
  101. package/dist/Logger.d.ts +29 -95
  102. package/dist/Logger.d.ts.map +1 -1
  103. package/dist/Logger.js +2 -3
  104. package/dist/Logger.js.map +1 -1
  105. package/dist/ManagedRuntime.d.ts +1 -1
  106. package/dist/ManagedRuntime.js +1 -1
  107. package/dist/Metric.d.ts +2 -2
  108. package/dist/Metric.d.ts.map +1 -1
  109. package/dist/Metric.js +1 -1
  110. package/dist/Metric.js.map +1 -1
  111. package/dist/Optic.d.ts +947 -18
  112. package/dist/Optic.d.ts.map +1 -1
  113. package/dist/Optic.js +454 -5
  114. package/dist/Optic.js.map +1 -1
  115. package/dist/Option.d.ts +22 -15
  116. package/dist/Option.d.ts.map +1 -1
  117. package/dist/Option.js +14 -7
  118. package/dist/Option.js.map +1 -1
  119. package/dist/Pipeable.d.ts +17 -0
  120. package/dist/Pipeable.d.ts.map +1 -1
  121. package/dist/Pipeable.js +19 -1
  122. package/dist/Pipeable.js.map +1 -1
  123. package/dist/PlatformError.d.ts +10 -9
  124. package/dist/PlatformError.d.ts.map +1 -1
  125. package/dist/PlatformError.js +2 -2
  126. package/dist/PlatformError.js.map +1 -1
  127. package/dist/Pool.d.ts +6 -4
  128. package/dist/Pool.d.ts.map +1 -1
  129. package/dist/Pool.js +7 -5
  130. package/dist/Pool.js.map +1 -1
  131. package/dist/PubSub.d.ts +3 -2
  132. package/dist/PubSub.d.ts.map +1 -1
  133. package/dist/PubSub.js +3 -2
  134. package/dist/PubSub.js.map +1 -1
  135. package/dist/Pull.d.ts.map +1 -1
  136. package/dist/Pull.js +1 -1
  137. package/dist/Pull.js.map +1 -1
  138. package/dist/Queue.d.ts.map +1 -1
  139. package/dist/Queue.js +0 -1
  140. package/dist/Queue.js.map +1 -1
  141. package/dist/Random.d.ts +35 -1
  142. package/dist/Random.d.ts.map +1 -1
  143. package/dist/Random.js +46 -12
  144. package/dist/Random.js.map +1 -1
  145. package/dist/RcMap.d.ts +2 -2
  146. package/dist/RcMap.d.ts.map +1 -1
  147. package/dist/RcMap.js +1 -1
  148. package/dist/RcMap.js.map +1 -1
  149. package/dist/RcRef.d.ts +1 -1
  150. package/dist/RcRef.d.ts.map +1 -1
  151. package/dist/Record.d.ts +24 -120
  152. package/dist/Record.d.ts.map +1 -1
  153. package/dist/Record.js +21 -41
  154. package/dist/Record.js.map +1 -1
  155. package/dist/Reducer.d.ts +166 -7
  156. package/dist/Reducer.d.ts.map +1 -1
  157. package/dist/Reducer.js +135 -1
  158. package/dist/Reducer.js.map +1 -1
  159. package/dist/References.d.ts +3 -3
  160. package/dist/References.d.ts.map +1 -1
  161. package/dist/Request.d.ts +1 -1
  162. package/dist/Request.d.ts.map +1 -1
  163. package/dist/Request.js +2 -1
  164. package/dist/Request.js.map +1 -1
  165. package/dist/RequestResolver.d.ts +6 -26
  166. package/dist/RequestResolver.d.ts.map +1 -1
  167. package/dist/RequestResolver.js +0 -20
  168. package/dist/RequestResolver.js.map +1 -1
  169. package/dist/Result.d.ts +12 -0
  170. package/dist/Result.d.ts.map +1 -1
  171. package/dist/Result.js +12 -0
  172. package/dist/Result.js.map +1 -1
  173. package/dist/Schedule.d.ts +47 -20
  174. package/dist/Schedule.d.ts.map +1 -1
  175. package/dist/Schedule.js +94 -34
  176. package/dist/Schedule.js.map +1 -1
  177. package/dist/Schema.d.ts +266 -50
  178. package/dist/Schema.d.ts.map +1 -1
  179. package/dist/Schema.js +426 -74
  180. package/dist/Schema.js.map +1 -1
  181. package/dist/SchemaAST.d.ts.map +1 -1
  182. package/dist/SchemaAST.js +7 -6
  183. package/dist/SchemaAST.js.map +1 -1
  184. package/dist/SchemaGetter.d.ts +2 -2
  185. package/dist/SchemaGetter.d.ts.map +1 -1
  186. package/dist/SchemaGetter.js +12 -14
  187. package/dist/SchemaGetter.js.map +1 -1
  188. package/dist/SchemaParser.d.ts +5 -0
  189. package/dist/SchemaParser.d.ts.map +1 -1
  190. package/dist/SchemaParser.js +10 -0
  191. package/dist/SchemaParser.js.map +1 -1
  192. package/dist/SchemaRepresentation.d.ts +44 -43
  193. package/dist/SchemaRepresentation.d.ts.map +1 -1
  194. package/dist/SchemaRepresentation.js +43 -24
  195. package/dist/SchemaRepresentation.js.map +1 -1
  196. package/dist/SchemaTransformation.d.ts +107 -3
  197. package/dist/SchemaTransformation.d.ts.map +1 -1
  198. package/dist/SchemaTransformation.js +159 -4
  199. package/dist/SchemaTransformation.js.map +1 -1
  200. package/dist/ScopedCache.d.ts +2 -2
  201. package/dist/ScopedCache.d.ts.map +1 -1
  202. package/dist/ScopedCache.js +1 -1
  203. package/dist/ScopedCache.js.map +1 -1
  204. package/dist/Semaphore.d.ts +211 -0
  205. package/dist/Semaphore.d.ts.map +1 -0
  206. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  207. package/dist/Semaphore.js.map +1 -0
  208. package/dist/ServiceMap.d.ts +39 -30
  209. package/dist/ServiceMap.d.ts.map +1 -1
  210. package/dist/ServiceMap.js +3 -3
  211. package/dist/ServiceMap.js.map +1 -1
  212. package/dist/Sink.d.ts +13 -13
  213. package/dist/Sink.d.ts.map +1 -1
  214. package/dist/Sink.js +53 -6
  215. package/dist/Sink.js.map +1 -1
  216. package/dist/Stream.d.ts +235 -423
  217. package/dist/Stream.d.ts.map +1 -1
  218. package/dist/Stream.js +124 -77
  219. package/dist/Stream.js.map +1 -1
  220. package/dist/Struct.d.ts +16 -0
  221. package/dist/Struct.d.ts.map +1 -1
  222. package/dist/Struct.js +22 -0
  223. package/dist/Struct.js.map +1 -1
  224. package/dist/SubscriptionRef.d.ts +2 -1
  225. package/dist/SubscriptionRef.d.ts.map +1 -1
  226. package/dist/SubscriptionRef.js +2 -1
  227. package/dist/SubscriptionRef.js.map +1 -1
  228. package/dist/SynchronizedRef.d.ts +2 -1
  229. package/dist/SynchronizedRef.d.ts.map +1 -1
  230. package/dist/SynchronizedRef.js +2 -1
  231. package/dist/SynchronizedRef.js.map +1 -1
  232. package/dist/Trie.d.ts +18 -17
  233. package/dist/Trie.d.ts.map +1 -1
  234. package/dist/Trie.js +5 -5
  235. package/dist/Trie.js.map +1 -1
  236. package/dist/TxChunk.d.ts +37 -37
  237. package/dist/TxChunk.d.ts.map +1 -1
  238. package/dist/TxChunk.js +3 -3
  239. package/dist/TxChunk.js.map +1 -1
  240. package/dist/TxDeferred.d.ts +328 -0
  241. package/dist/TxDeferred.d.ts.map +1 -0
  242. package/dist/TxDeferred.js +196 -0
  243. package/dist/TxDeferred.js.map +1 -0
  244. package/dist/TxHashMap.d.ts +84 -83
  245. package/dist/TxHashMap.d.ts.map +1 -1
  246. package/dist/TxHashMap.js +24 -24
  247. package/dist/TxHashMap.js.map +1 -1
  248. package/dist/TxHashSet.d.ts +35 -35
  249. package/dist/TxHashSet.d.ts.map +1 -1
  250. package/dist/TxHashSet.js +14 -14
  251. package/dist/TxHashSet.js.map +1 -1
  252. package/dist/TxPriorityQueue.d.ts +609 -0
  253. package/dist/TxPriorityQueue.d.ts.map +1 -0
  254. package/dist/TxPriorityQueue.js +415 -0
  255. package/dist/TxPriorityQueue.js.map +1 -0
  256. package/dist/TxPubSub.d.ts +585 -0
  257. package/dist/TxPubSub.d.ts.map +1 -0
  258. package/dist/TxPubSub.js +521 -0
  259. package/dist/TxPubSub.js.map +1 -0
  260. package/dist/TxQueue.d.ts +32 -32
  261. package/dist/TxQueue.d.ts.map +1 -1
  262. package/dist/TxQueue.js +26 -26
  263. package/dist/TxQueue.js.map +1 -1
  264. package/dist/TxReentrantLock.d.ts +523 -0
  265. package/dist/TxReentrantLock.d.ts.map +1 -0
  266. package/dist/TxReentrantLock.js +504 -0
  267. package/dist/TxReentrantLock.js.map +1 -0
  268. package/dist/TxRef.d.ts +34 -34
  269. package/dist/TxRef.d.ts.map +1 -1
  270. package/dist/TxRef.js +21 -14
  271. package/dist/TxRef.js.map +1 -1
  272. package/dist/TxSemaphore.d.ts +8 -8
  273. package/dist/TxSemaphore.d.ts.map +1 -1
  274. package/dist/TxSemaphore.js +7 -7
  275. package/dist/TxSemaphore.js.map +1 -1
  276. package/dist/TxSubscriptionRef.d.ts +508 -0
  277. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  278. package/dist/TxSubscriptionRef.js +293 -0
  279. package/dist/TxSubscriptionRef.js.map +1 -0
  280. package/dist/Types.d.ts +84 -6
  281. package/dist/Types.d.ts.map +1 -1
  282. package/dist/index.d.ts +591 -20
  283. package/dist/index.d.ts.map +1 -1
  284. package/dist/index.js +591 -20
  285. package/dist/index.js.map +1 -1
  286. package/dist/internal/core.js +11 -3
  287. package/dist/internal/core.js.map +1 -1
  288. package/dist/internal/dateTime.js +3 -11
  289. package/dist/internal/dateTime.js.map +1 -1
  290. package/dist/internal/effect.js +263 -99
  291. package/dist/internal/effect.js.map +1 -1
  292. package/dist/internal/hashMap.js +5 -4
  293. package/dist/internal/hashMap.js.map +1 -1
  294. package/dist/internal/random.d.ts +2 -0
  295. package/dist/internal/random.d.ts.map +1 -0
  296. package/dist/internal/random.js +13 -0
  297. package/dist/internal/random.js.map +1 -0
  298. package/dist/internal/rcRef.js +3 -2
  299. package/dist/internal/rcRef.js.map +1 -1
  300. package/dist/internal/request.js +2 -2
  301. package/dist/internal/request.js.map +1 -1
  302. package/dist/internal/schema/annotations.js +2 -0
  303. package/dist/internal/schema/annotations.js.map +1 -1
  304. package/dist/internal/schema/schema.js +1 -0
  305. package/dist/internal/schema/schema.js.map +1 -1
  306. package/dist/internal/trie.js +5 -4
  307. package/dist/internal/trie.js.map +1 -1
  308. package/dist/testing/TestClock.d.ts +7 -6
  309. package/dist/testing/TestClock.d.ts.map +1 -1
  310. package/dist/testing/TestClock.js +6 -4
  311. package/dist/testing/TestClock.js.map +1 -1
  312. package/dist/testing/TestSchema.d.ts +8 -8
  313. package/dist/testing/TestSchema.d.ts.map +1 -1
  314. package/dist/testing/TestSchema.js.map +1 -1
  315. package/dist/unstable/ai/AiError.d.ts +128 -48
  316. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  317. package/dist/unstable/ai/AiError.js +11 -12
  318. package/dist/unstable/ai/AiError.js.map +1 -1
  319. package/dist/unstable/ai/Chat.d.ts +3 -3
  320. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  321. package/dist/unstable/ai/Chat.js +4 -3
  322. package/dist/unstable/ai/Chat.js.map +1 -1
  323. package/dist/unstable/ai/LanguageModel.d.ts +4 -2
  324. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  325. package/dist/unstable/ai/LanguageModel.js +86 -14
  326. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  327. package/dist/unstable/ai/McpSchema.d.ts +163 -87
  328. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  329. package/dist/unstable/ai/McpSchema.js +49 -12
  330. package/dist/unstable/ai/McpSchema.js.map +1 -1
  331. package/dist/unstable/ai/McpServer.d.ts +1 -1
  332. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  333. package/dist/unstable/ai/McpServer.js +35 -7
  334. package/dist/unstable/ai/McpServer.js.map +1 -1
  335. package/dist/unstable/ai/Model.d.ts +25 -7
  336. package/dist/unstable/ai/Model.d.ts.map +1 -1
  337. package/dist/unstable/ai/Model.js +22 -6
  338. package/dist/unstable/ai/Model.js.map +1 -1
  339. package/dist/unstable/ai/Prompt.d.ts +20 -20
  340. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  341. package/dist/unstable/ai/Response.d.ts +26 -26
  342. package/dist/unstable/ai/Response.d.ts.map +1 -1
  343. package/dist/unstable/ai/Response.js +1 -1
  344. package/dist/unstable/ai/Response.js.map +1 -1
  345. package/dist/unstable/ai/Tool.d.ts +19 -3
  346. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  347. package/dist/unstable/ai/Tool.js +14 -9
  348. package/dist/unstable/ai/Tool.js.map +1 -1
  349. package/dist/unstable/ai/index.d.ts +1 -1
  350. package/dist/unstable/ai/index.js +1 -1
  351. package/dist/unstable/cli/CliError.d.ts +5 -5
  352. package/dist/unstable/cli/CliOutput.js +59 -6
  353. package/dist/unstable/cli/CliOutput.js.map +1 -1
  354. package/dist/unstable/cli/Command.d.ts +276 -19
  355. package/dist/unstable/cli/Command.d.ts.map +1 -1
  356. package/dist/unstable/cli/Command.js +234 -36
  357. package/dist/unstable/cli/Command.js.map +1 -1
  358. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  359. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  360. package/dist/unstable/cli/GlobalFlag.js +118 -0
  361. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  362. package/dist/unstable/cli/HelpDoc.d.ts +70 -2
  363. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  364. package/dist/unstable/cli/index.d.ts +4 -0
  365. package/dist/unstable/cli/index.d.ts.map +1 -1
  366. package/dist/unstable/cli/index.js +4 -0
  367. package/dist/unstable/cli/index.js.map +1 -1
  368. package/dist/unstable/cli/internal/command.d.ts +17 -8
  369. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  370. package/dist/unstable/cli/internal/command.js +32 -23
  371. package/dist/unstable/cli/internal/command.js.map +1 -1
  372. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
  373. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  374. package/dist/unstable/cli/internal/help.d.ts +33 -0
  375. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  376. package/dist/unstable/cli/internal/help.js +107 -0
  377. package/dist/unstable/cli/internal/help.js.map +1 -0
  378. package/dist/unstable/cli/internal/parser.js +29 -36
  379. package/dist/unstable/cli/internal/parser.js.map +1 -1
  380. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  381. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  382. package/dist/unstable/cluster/ClusterCron.js +1 -1
  383. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  384. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  385. package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -3
  386. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  387. package/dist/unstable/cluster/Entity.d.ts +7 -6
  388. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  389. package/dist/unstable/cluster/Entity.js.map +1 -1
  390. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  391. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  392. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  393. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  394. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  395. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  396. package/dist/unstable/cluster/Message.d.ts +10 -10
  397. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  398. package/dist/unstable/cluster/MessageStorage.js +2 -1
  399. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  400. package/dist/unstable/cluster/Reply.d.ts +6 -6
  401. package/dist/unstable/cluster/Runner.d.ts +1 -1
  402. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  403. package/dist/unstable/cluster/Runners.js +4 -3
  404. package/dist/unstable/cluster/Runners.js.map +1 -1
  405. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  406. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  407. package/dist/unstable/cluster/Sharding.js +9 -7
  408. package/dist/unstable/cluster/Sharding.js.map +1 -1
  409. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  410. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  411. package/dist/unstable/cluster/ShardingConfig.js +20 -20
  412. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  413. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  414. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  415. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  416. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  417. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  418. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  419. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  420. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  421. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  422. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  423. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  424. package/dist/unstable/encoding/Sse.d.ts +4 -4
  425. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  426. package/dist/unstable/encoding/Sse.js +1 -1
  427. package/dist/unstable/encoding/Sse.js.map +1 -1
  428. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  429. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  430. package/dist/unstable/eventlog/EventLog.js +2 -1
  431. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  432. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  433. package/dist/unstable/http/Cookies.d.ts +3 -3
  434. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  435. package/dist/unstable/http/Cookies.js +2 -2
  436. package/dist/unstable/http/Cookies.js.map +1 -1
  437. package/dist/unstable/http/Headers.d.ts.map +1 -1
  438. package/dist/unstable/http/Headers.js +27 -10
  439. package/dist/unstable/http/Headers.js.map +1 -1
  440. package/dist/unstable/http/HttpBody.d.ts +17 -2
  441. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  442. package/dist/unstable/http/HttpBody.js +28 -1
  443. package/dist/unstable/http/HttpBody.js.map +1 -1
  444. package/dist/unstable/http/HttpClient.d.ts +37 -13
  445. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  446. package/dist/unstable/http/HttpClient.js +4 -4
  447. package/dist/unstable/http/HttpClient.js.map +1 -1
  448. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  449. package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
  450. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  451. package/dist/unstable/http/HttpClientRequest.js +15 -3
  452. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  453. package/dist/unstable/http/HttpEffect.d.ts +3 -8
  454. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  455. package/dist/unstable/http/HttpEffect.js +42 -56
  456. package/dist/unstable/http/HttpEffect.js.map +1 -1
  457. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  458. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  459. package/dist/unstable/http/HttpMethod.js +3 -3
  460. package/dist/unstable/http/HttpMethod.js.map +1 -1
  461. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  462. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  463. package/dist/unstable/http/HttpMiddleware.js +8 -17
  464. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  465. package/dist/unstable/http/HttpServerError.d.ts +20 -33
  466. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  467. package/dist/unstable/http/HttpServerError.js +37 -44
  468. package/dist/unstable/http/HttpServerError.js.map +1 -1
  469. package/dist/unstable/http/HttpServerRequest.d.ts +1 -1
  470. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  471. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  472. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  473. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  474. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  475. package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
  476. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  477. package/dist/unstable/http/HttpServerResponse.js +3 -1
  478. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  479. package/dist/unstable/http/Multipart.d.ts +3 -3
  480. package/dist/unstable/http/UrlParams.d.ts +14 -6
  481. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  482. package/dist/unstable/http/UrlParams.js +1 -1
  483. package/dist/unstable/http/UrlParams.js.map +1 -1
  484. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  485. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  486. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  487. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  488. package/dist/unstable/httpapi/HttpApi.d.ts +3 -3
  489. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  490. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  491. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  492. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  493. package/dist/unstable/httpapi/HttpApiBuilder.js +23 -12
  494. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  495. package/dist/unstable/httpapi/HttpApiClient.d.ts +7 -2
  496. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  497. package/dist/unstable/httpapi/HttpApiClient.js +3 -3
  498. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  499. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +31 -44
  500. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  501. package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
  502. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  503. package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
  504. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  505. package/dist/unstable/httpapi/HttpApiError.js +29 -9
  506. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  507. package/dist/unstable/httpapi/HttpApiGroup.d.ts +3 -3
  508. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  509. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  510. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +4 -4
  511. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  512. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  513. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  514. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  515. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  516. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  517. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  518. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  519. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  520. package/dist/unstable/httpapi/OpenApi.js +32 -21
  521. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  522. package/dist/unstable/observability/Otlp.d.ts +12 -12
  523. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  524. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  525. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  526. package/dist/unstable/observability/OtlpExporter.js +1 -1
  527. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  528. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  529. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  530. package/dist/unstable/observability/OtlpLogger.js +7 -4
  531. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  532. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  533. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  534. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  535. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  536. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  537. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  538. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  539. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  540. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  541. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  542. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  543. package/dist/unstable/persistence/PersistedCache.js +2 -1
  544. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  545. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  546. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  547. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  548. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  549. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  550. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  551. package/dist/unstable/persistence/Persistence.js +2 -2
  552. package/dist/unstable/persistence/Persistence.js.map +1 -1
  553. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  554. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  555. package/dist/unstable/persistence/RateLimiter.js +1 -1
  556. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  557. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  558. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  559. package/dist/unstable/process/ChildProcess.js +1 -65
  560. package/dist/unstable/process/ChildProcess.js.map +1 -1
  561. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  562. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  563. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  564. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  565. package/dist/unstable/reactivity/Atom.d.ts +10 -10
  566. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  567. package/dist/unstable/reactivity/Atom.js +16 -13
  568. package/dist/unstable/reactivity/Atom.js.map +1 -1
  569. package/dist/unstable/reactivity/AtomHttpApi.d.ts +8 -8
  570. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  571. package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
  572. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  573. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  574. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  575. package/dist/unstable/reactivity/AtomRegistry.js +24 -7
  576. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  577. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  578. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  579. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  580. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  581. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  582. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  583. package/dist/unstable/reactivity/Hydration.js +76 -0
  584. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  585. package/dist/unstable/reactivity/index.d.ts +4 -0
  586. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  587. package/dist/unstable/reactivity/index.js +4 -0
  588. package/dist/unstable/reactivity/index.js.map +1 -1
  589. package/dist/unstable/rpc/Rpc.d.ts +4 -4
  590. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  591. package/dist/unstable/rpc/Rpc.js.map +1 -1
  592. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  593. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  594. package/dist/unstable/rpc/RpcClient.js +6 -13
  595. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  596. package/dist/unstable/rpc/RpcGroup.d.ts +2 -2
  597. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  598. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  599. package/dist/unstable/rpc/RpcMiddleware.d.ts +3 -3
  600. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  601. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  602. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  603. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  604. package/dist/unstable/rpc/RpcSchema.js +14 -0
  605. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  606. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  607. package/dist/unstable/rpc/RpcSerialization.js +34 -9
  608. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  609. package/dist/unstable/rpc/RpcServer.d.ts +0 -7
  610. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  611. package/dist/unstable/rpc/RpcServer.js +15 -15
  612. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  613. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  614. package/dist/unstable/rpc/Utils.js +2 -1
  615. package/dist/unstable/rpc/Utils.js.map +1 -1
  616. package/dist/unstable/schema/Model.d.ts +1 -1
  617. package/dist/unstable/schema/Model.d.ts.map +1 -1
  618. package/dist/unstable/schema/VariantSchema.d.ts +3 -3
  619. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  620. package/dist/unstable/schema/VariantSchema.js +3 -3
  621. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  622. package/dist/unstable/socket/Socket.d.ts +4 -4
  623. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  624. package/dist/unstable/socket/Socket.js +6 -5
  625. package/dist/unstable/socket/Socket.js.map +1 -1
  626. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  627. package/dist/unstable/sql/Migrator.d.ts +1 -1
  628. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  629. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  630. package/dist/unstable/sql/SqlError.d.ts +14 -14
  631. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  632. package/dist/unstable/sql/SqlError.js +9 -3
  633. package/dist/unstable/sql/SqlError.js.map +1 -1
  634. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  635. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  636. package/dist/unstable/sql/SqlModel.js +3 -3
  637. package/dist/unstable/sql/SqlModel.js.map +1 -1
  638. package/dist/unstable/sql/SqlSchema.d.ts +16 -5
  639. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  640. package/dist/unstable/sql/SqlSchema.js +17 -7
  641. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  642. package/dist/unstable/sql/Statement.js +0 -1
  643. package/dist/unstable/sql/Statement.js.map +1 -1
  644. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  645. package/dist/unstable/workers/Worker.js +2 -1
  646. package/dist/unstable/workers/Worker.js.map +1 -1
  647. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  648. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  649. package/dist/unstable/workflow/DurableClock.js +3 -3
  650. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  651. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  652. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  653. package/dist/unstable/workflow/Workflow.d.ts +3 -3
  654. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  655. package/dist/unstable/workflow/Workflow.js +1 -1
  656. package/dist/unstable/workflow/Workflow.js.map +1 -1
  657. package/dist/unstable/workflow/WorkflowEngine.d.ts +12 -1
  658. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  659. package/dist/unstable/workflow/WorkflowEngine.js +137 -1
  660. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  661. package/package.json +2 -2
  662. package/src/Array.ts +190 -342
  663. package/src/Cache.ts +9 -8
  664. package/src/Cause.ts +1 -1
  665. package/src/Channel.ts +554 -138
  666. package/src/Chunk.ts +81 -268
  667. package/src/Combiner.ts +280 -13
  668. package/src/Config.ts +183 -21
  669. package/src/Data.ts +538 -374
  670. package/src/DateTime.ts +24 -164
  671. package/src/Duration.ts +15 -15
  672. package/src/Effect.ts +991 -800
  673. package/src/Encoding.ts +879 -0
  674. package/src/Equal.ts +278 -111
  675. package/src/ErrorReporter.ts +459 -0
  676. package/src/Fiber.ts +9 -2
  677. package/src/FileSystem.ts +7 -8
  678. package/src/Filter.ts +48 -58
  679. package/src/Formatter.ts +253 -51
  680. package/src/Graph.ts +24 -11
  681. package/src/HashMap.ts +15 -14
  682. package/src/Iterable.ts +105 -50
  683. package/src/JsonSchema.ts +383 -10
  684. package/src/Latch.ts +112 -0
  685. package/src/Layer.ts +11 -15
  686. package/src/LayerMap.ts +5 -5
  687. package/src/LogLevel.ts +37 -0
  688. package/src/Logger.ts +33 -100
  689. package/src/ManagedRuntime.ts +1 -1
  690. package/src/Metric.ts +4 -4
  691. package/src/Optic.ts +948 -19
  692. package/src/Option.ts +30 -20
  693. package/src/Pipeable.ts +32 -1
  694. package/src/PlatformError.ts +5 -5
  695. package/src/Pool.ts +13 -11
  696. package/src/PubSub.ts +10 -9
  697. package/src/Pull.ts +1 -1
  698. package/src/Queue.ts +0 -1
  699. package/src/Random.ts +51 -14
  700. package/src/RcMap.ts +5 -5
  701. package/src/RcRef.ts +1 -1
  702. package/src/Record.ts +43 -152
  703. package/src/Reducer.ts +166 -7
  704. package/src/References.ts +4 -4
  705. package/src/Request.ts +3 -2
  706. package/src/RequestResolver.ts +9 -29
  707. package/src/Result.ts +13 -0
  708. package/src/Schedule.ts +318 -160
  709. package/src/Schema.ts +661 -116
  710. package/src/SchemaAST.ts +7 -6
  711. package/src/SchemaGetter.ts +12 -14
  712. package/src/SchemaParser.ts +11 -0
  713. package/src/SchemaRepresentation.ts +43 -24
  714. package/src/SchemaTransformation.ts +189 -4
  715. package/src/ScopedCache.ts +3 -3
  716. package/src/Semaphore.ts +356 -0
  717. package/src/ServiceMap.ts +47 -38
  718. package/src/Sink.ts +78 -26
  719. package/src/Stream.ts +566 -601
  720. package/src/Struct.ts +26 -0
  721. package/src/SubscriptionRef.ts +3 -2
  722. package/src/SynchronizedRef.ts +3 -2
  723. package/src/Trie.ts +18 -17
  724. package/src/TxChunk.ts +72 -53
  725. package/src/TxDeferred.ts +394 -0
  726. package/src/TxHashMap.ts +332 -285
  727. package/src/TxHashSet.ts +111 -116
  728. package/src/TxPriorityQueue.ts +767 -0
  729. package/src/TxPubSub.ts +789 -0
  730. package/src/TxQueue.ts +241 -251
  731. package/src/TxReentrantLock.ts +753 -0
  732. package/src/TxRef.ts +50 -38
  733. package/src/TxSemaphore.ts +29 -32
  734. package/src/TxSubscriptionRef.ts +639 -0
  735. package/src/Types.ts +78 -2
  736. package/src/index.ts +600 -21
  737. package/src/internal/core.ts +12 -5
  738. package/src/internal/dateTime.ts +9 -30
  739. package/src/internal/effect.ts +744 -265
  740. package/src/internal/hashMap.ts +9 -7
  741. package/src/internal/random.ts +20 -0
  742. package/src/internal/rcRef.ts +4 -3
  743. package/src/internal/request.ts +2 -2
  744. package/src/internal/schema/annotations.ts +2 -0
  745. package/src/internal/schema/schema.ts +1 -0
  746. package/src/internal/trie.ts +16 -9
  747. package/src/testing/TestClock.ts +13 -11
  748. package/src/testing/TestSchema.ts +10 -10
  749. package/src/unstable/ai/AiError.ts +97 -44
  750. package/src/unstable/ai/Chat.ts +12 -11
  751. package/src/unstable/ai/LanguageModel.ts +129 -25
  752. package/src/unstable/ai/McpSchema.ts +59 -13
  753. package/src/unstable/ai/McpServer.ts +48 -9
  754. package/src/unstable/ai/Model.ts +40 -9
  755. package/src/unstable/ai/Prompt.ts +37 -37
  756. package/src/unstable/ai/Response.ts +25 -25
  757. package/src/unstable/ai/Tool.ts +19 -13
  758. package/src/unstable/ai/index.ts +1 -1
  759. package/src/unstable/cli/CliOutput.ts +75 -6
  760. package/src/unstable/cli/Command.ts +501 -60
  761. package/src/unstable/cli/GlobalFlag.ts +243 -0
  762. package/src/unstable/cli/HelpDoc.ts +80 -2
  763. package/src/unstable/cli/index.ts +5 -0
  764. package/src/unstable/cli/internal/command.ts +50 -34
  765. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
  766. package/src/unstable/cli/internal/help.ts +146 -0
  767. package/src/unstable/cli/internal/parser.ts +33 -54
  768. package/src/unstable/cluster/ClusterCron.ts +2 -2
  769. package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -4
  770. package/src/unstable/cluster/Entity.ts +11 -10
  771. package/src/unstable/cluster/EntityResource.ts +4 -4
  772. package/src/unstable/cluster/Envelope.ts +1 -1
  773. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  774. package/src/unstable/cluster/MessageStorage.ts +3 -5
  775. package/src/unstable/cluster/Runners.ts +6 -5
  776. package/src/unstable/cluster/Sharding.ts +12 -10
  777. package/src/unstable/cluster/ShardingConfig.ts +30 -31
  778. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  779. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  780. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  781. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  782. package/src/unstable/encoding/Sse.ts +3 -5
  783. package/src/unstable/eventlog/EventLog.ts +2 -1
  784. package/src/unstable/http/Cookies.ts +3 -3
  785. package/src/unstable/http/Headers.ts +28 -13
  786. package/src/unstable/http/HttpBody.ts +42 -1
  787. package/src/unstable/http/HttpClient.ts +58 -23
  788. package/src/unstable/http/HttpClientRequest.ts +38 -13
  789. package/src/unstable/http/HttpEffect.ts +46 -68
  790. package/src/unstable/http/HttpMethod.ts +16 -4
  791. package/src/unstable/http/HttpMiddleware.ts +9 -24
  792. package/src/unstable/http/HttpServerError.ts +42 -45
  793. package/src/unstable/http/HttpServerRequest.ts +1 -1
  794. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  795. package/src/unstable/http/HttpServerResponse.ts +4 -2
  796. package/src/unstable/http/Multipart.ts +2 -2
  797. package/src/unstable/http/UrlParams.ts +20 -5
  798. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  799. package/src/unstable/httpapi/HttpApi.ts +5 -5
  800. package/src/unstable/httpapi/HttpApiBuilder.ts +77 -21
  801. package/src/unstable/httpapi/HttpApiClient.ts +14 -6
  802. package/src/unstable/httpapi/HttpApiEndpoint.ts +67 -83
  803. package/src/unstable/httpapi/HttpApiError.ts +30 -9
  804. package/src/unstable/httpapi/HttpApiGroup.ts +6 -6
  805. package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -4
  806. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  807. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  808. package/src/unstable/httpapi/OpenApi.ts +41 -23
  809. package/src/unstable/observability/Otlp.ts +12 -12
  810. package/src/unstable/observability/OtlpExporter.ts +3 -3
  811. package/src/unstable/observability/OtlpLogger.ts +13 -9
  812. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  813. package/src/unstable/observability/OtlpTracer.ts +4 -4
  814. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  815. package/src/unstable/persistence/Persistable.ts +2 -2
  816. package/src/unstable/persistence/PersistedCache.ts +20 -9
  817. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  818. package/src/unstable/persistence/Persistence.ts +3 -3
  819. package/src/unstable/persistence/RateLimiter.ts +4 -4
  820. package/src/unstable/process/ChildProcess.ts +6 -208
  821. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  822. package/src/unstable/reactivity/Atom.ts +27 -25
  823. package/src/unstable/reactivity/AtomHttpApi.ts +21 -20
  824. package/src/unstable/reactivity/AtomRegistry.ts +31 -7
  825. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  826. package/src/unstable/reactivity/Hydration.ts +112 -0
  827. package/src/unstable/reactivity/index.ts +5 -0
  828. package/src/unstable/rpc/Rpc.ts +6 -6
  829. package/src/unstable/rpc/RpcClient.ts +12 -54
  830. package/src/unstable/rpc/RpcGroup.ts +4 -4
  831. package/src/unstable/rpc/RpcMiddleware.ts +3 -3
  832. package/src/unstable/rpc/RpcSchema.ts +17 -0
  833. package/src/unstable/rpc/RpcSerialization.ts +44 -9
  834. package/src/unstable/rpc/RpcServer.ts +21 -30
  835. package/src/unstable/rpc/Utils.ts +2 -1
  836. package/src/unstable/schema/VariantSchema.ts +6 -6
  837. package/src/unstable/socket/Socket.ts +16 -17
  838. package/src/unstable/sql/SqlClient.ts +1 -1
  839. package/src/unstable/sql/SqlError.ts +11 -9
  840. package/src/unstable/sql/SqlModel.ts +5 -5
  841. package/src/unstable/sql/SqlSchema.ts +41 -25
  842. package/src/unstable/sql/Statement.ts +0 -1
  843. package/src/unstable/workers/Worker.ts +2 -1
  844. package/src/unstable/workflow/DurableClock.ts +8 -8
  845. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  846. package/src/unstable/workflow/Workflow.ts +6 -2
  847. package/src/unstable/workflow/WorkflowEngine.ts +185 -2
  848. package/dist/PartitionedSemaphore.d.ts +0 -52
  849. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  850. package/dist/PartitionedSemaphore.js.map +0 -1
  851. package/dist/encoding/Base64.d.ts +0 -67
  852. package/dist/encoding/Base64.d.ts.map +0 -1
  853. package/dist/encoding/Base64.js +0 -146
  854. package/dist/encoding/Base64.js.map +0 -1
  855. package/dist/encoding/Base64Url.d.ts +0 -60
  856. package/dist/encoding/Base64Url.d.ts.map +0 -1
  857. package/dist/encoding/Base64Url.js +0 -89
  858. package/dist/encoding/Base64Url.js.map +0 -1
  859. package/dist/encoding/EncodingError.d.ts +0 -31
  860. package/dist/encoding/EncodingError.d.ts.map +0 -1
  861. package/dist/encoding/EncodingError.js +0 -22
  862. package/dist/encoding/EncodingError.js.map +0 -1
  863. package/dist/encoding/Hex.d.ts +0 -61
  864. package/dist/encoding/Hex.d.ts.map +0 -1
  865. package/dist/encoding/Hex.js +0 -115
  866. package/dist/encoding/Hex.js.map +0 -1
  867. package/dist/encoding/index.d.ts +0 -26
  868. package/dist/encoding/index.d.ts.map +0 -1
  869. package/dist/encoding/index.js +0 -27
  870. package/dist/encoding/index.js.map +0 -1
  871. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  872. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  873. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  874. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  875. package/src/PartitionedSemaphore.ts +0 -182
  876. package/src/encoding/Base64.ts +0 -366
  877. package/src/encoding/Base64Url.ts +0 -104
  878. package/src/encoding/EncodingError.ts +0 -35
  879. package/src/encoding/Hex.ts +0 -390
  880. package/src/encoding/index.ts +0 -31
  881. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
@@ -53,6 +53,7 @@ import * as Option from "../../Option.ts"
53
53
  import * as Predicate from "../../Predicate.ts"
54
54
  import * as Ref from "../../Ref.ts"
55
55
  import * as Schema from "../../Schema.ts"
56
+ import * as Semaphore from "../../Semaphore.ts"
56
57
  import * as ServiceMap from "../../ServiceMap.ts"
57
58
  import * as Stream from "../../Stream.ts"
58
59
  import type { NoExcessProperties } from "../../Types.ts"
@@ -276,7 +277,7 @@ export interface Service {
276
277
  */
277
278
  readonly generateObject: <
278
279
  ObjectEncoded extends Record<string, any>,
279
- ObjectSchema extends Schema.Codec<any, ObjectEncoded, any, any>,
280
+ ObjectSchema extends Schema.Encoder<ObjectEncoded, unknown>,
280
281
  Options extends NoExcessProperties<LanguageModel.GenerateObjectOptions<any, ObjectSchema>, Options>,
281
282
  Tools extends Record<string, Tool.Any> = {}
282
283
  >(options: Options & LanguageModel.GenerateObjectOptions<Tools, ObjectSchema>) => Effect.Effect<
@@ -325,7 +326,7 @@ const encodeHistoryJson = Schema.encodeUnknownEffect(Schema.fromJsonString(Promp
325
326
  export const empty: Effect.Effect<Service> = Effect.gen(function*() {
326
327
  const history = yield* Ref.make(Prompt.empty)
327
328
  const services = yield* Effect.services<never>()
328
- const semaphore = yield* Effect.makeSemaphore(1)
329
+ const semaphore = yield* Semaphore.make(1)
329
330
 
330
331
  const provideContext = <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
331
332
  Effect.updateServices(effect, (existing) => ServiceMap.merge(services, existing))
@@ -627,7 +628,7 @@ export declare namespace Persistence {
627
628
  * the persistence store, a `ChatNotFoundError` will be returned.
628
629
  */
629
630
  readonly get: (chatId: string, options?: {
630
- readonly timeToLive?: Duration.DurationInput | undefined
631
+ readonly timeToLive?: Duration.Input | undefined
631
632
  }) => Effect.Effect<Persisted, ChatNotFoundError | PersistenceError>
632
633
 
633
634
  /**
@@ -637,7 +638,7 @@ export declare namespace Persistence {
637
638
  * returned.
638
639
  */
639
640
  readonly getOrCreate: (chatId: string, options?: {
640
- readonly timeToLive?: Duration.DurationInput | undefined
641
+ readonly timeToLive?: Duration.Input | undefined
641
642
  }) => Effect.Effect<Persisted, AiError.AiError | PersistenceError>
642
643
  }
643
644
  }
@@ -680,7 +681,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
680
681
  const store = yield* persistence.make(options.storeId)
681
682
 
682
683
  const toPersisted = Effect.fnUntraced(
683
- function*(chatId: string, chat: Service, ttl: Duration.DurationInput | undefined) {
684
+ function*(chatId: string, chat: Service, ttl: Duration.Input | undefined) {
684
685
  const idGenerator = yield* Effect.serviceOption(IdGenerator.IdGenerator).pipe(
685
686
  Effect.map(Option.getOrElse(() => IdGenerator.defaultIdGenerator))
686
687
  )
@@ -712,7 +713,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
712
713
  yield* Ref.set(chat.history, history)
713
714
  // Export the chat history
714
715
  const exported = yield* Effect.orDie(chat.export)
715
- const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.fromDurationInput(ttl) : undefined
716
+ const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.fromInput(ttl) : undefined
716
717
  // Save the chat to the backing store
717
718
  yield* store.set(chatId, exported as object, timeToLive)
718
719
  }
@@ -748,13 +749,13 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
748
749
  )
749
750
 
750
751
  const createChat = Effect.fnUntraced(
751
- function*(chatId: string, ttl: Duration.DurationInput | undefined) {
752
+ function*(chatId: string, ttl: Duration.Input | undefined) {
752
753
  // Create an empty chat
753
754
  const chat = yield* empty
754
755
  // Export the chat history
755
756
  const history = yield* Effect.orDie(chat.export)
756
757
  // Save the history for the newly created chat
757
- const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.fromDurationInput(ttl) : undefined
758
+ const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.fromInput(ttl) : undefined
758
759
  yield* store.set(chatId, history as object, timeToLive)
759
760
  // Convert the chat to a persisted chat
760
761
  return yield* toPersisted(chatId, chat, ttl)
@@ -762,7 +763,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
762
763
  )
763
764
 
764
765
  const getChat = Effect.fnUntraced(
765
- function*(chatId: string, ttl: Duration.DurationInput | undefined) {
766
+ function*(chatId: string, ttl: Duration.Input | undefined) {
766
767
  // Create an empty chat
767
768
  const chat = yield* empty
768
769
  // Attempt to retrieve the previous history from the store
@@ -783,7 +784,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
783
784
 
784
785
  const get = Effect.fnUntraced(
785
786
  function*(chatId: string, options?: {
786
- readonly timeToLive?: Duration.DurationInput | undefined
787
+ readonly timeToLive?: Duration.Input | undefined
787
788
  }) {
788
789
  return yield* getChat(chatId, options?.timeToLive)
789
790
  },
@@ -795,7 +796,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
795
796
 
796
797
  const getOrCreate = Effect.fnUntraced(
797
798
  function*(chatId: string, options?: {
798
- readonly timeToLive?: Duration.DurationInput | undefined
799
+ readonly timeToLive?: Duration.Input | undefined
799
800
  }) {
800
801
  return yield* getChat(chatId, options?.timeToLive).pipe(
801
802
  Effect.catchTag("ChatNotFoundError", () => createChat(chatId, options?.timeToLive))
@@ -135,7 +135,7 @@ export interface Service {
135
135
  */
136
136
  readonly generateObject: <
137
137
  ObjectEncoded extends Record<string, any>,
138
- StructuredOutputSchema extends Schema.Codec<any, ObjectEncoded, any, any>,
138
+ StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
139
139
  Options extends NoExcessProperties<
140
140
  GenerateObjectOptions<any, StructuredOutputSchema>,
141
141
  Options
@@ -527,13 +527,16 @@ export type ExtractError<Options> = Options extends {
527
527
  * @category utility types
528
528
  */
529
529
  export type ExtractServices<Options> = Options extends {
530
- readonly toolkit: Toolkit.WithHandler<infer _Tools>
531
- }
530
+ readonly disableToolCallResolution: true
531
+ } ? never
532
+ : Options extends {
533
+ readonly toolkit: Toolkit.WithHandler<infer _Tools>
534
+ }
532
535
  // Required for tool call execution
533
- ?
534
- | Tool.ResultEncodingServices<_Tools[keyof _Tools]>
535
- // Required for decoding large language model responses
536
- | Tool.ResultDecodingServices<_Tools[keyof _Tools]>
536
+ ?
537
+ | Tool.ResultEncodingServices<_Tools[keyof _Tools]>
538
+ // Required for decoding large language model responses
539
+ | Tool.ResultDecodingServices<_Tools[keyof _Tools]>
537
540
  : Options extends {
538
541
  readonly toolkit: Effect.Yieldable<
539
542
  Toolkit.Toolkit<infer _Tools>,
@@ -728,7 +731,7 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
728
731
 
729
732
  const generateObject = <
730
733
  ObjectEncoded extends Record<string, any>,
731
- StructuredOutputSchema extends Schema.Codec<any, ObjectEncoded, any, any>,
734
+ StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
732
735
  Options extends NoExcessProperties<
733
736
  GenerateObjectOptions<any, StructuredOutputSchema>,
734
737
  Options
@@ -949,9 +952,8 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
949
952
  return content as Array<Response.Part<Tools>>
950
953
  }
951
954
 
952
- // Pre-resolve tool approvals before calling the LLM
955
+ // Pre-resolve pending tool approvals before calling the LLM
953
956
  if (hasPendingApprovals) {
954
- // Validate all approved tools exist in the toolkit
955
957
  for (const approval of approved) {
956
958
  if (approval.toolCall && !toolkit.tools[approval.toolCall.name]) {
957
959
  return yield* AiError.make({
@@ -965,7 +967,6 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
965
967
  }
966
968
  }
967
969
 
968
- // Execute approved tools and create denial results
969
970
  const approvedResults = yield* executeApprovedToolCalls(
970
971
  approved,
971
972
  toolkit,
@@ -974,18 +975,29 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
974
975
  const deniedResults = createDenialResults(denied)
975
976
  const preResolvedResults = [...approvedResults, ...deniedResults]
976
977
 
977
- // Add pre-resolved results to the prompt
978
978
  if (preResolvedResults.length > 0) {
979
- const toolMessage = Prompt.makeMessage("tool", {
980
- content: preResolvedResults
981
- })
982
979
  providerOptions.prompt = Prompt.fromMessages([
983
980
  ...providerOptions.prompt.content,
984
- toolMessage
981
+ Prompt.makeMessage("tool", { content: preResolvedResults })
985
982
  ])
986
983
  }
987
984
  }
988
985
 
986
+ // Strip all resolved approval artifacts (both current and from previous
987
+ // rounds) in a single pass before sending to the provider.
988
+ {
989
+ const { approved: allResolved, denied: allDenied } = collectToolApprovals(
990
+ providerOptions.prompt.content
991
+ )
992
+ if (allResolved.length > 0 || allDenied.length > 0) {
993
+ providerOptions.prompt = stripResolvedApprovals(
994
+ providerOptions.prompt,
995
+ allResolved,
996
+ allDenied
997
+ )
998
+ }
999
+ }
1000
+
989
1001
  const tools = typeof toolChoice === "object" && "oneOf" in toolChoice
990
1002
  ? Object.values(toolkit.tools).filter((tool) => toolChoice.oneOf.includes(tool.name))
991
1003
  : Object.values(toolkit.tools)
@@ -1130,9 +1142,10 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1130
1142
  >
1131
1143
  }
1132
1144
 
1133
- // Pre-resolve tool approvals before calling the LLM
1145
+ // Pre-resolve pending tool approvals before calling the LLM
1146
+ let preResolvedStreamParts: Array<Response.StreamPart<Tools>> = []
1147
+
1134
1148
  if (hasPendingApprovals) {
1135
- // Validate all approved tools exist in the toolkit
1136
1149
  for (const approval of pendingApproved) {
1137
1150
  if (approval.toolCall && !toolkit.tools[approval.toolCall.name]) {
1138
1151
  return yield* AiError.make({
@@ -1146,7 +1159,6 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1146
1159
  }
1147
1160
  }
1148
1161
 
1149
- // Execute approved tools and create denial results
1150
1162
  const approvedResults = yield* executeApprovedToolCalls(
1151
1163
  pendingApproved,
1152
1164
  toolkit,
@@ -1155,16 +1167,44 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1155
1167
  const deniedResults = createDenialResults(pendingDenied)
1156
1168
  const preResolvedResults = [...approvedResults, ...deniedResults]
1157
1169
 
1158
- // Add pre-resolved results to the prompt
1159
1170
  if (preResolvedResults.length > 0) {
1160
- const toolMessage = Prompt.makeMessage("tool", {
1161
- content: preResolvedResults
1162
- })
1163
1171
  providerOptions.prompt = Prompt.fromMessages([
1164
1172
  ...providerOptions.prompt.content,
1165
- toolMessage
1173
+ Prompt.makeMessage("tool", { content: preResolvedResults })
1166
1174
  ])
1167
1175
  }
1176
+
1177
+ // Emit pre-resolved tool-results as stream parts so Chat.streamText
1178
+ // persists them to history. This lets collectToolApprovals find them
1179
+ // on subsequent rounds and skip the now-resolved approvals.
1180
+ // Note: r.result is already encoded (from executeApprovedToolCalls /
1181
+ // createDenialResults), so it goes into both result and encodedResult.
1182
+ for (const r of preResolvedResults) {
1183
+ preResolvedStreamParts.push(
1184
+ Response.makePart("tool-result", {
1185
+ id: r.id,
1186
+ name: r.name,
1187
+ providerExecuted: false,
1188
+ preliminary: false,
1189
+ result: r.result,
1190
+ encodedResult: r.result,
1191
+ isFailure: r.isFailure
1192
+ }) as Response.StreamPart<Tools>
1193
+ )
1194
+ }
1195
+ }
1196
+
1197
+ // Strip all resolved approval artifacts (both current and from previous
1198
+ // rounds) in a single pass before sending to the provider.
1199
+ const { approved: allResolved, denied: allDenied } = collectToolApprovals(
1200
+ providerOptions.prompt.content
1201
+ )
1202
+ if (allResolved.length > 0 || allDenied.length > 0) {
1203
+ providerOptions.prompt = stripResolvedApprovals(
1204
+ providerOptions.prompt,
1205
+ allResolved,
1206
+ allDenied
1207
+ )
1168
1208
  }
1169
1209
 
1170
1210
  const tools = typeof toolChoice === "object" && "oneOf" in toolChoice
@@ -1201,6 +1241,13 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1201
1241
  | Schema.SchemaError
1202
1242
  >()
1203
1243
 
1244
+ // Emit pre-resolved tool results so Chat.streamText persists them to
1245
+ // history. This ensures collectToolApprovals({ excludeResolved }) can
1246
+ // find the corresponding tool-results on future rounds.
1247
+ if (preResolvedStreamParts.length > 0) {
1248
+ yield* Queue.offerAll(queue, preResolvedStreamParts)
1249
+ }
1250
+
1204
1251
  // FiberSet to track concurrent tool call handlers
1205
1252
  const toolCallFibers = yield* FiberSet.make<void, AiError.AiError>()
1206
1253
 
@@ -1359,7 +1406,7 @@ export const generateText = <
1359
1406
  */
1360
1407
  export const generateObject = <
1361
1408
  ObjectEncoded extends Record<string, any>,
1362
- StructuredOutputSchema extends Schema.Codec<any, ObjectEncoded, any, any>,
1409
+ StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
1363
1410
  Options extends NoExcessProperties<
1364
1411
  GenerateObjectOptions<any, StructuredOutputSchema>,
1365
1412
  Options
@@ -1506,6 +1553,63 @@ const collectToolApprovals = (
1506
1553
  return { approved, denied }
1507
1554
  }
1508
1555
 
1556
+ /**
1557
+ * Strip resolved approval artifacts from the prompt before sending to the
1558
+ * provider. After pre-resolving approvals (executing approved tools and
1559
+ * creating denial results), the original `tool-approval-request` parts in
1560
+ * assistant messages and `tool-approval-response` parts in tool messages are
1561
+ * no longer needed. Leaving them in causes provider-specific errors (e.g.
1562
+ * OpenAI rejects `mcp_approval_response` items that reference approval
1563
+ * requests it never issued).
1564
+ */
1565
+ const stripResolvedApprovals = (
1566
+ prompt: Prompt.Prompt,
1567
+ approved: ReadonlyArray<ApprovalResult>,
1568
+ denied: ReadonlyArray<ApprovalResult>
1569
+ ): Prompt.Prompt => {
1570
+ const resolvedApprovalIds = new Set<string>()
1571
+ for (const a of approved) resolvedApprovalIds.add(a.approvalId)
1572
+ for (const d of denied) resolvedApprovalIds.add(d.approvalId)
1573
+
1574
+ const cleanedMessages: Array<Prompt.Message> = []
1575
+
1576
+ for (const message of prompt.content) {
1577
+ if (message.role === "assistant") {
1578
+ const filteredContent = message.content.filter(
1579
+ (part) =>
1580
+ part.type !== "tool-approval-request" ||
1581
+ !resolvedApprovalIds.has(part.approvalId)
1582
+ )
1583
+ if (filteredContent.length > 0) {
1584
+ cleanedMessages.push(
1585
+ Prompt.makeMessage("assistant", {
1586
+ content: filteredContent,
1587
+ options: message.options
1588
+ })
1589
+ )
1590
+ }
1591
+ } else if (message.role === "tool") {
1592
+ const filteredContent = message.content.filter(
1593
+ (part) =>
1594
+ part.type !== "tool-approval-response" ||
1595
+ !resolvedApprovalIds.has(part.approvalId)
1596
+ )
1597
+ if (filteredContent.length > 0) {
1598
+ cleanedMessages.push(
1599
+ Prompt.makeMessage("tool", {
1600
+ content: filteredContent,
1601
+ options: message.options
1602
+ })
1603
+ )
1604
+ }
1605
+ } else {
1606
+ cleanedMessages.push(message)
1607
+ }
1608
+ }
1609
+
1610
+ return Prompt.fromMessages(cleanedMessages)
1611
+ }
1612
+
1509
1613
  const isApprovalNeeded = Effect.fnUntraced(function*<T extends Tool.Any>(
1510
1614
  tool: T,
1511
1615
  toolCall: Response.ToolCallPartEncoded,
@@ -120,7 +120,7 @@ export class ResultMeta extends Schema.Opaque<ResultMeta>()(Schema.Struct({
120
120
  * This result property is reserved by the protocol to allow clients and
121
121
  * servers to attach additional metadata to their responses.
122
122
  */
123
- _meta: optional(Schema.Record(Schema.String, Schema.Any))
123
+ _meta: optional(Schema.Record(Schema.String, Schema.Json))
124
124
  })) {}
125
125
 
126
126
  /**
@@ -132,7 +132,7 @@ export class NotificationMeta extends Schema.Opaque<NotificationMeta>()(Schema.S
132
132
  * This parameter name is reserved by MCP to allow clients and servers to
133
133
  * attach additional metadata to their notifications.
134
134
  */
135
- _meta: optional(Schema.Record(Schema.String, Schema.Any))
135
+ _meta: optional(Schema.Record(Schema.String, Schema.Json))
136
136
  })) {}
137
137
 
138
138
  /**
@@ -240,6 +240,11 @@ export class ClientCapabilities extends Schema.Class<ClientCapabilities>(
240
240
  * Experimental, non-standard capabilities that the client supports.
241
241
  */
242
242
  experimental: optional(Schema.Record(Schema.String, Schema.Struct({}))),
243
+ /**
244
+ * Optional extensions capabilities advertised by the client.
245
+ * Keys are extension identifiers following <vendor-prefix>/<extension-name> (e.g. "io.modelcontextprotocol/ui").
246
+ */
247
+ extensions: optional(Schema.Record(Schema.TemplateLiteral([Schema.String, "/", Schema.String]), Schema.Json)),
243
248
  /**
244
249
  * Present if the client supports listing roots.
245
250
  */
@@ -272,6 +277,11 @@ export class ServerCapabilities extends Schema.Opaque<ServerCapabilities>()(Sche
272
277
  * Experimental, non-standard capabilities that the server supports.
273
278
  */
274
279
  experimental: optional(Schema.Record(Schema.String, Schema.Struct({}))),
280
+ /**
281
+ * Optional extensions capabilities advertised by the server.
282
+ * Keys are extension identifiers following <vendor-prefix>/<extension-name> (e.g. "io.modelcontextprotocol/ui").
283
+ */
284
+ extensions: optional(Schema.Record(Schema.TemplateLiteral([Schema.String, "/", Schema.String]), Schema.Json)),
275
285
  /**
276
286
  * Present if the server supports sending log messages to the client.
277
287
  */
@@ -321,8 +331,8 @@ export class ServerCapabilities extends Schema.Opaque<ServerCapabilities>()(Sche
321
331
  * @since 4.0.0
322
332
  * @category errors
323
333
  */
324
- export class McpError extends Schema.Class<McpError>(
325
- "@effect/ai/McpSchema/McpError"
334
+ export class McpErrorBase extends Schema.Class<McpErrorBase>(
335
+ "@effect/ai/McpSchema/McpErrorBase"
326
336
  )({
327
337
  /**
328
338
  * The error type that occurred.
@@ -371,7 +381,7 @@ export const PARSE_ERROR_CODE = -32700 as const
371
381
  * @category errors
372
382
  */
373
383
  export class ParseError extends Schema.ErrorClass<ParseError>("effect/ai/McpSchema/ParseError")({
374
- ...McpError.fields,
384
+ ...McpErrorBase.fields,
375
385
  _tag: Schema.tag("ParseError"),
376
386
  code: Schema.tag(PARSE_ERROR_CODE)
377
387
  }) {}
@@ -381,7 +391,7 @@ export class ParseError extends Schema.ErrorClass<ParseError>("effect/ai/McpSche
381
391
  * @category errors
382
392
  */
383
393
  export class InvalidRequest extends Schema.ErrorClass<InvalidRequest>("effect/ai/McpSchema/InvalidRequest")({
384
- ...McpError.fields,
394
+ ...McpErrorBase.fields,
385
395
  _tag: Schema.tag("InvalidRequest"),
386
396
  code: Schema.tag(INVALID_REQUEST_ERROR_CODE)
387
397
  }) {}
@@ -391,7 +401,7 @@ export class InvalidRequest extends Schema.ErrorClass<InvalidRequest>("effect/ai
391
401
  * @category errors
392
402
  */
393
403
  export class MethodNotFound extends Schema.ErrorClass<MethodNotFound>("effect/ai/McpSchema/MethodNotFound")({
394
- ...McpError.fields,
404
+ ...McpErrorBase.fields,
395
405
  _tag: Schema.tag("MethodNotFound"),
396
406
  code: Schema.tag(METHOD_NOT_FOUND_ERROR_CODE)
397
407
  }) {}
@@ -401,7 +411,7 @@ export class MethodNotFound extends Schema.ErrorClass<MethodNotFound>("effect/ai
401
411
  * @category errors
402
412
  */
403
413
  export class InvalidParams extends Schema.ErrorClass<InvalidParams>("effect/ai/McpSchema/InvalidParams")({
404
- ...McpError.fields,
414
+ ...McpErrorBase.fields,
405
415
  _tag: Schema.tag("InvalidParams"),
406
416
  code: Schema.tag(INVALID_PARAMS_ERROR_CODE)
407
417
  }) {}
@@ -411,13 +421,26 @@ export class InvalidParams extends Schema.ErrorClass<InvalidParams>("effect/ai/M
411
421
  * @category errors
412
422
  */
413
423
  export class InternalError extends Schema.ErrorClass<InternalError>("effect/ai/McpSchema/InternalError")({
414
- ...McpError.fields,
424
+ ...McpErrorBase.fields,
415
425
  _tag: Schema.tag("InternalError"),
416
426
  code: Schema.tag(INTERNAL_ERROR_CODE)
417
427
  }) {
418
428
  static readonly notImplemented = new InternalError({ message: "Not implemented" })
419
429
  }
420
430
 
431
+ /**
432
+ * @since 4.0.0
433
+ * @category errors
434
+ */
435
+ export const McpError = Schema.Union([
436
+ ParseError,
437
+ InvalidRequest,
438
+ MethodNotFound,
439
+ InvalidParams,
440
+ InternalError,
441
+ McpErrorBase
442
+ ])
443
+
421
444
  // =============================================================================
422
445
  // Ping
423
446
  // =============================================================================
@@ -615,7 +638,14 @@ export class Resource extends Schema.Class<Resource>(
615
638
  * This can be used by Hosts to display file sizes and estimate context
616
639
  * window usage.
617
640
  */
618
- size: optional(Schema.Number)
641
+ size: optional(Schema.Number),
642
+ /**
643
+ * Optional additional metadata for the client.
644
+ *
645
+ * This parameter name is reserved by MCP to allow clients and servers to
646
+ * attach additional metadata to resources.
647
+ */
648
+ _meta: optional(Schema.Record(Schema.String, Schema.Json))
619
649
  }) {}
620
650
 
621
651
  /**
@@ -656,7 +686,12 @@ export class ResourceTemplate extends Schema.Class<ResourceTemplate>(
656
686
  /**
657
687
  * Optional annotations for the client.
658
688
  */
659
- annotations: optional(Annotations)
689
+ annotations: optional(Annotations),
690
+
691
+ /**
692
+ * Optional additional metadata for the client.
693
+ */
694
+ _meta: optional(Schema.Record(Schema.String, Schema.Json))
660
695
  }) {}
661
696
 
662
697
  /**
@@ -673,7 +708,11 @@ export class ResourceContents extends Schema.Opaque<ResourceContents>()(Schema.S
673
708
  /**
674
709
  * The MIME type of this resource, if known.
675
710
  */
676
- mimeType: optional(Schema.String)
711
+ mimeType: optional(Schema.String),
712
+ /**
713
+ * Optional additional metadata for the client.
714
+ */
715
+ _meta: optional(Schema.Record(Schema.String, Schema.Json))
677
716
  })) {}
678
717
 
679
718
  /**
@@ -1183,7 +1222,14 @@ export class Tool extends Schema.Class<Tool>(
1183
1222
  /**
1184
1223
  * Optional additional tool information.
1185
1224
  */
1186
- annotations: optional(ToolAnnotations)
1225
+ annotations: optional(ToolAnnotations),
1226
+ /**
1227
+ * Optional additional metadata for the client.
1228
+ *
1229
+ * This parameter name is reserved by MCP to allow clients and servers to
1230
+ * attach additional metadata to resources.
1231
+ */
1232
+ _meta: optional(Schema.Record(Schema.String, Schema.Json))
1187
1233
  }) {}
1188
1234
 
1189
1235
  /**
@@ -9,6 +9,7 @@ import * as Layer from "../../Layer.ts"
9
9
  import * as Option from "../../Option.ts"
10
10
  import * as Queue from "../../Queue.ts"
11
11
  import * as RcMap from "../../RcMap.ts"
12
+ import { CurrentLogLevel } from "../../References.ts"
12
13
  import * as Schema from "../../Schema.ts"
13
14
  import * as AST from "../../SchemaAST.ts"
14
15
  import * as ServiceMap from "../../ServiceMap.ts"
@@ -548,6 +549,7 @@ export const registerToolkit: <Tools extends Record<string, Tool.Any>>(
548
549
  >)
549
550
  const services = yield* Effect.services<never>()
550
551
  for (const tool of Object.values(built.tools)) {
552
+ const toolMeta = ServiceMap.getOrUndefined(tool.annotations, Tool.Meta)
551
553
  const mcpTool = new McpTool({
552
554
  name: tool.name,
553
555
  description: Tool.getDescription(tool),
@@ -561,7 +563,8 @@ export const registerToolkit: <Tools extends Record<string, Tool.Any>>(
561
563
  destructiveHint: ServiceMap.get(tool.annotations, Tool.Destructive),
562
564
  idempotentHint: ServiceMap.get(tool.annotations, Tool.Idempotent),
563
565
  openWorldHint: ServiceMap.get(tool.annotations, Tool.OpenWorld)
564
- }
566
+ },
567
+ _meta: toolMeta
565
568
  })
566
569
  yield* registry.addTool({
567
570
  tool: mcpTool,
@@ -992,14 +995,14 @@ export const prompt = <
992
995
  * @since 4.0.0
993
996
  * @category elicitation
994
997
  */
995
- export const elicit: <S extends Schema.Codec<any, Record<string, unknown>, any, any>>(options: {
998
+ export const elicit: <S extends Schema.Encoder<Record<string, unknown>, unknown>>(options: {
996
999
  readonly message: string
997
1000
  readonly schema: S
998
1001
  }) => Effect.Effect<
999
1002
  S["Type"],
1000
1003
  ElicitationDeclined,
1001
1004
  McpServerClient | S["DecodingServices"]
1002
- > = Effect.fnUntraced(function*<S extends Schema.Codec<any, Record<string, unknown>, any, any>>(options: {
1005
+ > = Effect.fnUntraced(function*<S extends Schema.Encoder<Record<string, unknown>, unknown>>(options: {
1003
1006
  readonly message: string
1004
1007
  readonly schema: S
1005
1008
  }) {
@@ -1054,7 +1057,8 @@ const compileUriTemplate = (segments: TemplateStringsArray, ...schemas: Readonly
1054
1057
  const key = String(i)
1055
1058
  arr.push(toCodecStringTree)
1056
1059
  routerPath += `:${key}${segment.replace(":", "::")}`
1057
- const paramName = isParam(toCodecStringTree) ? toCodecStringTree.name : `param${key}`
1060
+ const schema = schemas[i]
1061
+ const paramName = isParam(schema) ? (schema as Param<string, Schema.Top>).name : `param${key}`
1058
1062
  params[paramName] = toCodecStringTree
1059
1063
  uriPath += `{${paramName}}${segment}`
1060
1064
  }
@@ -1075,6 +1079,7 @@ const layerHandlers = (serverInfo: {
1075
1079
  ClientRpcs.toLayer(
1076
1080
  Effect.gen(function*() {
1077
1081
  const server = yield* McpServer
1082
+ let currentLogLevel = yield* CurrentLogLevel
1078
1083
 
1079
1084
  return ClientRpcs.of({
1080
1085
  // Requests
@@ -1105,17 +1110,51 @@ const layerHandlers = (serverInfo: {
1105
1110
  : LATEST_PROTOCOL_VERSION
1106
1111
  })
1107
1112
  },
1108
- "completion/complete": server.completion,
1109
- "logging/setLevel": () => InternalError.notImplemented.asEffect(),
1110
- "prompts/get": server.getPromptResult,
1113
+ "completion/complete": (r) =>
1114
+ server.completion(r).pipe(
1115
+ Effect.provideService(CurrentLogLevel, currentLogLevel)
1116
+ ),
1117
+ "logging/setLevel": ({ level }) =>
1118
+ Effect.sync(() => {
1119
+ switch (level) {
1120
+ case "notice":
1121
+ case "info":
1122
+ currentLogLevel = "Info"
1123
+ break
1124
+ case "error":
1125
+ currentLogLevel = "Error"
1126
+ break
1127
+ case "debug":
1128
+ currentLogLevel = "Debug"
1129
+ break
1130
+ case "warning":
1131
+ currentLogLevel = "Warn"
1132
+ break
1133
+ case "critical":
1134
+ case "alert":
1135
+ case "emergency":
1136
+ currentLogLevel = "Fatal"
1137
+ break
1138
+ }
1139
+ }),
1140
+ "prompts/get": (r) =>
1141
+ server.getPromptResult(r).pipe(
1142
+ Effect.provideService(CurrentLogLevel, currentLogLevel)
1143
+ ),
1111
1144
  "prompts/list": () => Effect.sync(() => new ListPromptsResult({ prompts: server.prompts })),
1112
1145
  "resources/list": () => Effect.sync(() => new ListResourcesResult({ resources: server.resources })),
1113
- "resources/read": ({ uri }) => server.findResource(uri),
1146
+ "resources/read": ({ uri }) =>
1147
+ server.findResource(uri).pipe(
1148
+ Effect.provideService(CurrentLogLevel, currentLogLevel)
1149
+ ),
1114
1150
  "resources/subscribe": () => InternalError.notImplemented.asEffect(),
1115
1151
  "resources/unsubscribe": () => InternalError.notImplemented.asEffect(),
1116
1152
  "resources/templates/list": () =>
1117
1153
  Effect.sync(() => new ListResourceTemplatesResult({ resourceTemplates: server.resourceTemplates })),
1118
- "tools/call": server.callTool,
1154
+ "tools/call": (r) =>
1155
+ server.callTool(r).pipe(
1156
+ Effect.provideService(CurrentLogLevel, currentLogLevel)
1157
+ ),
1119
1158
  "tools/list": () => Effect.sync(() => new ListToolsResult({ tools: server.tools })),
1120
1159
 
1121
1160
  // Notifications