effect 4.0.1 → 4.0.2

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 (917) hide show
  1. package/ai-docs/package.json +2 -2
  2. package/ai-docs/tsconfig.json +2 -1
  3. package/dist/Array.d.ts +339 -0
  4. package/dist/Array.d.ts.map +1 -1
  5. package/dist/Array.js +143 -3
  6. package/dist/Array.js.map +1 -1
  7. package/dist/BigDecimal.d.ts +88 -0
  8. package/dist/BigDecimal.d.ts.map +1 -1
  9. package/dist/BigDecimal.js +44 -0
  10. package/dist/BigDecimal.js.map +1 -1
  11. package/dist/BigInt.d.ts +68 -0
  12. package/dist/BigInt.d.ts.map +1 -1
  13. package/dist/BigInt.js +36 -0
  14. package/dist/BigInt.js.map +1 -1
  15. package/dist/Boolean.d.ts +34 -0
  16. package/dist/Boolean.d.ts.map +1 -1
  17. package/dist/Boolean.js +18 -0
  18. package/dist/Boolean.js.map +1 -1
  19. package/dist/Brand.d.ts +9 -0
  20. package/dist/Brand.d.ts.map +1 -1
  21. package/dist/Brand.js +6 -0
  22. package/dist/Brand.js.map +1 -1
  23. package/dist/ByteSize.d.ts +86 -0
  24. package/dist/ByteSize.d.ts.map +1 -1
  25. package/dist/ByteSize.js +51 -0
  26. package/dist/ByteSize.js.map +1 -1
  27. package/dist/Cache.d.ts +38 -1
  28. package/dist/Cache.d.ts.map +1 -1
  29. package/dist/Cache.js +27 -7
  30. package/dist/Cache.js.map +1 -1
  31. package/dist/Cause.d.ts +82 -0
  32. package/dist/Cause.d.ts.map +1 -1
  33. package/dist/Cause.js +60 -0
  34. package/dist/Cause.js.map +1 -1
  35. package/dist/Channel.d.ts +327 -4
  36. package/dist/Channel.d.ts.map +1 -1
  37. package/dist/Channel.js +168 -8
  38. package/dist/Channel.js.map +1 -1
  39. package/dist/ChannelSchema.d.ts +11 -0
  40. package/dist/ChannelSchema.d.ts.map +1 -1
  41. package/dist/ChannelSchema.js +6 -0
  42. package/dist/ChannelSchema.js.map +1 -1
  43. package/dist/Chunk.d.ts +192 -0
  44. package/dist/Chunk.d.ts.map +1 -1
  45. package/dist/Chunk.js +78 -0
  46. package/dist/Chunk.js.map +1 -1
  47. package/dist/Clock.d.ts +7 -0
  48. package/dist/Clock.d.ts.map +1 -1
  49. package/dist/Clock.js +5 -0
  50. package/dist/Clock.js.map +1 -1
  51. package/dist/Combiner.d.ts +10 -0
  52. package/dist/Combiner.d.ts.map +1 -1
  53. package/dist/Combiner.js +8 -0
  54. package/dist/Combiner.js.map +1 -1
  55. package/dist/Config.d.ts +52 -12
  56. package/dist/Config.d.ts.map +1 -1
  57. package/dist/Config.js +55 -5
  58. package/dist/Config.js.map +1 -1
  59. package/dist/ConfigProvider.d.ts +28 -0
  60. package/dist/ConfigProvider.d.ts.map +1 -1
  61. package/dist/ConfigProvider.js +19 -0
  62. package/dist/ConfigProvider.js.map +1 -1
  63. package/dist/Console.d.ts +22 -0
  64. package/dist/Console.d.ts.map +1 -1
  65. package/dist/Console.js +20 -0
  66. package/dist/Console.js.map +1 -1
  67. package/dist/Context.d.ts +50 -0
  68. package/dist/Context.d.ts.map +1 -1
  69. package/dist/Context.js +21 -0
  70. package/dist/Context.js.map +1 -1
  71. package/dist/Cron.d.ts +16 -0
  72. package/dist/Cron.d.ts.map +1 -1
  73. package/dist/Cron.js +26 -1
  74. package/dist/Cron.js.map +1 -1
  75. package/dist/Crypto.d.ts +5 -0
  76. package/dist/Crypto.d.ts.map +1 -1
  77. package/dist/Crypto.js +3 -0
  78. package/dist/Crypto.js.map +1 -1
  79. package/dist/Data.d.ts +13 -0
  80. package/dist/Data.d.ts.map +1 -1
  81. package/dist/Data.js +5 -0
  82. package/dist/Data.js.map +1 -1
  83. package/dist/DateTime.d.ts +171 -0
  84. package/dist/DateTime.d.ts.map +1 -1
  85. package/dist/DateTime.js +89 -0
  86. package/dist/DateTime.js.map +1 -1
  87. package/dist/Deferred.d.ts +51 -0
  88. package/dist/Deferred.d.ts.map +1 -1
  89. package/dist/Deferred.js +22 -0
  90. package/dist/Deferred.js.map +1 -1
  91. package/dist/Differ.d.ts +2 -0
  92. package/dist/Differ.d.ts.map +1 -1
  93. package/dist/Differ.js +1 -0
  94. package/dist/Duration.d.ts +90 -0
  95. package/dist/Duration.d.ts.map +1 -1
  96. package/dist/Duration.js +53 -0
  97. package/dist/Duration.js.map +1 -1
  98. package/dist/Effect.d.ts +527 -0
  99. package/dist/Effect.d.ts.map +1 -1
  100. package/dist/Effect.js +240 -5
  101. package/dist/Effect.js.map +1 -1
  102. package/dist/Effectable.d.ts +4 -0
  103. package/dist/Effectable.d.ts.map +1 -1
  104. package/dist/Effectable.js +3 -0
  105. package/dist/Effectable.js.map +1 -1
  106. package/dist/Equal.d.ts +8 -0
  107. package/dist/Equal.d.ts.map +1 -1
  108. package/dist/Equal.js +9 -1
  109. package/dist/Equal.js.map +1 -1
  110. package/dist/Equivalence.d.ts +21 -0
  111. package/dist/Equivalence.d.ts.map +1 -1
  112. package/dist/Equivalence.js +16 -0
  113. package/dist/Equivalence.js.map +1 -1
  114. package/dist/ErrorReporter.d.ts +36 -0
  115. package/dist/ErrorReporter.d.ts.map +1 -1
  116. package/dist/ErrorReporter.js +11 -0
  117. package/dist/ErrorReporter.js.map +1 -1
  118. package/dist/ExecutionPlan.d.ts +49 -8
  119. package/dist/ExecutionPlan.d.ts.map +1 -1
  120. package/dist/ExecutionPlan.js +7 -0
  121. package/dist/ExecutionPlan.js.map +1 -1
  122. package/dist/Exit.d.ts +40 -0
  123. package/dist/Exit.d.ts.map +1 -1
  124. package/dist/Exit.js +27 -0
  125. package/dist/Exit.js.map +1 -1
  126. package/dist/Fiber.d.ts +20 -0
  127. package/dist/Fiber.d.ts.map +1 -1
  128. package/dist/Fiber.js +11 -0
  129. package/dist/Fiber.js.map +1 -1
  130. package/dist/FiberHandle.d.ts +21 -0
  131. package/dist/FiberHandle.d.ts.map +1 -1
  132. package/dist/FiberHandle.js +21 -4
  133. package/dist/FiberHandle.js.map +1 -1
  134. package/dist/FiberMap.d.ts +35 -0
  135. package/dist/FiberMap.d.ts.map +1 -1
  136. package/dist/FiberMap.js +19 -0
  137. package/dist/FiberMap.js.map +1 -1
  138. package/dist/FiberSet.d.ts +20 -0
  139. package/dist/FiberSet.d.ts.map +1 -1
  140. package/dist/FiberSet.js +14 -0
  141. package/dist/FiberSet.js.map +1 -1
  142. package/dist/FileSystem.d.ts +15 -0
  143. package/dist/FileSystem.d.ts.map +1 -1
  144. package/dist/FileSystem.js +8 -0
  145. package/dist/FileSystem.js.map +1 -1
  146. package/dist/Filter.d.ts +55 -0
  147. package/dist/Filter.d.ts.map +1 -1
  148. package/dist/Filter.js +28 -0
  149. package/dist/Filter.js.map +1 -1
  150. package/dist/Formatter.d.ts +3 -0
  151. package/dist/Formatter.d.ts.map +1 -1
  152. package/dist/Formatter.js +39 -1
  153. package/dist/Formatter.js.map +1 -1
  154. package/dist/Function.d.ts +30 -0
  155. package/dist/Function.d.ts.map +1 -1
  156. package/dist/Function.js +20 -0
  157. package/dist/Function.js.map +1 -1
  158. package/dist/Graph.d.ts +247 -12
  159. package/dist/Graph.d.ts.map +1 -1
  160. package/dist/Graph.js +149 -28
  161. package/dist/Graph.js.map +1 -1
  162. package/dist/HKT.d.ts +5 -0
  163. package/dist/HKT.d.ts.map +1 -1
  164. package/dist/Hash.d.ts +14 -0
  165. package/dist/Hash.d.ts.map +1 -1
  166. package/dist/Hash.js +12 -0
  167. package/dist/Hash.js.map +1 -1
  168. package/dist/HashMap.d.ts +91 -0
  169. package/dist/HashMap.d.ts.map +1 -1
  170. package/dist/HashMap.js +39 -0
  171. package/dist/HashMap.js.map +1 -1
  172. package/dist/HashRing.d.ts +17 -0
  173. package/dist/HashRing.d.ts.map +1 -1
  174. package/dist/HashRing.js +9 -0
  175. package/dist/HashRing.js.map +1 -1
  176. package/dist/HashSet.d.ts +49 -0
  177. package/dist/HashSet.d.ts.map +1 -1
  178. package/dist/HashSet.js +19 -0
  179. package/dist/HashSet.js.map +1 -1
  180. package/dist/Inspectable.d.ts +7 -0
  181. package/dist/Inspectable.d.ts.map +1 -1
  182. package/dist/Inspectable.js +6 -0
  183. package/dist/Inspectable.js.map +1 -1
  184. package/dist/Iterable.d.ts +127 -0
  185. package/dist/Iterable.d.ts.map +1 -1
  186. package/dist/Iterable.js +51 -0
  187. package/dist/Iterable.js.map +1 -1
  188. package/dist/JsonPatch.d.ts +4 -0
  189. package/dist/JsonPatch.d.ts.map +1 -1
  190. package/dist/JsonPatch.js +3 -0
  191. package/dist/JsonPatch.js.map +1 -1
  192. package/dist/JsonPointer.d.ts +5 -0
  193. package/dist/JsonPointer.d.ts.map +1 -1
  194. package/dist/JsonPointer.js +5 -0
  195. package/dist/JsonPointer.js.map +1 -1
  196. package/dist/JsonSchema.d.ts +16 -0
  197. package/dist/JsonSchema.d.ts.map +1 -1
  198. package/dist/JsonSchema.js +11 -0
  199. package/dist/JsonSchema.js.map +1 -1
  200. package/dist/Latch.d.ts +14 -0
  201. package/dist/Latch.d.ts.map +1 -1
  202. package/dist/Latch.js +10 -0
  203. package/dist/Latch.js.map +1 -1
  204. package/dist/Layer.d.ts +100 -0
  205. package/dist/Layer.d.ts.map +1 -1
  206. package/dist/Layer.js +45 -1
  207. package/dist/Layer.js.map +1 -1
  208. package/dist/LayerMap.d.ts +7 -0
  209. package/dist/LayerMap.d.ts.map +1 -1
  210. package/dist/LayerMap.js +4 -0
  211. package/dist/LayerMap.js.map +1 -1
  212. package/dist/LayerRef.d.ts +5 -0
  213. package/dist/LayerRef.d.ts.map +1 -1
  214. package/dist/LayerRef.js +3 -0
  215. package/dist/LayerRef.js.map +1 -1
  216. package/dist/LogLevel.d.ts +20 -0
  217. package/dist/LogLevel.d.ts.map +1 -1
  218. package/dist/LogLevel.js +9 -0
  219. package/dist/LogLevel.js.map +1 -1
  220. package/dist/Logger.d.ts +25 -0
  221. package/dist/Logger.d.ts.map +1 -1
  222. package/dist/Logger.js +30 -4
  223. package/dist/Logger.js.map +1 -1
  224. package/dist/ManagedRuntime.d.ts +5 -0
  225. package/dist/ManagedRuntime.d.ts.map +1 -1
  226. package/dist/ManagedRuntime.js +9 -1
  227. package/dist/ManagedRuntime.js.map +1 -1
  228. package/dist/Match.d.ts +51 -0
  229. package/dist/Match.d.ts.map +1 -1
  230. package/dist/Match.js +39 -0
  231. package/dist/Match.js.map +1 -1
  232. package/dist/Metric.d.ts +59 -0
  233. package/dist/Metric.d.ts.map +1 -1
  234. package/dist/Metric.js +31 -0
  235. package/dist/Metric.js.map +1 -1
  236. package/dist/MutableHashMap.d.ts +32 -0
  237. package/dist/MutableHashMap.d.ts.map +1 -1
  238. package/dist/MutableHashMap.js +16 -0
  239. package/dist/MutableHashMap.js.map +1 -1
  240. package/dist/MutableHashSet.d.ts +16 -0
  241. package/dist/MutableHashSet.d.ts.map +1 -1
  242. package/dist/MutableHashSet.js +10 -0
  243. package/dist/MutableHashSet.js.map +1 -1
  244. package/dist/MutableList.d.ts +20 -0
  245. package/dist/MutableList.d.ts.map +1 -1
  246. package/dist/MutableList.js +18 -0
  247. package/dist/MutableList.js.map +1 -1
  248. package/dist/MutableRef.d.ts +31 -0
  249. package/dist/MutableRef.d.ts.map +1 -1
  250. package/dist/MutableRef.js +17 -0
  251. package/dist/MutableRef.js.map +1 -1
  252. package/dist/Newtype.d.ts +9 -0
  253. package/dist/Newtype.d.ts.map +1 -1
  254. package/dist/Newtype.js +6 -0
  255. package/dist/Newtype.js.map +1 -1
  256. package/dist/NonEmptyIterable.d.ts +4 -0
  257. package/dist/NonEmptyIterable.d.ts.map +1 -1
  258. package/dist/NonEmptyIterable.js +2 -0
  259. package/dist/NonEmptyIterable.js.map +1 -1
  260. package/dist/Number.d.ts +61 -0
  261. package/dist/Number.d.ts.map +1 -1
  262. package/dist/Number.js +31 -0
  263. package/dist/Number.js.map +1 -1
  264. package/dist/Optic.d.ts +41 -0
  265. package/dist/Optic.d.ts.map +1 -1
  266. package/dist/Optic.js +20 -0
  267. package/dist/Optic.js.map +1 -1
  268. package/dist/Option.d.ts +134 -0
  269. package/dist/Option.d.ts.map +1 -1
  270. package/dist/Option.js +61 -0
  271. package/dist/Option.js.map +1 -1
  272. package/dist/Order.d.ts +29 -0
  273. package/dist/Order.d.ts.map +1 -1
  274. package/dist/Order.js +24 -0
  275. package/dist/Order.js.map +1 -1
  276. package/dist/Ordering.d.ts +7 -0
  277. package/dist/Ordering.d.ts.map +1 -1
  278. package/dist/Ordering.js +3 -0
  279. package/dist/Ordering.js.map +1 -1
  280. package/dist/PartitionedSemaphore.d.ts +24 -0
  281. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  282. package/dist/PartitionedSemaphore.js +47 -21
  283. package/dist/PartitionedSemaphore.js.map +1 -1
  284. package/dist/Path.d.ts +6 -0
  285. package/dist/Path.d.ts.map +1 -1
  286. package/dist/Path.js +4 -0
  287. package/dist/Path.js.map +1 -1
  288. package/dist/Pipeable.d.ts +7 -0
  289. package/dist/Pipeable.d.ts.map +1 -1
  290. package/dist/Pipeable.js +5 -0
  291. package/dist/Pipeable.js.map +1 -1
  292. package/dist/PlatformError.d.ts +8 -0
  293. package/dist/PlatformError.d.ts.map +1 -1
  294. package/dist/PlatformError.js +7 -0
  295. package/dist/PlatformError.js.map +1 -1
  296. package/dist/Pool.d.ts +19 -0
  297. package/dist/Pool.d.ts.map +1 -1
  298. package/dist/Pool.js +8 -1
  299. package/dist/Pool.js.map +1 -1
  300. package/dist/Predicate.d.ts +84 -0
  301. package/dist/Predicate.d.ts.map +1 -1
  302. package/dist/Predicate.js +48 -0
  303. package/dist/Predicate.js.map +1 -1
  304. package/dist/PrimaryKey.d.ts +5 -0
  305. package/dist/PrimaryKey.d.ts.map +1 -1
  306. package/dist/PrimaryKey.js +4 -0
  307. package/dist/PrimaryKey.js.map +1 -1
  308. package/dist/PubSub.d.ts +67 -5
  309. package/dist/PubSub.d.ts.map +1 -1
  310. package/dist/PubSub.js +60 -8
  311. package/dist/PubSub.js.map +1 -1
  312. package/dist/Pull.d.ts +20 -0
  313. package/dist/Pull.d.ts.map +1 -1
  314. package/dist/Pull.js +10 -0
  315. package/dist/Pull.js.map +1 -1
  316. package/dist/Queue.d.ts +60 -0
  317. package/dist/Queue.d.ts.map +1 -1
  318. package/dist/Queue.js +58 -8
  319. package/dist/Queue.js.map +1 -1
  320. package/dist/Random.d.ts +13 -0
  321. package/dist/Random.d.ts.map +1 -1
  322. package/dist/Random.js +9 -0
  323. package/dist/Random.js.map +1 -1
  324. package/dist/RcMap.d.ts +23 -0
  325. package/dist/RcMap.d.ts.map +1 -1
  326. package/dist/RcMap.js +8 -0
  327. package/dist/RcMap.js.map +1 -1
  328. package/dist/RcRef.d.ts +6 -0
  329. package/dist/RcRef.d.ts.map +1 -1
  330. package/dist/RcRef.js +3 -0
  331. package/dist/RcRef.js.map +1 -1
  332. package/dist/Record.d.ts +100 -0
  333. package/dist/Record.d.ts.map +1 -1
  334. package/dist/Record.js +43 -0
  335. package/dist/Record.js.map +1 -1
  336. package/dist/Redactable.d.ts +6 -0
  337. package/dist/Redactable.d.ts.map +1 -1
  338. package/dist/Redactable.js +4 -0
  339. package/dist/Redactable.js.map +1 -1
  340. package/dist/Redacted.d.ts +8 -0
  341. package/dist/Redacted.d.ts.map +1 -1
  342. package/dist/Redacted.js +6 -0
  343. package/dist/Redacted.js.map +1 -1
  344. package/dist/Reducer.d.ts +4 -0
  345. package/dist/Reducer.d.ts.map +1 -1
  346. package/dist/Reducer.js +3 -0
  347. package/dist/Reducer.js.map +1 -1
  348. package/dist/Ref.d.ts +20 -0
  349. package/dist/Ref.d.ts.map +1 -1
  350. package/dist/Ref.js +16 -0
  351. package/dist/Ref.js.map +1 -1
  352. package/dist/References.d.ts +21 -0
  353. package/dist/References.d.ts.map +1 -1
  354. package/dist/References.js +19 -0
  355. package/dist/References.js.map +1 -1
  356. package/dist/RegExp.d.ts +3 -0
  357. package/dist/RegExp.d.ts.map +1 -1
  358. package/dist/RegExp.js +4 -0
  359. package/dist/RegExp.js.map +1 -1
  360. package/dist/Request.d.ts +32 -0
  361. package/dist/Request.d.ts.map +1 -1
  362. package/dist/Request.js +12 -0
  363. package/dist/Request.js.map +1 -1
  364. package/dist/RequestResolver.d.ts +42 -0
  365. package/dist/RequestResolver.d.ts.map +1 -1
  366. package/dist/RequestResolver.js +27 -6
  367. package/dist/RequestResolver.js.map +1 -1
  368. package/dist/Resource.d.ts +6 -0
  369. package/dist/Resource.d.ts.map +1 -1
  370. package/dist/Resource.js +6 -0
  371. package/dist/Resource.js.map +1 -1
  372. package/dist/Result.d.ts +91 -0
  373. package/dist/Result.d.ts.map +1 -1
  374. package/dist/Result.js +41 -0
  375. package/dist/Result.js.map +1 -1
  376. package/dist/Runtime.d.ts +9 -0
  377. package/dist/Runtime.d.ts.map +1 -1
  378. package/dist/Runtime.js +7 -0
  379. package/dist/Runtime.js.map +1 -1
  380. package/dist/Schedule.d.ts +57 -0
  381. package/dist/Schedule.d.ts.map +1 -1
  382. package/dist/Schedule.js +32 -0
  383. package/dist/Schedule.js.map +1 -1
  384. package/dist/Scheduler.d.ts +7 -0
  385. package/dist/Scheduler.d.ts.map +1 -1
  386. package/dist/Scheduler.js +5 -0
  387. package/dist/Scheduler.js.map +1 -1
  388. package/dist/Schema.d.ts +496 -1
  389. package/dist/Schema.d.ts.map +1 -1
  390. package/dist/Schema.js +280 -1
  391. package/dist/Schema.js.map +1 -1
  392. package/dist/SchemaAST.d.ts +107 -0
  393. package/dist/SchemaAST.d.ts.map +1 -1
  394. package/dist/SchemaAST.js +81 -1
  395. package/dist/SchemaAST.js.map +1 -1
  396. package/dist/SchemaGetter.d.ts +69 -2
  397. package/dist/SchemaGetter.d.ts.map +1 -1
  398. package/dist/SchemaGetter.js +63 -4
  399. package/dist/SchemaGetter.js.map +1 -1
  400. package/dist/SchemaIssue.d.ts +33 -0
  401. package/dist/SchemaIssue.d.ts.map +1 -1
  402. package/dist/SchemaIssue.js +18 -0
  403. package/dist/SchemaIssue.js.map +1 -1
  404. package/dist/SchemaParser.d.ts +25 -0
  405. package/dist/SchemaParser.d.ts.map +1 -1
  406. package/dist/SchemaParser.js +26 -0
  407. package/dist/SchemaParser.js.map +1 -1
  408. package/dist/SchemaRepresentation.d.ts +147 -0
  409. package/dist/SchemaRepresentation.d.ts.map +1 -1
  410. package/dist/SchemaRepresentation.js +99 -0
  411. package/dist/SchemaRepresentation.js.map +1 -1
  412. package/dist/SchemaTransformation.d.ts +53 -0
  413. package/dist/SchemaTransformation.d.ts.map +1 -1
  414. package/dist/SchemaTransformation.js +46 -0
  415. package/dist/SchemaTransformation.js.map +1 -1
  416. package/dist/Scope.d.ts +19 -0
  417. package/dist/Scope.d.ts.map +1 -1
  418. package/dist/Scope.js +12 -0
  419. package/dist/Scope.js.map +1 -1
  420. package/dist/ScopedCache.d.ts +34 -0
  421. package/dist/ScopedCache.d.ts.map +1 -1
  422. package/dist/ScopedCache.js +26 -3
  423. package/dist/ScopedCache.js.map +1 -1
  424. package/dist/ScopedRef.d.ts +9 -0
  425. package/dist/ScopedRef.d.ts.map +1 -1
  426. package/dist/ScopedRef.js +6 -0
  427. package/dist/ScopedRef.js.map +1 -1
  428. package/dist/Semaphore.d.ts +26 -0
  429. package/dist/Semaphore.d.ts.map +1 -1
  430. package/dist/Semaphore.js +10 -0
  431. package/dist/Semaphore.js.map +1 -1
  432. package/dist/Sink.d.ts +125 -1
  433. package/dist/Sink.d.ts.map +1 -1
  434. package/dist/Sink.js +75 -1
  435. package/dist/Sink.js.map +1 -1
  436. package/dist/StandardSchema.d.ts +1 -0
  437. package/dist/StandardSchema.d.ts.map +1 -1
  438. package/dist/StandardSchema.js +1 -0
  439. package/dist/Stdio.d.ts +7 -0
  440. package/dist/Stdio.d.ts.map +1 -1
  441. package/dist/Stdio.js +5 -0
  442. package/dist/Stdio.js.map +1 -1
  443. package/dist/Stream.d.ts +558 -0
  444. package/dist/Stream.d.ts.map +1 -1
  445. package/dist/Stream.js +261 -13
  446. package/dist/Stream.js.map +1 -1
  447. package/dist/String.d.ts +87 -0
  448. package/dist/String.d.ts.map +1 -1
  449. package/dist/String.js +61 -0
  450. package/dist/String.js.map +1 -1
  451. package/dist/Struct.d.ts +46 -0
  452. package/dist/Struct.d.ts.map +1 -1
  453. package/dist/Struct.js +19 -0
  454. package/dist/Struct.js.map +1 -1
  455. package/dist/SubscriptionRef.d.ts +65 -0
  456. package/dist/SubscriptionRef.d.ts.map +1 -1
  457. package/dist/SubscriptionRef.js +25 -0
  458. package/dist/SubscriptionRef.js.map +1 -1
  459. package/dist/Symbol.d.ts +2 -0
  460. package/dist/Symbol.d.ts.map +1 -1
  461. package/dist/Symbol.js +2 -0
  462. package/dist/Symbol.js.map +1 -1
  463. package/dist/SynchronizedRef.d.ts +63 -0
  464. package/dist/SynchronizedRef.d.ts.map +1 -1
  465. package/dist/SynchronizedRef.js +24 -0
  466. package/dist/SynchronizedRef.js.map +1 -1
  467. package/dist/Take.d.ts +3 -0
  468. package/dist/Take.d.ts.map +1 -1
  469. package/dist/Take.js +1 -0
  470. package/dist/Take.js.map +1 -1
  471. package/dist/Terminal.d.ts +8 -0
  472. package/dist/Terminal.d.ts.map +1 -1
  473. package/dist/Terminal.js +4 -0
  474. package/dist/Terminal.js.map +1 -1
  475. package/dist/Tracer.d.ts +23 -0
  476. package/dist/Tracer.d.ts.map +1 -1
  477. package/dist/Tracer.js +12 -0
  478. package/dist/Tracer.js.map +1 -1
  479. package/dist/Trie.d.ts +68 -0
  480. package/dist/Trie.d.ts.map +1 -1
  481. package/dist/Trie.js +28 -0
  482. package/dist/Trie.js.map +1 -1
  483. package/dist/Tuple.d.ts +38 -0
  484. package/dist/Tuple.d.ts.map +1 -1
  485. package/dist/Tuple.js +18 -0
  486. package/dist/Tuple.js.map +1 -1
  487. package/dist/TxChunk.d.ts +52 -0
  488. package/dist/TxChunk.d.ts.map +1 -1
  489. package/dist/TxChunk.js +23 -0
  490. package/dist/TxChunk.js.map +1 -1
  491. package/dist/TxDeferred.d.ts +15 -0
  492. package/dist/TxDeferred.d.ts.map +1 -1
  493. package/dist/TxDeferred.js +8 -0
  494. package/dist/TxDeferred.js.map +1 -1
  495. package/dist/TxHashMap.d.ts +83 -0
  496. package/dist/TxHashMap.d.ts.map +1 -1
  497. package/dist/TxHashMap.js +52 -7
  498. package/dist/TxHashMap.js.map +1 -1
  499. package/dist/TxHashSet.d.ts +51 -0
  500. package/dist/TxHashSet.d.ts.map +1 -1
  501. package/dist/TxHashSet.js +29 -4
  502. package/dist/TxHashSet.js.map +1 -1
  503. package/dist/TxPriorityQueue.d.ts +30 -0
  504. package/dist/TxPriorityQueue.d.ts.map +1 -1
  505. package/dist/TxPriorityQueue.js +22 -1
  506. package/dist/TxPriorityQueue.js.map +1 -1
  507. package/dist/TxPubSub.d.ts +25 -0
  508. package/dist/TxPubSub.d.ts.map +1 -1
  509. package/dist/TxPubSub.js +19 -0
  510. package/dist/TxPubSub.js.map +1 -1
  511. package/dist/TxQueue.d.ts +51 -0
  512. package/dist/TxQueue.d.ts.map +1 -1
  513. package/dist/TxQueue.js +30 -0
  514. package/dist/TxQueue.js.map +1 -1
  515. package/dist/TxReentrantLock.d.ts +24 -0
  516. package/dist/TxReentrantLock.d.ts.map +1 -1
  517. package/dist/TxReentrantLock.js +32 -18
  518. package/dist/TxReentrantLock.js.map +1 -1
  519. package/dist/TxRef.d.ts +14 -0
  520. package/dist/TxRef.d.ts.map +1 -1
  521. package/dist/TxRef.js +7 -0
  522. package/dist/TxRef.js.map +1 -1
  523. package/dist/TxSemaphore.d.ts +25 -0
  524. package/dist/TxSemaphore.d.ts.map +1 -1
  525. package/dist/TxSemaphore.js +29 -13
  526. package/dist/TxSemaphore.js.map +1 -1
  527. package/dist/TxSubscriptionRef.d.ts +25 -0
  528. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  529. package/dist/TxSubscriptionRef.js +12 -0
  530. package/dist/TxSubscriptionRef.js.map +1 -1
  531. package/dist/Types.d.ts +36 -0
  532. package/dist/Types.d.ts.map +1 -1
  533. package/dist/Types.js +1 -0
  534. package/dist/UndefinedOr.d.ts +15 -0
  535. package/dist/UndefinedOr.d.ts.map +1 -1
  536. package/dist/UndefinedOr.js +9 -0
  537. package/dist/UndefinedOr.js.map +1 -1
  538. package/dist/Unify.d.ts +15 -0
  539. package/dist/Unify.d.ts.map +1 -1
  540. package/dist/Unify.js +2 -0
  541. package/dist/Unify.js.map +1 -1
  542. package/dist/Utils.d.ts +4 -0
  543. package/dist/Utils.d.ts.map +1 -1
  544. package/dist/Utils.js +1 -0
  545. package/dist/Utils.js.map +1 -1
  546. package/dist/Version.d.ts +26 -0
  547. package/dist/Version.d.ts.map +1 -0
  548. package/dist/Version.js +36 -0
  549. package/dist/Version.js.map +1 -0
  550. package/dist/ai/Chat.js +1 -1
  551. package/dist/ai/Chat.js.map +1 -1
  552. package/dist/ai/DecisionModel.d.ts +22 -0
  553. package/dist/ai/DecisionModel.d.ts.map +1 -1
  554. package/dist/ai/DecisionModel.js +22 -4
  555. package/dist/ai/DecisionModel.js.map +1 -1
  556. package/dist/ai/LanguageModel.d.ts.map +1 -1
  557. package/dist/ai/LanguageModel.js +14 -13
  558. package/dist/ai/LanguageModel.js.map +1 -1
  559. package/dist/ai/McpServer.d.ts +32 -11
  560. package/dist/ai/McpServer.d.ts.map +1 -1
  561. package/dist/ai/McpServer.js +213 -169
  562. package/dist/ai/McpServer.js.map +1 -1
  563. package/dist/ai/Telemetry.d.ts +49 -41
  564. package/dist/ai/Telemetry.d.ts.map +1 -1
  565. package/dist/ai/Telemetry.js +6 -8
  566. package/dist/ai/Telemetry.js.map +1 -1
  567. package/dist/ai/internal/mcpRuntime.js +79 -46
  568. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  569. package/dist/ai/internal/mcpStatefulRuntime.js +1 -0
  570. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  571. package/dist/cluster/K8sHttpClient.d.ts.map +1 -1
  572. package/dist/cluster/K8sHttpClient.js +5 -2
  573. package/dist/cluster/K8sHttpClient.js.map +1 -1
  574. package/dist/encoding/Base64.d.ts +4 -0
  575. package/dist/encoding/Base64.d.ts.map +1 -1
  576. package/dist/encoding/Base64.js +4 -0
  577. package/dist/encoding/Base64.js.map +1 -1
  578. package/dist/encoding/Base64Url.d.ts +4 -0
  579. package/dist/encoding/Base64Url.d.ts.map +1 -1
  580. package/dist/encoding/Base64Url.js +4 -0
  581. package/dist/encoding/Base64Url.js.map +1 -1
  582. package/dist/encoding/EncodingError.d.ts +4 -0
  583. package/dist/encoding/EncodingError.d.ts.map +1 -1
  584. package/dist/encoding/EncodingError.js +4 -0
  585. package/dist/encoding/EncodingError.js.map +1 -1
  586. package/dist/encoding/Hex.d.ts +5 -0
  587. package/dist/encoding/Hex.d.ts.map +1 -1
  588. package/dist/encoding/Hex.js +5 -0
  589. package/dist/encoding/Hex.js.map +1 -1
  590. package/dist/encoding/Toml.js +2 -2
  591. package/dist/encoding/Toml.js.map +1 -1
  592. package/dist/encoding/Yaml.d.ts.map +1 -1
  593. package/dist/encoding/Yaml.js +6 -4
  594. package/dist/encoding/Yaml.js.map +1 -1
  595. package/dist/encoding/index.d.ts +4 -0
  596. package/dist/encoding/index.d.ts.map +1 -1
  597. package/dist/encoding/index.js +4 -0
  598. package/dist/encoding/index.js.map +1 -1
  599. package/dist/eventlog/SqlEventJournal.js +8 -4
  600. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  601. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +27 -10
  602. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  603. package/dist/eventlog/SqlEventLogServerUnencrypted.js +49 -7
  604. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  605. package/dist/http/Headers.d.ts +3 -1
  606. package/dist/http/Headers.d.ts.map +1 -1
  607. package/dist/http/Headers.js +4 -2
  608. package/dist/http/Headers.js.map +1 -1
  609. package/dist/http/HttpClient.d.ts +9 -0
  610. package/dist/http/HttpClient.d.ts.map +1 -1
  611. package/dist/http/HttpClient.js +40 -21
  612. package/dist/http/HttpClient.js.map +1 -1
  613. package/dist/http/HttpClientResponse.js +3 -1
  614. package/dist/http/HttpClientResponse.js.map +1 -1
  615. package/dist/http/HttpEffect.d.ts +3 -0
  616. package/dist/http/HttpEffect.d.ts.map +1 -1
  617. package/dist/http/HttpEffect.js +5 -2
  618. package/dist/http/HttpEffect.js.map +1 -1
  619. package/dist/http/HttpMiddleware.d.ts +17 -0
  620. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  621. package/dist/http/HttpMiddleware.js +56 -39
  622. package/dist/http/HttpMiddleware.js.map +1 -1
  623. package/dist/http/HttpServer.d.ts +1 -1
  624. package/dist/http/HttpServer.d.ts.map +1 -1
  625. package/dist/http/internal/tracing.d.ts +2 -0
  626. package/dist/http/internal/tracing.d.ts.map +1 -0
  627. package/dist/http/internal/tracing.js +37 -0
  628. package/dist/http/internal/tracing.js.map +1 -0
  629. package/dist/http-api/HttpApiBuilder.js +2 -1
  630. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  631. package/dist/http-api/HttpApiClient.d.ts +12 -3
  632. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  633. package/dist/http-api/HttpApiClient.js.map +1 -1
  634. package/dist/http-api/HttpApiError.d.ts +4 -3
  635. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  636. package/dist/http-api/HttpApiError.js +7 -4
  637. package/dist/http-api/HttpApiError.js.map +1 -1
  638. package/dist/http-api/HttpApiSecurity.d.ts +8 -8
  639. package/dist/http-api/HttpApiSecurity.js +8 -8
  640. package/dist/index.d.ts +155 -0
  641. package/dist/index.d.ts.map +1 -1
  642. package/dist/index.js +155 -0
  643. package/dist/index.js.map +1 -1
  644. package/dist/internal/arbitrary/array.js +3 -3
  645. package/dist/internal/arbitrary/array.js.map +1 -1
  646. package/dist/internal/arbitrary/model.js +26 -11
  647. package/dist/internal/arbitrary/model.js.map +1 -1
  648. package/dist/internal/arbitrary/runner.js +8 -8
  649. package/dist/internal/arbitrary/runner.js.map +1 -1
  650. package/dist/internal/arbitrary/schema.js +4 -5
  651. package/dist/internal/arbitrary/schema.js.map +1 -1
  652. package/dist/internal/effect.js +41 -39
  653. package/dist/internal/effect.js.map +1 -1
  654. package/dist/internal/schedule.js +7 -5
  655. package/dist/internal/schedule.js.map +1 -1
  656. package/dist/internal/schema/standardSchema.js +2 -2
  657. package/dist/internal/schema/standardSchema.js.map +1 -1
  658. package/dist/internal/version.d.ts +2 -0
  659. package/dist/internal/version.d.ts.map +1 -0
  660. package/dist/internal/version.js +3 -0
  661. package/dist/internal/version.js.map +1 -0
  662. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  663. package/dist/observability/OtlpExporter.js +5 -6
  664. package/dist/observability/OtlpExporter.js.map +1 -1
  665. package/dist/observability/OtlpLogger.d.ts.map +1 -1
  666. package/dist/observability/OtlpLogger.js +23 -27
  667. package/dist/observability/OtlpLogger.js.map +1 -1
  668. package/dist/observability/OtlpMetrics.d.ts +5 -3
  669. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  670. package/dist/observability/OtlpMetrics.js +21 -94
  671. package/dist/observability/OtlpMetrics.js.map +1 -1
  672. package/dist/observability/OtlpResource.d.ts +4 -3
  673. package/dist/observability/OtlpResource.d.ts.map +1 -1
  674. package/dist/observability/OtlpResource.js +20 -23
  675. package/dist/observability/OtlpResource.js.map +1 -1
  676. package/dist/observability/OtlpTracer.d.ts +1 -0
  677. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  678. package/dist/observability/OtlpTracer.js +32 -36
  679. package/dist/observability/OtlpTracer.js.map +1 -1
  680. package/dist/observability/internal/otlpProtobuf.js +32 -1
  681. package/dist/observability/internal/otlpProtobuf.js.map +1 -1
  682. package/dist/reactivity/AsyncResult.d.ts +1 -1
  683. package/dist/reactivity/Atom.d.ts +5 -5
  684. package/dist/reactivity/Atom.d.ts.map +1 -1
  685. package/dist/reactivity/Atom.js +9 -5
  686. package/dist/reactivity/Atom.js.map +1 -1
  687. package/dist/reactivity/AtomHttpApi.d.ts +2 -2
  688. package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
  689. package/dist/reactivity/AtomRegistry.d.ts +8 -0
  690. package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
  691. package/dist/reactivity/AtomRegistry.js.map +1 -1
  692. package/dist/rpc/RpcClient.d.ts +21 -3
  693. package/dist/rpc/RpcClient.d.ts.map +1 -1
  694. package/dist/rpc/RpcClient.js +38 -20
  695. package/dist/rpc/RpcClient.js.map +1 -1
  696. package/dist/rpc/RpcServer.d.ts.map +1 -1
  697. package/dist/rpc/RpcServer.js +18 -21
  698. package/dist/rpc/RpcServer.js.map +1 -1
  699. package/dist/rpc/internal/tracing.d.ts +2 -0
  700. package/dist/rpc/internal/tracing.d.ts.map +1 -0
  701. package/dist/rpc/internal/tracing.js +18 -0
  702. package/dist/rpc/internal/tracing.js.map +1 -0
  703. package/dist/schema/SchemaCompiler/runtime.js +9 -1
  704. package/dist/schema/SchemaCompiler/runtime.js.map +1 -1
  705. package/dist/sql/SqlClient.js +4 -4
  706. package/dist/sql/SqlClient.js.map +1 -1
  707. package/dist/sql/Statement.d.ts +21 -1
  708. package/dist/sql/Statement.d.ts.map +1 -1
  709. package/dist/sql/Statement.js +55 -7
  710. package/dist/sql/Statement.js.map +1 -1
  711. package/dist/testing/TestClock.d.ts +8 -0
  712. package/dist/testing/TestClock.d.ts.map +1 -1
  713. package/dist/testing/TestClock.js +7 -0
  714. package/dist/testing/TestClock.js.map +1 -1
  715. package/dist/testing/TestConsole.d.ts +7 -0
  716. package/dist/testing/TestConsole.d.ts.map +1 -1
  717. package/dist/testing/TestConsole.js +6 -0
  718. package/dist/testing/TestConsole.js.map +1 -1
  719. package/dist/testing/index.d.ts +3 -0
  720. package/dist/testing/index.d.ts.map +1 -1
  721. package/dist/testing/index.js +3 -0
  722. package/dist/testing/index.js.map +1 -1
  723. package/package.json +3 -3
  724. package/src/Array.ts +351 -3
  725. package/src/BigDecimal.ts +88 -0
  726. package/src/BigInt.ts +68 -0
  727. package/src/Boolean.ts +34 -0
  728. package/src/Brand.ts +10 -0
  729. package/src/ByteSize.ts +87 -0
  730. package/src/Cache.ts +50 -8
  731. package/src/Cause.ts +82 -0
  732. package/src/Channel.ts +368 -18
  733. package/src/ChannelSchema.ts +13 -0
  734. package/src/Chunk.ts +193 -0
  735. package/src/Clock.ts +7 -0
  736. package/src/Combiner.ts +10 -0
  737. package/src/Config.ts +82 -8
  738. package/src/ConfigProvider.ts +28 -0
  739. package/src/Console.ts +26 -0
  740. package/src/Context.ts +50 -0
  741. package/src/Cron.ts +32 -1
  742. package/src/Crypto.ts +5 -0
  743. package/src/Data.ts +13 -0
  744. package/src/DateTime.ts +171 -0
  745. package/src/Deferred.ts +51 -0
  746. package/src/Differ.ts +2 -0
  747. package/src/Duration.ts +90 -0
  748. package/src/Effect.ts +539 -5
  749. package/src/Effectable.ts +4 -0
  750. package/src/Equal.ts +12 -1
  751. package/src/Equivalence.ts +22 -0
  752. package/src/ErrorReporter.ts +36 -0
  753. package/src/ExecutionPlan.ts +58 -14
  754. package/src/Exit.ts +40 -0
  755. package/src/Fiber.ts +20 -0
  756. package/src/FiberHandle.ts +29 -4
  757. package/src/FiberMap.ts +38 -0
  758. package/src/FiberSet.ts +21 -0
  759. package/src/FileSystem.ts +16 -0
  760. package/src/Filter.ts +55 -0
  761. package/src/Formatter.ts +42 -1
  762. package/src/Function.ts +30 -0
  763. package/src/Graph.ts +317 -36
  764. package/src/HKT.ts +5 -0
  765. package/src/Hash.ts +15 -0
  766. package/src/HashMap.ts +91 -0
  767. package/src/HashRing.ts +18 -0
  768. package/src/HashSet.ts +53 -0
  769. package/src/Inspectable.ts +8 -0
  770. package/src/Iterable.ts +127 -0
  771. package/src/JsonPatch.ts +5 -0
  772. package/src/JsonPointer.ts +5 -0
  773. package/src/JsonSchema.ts +17 -0
  774. package/src/Latch.ts +14 -0
  775. package/src/Layer.ts +101 -1
  776. package/src/LayerMap.ts +7 -0
  777. package/src/LayerRef.ts +5 -0
  778. package/src/LogLevel.ts +20 -0
  779. package/src/Logger.ts +41 -5
  780. package/src/ManagedRuntime.ts +12 -1
  781. package/src/Match.ts +52 -0
  782. package/src/Metric.ts +69 -0
  783. package/src/MutableHashMap.ts +44 -0
  784. package/src/MutableHashSet.ts +17 -0
  785. package/src/MutableList.ts +21 -0
  786. package/src/MutableRef.ts +32 -0
  787. package/src/Newtype.ts +9 -0
  788. package/src/NonEmptyIterable.ts +4 -0
  789. package/src/Number.ts +61 -0
  790. package/src/Optic.ts +57 -0
  791. package/src/Option.ts +134 -0
  792. package/src/Order.ts +30 -0
  793. package/src/Ordering.ts +7 -0
  794. package/src/PartitionedSemaphore.ts +61 -22
  795. package/src/Path.ts +6 -0
  796. package/src/Pipeable.ts +7 -0
  797. package/src/PlatformError.ts +8 -0
  798. package/src/Pool.ts +20 -1
  799. package/src/Predicate.ts +85 -0
  800. package/src/PrimaryKey.ts +5 -0
  801. package/src/PubSub.ts +90 -9
  802. package/src/Pull.ts +20 -0
  803. package/src/Queue.ts +80 -10
  804. package/src/Random.ts +13 -0
  805. package/src/RcMap.ts +23 -0
  806. package/src/RcRef.ts +6 -0
  807. package/src/Record.ts +100 -0
  808. package/src/Redactable.ts +6 -0
  809. package/src/Redacted.ts +8 -0
  810. package/src/Reducer.ts +4 -0
  811. package/src/Ref.ts +42 -0
  812. package/src/References.ts +21 -0
  813. package/src/RegExp.ts +4 -0
  814. package/src/Request.ts +32 -0
  815. package/src/RequestResolver.ts +59 -10
  816. package/src/Resource.ts +7 -0
  817. package/src/Result.ts +93 -0
  818. package/src/Runtime.ts +10 -0
  819. package/src/Schedule.ts +61 -0
  820. package/src/Scheduler.ts +7 -0
  821. package/src/Schema.ts +499 -4
  822. package/src/SchemaAST.ts +115 -1
  823. package/src/SchemaGetter.ts +80 -4
  824. package/src/SchemaIssue.ts +34 -0
  825. package/src/SchemaParser.ts +26 -0
  826. package/src/SchemaRepresentation.ts +148 -0
  827. package/src/SchemaTransformation.ts +53 -0
  828. package/src/Scope.ts +19 -0
  829. package/src/ScopedCache.ts +55 -3
  830. package/src/ScopedRef.ts +9 -0
  831. package/src/Semaphore.ts +26 -0
  832. package/src/Sink.ts +126 -2
  833. package/src/StandardSchema.ts +1 -0
  834. package/src/Stdio.ts +7 -0
  835. package/src/Stream.ts +622 -15
  836. package/src/String.ts +87 -0
  837. package/src/Struct.ts +46 -0
  838. package/src/SubscriptionRef.ts +65 -0
  839. package/src/Symbol.ts +2 -0
  840. package/src/SynchronizedRef.ts +63 -0
  841. package/src/Take.ts +3 -0
  842. package/src/Terminal.ts +8 -0
  843. package/src/Tracer.ts +23 -0
  844. package/src/Trie.ts +68 -0
  845. package/src/Tuple.ts +38 -0
  846. package/src/TxChunk.ts +52 -0
  847. package/src/TxDeferred.ts +15 -0
  848. package/src/TxHashMap.ts +97 -6
  849. package/src/TxHashSet.ts +83 -3
  850. package/src/TxPriorityQueue.ts +34 -2
  851. package/src/TxPubSub.ts +26 -0
  852. package/src/TxQueue.ts +51 -0
  853. package/src/TxReentrantLock.ts +53 -36
  854. package/src/TxRef.ts +14 -0
  855. package/src/TxSemaphore.ts +47 -31
  856. package/src/TxSubscriptionRef.ts +25 -0
  857. package/src/Types.ts +36 -0
  858. package/src/UndefinedOr.ts +15 -0
  859. package/src/Unify.ts +15 -0
  860. package/src/Utils.ts +4 -0
  861. package/src/Version.ts +38 -0
  862. package/src/ai/Chat.ts +1 -1
  863. package/src/ai/DecisionModel.ts +42 -1
  864. package/src/ai/LanguageModel.ts +16 -19
  865. package/src/ai/McpServer.ts +107 -36
  866. package/src/ai/Telemetry.ts +62 -58
  867. package/src/ai/internal/mcpRuntime.ts +84 -43
  868. package/src/ai/internal/mcpStatefulRuntime.ts +2 -0
  869. package/src/cluster/K8sHttpClient.ts +12 -2
  870. package/src/encoding/Base64.ts +4 -0
  871. package/src/encoding/Base64Url.ts +4 -0
  872. package/src/encoding/EncodingError.ts +5 -0
  873. package/src/encoding/Hex.ts +5 -0
  874. package/src/encoding/Toml.ts +2 -2
  875. package/src/encoding/Yaml.ts +8 -4
  876. package/src/encoding/index.ts +4 -0
  877. package/src/eventlog/SqlEventJournal.ts +18 -4
  878. package/src/eventlog/SqlEventLogServerUnencrypted.ts +282 -235
  879. package/src/http/Headers.ts +8 -2
  880. package/src/http/HttpClient.ts +44 -27
  881. package/src/http/HttpClientResponse.ts +3 -1
  882. package/src/http/HttpEffect.ts +11 -2
  883. package/src/http/HttpMiddleware.ts +60 -45
  884. package/src/http/HttpServer.ts +1 -1
  885. package/src/http/internal/tracing.ts +52 -0
  886. package/src/http-api/HttpApiBuilder.ts +5 -1
  887. package/src/http-api/HttpApiClient.ts +13 -4
  888. package/src/http-api/HttpApiError.ts +8 -4
  889. package/src/http-api/HttpApiSecurity.ts +8 -8
  890. package/src/index.ts +156 -0
  891. package/src/internal/arbitrary/array.ts +3 -3
  892. package/src/internal/arbitrary/model.ts +37 -14
  893. package/src/internal/arbitrary/runner.ts +7 -7
  894. package/src/internal/arbitrary/schema.ts +4 -3
  895. package/src/internal/effect.ts +47 -45
  896. package/src/internal/schedule.ts +23 -17
  897. package/src/internal/schema/standardSchema.ts +2 -2
  898. package/src/internal/version.ts +2 -0
  899. package/src/observability/OtlpExporter.ts +9 -6
  900. package/src/observability/OtlpLogger.ts +20 -21
  901. package/src/observability/OtlpMetrics.ts +34 -93
  902. package/src/observability/OtlpResource.ts +18 -27
  903. package/src/observability/OtlpTracer.ts +34 -40
  904. package/src/observability/internal/otlpProtobuf.ts +60 -0
  905. package/src/reactivity/AsyncResult.ts +1 -1
  906. package/src/reactivity/Atom.ts +10 -6
  907. package/src/reactivity/AtomHttpApi.ts +2 -4
  908. package/src/reactivity/AtomRegistry.ts +7 -0
  909. package/src/rpc/RpcClient.ts +48 -24
  910. package/src/rpc/RpcServer.ts +26 -24
  911. package/src/rpc/internal/tracing.ts +22 -0
  912. package/src/schema/SchemaCompiler/runtime.ts +4 -1
  913. package/src/sql/SqlClient.ts +4 -4
  914. package/src/sql/Statement.ts +59 -7
  915. package/src/testing/TestClock.ts +9 -0
  916. package/src/testing/TestConsole.ts +8 -0
  917. package/src/testing/index.ts +3 -0
@@ -869,12 +869,7 @@ export const make: (params: {
869
869
  > =>
870
870
  Effect.useSpan(
871
871
  "LanguageModel.generateText",
872
- {
873
- attributes: {
874
- concurrency: options.concurrency,
875
- toolChoice: options.toolChoice
876
- }
877
- },
872
+ { kind: "client" },
878
873
  Effect.fnUntraced(
879
874
  function*(span) {
880
875
  const spanTransformer = yield* getSpanTransformer
@@ -930,11 +925,8 @@ export const make: (params: {
930
925
  return Effect.useSpan(
931
926
  "LanguageModel.generateObject",
932
927
  {
933
- attributes: {
934
- objectName,
935
- concurrency: options.concurrency,
936
- toolChoice: options.toolChoice
937
- }
928
+ kind: "client",
929
+ attributes: { "effect.ai.object_name": objectName }
938
930
  },
939
931
  Effect.fnUntraced(
940
932
  function*(span) {
@@ -1006,12 +998,7 @@ export const make: (params: {
1006
998
  Tools extends Record<string, Tool.Any>,
1007
999
  Options extends NoExcessProperties<GenerateTextOptions<Tools>, Options>
1008
1000
  >(options: Options & GenerateTextOptions<Tools>) {
1009
- const span = yield* Effect.makeSpanScoped("LanguageModel.streamText", {
1010
- attributes: {
1011
- concurrency: options.concurrency,
1012
- toolChoice: options.toolChoice
1013
- }
1014
- })
1001
+ const span = yield* Effect.makeSpanScoped("LanguageModel.streamText", { kind: "client" })
1015
1002
 
1016
1003
  const providerOptions: Mutable<ProviderOptions> = {
1017
1004
  prompt: Prompt.make(options.prompt),
@@ -1083,7 +1070,7 @@ export const make: (params: {
1083
1070
  const tracker = Option.getOrUndefined(yield* Effect.serviceOption(ResponseIdTracker.ResponseIdTracker))
1084
1071
  const toolChoice = options.toolChoice ?? "auto"
1085
1072
  const concurrency = options.concurrency ?? "unbounded"
1086
- providerOptions.span.attribute("concurrency", concurrency)
1073
+ annotateRequestOptions(providerOptions, toolChoice, concurrency)
1087
1074
 
1088
1075
  const generateWithNonIncrementalFallback = () => {
1089
1076
  const requestOptions: ProviderOptions = {
@@ -1336,7 +1323,7 @@ export const make: (params: {
1336
1323
  const tracker = Option.getOrUndefined(yield* Effect.serviceOption(ResponseIdTracker.ResponseIdTracker))
1337
1324
  const toolChoice = options.toolChoice ?? "auto"
1338
1325
  const concurrency = options.concurrency ?? "unbounded"
1339
- providerOptions.span.attribute("concurrency", concurrency)
1326
+ annotateRequestOptions(providerOptions, toolChoice, concurrency)
1340
1327
 
1341
1328
  const streamWithNonIncrementalFallback = () => {
1342
1329
  const requestOptions: ProviderOptions = {
@@ -2485,6 +2472,16 @@ const resolveToolkit = <Tools extends Record<string, Tool.Any>, E, R>(
2485
2472
  ? toolkit
2486
2473
  : Effect.succeed(toolkit as unknown as Toolkit.WithHandler<Tools>)) as any
2487
2474
 
2475
+ const annotateRequestOptions = (
2476
+ { responseFormat, span }: ProviderOptions,
2477
+ toolChoice: ToolChoice<any>,
2478
+ concurrency: Concurrency
2479
+ ): void => {
2480
+ span.attribute("gen_ai.output.type", responseFormat.type)
2481
+ span.attribute("effect.ai.tool_choice", typeof toolChoice === "string" ? toolChoice : JSON.stringify(toolChoice))
2482
+ span.attribute("effect.ai.concurrency", concurrency)
2483
+ }
2484
+
2488
2485
  /**
2489
2486
  * @internal
2490
2487
  */
@@ -654,6 +654,7 @@ const cancelledResponses = new WeakMap<object, string | number>()
654
654
  const requestKey = (requestId: string | number): string => `${typeof requestId}:${requestId}`
655
655
 
656
656
  interface ActiveRequest {
657
+ readonly requestId: RpcMessage.RequestId
657
658
  readonly prepared: McpRuntime.PreparedRequest
658
659
  readonly cancelled: boolean
659
660
  }
@@ -805,6 +806,7 @@ const runWithRuntime = Effect.fnUntraced(function*(
805
806
  payload: { requestId, reason }
806
807
  })
807
808
  })
809
+ let writeFromClient!: (clientId: number, message: RpcMessage.FromClientEncoded) => Effect.Effect<void>
808
810
  const handlers = yield* runtime.installHandlers({
809
811
  core: internalState.get(server)!.core,
810
812
  subscribeServerNotifications: PubSub.subscribe(serverNotifications),
@@ -976,8 +978,9 @@ const runWithRuntime = Effect.fnUntraced(function*(
976
978
  }
977
979
  return protocol.send(clientId, response)
978
980
  },
979
- run: (f) =>
980
- protocol.run((clientId, request_) => {
981
+ run: (f) => {
982
+ writeFromClient = f
983
+ return protocol.run((clientId, request_) => {
981
984
  const fiber = Fiber.getCurrent()!
982
985
  const request = request_ as unknown as
983
986
  | RpcMessage.FromServerEncoded
@@ -1045,11 +1048,13 @@ const runWithRuntime = Effect.fnUntraced(function*(
1045
1048
  if (httpRequest !== undefined && session !== undefined) {
1046
1049
  appendPreResponseHandlerUnsafe(httpRequest, (_, res) =>
1047
1050
  Effect.succeed(
1048
- HttpServerResponse.setHeader(
1049
- res,
1050
- MCP_PROTOCOL_VERSION_HEADER,
1051
- session.protocol.protocolVersion
1052
- )
1051
+ runtime.resolveRequest(clientId, headers) === undefined
1052
+ ? HttpServerResponse.empty({ status: 404 })
1053
+ : HttpServerResponse.setHeader(
1054
+ res,
1055
+ MCP_PROTOCOL_VERSION_HEADER,
1056
+ session.protocol.protocolVersion
1057
+ )
1053
1058
  ))
1054
1059
  }
1055
1060
  const routedRequest = runtime.routeClientRequest(selectedProtocol, request)
@@ -1130,7 +1135,11 @@ const runWithRuntime = Effect.fnUntraced(function*(
1130
1135
  }
1131
1136
  if (request.isNotification !== true) {
1132
1137
  const requests = activeRequests.get(clientId) ?? new Map<string, ActiveRequest>()
1133
- requests.set(requestKey(request.id), { prepared, cancelled: false })
1138
+ requests.set(requestKey(request.id), {
1139
+ requestId: RpcMessage.RequestId(request.id),
1140
+ prepared,
1141
+ cancelled: false
1142
+ })
1134
1143
  activeRequests.set(clientId, requests)
1135
1144
  }
1136
1145
  const handled = f(clientId, routedRequest)
@@ -1205,7 +1214,22 @@ const runWithRuntime = Effect.fnUntraced(function*(
1205
1214
  }
1206
1215
  }
1207
1216
  })
1217
+ }
1208
1218
  })
1219
+ if (isHttp) {
1220
+ // Stop requests that can no longer receive client replies after termination.
1221
+ yield* runtime.onSessionTerminated((binding) => {
1222
+ const interrupts: Array<Effect.Effect<void>> = []
1223
+ for (const [clientId, requests] of activeRequests) {
1224
+ for (const { prepared, requestId } of requests.values()) {
1225
+ if (prepared.binding === binding && cancelRequest(clientId, requestId)) {
1226
+ interrupts.push(writeFromClient(clientId, { _tag: "Interrupt", requestId }))
1227
+ }
1228
+ }
1229
+ }
1230
+ return Effect.all(interrupts, { discard: true })
1231
+ })
1232
+ }
1209
1233
 
1210
1234
  const { notificationDelivery, notifications } = internalState.get(server)!
1211
1235
  yield* Effect.acquireRelease(
@@ -1526,19 +1550,28 @@ const mcpStdioSerialization = (
1526
1550
  * **Details**
1527
1551
  *
1528
1552
  * POST serves JSON-RPC and accepted notification-only requests return `202`.
1529
- * Modern routing-header mismatches and unsupported protocol versions return
1530
- * JSON-RPC errors with status `400`; unknown modern RPC methods return a
1531
- * JSON-RPC method-not-found error with status `404`. Unsupported HTTP methods
1532
- * return `405`. Requests carrying an `Origin` header are rejected unless the
1533
- * exact origin appears in `allowedOrigins`; Origin-less non-browser clients
1553
+ * Header mismatches, unsupported protocol versions, and invalid session-header
1554
+ * usage return JSON-RPC errors with status `400`.
1555
+ * Unknown modern RPC methods return a JSON-RPC method-not-found error with
1556
+ * status `404`. Session requests without `MCP-Protocol-Version` use the version
1557
+ * negotiated at initialization. Unsupported HTTP methods return `405`.
1558
+ * Requests with an `Origin` header are rejected unless the exact origin
1559
+ * appears in `allowedOrigins`; Origin-less non-browser clients
1534
1560
  * remain valid. The surrounding HTTP server remains responsible for binding
1535
1561
  * to an appropriate interface and installing authentication.
1536
1562
  *
1563
+ * With `allowSessionTermination`, a DELETE carrying `Mcp-Session-Id` ends that
1564
+ * session with `204` and interrupts its in-flight requests; later requests with
1565
+ * that id get `404`. DELETE validates the session and `MCP-Protocol-Version`
1566
+ * headers like POST. Without the option, or when only sessionless revisions
1567
+ * such as `v2026_07_28` are configured, DELETE returns `405`. Any caller
1568
+ * holding a session id can end that session, so authenticate requests in the
1569
+ * surrounding router.
1570
+ *
1537
1571
  * `layerHttp` always implements the single-endpoint Streamable HTTP topology.
1538
1572
  * Using `v2024_11_05` here is a custom compatibility transport for that
1539
1573
  * revision's schema. It does not implement the historical two-endpoint
1540
- * HTTP+SSE transport, GET SSE, event resumption, session expiry, or client
1541
- * session termination.
1574
+ * HTTP+SSE transport, GET SSE, event resumption, or session expiry.
1542
1575
  *
1543
1576
  * @see {@link layerStdio} for exposing the server over stdio
1544
1577
  * @see {@link layer} for the base MCP server layer without a transport protocol
@@ -1558,24 +1591,10 @@ export const layerHttp = (options: {
1558
1591
  readonly protocols: Arr.NonEmptyReadonlyArray<McpProtocol.ProtocolAdapter>
1559
1592
  readonly extensions?: ServerExtensions | undefined
1560
1593
  readonly allowedOrigins?: ReadonlyArray<string> | undefined
1594
+ readonly allowSessionTermination?: boolean | undefined
1561
1595
  }): Layer.Layer<McpServer | McpServerClient, Cause.IllegalArgumentError, HttpRouter.HttpRouter> => {
1562
1596
  const runtime = McpRuntime.layer(options.protocols)
1563
- const methodNotAllowedResponse = HttpServerResponse.empty({
1564
- status: 405,
1565
- headers: { allow: "POST" }
1566
- })
1567
- const methodNotAllowed = (request: HttpServerRequest.HttpServerRequest) =>
1568
- isAllowedMcpOrigin(request, options.allowedOrigins)
1569
- ? Effect.succeed(methodNotAllowedResponse)
1570
- : Effect.succeed(HttpServerResponse.empty({ status: 403 }))
1571
- const routes = Layer.mergeAll(
1572
- HttpRouter.add("GET", options.path, methodNotAllowed),
1573
- HttpRouter.add("PUT", options.path, methodNotAllowed),
1574
- HttpRouter.add("PATCH", options.path, methodNotAllowed),
1575
- HttpRouter.add("DELETE", options.path, methodNotAllowed),
1576
- HttpRouter.add("OPTIONS", options.path, methodNotAllowed)
1577
- )
1578
- return Layer.merge(layerWithRuntime(options, "http"), routes).pipe(
1597
+ return layerWithRuntime(options, "http").pipe(
1579
1598
  Layer.provide(layerMcpProtocolHttp(options)),
1580
1599
  Layer.provide(runtime),
1581
1600
  Layer.provide(RpcSerialization.layerJsonRpc())
@@ -1585,6 +1604,7 @@ export const layerHttp = (options: {
1585
1604
  const layerMcpProtocolHttp = (options: {
1586
1605
  readonly path: HttpRouter.PathInput
1587
1606
  readonly allowedOrigins?: ReadonlyArray<string> | undefined
1607
+ readonly allowSessionTermination?: boolean | undefined
1588
1608
  }): Layer.Layer<
1589
1609
  RpcServer.Protocol,
1590
1610
  never,
@@ -1596,6 +1616,29 @@ const layerMcpProtocolHttp = (options: {
1596
1616
  Effect.provideService(RpcSerialization.RpcSerialization, mcpHttpSerialization)
1597
1617
  )
1598
1618
  const router = yield* HttpRouter.HttpRouter
1619
+ const allowSessionTermination = options.allowSessionTermination === true &&
1620
+ runtime.protocols.some((protocol) => protocol.runtime._tag === "Stateful")
1621
+ const forbidden = Effect.succeed(HttpServerResponse.empty({ status: 403 }))
1622
+ const withAllowedOrigin = (
1623
+ handler: (request: HttpServerRequest.HttpServerRequest) => Effect.Effect<HttpServerResponse.HttpServerResponse>
1624
+ ) =>
1625
+ (request: HttpServerRequest.HttpServerRequest) =>
1626
+ isAllowedMcpOrigin(request, options.allowedOrigins) ? handler(request) : forbidden
1627
+ const methodNotAllowedResponse = Effect.succeed(HttpServerResponse.empty({
1628
+ status: 405,
1629
+ headers: { allow: allowSessionTermination ? "POST, DELETE" : "POST" }
1630
+ }))
1631
+ const methodNotAllowed = withAllowedOrigin(() => methodNotAllowedResponse)
1632
+ for (const method of ["GET", "PUT", "PATCH", "OPTIONS"] as const) {
1633
+ yield* router.add(method, options.path, methodNotAllowed)
1634
+ }
1635
+ yield* router.add(
1636
+ "DELETE",
1637
+ options.path,
1638
+ allowSessionTermination
1639
+ ? withAllowedOrigin((request) => runtime.terminateHttpSession(request.headers))
1640
+ : methodNotAllowed
1641
+ )
1599
1642
  yield* router.add("POST", options.path, (request) => {
1600
1643
  if (!isAllowedMcpOrigin(request, options.allowedOrigins)) {
1601
1644
  return Effect.succeed(HttpServerResponse.empty({ status: 403 }))
@@ -1809,7 +1852,7 @@ export const registerToolkit: <Tools extends Record<string, Tool.Any>>(
1809
1852
  ) => Effect.Effect<
1810
1853
  void,
1811
1854
  never,
1812
- McpServer | Tool.HandlersFor<Tools> | Exclude<Tool.HandlerServices<Tools>, McpRequestContext>
1855
+ McpServer | Tool.HandlersFor<Tools> | Exclude<Tool.HandlerServices<Tools[keyof Tools]>, McpRequestContext>
1813
1856
  > = Effect.fnUntraced(function*<Tools extends Record<string, Tool.Any>>(
1814
1857
  toolkit: Toolkit.Toolkit<Tools>
1815
1858
  ) {
@@ -1829,7 +1872,11 @@ export const registerToolkit: <Tools extends Record<string, Tool.Any>>(
1829
1872
  }
1830
1873
  return Context.makeUnsafe(services)
1831
1874
  }))
1832
- const services = omitRequestServices(yield* Effect.context<never>())
1875
+ const services = omitRequestServices(
1876
+ yield* Effect.context<
1877
+ Exclude<Tool.HandlerServices<Tools[keyof Tools]>, McpRequestContext>
1878
+ >()
1879
+ )
1833
1880
  const reportCause = (cause: Cause.Cause<unknown>) => Effect.provideContext(ErrorReporter.report(cause), services)
1834
1881
  // Interruption propagates; anything else is logged, reported and scrubbed.
1835
1882
  const internalToolError = (cause: Cause.Cause<unknown>) => {
@@ -1973,7 +2020,7 @@ export const toolkit = <Tools extends Record<string, Tool.Any>>(
1973
2020
  ): Layer.Layer<
1974
2021
  never,
1975
2022
  never,
1976
- Tool.HandlersFor<Tools> | Exclude<Tool.HandlerServices<Tools>, McpRequestContext>
2023
+ Tool.HandlersFor<Tools> | Exclude<Tool.HandlerServices<Tools[keyof Tools]>, McpRequestContext>
1977
2024
  > =>
1978
2025
  Layer.effectDiscard(registerToolkit(toolkit)).pipe(
1979
2026
  Layer.provide(McpServer.layer)
@@ -1997,6 +2044,19 @@ export type ValidateCompletions<Completions, Keys extends string> =
1997
2044
  : never
1998
2045
  }
1999
2046
 
2047
+ /**
2048
+ * Utility type that collects the services required by the handlers of a
2049
+ * completion-handler record, including handlers declared as optional.
2050
+ *
2051
+ * @stability unstable
2052
+ * @category utility types
2053
+ * @since 4.0.0
2054
+ */
2055
+ export type CompletionServices<Completions> = {
2056
+ [K in keyof Completions]-?: NonNullable<Completions[K]> extends (...args: any) => infer Ret ? Effect.Services<Ret>
2057
+ : never
2058
+ }[keyof Completions]
2059
+
2000
2060
  /**
2001
2061
  * Completion-handler map for a resource URI template.
2002
2062
  *
@@ -2374,7 +2434,13 @@ export const registerPrompt = <
2374
2434
  ): Effect.Effect<
2375
2435
  void,
2376
2436
  never,
2377
- Exclude<Schema.Struct.DecodingServices<Params> | R, McpRequestContext> | McpServer
2437
+ | Exclude<
2438
+ | Schema.Struct.DecodingServices<Params>
2439
+ | R
2440
+ | CompletionServices<Completions>,
2441
+ McpRequestContext
2442
+ >
2443
+ | McpServer
2378
2444
  > => {
2379
2445
  const args = Arr.empty<PromptArgument>()
2380
2446
  const props: Record<string, Schema.Constraint> = options.parameters ?? {}
@@ -2512,7 +2578,12 @@ export const prompt = <
2512
2578
  ): Layer.Layer<
2513
2579
  never,
2514
2580
  never,
2515
- Exclude<Schema.Struct.DecodingServices<Params> | R, McpRequestContext>
2581
+ Exclude<
2582
+ | Schema.Struct.DecodingServices<Params>
2583
+ | R
2584
+ | CompletionServices<Completions>,
2585
+ McpRequestContext
2586
+ >
2516
2587
  > =>
2517
2588
  Layer.effectDiscard(registerPrompt(options)).pipe(
2518
2589
  Layer.provide(McpServer.layer)
@@ -27,50 +27,35 @@ import type * as Response from "./Response.ts"
27
27
  *
28
28
  * These attributes follow the OpenTelemetry generative AI semantic
29
29
  * conventions:
30
- * https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/
30
+ * https://github.com/open-telemetry/semantic-conventions-genai
31
31
  *
32
32
  * @stability unstable
33
33
  * @category models
34
34
  * @since 4.0.0
35
35
  */
36
36
  export type GenAITelemetryAttributes = Struct.Simplify<
37
- & AttributesWithPrefix<BaseAttributes, "gen_ai">
37
+ & AttributesWithPrefix<ProviderAttributes, "gen_ai.provider">
38
38
  & AttributesWithPrefix<OperationAttributes, "gen_ai.operation">
39
- & AttributesWithPrefix<TokenAttributes, "gen_ai.token">
39
+ & AttributesWithPrefix<OutputAttributes, "gen_ai.output">
40
40
  & AttributesWithPrefix<UsageAttributes, "gen_ai.usage">
41
41
  & AttributesWithPrefix<RequestAttributes, "gen_ai.request">
42
42
  & AttributesWithPrefix<ResponseAttributes, "gen_ai.response">
43
43
  >
44
44
 
45
- /**
46
- * All telemetry attributes which are part of the GenAI specification.
47
- *
48
- * @stability unstable
49
- * @category models
50
- * @since 4.0.0
51
- */
52
- export type AllAttributes =
53
- & BaseAttributes
54
- & OperationAttributes
55
- & TokenAttributes
56
- & UsageAttributes
57
- & RequestAttributes
58
- & ResponseAttributes
59
-
60
45
  /**
61
46
  * Telemetry attributes which are part of the GenAI specification and are
62
- * namespaced by `gen_ai`.
47
+ * namespaced by `gen_ai.provider`.
63
48
  *
64
49
  * @stability unstable
65
50
  * @category models
66
- * @since 4.0.0
51
+ * @since 4.0.2
67
52
  */
68
- export interface BaseAttributes {
53
+ export interface ProviderAttributes {
69
54
  /**
70
- * The Generative AI product as identified by the client or server
71
- * instrumentation.
55
+ * The Generative AI provider as identified by the client or server
56
+ * instrumentation, written as `gen_ai.provider.name`.
72
57
  */
73
- readonly system?: (string & {}) | WellKnownSystem | null | undefined
58
+ readonly name?: (string & {}) | WellKnownProviderName | null | undefined
74
59
  }
75
60
 
76
61
  /**
@@ -87,14 +72,17 @@ export interface OperationAttributes {
87
72
 
88
73
  /**
89
74
  * Telemetry attributes which are part of the GenAI specification and are
90
- * namespaced by `gen_ai.token`.
75
+ * namespaced by `gen_ai.output`.
91
76
  *
92
77
  * @stability unstable
93
78
  * @category models
94
- * @since 4.0.0
79
+ * @since 4.0.2
95
80
  */
96
- export interface TokenAttributes {
97
- readonly type?: string | null | undefined
81
+ export interface OutputAttributes {
82
+ /**
83
+ * The output modality requested by the client.
84
+ */
85
+ readonly type?: (string & {}) | WellKnownOutputType | null | undefined
98
86
  }
99
87
 
100
88
  /**
@@ -128,15 +116,15 @@ export interface RequestAttributes {
128
116
  */
129
117
  readonly temperature?: number | null | undefined
130
118
  /**
131
- * The temperature setting for the GenAI request.
119
+ * The top_k sampling setting for the GenAI request.
132
120
  */
133
121
  readonly topK?: number | null | undefined
134
122
  /**
135
- * The top_k sampling setting for the GenAI request.
123
+ * The top_p sampling setting for the GenAI request.
136
124
  */
137
125
  readonly topP?: number | null | undefined
138
126
  /**
139
- * The top_p sampling setting for the GenAI request.
127
+ * The maximum number of tokens the model may generate.
140
128
  */
141
129
  readonly maxTokens?: number | null | undefined
142
130
  /**
@@ -203,7 +191,18 @@ export interface ResponseAttributes {
203
191
  export type WellKnownOperationName = "chat" | "embeddings" | "text_completion"
204
192
 
205
193
  /**
206
- * The `gen_ai.system` attribute has the following list of well-known values.
194
+ * The `gen_ai.output.type` attribute has the following list of well-known
195
+ * values.
196
+ *
197
+ * @stability unstable
198
+ * @category models
199
+ * @since 4.0.2
200
+ */
201
+ export type WellKnownOutputType = "text" | "json" | "image" | "speech"
202
+
203
+ /**
204
+ * The `gen_ai.provider.name` attribute has the following list of well-known
205
+ * values.
207
206
  *
208
207
  * **Details**
209
208
  *
@@ -212,23 +211,25 @@ export type WellKnownOperationName = "chat" | "embeddings" | "text_completion"
212
211
  *
213
212
  * @stability unstable
214
213
  * @category models
215
- * @since 4.0.0
214
+ * @since 4.0.2
216
215
  */
217
- export type WellKnownSystem =
216
+ export type WellKnownProviderName =
218
217
  | "anthropic"
219
218
  | "aws.bedrock"
220
- | "az.ai.inference"
221
- | "az.ai.openai"
219
+ | "azure.ai.inference"
220
+ | "azure.ai.openai"
222
221
  | "cohere"
223
222
  | "deepseek"
224
- | "gemini"
223
+ | "gcp.gemini"
224
+ | "gcp.gen_ai"
225
+ | "gcp.vertex_ai"
225
226
  | "groq"
226
227
  | "ibm.watsonx.ai"
227
228
  | "mistral_ai"
229
+ | "moonshot_ai"
228
230
  | "openai"
229
231
  | "perplexity"
230
- | "vertex_ai"
231
- | "xai"
232
+ | "x_ai"
232
233
 
233
234
  /**
234
235
  * Utility type for prefixing attribute names with a namespace.
@@ -375,11 +376,11 @@ export const addSpanAttributes = (
375
376
  }
376
377
  }
377
378
 
378
- const addSpanBaseAttributes = addSpanAttributes("gen_ai", String.camelToSnake)<BaseAttributes>
379
+ const addSpanProviderAttributes = addSpanAttributes("gen_ai.provider", String.camelToSnake)<ProviderAttributes>
379
380
  const addSpanOperationAttributes = addSpanAttributes("gen_ai.operation", String.camelToSnake)<OperationAttributes>
381
+ const addSpanOutputAttributes = addSpanAttributes("gen_ai.output", String.camelToSnake)<OutputAttributes>
380
382
  const addSpanRequestAttributes = addSpanAttributes("gen_ai.request", String.camelToSnake)<RequestAttributes>
381
383
  const addSpanResponseAttributes = addSpanAttributes("gen_ai.response", String.camelToSnake)<ResponseAttributes>
382
- const addSpanTokenAttributes = addSpanAttributes("gen_ai.token", String.camelToSnake)<TokenAttributes>
383
384
  const addSpanUsageAttributes = addSpanAttributes("gen_ai.usage", String.camelToSnake)<UsageAttributes>
384
385
 
385
386
  /**
@@ -387,8 +388,7 @@ const addSpanUsageAttributes = addSpanAttributes("gen_ai.usage", String.camelToS
387
388
  *
388
389
  * **Details**
389
390
  *
390
- * Combines base attributes with optional grouped attributes for comprehensive
391
- * telemetry coverage of AI operations.
391
+ * Groups attributes by their `gen_ai.*` namespace.
392
392
  *
393
393
  * **Example** (Configuring GenAI telemetry attributes)
394
394
  *
@@ -396,7 +396,7 @@ const addSpanUsageAttributes = addSpanAttributes("gen_ai.usage", String.camelToS
396
396
  * import type { Telemetry } from "effect/ai"
397
397
  *
398
398
  * const telemetryOptions: Telemetry.GenAITelemetryAttributeOptions = {
399
- * system: "openai",
399
+ * provider: { name: "openai" },
400
400
  * operation: {
401
401
  * name: "chat"
402
402
  * },
@@ -416,18 +416,26 @@ const addSpanUsageAttributes = addSpanAttributes("gen_ai.usage", String.camelToS
416
416
  * }
417
417
  * }
418
418
  *
419
- * const result = [telemetryOptions.system, telemetryOptions.usage?.inputTokens] // => ["openai", 50]
419
+ * const result = [telemetryOptions.provider?.name, telemetryOptions.usage?.inputTokens] // => ["openai", 50]
420
420
  * ```
421
421
  *
422
422
  * @stability unstable
423
423
  * @category options
424
424
  * @since 4.0.0
425
425
  */
426
- export type GenAITelemetryAttributeOptions = BaseAttributes & {
426
+ export type GenAITelemetryAttributeOptions = {
427
+ /**
428
+ * Provider attributes (e.g., provider name).
429
+ */
430
+ readonly provider?: ProviderAttributes | undefined
427
431
  /**
428
432
  * Operation-specific attributes (e.g., operation name).
429
433
  */
430
434
  readonly operation?: OperationAttributes | undefined
435
+ /**
436
+ * Output attributes (e.g., requested output type).
437
+ */
438
+ readonly output?: OutputAttributes | undefined
431
439
  /**
432
440
  * Request-specific attributes (e.g., model parameters).
433
441
  */
@@ -436,10 +444,6 @@ export type GenAITelemetryAttributeOptions = BaseAttributes & {
436
444
  * Response-specific attributes (e.g., response metadata).
437
445
  */
438
446
  readonly response?: ResponseAttributes | undefined
439
- /**
440
- * Token-specific attributes.
441
- */
442
- readonly token?: TokenAttributes | undefined
443
447
  /**
444
448
  * Usage statistics attributes (e.g., token counts).
445
449
  */
@@ -451,7 +455,7 @@ export type GenAITelemetryAttributeOptions = BaseAttributes & {
451
455
  *
452
456
  * **When to use**
453
457
  *
454
- * Use when you need to write GenAI request, response, token, or usage
458
+ * Use when you need to write GenAI request, response, or usage
455
459
  * attributes onto an existing OpenTelemetry span.
456
460
  *
457
461
  * **Details**
@@ -473,7 +477,7 @@ export type GenAITelemetryAttributeOptions = BaseAttributes & {
473
477
  * const span = yield* Effect.currentSpan
474
478
  *
475
479
  * Telemetry.addGenAIAnnotations(span, {
476
- * system: "openai",
480
+ * provider: { name: "openai" },
477
481
  * request: { model: "gpt-4", temperature: 0.7 },
478
482
  * usage: { inputTokens: 100, outputTokens: 50 }
479
483
  * })
@@ -493,7 +497,7 @@ export const addGenAIAnnotations: {
493
497
  *
494
498
  * **When to use**
495
499
  *
496
- * Use when you need to write GenAI request, response, token, or usage
500
+ * Use when you need to write GenAI request, response, or usage
497
501
  * attributes onto an existing OpenTelemetry span.
498
502
  *
499
503
  * **Details**
@@ -515,7 +519,7 @@ export const addGenAIAnnotations: {
515
519
  * const span = yield* Effect.currentSpan
516
520
  *
517
521
  * Telemetry.addGenAIAnnotations(span, {
518
- * system: "openai",
522
+ * provider: { name: "openai" },
519
523
  * request: { model: "gpt-4", temperature: 0.7 },
520
524
  * usage: { inputTokens: 100, outputTokens: 50 }
521
525
  * })
@@ -535,7 +539,7 @@ export const addGenAIAnnotations: {
535
539
  *
536
540
  * **When to use**
537
541
  *
538
- * Use when you need to write GenAI request, response, token, or usage
542
+ * Use when you need to write GenAI request, response, or usage
539
543
  * attributes onto an existing OpenTelemetry span.
540
544
  *
541
545
  * **Details**
@@ -557,7 +561,7 @@ export const addGenAIAnnotations: {
557
561
  * const span = yield* Effect.currentSpan
558
562
  *
559
563
  * Telemetry.addGenAIAnnotations(span, {
560
- * system: "openai",
564
+ * provider: { name: "openai" },
561
565
  * request: { model: "gpt-4", temperature: 0.7 },
562
566
  * usage: { inputTokens: 100, outputTokens: 50 }
563
567
  * })
@@ -573,11 +577,11 @@ export const addGenAIAnnotations: {
573
577
  */
574
578
  (span: Span, options: GenAITelemetryAttributeOptions): void
575
579
  } = dual(2, (span: Span, options: GenAITelemetryAttributeOptions) => {
576
- addSpanBaseAttributes(span, { system: options.system })
580
+ if (Predicate.isNotNullish(options.provider)) addSpanProviderAttributes(span, options.provider)
577
581
  if (Predicate.isNotNullish(options.operation)) addSpanOperationAttributes(span, options.operation)
582
+ if (Predicate.isNotNullish(options.output)) addSpanOutputAttributes(span, options.output)
578
583
  if (Predicate.isNotNullish(options.request)) addSpanRequestAttributes(span, options.request)
579
584
  if (Predicate.isNotNullish(options.response)) addSpanResponseAttributes(span, options.response)
580
- if (Predicate.isNotNullish(options.token)) addSpanTokenAttributes(span, options.token)
581
585
  if (Predicate.isNotNullish(options.usage)) addSpanUsageAttributes(span, options.usage)
582
586
  })
583
587