effect 4.0.0-beta.4 → 4.0.0-beta.40

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 (1222) hide show
  1. package/dist/Array.d.ts +213 -385
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +149 -102
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +46 -45
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +35 -38
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +39 -32
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +32 -29
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Brand.d.ts +1 -1
  14. package/dist/Brand.d.ts.map +1 -1
  15. package/dist/Brand.js +1 -1
  16. package/dist/Brand.js.map +1 -1
  17. package/dist/Cache.d.ts +2 -2
  18. package/dist/Cache.d.ts.map +1 -1
  19. package/dist/Cache.js +6 -5
  20. package/dist/Cache.js.map +1 -1
  21. package/dist/Cause.d.ts +33 -2
  22. package/dist/Cause.d.ts.map +1 -1
  23. package/dist/Cause.js +19 -0
  24. package/dist/Cause.js.map +1 -1
  25. package/dist/Channel.d.ts +130 -35
  26. package/dist/Channel.d.ts.map +1 -1
  27. package/dist/Channel.js +96 -45
  28. package/dist/Channel.js.map +1 -1
  29. package/dist/Chunk.d.ts +112 -304
  30. package/dist/Chunk.d.ts.map +1 -1
  31. package/dist/Chunk.js +56 -88
  32. package/dist/Chunk.js.map +1 -1
  33. package/dist/Combiner.d.ts +280 -13
  34. package/dist/Combiner.d.ts.map +1 -1
  35. package/dist/Combiner.js +198 -7
  36. package/dist/Combiner.js.map +1 -1
  37. package/dist/Config.d.ts +169 -9
  38. package/dist/Config.d.ts.map +1 -1
  39. package/dist/Config.js +69 -11
  40. package/dist/Config.js.map +1 -1
  41. package/dist/ConfigProvider.d.ts +1 -1
  42. package/dist/Cron.d.ts +11 -7
  43. package/dist/Cron.d.ts.map +1 -1
  44. package/dist/Cron.js +120 -63
  45. package/dist/Cron.js.map +1 -1
  46. package/dist/Data.d.ts +535 -366
  47. package/dist/Data.d.ts.map +1 -1
  48. package/dist/Data.js +132 -79
  49. package/dist/Data.js.map +1 -1
  50. package/dist/DateTime.d.ts +72 -253
  51. package/dist/DateTime.d.ts.map +1 -1
  52. package/dist/DateTime.js +15 -60
  53. package/dist/DateTime.js.map +1 -1
  54. package/dist/Deferred.d.ts +7 -5
  55. package/dist/Deferred.d.ts.map +1 -1
  56. package/dist/Deferred.js +7 -5
  57. package/dist/Deferred.js.map +1 -1
  58. package/dist/Duration.d.ts +62 -32
  59. package/dist/Duration.d.ts.map +1 -1
  60. package/dist/Duration.js +108 -78
  61. package/dist/Duration.js.map +1 -1
  62. package/dist/Effect.d.ts +1224 -951
  63. package/dist/Effect.d.ts.map +1 -1
  64. package/dist/Effect.js +398 -338
  65. package/dist/Effect.js.map +1 -1
  66. package/dist/Encoding.d.ts +194 -0
  67. package/dist/Encoding.d.ts.map +1 -0
  68. package/dist/Encoding.js +352 -0
  69. package/dist/Encoding.js.map +1 -0
  70. package/dist/Equal.d.ts +276 -109
  71. package/dist/Equal.d.ts.map +1 -1
  72. package/dist/Equal.js +124 -48
  73. package/dist/Equal.js.map +1 -1
  74. package/dist/Equivalence.d.ts +60 -3
  75. package/dist/Equivalence.d.ts.map +1 -1
  76. package/dist/Equivalence.js +70 -13
  77. package/dist/Equivalence.js.map +1 -1
  78. package/dist/ErrorReporter.d.ts +374 -0
  79. package/dist/ErrorReporter.d.ts.map +1 -0
  80. package/dist/ErrorReporter.js +245 -0
  81. package/dist/ErrorReporter.js.map +1 -0
  82. package/dist/Exit.d.ts +24 -12
  83. package/dist/Exit.d.ts.map +1 -1
  84. package/dist/Exit.js +8 -4
  85. package/dist/Exit.js.map +1 -1
  86. package/dist/Fiber.d.ts +5 -3
  87. package/dist/Fiber.d.ts.map +1 -1
  88. package/dist/Fiber.js.map +1 -1
  89. package/dist/FiberHandle.d.ts +9 -8
  90. package/dist/FiberHandle.d.ts.map +1 -1
  91. package/dist/FiberHandle.js +8 -7
  92. package/dist/FiberHandle.js.map +1 -1
  93. package/dist/FiberMap.d.ts +20 -19
  94. package/dist/FiberMap.d.ts.map +1 -1
  95. package/dist/FiberMap.js +6 -6
  96. package/dist/FiberMap.js.map +1 -1
  97. package/dist/FileSystem.d.ts +18 -17
  98. package/dist/FileSystem.d.ts.map +1 -1
  99. package/dist/FileSystem.js +17 -13
  100. package/dist/FileSystem.js.map +1 -1
  101. package/dist/Filter.d.ts +34 -38
  102. package/dist/Filter.d.ts.map +1 -1
  103. package/dist/Filter.js +15 -13
  104. package/dist/Filter.js.map +1 -1
  105. package/dist/Formatter.d.ts +131 -47
  106. package/dist/Formatter.d.ts.map +1 -1
  107. package/dist/Formatter.js +229 -51
  108. package/dist/Formatter.js.map +1 -1
  109. package/dist/Function.d.ts +1 -9
  110. package/dist/Function.d.ts.map +1 -1
  111. package/dist/Function.js +2 -10
  112. package/dist/Function.js.map +1 -1
  113. package/dist/Graph.d.ts +65 -65
  114. package/dist/Graph.d.ts.map +1 -1
  115. package/dist/Graph.js +60 -62
  116. package/dist/Graph.js.map +1 -1
  117. package/dist/HashMap.d.ts +26 -19
  118. package/dist/HashMap.d.ts.map +1 -1
  119. package/dist/HashMap.js +7 -5
  120. package/dist/HashMap.js.map +1 -1
  121. package/dist/Iterable.d.ts +50 -50
  122. package/dist/Iterable.d.ts.map +1 -1
  123. package/dist/Iterable.js +106 -34
  124. package/dist/Iterable.js.map +1 -1
  125. package/dist/JsonSchema.d.ts +299 -10
  126. package/dist/JsonSchema.d.ts.map +1 -1
  127. package/dist/JsonSchema.js +323 -4
  128. package/dist/JsonSchema.js.map +1 -1
  129. package/dist/Latch.d.ts +175 -0
  130. package/dist/Latch.d.ts.map +1 -0
  131. package/dist/Latch.js +130 -0
  132. package/dist/Latch.js.map +1 -0
  133. package/dist/Layer.d.ts +306 -129
  134. package/dist/Layer.d.ts.map +1 -1
  135. package/dist/Layer.js +92 -47
  136. package/dist/Layer.js.map +1 -1
  137. package/dist/LayerMap.d.ts +9 -8
  138. package/dist/LayerMap.d.ts.map +1 -1
  139. package/dist/LayerMap.js +3 -3
  140. package/dist/LayerMap.js.map +1 -1
  141. package/dist/LogLevel.d.ts +32 -0
  142. package/dist/LogLevel.d.ts.map +1 -1
  143. package/dist/LogLevel.js +28 -100
  144. package/dist/LogLevel.js.map +1 -1
  145. package/dist/Logger.d.ts +29 -95
  146. package/dist/Logger.d.ts.map +1 -1
  147. package/dist/Logger.js +2 -3
  148. package/dist/Logger.js.map +1 -1
  149. package/dist/ManagedRuntime.d.ts +2 -2
  150. package/dist/ManagedRuntime.js +2 -2
  151. package/dist/Metric.d.ts +4 -6
  152. package/dist/Metric.d.ts.map +1 -1
  153. package/dist/Metric.js +3 -5
  154. package/dist/Metric.js.map +1 -1
  155. package/dist/MutableHashMap.d.ts +7 -0
  156. package/dist/MutableHashMap.d.ts.map +1 -1
  157. package/dist/MutableHashMap.js +8 -0
  158. package/dist/MutableHashMap.js.map +1 -1
  159. package/dist/MutableHashSet.d.ts +7 -0
  160. package/dist/MutableHashSet.d.ts.map +1 -1
  161. package/dist/MutableHashSet.js +8 -0
  162. package/dist/MutableHashSet.js.map +1 -1
  163. package/dist/Newtype.d.ts +291 -0
  164. package/dist/Newtype.d.ts.map +1 -0
  165. package/dist/Newtype.js +161 -0
  166. package/dist/Newtype.js.map +1 -0
  167. package/dist/Number.d.ts +74 -18
  168. package/dist/Number.d.ts.map +1 -1
  169. package/dist/Number.js +34 -15
  170. package/dist/Number.js.map +1 -1
  171. package/dist/Optic.d.ts +947 -18
  172. package/dist/Optic.d.ts.map +1 -1
  173. package/dist/Optic.js +454 -5
  174. package/dist/Optic.js.map +1 -1
  175. package/dist/Option.d.ts +25 -16
  176. package/dist/Option.d.ts.map +1 -1
  177. package/dist/Option.js +15 -9
  178. package/dist/Option.js.map +1 -1
  179. package/dist/Order.d.ts +6 -1
  180. package/dist/Order.d.ts.map +1 -1
  181. package/dist/Order.js +19 -14
  182. package/dist/Order.js.map +1 -1
  183. package/dist/PartitionedSemaphore.d.ts +146 -15
  184. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  185. package/dist/PartitionedSemaphore.js +174 -61
  186. package/dist/PartitionedSemaphore.js.map +1 -1
  187. package/dist/Pipeable.d.ts +17 -0
  188. package/dist/Pipeable.d.ts.map +1 -1
  189. package/dist/Pipeable.js +19 -1
  190. package/dist/Pipeable.js.map +1 -1
  191. package/dist/PlatformError.d.ts +10 -9
  192. package/dist/PlatformError.d.ts.map +1 -1
  193. package/dist/PlatformError.js +2 -2
  194. package/dist/PlatformError.js.map +1 -1
  195. package/dist/Pool.d.ts +6 -4
  196. package/dist/Pool.d.ts.map +1 -1
  197. package/dist/Pool.js +7 -5
  198. package/dist/Pool.js.map +1 -1
  199. package/dist/PubSub.d.ts +8 -6
  200. package/dist/PubSub.d.ts.map +1 -1
  201. package/dist/PubSub.js +18 -10
  202. package/dist/PubSub.js.map +1 -1
  203. package/dist/Pull.d.ts.map +1 -1
  204. package/dist/Pull.js +1 -1
  205. package/dist/Pull.js.map +1 -1
  206. package/dist/Queue.d.ts +9 -6
  207. package/dist/Queue.d.ts.map +1 -1
  208. package/dist/Queue.js +7 -5
  209. package/dist/Queue.js.map +1 -1
  210. package/dist/Random.d.ts +35 -1
  211. package/dist/Random.d.ts.map +1 -1
  212. package/dist/Random.js +46 -12
  213. package/dist/Random.js.map +1 -1
  214. package/dist/RcMap.d.ts +2 -2
  215. package/dist/RcMap.d.ts.map +1 -1
  216. package/dist/RcMap.js +1 -1
  217. package/dist/RcMap.js.map +1 -1
  218. package/dist/RcRef.d.ts +1 -1
  219. package/dist/RcRef.d.ts.map +1 -1
  220. package/dist/Record.d.ts +63 -160
  221. package/dist/Record.d.ts.map +1 -1
  222. package/dist/Record.js +37 -56
  223. package/dist/Record.js.map +1 -1
  224. package/dist/Reducer.d.ts +166 -7
  225. package/dist/Reducer.d.ts.map +1 -1
  226. package/dist/Reducer.js +135 -1
  227. package/dist/Reducer.js.map +1 -1
  228. package/dist/References.d.ts +242 -226
  229. package/dist/References.d.ts.map +1 -1
  230. package/dist/References.js +240 -247
  231. package/dist/References.js.map +1 -1
  232. package/dist/Request.d.ts +1 -1
  233. package/dist/Request.d.ts.map +1 -1
  234. package/dist/Request.js +2 -1
  235. package/dist/Request.js.map +1 -1
  236. package/dist/RequestResolver.d.ts +25 -45
  237. package/dist/RequestResolver.d.ts.map +1 -1
  238. package/dist/RequestResolver.js +10 -30
  239. package/dist/RequestResolver.js.map +1 -1
  240. package/dist/Resource.d.ts.map +1 -1
  241. package/dist/Resource.js +2 -1
  242. package/dist/Resource.js.map +1 -1
  243. package/dist/Result.d.ts +1 -1
  244. package/dist/Result.d.ts.map +1 -1
  245. package/dist/Result.js +1 -2
  246. package/dist/Result.js.map +1 -1
  247. package/dist/Runtime.d.ts +66 -0
  248. package/dist/Runtime.d.ts.map +1 -1
  249. package/dist/Runtime.js +79 -6
  250. package/dist/Runtime.js.map +1 -1
  251. package/dist/Schedule.d.ts +174 -291
  252. package/dist/Schedule.d.ts.map +1 -1
  253. package/dist/Schedule.js +160 -134
  254. package/dist/Schedule.js.map +1 -1
  255. package/dist/Scheduler.d.ts +34 -123
  256. package/dist/Scheduler.d.ts.map +1 -1
  257. package/dist/Scheduler.js +31 -123
  258. package/dist/Scheduler.js.map +1 -1
  259. package/dist/Schema.d.ts +2722 -247
  260. package/dist/Schema.d.ts.map +1 -1
  261. package/dist/Schema.js +1947 -224
  262. package/dist/Schema.js.map +1 -1
  263. package/dist/SchemaAST.d.ts +7 -2
  264. package/dist/SchemaAST.d.ts.map +1 -1
  265. package/dist/SchemaAST.js +131 -25
  266. package/dist/SchemaAST.js.map +1 -1
  267. package/dist/SchemaGetter.d.ts +5 -5
  268. package/dist/SchemaGetter.d.ts.map +1 -1
  269. package/dist/SchemaGetter.js +18 -18
  270. package/dist/SchemaGetter.js.map +1 -1
  271. package/dist/SchemaParser.d.ts +44 -54
  272. package/dist/SchemaParser.d.ts.map +1 -1
  273. package/dist/SchemaParser.js +55 -2
  274. package/dist/SchemaParser.js.map +1 -1
  275. package/dist/SchemaRepresentation.d.ts +46 -45
  276. package/dist/SchemaRepresentation.d.ts.map +1 -1
  277. package/dist/SchemaRepresentation.js +49 -24
  278. package/dist/SchemaRepresentation.js.map +1 -1
  279. package/dist/SchemaTransformation.d.ts +107 -3
  280. package/dist/SchemaTransformation.d.ts.map +1 -1
  281. package/dist/SchemaTransformation.js +173 -13
  282. package/dist/SchemaTransformation.js.map +1 -1
  283. package/dist/ScopedCache.d.ts +2 -2
  284. package/dist/ScopedCache.d.ts.map +1 -1
  285. package/dist/ScopedCache.js +1 -1
  286. package/dist/ScopedCache.js.map +1 -1
  287. package/dist/Semaphore.d.ts +307 -0
  288. package/dist/Semaphore.d.ts.map +1 -0
  289. package/dist/Semaphore.js +222 -0
  290. package/dist/Semaphore.js.map +1 -0
  291. package/dist/ServiceMap.d.ts +67 -31
  292. package/dist/ServiceMap.d.ts.map +1 -1
  293. package/dist/ServiceMap.js +39 -24
  294. package/dist/ServiceMap.js.map +1 -1
  295. package/dist/Sink.d.ts +18 -15
  296. package/dist/Sink.d.ts.map +1 -1
  297. package/dist/Sink.js +53 -6
  298. package/dist/Sink.js.map +1 -1
  299. package/dist/Stdio.d.ts +16 -4
  300. package/dist/Stdio.d.ts.map +1 -1
  301. package/dist/Stdio.js +18 -0
  302. package/dist/Stdio.js.map +1 -1
  303. package/dist/Stream.d.ts +284 -431
  304. package/dist/Stream.d.ts.map +1 -1
  305. package/dist/Stream.js +189 -88
  306. package/dist/Stream.js.map +1 -1
  307. package/dist/String.d.ts +114 -47
  308. package/dist/String.d.ts.map +1 -1
  309. package/dist/String.js +29 -47
  310. package/dist/String.js.map +1 -1
  311. package/dist/Struct.d.ts +23 -7
  312. package/dist/Struct.d.ts.map +1 -1
  313. package/dist/Struct.js +22 -0
  314. package/dist/Struct.js.map +1 -1
  315. package/dist/SubscriptionRef.d.ts +3 -3
  316. package/dist/SubscriptionRef.d.ts.map +1 -1
  317. package/dist/SubscriptionRef.js +85 -117
  318. package/dist/SubscriptionRef.js.map +1 -1
  319. package/dist/SynchronizedRef.d.ts +2 -1
  320. package/dist/SynchronizedRef.d.ts.map +1 -1
  321. package/dist/SynchronizedRef.js +2 -1
  322. package/dist/SynchronizedRef.js.map +1 -1
  323. package/dist/Terminal.d.ts +2 -1
  324. package/dist/Terminal.d.ts.map +1 -1
  325. package/dist/Terminal.js.map +1 -1
  326. package/dist/Tracer.d.ts +5 -4
  327. package/dist/Tracer.d.ts.map +1 -1
  328. package/dist/Tracer.js +2 -1
  329. package/dist/Tracer.js.map +1 -1
  330. package/dist/Trie.d.ts +44 -31
  331. package/dist/Trie.d.ts.map +1 -1
  332. package/dist/Trie.js +13 -9
  333. package/dist/Trie.js.map +1 -1
  334. package/dist/TxChunk.d.ts +37 -37
  335. package/dist/TxChunk.d.ts.map +1 -1
  336. package/dist/TxChunk.js +3 -3
  337. package/dist/TxChunk.js.map +1 -1
  338. package/dist/TxDeferred.d.ts +328 -0
  339. package/dist/TxDeferred.d.ts.map +1 -0
  340. package/dist/TxDeferred.js +197 -0
  341. package/dist/TxDeferred.js.map +1 -0
  342. package/dist/TxHashMap.d.ts +159 -140
  343. package/dist/TxHashMap.d.ts.map +1 -1
  344. package/dist/TxHashMap.js +51 -44
  345. package/dist/TxHashMap.js.map +1 -1
  346. package/dist/TxHashSet.d.ts +36 -36
  347. package/dist/TxHashSet.d.ts.map +1 -1
  348. package/dist/TxHashSet.js +16 -15
  349. package/dist/TxHashSet.js.map +1 -1
  350. package/dist/TxPriorityQueue.d.ts +609 -0
  351. package/dist/TxPriorityQueue.d.ts.map +1 -0
  352. package/dist/TxPriorityQueue.js +416 -0
  353. package/dist/TxPriorityQueue.js.map +1 -0
  354. package/dist/TxPubSub.d.ts +585 -0
  355. package/dist/TxPubSub.d.ts.map +1 -0
  356. package/dist/TxPubSub.js +521 -0
  357. package/dist/TxPubSub.js.map +1 -0
  358. package/dist/TxQueue.d.ts +32 -32
  359. package/dist/TxQueue.d.ts.map +1 -1
  360. package/dist/TxQueue.js +26 -26
  361. package/dist/TxQueue.js.map +1 -1
  362. package/dist/TxReentrantLock.d.ts +523 -0
  363. package/dist/TxReentrantLock.d.ts.map +1 -0
  364. package/dist/TxReentrantLock.js +504 -0
  365. package/dist/TxReentrantLock.js.map +1 -0
  366. package/dist/TxRef.d.ts +34 -34
  367. package/dist/TxRef.d.ts.map +1 -1
  368. package/dist/TxRef.js +21 -14
  369. package/dist/TxRef.js.map +1 -1
  370. package/dist/TxSemaphore.d.ts +170 -10
  371. package/dist/TxSemaphore.d.ts.map +1 -1
  372. package/dist/TxSemaphore.js +23 -8
  373. package/dist/TxSemaphore.js.map +1 -1
  374. package/dist/TxSubscriptionRef.d.ts +508 -0
  375. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  376. package/dist/TxSubscriptionRef.js +293 -0
  377. package/dist/TxSubscriptionRef.js.map +1 -0
  378. package/dist/Types.d.ts +80 -23
  379. package/dist/Types.d.ts.map +1 -1
  380. package/dist/Utils.d.ts +137 -65
  381. package/dist/Utils.d.ts.map +1 -1
  382. package/dist/Utils.js +38 -66
  383. package/dist/Utils.js.map +1 -1
  384. package/dist/index.d.ts +804 -53
  385. package/dist/index.d.ts.map +1 -1
  386. package/dist/index.js +804 -53
  387. package/dist/index.js.map +1 -1
  388. package/dist/internal/core.js +11 -3
  389. package/dist/internal/core.js.map +1 -1
  390. package/dist/internal/dateTime.js +77 -71
  391. package/dist/internal/dateTime.js.map +1 -1
  392. package/dist/internal/effect.js +281 -201
  393. package/dist/internal/effect.js.map +1 -1
  394. package/dist/internal/hashMap.js +7 -5
  395. package/dist/internal/hashMap.js.map +1 -1
  396. package/dist/internal/option.js +6 -0
  397. package/dist/internal/option.js.map +1 -1
  398. package/dist/internal/random.d.ts +2 -0
  399. package/dist/internal/random.d.ts.map +1 -0
  400. package/dist/internal/random.js +13 -0
  401. package/dist/internal/random.js.map +1 -0
  402. package/dist/internal/rcRef.js +3 -2
  403. package/dist/internal/rcRef.js.map +1 -1
  404. package/dist/internal/references.d.ts +2 -0
  405. package/dist/internal/references.d.ts.map +1 -0
  406. package/dist/internal/references.js +51 -0
  407. package/dist/internal/references.js.map +1 -0
  408. package/dist/internal/request.js +2 -2
  409. package/dist/internal/request.js.map +1 -1
  410. package/dist/internal/schema/annotations.js +2 -0
  411. package/dist/internal/schema/annotations.js.map +1 -1
  412. package/dist/internal/schema/representation.js +47 -106
  413. package/dist/internal/schema/representation.js.map +1 -1
  414. package/dist/internal/schema/schema.js +1 -0
  415. package/dist/internal/schema/schema.js.map +1 -1
  416. package/dist/internal/schema/to-codec.js +7 -10
  417. package/dist/internal/schema/to-codec.js.map +1 -1
  418. package/dist/internal/trie.js +8 -7
  419. package/dist/internal/trie.js.map +1 -1
  420. package/dist/testing/TestClock.d.ts +8 -7
  421. package/dist/testing/TestClock.d.ts.map +1 -1
  422. package/dist/testing/TestClock.js +6 -4
  423. package/dist/testing/TestClock.js.map +1 -1
  424. package/dist/testing/TestSchema.d.ts +266 -32
  425. package/dist/testing/TestSchema.d.ts.map +1 -1
  426. package/dist/testing/TestSchema.js +296 -23
  427. package/dist/testing/TestSchema.js.map +1 -1
  428. package/dist/testing/index.d.ts +64 -1
  429. package/dist/testing/index.d.ts.map +1 -1
  430. package/dist/testing/index.js +64 -1
  431. package/dist/testing/index.js.map +1 -1
  432. package/dist/unstable/ai/AiError.d.ts +136 -54
  433. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  434. package/dist/unstable/ai/AiError.js +28 -23
  435. package/dist/unstable/ai/AiError.js.map +1 -1
  436. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  437. package/dist/unstable/ai/AnthropicStructuredOutput.js +4 -0
  438. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  439. package/dist/unstable/ai/Chat.d.ts +7 -8
  440. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  441. package/dist/unstable/ai/Chat.js +38 -44
  442. package/dist/unstable/ai/Chat.js.map +1 -1
  443. package/dist/unstable/ai/EmbeddingModel.d.ts +130 -0
  444. package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -0
  445. package/dist/unstable/ai/EmbeddingModel.js +127 -0
  446. package/dist/unstable/ai/EmbeddingModel.js.map +1 -0
  447. package/dist/unstable/ai/LanguageModel.d.ts +53 -45
  448. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  449. package/dist/unstable/ai/LanguageModel.js +265 -143
  450. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  451. package/dist/unstable/ai/McpSchema.d.ts +183 -88
  452. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  453. package/dist/unstable/ai/McpSchema.js +57 -12
  454. package/dist/unstable/ai/McpSchema.js.map +1 -1
  455. package/dist/unstable/ai/McpServer.d.ts +66 -13
  456. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  457. package/dist/unstable/ai/McpServer.js +193 -51
  458. package/dist/unstable/ai/McpServer.js.map +1 -1
  459. package/dist/unstable/ai/Model.d.ts +25 -7
  460. package/dist/unstable/ai/Model.d.ts.map +1 -1
  461. package/dist/unstable/ai/Model.js +22 -6
  462. package/dist/unstable/ai/Model.js.map +1 -1
  463. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  464. package/dist/unstable/ai/OpenAiStructuredOutput.js +4 -0
  465. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  466. package/dist/unstable/ai/Prompt.d.ts +20 -20
  467. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  468. package/dist/unstable/ai/Response.d.ts +26 -26
  469. package/dist/unstable/ai/Response.d.ts.map +1 -1
  470. package/dist/unstable/ai/Response.js +1 -1
  471. package/dist/unstable/ai/Response.js.map +1 -1
  472. package/dist/unstable/ai/ResponseIdTracker.d.ts +38 -0
  473. package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -0
  474. package/dist/unstable/ai/ResponseIdTracker.js +68 -0
  475. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -0
  476. package/dist/unstable/ai/Tool.d.ts +34 -4
  477. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  478. package/dist/unstable/ai/Tool.js +28 -10
  479. package/dist/unstable/ai/Tool.js.map +1 -1
  480. package/dist/unstable/ai/Toolkit.d.ts +1 -1
  481. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  482. package/dist/unstable/ai/Toolkit.js +4 -11
  483. package/dist/unstable/ai/Toolkit.js.map +1 -1
  484. package/dist/unstable/ai/index.d.ts +22 -1
  485. package/dist/unstable/ai/index.d.ts.map +1 -1
  486. package/dist/unstable/ai/index.js +22 -1
  487. package/dist/unstable/ai/index.js.map +1 -1
  488. package/dist/unstable/ai/internal/codec-transformer.js +0 -5
  489. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  490. package/dist/unstable/cli/Argument.d.ts +2 -4
  491. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  492. package/dist/unstable/cli/Argument.js +1 -3
  493. package/dist/unstable/cli/Argument.js.map +1 -1
  494. package/dist/unstable/cli/CliError.d.ts +27 -60
  495. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  496. package/dist/unstable/cli/CliError.js +25 -57
  497. package/dist/unstable/cli/CliError.js.map +1 -1
  498. package/dist/unstable/cli/CliOutput.d.ts +3 -2
  499. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  500. package/dist/unstable/cli/CliOutput.js +65 -10
  501. package/dist/unstable/cli/CliOutput.js.map +1 -1
  502. package/dist/unstable/cli/Command.d.ts +371 -58
  503. package/dist/unstable/cli/Command.d.ts.map +1 -1
  504. package/dist/unstable/cli/Command.js +328 -67
  505. package/dist/unstable/cli/Command.js.map +1 -1
  506. package/dist/unstable/cli/Completions.d.ts +16 -0
  507. package/dist/unstable/cli/Completions.d.ts.map +1 -0
  508. package/dist/unstable/cli/Completions.js +23 -0
  509. package/dist/unstable/cli/Completions.js.map +1 -0
  510. package/dist/unstable/cli/Flag.d.ts +2 -2
  511. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  512. package/dist/unstable/cli/Flag.js +1 -1
  513. package/dist/unstable/cli/Flag.js.map +1 -1
  514. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  515. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  516. package/dist/unstable/cli/GlobalFlag.js +118 -0
  517. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  518. package/dist/unstable/cli/HelpDoc.d.ts +81 -11
  519. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  520. package/dist/unstable/cli/Param.d.ts +4 -4
  521. package/dist/unstable/cli/Param.d.ts.map +1 -1
  522. package/dist/unstable/cli/Param.js +7 -7
  523. package/dist/unstable/cli/Param.js.map +1 -1
  524. package/dist/unstable/cli/Primitive.d.ts +2 -2
  525. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  526. package/dist/unstable/cli/Primitive.js +1 -1
  527. package/dist/unstable/cli/Primitive.js.map +1 -1
  528. package/dist/unstable/cli/Prompt.js +258 -84
  529. package/dist/unstable/cli/Prompt.js.map +1 -1
  530. package/dist/unstable/cli/index.d.ts +8 -0
  531. package/dist/unstable/cli/index.d.ts.map +1 -1
  532. package/dist/unstable/cli/index.js +8 -0
  533. package/dist/unstable/cli/index.js.map +1 -1
  534. package/dist/unstable/cli/internal/command.d.ts +40 -14
  535. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  536. package/dist/unstable/cli/internal/command.js +72 -46
  537. package/dist/unstable/cli/internal/command.js.map +1 -1
  538. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +16 -4
  539. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  540. package/dist/unstable/cli/internal/config.js +42 -0
  541. package/dist/unstable/cli/internal/config.js.map +1 -1
  542. package/dist/unstable/cli/internal/help.d.ts +33 -0
  543. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  544. package/dist/unstable/cli/internal/help.js +125 -0
  545. package/dist/unstable/cli/internal/help.js.map +1 -0
  546. package/dist/unstable/cli/internal/parser.js +61 -43
  547. package/dist/unstable/cli/internal/parser.js.map +1 -1
  548. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  549. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  550. package/dist/unstable/cluster/ClusterCron.js +1 -1
  551. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  552. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +3 -2
  553. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  554. package/dist/unstable/cluster/ClusterWorkflowEngine.js +29 -26
  555. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  556. package/dist/unstable/cluster/DeliverAt.js +1 -1
  557. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  558. package/dist/unstable/cluster/Entity.d.ts +10 -8
  559. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  560. package/dist/unstable/cluster/Entity.js +7 -7
  561. package/dist/unstable/cluster/Entity.js.map +1 -1
  562. package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
  563. package/dist/unstable/cluster/EntityAddress.js +1 -1
  564. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  565. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  566. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  567. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  568. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  569. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  570. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  571. package/dist/unstable/cluster/Message.d.ts +14 -13
  572. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  573. package/dist/unstable/cluster/Message.js +3 -2
  574. package/dist/unstable/cluster/Message.js.map +1 -1
  575. package/dist/unstable/cluster/MessageStorage.d.ts +10 -10
  576. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  577. package/dist/unstable/cluster/MessageStorage.js +14 -13
  578. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  579. package/dist/unstable/cluster/Reply.d.ts +8 -7
  580. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  581. package/dist/unstable/cluster/Reply.js +4 -3
  582. package/dist/unstable/cluster/Reply.js.map +1 -1
  583. package/dist/unstable/cluster/Runner.d.ts +1 -1
  584. package/dist/unstable/cluster/Runner.d.ts.map +1 -1
  585. package/dist/unstable/cluster/Runner.js +1 -1
  586. package/dist/unstable/cluster/Runner.js.map +1 -1
  587. package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
  588. package/dist/unstable/cluster/RunnerAddress.js +1 -1
  589. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  590. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  591. package/dist/unstable/cluster/RunnerServer.js +9 -8
  592. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  593. package/dist/unstable/cluster/Runners.d.ts +2 -1
  594. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  595. package/dist/unstable/cluster/Runners.js +11 -9
  596. package/dist/unstable/cluster/Runners.js.map +1 -1
  597. package/dist/unstable/cluster/ShardId.js +3 -3
  598. package/dist/unstable/cluster/ShardId.js.map +1 -1
  599. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  600. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  601. package/dist/unstable/cluster/Sharding.js +28 -20
  602. package/dist/unstable/cluster/Sharding.js.map +1 -1
  603. package/dist/unstable/cluster/ShardingConfig.d.ts +26 -25
  604. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  605. package/dist/unstable/cluster/ShardingConfig.js +24 -24
  606. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  607. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  608. package/dist/unstable/cluster/SqlMessageStorage.js +19 -18
  609. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  610. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  611. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  612. package/dist/unstable/cluster/internal/entityManager.js +14 -14
  613. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  614. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  615. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  616. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  617. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  618. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  619. package/dist/unstable/devtools/DevToolsClient.js +4 -3
  620. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  621. package/dist/unstable/devtools/DevToolsSchema.d.ts +40 -40
  622. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  623. package/dist/unstable/devtools/DevToolsSchema.js +9 -2
  624. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  625. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  626. package/dist/unstable/encoding/Ndjson.d.ts +9 -9
  627. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  628. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  629. package/dist/unstable/encoding/Sse.d.ts +4 -4
  630. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  631. package/dist/unstable/encoding/Sse.js +1 -1
  632. package/dist/unstable/encoding/Sse.js.map +1 -1
  633. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  634. package/dist/unstable/eventlog/EventJournal.js +2 -2
  635. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  636. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  637. package/dist/unstable/eventlog/EventLog.js +3 -2
  638. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  639. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  640. package/dist/unstable/eventlog/SqlEventLogJournal.js +2 -2
  641. package/dist/unstable/eventlog/SqlEventLogJournal.js.map +1 -1
  642. package/dist/unstable/http/Cookies.d.ts +52 -7
  643. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  644. package/dist/unstable/http/Cookies.js +27 -6
  645. package/dist/unstable/http/Cookies.js.map +1 -1
  646. package/dist/unstable/http/Etag.d.ts.map +1 -1
  647. package/dist/unstable/http/Etag.js +5 -1
  648. package/dist/unstable/http/Etag.js.map +1 -1
  649. package/dist/unstable/http/Headers.d.ts +19 -2
  650. package/dist/unstable/http/Headers.d.ts.map +1 -1
  651. package/dist/unstable/http/Headers.js +40 -11
  652. package/dist/unstable/http/Headers.js.map +1 -1
  653. package/dist/unstable/http/HttpBody.d.ts +1 -1
  654. package/dist/unstable/http/HttpClient.d.ts +117 -15
  655. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  656. package/dist/unstable/http/HttpClient.js +191 -13
  657. package/dist/unstable/http/HttpClient.js.map +1 -1
  658. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  659. package/dist/unstable/http/HttpClientRequest.d.ts +43 -15
  660. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  661. package/dist/unstable/http/HttpClientRequest.js +131 -21
  662. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  663. package/dist/unstable/http/HttpClientResponse.d.ts +2 -1
  664. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  665. package/dist/unstable/http/HttpClientResponse.js +6 -1
  666. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  667. package/dist/unstable/http/HttpEffect.d.ts +7 -5
  668. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  669. package/dist/unstable/http/HttpEffect.js +46 -54
  670. package/dist/unstable/http/HttpEffect.js.map +1 -1
  671. package/dist/unstable/http/HttpIncomingMessage.d.ts +3 -2
  672. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  673. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  674. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  675. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  676. package/dist/unstable/http/HttpMethod.js +3 -3
  677. package/dist/unstable/http/HttpMethod.js.map +1 -1
  678. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  679. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  680. package/dist/unstable/http/HttpMiddleware.js +24 -32
  681. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  682. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  683. package/dist/unstable/http/HttpPlatform.js +3 -2
  684. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  685. package/dist/unstable/http/HttpRouter.d.ts +2 -1
  686. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  687. package/dist/unstable/http/HttpRouter.js +7 -7
  688. package/dist/unstable/http/HttpRouter.js.map +1 -1
  689. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  690. package/dist/unstable/http/HttpServer.js +2 -2
  691. package/dist/unstable/http/HttpServer.js.map +1 -1
  692. package/dist/unstable/http/HttpServerError.d.ts +22 -34
  693. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  694. package/dist/unstable/http/HttpServerError.js +39 -45
  695. package/dist/unstable/http/HttpServerError.js.map +1 -1
  696. package/dist/unstable/http/HttpServerRequest.d.ts +15 -3
  697. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  698. package/dist/unstable/http/HttpServerRequest.js +301 -7
  699. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  700. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  701. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  702. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  703. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  704. package/dist/unstable/http/HttpServerResponse.d.ts +50 -3
  705. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  706. package/dist/unstable/http/HttpServerResponse.js +236 -1
  707. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  708. package/dist/unstable/http/HttpStaticServer.d.ts +69 -0
  709. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -0
  710. package/dist/unstable/http/HttpStaticServer.js +353 -0
  711. package/dist/unstable/http/HttpStaticServer.js.map +1 -0
  712. package/dist/unstable/http/HttpTraceContext.d.ts +3 -2
  713. package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
  714. package/dist/unstable/http/HttpTraceContext.js +27 -15
  715. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  716. package/dist/unstable/http/Multipart.d.ts +3 -3
  717. package/dist/unstable/http/Url.d.ts +604 -0
  718. package/dist/unstable/http/Url.d.ts.map +1 -0
  719. package/dist/unstable/http/Url.js +256 -0
  720. package/dist/unstable/http/Url.js.map +1 -0
  721. package/dist/unstable/http/UrlParams.d.ts +19 -10
  722. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  723. package/dist/unstable/http/UrlParams.js +6 -7
  724. package/dist/unstable/http/UrlParams.js.map +1 -1
  725. package/dist/unstable/http/index.d.ts +8 -0
  726. package/dist/unstable/http/index.d.ts.map +1 -1
  727. package/dist/unstable/http/index.js +8 -0
  728. package/dist/unstable/http/index.js.map +1 -1
  729. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  730. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  731. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  732. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  733. package/dist/unstable/httpapi/HttpApi.d.ts +4 -4
  734. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  735. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  736. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  737. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  738. package/dist/unstable/httpapi/HttpApiBuilder.js +40 -27
  739. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  740. package/dist/unstable/httpapi/HttpApiClient.d.ts +83 -7
  741. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  742. package/dist/unstable/httpapi/HttpApiClient.js +78 -10
  743. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  744. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +207 -101
  745. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  746. package/dist/unstable/httpapi/HttpApiEndpoint.js +49 -43
  747. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  748. package/dist/unstable/httpapi/HttpApiError.d.ts +31 -14
  749. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  750. package/dist/unstable/httpapi/HttpApiError.js +125 -32
  751. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  752. package/dist/unstable/httpapi/HttpApiGroup.d.ts +4 -3
  753. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  754. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  755. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +46 -15
  756. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  757. package/dist/unstable/httpapi/HttpApiMiddleware.js +32 -3
  758. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  759. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  760. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  761. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  762. package/dist/unstable/httpapi/HttpApiSchema.d.ts +5 -0
  763. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  764. package/dist/unstable/httpapi/HttpApiSchema.js +20 -2
  765. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  766. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  767. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  768. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  769. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  770. package/dist/unstable/httpapi/OpenApi.js +34 -26
  771. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  772. package/dist/unstable/observability/Otlp.d.ts +12 -12
  773. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  774. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  775. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  776. package/dist/unstable/observability/OtlpExporter.js +3 -3
  777. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  778. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  779. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  780. package/dist/unstable/observability/OtlpLogger.js +7 -4
  781. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  782. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  783. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  784. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  785. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  786. package/dist/unstable/observability/OtlpTracer.js +7 -3
  787. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  788. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  789. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  790. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  791. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  792. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  793. package/dist/unstable/persistence/Persistable.js +1 -1
  794. package/dist/unstable/persistence/Persistable.js.map +1 -1
  795. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  796. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  797. package/dist/unstable/persistence/PersistedCache.js +2 -1
  798. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  799. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  800. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  801. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  802. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  803. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  804. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  805. package/dist/unstable/persistence/Persistence.js +2 -2
  806. package/dist/unstable/persistence/Persistence.js.map +1 -1
  807. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  808. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  809. package/dist/unstable/persistence/RateLimiter.js +1 -1
  810. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  811. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  812. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  813. package/dist/unstable/process/ChildProcess.js +1 -65
  814. package/dist/unstable/process/ChildProcess.js.map +1 -1
  815. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  816. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  817. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  818. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  819. package/dist/unstable/reactivity/Atom.d.ts +73 -12
  820. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  821. package/dist/unstable/reactivity/Atom.js +108 -25
  822. package/dist/unstable/reactivity/Atom.js.map +1 -1
  823. package/dist/unstable/reactivity/AtomHttpApi.d.ts +17 -15
  824. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  825. package/dist/unstable/reactivity/AtomHttpApi.js +45 -15
  826. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  827. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  828. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  829. package/dist/unstable/reactivity/AtomRegistry.js +54 -11
  830. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  831. package/dist/unstable/reactivity/AtomRpc.d.ts +9 -9
  832. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  833. package/dist/unstable/reactivity/AtomRpc.js +47 -21
  834. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  835. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  836. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  837. package/dist/unstable/reactivity/Hydration.js +76 -0
  838. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  839. package/dist/unstable/reactivity/index.d.ts +4 -0
  840. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  841. package/dist/unstable/reactivity/index.js +4 -0
  842. package/dist/unstable/reactivity/index.js.map +1 -1
  843. package/dist/unstable/rpc/Rpc.d.ts +5 -5
  844. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  845. package/dist/unstable/rpc/Rpc.js +4 -3
  846. package/dist/unstable/rpc/Rpc.js.map +1 -1
  847. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  848. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  849. package/dist/unstable/rpc/RpcClient.js +10 -17
  850. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  851. package/dist/unstable/rpc/RpcGroup.d.ts +3 -5
  852. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  853. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  854. package/dist/unstable/rpc/RpcMiddleware.d.ts +8 -8
  855. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  856. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  857. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  858. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  859. package/dist/unstable/rpc/RpcSchema.js +17 -2
  860. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  861. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  862. package/dist/unstable/rpc/RpcSerialization.js +39 -11
  863. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  864. package/dist/unstable/rpc/RpcServer.d.ts +6 -10
  865. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  866. package/dist/unstable/rpc/RpcServer.js +20 -19
  867. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  868. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  869. package/dist/unstable/rpc/Utils.js +3 -2
  870. package/dist/unstable/rpc/Utils.js.map +1 -1
  871. package/dist/unstable/schema/Model.d.ts +22 -1
  872. package/dist/unstable/schema/Model.d.ts.map +1 -1
  873. package/dist/unstable/schema/Model.js +15 -0
  874. package/dist/unstable/schema/Model.js.map +1 -1
  875. package/dist/unstable/schema/VariantSchema.d.ts +6 -6
  876. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  877. package/dist/unstable/schema/VariantSchema.js +6 -6
  878. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  879. package/dist/unstable/socket/Socket.d.ts +6 -5
  880. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  881. package/dist/unstable/socket/Socket.js +12 -9
  882. package/dist/unstable/socket/Socket.js.map +1 -1
  883. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  884. package/dist/unstable/sql/Migrator.d.ts +1 -1
  885. package/dist/unstable/sql/Migrator.d.ts.map +1 -1
  886. package/dist/unstable/sql/Migrator.js +2 -2
  887. package/dist/unstable/sql/Migrator.js.map +1 -1
  888. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  889. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  890. package/dist/unstable/sql/SqlClient.js +1 -1
  891. package/dist/unstable/sql/SqlClient.js.map +1 -1
  892. package/dist/unstable/sql/SqlError.d.ts +237 -17
  893. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  894. package/dist/unstable/sql/SqlError.js +260 -4
  895. package/dist/unstable/sql/SqlError.js.map +1 -1
  896. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  897. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  898. package/dist/unstable/sql/SqlModel.js +3 -3
  899. package/dist/unstable/sql/SqlModel.js.map +1 -1
  900. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  901. package/dist/unstable/sql/SqlResolver.js +17 -8
  902. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  903. package/dist/unstable/sql/SqlSchema.d.ts +17 -6
  904. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  905. package/dist/unstable/sql/SqlSchema.js +17 -7
  906. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  907. package/dist/unstable/sql/Statement.js +0 -1
  908. package/dist/unstable/sql/Statement.js.map +1 -1
  909. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  910. package/dist/unstable/workers/Worker.js +2 -1
  911. package/dist/unstable/workers/Worker.js.map +1 -1
  912. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  913. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  914. package/dist/unstable/workflow/DurableClock.js +3 -3
  915. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  916. package/dist/unstable/workflow/DurableDeferred.js +8 -8
  917. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  918. package/dist/unstable/workflow/Workflow.d.ts +5 -4
  919. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  920. package/dist/unstable/workflow/Workflow.js +1 -1
  921. package/dist/unstable/workflow/Workflow.js.map +1 -1
  922. package/dist/unstable/workflow/WorkflowEngine.d.ts +17 -5
  923. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  924. package/dist/unstable/workflow/WorkflowEngine.js +153 -12
  925. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  926. package/package.json +2 -2
  927. package/src/Array.ts +304 -447
  928. package/src/BigDecimal.ts +63 -66
  929. package/src/BigInt.ts +49 -41
  930. package/src/Brand.ts +1 -1
  931. package/src/Cache.ts +9 -8
  932. package/src/Cause.ts +37 -2
  933. package/src/Channel.ts +582 -154
  934. package/src/Chunk.ts +149 -331
  935. package/src/Combiner.ts +280 -13
  936. package/src/Config.ts +195 -25
  937. package/src/Cron.ts +155 -63
  938. package/src/Data.ts +539 -376
  939. package/src/DateTime.ts +75 -256
  940. package/src/Deferred.ts +8 -6
  941. package/src/Duration.ts +122 -66
  942. package/src/Effect.ts +1483 -1157
  943. package/src/Encoding.ts +879 -0
  944. package/src/Equal.ts +278 -111
  945. package/src/Equivalence.ts +114 -52
  946. package/src/ErrorReporter.ts +458 -0
  947. package/src/Exit.ts +24 -12
  948. package/src/Fiber.ts +12 -3
  949. package/src/FiberHandle.ts +10 -9
  950. package/src/FiberMap.ts +22 -22
  951. package/src/FileSystem.ts +34 -31
  952. package/src/Filter.ts +52 -63
  953. package/src/Formatter.ts +253 -51
  954. package/src/Function.ts +2 -10
  955. package/src/Graph.ts +131 -117
  956. package/src/HashMap.ts +26 -19
  957. package/src/Iterable.ts +117 -63
  958. package/src/JsonSchema.ts +383 -10
  959. package/src/Latch.ts +194 -0
  960. package/src/Layer.ts +393 -159
  961. package/src/LayerMap.ts +11 -9
  962. package/src/LogLevel.ts +37 -0
  963. package/src/Logger.ts +33 -100
  964. package/src/ManagedRuntime.ts +2 -2
  965. package/src/Metric.ts +6 -8
  966. package/src/MutableHashMap.ts +9 -0
  967. package/src/MutableHashSet.ts +9 -0
  968. package/src/Newtype.ts +308 -0
  969. package/src/Number.ts +85 -26
  970. package/src/Optic.ts +948 -19
  971. package/src/Option.ts +34 -24
  972. package/src/Order.ts +39 -32
  973. package/src/PartitionedSemaphore.ts +288 -56
  974. package/src/Pipeable.ts +32 -1
  975. package/src/PlatformError.ts +5 -5
  976. package/src/Pool.ts +13 -11
  977. package/src/PubSub.ts +30 -20
  978. package/src/Pull.ts +1 -1
  979. package/src/Queue.ts +11 -9
  980. package/src/Random.ts +51 -14
  981. package/src/RcMap.ts +5 -5
  982. package/src/RcRef.ts +1 -1
  983. package/src/Record.ts +94 -199
  984. package/src/Reducer.ts +166 -7
  985. package/src/References.ts +283 -287
  986. package/src/Request.ts +3 -2
  987. package/src/RequestResolver.ts +29 -49
  988. package/src/Resource.ts +2 -1
  989. package/src/Result.ts +2 -4
  990. package/src/Runtime.ts +102 -6
  991. package/src/Schedule.ts +458 -449
  992. package/src/Scheduler.ts +49 -126
  993. package/src/Schema.ts +3298 -392
  994. package/src/SchemaAST.ts +172 -33
  995. package/src/SchemaGetter.ts +19 -21
  996. package/src/SchemaParser.ts +92 -27
  997. package/src/SchemaRepresentation.ts +51 -26
  998. package/src/SchemaTransformation.ts +198 -13
  999. package/src/ScopedCache.ts +3 -3
  1000. package/src/Semaphore.ts +444 -0
  1001. package/src/ServiceMap.ts +133 -71
  1002. package/src/Sink.ts +83 -28
  1003. package/src/Stdio.ts +27 -4
  1004. package/src/Stream.ts +687 -617
  1005. package/src/String.ts +122 -69
  1006. package/src/Struct.ts +33 -7
  1007. package/src/SubscriptionRef.ts +101 -120
  1008. package/src/SynchronizedRef.ts +3 -2
  1009. package/src/Terminal.ts +2 -1
  1010. package/src/Tracer.ts +6 -5
  1011. package/src/Trie.ts +44 -31
  1012. package/src/TxChunk.ts +72 -53
  1013. package/src/TxDeferred.ts +394 -0
  1014. package/src/TxHashMap.ts +409 -343
  1015. package/src/TxHashSet.ts +113 -118
  1016. package/src/TxPriorityQueue.ts +766 -0
  1017. package/src/TxPubSub.ts +789 -0
  1018. package/src/TxQueue.ts +241 -251
  1019. package/src/TxReentrantLock.ts +753 -0
  1020. package/src/TxRef.ts +50 -38
  1021. package/src/TxSemaphore.ts +217 -44
  1022. package/src/TxSubscriptionRef.ts +639 -0
  1023. package/src/Types.ts +73 -19
  1024. package/src/Utils.ts +137 -111
  1025. package/src/index.ts +814 -54
  1026. package/src/internal/core.ts +12 -5
  1027. package/src/internal/dateTime.ts +91 -96
  1028. package/src/internal/effect.ts +841 -432
  1029. package/src/internal/hashMap.ts +12 -10
  1030. package/src/internal/option.ts +7 -0
  1031. package/src/internal/random.ts +20 -0
  1032. package/src/internal/rcRef.ts +4 -3
  1033. package/src/internal/references.ts +72 -0
  1034. package/src/internal/request.ts +2 -2
  1035. package/src/internal/schema/annotations.ts +2 -0
  1036. package/src/internal/schema/representation.ts +45 -94
  1037. package/src/internal/schema/schema.ts +1 -0
  1038. package/src/internal/schema/to-codec.ts +7 -17
  1039. package/src/internal/trie.ts +21 -15
  1040. package/src/testing/TestClock.ts +13 -11
  1041. package/src/testing/TestSchema.ts +332 -35
  1042. package/src/testing/index.ts +64 -1
  1043. package/src/unstable/ai/AiError.ts +111 -54
  1044. package/src/unstable/ai/AnthropicStructuredOutput.ts +4 -0
  1045. package/src/unstable/ai/Chat.ts +62 -74
  1046. package/src/unstable/ai/EmbeddingModel.ts +209 -0
  1047. package/src/unstable/ai/LanguageModel.ts +544 -230
  1048. package/src/unstable/ai/McpSchema.ts +73 -13
  1049. package/src/unstable/ai/McpServer.ts +271 -61
  1050. package/src/unstable/ai/Model.ts +40 -9
  1051. package/src/unstable/ai/OpenAiStructuredOutput.ts +4 -0
  1052. package/src/unstable/ai/Prompt.ts +37 -37
  1053. package/src/unstable/ai/Response.ts +25 -25
  1054. package/src/unstable/ai/ResponseIdTracker.ts +97 -0
  1055. package/src/unstable/ai/Tool.ts +42 -16
  1056. package/src/unstable/ai/Toolkit.ts +5 -14
  1057. package/src/unstable/ai/index.ts +24 -1
  1058. package/src/unstable/ai/internal/codec-transformer.ts +0 -7
  1059. package/src/unstable/cli/Argument.ts +2 -4
  1060. package/src/unstable/cli/CliError.ts +47 -59
  1061. package/src/unstable/cli/CliOutput.ts +85 -13
  1062. package/src/unstable/cli/Command.ts +801 -192
  1063. package/src/unstable/cli/Completions.ts +36 -0
  1064. package/src/unstable/cli/Flag.ts +2 -2
  1065. package/src/unstable/cli/GlobalFlag.ts +242 -0
  1066. package/src/unstable/cli/HelpDoc.ts +91 -11
  1067. package/src/unstable/cli/Param.ts +15 -11
  1068. package/src/unstable/cli/Primitive.ts +2 -2
  1069. package/src/unstable/cli/Prompt.ts +262 -100
  1070. package/src/unstable/cli/index.ts +10 -0
  1071. package/src/unstable/cli/internal/command.ts +109 -63
  1072. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +10 -4
  1073. package/src/unstable/cli/internal/config.ts +49 -0
  1074. package/src/unstable/cli/internal/help.ts +171 -0
  1075. package/src/unstable/cli/internal/parser.ts +71 -63
  1076. package/src/unstable/cluster/ClusterCron.ts +2 -2
  1077. package/src/unstable/cluster/ClusterWorkflowEngine.ts +40 -34
  1078. package/src/unstable/cluster/DeliverAt.ts +1 -1
  1079. package/src/unstable/cluster/Entity.ts +24 -22
  1080. package/src/unstable/cluster/EntityAddress.ts +1 -1
  1081. package/src/unstable/cluster/EntityResource.ts +4 -4
  1082. package/src/unstable/cluster/Envelope.ts +1 -1
  1083. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  1084. package/src/unstable/cluster/Message.ts +6 -5
  1085. package/src/unstable/cluster/MessageStorage.ts +29 -30
  1086. package/src/unstable/cluster/Reply.ts +7 -4
  1087. package/src/unstable/cluster/Runner.ts +1 -1
  1088. package/src/unstable/cluster/RunnerAddress.ts +1 -1
  1089. package/src/unstable/cluster/RunnerServer.ts +10 -13
  1090. package/src/unstable/cluster/Runners.ts +14 -12
  1091. package/src/unstable/cluster/ShardId.ts +2 -2
  1092. package/src/unstable/cluster/Sharding.ts +36 -27
  1093. package/src/unstable/cluster/ShardingConfig.ts +36 -37
  1094. package/src/unstable/cluster/SqlMessageStorage.ts +21 -18
  1095. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  1096. package/src/unstable/cluster/internal/entityManager.ts +36 -29
  1097. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  1098. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  1099. package/src/unstable/devtools/DevToolsClient.ts +23 -18
  1100. package/src/unstable/devtools/DevToolsSchema.ts +16 -3
  1101. package/src/unstable/encoding/Ndjson.ts +17 -17
  1102. package/src/unstable/encoding/Sse.ts +3 -5
  1103. package/src/unstable/eventlog/EventJournal.ts +2 -2
  1104. package/src/unstable/eventlog/EventLog.ts +3 -2
  1105. package/src/unstable/eventlog/SqlEventLogJournal.ts +2 -2
  1106. package/src/unstable/http/Cookies.ts +94 -11
  1107. package/src/unstable/http/Etag.ts +5 -3
  1108. package/src/unstable/http/Headers.ts +68 -18
  1109. package/src/unstable/http/HttpClient.ts +376 -34
  1110. package/src/unstable/http/HttpClientRequest.ts +151 -39
  1111. package/src/unstable/http/HttpClientResponse.ts +12 -6
  1112. package/src/unstable/http/HttpEffect.ts +54 -68
  1113. package/src/unstable/http/HttpIncomingMessage.ts +3 -2
  1114. package/src/unstable/http/HttpMethod.ts +16 -4
  1115. package/src/unstable/http/HttpMiddleware.ts +25 -39
  1116. package/src/unstable/http/HttpPlatform.ts +3 -2
  1117. package/src/unstable/http/HttpRouter.ts +9 -9
  1118. package/src/unstable/http/HttpServer.ts +3 -9
  1119. package/src/unstable/http/HttpServerError.ts +45 -47
  1120. package/src/unstable/http/HttpServerRequest.ts +407 -16
  1121. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  1122. package/src/unstable/http/HttpServerResponse.ts +345 -7
  1123. package/src/unstable/http/HttpStaticServer.ts +456 -0
  1124. package/src/unstable/http/HttpTraceContext.ts +31 -17
  1125. package/src/unstable/http/Multipart.ts +2 -2
  1126. package/src/unstable/http/Url.ts +650 -0
  1127. package/src/unstable/http/UrlParams.ts +31 -19
  1128. package/src/unstable/http/index.ts +10 -0
  1129. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  1130. package/src/unstable/httpapi/HttpApi.ts +6 -6
  1131. package/src/unstable/httpapi/HttpApiBuilder.ts +106 -41
  1132. package/src/unstable/httpapi/HttpApiClient.ts +180 -28
  1133. package/src/unstable/httpapi/HttpApiEndpoint.ts +216 -104
  1134. package/src/unstable/httpapi/HttpApiError.ts +108 -30
  1135. package/src/unstable/httpapi/HttpApiGroup.ts +7 -6
  1136. package/src/unstable/httpapi/HttpApiMiddleware.ts +83 -22
  1137. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  1138. package/src/unstable/httpapi/HttpApiSchema.ts +20 -2
  1139. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  1140. package/src/unstable/httpapi/OpenApi.ts +43 -29
  1141. package/src/unstable/observability/Otlp.ts +12 -12
  1142. package/src/unstable/observability/OtlpExporter.ts +8 -5
  1143. package/src/unstable/observability/OtlpLogger.ts +13 -9
  1144. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  1145. package/src/unstable/observability/OtlpTracer.ts +12 -8
  1146. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  1147. package/src/unstable/persistence/Persistable.ts +3 -3
  1148. package/src/unstable/persistence/PersistedCache.ts +20 -9
  1149. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  1150. package/src/unstable/persistence/Persistence.ts +3 -3
  1151. package/src/unstable/persistence/RateLimiter.ts +4 -4
  1152. package/src/unstable/process/ChildProcess.ts +6 -208
  1153. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  1154. package/src/unstable/reactivity/Atom.ts +212 -54
  1155. package/src/unstable/reactivity/AtomHttpApi.ts +81 -41
  1156. package/src/unstable/reactivity/AtomRegistry.ts +66 -12
  1157. package/src/unstable/reactivity/AtomRpc.ts +51 -20
  1158. package/src/unstable/reactivity/Hydration.ts +112 -0
  1159. package/src/unstable/reactivity/index.ts +5 -0
  1160. package/src/unstable/rpc/Rpc.ts +11 -12
  1161. package/src/unstable/rpc/RpcClient.ts +22 -63
  1162. package/src/unstable/rpc/RpcGroup.ts +7 -7
  1163. package/src/unstable/rpc/RpcMiddleware.ts +15 -9
  1164. package/src/unstable/rpc/RpcSchema.ts +23 -5
  1165. package/src/unstable/rpc/RpcSerialization.ts +49 -11
  1166. package/src/unstable/rpc/RpcServer.ts +31 -35
  1167. package/src/unstable/rpc/Utils.ts +3 -2
  1168. package/src/unstable/schema/Model.ts +31 -0
  1169. package/src/unstable/schema/VariantSchema.ts +10 -10
  1170. package/src/unstable/socket/Socket.ts +31 -27
  1171. package/src/unstable/sql/Migrator.ts +7 -5
  1172. package/src/unstable/sql/SqlClient.ts +6 -4
  1173. package/src/unstable/sql/SqlError.ts +365 -11
  1174. package/src/unstable/sql/SqlModel.ts +5 -5
  1175. package/src/unstable/sql/SqlResolver.ts +17 -7
  1176. package/src/unstable/sql/SqlSchema.ts +42 -26
  1177. package/src/unstable/sql/Statement.ts +0 -1
  1178. package/src/unstable/workers/Worker.ts +2 -1
  1179. package/src/unstable/workflow/DurableClock.ts +8 -8
  1180. package/src/unstable/workflow/DurableDeferred.ts +8 -8
  1181. package/src/unstable/workflow/Workflow.ts +7 -3
  1182. package/src/unstable/workflow/WorkflowEngine.ts +211 -19
  1183. package/dist/NullOr.d.ts +0 -149
  1184. package/dist/NullOr.d.ts.map +0 -1
  1185. package/dist/NullOr.js +0 -152
  1186. package/dist/NullOr.js.map +0 -1
  1187. package/dist/encoding/Base64.d.ts +0 -67
  1188. package/dist/encoding/Base64.d.ts.map +0 -1
  1189. package/dist/encoding/Base64.js +0 -146
  1190. package/dist/encoding/Base64.js.map +0 -1
  1191. package/dist/encoding/Base64Url.d.ts +0 -60
  1192. package/dist/encoding/Base64Url.d.ts.map +0 -1
  1193. package/dist/encoding/Base64Url.js +0 -89
  1194. package/dist/encoding/Base64Url.js.map +0 -1
  1195. package/dist/encoding/EncodingError.d.ts +0 -31
  1196. package/dist/encoding/EncodingError.d.ts.map +0 -1
  1197. package/dist/encoding/EncodingError.js +0 -22
  1198. package/dist/encoding/EncodingError.js.map +0 -1
  1199. package/dist/encoding/Hex.d.ts +0 -61
  1200. package/dist/encoding/Hex.d.ts.map +0 -1
  1201. package/dist/encoding/Hex.js +0 -115
  1202. package/dist/encoding/Hex.js.map +0 -1
  1203. package/dist/encoding/index.d.ts +0 -26
  1204. package/dist/encoding/index.d.ts.map +0 -1
  1205. package/dist/encoding/index.js +0 -27
  1206. package/dist/encoding/index.js.map +0 -1
  1207. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  1208. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  1209. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  1210. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  1211. package/dist/unstable/cli/internal/completions/Completions.d.ts +0 -2
  1212. package/dist/unstable/cli/internal/completions/Completions.d.ts.map +0 -1
  1213. package/dist/unstable/cli/internal/completions/Completions.js +0 -23
  1214. package/dist/unstable/cli/internal/completions/Completions.js.map +0 -1
  1215. package/src/NullOr.ts +0 -204
  1216. package/src/encoding/Base64.ts +0 -366
  1217. package/src/encoding/Base64Url.ts +0 -104
  1218. package/src/encoding/EncodingError.ts +0 -35
  1219. package/src/encoding/Hex.ts +0 -390
  1220. package/src/encoding/index.ts +0 -31
  1221. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
  1222. package/src/unstable/cli/internal/completions/Completions.ts +0 -31
@@ -51,7 +51,7 @@
51
51
  import type * as Cause from "../../Cause.ts"
52
52
  import * as Effect from "../../Effect.ts"
53
53
  import * as FiberSet from "../../FiberSet.ts"
54
- import { constFalse } from "../../Function.ts"
54
+ import { constFalse, identity, pipe } from "../../Function.ts"
55
55
  import type * as JsonSchema from "../../JsonSchema.ts"
56
56
  import * as Option from "../../Option.ts"
57
57
  import * as Predicate from "../../Predicate.ts"
@@ -69,6 +69,7 @@ import { defaultIdGenerator, IdGenerator } from "./IdGenerator.ts"
69
69
  import * as InternalCodecTransformer from "./internal/codec-transformer.ts"
70
70
  import * as Prompt from "./Prompt.ts"
71
71
  import * as Response from "./Response.ts"
72
+ import * as ResponseIdTracker from "./ResponseIdTracker.ts"
72
73
  import type { SpanTransformer } from "./Telemetry.ts"
73
74
  import { CurrentSpanTransformer } from "./Telemetry.ts"
74
75
  import type * as Tool from "./Tool.ts"
@@ -135,7 +136,7 @@ export interface Service {
135
136
  */
136
137
  readonly generateObject: <
137
138
  ObjectEncoded extends Record<string, any>,
138
- StructuredOutputSchema extends Schema.Codec<any, ObjectEncoded, any, any>,
139
+ StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
139
140
  Options extends NoExcessProperties<
140
141
  GenerateObjectOptions<any, StructuredOutputSchema>,
141
142
  Options
@@ -180,22 +181,6 @@ export type CodecTransformer = <T, E, RD, RE>(schema: Schema.Codec<T, E, RD, RE>
180
181
  readonly jsonSchema: JsonSchema.JsonSchema
181
182
  }
182
183
 
183
- /**
184
- * A `ServiceMap.Reference` that holds the current `CodecTransformer` used by
185
- * `LanguageModel.generateObject` to adapt structured output schemas for the
186
- * active provider.
187
- *
188
- * By default, this is the identity function (no transformation). Provider
189
- * packages (e.g. `@effect/ai-anthropic`) override this reference with a
190
- * provider-specific transformer so that schemas are automatically rewritten
191
- * before being sent to the model as well as before decoding the generated value.
192
- *
193
- * @since 4.0.0
194
- * @category services
195
- */
196
- export const CurrentCodecTransformer: ServiceMap.Reference<CodecTransformer> =
197
- InternalCodecTransformer.CurrentCodecTransformer
198
-
199
184
  /**
200
185
  * The default codec transformer that passes schemas through without
201
186
  * provider-specific rewrites.
@@ -221,15 +206,7 @@ export interface GenerateTextOptions<Tools extends Record<string, Tool.Any>> {
221
206
  * A toolkit containing both the tools and the tool call handler to use to
222
207
  * augment text generation.
223
208
  */
224
- readonly toolkit?:
225
- | Toolkit.WithHandler<Tools>
226
- | Effect.Yieldable<
227
- Toolkit.Toolkit<Tools>,
228
- Toolkit.WithHandler<Tools>,
229
- never,
230
- any
231
- >
232
- | undefined
209
+ readonly toolkit?: ToolkitOption<Tools> | undefined
233
210
 
234
211
  /**
235
212
  * The tool choice mode for the language model.
@@ -483,6 +460,89 @@ export class GenerateObjectResponse<
483
460
  // Utility Types
484
461
  // =============================================================================
485
462
 
463
+ /**
464
+ * The supported toolkit option shapes for language model operations.
465
+ *
466
+ * @since 4.0.0
467
+ * @category utility types
468
+ */
469
+ export type ToolkitOption<
470
+ Tools extends Record<string, Tool.Any>,
471
+ E = never,
472
+ R = any
473
+ > = Tools extends any ? (
474
+ | Toolkit.WithHandler<Tools>
475
+ | Effect.Yieldable<
476
+ Toolkit.Toolkit<Tools>,
477
+ Toolkit.WithHandler<Tools>,
478
+ E,
479
+ R
480
+ >
481
+ )
482
+ : never
483
+
484
+ type ExtractToolsFromToolkitOption<ToolkitValue> = ToolkitValue extends Toolkit.WithHandler<infer Tools> ? Tools
485
+ : ToolkitValue extends Effect.Yieldable<
486
+ Toolkit.Toolkit<infer Tools>,
487
+ Toolkit.WithHandler<infer _Tools>,
488
+ infer _E,
489
+ infer _R
490
+ > ? Tools
491
+ : never
492
+
493
+ /**
494
+ * Utility type that extracts the toolset from LanguageModel options.
495
+ *
496
+ * @since 4.0.0
497
+ * @category utility types
498
+ */
499
+ export type ExtractTools<Options> = Options extends {
500
+ readonly toolkit: infer ToolkitValue
501
+ } ? ExtractToolsFromToolkitOption<Exclude<ToolkitValue, undefined>>
502
+ : {}
503
+
504
+ type ExtractErrorFromToolkitOption<ToolkitValue, DisableToolCallResolution extends boolean> = ToolkitValue extends
505
+ Toolkit.WithHandler<infer Tools> ?
506
+ | AiError.AiError
507
+ | (DisableToolCallResolution extends true ? never : Tool.HandlerError<Tools[keyof Tools]>)
508
+ : ToolkitValue extends Effect.Yieldable<
509
+ Toolkit.Toolkit<infer Tools>,
510
+ Toolkit.WithHandler<infer _Tools>,
511
+ infer E,
512
+ infer _R
513
+ > ? AiError.AiError | E | (DisableToolCallResolution extends true ? never : Tool.HandlerError<Tools[keyof Tools]>)
514
+ : AiError.AiError
515
+
516
+ type ExtractServicesFromToolkitOption<ToolkitValue> = ToolkitValue extends Toolkit.WithHandler<infer Tools> ?
517
+ | Tool.HandlerServices<Tools[keyof Tools]>
518
+ | Tool.ResultDecodingServices<Tools[keyof Tools]>
519
+ : ToolkitValue extends Effect.Yieldable<
520
+ Toolkit.Toolkit<infer Tools>,
521
+ Toolkit.WithHandler<infer _Tools>,
522
+ infer _E,
523
+ infer R
524
+ > ?
525
+ | Tool.HandlerServices<Tools[keyof Tools]>
526
+ | Tool.ResultDecodingServices<Tools[keyof Tools]>
527
+ | R
528
+ : never
529
+
530
+ type ExtractToolkitResolutionError<ToolkitValue> = ToolkitValue extends Effect.Yieldable<
531
+ Toolkit.Toolkit<infer _Tools>,
532
+ Toolkit.WithHandler<infer _Tools>,
533
+ infer E,
534
+ infer _R
535
+ > ? E
536
+ : never
537
+
538
+ type ExtractToolkitResolutionServices<ToolkitValue> = ToolkitValue extends Effect.Yieldable<
539
+ Toolkit.Toolkit<infer _Tools>,
540
+ Toolkit.WithHandler<infer _Tools>,
541
+ infer _E,
542
+ infer R
543
+ > ? R
544
+ : never
545
+
486
546
  /**
487
547
  * Utility type that extracts the error type from LanguageModel options.
488
548
  *
@@ -493,29 +553,15 @@ export class GenerateObjectResponse<
493
553
  * @category utility types
494
554
  */
495
555
  export type ExtractError<Options> = Options extends {
496
- readonly toolkit: Toolkit.WithHandler<infer _Tools>
497
556
  readonly disableToolCallResolution: true
498
- } ? AiError.AiError
499
- : Options extends {
500
- readonly toolkit: Effect.Yieldable<
501
- Toolkit.Toolkit<infer _Tools>,
502
- Toolkit.WithHandler<infer _Tools>,
503
- infer _E,
504
- infer _R
505
- >
506
- readonly disableToolCallResolution: true
507
- } ? AiError.AiError | _E
557
+ readonly toolkit: infer ToolkitValue
558
+ } ? ExtractErrorFromToolkitOption<Exclude<ToolkitValue, undefined>, true>
508
559
  : Options extends {
509
- readonly toolkit: Toolkit.WithHandler<infer _Tools>
510
- } ? AiError.AiError | Tool.HandlerError<_Tools[keyof _Tools]>
560
+ readonly toolkit: infer ToolkitValue
561
+ } ? ExtractErrorFromToolkitOption<Exclude<ToolkitValue, undefined>, false>
511
562
  : Options extends {
512
- readonly toolkit: Effect.Yieldable<
513
- Toolkit.Toolkit<infer _Tools>,
514
- Toolkit.WithHandler<infer _Tools>,
515
- infer _E,
516
- infer _R
517
- >
518
- } ? AiError.AiError | Tool.HandlerError<_Tools[keyof _Tools]> | _E
563
+ readonly disableToolCallResolution: true
564
+ } ? AiError.AiError
519
565
  : AiError.AiError
520
566
 
521
567
  /**
@@ -527,27 +573,11 @@ export type ExtractError<Options> = Options extends {
527
573
  * @category utility types
528
574
  */
529
575
  export type ExtractServices<Options> = Options extends {
530
- readonly toolkit: Toolkit.WithHandler<infer _Tools>
531
- }
532
- // Required for tool call execution
533
- ?
534
- | Tool.ResultEncodingServices<_Tools[keyof _Tools]>
535
- // Required for decoding large language model responses
536
- | Tool.ResultDecodingServices<_Tools[keyof _Tools]>
576
+ readonly disableToolCallResolution: true
577
+ } ? never
537
578
  : Options extends {
538
- readonly toolkit: Effect.Yieldable<
539
- Toolkit.Toolkit<infer _Tools>,
540
- Toolkit.WithHandler<infer _Tools>,
541
- infer _E,
542
- infer _R
543
- >
544
- }
545
- // Required for tool call execution
546
- ?
547
- | Tool.ResultEncodingServices<_Tools[keyof _Tools]>
548
- // Required for decoding large language model responses
549
- | Tool.ResultDecodingServices<_Tools[keyof _Tools]>
550
- | _R
579
+ readonly toolkit: infer Toolkit
580
+ } ? ExtractServicesFromToolkitOption<Exclude<Toolkit, undefined>>
551
581
  : never
552
582
 
553
583
  // =============================================================================
@@ -619,15 +649,28 @@ export interface ProviderOptions {
619
649
  * The span to use to trace interactions with the large language model.
620
650
  */
621
651
  readonly span: Span
652
+
653
+ /**
654
+ * The previous response identifier for incremental provider calls.
655
+ */
656
+ readonly previousResponseId: string | undefined
657
+
658
+ /**
659
+ * The prompt reduced to messages not yet seen by the provider.
660
+ */
661
+ readonly incrementalPrompt: Prompt.Prompt | undefined
622
662
  }
623
663
 
624
664
  /**
625
- * Parameters required to construct a LanguageModel service.
665
+ * Creates a LanguageModel service from provider-specific implementations.
666
+ *
667
+ * This constructor takes provider-specific implementations for text generation
668
+ * and streaming text generation and returns a LanguageModel service.
626
669
  *
627
670
  * @since 4.0.0
628
- * @category models
671
+ * @category constructors
629
672
  */
630
- export interface ConstructorParams {
673
+ export const make: (params: {
631
674
  /**
632
675
  * A method which requests text generation from the large language model
633
676
  * provider.
@@ -648,19 +691,14 @@ export interface ConstructorParams {
648
691
  readonly streamText: (
649
692
  options: ProviderOptions
650
693
  ) => Stream.Stream<Response.StreamPartEncoded, AiError.AiError, IdGenerator>
651
- }
652
694
 
653
- /**
654
- * Creates a LanguageModel service from provider-specific implementations.
655
- *
656
- * This constructor takes provider-specific implementations for text generation
657
- * and streaming text generation and returns a LanguageModel service.
658
- *
659
- * @since 4.0.0
660
- * @category constructors
661
- */
662
- export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effect.fnUntraced(function*(params) {
663
- const codecTransformer = yield* InternalCodecTransformer.CurrentCodecTransformer
695
+ /**
696
+ * A function that transforms a `Schema.Codec` into a provider-compatible form
697
+ * for structured output generation.
698
+ */
699
+ readonly codecTransformer?: CodecTransformer | undefined
700
+ }) => Effect.Effect<Service> = Effect.fnUntraced(function*(params) {
701
+ const codecTransformer = params.codecTransformer ?? defaultCodecTransformer
664
702
 
665
703
  const parentSpanTransformer = yield* Effect.serviceOption(
666
704
  CurrentSpanTransformer
@@ -700,7 +738,9 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
700
738
  tools: [],
701
739
  toolChoice: "none",
702
740
  responseFormat: { type: "text" },
703
- span
741
+ span,
742
+ previousResponseId: undefined,
743
+ incrementalPrompt: undefined
704
744
  }
705
745
  const content = yield* generateContent(options, providerOptions)
706
746
 
@@ -721,14 +761,13 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
721
761
  })
722
762
  )),
723
763
  (effect, span) => Effect.withParentSpan(effect, span, { captureStackTrace: false }),
724
- Effect.provideService(IdGenerator, idGenerator),
725
- Effect.provideService(InternalCodecTransformer.CurrentCodecTransformer, codecTransformer)
764
+ Effect.provideService(IdGenerator, idGenerator)
726
765
  )
727
766
  ) as any
728
767
 
729
768
  const generateObject = <
730
769
  ObjectEncoded extends Record<string, any>,
731
- StructuredOutputSchema extends Schema.Codec<any, ObjectEncoded, any, any>,
770
+ StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
732
771
  Options extends NoExcessProperties<
733
772
  GenerateObjectOptions<any, StructuredOutputSchema>,
734
773
  Options
@@ -764,7 +803,9 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
764
803
  objectName,
765
804
  schema: options.schema
766
805
  },
767
- span
806
+ span,
807
+ previousResponseId: undefined,
808
+ incrementalPrompt: undefined
768
809
  }
769
810
 
770
811
  const content = yield* generateContent(options, providerOptions)
@@ -800,8 +841,7 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
800
841
  })
801
842
  )),
802
843
  (effect, span) => Effect.withParentSpan(effect, span, { captureStackTrace: false }),
803
- Effect.provideService(IdGenerator, idGenerator),
804
- Effect.provideService(InternalCodecTransformer.CurrentCodecTransformer, codecTransformer)
844
+ Effect.provideService(IdGenerator, idGenerator)
805
845
  )
806
846
  ) as any
807
847
  }
@@ -832,7 +872,9 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
832
872
  tools: [],
833
873
  toolChoice: "none",
834
874
  responseFormat: { type: "text" },
835
- span
875
+ span,
876
+ previousResponseId: undefined,
877
+ incrementalPrompt: undefined
836
878
  }
837
879
 
838
880
  // Resolve the content stream for the request
@@ -872,8 +914,7 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
872
914
  })
873
915
  : error
874
916
  ),
875
- Stream.provideService(IdGenerator, idGenerator),
876
- Stream.provideService(InternalCodecTransformer.CurrentCodecTransformer, codecTransformer)
917
+ Stream.provideService(IdGenerator, idGenerator)
877
918
  ) as any
878
919
 
879
920
  const generateContent: <
@@ -893,8 +934,27 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
893
934
  options: Options & GenerateTextOptions<Tools>,
894
935
  providerOptions: Mutable<ProviderOptions>
895
936
  ) {
937
+ const tracker = Option.getOrUndefined(yield* Effect.serviceOption(ResponseIdTracker.ResponseIdTracker))
896
938
  const toolChoice = options.toolChoice ?? "auto"
897
939
 
940
+ const generateWithNonIncrementalFallback = () => {
941
+ const requestOptions: ProviderOptions = {
942
+ ...providerOptions
943
+ }
944
+ const fallbackPrompt = requestOptions.prompt
945
+ const fallbackOptions: ProviderOptions = {
946
+ ...requestOptions,
947
+ prompt: fallbackPrompt,
948
+ incrementalPrompt: undefined,
949
+ previousResponseId: undefined
950
+ }
951
+ return requestOptions.incrementalPrompt
952
+ ? params.generateText(requestOptions).pipe(
953
+ Effect.catchReason("AiError", "InvalidRequestError", (_) => params.generateText(fallbackOptions))
954
+ )
955
+ : params.generateText(requestOptions)
956
+ }
957
+
898
958
  // Check for pending approvals that need resolution
899
959
  const { approved, denied } = collectToolApprovals(
900
960
  providerOptions.prompt.content,
@@ -916,11 +976,24 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
916
976
  })
917
977
  })
918
978
  }
979
+ if (tracker) {
980
+ const prepared = tracker.prepareUnsafe(providerOptions.prompt)
981
+ if (Option.isSome(prepared)) {
982
+ providerOptions.previousResponseId = prepared.value.previousResponseId
983
+ providerOptions.incrementalPrompt = prepared.value.prompt
984
+ }
985
+ }
919
986
  const ResponseSchema = Schema.mutable(
920
987
  Schema.Array(Response.Part(Toolkit.empty))
921
988
  )
922
- const rawContent = yield* params.generateText(providerOptions)
989
+ const rawContent = yield* generateWithNonIncrementalFallback()
923
990
  const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
991
+ if (tracker) {
992
+ const responseMetadata = content.find((part) => part.type === "response-metadata")
993
+ if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
994
+ tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
995
+ }
996
+ }
924
997
  return content as Array<Response.Part<Tools>>
925
998
  }
926
999
 
@@ -941,17 +1014,29 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
941
1014
  })
942
1015
  })
943
1016
  }
1017
+ if (tracker) {
1018
+ const prepared = tracker.prepareUnsafe(providerOptions.prompt)
1019
+ if (Option.isSome(prepared)) {
1020
+ providerOptions.previousResponseId = prepared.value.previousResponseId
1021
+ providerOptions.incrementalPrompt = prepared.value.prompt
1022
+ }
1023
+ }
944
1024
  const ResponseSchema = Schema.mutable(
945
1025
  Schema.Array(Response.Part(Toolkit.empty))
946
1026
  )
947
- const rawContent = yield* params.generateText(providerOptions)
1027
+ const rawContent = yield* generateWithNonIncrementalFallback()
948
1028
  const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
1029
+ if (tracker) {
1030
+ const responseMetadata = content.find((part) => part.type === "response-metadata")
1031
+ if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
1032
+ tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
1033
+ }
1034
+ }
949
1035
  return content as Array<Response.Part<Tools>>
950
1036
  }
951
1037
 
952
- // Pre-resolve tool approvals before calling the LLM
1038
+ // Pre-resolve pending tool approvals before calling the LLM
953
1039
  if (hasPendingApprovals) {
954
- // Validate all approved tools exist in the toolkit
955
1040
  for (const approval of approved) {
956
1041
  if (approval.toolCall && !toolkit.tools[approval.toolCall.name]) {
957
1042
  return yield* AiError.make({
@@ -965,7 +1050,6 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
965
1050
  }
966
1051
  }
967
1052
 
968
- // Execute approved tools and create denial results
969
1053
  const approvedResults = yield* executeApprovedToolCalls(
970
1054
  approved,
971
1055
  toolkit,
@@ -974,24 +1058,43 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
974
1058
  const deniedResults = createDenialResults(denied)
975
1059
  const preResolvedResults = [...approvedResults, ...deniedResults]
976
1060
 
977
- // Add pre-resolved results to the prompt
978
1061
  if (preResolvedResults.length > 0) {
979
- const toolMessage = Prompt.makeMessage("tool", {
980
- content: preResolvedResults
981
- })
982
1062
  providerOptions.prompt = Prompt.fromMessages([
983
1063
  ...providerOptions.prompt.content,
984
- toolMessage
1064
+ Prompt.makeMessage("tool", { content: preResolvedResults })
985
1065
  ])
986
1066
  }
987
1067
  }
988
1068
 
1069
+ // Strip all resolved approval artifacts (both current and from previous
1070
+ // rounds) in a single pass before sending to the provider.
1071
+ {
1072
+ const { approved: allResolved, denied: allDenied } = collectToolApprovals(
1073
+ providerOptions.prompt.content
1074
+ )
1075
+ if (allResolved.length > 0 || allDenied.length > 0) {
1076
+ providerOptions.prompt = stripResolvedApprovals(
1077
+ providerOptions.prompt,
1078
+ allResolved,
1079
+ allDenied
1080
+ )
1081
+ }
1082
+ }
1083
+
989
1084
  const tools = typeof toolChoice === "object" && "oneOf" in toolChoice
990
1085
  ? Object.values(toolkit.tools).filter((tool) => toolChoice.oneOf.includes(tool.name))
991
1086
  : Object.values(toolkit.tools)
992
1087
  providerOptions.tools = tools
993
1088
  providerOptions.toolChoice = toolChoice
994
1089
 
1090
+ if (tracker) {
1091
+ const prepared = tracker.prepareUnsafe(providerOptions.prompt)
1092
+ if (Option.isSome(prepared)) {
1093
+ providerOptions.previousResponseId = prepared.value.previousResponseId
1094
+ providerOptions.incrementalPrompt = prepared.value.prompt
1095
+ }
1096
+ }
1097
+
995
1098
  // Construct the response schema with the tools from the toolkit
996
1099
  const ResponseSchema = Schema.mutable(
997
1100
  Schema.Array(Response.Part(toolkit))
@@ -1000,12 +1103,18 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1000
1103
  // If tool call resolution is disabled, return the response without
1001
1104
  // resolving the tool calls that were generated
1002
1105
  if (options.disableToolCallResolution === true) {
1003
- const rawContent = yield* params.generateText(providerOptions)
1106
+ const rawContent = yield* generateWithNonIncrementalFallback()
1004
1107
  const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
1108
+ if (tracker) {
1109
+ const responseMetadata = content.find((part) => part.type === "response-metadata")
1110
+ if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
1111
+ tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
1112
+ }
1113
+ }
1005
1114
  return content as Array<Response.Part<Tools>>
1006
1115
  }
1007
1116
 
1008
- const rawContent = yield* params.generateText(providerOptions)
1117
+ const rawContent = yield* generateWithNonIncrementalFallback()
1009
1118
 
1010
1119
  // Resolve the generated tool calls
1011
1120
  const toolResults = yield* resolveToolCalls(
@@ -1024,6 +1133,13 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1024
1133
 
1025
1134
  const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
1026
1135
 
1136
+ if (tracker) {
1137
+ const responseMetadata = content.find((part) => part.type === "response-metadata")
1138
+ if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
1139
+ tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
1140
+ }
1141
+ }
1142
+
1027
1143
  // Return the content merged with the tool call results
1028
1144
  return [...content, ...toolResults] as Array<Response.Part<Tools>>
1029
1145
  })
@@ -1040,21 +1156,11 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1040
1156
  AiError.AiError | Schema.SchemaError,
1041
1157
  IdGenerator
1042
1158
  >,
1043
- Options extends {
1044
- readonly toolkit: Effect.Effect<
1045
- Toolkit.WithHandler<Tools>,
1046
- infer _E,
1047
- infer _R
1048
- >
1049
- } ? _E
1159
+ Options extends { readonly toolkit: infer ToolkitValue } ?
1160
+ ExtractToolkitResolutionError<Exclude<ToolkitValue, undefined>>
1050
1161
  : never,
1051
- Options extends {
1052
- readonly toolkit: Effect.Effect<
1053
- Toolkit.WithHandler<Tools>,
1054
- infer _E,
1055
- infer _R
1056
- >
1057
- } ? _R
1162
+ Options extends { readonly toolkit: infer ToolkitValue } ?
1163
+ ExtractToolkitResolutionServices<Exclude<ToolkitValue, undefined>>
1058
1164
  : never
1059
1165
  > = Effect.fnUntraced(function*<
1060
1166
  Tools extends Record<string, Tool.Any>,
@@ -1063,8 +1169,27 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1063
1169
  options: Options & GenerateTextOptions<Tools>,
1064
1170
  providerOptions: Mutable<ProviderOptions>
1065
1171
  ) {
1172
+ const tracker = Option.getOrUndefined(yield* Effect.serviceOption(ResponseIdTracker.ResponseIdTracker))
1066
1173
  const toolChoice = options.toolChoice ?? "auto"
1067
1174
 
1175
+ const streamWithNonIncrementalFallback = () => {
1176
+ const requestOptions: ProviderOptions = {
1177
+ ...providerOptions
1178
+ }
1179
+ const fallbackPrompt = requestOptions.prompt
1180
+ const fallbackOptions: ProviderOptions = {
1181
+ ...requestOptions,
1182
+ prompt: fallbackPrompt,
1183
+ incrementalPrompt: undefined,
1184
+ previousResponseId: undefined
1185
+ }
1186
+ return requestOptions.incrementalPrompt
1187
+ ? params.streamText(requestOptions).pipe(
1188
+ Stream.catchReason("AiError", "InvalidRequestError", (_) => params.streamText(fallbackOptions))
1189
+ )
1190
+ : params.streamText(requestOptions)
1191
+ }
1192
+
1068
1193
  // Check for pending approvals that need resolution
1069
1194
  const { approved: pendingApproved, denied: pendingDenied } = collectToolApprovals(providerOptions.prompt.content, {
1070
1195
  excludeResolved: true
@@ -1085,23 +1210,40 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1085
1210
  })
1086
1211
  })
1087
1212
  }
1213
+ if (tracker) {
1214
+ const prepared = tracker.prepareUnsafe(providerOptions.prompt)
1215
+ if (Option.isSome(prepared)) {
1216
+ providerOptions.previousResponseId = prepared.value.previousResponseId
1217
+ providerOptions.incrementalPrompt = prepared.value.prompt
1218
+ }
1219
+ }
1088
1220
  const schema = Schema.NonEmptyArray(Response.StreamPart(Toolkit.empty))
1089
1221
  const decodeParts = Schema.decodeEffect(schema)
1090
- return params
1091
- .streamText(providerOptions)
1092
- .pipe(
1093
- Stream.mapArrayEffect((parts) => decodeParts(parts))
1094
- ) as Stream.Stream<
1095
- Response.StreamPart<Tools>,
1096
- AiError.AiError | Schema.SchemaError,
1097
- IdGenerator
1098
- >
1222
+ return pipe(
1223
+ streamWithNonIncrementalFallback(),
1224
+ Stream.mapArrayEffect((parts) =>
1225
+ decodeParts(parts).pipe(
1226
+ tracker ?
1227
+ Effect.tap((decodedParts) => {
1228
+ for (const part of decodedParts) {
1229
+ if (part.type === "response-metadata" && Predicate.isNotUndefined(part.id)) {
1230
+ tracker.markParts(providerOptions.prompt.content, part.id)
1231
+ }
1232
+ }
1233
+ return Effect.void
1234
+ }) :
1235
+ identity
1236
+ )
1237
+ )
1238
+ ) as Stream.Stream<
1239
+ Response.StreamPart<Tools>,
1240
+ AiError.AiError | Schema.SchemaError,
1241
+ IdGenerator
1242
+ >
1099
1243
  }
1100
1244
 
1101
1245
  // If there is a toolkit resolve and apply it to the provider options
1102
- const toolkit = "asEffect" in options.toolkit
1103
- ? yield* options.toolkit
1104
- : options.toolkit
1246
+ const toolkit = yield* resolveToolkit<Tools, any, any>(options.toolkit)
1105
1247
 
1106
1248
  // If the toolkit is empty, return immediately
1107
1249
  if (Object.values(toolkit.tools).length === 0) {
@@ -1117,22 +1259,42 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1117
1259
  })
1118
1260
  })
1119
1261
  }
1262
+ if (tracker) {
1263
+ const prepared = tracker.prepareUnsafe(providerOptions.prompt)
1264
+ if (Option.isSome(prepared)) {
1265
+ providerOptions.previousResponseId = prepared.value.previousResponseId
1266
+ providerOptions.incrementalPrompt = prepared.value.prompt
1267
+ }
1268
+ }
1120
1269
  const schema = Schema.NonEmptyArray(Response.StreamPart(Toolkit.empty))
1121
1270
  const decodeParts = Schema.decodeEffect(schema)
1122
- return params
1123
- .streamText(providerOptions)
1124
- .pipe(
1125
- Stream.mapArrayEffect((parts) => decodeParts(parts))
1126
- ) as Stream.Stream<
1127
- Response.StreamPart<Tools>,
1128
- AiError.AiError | Schema.SchemaError,
1129
- IdGenerator
1130
- >
1271
+ return pipe(
1272
+ streamWithNonIncrementalFallback(),
1273
+ Stream.mapArrayEffect((parts) =>
1274
+ decodeParts(parts).pipe(
1275
+ tracker ?
1276
+ Effect.tap((decodedParts) => {
1277
+ for (const part of decodedParts) {
1278
+ if (part.type === "response-metadata" && part.id) {
1279
+ tracker.markParts(providerOptions.prompt.content, part.id)
1280
+ }
1281
+ }
1282
+ return Effect.void
1283
+ }) :
1284
+ identity
1285
+ )
1286
+ )
1287
+ ) as Stream.Stream<
1288
+ Response.StreamPart<Tools>,
1289
+ AiError.AiError | Schema.SchemaError,
1290
+ IdGenerator
1291
+ >
1131
1292
  }
1132
1293
 
1133
- // Pre-resolve tool approvals before calling the LLM
1294
+ // Pre-resolve pending tool approvals before calling the LLM
1295
+ let preResolvedStreamParts: Array<Response.StreamPart<Tools>> = []
1296
+
1134
1297
  if (hasPendingApprovals) {
1135
- // Validate all approved tools exist in the toolkit
1136
1298
  for (const approval of pendingApproved) {
1137
1299
  if (approval.toolCall && !toolkit.tools[approval.toolCall.name]) {
1138
1300
  return yield* AiError.make({
@@ -1146,7 +1308,6 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1146
1308
  }
1147
1309
  }
1148
1310
 
1149
- // Execute approved tools and create denial results
1150
1311
  const approvedResults = yield* executeApprovedToolCalls(
1151
1312
  pendingApproved,
1152
1313
  toolkit,
@@ -1155,16 +1316,44 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1155
1316
  const deniedResults = createDenialResults(pendingDenied)
1156
1317
  const preResolvedResults = [...approvedResults, ...deniedResults]
1157
1318
 
1158
- // Add pre-resolved results to the prompt
1159
1319
  if (preResolvedResults.length > 0) {
1160
- const toolMessage = Prompt.makeMessage("tool", {
1161
- content: preResolvedResults
1162
- })
1163
1320
  providerOptions.prompt = Prompt.fromMessages([
1164
1321
  ...providerOptions.prompt.content,
1165
- toolMessage
1322
+ Prompt.makeMessage("tool", { content: preResolvedResults })
1166
1323
  ])
1167
1324
  }
1325
+
1326
+ // Emit pre-resolved tool-results as stream parts so Chat.streamText
1327
+ // persists them to history. This lets collectToolApprovals find them
1328
+ // on subsequent rounds and skip the now-resolved approvals.
1329
+ // Note: r.result is already encoded (from executeApprovedToolCalls /
1330
+ // createDenialResults), so it goes into both result and encodedResult.
1331
+ for (const r of preResolvedResults) {
1332
+ preResolvedStreamParts.push(
1333
+ Response.makePart("tool-result", {
1334
+ id: r.id,
1335
+ name: r.name,
1336
+ providerExecuted: false,
1337
+ preliminary: false,
1338
+ result: r.result,
1339
+ encodedResult: r.result,
1340
+ isFailure: r.isFailure
1341
+ }) as Response.StreamPart<Tools>
1342
+ )
1343
+ }
1344
+ }
1345
+
1346
+ // Strip all resolved approval artifacts (both current and from previous
1347
+ // rounds) in a single pass before sending to the provider.
1348
+ const { approved: allResolved, denied: allDenied } = collectToolApprovals(
1349
+ providerOptions.prompt.content
1350
+ )
1351
+ if (allResolved.length > 0 || allDenied.length > 0) {
1352
+ providerOptions.prompt = stripResolvedApprovals(
1353
+ providerOptions.prompt,
1354
+ allResolved,
1355
+ allDenied
1356
+ )
1168
1357
  }
1169
1358
 
1170
1359
  const tools = typeof toolChoice === "object" && "oneOf" in toolChoice
@@ -1173,20 +1362,39 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1173
1362
  providerOptions.tools = tools
1174
1363
  providerOptions.toolChoice = toolChoice
1175
1364
 
1365
+ if (tracker) {
1366
+ const prepared = tracker.prepareUnsafe(providerOptions.prompt)
1367
+ if (Option.isSome(prepared)) {
1368
+ providerOptions.previousResponseId = prepared.value.previousResponseId
1369
+ providerOptions.incrementalPrompt = prepared.value.prompt
1370
+ }
1371
+ }
1372
+
1176
1373
  // If tool call resolution is disabled, return the response without
1177
1374
  // resolving the tool calls that were generated
1178
1375
  if (options.disableToolCallResolution === true) {
1179
1376
  const schema = Schema.NonEmptyArray(Response.StreamPart(toolkit))
1180
1377
  const decodeParts = Schema.decodeEffect(schema)
1181
- return params
1182
- .streamText(providerOptions)
1183
- .pipe(
1184
- Stream.mapArrayEffect((parts) => decodeParts(parts))
1185
- ) as Stream.Stream<
1186
- Response.StreamPart<Tools>,
1187
- AiError.AiError | Schema.SchemaError,
1188
- IdGenerator
1189
- >
1378
+ return streamWithNonIncrementalFallback().pipe(
1379
+ Stream.mapArrayEffect((parts) =>
1380
+ decodeParts(parts).pipe(
1381
+ tracker ?
1382
+ Effect.tap((decodedParts) => {
1383
+ for (const part of decodedParts) {
1384
+ if (part.type === "response-metadata" && Predicate.isNotUndefined(part.id)) {
1385
+ tracker.markParts(providerOptions.prompt.content, part.id)
1386
+ }
1387
+ }
1388
+ return Effect.void
1389
+ }) :
1390
+ identity
1391
+ )
1392
+ )
1393
+ ) as Stream.Stream<
1394
+ Response.StreamPart<Tools>,
1395
+ AiError.AiError | Schema.SchemaError,
1396
+ IdGenerator
1397
+ >
1190
1398
  }
1191
1399
 
1192
1400
  const ResponseSchema = Schema.NonEmptyArray(Response.StreamPart(toolkit))
@@ -1196,59 +1404,81 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1196
1404
  const queue = yield* Queue.make<
1197
1405
  Response.StreamPart<Tools>,
1198
1406
  | AiError.AiError
1199
- | AiError.AiErrorReason
1200
1407
  | Cause.Done
1201
1408
  | Schema.SchemaError
1202
1409
  >()
1410
+ const deferredFinishParts: Array<Response.StreamPart<Tools>> = []
1411
+
1412
+ // Emit pre-resolved tool results so Chat.streamText persists them to
1413
+ // history. This ensures collectToolApprovals({ excludeResolved }) can
1414
+ // find the corresponding tool-results on future rounds.
1415
+ if (preResolvedStreamParts.length > 0) {
1416
+ yield* Queue.offerAll(queue, preResolvedStreamParts)
1417
+ }
1203
1418
 
1204
1419
  // FiberSet to track concurrent tool call handlers
1205
1420
  const toolCallFibers = yield* FiberSet.make<void, AiError.AiError>()
1206
1421
 
1207
1422
  // Helper function to handle tool calls with approval logic
1208
- const handleToolCall = (part: Response.ToolCallPartEncoded) =>
1209
- Effect.gen(function*() {
1210
- const tool = toolkit.tools[part.name]
1211
- if (!tool) {
1212
- return
1213
- }
1423
+ const handleToolCall = Effect.fnUntraced(function*(part: Response.ToolCallPartEncoded) {
1424
+ const tool = toolkit.tools[part.name]
1425
+ if (!tool) return
1426
+
1427
+ const needsApproval = yield* isApprovalNeeded(
1428
+ tool,
1429
+ part,
1430
+ providerOptions.prompt.content
1431
+ )
1214
1432
 
1215
- const needsApproval = yield* isApprovalNeeded(
1216
- tool,
1217
- part,
1218
- providerOptions.prompt.content
1219
- )
1433
+ if (needsApproval) {
1434
+ const idGen = yield* IdGenerator
1435
+ const approvalId = yield* idGen.generateId()
1436
+ const approvalPart = Response.makePart("tool-approval-request", {
1437
+ approvalId,
1438
+ toolCallId: part.id
1439
+ }) as Response.StreamPart<Tools>
1440
+ yield* Queue.offer(queue, approvalPart)
1441
+ return
1442
+ }
1220
1443
 
1221
- if (needsApproval) {
1222
- const idGen = yield* IdGenerator
1223
- const approvalId = yield* idGen.generateId()
1224
- const approvalPart = Response.makePart("tool-approval-request", {
1225
- approvalId,
1226
- toolCallId: part.id
1444
+ yield* toolkit.handle(part.name, part.params as any).pipe(
1445
+ Stream.unwrap,
1446
+ Stream.runForEach((result) => {
1447
+ const toolResultPart = Response.makePart("tool-result", {
1448
+ id: part.id,
1449
+ name: part.name,
1450
+ providerExecuted: false,
1451
+ ...result
1227
1452
  }) as Response.StreamPart<Tools>
1228
- yield* Queue.offer(queue, approvalPart)
1229
- return
1230
- }
1231
-
1232
- yield* toolkit.handle(part.name, part.params as any).pipe(
1233
- Stream.unwrap,
1234
- Stream.runForEach((result) => {
1235
- const toolResultPart = Response.makePart("tool-result", {
1236
- id: part.id,
1237
- name: part.name,
1238
- providerExecuted: false,
1239
- ...result
1240
- }) as Response.StreamPart<Tools>
1241
- return Queue.offer(queue, toolResultPart)
1242
- })
1243
- )
1244
- })
1453
+ return Queue.offer(queue, toolResultPart)
1454
+ })
1455
+ )
1456
+ })
1245
1457
 
1246
- yield* params.streamText(providerOptions).pipe(
1458
+ yield* streamWithNonIncrementalFallback().pipe(
1247
1459
  Stream.runForEachArray(
1248
1460
  Effect.fnUntraced(function*(chunk) {
1249
1461
  const parts = yield* decodeParts(chunk)
1250
- // Add decoded response parts to the output queue
1251
- yield* Queue.offerAll(queue, parts)
1462
+ if (tracker) {
1463
+ for (const part of parts) {
1464
+ if (part.type === "response-metadata" && part.id) {
1465
+ tracker.markParts(providerOptions.prompt.content, part.id)
1466
+ }
1467
+ }
1468
+ }
1469
+ // Defer finish parts until all tool handlers complete. This guarantees
1470
+ // tool results are emitted before finish in streaming mode.
1471
+ const immediateParts: Array<Response.StreamPart<Tools>> = []
1472
+ for (const part of parts) {
1473
+ if (part.type === "finish") {
1474
+ deferredFinishParts.push(part)
1475
+ } else {
1476
+ immediateParts.push(part)
1477
+ }
1478
+ }
1479
+ if (immediateParts.length > 0) {
1480
+ yield* Queue.offerAll(queue, immediateParts)
1481
+ }
1252
1482
  // Fork tool call handlers - use the raw chunk for encoded params
1253
1483
  for (const part of chunk) {
1254
1484
  if (part.type === "tool-call" && part.providerExecuted !== true) {
@@ -1266,6 +1496,9 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1266
1496
  FiberSet.awaitEmpty(toolCallFibers)
1267
1497
  )
1268
1498
  ),
1499
+ Effect.andThen(
1500
+ Queue.offerAll(queue, deferredFinishParts)
1501
+ ),
1269
1502
  // And then end the queue
1270
1503
  Effect.andThen(Queue.end(queue)),
1271
1504
  Effect.tapCause((cause) => Queue.failCause(queue, cause)),
@@ -1310,20 +1543,27 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
1310
1543
  * @since 4.0.0
1311
1544
  * @category text generation
1312
1545
  */
1313
- export const generateText = <
1314
- Options extends NoExcessProperties<GenerateTextOptions<any>, Options>,
1315
- Tools extends Record<string, Tool.Any> = {}
1546
+ export function generateText<
1547
+ Options extends NoExcessProperties<GenerateTextOptions<any>, Options>
1316
1548
  >(
1317
- options: Options & GenerateTextOptions<Tools>
1549
+ options: Options & GenerateTextOptions<ExtractTools<Options>>
1318
1550
  ): Effect.Effect<
1319
- GenerateTextResponse<Tools>,
1551
+ GenerateTextResponse<ExtractTools<Options>>,
1320
1552
  ExtractError<Options>,
1321
1553
  LanguageModel | ExtractServices<Options>
1322
- > =>
1323
- Effect.flatMap(
1554
+ >
1555
+ export function generateText(
1556
+ options: GenerateTextOptions<any>
1557
+ ): Effect.Effect<
1558
+ GenerateTextResponse<any>,
1559
+ AiError.AiError,
1560
+ LanguageModel
1561
+ > {
1562
+ return Effect.flatMap(
1324
1563
  Effect.service(LanguageModel),
1325
- (model) => model.generateText(options)
1564
+ (model) => model.generateText(options as any)
1326
1565
  )
1566
+ }
1327
1567
 
1328
1568
  /**
1329
1569
  * Generate a structured object from a schema using a language model.
@@ -1357,25 +1597,32 @@ export const generateText = <
1357
1597
  * @since 4.0.0
1358
1598
  * @category object generation
1359
1599
  */
1360
- export const generateObject = <
1600
+ export function generateObject<
1361
1601
  ObjectEncoded extends Record<string, any>,
1362
- StructuredOutputSchema extends Schema.Codec<any, ObjectEncoded, any, any>,
1602
+ StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
1363
1603
  Options extends NoExcessProperties<
1364
1604
  GenerateObjectOptions<any, StructuredOutputSchema>,
1365
1605
  Options
1366
- >,
1367
- Tools extends Record<string, Tool.Any> = {}
1606
+ >
1368
1607
  >(
1369
- options: Options & GenerateObjectOptions<Tools, StructuredOutputSchema>
1608
+ options: Options & GenerateObjectOptions<ExtractTools<Options>, StructuredOutputSchema>
1370
1609
  ): Effect.Effect<
1371
- GenerateObjectResponse<Tools, StructuredOutputSchema["Type"]>,
1610
+ GenerateObjectResponse<ExtractTools<Options>, StructuredOutputSchema["Type"]>,
1372
1611
  ExtractError<Options>,
1373
1612
  ExtractServices<Options> | StructuredOutputSchema["DecodingServices"] | LanguageModel
1374
- > =>
1375
- Effect.flatMap(
1613
+ >
1614
+ export function generateObject(
1615
+ options: GenerateObjectOptions<any, Schema.Top>
1616
+ ): Effect.Effect<
1617
+ GenerateObjectResponse<any, any>,
1618
+ AiError.AiError,
1619
+ LanguageModel
1620
+ > {
1621
+ return Effect.flatMap(
1376
1622
  Effect.service(LanguageModel),
1377
- (model) => model.generateObject(options)
1378
- )
1623
+ (model) => model.generateObject(options as any)
1624
+ ) as any
1625
+ }
1379
1626
 
1380
1627
  /**
1381
1628
  * Generate text using a language model with streaming output.
@@ -1401,20 +1648,27 @@ export const generateObject = <
1401
1648
  * @since 4.0.0
1402
1649
  * @category text generation
1403
1650
  */
1404
- export const streamText = <
1405
- Options extends NoExcessProperties<GenerateTextOptions<any>, Options>,
1406
- Tools extends Record<string, Tool.Any> = {}
1651
+ export function streamText<
1652
+ Options extends NoExcessProperties<GenerateTextOptions<any>, Options>
1407
1653
  >(
1408
- options: Options & GenerateTextOptions<Tools>
1654
+ options: Options & GenerateTextOptions<ExtractTools<Options>>
1409
1655
  ): Stream.Stream<
1410
- Response.StreamPart<Tools>,
1656
+ Response.StreamPart<ExtractTools<Options>>,
1411
1657
  ExtractError<Options>,
1412
1658
  ExtractServices<Options> | LanguageModel
1413
- > =>
1414
- Stream.unwrap(Effect.map(
1659
+ >
1660
+ export function streamText(
1661
+ options: GenerateTextOptions<any>
1662
+ ): Stream.Stream<
1663
+ Response.StreamPart<any>,
1664
+ AiError.AiError,
1665
+ LanguageModel
1666
+ > {
1667
+ return Stream.unwrap(Effect.map(
1415
1668
  Effect.service(LanguageModel),
1416
- (model) => model.streamText(options)
1417
- ))
1669
+ (model) => model.streamText(options as any)
1670
+ )) as any
1671
+ }
1418
1672
 
1419
1673
  // =============================================================================
1420
1674
  // Tool Approval Helpers
@@ -1506,6 +1760,63 @@ const collectToolApprovals = (
1506
1760
  return { approved, denied }
1507
1761
  }
1508
1762
 
1763
+ /**
1764
+ * Strip resolved approval artifacts from the prompt before sending to the
1765
+ * provider. After pre-resolving approvals (executing approved tools and
1766
+ * creating denial results), the original `tool-approval-request` parts in
1767
+ * assistant messages and `tool-approval-response` parts in tool messages are
1768
+ * no longer needed. Leaving them in causes provider-specific errors (e.g.
1769
+ * OpenAI rejects `mcp_approval_response` items that reference approval
1770
+ * requests it never issued).
1771
+ */
1772
+ const stripResolvedApprovals = (
1773
+ prompt: Prompt.Prompt,
1774
+ approved: ReadonlyArray<ApprovalResult>,
1775
+ denied: ReadonlyArray<ApprovalResult>
1776
+ ): Prompt.Prompt => {
1777
+ const resolvedApprovalIds = new Set<string>()
1778
+ for (const a of approved) resolvedApprovalIds.add(a.approvalId)
1779
+ for (const d of denied) resolvedApprovalIds.add(d.approvalId)
1780
+
1781
+ const cleanedMessages: Array<Prompt.Message> = []
1782
+
1783
+ for (const message of prompt.content) {
1784
+ if (message.role === "assistant") {
1785
+ const filteredContent = message.content.filter(
1786
+ (part) =>
1787
+ part.type !== "tool-approval-request" ||
1788
+ !resolvedApprovalIds.has(part.approvalId)
1789
+ )
1790
+ if (filteredContent.length > 0) {
1791
+ cleanedMessages.push(
1792
+ Prompt.makeMessage("assistant", {
1793
+ content: filteredContent,
1794
+ options: message.options
1795
+ })
1796
+ )
1797
+ }
1798
+ } else if (message.role === "tool") {
1799
+ const filteredContent = message.content.filter(
1800
+ (part) =>
1801
+ part.type !== "tool-approval-response" ||
1802
+ !resolvedApprovalIds.has(part.approvalId)
1803
+ )
1804
+ if (filteredContent.length > 0) {
1805
+ cleanedMessages.push(
1806
+ Prompt.makeMessage("tool", {
1807
+ content: filteredContent,
1808
+ options: message.options
1809
+ })
1810
+ )
1811
+ }
1812
+ } else {
1813
+ cleanedMessages.push(message)
1814
+ }
1815
+ }
1816
+
1817
+ return Prompt.fromMessages(cleanedMessages)
1818
+ }
1819
+
1509
1820
  const isApprovalNeeded = Effect.fnUntraced(function*<T extends Tool.Any>(
1510
1821
  tool: T,
1511
1822
  toolCall: Response.ToolCallPartEncoded,
@@ -1734,11 +2045,11 @@ const resolveToolCalls = <Tools extends Record<string, Tool.Any>>(
1734
2045
  // =============================================================================
1735
2046
 
1736
2047
  const resolveToolkit = <Tools extends Record<string, Tool.Any>, E, R>(
1737
- toolkit:
1738
- | Toolkit.WithHandler<Tools>
1739
- | Effect.Yieldable<Toolkit.Toolkit<any>, Toolkit.WithHandler<Tools>, E, R>
2048
+ toolkit: ToolkitOption<Tools, E, R>
1740
2049
  ): Effect.Effect<Toolkit.WithHandler<Tools>, E, R> =>
1741
- "asEffect" in toolkit ? toolkit.asEffect() : Effect.succeed(toolkit)
2050
+ ("asEffect" in toolkit
2051
+ ? toolkit.asEffect()
2052
+ : Effect.succeed(toolkit as unknown as Toolkit.WithHandler<Tools>)) as any
1742
2053
 
1743
2054
  /** @internal */
1744
2055
  export const getObjectName = <StructuredOutputSchema extends Schema.Top>(
@@ -1761,29 +2072,32 @@ export const getObjectName = <StructuredOutputSchema extends Schema.Top>(
1761
2072
  const resolveStructuredOutput = Effect.fnUntraced(function*<
1762
2073
  StructuredOutputSchema extends Schema.Top
1763
2074
  >(response: ReadonlyArray<Response.AllParts<any>>, schema: StructuredOutputSchema) {
1764
- const text: Array<string> = []
2075
+ const texts: Array<string> = []
1765
2076
  for (const part of response) {
1766
2077
  if (part.type === "text") {
1767
- text.push(part.text)
2078
+ texts.push(part.text)
1768
2079
  }
1769
2080
  }
1770
2081
 
2082
+ const text = texts.join("")
2083
+
1771
2084
  if (text.length === 0) {
1772
2085
  return yield* AiError.make({
1773
2086
  module: "LanguageModel",
1774
2087
  method: "generateObject",
1775
2088
  reason: new AiError.StructuredOutputError({
1776
- description: "No text content in response"
2089
+ description: "No text content in response",
2090
+ responseText: text
1777
2091
  })
1778
2092
  })
1779
2093
  }
1780
2094
 
1781
2095
  const decode = Schema.decodeEffect(Schema.fromJsonString(schema))
1782
- return yield* Effect.mapError(decode(text.join("")), (error) =>
2096
+ return yield* Effect.mapError(decode(text), (error) =>
1783
2097
  AiError.make({
1784
2098
  module: "LanguageModel",
1785
2099
  method: "generateObject",
1786
- reason: AiError.StructuredOutputError.fromSchemaError(error)
2100
+ reason: AiError.StructuredOutputError.fromSchemaError(error, text)
1787
2101
  }))
1788
2102
  })
1789
2103