effect 4.0.0 → 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 (1001) 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 +47 -23
  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 +61 -1
  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 +677 -22
  99. package/dist/Effect.d.ts.map +1 -1
  100. package/dist/Effect.js +251 -10
  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 +22 -5
  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 +28 -5
  297. package/dist/Pool.d.ts.map +1 -1
  298. package/dist/Pool.js +42 -42
  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 +24 -1
  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 +50 -19
  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 +603 -6
  444. package/dist/Stream.d.ts.map +1 -1
  445. package/dist/Stream.js +316 -57
  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 +8 -0
  557. package/dist/ai/LanguageModel.d.ts.map +1 -1
  558. package/dist/ai/LanguageModel.js +27 -15
  559. package/dist/ai/LanguageModel.js.map +1 -1
  560. package/dist/ai/McpSchema.d.ts +508 -508
  561. package/dist/ai/McpSchema.d.ts.map +1 -1
  562. package/dist/ai/McpSchema.js +1 -1
  563. package/dist/ai/McpSchema.js.map +1 -1
  564. package/dist/ai/McpServer.d.ts +32 -11
  565. package/dist/ai/McpServer.d.ts.map +1 -1
  566. package/dist/ai/McpServer.js +224 -172
  567. package/dist/ai/McpServer.js.map +1 -1
  568. package/dist/ai/Response.d.ts.map +1 -1
  569. package/dist/ai/Response.js +22 -12
  570. package/dist/ai/Response.js.map +1 -1
  571. package/dist/ai/Telemetry.d.ts +49 -41
  572. package/dist/ai/Telemetry.d.ts.map +1 -1
  573. package/dist/ai/Telemetry.js +6 -8
  574. package/dist/ai/Telemetry.js.map +1 -1
  575. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -0
  576. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  577. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -0
  578. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  579. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +1 -0
  580. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  581. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +1 -0
  582. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  583. package/dist/ai/internal/mcpRuntime.js +79 -46
  584. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  585. package/dist/ai/internal/mcpSchema/v2024_11_05.js +3 -1
  586. package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
  587. package/dist/ai/internal/mcpStatefulRuntime.js +1 -0
  588. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  589. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  590. package/dist/cluster/ClusterWorkflowEngine.js +11 -2
  591. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  592. package/dist/cluster/K8sHttpClient.d.ts.map +1 -1
  593. package/dist/cluster/K8sHttpClient.js +5 -2
  594. package/dist/cluster/K8sHttpClient.js.map +1 -1
  595. package/dist/cluster/Sharding.d.ts.map +1 -1
  596. package/dist/cluster/Sharding.js +14 -7
  597. package/dist/cluster/Sharding.js.map +1 -1
  598. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  599. package/dist/cluster/SqlMessageStorage.js +21 -12
  600. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  601. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  602. package/dist/cluster/SqlRunnerStorage.js +30 -44
  603. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  604. package/dist/cluster/internal/entityManager.js +63 -62
  605. package/dist/cluster/internal/entityManager.js.map +1 -1
  606. package/dist/cluster/internal/interruptors.js +8 -0
  607. package/dist/cluster/internal/interruptors.js.map +1 -1
  608. package/dist/cluster/internal/resourceMap.js +39 -14
  609. package/dist/cluster/internal/resourceMap.js.map +1 -1
  610. package/dist/cluster/internal/resourceRef.js +168 -87
  611. package/dist/cluster/internal/resourceRef.js.map +1 -1
  612. package/dist/encoding/Base64.d.ts +4 -0
  613. package/dist/encoding/Base64.d.ts.map +1 -1
  614. package/dist/encoding/Base64.js +4 -0
  615. package/dist/encoding/Base64.js.map +1 -1
  616. package/dist/encoding/Base64Url.d.ts +4 -0
  617. package/dist/encoding/Base64Url.d.ts.map +1 -1
  618. package/dist/encoding/Base64Url.js +4 -0
  619. package/dist/encoding/Base64Url.js.map +1 -1
  620. package/dist/encoding/EncodingError.d.ts +4 -0
  621. package/dist/encoding/EncodingError.d.ts.map +1 -1
  622. package/dist/encoding/EncodingError.js +4 -0
  623. package/dist/encoding/EncodingError.js.map +1 -1
  624. package/dist/encoding/Hex.d.ts +5 -0
  625. package/dist/encoding/Hex.d.ts.map +1 -1
  626. package/dist/encoding/Hex.js +5 -0
  627. package/dist/encoding/Hex.js.map +1 -1
  628. package/dist/encoding/Toml.js +2 -2
  629. package/dist/encoding/Toml.js.map +1 -1
  630. package/dist/encoding/Yaml.d.ts.map +1 -1
  631. package/dist/encoding/Yaml.js +6 -4
  632. package/dist/encoding/Yaml.js.map +1 -1
  633. package/dist/encoding/index.d.ts +4 -0
  634. package/dist/encoding/index.d.ts.map +1 -1
  635. package/dist/encoding/index.js +4 -0
  636. package/dist/encoding/index.js.map +1 -1
  637. package/dist/eventlog/SqlEventJournal.js +8 -4
  638. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  639. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +27 -10
  640. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  641. package/dist/eventlog/SqlEventLogServerUnencrypted.js +49 -7
  642. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  643. package/dist/http/Headers.d.ts +3 -1
  644. package/dist/http/Headers.d.ts.map +1 -1
  645. package/dist/http/Headers.js +4 -2
  646. package/dist/http/Headers.js.map +1 -1
  647. package/dist/http/HttpClient.d.ts +9 -0
  648. package/dist/http/HttpClient.d.ts.map +1 -1
  649. package/dist/http/HttpClient.js +40 -21
  650. package/dist/http/HttpClient.js.map +1 -1
  651. package/dist/http/HttpClientResponse.js +3 -1
  652. package/dist/http/HttpClientResponse.js.map +1 -1
  653. package/dist/http/HttpEffect.d.ts +3 -0
  654. package/dist/http/HttpEffect.d.ts.map +1 -1
  655. package/dist/http/HttpEffect.js +5 -2
  656. package/dist/http/HttpEffect.js.map +1 -1
  657. package/dist/http/HttpMiddleware.d.ts +17 -0
  658. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  659. package/dist/http/HttpMiddleware.js +58 -40
  660. package/dist/http/HttpMiddleware.js.map +1 -1
  661. package/dist/http/HttpServer.d.ts +1 -1
  662. package/dist/http/HttpServer.d.ts.map +1 -1
  663. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  664. package/dist/http/HttpStaticServer.js +14 -0
  665. package/dist/http/HttpStaticServer.js.map +1 -1
  666. package/dist/http/HttpTraceContext.d.ts +1 -1
  667. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  668. package/dist/http/HttpTraceContext.js +4 -4
  669. package/dist/http/HttpTraceContext.js.map +1 -1
  670. package/dist/http/internal/tracing.d.ts +2 -0
  671. package/dist/http/internal/tracing.d.ts.map +1 -0
  672. package/dist/http/internal/tracing.js +37 -0
  673. package/dist/http/internal/tracing.js.map +1 -0
  674. package/dist/http-api/HttpApiBuilder.js +2 -1
  675. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  676. package/dist/http-api/HttpApiClient.d.ts +12 -3
  677. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  678. package/dist/http-api/HttpApiClient.js.map +1 -1
  679. package/dist/http-api/HttpApiError.d.ts +4 -2
  680. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  681. package/dist/http-api/HttpApiError.js +7 -3
  682. package/dist/http-api/HttpApiError.js.map +1 -1
  683. package/dist/http-api/HttpApiSecurity.d.ts +8 -8
  684. package/dist/http-api/HttpApiSecurity.js +8 -8
  685. package/dist/index.d.ts +155 -0
  686. package/dist/index.d.ts.map +1 -1
  687. package/dist/index.js +155 -0
  688. package/dist/index.js.map +1 -1
  689. package/dist/internal/arbitrary/array.js +3 -3
  690. package/dist/internal/arbitrary/array.js.map +1 -1
  691. package/dist/internal/arbitrary/model.js +26 -11
  692. package/dist/internal/arbitrary/model.js.map +1 -1
  693. package/dist/internal/arbitrary/runner.js +8 -8
  694. package/dist/internal/arbitrary/runner.js.map +1 -1
  695. package/dist/internal/arbitrary/schema.js +4 -5
  696. package/dist/internal/arbitrary/schema.js.map +1 -1
  697. package/dist/internal/core.js +43 -2
  698. package/dist/internal/core.js.map +1 -1
  699. package/dist/internal/dateTime.js +1 -1
  700. package/dist/internal/dateTime.js.map +1 -1
  701. package/dist/internal/effect.js +104 -120
  702. package/dist/internal/effect.js.map +1 -1
  703. package/dist/internal/rcRef.js +59 -23
  704. package/dist/internal/rcRef.js.map +1 -1
  705. package/dist/internal/schedule.js +7 -5
  706. package/dist/internal/schedule.js.map +1 -1
  707. package/dist/internal/schema/fromJsonSchemaDocument.js +11 -8
  708. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  709. package/dist/internal/schema/standardSchema.js +2 -2
  710. package/dist/internal/schema/standardSchema.js.map +1 -1
  711. package/dist/internal/version.d.ts +2 -0
  712. package/dist/internal/version.d.ts.map +1 -0
  713. package/dist/internal/version.js +3 -0
  714. package/dist/internal/version.js.map +1 -0
  715. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  716. package/dist/observability/OtlpExporter.js +5 -6
  717. package/dist/observability/OtlpExporter.js.map +1 -1
  718. package/dist/observability/OtlpLogger.d.ts.map +1 -1
  719. package/dist/observability/OtlpLogger.js +23 -27
  720. package/dist/observability/OtlpLogger.js.map +1 -1
  721. package/dist/observability/OtlpMetrics.d.ts +5 -3
  722. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  723. package/dist/observability/OtlpMetrics.js +21 -94
  724. package/dist/observability/OtlpMetrics.js.map +1 -1
  725. package/dist/observability/OtlpResource.d.ts +4 -3
  726. package/dist/observability/OtlpResource.d.ts.map +1 -1
  727. package/dist/observability/OtlpResource.js +20 -23
  728. package/dist/observability/OtlpResource.js.map +1 -1
  729. package/dist/observability/OtlpTracer.d.ts +1 -0
  730. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  731. package/dist/observability/OtlpTracer.js +32 -36
  732. package/dist/observability/OtlpTracer.js.map +1 -1
  733. package/dist/observability/internal/otlpProtobuf.js +32 -1
  734. package/dist/observability/internal/otlpProtobuf.js.map +1 -1
  735. package/dist/reactivity/AsyncResult.d.ts +1 -1
  736. package/dist/reactivity/Atom.d.ts +5 -5
  737. package/dist/reactivity/Atom.d.ts.map +1 -1
  738. package/dist/reactivity/Atom.js +9 -5
  739. package/dist/reactivity/Atom.js.map +1 -1
  740. package/dist/reactivity/AtomHttpApi.d.ts +2 -2
  741. package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
  742. package/dist/reactivity/AtomRegistry.d.ts +8 -0
  743. package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
  744. package/dist/reactivity/AtomRegistry.js.map +1 -1
  745. package/dist/rpc/RpcClient.d.ts +21 -3
  746. package/dist/rpc/RpcClient.d.ts.map +1 -1
  747. package/dist/rpc/RpcClient.js +58 -34
  748. package/dist/rpc/RpcClient.js.map +1 -1
  749. package/dist/rpc/RpcServer.d.ts.map +1 -1
  750. package/dist/rpc/RpcServer.js +20 -23
  751. package/dist/rpc/RpcServer.js.map +1 -1
  752. package/dist/rpc/Utils.d.ts +2 -3
  753. package/dist/rpc/Utils.d.ts.map +1 -1
  754. package/dist/rpc/Utils.js +3 -4
  755. package/dist/rpc/Utils.js.map +1 -1
  756. package/dist/rpc/internal/tracing.d.ts +2 -0
  757. package/dist/rpc/internal/tracing.d.ts.map +1 -0
  758. package/dist/rpc/internal/tracing.js +18 -0
  759. package/dist/rpc/internal/tracing.js.map +1 -0
  760. package/dist/schema/SchemaCompiler/runtime.js +9 -1
  761. package/dist/schema/SchemaCompiler/runtime.js.map +1 -1
  762. package/dist/sql/SqlClient.js +4 -4
  763. package/dist/sql/SqlClient.js.map +1 -1
  764. package/dist/sql/Statement.d.ts +21 -1
  765. package/dist/sql/Statement.d.ts.map +1 -1
  766. package/dist/sql/Statement.js +55 -7
  767. package/dist/sql/Statement.js.map +1 -1
  768. package/dist/testing/TestClock.d.ts +8 -0
  769. package/dist/testing/TestClock.d.ts.map +1 -1
  770. package/dist/testing/TestClock.js +7 -0
  771. package/dist/testing/TestClock.js.map +1 -1
  772. package/dist/testing/TestConsole.d.ts +7 -0
  773. package/dist/testing/TestConsole.d.ts.map +1 -1
  774. package/dist/testing/TestConsole.js +6 -0
  775. package/dist/testing/TestConsole.js.map +1 -1
  776. package/dist/testing/index.d.ts +3 -0
  777. package/dist/testing/index.d.ts.map +1 -1
  778. package/dist/testing/index.js +3 -0
  779. package/dist/testing/index.js.map +1 -1
  780. package/dist/workflow/WorkflowEngine.d.ts +2 -0
  781. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  782. package/dist/workflow/WorkflowEngine.js +1 -0
  783. package/dist/workflow/WorkflowEngine.js.map +1 -1
  784. package/package.json +3 -3
  785. package/src/Array.ts +351 -3
  786. package/src/BigDecimal.ts +88 -0
  787. package/src/BigInt.ts +68 -0
  788. package/src/Boolean.ts +34 -0
  789. package/src/Brand.ts +10 -0
  790. package/src/ByteSize.ts +87 -0
  791. package/src/Cache.ts +72 -24
  792. package/src/Cause.ts +83 -1
  793. package/src/Channel.ts +368 -18
  794. package/src/ChannelSchema.ts +13 -0
  795. package/src/Chunk.ts +193 -0
  796. package/src/Clock.ts +7 -0
  797. package/src/Combiner.ts +10 -0
  798. package/src/Config.ts +82 -8
  799. package/src/ConfigProvider.ts +28 -0
  800. package/src/Console.ts +26 -0
  801. package/src/Context.ts +50 -0
  802. package/src/Cron.ts +32 -1
  803. package/src/Crypto.ts +5 -0
  804. package/src/Data.ts +13 -0
  805. package/src/DateTime.ts +171 -0
  806. package/src/Deferred.ts +51 -0
  807. package/src/Differ.ts +2 -0
  808. package/src/Duration.ts +90 -0
  809. package/src/Effect.ts +692 -27
  810. package/src/Effectable.ts +4 -0
  811. package/src/Equal.ts +12 -1
  812. package/src/Equivalence.ts +22 -0
  813. package/src/ErrorReporter.ts +36 -0
  814. package/src/ExecutionPlan.ts +58 -14
  815. package/src/Exit.ts +40 -0
  816. package/src/Fiber.ts +20 -0
  817. package/src/FiberHandle.ts +29 -4
  818. package/src/FiberMap.ts +38 -0
  819. package/src/FiberSet.ts +21 -0
  820. package/src/FileSystem.ts +16 -0
  821. package/src/Filter.ts +55 -0
  822. package/src/Formatter.ts +42 -1
  823. package/src/Function.ts +30 -0
  824. package/src/Graph.ts +317 -36
  825. package/src/HKT.ts +5 -0
  826. package/src/Hash.ts +15 -0
  827. package/src/HashMap.ts +91 -0
  828. package/src/HashRing.ts +32 -5
  829. package/src/HashSet.ts +53 -0
  830. package/src/Inspectable.ts +8 -0
  831. package/src/Iterable.ts +127 -0
  832. package/src/JsonPatch.ts +5 -0
  833. package/src/JsonPointer.ts +5 -0
  834. package/src/JsonSchema.ts +17 -0
  835. package/src/Latch.ts +14 -0
  836. package/src/Layer.ts +101 -1
  837. package/src/LayerMap.ts +7 -0
  838. package/src/LayerRef.ts +5 -0
  839. package/src/LogLevel.ts +20 -0
  840. package/src/Logger.ts +41 -5
  841. package/src/ManagedRuntime.ts +12 -1
  842. package/src/Match.ts +52 -0
  843. package/src/Metric.ts +69 -0
  844. package/src/MutableHashMap.ts +44 -0
  845. package/src/MutableHashSet.ts +17 -0
  846. package/src/MutableList.ts +21 -0
  847. package/src/MutableRef.ts +32 -0
  848. package/src/Newtype.ts +9 -0
  849. package/src/NonEmptyIterable.ts +4 -0
  850. package/src/Number.ts +61 -0
  851. package/src/Optic.ts +57 -0
  852. package/src/Option.ts +134 -0
  853. package/src/Order.ts +30 -0
  854. package/src/Ordering.ts +7 -0
  855. package/src/PartitionedSemaphore.ts +61 -22
  856. package/src/Path.ts +6 -0
  857. package/src/Pipeable.ts +7 -0
  858. package/src/PlatformError.ts +8 -0
  859. package/src/Pool.ts +48 -37
  860. package/src/Predicate.ts +85 -0
  861. package/src/PrimaryKey.ts +5 -0
  862. package/src/PubSub.ts +90 -9
  863. package/src/Pull.ts +20 -0
  864. package/src/Queue.ts +80 -10
  865. package/src/Random.ts +13 -0
  866. package/src/RcMap.ts +49 -2
  867. package/src/RcRef.ts +6 -0
  868. package/src/Record.ts +100 -0
  869. package/src/Redactable.ts +6 -0
  870. package/src/Redacted.ts +8 -0
  871. package/src/Reducer.ts +4 -0
  872. package/src/Ref.ts +42 -0
  873. package/src/References.ts +21 -0
  874. package/src/RegExp.ts +4 -0
  875. package/src/Request.ts +32 -0
  876. package/src/RequestResolver.ts +59 -10
  877. package/src/Resource.ts +7 -0
  878. package/src/Result.ts +93 -0
  879. package/src/Runtime.ts +10 -0
  880. package/src/Schedule.ts +61 -0
  881. package/src/Scheduler.ts +7 -0
  882. package/src/Schema.ts +499 -4
  883. package/src/SchemaAST.ts +115 -1
  884. package/src/SchemaGetter.ts +80 -4
  885. package/src/SchemaIssue.ts +34 -0
  886. package/src/SchemaParser.ts +26 -0
  887. package/src/SchemaRepresentation.ts +148 -0
  888. package/src/SchemaTransformation.ts +53 -0
  889. package/src/Scope.ts +19 -0
  890. package/src/ScopedCache.ts +82 -19
  891. package/src/ScopedRef.ts +9 -0
  892. package/src/Semaphore.ts +26 -0
  893. package/src/Sink.ts +126 -2
  894. package/src/StandardSchema.ts +1 -0
  895. package/src/Stdio.ts +7 -0
  896. package/src/Stream.ts +780 -103
  897. package/src/String.ts +87 -0
  898. package/src/Struct.ts +46 -0
  899. package/src/SubscriptionRef.ts +65 -0
  900. package/src/Symbol.ts +2 -0
  901. package/src/SynchronizedRef.ts +63 -0
  902. package/src/Take.ts +3 -0
  903. package/src/Terminal.ts +8 -0
  904. package/src/Tracer.ts +23 -0
  905. package/src/Trie.ts +68 -0
  906. package/src/Tuple.ts +38 -0
  907. package/src/TxChunk.ts +52 -0
  908. package/src/TxDeferred.ts +15 -0
  909. package/src/TxHashMap.ts +97 -6
  910. package/src/TxHashSet.ts +83 -3
  911. package/src/TxPriorityQueue.ts +34 -2
  912. package/src/TxPubSub.ts +26 -0
  913. package/src/TxQueue.ts +51 -0
  914. package/src/TxReentrantLock.ts +53 -36
  915. package/src/TxRef.ts +14 -0
  916. package/src/TxSemaphore.ts +47 -31
  917. package/src/TxSubscriptionRef.ts +25 -0
  918. package/src/Types.ts +36 -0
  919. package/src/UndefinedOr.ts +15 -0
  920. package/src/Unify.ts +15 -0
  921. package/src/Utils.ts +4 -0
  922. package/src/Version.ts +38 -0
  923. package/src/ai/Chat.ts +1 -1
  924. package/src/ai/DecisionModel.ts +42 -1
  925. package/src/ai/LanguageModel.ts +43 -21
  926. package/src/ai/McpSchema.ts +3 -3
  927. package/src/ai/McpServer.ts +119 -39
  928. package/src/ai/Response.ts +27 -12
  929. package/src/ai/Telemetry.ts +62 -58
  930. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -0
  931. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -0
  932. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +1 -0
  933. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +1 -0
  934. package/src/ai/internal/mcpRuntime.ts +84 -43
  935. package/src/ai/internal/mcpSchema/v2024_11_05.ts +4 -2
  936. package/src/ai/internal/mcpStatefulRuntime.ts +2 -0
  937. package/src/cluster/ClusterWorkflowEngine.ts +18 -4
  938. package/src/cluster/K8sHttpClient.ts +12 -2
  939. package/src/cluster/Sharding.ts +24 -24
  940. package/src/cluster/SqlMessageStorage.ts +26 -13
  941. package/src/cluster/SqlRunnerStorage.ts +85 -113
  942. package/src/cluster/internal/entityManager.ts +68 -80
  943. package/src/cluster/internal/interruptors.ts +13 -0
  944. package/src/cluster/internal/resourceMap.ts +55 -17
  945. package/src/cluster/internal/resourceRef.ts +189 -96
  946. package/src/encoding/Base64.ts +4 -0
  947. package/src/encoding/Base64Url.ts +4 -0
  948. package/src/encoding/EncodingError.ts +5 -0
  949. package/src/encoding/Hex.ts +5 -0
  950. package/src/encoding/Toml.ts +2 -2
  951. package/src/encoding/Yaml.ts +8 -4
  952. package/src/encoding/index.ts +4 -0
  953. package/src/eventlog/SqlEventJournal.ts +18 -4
  954. package/src/eventlog/SqlEventLogServerUnencrypted.ts +282 -235
  955. package/src/http/Headers.ts +8 -2
  956. package/src/http/HttpClient.ts +44 -27
  957. package/src/http/HttpClientResponse.ts +3 -1
  958. package/src/http/HttpEffect.ts +11 -2
  959. package/src/http/HttpMiddleware.ts +67 -46
  960. package/src/http/HttpServer.ts +1 -1
  961. package/src/http/HttpStaticServer.ts +16 -0
  962. package/src/http/HttpTraceContext.ts +8 -4
  963. package/src/http/internal/tracing.ts +52 -0
  964. package/src/http-api/HttpApiBuilder.ts +5 -1
  965. package/src/http-api/HttpApiClient.ts +13 -4
  966. package/src/http-api/HttpApiError.ts +8 -3
  967. package/src/http-api/HttpApiSecurity.ts +8 -8
  968. package/src/index.ts +156 -0
  969. package/src/internal/arbitrary/array.ts +3 -3
  970. package/src/internal/arbitrary/model.ts +37 -14
  971. package/src/internal/arbitrary/runner.ts +7 -7
  972. package/src/internal/arbitrary/schema.ts +4 -3
  973. package/src/internal/core.ts +56 -2
  974. package/src/internal/dateTime.ts +3 -1
  975. package/src/internal/effect.ts +156 -156
  976. package/src/internal/rcRef.ts +83 -33
  977. package/src/internal/schedule.ts +23 -17
  978. package/src/internal/schema/fromJsonSchemaDocument.ts +5 -3
  979. package/src/internal/schema/standardSchema.ts +2 -2
  980. package/src/internal/version.ts +2 -0
  981. package/src/observability/OtlpExporter.ts +9 -6
  982. package/src/observability/OtlpLogger.ts +20 -21
  983. package/src/observability/OtlpMetrics.ts +34 -93
  984. package/src/observability/OtlpResource.ts +18 -27
  985. package/src/observability/OtlpTracer.ts +34 -40
  986. package/src/observability/internal/otlpProtobuf.ts +60 -0
  987. package/src/reactivity/AsyncResult.ts +1 -1
  988. package/src/reactivity/Atom.ts +10 -6
  989. package/src/reactivity/AtomHttpApi.ts +2 -4
  990. package/src/reactivity/AtomRegistry.ts +7 -0
  991. package/src/rpc/RpcClient.ts +74 -46
  992. package/src/rpc/RpcServer.ts +28 -25
  993. package/src/rpc/Utils.ts +4 -10
  994. package/src/rpc/internal/tracing.ts +22 -0
  995. package/src/schema/SchemaCompiler/runtime.ts +4 -1
  996. package/src/sql/SqlClient.ts +4 -4
  997. package/src/sql/Statement.ts +59 -7
  998. package/src/testing/TestClock.ts +9 -0
  999. package/src/testing/TestConsole.ts +8 -0
  1000. package/src/testing/index.ts +3 -0
  1001. package/src/workflow/WorkflowEngine.ts +4 -0
@@ -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
 
@@ -53,6 +53,7 @@ const projectCapabilities = (
53
53
  capabilities: McpCore.CanonicalServerCapabilities
54
54
  ): typeof McpSchema.ServerCapabilities.Type => ({
55
55
  experimental: capabilities.experimental,
56
+ extensions: capabilities.extensions,
56
57
  logging: capabilities.logging ? {} : undefined,
57
58
  prompts: capabilities.prompts,
58
59
  resources: capabilities.resources,
@@ -134,6 +134,7 @@ export const protocol = McpProtocol.make({
134
134
  protocolVersion: McpSchema.protocolVersion,
135
135
  capabilities: ({
136
136
  experimental: result.capabilities.experimental,
137
+ extensions: result.capabilities.extensions,
137
138
  logging: result.capabilities.logging ? {} : undefined,
138
139
  completions: result.capabilities.completions ? {} : undefined,
139
140
  prompts: result.capabilities.prompts,
@@ -150,6 +150,7 @@ export const protocol = McpProtocol.make({
150
150
  protocolVersion: McpSchema.protocolVersion,
151
151
  capabilities: ({
152
152
  experimental: result.capabilities.experimental,
153
+ extensions: result.capabilities.extensions,
153
154
  logging: result.capabilities.logging ? {} : undefined,
154
155
  completions: result.capabilities.completions ? {} : undefined,
155
156
  prompts: result.capabilities.prompts,
@@ -145,6 +145,7 @@ export const protocol = McpProtocol.make({
145
145
  protocolVersion: McpSchema.protocolVersion,
146
146
  capabilities: ({
147
147
  experimental: result.capabilities.experimental,
148
+ extensions: result.capabilities.extensions,
148
149
  logging: result.capabilities.logging ? {} : undefined,
149
150
  completions: result.capabilities.completions ? {} : undefined,
150
151
  prompts: result.capabilities.prompts,
@@ -17,6 +17,7 @@ import * as Predicate from "../../Predicate.ts"
17
17
  import * as Result from "../../Result.ts"
18
18
  import * as RpcGroup from "../../rpc/RpcGroup.ts"
19
19
  import type * as RpcMessage from "../../rpc/RpcMessage.ts"
20
+ import type * as Scope from "../../Scope.ts"
20
21
  import type * as PublicMcpProtocol from "../McpProtocol.ts"
21
22
  import * as PublicMcpSchema from "../McpSchema.ts"
22
23
  import type * as McpCore from "./mcpCore.ts"
@@ -175,6 +176,10 @@ export interface ServerRuntimeShape {
175
176
  fallback: LogLevel.LogLevel
176
177
  ) => LogLevel.LogLevel
177
178
  readonly disconnect: (clientId: number) => void
179
+ readonly terminateHttpSession: (headers: Headers.Headers) => Effect.Effect<HttpServerResponse.HttpServerResponse>
180
+ readonly onSessionTerminated: (
181
+ listener: (binding: RequestBinding) => Effect.Effect<void>
182
+ ) => Effect.Effect<void, never, Scope.Scope>
178
183
  readonly deliveryClientIds: () => Iterable<number>
179
184
  readonly canDeliver: (
180
185
  clientId: number,
@@ -228,9 +233,36 @@ export const make = Effect.fnUntraced(function*(
228
233
  statelessProtocol = protocol
229
234
  }
230
235
  const registry = yield* McpProtocolRegistry.make(protocols)
231
- const selectHttpProtocol = (headers: Headers.Headers, input: unknown): HttpProtocolSelection => {
236
+ const sessionTerminationListeners = new Set<(binding: RequestBinding) => Effect.Effect<void>>()
237
+ const unsupportedProtocolVersion = (requested: string) => ({
238
+ code: UNSUPPORTED_PROTOCOL_VERSION_ERROR_CODE,
239
+ message: `Unsupported protocol version '${requested}'`,
240
+ data: { supported: protocolVersions, requested }
241
+ })
242
+ const selectHttpSession = (headers: Headers.Headers, isInitialize: boolean): HttpProtocolSelection => {
232
243
  const protocolVersion = headers[MCP_PROTOCOL_VERSION_HEADER]
233
244
  const sessionId = headers[MCP_SESSION_ID_HEADER]
245
+ const binding = sessionId === undefined ? undefined : stateful?.resolveSessionId(sessionId)
246
+ if (sessionId !== undefined && binding === undefined) {
247
+ return { _tag: "Rejected", status: 404 }
248
+ }
249
+ if (!isInitialize && protocolVersion !== undefined) {
250
+ if (!protocolVersions.includes(protocolVersion)) {
251
+ return { _tag: "Rejected", status: 400, error: unsupportedProtocolVersion(protocolVersion) }
252
+ }
253
+ if (
254
+ binding?.protocol.runtime.transport.http.requiresVersionHeader === true &&
255
+ protocolVersion !== binding.protocol.protocolVersion
256
+ ) {
257
+ return headerMismatch(
258
+ `MCP-Protocol-Version header '${protocolVersion}' does not match negotiated protocol version '${binding.protocol.protocolVersion}'`
259
+ )
260
+ }
261
+ }
262
+ return { _tag: "Accepted", binding, protocol: binding?.protocol }
263
+ }
264
+ const selectHttpProtocol = (headers: Headers.Headers, input: unknown): HttpProtocolSelection => {
265
+ const protocolVersion = headers[MCP_PROTOCOL_VERSION_HEADER]
234
266
  const inputRecord = asRecord(input)
235
267
  const metadata = asRecord(asRecord(inputRecord?.params)?._meta)
236
268
  const claim = protocolVersionClaim(metadata)
@@ -272,18 +304,7 @@ export const make = Effect.fnUntraced(function*(
272
304
  }
273
305
  }
274
306
  if (statelessProtocol === undefined || protocolVersion !== statelessProtocol.protocolVersion) {
275
- return {
276
- _tag: "Rejected",
277
- status: 400,
278
- error: {
279
- code: UNSUPPORTED_PROTOCOL_VERSION_ERROR_CODE,
280
- message: `Unsupported protocol version '${protocolVersion}'`,
281
- data: {
282
- supported: protocolVersions,
283
- requested: protocolVersion
284
- }
285
- }
286
- }
307
+ return { _tag: "Rejected", status: 400, error: unsupportedProtocolVersion(protocolVersion) }
287
308
  }
288
309
  const method = inputRecord?.method
289
310
  if (typeof method !== "string" || headers[MCP_METHOD_HEADER] !== method) {
@@ -299,25 +320,7 @@ export const make = Effect.fnUntraced(function*(
299
320
  }
300
321
  return { _tag: "Accepted", binding: undefined, protocol: statelessProtocol }
301
322
  }
302
- const binding = sessionId === undefined ? undefined : stateful?.resolveSessionId(sessionId)
303
- if (sessionId !== undefined && binding === undefined) {
304
- return { _tag: "Rejected", status: 404 }
305
- }
306
- if (
307
- !isInitialize &&
308
- protocolVersion !== undefined &&
309
- !registry.protocols.some((protocol) => protocol.protocolVersion === protocolVersion)
310
- ) {
311
- return { _tag: "Rejected", status: 400 }
312
- }
313
- if (
314
- !isInitialize &&
315
- binding?.protocol.runtime.transport.http.requiresVersionHeader === true &&
316
- protocolVersion !== binding.protocol.protocolVersion
317
- ) {
318
- return { _tag: "Rejected", status: 400 }
319
- }
320
- return { _tag: "Accepted", binding, protocol: binding?.protocol }
323
+ return selectHttpSession(headers, isInitialize)
321
324
  }
322
325
  return ServerRuntime.of({
323
326
  protocols: registry.protocols,
@@ -362,11 +365,7 @@ export const make = Effect.fnUntraced(function*(
362
365
  return yield* Effect.die("MCP stateless runtime invariant failed")
363
366
  }
364
367
  if (requestedVersion !== undefined && requestedVersion !== protocol.protocolVersion) {
365
- return yield* new McpProtocol.ProtocolError({
366
- code: UNSUPPORTED_PROTOCOL_VERSION_ERROR_CODE,
367
- message: `Unsupported protocol version '${requestedVersion}'`,
368
- data: { supported: protocolVersions, requested: requestedVersion }
369
- })
368
+ return yield* new McpProtocol.ProtocolError(unsupportedProtocolVersion(requestedVersion))
370
369
  }
371
370
  const decodedProfile = yield* statelessDescriptor.profileFromRequestMetadata(metadata)
372
371
  const profile: McpCore.NegotiatedProtocolProfile<string> = {
@@ -394,12 +393,14 @@ export const make = Effect.fnUntraced(function*(
394
393
  })
395
394
  if (Result.isFailure(parsed)) {
396
395
  const version = headers[MCP_PROTOCOL_VERSION_HEADER]
397
- if (version !== undefined && !registry.protocols.some((protocol) => protocol.protocolVersion === version)) {
398
- return reject(400)
396
+ if (version !== undefined && !protocolVersions.includes(version)) {
397
+ return reject(400, unsupportedProtocolVersion(version))
399
398
  }
400
399
  const admission = selectHttpProtocol(headers, undefined)
401
- return admission._tag === "Rejected" && admission.error === undefined
402
- ? reject(admission.status)
400
+ // Session and protocol-header errors take precedence over parse errors.
401
+ return admission._tag === "Rejected" &&
402
+ (admission.error === undefined || admission.error.code === PublicMcpSchema.HEADER_MISMATCH_ERROR_CODE)
403
+ ? reject(admission.status, admission.error)
403
404
  : reject(200, new PublicMcpSchema.ParseError({ message: "Parse error" }))
404
405
  }
405
406
  const input = parsed.success
@@ -444,8 +445,21 @@ export const make = Effect.fnUntraced(function*(
444
445
  }
445
446
  const isInitialize = Predicate.hasProperty(input, "method") && input.method === "initialize"
446
447
  const hasSession = headers[MCP_SESSION_ID_HEADER] !== undefined
447
- if (isInitialize ? hasSession : !hasSession && admission.protocol?.runtime._tag !== "Stateless") {
448
- return reject(400)
448
+ if (isInitialize && hasSession) {
449
+ return reject(
450
+ 400,
451
+ new PublicMcpSchema.InvalidRequest({ message: "initialize must not include an MCP-Session-Id header" }),
452
+ id
453
+ )
454
+ }
455
+ if (!isInitialize && !hasSession && admission.protocol?.runtime._tag !== "Stateless") {
456
+ return reject(
457
+ 400,
458
+ stateful === undefined ? undefined : new PublicMcpSchema.InvalidRequest({
459
+ message: "MCP-Session-Id header is required; send initialize to start a session"
460
+ }),
461
+ id
462
+ )
449
463
  }
450
464
  if (
451
465
  isRequest && admission.protocol?.runtime._tag === "Stateless" &&
@@ -464,6 +478,33 @@ export const make = Effect.fnUntraced(function*(
464
478
  },
465
479
  effectLogLevel: (clientId, headers, fallback) => stateful?.effectLogLevel(clientId, headers, fallback) ?? fallback,
466
480
  disconnect: (clientId) => stateful?.disconnect(clientId),
481
+ terminateHttpSession: (headers) =>
482
+ Effect.suspend(() => {
483
+ const sessionId = headers[MCP_SESSION_ID_HEADER]
484
+ if (sessionId === undefined) {
485
+ return Effect.succeed(HttpServerResponse.empty({ status: 400 }))
486
+ }
487
+ const selection = selectHttpSession(headers, false)
488
+ if (selection._tag === "Rejected") {
489
+ return Effect.succeed(HttpServerResponse.empty({ status: selection.status }))
490
+ }
491
+ const binding = selection.binding!
492
+ stateful!.terminateSession(sessionId)
493
+ return Effect.as(
494
+ Effect.forEach(sessionTerminationListeners, (listener) => listener(binding), { discard: true }),
495
+ HttpServerResponse.empty({ status: 204 })
496
+ )
497
+ }),
498
+ onSessionTerminated: (listener) =>
499
+ Effect.acquireRelease(
500
+ Effect.sync(() => {
501
+ sessionTerminationListeners.add(listener)
502
+ }),
503
+ () =>
504
+ Effect.sync(() => {
505
+ sessionTerminationListeners.delete(listener)
506
+ })
507
+ ),
467
508
  deliveryClientIds: () => stateful?.initializedClientIds() ?? [],
468
509
  canDeliver: (clientId, headers, notification, fallback) =>
469
510
  stateful?.canDeliver(clientId, headers, notification, fallback) ?? true,
@@ -22,9 +22,9 @@ export const protocolVersion = "2024-11-05"
22
22
  */
23
23
  export const optional = <S extends Schema.Constraint>(
24
24
  schema: S
25
- ): Schema.decodeTo<Schema.optional<S>, Schema.optionalKey<S>> =>
25
+ ): Schema.decodeTo<Schema.toType<Schema.optional<S>>, Schema.optionalKey<S>> =>
26
26
  Schema.optionalKey(schema).pipe(
27
- Schema.decodeTo(Schema.optional(schema), {
27
+ Schema.decodeTo(Schema.toType(Schema.optional(schema)), {
28
28
  decode: SchemaGetter.passthrough(),
29
29
  encode: SchemaGetter.transformOptional(Option.flatMap(Option.fromUndefinedOr))
30
30
  })
@@ -111,6 +111,7 @@ export const Implementation = Schema.Struct({
111
111
  * @internal
112
112
  */
113
113
  export const ClientCapabilities = Schema.Struct({
114
+ extensions: optional(Schema.Record(Schema.TemplateLiteral([Schema.String, "/", Schema.String]), Schema.Json)),
114
115
  experimental: optional(Schema.Record(Schema.String, JsonObject)),
115
116
  roots: optional(Schema.Struct({
116
117
  listChanged: optional(Schema.Boolean)
@@ -122,6 +123,7 @@ export const ClientCapabilities = Schema.Struct({
122
123
  * @internal
123
124
  */
124
125
  export const ServerCapabilities = Schema.Struct({
126
+ extensions: optional(Schema.Record(Schema.TemplateLiteral([Schema.String, "/", Schema.String]), Schema.Json)),
125
127
  experimental: optional(Schema.Record(Schema.String, JsonObject)),
126
128
  logging: optional(JsonObject),
127
129
  prompts: optional(Schema.Struct({
@@ -47,6 +47,7 @@ export interface StatefulRuntime {
47
47
  readonly registerConnection: (clientId: number, registration: Registration) => Binding
48
48
  readonly resolve: (clientId: number, headers: Headers.Headers) => Binding | undefined
49
49
  readonly resolveSessionId: (sessionId: string) => Binding | undefined
50
+ readonly terminateSession: (sessionId: string) => boolean
50
51
  readonly setLogLevel: (
51
52
  level: PublicMcpSchema.LoggingLevel,
52
53
  clientId: number,
@@ -123,6 +124,7 @@ export const make = (): StatefulRuntime => {
123
124
  },
124
125
  resolve: resolveSession,
125
126
  resolveSessionId: (sessionId) => bySessionId.get(sessionId),
127
+ terminateSession: (sessionId) => bySessionId.delete(sessionId),
126
128
  setLogLevel: (level, clientId, headers) =>
127
129
  Effect.sync(() => {
128
130
  const session = resolveSession(clientId, headers)
@@ -411,7 +411,7 @@ export const make = Effect.gen(function*() {
411
411
  // Replays reuse the request id but track a fresh set of awaits.
412
412
  let currentRun: {
413
413
  readonly request: Entity.Request<any>
414
- readonly awaitedDeferreds: ReadonlySet<string>
414
+ readonly instance: WorkflowEngine.WorkflowInstance["Service"]
415
415
  } | undefined
416
416
  // Concurrent wakes share one wait for the current run to publish its reply.
417
417
  const resumeGate = Semaphore.makeUnsafe(1)
@@ -428,7 +428,7 @@ export const make = Effect.gen(function*() {
428
428
  return {
429
429
  run: (request: Entity.Request<any>) => {
430
430
  const instance = WorkflowEngine.WorkflowInstance.initial(workflow, executionId)
431
- currentRun = { request, awaitedDeferreds: instance.awaitedDeferreds }
431
+ currentRun = { request, instance }
432
432
  const parent = (request.payload as any)[payloadParentKey] as
433
433
  | { workflowName: string; executionId: string }
434
434
  | undefined
@@ -522,9 +522,13 @@ export const make = Effect.gen(function*() {
522
522
  // registered yet, a later await will see the result just stored.
523
523
  // Check when the wake runs and skip preemption too: interrupting
524
524
  // a later await would require waiting for its reply before reset.
525
+ // A run completing its own deferred also reads it from the cache
526
+ // when it awaits later, so that completion never wakes the run.
525
527
  const wake = Effect.suspend(() =>
526
- currentRun && !currentRun.awaitedDeferreds.has(payload.name)
527
- ? ensureSuccess(resume(workflow, executionId))
528
+ currentRun && !currentRun.instance.awaitedDeferreds.has(payload.name)
529
+ ? currentRun.instance.completedDeferreds.has(payload.name)
530
+ ? Effect.void
531
+ : ensureSuccess(resume(workflow, executionId))
528
532
  : deferredState.deferredDone(executionId, payload.name).pipe(Effect.andThen(resumeCurrentRun))
529
533
  )
530
534
  // An asynchronous reply releases the RPC concurrency permit while
@@ -703,6 +707,16 @@ export const make = Effect.gen(function*() {
703
707
 
704
708
  deferredDone: Effect.fnUntraced(
705
709
  function*({ deferredName, executionId, exit, workflowName }) {
710
+ const instance = yield* Effect.serviceOption(WorkflowEngine.WorkflowInstance)
711
+ // Activities run with their own instance, so their completions still
712
+ // wake a run that suspended before reaching the await. An interrupt
713
+ // must wake the run even when it signals itself.
714
+ if (
715
+ Option.isSome(instance) && instance.value.executionId === executionId &&
716
+ deferredName !== InterruptSignal.name
717
+ ) {
718
+ instance.value.completedDeferreds.add(deferredName)
719
+ }
706
720
  const workflow = workflows.get(workflowName)
707
721
  if (workflow) {
708
722
  return yield* Effect.orDie(sendDiscard({
@@ -56,11 +56,21 @@ export const layer: Layer.Layer<
56
56
  Effect.gen(function*() {
57
57
  const fs = yield* FileSystem.FileSystem
58
58
  const token = yield* fs.readFileString("/var/run/secrets/kubernetes.io/serviceaccount/token").pipe(
59
- Effect.option
59
+ Effect.map((token) => token.trim()),
60
+ Effect.option,
61
+ Effect.cachedWithTTL("1 minute")
60
62
  )
61
63
  return (yield* HttpClient.HttpClient).pipe(
62
64
  HttpClient.mapRequest(HttpClientRequest.prependUrl("https://kubernetes.default.svc/api")),
63
- token._tag === "Some" ? HttpClient.mapRequest(HttpClientRequest.bearerToken(token.value.trim())) : identity,
65
+ HttpClient.mapRequestEffect((request) =>
66
+ Effect.map(
67
+ token,
68
+ Option.match({
69
+ onNone: () => request,
70
+ onSome: (token) => HttpClientRequest.bearerToken(request, token)
71
+ })
72
+ )
73
+ ),
64
74
  HttpClient.filterStatusOk,
65
75
  HttpClient.retryTransient({
66
76
  schedule: Schedule.spaced(5000)